summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore13
-rw-r--r--.mailmap16
-rw-r--r--Makefile.in1
-rw-r--r--README5
-rwxr-xr-xbin/ptxdist219
-rw-r--r--config/busybox/Config.in38
-rw-r--r--config/busybox/archival/Config.in16
-rw-r--r--config/busybox/console-tools/Config.in13
-rw-r--r--config/busybox/coreutils/Config.in131
-rw-r--r--config/busybox/e2fsprogs/Config.in1
-rw-r--r--config/busybox/editors/Config.in16
-rw-r--r--config/busybox/findutils/Config.in51
-rw-r--r--config/busybox/klibc-utils/Config.in3
-rw-r--r--config/busybox/libbb/Config.in226
-rw-r--r--config/busybox/mailutils/Config.in14
-rw-r--r--config/busybox/miscutils/Config.in69
-rw-r--r--config/busybox/modutils/Config.in6
-rw-r--r--config/busybox/networking/Config.in114
-rw-r--r--config/busybox/networking/udhcp/Config.in17
-rw-r--r--config/busybox/procps/Config.in26
-rw-r--r--config/busybox/shell/Config.in139
-rw-r--r--config/busybox/sysklogd/Config.in10
-rw-r--r--config/busybox/util-linux/Config.in62
-rw-r--r--config/busybox/util-linux/volume_id/Config.in6
-rw-r--r--config/hostapd/defconfig47
-rw-r--r--config/images/barebox_partitions.config3
-rw-r--r--config/images/grub.config1
-rw-r--r--config/images/grub_partitions.config4
-rw-r--r--config/images/hd.config3
-rw-r--r--config/images/rauc.config8
-rw-r--r--config/meson/cairo-cross-file.meson2
-rw-r--r--config/meson/cross-file.meson.in7
-rw-r--r--config/meson/glib-cross-file.meson9
-rw-r--r--config/meson/mesalib-cross-file.meson2
-rw-r--r--config/meson/python3-scipy-cross-file.meson2
-rw-r--r--config/qt6/linux-ptx-g++/qmake.conf26
-rw-r--r--config/qt6/linux-ptx-g++/qplatformdefs.h2
-rw-r--r--config/report/license-compliance-txt/body.txt11
-rw-r--r--config/report/license-compliance-txt/footer.txt0
-rw-r--r--config/report/license-compliance-txt/generator1
-rw-r--r--config/report/license-compliance-txt/header.txt15
-rw-r--r--config/report/license-compliance-txt/package.txt15
-rw-r--r--config/report/license-compliance/body.tex11
-rw-r--r--config/report/license-compliance/footer.tex2
-rw-r--r--config/report/license-compliance/generator1
-rw-r--r--config/report/license-compliance/header.tex52
l---------config/report/license-compliance/logo.png1
-rw-r--r--config/report/license-compliance/package.tex23
-rw-r--r--config/report/license-report/body.tex12
-rw-r--r--config/report/license-report/footer.tex37
-rw-r--r--config/report/license-report/generator1
-rw-r--r--config/report/license-report/header.tex57
l---------config/report/license-report/logo.png1
-rw-r--r--config/report/license-report/package.tex40
-rw-r--r--config/samba/cross-answers9
-rw-r--r--config/setup/Kconfig10
-rw-r--r--config/setup/ptxdistrc.default13
-rw-r--r--config/wpasupplicant/defconfig22
-rw-r--r--configure.ac18
-rw-r--r--doc/_static/css/custom.css18
-rw-r--r--doc/conf.py41
-rw-r--r--doc/contributing.rst11
-rw-r--r--doc/daily_work.inc78
-rw-r--r--doc/dev_add_new_pkgs.rst735
-rw-r--r--doc/dev_advanced_rule_files.rst494
-rw-r--r--doc/dev_code_signing.rst11
-rw-r--r--doc/dev_code_signing_flowchart.svg1977
-rw-r--r--doc/dev_create_new_pkg_templates.rst2
-rw-r--r--doc/dev_layers_in_ptxdist.rst2
-rw-r--r--doc/dev_licenses.rst245
-rw-r--r--doc/dev_manual.rst3
-rw-r--r--doc/dev_patching.rst295
-rw-r--r--doc/environment.rst26
-rw-r--r--doc/getting_help.rst15
-rw-r--r--doc/including_bsp_doc.inc34
-rw-r--r--doc/index-layer-0-ptxdist.rst1
-rw-r--r--doc/index.rst2
-rw-r--r--doc/multi_image_platforms.inc8
-rw-r--r--doc/ref_code_signing_helpers.rst101
-rw-r--r--doc/ref_make_macros.rst122
-rw-r--r--doc/ref_make_variables.rst72
-rw-r--r--doc/ref_parameter.rst30
-rw-r--r--doc/user_manual.inc4
-rw-r--r--patches/Imaging-1.1.7/0001-setup.py-remove-host-directories-from-search-paths.patch38
-rw-r--r--patches/Imaging-1.1.7/0002-fix-compiling-with-FreeType-2.5.1.patch24
-rw-r--r--patches/Imaging-1.1.7/series5
-rw-r--r--patches/ModemManager-1.16.2/0001-kerneldevice-udev-don-t-use-autoptr-in-GUdev-types.patch127
-rw-r--r--patches/ModemManager-1.16.2/series4
-rw-r--r--patches/NetworkManager-1.26.2/0001-clients-cli-build-generate_docs_nm_settings_nmcli-on.patch34
-rw-r--r--patches/NetworkManager-1.26.2/series1
-rw-r--r--patches/OpenSC-0.23.0/0001-pkcs11-tool-Fix-private-key-import.patch28
-rw-r--r--patches/OpenSC-0.23.0/0002-pkcs11-tool-Log-more-information-on-OpenSSL-errors.patch49
-rw-r--r--patches/OpenSC-0.23.0/series5
-rw-r--r--patches/Python-2.7.18/0001-Add-support-for-socketcan-to-the-python-socket-modul.patch224
-rw-r--r--patches/Python-2.7.18/0002-use-AC_CHECK_SIZEOF-rather-than-AC_TRY_COMPILE-for-l.patch37
-rw-r--r--patches/Python-2.7.18/0003-use-AC_TYPE_LONG_DOUBLE-to-detect-long-double-suppor.patch35
-rw-r--r--patches/Python-2.7.18/0004-setup.py-don-t-leak-host-path-into-cross-compilation.patch27
-rw-r--r--patches/Python-2.7.18/0005-add-cross-compilation-support.patch61
-rw-r--r--patches/Python-2.7.18/0006-python-don-t-add-rpaths-in-setup.py.patch31
-rw-r--r--patches/Python-2.7.18/0007-add-more-search-paths.patch28
-rw-r--r--patches/Python-2.7.18/0008-resolve-existing-LD_LIBRARY_PATH-during-make-not-dur.patch25
-rw-r--r--patches/Python-2.7.18/0009-python2-prevent-host-path-leakage.patch39
-rwxr-xr-xpatches/Python-2.7.18/autogen.sh14
-rw-r--r--patches/Python-2.7.18/series12
-rw-r--r--patches/Python-3.7.10/0001-python3-don-t-leak-host-path-into-target-binaries.patch23
-rw-r--r--patches/Python-3.7.10/0002-python3-prevent-host-path-leakage.patch42
-rw-r--r--patches/Python-3.7.10/series5
-rw-r--r--patches/SDL2_ttf-2.22.0/0001-configure-make-opengl-support-switchable.patch (renamed from patches/SDL2_ttf-2.0.15/0001-configure-make-opengl-support-switchable.patch)24
-rwxr-xr-xpatches/SDL2_ttf-2.22.0/autogen.sh (renamed from patches/SDL2_ttf-2.0.15/autogen.sh)0
-rw-r--r--patches/SDL2_ttf-2.22.0/series (renamed from patches/SDL2_ttf-2.0.15/series)0
-rw-r--r--patches/acl-2.3.1/0001-Switch-to-sys-xattr.h.patch (renamed from patches/acl-2.2.53/0001-Switch-to-sys-xattr.h.patch)6
l---------patches/acl-2.3.1/autogen.sh (renamed from patches/acl-2.2.53/autogen.sh)0
-rw-r--r--patches/acl-2.3.1/series (renamed from patches/acl-2.2.53/series)0
-rw-r--r--patches/aiosqlite-0.18.0/0001-add-setup.py.patch25
-rw-r--r--patches/aiosqlite-0.18.0/series1
-rw-r--r--patches/alsa-lib-1.2.1.2/0001-add-largefile-support.patch32
-rw-r--r--patches/alsa-lib-1.2.1.2/series4
-rw-r--r--patches/alsa-utils-1.2.11/0001-alsactl-info.c-fix-conditionals-on-__ALSA_PCM_H-and-.patch103
-rw-r--r--patches/alsa-utils-1.2.11/series4
-rw-r--r--patches/apitrace-11.1/0001-HACK-don-t-check-for-submodules-for-external-depende.patch26
-rw-r--r--patches/apitrace-11.1/0002-HACK-don-t-do-dpkg-architecture-magic.patch32
-rw-r--r--patches/apitrace-11.1/series5
-rw-r--r--patches/apitrace-9.0/0001-Use-CMAKE_INSTALL_LIBDIR-for-LIB_INSTALL_DIR.patch49
-rw-r--r--patches/apitrace-9.0/series4
-rw-r--r--patches/at-3.1.12/0001-configure.ac-remove-manual-compiler-check-with-AC_TR.patch33
-rw-r--r--patches/at-3.1.12/0002-configure.ac-convert-AC_TRY_COMPILE-AC_COMPILE_IFELS.patch34
-rw-r--r--patches/at-3.1.12/0003-Makefile.in-add-LDFLAGS-to-linking-stage.patch38
-rw-r--r--patches/at-3.1.12/0005-Makefile.in-replace-IROOT-by-DESTDIR.patch97
-rw-r--r--patches/at-3.1.12/series4
-rw-r--r--patches/aumix-2.9.1/0001-src-makefile-don-t-use-system-dirs.patch30
-rw-r--r--patches/aumix-2.9.1/series4
-rwxr-xr-xpatches/autogen.sh1
-rw-r--r--patches/autossh-1.4c/0001-Make-install-rule-friendly-towards-packaging-with-DE.patch47
-rw-r--r--patches/autossh-1.4c/series4
-rw-r--r--patches/bash-4.3.30/0001-Bash-4.3-patch-31.patch5467
-rw-r--r--patches/bash-4.3.30/0002-Bash-4.3-patch-32.patch5409
-rw-r--r--patches/bash-4.3.30/0003-Bash-4.3-patch-33.patch204
-rw-r--r--patches/bash-4.3.30/series6
l---------patches/bayer2rgb3-v0.6.0/autogen.sh (renamed from patches/alsa-lib-1.2.1.2/autogen.sh)0
-rw-r--r--patches/bonnie++-1.97.3/0001-configure-cache-result-of-large-file-test.patch32
-rw-r--r--patches/bonnie++-1.97.3/0002-use-DESTDIR-during-make-install.patch36
-rw-r--r--patches/bonnie++-1.97.3/series5
l---------patches/bridge-utils-1.7.1/autogen.sh (renamed from patches/at-3.1.12/autogen.sh)0
-rw-r--r--patches/busybox-1.31.1/0100-Remove-stime-function-calls.patch89
-rw-r--r--patches/busybox-1.31.1/0201-Fix-the-format-warning-when-building-applets-usage_p.patch30
-rw-r--r--patches/busybox-1.31.1/series11
-rw-r--r--patches/busybox-1.36.1/0200-reactivate-check-for-tty.patch (renamed from patches/busybox-1.31.1/0200-reactivate-check-for-tty.patch)4
-rw-r--r--patches/busybox-1.36.1/0201-build-system-only-pass-real-libs-to-SELINUX_LIBS.patch (renamed from patches/busybox-1.31.1/0202-build-system-only-pass-real-libs-to-SELINUX_LIBS.patch)4
-rw-r--r--patches/busybox-1.36.1/0202-scripts-trylink-honour-SKIP_STRIP-and-don-t-strip-if.patch (renamed from patches/busybox-1.31.1/0203-scripts-trylink-honour-SKIP_STRIP-and-don-t-strip-if.patch)8
-rw-r--r--patches/busybox-1.36.1/0203-tc-Fix-compilation-with-Linux-v6.8-rc1.patch61
-rw-r--r--patches/busybox-1.36.1/series10
-rw-r--r--patches/cairo-1.16.0/0001-only-build-GL-surface-tests-if-GLX-is-enabled.patch35
-rw-r--r--patches/cairo-1.16.0/0002-Makefile.sources-move-font-variations.c-a-test-code-.patch32
-rw-r--r--patches/cairo-1.16.0/0003-regrouping-of-test-sources-with-new-fc_font_test_sou.patch41
-rw-r--r--patches/cairo-1.16.0/series6
-rw-r--r--patches/cairo-1.18.0/0001-cairo-ft-fx-building-without-SVG-support.patch35
-rw-r--r--patches/cairo-1.18.0/0100-Cairo-Fix-Denial-of-Service-Attack-due-to-Logical-Pr.patch32
-rw-r--r--patches/cairo-1.18.0/0101-There-is-an-assertion-in-function-_cairo_arc_in_dire.patch29
-rw-r--r--patches/cairo-1.18.0/series7
-rw-r--r--patches/canfestival-3+hg20180126.794/0007-gnosis-port-to-python3.patch1912
-rw-r--r--patches/canfestival-3+hg20180126.794/0008-port-to-python3.patch945
-rw-r--r--patches/canfestival-3+hg20180126.794/series4
l---------patches/canutils-v2021.06.0/autogen.sh (renamed from patches/aumix-2.9.1/autogen.sh)0
-rw-r--r--patches/cbmbasic/0001-Add-IOBASE-and-pseudo-timer-will-give-RND-functional.patch52
-rw-r--r--patches/cbmbasic/series4
-rw-r--r--patches/cgic205/0001-Makefile-add-possibility-to-cross-compile.patch54
-rw-r--r--patches/cgic205/series4
-rw-r--r--patches/chrony-4.5/0001-configure-make-unrecognized-option-a-fatal-error.patch (renamed from patches/chrony-3.5/0001-configure-make-unrecognized-option-a-fatal-error.patch)4
-rw-r--r--patches/chrony-4.5/series (renamed from patches/chrony-3.5/series)0
-rw-r--r--patches/classpath-0.99/0001-Fix-building-with-OpenJDK-1.8.patch101
-rw-r--r--patches/classpath-0.99/0002-Fix-unmappable-character-error.patch23
-rwxr-xr-xpatches/classpath-0.99/autogen.sh2
-rw-r--r--patches/classpath-0.99/series5
-rw-r--r--patches/cog-0.8.1/0001-CMake-install-D-Bus-policy-configuration-to-CMAKE_IN.patch31
-rw-r--r--patches/cog-0.8.1/series4
l---------patches/cpputest-3.8/autogen.sh (renamed from patches/bayer2rgb3-0.4.1/autogen.sh)0
-rw-r--r--patches/crda-4.15/0001-fix-linking-libreg.patch (renamed from patches/crda-3.18/0001-fix-linking-libreg.patch)8
-rw-r--r--patches/crda-4.15/0002-Do-not-run-ldconfig-if-DESTDIR-is-set.patch (renamed from patches/crda-3.18/0002-Do-not-run-ldconfig-if-DESTDIR-is-set.patch)4
-rw-r--r--patches/crda-4.15/0003-Allow-build-without-embedding-pubkey-data-into-crda-.patch (renamed from patches/crda-3.18/0003-Allow-build-without-embedding-pubkey-data-into-crda-.patch)4
-rw-r--r--patches/crda-4.15/0004-udev-Fix-rule-for-initial-setup.patch (renamed from patches/crda-3.18/0004-udev-Fix-rule-for-initial-setup.patch)0
-rw-r--r--patches/crda-4.15/series (renamed from patches/crda-3.18/series)0
-rw-r--r--patches/cryptodev-linux-1.13/0001-zero-copy-Fix-build-for-Linux-6.4.patch33
-rw-r--r--patches/cryptodev-linux-1.13/0002-cryptodev_verbosity-Fix-build-for-Linux-6.4.patch40
-rw-r--r--patches/cryptodev-linux-1.13/0003-Move-recent-Linux-version-ifdefs-from-v6.4-to-v6.5.patch59
-rw-r--r--patches/cryptodev-linux-1.13/0004-Fix-build-for-Linux-6.7-rc1.patch34
-rw-r--r--patches/cryptodev-linux-1.13/series7
-rw-r--r--patches/dbus-1.15.8/0001-HACK-meson_post_install.py-don-t-try-to-change-owner.patch25
-rw-r--r--patches/dbus-1.15.8/series4
-rw-r--r--patches/dhcp-4.4.2/0001-Fixed-gcc-10-compilation-issues.patch82
-rw-r--r--patches/dhcp-4.4.2/series4
-rw-r--r--patches/dnsmasq-2.89/0001-the-pkg-config-file-is-lua-no-lua5.2.patch (renamed from patches/dnsmasq-2.81/0001-the-pkg-config-file-is-lua-no-lua5.2.patch)8
-rw-r--r--patches/dnsmasq-2.89/series (renamed from patches/dnsmasq-2.81/series)0
-rw-r--r--patches/dropwatch-1.5.3/0001-Fix-build-issue-when-compiling-with-Wcast-align.patch47
-rw-r--r--patches/dropwatch-1.5.3/0002-Fix-configure-for-libnl3-genl.patch43
-rw-r--r--patches/dropwatch-1.5.3/series5
l---------patches/dropwatch-1.5.4/autogen.sh (renamed from patches/bonnie++-1.97.3/autogen.sh)0
-rw-r--r--patches/dtc-v1.6.0/0001-fdtdump-Fix-gcc11-warning.patch30
-rw-r--r--patches/dtc-v1.6.0/series4
-rw-r--r--patches/e2fsprogs-1.47.0/0001-e2fsprogs-Disable-docs.patch37
-rw-r--r--patches/e2fsprogs-1.47.0/0002-e2fsprogs-Disable-ldconfig.patch29
-rw-r--r--patches/e2fsprogs-1.47.0/0003-mke2fs.conf-remove-orphan_file-from-ext4-features.patch39
-rw-r--r--patches/e2fsprogs-1.47.0/series6
-rw-r--r--patches/efivar-37/0001-dp.h-make-format_guid-handle-misaligned-guid-pointer.patch55
-rw-r--r--patches/efivar-37/0002-Fix-all-the-places-Werror-address-of-packed-member-c.patch167
-rw-r--r--patches/efivar-37/series5
-rwxr-xr-xpatches/elfutils-0.180/autogen.sh18
-rw-r--r--patches/elfutils-0.180/series2
-rw-r--r--patches/elfutils-0.190/0001-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch (renamed from patches/elfutils-0.180/0001-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch)18
-rw-r--r--patches/elfutils-0.190/0002-riscv-retval-workaround.patch (renamed from patches/elfutils-0.180/0002-riscv-retval-workaround.patch)6
-rw-r--r--patches/elfutils-0.190/0003-remove-old-glibc-hack.patch30
l---------patches/elfutils-0.190/autogen.sh (renamed from patches/bridge-utils-1.6/autogen.sh)0
-rw-r--r--patches/elfutils-0.190/series6
l---------patches/evtest-1.35/autogen.sh (renamed from patches/cairo-1.16.0/autogen.sh)0
l---------patches/f2fs-tools-1.14.0/autogen.sh (renamed from patches/canutils-v2020.02.04/autogen.sh)0
-rw-r--r--patches/failmalloc-1.0/0001-fix-building-with-glibc-2.14.1.patch23
-rw-r--r--patches/failmalloc-1.0/series4
-rw-r--r--patches/fakeroot-1.25.3/0001-libfakeroot.c-define-_STAT_VER-if-not-already-define.patch33
-rw-r--r--patches/fakeroot-1.25.3/0002-libfakeroot.c-add-wrappers-for-new-glibc-2.33-symbol.patch68
-rw-r--r--patches/fakeroot-1.25.3/0003-libfakeroot.c-fix-compile-error-with-DEBUG-enabled.patch22
-rw-r--r--patches/fakeroot-1.25.3/0004-configure.ac-fix-__xmknod-at-pointer-argument.patch56
-rw-r--r--patches/fakeroot-1.25.3/0005-libfakeroot.c-fix-fts_read-and-fts_children.patch44
-rw-r--r--patches/fakeroot-1.25.3/0006-Add-_STAT_VER-defines-for-ppc64le-riscv64-s390x.patch26
-rw-r--r--patches/fakeroot-1.25.3/0007-OS-X-portability.patch161
-rw-r--r--patches/fakeroot-1.25.3/series13
-rw-r--r--patches/fakeroot-1.31/0001-make-fakeroot-relocatable.patch (renamed from patches/fakeroot-1.25.3/0008-make-fakeroot-relocatable.patch)2
-rw-r--r--patches/fakeroot-1.31/series4
-rw-r--r--patches/fbset-2.1/0001-fbset-do-not-overwrite-CC-to-allow-crosscompiling.patch50
-rw-r--r--patches/fbset-2.1/series1
-rw-r--r--patches/fbtest-2023-03-28-g47f6351/0001-provide-a-pre-generated-penguin.c-to-get-rid-of-this.patch (renamed from patches/fbtest-2014-08-11-g29ab066/0001-provide-a-pre-generated-penguin.c-to-get-rid-of-this.patch)2
-rw-r--r--patches/fbtest-2023-03-28-g47f6351/0002-add-install-target.patch (renamed from patches/fbtest-2014-08-11-g29ab066/0002-add-install-target.patch)4
-rw-r--r--patches/fbtest-2023-03-28-g47f6351/0003-Initialize-ticks-in-benchmark.patch29
-rw-r--r--patches/fbtest-2023-03-28-g47f6351/series (renamed from patches/fbtest-2014-08-11-g29ab066/series)3
-rw-r--r--patches/fio-3.32/0001-use-latomic-when-necessary.patch (renamed from patches/fio-3.23/0001-use-latomic-when-necessary.patch)4
-rw-r--r--patches/fio-3.32/series (renamed from patches/fio-3.23/series)0
-rw-r--r--patches/flup-1.0.2/0001-support-python2.7.patch31
-rwxr-xr-xpatches/flup-1.0.2/autogen.sh4
-rw-r--r--patches/flup-1.0.2/series4
-rw-r--r--patches/flup-1.0.2/setuptools-0.6c11-py2.7.eggbin332005 -> 0 bytes
-rw-r--r--patches/freetype-2.13.2/0001-generate-freetype-config-and-freetype2.pc-correctly.patch (renamed from patches/freetype-2.10.1/0001-generate-freetype-config-and-freetype2.pc-correctly.patch)34
-rwxr-xr-xpatches/freetype-2.13.2/autogen.sh (renamed from patches/freetype-2.10.1/autogen.sh)0
-rw-r--r--patches/freetype-2.13.2/series (renamed from patches/freetype-2.10.1/series)0
-rw-r--r--patches/fuse-2.9.9/0001-Whitelist-UFSD-backport-to-2.9-branch-452.patch35
-rw-r--r--patches/fuse-2.9.9/0002-Correct-errno-comparison-571.patch21
-rw-r--r--patches/fuse-2.9.9/0003-util-ulockmgr_server.c-conditionally-define-closefro.patch59
-rw-r--r--patches/fuse-2.9.9/0100-use-asm-types.h-to-define-__u64-etc.patch (renamed from patches/fuse-2.9.9/0001-use-asm-types.h-to-define-__u64-etc.patch)0
l---------patches/fuse-2.9.9/autogen.sh (renamed from patches/dropwatch-1.5.3/autogen.sh)0
-rw-r--r--patches/fuse-2.9.9/series9
-rw-r--r--patches/glmark2-2020.04/0001-Build-Fix-Python-3-incompatibility.patch21
-rw-r--r--patches/glmark2-2020.04/0002-drm-Don-t-prefer-RGBA-component-widths-larger-than-8.patch32
-rw-r--r--patches/glmark2-2020.04/series5
-rw-r--r--patches/glu-9.0.1/0001-build-fix-the-debug-parameter-to-properly-handle-dis.patch30
-rw-r--r--patches/glu-9.0.1/series4
-rw-r--r--patches/gnutls-3.6.15/0001-don-t-try-ru-build-run-code-generator.patch31
-rwxr-xr-xpatches/gnutls-3.6.15/autogen.sh4
-rw-r--r--patches/gnutls-3.6.15/series4
-rw-r--r--patches/gobject-introspection-1.66.1/0002-meson-fix-building-with-Dbuild_introspection_data-fa.patch31
-rw-r--r--patches/gobject-introspection-1.66.1/series6
-rw-r--r--patches/gobject-introspection-1.72.0/0001-dumper.py-don-t-close-fds.patch (renamed from patches/gobject-introspection-1.66.1/0001-dumper.py-don-t-close-fds.patch)2
-rw-r--r--patches/gobject-introspection-1.72.0/0002-HACK-don-t-build-the-python-module-when-cross-compil.patch (renamed from patches/gobject-introspection-1.66.1/0003-HACK-don-t-build-the-python-module-when-cross-compil.patch)14
-rw-r--r--patches/gobject-introspection-1.72.0/series5
-rw-r--r--patches/gpsd-3.21/0003-SConstruct-don-t-make-python-files-without-shebang-e.patch23
-rw-r--r--patches/gpsd-3.21/series7
-rw-r--r--patches/gpsd-3.23.1/0001-SConscript-Search-for-ncursesw-pkgconfig.patch (renamed from patches/gpsd-3.21/0001-Search-for-ncursesw-pkgconfig.patch)16
-rw-r--r--patches/gpsd-3.23.1/0002-SConscript-Use-target-option-to-decide-whenewer-to-r.patch (renamed from patches/gpsd-3.21/0002-SConstruct-Use-target-option-to-decide-whenewer-to-r.patch)15
-rw-r--r--patches/gpsd-3.23.1/0003-SConscript-don-t-make-python-files-without-shebang-e.patch23
-rw-r--r--patches/gpsd-3.23.1/0004-SConscript-don-t-use-lnsl.patch (renamed from patches/gpsd-3.21/0004-SConstruct-don-t-use-lnsl.patch)14
-rw-r--r--patches/gpsd-3.23.1/series7
-rw-r--r--patches/grpc-1.21.0/0001-Add-pkg-config-files.patch47
-rw-r--r--patches/grpc-1.21.0/0100-Fix-gettid-naming-conflict.patch32
-rw-r--r--patches/grpc-1.21.0/0101-Rename-gettid-functions.patch79
-rw-r--r--patches/grpc-1.21.0/series7
-rw-r--r--patches/gst-plugins-bad-0.10.23/0001-remove-endianness-swapping.patch45
-rw-r--r--patches/gst-plugins-bad-0.10.23/0002-add-rgb666-support.patch52
-rw-r--r--patches/gst-plugins-bad-0.10.23/series4
-rw-r--r--patches/gst-plugins-base-0.10.36/0001-added-RGB666-Support-to-ffmpegcolorspace.patch296
-rw-r--r--patches/gst-plugins-base-0.10.36/0002-audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch33
-rw-r--r--patches/gst-plugins-base-0.10.36/series5
-rw-r--r--patches/gst-plugins-gl-0.10.2/0001-make-sure-gtk-example-builds-for-non-X-gtk.patch36
-rw-r--r--patches/gst-plugins-gl-0.10.2/series4
-rw-r--r--patches/gst-plugins-good-0.10.31/0001-follow-up-on-bug-622500-in-gst-plugins-good-bugzilla.patch22
-rw-r--r--patches/gst-plugins-good-0.10.31/0002-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch32
-rw-r--r--patches/gst-plugins-good-0.10.31/0003-remove-V4L2_CID_HCENTER-V4L2_CID_VCENTER-usage.patch60
-rw-r--r--patches/gst-plugins-good-0.10.31/series6
-rw-r--r--patches/gst-plugins-rs-1.24.2/0001-allow-executing-cargo-with-frozen.patch58
-rw-r--r--patches/gst-plugins-rs-1.24.2/0002-HACK-allow-feature-build_hasher_simple_hash_one.patch25
-rw-r--r--patches/gst-plugins-rs-1.24.2/series5
-rw-r--r--patches/gst-python-1.24.2/0001-gst-python-fix-cross-compiling.patch43
-rw-r--r--patches/gst-python-1.24.2/series4
-rw-r--r--patches/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch31
-rw-r--r--patches/gstreamer-0.10.36/series4
-rw-r--r--patches/gtk+-2.24.32/0001-gtk-Do-not-build-demos.patch22
-rw-r--r--patches/gtk+-2.24.32/series4
-rw-r--r--patches/gtk+-3.24.35/0001-build-make-atk-bridge-optional.patch (renamed from patches/gtk+-3.24.21/0001-build-make-atk-bridge-optional.patch)12
-rw-r--r--patches/gtk+-3.24.35/series (renamed from patches/gtk+-3.24.21/series)0
-rw-r--r--patches/hpanel-0.3.2/0001-Patches-the-Makefile-to-be-able-to-cross-compile.patch44
-rw-r--r--patches/hpanel-0.3.2/series3
-rw-r--r--patches/hping3-20051105/clean_makefile.diff74
-rw-r--r--patches/hping3-20051105/host_vs_target.diff75
-rw-r--r--patches/hping3-20051105/remove_pcap_header.diff23
-rw-r--r--patches/hping3-20051105/series3
-rw-r--r--patches/htmldoc-1.9.16/0001-Makefile-don-t-build-install-docs-or-desktop-files.patch28
-rw-r--r--patches/htmldoc-1.9.16/series (renamed from patches/open62541-1.2/series)4
-rw-r--r--patches/ima-evm-utils-1.1/0001-INSTALL-remove-file-at-it-s-autogenerated-by-autotoo.patch389
-rw-r--r--patches/ima-evm-utils-1.1/0002-Makefile.am-rename-INCLUDES-AM_CPPFLAGS.patch40
-rw-r--r--patches/ima-evm-utils-1.1/0006-evmctl-libimaevm-use-EVP_MAX_MD_SIZE-for-hash-size-i.patch73
-rw-r--r--patches/ima-evm-utils-1.1/0008-evmctl-add-parameter-e-to-set-evm-hash-algo.patch133
-rw-r--r--patches/ima-evm-utils-1.1/0011-HACK-don-t-generate-man-page.patch19
-rw-r--r--patches/ima-evm-utils-1.1/0013-evmctl-use-correct-include-for-xattr.h.patch80
-rw-r--r--patches/ima-evm-utils-1.1/series16
-rw-r--r--patches/ima-evm-utils-1.3.2/0001-evmctl-find-add-missing-closedir-dir-on-error.patch (renamed from patches/ima-evm-utils-1.1/0003-evmctl-find-add-missing-closedir-dir-on-error.patch)6
-rw-r--r--patches/ima-evm-utils-1.3.2/0002-evmctl-find-add-missing-error-handling-and-propagate.patch (renamed from patches/ima-evm-utils-1.1/0004-evmctl-find-add-missing-error-handling-and-propagate.patch)6
-rw-r--r--patches/ima-evm-utils-1.3.2/0003-evmctl-add-fallback-definitions-for-XATTR_NAME_IMA.patch (renamed from patches/ima-evm-utils-1.1/0005-evmctl-add-fallback-definitions-for-XATTR_NAME_IMA.patch)8
-rw-r--r--patches/ima-evm-utils-1.3.2/0004-libimaevm-use-SHA_DIGEST_LENGTH-instead-of-open-codi.patch (renamed from patches/ima-evm-utils-1.1/0007-libimaevm-use-SHA_DIGEST_LENGTH-instead-of-open-codi.patch)6
-rw-r--r--patches/ima-evm-utils-1.3.2/0005-evmctl-add-support-for-offline-image-preparation.patch (renamed from patches/ima-evm-utils-1.1/0009-evmctl-add-support-for-offline-image-preparation.patch)76
-rw-r--r--patches/ima-evm-utils-1.3.2/0006-evmctl-Do-not-account-.-and-.-for-directory-hash-gen.patch (renamed from patches/ima-evm-utils-1.1/0010-evmctl-Do-not-account-.-and-.-for-directory-hash-gen.patch)6
-rw-r--r--patches/ima-evm-utils-1.3.2/0007-Fix-warning-for-non-debug-use-case.patch (renamed from patches/ima-evm-utils-1.1/0012-Fix-warning-for-non-debug-use-case.patch)4
l---------patches/ima-evm-utils-1.3.2/autogen.sh (renamed from patches/evtest-1.33/autogen.sh)0
-rw-r--r--patches/ima-evm-utils-1.3.2/series10
-rw-r--r--patches/installer-0.7.0/0001-HACK-drop-shebang-magic.patch37
-rw-r--r--patches/installer-0.7.0/series4
-rw-r--r--patches/jed-0.99-19/0001-jed-don-t-execute-cross-compiled-files.patch30
-rw-r--r--patches/jed-0.99-19/0002-avoid-rpath.patch27
-rw-r--r--patches/jed-0.99-19/series5
-rw-r--r--patches/keyutils-1.6.3/0001-Makefile-don-t-create-absolute-link-outside-of-DESTD.patch (renamed from patches/keyutils-1.5.10/0001-Makefile-don-t-create-absolute-link-outside-of-DESTD.patch)10
-rw-r--r--patches/keyutils-1.6.3/0002-build-use-SOURCE_DATE_EPOCH-if-available-to-make-the.patch (renamed from patches/keyutils-1.5.10/0002-build-use-SOURCE_DATE_EPOCH-if-available-to-make-the.patch)4
-rw-r--r--patches/keyutils-1.6.3/series (renamed from patches/keyutils-1.5.10/series)0
-rw-r--r--patches/libaio-0.3.110/0001-make-the-package-DESTDIR-aware.patch30
-rw-r--r--patches/libaio-0.3.110/series4
l---------patches/libatasmart-0.19/autogen.sh (renamed from patches/f2fs-tools-1.12.0/autogen.sh)0
-rw-r--r--patches/libbsd-0.11.7/0001-use-I-instead-of-isystem-for-local-path.patch (renamed from patches/libbsd-0.8.2/0001-use-I-instead-of-isystem-for-local-path.patch)4
l---------patches/libbsd-0.11.7/autogen.sh (renamed from patches/fakeroot-1.25.3/autogen.sh)0
-rw-r--r--patches/libbsd-0.11.7/series (renamed from patches/libbsd-0.8.2/series)0
-rw-r--r--patches/libcaca-0.99.beta16/0002-set-the-escape-delay-with-set_escdelay.patch27
-rw-r--r--patches/libcaca-0.99.beta16/series4
-rw-r--r--patches/libcaca-0.99.beta19/0001-caca-config-add-SYSROOT-support.patch (renamed from patches/libcaca-0.99.beta16/0001-caca-config-add-SYSROOT-support.patch)8
-rw-r--r--patches/libcaca-0.99.beta19/series4
-rw-r--r--patches/libcap-2.44/0001-Fix-build-on-non-Linux-host.patch41
-rw-r--r--patches/libcap-2.44/series4
-rw-r--r--patches/libcroco-0.6.2/0001-croco-config-add-SYSROOT-support.patch28
-rw-r--r--patches/libcroco-0.6.2/series1
-rw-r--r--patches/libffi-3.3/0001-Fixed-missed-ifndef-for-__mips_soft_float-442.patch25
-rw-r--r--patches/libffi-3.3/0002-powerpc-fix-build-failure-on-power7-and-older-532.patch35
-rw-r--r--patches/libffi-3.3/series5
-rw-r--r--patches/libffi-3.4.6/0001-libffi-Fix-location-of-libraries-for-multilib-toolch.patch24
-rw-r--r--patches/libffi-3.4.6/0002-libffi-ensure-sysroot-paths-are-not-in-libffi.pc.patch33
l---------patches/libffi-3.4.6/autogen.sh (renamed from patches/glu-9.0.1/autogen.sh)0
-rw-r--r--patches/libffi-3.4.6/series5
-rw-r--r--patches/libgpg-error-1.36/0001-awk-Prepare-for-Gawk-5.0.patch154
-rw-r--r--patches/libgpg-error-1.36/series4
-rw-r--r--patches/libgpg-error-1.47/0001-gpgrt-config-improve-pkg-config-file-parsing.patch33
-rw-r--r--patches/libgpg-error-1.47/series4
-rw-r--r--patches/libgudev-230/0001-Prepare-to-check-for-an-older-UDEV.patch131
-rw-r--r--patches/libgudev-230/series4
l---------patches/libkcapi-1.5.0/autogen.sh (renamed from patches/gtk+-2.24.32/autogen.sh)0
-rw-r--r--patches/liboil-0.3.16/0001-liboil-don-t-check-for-assembler-options-and-add-com.patch29
-rw-r--r--patches/liboil-0.3.16/0002-fix-unaligned-access-whitelist-check.patch22
-rwxr-xr-xpatches/liboil-0.3.16/autogen.sh19
-rw-r--r--patches/liboil-0.3.16/series5
-rw-r--r--patches/libpcap-1.10.4/0100-build-and-install-share-lib-only.patch (renamed from patches/libpcap-1.8.1/0100-build-and-install-share-lib-only.patch)22
-rw-r--r--patches/libpcap-1.10.4/0101-pcap-config-add-SYSROOT-support.patch (renamed from patches/libpcap-1.8.1/0101-pcap-config-add-SYSROOT-support.patch)21
-rw-r--r--patches/libpcap-1.10.4/series (renamed from patches/libpcap-1.8.1/series)4
-rw-r--r--patches/libpcap-1.8.1/0001-Fix-compilation-if-INET6-isn-t-defined.patch58
-rw-r--r--patches/libpcap-1.8.1/0102-configure.ac-allow-specifying-path-for-libnl3.patch25
-rw-r--r--patches/libseccomp-2.5.5/0001-run-time-use-a-broadly-supported-shell-interpreter.patch (renamed from patches/libseccomp-2.5.1/0001-run-time-use-a-broadly-supported-shell-interpreter.patch)0
-rw-r--r--patches/libseccomp-2.5.5/series (renamed from patches/libseccomp-2.5.1/series)0
-rw-r--r--patches/libsndfile-1.0.25/0001-configure.ac-use-default-largefile-macro.patch22
-rwxr-xr-xpatches/libsndfile-1.0.25/autogen.sh19
-rw-r--r--patches/libsndfile-1.0.25/series4
-rw-r--r--patches/libsoup-2.66.2/0001-meson-allow-enabling-gir-when-cross-compiling.patch22
-rw-r--r--patches/libsoup-2.66.2/series4
-rw-r--r--patches/libtahu-1.0.1/0001-c-core-Makefile-Fixes-for-parallel-make-and-make-lib.patch34
-rw-r--r--patches/libtahu-1.0.1/0002-tahu.h-Do-not-define-SPARKPLUG_DEBUG.patch28
-rw-r--r--patches/libtahu-1.0.1/series2
-rw-r--r--patches/libtool-2.4.6/0001-libool.m4-add-ARFLAGS-variable.patch68
-rw-r--r--patches/libtool-2.4.6/0002-ARFLAGS-use-cr-instead-of-cru-by-default.patch124
-rw-r--r--patches/libtool-2.4.6/0003-libtool-fix-GCC-linking-with-specs.patch33
-rw-r--r--patches/libtool-2.4.6/0004-libtool-fix-GCC-clang-linking-with-fsanitize.patch33
-rw-r--r--patches/libtool-2.4.6/0005-libtool-pass-through-fuse-ld-flags.patch32
-rw-r--r--patches/libtool-2.4.6/series8
-rw-r--r--patches/libtremor-2018-03-19-g7c30a6634619/0001-HACK-configure.in-remove-extended-OGG-check.patch (renamed from patches/libtremor-1.0.3/0001-HACK-configure.in-remove-extended-OGG-check.patch)2
-rw-r--r--patches/libtremor-2018-03-19-g7c30a6634619/0002-Only-enable-ARM-assember-on-armel.patch30
l---------patches/libtremor-2018-03-19-g7c30a6634619/autogen.sh (renamed from patches/ima-evm-utils-1.1/autogen.sh)0
-rw-r--r--patches/libtremor-2018-03-19-g7c30a6634619/series (renamed from patches/libtremor-1.0.3/series)3
-rw-r--r--patches/libunwind-1.4.0/0001-Fix-compilation-with-fno-common.patch441
-rw-r--r--patches/libunwind-1.4.0/series4
-rwxr-xr-xpatches/libuv-v1.47.0/autogen.sh (renamed from patches/libuv-v1.34.0/autogen.sh)0
-rw-r--r--patches/libwacom-1.9/0001-HACK-build-generate-hwdb-as-native-tool.patch95
-rw-r--r--patches/libwacom-1.9/series4
-rw-r--r--patches/libx86-1.1/libx86-1.1-IF_MASK-undeclared.diff33
-rw-r--r--patches/libx86-1.1/series1
-rw-r--r--patches/libxml2-2.11.7/0200-xml2-config-is-not-SYSROOT-aware.patch (renamed from patches/libxml2-2.9.12/0200-xml2-config-is-not-SYSROOT-aware.patch)2
-rw-r--r--patches/libxml2-2.11.7/series (renamed from patches/libxml2-2.9.12/series)0
-rw-r--r--patches/libxslt-1.1.34/0001-Fix-xml2-config-check-in-configure-script.patch23
-rw-r--r--patches/libxslt-1.1.34/series7
-rw-r--r--patches/libxslt-1.1.39/0200-xslt-config-add-SYSROOT-support.patch (renamed from patches/libxslt-1.1.34/0200-xslt-config-add-SYSROOT-support.patch)0
-rw-r--r--patches/libxslt-1.1.39/series5
l---------patches/libyaml-0.2.5/autogen.sh (renamed from patches/libbsd-0.8.2/autogen.sh)0
-rw-r--r--patches/linuxptp-2.0/0001-Fix-building-with-new-kernel-headers.patch54
-rw-r--r--patches/linuxptp-2.0/series4
-rw-r--r--patches/lmbench-3.0-a9/0001-Add-autotool-based-build-system.patch (renamed from patches/lmbench-3.0-a9/lmbench-3.0-a9-remove-old-buildsystem.diff)34
-rw-r--r--patches/lmbench-3.0-a9/0002-Add-autotool-based-build-system.patch (renamed from patches/lmbench-3.0-a9/lmbench-3.0-a9-autotoolize.diff)47
-rw-r--r--patches/lmbench-3.0-a9/0003-minor-cleanups.patch (renamed from patches/lmbench-3.0-a9/lmbench-3.0-a9-rpcheaders.diff)20
-rw-r--r--patches/lmbench-3.0-a9/0004-Added-libtirpc.patch59
-rw-r--r--patches/lmbench-3.0-a9/0005-Added-missing-include-for-socklen_t-check.patch25
-rw-r--r--patches/lmbench-3.0-a9/series11
-rw-r--r--patches/localedef-glibc-2.37/0001-HACK-only-build-and-install-localedef.patch (renamed from patches/localedef-glibc-2.27/0001-HACK-only-build-and-install-localedef.patch)10
-rw-r--r--patches/localedef-glibc-2.37/0002-Do-not-fail-on-unknown-LC_IDENTIFICATION.category-va.patch (renamed from patches/localedef-glibc-2.27/0002-Do-not-fail-on-unknown-LC_IDENTIFICATION.category-va.patch)4
-rw-r--r--patches/localedef-glibc-2.37/series (renamed from patches/localedef-glibc-2.27/series)0
-rw-r--r--patches/lsh-2.0.4/0001-fix-typo-in-md5-compress.asm.patch21
-rw-r--r--patches/lsh-2.0.4/series4
-rw-r--r--patches/lshw-B.02.14/0001-fix-cross-compilation.patch69
-rw-r--r--patches/lshw-B.02.14/0003-fix-compiling-with-g-4.5.patch27
-rw-r--r--patches/lshw-B.02.14/series3
-rw-r--r--patches/lshw-B.02.19.2/0001-Replace-keyword-node-with-hwnode-for-TinyXpath-compa.patch (renamed from patches/lshw-B.02.14/0002-Replace-keyword-node-with-hwnode-for-TinyXpath-compa.patch)20
-rw-r--r--patches/lshw-B.02.19.2/series4
-rw-r--r--patches/lua-5.4.4/0001-Cross-compile-in-ptxdist-envirionment.patch (renamed from patches/lua-5.3.4/0001-Cross-compile-in-ptxdist-envirionment.patch)41
-rw-r--r--patches/lua-5.4.4/0002-Install-pkgconfig-file.patch (renamed from patches/lua-5.3.4/0002-Install-pkgconfig-file.patch)16
-rw-r--r--patches/lua-5.4.4/series (renamed from patches/lua-5.3.4/series)0
-rw-r--r--patches/lxml-4.4.2/0001-do-not-use-libdirs-from-xslt-config.patch31
-rw-r--r--patches/lxml-4.4.2/series1
-rw-r--r--patches/m4-1.4.18/0001-fflush-adjust-to-glibc-2.28-libio.h-removal.patch159
-rw-r--r--patches/m4-1.4.18/series4
-rw-r--r--patches/meson-0.56.0/0001-pkgconfig-Respect-variable-ordering-when-passed-as-l.patch26
-rw-r--r--patches/meson-0.56.0/0101-HACK-enable-NEON-only-for-ARMv7.patch25
-rw-r--r--patches/meson-0.56.0/series7
-rw-r--r--patches/meson-1.3.0/0001-don-t-add-rpaths-for-build-directories-when-cross-co.patch (renamed from patches/meson-0.56.0/0100-don-t-add-rpaths-for-build-directories-when-cross-co.patch)16
-rw-r--r--patches/meson-1.3.0/0002-HACK-enable-NEON-only-for-ARMv7.patch25
-rw-r--r--patches/meson-1.3.0/0003-HACK-don-t-fail-if-lrelease-is-missing.patch26
-rw-r--r--patches/meson-1.3.0/0004-HACK-don-t-fail-if-uic-is-missing.patch29
-rw-r--r--patches/meson-1.3.0/series7
-rw-r--r--patches/mgetty-1.1.36/0001-fix-install.patch205
-rw-r--r--patches/mgetty-1.1.36/0002-fix-building-on-arm64.patch22
-rw-r--r--patches/mgetty-1.1.36/0003-fix-building-with-gcc-7.x.patch78
-rw-r--r--patches/mgetty-1.1.36/series6
-rw-r--r--patches/minicom-2.8/0002-lib-usleep.c-fix-error-NULL-undeclared.patch27
-rw-r--r--patches/minicom-2.8/series5
-rw-r--r--patches/minicom-2.9/0001-build-reproducibly.patch (renamed from patches/minicom-2.8/0001-build-reproducibly.patch)6
-rw-r--r--patches/minicom-2.9/series4
-rw-r--r--patches/mlpack-4.2.1/0001-HACK-don-t-do-magic-stuff-for-cross-compiling.patch67
-rw-r--r--patches/mlpack-4.2.1/series4
l---------patches/mobile-broadband-provider-info-20220725/autogen.sh (renamed from patches/libgpg-error-1.36/autogen.sh)0
-rw-r--r--patches/mongodb-7.2.2/0001-HACK-SConstruct-remove-metrics.patch40
-rw-r--r--patches/mongodb-7.2.2/0002-HACK-SConstruct-keep-environment.patch24
-rw-r--r--patches/mongodb-7.2.2/0003-HACK-don-t-require-GitPython.patch24
-rw-r--r--patches/mongodb-7.2.2/series6
-rw-r--r--patches/mtd-utils-2.1.2/0002-Add-an-ubifs-mount-helper.patch142
l---------patches/mtd-utils-2.1.2/autogen.sh1
-rw-r--r--patches/mtd-utils-2.2.0/0001-nandmarkbad-new-util-to-mark-blocks-as-bad.patch (renamed from patches/mtd-utils-2.1.2/0001-nandmarkbad-new-util-to-mark-blocks-as-bad.patch)18
l---------patches/mtd-utils-2.2.0/autogen.sh (renamed from patches/libgudev-230/autogen.sh)0
-rw-r--r--patches/mtd-utils-2.2.0/series (renamed from patches/mtd-utils-2.1.2/series)3
-rw-r--r--patches/mysql-5.7.11/0001-Fix_buildsystem-use-compile-only-tests.patch100
-rw-r--r--patches/mysql-5.7.11/series4
-rw-r--r--patches/nanocom-1.0/0001-Nanocom-fix-its-buildsystem.patch37
-rw-r--r--patches/nanocom-1.0/series4
-rw-r--r--patches/nbd-3.12.1/0001-Don-t-make-the-readit-function-depend-on-WORDS_BIGEN.patch31
-rw-r--r--patches/nbd-3.12.1/series4
-rw-r--r--patches/ncftp-3.2.6-src/0001-HACK-configure-always-assume-cross-compiling.patch25
-rw-r--r--patches/ncftp-3.2.6-src/0002-HACK-avoid-miss-detecting-clang.patch36
-rw-r--r--patches/ncftp-3.2.6-src/series5
-rw-r--r--patches/ncurses-6.4/0001-teach-ncurses-config-about-sysroot.patch (renamed from patches/ncurses-6.2/0001-teach-ncurses-config-about-sysroot.patch)18
-rw-r--r--patches/ncurses-6.4/series (renamed from patches/ncurses-6.2/series)0
-rw-r--r--patches/net-snmp-5.9.1/0001-net-snmp-config-add-SYSROOT-support.patch (renamed from patches/net-snmp-5.9/0001-net-snmp-config-add-SYSROOT-support.patch)10
-rw-r--r--patches/net-snmp-5.9.1/0002-Don-t-disable-udp-and-tcp-when-disable-agentx-dom-so.patch (renamed from patches/net-snmp-5.9/0002-Don-t-disable-udp-and-tcp-when-disable-agentx-dom-so.patch)4
l---------patches/net-snmp-5.9.1/autogen.sh (renamed from patches/libkcapi-1.1.5/autogen.sh)0
-rw-r--r--patches/net-snmp-5.9.1/series (renamed from patches/net-snmp-5.9/series)0
l---------patches/net-snmp-5.9/autogen.sh1
-rw-r--r--patches/netperf-2.7.0/0001-fix-inlining.patch46
-rw-r--r--patches/netperf-2.7.0/series4
-rw-r--r--patches/nfs-utils-2.5.3/0001-allow-installing-all-tools-in-usr.patch38
-rw-r--r--patches/nfs-utils-2.5.3/0002-configure-check-for-rpc-rpc.h-presence.patch32
l---------patches/nfs-utils-2.5.3/autogen.sh1
-rw-r--r--patches/nfs-utils-2.5.3/series5
-rw-r--r--patches/nftables-0.8.3/0001-configure-don-t-enable-xtables-when-without-xtables-.patch32
l---------patches/nftables-0.8.3/autogen.sh1
-rw-r--r--patches/nftables-0.8.3/series4
-rw-r--r--patches/nginx-1.18.0/0006-auto-lib-openssl-conf-use-pkg-config.patch27
-rw-r--r--patches/nginx-1.18.0/0100-auto-endianness-add-mechanism-allowing-to-force-resu.patch22
-rw-r--r--patches/nginx-1.24.0/0001-auto-type-sizeof-rework-autotest-to-be-cross-compila.patch (renamed from patches/nginx-1.18.0/0001-auto-type-sizeof-rework-autotest-to-be-cross-compila.patch)2
-rw-r--r--patches/nginx-1.24.0/0002-auto-feature-add-mechanism-allowing-to-force-feature.patch (renamed from patches/nginx-1.18.0/0002-auto-feature-add-mechanism-allowing-to-force-feature.patch)0
-rw-r--r--patches/nginx-1.24.0/0003-auto-set-ngx_feature_run_force_result-for-each-featu.patch (renamed from patches/nginx-1.18.0/0003-auto-set-ngx_feature_run_force_result-for-each-featu.patch)46
-rw-r--r--patches/nginx-1.24.0/0004-auto-lib-libxslt-conf-use-pkg-config.patch (renamed from patches/nginx-1.18.0/0004-auto-lib-libxslt-conf-use-pkg-config.patch)2
-rw-r--r--patches/nginx-1.24.0/0005-auto-unix-make-sys_nerr-guessing-cross-friendly.patch (renamed from patches/nginx-1.18.0/0005-auto-unix-make-sys_nerr-guessing-cross-friendly.patch)27
-rw-r--r--patches/nginx-1.24.0/0006-auto-lib-openssl-conf-use-pkg-config.patch247
-rw-r--r--patches/nginx-1.24.0/0007-auto-lib-libgd-conf-use-pkg-config.patch (renamed from patches/nginx-1.18.0/0007-auto-lib-libgd-conf-use-pkg-config.patch)17
-rw-r--r--patches/nginx-1.24.0/0008-src-os-unix-ngx_linux_config.h-only-include-dlfcn.h-.patch (renamed from patches/nginx-1.18.0/0008-src-os-unix-ngx_linux_config.h-only-include-dlfcn.h-.patch)2
-rw-r--r--patches/nginx-1.24.0/0009-auto-os-linux-fix-build-with-libxcrypt.patch34
-rw-r--r--patches/nginx-1.24.0/0010-Allow-forcing-of-endianness-for-cross-compilation.patch114
-rw-r--r--patches/nginx-1.24.0/0100-auto-unix-allow-overriding-the-IPv6-build-tests.patch (renamed from patches/nginx-1.18.0/0101-auto-unix-allow-overriding-the-IPv6-build-tests.patch)4
-rw-r--r--patches/nginx-1.24.0/series (renamed from patches/nginx-1.18.0/series)7
-rw-r--r--patches/ninja-1.11.1.g95dee.kitware.jobserver-1/0001-don-t-close-open-fds.patch (renamed from patches/ninja-1.8.2/0007-don-t-close-open-fds.patch)6
-rw-r--r--patches/ninja-1.11.1.g95dee.kitware.jobserver-1/series4
-rw-r--r--patches/ninja-1.8.2/0001-Add-GNU-make-jobserver-client-support.patch478
-rw-r--r--patches/ninja-1.8.2/0002-Add-TokenPool-monitoring-to-SubprocessSet-DoWork.patch554
-rw-r--r--patches/ninja-1.8.2/0003-Ignore-jobserver-when-jN-is-forced-on-command-line.patch192
-rw-r--r--patches/ninja-1.8.2/0004-Honor-lN-from-MAKEFLAGS.patch128
-rw-r--r--patches/ninja-1.8.2/0005-Use-LinePrinter-for-TokenPool-messages.patch122
-rw-r--r--patches/ninja-1.8.2/0006-Prepare-PR-for-merging.patch151
-rw-r--r--patches/ninja-1.8.2/series10
-rw-r--r--patches/node-v12.16.1/0001-Disable-running-gyp-on-shared-deps.patch21
-rw-r--r--patches/node-v12.16.1/0002-Install-both-binaries-and-use-libdir.patch83
-rw-r--r--patches/node-v12.16.1/0003-tools-do-not-explicitely-set-an-rpath-in-make-genera.patch30
-rw-r--r--patches/node-v12.16.1/0004-HACK-don-t-add-LD_LIBRARY_PATH-for-external-tools.patch44
-rw-r--r--patches/node-v12.16.1/0005-HACK-run-configure-directly-with-python2.patch23
-rw-r--r--patches/node-v12.16.1/series8
-rw-r--r--patches/node-v20.11.0/0001-Disable-running-gyp-on-shared-deps.patch46
-rw-r--r--patches/node-v20.11.0/0002-v8-don-t-override-ARM-CFLAGS.patch98
-rw-r--r--patches/node-v20.11.0/0100-HACK-don-t-add-LD_LIBRARY_PATH-for-external-tools.patch46
-rw-r--r--patches/node-v20.11.0/0101-run-native-code-generators-with-qemu.patch85
-rw-r--r--patches/node-v20.11.0/series9
-rw-r--r--patches/nss-3.98/0001-nss-fix-nsinstall-build.patch (renamed from patches/nss-3.63/0001-nss-fix-nsinstall-build.patch)2
-rw-r--r--patches/nss-3.98/0002-add-nss.pc.in.patch (renamed from patches/nss-3.63/0002-add-nss.pc.in.patch)0
-rw-r--r--patches/nss-3.98/0003-HACK-don-t-build-commands-that-need-zlib.patch (renamed from patches/nss-3.63/0003-HACK-don-t-build-commands-that-need-zlib.patch)10
-rw-r--r--patches/nss-3.98/0004-HACK-fix-parallel-building-issue.patch (renamed from patches/nss-3.63/0004-HACK-fix-parallel-building-issue.patch)4
-rw-r--r--patches/nss-3.98/0005-fix-dependency-generation.patch (renamed from patches/nss-3.63/0005-fix-dependency-generation.patch)2
-rw-r--r--patches/nss-3.98/series (renamed from patches/nss-3.63/series)0
-rw-r--r--patches/ntp-4.2.8p12/0001-make-the-build-reproducible.patch26
-rw-r--r--patches/ntp-4.2.8p12/series4
-rw-r--r--patches/ntpclient-2007/0001-Use-the-correct-macro-name-to-parametrize-make-s-sta.patch33
-rw-r--r--patches/ntpclient-2007/0002-Avoid-some-confusing-compile-time-warnings.patch33
-rw-r--r--patches/ntpclient-2007/series3
-rw-r--r--patches/ntpclient_2015_365/0001-Makefile-add-installtarget.patch (renamed from patches/ntpclient-2007/0003-Makefile-add-installtarget.patch)14
-rw-r--r--patches/ntpclient_2015_365/series4
-rw-r--r--patches/numpy-1.17.4/0001-remove-sse2-flag.patch27
-rw-r--r--patches/numpy-1.17.4/series1
-rw-r--r--patches/numpy-1.26.0/0001-use-path-from-environment-only-for-library_dirs.patch25
-rw-r--r--patches/numpy-1.26.0/series4
-rw-r--r--patches/open62541-1.2/0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch144
-rw-r--r--patches/open62541-1.3.4/0001-feat-server-allow-UA_NODESET_DIR-to-be-custom-define.patch71
-rw-r--r--patches/open62541-1.3.4/series4
-rw-r--r--patches/openblas-0.3.24/0001-openblas.pc-add-prefix.patch20
-rw-r--r--patches/openblas-0.3.24/series4
-rw-r--r--patches/openssl-1.1.1k/0003-Set-systemwide-default-settings-for-libssl-users.patch46
-rw-r--r--patches/openssl-1.1.1k/series6
-rw-r--r--patches/openssl-3.2.1/0001-debian-targets.patch (renamed from patches/openssl-1.1.1k/0001-debian-targets.patch)99
-rw-r--r--patches/openssl-3.2.1/0002-pic.patch (renamed from patches/openssl-1.1.1k/0002-pic.patch)32
-rw-r--r--patches/openssl-3.2.1/0003-Configure-allow-to-enable-ktls-if-target-does-not-st.patch55
-rw-r--r--patches/openssl-3.2.1/0004-conf-Serialize-allocation-free-of-ssl_names.patch106
-rw-r--r--patches/openssl-3.2.1/0005-Configure-drop-fzero-call-used-regs-used-gpr-from-De.patch25
-rw-r--r--patches/openssl-3.2.1/series10
-rw-r--r--patches/opkg-utils-0.4.2/0001-Fix-reproducibility-issues-in-opkg-build.patch35
-rw-r--r--patches/opkg-utils-0.4.2/0103-Revert-opkg-build-clamp-mtimes-to-SOURCE_DATE_EPOCH.patch38
-rw-r--r--patches/opkg-utils-0.6.3/0100-opkg-build-use-CROSS_COMPILE-ar.patch (renamed from patches/opkg-utils-0.4.2/0100-opkg-build-use-CROSS_COMPILE-ar.patch)10
-rw-r--r--patches/opkg-utils-0.6.3/0101-Update-Installed-Size-properly.patch (renamed from patches/opkg-utils-0.4.2/0101-Update-Installed-Size-properly.patch)6
-rw-r--r--patches/opkg-utils-0.6.3/0102-opkg-build-in-ptxdist-the-maxium-UID-for-system-user.patch (renamed from patches/opkg-utils-0.4.2/0102-opkg-build-in-ptxdist-the-maxium-UID-for-system-user.patch)4
-rw-r--r--patches/opkg-utils-0.6.3/0103-opkg-build-fix-typo-in-compressorargs.patch (renamed from patches/opkg-utils-0.4.2/0104-opkg-build-fix-typo-in-compressorargs.patch)4
-rw-r--r--patches/opkg-utils-0.6.3/series (renamed from patches/opkg-utils-0.4.2/series)6
-rw-r--r--patches/opus-1.5.1/0001-fix-arm-asm-meson-source-build.patch66
-rw-r--r--patches/opus-1.5.1/0002-Extended-asm-with-C-operands-doesn-t-work-at-top-lev.patch44
-rw-r--r--patches/opus-1.5.1/0003-use-semicolon-not-newline-for-inline-assembler.patch47
-rw-r--r--patches/opus-1.5.1/0004-Add-OPUS_ARM_INLINE_DOTPROD-dotprod-check.patch73
-rw-r--r--patches/opus-1.5.1/0005-Fix-meson-AVX2-fixed-point.patch23
-rw-r--r--patches/opus-1.5.1/0100-ptxdist-get-version.py-don-t-detect-extract-git-as-g.patch25
-rw-r--r--patches/opus-1.5.1/series11
-rw-r--r--patches/pango-1.43.0/0001-tests-fix-build-dependency.patch35
-rw-r--r--patches/pango-1.43.0/series4
-rw-r--r--patches/poco-1.9.0/0001-fix-parallel-building.patch57
-rw-r--r--patches/poco-1.9.0/series4
-rw-r--r--patches/polkit-0.105/0001-0.106-agenthelper-pam-Fix-newline-trimming-code.patch47
-rw-r--r--patches/polkit-0.105/0002-0.108-build-Fix-.gir-generation-for-parallel-make.patch45
-rw-r--r--patches/polkit-0.105/0003-0.110-Set-XAUTHORITY-environment-variable-if-is-unse.patch62
-rw-r--r--patches/polkit-0.105/0004-0.110-Fix-build-on-GNU-Hurd.patch44
-rw-r--r--patches/polkit-0.105/0005-0.111-pkexec-Set-process-environment-from-pam_getenv.patch47
-rw-r--r--patches/polkit-0.105/0006-0.111-Fix-a-memory-leak.patch26
-rw-r--r--patches/polkit-0.105/0007-0.112-Use-GOnce-for-interface-type-registration.patch122
-rw-r--r--patches/polkit-0.105/0008-0.112-polkitunixprocess-Deprecate-racy-APIs.patch31
-rw-r--r--patches/polkit-0.105/0009-0.112-pkcheck-Support-process-pid-start-time-uid-syn.patch121
-rw-r--r--patches/polkit-0.105/0010-0.113-Port-internals-non-deprecated-PolkitProcess-AP.patch34
-rw-r--r--patches/polkit-0.105/0011-0.113-pkexec-Work-around-systemd-injecting-broken-XD.patch81
-rw-r--r--patches/polkit-0.105/0012-0.113-PolkitAgentSession-fix-race-between-child-and-.patch125
-rw-r--r--patches/polkit-0.105/0013-0.113-polkitd-Fix-problem-with-removing-non-existent.patch27
-rw-r--r--patches/polkit-0.105/0014-0.113-PolkitSystemBusName-Add-public-API-to-retrieve.patch171
-rw-r--r--patches/polkit-0.105/0015-0.113-Fixed-compilation-problem-in-the-backend.patch27
-rw-r--r--patches/polkit-0.105/0016-0.113-Don-t-discard-error-data-returned-by-polkit_sy.patch29
-rw-r--r--patches/polkit-0.105/0017-0.113-sessionmonitor-systemd-Deduplicate-code-paths.patch108
-rw-r--r--patches/polkit-0.105/0018-0.113-sessionmonitor-systemd-prepare-for-D-Bus-user-.patch94
-rw-r--r--patches/polkit-0.105/0019-0.113-Refuse-duplicate-user-arguments-to-pkexec.patch42
-rw-r--r--patches/polkit-0.105/0020-0.113-authority-Fix-memory-leak-in-EnumerateActions-.patch31
-rw-r--r--patches/polkit-0.105/0021-0.113-CVE-2015-3218-backend-Handle-invalid-object-pa.patch120
-rw-r--r--patches/polkit-0.105/0022-0.113-sessionmonitor-systemd-Use-sd_uid_get_state-to.patch77
-rw-r--r--patches/polkit-0.105/0023-0.113-Fix-a-possible-NULL-dereference.patch39
-rw-r--r--patches/polkit-0.105/0024-0.113-Remove-a-redundant-assignment.patch30
-rw-r--r--patches/polkit-0.105/0025-0.113-Fix-duplicate-GError-use-when-uid-is-missing.patch36
-rw-r--r--patches/polkit-0.105/0026-0.113-Fix-a-crash-when-two-authentication-requests-a.patch41
-rw-r--r--patches/polkit-0.105/0027-0.113-CVE-2015-4625-Use-unpredictable-cookie-values-.patch545
-rw-r--r--patches/polkit-0.105/0028-0.113-CVE-2015-4625-Bind-use-of-cookies-to-specific-.patch488
-rw-r--r--patches/polkit-0.105/0029-0.113-docs-Update-for-changes-to-uid-binding-Authent.patch264
-rw-r--r--patches/polkit-0.105/0030-0.113-Fix-a-per-authorization-memory-leak.patch53
-rw-r--r--patches/polkit-0.105/0031-0.113-Fix-a-memory-leak-when-registering-an-authenti.patch27
-rw-r--r--patches/polkit-0.105/0032-0.113-CVE-2015-3255-Fix-GHashTable-usage.patch72
-rw-r--r--patches/polkit-0.105/0033-0.113-Fix-use-after-free-in-polkitagentsession.c.patch36
-rw-r--r--patches/polkit-0.105/0034-0.114-Fix-multi-line-pam-text-info.patch43
-rw-r--r--patches/polkit-0.105/0035-0.114-Refactor-send_to_helper-usage.patch153
-rw-r--r--patches/polkit-0.105/0036-0.114-Support-polkit-session-agent-running-outside-u.patch56
-rw-r--r--patches/polkit-0.105/0037-0.115-Fix-CVE-2018-1116-Trusting-client-supplied-UID.patch573
-rw-r--r--patches/polkit-0.105/0038-0.116-Allow-negative-uids-gids-in-PolkitUnixUser-and.patch191
-rw-r--r--patches/polkit-0.105/0039-0.116-Allow-uid-of-1-for-a-PolkitUnixProcess.patch47
-rw-r--r--patches/polkit-0.105/0040-Revert-Default-to-AdminIdentities-unix-group-wheel-f.patch39
-rw-r--r--patches/polkit-0.105/0041-Build-against-libsystemd.patch36
-rw-r--r--patches/polkit-0.105/0042-Move-D-Bus-policy-file-to-usr-share-dbus-1-system.d.patch35
-rw-r--r--patches/polkit-0.105/0043-0.116-backend-Compare-PolkitUnixProcess-uids-for-tem.patch186
-rw-r--r--patches/polkit-0.105/0100-automake-add-missing-conditional-HAVE_INTROSPECTION.patch130
-rw-r--r--patches/polkit-0.105/0101-Add-a-systemd-.service-file.patch121
l---------patches/polkit-0.105/autogen.sh1
-rw-r--r--patches/polkit-0.105/series50
-rw-r--r--patches/polkit-124/0001-build-install-polkit-agent-1-library-with-libs-only.patch65
-rw-r--r--patches/polkit-124/0002-build-libpolkit-agent-1-does-not-use-expat.patch21
-rw-r--r--patches/polkit-124/0003-build-libexpat-is-not-needed-with-libs-only.patch34
-rw-r--r--patches/polkit-124/series6
-rw-r--r--patches/portmap_6.0/portmap_6.0-fix-disable-tcpwrapper.diff22
-rw-r--r--patches/portmap_6.0/series1
l---------patches/powertop-v2.15/autogen.sh (renamed from patches/libpcap-1.8.1/autogen.sh)0
-rw-r--r--patches/ppp-2.4.7/0001-abort-on-errors-in-subdir-builds.patch48
-rw-r--r--patches/ppp-2.4.7/0002-scripts-Avoid-killing-wrong-pppd.patch29
-rw-r--r--patches/ppp-2.4.7/0003-pppd-Fix-sign-extension-when-displaying-bytes-in-oct.patch30
-rw-r--r--patches/ppp-2.4.7/0004-Suppress-false-error-message-on-PPPoE-disconnect.patch33
-rw-r--r--patches/ppp-2.4.7/0005-Send-PADT-on-PPPoE-disconnect.patch36
-rw-r--r--patches/ppp-2.4.7/0006-pppd-ipxcp-Prevent-buffer-overrun-on-remote-router-n.patch30
-rw-r--r--patches/ppp-2.4.7/0007-pppd-Fix-ccp_options.mppe-type.patch30
-rw-r--r--patches/ppp-2.4.7/0008-pppd-Fix-ccp_cilen-calculated-size-if-both-deflate_c.patch33
-rw-r--r--patches/ppp-2.4.7/0009-Fix-a-typo-in-comment.-Diff-from-Yuuichi-Someya.patch24
-rw-r--r--patches/ppp-2.4.7/0010-plog-count-only-relevant-lines-from-syslog.patch24
-rw-r--r--patches/ppp-2.4.7/0011-Change-include-from-sys-errno.h-to-errno.h.patch33
-rw-r--r--patches/ppp-2.4.7/0012-pppd-allow-use-of-arbitrary-interface-names.patch214
-rw-r--r--patches/ppp-2.4.7/0013-pppd-Remove-unused-declaration-of-ttyname.patch25
-rw-r--r--patches/ppp-2.4.7/0014-pppd-Provide-error-implementation-in-pppoe-discovery.patch52
-rw-r--r--patches/ppp-2.4.7/0015-pppoe-include-netinet-in.h-before-linux-in.h.patch49
-rw-r--r--patches/ppp-2.4.7/0016-adaptive_echos.patch72
-rw-r--r--patches/ppp-2.4.7/0017-Makefiles-cleanup.patch296
-rw-r--r--patches/ppp-2.4.7/0018-Bug-306261-pppd-does-not-properly-close-dev-ppp-on-p.patch44
-rw-r--r--patches/ppp-2.4.7/0019-Bug-284382-ppp-linkpidfile-is-not-created-upon-detac.patch48
-rw-r--r--patches/ppp-2.4.7/0022-cosmetic-cleanup-of-the-pppoatm-plugin.patch90
-rw-r--r--patches/ppp-2.4.7/0023-pppoe_noads.patch25
-rw-r--r--patches/ppp-2.4.7/0024-make-_PATH_CONNERRS-world-readable.patch27
-rw-r--r--patches/ppp-2.4.7/0025-Correct-unkown-unknown-typo.patch46
-rw-r--r--patches/ppp-2.4.7/0026-pppoe-custom-host-uniq-tag.patch302
-rw-r--r--patches/ppp-2.4.7/0027-Add-replacedefaultroute-option.patch324
-rw-r--r--patches/ppp-2.4.7/0029-add-support-for-the-Framed-MTU-Radius-attribute.patch42
-rw-r--r--patches/ppp-2.4.7/0030-018_ip-up_option.patch106
-rw-r--r--patches/ppp-2.4.7/0031-ppp-2.4.2-stripMSdomain.patch47
-rw-r--r--patches/ppp-2.4.7/0032-export-CALL_FILE-to-the-link-scripts.patch38
-rw-r--r--patches/ppp-2.4.7/0033-ipv6-accept-remote.patch73
-rw-r--r--patches/ppp-2.4.7/0034-fix-a-potential-buffer-overflow-in-clientid.c-rc_map.patch43
-rw-r--r--patches/ppp-2.4.7/0037-Fix-buffer-overflow-in-rc_mksid.patch36
-rw-r--r--patches/ppp-2.4.7/0038-EAP-TLS-authentication-support-for-PPP.patch3383
-rw-r--r--patches/ppp-2.4.7/0040-pppd-Use-openssl-for-the-DES-instead-of-the-libcrypt.patch115
-rw-r--r--patches/ppp-2.4.7/series46
-rw-r--r--patches/ppp-2.4.9/0001-configure-Allow-commas-in-the-CFLAGS-220.patch28
-rw-r--r--patches/ppp-2.4.9/0002-pppd-Fix-compilation-with-older-glibc-or-kernel-head.patch55
-rw-r--r--patches/ppp-2.4.9/0100-support-building-pppdump-with-the-system-zlib.patch (renamed from patches/ppp-2.4.7/0020-support-building-pppdump-with-the-system-zlib.patch)27
-rw-r--r--patches/ppp-2.4.9/0101-disable-unneeded-code-in-the-pppoatm-plugin.patch (renamed from patches/ppp-2.4.7/0021-disable-unneeded-code-in-the-pppoatm-plugin.patch)16
-rw-r--r--patches/ppp-2.4.9/0102-pppoe_noads.patch24
-rw-r--r--patches/ppp-2.4.9/0103-Forwarded-https-github.com-paulusmack-ppp-issues-187.patch (renamed from patches/ppp-2.4.7/0028-ppp-2.3.11-oedod.dif.patch)69
-rw-r--r--patches/ppp-2.4.9/0104-resolv.conf_no_log.patch (renamed from patches/ppp-2.4.7/0035-resolv.conf_no_log.patch)12
-rw-r--r--patches/ppp-2.4.9/0105-Debian-specific-changes.patch (renamed from patches/ppp-2.4.7/0036-Debian-specific-changes.patch)50
-rw-r--r--patches/ppp-2.4.9/0106-Replace-vendored-hash-functions-with-libcrypto.patch (renamed from patches/ppp-2.4.7/0039-Replace-vendored-hash-functions-with-libcrypto.patch)209
-rw-r--r--patches/ppp-2.4.9/0200-pppd-make-makefile-sysroot-aware.patch (renamed from patches/ppp-2.4.7/0100-pppd-make-makefile-sysroot-aware.patch)34
-rw-r--r--patches/ppp-2.4.9/0201-pppd-make-the-self-made-configure-cross-aware.patch (renamed from patches/ppp-2.4.7/0101-pppd-make-the-self-made-configure-cross-aware.patch)10
-rw-r--r--patches/ppp-2.4.9/series17
-rw-r--r--patches/pps-tools-1.0.2/0001-Makefile-fix-installation-to-empty-DESTDIR.patch40
-rw-r--r--patches/pps-tools-1.0.2/series4
-rw-r--r--patches/pps-tools-1.0.3/0001-Makefile-Remove-obstructive-use-of-SYSROOT-variable.patch29
-rw-r--r--patches/pps-tools-1.0.3/series4
-rw-r--r--patches/procps-ng-4.0.4/0001-build-sys-Add-systemd-elogind-to-w.patch42
l---------patches/procps-ng-4.0.4/autogen.sh (renamed from patches/libtremor-1.0.3/autogen.sh)0
-rw-r--r--patches/procps-ng-4.0.4/series4
-rw-r--r--patches/pyDataMatrixScanner/0001-load-lib-from-global-dir.patch30
-rw-r--r--patches/pyDataMatrixScanner/series3
-rw-r--r--patches/pyside-qt4.8+1.2.2/0001-only-add-qaccessibleevent_wrapper.cpp-if-accessible-.patch37
-rw-r--r--patches/pyside-qt4.8+1.2.2/0002-add-include-iostream.patch23
-rw-r--r--patches/pyside-qt4.8+1.2.2/0003-add-qws-support.patch116
-rw-r--r--patches/pyside-qt4.8+1.2.2/series6
-rw-r--r--patches/python_rplicmp-1.0/0001-build-files-correctly.patch24
-rw-r--r--patches/python_rplicmp-1.0/series4
-rw-r--r--patches/pytz-2023.3/0001-use-system-timezone-data.patch (renamed from patches/pytz-2020.1/0001-use-system-timezone-data.patch)0
-rw-r--r--patches/pytz-2023.3/series (renamed from patches/pytz-2020.1/series)0
-rw-r--r--patches/pyyaml-3.12/0001-setup.py-remove-overcomplicated-setup-resulting-in-w.patch324
-rw-r--r--patches/pyyaml-3.12/series4
-rw-r--r--patches/pyzmq-14.1.0/0001-HACK-setup.py-avoid-rpath-with-sysroot.patch24
-rw-r--r--patches/pyzmq-14.1.0/series4
-rw-r--r--patches/qemu-5.2.0/series5
-rw-r--r--patches/qemu-8.2.2/0001-linux-user-x86_64-Handle-the-vsyscall-page-in-open_s.patch57
-rw-r--r--patches/qemu-8.2.2/0100-9pfs-allow-real-symlinks-for-security_model-mapped-f.patch (renamed from patches/qemu-5.2.0/0001-9pfs-allow-real-symlinks-for-security_model-mapped-f.patch)26
-rw-r--r--patches/qemu-8.2.2/0101-let-ninja-use-the-jobserver.patch (renamed from patches/qemu-5.2.0/0002-let-ninja-use-the-jobserver.patch)10
-rw-r--r--patches/qemu-8.2.2/series8
-rw-r--r--patches/qt-everywhere-opensource-src-4.8.7/0001-mkspec-for-ptxdist.patch123
-rw-r--r--patches/qt-everywhere-opensource-src-4.8.7/0002-disable-ordered-compiling.patch79
-rw-r--r--patches/qt-everywhere-opensource-src-4.8.7/0003-Hack-hide-cursor-during-startup.patch27
-rw-r--r--patches/qt-everywhere-opensource-src-4.8.7/0004-add-missing-subdirs.patch73
-rw-r--r--patches/qt-everywhere-opensource-src-4.8.7/0005-Fix-dnd-issue-on-QWS.patch64
-rw-r--r--patches/qt-everywhere-opensource-src-4.8.7/0006-qmake-make-sure-local-include-dirs-come-first.patch39
-rw-r--r--patches/qt-everywhere-opensource-src-4.8.7/0007-phonon-fix-colors-for-video-on-qgraphicsview.patch36
-rw-r--r--patches/qt-everywhere-opensource-src-4.8.7/0008-don-t-build-webkit-tests.patch33
-rw-r--r--patches/qt-everywhere-opensource-src-4.8.7/0009-fix-build-issues-with-gcc6.patch51
-rw-r--r--patches/qt-everywhere-opensource-src-4.8.7/0010-configure-handle-gcc-9.x.patch22
-rw-r--r--patches/qt-everywhere-opensource-src-4.8.7/0011-Redo-the-Q_FOREACH-loop-control-without-GCC-statemen.patch68
-rw-r--r--patches/qt-everywhere-opensource-src-4.8.7/series14
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0001-CVE-2023-4863-5.15.patch3767
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0002-CVE-2023-24607-qtbase-5.15.diff.patch337
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0003-CVE-2023-32573-qtsvg-5.15.diff.patch46
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0004-CVE-2023-32762-qtbase-5.15.diff.patch24
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0005-CVE-2023-32763-qtbase-5.15.diff.patch59
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0006-CVE-2023-33285-qtbase-5.15.diff.patch79
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0007-CVE-2023-34410-qtbase-5.15.diff.patch66
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0008-CVE-2023-37369-qtbase-5.15.diff.patch214
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0009-CVE-2023-38197-qtbase-5.15.diff.patch229
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0010-CVE-2023-43114-5.15.patch126
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0011-xkb-fix-build-with-libxkbcommon-1.6.0-and-later.patch38
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0100-qtwebengine-chromium-skia-Fix-build-with-gcc-12.patch61
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0101-qt3d-link-with-latomic-if-necessary.patch (renamed from patches/qt-everywhere-src-5.15.2/0003-qt3d-link-with-latomic-if-necessary.patch)0
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0102-qt5-qtwebengine-fix-gcc13-errors.patch268
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0103-Rename-x11-Present-Pixmap-to-x11-Present-PresentPixm.patch31
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0200-replace-Python-2-with-Python-3-in-the-build-system.patch176
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0201-update-Chromium-code-for-compatibility-with-Python-3.patch1874
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0202-fix-build-with-Python-3.11.patch61
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0203-remove-dependencies-on-third_party-catapult.patch9973
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0300-qtwayland-use-QT_EGL_NO_X11-and-qt_egl_p.h-everywher.patch (renamed from patches/qt-everywhere-src-5.15.2/0001-qtwayland-use-QT_EGL_NO_X11-and-qt_egl_p.h-everywher.patch)0
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0301-videonode-egl-use-QT_EGL_NO_X11-and-qt_egl_p.h.patch (renamed from patches/qt-everywhere-src-5.15.2/0002-videonode-egl-use-QT_EGL_NO_X11-and-qt_egl_p.h.patch)0
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0302-qtbase-fix-building-with-mesa-22.3.0.patch40
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0400-ptxdist-qtwebengine-allow-building-with-ptxdist.patch (renamed from patches/qt-everywhere-src-5.15.2/0005-ptxdist-qtwebengine-allow-building-with-ptxdist.patch)0
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0401-ptxdist-qtwebengine-let-ninja-use-the-jobserver.patch (renamed from patches/qt-everywhere-src-5.15.2/0006-ptxdist-qtwebengine-let-ninja-use-the-jobserver.patch)18
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0402-HACK-qtwebengine-workaround-for-too-long-file-names.patch (renamed from patches/qt-everywhere-src-5.15.2/0007-HACK-qtwebengine-workaround-for-too-long-file-names.patch)0
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/0500-eglfs_kms-device-ordering-robustness.patch (renamed from patches/qt-everywhere-src-5.15.2/0004-eglfs_kms-device-ordering-robustness.patch)0
-rw-r--r--patches/qt-everywhere-opensource-src-5.15.12/series35
-rw-r--r--patches/qt-everywhere-src-5.15.2/0008-qtbase-include-limits-where-necessary.patch69
-rw-r--r--patches/qt-everywhere-src-5.15.2/series11
-rw-r--r--patches/qt-everywhere-src-6.6.2/0100-qtwebengine-gn-fix-building-with-newer-compilers.patch47
-rw-r--r--patches/qt-everywhere-src-6.6.2/0200-HACK-qtwebengine-workaround-for-too-long-file-names.patch39
-rw-r--r--patches/qt-everywhere-src-6.6.2/0201-HACK-don-t-complain-about-unnecessary-host-tools.patch59
-rw-r--r--patches/qt-everywhere-src-6.6.2/0202-ptxdist-qtwebengine-allow-building-with-ptxdist.patch26
-rw-r--r--patches/qt-everywhere-src-6.6.2/0203-fix-building-with-QT_FEATURE_qml_devtools-disabled.patch29
-rw-r--r--patches/qt-everywhere-src-6.6.2/series11
-rw-r--r--patches/qwt-6.0.1/0001-fix-prefix.patch22
-rw-r--r--patches/qwt-6.0.1/0002-disable-designer-plugins.patch22
-rw-r--r--patches/qwt-6.0.1/0003-disable-svg-by-default.patch24
-rw-r--r--patches/qwt-6.0.1/0004-Disable-the-textengines-to-be-less-depended-on-the-Q.patch35
-rw-r--r--patches/qwt-6.0.1/series7
-rw-r--r--patches/readline-8.2/0001-rl-attribute.patch (renamed from patches/readline-8.0/0001-rl-attribute.patch)6
-rw-r--r--patches/readline-8.2/0002-rl-header.patch (renamed from patches/readline-8.0/0002-rl-header.patch)4
-rw-r--r--patches/readline-8.2/0003-rl-no-rpath.patch (renamed from patches/readline-8.0/0003-rl-no-rpath.patch)4
-rw-r--r--patches/readline-8.2/0004-rlfe-history.patch (renamed from patches/readline-8.0/0004-rlfe-history.patch)0
-rw-r--r--patches/readline-8.2/0005-always-link-against-our-termcap-libraries.patch (renamed from patches/readline-8.0/0005-always-link-against-our-termcap-libraries.patch)2
-rw-r--r--patches/readline-8.2/series (renamed from patches/readline-8.0/series)0
-rw-r--r--patches/redis-7.2.2/0001-Support-systemd-and-set-a-data-directory.patch30
-rw-r--r--patches/redis-7.2.2/series4
l---------patches/rng-tools-6.14/autogen.sh (renamed from patches/libxslt-1.1.34/autogen.sh)0
-rw-r--r--patches/rng-tools-6.5/0001-Buildsystem-fix-autotools-setup.patch25
l---------patches/rng-tools-6.5/autogen.sh1
-rw-r--r--patches/rng-tools-6.5/series4
-rw-r--r--patches/samba-4.14.6/0001-HACK-never-use-libunwind.patch46
-rw-r--r--patches/samba-4.14.6/series4
-rw-r--r--patches/scikit-learn-1.3.1/0001-setup.py-don-t-try-to-import-numpy-scipy-at-build-ti.patch28
-rw-r--r--patches/scikit-learn-1.3.1/series4
-rw-r--r--patches/scipy-1.11.3/0001-BLD-special-fix-dependencies-for-_ellip_harm_2-19168.patch34
-rw-r--r--patches/scipy-1.11.3/0100-add-option-to-specify-python-binary-for-code-generat.patch43
-rw-r--r--patches/scipy-1.11.3/series6
-rw-r--r--patches/screen-4.5.0/0001-don-t-link-against-libelf.patch33
-rw-r--r--patches/screen-4.5.0/0002-remove-configure-AC_TRY_RUN-tests.patch727
-rw-r--r--patches/screen-4.5.0/0003-autoconf-cleanup.patch397
-rw-r--r--patches/screen-4.5.0/0004-Fix-some-typos-found-by-Lintian.patch48
-rw-r--r--patches/screen-4.5.0/0005-show-encoding-in-hardstatus.patch52
-rw-r--r--patches/screen-4.5.0/0006-Unbreak-several-useful-keybindings.patch22
-rw-r--r--patches/screen-4.5.0/0007-Fix-privilege-escalation-by-reverting-upstream-commi.patch30
-rw-r--r--patches/screen-4.5.0/0008-Fix-terminal-garbage-in-Debian-Installer-over-serial.patch24
-rw-r--r--patches/screen-4.5.0/0009-Ignore-logfile-s-name-that-begins-with-the-symbol.patch77
-rwxr-xr-xpatches/screen-4.5.0/autogen.sh9
-rw-r--r--patches/screen-4.5.0/series12
-rw-r--r--patches/screen-4.9.1/0001-comm.h-now-depends-on-term.h.patch24
-rw-r--r--patches/screen-4.9.1/0002-comm.h-needed-for-list_-display-generic-.o.patch31
-rw-r--r--patches/screen-4.9.1/0003-suppress_remap.patch24
l---------patches/screen-4.9.1/autogen.sh (renamed from patches/libyaml-0.1.7/autogen.sh)0
-rw-r--r--patches/screen-4.9.1/series6
-rw-r--r--patches/setuptools-rust-1.5.2/series1
-rw-r--r--patches/setuptools-rust-1.5.2/use-Literal-from-typing.patch53
-rw-r--r--patches/shiboken-1.2.2/0001-cmake-allow-specifying-the-preferred-Python2-version.patch19
-rw-r--r--patches/shiboken-1.2.2/0002-cmake-allow-specifying-the-preferred-Python3-version.patch47
-rw-r--r--patches/shiboken-1.2.2/series5
-rw-r--r--patches/sockperf-3.10/0001-Fixed-AArch32-compilation.patch69
-rw-r--r--patches/sockperf-3.10/series4
-rw-r--r--patches/softhsm-2.6.1/0001-Prevent-accessing-of-global-c-objects-once-they-are-.patch673
-rw-r--r--patches/softhsm-2.6.1/series4
-rw-r--r--patches/squashfs4.4/0001-squashfs-tools-fix-build-failure-against-gcc-10.patch42
-rw-r--r--patches/squashfs4.4/series4
-rw-r--r--patches/squashfs4.5.1/0001-don-t-try-to-generate-manpages.patch21
-rw-r--r--patches/squashfs4.5.1/series4
-rw-r--r--patches/svgalib-1.9.25/0001-svgalib-disable-obsolete-drivers.patch12
-rw-r--r--patches/svgalib-1.9.25/0002-svgalib-patch-taken-from-open-embedded.patch42
-rw-r--r--patches/svgalib-1.9.25/0003-svgalib-search-also-in-local-sharedlib-dir.patch12
-rw-r--r--patches/svgalib-1.9.25/0004-don-t-try-to-change-ld.so.conf-or-run-ldconfig.patch24
-rw-r--r--patches/svgalib-1.9.25/series4
-rw-r--r--patches/tcp_wrappers_7.6/series2
-rw-r--r--patches/tcp_wrappers_7.6/tcp_wrappers-7.6-gcc34-1.patch31
-rw-r--r--patches/tcp_wrappers_7.6/tcp_wrappers_7.6-ptx1.diff31
-rw-r--r--patches/thttpd-2.25b/0001-rename-getline-local_getline.patch38
-rw-r--r--patches/thttpd-2.25b/series3
-rw-r--r--patches/tree-2.1.0/0100-Makefile-Correct-prefix-handling-and-installation.patch76
-rw-r--r--patches/tree-2.1.0/series5
-rw-r--r--patches/unstrung-1.11.0/0001-main-interface-needs-argument.patch24
-rw-r--r--patches/unstrung-1.11.0/0002-main-remove-double-dagid-entry.patch21
-rw-r--r--patches/unstrung-1.11.0/series5
-rw-r--r--patches/ustr-1.0.4/0001-makefile-make-it-possible-to-overwrite-binary-checks.patch61
-rw-r--r--patches/ustr-1.0.4/0002-fixes-gnu-inline.patch875
-rw-r--r--patches/ustr-1.0.4/series5
l---------patches/valgrind-3.16.1/autogen.sh1
-rw-r--r--patches/valgrind-3.22.0/0001-configure.ac-allow-all-arm-don-t-restrict-to-armv7.patch (renamed from patches/valgrind-3.16.1/0001-configure.ac-allow-all-arm-don-t-restrict-to-armv7.patch)4
-rw-r--r--patches/valgrind-3.22.0/0002-make-kernel-version-a-autoconf-cache-variable.patch (renamed from patches/valgrind-3.16.1/0002-make-kernel-version-a-autoconf-cache-variable.patch)4
l---------patches/valgrind-3.22.0/autogen.sh (renamed from patches/mobile-broadband-provider-info-20190618/autogen.sh)0
-rw-r--r--patches/valgrind-3.22.0/series (renamed from patches/valgrind-3.16.1/series)0
-rw-r--r--patches/vkrunner-2023-10-29-g93cbb7b1cca7/0001-Add-Cargo.lock.patch460
-rw-r--r--patches/vkrunner-2023-10-29-g93cbb7b1cca7/series4
-rw-r--r--patches/weston-13.0.0/0001-HACK-don-t-build-tests.patch23
-rw-r--r--patches/weston-13.0.0/series4
-rw-r--r--patches/xf86-input-tslib-0.0.6/0001-fix-segfault.patch41
-rw-r--r--patches/xf86-input-tslib-0.0.6/0002-add-support-for-ABI-12.patch213
-rw-r--r--patches/xf86-input-tslib-0.0.6/0003-fix-name-collision-with-Xorg-macro.patch34
-rw-r--r--patches/xf86-input-tslib-0.0.6/series6
-rw-r--r--patches/xf86-video-fbdev-0.5.0/0001-xf86-video-fbdev-add-option-to-leave-timings-alone.patch47
-rw-r--r--patches/xf86-video-fbdev-0.5.0/0002-Fix-build-error-when-building-with-xserver-built-usi.patch21
-rw-r--r--patches/xf86-video-fbdev-0.5.0/series5
l---------patches/xf86-video-intel-2.99.917-892-gc6cb1b199598/autogen.sh1
-rw-r--r--patches/xorg-server-1.20.10/0001-xf86bigfont-always-include-unistd.h.patch37
-rw-r--r--patches/xorg-server-1.20.10/series4
-rw-r--r--platforms/Kconfig5
-rw-r--r--platforms/architecture.in43
-rw-r--r--platforms/at91bootstrap.in2
-rw-r--r--platforms/at91bootstrap2.in6
-rw-r--r--platforms/barebox.firmware.in7
-rw-r--r--platforms/barebox.in63
-rw-r--r--platforms/blspec-entry.in11
-rw-r--r--platforms/dtc.in40
-rw-r--r--platforms/grub.in10
-rw-r--r--platforms/host-dtc.in23
-rw-r--r--platforms/host-tf-a.in8
-rw-r--r--platforms/image-hdimg.in14
-rw-r--r--platforms/image-rauc.in56
-rw-r--r--platforms/image-root-cpio-gz.in10
-rw-r--r--platforms/image-root-cpio.in88
-rw-r--r--platforms/image-root-squashfs.in14
-rw-r--r--platforms/image_ipkg.in10
-rw-r--r--platforms/kernel-fit.in27
-rw-r--r--platforms/kernel.in88
-rw-r--r--platforms/non_free_firmware.in7
-rw-r--r--platforms/optee.in4
-rw-r--r--platforms/platform.in4
-rw-r--r--platforms/tf-a.in29
-rw-r--r--platforms/toolchain.in9
-rw-r--r--platforms/toolchain_options.in20
-rw-r--r--platforms/u-boot.in77
-rw-r--r--projectroot/etc/dhclient.conf14
-rw-r--r--projectroot/etc/dhcpd.conf198
-rw-r--r--projectroot/etc/fonts/conf.d/30-0-google-crosextra-caladea-fontconfig.conf17
-rw-r--r--projectroot/etc/fonts/conf.d/30-0-google-crosextra-carlito-fontconfig.conf17
-rw-r--r--projectroot/etc/fonts/conf.d/62-google-crosextra-caladea-fontconfig.conf17
-rw-r--r--projectroot/etc/fonts/conf.d/62-google-crosextra-carlito-fontconfig.conf17
-rw-r--r--projectroot/etc/group10
-rw-r--r--projectroot/etc/init.d/NetworkManager4
-rw-r--r--projectroot/etc/init.d/apache244
-rw-r--r--projectroot/etc/init.d/atd2
-rw-r--r--projectroot/etc/init.d/avahi-daemon2
-rw-r--r--projectroot/etc/init.d/chrony2
-rw-r--r--projectroot/etc/init.d/dropbear33
-rwxr-xr-xprojectroot/etc/init.d/haveged2
-rw-r--r--projectroot/etc/init.d/inetd2
-rw-r--r--projectroot/etc/init.d/lighttpd2
-rwxr-xr-xprojectroot/etc/init.d/lldpd2
-rw-r--r--projectroot/etc/init.d/monit2
-rw-r--r--projectroot/etc/init.d/nftables2
-rw-r--r--projectroot/etc/init.d/ntp-client2
-rw-r--r--projectroot/etc/init.d/ntp-server2
-rw-r--r--projectroot/etc/init.d/openssh2
-rw-r--r--projectroot/etc/init.d/proftpd2
-rw-r--r--projectroot/etc/init.d/pureftpd2
-rw-r--r--projectroot/etc/init.d/rc-once6
-rw-r--r--projectroot/etc/init.d/samba2
-rw-r--r--projectroot/etc/init.d/sysctl2
-rwxr-xr-xprojectroot/etc/init.d/ubihealthd111
-rw-r--r--projectroot/etc/init.d/udev2
-rw-r--r--projectroot/etc/init.d/zeroconf2
-rw-r--r--projectroot/etc/lighttpd/lighttpd.conf2
-rw-r--r--projectroot/etc/opkg/opkg.conf4
-rw-r--r--projectroot/etc/passwd4
-rw-r--r--projectroot/etc/php5/php.ini1337
-rw-r--r--projectroot/etc/profile5
-rw-r--r--projectroot/etc/profile.environment4
-rw-r--r--projectroot/etc/rc.once.d/dropbear50
-rw-r--r--projectroot/etc/rc.once.d/openssh1
-rw-r--r--projectroot/etc/udhcpc.script60
-rw-r--r--projectroot/etc/udhcpd.conf93
-rw-r--r--projectroot/loader/entries/default.conf1
-rw-r--r--projectroot/usr/lib/init/dropbear.sh6
-rw-r--r--projectroot/usr/lib/systemd/network/default.network (renamed from projectroot/usr/lib/systemd/network/eth0.network)2
-rw-r--r--projectroot/usr/lib/systemd/system/ip6tables.service2
-rw-r--r--projectroot/usr/lib/systemd/system/mongod.service15
-rw-r--r--projectroot/usr/lib/systemd/system/nginx.service5
-rw-r--r--projectroot/usr/lib/systemd/system/rauc-mark-good.service4
-rw-r--r--projectroot/usr/lib/systemd/system/rc-once.service2
-rw-r--r--projectroot/usr/lib/systemd/system/redis.service23
-rw-r--r--projectroot/usr/lib/systemd/system/seatd.service8
-rw-r--r--projectroot/usr/lib/systemd/system/systemd-timesyncd.service.d/volatile.conf2
-rw-r--r--projectroot/usr/lib/systemd/system/ubihealthd@.service13
-rw-r--r--projectroot/usr/lib/systemd/systemd-rc-once4
-rw-r--r--projectroot/usr/lib/tmpfiles.d/nginx.conf6
-rw-r--r--projectroot/usr/lib/tmpfiles.d/redis.conf1
-rw-r--r--projectroot/usr/sbin/bootchartd4
-rw-r--r--projectroot/usr/sbin/mysqlinit2
-rw-r--r--projectroot/usr/share/polkit-1/rules.d/50-default.rules7
-rw-r--r--rules/abseil-cpp.in10
-rw-r--r--rules/abseil-cpp.make46
-rw-r--r--rules/acl.make4
-rw-r--r--rules/alsa-lib.in2
-rw-r--r--rules/alsa-lib.make8
-rw-r--r--rules/alsa-utils.in11
-rw-r--r--rules/alsa-utils.make20
-rw-r--r--rules/aml.in8
-rw-r--r--rules/aml.make57
-rw-r--r--rules/apitrace.in2
-rw-r--r--rules/apitrace.make37
-rw-r--r--rules/argtable2.in14
-rw-r--r--rules/argtable2.make10
-rw-r--r--rules/armadillo.in10
-rw-r--r--rules/armadillo.make62
-rw-r--r--rules/at.in6
-rw-r--r--rules/at.make13
-rw-r--r--rules/at91bootstrap2.make2
-rw-r--r--rules/atk.in1
-rw-r--r--rules/atk.make25
-rw-r--r--rules/atkmm.in11
-rw-r--r--rules/atkmm.make57
-rw-r--r--rules/attr.make5
-rw-r--r--rules/aumix.in17
-rw-r--r--rules/aumix.make65
-rw-r--r--rules/autossh.make18
-rw-r--r--rules/avahi.in9
-rw-r--r--rules/avahi.make31
-rw-r--r--rules/barebox.make55
-rw-r--r--rules/barebox_mlo.make9
-rw-r--r--rules/bash.in6
-rw-r--r--rules/bash.make13
-rw-r--r--rules/batctl.make4
-rw-r--r--rules/bayer2rgb3.make8
-rw-r--r--rules/bc.make6
-rw-r--r--rules/bdwgc.in11
-rw-r--r--rules/bdwgc.make85
-rw-r--r--rules/beep.in7
-rw-r--r--rules/berlios-can-utils.in20
-rw-r--r--rules/berlios-can-utils.make13
-rw-r--r--rules/bind.make6
-rw-r--r--rules/bing.in6
-rw-r--r--rules/binutils.make10
-rw-r--r--rules/blspec-entry.make14
-rw-r--r--rules/bluez-qt.make6
-rw-r--r--rules/bluez.in9
-rw-r--r--rules/bluez.make4
-rw-r--r--rules/bonniexx.in12
-rw-r--r--rules/bonniexx.make64
-rw-r--r--rules/boost.in51
-rw-r--r--rules/boost.make43
-rw-r--r--rules/bridge-utils.make8
-rw-r--r--rules/brotli.in8
-rw-r--r--rules/brotli.make62
-rw-r--r--rules/bsdiff.make2
-rw-r--r--rules/bustle.make1
-rw-r--r--rules/busybox.in1
-rw-r--r--rules/busybox.make4
-rw-r--r--rules/c-ares.make9
-rw-r--r--rules/ca-certificates.make4
-rw-r--r--rules/cairo.in37
-rw-r--r--rules/cairo.make87
-rw-r--r--rules/cairomm.make6
-rw-r--r--rules/calibrator.make3
-rw-r--r--rules/canfestival.in3
-rw-r--r--rules/canfestival.make14
-rw-r--r--rules/casync.make17
-rw-r--r--rules/catch2.make4
-rw-r--r--rules/cbmbasic.in9
-rw-r--r--rules/cbmbasic.make65
-rw-r--r--rules/cereal.in8
-rw-r--r--rules/cereal.make45
-rw-r--r--rules/chrony.make8
-rw-r--r--rules/cifs-utils.make5
-rw-r--r--rules/ckermit.in2
-rw-r--r--rules/ckermit.make12
-rw-r--r--rules/classpath.in13
-rw-r--r--rules/classpath.make171
-rw-r--r--rules/cog.in6
-rw-r--r--rules/cog.make34
-rw-r--r--rules/collectd.make2
-rw-r--r--rules/connman.in4
-rw-r--r--rules/connman.make4
-rw-r--r--rules/coreutils.in4
-rw-r--r--rules/coreutils.make37
-rw-r--r--rules/cpputest.in7
-rw-r--r--rules/cpputest.make56
-rw-r--r--rules/crda.in18
-rw-r--r--rules/crda.make31
-rw-r--r--rules/cross-dummy-strip.make2
-rw-r--r--rules/cross-nasm.make6
-rw-r--r--rules/cross-pkg-config-wrapper.in2
-rw-r--r--rules/cross-pkg-config-wrapper.make4
-rw-r--r--rules/cryptodev.in2
-rw-r--r--rules/cryptodev.make8
-rw-r--r--rules/cryptsetup.make27
-rw-r--r--rules/cups-bbinit.in6
-rw-r--r--rules/cups-filters.in10
-rw-r--r--rules/cups-filters.make2
-rw-r--r--rules/cups.in24
-rw-r--r--rules/cups.make5
-rw-r--r--rules/daemonize.make6
-rw-r--r--rules/dash.make6
-rw-r--r--rules/dav1d.in8
-rw-r--r--rules/dav1d.make62
-rw-r--r--rules/db.in12
-rw-r--r--rules/db.make4
-rw-r--r--rules/dbench.in4
-rw-r--r--rules/dbench.make16
-rw-r--r--rules/dbus-glib.make4
-rw-r--r--rules/dbus-python.in10
-rw-r--r--rules/dbus-python.make66
-rw-r--r--rules/dbus.in1
-rw-r--r--rules/dbus.make96
-rw-r--r--rules/dfu-util.make11
-rw-r--r--rules/dhcp.in43
-rw-r--r--rules/dhcp.make19
-rw-r--r--rules/diffutils.make25
-rw-r--r--rules/dnsmasq.in8
-rw-r--r--rules/dnsmasq.make8
-rw-r--r--rules/dosfstools.in10
-rw-r--r--rules/dosfstools.make14
-rw-r--r--rules/dropbear.in149
-rw-r--r--rules/dropbear.make104
-rw-r--r--rules/dropwatch.in2
-rw-r--r--rules/dropwatch.make4
-rw-r--r--rules/dt-utils.in1
-rw-r--r--rules/dt-utils.make28
-rw-r--r--rules/dtc.in37
-rw-r--r--rules/dtc.make96
-rw-r--r--rules/duktape.in8
-rw-r--r--rules/duktape.make65
-rw-r--r--rules/dump1090fa.in9
-rw-r--r--rules/dump1090fa.make82
-rw-r--r--rules/e2fsprogs.in9
-rw-r--r--rules/e2fsprogs.make12
-rw-r--r--rules/easy-rsa.in2
-rw-r--r--rules/easy-rsa.make4
-rw-r--r--rules/ecryptfs-utils.in2
-rw-r--r--rules/ecryptfs-utils.make2
-rw-r--r--rules/efax.in4
-rw-r--r--rules/efax.make1
-rw-r--r--rules/efibootmgr.make4
-rw-r--r--rules/efivar.make16
-rw-r--r--rules/eggdbus.make5
-rw-r--r--rules/ensmallen.in9
-rw-r--r--rules/ensmallen.make40
-rw-r--r--rules/etherwake.make9
-rw-r--r--rules/ethtool.make12
-rw-r--r--rules/eventlog.make6
-rw-r--r--rules/evtest.make4
-rw-r--r--rules/expat.make21
-rw-r--r--rules/f2fs-tools.make12
-rw-r--r--rules/failmalloc.in10
-rw-r--r--rules/failmalloc.make62
-rw-r--r--rules/fbset.in21
-rw-r--r--rules/fbset.make55
-rw-r--r--rules/fbtest.make5
-rw-r--r--rules/fbutils.make1
-rw-r--r--rules/fcgi.make3
-rw-r--r--rules/ffmpeg.make29
-rw-r--r--rules/fftw.make6
-rw-r--r--rules/figlet.in2
-rw-r--r--rules/figlet.make4
-rw-r--r--rules/file.in2
-rw-r--r--rules/file.make2
-rw-r--r--rules/findutils.in4
-rw-r--r--rules/findutils.make5
-rw-r--r--rules/fio.make7
-rw-r--r--rules/flac.make10
-rw-r--r--rules/flashbench.make2
-rw-r--r--rules/flup.in11
-rw-r--r--rules/flup.make57
-rw-r--r--rules/flup6.make2
-rw-r--r--rules/fluxbox.in140
-rw-r--r--rules/fluxbox.make175
-rw-r--r--rules/fontconfig.make16
-rw-r--r--rules/freeglut.in21
-rw-r--r--rules/freeglut.make64
-rw-r--r--rules/freetype.in15
-rw-r--r--rules/freetype.make29
-rw-r--r--rules/fribidi.make9
-rw-r--r--rules/frodo.make7
-rw-r--r--rules/fscryptctl.in14
-rw-r--r--rules/fscryptctl.make56
-rw-r--r--rules/fuse.in2
-rw-r--r--rules/fuse3.make15
-rw-r--r--rules/gawk.make14
-rw-r--r--rules/gcclibs.in26
-rw-r--r--rules/gcclibs.make17
-rw-r--r--rules/gdb-menu.in6
-rw-r--r--rules/gdb.in9
-rw-r--r--rules/gdb.make26
-rw-r--r--rules/gdbserver.make7
-rw-r--r--rules/gdk-pixbuf.in5
-rw-r--r--rules/gdk-pixbuf.make19
-rw-r--r--rules/gflags.in2
-rw-r--r--rules/glew.in2
-rw-r--r--rules/glew.make2
-rw-r--r--rules/glib-networking.make16
-rw-r--r--rules/glib.in8
-rw-r--r--rules/glib.make25
-rw-r--r--rules/glibc.in43
-rw-r--r--rules/glibc.make43
-rw-r--r--rules/glibmm.in12
-rw-r--r--rules/glibmm.make64
-rw-r--r--rules/glmark2.in2
-rw-r--r--rules/glmark2.make43
-rw-r--r--rules/glslang.in4
-rw-r--r--rules/glslang.make29
-rw-r--r--rules/glu.in1
-rw-r--r--rules/glu.make13
-rw-r--r--rules/gnupg.make29
-rw-r--r--rules/gnuplot.make6
-rw-r--r--rules/gnutls.in11
-rw-r--r--rules/gnutls.make43
-rw-r--r--rules/gobject-introspection.in2
-rw-r--r--rules/gobject-introspection.make53
-rw-r--r--rules/gpgme.make8
-rw-r--r--rules/gpsd.in13
-rw-r--r--rules/gpsd.make15
-rw-r--r--rules/graphene.make14
-rw-r--r--rules/graphics_and_multimedia.in21
-rw-r--r--rules/graphite2.make7
-rw-r--r--rules/grep.in2
-rw-r--r--rules/grep.make17
-rw-r--r--rules/grpc.in28
-rw-r--r--rules/grpc.make95
-rw-r--r--rules/grub.make25
-rw-r--r--rules/gst-bayer2rgb-neon.in2
-rw-r--r--rules/gst-devtools1.make8
-rw-r--r--rules/gst-libav1.make7
-rw-r--r--rules/gst-plugins-bad.in591
-rw-r--r--rules/gst-plugins-bad.make228
-rw-r--r--rules/gst-plugins-bad1.in200
-rw-r--r--rules/gst-plugins-bad1.make63
-rw-r--r--rules/gst-plugins-base.in216
-rw-r--r--rules/gst-plugins-base.make144
-rw-r--r--rules/gst-plugins-base1.in26
-rw-r--r--rules/gst-plugins-base1.make23
-rw-r--r--rules/gst-plugins-gl.in26
-rw-r--r--rules/gst-plugins-gl.make65
-rw-r--r--rules/gst-plugins-good.in383
-rw-r--r--rules/gst-plugins-good.make172
-rw-r--r--rules/gst-plugins-good1.in81
-rw-r--r--rules/gst-plugins-good1.make23
-rw-r--r--rules/gst-plugins-rs.cargo.make2767
-rw-r--r--rules/gst-plugins-rs.in199
-rw-r--r--rules/gst-plugins-rs.make149
-rw-r--r--rules/gst-plugins-ugly.in113
-rw-r--r--rules/gst-plugins-ugly.make114
-rw-r--r--rules/gst-plugins-ugly1.in23
-rw-r--r--rules/gst-plugins-ugly1.make15
-rw-r--r--rules/gst-python1.make8
-rw-r--r--rules/gst-rtsp-server1.in1
-rw-r--r--rules/gst-rtsp-server1.make15
-rw-r--r--rules/gstreamer-vaapi1.in7
-rw-r--r--rules/gstreamer-vaapi1.make16
-rw-r--r--rules/gstreamer.in77
-rw-r--r--rules/gstreamer.make146
-rw-r--r--rules/gstreamer1.in40
-rw-r--r--rules/gstreamer1.make22
-rw-r--r--rules/gt.in11
-rw-r--r--rules/gt.make60
-rw-r--r--rules/gtk-engines.make5
-rw-r--r--rules/gtk.make12
-rw-r--r--rules/gtk2.in58
-rw-r--r--rules/gtk2.make88
-rw-r--r--rules/haproxy.make8
-rw-r--r--rules/harfbuzz.in10
-rw-r--r--rules/harfbuzz.make52
-rw-r--r--rules/haserl.make6
-rw-r--r--rules/hdparm.in2
-rw-r--r--rules/hdparm.make2
-rw-r--r--rules/heirloom-mailx.make8
-rw-r--r--rules/hiredis.in8
-rw-r--r--rules/hiredis.make61
-rw-r--r--rules/host-apiextractor.in13
-rw-r--r--rules/host-apiextractor.make50
-rw-r--r--rules/host-autotools-autoconf-archive.make6
-rw-r--r--rules/host-autotools-autoconf.make21
-rw-r--r--rules/host-autotools-automake.make14
-rw-r--r--rules/host-autotools-libtool.make4
-rw-r--r--rules/host-bzip2.make2
-rw-r--r--rules/host-c-ares.make1
-rw-r--r--rules/host-cairo.in1
-rw-r--r--rules/host-cairo.make74
-rw-r--r--rules/host-cargo-c.cargo.make1522
-rw-r--r--rules/host-cargo-c.in5
-rw-r--r--rules/host-cargo-c.make54
-rw-r--r--rules/host-casync.make13
-rw-r--r--rules/host-chrpath.in2
-rw-r--r--rules/host-ckermit.make10
-rw-r--r--rules/host-cmake-ecm.make11
-rw-r--r--rules/host-cmake.make30
-rw-r--r--rules/host-cpputest.in (renamed from rules/host-python-setuptools.in)3
-rw-r--r--rules/host-cpputest.make34
-rw-r--r--rules/host-cramfs.in11
-rw-r--r--rules/host-cramfs.make42
-rw-r--r--rules/host-cryptsetup.make7
-rw-r--r--rules/host-cups.make6
-rw-r--r--rules/host-cython.in11
-rw-r--r--rules/host-cython.make32
-rw-r--r--rules/host-cython3.make6
-rw-r--r--rules/host-dbus-glib.make4
-rw-r--r--rules/host-dbus.in1
-rw-r--r--rules/host-dbus.make68
-rw-r--r--rules/host-dfu-util.in2
-rw-r--r--rules/host-dosfstools.make4
-rw-r--r--rules/host-dtc.in6
-rw-r--r--rules/host-dtc.make24
-rw-r--r--rules/host-dummy-install-info.make2
-rw-r--r--rules/host-e2fsprogs.in2
-rw-r--r--rules/host-e2fsprogs.make34
-rw-r--r--rules/host-eggdbus.make3
-rw-r--r--rules/host-extract-cert.make6
-rw-r--r--rules/host-fakeroot.make8
-rw-r--r--rules/host-figlet.make4
-rw-r--r--rules/host-file.in2
-rw-r--r--rules/host-file.make2
-rw-r--r--rules/host-fontconfig.in4
-rw-r--r--rules/host-freetype.make2
-rw-r--r--rules/host-gdk-pixbuf.make12
-rw-r--r--rules/host-generatorrunner.in12
-rw-r--r--rules/host-generatorrunner.make51
-rw-r--r--rules/host-genext2fs.in8
-rw-r--r--rules/host-genext2fs.make5
-rw-r--r--rules/host-genimage.make4
-rw-r--r--rules/host-gettext.make3
-rw-r--r--rules/host-glib.in2
-rw-r--r--rules/host-glib.make25
-rw-r--r--rules/host-glslang.in1
-rw-r--r--rules/host-glslang.make13
-rw-r--r--rules/host-gnutls.in7
-rw-r--r--rules/host-gnutls.make95
-rw-r--r--rules/host-gobject-introspection.in4
-rw-r--r--rules/host-gobject-introspection.make46
-rw-r--r--rules/host-gperf.make4
-rw-r--r--rules/host-gpgme.make2
-rw-r--r--rules/host-graphite2.in7
-rw-r--r--rules/host-graphite2.make (renamed from rules/host-ustr.make)20
-rw-r--r--rules/host-grpc.in10
-rw-r--r--rules/host-grpc.make37
-rw-r--r--rules/host-gtk-doc.make4
-rw-r--r--rules/host-harfbuzz.in20
-rw-r--r--rules/host-harfbuzz.make44
-rw-r--r--rules/host-htmldoc.in7
-rw-r--r--rules/host-htmldoc.make33
-rw-r--r--rules/host-icu.in1
-rw-r--r--rules/host-icu.make6
-rw-r--r--rules/host-imx-cst.make4
-rw-r--r--rules/host-intltool.make4
-rw-r--r--rules/host-jimtcl.make12
-rw-r--r--rules/host-keyutils.in2
-rw-r--r--rules/host-keyutils.make8
-rw-r--r--rules/host-libaio.make1
-rw-r--r--rules/host-libarchive.make4
-rw-r--r--rules/host-libassuan.make2
-rw-r--r--rules/host-libblkid.in8
-rw-r--r--rules/host-libbson.in6
-rw-r--r--rules/host-libbson.make54
-rw-r--r--rules/host-libcap-ng.make1
-rw-r--r--rules/host-libcap.make4
-rw-r--r--rules/host-libconfig.in5
-rw-r--r--rules/host-libconfig.make23
-rw-r--r--rules/host-libcurl.make115
-rw-r--r--rules/host-libelf.make5
-rw-r--r--rules/host-libevent.in5
-rw-r--r--rules/host-libevent.make37
-rw-r--r--rules/host-libftdi1.make8
-rw-r--r--rules/host-libgcrypt.make2
-rw-r--r--rules/host-libgd.make6
-rw-r--r--rules/host-libjpeg.make6
-rw-r--r--rules/host-libkmod.make6
-rw-r--r--rules/host-libnih.in7
-rw-r--r--rules/host-libnih.make24
-rw-r--r--rules/host-libp11.make2
-rw-r--r--rules/host-libpcre.make27
-rw-r--r--rules/host-libpng.make5
-rw-r--r--rules/host-libpthread-stubs.make5
-rw-r--r--rules/host-libsepol.make6
-rw-r--r--rules/host-libsigcpp.make5
-rw-r--r--rules/host-libslirp.in7
-rw-r--r--rules/host-libslirp.make23
-rw-r--r--rules/host-libtasn1.in4
-rw-r--r--rules/host-libtirpc.make6
-rw-r--r--rules/host-libusb.make16
-rw-r--r--rules/host-libuuid.in8
-rw-r--r--rules/host-libwebp.in5
-rw-r--r--rules/host-libwebp.make40
-rw-r--r--rules/host-libxcb.make8
-rw-r--r--rules/host-libxml2.in2
-rw-r--r--rules/host-libxml2.make6
-rw-r--r--rules/host-libxslt.make6
-rw-r--r--rules/host-llvm.in8
-rw-r--r--rules/host-llvm.make177
-rw-r--r--rules/host-lndir.make6
-rw-r--r--rules/host-localedef.in1
-rw-r--r--rules/host-localedef.make21
-rw-r--r--rules/host-lrzsz.make3
-rw-r--r--rules/host-lvm2.in2
-rw-r--r--rules/host-lvm2.make22
-rw-r--r--rules/host-lz4.make2
-rw-r--r--rules/host-m4.make4
-rw-r--r--rules/host-makedepend.in1
-rw-r--r--rules/host-makedepend.make6
-rw-r--r--rules/host-mariadb.make23
-rw-r--r--rules/host-mesalib.make50
-rw-r--r--rules/host-meson.in4
-rw-r--r--rules/host-meson.make35
-rw-r--r--rules/host-mfgtools.in2
-rw-r--r--rules/host-mfgtools.make6
-rw-r--r--rules/host-mtd-utils.in1
-rw-r--r--rules/host-mtd-utils.make9
-rw-r--r--rules/host-mtools.make4
-rw-r--r--rules/host-mysql.in10
-rw-r--r--rules/host-mysql.make70
-rw-r--r--rules/host-ncurses.make4
-rw-r--r--rules/host-nettle.in5
-rw-r--r--rules/host-nettle.make45
-rw-r--r--rules/host-nfsutils.make10
-rw-r--r--rules/host-ninja.in2
-rw-r--r--rules/host-ninja.make29
-rw-r--r--rules/host-nodejs.in2
-rw-r--r--rules/host-nodejs.make34
-rw-r--r--rules/host-nss.make12
-rw-r--r--rules/host-open62541.in2
-rw-r--r--rules/host-open62541.make2
-rw-r--r--rules/host-openocd.make14
-rw-r--r--rules/host-opensc.in2
-rw-r--r--rules/host-opensc.make11
-rw-r--r--rules/host-openssl.make6
-rw-r--r--rules/host-opkg-utils.make10
-rw-r--r--rules/host-opkg.make10
-rw-r--r--rules/host-patchelf.in4
-rw-r--r--rules/host-pcre2.in5
-rw-r--r--rules/host-pcre2.make49
-rw-r--r--rules/host-pelts.make5
-rw-r--r--rules/host-pixman.in1
-rw-r--r--rules/host-pixman.make32
-rw-r--r--rules/host-pkg-config.make57
-rw-r--r--rules/host-pkgconf.in (renamed from rules/host-pkg-config.in)2
-rw-r--r--rules/host-pkgconf.make54
-rw-r--r--rules/host-postgresql.make5
-rw-r--r--rules/host-protobuf-c.in6
-rw-r--r--rules/host-protobuf-c.make22
-rw-r--r--rules/host-ptx-code-signing-dev.make5
-rw-r--r--rules/host-python-setuptools.make32
-rw-r--r--rules/host-python.in10
-rw-r--r--rules/host-python.make74
-rw-r--r--rules/host-python3-babel.in8
-rw-r--r--rules/host-python3-babel.make73
-rw-r--r--rules/host-python3-cffi.in9
-rw-r--r--rules/host-python3-flit-core.in6
-rw-r--r--rules/host-python3-flit-core.make34
-rw-r--r--rules/host-python3-installer.in7
-rw-r--r--rules/host-python3-installer.make34
-rw-r--r--rules/host-python3-numpy.in8
-rw-r--r--rules/host-python3-numpy.make39
-rw-r--r--rules/host-python3-packaging.in7
-rw-r--r--rules/host-python3-packaging.make36
-rw-r--r--rules/host-python3-pip.in9
-rw-r--r--rules/host-python3-pip.make23
-rw-r--r--rules/host-python3-pybuild.in10
-rw-r--r--rules/host-python3-pybuild.make34
-rw-r--r--rules/host-python3-pycparser.in6
-rw-r--r--rules/host-python3-pycparser.make20
-rw-r--r--rules/host-python3-pyproject-hooks.in7
-rw-r--r--rules/host-python3-pyproject-hooks.make34
-rw-r--r--rules/host-python3-scons.in3
-rw-r--r--rules/host-python3-scons.make10
-rw-r--r--rules/host-python3-semantic-version.in6
-rw-r--r--rules/host-python3-semantic-version.make20
-rw-r--r--rules/host-python3-setuptools-rust.in7
-rw-r--r--rules/host-python3-setuptools-rust.make33
-rw-r--r--rules/host-python3-shiboken.in14
-rw-r--r--rules/host-python3-shiboken.make53
-rw-r--r--rules/host-python3-toml.make2
-rw-r--r--rules/host-python3-tomli.in7
-rw-r--r--rules/host-python3-tomli.make34
-rw-r--r--rules/host-python3-tz.in6
-rw-r--r--rules/host-python3-tz.make33
-rw-r--r--rules/host-python3-wheel.in8
-rw-r--r--rules/host-python3-wheel.make34
-rw-r--r--rules/host-python3.make37
-rw-r--r--rules/host-qemu.in2
-rw-r--r--rules/host-qemu.make259
-rw-r--r--rules/host-qt4.in22
-rw-r--r--rules/host-qt4.make179
-rw-r--r--rules/host-qt5.make32
-rw-r--r--rules/host-qt6.in56
-rw-r--r--rules/host-qt6.make487
-rw-r--r--rules/host-rauc.in1
-rw-r--r--rules/host-rauc.make19
-rw-r--r--rules/host-shaderc.make63
-rw-r--r--rules/host-sqlite.make8
-rw-r--r--rules/host-squashfs-tools.make4
-rw-r--r--rules/host-swig.in23
-rw-r--r--rules/host-swig.make63
-rw-r--r--rules/host-system-libpcsclite.in4
-rw-r--r--rules/host-system-libpcsclite.make55
-rw-r--r--rules/host-system-python3-cheetah3.in7
-rw-r--r--rules/host-system-python3-cheetah3.make35
-rw-r--r--rules/host-system-python3-flit-core.in7
-rw-r--r--rules/host-system-python3-flit-core.make20
-rw-r--r--rules/host-system-python3-html5lib.in8
-rw-r--r--rules/host-system-python3-html5lib.make34
-rw-r--r--rules/host-system-python3-installer.in7
-rw-r--r--rules/host-system-python3-installer.make20
-rw-r--r--rules/host-system-python3-jinja2.in7
-rw-r--r--rules/host-system-python3-jinja2.make20
-rw-r--r--rules/host-system-python3-mako.in9
-rw-r--r--rules/host-system-python3-mako.make20
-rw-r--r--rules/host-system-python3-markupsafe.in7
-rw-r--r--rules/host-system-python3-markupsafe.make20
-rw-r--r--rules/host-system-python3-packaging.in7
-rw-r--r--rules/host-system-python3-packaging.make20
-rw-r--r--rules/host-system-python3-ply.in7
-rw-r--r--rules/host-system-python3-ply.make20
-rw-r--r--rules/host-system-python3-psutil.in7
-rw-r--r--rules/host-system-python3-psutil.make34
-rw-r--r--rules/host-system-python3-pybuild.in10
-rw-r--r--rules/host-system-python3-pybuild.make20
-rw-r--r--rules/host-system-python3-pyelftools.in8
-rw-r--r--rules/host-system-python3-pyelftools.make34
-rw-r--r--rules/host-system-python3-pymongo.in9
-rw-r--r--rules/host-system-python3-pymongo.make34
-rw-r--r--rules/host-system-python3-pyproject-hooks.in7
-rw-r--r--rules/host-system-python3-pyproject-hooks.make20
-rw-r--r--rules/host-system-python3-setuptools.in6
-rw-r--r--rules/host-system-python3-setuptools.make20
-rw-r--r--rules/host-system-python3-six.in7
-rw-r--r--rules/host-system-python3-six.make20
-rw-r--r--rules/host-system-python3-toml.in7
-rw-r--r--rules/host-system-python3-toml.make20
-rw-r--r--rules/host-system-python3-tomli.in7
-rw-r--r--rules/host-system-python3-tomli.make20
-rw-r--r--rules/host-system-python3-webencodings.in7
-rw-r--r--rules/host-system-python3-webencodings.make32
-rw-r--r--rules/host-system-python3-wheel.in8
-rw-r--r--rules/host-system-python3-wheel.make20
-rw-r--r--rules/host-system-python3.in9
-rw-r--r--rules/host-system-python3.make37
-rw-r--r--rules/host-systemd.in4
-rw-r--r--rules/host-systemd.make103
-rw-r--r--rules/host-tf-a.make20
-rw-r--r--rules/host-timeout.make2
-rw-r--r--rules/host-tz-database.make24
-rw-r--r--rules/host-u-boot-tools.make2
-rw-r--r--rules/host-unifdef.in6
-rw-r--r--rules/host-unifdef.make38
-rw-r--r--rules/host-ustr.in10
-rw-r--r--rules/host-util-linux-ng.in7
-rw-r--r--rules/host-util-linux-ng.make65
-rw-r--r--rules/host-util-linux.in8
-rw-r--r--rules/host-util-linux.make133
-rw-r--r--rules/host-wayland.make5
-rw-r--r--rules/host-xcb-proto.make3
-rw-r--r--rules/host-xorg-app-bdftopcf.make5
-rw-r--r--rules/host-xorg-app-mkfontscale.make5
-rw-r--r--rules/host-xorg-app-xkbcomp.make13
-rw-r--r--rules/host-xorg-font-util.make5
-rw-r--r--rules/host-xorg-lib-Xau.make2
-rw-r--r--rules/host-xorg-lib-Xfont.make3
-rw-r--r--rules/host-xorg-lib-fontenc.make5
-rw-r--r--rules/host-xorg-lib-xtrans.make5
-rw-r--r--rules/host-xorg-server.in8
-rw-r--r--rules/host-xorg-util-macros.make6
-rw-r--r--rules/host-xz.make6
-rw-r--r--rules/host-yarn.make2
-rw-r--r--rules/host-yasm.make11
-rw-r--r--rules/host-yubihsm-shell.make7
-rw-r--r--rules/host-zip.in12
-rw-r--r--rules/host-zip.make (renamed from rules/host-xorg-server.make)29
-rw-r--r--rules/host-zstd.make2
-rw-r--r--rules/hostapd.make8
-rw-r--r--rules/hpanel.in13
-rw-r--r--rules/hpanel.make64
-rw-r--r--rules/hping.in12
-rw-r--r--rules/hping.make61
-rw-r--r--rules/htmldoc.in11
-rw-r--r--rules/htmldoc.make69
-rw-r--r--rules/htop.make18
-rw-r--r--rules/hwdata.in47
-rw-r--r--rules/hwdata.make82
-rw-r--r--rules/icu.in1
-rw-r--r--rules/icu.make25
-rw-r--r--rules/iftop.in2
-rw-r--r--rules/igt-gpu-tools.in5
-rw-r--r--rules/igt-gpu-tools.make98
-rw-r--r--rules/ima-evm-utils.make23
-rw-r--r--rules/image-hdimg.make7
-rw-r--r--rules/image-rauc.make37
-rw-r--r--rules/image-root-cpio-gz.make38
-rw-r--r--rules/image-root-cpio.make4
-rw-r--r--rules/imagemagick.make38
-rw-r--r--rules/inetutils.in4
-rw-r--r--rules/initmethod-bbinit.make2
-rw-r--r--rules/initmethod-systemd.make2
-rw-r--r--rules/initmethod.in2
-rw-r--r--rules/inotify-tools.make6
-rw-r--r--rules/intel-gmmlib.make8
-rw-r--r--rules/intel-media-driver.make6
-rw-r--r--rules/iozone.in2
-rw-r--r--rules/iperf.make6
-rw-r--r--rules/iperf3.make8
-rw-r--r--rules/iproute2.in22
-rw-r--r--rules/iproute2.make12
-rw-r--r--rules/iptables.make48
-rw-r--r--rules/iputils.in12
-rw-r--r--rules/iw.make6
-rw-r--r--rules/jamvm.make30
-rw-r--r--rules/jed.in21
-rw-r--r--rules/jed.make67
-rw-r--r--rules/jimtcl.in1
-rw-r--r--rules/jimtcl.make18
-rw-r--r--rules/joe.make6
-rw-r--r--rules/jq.make19
-rw-r--r--rules/json-c.make6
-rw-r--r--rules/json-glib.in1
-rw-r--r--rules/json-glib.make31
-rw-r--r--rules/jvisu.in2
-rw-r--r--rules/jvisu.make4
-rw-r--r--rules/kbd.make2
-rw-r--r--rules/kernel-fit.make2
-rw-r--r--rules/kernel-header.make2
-rw-r--r--rules/kernel.make76
-rw-r--r--rules/kexec-tools.make7
-rw-r--r--rules/keyutils.make16
-rw-r--r--rules/killproc.make14
-rw-r--r--rules/kmscube.in2
-rw-r--r--rules/krb5.make19
-rw-r--r--rules/lcms.make16
-rw-r--r--rules/less.make10
-rw-r--r--rules/libaio.make18
-rw-r--r--rules/libarchive.in14
-rw-r--r--rules/libarchive.make15
-rw-r--r--rules/libass.in12
-rw-r--r--rules/libass.make63
-rw-r--r--rules/libassuan.make7
-rw-r--r--rules/libatasmart.in11
-rw-r--r--rules/libatasmart.make59
-rw-r--r--rules/libatomic_ops.in11
-rw-r--r--rules/libatomic_ops.make75
-rw-r--r--rules/libblkid.in10
-rw-r--r--rules/libblockdev.in24
-rw-r--r--rules/libblockdev.make96
-rw-r--r--rules/libbsd.in1
-rw-r--r--rules/libbsd.make26
-rw-r--r--rules/libbson.in9
-rw-r--r--rules/libbson.make89
-rw-r--r--rules/libbytesize.in11
-rw-r--r--rules/libbytesize.make75
-rw-r--r--rules/libc.in15
-rw-r--r--rules/libcaca.in5
-rw-r--r--rules/libcaca.make14
-rw-r--r--rules/libcamera.in129
-rw-r--r--rules/libcamera.make155
-rw-r--r--rules/libcap-ng.make5
-rw-r--r--rules/libcap.make14
-rw-r--r--rules/libcdio.in16
-rw-r--r--rules/libcdio.make68
-rw-r--r--rules/libcgi.in10
-rw-r--r--rules/libcgi.make8
-rw-r--r--rules/libcgic.in13
-rw-r--r--rules/libcgic.make55
-rw-r--r--rules/libcgicc.make6
-rw-r--r--rules/libconfig.in2
-rw-r--r--rules/libconfig.make5
-rw-r--r--rules/libconfuse.make18
-rw-r--r--rules/libcroco.in50
-rw-r--r--rules/libcroco.make66
-rw-r--r--rules/libcurl.in57
-rw-r--r--rules/libcurl.make39
-rw-r--r--rules/libdaemon.make6
-rw-r--r--rules/libdisplay-info.in9
-rw-r--r--rules/libdisplay-info.make58
-rw-r--r--rules/libdmtx.in6
-rw-r--r--rules/libdmtx.make13
-rw-r--r--rules/libdrm.in28
-rw-r--r--rules/libdrm.make30
-rw-r--r--rules/libdvdcss.in8
-rw-r--r--rules/libdvdcss.make60
-rw-r--r--rules/libdvdnav.in10
-rw-r--r--rules/libdvdnav.make59
-rw-r--r--rules/libdvdread.in7
-rw-r--r--rules/libdvdread.make60
-rw-r--r--rules/libelf.in5
-rw-r--r--rules/libelf.make20
-rw-r--r--rules/libepoxy.make10
-rw-r--r--rules/libestr.make18
-rw-r--r--rules/libevdev.in1
-rw-r--r--rules/libevdev.make9
-rw-r--r--rules/libevent.make3
-rw-r--r--rules/libezv24.in2
-rw-r--r--rules/libfastjson.make18
-rw-r--r--rules/libffi.make21
-rw-r--r--rules/libfsl-vpu.in7
-rw-r--r--rules/libfsl-vpu.make57
-rw-r--r--rules/libftdi.make10
-rw-r--r--rules/libftdi1.make21
-rw-r--r--rules/libgcrypt.make18
-rw-r--r--rules/libgd.make8
-rw-r--r--rules/libgmp.in2
-rw-r--r--rules/libgmp.make4
-rw-r--r--rules/libgpg-error.make4
-rw-r--r--rules/libgpiod.make9
-rw-r--r--rules/libgsloop.make6
-rw-r--r--rules/libgudev.in1
-rw-r--r--rules/libgudev.make21
-rw-r--r--rules/libical.make27
-rw-r--r--rules/libid3tag.make8
-rw-r--r--rules/libiio.make20
-rw-r--r--rules/libinput.in5
-rw-r--r--rules/libinput.make12
-rw-r--r--rules/libiodbc.in4
-rw-r--r--rules/libiodbc.make5
-rw-r--r--rules/libjpeg.in9
-rw-r--r--rules/libjpeg.make25
-rw-r--r--rules/libkcapi.in71
-rw-r--r--rules/libkcapi.make48
-rw-r--r--rules/libkmod.make12
-rw-r--r--rules/libksba.make13
-rw-r--r--rules/liblist.make6
-rw-r--r--rules/liblockfile.make8
-rw-r--r--rules/libltdl.make10
-rw-r--r--rules/liblzo.in2
-rw-r--r--rules/liblzo.make10
-rw-r--r--rules/libmad.make12
-rw-r--r--rules/libmbim.in2
-rw-r--r--rules/libmbim.make40
-rw-r--r--rules/libmd.in7
-rw-r--r--rules/libmd.make59
-rw-r--r--rules/libmemcache.make7
-rw-r--r--rules/libmemcached.in4
-rw-r--r--rules/libmemcached.make15
-rw-r--r--rules/libmicrohttpd.make36
-rw-r--r--rules/libmng.make8
-rw-r--r--rules/libmnl.make4
-rw-r--r--rules/libmodbus.make16
-rw-r--r--rules/libmxml.make17
-rw-r--r--rules/libndp.make18
-rw-r--r--rules/libnet.in2
-rw-r--r--rules/libnetpbm.in58
-rw-r--r--rules/libnetpbm.make95
-rw-r--r--rules/libnfnetlink.in16
-rw-r--r--rules/libnftnl.make6
-rw-r--r--rules/libnghttp2.in8
-rw-r--r--rules/libnghttp2.make77
-rw-r--r--rules/libnice.in4
-rw-r--r--rules/libnice.make29
-rw-r--r--rules/libnih.in18
-rw-r--r--rules/libnih.make60
-rw-r--r--rules/libnl3.make7
-rw-r--r--rules/libnvme.in11
-rw-r--r--rules/libnvme.make67
-rw-r--r--rules/libogg.make14
-rw-r--r--rules/liboil.in13
-rw-r--r--rules/liboil.make60
-rw-r--r--rules/liboop.make3
-rw-r--r--rules/libp11.make26
-rw-r--r--rules/libpcap.make31
-rw-r--r--rules/libpciaccess.in21
-rw-r--r--rules/libpciaccess.make29
-rw-r--r--rules/libpcre.make14
-rw-r--r--rules/libpng.make10
-rw-r--r--rules/libpopt.make9
-rw-r--r--rules/libpsl.make8
-rw-r--r--rules/libpthread-stubs.make14
-rw-r--r--rules/libpv.in54
-rw-r--r--rules/libpv.make84
-rw-r--r--rules/libqmi.in5
-rw-r--r--rules/libqmi.make44
-rw-r--r--rules/librn.make6
-rw-r--r--rules/librsvg.cargo.make1368
-rw-r--r--rules/librsvg.in8
-rw-r--r--rules/librsvg.make43
-rw-r--r--rules/librtlsdr.in29
-rw-r--r--rules/librtlsdr.make65
-rw-r--r--rules/libseccomp.make18
-rw-r--r--rules/libsepol.make1
-rw-r--r--rules/libshout.in1
-rw-r--r--rules/libshout.make7
-rw-r--r--rules/libsigcpp.make6
-rw-r--r--rules/libslirp.in10
-rw-r--r--rules/libslirp.make58
-rw-r--r--rules/libsndfile.in1
-rw-r--r--rules/libsndfile.make29
-rw-r--r--rules/libsocketcan.make3
-rw-r--r--rules/libsodium.in2
-rw-r--r--rules/libsodium.make7
-rw-r--r--rules/libsoup.in5
-rw-r--r--rules/libsoup.make30
-rw-r--r--rules/libsrtp.make8
-rw-r--r--rules/libssh2.in2
-rw-r--r--rules/libssh2.make7
-rw-r--r--rules/libsysfs.in2
-rw-r--r--rules/libsysfs.make6
-rw-r--r--rules/libtag.in18
-rw-r--r--rules/libtag.make60
-rw-r--r--rules/libtahu.in11
-rw-r--r--rules/libtahu.make83
-rw-r--r--rules/libtasn1.in4
-rw-r--r--rules/libtasn1.make10
-rw-r--r--rules/libtheora.in50
-rw-r--r--rules/libtheora.make34
-rw-r--r--rules/libtiff.in30
-rw-r--r--rules/libtiff.make112
-rw-r--r--rules/libtirpc.make10
-rw-r--r--rules/libtremor.make6
-rw-r--r--rules/libucdaemon.make6
-rw-r--r--rules/libunwind.in1
-rw-r--r--rules/libunwind.make17
-rw-r--r--rules/liburcu.in2
-rw-r--r--rules/liburing.make4
-rw-r--r--rules/libusb-compat.in2
-rw-r--r--rules/libusb-compat.make6
-rw-r--r--rules/libusb.make17
-rw-r--r--rules/libusbgx.in9
-rw-r--r--rules/libusbgx.make14
-rw-r--r--rules/libuuid.in10
-rw-r--r--rules/libuv.make4
-rw-r--r--rules/libv4l2-python.in11
-rw-r--r--rules/libv4l2-python.make68
-rw-r--r--rules/libva-utils.make4
-rw-r--r--rules/libva.in10
-rw-r--r--rules/libva.make12
-rw-r--r--rules/libvorbis.make12
-rw-r--r--rules/libwacom.in1
-rw-r--r--rules/libwacom.make4
-rw-r--r--rules/libwebp.in2
-rw-r--r--rules/libwebp.make18
-rw-r--r--rules/libwebsockets.in24
-rw-r--r--rules/libwebsockets.make85
-rw-r--r--rules/libwpe.in3
-rw-r--r--rules/libwpe.make14
-rw-r--r--rules/libx86.in12
-rw-r--r--rules/libx86.make58
-rw-r--r--rules/libxcb.in1
-rw-r--r--rules/libxcb.make19
-rw-r--r--rules/libxcrypt.in42
-rw-r--r--rules/libxcrypt.make71
-rw-r--r--rules/libxcvt.in19
-rw-r--r--rules/libxcvt.make59
-rw-r--r--rules/libxkbcommon.make6
-rw-r--r--rules/libxml2.in19
-rw-r--r--rules/libxml2.make31
-rw-r--r--rules/libxmlconfig.make6
-rw-r--r--rules/libxslt.in4
-rw-r--r--rules/libxslt.make18
-rw-r--r--rules/libyaml.make4
-rw-r--r--rules/libzmq.in1
-rw-r--r--rules/libzmq.make65
-rw-r--r--rules/lighttpd.in95
-rw-r--r--rules/lighttpd.make43
-rw-r--r--rules/links.make14
-rw-r--r--rules/linux-firmware.in32
-rw-r--r--rules/linux-firmware.make161
-rw-r--r--rules/linuxptp.make7
-rw-r--r--rules/lldpd.make4
-rw-r--r--rules/llvm.in16
-rw-r--r--rules/llvm.make242
-rw-r--r--rules/lm_sensors.make6
-rw-r--r--rules/lmbench.in8
-rw-r--r--rules/lmbench.make96
-rw-r--r--rules/log4cplus.in15
-rw-r--r--rules/log4cplus.make12
-rw-r--r--rules/lpc21isp.in4
-rw-r--r--rules/lpc21isp.make2
-rw-r--r--rules/lsh.in66
-rw-r--r--rules/lsh.make95
-rw-r--r--rules/lshw.in3
-rw-r--r--rules/lshw.make12
-rw-r--r--rules/lsof.make2
-rw-r--r--rules/lsuio.make6
-rw-r--r--rules/ltt-control.make6
-rw-r--r--rules/lua.make4
-rw-r--r--rules/luaexpat.make4
-rw-r--r--rules/lvm2.in3
-rw-r--r--rules/lvm2.make30
-rw-r--r--rules/lz4.make8
-rw-r--r--rules/machine-id.in6
-rw-r--r--rules/madplay.make9
-rw-r--r--rules/mariadb.in2
-rw-r--r--rules/mariadb.make7
-rw-r--r--rules/mbedtls.make15
-rw-r--r--rules/media-session.in32
-rw-r--r--rules/media-session.make94
-rw-r--r--rules/memcached.in17
-rw-r--r--rules/memcached.make57
-rw-r--r--rules/memedit.make6
-rw-r--r--rules/memstat.in8
-rw-r--r--rules/memstat.make59
-rw-r--r--rules/memtest86p.in7
-rw-r--r--rules/memtest86p.make3
-rw-r--r--rules/memtester.make1
-rw-r--r--rules/mesa-demos.make3
-rw-r--r--rules/mesalib.in137
-rw-r--r--rules/mesalib.make145
-rw-r--r--rules/mgetty.in80
-rw-r--r--rules/mgetty.make109
-rw-r--r--rules/microcom.make2
-rw-r--r--rules/mii-diag.make3
-rw-r--r--rules/minicom.in5
-rw-r--r--rules/minicom.make9
-rw-r--r--rules/minisign.in13
-rw-r--r--rules/minisign.make57
-rw-r--r--rules/mlpack.in26
-rw-r--r--rules/mlpack.make80
-rw-r--r--rules/mmc-utils.make10
-rw-r--r--rules/mobile-broadband-provider-info.make18
-rw-r--r--rules/modemmanager.in3
-rw-r--r--rules/modemmanager.make58
-rw-r--r--rules/module-init-tools.in86
-rw-r--r--rules/module-init-tools.make76
-rw-r--r--rules/mongodb.in16
-rw-r--r--rules/mongodb.make114
-rw-r--r--rules/monit.in1
-rw-r--r--rules/monit.make6
-rw-r--r--rules/mosh.make2
-rw-r--r--rules/mosquitto.make8
-rw-r--r--rules/mpfr.in9
-rw-r--r--rules/mpfr.make70
-rw-r--r--rules/mpg123.in1
-rw-r--r--rules/msmtp.in44
-rw-r--r--rules/msmtp.make63
-rw-r--r--rules/mtd-utils-bbinit.in9
-rw-r--r--rules/mtd-utils.in48
-rw-r--r--rules/mtd-utils.make45
-rw-r--r--rules/mtdev.make6
-rw-r--r--rules/mtr.in21
-rw-r--r--rules/mtr.make60
-rw-r--r--rules/munin.make5
-rw-r--r--rules/mysql.in30
-rw-r--r--rules/mysql.make157
-rw-r--r--rules/mysqldb.in2
-rw-r--r--rules/nanocom.in6
-rw-r--r--rules/nanocom.make62
-rw-r--r--rules/nbd.in1
-rw-r--r--rules/nbd.make13
-rw-r--r--rules/ncftp.in36
-rw-r--r--rules/ncftp.make71
-rw-r--r--rules/ncurses.in2
-rw-r--r--rules/ncurses.make44
-rw-r--r--rules/neatvnc.in44
-rw-r--r--rules/neatvnc.make65
-rw-r--r--rules/net-snmp.make11
-rw-r--r--rules/netcat.make5
-rw-r--r--rules/netkit-ftp.make5
-rw-r--r--rules/netperf.in14
-rw-r--r--rules/netperf.make74
-rw-r--r--rules/nettle.make11
-rw-r--r--rules/networkmanager.in14
-rw-r--r--rules/networkmanager.make17
-rw-r--r--rules/nfsutils.in8
-rw-r--r--rules/nfsutils.make9
-rw-r--r--rules/nftables.make10
-rw-r--r--rules/nginx.in2
-rw-r--r--rules/nginx.make105
-rw-r--r--rules/nlohmann-json.in21
-rw-r--r--rules/nlohmann-json.make42
-rw-r--r--rules/nmap.in2
-rw-r--r--rules/nmap.make10
-rw-r--r--rules/nodejs.in6
-rw-r--r--rules/nodejs.make44
-rw-r--r--rules/npth.make11
-rw-r--r--rules/nspr.make4
-rw-r--r--rules/nss.make8
-rw-r--r--rules/ntfs-3g.in3
-rw-r--r--rules/ntfs-3g.make18
-rw-r--r--rules/ntp.make10
-rw-r--r--rules/ntpclient.in8
-rw-r--r--rules/ntpclient.make11
-rw-r--r--rules/numactl.in18
-rw-r--r--rules/numactl.make59
-rw-r--r--rules/nvtop.in34
-rw-r--r--rules/nvtop.make62
-rw-r--r--rules/ofono.make3
-rw-r--r--rules/open62541.in4
-rw-r--r--rules/open62541.make38
-rw-r--r--rules/openblas.in19
-rw-r--r--rules/openblas.make103
-rw-r--r--rules/opencv.in4
-rw-r--r--rules/opencv.make15
-rw-r--r--rules/openfortivpn.in8
-rw-r--r--rules/openldap.in1
-rw-r--r--rules/openldap.make41
-rw-r--r--rules/opennhrp.in9
-rw-r--r--rules/opennhrp.make62
-rw-r--r--rules/openntpd.make2
-rw-r--r--rules/opensc.make8
-rw-r--r--rules/openssh.make18
-rw-r--r--rules/openssl.in6
-rw-r--r--rules/openssl.make31
-rw-r--r--rules/openvpn.in1
-rw-r--r--rules/openvpn.make42
-rw-r--r--rules/opkg.in35
-rw-r--r--rules/opkg.make31
-rw-r--r--rules/oprofile.in12
-rw-r--r--rules/optee-client.in1
-rw-r--r--rules/optee-client.make8
-rw-r--r--rules/optee-examples.make4
-rw-r--r--rules/optee-test.in7
-rw-r--r--rules/optee-test.make7
-rw-r--r--rules/optee.in2
-rw-r--r--rules/optee.make10
-rw-r--r--rules/opus.in30
-rw-r--r--rules/opus.make64
-rw-r--r--rules/orc.make4
-rw-r--r--rules/other/Toplevel.make7
-rw-r--r--rules/owfs.in6
-rw-r--r--rules/p11-kit.make18
-rw-r--r--rules/p7zip.in18
-rw-r--r--rules/p7zip.make61
-rw-r--r--rules/paho-mqtt-c.make17
-rw-r--r--rules/pam.make21
-rw-r--r--rules/pango.make18
-rw-r--r--rules/pangomm.in10
-rw-r--r--rules/pangomm.make58
-rw-r--r--rules/pciutils.in18
-rw-r--r--rules/pciutils.make20
-rw-r--r--rules/pcmciautils.make11
-rw-r--r--rules/pcre2.in24
-rw-r--r--rules/pcre2.make89
-rw-r--r--rules/pcsc-lite.make4
-rw-r--r--rules/pelts_tests.in8
-rw-r--r--rules/pelts_tests.make6
-rw-r--r--rules/perl.make25
-rw-r--r--rules/php5.in300
-rw-r--r--rules/php5.make302
-rw-r--r--rules/php8.in75
-rw-r--r--rules/php8.make249
-rw-r--r--rules/picocom.in2
-rw-r--r--rules/piglit.in6
-rw-r--r--rules/piglit.make6
-rw-r--r--rules/pipewire.in75
-rw-r--r--rules/pipewire.make284
-rw-r--r--rules/pixman.make8
-rw-r--r--rules/ply.make4
-rw-r--r--rules/pnputils.in4
-rw-r--r--rules/pnputils.make1
-rw-r--r--rules/poco.in92
-rw-r--r--rules/poco.make89
-rw-r--r--rules/poke.in17
-rw-r--r--rules/poke.make71
-rw-r--r--rules/polkit.in31
-rw-r--r--rules/polkit.make82
-rw-r--r--rules/pop3spam.make6
-rw-r--r--rules/poppler.in174
-rw-r--r--rules/poppler.make128
-rw-r--r--rules/portmap-bbinit.in8
-rw-r--r--rules/portmap.in25
-rw-r--r--rules/portmap.make71
-rw-r--r--rules/portmap.postinst7
-rw-r--r--rules/post/dts.make15
-rw-r--r--rules/post/dump.make66
-rw-r--r--rules/post/export_src.make10
-rw-r--r--rules/post/install.make7
-rw-r--r--rules/post/ptx_oldconfig.make7
-rw-r--r--rules/post/ptxd_make_cmake_toolchain.make5
-rw-r--r--rules/post/ptxd_make_debug.make15
-rw-r--r--rules/post/ptxd_make_image_common.make3
-rw-r--r--rules/post/ptxd_make_meson_toolchain.make1
-rw-r--r--rules/post/ptxd_make_report.make38
-rw-r--r--rules/post/ptxd_make_world_cargo.make18
-rw-r--r--rules/post/ptxd_make_world_clean.make7
-rw-r--r--rules/post/ptxd_make_world_common.make17
-rw-r--r--rules/post/ptxd_make_world_dtb.make19
-rw-r--r--rules/post/ptxd_make_world_dtbo.make22
-rw-r--r--rules/post/ptxd_make_world_extract.make6
-rw-r--r--rules/post/ptxd_make_world_fonts.make8
-rw-r--r--rules/post/ptxd_make_world_get.make21
-rw-r--r--rules/post/ptxd_make_world_inject.make19
-rw-r--r--rules/post/ptxd_make_world_install.make14
-rw-r--r--rules/post/ptxd_make_world_license.make29
-rw-r--r--rules/post/ptxd_make_world_nested.make15
-rw-r--r--rules/post/ptxd_make_world_prepare.make4
-rw-r--r--rules/post/ptxd_make_world_report.make44
-rw-r--r--rules/post/ptxd_make_world_targetinstall.make12
-rw-r--r--rules/post/ptxd_make_xpkg_common.make1
-rw-r--r--rules/post/virtual.make4
-rw-r--r--rules/postgresql.make7
-rw-r--r--rules/powertop.in4
-rw-r--r--rules/powertop.make6
-rw-r--r--rules/ppp.in8
-rw-r--r--rules/ppp.make10
-rw-r--r--rules/pps-tools.make4
-rw-r--r--rules/pre/000-cfghash.make15
-rw-r--r--rules/pre/000-option-disabled.make12
-rw-r--r--rules/pre/000-ptx-search.make2
-rw-r--r--rules/pre/010-code-signing.make6
-rw-r--r--rules/pre/020-code-signing-softhsm.make2
-rw-r--r--rules/pre/Rules.make84
-rw-r--r--rules/pre/kernel.make3
-rw-r--r--rules/pre/mirror.make4
-rw-r--r--rules/pre/xorg-dirs.make10
-rw-r--r--rules/prelink.make6
-rw-r--r--rules/procps.in1
-rw-r--r--rules/procps.make11
-rw-r--r--rules/proftpd.make38
-rw-r--r--rules/project-name.in19
-rw-r--r--rules/protobuf-c.in13
-rw-r--r--rules/protobuf-c.make59
-rw-r--r--rules/protobuf.make2
-rw-r--r--rules/ps3-utils.make3
-rw-r--r--rules/psmisc.in42
-rw-r--r--rules/psmisc.make24
-rw-r--r--rules/pulseaudio.in27
-rw-r--r--rules/pulseaudio.make51
-rw-r--r--rules/pureftpd.in2
-rw-r--r--rules/pureftpd.make3
-rw-r--r--rules/pv.make7
-rw-r--r--rules/pygobject.in10
-rw-r--r--rules/pygobject.make84
-rw-r--r--rules/pyserial.in41
-rw-r--r--rules/pyserial.make89
-rw-r--r--rules/pyserial3.make4
-rw-r--r--rules/python-imaging.in24
-rw-r--r--rules/python-imaging.make55
-rw-r--r--rules/python-protobuf.in13
-rw-r--r--rules/python-protobuf.make58
-rw-r--r--rules/python-pyro.in20
-rw-r--r--rules/python-pyro.make56
-rw-r--r--rules/python-routing.in14
-rw-r--r--rules/python-routing.make50
-rw-r--r--rules/python-rplicmp.in11
-rw-r--r--rules/python-rplicmp.make50
-rw-r--r--rules/python.in70
-rw-r--r--rules/python.make210
-rw-r--r--rules/python3-adbus.make4
-rw-r--r--rules/python3-aiofiles.make7
-rw-r--r--rules/python3-aiohttp-json-rpc.make2
-rw-r--r--rules/python3-aiohttp.in3
-rw-r--r--rules/python3-aiohttp.make4
-rw-r--r--rules/python3-aiosignal.in9
-rw-r--r--rules/python3-aiosignal.make54
-rw-r--r--rules/python3-aiosqlite.in12
-rw-r--r--rules/python3-aiosqlite.make53
-rw-r--r--rules/python3-async-timeout.make4
-rw-r--r--rules/python3-asyncua.in15
-rw-r--r--rules/python3-asyncua.make54
-rw-r--r--rules/python3-cffi.in1
-rw-r--r--rules/python3-cffi.make6
-rw-r--r--rules/python3-charset-normalizer.in8
-rw-r--r--rules/python3-charset-normalizer.make53
-rw-r--r--rules/python3-configshell.make2
-rw-r--r--rules/python3-cryptography.cargo.make287
-rw-r--r--rules/python3-cryptography.in15
-rw-r--r--rules/python3-cryptography.make62
-rw-r--r--rules/python3-dateutil.make7
-rw-r--r--rules/python3-decorator.make2
-rw-r--r--rules/python3-falcon.in12
-rw-r--r--rules/python3-falcon.make54
-rw-r--r--rules/python3-frozenlist.in9
-rw-r--r--rules/python3-frozenlist.make54
-rw-r--r--rules/python3-gbulb.make8
-rw-r--r--rules/python3-gi.in1
-rw-r--r--rules/python3-gi.make23
-rw-r--r--rules/python3-gunicorn.in11
-rw-r--r--rules/python3-gunicorn.make57
-rw-r--r--rules/python3-idna-ssl.in8
-rw-r--r--rules/python3-idna-ssl.make54
-rw-r--r--rules/python3-ifaddr.in9
-rw-r--r--rules/python3-ifaddr.make53
-rw-r--r--rules/python3-importlib-metadata.make2
-rw-r--r--rules/python3-iniherit.make2
-rw-r--r--rules/python3-ipython-genutils.make2
-rw-r--r--rules/python3-ipython.make2
-rw-r--r--rules/python3-jinja2.make4
-rw-r--r--rules/python3-joblib.in10
-rw-r--r--rules/python3-joblib.make53
-rw-r--r--rules/python3-lxml.in1
-rw-r--r--rules/python3-lxml.make6
-rw-r--r--rules/python3-mako.in2
-rw-r--r--rules/python3-mako.make6
-rw-r--r--rules/python3-markupsafe.make4
-rw-r--r--rules/python3-more-itertools.make2
-rw-r--r--rules/python3-msgpack.make2
-rw-r--r--rules/python3-netifaces.in9
-rw-r--r--rules/python3-netifaces.make53
-rw-r--r--rules/python3-numpy.in4
-rw-r--r--rules/python3-numpy.make25
-rw-r--r--rules/python3-opcua.make2
-rw-r--r--rules/python3-packaging.make2
-rw-r--r--rules/python3-paho-mqtt.in9
-rw-r--r--rules/python3-paho-mqtt.make55
-rw-r--r--rules/python3-path-py.make2
-rw-r--r--rules/python3-pickleshare.make2
-rw-r--r--rules/python3-pip.make4
-rw-r--r--rules/python3-pluggy.in1
-rw-r--r--rules/python3-pluggy.make2
-rw-r--r--rules/python3-ply.make6
-rw-r--r--rules/python3-posix_ipc.in10
-rw-r--r--rules/python3-posix_ipc.make53
-rw-r--r--rules/python3-psutil.make2
-rw-r--r--rules/python3-py.in1
-rw-r--r--rules/python3-py.make2
-rw-r--r--rules/python3-pyalsaaudio.make2
-rw-r--r--rules/python3-pyasn1.in9
-rw-r--r--rules/python3-pyasn1.make53
-rw-r--r--rules/python3-pybind11.in13
-rw-r--r--rules/python3-pybind11.make38
-rw-r--r--rules/python3-pycparser.in6
-rw-r--r--rules/python3-pycparser.make8
-rw-r--r--rules/python3-pycryptodomex.in9
-rw-r--r--rules/python3-pycryptodomex.make57
-rw-r--r--rules/python3-pyopenssl.in9
-rw-r--r--rules/python3-pyopenssl.make53
-rw-r--r--rules/python3-pyparsing.make2
-rw-r--r--rules/python3-pyro.make6
-rw-r--r--rules/python3-pyside.in17
-rw-r--r--rules/python3-pyside.make60
-rw-r--r--rules/python3-pysmi.in9
-rw-r--r--rules/python3-pysmi.make54
-rw-r--r--rules/python3-pysnmp.in13
-rw-r--r--rules/python3-pysnmp.make55
-rw-r--r--rules/python3-pytest.make2
-rw-r--r--rules/python3-pytz.make17
-rw-r--r--rules/python3-pyusb.in10
-rw-r--r--rules/python3-pyusb.make54
-rw-r--r--rules/python3-pyyaml.make6
-rw-r--r--rules/python3-scikit-learn.in14
-rw-r--r--rules/python3-scikit-learn.make58
-rw-r--r--rules/python3-scipy.in19
-rw-r--r--rules/python3-scipy.make69
-rw-r--r--rules/python3-semantic-version.in9
-rw-r--r--rules/python3-semantic-version.make53
-rw-r--r--rules/python3-setuptools.make8
-rw-r--r--rules/python3-shiboken.in19
-rw-r--r--rules/python3-shiboken.make89
-rw-r--r--rules/python3-simplegeneric.make2
-rw-r--r--rules/python3-six.make6
-rw-r--r--rules/python3-snmpclitools.in9
-rw-r--r--rules/python3-snmpclitools.make56
-rw-r--r--rules/python3-sortedcontainers.in9
-rw-r--r--rules/python3-sortedcontainers.make53
-rw-r--r--rules/python3-sqlparse.make6
-rw-r--r--rules/python3-systemd.make17
-rw-r--r--rules/python3-tabulate.in8
-rw-r--r--rules/python3-tabulate.make54
-rw-r--r--rules/python3-text-unidecode.make2
-rw-r--r--rules/python3-threadpoolctl.in9
-rw-r--r--rules/python3-threadpoolctl.make53
-rw-r--r--rules/python3-tornado.make6
-rw-r--r--rules/python3-traitlets.make2
-rw-r--r--rules/python3-urllib3.make6
-rw-r--r--rules/python3-uvloop.in10
-rw-r--r--rules/python3-uvloop.make57
-rw-r--r--rules/python3-wcwidth.make2
-rw-r--r--rules/python3-websocket-client.in12
-rw-r--r--rules/python3-websocket-client.make52
-rw-r--r--rules/python3-yarl.make4
-rw-r--r--rules/python3-yoyo-migrations.in13
-rw-r--r--rules/python3-yoyo-migrations.make70
-rw-r--r--rules/python3-zeroconf.in9
-rw-r--r--rules/python3-zeroconf.make53
-rw-r--r--rules/python3-zipp.make2
-rw-r--r--rules/python3.in7
-rw-r--r--rules/python3.make75
-rw-r--r--rules/pyzmq.in11
-rw-r--r--rules/pyzmq.make70
-rw-r--r--rules/qemu.in90
-rw-r--r--rules/qemu.make306
-rw-r--r--rules/qt4-demos.in352
-rw-r--r--rules/qt4-demos.make301
-rw-r--r--rules/qt4-examples.in3501
-rw-r--r--rules/qt4-examples.make2072
-rw-r--r--rules/qt4.in977
-rw-r--r--rules/qt4.make598
-rw-r--r--rules/qt5.in13
-rw-r--r--rules/qt5.make42
-rw-r--r--rules/qt5examples.in1
-rw-r--r--rules/qt5examples.make2
-rw-r--r--rules/qt6.in578
-rw-r--r--rules/qt6.make1235
-rw-r--r--rules/quagga.in106
-rw-r--r--rules/quagga.make141
-rw-r--r--rules/quota-tools.in1
-rw-r--r--rules/quota-tools.make3
-rw-r--r--rules/qwt.in28
-rw-r--r--rules/qwt.make54
-rw-r--r--rules/qwt5.in2
-rw-r--r--rules/qwt5.make2
-rw-r--r--rules/rapidjson.in2
-rw-r--r--rules/rauc-hawkbit-updater.make13
-rw-r--r--rules/rauc.in40
-rw-r--r--rules/rauc.make57
-rw-r--r--rules/rawrec.in10
-rw-r--r--rules/rawrec.make1
-rw-r--r--rules/readline.in1
-rw-r--r--rules/readline.make8
-rw-r--r--rules/redis.in27
-rw-r--r--rules/redis.make104
-rw-r--r--rules/rng-tools.in10
-rw-r--r--rules/rng-tools.make15
-rw-r--r--rules/rootfs.in8
-rw-r--r--rules/rrdtool.make2
-rw-r--r--rules/rsync.in4
-rw-r--r--rules/rsync.make10
-rw-r--r--rules/rsync3.in1
-rw-r--r--rules/rsync3.make20
-rw-r--r--rules/rsyslog.make2
-rw-r--r--rules/rt-tests.in5
-rw-r--r--rules/rt-tests.make9
-rw-r--r--rules/rtmpdump.make13
-rw-r--r--rules/samba.in3
-rw-r--r--rules/samba.make13
-rw-r--r--rules/schedtool.in2
-rw-r--r--rules/screen.make24
-rw-r--r--rules/sdbus-cpp.make4
-rw-r--r--rules/sdl-gfx.make6
-rw-r--r--rules/sdl-ttf.make6
-rw-r--r--rules/sdl2-image.in1
-rw-r--r--rules/sdl2-image.make20
-rw-r--r--rules/sdl2-mixer.in8
-rw-r--r--rules/sdl2-test.make2
-rw-r--r--rules/sdl2-ttf.in16
-rw-r--r--rules/sdl2-ttf.make19
-rw-r--r--rules/sdl2.in7
-rw-r--r--rules/sdl2.make37
-rw-r--r--rules/sdl_image.in3
-rw-r--r--rules/sdl_image.make6
-rw-r--r--rules/sdl_mixer.make61
-rw-r--r--rules/sdparm.make6
-rw-r--r--rules/seatd.in35
-rw-r--r--rules/seatd.make77
-rw-r--r--rules/sed.make21
-rw-r--r--rules/serdisplib.in2
-rw-r--r--rules/setmixer.make1
-rw-r--r--rules/shaderc.in2
-rw-r--r--rules/shaderc.make67
-rw-r--r--rules/shadow.in2
-rw-r--r--rules/simplerpl.in18
-rw-r--r--rules/simplerpl.make57
-rw-r--r--rules/smartmontools.in8
-rw-r--r--rules/smartmontools.make15
-rw-r--r--rules/smcroute.in2
-rw-r--r--rules/socat.make4
-rw-r--r--rules/sockperf.in8
-rw-r--r--rules/sockperf.make60
-rw-r--r--rules/sparsehash.make6
-rw-r--r--rules/spawn-fcgi.in2
-rw-r--r--rules/speex.make4
-rw-r--r--rules/speexdsp.make5
-rw-r--r--rules/spirv-headers.in8
-rw-r--r--rules/spirv-headers.make37
-rw-r--r--rules/spirv-tools.in2
-rw-r--r--rules/spirv-tools.make65
-rw-r--r--rules/sqlite.make7
-rw-r--r--rules/squashfs-tools.make6
-rw-r--r--rules/sshfs.make4
-rw-r--r--rules/sshpass.in22
-rw-r--r--rules/sshpass.make52
-rw-r--r--rules/ssmtp.make3
-rw-r--r--rules/strace.make17
-rw-r--r--rules/stress-ng.in3
-rw-r--r--rules/stress-ng.make16
-rw-r--r--rules/strongswan.in2
-rw-r--r--rules/strongswan.make21
-rw-r--r--rules/stunnel.in3
-rw-r--r--rules/stunnel.make6
-rw-r--r--rules/sudo.in2
-rw-r--r--rules/sudo.make30
-rw-r--r--rules/supertux.in2
-rw-r--r--rules/supertux.make8
-rw-r--r--rules/svgalib.make25
-rw-r--r--rules/sysklogd-bbinit.in8
-rw-r--r--rules/sysklogd.in41
-rw-r--r--rules/sysklogd.make93
-rw-r--r--rules/syslinux.make3
-rw-r--r--rules/syslogng.in8
-rw-r--r--rules/syslogng.make12
-rw-r--r--rules/sysstat.make8
-rw-r--r--rules/systemd-hwdb.make10
-rw-r--r--rules/systemd.in98
-rw-r--r--rules/systemd.make160
-rw-r--r--rules/talloc.in1
-rw-r--r--rules/talloc.make10
-rw-r--r--rules/tar.make10
-rw-r--r--rules/tcpdump.in23
-rw-r--r--rules/tcpdump.make14
-rw-r--r--rules/tcpwrapper.in41
-rw-r--r--rules/tcpwrapper.make74
-rwxr-xr-xrules/templates/code-signing-provider/ptxdist-set-keys-hsm.sh6
-rwxr-xr-xrules/templates/code-signing-provider/ptxdist-set-keys-softhsm.sh4
-rw-r--r--rules/templates/kconfig/Kconfig2
-rw-r--r--rules/templates/src-autoconf-lib/configure.ac8
-rw-r--r--rules/templates/src-autoconf-prog/configure.ac6
-rw-r--r--rules/templates/src-autoconf-proglib/configure.ac8
-rw-r--r--rules/templates/src-cmake-prog/@name@.c (renamed from rules/templates/src-cmake-prog/@name@.cpp)0
-rw-r--r--rules/templates/src-cmake-prog/CMakeLists.txt32
-rw-r--r--rules/templates/src-cmake-prog/wizard.sh4
-rw-r--r--rules/templates/src-linux-driver/@name@.c2
-rw-r--r--rules/templates/template-barebox-imx-habv4-make2
-rw-r--r--rules/templates/template-class-existing-target-in4
-rw-r--r--rules/templates/template-class-in4
-rw-r--r--rules/templates/template-code-signing-provider-make1
-rw-r--r--rules/templates/template-host-python3-in6
-rw-r--r--rules/templates/template-host-python3-make33
-rw-r--r--rules/templates/template-image-fit-in10
-rw-r--r--rules/templates/template-image-fit-make34
-rw-r--r--rules/templates/template-kernel-in1
-rw-r--r--rules/templates/template-kernel-make36
-rw-r--r--rules/templates/template-m4-macros/pkg.m42
-rw-r--r--rules/templates/template-m4-macros/ptx.m44
-rw-r--r--rules/templates/template-src-linux-driver-in1
-rw-r--r--rules/templates/template-src-linux-driver-make3
-rw-r--r--rules/templates/template-src-make-prog-make3
-rw-r--r--rules/templates/template-src-qmake-prog-make2
-rw-r--r--rules/templates/template-target-make2
-rw-r--r--rules/termcap.make26
-rw-r--r--rules/tf-a.make33
-rw-r--r--rules/thttpd-bbinit.in8
-rw-r--r--rules/thttpd.in47
-rw-r--r--rules/thttpd.make87
-rw-r--r--rules/timescaledb.make11
-rw-r--r--rules/timezone.make7
-rw-r--r--rules/tmux.in2
-rw-r--r--rules/tomcat.in13
-rw-r--r--rules/tomcat.make96
-rw-r--r--rules/tomoyo-tools.make8
-rw-r--r--rules/tpm2-abrmd.in1
-rw-r--r--rules/tpm2-tools.in14
-rw-r--r--rules/tpm2-tools.make81
-rw-r--r--rules/tpm2-tss.in3
-rw-r--r--rules/tpm2-tss.make16
-rw-r--r--rules/trace-cmd.make9
-rw-r--r--rules/tree.in4
-rw-r--r--rules/tree.make9
-rw-r--r--rules/u-boot.make54
-rw-r--r--rules/udev.in10
-rw-r--r--rules/udev.make6
-rw-r--r--rules/udisks.in23
-rw-r--r--rules/udisks.make110
-rw-r--r--rules/uhubctl.in8
-rw-r--r--rules/uhubctl.make54
-rw-r--r--rules/unstrung.in31
-rw-r--r--rules/unstrung.make64
-rw-r--r--rules/unzip.make1
-rw-r--r--rules/urshd.in8
-rw-r--r--rules/urshd.make6
-rw-r--r--rules/usb-modeswitch.make4
-rw-r--r--rules/usbip.in2
-rw-r--r--rules/usbip.make2
-rw-r--r--rules/usbutils.in4
-rw-r--r--rules/usbutils.make15
-rw-r--r--rules/ustr.in14
-rw-r--r--rules/ustr.make59
-rw-r--r--rules/util-linux-ng.make347
-rw-r--r--rules/util-linux.in (renamed from rules/util-linux-ng.in)695
-rw-r--r--rules/util-linux.make256
-rw-r--r--rules/uvc-gadget.make4
-rw-r--r--rules/v4l-utils.in8
-rw-r--r--rules/v4l-utils.make64
-rw-r--r--rules/valgrind.make22
-rw-r--r--rules/vim.in26
-rw-r--r--rules/vim.make31
-rw-r--r--rules/vkrunner.cargo.make341
-rw-r--r--rules/vkrunner.in10
-rw-r--r--rules/vkrunner.make66
-rw-r--r--rules/volk.in10
-rw-r--r--rules/volk.make41
-rw-r--r--rules/vorbis-tools.make3
-rw-r--r--rules/vulkan-headers.in8
-rw-r--r--rules/vulkan-headers.make38
-rw-r--r--rules/vulkan-loader.in2
-rw-r--r--rules/vulkan-loader.make71
-rw-r--r--rules/vulkan-tools.in16
-rw-r--r--rules/vulkan-tools.make33
-rw-r--r--rules/vulkan-utility-libraries.in10
-rw-r--r--rules/vulkan-utility-libraries.make39
-rw-r--r--rules/vulkan-validationlayers.in4
-rw-r--r--rules/vulkan-validationlayers.make23
-rw-r--r--rules/waffle.in3
-rw-r--r--rules/waffle.make34
-rw-r--r--rules/watchdog.in20
-rw-r--r--rules/watchdog.make52
-rw-r--r--rules/wayland-protocols.make6
-rw-r--r--rules/wayland-utils.in1
-rw-r--r--rules/wayland-utils.make9
-rw-r--r--rules/wayland.make15
-rw-r--r--rules/wayvnc.in25
-rw-r--r--rules/wayvnc.make61
-rw-r--r--rules/webrtc-audio-processing1.in10
-rw-r--r--rules/webrtc-audio-processing1.make62
-rw-r--r--rules/websocat.cargo.make1057
-rw-r--r--rules/websocat.in8
-rw-r--r--rules/websocat.make62
-rw-r--r--rules/weston.in48
-rw-r--r--rules/weston.make58
-rw-r--r--rules/wget.in4
-rw-r--r--rules/wget.make11
-rw-r--r--rules/wireless.make14
-rw-r--r--rules/wireplumber.in30
-rw-r--r--rules/wireplumber.make111
-rw-r--r--rules/wlroots.in17
-rw-r--r--rules/wlroots.make22
-rw-r--r--rules/wpa_supplicant.in2
-rw-r--r--rules/wpa_supplicant.make11
-rw-r--r--rules/wpebackend-fdo.in4
-rw-r--r--rules/wpebackend-fdo.make13
-rw-r--r--rules/wpewebkit.in29
-rw-r--r--rules/wpewebkit.make58
-rw-r--r--rules/x-load.make8
-rw-r--r--rules/xcb-proto.make4
-rw-r--r--rules/xcb-util-image.in2
-rw-r--r--rules/xcb-util-keysyms.in2
-rw-r--r--rules/xcb-util-renderutil.in2
-rw-r--r--rules/xcb-util-wm.in2
-rw-r--r--rules/xcb-util.in2
-rw-r--r--rules/xerces.make6
-rw-r--r--rules/xfsprogs.in4
-rw-r--r--rules/xkeyboard-config.in3
-rw-r--r--rules/xkeyboard-config.make20
-rw-r--r--rules/xmlstarlet.make6
-rw-r--r--rules/xorg-app-rgb.make6
-rw-r--r--rules/xorg-app-setxkbmap.in16
-rw-r--r--rules/xorg-app-setxkbmap.make57
-rw-r--r--rules/xorg-app-xdm.in38
-rw-r--r--rules/xorg-app-xdm.make76
-rw-r--r--rules/xorg-app-xeyes.make6
-rw-r--r--rules/xorg-app-xhost.in17
-rw-r--r--rules/xorg-app-xhost.make60
-rw-r--r--rules/xorg-app-xinit.in6
-rw-r--r--rules/xorg-app-xinput.in2
-rw-r--r--rules/xorg-app-xkbcomp.make7
-rw-r--r--rules/xorg-app-xrdb.in2
-rw-r--r--rules/xorg-app-xsetroot.make6
-rw-r--r--rules/xorg-app-xvinfo.make6
-rw-r--r--rules/xorg-data-xbitmaps.make6
-rw-r--r--rules/xorg-driver-input-evdev.in18
-rw-r--r--rules/xorg-driver-input-evdev.make59
-rw-r--r--rules/xorg-driver-input-keyboard.in11
-rw-r--r--rules/xorg-driver-input-keyboard.make55
-rw-r--r--rules/xorg-driver-input-mouse.in14
-rw-r--r--rules/xorg-driver-input-mouse.make59
-rw-r--r--rules/xorg-driver-input-tslib.in11
-rw-r--r--rules/xorg-driver-input-tslib.make57
-rw-r--r--rules/xorg-driver-input-void.in12
-rw-r--r--rules/xorg-driver-input-void.make55
-rw-r--r--rules/xorg-driver-video-apm.in11
-rw-r--r--rules/xorg-driver-video-apm.make55
-rw-r--r--rules/xorg-driver-video-ati.in26
-rw-r--r--rules/xorg-driver-video-ati.make62
-rw-r--r--rules/xorg-driver-video-dummy.in17
-rw-r--r--rules/xorg-driver-video-dummy.make55
-rw-r--r--rules/xorg-driver-video-fbdev.in13
-rw-r--r--rules/xorg-driver-video-fbdev.make65
-rw-r--r--rules/xorg-driver-video-intel.in50
-rw-r--r--rules/xorg-driver-video-intel.make84
-rw-r--r--rules/xorg-driver-video-vesa.in15
-rw-r--r--rules/xorg-driver-video-vesa.make54
-rw-r--r--rules/xorg-driver.in24
-rw-r--r--rules/xorg-font-100dpi-trans.in8
-rw-r--r--rules/xorg-font-75dpi-trans.in8
-rw-r--r--rules/xorg-font-adobe-100dpi.make6
-rw-r--r--rules/xorg-font-adobe-75dpi.make6
-rw-r--r--rules/xorg-font-adobe-utopia-100dpi.make7
-rw-r--r--rules/xorg-font-adobe-utopia-type1.make6
-rw-r--r--rules/xorg-font-alias.make6
-rw-r--r--rules/xorg-font-arabic-misc.make6
-rw-r--r--rules/xorg-font-base-trans.in1
-rw-r--r--rules/xorg-font-bh-100dpi.make6
-rw-r--r--rules/xorg-font-bh-75dpi.in2
-rw-r--r--rules/xorg-font-bh-75dpi.make6
-rw-r--r--rules/xorg-font-bh-lucidatypewriter-100dpi.in15
-rw-r--r--rules/xorg-font-bh-lucidatypewriter-100dpi.make86
-rw-r--r--rules/xorg-font-bh-lucidatypewriter-75dpi.in15
-rw-r--r--rules/xorg-font-bh-lucidatypewriter-75dpi.make86
-rw-r--r--rules/xorg-font-bitstream-100dpi.make6
-rw-r--r--rules/xorg-font-bitstream-75dpi.make7
-rw-r--r--rules/xorg-font-bitstream-speedo.make6
-rw-r--r--rules/xorg-font-bitstream-type1.make6
-rw-r--r--rules/xorg-font-cronyx-cyrillic.make6
-rw-r--r--rules/xorg-font-cursor-misc.in2
-rw-r--r--rules/xorg-font-cursor-misc.make6
-rw-r--r--rules/xorg-font-daewoo-misc.make6
-rw-r--r--rules/xorg-font-dec-misc.make6
-rw-r--r--rules/xorg-font-encodings.in8
-rw-r--r--rules/xorg-font-encodings.make6
-rw-r--r--rules/xorg-font-ibm-type1.in2
-rw-r--r--rules/xorg-font-ibm-type1.make6
-rw-r--r--rules/xorg-font-intl.in54
-rw-r--r--rules/xorg-font-intl.make91
-rw-r--r--rules/xorg-font-isas-misc.in2
-rw-r--r--rules/xorg-font-isas-misc.make6
-rw-r--r--rules/xorg-font-jis-misc.make6
-rw-r--r--rules/xorg-font-micro-misc.make6
-rw-r--r--rules/xorg-font-misc-cyrillic.make6
-rw-r--r--rules/xorg-font-misc-ethiopic.make6
-rw-r--r--rules/xorg-font-misc-meltho.make6
-rw-r--r--rules/xorg-font-misc-misc.make6
-rw-r--r--rules/xorg-font-mutt-misc.make6
-rw-r--r--rules/xorg-font-schumacher-misc.make6
-rw-r--r--rules/xorg-font-screen-cyrillic.make6
-rw-r--r--rules/xorg-font-sony-misc.make6
-rw-r--r--rules/xorg-font-sun-misc.make6
-rw-r--r--rules/xorg-font-ttf-caladea.make15
-rw-r--r--rules/xorg-font-ttf-carlito.make13
-rw-r--r--rules/xorg-font-ttf-dejavu.make4
-rw-r--r--rules/xorg-font-ttf-hanazono.make7
-rw-r--r--rules/xorg-font-ttf-noto.make8
-rw-r--r--rules/xorg-font-ttf-vlgothic.make10
-rw-r--r--rules/xorg-font-winitzki-cyrillic.make6
-rw-r--r--rules/xorg-font-xfree86-type1.make6
-rw-r--r--rules/xorg-fonts.make9
-rw-r--r--rules/xorg-lib-FS.in13
-rw-r--r--rules/xorg-lib-FS.make57
-rw-r--r--rules/xorg-lib-WindowsWM.in11
-rw-r--r--rules/xorg-lib-WindowsWM.make58
-rw-r--r--rules/xorg-lib-Xcomposite.in12
-rw-r--r--rules/xorg-lib-Xcursor.in8
-rw-r--r--rules/xorg-lib-Xdamage.in6
-rw-r--r--rules/xorg-lib-Xfont2.in3
-rw-r--r--rules/xorg-lib-Xxf86dga.in14
-rw-r--r--rules/xorg-lib-Xxf86dga.make55
-rw-r--r--rules/xorg-lib-Xxf86misc.make10
-rw-r--r--rules/xorg-lib-dmx.in12
-rw-r--r--rules/xorg-lib-dmx.make57
-rw-r--r--rules/xorg-lib-oldX.in9
-rw-r--r--rules/xorg-lib-oldX.make58
-rw-r--r--rules/xorg-lib-xkbui.in12
-rw-r--r--rules/xorg-lib-xkbui.make57
-rw-r--r--rules/xorg-options.in17
-rw-r--r--rules/xorg-server.in426
-rw-r--r--rules/xorg-server.make193
-rw-r--r--rules/xorg_windowmanagers.in5
-rw-r--r--rules/xorgproto.in1
-rw-r--r--rules/xorgproto.make18
-rw-r--r--rules/xterm.make6
-rw-r--r--rules/xwayland.in76
-rw-r--r--rules/xwayland.make107
-rw-r--r--rules/xxhash.in7
-rw-r--r--rules/xxhash.make56
-rw-r--r--rules/xz.make16
-rw-r--r--rules/zbar.in7
-rw-r--r--rules/zbar.make77
-rw-r--r--rules/zip.make1
-rw-r--r--rules/zlib.make14
-rw-r--r--rules/zstd.make21
-rwxr-xr-xscripts/autoconf/config.guess1713
-rwxr-xr-xscripts/autoconf/config.sub2660
-rw-r--r--scripts/bash_completion11
-rw-r--r--scripts/bsp-report-schema.yaml304
-rwxr-xr-xscripts/configure_helper.py12
-rwxr-xr-xscripts/generate-report.py527
-rwxr-xr-xscripts/git-ptx-patches69
-rwxr-xr-xscripts/git-ptx-refresh-tags-editor7
-rwxr-xr-xscripts/install_copy_toolchain.sh29
-rw-r--r--scripts/kconfig/confdata.c5
-rw-r--r--scripts/lib/ptxd_lib_code_signing.sh57
-rw-r--r--scripts/lib/ptxd_lib_dgen.awk133
-rwxr-xr-xscripts/lib/ptxd_lib_dopermissions.awk4
-rw-r--r--scripts/lib/ptxd_lib_icecc.sh6
-rw-r--r--scripts/lib/ptxd_lib_imx_hab.sh49
-rw-r--r--scripts/lib/ptxd_lib_kconfig.sh160
-rw-r--r--scripts/lib/ptxd_lib_kgen.sh2
-rw-r--r--scripts/lib/ptxd_lib_template.sh94
-rw-r--r--scripts/lib/ptxd_lib_wrapper.sh12
-rw-r--r--scripts/lib/ptxd_make_00-init.sh68
-rw-r--r--scripts/lib/ptxd_make_check_src.sh4
-rw-r--r--scripts/lib/ptxd_make_clean.sh2
-rw-r--r--scripts/lib/ptxd_make_cmake_toolchain.sh33
-rw-r--r--scripts/lib/ptxd_make_dts_dtc.sh87
-rw-r--r--scripts/lib/ptxd_make_extract_archive.sh8
-rw-r--r--scripts/lib/ptxd_make_fit_image.sh20
-rw-r--r--scripts/lib/ptxd_make_get.sh782
-rw-r--r--scripts/lib/ptxd_make_image_fix_permissions.sh2
-rw-r--r--scripts/lib/ptxd_make_image_prepare_work_dir.sh3
-rw-r--r--scripts/lib/ptxd_make_install_image.sh48
-rw-r--r--scripts/lib/ptxd_make_license_report.sh10
-rw-r--r--scripts/lib/ptxd_make_meson_toolchain.sh1
-rw-r--r--scripts/lib/ptxd_make_nested.sh85
-rwxr-xr-xscripts/lib/ptxd_make_pkghash.awk60
-rw-r--r--scripts/lib/ptxd_make_report.sh148
-rw-r--r--scripts/lib/ptxd_make_serialize.sh23
-rw-r--r--scripts/lib/ptxd_make_spdx.sh393
-rw-r--r--scripts/lib/ptxd_make_world_cargo.sh143
-rw-r--r--scripts/lib/ptxd_make_world_check_src.sh36
-rw-r--r--scripts/lib/ptxd_make_world_clean.sh28
-rw-r--r--scripts/lib/ptxd_make_world_common.sh172
-rw-r--r--scripts/lib/ptxd_make_world_compile.sh228
-rw-r--r--scripts/lib/ptxd_make_world_compile_commands.sh55
-rw-r--r--scripts/lib/ptxd_make_world_dtb.sh134
-rw-r--r--scripts/lib/ptxd_make_world_extract.sh79
-rw-r--r--scripts/lib/ptxd_make_world_get.sh2
-rw-r--r--scripts/lib/ptxd_make_world_inject.sh42
-rw-r--r--scripts/lib/ptxd_make_world_install.sh114
-rw-r--r--scripts/lib/ptxd_make_world_install_library_path.sh4
-rw-r--r--scripts/lib/ptxd_make_world_license.sh135
-rw-r--r--scripts/lib/ptxd_make_world_lint.sh229
-rw-r--r--scripts/lib/ptxd_make_world_package_info.sh9
-rw-r--r--scripts/lib/ptxd_make_world_patchin.sh40
-rw-r--r--scripts/lib/ptxd_make_world_prepare.sh45
-rw-r--r--scripts/lib/ptxd_make_world_report.sh197
-rw-r--r--scripts/lib/ptxd_make_xpkg_pkg.sh146
-rw-r--r--scripts/lib/ptxd_make_xpkg_prepare.sh2
-rw-r--r--scripts/libptxdist.sh12
-rwxr-xr-xscripts/migrate/migrate_platform18
-rwxr-xr-xscripts/migrate/migrate_ptx55
-rwxr-xr-xscripts/pkg-config-wrapper50
-rwxr-xr-xscripts/ptx-file_check8
-rw-r--r--scripts/ptx-modifications/0009-confdata.c-Re-add-warning-about-unassigned-symbols.patch43
-rw-r--r--scripts/ptx-modifications/series1
-rw-r--r--scripts/spdx.py357
-rwxr-xr-xscripts/update_spdx.py14
-rwxr-xr-xscripts/validate-bsp-report-schema.py18
-rwxr-xr-xscripts/vendor-cargo-workspace-package55
-rwxr-xr-xscripts/wrapper/clang++-wrapper3
-rwxr-xr-xscripts/wrapper/clang-wrapper3
-rwxr-xr-xscripts/wrapper/cpp-wrapper3
-rwxr-xr-xscripts/wrapper/g++-wrapper3
-rwxr-xr-xscripts/wrapper/gcc-wrapper3
-rwxr-xr-xscripts/wrapper/gdb-wrapper3
-rwxr-xr-xscripts/wrapper/gfortran-wrapper8
-rwxr-xr-xscripts/wrapper/host-clang++-wrapper3
-rwxr-xr-xscripts/wrapper/host-clang-wrapper3
-rwxr-xr-xscripts/wrapper/host-cpp-wrapper3
-rwxr-xr-xscripts/wrapper/host-g++-wrapper3
-rwxr-xr-xscripts/wrapper/host-gcc-wrapper3
-rwxr-xr-xscripts/wrapper/ld-wrapper3
-rw-r--r--scripts/wrapper/libwrapper.sh119
-rwxr-xr-xscripts/wrapper/python-wrapper14
2628 files changed, 70666 insertions, 71419 deletions
diff --git a/.gitignore b/.gitignore
index 57bfdcc10..50bfa5185 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,23 +15,12 @@
logfile
-scripts/kconfig/conf
-scripts/kconfig/conf.o
-scripts/kconfig/lex.zconf.c
-scripts/kconfig/lkc_defs.h
-scripts/kconfig/mconf
-scripts/kconfig/nconf
-scripts/kconfig/zconf.hash.c
-scripts/kconfig/zconf.lex.c
-scripts/kconfig/zconf.tab.c
-scripts/kconfig/*.o
-scripts/kconfig/lxdialog/*.o
-
/bin/*
!/bin/ptxdist
!/bin/ptxdist-auto-version
/Documentation/
+man/ptxdist.1.gz
/doc/.tox/
/doc/testbuilds/
/env/
diff --git a/.mailmap b/.mailmap
new file mode 100644
index 000000000..fb334866c
--- /dev/null
+++ b/.mailmap
@@ -0,0 +1,16 @@
+Andrej Gantvorg <andrej.gantvorg@wago.com>
+Bjørn Bürger <b.buerger@pengutronix.de>
+Christian Gieseler <cg@eks-engel.de>
+Christoph Rüdiger <Christoph.Ruediger@thyssenkrupp.com>
+Denis Osterland-Heim <denis.osterland@diehl.com>
+Dennis Herbrich <kontakt+git@veloxis.de>
+Enrico Jorns <e.joerns@tu-bs.de>
+Enrico Jorns <ejo@pengutronix.de>
+Florian Bäuerle <florian.baeuerle@allegion.com>
+Guillermo Rodríguez <guille.rodriguez@gmail.com>
+Jürgen Beisert <j.beisert@pengutronix.de>
+Jürgen Beisert <jbe@pengutronix.de>
+Ladislav Michl <Ladislav.Michl@seznam.cz>
+Ladislav Michl <ladis@linux-mips.org>
+Michael Olbrich <mol@freebie.lab.pengutronix.de>
+Thorsten Liepert <thorsten.liepert@diehl.com>
diff --git a/Makefile.in b/Makefile.in
index 9121b2119..da8cb9d7c 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -44,6 +44,7 @@ environment:
@ln -sf @GNU_cat@ "$(abs_srcdir)/bin/cat"
@ln -sf @GNU_dirname@ "$(abs_srcdir)/bin/dirname"
@ln -sf @GNU_readlink@ "$(abs_srcdir)/bin/readlink"
+ @ln -sf @GNU_realpath@ "$(abs_srcdir)/bin/realpath"
@ln -sf @GNU_sort@ "$(abs_srcdir)/bin/sort"
@ln -sf @SED@ "$(abs_srcdir)/bin/sed"
@ln -sf @GNU_xargs@ "$(abs_srcdir)/bin/xargs"
diff --git a/README b/README
index 1bf3348f8..debf098d8 100644
--- a/README
+++ b/README
@@ -42,6 +42,11 @@ All magic necessary to do these things in a cross enviroment are written
into "recipes", living in rules/*.make, and config menues in
rules/*.in.
+Contributing
+------------
+
+See doc/contributing.rst for the contribution guidelines.
+
Documentation
-------------
diff --git a/bin/ptxdist b/bin/ptxdist
index c41065311..6d6de64d8 100755
--- a/bin/ptxdist
+++ b/bin/ptxdist
@@ -83,6 +83,7 @@ menu() {
"--------------" "--------------------------------------------" \
"boardsetup" "Configure Board Properties" \
"setup" "Configure User Properties" \
+ "localsetup" "Configure BSP Properties" \
"--------------" "--------------------------------------------" \
"go" "Build the project" \
"images" "Build all images" \
@@ -98,7 +99,8 @@ menu() {
select) cmd=ptxconfig ;;
platform) cmd=platformconfig ;;
boardsetup) cmd=board ;;
- setup) cmd=user ;;
+ setup) cmd=setup ;;
+ localsetup) cmd=localsetup ;;
esac
PTXDIST_QUIET=1
@@ -108,7 +110,7 @@ menu() {
menu_select "${cmd}"
;;
- ptx|platform|kernel|barebox|board|user)
+ ptx|platform|kernel|barebox|board|setup|localsetup)
do_config menuconfig "${cmd}"
# FIXME: reread user config file
;;
@@ -184,7 +186,7 @@ check_path() {
check_version() {
#
# if config file and ptxdist match return success
- # (or if beeing forced)
+ # (or if being forced)
#
if [ "${1}" = "${PTXDIST_VERSION_FULL}" -o \
-n "${PTXDIST_FORCE}" ]; then
@@ -267,7 +269,7 @@ _get_config_ptx() {
_check_config_ptx() {
local configfile_version
- _get_config_ptx
+ _get_config_ptx || return
check_version "${configfile_version}" || {
ptxd_dialog_msgbox \
@@ -441,6 +443,7 @@ check_dirs_mkdir() {
fi
rm -- "${testfile}"
+ chmod ug-s "${dir}"
}
@@ -456,7 +459,7 @@ check_dirs() {
ptxconf_sysroot_target="$(ptxd_get_ptxconf PTXCONF_SYSROOT_TARGET)" || return
# check for r/w and create standard directory layout
- local dir
+ local dir link
for dir in \
"${PTXDIST_PLATFORMDIR}" \
"${ptxconf_sysroot_host}" \
@@ -477,14 +480,21 @@ check_dirs() {
fi
fi
- # create standard direcory layout
+ # create standard directory layout
for dir in \
"${ptxconf_sysroot_host}" \
"${ptxconf_sysroot_cross}" \
"${ptxconf_sysroot_target}" \
- "${ptxconf_sysroot_target}/usr" \
; do
- install -m755 -d "${dir}"/{etc,lib,{,s}bin,include,{,share/}man/man{1,2,3,4,5,6,7,8,9}}
+ install -m755 -d "${dir}"/{etc,usr/{lib,{,s}bin,include,{,share/}man/man{1,2,3,4,5,6,7,8,9}}}
+ done
+ for dir in \
+ "${ptxconf_sysroot_host}" \
+ "${ptxconf_sysroot_cross}" \
+ ; do
+ for link in sbin bin lib; do
+ ptxd_replace_link "usr/${link}" "${dir}/${link}"
+ done
done
# create build and output dirs
@@ -527,6 +537,11 @@ check_dirs() {
rm -- "${testfile_lower}" "${testfile_upper}"
done
+
+ # make sure that the BSP git dir is ignored
+ if git -C "${PTXDIST_PLATFORMDIR}" rev-parse HEAD &> /dev/null; then
+ touch "${PTXDIST_PLATFORMDIR}/.git"
+ fi
}
@@ -538,7 +553,7 @@ check_compiler() {
local wrapper_dir sysroot_host
sysroot_host="$(ptxd_get_ptxconf PTXCONF_SYSROOT_HOST)"
- wrapper_dir="${sysroot_host}/lib/wrapper"
+ wrapper_dir="${sysroot_host}/usr/lib/wrapper"
ptxd_lib_setup_host_wrapper &&
@@ -579,7 +594,7 @@ check_umask() {
}
#
-# checks if the dependencies are allright (make for the poor)
+# checks if the dependencies are alright (make for the poor)
#
check_deps() {
ptxd_dgen || ptxd_bailout "error in dgen"
@@ -692,6 +707,7 @@ Setup and Project Actions:
menu enter main control menu
setup setup per-user preferences
+ localsetup setup per-bsp preferences
boardsetup setup per-board preferences
nconfig
@@ -771,6 +787,12 @@ Misc:
with cgdb as frontend
bsp-info print some basic information about the BSP
package-info <package> print some basic information about the package
+ fast-bsp-report generate a yaml file that describes the BSP and
+ all packages. Less data but works without
+ building packages.
+ full-bsp-report generate a yaml file that describes the BSP and
+ all packages. More data but will build all
+ packages if necessary.
print <var> print the contents of a variable, in the way
it is known by "make"
printnext <var> assumes that the contents of <var> is another
@@ -787,6 +809,9 @@ Misc:
docs-latex generate LaTeX / PDF documentation
export_src <target dir> export all source archives needed for this
project to <target dir>
+ cargosync <pkg> create or update the rule file for the cargo package
+ dependencies
+
Overwrite defaults:
--ptxconfig=<config> use specified ptxconfig
@@ -800,6 +825,7 @@ Options:
--debug, -d print out additional info (like make decisions)
--quiet, -q suppress output, show only stderr
+ --silent, -s alias for --quiet
--verbose, -v be more verbose, print command before execute them
--output-sync Improve output readability for parallel building.
Disabled by default except for quiet builds.
@@ -993,12 +1019,14 @@ drop() {
create_docs() {
local builder srcdir outdir dir entry
+ local -a args
builder="${1}"
outdir=${PTXDIST_WORKSPACE}/Documentation
if [ "${PTXDIST_TOPDIR}" -ef "${PTXDIST_WORKSPACE}" ]; then
srcdir="${PTXDIST_TEMPDIR}/docs"
+ args=( "-t" "ptxdistonly" )
else
srcdir="${STATEDIR}/docs"
rm -rf "${srcdir}" &&
@@ -1014,7 +1042,7 @@ create_docs() {
done
done &&
check_virtualenv &&
- sphinx-build -b "${builder}" -d "${outdir}/.doctrees" "${srcdir}" \
+ sphinx-build -b "${builder}" -d "${outdir}/.doctrees" "${args[@]}" "${srcdir}" \
"${outdir}/${builder}" &&
if [ "${builder}" = "latex" ]; then
sed -i s/pdflatex/xelatex/ ${outdir}/${builder}/Makefile
@@ -1080,15 +1108,15 @@ parse_first()
PTX_SLEDGEHAMMER=true
;;
--ptxconfig=*)
- PTXDIST_PTXCONFIG="$(ptxd_abspath "${arg#*=}")" &&
+ PTXDIST_PTXCONFIG="${arg#*=}" &&
PTX_ptxconfig_SET=true
;;
--platformconfig=*)
- PTXDIST_PLATFORMCONFIG="$(ptxd_abspath "${arg#*=}")" &&
+ PTXDIST_PLATFORMCONFIG="${arg#*=}" &&
PTX_platformconfig_SET=true
;;
--collectionconfig=*)
- PTXDIST_COLLECTIONCONFIG="$(ptxd_abspath "${arg#*=}")" &&
+ PTXDIST_COLLECTIONCONFIG="${arg#*=}" &&
PTX_collectionconfig_SET=true
;;
--toolchain=*)
@@ -1113,6 +1141,9 @@ parse_first()
-j[1-9]*)
PTXDIST_PARALLELMFLAGS="-j${arg#*j}"
;;
+ --jobserver-auth=*)
+ PTXDIST_JOBSERVER_AUTH="${arg#--jobserver-auth=}"
+ ;;
-l*)
PTXDIST_LOADMFLAGS="-l${arg#*l}"
;;
@@ -1136,7 +1167,7 @@ parse_first()
--progress)
PTXDIST_PROGRESS=1
;;
- -q|--quiet)
+ -q|--quiet|-s|--silent)
PTXDIST_QUIET=1
;;
--git)
@@ -1171,6 +1202,7 @@ setup_layers()
{
export -a PTXDIST_LAYERS
local layer="${PTXDIST_WORKSPACE}"
+ local -a cfgs
while [ -e "${layer}" -o -h "${layer}" ]; do
if [ ! -d "${layer}" ]; then
@@ -1201,7 +1233,13 @@ setup_layers()
PTXDIST_LAYERS[${#PTXDIST_LAYERS[@]}]="${PTXDIST_TOPDIR}"
if [ "${PTX_ptxconfig_SET}" = "false" ]; then
- local -a cfgs=( "selected_ptxconfig" "configs/ptxconfig" )
+ cfgs=( "selected_ptxconfig" "configs/ptxconfig" )
+ elif ! [[ "${PTXDIST_PTXCONFIG}" =~ ^/.* ]]; then
+ cfgs=( "${PTXDIST_PTXCONFIG}" )
+ else
+ cfgs=()
+ fi
+ if [ "${#cfgs[*]}" -gt 0 ]; then
PTXDIST_PTXCONFIG="${PTXDIST_LAYERS[0]}/${cfgs[0]}"
for layer in "${PTXDIST_LAYERS[@]}"; do
local -a ptxd_reply
@@ -1212,7 +1250,13 @@ setup_layers()
fi
if [ "${PTX_platformconfig_SET}" = "false" ]; then
- local -a cfgs=( "selected_platformconfig" "configs/*/platformconfig" )
+ cfgs=( "selected_platformconfig" "configs/*/platformconfig" )
+ elif ! [[ "${PTXDIST_PLATFORMCONFIG}" =~ ^/.* ]]; then
+ cfgs=( "${PTXDIST_PLATFORMCONFIG}" )
+ else
+ cfgs=()
+ fi
+ if [ "${#cfgs[*]}" -gt 0 ]; then
PTXDIST_PLATFORMCONFIG="${PTXDIST_LAYERS[0]}/${cfgs[0]}"
for layer in "${PTXDIST_LAYERS[@]}"; do
local tmp=( ${cfgs[@]/#/${layer}/} )
@@ -1227,9 +1271,16 @@ setup_layers()
fi
if [ "${PTX_collectionconfig_SET}" = "false" ]; then
+ cfgs=( "selected_collectionconfig" )
+ elif ! [[ "${PTXDIST_COLLECTIONCONFIG}" =~ ^/.* ]]; then
+ cfgs=( "${PTXDIST_COLLECTIONCONFIG}" )
+ else
+ cfgs=()
+ fi
+ if [ "${#cfgs[*]}" -gt 0 ]; then
for layer in "${PTXDIST_LAYERS[@]}"; do
local -a ptxd_reply
- ptxd_get_path_filtered "${layer}/selected_collectionconfig" || continue
+ ptxd_get_path_filtered "${cfgs[@]/#/${layer}/}" || continue
PTXDIST_COLLECTIONCONFIG="${ptxd_reply[0]}"
break
done
@@ -1270,7 +1321,7 @@ do_config()
if [ "${part}" = "platform" ] && ptxd_get_ptxconf PTXCONF_NO_PLATFORM >/dev/null; then
return
- elif [ "${part}" != "user" ]; then
+ elif [ "${part}" != "setup" -a "${part}" != "localsetup" ]; then
check_config || return
fi
@@ -1289,10 +1340,7 @@ do_config()
"ptx"|"ptxdist"|"")
PTXDIST_DEP_TARGET="all" ptxd_kconfig "${config}" "ptx"
;;
- "setup")
- ptxd_kconfig "${config}" "user"
- ;;
- "platform"|"board"|"user")
+ "platform"|"board"|"setup"|"localsetup")
PTXDIST_DEP_TARGET="all" ptxd_kconfig "${config}" "${part}"
;;
"collection")
@@ -1311,10 +1359,13 @@ do_config()
fi
fi
+ check_premake_compiler &&
ptxd_kconfig "${config}" "${part}" "${file_dotconfig}"
;;
*)
- check_if_selected "${part}" &&
+ if [ "${config}" != "oldconfig" -o "${part}" != "all" ]; then
+ check_if_selected "${part}"
+ fi &&
ptxd_dialog_infobox "${PTXDIST_LOG_PROMPT}Checking dependencies. This may take some seconds." &&
@@ -1367,7 +1418,7 @@ do_select()
fi
# check if magic is present in config file
- if ! egrep -q "^${magic}$" "${file}" && [ -z "${PTXDIST_FORCE}" ]; then
+ if ! grep -E -q "^${magic}$" "${file}" && [ -z "${PTXDIST_FORCE}" ]; then
ptxd_dialog_msgbox \
"error: Couldn't verify that\n" \
" '${file}'\n" \
@@ -1409,6 +1460,7 @@ do_select()
# re-read config files and
# export changed variables
#
+ unset PTXDIST_PLATFORMDIR
setup_platform &&
setup_path &&
setup_export
@@ -1608,7 +1660,7 @@ parse_second()
######## standard target, directly into make
- prepare|compile|install|targetinstall|tags)
+ prepare|compile|install|targetinstall|tags|cargosync)
PTXDIST_OPTIMIZE_IO=true
;& # fallthrough
extract)
@@ -1635,7 +1687,19 @@ parse_second()
######## *config, *setup, toolchain
- menuconfig|nconfig|oldconfig|allmodconfig|allyesconfig|allnoconfig|alldefconfig|randconfig)
+ oldconfig)
+ if [ ${#} -eq 1 -a "${1}" = "all" ]; then
+ set -- ptx platform all
+ fi
+ if [ ${#} -eq 0 ]; then
+ set -- "ptx"
+ fi
+ for part in "${@}"; do
+ do_config "${cmd}" "${part}"
+ done
+ exit
+ ;;
+ menuconfig|nconfig|allmodconfig|allyesconfig|allnoconfig|alldefconfig|randconfig)
do_config "${cmd}" "${@}"
exit
;;
@@ -1657,7 +1721,12 @@ parse_second()
;;
setup)
- do_config menuconfig user
+ do_config menuconfig setup
+ exit
+ ;;
+
+ localsetup)
+ do_config menuconfig localsetup
exit
;;
@@ -1714,6 +1783,7 @@ EOF
bsp-info)
check_config &&
check_deps &&
+ PTXDIST_ICECC="" check_compiler &&
ptxd_make_log bsp-info
;;
clean)
@@ -1768,9 +1838,15 @@ EOF
exit 1
fi
check_premake &&
+ PTXDIST_ICECC="" check_compiler &&
ptxd_make_log export_src EXPORTDIR="${1}"
exit
;;
+ fast-bsp-report|full-bsp-report)
+ check_premake_compiler &&
+ ptxd_make_log "${cmd}"
+ exit
+ ;;
gdb|cgdb)
local -a prefix
if [ "${cmd}" = "cgdb" ]; then
@@ -1798,7 +1874,7 @@ EOF
exit
;;
getdev)
- check_premake &&
+ check_premake_compiler &&
ptxd_make_log getdev
exit
;;
@@ -1839,8 +1915,9 @@ EOF
;;
list-packages)
check_config &&
- check_deps || return
- for i in $(ptxd_make "print-PACKAGES"); do
+ check_deps &&
+ PTXDIST_ICECC="" check_compiler || return
+ for i in $(ptxd_make "/print-PACKAGES"); do
echo $i
done | sort
;;
@@ -1893,6 +1970,7 @@ EOF
check_config &&
check_deps &&
+ PTXDIST_ICECC="" check_compiler &&
pkgs=( "${@/#/${STATEDIR}/}" ) &&
ptxd_make_log "${pkgs[@]/%/.${cmd}}"
exit
@@ -1922,6 +2000,8 @@ EOF
local prefix
check_config &&
check_deps || exit 1
+ # setup toolchain without icecc, but allow failures
+ PTXDIST_ICECC="" check_compiler
if [ "${cmd}" = "print" ]; then
prefix="/print-"
else
@@ -1993,10 +2073,15 @@ EOF
#
# bash implementation of realpath / readlink -f
# arg1 - filename
-realpath()
+_realpath()
{
local fname oldfname
+ if type -p realpath > /dev/null; then
+ realpath "${@}"
+ return
+ fi
+
fname="${1%/}" # strips trailing '/'
while [ -L "${fname}" ]; do
oldfname="${fname}"
@@ -2026,7 +2111,7 @@ realpath()
setup_topdir() {
local ptxdist topdir
- ptxdist="$(realpath "${0}")" &&
+ ptxdist="$(_realpath "${0}")" &&
topdir="$(cd "$(dirname "${ptxdist}")"/.. && pwd)" || return
#
@@ -2047,6 +2132,9 @@ setup_topdir() {
eval PTXDIST_PLATFORMCONFIG_DEFAULT="${PTXDIST_PLATFORMCONFIG_DEFAULT}"
eval PTXDIST_COLLECTIONCONFIG_DEFAULT="${PTXDIST_COLLECTIONCONFIG_DEFAULT}"
eval PTXDIST_TOOLCHAIN_DEFAULT="${PTXDIST_TOOLCHAIN_DEFAULT}"
+
+ # ${PTXDIST_TOPDIR}/bin contains links to sane tools found by configure
+ export PATH="${PTXDIST_TOPDIR}/bin:${PATH}"
}
@@ -2056,7 +2144,7 @@ ensure_ptxrc() {
local include
# ptxd_source_kconfig is not defined during early bootstrap
- if [ "$(type -t ptxd_source_kconfig)" = function ]; then
+ if [ "${1}" != "early" ]; then
include=ptxd_source_kconfig
else
include=source
@@ -2100,9 +2188,21 @@ ensure_ptxrc() {
tmpptxrc="${ptxrc}"
fi
- "${include}" "${tmpptxrc}"
+ if [ -e "${tmpptxrc}.diff" ]; then
+ "${include}" <(tail -n +2 "${tmpptxrc}.diff")
+ else
+ "${include}" "${tmpptxrc}"
+ fi
- if [ "$(type -t ptxd_source_kconfig)" = function ]; then
+ PTXDIST_LOCAL_PTXRC="${PTXDIST_WORKSPACE}/.ptxdistrc"
+ if [ -e "${PTXDIST_LOCAL_PTXRC}.diff" ]; then
+ # explicitly unset variables that may have been set in the include above
+ "${include}" <(tail -n +2 "${PTXDIST_LOCAL_PTXRC}.diff" | sed 's/^# \(.*\) is not set$/unset \1/')
+ elif [ -e "${PTXDIST_LOCAL_PTXRC}" ]; then
+ "${include}" "${PTXDIST_LOCAL_PTXRC}"
+ fi
+
+ if [ "${1}" = "final" ]; then
PTXDIST_PTXRC="${ptxrc}"
if [ ! -e "${ptxrc}" ]; then
mkdir -p -- "$(dirname "${ptxrc}")" &&
@@ -2122,25 +2222,23 @@ setup_env() {
source "${PTXDIST_TOPDIR}/scripts/ptxdist_version.sh" || return
# needed for PTXCONF_SETUP_ENV_WHITELIST
- ensure_ptxrc || return
+ ensure_ptxrc early || return
# let shell split by IFS
set -- ${PTXCONF_SETUP_ENV_WHITELIST} ${PTXDIST_ENV_WHITELIST} PTXDIST_ENV_WHITELIST
whitelist="${*}"
whitelist="${whitelist:+|}${whitelist// /|}"
+ # Any change here should be done in ptxd_make_nested_ptxdist() as well
unset $({
export -p | sed -n 's/^declare -x \([^=]*\).*$/\1/p'
export -fp | sed -n 's/^declare -fx \([^=]*\).*$/\1/p'
- } | egrep -v "^(PTXDIST_PTXRC|PTX_AUTOBUILD_DESTDIR|CCACHE_.*|PWD|HOME|USER|PATH|TERM|COLUMNS|LINES|DISPLAY|TMPDIR|KCONFIG_ALLCONFIG|KCONFIG_SEED|http_proxy|https_proxy|ftp_proxy|no_proxy${whitelist})$")
+ } | grep -E -v "^(PTXDIST_PTXRC|PTX_AUTOBUILD_DESTDIR|PTXDIST_PLATFORMDIR|CCACHE_.*|PWD|HOME|USER|PATH|TERM|COLUMNS|LINES|DISPLAY|TMPDIR|KCONFIG_ALLCONFIG|KCONFIG_SEED|http_proxy|https_proxy|ftp_proxy|no_proxy${whitelist})$")
######## the environment is clean now ########
export LANG=C
export LC_ALL=POSIX
-
- # ${PTXDIST_TOPDIR}/bin contains links to sane tools found by configure
- export PATH="${PTXDIST_TOPDIR}/bin:${PATH}"
}
@@ -2225,7 +2323,7 @@ setup_libs_early() {
# PTXDIST_PTXRC
#
setup_config() {
- ensure_ptxrc || return
+ ensure_ptxrc final || return
#
# enable or disable errexit
@@ -2285,7 +2383,7 @@ setup_parallel() {
# this one is for Linux
if [ -r /proc/cpuinfo ]; then
- cpus="$(egrep '^(processor|cpu )' /proc/cpuinfo | wc -l)"
+ cpus="$(grep -E '^(processor|cpu )' /proc/cpuinfo | wc -l)"
if [ ${cpus} -eq 0 ]; then
cpus=1
fi
@@ -2298,6 +2396,7 @@ setup_parallel() {
if [ -z "${PTXDIST_PARALLELMFLAGS}" ]; then
pmf_intern="${pmf_cpus}"
pmf_extern="-j1"
+ unset PTXDIST_JOBSERVER_AUTH
elif [ "${PTXDIST_PARALLELMFLAGS}" == "-j1" ]; then
unset PTXDIST_PARALLELMFLAGS
pmf_intern="-j1"
@@ -2369,7 +2468,7 @@ setup_auto_version()
saved_ptxconfig="${PTXDIST_PTXCONFIG}"
PTXDIST_PTXCONFIG="${ptxd_reply[${#ptxd_reply[@]}-1]}"
- _get_config_ptx
+ _get_config_ptx || return
PTXDIST_PTXCONFIG="${saved_ptxconfig}"
if PTXDIST_FORCE= check_version "${configfile_version}"; then
# this is already the correct version
@@ -2416,7 +2515,7 @@ setup_platform_continue_with_broken_config()
# "*DIR" correct directory definitions
#
setup_platform() {
- local platform platform_version project project_version
+ local platform platform_version project project_version old_platformdir
# ptxd_get_ptxconf's return value is
platform="$(ptxd_get_ptxconf PTXCONF_PLATFORM)" || [ ${?} -eq 1 ] &&
@@ -2426,6 +2525,7 @@ setup_platform() {
# remove space and "(" ")"
project_version="${project_version//[ \(\)]/_}"
+ old_platformdir="${PTXDIST_PLATFORMDIR}"
if [ -n "${platform}" ]; then
PTXDIST_PLATFORMDIR="${PTXDIST_WORKSPACE}/platform-${platform}${platform_version}"
PTXDIST_PLATFORMSUFFIX=".${platform}"
@@ -2434,32 +2534,36 @@ setup_platform() {
PTXDIST_PLATFORMSUFFIX=""
fi
+ if [ "${old_platformdir}" = "${PTXDIST_PLATFORMDIR}" ]; then
+ ptxd_bailout "Nested PTXdist execution for the same platform is not allowed!"
+ fi
+
# reread vars with correct PTXDIST_PLATFORMDIR
source "${SCRIPTSDIR}/ptxdist_vars.sh" || return
- local cfg_file cfg_dir
+ local cfg_file tmp_dir cfg_dir rel_cfg_dir
for cfg_file in \
"${PTXDIST_PLATFORMCONFIG}" \
"${PTXDIST_PTXCONFIG}"; do
[ -e "${cfg_file}" ] || continue
cfg_file="$(readlink -f "${cfg_file}")" || return
- cfg_dir="$(dirname "${cfg_file}")"
+ tmp_dir="$(dirname "${cfg_file}")"
+ rel_cfg_dir="${tmp_dir}"
for layer in "${PTXDIST_LAYERS[@]}"; do
- cfg_dir="${cfg_dir/#$(readlink -f ${layer})\//${layer}/}"
+ local tmp="${tmp_dir/#$(readlink -f ${layer})\//}"
+ # check the string length to get the shortest relative path
+ # this is necessary when a base layer is the parent directory
+ if [ "${tmp}" != "${tmp_dir}" -a ${#tmp} -lt ${#rel_cfg_dir} ]; then
+ rel_cfg_dir="${tmp}"
+ cfg_dir="${layer}/${tmp}"
+ fi
done
break
done
PTXDIST_PLATFORMCONFIGDIR="${cfg_dir:-${PTXDIST_WORKSPACE}}"
- PTXDIST_PLATFORMCONFIG_SUBDIR=
- if [ "${PTXDIST_WORKSPACE}" != "${PTXDIST_PLATFORMCONFIGDIR}" ]; then
- local tmp=${PTXDIST_PLATFORMCONFIGDIR#${PTXDIST_WORKSPACE}/}
- while [ "${tmp}" != "${tmp#base/}" ]; do
- tmp=${tmp#base/}
- done
- PTXDIST_PLATFORMCONFIG_SUBDIR="${tmp}"
- fi
+ PTXDIST_PLATFORMCONFIG_SUBDIR="${rel_cfg_dir}"
PTXDIST_BOARDSETUP="${HOME}/.ptxdist/boardsetup.${project}${project_version}.${platform}"
}
@@ -2508,7 +2612,7 @@ setup_path() {
local sysroot_host="$(ptxd_get_ptxconf PTXCONF_SYSROOT_HOST)"
if [ -n "${sysroot_host}" ]; then
- PATH="${sysroot_host}/bin:${sysroot_host}/sbin:${PATH}"
+ PATH="${sysroot_host}/usr/bin:${sysroot_host}/usr/sbin:${PATH}"
fi
if [ -n "${PTXCONF_SETUP_CCACHE}" ]; then
@@ -2618,6 +2722,7 @@ setup_export() {
\
PTXDIST_PARALLELMFLAGS \
PTXDIST_PARALLELMFLAGS_INTERN \
+ PTXDIST_JOBSERVER_AUTH \
PTXDIST_LOADMFLAGS \
\
PTXDIST_CCACHE \
diff --git a/config/busybox/Config.in b/config/busybox/Config.in
index e822221c9..199cc6ab2 100644
--- a/config/busybox/Config.in
+++ b/config/busybox/Config.in
@@ -156,12 +156,13 @@ config BUSYBOX_FEATURE_PIDFILE
config BUSYBOX_PID_FILE_PATH
string "Directory for pidfiles"
default "/var/run"
- depends on BUSYBOX_FEATURE_PIDFILE
+ depends on BUSYBOX_FEATURE_PIDFILE || BUSYBOX_FEATURE_CROND_SPECIAL_TIMES
help
This is the default path where pidfiles are created. Applets which
allow you to set the pidfile path on the command line will override
this value. The option has no effect on applets that require you to
- specify a pidfile path.
+ specify a pidfile path. When crond has the 'Support special times'
+ option enabled, the 'crond.reboot' file is also stored here.
config BUSYBOX_BUSYBOX
bool "Include busybox applet"
@@ -311,7 +312,6 @@ config BUSYBOX_BUSYBOX_EXEC_PATH
config BUSYBOX_SELINUX
bool "Support NSA Security Enhanced Linux"
default n
- select BUSYBOX_PLATFORM_LINUX
help
Enable support for SELinux in applets ls, ps, and id. Also provide
the option of compiling in SELinux applets.
@@ -357,17 +357,6 @@ config BUSYBOX_FEATURE_SYSLOG
#This option is auto-selected when you select any applet which may
#send its output to syslog. You do not need to select it manually.
-config BUSYBOX_PLATFORM_LINUX
- bool #No description makes it a hidden option
- default n
- #help
- #For the most part, busybox requires only POSIX compatibility
- #from the target system, but some applets and features use
- #Linux-specific interfaces.
- #
- #This is automatically selected if any applet or feature requires
- #Linux-specific interfaces. You do not need to select it manually.
-
comment 'Build Options'
config BUSYBOX_STATIC
@@ -540,6 +529,14 @@ config BUSYBOX_STACK_OPTIMIZATION_386
do not work with it (they use SSE instructions without
ensuring stack alignment).
+config BUSYBOX_STATIC_LIBGCC
+ bool "Use -static-libgcc"
+ default y
+ help
+ This option instructs gcc to link in a static version of its
+ support library, libgcc. This means that the binary will require
+ one fewer dynamic library at run time.
+
comment 'Installation Options ("make install" behavior)'
choice
@@ -661,6 +658,19 @@ config BUSYBOX_WERROR
Most people should answer N.
+config BUSYBOX_WARN_SIMPLE_MSG
+ bool "Warn about single parameter bb_xx_msg calls"
+ default n
+ help
+ This will cause warnings to be shown for any instances of
+ bb_error_msg(), bb_error_msg_and_die(), bb_perror_msg(),
+ bb_perror_msg_and_die(), bb_herror_msg() or bb_herror_msg_and_die()
+ being called with a single parameter. In these cases the equivalent
+ bb_simple_xx_msg function should be used instead.
+ Note that use of STRERROR_FMT may give false positives.
+
+ If you aren't developing busybox, say N here.
+
choice
prompt "Additional debugging library"
default BUSYBOX_NO_DEBUG_LIB
diff --git a/config/busybox/archival/Config.in b/config/busybox/archival/Config.in
index 32024bc6a..ca0499a75 100644
--- a/config/busybox/archival/Config.in
+++ b/config/busybox/archival/Config.in
@@ -204,6 +204,20 @@ config BUSYBOX_FEATURE_CPIO_P
depends on BUSYBOX_FEATURE_CPIO_O
help
Passthrough mode. Rarely used.
+
+config BUSYBOX_FEATURE_CPIO_IGNORE_DEVNO
+ bool "Support --ignore-devno like GNU cpio"
+ default y
+ depends on BUSYBOX_FEATURE_CPIO_O && BUSYBOX_LONG_OPTS
+ help
+ Optionally ignore device numbers when creating archives.
+
+config BUSYBOX_FEATURE_CPIO_RENUMBER_INODES
+ bool "Support --renumber-inodes like GNU cpio"
+ default y
+ depends on BUSYBOX_FEATURE_CPIO_O && BUSYBOX_LONG_OPTS
+ help
+ Optionally renumber inodes when creating archives.
config BUSYBOX_DPKG
bool "dpkg (43 kb)"
default y
@@ -256,7 +270,7 @@ config BUSYBOX_FEATURE_GZIP_LEVELS
help
Enable support for compression levels 4-9. The default level
is 6. If levels 1-3 are specified, 4 is used.
- If this option is not selected, -N options are ignored and -9
+ If this option is not selected, -N options are ignored and -6
is used.
config BUSYBOX_FEATURE_GZIP_DECOMPRESS
diff --git a/config/busybox/console-tools/Config.in b/config/busybox/console-tools/Config.in
index e67bb61ed..d0e43ca43 100644
--- a/config/busybox/console-tools/Config.in
+++ b/config/busybox/console-tools/Config.in
@@ -9,7 +9,6 @@ menu "Console Utilities"
config BUSYBOX_CHVT
bool "chvt (2 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
This program is used to change to another terminal.
Example: chvt 4 (change to terminal /dev/tty4)
@@ -21,39 +20,33 @@ config BUSYBOX_CLEAR
config BUSYBOX_DEALLOCVT
bool "deallocvt (1.9 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
This program deallocates unused virtual consoles.
config BUSYBOX_DUMPKMAP
bool "dumpkmap (1.6 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
This program dumps the kernel's keyboard translation table to
stdout, in binary format. You can then use loadkmap to load it.
config BUSYBOX_FGCONSOLE
bool "fgconsole (1.5 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
This program prints active (foreground) console number.
config BUSYBOX_KBD_MODE
bool "kbd_mode (4.1 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
This program reports and sets keyboard mode.
config BUSYBOX_LOADFONT
bool "loadfont (5.2 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
This program loads a console font from standard input.
config BUSYBOX_SETFONT
bool "setfont (24 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Allows to load console screen map. Useful for i18n.
@@ -87,14 +80,12 @@ config BUSYBOX_FEATURE_LOADFONT_RAW
config BUSYBOX_LOADKMAP
bool "loadkmap (1.8 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
This program loads a keyboard translation table from
standard input.
config BUSYBOX_OPENVT
bool "openvt (7.2 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
This program is used to start a command on an unused
virtual terminal.
@@ -123,7 +114,6 @@ config BUSYBOX_FEATURE_RESIZE_PRINT
config BUSYBOX_SETCONSOLE
bool "setconsole (3.6 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Redirect writes to /dev/console to another device,
like the current tty while logged in via telnet.
@@ -137,20 +127,17 @@ config BUSYBOX_FEATURE_SETCONSOLE_LONG_OPTIONS
config BUSYBOX_SETKEYCODES
bool "setkeycodes (2.1 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
This program loads entries into the kernel's scancode-to-keycode
map, allowing unusual keyboards to generate usable keycodes.
config BUSYBOX_SETLOGCONS
bool "setlogcons (1.8 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
This program redirects the output console of kernel messages.
config BUSYBOX_SHOWKEY
bool "showkey (4.7 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Shows keys pressed.
diff --git a/config/busybox/coreutils/Config.in b/config/busybox/coreutils/Config.in
index 5b322885a..1a95a6785 100644
--- a/config/busybox/coreutils/Config.in
+++ b/config/busybox/coreutils/Config.in
@@ -6,6 +6,47 @@
menu "Coreutils"
+config BUSYBOX_FEATURE_VERBOSE
+ bool "Support verbose options (usually -v) for various applets"
+ default y
+ help
+ Enable cp -v, rm -v and similar messages.
+ Also enables long option (--verbose) if it exists.
+ Without this option, -v is accepted but ignored.
+
+comment "Common options for date and touch"
+
+config BUSYBOX_FEATURE_TIMEZONE
+ bool "Allow timezone in dates"
+ default y
+ depends on BUSYBOX_DESKTOP
+ help
+ Permit the use of timezones when parsing user-provided data
+ strings, e.g. '1996-04-09 12:45:00 -0500'.
+
+ This requires support for the '%z' extension to strptime() which
+ may not be available in all implementations.
+
+comment "Common options for cp and mv"
+ depends on BUSYBOX_CP || BUSYBOX_MV
+
+config BUSYBOX_FEATURE_PRESERVE_HARDLINKS
+ bool "Preserve hard links"
+ default y
+ depends on BUSYBOX_CP || BUSYBOX_MV
+ help
+ Allow cp and mv to preserve hard links.
+
+comment "Common options for df, du, ls"
+ depends on BUSYBOX_DF || BUSYBOX_DU || BUSYBOX_LS
+
+config BUSYBOX_FEATURE_HUMAN_READABLE
+ bool "Support human readable output (example 13k, 23M, 235G)"
+ default y
+ depends on BUSYBOX_DF || BUSYBOX_DU || BUSYBOX_LS
+ help
+ Allow df, du, and ls to have human readable output.
+
config BUSYBOX_BASENAME
bool "basename (438 bytes)"
default y
@@ -63,8 +104,10 @@ config BUSYBOX_CHROOT
config BUSYBOX_CKSUM
bool "cksum (4.1 kb)"
default y
- help
- cksum is used to calculate the CRC32 checksum of a file.
+
+config BUSYBOX_CRC32
+ bool "crc32 (4.1 kb)"
+ default y
config BUSYBOX_COMM
bool "comm (4.2 kb)"
default y
@@ -95,6 +138,13 @@ config BUSYBOX_CUT
help
cut is used to print selected parts of lines from
each file to stdout.
+
+config BUSYBOX_FEATURE_CUT_REGEX
+ bool "cut -F"
+ default y
+ depends on BUSYBOX_CUT
+ help
+ Allow regex based delimiters.
config BUSYBOX_DATE
bool "date (7 kb)"
default y
@@ -110,12 +160,10 @@ config BUSYBOX_FEATURE_DATE_ISOFMT
Enable option (-I) to output an ISO-8601 compliant
date/time string.
-# defaults to "no": stat's nanosecond field is a bit non-portable
config BUSYBOX_FEATURE_DATE_NANO
bool "Support %[num]N nanosecond format specifier"
- default n # syscall(__NR_clock_gettime)
+ default n # stat's nanosecond field is a bit non-portable
depends on BUSYBOX_DATE
- select BUSYBOX_PLATFORM_LINUX
help
Support %[num]N format specifier. Adds ~250 bytes of code.
@@ -193,6 +241,26 @@ config BUSYBOX_FEATURE_DF_FANCY
-a Show all filesystems
-i Inodes
-B <SIZE> Blocksize
+
+config BUSYBOX_FEATURE_SKIP_ROOTFS
+ bool "Skip rootfs in mount table"
+ default y
+ depends on BUSYBOX_DF
+ help
+ Ignore rootfs entry in mount table.
+
+ In Linux, kernel has a special filesystem, rootfs, which is initially
+ mounted on /. It contains initramfs data, if kernel is configured
+ to have one. Usually, another file system is mounted over / early
+ in boot process, and therefore most tools which manipulate
+ mount table, such as df, will skip rootfs entry.
+
+ However, some systems do not mount anything on /.
+ If you need to configure busybox for one of these systems,
+ you may find it useful to turn this option off to make df show
+ initramfs statistics.
+
+ Otherwise, choose Y.
config BUSYBOX_DIRNAME
bool "dirname (329 bytes)"
default y
@@ -585,7 +653,7 @@ config BUSYBOX_SORT
sort is used to sort lines of text in specified files.
config BUSYBOX_FEATURE_SORT_BIG
- bool "Full SuSv3 compliant sort (support -ktcbdfiogM)"
+ bool "Full SuSv3 compliant sort (support -ktcbdfioghM)"
default y
depends on BUSYBOX_SORT
help
@@ -636,7 +704,6 @@ config BUSYBOX_FEATURE_STAT_FILESYSTEM
bool "Enable display of filesystem status (-f)"
default y
depends on BUSYBOX_STAT
- select BUSYBOX_PLATFORM_LINUX # statfs()
help
Without this, stat will not support the '-f' option to display
information about filesystem status.
@@ -742,16 +809,8 @@ config BUSYBOX_TOUCH
touch is used to create or change the access and/or
modification timestamp of specified files.
-config BUSYBOX_FEATURE_TOUCH_NODEREF
- bool "Add support for -h"
- default y
- depends on BUSYBOX_TOUCH
- help
- Enable touch to have the -h option.
- This requires libc support for lutimes() function.
-
config BUSYBOX_FEATURE_TOUCH_SUSV3
- bool "Add support for SUSV3 features (-d -t -r)"
+ bool "Add support for SUSV3 features (-a -d -m -t -r)"
default y
depends on BUSYBOX_TOUCH
help
@@ -792,6 +851,11 @@ config BUSYBOX_TRUNCATE
help
truncate truncates files to a given size. If a file does
not exist, it is created unless told otherwise.
+config BUSYBOX_TSORT
+ bool "tsort (0.7 kb)"
+ default y
+ help
+ tsort performs a topological sort.
config BUSYBOX_TTY
bool "tty (3.6 kb)"
default y
@@ -837,6 +901,11 @@ config BUSYBOX_UUDECODE
default y
help
uudecode is used to decode a uuencoded file.
+config BUSYBOX_BASE32
+ bool "base32 (4.9 kb)"
+ default y
+ help
+ Base32 encode and decode
config BUSYBOX_BASE64
bool "base64 (4.9 kb)"
default y
@@ -893,34 +962,4 @@ config BUSYBOX_YES
yes is used to repeatedly output a specific string, or
the default string 'y'.
-comment "Common options"
-
-config BUSYBOX_FEATURE_VERBOSE
- bool "Support verbose options (usually -v) for various applets"
- default y
- help
- Enable cp -v, rm -v and similar messages.
- Also enables long option (--verbose) if it exists.
- Without this option, -v is accepted but ignored.
-
-comment "Common options for cp and mv"
- depends on BUSYBOX_CP || BUSYBOX_MV
-
-config BUSYBOX_FEATURE_PRESERVE_HARDLINKS
- bool "Preserve hard links"
- default y
- depends on BUSYBOX_CP || BUSYBOX_MV
- help
- Allow cp and mv to preserve hard links.
-
-comment "Common options for df, du, ls"
- depends on BUSYBOX_DF || BUSYBOX_DU || BUSYBOX_LS
-
-config BUSYBOX_FEATURE_HUMAN_READABLE
- bool "Support human readable output (example 13k, 23M, 235G)"
- default y
- depends on BUSYBOX_DF || BUSYBOX_DU || BUSYBOX_LS
- help
- Allow df, du, and ls to have human readable output.
-
endmenu
diff --git a/config/busybox/e2fsprogs/Config.in b/config/busybox/e2fsprogs/Config.in
index fc660f486..2abc80f96 100644
--- a/config/busybox/e2fsprogs/Config.in
+++ b/config/busybox/e2fsprogs/Config.in
@@ -21,7 +21,6 @@ config BUSYBOX_FSCK
config BUSYBOX_LSATTR
bool "lsattr (5.5 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
lsattr lists the file attributes on a second extended file system.
config BUSYBOX_TUNE2FS
diff --git a/config/busybox/editors/Config.in b/config/busybox/editors/Config.in
index 3e48e371d..2858f60d1 100644
--- a/config/busybox/editors/Config.in
+++ b/config/busybox/editors/Config.in
@@ -110,6 +110,14 @@ config BUSYBOX_FEATURE_VI_COLON
Enable a limited set of colon commands. This does not
provide an "ex" mode.
+config BUSYBOX_FEATURE_VI_COLON_EXPAND
+ bool "Expand \"%\" and \"#\" in colon commands"
+ default y
+ depends on BUSYBOX_FEATURE_VI_COLON
+ help
+ Expand the special characters \"%\" (current filename)
+ and \"#\" (alternate filename) in colon commands.
+
config BUSYBOX_FEATURE_VI_YANKMARK
bool "Enable yank/put commands and mark cmds"
default y
@@ -217,6 +225,14 @@ config BUSYBOX_FEATURE_VI_UNDO_QUEUE_MAX
Unless you want more (or less) frequent "undo points" while typing,
you should probably leave this unchanged.
+config BUSYBOX_FEATURE_VI_VERBOSE_STATUS
+ bool "Enable verbose status reporting"
+ default y
+ depends on BUSYBOX_VI
+ help
+ Enable more verbose reporting of the results of yank, change,
+ delete, undo and substitution commands.
+
config BUSYBOX_FEATURE_ALLOW_EXEC
bool "Allow vi and awk to execute shell commands"
default y
diff --git a/config/busybox/findutils/Config.in b/config/busybox/findutils/Config.in
index 92e676670..d4aa403a5 100644
--- a/config/busybox/findutils/Config.in
+++ b/config/busybox/findutils/Config.in
@@ -23,21 +23,53 @@ config BUSYBOX_FEATURE_FIND_PRINT0
interpreted by other programs.
config BUSYBOX_FEATURE_FIND_MTIME
- bool "Enable -mtime: modified time matching"
+ bool "Enable -mtime: modification time matching"
default y
depends on BUSYBOX_FIND
help
Allow searching based on the modification time of
files, in days.
+config BUSYBOX_FEATURE_FIND_ATIME
+ bool "Enable -atime: access time matching"
+ default y
+ depends on BUSYBOX_FEATURE_FIND_MTIME
+ help
+ Allow searching based on the access time of
+ files, in days.
+
+config BUSYBOX_FEATURE_FIND_CTIME
+ bool "Enable -ctime: status change timestamp matching"
+ default y
+ depends on BUSYBOX_FEATURE_FIND_MTIME
+ help
+ Allow searching based on the status change timestamp of
+ files, in days.
+
config BUSYBOX_FEATURE_FIND_MMIN
- bool "Enable -mmin: modified time matching by minutes"
+ bool "Enable -mmin: modification time matching by minutes"
default y
depends on BUSYBOX_FIND
help
Allow searching based on the modification time of
files, in minutes.
+config BUSYBOX_FEATURE_FIND_AMIN
+ bool "Enable -amin: access time matching by minutes"
+ default y
+ depends on BUSYBOX_FEATURE_FIND_MMIN
+ help
+ Allow searching based on the access time of
+ files, in minutes.
+
+config BUSYBOX_FEATURE_FIND_CMIN
+ bool "Enable -cmin: status change timestamp matching by minutes"
+ default y
+ depends on BUSYBOX_FEATURE_FIND_MMIN
+ help
+ Allow searching based on the status change timestamp of
+ files, in minutes.
+
config BUSYBOX_FEATURE_FIND_PERM
bool "Enable -perm: permissions matching"
default y
@@ -79,6 +111,13 @@ config BUSYBOX_FEATURE_FIND_INUM
default y
depends on BUSYBOX_FIND
+config BUSYBOX_FEATURE_FIND_SAMEFILE
+ bool "Enable -samefile: reference file matching"
+ default y
+ depends on BUSYBOX_FIND
+ help
+ Support the 'find -samefile' option for searching by a reference file.
+
config BUSYBOX_FEATURE_FIND_EXEC
bool "Enable -exec: execute commands"
default y
@@ -159,6 +198,14 @@ config BUSYBOX_FEATURE_FIND_DELETE
WARNING: This option can do much harm if used wrong. Busybox will not
try to protect the user from doing stupid things. Use with care.
+config BUSYBOX_FEATURE_FIND_EMPTY
+ bool "Enable -empty: match empty files or directories"
+ default y
+ depends on BUSYBOX_FIND
+ help
+ Support the 'find -empty' option to find empty regular files
+ or directories.
+
config BUSYBOX_FEATURE_FIND_PATH
bool "Enable -path: match pathname with shell pattern"
default y
diff --git a/config/busybox/klibc-utils/Config.in b/config/busybox/klibc-utils/Config.in
index 8121e605f..f2ff057fb 100644
--- a/config/busybox/klibc-utils/Config.in
+++ b/config/busybox/klibc-utils/Config.in
@@ -13,7 +13,7 @@ config BUSYBOX_MINIPS
Alias to "ps".
config BUSYBOX_NUKE
bool "nuke (2.9 kb)"
- default y
+ default n # off by default: too "accidentally destructive"
help
Alias to "rm -rf".
config BUSYBOX_RESUME
@@ -24,7 +24,6 @@ config BUSYBOX_RESUME
config BUSYBOX_RUN_INIT
bool "run-init (7.7 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
The run-init utility is used from initramfs to select a new
root device. Under initramfs, you have to use this instead of
diff --git a/config/busybox/libbb/Config.in b/config/busybox/libbb/Config.in
index 84bed23ea..66c135ec6 100644
--- a/config/busybox/libbb/Config.in
+++ b/config/busybox/libbb/Config.in
@@ -98,51 +98,118 @@ config BUSYBOX_MD5_SMALL
default 1 # all "fast or small" options default to small
range 0 3
help
- Trade binary size versus speed for the md5sum algorithm.
+ Trade binary size versus speed for the md5 algorithm.
Approximate values running uClibc and hashing
linux-2.4.4.tar.bz2 were:
- value user times (sec) text size (386)
- 0 (fastest) 1.1 6144
- 1 1.4 5392
- 2 3.0 5088
- 3 (smallest) 5.1 4912
+ value user times (sec) text size (386)
+ 0 (fastest) 1.1 6144
+ 1 1.4 5392
+ 2 3.0 5088
+ 3 (smallest) 5.1 4912
+
+config BUSYBOX_SHA1_SMALL
+ int "SHA1: Trade bytes for speed (0:fast, 3:slow)"
+ default 3 # all "fast or small" options default to small
+ range 0 3
+ help
+ Trade binary size versus speed for the sha1 algorithm.
+ With FEATURE_COPYBUF_KB=64:
+ throughput MB/s size of sha1_process_block64
+ value 486 x86-64 486 x86-64
+ 0 440 485 3481 3502
+ 1 265 265 641 696
+ 2,3 220 210 342 364
+
+config BUSYBOX_SHA1_HWACCEL
+ bool "SHA1: Use hardware accelerated instructions if possible"
+ default y
+ help
+ On x86, this adds ~590 bytes of code. Throughput
+ is about twice as fast as fully-unrolled generic code.
+
+config BUSYBOX_SHA256_HWACCEL
+ bool "SHA256: Use hardware accelerated instructions if possible"
+ default y
+ help
+ On x86, this adds ~1k bytes of code.
config BUSYBOX_SHA3_SMALL
int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
default 1 # all "fast or small" options default to small
range 0 1
help
- Trade binary size versus speed for the sha3sum algorithm.
+ Trade binary size versus speed for the sha3 algorithm.
SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
64-bit x86: +270 bytes of code, 45% faster
32-bit x86: +450 bytes of code, 75% faster
-config BUSYBOX_FEATURE_FAST_TOP
- bool "Faster /proc scanning code (+100 bytes)"
- default n # all "fast or small" options default to small
+config BUSYBOX_FEATURE_NON_POSIX_CP
+ bool "Non-POSIX, but safer, copying to special nodes"
+ default y
help
- This option makes top and ps ~20% faster (or 20% less CPU hungry),
- but code size is slightly bigger.
+ With this option, "cp file symlink" will delete symlink
+ and create a regular file. This does not conform to POSIX,
+ but prevents a symlink attack.
+ Similarly, "cp file device" will not send file's data
+ to the device. (To do that, use "cat file >device")
-config BUSYBOX_FEATURE_ETC_NETWORKS
- bool "Support /etc/networks"
+config BUSYBOX_FEATURE_VERBOSE_CP_MESSAGE
+ bool "Give more precise messages when copy fails (cp, mv etc)"
default n
help
- Enable support for network names in /etc/networks. This is
- a rarely used feature which allows you to use names
- instead of IP/mask pairs in route command.
+ Error messages with this feature enabled:
-config BUSYBOX_FEATURE_ETC_SERVICES
- bool "Consult /etc/services even for well-known ports"
- default n
+ $ cp file /does_not_exist/file
+ cp: cannot create '/does_not_exist/file': Path does not exist
+ $ cp file /vmlinuz/file
+ cp: cannot stat '/vmlinuz/file': Path has non-directory component
+
+ If this feature is not enabled, they will be, respectively:
+
+ cp: cannot create '/does_not_exist/file': No such file or directory
+ cp: cannot stat '/vmlinuz/file': Not a directory
+
+ This will cost you ~60 bytes.
+
+config BUSYBOX_FEATURE_USE_SENDFILE
+ bool "Use sendfile system call"
+ default y
+ help
+ When enabled, busybox will use the kernel sendfile() function
+ instead of read/write loops to copy data between file descriptors
+ (for example, cp command does this a lot).
+ If sendfile() doesn't work, copying code falls back to read/write
+ loop. sendfile() was originally implemented for faster I/O
+ from files to sockets, but since Linux 2.6.33 it was extended
+ to work for many more file types.
+
+config BUSYBOX_FEATURE_COPYBUF_KB
+ int "Copy buffer size, in kilobytes"
+ range 1 1024
+ default 4
+ help
+ Size of buffer used by cp, mv, install, wget etc.
+ Buffers which are 4 kb or less will be allocated on stack.
+ Bigger buffers will be allocated with mmap, with fallback to 4 kb
+ stack buffer if mmap fails.
+
+config BUSYBOX_MONOTONIC_SYSCALL
+ bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
+ default y
+ help
+ Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
+ time intervals (time, ping, traceroute etc need this).
+ Probably requires Linux 2.6+. If not selected, gettimeofday
+ will be used instead (which gives wrong results if date/time
+ is reset).
+
+config BUSYBOX_IOCTL_HEX2STR_ERROR
+ bool "Use ioctl names rather than hex values in error messages"
+ default y
help
- Look up e.g. "telnet" and "http" in /etc/services file
- instead of assuming ports 23 and 80.
- This is almost never necessary (everybody uses standard ports),
- and it makes sense to avoid reading this file.
- If you disable this option, in the cases where port is explicitly
- specified as a service name (e.g. "telnet HOST PORTNAME"),
- it will still be looked up in /etc/services.
+ Use ioctl names rather than hex values in error messages
+ (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
+ saves about 1400 bytes.
config BUSYBOX_FEATURE_EDITING
bool "Command line editing"
@@ -359,97 +426,24 @@ config BUSYBOX_UNICODE_PRESERVE_BROKEN
at shell prompt will list file named 0xff (single char name
with char value 255), not file named '?'.
-config BUSYBOX_FEATURE_NON_POSIX_CP
- bool "Non-POSIX, but safer, copying to special nodes"
- default y
- help
- With this option, "cp file symlink" will delete symlink
- and create a regular file. This does not conform to POSIX,
- but prevents a symlink attack.
- Similarly, "cp file device" will not send file's data
- to the device. (To do that, use "cat file >device")
-
-config BUSYBOX_FEATURE_VERBOSE_CP_MESSAGE
- bool "Give more precise messages when copy fails (cp, mv etc)"
- default n
- help
- Error messages with this feature enabled:
-
- $ cp file /does_not_exist/file
- cp: cannot create '/does_not_exist/file': Path does not exist
- $ cp file /vmlinuz/file
- cp: cannot stat '/vmlinuz/file': Path has non-directory component
-
- If this feature is not enabled, they will be, respectively:
-
- cp: cannot create '/does_not_exist/file': No such file or directory
- cp: cannot stat '/vmlinuz/file': Not a directory
-
- This will cost you ~60 bytes.
-
-config BUSYBOX_FEATURE_USE_SENDFILE
- bool "Use sendfile system call"
- default y
- select BUSYBOX_PLATFORM_LINUX
- help
- When enabled, busybox will use the kernel sendfile() function
- instead of read/write loops to copy data between file descriptors
- (for example, cp command does this a lot).
- If sendfile() doesn't work, copying code falls back to read/write
- loop. sendfile() was originally implemented for faster I/O
- from files to sockets, but since Linux 2.6.33 it was extended
- to work for many more file types.
-
-config BUSYBOX_FEATURE_COPYBUF_KB
- int "Copy buffer size, in kilobytes"
- range 1 1024
- default 4
- help
- Size of buffer used by cp, mv, install, wget etc.
- Buffers which are 4 kb or less will be allocated on stack.
- Bigger buffers will be allocated with mmap, with fallback to 4 kb
- stack buffer if mmap fails.
-
-config BUSYBOX_FEATURE_SKIP_ROOTFS
- bool "Skip rootfs in mount table"
- default y
+choice
+ prompt "Use LOOP_CONFIGURE for losetup and loop mounts"
+ default BUSYBOX_TRY_LOOP_CONFIGURE
help
- Ignore rootfs entry in mount table.
+ LOOP_CONFIGURE is added to Linux 5.8
+ https://lwn.net/Articles/820408/
+ This allows userspace to completely setup a loop device with a single
+ ioctl, removing the in-between state where the device can be partially
+ configured - eg the loop device has a backing file associated with it,
+ but is reading from the wrong offset.
- In Linux, kernel has a special filesystem, rootfs, which is initially
- mounted on /. It contains initramfs data, if kernel is configured
- to have one. Usually, another file system is mounted over / early
- in boot process, and therefore most tools which manipulate
- mount table, such as df, will skip rootfs entry.
+config BUSYBOX_LOOP_CONFIGURE
+ bool "use LOOP_CONFIGURE, needs kernel >= 5.8"
- However, some systems do not mount anything on /.
- If you need to configure busybox for one of these systems,
- you may find it useful to turn this option off to make df show
- initramfs statistics.
+config BUSYBOX_NO_LOOP_CONFIGURE
+ bool "use LOOP_SET_FD + LOOP_SET_STATUS"
- Otherwise, choose Y.
+config BUSYBOX_TRY_LOOP_CONFIGURE
+ bool "try LOOP_CONFIGURE, fall back to LOOP_SET_FD + LOOP_SET_STATUS"
-config BUSYBOX_MONOTONIC_SYSCALL
- bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
- default y
- select BUSYBOX_PLATFORM_LINUX
- help
- Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
- time intervals (time, ping, traceroute etc need this).
- Probably requires Linux 2.6+. If not selected, gettimeofday
- will be used instead (which gives wrong results if date/time
- is reset).
-
-config BUSYBOX_IOCTL_HEX2STR_ERROR
- bool "Use ioctl names rather than hex values in error messages"
- default y
- help
- Use ioctl names rather than hex values in error messages
- (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
- saves about 1400 bytes.
-
-config BUSYBOX_FEATURE_HWIB
- bool "Support infiniband HW"
- default y
- help
- Support for printing infiniband addresses in network applets.
+endchoice
diff --git a/config/busybox/mailutils/Config.in b/config/busybox/mailutils/Config.in
index 1b793ef7c..29890dcbd 100644
--- a/config/busybox/mailutils/Config.in
+++ b/config/busybox/mailutils/Config.in
@@ -1,6 +1,13 @@
# DO NOT EDIT. This file is generated from Config.src
menu "Mail Utilities"
+config BUSYBOX_FEATURE_MIME_CHARSET
+ string "Default charset"
+ default "us-ascii"
+ depends on BUSYBOX_MAKEMIME || BUSYBOX_REFORMIME || BUSYBOX_SENDMAIL
+ help
+ Default charset of the message.
+
config BUSYBOX_MAKEMIME
bool "makemime (5.4 kb)"
default y
@@ -41,11 +48,4 @@ config BUSYBOX_SENDMAIL
help
Barebones sendmail.
-config BUSYBOX_FEATURE_MIME_CHARSET
- string "Default charset"
- default "us-ascii"
- depends on BUSYBOX_MAKEMIME || BUSYBOX_REFORMIME || BUSYBOX_SENDMAIL
- help
- Default charset of the message.
-
endmenu
diff --git a/config/busybox/miscutils/Config.in b/config/busybox/miscutils/Config.in
index c322e8393..5c04fd8ef 100644
--- a/config/busybox/miscutils/Config.in
+++ b/config/busybox/miscutils/Config.in
@@ -9,10 +9,15 @@ menu "Miscellaneous Utilities"
config BUSYBOX_ADJTIMEX
bool "adjtimex (4.7 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Adjtimex reads and optionally sets adjustment parameters for
the Linux clock adjustment algorithm.
+config BUSYBOX_ASCII
+ bool "ascii"
+ default y
+ help
+ Print ascii table.
+
config BUSYBOX_BBCONFIG
bool "bbconfig (9.7 kb)"
default n
@@ -122,7 +127,6 @@ endif
config BUSYBOX_BEEP
bool "beep (2.4 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
The beep applets beeps in a given freq/Hz.
@@ -210,7 +214,6 @@ config BUSYBOX_FEATURE_CHAT_CLR_ABORT
config BUSYBOX_CONSPY
bool "conspy (10 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
A text-mode VNC like program for Linux virtual terminals.
example: conspy NUM shared access to console num
@@ -276,7 +279,6 @@ config BUSYBOX_CRONTAB
config BUSYBOX_DEVFSD
bool "devfsd (obsolete)"
default n
- select BUSYBOX_PLATFORM_LINUX
select BUSYBOX_FEATURE_SYSLOG
help
This is deprecated and should NOT be used anymore.
@@ -319,7 +321,6 @@ config BUSYBOX_DEVFSD_VERBOSE
config BUSYBOX_FEATURE_DEVFS
bool "Use devfs names for all devices (obsolete)"
default n
- select BUSYBOX_PLATFORM_LINUX
help
This is obsolete and should NOT be used anymore.
Use linux >= 2.6 (optionally with hotplug) and mdev instead!
@@ -337,7 +338,6 @@ config BUSYBOX_DEVMEM
config BUSYBOX_FBSPLASH
bool "fbsplash (26 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Shows splash image and progress bar on framebuffer device.
Can be used during boot phase of an embedded device.
@@ -383,7 +383,6 @@ config BUSYBOX_FLASHCP
config BUSYBOX_HDPARM
bool "hdparm (25 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Get/Set hard drive parameters. Primarily intended for ATA
drives.
@@ -445,35 +444,30 @@ config BUSYBOX_HEXEDIT
config BUSYBOX_I2CGET
bool "i2cget (5.5 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Read from I2C/SMBus chip registers.
config BUSYBOX_I2CSET
bool "i2cset (6.7 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Set I2C registers.
config BUSYBOX_I2CDUMP
bool "i2cdump (7.1 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Examine I2C registers.
config BUSYBOX_I2CDETECT
bool "i2cdetect (7.1 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Detect I2C chips.
config BUSYBOX_I2CTRANSFER
bool "i2ctransfer (4.0 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Send user-defined I2C messages in one transfer.
@@ -582,7 +576,6 @@ config BUSYBOX_FEATURE_LESS_ENV
config BUSYBOX_LSSCSI
bool "lsscsi (2.5 kb)"
default y
- #select PLATFORM_LINUX
help
lsscsi is a utility for displaying information about SCSI buses in the
system and devices connected to them.
@@ -629,6 +622,13 @@ config BUSYBOX_MICROCOM
default y
help
The poor man's minicom utility for chatting with serial port devices.
+config BUSYBOX_MIM
+ bool "mim (0.5 kb)"
+ default y
+ depends on BUSYBOX_FEATURE_SH_EMBEDDED_SCRIPTS
+ help
+ Run a script from a Makefile-like specification file.
+ Unlike 'make' dependencies aren't supported.
config BUSYBOX_MT
bool "mt (2.5 kb)"
default y
@@ -639,26 +639,22 @@ config BUSYBOX_MT
config BUSYBOX_NANDWRITE
bool "nandwrite (4.8 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Write to the specified MTD device, with bad blocks awareness
config BUSYBOX_NANDDUMP
bool "nanddump (5.2 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Dump the content of raw NAND chip
config BUSYBOX_PARTPROBE
bool "partprobe (3.5 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Ask kernel to rescan partition table.
config BUSYBOX_RAIDAUTORUN
bool "raidautorun (1.3 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
raidautorun tells the kernel md driver to
search and start RAID arrays.
@@ -666,7 +662,6 @@ config BUSYBOX_READAHEAD
bool "readahead (1.5 kb)"
default y
depends on BUSYBOX_LFS
- select BUSYBOX_PLATFORM_LINUX
help
Preload the files listed on the command line into RAM cache so that
subsequent reads on these files will not block on disk I/O.
@@ -682,7 +677,6 @@ config BUSYBOX_READAHEAD
config BUSYBOX_RFKILL
bool "rfkill (4.4 kb)"
default n # doesn't build on Ubuntu 9.04
- select BUSYBOX_PLATFORM_LINUX
help
Enable/disable wireless devices.
@@ -703,9 +697,15 @@ config BUSYBOX_RUNLEVEL
config BUSYBOX_RX
bool "rx (2.9 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Receive files using the Xmodem protocol.
+config BUSYBOX_SEEDRNG
+ bool "seedrng (1.3 kb)"
+ default y
+ help
+ Seed the kernel RNG from seed files, meant to be called
+ once during startup, once during shutdown, and optionally
+ at some periodic interval in between.
config BUSYBOX_SETFATTR
bool "setfattr (3.7 kb)"
default y
@@ -714,7 +714,6 @@ config BUSYBOX_SETFATTR
config BUSYBOX_SETSERIAL
bool "setserial (6.9 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Retrieve or set Linux serial port.
config BUSYBOX_STRINGS
@@ -730,6 +729,11 @@ config BUSYBOX_TIME
The time command runs the specified program with the given arguments.
When the command finishes, time writes a message to standard output
giving timing statistics about this program run.
+config BUSYBOX_TREE
+ bool "tree (0.6 kb)"
+ default y
+ help
+ List files and directories in a tree structure.
config BUSYBOX_TS
bool "ts (450 bytes)"
default y
@@ -744,48 +748,41 @@ config BUSYBOX_TTYSIZE
config BUSYBOX_UBIATTACH
bool "ubiattach (4.2 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Attach MTD device to an UBI device.
config BUSYBOX_UBIDETACH
bool "ubidetach (4.1 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Detach MTD device from an UBI device.
config BUSYBOX_UBIMKVOL
bool "ubimkvol (5.3 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Create a UBI volume.
config BUSYBOX_UBIRMVOL
bool "ubirmvol (4.9 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Delete a UBI volume.
config BUSYBOX_UBIRSVOL
bool "ubirsvol (4.2 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Resize a UBI volume.
config BUSYBOX_UBIUPDATEVOL
bool "ubiupdatevol (5.2 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Update a UBI volume.
config BUSYBOX_UBIRENAME
bool "ubirename (2.4 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Utility to rename UBI volumes
config BUSYBOX_VOLNAME
@@ -796,7 +793,6 @@ config BUSYBOX_VOLNAME
config BUSYBOX_WATCHDOG
bool "watchdog (5.3 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
The watchdog utility is used with hardware or software watchdog
device drivers. It opens the specified watchdog device special file
@@ -805,4 +801,19 @@ config BUSYBOX_WATCHDOG
certain amount of time, the watchdog device assumes the system has
hung, and will cause the hardware to reboot.
+config BUSYBOX_FEATURE_WATCHDOG_OPEN_TWICE
+ bool "Open watchdog device twice, closing it gracefully in between"
+ depends on BUSYBOX_WATCHDOG
+ default n # this behavior was essentially a hack for a broken driver
+ help
+ When enabled, the watchdog device is opened and then immediately
+ magic-closed, before being opened a second time. This may be necessary
+ for some watchdog devices, but can cause spurious warnings in the
+ kernel log if the nowayout feature is enabled. If this workaround
+ is really needed for you machine to work properly, consider whether
+ it should be fixed in the kernel driver instead. Even when disabled,
+ the behaviour is easily emulated with a "printf 'V' > /dev/watchdog"
+ immediately before starting the busybox watchdog daemon. Say n unless
+ you know that you absolutely need this.
+
endmenu
diff --git a/config/busybox/modutils/Config.in b/config/busybox/modutils/Config.in
index 40d224bc3..609d76a09 100644
--- a/config/busybox/modutils/Config.in
+++ b/config/busybox/modutils/Config.in
@@ -37,7 +37,6 @@ config BUSYBOX_MODPROBE_SMALL
config BUSYBOX_DEPMOD
bool "depmod (27 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
depmod generates modules.dep (and potentially modules.alias
and modules.symbols) that contain dependency information
@@ -45,13 +44,11 @@ config BUSYBOX_DEPMOD
config BUSYBOX_INSMOD
bool "insmod (22 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
insmod is used to load specified modules in the running kernel.
config BUSYBOX_LSMOD
bool "lsmod (1.9 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
lsmod is used to display a list of loaded modules.
@@ -66,13 +63,11 @@ config BUSYBOX_FEATURE_LSMOD_PRETTY_2_6_OUTPUT
config BUSYBOX_MODINFO
bool "modinfo (24 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Show information about a Linux Kernel module
config BUSYBOX_MODPROBE
bool "modprobe (28 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Handle the loading of modules, and their dependencies on a high
level.
@@ -90,7 +85,6 @@ config BUSYBOX_FEATURE_MODPROBE_BLACKLIST
config BUSYBOX_RMMOD
bool "rmmod (3.3 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
rmmod is used to unload specified modules from the kernel.
diff --git a/config/busybox/networking/Config.in b/config/busybox/networking/Config.in
index 188f25051..3a3ad56d9 100644
--- a/config/busybox/networking/Config.in
+++ b/config/busybox/networking/Config.in
@@ -47,6 +47,32 @@ config BUSYBOX_VERBOSE_RESOLUTION_ERRORS
"can't resolve 'hostname.com'" and want to know more.
This may increase size of your executable a bit.
+config BUSYBOX_FEATURE_ETC_NETWORKS
+ bool "Support /etc/networks"
+ default n
+ help
+ Enable support for network names in /etc/networks. This is
+ a rarely used feature which allows you to use names
+ instead of IP/mask pairs in route command.
+
+config BUSYBOX_FEATURE_ETC_SERVICES
+ bool "Consult /etc/services even for well-known ports"
+ default n
+ help
+ Look up e.g. "telnet" and "http" in /etc/services file
+ instead of assuming ports 23 and 80.
+ This is almost never necessary (everybody uses standard ports),
+ and it makes sense to avoid reading this file.
+ If you disable this option, in the cases where port is explicitly
+ specified as a service name (e.g. "telnet HOST PORTNAME"),
+ it will still be looked up in /etc/services.
+
+config BUSYBOX_FEATURE_HWIB
+ bool "Support infiniband HW"
+ default y
+ help
+ Support for printing infiniband addresses in network applets.
+
config BUSYBOX_FEATURE_TLS_SHA1
bool "In TLS code, support ciphers which use deprecated SHA1"
depends on BUSYBOX_TLS
@@ -61,19 +87,16 @@ config BUSYBOX_FEATURE_TLS_SHA1
config BUSYBOX_ARP
bool "arp (10 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Manipulate the system ARP cache.
config BUSYBOX_ARPING
bool "arping (9 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Ping hosts by ARP packets.
config BUSYBOX_BRCTL
bool "brctl (4.7 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Manage ethernet bridges.
Supports addbr/delbr and addif/delif.
@@ -104,7 +127,6 @@ config BUSYBOX_DNSD
config BUSYBOX_ETHER_WAKE
bool "ether-wake (4.9 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Send a magic packet to wake up sleeping machines.
config BUSYBOX_FTPD
@@ -177,6 +199,12 @@ config BUSYBOX_HTTPD
help
HTTP server.
+config BUSYBOX_FEATURE_HTTPD_PORT_DEFAULT
+ int "Default port"
+ default 80
+ range 1 65535
+ depends on BUSYBOX_HTTPD
+
config BUSYBOX_FEATURE_HTTPD_RANGES
bool "Support 'Ranges:' header"
default y
@@ -289,10 +317,47 @@ config BUSYBOX_FEATURE_HTTPD_GZIP
help
Makes httpd send files using GZIP content encoding if the
client supports it and a pre-compressed <file>.gz exists.
+
+config BUSYBOX_FEATURE_HTTPD_ETAG
+ bool "Support caching via ETag header"
+ default y
+ depends on BUSYBOX_HTTPD
+ help
+ If server responds with ETag then next time client (browser)
+ resend it via If-None-Match header.
+ Then httpd will check if file wasn't modified and if not,
+ return 304 Not Modified status code.
+ The ETag value is constructed from last modification date
+ in unix epoch, and size: "hex(last_mod)-hex(file_size)".
+ It's not completely reliable as hash functions but fair enough.
+
+config BUSYBOX_FEATURE_HTTPD_LAST_MODIFIED
+ bool "Add Last-Modified header to response"
+ default y
+ depends on BUSYBOX_HTTPD
+ help
+ The Last-Modified header is used for cache validation.
+ The client sends last seen mtime to server in If-Modified-Since.
+ Both headers MUST be an RFC 1123 formatted, which is hard to parse.
+ Use ETag header instead.
+
+config BUSYBOX_FEATURE_HTTPD_DATE
+ bool "Add Date header to response"
+ default y
+ depends on BUSYBOX_HTTPD
+ help
+ RFC2616 says that server MUST add Date header to response.
+ But it is almost useless and can be omitted.
+
+config BUSYBOX_FEATURE_HTTPD_ACL_IP
+ bool "ACL IP"
+ default y
+ depends on BUSYBOX_HTTPD
+ help
+ Support IP deny/allow rules
config BUSYBOX_IFCONFIG
bool "ifconfig (12 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Ifconfig is used to configure the kernel-resident network interfaces.
@@ -339,14 +404,12 @@ config BUSYBOX_FEATURE_IFCONFIG_BROADCAST_PLUS
config BUSYBOX_IFENSLAVE
bool "ifenslave (13 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Userspace application to bind several interfaces
to a logical interface (use with kernel bonding driver).
config BUSYBOX_IFPLUGD
bool "ifplugd (10 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Network interface plug detection daemon.
config BUSYBOX_IFUP
@@ -498,7 +561,6 @@ config BUSYBOX_FEATURE_INETD_RPC
config BUSYBOX_IP
bool "ip (35 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
The "ip" applet is a TCP/IP interface configuration and routing
utility.
@@ -510,7 +572,6 @@ config BUSYBOX_IPADDR
bool "ipaddr (14 kb)"
default y
select BUSYBOX_FEATURE_IP_ADDRESS
- select BUSYBOX_PLATFORM_LINUX
help
Short form of "ip addr"
@@ -518,7 +579,6 @@ config BUSYBOX_IPLINK
bool "iplink (17 kb)"
default y
select BUSYBOX_FEATURE_IP_LINK
- select BUSYBOX_PLATFORM_LINUX
help
Short form of "ip link"
@@ -526,7 +586,6 @@ config BUSYBOX_IPROUTE
bool "iproute (15 kb)"
default y
select BUSYBOX_FEATURE_IP_ROUTE
- select BUSYBOX_PLATFORM_LINUX
help
Short form of "ip route"
@@ -534,7 +593,6 @@ config BUSYBOX_IPTUNNEL
bool "iptunnel (9.6 kb)"
default y
select BUSYBOX_FEATURE_IP_TUNNEL
- select BUSYBOX_PLATFORM_LINUX
help
Short form of "ip tunnel"
@@ -542,7 +600,6 @@ config BUSYBOX_IPRULE
bool "iprule (10 kb)"
default y
select BUSYBOX_FEATURE_IP_RULE
- select BUSYBOX_PLATFORM_LINUX
help
Short form of "ip rule"
@@ -550,7 +607,6 @@ config BUSYBOX_IPNEIGH
bool "ipneigh (8.3 kb)"
default y
select BUSYBOX_FEATURE_IP_NEIGH
- select BUSYBOX_PLATFORM_LINUX
help
Short form of "ip neigh"
@@ -641,7 +697,6 @@ config BUSYBOX_FAKEIDENTD
config BUSYBOX_NAMEIF
bool "nameif (6.6 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
select BUSYBOX_FEATURE_SYSLOG
help
nameif is used to rename network interface by its MAC address.
@@ -713,7 +768,6 @@ config BUSYBOX_NC_110_COMPAT
config BUSYBOX_NETSTAT
bool "netstat (10 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
netstat prints information about the Linux networking subsystem.
@@ -750,7 +804,6 @@ config BUSYBOX_FEATURE_NSLOOKUP_LONG_OPTIONS
config BUSYBOX_NTPD
bool "ntpd (22 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
The NTP client/server daemon.
@@ -777,7 +830,6 @@ config BUSYBOX_FEATURE_NTP_AUTH
config BUSYBOX_PING
bool "ping (10 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to
elicit an ICMP ECHO_RESPONSE from a host or gateway.
@@ -805,13 +857,11 @@ config BUSYBOX_PSCAN
config BUSYBOX_ROUTE
bool "route (8.7 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Route displays or manipulates the kernel's IP routing tables.
config BUSYBOX_SLATTACH
bool "slattach (6.2 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
slattach configures serial line as SLIP network interface.
config BUSYBOX_SSL_CLIENT
@@ -921,6 +971,12 @@ config BUSYBOX_FEATURE_TELNETD_STANDALONE
help
Selecting this will make telnetd able to run standalone.
+config BUSYBOX_FEATURE_TELNETD_PORT_DEFAULT
+ int "Default port"
+ default 23
+ range 1 65535
+ depends on BUSYBOX_FEATURE_TELNETD_STANDALONE
+
config BUSYBOX_FEATURE_TELNETD_INETD_WAIT
bool "Support -w SEC option (inetd wait mode)"
default y
@@ -1011,7 +1067,6 @@ config BUSYBOX_TLS
config BUSYBOX_TRACEROUTE
bool "traceroute (11 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Utility to trace the route of IP packets.
@@ -1037,7 +1092,6 @@ config BUSYBOX_FEATURE_TRACEROUTE_USE_ICMP
config BUSYBOX_TUNCTL
bool "tunctl (6.2 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
tunctl creates or deletes tun devices.
@@ -1051,7 +1105,6 @@ config BUSYBOX_FEATURE_TUNCTL_UG
config BUSYBOX_VCONFIG
bool "vconfig (2.3 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Creates, removes, and configures VLAN interfaces
config BUSYBOX_WGET
@@ -1071,6 +1124,13 @@ config BUSYBOX_FEATURE_WGET_STATUSBAR
default y
depends on BUSYBOX_WGET
+config BUSYBOX_FEATURE_WGET_FTP
+ bool "Enable FTP protocol (+1k)"
+ default y
+ depends on BUSYBOX_WGET
+ help
+ To support FTPS, enable FEATURE_WGET_HTTPS as well.
+
config BUSYBOX_FEATURE_WGET_AUTHENTICATION
bool "Enable HTTP authentication"
default y
@@ -1099,6 +1159,7 @@ config BUSYBOX_FEATURE_WGET_HTTPS
select BUSYBOX_TLS
help
wget will use internal TLS code to connect to https:// URLs.
+ It also enables FTPS support, but it's not well tested yet.
Note:
On NOMMU machines, ssl_helper applet should be available
in the $PATH for this to work. Make sure to select that applet.
@@ -1136,6 +1197,9 @@ config BUSYBOX_FEATURE_WGET_HTTPS
patches, but do want to waste bandwidth expaining how wrong
it is, you will be ignored.
+ FEATURE_WGET_OPENSSL does implement TLS verification
+ using the certificates available to OpenSSL.
+
config BUSYBOX_FEATURE_WGET_OPENSSL
bool "Try to connect to HTTPS using openssl"
default y
@@ -1160,6 +1224,9 @@ config BUSYBOX_FEATURE_WGET_OPENSSL
If openssl can't be executed, internal TLS code will be used
(if you enabled it); if openssl can be executed but fails later,
wget can't detect this, and download will fail.
+
+ By default TLS verification is performed, unless
+ --no-check-certificate option is passed.
config BUSYBOX_WHOIS
bool "whois (6.3 kb)"
default y
@@ -1168,7 +1235,6 @@ config BUSYBOX_WHOIS
config BUSYBOX_ZCIP
bool "zcip (8.4 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
select BUSYBOX_FEATURE_SYSLOG
help
ZCIP provides ZeroConf IPv4 address selection, according to RFC 3927.
diff --git a/config/busybox/networking/udhcp/Config.in b/config/busybox/networking/udhcp/Config.in
index 683a1c8d5..adb5ac16c 100644
--- a/config/busybox/networking/udhcp/Config.in
+++ b/config/busybox/networking/udhcp/Config.in
@@ -7,7 +7,6 @@
config BUSYBOX_UDHCPD
bool "udhcpd (21 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
udhcpd is a DHCP server geared primarily toward embedded systems,
while striving to be fully functional and RFC compliant.
@@ -63,7 +62,6 @@ config BUSYBOX_DHCPRELAY
config BUSYBOX_UDHCPC
bool "udhcpc (24 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
udhcpc is a DHCP client geared primarily toward embedded systems,
while striving to be fully functional and RFC compliant.
@@ -95,12 +93,17 @@ config BUSYBOX_FEATURE_UDHCPC_SANITIZEOPT
config BUSYBOX_UDHCPC_DEFAULT_SCRIPT
string "Absolute path to config script"
default "/usr/share/udhcpc/default.script"
- depends on BUSYBOX_UDHCPC || BUSYBOX_UDHCPC6
+ depends on BUSYBOX_UDHCPC
help
This script is called after udhcpc receives an answer. See
examples/udhcp for a working example. Normally it is safe
to leave this untouched.
+config BUSYBOX_UDHCPC6_DEFAULT_SCRIPT
+ string "Absolute path to config script for IPv6"
+ default "/usr/share/udhcpc/default6.script"
+ depends on BUSYBOX_UDHCPC6
+
# udhcpc6 config is inserted here:
config BUSYBOX_UDHCPC6
bool "udhcpc6 (21 kb)"
@@ -144,6 +147,14 @@ config BUSYBOX_FEATURE_UDHCPC6_RFC5970
comment "Common options for DHCP applets"
depends on BUSYBOX_UDHCPD || BUSYBOX_UDHCPC || BUSYBOX_UDHCPC6 || BUSYBOX_DHCPRELAY
+config BUSYBOX_UDHCPC_DEFAULT_INTERFACE
+ string "Default interface name"
+ default "eth0"
+ depends on BUSYBOX_UDHCPC || BUSYBOX_UDHCPC6
+ help
+ The interface that will be used if no other interface is
+ specified on the commandline.
+
config BUSYBOX_FEATURE_UDHCP_PORT
bool "Enable '-P port' option for udhcpd and udhcpc"
default n
diff --git a/config/busybox/procps/Config.in b/config/busybox/procps/Config.in
index dfd4e2c14..0c1733b9f 100644
--- a/config/busybox/procps/Config.in
+++ b/config/busybox/procps/Config.in
@@ -6,10 +6,24 @@
menu "Process Utilities"
+config BUSYBOX_FEATURE_FAST_TOP
+ bool "Faster /proc scanning code (+100 bytes)"
+ default n # all "fast or small" options default to small
+ help
+ This option makes top and ps ~20% faster (or 20% less CPU hungry),
+ but code size is slightly bigger.
+
+config BUSYBOX_FEATURE_SHOW_THREADS
+ bool "Support thread display in ps/pstree/top"
+ default y
+ depends on BUSYBOX_PS || BUSYBOX_TOP || BUSYBOX_PSTREE
+ help
+ Enables the ps -T option, showing of threads in pstree,
+ and 'h' command in top.
+
config BUSYBOX_FREE
bool "free (3.1 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX #sysinfo()
help
free displays the total amount of free and used physical and swap
memory in the system, as well as the buffers used by the kernel.
@@ -144,7 +158,6 @@ config BUSYBOX_FEATURE_PS_TIME
bool "Enable -o time and -o etime specifiers"
default y
depends on (BUSYBOX_PS || BUSYBOX_MINIPS) && BUSYBOX_DESKTOP
- select BUSYBOX_PLATFORM_LINUX
config BUSYBOX_FEATURE_PS_UNUSUAL_SYSTEMS
bool "Support Linux prior to 2.4.0 and non-ELF systems"
@@ -243,7 +256,6 @@ config BUSYBOX_FEATURE_TOPMEM
config BUSYBOX_UPTIME
bool "uptime (3.7 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX #sysinfo()
help
uptime gives a one line display of the current time, how long
the system has been running, how many users are currently logged
@@ -262,12 +274,4 @@ config BUSYBOX_WATCH
watch is used to execute a program periodically, showing
output to the screen.
-config BUSYBOX_FEATURE_SHOW_THREADS
- bool "Support thread display in ps/pstree/top"
- default y
- depends on BUSYBOX_PS || BUSYBOX_TOP || BUSYBOX_PSTREE
- help
- Enables the ps -T option, showing of threads in pstree,
- and 'h' command in top.
-
endmenu
diff --git a/config/busybox/shell/Config.in b/config/busybox/shell/Config.in
index a1656b3cb..cb6215afc 100644
--- a/config/busybox/shell/Config.in
+++ b/config/busybox/shell/Config.in
@@ -18,6 +18,7 @@ choice
config BUSYBOX_SH_IS_ASH
depends on !BUSYBOX_NOMMU
bool "ash"
+ select BUSYBOX_SHELL_ASH
help
Choose ash to be the shell executed by 'sh' name.
The ash code will be built into busybox. If you don't select
@@ -26,6 +27,7 @@ config BUSYBOX_SH_IS_ASH
config BUSYBOX_SH_IS_HUSH
bool "hush"
+ select BUSYBOX_SHELL_HUSH
help
Choose hush to be the shell executed by 'sh' name.
The hush code will be built into busybox. If you don't select
@@ -58,6 +60,7 @@ choice
config BUSYBOX_BASH_IS_ASH
depends on !BUSYBOX_NOMMU
bool "ash"
+ select BUSYBOX_SHELL_ASH
help
Choose ash to be the shell executed by 'bash' name.
The ash code will be built into busybox. If you don't select
@@ -66,6 +69,7 @@ config BUSYBOX_BASH_IS_ASH
config BUSYBOX_BASH_IS_HUSH
bool "hush"
+ select BUSYBOX_SHELL_HUSH
help
Choose hush to be the shell executed by 'bash' name.
The hush code will be built into busybox. If you don't select
@@ -78,10 +82,15 @@ config BUSYBOX_BASH_IS_NONE
endchoice
+config BUSYBOX_SHELL_ASH
+ bool #hidden option
+ depends on !BUSYBOX_NOMMU
+
config BUSYBOX_ASH
bool "ash (78 kb)"
default y
depends on !BUSYBOX_NOMMU
+ select BUSYBOX_SHELL_ASH
help
The most complete and most pedantically correct shell included with
busybox. This shell is actually a derivative of the Debian 'dash'
@@ -91,17 +100,17 @@ config BUSYBOX_ASH
# ash options
# note: Don't remove !NOMMU part in the next line; it would break
# menuconfig's indenting.
-if !BUSYBOX_NOMMU && (BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH)
+if !BUSYBOX_NOMMU && (BUSYBOX_SHELL_ASH || BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH)
config BUSYBOX_ASH_OPTIMIZE_FOR_SIZE
bool "Optimize for size instead of speed"
default y
- depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
+ depends on BUSYBOX_SHELL_ASH
config BUSYBOX_ASH_INTERNAL_GLOB
bool "Use internal glob() implementation"
default y # Y is bigger, but because of uclibc glob() bug, let Y be default for now
- depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
+ depends on BUSYBOX_SHELL_ASH
help
Do not use glob() function from libc, use internal implementation.
Use this if you are getting "glob.h: No such file or directory"
@@ -112,7 +121,7 @@ config BUSYBOX_ASH_INTERNAL_GLOB
config BUSYBOX_ASH_BASH_COMPAT
bool "bash-compatible extensions"
default y
- depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
+ depends on BUSYBOX_SHELL_ASH
config BUSYBOX_ASH_BASH_SOURCE_CURDIR
bool "'source' and '.' builtins search current directory after $PATH"
@@ -133,17 +142,17 @@ config BUSYBOX_ASH_BASH_NOT_FOUND_HOOK
config BUSYBOX_ASH_JOB_CONTROL
bool "Job control"
default y
- depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
+ depends on BUSYBOX_SHELL_ASH
config BUSYBOX_ASH_ALIAS
bool "Alias support"
default y
- depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
+ depends on BUSYBOX_SHELL_ASH
config BUSYBOX_ASH_RANDOM_SUPPORT
bool "Pseudorandom generator and $RANDOM variable"
default y
- depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
+ depends on BUSYBOX_SHELL_ASH
help
Enable pseudorandom generator and dynamic variable "$RANDOM".
Each read of "$RANDOM" will generate a new pseudorandom value.
@@ -154,7 +163,7 @@ config BUSYBOX_ASH_RANDOM_SUPPORT
config BUSYBOX_ASH_EXPAND_PRMT
bool "Expand prompt string"
default y
- depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
+ depends on BUSYBOX_SHELL_ASH
help
$PS# may contain volatile content, such as backquote commands.
This option recreates the prompt string from the environment
@@ -163,14 +172,14 @@ config BUSYBOX_ASH_EXPAND_PRMT
config BUSYBOX_ASH_IDLE_TIMEOUT
bool "Idle timeout variable $TMOUT"
default y
- depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
+ depends on BUSYBOX_SHELL_ASH
help
Enable bash-like auto-logout after $TMOUT seconds of idle time.
config BUSYBOX_ASH_MAIL
bool "Check for new mail in interactive shell"
default y
- depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
+ depends on BUSYBOX_SHELL_ASH
help
Enable "check for new mail" function:
if set, $BUSYBOX_MAIL file and $BUSYBOX_MAILPATH list of files
@@ -180,32 +189,37 @@ config BUSYBOX_ASH_MAIL
config BUSYBOX_ASH_ECHO
bool "echo builtin"
default y
- depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
+ depends on BUSYBOX_SHELL_ASH
config BUSYBOX_ASH_PRINTF
bool "printf builtin"
default y
- depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
+ depends on BUSYBOX_SHELL_ASH
config BUSYBOX_ASH_TEST
bool "test builtin"
default y
- depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
+ depends on BUSYBOX_SHELL_ASH
+
+config BUSYBOX_ASH_SLEEP
+ bool "sleep builtin"
+ default y
+ depends on BUSYBOX_SHELL_ASH
config BUSYBOX_ASH_HELP
bool "help builtin"
default y
- depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
+ depends on BUSYBOX_SHELL_ASH
config BUSYBOX_ASH_GETOPTS
bool "getopts builtin"
default y
- depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
+ depends on BUSYBOX_SHELL_ASH
config BUSYBOX_ASH_CMDCMD
bool "command builtin"
default y
- depends on BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH
+ depends on BUSYBOX_SHELL_ASH
help
Enable support for the 'command' builtin, which allows
you to run the specified command or builtin,
@@ -258,6 +272,7 @@ config BUSYBOX_CTTYHACK
config BUSYBOX_HUSH
bool "hush (68 kb)"
default y
+ select BUSYBOX_SHELL_HUSH
help
hush is a small shell. It handles the normal flow control
constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
@@ -269,10 +284,18 @@ config BUSYBOX_HUSH
It does not handle select, aliases, tilde expansion,
&>file and >&file redirection of stdout+stderr.
+config BUSYBOX_SHELL_HUSH
+ bool "Internal shell for embedded script support"
+ default n
+
+# hush options
+# It's only needed to get "nice" menuconfig indenting.
+if BUSYBOX_SHELL_HUSH || BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+
config BUSYBOX_HUSH_BASH_COMPAT
bool "bash-compatible extensions"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_BRACE_EXPANSION
bool "Brace expansion"
@@ -281,11 +304,6 @@ config BUSYBOX_HUSH_BRACE_EXPANSION
help
Enable {abc,def} extension.
-config BUSYBOX_HUSH_LINENO_VAR
- bool "$LINENO variable"
- default y
- depends on BUSYBOX_HUSH_BASH_COMPAT
-
config BUSYBOX_HUSH_BASH_SOURCE_CURDIR
bool "'source' and '.' builtins search current directory after $PATH"
default n # do not encourage non-standard behavior
@@ -293,10 +311,15 @@ config BUSYBOX_HUSH_BASH_SOURCE_CURDIR
help
This is not compliant with standards. Avoid if possible.
+config BUSYBOX_HUSH_LINENO_VAR
+ bool "$LINENO variable (bashism)"
+ default y
+ depends on BUSYBOX_SHELL_HUSH
+
config BUSYBOX_HUSH_INTERACTIVE
bool "Interactive mode"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
help
Enable interactive mode (prompt and command editing).
Without this, hush simply reads and executes commands
@@ -322,31 +345,31 @@ config BUSYBOX_HUSH_JOB
config BUSYBOX_HUSH_TICK
bool "Support command substitution"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
help
Enable `command` and $(command).
config BUSYBOX_HUSH_IF
bool "Support if/then/elif/else/fi"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_LOOPS
bool "Support for, while and until loops"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_CASE
bool "Support case ... esac statement"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
help
Enable case ... esac statement. +400 bytes.
config BUSYBOX_HUSH_FUNCTIONS
bool "Support funcname() { commands; } syntax"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
help
Enable support for shell functions. +800 bytes.
@@ -360,7 +383,7 @@ config BUSYBOX_HUSH_LOCAL
config BUSYBOX_HUSH_RANDOM_SUPPORT
bool "Pseudorandom generator and $RANDOM variable"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
help
Enable pseudorandom generator and dynamic variable "$RANDOM".
Each read of "$RANDOM" will generate a new pseudorandom value.
@@ -368,7 +391,7 @@ config BUSYBOX_HUSH_RANDOM_SUPPORT
config BUSYBOX_HUSH_MODE_X
bool "Support 'hush -x' option and 'set -x' command"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
help
This instructs hush to print commands before execution.
Adds ~300 bytes.
@@ -376,27 +399,27 @@ config BUSYBOX_HUSH_MODE_X
config BUSYBOX_HUSH_ECHO
bool "echo builtin"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_PRINTF
bool "printf builtin"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_TEST
bool "test builtin"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_HELP
bool "help builtin"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_EXPORT
bool "export builtin"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_EXPORT_N
bool "Support 'export -n' option"
@@ -408,83 +431,85 @@ config BUSYBOX_HUSH_EXPORT_N
config BUSYBOX_HUSH_READONLY
bool "readonly builtin"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
help
Enable support for read-only variables.
config BUSYBOX_HUSH_KILL
bool "kill builtin (supports kill %jobspec)"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_WAIT
bool "wait builtin"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_COMMAND
bool "command builtin"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_TRAP
bool "trap builtin"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_TYPE
bool "type builtin"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_TIMES
bool "times builtin"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_READ
bool "read builtin"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_SET
bool "set builtin"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_UNSET
bool "unset builtin"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_ULIMIT
bool "ulimit builtin"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_UMASK
bool "umask builtin"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_GETOPTS
bool "getopts builtin"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_MEMLEAK
bool "memleak builtin (debugging)"
default n
- depends on BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_HUSH
+
+endif # hush options
comment "Options common to all shells"
-if BUSYBOX_ASH || BUSYBOX_HUSH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+if BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
config BUSYBOX_FEATURE_SH_MATH
bool "POSIX math support"
default y
- depends on BUSYBOX_ASH || BUSYBOX_HUSH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
help
Enable math support in the shell via $((...)) syntax.
@@ -505,14 +530,14 @@ config BUSYBOX_FEATURE_SH_MATH_BASE
config BUSYBOX_FEATURE_SH_EXTRA_QUIET
bool "Hide message on interactive shell startup"
default y
- depends on BUSYBOX_ASH || BUSYBOX_HUSH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
help
Remove the busybox introduction when starting a shell.
config BUSYBOX_FEATURE_SH_STANDALONE
bool "Standalone shell"
default n
- depends on BUSYBOX_ASH || BUSYBOX_HUSH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
help
This option causes busybox shells to use busybox applets
in preference to executables in the PATH whenever possible. For
@@ -533,7 +558,7 @@ config BUSYBOX_FEATURE_SH_STANDALONE
config BUSYBOX_FEATURE_SH_NOFORK
bool "Run 'nofork' applets directly"
default n
- depends on BUSYBOX_ASH || BUSYBOX_HUSH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
help
This option causes busybox shells to not execute typical
fork/exec/wait sequence, but call <applet>_main directly,
@@ -551,14 +576,14 @@ config BUSYBOX_FEATURE_SH_NOFORK
config BUSYBOX_FEATURE_SH_READ_FRAC
bool "read -t N.NNN support (+110 bytes)"
default y
- depends on BUSYBOX_ASH || BUSYBOX_HUSH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
help
Enable support for fractional second timeout in read builtin.
config BUSYBOX_FEATURE_SH_HISTFILESIZE
bool "Use $HISTFILESIZE"
default y
- depends on BUSYBOX_ASH || BUSYBOX_HUSH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
help
This option makes busybox shells to use $HISTFILESIZE variable
to set shell history size. Note that its max value is capped
@@ -567,7 +592,7 @@ config BUSYBOX_FEATURE_SH_HISTFILESIZE
config BUSYBOX_FEATURE_SH_EMBEDDED_SCRIPTS
bool "Embed scripts in the binary"
default y
- depends on BUSYBOX_ASH || BUSYBOX_HUSH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
+ depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
help
Allow scripts to be compressed and embedded in the busybox
binary. The scripts should be placed in the 'embed' directory
diff --git a/config/busybox/sysklogd/Config.in b/config/busybox/sysklogd/Config.in
index 20275755c..0d8b63557 100644
--- a/config/busybox/sysklogd/Config.in
+++ b/config/busybox/sysklogd/Config.in
@@ -23,7 +23,6 @@ config BUSYBOX_FEATURE_KLOGD_KLOGCTL
bool "Use the klogctl() interface"
default y
depends on BUSYBOX_KLOGD
- select BUSYBOX_PLATFORM_LINUX
help
The klogd applet supports two interfaces for reading
kernel messages. Linux provides the klogctl() interface
@@ -116,6 +115,14 @@ config BUSYBOX_FEATURE_SYSLOGD_CFG
help
Supports restricted syslogd config. See docs/syslog.conf.txt
+config BUSYBOX_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS
+ bool "Include milliseconds in timestamps"
+ default n
+ depends on BUSYBOX_SYSLOGD
+ help
+ Includes milliseconds (HH:MM:SS.mmm) in timestamp when
+ timestamps are added.
+
config BUSYBOX_FEATURE_SYSLOGD_READ_BUFFER_SIZE
int "Read buffer size in bytes"
default 256
@@ -153,7 +160,6 @@ config BUSYBOX_FEATURE_KMSG_SYSLOG
bool "Linux kernel printk buffer support"
default y
depends on BUSYBOX_SYSLOGD
- select BUSYBOX_PLATFORM_LINUX
help
When you enable this feature, the syslogd utility will
write system log message to the Linux kernel's printk buffer.
diff --git a/config/busybox/util-linux/Config.in b/config/busybox/util-linux/Config.in
index ec053a39c..e0adb9ea0 100644
--- a/config/busybox/util-linux/Config.in
+++ b/config/busybox/util-linux/Config.in
@@ -9,7 +9,6 @@ menu "Linux System Utilities"
config BUSYBOX_ACPID
bool "acpid (9 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
acpid listens to ACPI events coming either in textual form from
/proc/acpi/event (though it is marked deprecated it is still widely
@@ -31,13 +30,11 @@ config BUSYBOX_FEATURE_ACPID_COMPAT
config BUSYBOX_BLKDISCARD
bool "blkdiscard (4.3 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
blkdiscard discards sectors on a given device.
config BUSYBOX_BLKID
bool "blkid (12 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
select BUSYBOX_VOLUMEID
help
Lists labels and UUIDs of all filesystems.
@@ -67,7 +64,6 @@ config BUSYBOX_CHRT
config BUSYBOX_DMESG
bool "dmesg (3.7 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
dmesg is used to examine or control the kernel ring buffer. When the
Linux kernel prints messages to the system log, they are stored in
@@ -100,7 +96,6 @@ config BUSYBOX_FEATURE_DMESG_PRETTY
config BUSYBOX_EJECT
bool "eject (4 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Used to eject cdroms. (defaults to /dev/cdrom)
@@ -119,13 +114,11 @@ config BUSYBOX_FALLOCATE
config BUSYBOX_FATATTR
bool "fatattr (1.9 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
fatattr lists or changes the file attributes on a fat file system.
config BUSYBOX_FBSET
bool "fbset (5.9 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
fbset is used to show or change the settings of a Linux frame buffer
device. The frame buffer device provides a simple and unique
@@ -153,13 +146,11 @@ config BUSYBOX_FEATURE_FBSET_READMODE
config BUSYBOX_FDFORMAT
bool "fdformat (4.4 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
fdformat is used to low-level format a floppy disk.
config BUSYBOX_FDISK
bool "fdisk (37 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
The fdisk utility is used to divide hard disks into one or more
logical disks, which are generally called partitions. This utility
@@ -233,7 +224,6 @@ config BUSYBOX_FEATURE_FDISK_ADVANCED
config BUSYBOX_FINDFS
bool "findfs (12 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
select BUSYBOX_VOLUMEID
help
Prints the name of a filesystem with given label or UUID.
@@ -245,7 +235,6 @@ config BUSYBOX_FLOCK
config BUSYBOX_FDFLUSH
bool "fdflush (1.3 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
fdflush is only needed when changing media on slightly-broken
removable media drives. It is used to make Linux believe that a
@@ -258,7 +247,6 @@ config BUSYBOX_FDFLUSH
config BUSYBOX_FREERAMDISK
bool "freeramdisk (1.3 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Linux allows you to create ramdisks. This utility allows you to
delete them and completely free all memory that was used for the
@@ -279,14 +267,12 @@ config BUSYBOX_FSCK_MINIX
config BUSYBOX_FSFREEZE
bool "fsfreeze (3.5 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
select BUSYBOX_LONG_OPTS
help
Halt new accesses and flush writes on a mounted filesystem.
config BUSYBOX_FSTRIM
bool "fstrim (4.4 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Discard unused blocks on a mounted filesystem.
config BUSYBOX_GETOPT
@@ -313,16 +299,6 @@ config BUSYBOX_HEXDUMP
The hexdump utility is used to display binary data in a readable
way that is comparable to the output from most hex editors.
-config BUSYBOX_FEATURE_HEXDUMP_REVERSE
- bool "Support -R, reverse of 'hexdump -Cv'"
- default y
- depends on BUSYBOX_HEXDUMP
- help
- The hexdump utility is used to display binary data in an ascii
- readable way. This option creates binary data from an ascii input.
- NB: this option is non-standard. It's unwise to use it in scripts
- aimed to be portable.
-
config BUSYBOX_HD
bool "hd (7.8 kb)"
default y
@@ -337,7 +313,6 @@ config BUSYBOX_XXD
config BUSYBOX_HWCLOCK
bool "hwclock (5.8 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
The hwclock utility is used to read and set the hardware clock
on a system. This is primarily used to set the current time on
@@ -358,7 +333,6 @@ config BUSYBOX_FEATURE_HWCLOCK_ADJTIME_FHS
config BUSYBOX_IONICE
bool "ionice (3.8 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Set/set program io scheduling class and priority
Requires kernel >= 2.6.13
@@ -372,7 +346,6 @@ config BUSYBOX_IPCRM
config BUSYBOX_IPCS
bool "ipcs (11 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
The ipcs utility is used to provide information on the currently
allocated System V interprocess (IPC) objects in the system.
@@ -393,7 +366,6 @@ config BUSYBOX_FEATURE_LAST_FANCY
config BUSYBOX_LOSETUP
bool "losetup (5.5 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
losetup is used to associate or detach a loop device with a regular
file or block device, and to query the status of a loop device. This
@@ -401,7 +373,6 @@ config BUSYBOX_LOSETUP
config BUSYBOX_LSPCI
bool "lspci (6.3 kb)"
default y
- #select PLATFORM_LINUX
help
lspci is a utility for displaying information about PCI buses in the
system and devices connected to them.
@@ -410,7 +381,6 @@ config BUSYBOX_LSPCI
config BUSYBOX_LSUSB
bool "lsusb (4.2 kb)"
default y
- #select PLATFORM_LINUX
help
lsusb is a utility for displaying information about USB buses in the
system and devices connected to them.
@@ -419,7 +389,6 @@ config BUSYBOX_LSUSB
config BUSYBOX_MDEV
bool "mdev (17 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
mdev is a mini-udev implementation for dynamically creating device
nodes in the /dev directory.
@@ -505,20 +474,17 @@ config BUSYBOX_FEATURE_MESG_ENABLE_ONLY_GROUP
config BUSYBOX_MKE2FS
bool "mke2fs (10 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Utility to create EXT2 filesystems.
config BUSYBOX_MKFS_EXT2
bool "mkfs.ext2 (10 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Alias to "mke2fs".
config BUSYBOX_MKFS_MINIX
bool "mkfs.minix (10 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
The minix filesystem is a nice, small, compact, read-write filesystem
with little overhead. If you wish to be able to create minix
@@ -535,21 +501,18 @@ config BUSYBOX_FEATURE_MINIX2
config BUSYBOX_MKFS_REISER
bool "mkfs_reiser"
default n
- select BUSYBOX_PLATFORM_LINUX
help
Utility to create ReiserFS filesystems.
Note: this applet needs a lot of testing and polishing.
config BUSYBOX_MKDOSFS
bool "mkdosfs (7.2 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Utility to create FAT32 filesystems.
config BUSYBOX_MKFS_VFAT
bool "mkfs.vfat (7.2 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Alias to "mkdosfs".
config BUSYBOX_MKSWAP
@@ -583,7 +546,6 @@ config BUSYBOX_MORE
config BUSYBOX_MOUNT
bool "mount (23 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
All files and filesystems in Unix are arranged into one big directory
tree. The 'mount' utility is used to graft a filesystem onto a
@@ -685,7 +647,7 @@ config BUSYBOX_NOLOGIN
config BUSYBOX_NOLOGIN_DEPENDENCIES
bool "Enable dependencies for nologin"
- default y
+ default n # Y default makes it harder to select single-applet test
depends on BUSYBOX_NOLOGIN
select BUSYBOX_CAT
select BUSYBOX_ECHO
@@ -699,13 +661,11 @@ config BUSYBOX_NOLOGIN_DEPENDENCIES
config BUSYBOX_NSENTER
bool "nsenter (6.5 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Run program with namespaces of other processes.
config BUSYBOX_PIVOT_ROOT
bool "pivot_root (1.1 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
The pivot_root utility swaps the mount points for the root filesystem
with some other mounted filesystem. This allows you to do all sorts
@@ -730,7 +690,6 @@ config BUSYBOX_RDEV
config BUSYBOX_READPROFILE
bool "readprofile (7.1 kb)"
default y
- #select PLATFORM_LINUX
help
This allows you to parse /proc/profile for basic profiling.
config BUSYBOX_RENICE
@@ -747,7 +706,6 @@ config BUSYBOX_REV
config BUSYBOX_RTCWAKE
bool "rtcwake (6.8 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Enter a system sleep state until specified wakeup time.
config BUSYBOX_SCRIPT
@@ -764,7 +722,6 @@ config BUSYBOX_SCRIPTREPLAY
config BUSYBOX_SETARCH
bool "setarch (3.6 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
The linux32 utility is used to create a 32bit environment for the
specified program (usually a shell). It only makes sense to have
@@ -774,20 +731,17 @@ config BUSYBOX_SETARCH
config BUSYBOX_LINUX32
bool "linux32 (3.3 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Alias to "setarch linux32".
config BUSYBOX_LINUX64
bool "linux64 (3.3 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Alias to "setarch linux64".
config BUSYBOX_SETPRIV
bool "setpriv (6.6 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
select BUSYBOX_LONG_OPTS
help
Run a program with different Linux privilege settings.
@@ -828,7 +782,6 @@ config BUSYBOX_SETSID
config BUSYBOX_SWAPON
bool "swapon (15 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
Once you have created some swap space using 'mkswap', you also need
to enable your swap space with the 'swapon' utility. The 'swapoff'
@@ -855,7 +808,6 @@ config BUSYBOX_FEATURE_SWAPON_PRI
config BUSYBOX_SWAPOFF
bool "swapoff (14 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
config BUSYBOX_FEATURE_SWAPONOFF_LABEL
bool "Support specifying devices by label or UUID"
@@ -868,7 +820,6 @@ config BUSYBOX_FEATURE_SWAPONOFF_LABEL
config BUSYBOX_SWITCH_ROOT
bool "switch_root (5.5 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
The switch_root utility is used from initramfs to select a new
root device. Under initramfs, you have to use this instead of
@@ -900,17 +851,23 @@ config BUSYBOX_FEATURE_TASKSET_FANCY
Needed for machines with more than 32-64 CPUs:
affinity parameter 0xHHHHHHHHHHHHHHHHHHHH can be arbitrarily long
in this case. Otherwise, it is limited to sizeof(long).
+
+config BUSYBOX_FEATURE_TASKSET_CPULIST
+ bool "CPU list support (-c option)"
+ default y
+ depends on BUSYBOX_FEATURE_TASKSET_FANCY
+ help
+ Add support for taking/printing affinity as CPU list when '-c'
+ option is used. For example, it prints '0-3,7' instead of mask '8f'.
config BUSYBOX_UEVENT
bool "uevent (3.1 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
uevent is a netlink listener for kernel uevent notifications
sent via netlink. It is usually used for dynamic device creation.
config BUSYBOX_UMOUNT
bool "umount (5.1 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
When you want to remove a mounted filesystem from its current mount
point, for example when you are shutting down the system, the
@@ -927,7 +884,6 @@ config BUSYBOX_UNSHARE
bool "unshare (7.2 kb)"
default y
depends on !BUSYBOX_NOMMU
- select BUSYBOX_PLATFORM_LINUX
select BUSYBOX_LONG_OPTS
help
Run program with some namespaces unshared from parent.
diff --git a/config/busybox/util-linux/volume_id/Config.in b/config/busybox/util-linux/volume_id/Config.in
index f71425874..828482d54 100644
--- a/config/busybox/util-linux/volume_id/Config.in
+++ b/config/busybox/util-linux/volume_id/Config.in
@@ -23,6 +23,12 @@ config BUSYBOX_FEATURE_VOLUMEID_CRAMFS
bool "cramfs filesystem"
default y
depends on BUSYBOX_VOLUMEID
+config BUSYBOX_FEATURE_VOLUMEID_EROFS
+ bool "erofs filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+ help
+ Erofs is a compressed readonly filesystem for Linux.
config BUSYBOX_FEATURE_VOLUMEID_EXFAT
bool "exFAT filesystem"
default y
diff --git a/config/hostapd/defconfig b/config/hostapd/defconfig
index d05e1774b..fe0f3a959 100644
--- a/config/hostapd/defconfig
+++ b/config/hostapd/defconfig
@@ -44,15 +44,9 @@ CONFIG_LIBNL32=y
# Driver interface for no driver (e.g., RADIUS server only)
CONFIG_DRIVER_NONE=y
-# IEEE 802.11F/IAPP
-CONFIG_IAPP=y
-
# WPA2/IEEE 802.11i RSN pre-authentication
CONFIG_RSN_PREAUTH=y
-# IEEE 802.11w (management frame protection)
-CONFIG_IEEE80211W=y
-
# Support Operating Channel Validation
#CONFIG_OCV=y
@@ -154,9 +148,6 @@ CONFIG_IEEE80211R=y
# the IEEE 802.11 Management capability (e.g., FreeBSD/net80211)
#CONFIG_DRIVER_RADIUS_ACL=y
-# IEEE 802.11n (High Throughput) support
-CONFIG_IEEE80211N=y
-
# Wireless Network Management (IEEE Std 802.11v-2011)
# Note: This is experimental and not complete implementation.
CONFIG_WNM=y
@@ -355,12 +346,12 @@ CONFIG_FST=y
# * ath10k
#
# For more details refer to:
-# http://wireless.kernel.org/en/users/Documentation/acs
+# https://wireless.wiki.kernel.org/en/users/documentation/acs
#
CONFIG_ACS=y
# Multiband Operation support
-# These extentions facilitate efficient use of multiple frequency bands
+# These extensions facilitate efficient use of multiple frequency bands
# available to the AP and the devices that may associate with it.
#CONFIG_MBO=y
@@ -386,12 +377,40 @@ CONFIG_OWE=y
# Airtime policy support
#CONFIG_AIRTIME_POLICY=y
-# Device Provisioning Protocol (DPP)
-CONFIG_DPP=y
-
# Simultaneous Authentication of Equals (SAE)
CONFIG_SAE=y
+
# Override default value for the wpa_disable_eapol_key_retries configuration
# parameter. See that parameter in hostapd.conf for more details.
#CFLAGS += -DDEFAULT_WPA_DISABLE_EAPOL_KEY_RETRIES=1
+
+# Wired equivalent privacy (WEP)
+# WEP is an obsolete cryptographic data confidentiality algorithm that is not
+# considered secure. It should not be used for anything anymore. The
+# functionality needed to use WEP is available in the current hostapd
+# release under this optional build parameter. This functionality is subject to
+# be completely removed in a future release.
+#CONFIG_WEP=y
+
+# Remove all TKIP functionality
+# TKIP is an old cryptographic data confidentiality algorithm that is not
+# considered secure. It should not be used anymore. For now, the default hostapd
+# build includes this to allow mixed mode WPA+WPA2 networks to be enabled, but
+# that functionality is subject to be removed in the future.
+CONFIG_NO_TKIP=y
+
+# Pre-Association Security Negotiation (PASN)
+# Experimental implementation based on IEEE P802.11z/D2.6 and the protocol
+# design is still subject to change. As such, this should not yet be enabled in
+# production use.
+# This requires CONFIG_IEEE80211W=y to be enabled, too.
+#CONFIG_PASN=y
+
+# Device Provisioning Protocol (DPP) (also known as Wi-Fi Easy Connect)
+CONFIG_DPP=y
+# DPP version 2 support
+CONFIG_DPP2=y
+# DPP version 3 support (experimental and still changing; do not enable for
+# production use)
+#CONFIG_DPP3=y
diff --git a/config/images/barebox_partitions.config b/config/images/barebox_partitions.config
index e60957e3b..450e055f2 100644
--- a/config/images/barebox_partitions.config
+++ b/config/images/barebox_partitions.config
@@ -1,5 +1,6 @@
partition barebox {
in-partition-table = false
- image = "barebox-image"
+ image = "@BAREBOX_IMAGE@"
+ holes = {"(440; 1024)"}
size = 2M
}
diff --git a/config/images/grub.config b/config/images/grub.config
index fa33bf75d..50b8771e2 100644
--- a/config/images/grub.config
+++ b/config/images/grub.config
@@ -1,6 +1,7 @@
image grub-stage1 {
file {
name = "@GRUB_STAGE_DIR@/stage1"
+ holes = {"(440; 512)"}
}
}
image grub-stage2 {
diff --git a/config/images/grub_partitions.config b/config/images/grub_partitions.config
index 931f4cd57..dbde87f36 100644
--- a/config/images/grub_partitions.config
+++ b/config/images/grub_partitions.config
@@ -1,10 +1,10 @@
partition stage1 {
- size = 512B
+ size = 512
in-partition-table = false
image = "grub-stage1"
}
partition stage2 {
- offset = 512B
+ offset = 512
in-partition-table = false
image = "grub-stage2"
}
diff --git a/config/images/hd.config b/config/images/hd.config
index 8a7b0146f..0ae3c27b4 100644
--- a/config/images/hd.config
+++ b/config/images/hd.config
@@ -4,7 +4,8 @@
image @IMAGE@ {
hdimage {
align = 1M
- gpt = @GPT@
+ partition-table-type = "@PARTITION_TABLE_TYPE@"
+ gpt-location = "@GPT_LOCATION@"
}
@BOOTLOADER_PARTITIONS@
partition root {
diff --git a/config/images/rauc.config b/config/images/rauc.config
index 0c824f00e..4a6b34dee 100644
--- a/config/images/rauc.config
+++ b/config/images/rauc.config
@@ -1,6 +1,7 @@
image @IMAGE@ {
rauc {
file root.tar.gz { image = "root.tgz" }
+ @RAUC_HOOK_FILE@
manifest = "
[update]
compatible=@RAUC_BUNDLE_COMPATIBLE@
@@ -8,11 +9,18 @@ image @IMAGE@ {
build=@RAUC_BUNDLE_BUILD@
description=@RAUC_BUNDLE_DESCRIPTION@
+ [bundle]
+ format=@RAUC_BUNDLE_FORMAT@
+
+ [hooks]
+ @RAUC_HOOK_MANIFEST@
+
[image.rootfs]
filename=root.tar.gz
"
cert = "@RAUC_CERT@"
key = "@RAUC_KEY@"
keyring = "@RAUC_KEYRING@"
+ intermediate = @RAUC_INTERMEDIATE@
}
}
diff --git a/config/meson/cairo-cross-file.meson b/config/meson/cairo-cross-file.meson
new file mode 100644
index 000000000..a9c48379b
--- /dev/null
+++ b/config/meson/cairo-cross-file.meson
@@ -0,0 +1,2 @@
+[properties]
+ipc_rmid_deferred_release = true
diff --git a/config/meson/cross-file.meson.in b/config/meson/cross-file.meson.in
index b1ab93f96..7f13a8692 100644
--- a/config/meson/cross-file.meson.in
+++ b/config/meson/cross-file.meson.in
@@ -1,9 +1,14 @@
+[constants]
+platformdir = '@PTXDIST_PLATFORMDIR@/'
+
[binaries]
c = '@CC@'
cpp = '@CXX@'
+fortran = '@FC@'
ar = '@AR@'
strip = '@STRIP@'
-pkgconfig = '@PKG_CONFIG@'
+pkg-config = '@PKG_CONFIG@'
+rust = @RUSTC@
[properties]
needs_exe_wrapper = true
diff --git a/config/meson/glib-cross-file.meson b/config/meson/glib-cross-file.meson
new file mode 100644
index 000000000..9bf794eb0
--- /dev/null
+++ b/config/meson/glib-cross-file.meson
@@ -0,0 +1,9 @@
+[properties]
+have_proc_self_cmdline = true
+have_c99_vsnprintf = true
+have_c99_snprintf = true
+have_unix98_printf = true
+va_val_copy = true
+
+[binaries]
+env = '/usr/bin/env'
diff --git a/config/meson/mesalib-cross-file.meson b/config/meson/mesalib-cross-file.meson
new file mode 100644
index 000000000..e3353406b
--- /dev/null
+++ b/config/meson/mesalib-cross-file.meson
@@ -0,0 +1,2 @@
+[binaries]
+llvm-config = 'llvm-config'
diff --git a/config/meson/python3-scipy-cross-file.meson b/config/meson/python3-scipy-cross-file.meson
new file mode 100644
index 000000000..360b29daf
--- /dev/null
+++ b/config/meson/python3-scipy-cross-file.meson
@@ -0,0 +1,2 @@
+[properties]
+numpy-include-dir = platformdir + 'sysroot-target/usr/lib/python3.11/site-packages/numpy/core/include'
diff --git a/config/qt6/linux-ptx-g++/qmake.conf b/config/qt6/linux-ptx-g++/qmake.conf
new file mode 100644
index 000000000..9ac2ff81d
--- /dev/null
+++ b/config/qt6/linux-ptx-g++/qmake.conf
@@ -0,0 +1,26 @@
+#
+# qmake configuration for linux-ptx-g++
+#
+
+MAKEFILE_GENERATOR = UNIX
+CONFIG += incremental
+QMAKE_INCREMENTAL_STYLE = sublib
+
+include(../common/linux.conf)
+include(../common/gcc-base-unix.conf)
+include(../common/g++-unix.conf)
+
+# modifications to g++-base.conf
+QMAKE_CC = @COMPILER_PREFIX@gcc
+QMAKE_LINK_C = $$QMAKE_CC
+QMAKE_LINK_C_SHLIB = $$QMAKE_CC
+QMAKE_CXX = @COMPILER_PREFIX@g++
+QMAKE_LINK = $$QMAKE_CXX
+QMAKE_LINK_SHLIB = $$QMAKE_CXX
+
+# modifications to linux.conf
+QMAKE_AR = @COMPILER_PREFIX@ar cqs
+QMAKE_OBJCOPY = @COMPILER_PREFIX@objcopy
+QMAKE_NM = @COMPILER_PREFIX@nm -P
+
+load(qt_config)
diff --git a/config/qt6/linux-ptx-g++/qplatformdefs.h b/config/qt6/linux-ptx-g++/qplatformdefs.h
new file mode 100644
index 000000000..05c77d16f
--- /dev/null
+++ b/config/qt6/linux-ptx-g++/qplatformdefs.h
@@ -0,0 +1,2 @@
+
+#include "../linux-g++/qplatformdefs.h"
diff --git a/config/report/license-compliance-txt/body.txt b/config/report/license-compliance-txt/body.txt
new file mode 100644
index 000000000..ab120d298
--- /dev/null
+++ b/config/report/license-compliance-txt/body.txt
@@ -0,0 +1,11 @@
+{% from "package.txt" import package %}
+{{- raise("Invalid image name '" + target + "'!") if not target in images }}
+{{- raise("Image '" + target + "' has no packages!") if not images.get(target).pkgs }}
+{%- if target %}
+{%- set pkgs = images.get(target).pkgs|sort %}
+{% else %}
+{%- set pkgs = packages.keys()|sort %}
+{% endif %}
+{%- for pkg in pkgs if not packages.get(pkg).licenses in ('ignore', 'proprietary') +%}
+{{- package(packages.get(pkg)) }}
+{%- endfor %}
diff --git a/config/report/license-compliance-txt/footer.txt b/config/report/license-compliance-txt/footer.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/config/report/license-compliance-txt/footer.txt
diff --git a/config/report/license-compliance-txt/generator b/config/report/license-compliance-txt/generator
new file mode 100644
index 000000000..b9bca019c
--- /dev/null
+++ b/config/report/license-compliance-txt/generator
@@ -0,0 +1 @@
+plain
diff --git a/config/report/license-compliance-txt/header.txt b/config/report/license-compliance-txt/header.txt
new file mode 100644
index 000000000..cf3f712c8
--- /dev/null
+++ b/config/report/license-compliance-txt/header.txt
@@ -0,0 +1,15 @@
+License Report
+==============
+
+{{ bsp.vendor }}-{{ bsp.project }}{{ bsp.get('project-version') }}
+
+created {{ now }}
+
+!Attention!
+-----------
+
+This list of licenses is automatically generated and asserts no claims to
+completeness or correctness. It is not legally binding, and comes without
+warranty of any kind. We advise a manual counter-check before
+publication or legal use.
+
diff --git a/config/report/license-compliance-txt/package.txt b/config/report/license-compliance-txt/package.txt
new file mode 100644
index 000000000..e7f465c37
--- /dev/null
+++ b/config/report/license-compliance-txt/package.txt
@@ -0,0 +1,15 @@
+{% macro package(pkg) %}
+{{ build_chapter(pkg) }}
+{{ build_chapter(pkg)|regex_replace('.', '-') }}
+
+Package: {{ pkg.name }} {{ pkg.get('version', '') }}
+License: {{ pkg.licenses }}
+{% if pkg.get('license-files') %}
+{%- for name, license in pkg.get('license-files').items() %}
+{{ name }}
+{{ name|regex_replace('.', '~') }}
+
+{{ source_file(license.file) }}
+{%- endfor %}
+{%- endif %}
+{% endmacro %}
diff --git a/config/report/license-compliance/body.tex b/config/report/license-compliance/body.tex
new file mode 100644
index 000000000..ce9eb4860
--- /dev/null
+++ b/config/report/license-compliance/body.tex
@@ -0,0 +1,11 @@
+{% from "package.tex" import package %}
+{{ raise("Invalid image name '" + target + "'!") if not target in images }}
+{{ raise("Image '" + target + "' has no packages!") if not images.get(target).pkgs }}
+{% if target %}
+{% set pkgs = images.get(target).pkgs|sort %}
+{% else %}
+{% set pkgs = packages.keys()|sort %}
+{% endif %}
+{%- for pkg in pkgs if not packages.get(pkg).licenses in ('ignore', 'proprietary') +%}
+{{- package(packages.get(pkg)) }}
+{%- endfor %}
diff --git a/config/report/license-compliance/footer.tex b/config/report/license-compliance/footer.tex
new file mode 100644
index 000000000..d4bf52671
--- /dev/null
+++ b/config/report/license-compliance/footer.tex
@@ -0,0 +1,2 @@
+\end{document}
+
diff --git a/config/report/license-compliance/generator b/config/report/license-compliance/generator
new file mode 100644
index 000000000..dba411b45
--- /dev/null
+++ b/config/report/license-compliance/generator
@@ -0,0 +1 @@
+latex
diff --git a/config/report/license-compliance/header.tex b/config/report/license-compliance/header.tex
new file mode 100644
index 000000000..cac7c0dd6
--- /dev/null
+++ b/config/report/license-compliance/header.tex
@@ -0,0 +1,52 @@
+\documentclass[pointlessnumbers,bibtotocnumbered,openany,DIV14,paper=a4,twoside=false,listof=totoc]{scrbook}
+
+\usepackage{graphicx}
+\usepackage[xetex]{hyperref}
+\usepackage{scrtime}
+\usepackage{tikz}
+\usepackage{adjustbox}
+\usepackage{spverbatim}
+\usepackage{pdfpages}
+\usepackage{tocloft}
+\hypersetup{colorlinks=true,linkcolor=blue,urlcolor=blue}
+
+%% Something like this may be needed depending on the package list
+%\usepackage[CJK]{ucharclasses}
+%\usepackage{fontspec}
+%\newfontfamily\mycjk{VL-Gothic-Regular}
+%\setTransitionsForCJK{\mycjk}{}
+
+\begin{document}
+
+\thispagestyle{empty}
+\begin{titlepage}
+\null
+\vfill
+\begin{center}
+
+\includegraphics[width=4cm]{ {{- find_file("logo.png") }} }
+\vskip 1cm
+{\Huge \textbf{Open Source Software Licenses}}
+{\huge \vfill for project \vfill {{ bsp.vendor }}-{{ bsp.project }}{{ bsp.get('project-version') }}}
+{\LARGE \vfill created \today, \thistime}
+
+\vskip 5cm
+
+{\huge !Attention!}
+\end{center}
+\vskip 0.5cm
+
+This list of licenses is automatically generated and asserts no claims to
+completeness or correctness. It is not legally binding, and comes without
+warranty of any kind. We advise a manual counter-check before
+publication or legal use.
+\vfill
+\vfill
+\end{titlepage}
+
+\phantomsection
+\pdfbookmark[1]{Contents}{toc}
+\setlength{\cftchapnumwidth}{\widthof{\large\bfseries{}888}}
+\tableofcontents
+
+
diff --git a/config/report/license-compliance/logo.png b/config/report/license-compliance/logo.png
new file mode 120000
index 000000000..a7e99e642
--- /dev/null
+++ b/config/report/license-compliance/logo.png
@@ -0,0 +1 @@
+../../../doc/_static/logo.png \ No newline at end of file
diff --git a/config/report/license-compliance/package.tex b/config/report/license-compliance/package.tex
new file mode 100644
index 000000000..691a6db6a
--- /dev/null
+++ b/config/report/license-compliance/package.tex
@@ -0,0 +1,23 @@
+{% macro package(pkg) %}
+\chapter{ {{- build_chapter(pkg) }} \label{ {{- pkg.name }}}}
+
+\begin{description}
+\item[Package:] {{ escape(pkg.name) }} {{ escape(pkg.get('version', '')) }}
+\item[License:] {{ escape(pkg.licenses) }}
+\end{description}
+
+{%- if pkg.get('license-files') %}
+{%- for name, license in pkg.get('license-files').items() %}
+\section{ {{- escape(name)}}}
+{%- if name.endswith('.pdf') %}
+\includepdf[pages=-]{ {{- license.file}}}
+{% else %}
+\begin{small}
+\begin{spverbatim}
+{{ source_file(license.file) }}
+\end{spverbatim}
+\end{small}
+{% endif %}
+{%- endfor %}
+{% endif %}
+{% endmacro %}
diff --git a/config/report/license-report/body.tex b/config/report/license-report/body.tex
new file mode 100644
index 000000000..7b03f7cfa
--- /dev/null
+++ b/config/report/license-report/body.tex
@@ -0,0 +1,12 @@
+{% from "package.tex" import package %}
+{{ raise("Invalid image name '" + target + "'!") if not target in images }}
+{{ raise("Image '" + target + "' has no packages!") if not images.get(target).pkgs }}
+{% if target %}
+{% set pkgs = images.get(target).pkgs|sort %}
+{% else %}
+{% set pkgs = packages.keys()|sort %}
+{% endif %}
+{{ init_dot(packages, pkgs) }}
+{%- for pkg in pkgs if not packages.get(pkg).licenses in ('ignore') +%}
+{{- package(packages.get(pkg)) }}
+{%- endfor %}
diff --git a/config/report/license-report/footer.tex b/config/report/license-report/footer.tex
new file mode 100644
index 000000000..106911b42
--- /dev/null
+++ b/config/report/license-report/footer.tex
@@ -0,0 +1,37 @@
+\appendix
+\chapter{Flags\label{Flags}}
+Note: This list of tags and the packages marked with them is meant
+as a starting point for further work. It is by no means complete.
+There are most likely packages that e.g. require attribution but
+are missing the corresponding flag.
+
+For individual packages, adding the flag name to
+\textless{}PKG\textgreater\_LICENSE
+sets the corresponding flag. To add flags to groups of packages,
+e.g. based on the package license,
+\emph{ptxd\_make\_world\_license\_expand()} can be overwritten and
+expanded.
+\section{nosource\label{nosource}}
+For packages marked with the {\it nosource} flag, the source
+archive(s) will not be part of the license compliance package.
+\section{nopatches\label{nopatches}}
+For packages marked with the {\it nopatches} flag, the patches
+for this package will not be part of the license compliance
+package.
+\section{attribution\label{attribution}}
+Packages marked with the {\it attribution} flag require some sort
+of attribution. Please refer to the package license for further
+details.
+\section{choice\label{choice}}
+Packages marked with the {\it choice} flag require the licensee to
+make some kind of license choice. Please refer to the package
+license for further details.
+
+\printindex[attribution]
+\printindex[choice]
+\printindex[nosource]
+\printindex[nopatches]
+
+\listoffigures
+
+\end{document}
diff --git a/config/report/license-report/generator b/config/report/license-report/generator
new file mode 100644
index 000000000..dba411b45
--- /dev/null
+++ b/config/report/license-report/generator
@@ -0,0 +1 @@
+latex
diff --git a/config/report/license-report/header.tex b/config/report/license-report/header.tex
new file mode 100644
index 000000000..8b271cbe4
--- /dev/null
+++ b/config/report/license-report/header.tex
@@ -0,0 +1,57 @@
+\documentclass[pointlessnumbers,bibtotocnumbered,openany,DIV14,paper=a4,twoside=false,listof=totoc]{scrbook}
+
+\usepackage{graphicx}
+\usepackage{imakeidx}
+\usepackage[xetex]{hyperref}
+\usepackage{scrtime}
+\usepackage{tikz}
+\usepackage{adjustbox}
+\usepackage{spverbatim}
+\usepackage{pdfpages}
+\usepackage{tocloft}
+\usepackage{placeins}
+\hypersetup{colorlinks=true,linkcolor=blue,urlcolor=blue}
+
+%% Something like this may be needed depending on the package list
+%\usepackage[CJK]{ucharclasses}
+%\usepackage{fontspec}
+%\newfontfamily\mycjk{VL-Gothic-Regular}
+%\setTransitionsForCJK{\mycjk}{}
+
+\makeindex[name=attribution,intoc,title=attribution Package Index]
+\makeindex[name=choice,intoc,title=choice Package Index]
+\makeindex[name=nosource,intoc,title=nosource Package Index]
+\makeindex[name=nopatches,intoc,title=nopatches Package Index]
+
+\begin{document}
+
+\thispagestyle{empty}
+\begin{titlepage}
+\null
+\vfill
+\begin{center}
+
+\includegraphics[width=4cm]{ {{- find_file("logo.png") }} }
+\vskip 1cm
+{\Huge \textbf{License Report}}
+{\huge \vfill for project \vfill {{ bsp.vendor }}-{{ bsp.project }}{{ bsp.get('project-version') }}}
+{\LARGE \vfill created \today, \thistime}
+
+\vskip 5cm
+
+{\huge !Attention!}
+\end{center}
+\vskip 0.5cm
+
+This list of licenses is automatically generated and asserts no claims to
+completeness or correctness. It is not legally binding, and comes without
+warranty of any kind. We advise a manual counter-check before
+publication or legal use.
+\vfill
+\vfill
+\end{titlepage}
+
+\phantomsection
+\pdfbookmark[1]{Contents}{toc}
+\setlength{\cftchapnumwidth}{\widthof{\large\bfseries{}888}}
+\tableofcontents
diff --git a/config/report/license-report/logo.png b/config/report/license-report/logo.png
new file mode 120000
index 000000000..a7e99e642
--- /dev/null
+++ b/config/report/license-report/logo.png
@@ -0,0 +1 @@
+../../../doc/_static/logo.png \ No newline at end of file
diff --git a/config/report/license-report/package.tex b/config/report/license-report/package.tex
new file mode 100644
index 000000000..3f2f94e8a
--- /dev/null
+++ b/config/report/license-report/package.tex
@@ -0,0 +1,40 @@
+{% macro package(pkg) %}
+\chapter{ {{- build_chapter(pkg) }} \label{ {{- pkg.name }}}}
+
+\begin{description}
+\item[Package:] {{ escape(pkg.name) }} {{ escape(pkg.get('version', '')) }}
+\item[License:] {{ escape(pkg.licenses) }}
+{% for flag in pkg.get('license-flags') or [] %}
+\index[{{ flag }}]{ {{- pkg.name }}}
+{%- endfor %}
+\item[Flags:]{% for flag in pkg.get('license-flags') or [] %} \nameref{ {{- escape(flag) }}}{% endfor %}
+\item[URL:]\begin{flushleft}{% for url in pkg.url %}{{ escape(url)}}\\ {% endfor %}\end{flushleft}
+\item[MD5:] {\ttfamily {{ escape(pkg.get('md5', ''))}}}
+\end{description}
+{% if dot(pkg.name) %}
+\begin{figure}[!ht]
+\centering
+\hspace*{-0.5in}\maxsizebox{0.9\paperwidth}{!}{
+{{ dot(pkg.name) }}
+}
+\caption{Dependency tree for {{ escape(pkg.name)}}}
+\label{ {{- pkg.name }}-deps}
+\end{figure}
+\FloatBarrier
+{% endif %}
+
+{%- if pkg.get('license-files') %}
+{%- for name, license in pkg.get('license-files').items() %}
+\section{ {{- escape(name) }}{% if license.guessed %} [automatically found]{% endif %}}
+{%- if name.endswith('.pdf') %}
+\includepdf[pages=-]{ {{- license.file}}}
+{% else %}
+\begin{small}
+\begin{spverbatim}
+{{ source_file(license.file) }}
+\end{spverbatim}
+\end{small}
+{% endif %}
+{%- endfor %}
+{% endif %}
+{% endmacro %}
diff --git a/config/samba/cross-answers b/config/samba/cross-answers
index a66d14843..9f203e08d 100644
--- a/config/samba/cross-answers
+++ b/config/samba/cross-answers
@@ -15,25 +15,26 @@ Checking for HAVE_SHARED_MMAP: OK
Checking for HAVE_MREMAP: OK
Checking for HAVE_INCOHERENT_MMAP: NO
Checking for HAVE_SECURE_MKSTEMP: OK
-Checking for HAVE_IFACE_GETIFADDRS: OK
Checking value of NSIG: "65"
Checking value of _NSIG: "65"
Checking value of SIGRTMAX: "64"
Checking value of SIGRTMIN: "34"
Checking for a 64-bit host to support lmdb: @HAS_64BIT@
Checking whether the WRFILE -keytab is supported: OK
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: "29"
+Checking value of GNUTLS_MAC_AES_CMAC_128: "203"
Checking errno of iconv for illegal multibyte sequence: OK
-Checking for kernel change notify support: OK
-Checking for Linux kernel oplocks: OK
Checking for kernel share modes: OK
Checking whether POSIX capabilities are available: OK
Checking if can we convert from CP850 to UCS-2LE: OK
Checking if can we convert from UTF-8 to UCS-2LE: OK
vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
-Checking whether we can use Linux thread-specific credentials: OK
Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK
+Checking whether we can use Linux thread-specific credentials: OK
Checking whether fcntl locking is available: OK
Checking whether fcntl lock supports open file description locks: OK
+Checking whether fcntl supports flags to send direct I/O availability signals: OK
+Checking whether fcntl supports setting/geting hints: NO
Checking for the maximum value of the 'time_t' type: @HAS_64BIT@
Checking whether the realpath function allows a NULL argument: OK
Checking for ftruncate extend: OK
diff --git a/config/setup/Kconfig b/config/setup/Kconfig
index f3fe2e8e8..f1a31e792 100644
--- a/config/setup/Kconfig
+++ b/config/setup/Kconfig
@@ -153,14 +153,14 @@ config SETUP_GNOMEMIRROR
config SETUP_GNUMIRROR
string
- default "https://ftp.gnu.org/gnu http://ftp.uni-kl.de/pub/gnu"
+ default "https://ftp.gnu.org/gnu https://ftpmirror.gnu.org"
prompt "GNU.org Mirror"
help
For all GNU.org related packages enter an available mirror here.
config SETUP_KERNELMIRROR
string
- default "https://www.kernel.org/pub/linux http://www.linux-mips.org/pub/linux/mips http://mirror.linux.org.au/linux"
+ default "https://mirrors.edge.kernel.org/pub/linux https://www.kernel.org/pub/linux"
prompt "kernel.org Mirror"
help
For all kernel.org related packages enter an available mirror here.
@@ -304,6 +304,12 @@ config SETUP_CHECK_EXIT_ON_ERROR
quite aggressive error checking. Don't turn this on until
you know what you're doing.
+config SETUP_DEPRECATED_FATAL
+ bool "bailout on deprecated variable use"
+ help
+ Terminate on deprecated variable use. Turn this on only
+ if you are going to hunt for deprecated variables.
+
config SETUP_ICECC
bool "use icecc"
depends on !SETUP_CCACHE
diff --git a/config/setup/ptxdistrc.default b/config/setup/ptxdistrc.default
index a3be0a337..f50f23bec 100644
--- a/config/setup/ptxdistrc.default
+++ b/config/setup/ptxdistrc.default
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# PTXdist 2020.10.0
+# PTXdist 2022.09.0
#
#
@@ -12,6 +12,7 @@
#
PTXCONF_SETUP_USER_NAME=""
PTXCONF_SETUP_USER_EMAIL=""
+# end of User
#
# Proxies
@@ -20,11 +21,13 @@ PTXCONF_SETUP_FTP_PROXY=""
PTXCONF_SETUP_HTTP_PROXY=""
PTXCONF_SETUP_HTTPS_PROXY=""
PTXCONF_SETUP_NO_PROXY=""
+# end of Proxies
#
# Source Directories
#
PTXCONF_SETUP_SRCDIR="${PTXDIST_WORKSPACE}/src"
+# end of Source Directories
#
# Source Download
@@ -34,8 +37,8 @@ PTXCONF_SETUP_SRCDIR="${PTXDIST_WORKSPACE}/src"
PTXCONF_SETUP_PTXMIRROR="https://www.pengutronix.de/software/ptxdist/temporary-src"
PTXCONF_SETUP_DEBMIRROR="http://ftp.uni-kl.de/debian http://archive.debian.org/debian"
PTXCONF_SETUP_GNOMEMIRROR="https://download.gnome.org/sources https://ftp-stud.hs-esslingen.de/pub/Mirrors/ftp.gnome.org/sources"
-PTXCONF_SETUP_GNUMIRROR="https://ftp.gnu.org/gnu http://ftp.uni-kl.de/pub/gnu"
-PTXCONF_SETUP_KERNELMIRROR="https://www.kernel.org/pub/linux http://www.linux-mips.org/pub/linux/mips http://mirror.linux.org.au/linux"
+PTXCONF_SETUP_GNUMIRROR="https://ftp.gnu.org/gnu https://ftpmirror.gnu.org"
+PTXCONF_SETUP_KERNELMIRROR="https://mirrors.edge.kernel.org/pub/linux https://www.kernel.org/pub/linux"
PTXCONF_SETUP_PYPIMIRROR="https://files.pythonhosted.org/packages/source"
PTXCONF_SETUP_SFMIRROR="http://downloads.sourceforge.net/sourceforge"
PTXCONF_SETUP_XORGMIRROR="https://ftp.x.org/archive https://xorg.freedesktop.org/releases"
@@ -43,16 +46,19 @@ PTXCONF_SETUP_CHECK_ALWAYS=y
# PTXCONF_SETUP_CHECK_NOTEMPTY is not set
# PTXCONF_SETUP_CHECK_NEVER is not set
PTXCONF_SETUP_CHECK="always"
+# end of Source Download
#
# IPKG Repository
#
PTXCONF_SETUP_IPKG_REPOSITORY="/var/www/ipkg-repository"
+# end of IPKG Repository
#
# Java SDK
#
PTXCONF_SETUP_JAVA_SDK="/usr/lib/jvm/default-java"
+# end of Java SDK
#
# Developer Options
@@ -74,3 +80,4 @@ PTXCONF_SETUP_HOST_CPP="cpp"
PTXCONF_SETUP_HOST_CC="gcc"
PTXCONF_SETUP_HOST_CXX="g++"
PTXCONF_SETUP_HOST_MAKE="make"
+# end of Developer Options
diff --git a/config/wpasupplicant/defconfig b/config/wpasupplicant/defconfig
index 7a30cac77..03bc86a31 100644
--- a/config/wpasupplicant/defconfig
+++ b/config/wpasupplicant/defconfig
@@ -77,7 +77,7 @@ CONFIG_DRIVER_WIRED=y
#CONFIG_DRIVER_MACSEC_QCA=y
# Driver interface for Linux MACsec drivers
-#CONFIG_DRIVER_MACSEC_LINUX=y
+CONFIG_DRIVER_MACSEC_LINUX=y
# Driver interface for the Broadcom RoboSwitch family
#CONFIG_DRIVER_ROBOSWITCH=y
@@ -183,7 +183,7 @@ CONFIG_EAP_IKEV2=y
#CONFIG_EAP_EKE=y
# MACsec
-#CONFIG_MACSEC=y
+CONFIG_MACSEC=y
# PKCS#12 (PFX) support (used to read private key and certificate file from
# a file that usually has extension .p12 or .pfx)
@@ -248,7 +248,7 @@ CONFIG_WPA_CLI_EDIT=y
# Simultaneous Authentication of Equals (SAE), WPA3-Personal
CONFIG_SAE=y
-# Disable scan result processing (ap_mode=1) to save code size by about 1 kB.
+# Disable scan result processing (ap_scan=1) to save code size by about 1 kB.
# This can be used if ap_scan=1 mode is never enabled.
#CONFIG_NO_SCAN_PROCESSING=y
@@ -310,10 +310,6 @@ CONFIG_L2_PACKET=linux
# bridge interfaces (commit 'bridge: respect RFC2863 operational state')').
#CONFIG_NO_LINUX_PACKET_SOCKET_WAR=y
-# IEEE 802.11w (management frame protection), also known as PMF
-# Driver support is also needed for IEEE 802.11w.
-CONFIG_IEEE80211W=y
-
# Support Operating Channel Validation
#CONFIG_OCV=y
@@ -366,7 +362,7 @@ CONFIG_TLSV12=y
#PLATFORMSDKLIB="/opt/Program Files/Microsoft Platform SDK/Lib"
# Add support for new DBus control interface
-# (fi.w1.hostap.wpa_supplicant1)
+# (fi.w1.wpa_supplicant1)
#CONFIG_CTRL_IFACE_DBUS_NEW=y
# Add introspection support for new DBus control interface
@@ -475,11 +471,7 @@ CONFIG_DELAYED_MIC_ERROR_REPORT=y
# Requires glibc 2.25 to build, falls back to /dev/random if unavailable.
CONFIG_GETRANDOM=y
-# IEEE 802.11n (High Throughput) support (mainly for AP mode)
-CONFIG_IEEE80211N=y
-
# IEEE 802.11ac (Very High Throughput) support (mainly for AP mode)
-# (depends on CONFIG_IEEE80211N)
CONFIG_IEEE80211AC=y
# Wireless Network Management (IEEE Std 802.11v-2011)
@@ -538,6 +530,8 @@ CONFIG_AUTOSCAN_PERIODIC=y
#
# External password backend for testing purposes (developer use)
#CONFIG_EXT_PASSWORD_TEST=y
+# File-based backend to read passwords from an external file.
+#CONFIG_EXT_PASSWORD_FILE=y
# Enable Fast Session Transfer (FST)
CONFIG_FST=y
@@ -609,7 +603,5 @@ CONFIG_BGSCAN_LEARN=y
# Experimental implementation of draft-harkins-owe-07.txt
CONFIG_OWE=y
-# Device Provisioning Protocol (DPP)
-# This requires CONFIG_IEEE80211W=y to be enabled, too. (see
-# wpa_supplicant/README-DPP for details)
+# Device Provisioning Protocol (DPP) (also known as Wi-Fi Easy Connect)
CONFIG_DPP=y
diff --git a/configure.ac b/configure.ac
index 781fb4315..70f03f6da 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,11 +2,11 @@ dnl
dnl Process this file with autoconf to produce a configure script.
dnl Most parts of this configure script have been borrowed from quilt.
dnl
-AC_PREREQ(2.59)
+AC_PREREQ([2.69])
AC_INIT([ptxdist],
- m4_esyscmd([scripts/kernel/setlocalversion .tarball-version]),
- [ptxdist@pengutronix.de])
+ [m4_esyscmd([scripts/kernel/setlocalversion .tarball-version])],
+ [ptxdist@pengutronix.de])
AC_CONFIG_AUX_DIR(scripts/autoconf)
AC_CANONICAL_BUILD
AC_CANONICAL_HOST
@@ -161,6 +161,7 @@ GNU_TOOL(mknod, coreutils)
GNU_TOOL(mktemp, coreutils)
GNU_TOOL(mv, coreutils)
GNU_TOOL(readlink, coreutils)
+GNU_TOOL(realpath, coreutils)
GNU_TOOL(rm, coreutils)
GNU_TOOL(rmdir, coreutils)
GNU_TOOL(sort, coreutils)
@@ -171,9 +172,6 @@ GNU_TOOL(tar, tar)
GNU_TOOL(find, findutils)
GNU_TOOL(xargs, findutils)
-dnl Check for egrep
-AC_PROG_EGREP
-
dnl Check for awk
AC_PROG_AWK
AC_PATH_PROGS(AWK, ${AWK},)
@@ -240,11 +238,17 @@ if test -z "$GUNZIP"; then
fi
dnl Check for unzip
-AC_PATH_PROGS(UNZIP, gunzip,, $PATH)
+AC_PATH_PROGS(UNZIP, unzip,, $PATH)
if test -z "$UNZIP"; then
AC_MSG_ERROR([unzip could not be found, please install])
fi
+dnl Check for xz
+AC_PATH_PROGS(XZ, xz,, $PATH)
+if test -z "$XZ"; then
+ AC_MSG_ERROR([xz could not be found, please install])
+fi
+
dnl Check for wget
AC_PATH_PROGS(WGET, wget,, $PATH)
if test -z "$WGET"; then
diff --git a/doc/_static/css/custom.css b/doc/_static/css/custom.css
index 0efa6f92c..27add4426 100644
--- a/doc/_static/css/custom.css
+++ b/doc/_static/css/custom.css
@@ -12,6 +12,11 @@
vertical-align: middle;
}
+/* "View Page Source" link */
+.wy-breadcrumbs .wy-breadcrumbs-aside > a {
+ display: inline-block;
+ padding: 7px;
+}
/* links */
.wy-menu-vertical a:active {
@@ -97,15 +102,20 @@ nav.wy-nav-side #menu-resize .fa:not(:first-child) {
}
.important {
- background-color: #fff4dd !important;
+ background-color: #fff4dd !important;
}
.important .admonition-title {
- background-color: #ff9b00 !important;
+ background-color: #ff9b00 !important;
}
.note {
- background-color: #f2f9e5 !important;
+ background-color: #f2f9e5 !important;
}
.note .admonition-title {
- background-color: #83983e !important;
+ background-color: #83983e !important;
+}
+
+.wy-table-responsive table.word-wrap td,
+.wy-table-responsive table.word-wrap th {
+ white-space: normal;
}
diff --git a/doc/conf.py b/doc/conf.py
index 92594f407..49d19965f 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -17,6 +17,7 @@ import sys
import os
import re
import fileinput
+import subprocess
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
@@ -33,6 +34,13 @@ import fileinput
# ones.
extensions = []
+def add_latex_extensions(app, docname, source):
+ if app.builder.name == 'latex':
+ app.setup_extension('sphinxcontrib.rsvgconverter')
+
+def setup(app):
+ app.connect('source-read', add_latex_extensions)
+
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
@@ -100,11 +108,11 @@ pygments_style = 'none'
numfig = True
-gnu_target = os.getenv("PTXCONF_GNU_TARGET") or "arm-v5te-linux-gnueabi"
+gnu_target = os.getenv("PTXCONF_GNU_TARGET") or "arm-v7a-linux-gnueabihf"
try:
toolchain = os.readlink(os.path.join(os.getenv("PTXDIST_PLATFORMDIR",""), "selected_toolchain")).split("/")
except:
- toolchain = "/opt/OSELAS.Toolchain-2019.09.1/arm-v5te-linux-gnueabi/gcc-9.2.1-glibc-2.30-binutils-2.32-kernel-5.0-sanitized/bin".split("/")
+ toolchain = "/opt/OSELAS.Toolchain-2022.10.0/arm-v7a-linux-gnueabihf/gcc-12.2.1-clang-15.0.2-glibc-2.36-binutils-2.39-kernel-6.0.5-sanitized/bin".split("/")
ptxdistPlatformName = os.getenv("PTXCONF_PLATFORM", "versatilepb")
ptxdistPlatformDir = "platform-" + ptxdistPlatformName
@@ -124,6 +132,15 @@ ptxdistPlatformCollection = "\ "
ptxdistVendorVersion = os.getenv("PTXDIST_VERSION_YEAR") + "." + os.getenv("PTXDIST_VERSION_MONTH") + "." + os.getenv("PTXDIST_VERSION_BUGFIX")
package = "<package>"
+if "ptxdistonly" in tags.tags.keys():
+ ptxdistBSPSource = "The source of the BSP of your choice."
+else:
+ try:
+ url = subprocess.check_output('git -C "${PTXDIST_WORKSPACE}" remote get-url origin', shell=True).decode().strip()
+ ptxdistBSPSource = f"From git: `{url} <{url}>`_"
+ except subprocess.CalledProcessError as e:
+ ptxdistBSPSource = ptxdistBSPName + ".tar.bz2 (or a similar source)" + str(e)
+
sys.path.append(".")
try:
from replace import *
@@ -141,6 +158,7 @@ replace_dict = {
b"|ptxdistHwVendor|": ptxdistHwVendor,
b"|ptxdistHwProduct|": ptxdistHwProduct,
b"|ptxdistBSPName|": ptxdistBSPName,
+ b"|ptxdistBSPSource|": ptxdistBSPSource,
b"|ptxdistBSPRevision|": ptxdistBSPRevision,
b"|ptxdistCompilerName|": ptxdistCompilerName,
b"|ptxdistCompilerVersion|": ptxdistCompilerVersion,
@@ -172,15 +190,16 @@ html_theme = 'sphinx_rtd_theme'
html_static_path = ['_static']
-html_context = {
- 'css_files': ['_static/css/custom.css'],
- 'script_files': [
- '_static/js/jquery-3.1.0.min.js',
- '_static/underscore.js',
- '_static/doctools.js',
- '_static/js/main.js',
- ],
-}
+html_css_files = [
+ 'css/custom.css',
+]
+
+html_js_files = [
+ 'js/jquery-3.1.0.min.js',
+ 'underscore.js',
+ 'doctools.js',
+ 'js/main.js',
+]
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
diff --git a/doc/contributing.rst b/doc/contributing.rst
index e7cbd90e6..63da67802 100644
--- a/doc/contributing.rst
+++ b/doc/contributing.rst
@@ -139,6 +139,13 @@ in mind:
- Run ``ptxdist licensecheck [<pkg>]`` to make sure that the checksum of
pinned-down license files haven't changed.
+ If the license file has changed, look at the difference between the old and
+ the new version of the file (e.g. by comparing the two versioned build
+ folders in ``platform-nnn/build-target/``), and update the package's
+ ``_LICENSE`` variable if necessary.
+ Often the difference is only in the copyright year, but in any case, describe
+ the changes in the license file when sending your patch!
+
Misc
~~~~
@@ -156,6 +163,10 @@ updated of removed after a version bump. Unknown PTXCONF_* variables or
macros used in menu files. There are often typos or the variables was just
removed.
+New packages must also have licensing information in the ``<PKG>_LICENSE``
+and ``<PKG>_LICENSE_FILES`` variables.
+Refer to the section :ref:`licensing_in_packages` for more information.
+
Helper Scripts
--------------
diff --git a/doc/daily_work.inc b/doc/daily_work.inc
index 8fe7739aa..b98adf751 100644
--- a/doc/daily_work.inc
+++ b/doc/daily_work.inc
@@ -1,3 +1,5 @@
+.. _kernel_local_src:
+
Using an External Kernel Source Tree
------------------------------------
@@ -123,6 +125,78 @@ To rebuild the kernel:
package. A ``ptxdist clean kernel`` call will only delete the
symlinks in the build directory, but not clean the kernel compiled files.
+Using the Code Signing Infrastructure with the Kernel Recipe
+------------------------------------------------------------
+
+The kernel recipe can make use of the :ref:`code signing infrastructure
+<code_signing>` to supply cryptographic key material for several kernel features.
+They can be enabled in the `Linux kernel` section of ``ptxdist platformconfig``.
+
+.. important::
+
+ When supplying the kernel with key material, you should also make sure that
+ all necessary crypto algorithms are enabled in the kernel.
+ For example, if your module signing key is signed with an SHA256 hash,
+ you must enable ``CONFIG_CRYPTO_SHA256`` so that the signature can be verified.
+ Otherwise, some older kernels throw a stack trace on boot, and will not load
+ the supplied key material.
+
+.. _kernel_trust_root:
+
+Trusted Root CAs
+~~~~~~~~~~~~~~~~
+
+In some setups additional trusted CAs can be necessary;
+for example, when using EVM, the EVM key must be issued by a certificate that
+is trusted by the kernel.
+
+When ``PTXCONF_KERNEL_CODE_SIGNING`` ("depend on code signing infrastructure")
+is enabled in the platformconfig, and if the code signing provider supplies CA
+certificates in the ``kernel-trusted`` role,
+PTXdist adds the option ``CONFIG_SYSTEM_TRUSTED_KEYS`` to the kernel config to
+add those certificates to the kernel trust root.
+(The code signing provider should use :ref:`cs_append_ca_from_der`,
+:ref:`cs_append_ca_from_pem`, or :ref:`cs_append_ca_from_uri` with the
+``kernel-trusted`` role to supply those certificates.)
+
+Note that the kernel also always adds the module signing key to the trust root
+(see :ref:`kernel_module_signing` below).
+If the EVM key is signed by the module signing key (or if the two keys are the
+same *and* it is self-signed), no additional trust CA is necessary.
+
+.. _kernel_module_signing:
+
+Kernel Module Signing
+~~~~~~~~~~~~~~~~~~~~~
+
+The kernel's build system can generate cryptographic signatures for all
+kernel modules during the build process.
+This can ensure that all modules loaded on the target at runtime have been
+built by a trustworthy source.
+
+If ``PTXCONF_KERNEL_MODULES_SIGN`` ("sign modules") is enabled in the
+platformconfig, PTXdist augments the kernel config with the following config
+options during the `kernel.compile` and `kernel.install` stages:
+
+* ``CONFIG_MODULE_SIG_KEY`` ("File name or PKCS#11 URI of module signing key"):
+ PTXdist supplies the URI from the ``kernel-modules`` role of the configured
+ code signing provider.
+ (The code signing provider should use :ref:`cs_set_uri` to set the URI.)
+
+However, additional settings must also be enabled in the kernel config:
+
+* ``CONFIG_MODULE_SIG=y`` ("Module signature verification"):
+ Enable this option for module signing, and to get access to its sub-options.
+* ``CONFIG_MODULE_SIG_ALL=y`` ("Automatically sign all modules"):
+ Enable this option so that the kernel's build system signs the modules during
+ PTXdist's `kernel.install` stage.
+* Additionally, ``CONFIG_MODULE_SIG_FORCE`` ("Require modules to be validly
+ signed") can be useful so that the kernel refuses loading modules with
+ invalid, untrusted, or no signature.
+
+For the full overview, refer to the `kernel's module signing documentation
+<https://www.kernel.org/doc/html/latest/admin-guide/module-signing.html>`_.
+
Discovering Runtime Dependencies
--------------------------------
@@ -1443,9 +1517,9 @@ A different approach to have a writable ``/var`` without persistency is to use
a so called *overlay filesystem*. This *overlay filesystem* is a transparent
writable layer on top of a read-only filesystem. After the system's start the
*overlay filesystem layer* is empty and all reads will be satisfied by the
-underlaying read-only filesystem. Writes (new files, directories, changes of
+underlying read-only filesystem. Writes (new files, directories, changes of
existing files) are stored in the *overlay filesystem layer* and on the
-next read satisfied by this layer, instead of the underlaying read-only
+next read satisfied by this layer, instead of the underlying read-only
filesystem.
PTXdist supports this use case, by enabling the *overlay* feature for the
diff --git a/doc/dev_add_new_pkgs.rst b/doc/dev_add_new_pkgs.rst
index 0dbc7a266..6b1248563 100644
--- a/doc/dev_add_new_pkgs.rst
+++ b/doc/dev_add_new_pkgs.rst
@@ -248,6 +248,7 @@ PTXdist specific. What does it mean:
- ``*_LICENSE`` enables the user to get a list of licenses she/he is
using in her/his project (licenses of the enabled packages).
+ See :ref:`licensing_in_packages` below for detailed information.
After enabling the menu entry, we can start to check the *get* and
*extract* stages, calling them manually one after another.
@@ -603,737 +604,3 @@ to do (even if its boring and takes time):
This will re-start with a **clean** BSP and builds exactly the new package and
its (known) dependencies. If this builds successfully as well we are really done
with the new package.
-
-Some Notes about Licenses
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The already mentioned rule variable ``*_LICENSE`` (e.g. ``FOO_LICENSE`` in our
-example) is very important and must be filled by the developer of the package.
-Many licenses bring in obligations using the corresponding package (*attribution*
-for example). To make life easier for everybody the license for a package must
-be provided. *SPDX* license identifiers unify the license names and are used
-in PTXdist to identify license types and obligations.
-
-If a package comes with more than one license, all of their SPDX identifiers
-must be listed and connected with the keyword ``AND``. If your package comes
-with GPL-2.0 and LGPL-2.1 licenses, the definition should look like this:
-
-.. code-block:: make
-
- FOO_LICENSE := GPL-2.0 AND LGPL-2.1
-
-One specific obligation cannot be detected examining the SPDX license identifiers
-by PTXdist: *the license choice*. In this case all licenses of choice must be
-listed and connected by the keyword ``OR``.
-
-If, for example, your obligation is to select one of the licenses *GPL-2.0* **or**
-*GPL-3.0*, the ``*_LICENSE`` variable should look like this:
-
-.. code-block:: make
-
- FOO_LICENSE := GPL-2.0 OR GPL-3.0
-
-SPDX License Identifiers
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-A list of SPDX license identifiers can be found here:
-
- https://spdx.org/licenses/
-
-Help to Detect the Correct License
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-License identification isn't trivial. A help in doing so can be the following
-repository and its content. It contains a list of known licenses based on their
-SPDX identifier. The content is without formatting to simplify text search.
-
- https://github.com/spdx/license-list-data/tree/master/text
-
-Advanced Rule Files
-~~~~~~~~~~~~~~~~~~~
-
-The previous example on how to create a rule file sometimes works as
-shown above. But most of the time source archives are not that simple.
-In this section we want to give the user a more detailed selection how
-the package will be built.
-
-Adding Static Configure Parameters
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The ``configure`` scripts of various source archives provide additional
-parameters to enable or disable features, or to configure them in a
-specific way.
-
-We assume the ``configure`` script of our ``foo`` example (refer to
-section :ref:`foo_example`) supports two additional parameters:
-
-- **--enable-debug**: Make the program more noisy. It’s disabled by
- default.
-
-- **--with-bar**: Also build the special executable **bar**. Building
- this executable is also disabled by default.
-
-We now want to forward these options to the ``configure`` script when it
-runs in the *prepare* stage. To do so, we must again open the rule file
-with our favourite editor and navigate to the *prepare* stage entry.
-
-PTXdist uses the variable ``FOO_CONF_OPT`` as the list of parameters to
-be given to ``configure``.
-
-Currently this variable is commented out and defined to:
-
-.. code-block:: make
-
- # FOO_CONF_OPT := $(CROSS_AUTOCONF_USR)
-
-The variable ``CROSS_AUTOCONF_USR`` is predefined by PTXdist and
-contains all basic parameters to instruct ``configure`` to prepare for a
-**cross** compile environment.
-
-To use the two additional mentioned ``configure`` parameters, we comment
-in this line and supplement this expression as follows:
-
-.. code-block:: make
-
- FOO_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --enable-debug \
- --with-bar
-
-.. note:: We recommend to use this format with each parameter on a line of
- its own. This format is easier to read and a diff shows more exactly any
- change.
-
-To do a fast check if this addition was successful, we run:
-
-.. code-block:: text
-
- $ ptxdist print FOO_CONF_OPT
- --prefix=/usr --sysconfdir=/etc --host=|ptxdistCompilerName| --build=i686-host-linux-gnu --enable-debug --with-bar
-
-.. note:: It depends on the currently selected platform and its architecture
- what content this variable will have. The content shown above is an
- example for a target.
-
-Or re-build the package with the new settings:
-
-.. code-block:: text
-
- $ ptxdist drop foo prepare
- $ ptxdist targetinstall foo
-
-Adding Dynamic Configure Parameters
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Sometimes it makes sense to add this kind of parameters on demand only;
-especially a parameter like ``--enable-debug``. To let the user decide
-if this parameter is to be used or not, we must add a menu entry. So,
-let’s expand our menu. Here is its current content:
-
-.. code-block:: kconfig
-
- ## SECTION=project_specific
-
- config FOO
- tristate
- prompt "foo"
- help
- FIXME
-
-We’ll add two menu entries, one for each optional parameter we want to
-add on demand to the ``configure`` parameters:
-
-.. code-block:: kconfig
-
- ## SECTION=project_specific
-
- config FOO
- tristate
- prompt "foo"
- help
- FIXME
-
- if FOO
- config FOO_DEBUG
- bool
- prompt "add debug noise"
-
- config FOO_BAR
- bool
- prompt "build bar"
-
- endif
-
-.. important:: Always follow the rule to extend the base name by a suboption
- name as the trailing part of the variable name. This gives PTXdist the ability
- to detect a change in the package’s settings (via menuconfig) to force its
- rebuild on demand.
-
-To make usage of the new menu entries, we must check them in the rule
-file and add the correct parameters:
-
-.. code-block:: make
-
- #
- # autoconf
- #
- FOO_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --$(call ptx/endis, PTXCONF_FOO_DEBUG)-debug \
- --$(call ptx/wwo, PTXCONF_FOO_BAR)-bar
-
-.. important:: Please note the leading ``PTXCONF_`` for each define. While Kconfig is
- using ``FOO_BAR``, the rule file must use ``PTXCONF_FOO_BAR`` instead.
-
-.. note:: Refer :ref:`Rule File Macro Reference <param_macros>` for further
- details about these special kind of option macros (e.g. ``ptx/...``).
-
-It is a good practice to always add both settings, e.g. ``--disable-debug``
-even if this is the default case. Sometimes ``configure`` tries to guess
-something and the binary result might differ depending on the build
-order. For example some kind of package would also build some X related
-tools, if X libraries are found. In this case it depends on the build
-order, if the X related tools are built or not. All the autocheck
-features are problematic here. So, if we do not want ``configure`` to
-guess its settings we **must disable everything we do not want**.
-
-To support this process, PTXdist supplies a helper script, located at
-``/path/to/ptxdist/scripts/configure-helper.py`` that compares the configure
-output with the settings from ``FOO_CONF_OPT``:
-
-.. code-block:: text
-
- $ /opt/ptxdist-2017.06.0/scripts/configure-helper.py -p libsigrok
- --- rules/libsigrok.make
- +++ libsigrok-0.5.0
- @@ -4,3 +4,74 @@
- --libdir=/usr/lib
- --build=x86_64-host-linux-gnu
- --host=arm-v7a-linux-gnueabihf
- + --enable-warnings=min|max|fatal|no
- + --disable-largefile
- + --enable-all-drivers
- + --enable-agilent-dmm
- [...]
- + --enable-ruby
- + --enable-java
- + --without-libserialport
- + --without-libftdi
- + --without-libusb
- + --without-librevisa
- + --without-libgpib
- + --without-libieee1284
- + --with-jni-include-path=DIR-LIST
-
-In this example, many configure options from libsigrok (marked with ``+``)
-are not yet present in ``LIBSIGROK_CONF_OPT`` and must be added, possibly also
-by providing more dynamic options in the package definition.
-
-If some parts of a package are built on demand only, they must also be
-installed on demand only. Besides the *prepare* stage, we also must
-modify our *targetinstall* stage:
-
-.. code-block:: make
-
- @$(call install_copy, foo, 0, 0, 0755, $(FOO_DIR)/foo, /usr/bin/foo)
-
- ifdef PTXCONF_FOO_BAR
- @$(call install_copy, foo, 0, 0, 0755, $(FOO_DIR)/bar, /usr/bin/bar)
- endif
-
- @$(call install_finish, foo)
- @$(call touch)
-
-Now we can play with our new menu entries and check if they are working
-as expected:
-
-.. code-block:: text
-
- $ ptxdist menuconfig
- $ ptxdist targetinstall foo
-
-Whenever we change a *FOO* related menu entry, PTXdist should detect it
-and re-build the package when a new build is started.
-
-.. _external_dependencies:
-
-Managing External Compile Time Dependencies
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-While running the prepare stage, it could happen that it fails due to a
-missing external dependency.
-
-For example:
-
-.. code-block:: text
-
- checking whether zlib exists....failed
-
-In this example, our new package depends on the compression library
-*zlib*. PTXdist comes with a target *zlib*. All we need to do in this
-case is to declare that our new package *foo* depends on *zlib*. This
-kind of dependency is managed in the menu file of our new package by
-simply adding the ``select ZLIB`` line. After this addition our menu
-file looks like:
-
-.. code-block:: kconfig
-
- ## SECTION=project_specific
-
- config FOO
- tristate
- select ZLIB
- prompt "foo"
- help
- FIXME
-
- if FOO
- config FOO_DEBUG
- bool
- prompt "add debug noise"
-
- config FOO_BAR
- bool
- prompt "build bar"
-
- endif
-
-PTXdist now builds the *zlib* first and our new package thereafter.
-
-Refer :ref:`external_dependencies_variants` for more specific dependency
-description.
-
-Managing External Compile Time Dependencies on Demand
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-It is good practice to add only those dependencies that are really
-required for the current configuration of the package. If the package
-provides the features *foo* and *bar* and its ``configure`` provides
-switches to enable/disable them independently, we can also add
-dependencies on demand. Let’s assume feature *foo* needs the compression
-library *libz* and *bar* needs the XML2 library *libxml2*. These
-libraries are only required at run-time if the corresponding feature is
-enabled. To add these dependencies on demand, the menu file looks like:
-
-.. code-block:: kconfig
-
- ## SECTION=project_specific
-
- config FOO
- tristate
- select ZLIB if FOO_FOO
- select LIBXML2 if FOO_BAR
- prompt "foo"
- help
- FIXME
-
- if FOO
- config FOO_DEBUG
- bool
- prompt "add debug noise"
-
- config FOO_FOO
- bool
- prompt "build foo"
-
- config FOO_BAR
- bool
- prompt "build bar"
-
- endif
-
-.. important:: Do not add these ``select`` statements to the corresponding menu entry.
- They must belong to the main menu entry of the package to ensure that
- the calculation of the dependencies between the packages is done in a
- correct manner.
-
-Managing External Runtime Dependencies
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Some packages are building all of their components and also installing
-them into the target’s sysroot. But only their *targetinstall* stage
-decides which parts are copied to the root filesystem. So, compiling and
-linking of our package will work, because everything required is found
-in the target’s sysroot.
-
-In our example there is a hidden dependency to the math library
-``libm``. Our new package was built successfully, because the linker was
-able to link our binaries against the ``libm`` from the toolchain. But
-in this case the ``libm`` must also be available in the target’s root
-filesystem to fulfill the run-time dependency: We have to force PTXdist to
-install ``libm``. ``libm`` is part of the *glibc* package, but is not
-installed by default (to keep the root filesystem small). So, it **does
-not** help to select the ``GLIBC`` symbol, to get a ``libm`` at run-time.
-
-The correct solution here is to add a ``select LIBC_M`` to our menu
-file. With all the additions above it now looks like:
-
-.. code-block:: kconfig
-
- ## SECTION=project_specific
-
- config FOO
- tristate
- select ZLIB if FOO_FOO
- select LIBXML2 if FOO_BAR
- select LIBC_M
- prompt "foo"
- help
- FIXME
-
- if FOO
- config FOO_DEBUG
- bool
- prompt "add debug noise"
-
- config FOO_FOO
- bool
- prompt "build foo"
-
- config FOO_BAR
- bool
- prompt "build bar"
-
- endif
-
-.. note:: There are other packages around, that do not install everything by
- default. If our new package needs something special, we must take a look
- into the menu of the other package how to force the required components
- to be installed and add the corresponding ``selects`` to our own menu
- file. In this case it does not help to enable the required parts in our
- project configuration, because this has no effect on the build order!
-
-Managing Plain Makefile Packages
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Many packages are still coming with a plain ``Makefile``. The user has
-to adapt it to make it work in a cross compile environment as well.
-PTXdist can also handle this kind of packages. We only have to specify
-a special *prepare* and *compile* stage.
-
-Such packages often have no special need for any kind of preparation. In
-this we must instruct PTXdist to do nothing in the *prepare* stage:
-
-.. code-block:: make
-
- FOO_CONF_TOOL := NO
-
-To compile the package, we can use ``make``\ ’s feature to overwrite
-variables used in the ``Makefile``. With this feature we can still use
-the original ``Makefile`` but with our own (cross compile) settings.
-
-Most of the time the generic compile rule can be used, only a few
-settings are required. For a well defined ``Makefile`` it is sufficient to
-set up the correct cross compile environment for the *compile* stage:
-
-.. code-block:: make
-
- FOO_MAKE_ENV := $(CROSS_ENV)
-
-``make`` will be called in this case with:
-
-``$(FOO_MAKE_ENV) $(MAKE) -C $(FOO_DIR) $(FOO_MAKE_OPT)``
-
-So, in the rule file only the two variables ``FOO_MAKE_ENV`` and
-``FOO_MAKE_OPT`` must be set, to forward the required settings to the
-package’s buildsystem. If the package cannot be built in parallel, we
-can also add the ``FOO_MAKE_PAR := NO``. ``YES`` is the default.
-
-Managing CMake/QMake/Meson Packages
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Building packages that use ``cmake``, ``qmake`` or ``meson`` is much like
-building packages with an autotools based buildsystem. We need to specify
-the configuration tool:
-
-.. code-block:: make
-
- FOO_CONF_TOOL := cmake
-
-or
-
-.. code-block:: make
-
- FOO_CONF_TOOL := qmake
-
-or respectively
-
-.. code-block:: make
-
- FOO_CONF_TOOL := meson
-
-And provide the correct configuration options. The syntax is different so
-PTXdist provides additional macros to simplify configurable features.
-For ``cmake`` the configuration options typically look like this:
-
-.. code-block:: make
-
- FOO_CONF_OPT := \
- $(CROSS_CMAKE_USR) \
- -DBUILD_TESTS:BOOL=OFF \
- -DENABLE_BAR:BOOL=$(call ptx/onoff, PTXCONF_FOO_BAR)
-
-For ``qmake`` the configuration options typically look like this:
-
-.. code-block:: make
-
- FOO_CONF_OPT := \
- $(CROSS_QMAKE_OPT) \
- PREFIX=/usr
-
-And for ``meson`` the configuration options typically look like this:
-
-.. code-block:: make
-
- FOO_CONF_OPT := \
- $(CROSS_MESON_USR) \
- -Dbar=$(call ptx/truefalse,PTXCONF_FOO_BAR)
-
-Please note that currently only host and target ``cmake``\/``meson`` packages
-and only target ``qmake`` packages are supported.
-
-Managing Python Packages
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-As with any other package, the correct configuration tool must be selected
-for Python packages:
-
-.. code-block:: make
-
- FOO_CONF_TOOL := python
-
-.. note:: For Python3 packages the value must be ``python3``.
-
-No Makefiles are used when building Python packages so the usual ``make``
-and ``make install`` for the *compile* and *install* stages cannot be used.
-PTXdist will call ``python setup.py build`` and ``python setup.py install``
-instead.
-
-.. note:: *FOO* is still the name of our example package. It must be
- replaced by the real package name.
-
-
-.. _patching_packages:
-
-Patching Packages
-~~~~~~~~~~~~~~~~~
-
-There can be various reasons why a package must be patched:
-
-- Package is broken for cross compile environments
-
-- Package is broken within a specific feature
-
-- Package is vulnerable and needs some fixes
-
-- or anything else (this case is the most common one)
-
-Ideally, those problems should be addressed in the original project,
-so any patches you add to your BSP or to PTXdist should also be submitted upstream.
-The upstream project can often provide better feedback, they can integrate your
-patch into a new release, and also maintain your changes as part of the project.
-This way we make sure that all advantages of the open source idea work for us;
-and your patch can be removed again later when a new release of the project is
-integrated into your BSP or into PTXdist.
-
-PTXdist handles patching automatically.
-After extracting the archive of a package, PTXdist checks for the existence of
-a patch directory named like its ``<PKG>_PATCHES`` variable, or, if this variable
-is not set, like its ``<PKG>`` variable.
-The patch directory is then searched in all locations listed by the
-``PTXDIST_PATH_PATCHES`` variable, and the first one found is used.
-Take an exemplary package ``foo`` with version ``1.1.0``:
-The variable ``FOO`` will have the value ``foo-1.1.0``, so PTXdist will look for
-a patch directory named ``foo-1.1.0`` in the following locations:
-
-#. the current layer:
-
- a. project (``./patches/foo-1.1.0``)
- b. platform (``./configs/|ptxdistPlatformConfigDir|/patches/foo-1.1.0``)
-
-#. any :ref:`base layers <layers-in-ptxdist>`,
- applying the same search order as above for each layer recursively
-
-#. ptxdist (``<ptxdist/installation/path>/patches/foo-1.1.0``)
-
-The patches from the first location found are used. Note: Due to this
-search order, a PTXdist project can replace global patches from the
-PTXdist installation. This can be useful if a project sticks to a
-specific PTXdist revision but fixes from a more recent revision of
-PTXdist should be used.
-
-PTXdist uses the utilities *git*, *patch* or *quilt* to work with
-patches or patch series. We recommend *git*, as it can manage patch
-series in a very easy way.
-
-Creating a Patch Series for a Package
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-To create a patch series for the first time, we can run the following
-steps. We are still using our *foo-1.1.0* example package here:
-
-Using Quilt
-"""""""""""
-
-We create a special directory for the patch series in the local project
-directory:
-
-.. code-block:: text
-
- $ mkdir -p patches/foo-1.1.0
-
-PTXdist expects a ``series`` file in the patch directory and at least
-one patch. Otherwise it fails. Due to the fact that we do not have any
-patch content yet, we’ll start with a dummy entry in the ``series`` file
-and an empty ``patch`` file.
-
-.. code-block:: text
-
- $ touch patches/foo-1.1.0/dummy
- $ echo dummy > patches/foo-1.1.0/series
-
-Next is to extract the package (if already done, we must remove it
-first):
-
-.. code-block:: text
-
- $ ptxdist extract foo
-
-This will extract the archive and create a symbolic link in the build
-directory pointing to our local patch directory. Working this way will
-ensure that we do not lose our created patches if we enter
-``ptxdist clean foo`` by accident. In our case the patches are still
-present in ``patches/foo-1.1.0`` and can be used the next time we
-extract the package again.
-
-All we have to do now is to do the modification we need to make the
-package work. We change into the build directory and use quilt_ to
-create new patches, add files to respective patches, modify these files
-and refresh the patches to save our changes.
-See the *quilt* documentation (``man 1 quilt``) for more information.
-
-.. note:: For patches that are intended for PTXdist upstream use the git
- workflow described below to get proper patch headers.
-
-.. _quilt: http://savannah.nongnu.org/projects/quilt
-
-Using Git
-"""""""""
-
-Create the patch directory like above for *quilt*,
-but only add an empty series file:
-
-.. code-block:: text
-
- $ mkdir -p patches/foo-1.1.0
- $ touch patches/foo-1.1.0/series
-
-Then extract the package with an additional command line switch:
-
-.. code-block:: text
-
- $ ptxdist --git extract foo
-
-The empty series file makes PTXdist create a Git repository in the
-respective package build directory,
-and import the package source as the first commit.
-
-.. note:: Optionally, you can enable the setting *Developer Options →
- use git to apply patches* in `ptxdist setup` to get this behaviour
- as a default for every package.
- However, note that this setting is meant for development only, and can lead
- to failures – some packages try to determine if they are being compiled from
- a Git source tree, and behave differently in that case.
-
-Then you can change into the package build directory
-(``platform-<name>/build-target/foo-1.1.0``),
-patch the required source files,
-and make Git commits on the way.
-The Git history should now look something like this:
-
-.. code-block:: text
-
- $ git log --oneline --decorate
- * df343e821851 (HEAD -> master) Makefile: don't build the tests
- * 65a360c2bd60 strfry.c: frobnicate the excusator
- * fdc315f6844c (tag: foobar-1.1.0, tag: base) initial commit
-
-Finally, call ``git ptx-patches`` to transform those Git commits into the patch
-series in the ``patches/foo-1.1.0`` folder.
-This way they don't get lost when cleaning the package.
-
-.. note:: PTXdist will only create a Git repository for packages with
- patches. To use Git to generate the first patch, create an empty series
- file ``patches/foobar-1.1.0/series`` before extracting the packages. This
- will tell PTXdist to use Git anyways and ``git ptx-patches`` will put the
- patches there.
-
-Both approaches (Git and quilt) are not suitable for modifying files
-that are autogenerated in autotools-based buildsystems.
-Refer to the section :ref:`configure_rebuild` on how PTXdist can
-handle this special task.
-
-Adding More Patches to a Package
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-If we want to add more patches to an already patched package, we can use
-nearly the same way as creating patches for the first time. But if the
-patch series comes from the PTXdist main installation, we do not have
-write permissions to these directories (do NEVER work on the main
-installation directories, NEVER, NEVER, NEVER). Due to the search order
-in which PTXdist searches for patches for a specific package, we can
-copy the global patch series to our local project directory. Now we have
-the permissions to add more patches or modify the existing ones. Also
-*quilt* and *git* are our friends here to manage the patch series.
-
-If we think that our new patches are valuable also for others, or they
-fix an error, it could be a good idea to send these patches to PTXdist
-mainline, and to the upstream project too.
-
-
-.. _configure_rebuild:
-
-Modifying Autotoolized Packages
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Autotoolized packages are very picky when automatically generated files
-get patched. The patch order is very important in this case and
-sometimes it even fails and nobody knows why.
-
-To improve a package’s autotools-based build system, PTXdist comes with
-its own project local autotools to regenerate the autotools template
-files, instead of patching them. With this feature, only the template
-files must be patched, the required ``configure`` script and the
-``Makefile.in`` files are regenerated in the final stages of the
-*prepare* step.
-
-This feature works like the regular patching mechanism. The only
-difference is the additional ``autogen.sh`` file in the patch directory.
-If it exists and has execution permissions, it will be called after the
-package was patched (while the *extract* stage is running).
-
-Its content depends on developer needs; for the most simple case the
-content can be:
-
-.. code-block:: bash
-
- #!/bin/bash
-
- aclocal $ACLOCAL_FLAGS
-
- libtoolize \
- --force \
- --copy
-
- autoreconf \
- --force \
- --install \
- --warnings=cross \
- --warnings=syntax \
- --warnings=obsolete \
- --warnings=unsupported
-
-.. note:: In this way not yet autotoolized package can be autotoolized. We
- just have to add the common autotool template files (``configure.ac``
- and ``Makefile.am`` for example) via a patch series to the package
- source and the ``autogen.sh`` to the patch directory.
diff --git a/doc/dev_advanced_rule_files.rst b/doc/dev_advanced_rule_files.rst
new file mode 100644
index 000000000..1aa246fe2
--- /dev/null
+++ b/doc/dev_advanced_rule_files.rst
@@ -0,0 +1,494 @@
+*******************
+Advanced Rule Files
+*******************
+
+The previous example on how to create a rule file sometimes works as
+shown above. But most of the time source archives are not that simple.
+In this section we want to give the user a more detailed selection how
+the package will be built.
+
+Adding Static Configure Parameters
+==================================
+
+The ``configure`` scripts of various source archives provide additional
+parameters to enable or disable features, or to configure them in a
+specific way.
+
+We assume the ``configure`` script of our ``foo`` example (refer to
+section :ref:`foo_example`) supports two additional parameters:
+
+- **--enable-debug**: Make the program more noisy. It’s disabled by
+ default.
+
+- **--with-bar**: Also build the special executable **bar**. Building
+ this executable is also disabled by default.
+
+We now want to forward these options to the ``configure`` script when it
+runs in the *prepare* stage. To do so, we must again open the rule file
+with our favourite editor and navigate to the *prepare* stage entry.
+
+PTXdist uses the variable ``FOO_CONF_OPT`` as the list of parameters to
+be given to ``configure``.
+
+Currently this variable is commented out and defined to:
+
+.. code-block:: make
+
+ # FOO_CONF_OPT := $(CROSS_AUTOCONF_USR)
+
+The variable ``CROSS_AUTOCONF_USR`` is predefined by PTXdist and
+contains all basic parameters to instruct ``configure`` to prepare for a
+**cross** compile environment.
+
+To use the two additional mentioned ``configure`` parameters, we comment
+in this line and supplement this expression as follows:
+
+.. code-block:: make
+
+ FOO_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --enable-debug \
+ --with-bar
+
+.. note:: We recommend to use this format with each parameter on a line of
+ its own. This format is easier to read and a diff shows more exactly any
+ change.
+
+To do a fast check if this addition was successful, we run:
+
+.. code-block:: text
+
+ $ ptxdist print FOO_CONF_OPT
+ --prefix=/usr --sysconfdir=/etc --host=|ptxdistCompilerName| --build=i686-host-linux-gnu --enable-debug --with-bar
+
+.. note:: It depends on the currently selected platform and its architecture
+ what content this variable will have. The content shown above is an
+ example for a target.
+
+Or re-build the package with the new settings:
+
+.. code-block:: text
+
+ $ ptxdist drop foo prepare
+ $ ptxdist targetinstall foo
+
+Adding Dynamic Configure Parameters
+===================================
+
+Sometimes it makes sense to add this kind of parameters on demand only;
+especially a parameter like ``--enable-debug``. To let the user decide
+if this parameter is to be used or not, we must add a menu entry. So,
+let’s expand our menu. Here is its current content:
+
+.. code-block:: kconfig
+
+ ## SECTION=project_specific
+
+ config FOO
+ tristate
+ prompt "foo"
+ help
+ FIXME
+
+We’ll add two menu entries, one for each optional parameter we want to
+add on demand to the ``configure`` parameters:
+
+.. code-block:: kconfig
+
+ ## SECTION=project_specific
+
+ config FOO
+ tristate
+ prompt "foo"
+ help
+ FIXME
+
+ if FOO
+ config FOO_DEBUG
+ bool
+ prompt "add debug noise"
+
+ config FOO_BAR
+ bool
+ prompt "build bar"
+
+ endif
+
+.. important:: Always follow the rule to extend the base name by a suboption
+ name as the trailing part of the variable name. This gives PTXdist the ability
+ to detect a change in the package’s settings (via menuconfig) to force its
+ rebuild on demand.
+
+To make usage of the new menu entries, we must check them in the rule
+file and add the correct parameters:
+
+.. code-block:: make
+
+ #
+ # autoconf
+ #
+ FOO_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --$(call ptx/endis, PTXCONF_FOO_DEBUG)-debug \
+ --$(call ptx/wwo, PTXCONF_FOO_BAR)-bar
+
+.. important:: Please note the leading ``PTXCONF_`` for each define. While Kconfig is
+ using ``FOO_BAR``, the rule file must use ``PTXCONF_FOO_BAR`` instead.
+
+.. note:: Refer :ref:`Rule File Macro Reference <param_macros>` for further
+ details about these special kind of option macros (e.g. ``ptx/...``).
+
+It is a good practice to always add both settings, e.g. ``--disable-debug``
+even if this is the default case. Sometimes ``configure`` tries to guess
+something and the binary result might differ depending on the build
+order. For example some kind of package would also build some X related
+tools, if X libraries are found. In this case it depends on the build
+order, if the X related tools are built or not. All the autocheck
+features are problematic here. So, if we do not want ``configure`` to
+guess its settings we **must disable everything we do not want**.
+
+To support this process, PTXdist supplies a helper script, located at
+``/path/to/ptxdist/scripts/configure-helper.py`` that compares the configure
+output with the settings from ``FOO_CONF_OPT``:
+
+.. code-block:: text
+
+ $ /opt/ptxdist-2017.06.0/scripts/configure-helper.py -p libsigrok
+ --- rules/libsigrok.make
+ +++ libsigrok-0.5.0
+ @@ -4,3 +4,74 @@
+ --libdir=/usr/lib
+ --build=x86_64-host-linux-gnu
+ --host=arm-v7a-linux-gnueabihf
+ + --enable-warnings=min|max|fatal|no
+ + --disable-largefile
+ + --enable-all-drivers
+ + --enable-agilent-dmm
+ [...]
+ + --enable-ruby
+ + --enable-java
+ + --without-libserialport
+ + --without-libftdi
+ + --without-libusb
+ + --without-librevisa
+ + --without-libgpib
+ + --without-libieee1284
+ + --with-jni-include-path=DIR-LIST
+
+In this example, many configure options from libsigrok (marked with ``+``)
+are not yet present in ``LIBSIGROK_CONF_OPT`` and must be added, possibly also
+by providing more dynamic options in the package definition.
+
+If some parts of a package are built on demand only, they must also be
+installed on demand only. Besides the *prepare* stage, we also must
+modify our *targetinstall* stage:
+
+.. code-block:: make
+
+ @$(call install_copy, foo, 0, 0, 0755, $(FOO_DIR)/foo, /usr/bin/foo)
+
+ ifdef PTXCONF_FOO_BAR
+ @$(call install_copy, foo, 0, 0, 0755, $(FOO_DIR)/bar, /usr/bin/bar)
+ endif
+
+ @$(call install_finish, foo)
+ @$(call touch)
+
+Now we can play with our new menu entries and check if they are working
+as expected:
+
+.. code-block:: text
+
+ $ ptxdist menuconfig
+ $ ptxdist targetinstall foo
+
+Whenever we change a *FOO* related menu entry, PTXdist should detect it
+and re-build the package when a new build is started.
+
+.. _external_dependencies:
+
+Managing External Compile Time Dependencies
+===========================================
+
+While running the prepare stage, it could happen that it fails due to a
+missing external dependency.
+
+For example:
+
+.. code-block:: text
+
+ checking whether zlib exists....failed
+
+In this example, our new package depends on the compression library
+*zlib*. PTXdist comes with a target *zlib*. All we need to do in this
+case is to declare that our new package *foo* depends on *zlib*. This
+kind of dependency is managed in the menu file of our new package by
+simply adding the ``select ZLIB`` line. After this addition our menu
+file looks like:
+
+.. code-block:: kconfig
+
+ ## SECTION=project_specific
+
+ config FOO
+ tristate
+ select ZLIB
+ prompt "foo"
+ help
+ FIXME
+
+ if FOO
+ config FOO_DEBUG
+ bool
+ prompt "add debug noise"
+
+ config FOO_BAR
+ bool
+ prompt "build bar"
+
+ endif
+
+PTXdist now builds the *zlib* first and our new package thereafter.
+
+Refer :ref:`external_dependencies_variants` for more specific dependency
+description.
+
+Managing External Compile Time Dependencies on Demand
+=====================================================
+
+It is good practice to add only those dependencies that are really
+required for the current configuration of the package. If the package
+provides the features *foo* and *bar* and its ``configure`` provides
+switches to enable/disable them independently, we can also add
+dependencies on demand. Let’s assume feature *foo* needs the compression
+library *libz* and *bar* needs the XML2 library *libxml2*. These
+libraries are only required at run-time if the corresponding feature is
+enabled. To add these dependencies on demand, the menu file looks like:
+
+.. code-block:: kconfig
+
+ ## SECTION=project_specific
+
+ config FOO
+ tristate
+ select ZLIB if FOO_FOO
+ select LIBXML2 if FOO_BAR
+ prompt "foo"
+ help
+ FIXME
+
+ if FOO
+ config FOO_DEBUG
+ bool
+ prompt "add debug noise"
+
+ config FOO_FOO
+ bool
+ prompt "build foo"
+
+ config FOO_BAR
+ bool
+ prompt "build bar"
+
+ endif
+
+.. important:: Do not add these ``select`` statements to the corresponding menu entry.
+ They must belong to the main menu entry of the package to ensure that
+ the calculation of the dependencies between the packages is done in a
+ correct manner.
+
+Managing External Runtime Dependencies
+======================================
+
+Some packages are building all of their components and also installing
+them into the target’s sysroot. But only their *targetinstall* stage
+decides which parts are copied to the root filesystem. So, compiling and
+linking of our package will work, because everything required is found
+in the target’s sysroot.
+
+In our example there is a hidden dependency to the math library
+``libm``. Our new package was built successfully, because the linker was
+able to link our binaries against the ``libm`` from the toolchain. But
+in this case the ``libm`` must also be available in the target’s root
+filesystem to fulfill the run-time dependency: We have to force PTXdist to
+install ``libm``. ``libm`` is part of the *glibc* package, but is not
+installed by default (to keep the root filesystem small). So, it **does
+not** help to select the ``GLIBC`` symbol, to get a ``libm`` at run-time.
+
+The correct solution here is to add a ``select LIBC_M`` to our menu
+file. With all the additions above it now looks like:
+
+.. code-block:: kconfig
+
+ ## SECTION=project_specific
+
+ config FOO
+ tristate
+ select ZLIB if FOO_FOO
+ select LIBXML2 if FOO_BAR
+ select LIBC_M
+ prompt "foo"
+ help
+ FIXME
+
+ if FOO
+ config FOO_DEBUG
+ bool
+ prompt "add debug noise"
+
+ config FOO_FOO
+ bool
+ prompt "build foo"
+
+ config FOO_BAR
+ bool
+ prompt "build bar"
+
+ endif
+
+.. note:: There are other packages around, that do not install everything by
+ default. If our new package needs something special, we must take a look
+ into the menu of the other package how to force the required components
+ to be installed and add the corresponding ``selects`` to our own menu
+ file. In this case it does not help to enable the required parts in our
+ project configuration, because this has no effect on the build order!
+
+Managing Plain Makefile Packages
+================================
+
+Many packages are still coming with a plain ``Makefile``. The user has
+to adapt it to make it work in a cross compile environment as well.
+PTXdist can also handle this kind of packages. We only have to specify
+a special *prepare* and *compile* stage.
+
+Such packages often have no special need for any kind of preparation. In
+this we must instruct PTXdist to do nothing in the *prepare* stage:
+
+.. code-block:: make
+
+ FOO_CONF_TOOL := NO
+
+To compile the package, we can use ``make``\ ’s feature to overwrite
+variables used in the ``Makefile``. With this feature we can still use
+the original ``Makefile`` but with our own (cross compile) settings.
+
+Most of the time the generic compile rule can be used, only a few
+settings are required. For a well defined ``Makefile`` it is sufficient to
+set up the correct cross compile environment for the *compile* stage:
+
+.. code-block:: make
+
+ FOO_MAKE_ENV := $(CROSS_ENV)
+
+``make`` will be called in this case with:
+
+``$(FOO_MAKE_ENV) $(MAKE) -C $(FOO_DIR) $(FOO_MAKE_OPT)``
+
+So, in the rule file only the two variables ``FOO_MAKE_ENV`` and
+``FOO_MAKE_OPT`` must be set, to forward the required settings to the
+package’s buildsystem. If the package cannot be built in parallel, we
+can also add the ``FOO_MAKE_PAR := NO``. ``YES`` is the default.
+
+Managing CMake/QMake/Meson Packages
+===================================
+
+Building packages that use ``cmake``, ``qmake`` or ``meson`` is much like
+building packages with an autotools based buildsystem. We need to specify
+the configuration tool:
+
+.. code-block:: make
+
+ FOO_CONF_TOOL := cmake
+
+or
+
+.. code-block:: make
+
+ FOO_CONF_TOOL := qmake
+
+or respectively
+
+.. code-block:: make
+
+ FOO_CONF_TOOL := meson
+
+And provide the correct configuration options. The syntax is different so
+PTXdist provides additional macros to simplify configurable features.
+For ``cmake`` the configuration options typically look like this:
+
+.. code-block:: make
+
+ FOO_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -DBUILD_TESTS:BOOL=OFF \
+ -DENABLE_BAR:BOOL=$(call ptx/onoff, PTXCONF_FOO_BAR)
+
+For ``qmake`` the configuration options typically look like this:
+
+.. code-block:: make
+
+ FOO_CONF_OPT := \
+ $(CROSS_QMAKE_OPT) \
+ PREFIX=/usr
+
+And for ``meson`` the configuration options typically look like this:
+
+.. code-block:: make
+
+ FOO_CONF_OPT := \
+ $(CROSS_MESON_USR) \
+ -Dbar=$(call ptx/truefalse,PTXCONF_FOO_BAR)
+
+Please note that currently only host and target ``cmake``\/``meson`` packages
+and only target ``qmake`` packages are supported.
+
+Managing Python Packages
+========================
+
+As with any other package, the correct configuration tool must be selected
+for Python packages:
+
+.. code-block:: make
+
+ FOO_CONF_TOOL := python
+
+.. note:: For Python3 packages the value must be ``python3``.
+
+No Makefiles are used when building Python packages so the usual ``make``
+and ``make install`` for the *compile* and *install* stages cannot be used.
+PTXdist will call ``python setup.py build`` and ``python setup.py install``
+instead.
+
+.. note:: *FOO* is still the name of our example package. It must be
+ replaced by the real package name.
+
+Managing Cargo Packages
+=======================
+
+As with any other package, the correct configuration tool must be selected
+for Cargo packages:
+
+.. code-block:: make
+
+ FOO_CONF_TOOL := cargo
+
+Additional *cargo* options can be added to the compile options like this:
+
+.. code-block:: make
+
+ FOO_MAKE_OPT := \
+ $(CROSS_CARGO_OPT) \
+ --features ...
+
+Cargo wants to manage its own dependencies. PTXdist wants to manage all
+downloads. To make this work, PTXdist must be aware of all cargo
+dependencies. To make this possible, the package must contain a
+``Cargo.lock`` file.
+For new packages or whenever the ``Cargo.lock`` file changes, ``ptxdist
+cargosync foo`` must be called. This creates (or updates)
+``foo.cargo.make``. It is placed in the same directory as ``foo.make``.
+This introduces all dependencies from ``Cargo.lock`` as additional sources
+for the package.
+Finally, PTXdist builds all cargo packages with ``--frozen`` to ensure that
+the exact same versions are used and nothing is downloaded in the compile
+stage.
diff --git a/doc/dev_code_signing.rst b/doc/dev_code_signing.rst
index 56ac0e3b3..1e7759abe 100644
--- a/doc/dev_code_signing.rst
+++ b/doc/dev_code_signing.rst
@@ -10,6 +10,10 @@ This is also essential when a verified boot chain is established, e.g. via
*High Assurance Boot* (HAB), signed FIT images, and a verified root file
system.
+.. image:: dev_code_signing_flowchart.svg
+
+On the one side, **code signing consumers** are PTXdist recipes that want to
+make use of key material, e.g. for signing kernel modules or disk images.
PTXdist uses `PKCS#11 <pkcs11-doc_>`_ internally to provide access to keys and
certificates, therefore code signing consumers should implement a PKCS#11
interface to make use of PTXdist's code signing infrastructure.
@@ -19,6 +23,11 @@ development) the URIs are usually not hardcoded in the package configuration.
Instead, PTXdist has the idea of **roles** which are string identifiers used to
access a single private/public key pair and a certificate.
+Roles can be grouped into **role groups**.
+Role groups should be used where more than one role is needed, but the exact
+names and/or number of roles depend on the concrete code signing provider.
+For example, an i.MX HABv4 fuse table can contain up to four keys.
+
Finally, one or several **code signing providers** supply the mapping from
roles to the respective key material or even provide it themselves for
development.
@@ -93,7 +102,7 @@ like this:
ifdef PTXCONF_CODE_SIGNING_PROVIDER_<NAME>
CODE_SIGNING_ENV += \
- PKCS11_MODULE_PATH="${PTXDIST_SYSROOT_HOST}/lib/pkcs11/opensc-pkcs11.so"
+ PKCS11_MODULE_PATH="${PTXDIST_SYSROOT_HOST}/usr/lib/pkcs11/opensc-pkcs11.so"
endif
Note that the module is built in the BSP in this case.
diff --git a/doc/dev_code_signing_flowchart.svg b/doc/dev_code_signing_flowchart.svg
new file mode 100644
index 000000000..e7aaa6bb7
--- /dev/null
+++ b/doc/dev_code_signing_flowchart.svg
@@ -0,0 +1,1977 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ width="552.84961"
+ height="381.23526"
+ viewBox="0 0 146.27481 100.86849"
+ version="1.1"
+ id="svg1889">
+ <defs
+ id="defs1883">
+ <marker
+ style="overflow:visible"
+ id="marker7252"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path7250" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker7242"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(-0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path7240" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker6797"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path6795" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker6787"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(-0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path6785" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker5387"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path5385" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker4973"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path4971" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker4963"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(-0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path4961" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3475"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path3473" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker7027"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(-0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path7025" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker7007"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(-0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path7005" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker6717"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(0.6)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path6715" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker6707"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(0.6)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path6705" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker6697"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(0.6)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path6695" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker6687"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(0.6)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path6685" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker6443"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(0.6)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path6441" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker6423"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(0.6)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path6421" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker6413"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(0.6)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path6411" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Mstart"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(0.6)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path1103" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Sstart"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="matrix(0.2,0,0,0.2,1.2,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1091" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker4268"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(0.4)"
+ style="fill:#002a42;fill-opacity:1;fill-rule:evenodd;stroke:#002a42;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path4266" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker4188"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(0.4)"
+ style="fill:#002a42;fill-opacity:1;fill-rule:evenodd;stroke:#002a42;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path4186" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker4140"
+ refX="0"
+ refY="0"
+ orient="auto">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path4138" />
+ </marker>
+ <linearGradient
+ id="linearGradient14132-6">
+ <stop
+ style="stop-color:#b98309"
+ offset="0"
+ id="stop14134-2" />
+ <stop
+ style="stop-color:#382605"
+ offset="1"
+ id="stop14136-2" />
+ </linearGradient>
+ <filter
+ id="filter14148-8"
+ x="-0.10750898"
+ width="1.215018"
+ y="-0.10849553"
+ height="1.2169911"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="3.9237191"
+ id="feGaussianBlur14150-8" />
+ </filter>
+ <filter
+ id="filter14140-3"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="2.4365744"
+ id="feGaussianBlur14142-5" />
+ </filter>
+ <linearGradient
+ id="linearGradient14168-5">
+ <stop
+ style="stop-color:#ebc40c"
+ offset="0"
+ id="stop14170-8" />
+ <stop
+ style="stop-color:#ebc40c;stop-opacity:0"
+ offset="1"
+ id="stop14172-0" />
+ </linearGradient>
+ <filter
+ id="filter14176-5"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="0.3702557"
+ id="feGaussianBlur14178-0" />
+ </filter>
+ <filter
+ id="filter15053-7"
+ x="-0.10103524"
+ width="1.2020705"
+ y="-0.042669769"
+ height="1.0853395"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="1.1322032"
+ id="feGaussianBlur15055-3" />
+ </filter>
+ <linearGradient
+ id="linearGradient14830-4">
+ <stop
+ id="stop14832-6"
+ offset="0"
+ style="stop-color:#7c7c7c" />
+ <stop
+ id="stop14834-5"
+ offset="1"
+ style="stop-color:#7c7c7c;stop-opacity:0.32941177" />
+ </linearGradient>
+ <filter
+ id="filter14812-5"
+ x="-0.070455663"
+ width="1.1409113"
+ y="-0.15060219"
+ height="1.3012044"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="1.0252435"
+ id="feGaussianBlur14814-2" />
+ </filter>
+ <filter
+ id="filter14812-0-9"
+ x="-0.070455663"
+ width="1.1409113"
+ y="-0.15060219"
+ height="1.3012044"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="1.0252435"
+ id="feGaussianBlur14814-6-7" />
+ </filter>
+ <linearGradient
+ id="linearGradient14518-6">
+ <stop
+ id="stop14540-0"
+ offset="0"
+ style="stop-color:#110800" />
+ <stop
+ style="stop-color:#a65a00;stop-opacity:0.80000001"
+ offset="0.59066743"
+ id="stop14542-5" />
+ <stop
+ style="stop-color:#ff921e;stop-opacity:0"
+ offset="1"
+ id="stop14522-4" />
+ </linearGradient>
+ <filter
+ id="filter14897-2"
+ x="-0.20050517"
+ width="1.4010103"
+ y="-0.23409025"
+ height="1.4681805"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="2.8444356"
+ id="feGaussianBlur14899-5" />
+ </filter>
+ <filter
+ id="filter14951-8"
+ x="-0.091410659"
+ width="1.1828213"
+ y="-0.10672215"
+ height="1.2134444"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="1.2967831"
+ id="feGaussianBlur14953-7" />
+ </filter>
+ <filter
+ id="filter15211-9"
+ x="-0.46932927"
+ width="1.9386586"
+ y="-0.27372435"
+ height="1.5474488"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="0.85991809"
+ id="feGaussianBlur15213-7" />
+ </filter>
+ <filter
+ id="filter14706-3"
+ x="-0.60389674"
+ width="2.2077935"
+ y="-0.48226368"
+ height="1.9645272"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="2.6400036"
+ id="feGaussianBlur14708-8" />
+ </filter>
+ <linearGradient
+ id="linearGradient15103-0">
+ <stop
+ style="stop-color:#000000"
+ offset="0"
+ id="stop15105-1" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1"
+ id="stop15107-6" />
+ </linearGradient>
+ <filter
+ id="filter15115-3"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="2.2091576"
+ id="feGaussianBlur15117-8" />
+ </filter>
+ <linearGradient
+ id="linearGradient14392-8">
+ <stop
+ style="stop-color:#3e2a06"
+ offset="0"
+ id="stop14394-3" />
+ <stop
+ style="stop-color:#ad780a"
+ offset="1"
+ id="stop14396-0" />
+ </linearGradient>
+ <filter
+ id="filter14416-8"
+ x="-0.14501533"
+ width="1.2900307"
+ y="-0.14299878"
+ height="1.2859976"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="4.7787162"
+ id="feGaussianBlur14418-5" />
+ </filter>
+ <filter
+ id="filter14432-2"
+ x="-0.11529266"
+ width="1.2305853"
+ y="-0.12494507"
+ height="1.2498901"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="3.1725155"
+ id="feGaussianBlur14434-2" />
+ </filter>
+ <linearGradient
+ id="linearGradient17009">
+ <stop
+ style="stop-color:#f3cd0c"
+ offset="0"
+ id="stop17011" />
+ <stop
+ style="stop-color:#f3cd0c;stop-opacity:0"
+ offset="1"
+ id="stop17013" />
+ </linearGradient>
+ <filter
+ id="filter17044"
+ x="-0.020911871"
+ width="1.0418237"
+ y="-0.12926871"
+ height="1.2585374"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="0.47946431"
+ id="feGaussianBlur17046" />
+ </filter>
+ <filter
+ id="filter15185-2"
+ x="-0.17754583"
+ width="1.3550917"
+ y="-0.15942827"
+ height="1.3188565"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="0.90083196"
+ id="feGaussianBlur15187-7" />
+ </filter>
+ <filter
+ height="1.1156476"
+ y="-0.057823781"
+ width="2.6331918"
+ x="-0.81659585"
+ id="filter4592-2"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur4594-6"
+ stdDeviation="1.4463082" />
+ </filter>
+ <linearGradient
+ id="linearGradient4417-0">
+ <stop
+ id="stop4419-4-4"
+ offset="0"
+ style="stop-color:#000000" />
+ <stop
+ id="stop4421-2-0"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0.24886878" />
+ </linearGradient>
+ <filter
+ id="filter4538-7"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur4540-9"
+ stdDeviation="0.7854602" />
+ </filter>
+ <filter
+ id="filter4427-5-7"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur4429-4-8"
+ stdDeviation="1.1383167" />
+ </filter>
+ <filter
+ id="filter4487-6"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur4489-4"
+ stdDeviation="0.6434074" />
+ </filter>
+ <filter
+ id="filter14666-9"
+ x="-0.11753157"
+ width="1.2350631"
+ y="-0.040046327"
+ height="1.0800927"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="1.352085"
+ id="feGaussianBlur14668-7" />
+ </filter>
+ <linearGradient
+ id="linearGradient29652-2">
+ <stop
+ style="stop-color:#c8c8c8"
+ offset="0"
+ id="stop29654-6" />
+ <stop
+ style="stop-color:#797978"
+ offset="1"
+ id="stop29656-1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient28469-0">
+ <stop
+ style="stop-color:#d2940a"
+ offset="0"
+ id="stop28479-4" />
+ <stop
+ style="stop-color:#d89c08"
+ offset="0.75143719"
+ id="stop28477-2" />
+ <stop
+ id="stop28485-7"
+ offset="0.86579126"
+ style="stop-color:#b67e07" />
+ <stop
+ id="stop28473-1"
+ offset="1"
+ style="stop-color:#946106" />
+ </linearGradient>
+ <filter
+ height="1.429882"
+ y="-0.21494099"
+ width="1.3096611"
+ x="-0.1548306"
+ id="filter28502-8"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur28504-3"
+ stdDeviation="0.89858666" />
+ </filter>
+ <filter
+ id="filter15145-6"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="0.75821369"
+ id="feGaussianBlur15147-1" />
+ </filter>
+ <linearGradient
+ id="linearGradient28275-8">
+ <stop
+ id="stop28277-1"
+ offset="0"
+ style="stop-color:#ad780a" />
+ <stop
+ style="stop-color:#d89e08"
+ offset="0.11972899"
+ id="stop28291-9" />
+ <stop
+ style="stop-color:#edb80b"
+ offset="0.25514477"
+ id="stop28289-6" />
+ <stop
+ style="stop-color:#ebc80d"
+ offset="0.39194193"
+ id="stop28287-6" />
+ <stop
+ style="stop-color:#f5d838"
+ offset="0.52741116"
+ id="stop28285-7" />
+ <stop
+ style="stop-color:#f6d811"
+ offset="0.76906693"
+ id="stop28283-7" />
+ <stop
+ id="stop28279-5"
+ offset="1"
+ style="stop-color:#f5cd31" />
+ </linearGradient>
+ <filter
+ id="filter14963-7"
+ x="-0.16095592"
+ width="1.3219118"
+ y="-0.13027605"
+ height="1.260552"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="0.84878819"
+ id="feGaussianBlur14965-0" />
+ </filter>
+ <linearGradient
+ id="linearGradient29529-6">
+ <stop
+ id="stop29531-0"
+ offset="0"
+ style="stop-color:#3a2903" />
+ <stop
+ style="stop-color:#735208"
+ offset="0.55472803"
+ id="stop29539-7" />
+ <stop
+ id="stop29533-8"
+ offset="1"
+ style="stop-color:#ac8c04" />
+ </linearGradient>
+ <filter
+ id="filter15177-1"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="0.11039302"
+ id="feGaussianBlur15179-3" />
+ </filter>
+ <filter
+ id="filter15173-0"
+ x="-0.11644644"
+ width="1.2328929"
+ y="-0.10572958"
+ height="1.2114592"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="0.11039302"
+ id="feGaussianBlur15175-4" />
+ </filter>
+ <linearGradient
+ id="linearGradient28572-7">
+ <stop
+ id="stop28574-5"
+ offset="0"
+ style="stop-color:#f5ce2d" />
+ <stop
+ id="stop28576-0"
+ offset="1"
+ style="stop-color:#d79b08" />
+ </linearGradient>
+ <filter
+ height="1.2722148"
+ y="-0.13610739"
+ width="1.2146032"
+ x="-0.10730159"
+ id="filter28584-4"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur28586-3"
+ stdDeviation="0.2640625" />
+ </filter>
+ <linearGradient
+ id="linearGradient29477-3">
+ <stop
+ id="stop29479-5"
+ offset="0"
+ style="stop-color:#757574;stop-opacity:0" />
+ <stop
+ style="stop-color:#757574"
+ offset="0.26291031"
+ id="stop29487-5" />
+ <stop
+ style="stop-color:#757574"
+ offset="0.5"
+ id="stop29485-0" />
+ <stop
+ id="stop29481-3"
+ offset="1"
+ style="stop-color:#757574;stop-opacity:0" />
+ </linearGradient>
+ <filter
+ height="1.2921369"
+ y="-0.14606842"
+ width="1.4689326"
+ x="-0.23446631"
+ id="filter29493-2"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur29495-7"
+ stdDeviation="0.51262416" />
+ </filter>
+ <linearGradient
+ id="linearGradient29336-6">
+ <stop
+ id="stop29338-1"
+ offset="0"
+ style="stop-color:#646464;stop-opacity:0" />
+ <stop
+ style="stop-color:#646464;stop-opacity:0.5825243"
+ offset="0.30628255"
+ id="stop29344-7" />
+ <stop
+ id="stop29354-5"
+ offset="0.47000006"
+ style="stop-color:#646464" />
+ <stop
+ style="stop-color:#646464;stop-opacity:0.25728154"
+ offset="0.72834015"
+ id="stop29356-3" />
+ <stop
+ id="stop29340-6"
+ offset="1"
+ style="stop-color:#646464;stop-opacity:0" />
+ </linearGradient>
+ <filter
+ id="filter29447-1"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur29449-4"
+ stdDeviation="0.13475369" />
+ </filter>
+ <filter
+ id="filter29350-1"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur29352-7"
+ stdDeviation="0.1475" />
+ </filter>
+ <linearGradient
+ id="linearGradient28976-3">
+ <stop
+ id="stop28978-7"
+ offset="0"
+ style="stop-color:#747474" />
+ <stop
+ style="stop-color:#8c8c8c"
+ offset="0.125"
+ id="stop29259-5" />
+ <stop
+ style="stop-color:#a4a4a4"
+ offset="0.25"
+ id="stop29257-0" />
+ <stop
+ style="stop-color:#d4d4d4"
+ offset="0.5"
+ id="stop28984-4" />
+ <stop
+ id="stop28986-0"
+ offset="0.61919296"
+ style="stop-color:#d4d4d4" />
+ <stop
+ id="stop28980-2"
+ offset="1"
+ style="stop-color:#7c7c7c" />
+ </linearGradient>
+ <filter
+ height="1.4183974"
+ y="-0.2091987"
+ width="1.3159075"
+ x="-0.15795375"
+ id="filter28927-8"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur28929-2"
+ stdDeviation="0.24891089" />
+ </filter>
+ <linearGradient
+ id="linearGradient28935-8">
+ <stop
+ id="stop28937-7"
+ offset="0"
+ style="stop-color:#949494;stop-opacity:0.39215687" />
+ <stop
+ style="stop-color:#949494"
+ offset="0.5"
+ id="stop28943-3" />
+ <stop
+ id="stop28939-8"
+ offset="1"
+ style="stop-color:#949494;stop-opacity:0.39215687" />
+ </linearGradient>
+ <filter
+ height="1.3626815"
+ y="-0.18134074"
+ width="1.3573579"
+ x="-0.17867894"
+ id="filter28949-8"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur28951-1"
+ stdDeviation="0.51947927" />
+ </filter>
+ <filter
+ id="filter15133-1"
+ x="-0.2921797"
+ width="1.5843594"
+ y="-0.30825046"
+ height="1.6165009"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ stdDeviation="1.7403319"
+ id="feGaussianBlur15135-5" />
+ </filter>
+ <linearGradient
+ id="linearGradient28853-5">
+ <stop
+ id="stop28855-3"
+ offset="0"
+ style="stop-color:#020204" />
+ <stop
+ style="stop-color:#020204"
+ offset="0.73448181"
+ id="stop28865-0" />
+ <stop
+ id="stop28857-9"
+ offset="1"
+ style="stop-color:#5c5c5c" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient28799-3">
+ <stop
+ id="stop28801-6"
+ offset="0"
+ style="stop-color:#fefefc" />
+ <stop
+ style="stop-color:#fefefc"
+ offset="0.75733864"
+ id="stop28807-7" />
+ <stop
+ id="stop28803-0"
+ offset="1"
+ style="stop-color:#d4d4d4" />
+ </linearGradient>
+ <filter
+ id="filter30475-4"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur30477-9"
+ stdDeviation="0.93152507" />
+ </filter>
+ <filter
+ height="1.2583811"
+ y="-0.12919053"
+ width="1.1527554"
+ x="-0.07637769"
+ id="filter30479-2"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur30481-9"
+ stdDeviation="2.0355046" />
+ </filter>
+ <radialGradient
+ xlink:href="#linearGradient28799-3"
+ id="radialGradient18806"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.3678445,-0.14174542,0.12232724,5.1555606,-4050.2842,-3651.9091)"
+ cx="223.19559"
+ cy="137.66095"
+ fx="223.19559"
+ fy="137.66095"
+ r="14.572236" />
+ <radialGradient
+ xlink:href="#linearGradient28799-3"
+ id="radialGradient18808"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.4854583,-0.14174542,0.16292135,5.1555606,-4153.9928,-3651.9091)"
+ cx="223.19559"
+ cy="137.66095"
+ fx="223.19559"
+ fy="137.66095"
+ r="14.572236" />
+ <radialGradient
+ xlink:href="#linearGradient28853-5"
+ id="radialGradient18810"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.8828667,-2.095182,1.9017128,2.6166623,-4309.1569,-2748.9641)"
+ cx="275.53763"
+ cy="150.65126"
+ fx="275.53763"
+ fy="150.65126"
+ r="15.382211" />
+ <linearGradient
+ xlink:href="#linearGradient28935-8"
+ id="linearGradient18812"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.1310954,0,0,4.1310954,-3872.2972,-3591.6209)"
+ x1="213.01591"
+ y1="132.76981"
+ x2="219.73343"
+ y2="140.72476" />
+ <linearGradient
+ xlink:href="#linearGradient28976-3"
+ id="linearGradient18814"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.1310954,0,0,4.1310954,-4469.3396,-3533.2586)"
+ x1="337.25"
+ y1="119.98718"
+ x2="358.625"
+ y2="132.48718" />
+ <linearGradient
+ xlink:href="#linearGradient29336-6"
+ id="linearGradient18816"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.1310954,0,0,4.1310954,-4362.7847,-3534.2586)"
+ x1="294.50998"
+ y1="114.56181"
+ x2="308.74051"
+ y2="127.99684" />
+ <linearGradient
+ xlink:href="#linearGradient29336-6"
+ id="linearGradient18818"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.1310954,0,0,4.1310954,-4362.7847,-3534.2586)"
+ x1="253.22745"
+ y1="115.66637"
+ x2="266.62701"
+ y2="128.57106" />
+ <linearGradient
+ xlink:href="#linearGradient29477-3"
+ id="linearGradient18820"
+ gradientUnits="userSpaceOnUse"
+ x1="164.04878"
+ y1="132.06271"
+ x2="169.8824"
+ y2="142.49252"
+ gradientTransform="matrix(4.1310954,0,0,4.1310954,-3830.9862,-3591.6209)" />
+ <radialGradient
+ xlink:href="#linearGradient28469-0"
+ id="radialGradient18822"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.8674771,-1.5962723,1.1208968,2.7157292,-4446.5165,-2927.1324)"
+ cx="294.48483"
+ cy="193.09949"
+ fx="294.48483"
+ fy="193.09949"
+ r="31.111488" />
+ <linearGradient
+ xlink:href="#linearGradient28275-8"
+ id="linearGradient18824"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.1310954,0,0,4.1310954,-4304.0956,-3533.2586)"
+ x1="256.85657"
+ y1="158.31404"
+ x2="313.3367"
+ y2="157.8721" />
+ <radialGradient
+ xlink:href="#linearGradient29529-6"
+ id="radialGradient18826"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.131097,0,0,2.409777,-3376.5661,-3337.9047)"
+ cx="77.67215"
+ cy="147.09335"
+ fx="77.67215"
+ fy="147.09335"
+ r="3.2300935" />
+ <radialGradient
+ xlink:href="#linearGradient29529-6"
+ id="radialGradient18828"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.1310954,0,0,4.4414189,-3376.5659,-3637.4522)"
+ cx="63.125401"
+ cy="147.44128"
+ fx="63.125401"
+ fy="147.44128"
+ r="1.5350333" />
+ <linearGradient
+ xlink:href="#linearGradient28572-7"
+ id="linearGradient18830"
+ gradientUnits="userSpaceOnUse"
+ x1="243.03125"
+ y1="157.01843"
+ x2="243.46875"
+ y2="159.76843"
+ gradientTransform="matrix(4.1310954,0,0,4.1310954,-3913.8041,-2496.738)" />
+ <radialGradient
+ xlink:href="#linearGradient29652-2"
+ id="radialGradient18832"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83204988,-0.13699038,0.12661832,0.76905233,-3449.4809,-3062.1657)"
+ cx="268.06998"
+ cy="126.53491"
+ fx="268.06998"
+ fy="126.53491"
+ r="35.51144" />
+ <radialGradient
+ xlink:href="#linearGradient4417-0"
+ id="radialGradient18834"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.8853315,0,0,3.1535055,-2001.7189,-3325.7952)"
+ cx="336.22372"
+ cy="220.53755"
+ fx="336.22372"
+ fy="220.53755"
+ r="27.391165" />
+ <radialGradient
+ xlink:href="#linearGradient4417-0"
+ id="radialGradient18836"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.1310954,0,0,3.1535055,-4244.096,-3384.1575)"
+ cx="312.14502"
+ cy="236.36569"
+ fx="312.14502"
+ fy="236.36569"
+ r="27.391165" />
+ <radialGradient
+ xlink:href="#linearGradient4417-0"
+ id="radialGradient18838"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.1310954,0,0,4.4171109,-4244.096,-3653.0102)"
+ cx="275.55389"
+ cy="225.13487"
+ fx="275.55389"
+ fy="225.13487"
+ r="10.84542" />
+ <linearGradient
+ xlink:href="#linearGradient15103-0"
+ id="linearGradient18840"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.1310954,0,0,4.1310954,-4329.3811,-3533.2586)"
+ x1="338.28552"
+ y1="323.90076"
+ x2="341.98224"
+ y2="351.48654" />
+ <linearGradient
+ xlink:href="#linearGradient14392-8"
+ id="linearGradient18842"
+ gradientUnits="userSpaceOnUse"
+ x1="442.03912"
+ y1="371.54401"
+ x2="490.12241"
+ y2="293.58548"
+ gradientTransform="matrix(4.1310954,0,0,4.1310954,-4657.205,-3591.6209)" />
+ <linearGradient
+ xlink:href="#linearGradient17009"
+ id="linearGradient18844"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.1310954,0,0,4.1310954,-4244.096,-3599.8828)"
+ x1="355.16373"
+ y1="289.58905"
+ x2="353.74951"
+ y2="302.31699" />
+ <radialGradient
+ xlink:href="#linearGradient14518-6"
+ id="radialGradient18846"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.40433,1.4480851,-1.5200531,5.6729179,-4246.2002,-4584.5264)"
+ cx="363.33957"
+ cy="303.41541"
+ fx="363.33957"
+ fy="303.41541"
+ r="16.845654" />
+ <radialGradient
+ xlink:href="#linearGradient14518-6"
+ id="radialGradient18848"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.40433,1.4480851,-1.5200531,5.6729179,-4406.1997,-5539.2375)"
+ cx="363.33957"
+ cy="303.41541"
+ fx="363.33957"
+ fy="303.41541"
+ r="16.845654" />
+ <radialGradient
+ xlink:href="#linearGradient14830-4"
+ id="radialGradient18850"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4882364,0.64777425,-0.29937164,0.68779495,-3017.4627,-2781.6546)"
+ cx="382.23483"
+ cy="246.85757"
+ fx="382.23483"
+ fy="246.85757"
+ r="20.537666" />
+ <linearGradient
+ xlink:href="#linearGradient14830-4"
+ id="linearGradient18852"
+ gradientUnits="userSpaceOnUse"
+ x1="358.5"
+ y1="279.36218"
+ x2="361.5"
+ y2="279.23718"
+ gradientTransform="matrix(4.1310954,0,0,4.1310954,-4094.0958,-3533.2586)" />
+ <linearGradient
+ xlink:href="#linearGradient14132-6"
+ id="linearGradient18854"
+ gradientUnits="userSpaceOnUse"
+ x1="123.13397"
+ y1="301.54044"
+ x2="170.86368"
+ y2="381.62027"
+ gradientTransform="matrix(4.1310954,0,0,4.1310954,-3954.9192,-3591.6209)" />
+ <linearGradient
+ xlink:href="#linearGradient14168-5"
+ id="linearGradient18856"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.1310954,0,0,4.1310954,-3957.1101,-3598.9236)"
+ x1="171.57079"
+ y1="323.99109"
+ x2="186.5968"
+ y2="352.27536" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath391">
+ <path
+ id="path393"
+ d="m 137.57703,281.0191 c 1.59929,-0.66295 3.3982,-0.78361 5.10074,-0.46963 1.70253,0.31398 3.31141,1.04948 4.74342,2.02239 2.86402,1.94583 4.98821,4.77774 7.02263,7.57952 4.67189,6.43406 9.16868,13.00227 13.24488,19.8293 3.30635,5.53766 6.34352,11.25685 10.16415,16.45304 2.49398,3.3919 5.3066,6.53947 7.813,9.92221 2.50639,3.38273 4.72794,7.05586 5.83931,11.11662 1.44411,5.27653 0.88463,11.09291 -1.62666,15.95302 -1.76663,3.41896 -4.47646,6.35228 -7.77242,8.33898 -3.29595,1.9867 -7.17064,3.01444 -11.01635,2.87021 -6.11413,-0.2293 -11.69944,-3.28515 -17.38362,-5.54906 -11.58097,-4.6125 -24.15978,-6.0594 -36.09666,-9.65174 -3.66859,-1.10404 -7.27582,-2.4107 -10.96988,-3.42629 -1.64125,-0.45122 -3.30866,-0.8482 -4.85875,-1.55144 -1.55008,-0.70325 -2.999548,-1.7491 -3.86171,-3.21675 -0.666391,-1.13439 -0.948386,-2.47002 -0.930187,-3.78554 0.0182,-1.31552 0.325889,-2.61453 0.773815,-3.85158 0.895851,-2.47409 2.343262,-4.71374 3.320162,-7.15696 1.59511,-3.98935 1.88169,-8.38839 1.66657,-12.67942 -0.21511,-4.29103 -0.91078,-8.54478 -1.20454,-12.83115 -0.13118,-1.91406 -0.18066,-3.85256 0.18479,-5.73598 0.36545,-1.88343 1.17577,-3.72459 2.55771,-5.05541 1.27406,-1.22693 2.96492,-1.95531 4.69643,-2.31651 1.73151,-0.3612 3.51533,-0.37747 5.28367,-0.33762 1.76833,0.0399 3.54067,0.13425 5.30351,-0.0106 1.76284,-0.14488 3.53347,-0.54055 5.06911,-1.41828 1.45996,-0.83447 2.65433,-2.0745 3.64374,-3.43424 0.9894,-1.35974 1.78909,-2.84573 2.60891,-4.31396 0.81983,-1.46823 1.66834,-2.93151 2.74157,-4.22611 1.07324,-1.2946 2.38923,-2.42304 3.94266,-3.06698"
+ style="fill:url(#linearGradient395)"
+ transform="matrix(1,0,0,1.0182804,0,-4.0313444)" />
+ </clipPath>
+ <linearGradient
+ xlink:href="#linearGradient14132-6"
+ id="linearGradient395"
+ gradientUnits="userSpaceOnUse"
+ x1="123.13397"
+ y1="301.54044"
+ x2="170.86368"
+ y2="381.62027" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath401">
+ <path
+ transform="translate(-240.00015,-1)"
+ style="fill:url(#linearGradient395)"
+ d="m 137.57703,281.0191 c 1.59929,-0.66295 3.3982,-0.78361 5.10074,-0.46963 1.70253,0.31398 3.31141,1.04948 4.74342,2.02239 2.86402,1.94583 4.98821,4.77774 7.02263,7.57952 4.67189,6.43406 9.16868,13.00227 13.24488,19.8293 3.30635,5.53766 6.34352,11.25685 10.16415,16.45304 2.49398,3.3919 5.3066,6.53947 7.813,9.92221 2.50639,3.38273 4.72794,7.05586 5.83931,11.11662 1.44411,5.27653 0.88463,11.09291 -1.62666,15.95302 -1.76663,3.41896 -4.47646,6.35228 -7.77242,8.33898 -3.29595,1.9867 -7.17064,3.01444 -11.01635,2.87021 -6.11413,-0.2293 -11.69944,-3.28515 -17.38362,-5.54906 -11.58097,-4.6125 -24.15978,-6.0594 -36.09666,-9.65174 -3.66859,-1.10404 -7.27582,-2.4107 -10.96988,-3.42629 -1.64125,-0.45122 -3.30866,-0.8482 -4.85875,-1.55144 -1.55008,-0.70325 -2.999548,-1.7491 -3.86171,-3.21675 -0.666391,-1.13439 -0.948386,-2.47002 -0.930187,-3.78554 0.0182,-1.31552 0.325889,-2.61453 0.773815,-3.85158 0.895851,-2.47409 2.343262,-4.71374 3.320162,-7.15696 1.59511,-3.98935 1.88169,-8.38839 1.66657,-12.67942 -0.21511,-4.29103 -0.91078,-8.54478 -1.20454,-12.83115 -0.13118,-1.91406 -0.18066,-3.85256 0.18479,-5.73598 0.36545,-1.88343 1.17577,-3.72459 2.55771,-5.05541 1.27406,-1.22693 2.96492,-1.95531 4.69643,-2.31651 1.73151,-0.3612 3.51533,-0.37747 5.28367,-0.33762 1.76833,0.0399 3.54067,0.13425 5.30351,-0.0106 1.76284,-0.14488 3.53347,-0.54055 5.06911,-1.41828 1.45996,-0.83447 2.65433,-2.0745 3.64374,-3.43424 0.9894,-1.35974 1.78909,-2.84573 2.60891,-4.31396 0.81983,-1.46823 1.66834,-2.93151 2.74157,-4.22611 1.07324,-1.2946 2.38923,-2.42304 3.94266,-3.06698"
+ id="path403" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath419">
+ <path
+ style="fill:url(#linearGradient423)"
+ d="m 513.18983,336.61385 c -2.6238,3.11482 -6.268,5.17039 -9.89648,7.01985 -6.1886,3.15437 -12.60169,5.92177 -18.41964,9.71654 -3.89802,2.54249 -7.4959,5.52671 -10.86016,8.74238 -2.87719,2.75012 -5.60582,5.68745 -8.83247,8.01771 -3.25567,2.35122 -7.01915,4.05426 -10.99061,4.6502 -4.83026,0.72481 -9.82134,-0.21289 -14.29898,-2.16416 -3.13754,-1.36728 -6.15569,-3.3229 -7.96301,-6.22931 -1.81425,-2.91754 -2.22807,-6.48813 -2.23266,-9.92375 -0.008,-6.07666 1.11824,-12.09004 2.17848,-18.07349 0.88097,-4.97177 1.71949,-9.95483 2.26013,-14.97502 0.98337,-9.13118 0.9763,-18.35278 0.3199,-27.51327 -0.10993,-1.53416 -0.23754,-3.0832 -0.008,-4.60412 0.22922,-1.52092 0.85475,-3.0367 2.02069,-4.03986 1.07696,-0.9266 2.52093,-1.33598 3.93947,-1.4145 1.41854,-0.0785 2.83404,0.14655 4.23982,0.35197 3.31254,0.48405 6.65159,0.8649 9.88917,1.71656 2.04284,0.53738 4.03315,1.25925 6.0722,1.81081 3.40258,0.92039 6.96639,1.36144 10.46739,0.95192 3.76917,-0.44089 7.42987,-1.85678 11.22363,-1.76474 1.55658,0.0378 3.1015,0.33171 4.58649,0.79985 1.51539,0.47772 3.00914,1.16182 4.12281,2.29512 0.84639,0.8613 1.43579,1.94539 1.87872,3.06879 0.65982,1.67352 1.01492,3.457 1.16703,5.24945 0.13475,1.58788 0.11343,3.19441 0.41433,4.75933 0.49503,2.57458 1.84746,4.92305 3.52848,6.93494 1.68102,2.01189 3.68982,3.72048 5.69641,5.40783 1.99908,1.68103 4.0106,3.35469 6.16708,4.82839 1.0121,0.69165 2.05642,1.33949 3.01736,2.10062 0.96094,0.76113 1.84466,1.6468 2.44543,2.71535 0.81492,1.44944 1.06377,3.2077 0.53758,4.87655 -0.5262,1.66885 -1.48162,3.27659 -2.67059,4.68806 z"
+ id="path421"
+ clip-path="none" />
+ </clipPath>
+ <linearGradient
+ xlink:href="#linearGradient14392-8"
+ id="linearGradient423"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-250.00016,-58.362187)"
+ x1="442.03912"
+ y1="371.54401"
+ x2="490.12241"
+ y2="293.58548" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath426">
+ <path
+ style="fill:url(#linearGradient430);stroke-width:0.842603"
+ d="m 509.36312,335.7449 c -2.29559,2.52764 -5.48394,4.19571 -8.65854,5.69652 -5.41448,2.55973 -11.02537,4.80544 -16.11557,7.88485 -3.41042,2.0632 -6.55825,4.48486 -9.50168,7.09433 -2.51729,2.23169 -4.9046,4.6153 -7.72764,6.50627 -2.84842,1.90799 -6.14114,3.28999 -9.61581,3.77358 -4.22606,0.58818 -8.59281,-0.17275 -12.51035,-1.75618 -2.74507,-1.10954 -5.38569,-2.6965 -6.96694,-5.05501 -1.5873,-2.36755 -1.94936,-5.26504 -1.95338,-8.053 -0.007,-4.93114 0.97837,-9.81092 1.90598,-14.66641 0.77077,-4.03453 1.5044,-8.07822 1.97742,-12.15205 0.86036,-7.40983 0.85417,-14.89305 0.27988,-22.32667 -0.0962,-1.24495 -0.20783,-2.50198 -0.007,-3.73619 0.20055,-1.23421 0.74783,-2.46424 1.76793,-3.27829 0.94224,-0.75193 2.20559,-1.08414 3.44669,-1.14785 1.24109,-0.0637 2.47953,0.11892 3.70947,0.28562 2.89818,0.3928 5.81955,0.70185 8.65215,1.39296 1.78731,0.43608 3.52865,1.02187 5.31264,1.46945 2.97696,0.74689 6.09498,1.10479 9.15805,0.77247 3.29769,-0.35777 6.50048,-1.50675 9.81968,-1.43206 1.36187,0.0307 2.71354,0.26918 4.01278,0.64907 1.32583,0.38766 2.63273,0.9428 3.6071,1.86246 0.74051,0.69893 1.25619,1.57866 1.64371,2.49028 0.57728,1.35804 0.88797,2.80532 1.02105,4.25987 0.11789,1.28854 0.0992,2.59222 0.3625,3.86213 0.43311,2.08924 1.61637,3.995 3.08711,5.62762 1.47074,1.63263 3.22827,3.01913 4.98386,4.38839 1.74902,1.36413 3.50892,2.72229 5.39565,3.91818 0.8855,0.56126 1.79919,1.08698 2.63992,1.70462 0.84074,0.61765 1.61392,1.33636 2.13954,2.20348 0.71298,1.1762 0.93071,2.60301 0.47034,3.95726 -0.46038,1.35425 -1.29629,2.65891 -2.33654,3.8043 z"
+ id="path428"
+ clip-path="none" />
+ </clipPath>
+ <linearGradient
+ xlink:href="#linearGradient14392-8"
+ id="linearGradient430"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.87491199,0,0,0.81148755,-158.36095,15.22676)"
+ x1="442.03912"
+ y1="371.54401"
+ x2="490.12241"
+ y2="293.58548" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath433">
+ <path
+ style="fill:url(#linearGradient437)"
+ d="m 263.18967,278.25167 c -2.6238,3.11482 -6.268,5.17039 -9.89648,7.01985 -6.1886,3.15437 -12.60169,5.92177 -18.41964,9.71654 -3.89802,2.54249 -7.4959,5.52671 -10.86016,8.74238 -2.87719,2.75012 -5.60582,5.68745 -8.83247,8.01771 -3.25567,2.35122 -7.01915,4.05426 -10.99061,4.6502 -4.83026,0.72481 -9.82134,-0.21289 -14.29898,-2.16416 -3.13754,-1.36728 -6.15569,-3.3229 -7.96301,-6.22931 -1.81425,-2.91754 -2.22807,-6.48813 -2.23266,-9.92375 -0.008,-6.07666 1.11824,-12.09004 2.17848,-18.07349 0.88097,-4.97177 1.71949,-9.95483 2.26013,-14.97502 0.98337,-9.13118 0.9763,-18.35278 0.3199,-27.51327 -0.10993,-1.53416 -0.23754,-3.0832 -0.008,-4.60412 0.22922,-1.52092 0.85475,-3.0367 2.02069,-4.03986 1.07696,-0.9266 2.52093,-1.33598 3.93947,-1.4145 1.41854,-0.0785 2.83404,0.14655 4.23982,0.35197 3.31254,0.48405 6.65159,0.8649 9.88917,1.71656 2.04284,0.53738 4.03315,1.25925 6.0722,1.81081 3.40258,0.92039 6.96639,1.36144 10.46739,0.95192 3.76917,-0.44089 7.42987,-1.85678 11.22363,-1.76474 1.55658,0.0378 3.1015,0.33171 4.58649,0.79985 1.51539,0.47772 3.00914,1.16182 4.12281,2.29512 0.84639,0.8613 1.43579,1.94539 1.87872,3.06879 0.65982,1.67352 1.01492,3.457 1.16703,5.24945 0.13475,1.58788 0.11343,3.19441 0.41433,4.75933 0.49503,2.57458 1.84746,4.92305 3.52848,6.93494 1.68102,2.01189 3.68982,3.72048 5.69641,5.40783 1.99908,1.68103 4.0106,3.35469 6.16708,4.82839 1.0121,0.69165 2.05642,1.33949 3.01736,2.10062 0.96094,0.76113 1.84466,1.6468 2.44543,2.71535 0.81492,1.44944 1.06377,3.2077 0.53758,4.87655 -0.5262,1.66885 -1.48162,3.27659 -2.67059,4.68806 z"
+ id="path435"
+ clip-path="none" />
+ </clipPath>
+ <linearGradient
+ xlink:href="#linearGradient14392-8"
+ id="linearGradient437"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-500.00032,-116.72437)"
+ x1="442.03912"
+ y1="371.54401"
+ x2="490.12241"
+ y2="293.58548" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath504">
+ <path
+ style="fill:#020204;stroke-width:0.991084"
+ id="path506"
+ d="m 304.84727,225.44951 c 5.97679,4.89463 9.76903,12.28597 10.94319,20.00305 0.91574,6.01859 0.32054,12.19496 -1.0124,18.13223 -1.33294,5.93726 -3.39093,11.67615 -5.43351,17.40051 -0.81452,2.2827 -1.63269,4.5871 -1.95634,6.9933 -0.32365,2.40621 -0.1187,4.95426 1.02109,7.08777 1.3066,2.44578 3.74526,4.13021 6.36677,4.92292 2.58816,0.78263 5.38374,0.76618 8.00354,0.10153 2.61979,-0.66466 5.06582,-1.96341 7.19828,-3.64929 5.41763,-4.28306 8.68657,-10.94871 9.95201,-17.81211 1.26545,-6.86339 0.68401,-13.95038 -0.49258,-20.83014 -1.60443,-9.38136 -4.30394,-18.55105 -7.74003,-27.40773 -2.52746,-6.51466 -5.7653,-12.74244 -9.61753,-18.52016 -3.77934,-5.66839 -9.14163,-10.09303 -13.10336,-15.63502 -1.37643,-1.92547 -3.03189,-3.93159 -4.38419,-5.87845 -2.91575,-4.19771 -2.25544,-3.41451 -4.06424,-6.13155 -1.31235,-1.9713 -3.38449,-2.6487 -5.56491,-3.51096 -2.18041,-0.86226 -4.629,-1.11623 -6.88065,-0.47108 -2.96781,0.85034 -5.39233,3.23113 -6.68215,6.08208 -1.28982,2.85095 -1.51545,6.12313 -1.01363,9.2201 0.64739,3.99536 2.44215,7.70258 4.46569,11.18873 2.28537,3.93724 4.93283,7.72707 8.38442,10.65407 3.60205,3.05459 7.95771,5.06875 11.61053,8.0602" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath508">
+ <path
+ id="path510"
+ d="m 240.47307,195.03592 c -7.07309,8.03686 -14.35222,15.81627 -18.34577,24.50506 -1.97625,4.41329 -2.91077,9.20725 -4.26498,13.84932 -1.5379,5.27176 -3.62609,10.3703 -5.97071,15.33612 -2.16496,4.58531 -4.54982,9.06291 -6.93891,13.53553 -1.7382,3.25409 -3.50514,6.58104 -4.10782,10.22071 -0.47628,2.87632 -0.1985,5.84423 0.53375,8.66626 0.73225,2.82202 1.90965,5.5106 3.23776,8.10601 5.66725,11.07504 14.17003,20.62168 24.24176,27.92472 4.57063,3.31418 9.46669,6.18109 14.60245,8.52595 2.78247,1.27041 5.71355,2.40436 8.77186,2.45744 1.52915,0.0265 3.0741,-0.22544 4.47434,-0.84055 1.40023,-0.6151 2.65068,-1.60373 3.48254,-2.88709 1.02278,-1.5779 1.36992,-3.53829 1.16461,-5.40743 -0.2053,-1.86914 -0.93484,-3.65294 -1.91324,-5.25873 -2.38997,-3.92251 -6.1652,-6.76055 -9.79642,-9.57343 -7.84055,-6.07358 -15.42465,-12.48039 -22.68212,-19.23996 -2.04912,-1.90854 -4.09841,-3.87759 -5.53019,-6.28412 -1.3943,-2.34352 -2.1476,-5.01376 -2.65783,-7.69253 -1.39972,-7.34873 -1.04092,-15.08286 1.45958,-22.13343 0.97822,-2.75826 2.27118,-5.39201 3.51815,-8.03965 2.16133,-4.58906 4.20725,-9.26564 7.04933,-13.46723 3.53798,-5.23037 8.26749,-9.66049 11.15147,-15.27803 2.43423,-4.74149 3.41994,-10.07236 4.36185,-15.31831 0.73693,-4.10434 2.15042,-8.12437 2.86923,-12.23193 -1.40611,2.66567 -5.93796,7.04283 -8.71069,10.5253 z"
+ style="fill:#020204" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath533">
+ <path
+ style="fill:#020204"
+ id="path535"
+ d="m 386.1875,285.32775 c -0.40516,-1.10369 -1.11845,-2.08156 -1.9907,-2.86987 -0.87226,-0.78832 -1.90049,-1.39229 -2.98278,-1.85155 -2.16459,-0.91852 -4.52053,-1.26149 -6.83152,-1.69556 -2.17919,-0.40931 -4.34179,-0.90631 -6.52782,-1.27734 -2.27136,-0.38551 -4.6179,-0.63213 -6.8653,-0.1253 -1.96583,0.44333 -3.7845,1.45879 -5.27172,2.81864 -1.48723,1.35984 -2.64911,3.0564 -3.48499,4.89007 -1.47218,3.22952 -1.93451,6.86503 -1.65394,10.40316 0.20881,2.63325 0.87532,5.34594 2.60877,7.33912 1.40065,1.61052 3.38733,2.61526 5.43398,3.22092 3.52502,1.04316 7.36663,0.98822 10.86038,-0.1553 5.76689,-1.93113 10.87568,-5.77387 14.33034,-10.77903 1.13861,-1.64963 2.11217,-3.44809 2.5532,-5.4034 0.33597,-1.48955 0.34831,-3.08112 -0.1779,-4.51456" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath538">
+ <path
+ d="m 386.1875,285.32775 c -0.40516,-1.10369 -1.11845,-2.08156 -1.9907,-2.86987 -0.87226,-0.78832 -1.90049,-1.39229 -2.98278,-1.85155 -2.16459,-0.91852 -4.52053,-1.26149 -6.83152,-1.69556 -2.17919,-0.40931 -4.34179,-0.90631 -6.52782,-1.27734 -2.27136,-0.38551 -4.6179,-0.63213 -6.8653,-0.1253 -1.96583,0.44333 -3.7845,1.45879 -5.27172,2.81864 -1.48723,1.35984 -2.64911,3.0564 -3.48499,4.89007 -1.47218,3.22952 -1.93451,6.86503 -1.65394,10.40316 0.20881,2.63325 0.87532,5.34594 2.60877,7.33912 1.40065,1.61052 3.38733,2.61526 5.43398,3.22092 3.52502,1.04316 7.36663,0.98822 10.86038,-0.1553 5.76689,-1.93113 10.87568,-5.77387 14.33034,-10.77903 1.13861,-1.64963 2.11217,-3.44809 2.5532,-5.4034 0.33597,-1.48955 0.34831,-3.08112 -0.1779,-4.51456"
+ id="path540"
+ style="fill:#020204" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath622">
+ <path
+ style="fill:url(#radialGradient626)"
+ d="m 85.75,122.36218 c -2.78042,1.91023 -5.11057,4.57487 -6.25,7.75 -1.43603,4.00163 -0.88584,8.48071 0.5,12.5 1.41949,4.11688 3.79379,8.04098 7.37932,10.51234 1.79277,1.23567 3.86809,2.08301 6.0304,2.33859 2.16231,0.25558 4.40928,-0.0949 6.34028,-1.10093 2.35312,-1.22596 4.14782,-3.37278 5.26217,-5.78076 1.11436,-2.40798 1.5888,-5.0701 1.73783,-7.71924 0.18989,-3.37546 -0.14047,-6.80646 -1.25,-10 -1.20527,-3.46909 -3.39005,-6.67055 -6.47275,-8.6666 -1.54136,-0.99803 -3.29195,-1.68356 -5.11089,-1.93515 -1.81893,-0.25158 -3.70476,-0.0633 -5.41636,0.60175 -0.97547,0.37901 -1.88744,0.9074 -2.75,1.5"
+ id="path624" />
+ </clipPath>
+ <radialGradient
+ xlink:href="#linearGradient28799-3"
+ id="radialGradient626"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0857794,-0.03431182,0.03943781,1.2479887,-15.5421,-75.904827)"
+ cx="223.19559"
+ cy="137.66095"
+ fx="223.19559"
+ fy="137.66095"
+ r="14.572236" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath631">
+ <path
+ style="fill:url(#radialGradient635)"
+ d="m 54.23244,122.36218 c -1.78096,0.097 -3.48461,0.91899 -4.78785,2.1367 -1.30323,1.21771 -2.22137,2.81176 -2.78618,4.50357 -1.12962,3.38363 -0.87548,7.05177 -0.6187,10.60973 0.23251,3.22162 0.47041,6.50533 1.67679,9.50158 0.60319,1.49813 1.45024,2.91021 2.58034,4.06395 1.13009,1.15374 2.55173,2.04189 4.11829,2.43447 1.46884,0.36809 3.03816,0.29183 4.48279,-0.16209 1.44462,-0.45392 2.76391,-1.27887 3.84623,-2.33791 1.57904,-1.54507 2.64326,-3.5662 3.25345,-5.68947 0.61019,-2.12328 0.78416,-4.35155 0.7524,-6.56053 -0.0397,-2.76435 -0.40091,-5.53851 -1.26575,-8.16439 -0.86485,-2.62588 -2.24575,-5.10327 -4.1728,-7.08561 -0.93331,-0.96009 -1.99776,-1.80513 -3.19858,-2.39747 -1.20082,-0.59233 -2.54344,-0.92535 -3.88043,-0.85253"
+ id="path633" />
+ </clipPath>
+ <radialGradient
+ xlink:href="#linearGradient28799-3"
+ id="radialGradient635"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.81524244,-0.03431182,0.02961133,1.2479887,9.5624,-75.904827)"
+ cx="223.19559"
+ cy="137.66095"
+ fx="223.19559"
+ fy="137.66095"
+ r="14.572236" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath697">
+ <path
+ style="fill:url(#radialGradient701);stroke-width:0.77538"
+ d="m 214.63605,148.03815 c -2.51029,-0.0409 -4.99135,0.28921 -7.27146,0.88384 -4.05254,1.05688 -7.57367,2.93934 -10.08468,5.39315 -1.62814,0.85539 -3.05003,1.89919 -4.20722,3.08639 -0.66186,0.67901 -1.24391,1.41694 -1.50131,2.24757 -0.20244,0.65333 -0.19857,1.34469 -0.28524,2.01986 -0.0324,0.25293 -0.0778,0.5073 -0.0362,0.76548 0.0208,0.12909 0.0631,0.25809 0.13756,0.38081 0.0221,0.0364 0.0528,0.0707 0.0806,0.1055 0.0825,0.15031 0.18297,0.29681 0.31473,0.43099 0.28806,0.29334 0.68023,0.53107 1.09417,0.73203 0.41394,0.20097 0.85255,0.36757 1.2815,0.54936 2.28006,0.96628 4.22773,2.32456 5.9925,3.75924 2.3677,1.92485 4.52941,4.06099 7.5099,5.46004 2.10465,0.98794 4.52773,1.552 6.92602,1.72396 2.81637,0.20193 5.58521,-0.12293 8.18167,-0.69344 2.40631,-0.52873 4.69673,-1.27132 6.75202,-2.25401 3.90702,-1.86802 6.98699,-4.60634 11.42445,-5.83442 0.96876,-0.2681 1.99041,-0.45921 2.91317,-0.78993 0.92276,-0.33072 1.76305,-0.8265 2.11948,-1.52711 0.34261,-0.67347 0.2049,-1.45031 0.23569,-2.18968 0.0329,-0.791 0.26357,-1.5559 0.33312,-2.34278 0.0695,-0.78687 -0.0382,-1.6289 -0.62199,-2.35178 -0.12955,-0.16043 -0.28324,-0.31001 -0.45163,-0.45157 -0.0509,-0.29235 -0.22134,-0.58029 -0.46622,-0.83239 -0.50487,-0.51975 -1.29334,-0.87172 -2.09515,-1.11671 -1.09824,-0.33555 -2.25599,-0.50211 -3.39891,-0.69601 -3.51093,-0.59565 -6.96955,-1.47539 -10.29467,-2.60394 -1.65302,-0.56104 -3.27073,-1.18327 -4.90416,-1.77928 -1.67927,-0.61273 -3.38672,-1.20103 -5.16515,-1.57729 -1.49109,-0.31546 -3.00643,-0.47332 -4.51259,-0.49788 z"
+ id="path699" />
+ </clipPath>
+ <radialGradient
+ xlink:href="#linearGradient28469-0"
+ id="radialGradient701"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.81494503,-0.25452614,0.31491054,0.43302392,-75.371375,150.73818)"
+ cx="294.48483"
+ cy="193.09949"
+ fx="294.48483"
+ fy="193.09949"
+ r="31.111488" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath816">
+ <path
+ style="fill:#fdfdfb"
+ d="m -26.29567,154.81433 c -1.0464,1.31136 -1.72773,2.88726 -2.13927,4.51369 -0.41153,1.62642 -0.56228,3.30801 -0.62653,4.98446 -0.12849,3.35291 0.0765,6.77015 -0.81096,10.00604 -0.94874,3.4595 -3.07595,6.45649 -5.15761,9.37795 -3.60485,5.05916 -7.248548,10.25011 -9.027058,16.20217 -1.077103,3.60469 -1.435613,7.42255 -1.04841,11.16474 -4.035298,5.9262 -7.528852,12.22112 -10.4229,18.78069 -4.386197,9.94163 -7.396115,20.5265 -8.454552,31.34105 -1.296051,13.24236 0.397579,26.86184 5.627472,39.09655 3.781309,8.84592 9.417708,16.94379 16.68566,23.2466 3.695408,3.20468 7.799668,5.93944 12.189498,8.09709 15.21252,7.47713 34.01348,7.49101 48.97296,-0.48031 7.81838,-4.16611 14.41789,-10.2582 20.78084,-16.42232 3.83183,-3.71209 7.64353,-7.51249 10.56653,-11.97551 5.62746,-8.59236 7.58747,-19.03566 8.80544,-29.23436 2.12971,-17.83321 2.1984,-36.66998 -5.62137,-52.83816 -2.69219,-5.56638 -6.27896,-10.69891 -10.58065,-15.14052 -1.14547,-7.78087 -3.40638,-15.39666 -6.69212,-22.54215 -2.37045,-5.15502 -5.2683,-10.06187 -7.47079,-15.29085 -0.90422,-2.14672 -1.68995,-4.34486 -2.69346,-6.44699 -1.00352,-2.10213 -2.24145,-4.12498 -3.92446,-5.73541 -1.72343,-1.6491 -3.87096,-2.81824 -6.13593,-3.56631 -2.26498,-0.74806 -4.64917,-1.08697 -7.03147,-1.2068 -4.7646,-0.23966 -9.53872,0.38348 -14.30559,0.19423 -3.79476,-0.15066 -7.57776,-0.81566 -11.36892,-0.59186 -1.89557,0.1119 -3.79087,0.45058 -5.55026,1.1649 -1.7594,0.71432 -3.38173,1.81713 -4.56609,3.30139"
+ id="path818" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath820">
+ <path
+ id="path822"
+ d="m -47.29567,161.44377 c -1.0464,1.42368 -1.72773,3.13456 -2.13927,4.9003 -0.41153,1.76572 -0.56228,3.59134 -0.62653,5.41138 -0.12849,3.64009 0.0765,7.35002 -0.81096,10.86307 -0.94874,3.75581 -3.07595,7.0095 -5.15761,10.18119 -3.60485,5.49248 -7.248548,11.12804 -9.027058,17.58991 -1.077103,3.91343 -1.435613,8.0583 -1.04841,12.12101 -4.035298,6.43379 -7.528852,13.26788 -10.4229,20.38928 -4.386197,10.79315 -7.396115,22.28463 -8.454552,34.02546 -1.296051,14.37658 0.397579,29.16259 5.627472,42.44522 3.781309,9.60359 9.417708,18.39505 16.68566,25.23771 3.695408,3.47916 7.799668,6.44816 12.189498,8.79061 15.21252,8.11756 34.01348,8.13263 48.97296,-0.52145 7.81838,-4.52294 14.41789,-11.13683 20.78084,-17.82891 3.83183,-4.03004 7.64353,-8.15595 10.56653,-13.00123 5.62746,-9.32831 7.58747,-20.66609 8.80544,-31.73832 2.12971,-19.36065 2.1984,-39.81082 -5.62137,-57.36383 -2.69219,-6.04314 -6.27896,-11.61528 -10.58065,-16.43732 -1.14547,-8.44732 -3.40638,-16.71541 -6.69212,-24.47292 -2.37045,-5.59655 -5.2683,-10.92368 -7.47079,-16.60053 -0.90422,-2.33059 -1.68995,-4.71701 -2.69346,-6.99919 -1.00352,-2.28218 -2.24145,-4.47829 -3.92446,-6.22665 -1.72343,-1.79035 -3.87096,-3.05963 -6.13593,-3.87177 -2.26498,-0.81213 -4.64917,-1.18007 -7.03147,-1.31016 -4.7646,-0.26019 -9.53872,0.41632 -14.30559,0.21086 -3.79476,-0.16356 -7.57776,-0.88552 -11.36892,-0.64255 -1.89557,0.12148 -3.79087,0.48917 -5.55026,1.26467 -1.7594,0.77551 -3.38173,1.97277 -4.56609,3.58416"
+ style="fill:#fdfdfb;stroke-width:1.04195" />
+ </clipPath>
+ </defs>
+ <metadata
+ id="metadata1886">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <rect
+ style="fill:#eaecef;fill-opacity:0.99806601;fill-rule:evenodd;stroke:none;stroke-width:0.469157;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000"
+ id="rect9516"
+ width="44.37664"
+ height="95.576836"
+ x="99.252327"
+ y="2.6458309"
+ rx="2.0593712"
+ ry="2.0593712" />
+ <rect
+ style="fill:#eaecef;fill-opacity:0.99806601;fill-rule:evenodd;stroke:none;stroke-width:0.451142;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000"
+ id="rect9514"
+ width="41.034023"
+ height="95.576836"
+ x="2.6458337"
+ y="2.6458309"
+ rx="2.0593712"
+ ry="2.0593712" />
+ <g
+ id="g4037"
+ transform="matrix(0.38632647,0,0,0.38632647,42.374522,21.078916)">
+ <g
+ id="logo"
+ transform="matrix(0.26458333,0,0,0.26458333,36.63503,14.525527)">
+ <g
+ style="stroke-width:0.740741"
+ transform="matrix(1.35,0,0,1.35,254.80649,13.590502)"
+ id="baseplate">
+ <path
+ id="rect1083"
+ style="display:inline;opacity:1;vector-effect:none;fill:#4a6c1a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.63111;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M -160.02233,0.20609549 H -8.8412571 c 10.4693001,0 18.8976531,8.42835351 18.8976531,18.89765351 V 170.28482 c 0,10.4693 -8.428353,18.89765 -18.8976531,18.89765 H -160.02233 c -10.4693,0 -18.89765,-8.42835 -18.89765,-18.89765 V 19.103749 c 0,-10.4693 8.42835,-18.89765351 18.89765,-18.89765351 z" />
+ <ellipse
+ style="display:inline;opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.63111;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path1085"
+ cx="-163.04599"
+ cy="16.080099"
+ rx="5.2913389"
+ ry="5.2913384" />
+ <ellipse
+ ry="5.2913384"
+ rx="5.2913389"
+ cy="16.080099"
+ cx="-5.8176479"
+ id="ellipse1087"
+ style="display:inline;opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.63111;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <ellipse
+ style="display:inline;opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.63111;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="ellipse1089"
+ cx="-5.8176479"
+ cy="173.30853"
+ rx="5.2913389"
+ ry="5.2913384" />
+ <ellipse
+ ry="5.2913384"
+ rx="5.2913389"
+ cy="173.30853"
+ cx="-163.04599"
+ id="ellipse1091"
+ style="display:inline;opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.63111;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ id="penguin">
+ <path
+ id="path65"
+ d="m 97.791067,210.93178 43.032003,44.41 27.614,-30.648 -0.582,1.512 c -1.516,5.96 -1.278,14.293 6.165,23.295 l 1.954,2.365 2.298,-2.035 c 0.339,-0.301 8.239,-7.416 7.993,-16.809 -0.054,-2.016 -0.47,-3.961 -1.242,-5.83 1.175,0.305 2.383,0.456 3.623,0.456 8.008,0 14.123,-6.613 14.382,-6.892 l 2.077,-2.287 -2.359,-1.987 c -4.785,-4.022 -9.887,-6.062 -15.161,-6.062 -1.14,0 -3.1713,0.2398 -3.5343,0.2748 z"
+ style="fill:#ffffff" />
+ <path
+ id="path16"
+ d="m 204.01607,156.61778 -0.001,-23.812 H 77.532067 c 0,0 0,23.806 0.001,23.812 z"
+ style="fill:#ffffff" />
+ <path
+ d="m 234.75407,88.440783 c 0,-20.429 -16.899,-37.054 -37.332,-37.054 -4.865,0 -9.648,0.971 -13.906,2.682 -2.61,1.046 -5.145,2.377 -7.422,3.969 -0.51,-2.782 -1.43,-5.424 -2.627,-7.891 -5.021,-10.359 -15.63,-17.532 -27.892,-17.532 -8.64,0 -16.461,3.557 -22.09,9.278 -1.968,2 -3.667,4.264 -5.039,6.734 -1.574,-2.36 -3.431,-4.512 -5.486,-6.451 -6.637,-6.247 -15.545003,-10.108 -25.358003,-10.108 -20.43,0 -37.007,16.621 -37.007,37.054 0,13.862 7.939,25.926 19.003,32.268997 V 89.563783 h 7.935 V 124.86978 H 204.01507 v -13.306 h 7.935 v 11.273 c 13.536,-5.464 22.804,-18.828 22.804,-34.395997 z"
+ id="path20"
+ style="fill:#ffffff" />
+ <path
+ style="fill:#001024"
+ id="path24"
+ d="m 204.01607,156.61878 c 0,0 -126.479003,-0.008 -126.479003,-0.002 0.004,32.285 10.435,59.566 47.459003,65.409 l 12.768,13.382 c 0.76,0.811 1.833,1.322 3.031,1.322 1.187,0 2.25,-0.501 3.009,-1.297 l 12.755,-13.409 c 37.002,-5.849 47.457,-33.116 47.457,-65.405 z" />
+ <path
+ style="fill:#ffffff"
+ id="path26"
+ d="m 157.90607,188.45778 v -1.114 c 0,-4.216 3.563,-7.776 7.781,-7.776 4.213,0 7.771,3.561 7.771,7.776 v 1.114 h 10.897 v -1.114 c 0,-10.296 -8.375,-18.672 -18.669,-18.672 -10.299,0 -18.678,8.376 -18.678,18.672 v 1.114 z" />
+ <path
+ style="fill:#ffffff"
+ id="path28"
+ d="m 106.72307,188.45778 v -1.114 c 0,-4.216 3.56,-7.776 7.772,-7.776 4.215,0 7.775,3.561 7.775,7.776 v 1.114 h 10.897 v -1.114 c 0,-10.296 -8.376,-18.672 -18.672,-18.672 -10.294,0 -18.668003,8.376 -18.668003,18.672 v 1.114 z" />
+ <path
+ style="fill:#ff9b00"
+ id="path30"
+ d="m 167.68807,201.51878 c 0,0 -7.633,-6.097 -26.857,-6.097 -19.221,0 -26.854,6.097 -26.854,6.097 l 26.843,27.809 z" />
+ </g>
+ </g>
+ </g>
+ <g
+ id="g3444"
+ transform="matrix(0.53068417,0,0,0.53068417,136.24088,57.917875)">
+ <g
+ transform="matrix(0.28222222,0,0,0.28222222,-154.43109,0.38685556)"
+ id="g5740-8-5">
+ <path
+ style="fill:#9e1f63;fill-opacity:1"
+ d="m 55.083984,105.09766 h 40.550782 c 5.193104,0 9.402344,-4.20926 9.402344,-9.402348 V 9.3710938 c 0,-5.193107 -4.20924,-9.40429692 -9.402344,-9.40429692 H 55.083984 Z"
+ id="path5738-0-9"
+ transform="translate(414.17371,14.17103)" />
+ <path
+ style="fill:#1f639e;fill-opacity:1"
+ d="M 49.859375,-0.03320312 H 9.3085938 c -5.1930901,0 -9.4023438,4.21118982 -9.4023438,9.40429692 V 95.695312 c 0,5.192678 4.2092538,9.402348 9.4023438,9.402348 H 49.859375 Z"
+ id="path5736-5-9"
+ transform="translate(414.17371,14.17103)" />
+ <g
+ transform="matrix(0.41208579,0,0,0.41208579,408.61385,8.4235118)"
+ id="g4986-4-6-1">
+ <g
+ id="g4988-0-6-4">
+ <circle
+ style="fill:#ffffff"
+ cx="35.129002"
+ cy="34.964001"
+ r="7.4099998"
+ id="circle4990-6-4-9" />
+ <circle
+ style="fill:#ffffff"
+ cx="246.895"
+ cy="34.964001"
+ r="7.4099998"
+ id="circle4992-2-0-1" />
+ <circle
+ style="fill:#ffffff"
+ cx="246.895"
+ cy="246.729"
+ r="7.4089999"
+ id="circle4994-9-0-0" />
+ <circle
+ style="fill:#ffffff"
+ cx="35.131001"
+ cy="246.729"
+ r="7.4089999"
+ id="circle4996-9-4-7" />
+ </g>
+ </g>
+ </g>
+ <g
+ style="fill:#ffffff;fill-opacity:1"
+ transform="matrix(0.48031713,0,0,0.43545026,-340.63223,-89.699674)"
+ id="g5468-8-6-2-4-9-4-5-8-6-0-5-7-5-5-8-5-0-6-5">
+ <g
+ style="fill:#ffffff;fill-opacity:1"
+ transform="translate(0.36303102,-0.36486702)"
+ id="g4915-2-9-6-5-73-3-2-8">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FontAwesome;-inkscape-font-specification:FontAwesome;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none"
+ x="249.03232"
+ y="-648.62506"
+ id="text5711-4-4-9-7-8-2-2-1-4-3-26-4-3-6-3-9-6-7"
+ transform="rotate(90)"><tspan
+ id="tspan5713-07-9-3-2-5-7-3-9-7-0-1-9-9-1-89-1-7-0"
+ x="249.03232"
+ y="-648.62506"
+ style="font-size:40px;line-height:1.25">ï…ˆ</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FontAwesome;-inkscape-font-specification:FontAwesome;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none"
+ x="-251.92296"
+ y="674.35278"
+ id="text5711-7-5-5-4-1-2-0-7-4-6-7-06-0-4-1-5-9-5-4"
+ transform="rotate(-90)"><tspan
+ id="tspan5713-7-4-3-6-4-3-9-5-7-5-8-1-9-8-5-53-6-6-8"
+ x="-251.92296"
+ y="674.35278"
+ style="font-size:40px;line-height:1.25">ï…ˆ</tspan></text>
+ </g>
+ </g>
+ </g>
+ <g
+ id="g3351"
+ transform="matrix(0.17494972,0,0,0.17494972,125.01765,33.077337)">
+ <path
+ id="path14"
+ style="fill:#092239;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.0352778"
+ d="m 40.192619,-60.786636 c 0,4.445706 -3.603625,8.050094 -8.049331,8.050094 h -73.90074 c -4.445847,0 -8.049543,-3.604388 -8.049543,-8.050094 v -73.900244 c 0,-4.44571 3.603696,-8.05004 8.049543,-8.05004 h 73.90074 c 4.445706,0 8.049331,3.60433 8.049331,8.05004 v 73.900244" />
+ <path
+ id="path16-0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.0352778"
+ d="m -42.093579,-132.68099 c 1.44392,0 2.614295,-1.17016 2.614295,-2.61373 0,-1.44356 -1.170375,-2.61443 -2.614295,-2.61443 -1.443214,0 -2.613837,1.17087 -2.613837,2.61443 0,1.44357 1.170623,2.61373 2.613837,2.61373" />
+ <path
+ id="path18"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.0352778"
+ d="m 32.612482,-137.90915 c -1.443214,0 -2.614083,1.17087 -2.614083,2.61443 0,1.44357 1.170869,2.61373 2.614083,2.61373 1.443567,0 2.614084,-1.17016 2.614084,-2.61373 0,-1.44356 -1.170517,-2.61443 -2.614084,-2.61443" />
+ <path
+ id="path20-4"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.0352778"
+ d="m 32.612482,-57.975279 c 1.443567,0 2.614084,-1.170658 2.614084,-2.61373 0,-1.444343 -1.170517,-2.613872 -2.614084,-2.613872 -1.443214,0 -2.614083,1.169529 -2.614083,2.613872 0,1.443072 1.170869,2.61373 2.614083,2.61373" />
+ <path
+ id="path22"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.0352778"
+ d="m -42.092873,-63.202881 c -1.44392,0 -2.614543,1.169529 -2.614543,2.613872 0,1.443072 1.170623,2.61373 2.614543,2.61373 1.443496,0 2.613589,-1.170658 2.613589,-2.61373 0,-1.444343 -1.170093,-2.613872 -2.613589,-2.613872" />
+ <path
+ id="path24-8"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.0352778"
+ d="m 21.902501,-108.22678 -26.6241404,-15.37159 -16.4151386,9.47738 v -19.05283 h -10.230698 v 55.6888 L -4.7216394,-62.113398 21.902501,-77.48502 v -30.74176" />
+ <path
+ id="path26-7"
+ style="fill:#f25373;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.0352778"
+ d="m -4.7216394,-73.678195 -16.6084616,-9.588783 v -19.177772 l 16.6084616,-9.58921 v 38.355765" />
+ <path
+ id="path28-1"
+ style="fill:#ee294a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.0352778"
+ d="m 11.886787,-83.266978 -16.6084264,9.588783 v -38.355765 l 16.6084264,9.58921 v 19.177772" />
+ </g>
+ <g
+ transform="matrix(0.06404675,0,0,0.06404675,115.11,30.318776)"
+ id="layer2">
+ <g
+ id="g463">
+ <path
+ style="fill:#020204"
+ d="m 140.8125,19.578125 c -7.16795,-0.07795 -14.42402,1.374646 -20.73438,4.775391 -6.70663,3.614308 -12.20088,9.395485 -15.58593,16.220703 -3.38347,6.822028 -4.712926,14.108148 -4.914065,22.132808 -0.382163,15.24684 0.34393,31.23872 1.494145,45.730473 0.3054,4.41258 0.85369,6.99499 0.29297,11.52344 -1.88652,9.62986 -10.313201,16.11178 -14.80468,24.57031 -4.954704,9.33089 -7.043403,19.88101 -10.783203,29.76172 -3.422488,9.04236 -8.227578,17.52067 -11.470703,26.62891 -4.534864,12.73604 -5.890504,26.73088 -2.894532,39.91406 2.283855,10.04965 7.054597,19.47291 13.484375,27.5332 -0.930503,1.67688 -1.832233,3.3716 -2.792968,5.03125 -2.979452,5.14693 -6.619557,10.02667 -8.316407,15.72656 -0.848425,2.84995 -1.182417,5.88981 -0.634765,8.8125 0.547652,2.92268 2.02651,5.71858 4.351562,7.57227 1.522028,1.21346 3.357446,1.99485 5.253906,2.43359 1.896461,0.43879 3.856625,0.54531 5.802735,0.50391 7.394587,-0.15718 14.559024,-2.40522 21.71289,-4.2832 4.23946,-1.11291 8.51036,-2.10105 12.80273,-2.98829 15.24055,-3.12209 32.25031,-1.87591 46.39844,0.17579 4.79197,0.72368 9.54981,1.67102 14.25977,2.8125 7.37714,1.78788 14.72878,4.06701 22.3164,4.2832 1.99729,0.0569 4.0106,-0.0306 5.96094,-0.46484 1.95034,-0.43429 3.84211,-1.22688 5.4043,-2.47266 2.32922,-1.85746 3.80834,-4.65745 4.35546,-7.58594 0.54713,-2.9285 0.20917,-5.97702 -0.64843,-8.83008 -1.71521,-5.70613 -5.38873,-10.5749 -8.43555,-15.69531 -1.20215,-2.0203 -2.32023,-4.0926 -3.51367,-6.11719 9.16873,-10.29563 16.54824,-22.20278 20.8164,-35.28125 4.65874,-14.27524 5.51426,-29.64566 3.55274,-44.5332 -1.96148,-14.88754 -6.6821,-29.32114 -12.8984,-42.99023 -7.79769,-17.13839 -14.35278,-23.331 -19.10351,-38.38086 -5.13471,-16.266273 -0.8948,-35.514213 -4.71094,-50.267583 -1.3618,-5.0173 -3.53277,-9.80681 -6.32617,-14.191405 -3.27306,-5.137474 -7.42457,-9.742407 -12.35743,-13.316406 -7.87066,-5.702527 -17.61519,-8.638455 -27.33398,-8.744141 z"
+ id="path28712-2" />
+ <path
+ id="path29719-5"
+ d="m 112.70417,105.45215 c -1.0464,1.31136 -1.72773,2.88726 -2.13927,4.51369 -0.41153,1.62642 -0.56228,3.30801 -0.62653,4.98446 -0.12849,3.35291 0.0765,6.77015 -0.81096,10.00604 -0.94874,3.4595 -3.07595,6.45649 -5.15761,9.37795 -3.60485,5.05916 -7.248548,10.25011 -9.027058,16.20217 -1.077103,3.60469 -1.435613,7.42255 -1.04841,11.16474 -4.035298,5.9262 -7.528852,12.22112 -10.4229,18.78069 -4.386197,9.94163 -7.396115,20.5265 -8.454552,31.34105 -1.296051,13.24236 0.397579,26.86184 5.627472,39.09655 3.781309,8.84592 9.417708,16.94379 16.68566,23.2466 3.695408,3.20468 7.799668,5.93944 12.189498,8.09709 15.21252,7.47713 34.01348,7.49101 48.97296,-0.48031 7.81838,-4.16611 14.41789,-10.2582 20.78084,-16.42232 3.83183,-3.71209 7.64353,-7.51249 10.56653,-11.97551 5.62746,-8.59236 7.58747,-19.03566 8.80544,-29.23436 2.12971,-17.83321 2.1984,-36.66998 -5.62137,-52.83816 -2.69219,-5.56638 -6.27896,-10.69891 -10.58065,-15.14052 -1.14547,-7.78087 -3.40638,-15.39666 -6.69212,-22.54215 -2.37045,-5.15502 -5.2683,-10.06187 -7.47079,-15.29085 -0.90422,-2.14672 -1.68995,-4.34486 -2.69346,-6.44699 -1.00352,-2.10213 -2.24145,-4.12498 -3.92446,-5.73541 -1.72343,-1.6491 -3.87096,-2.81824 -6.13593,-3.56631 -2.26498,-0.74806 -4.64917,-1.08697 -7.03147,-1.2068 -4.7646,-0.23966 -9.53872,0.38348 -14.30559,0.19423 -3.79476,-0.15066 -7.57776,-0.81566 -11.36892,-0.59186 -1.89557,0.1119 -3.79087,0.45058 -5.55026,1.1649 -1.7594,0.71432 -3.38173,1.81713 -4.56609,3.30139"
+ style="fill:#fdfdfb" />
+ </g>
+ <g
+ id="g562">
+ <path
+ transform="matrix(1.1543044,0,0,1,166.33231,-58.362183)"
+ id="path4400-1"
+ d="m -61.00266,211.59308 c 0.88005,1.52387 -0.54737,6.77829 19.96381,3.4153 0,0 -3.60202,0.4573 -7.15281,1.40419 -5.52127,2.1334 -10.33021,4.51706 -14.04019,7.67524 -3.67553,3.12167 -6.36707,7.19694 -9.73973,10.69705 0,0 5.46173,-11.5187 6.82331,-14.98742 1.36157,-3.46872 -0.22795,-3.30999 0.84893,-8.4136 1.07688,-5.1036 3.71346,-10.00699 3.71346,-10.00699 0,0 -2.15241,7.21088 -0.41678,10.21623 z"
+ style="opacity:0.25;fill:url(#radialGradient18834);filter:url(#filter4487-6)" />
+ <path
+ id="path4400-2-8"
+ d="m 172.04993,151.8559 c -4.82509,3.36138 -7.65241,2.96341 -13.50685,3.62087 -5.85444,0.65746 -21.69838,0.41943 -21.69838,0.41943 0,0 2.29371,-0.0427 7.37759,0.90419 5.08388,0.94693 15.45307,1.85232 21.29176,4.07468 5.83869,2.22236 7.96846,2.8566 11.51723,5.10056 5.05107,3.19388 8.75817,8.19694 13.587,11.69705 0,0 0.23377,-4.6437 -1.71568,-8.11242 -1.94945,-3.46872 -7.19037,-8.93499 -8.7322,-14.0386 -1.54183,-5.1036 -2.27429,-15.13199 -2.27429,-15.13199 0,0 -1.02108,8.10485 -5.84618,11.46623 z"
+ style="opacity:0.42;fill:url(#radialGradient18836);filter:url(#filter4427-5-7)" />
+ <path
+ id="path4491-9"
+ d="m 126.66974,144.67794 c -0.17937,1.45594 -0.41189,2.90533 -0.69695,4.34431 -0.14052,0.70936 -0.2949,1.41989 -0.55905,2.09306 -0.26414,0.67317 -0.64419,1.31214 -1.18125,1.79639 -0.47071,0.42443 -1.04439,0.71595 -1.62069,0.97975 -2.24827,1.02916 -4.6544,1.71261 -7.10798,2.01899 0.97993,0.0719 1.95856,0.16127 2.93528,0.2682 0.61534,0.0674 1.23207,0.14208 1.83169,0.29586 0.59961,0.15377 1.18472,0.38955 1.68422,0.75518 0.54781,0.40099 0.97799,0.94833 1.29931,1.54636 0.64023,1.19159 0.85435,2.56281 0.97272,3.91031 0.15139,1.72336 0.16244,3.45904 0.033,5.18419 0.11585,-1.15429 0.35775,-2.29589 0.72,-3.39797 0.65284,-1.98614 1.70416,-3.84789 3.11974,-5.38642 0.56171,-0.6105 1.18038,-1.17036 1.85876,-1.6479 2.07821,-1.46294 4.71804,-2.1055 7.23612,-1.76133 -2.55897,0.11302 -5.14896,-0.69089 -7.19419,-2.23302 -1.04161,-0.78539 -1.94875,-1.76287 -2.57976,-2.90463 -0.97579,-1.76561 -1.25012,-3.90675 -0.75097,-5.86133"
+ style="opacity:0.2;fill:url(#radialGradient18838);filter:url(#filter4538-7)" />
+ <path
+ id="path4542-7"
+ d="m 120.49984,178.71875 c -1.22954,4.67934 -2.07519,9.45949 -2.52566,14.27665 -0.63702,6.81216 -0.48368,13.6725 -0.84934,20.5046 -0.31029,5.79753 -0.99107,11.65587 0.0159,17.3737 0.48017,2.72655 1.34273,5.38547 2.55456,7.87467 0.19249,-0.95006 0.33356,-1.91054 0.42239,-2.87583 0.42661,-4.63604 -0.3541,-9.28689 -0.61781,-13.93504 -0.46225,-8.14744 0.66569,-16.2899 1.125,-24.4375 0.3526,-6.25476 0.31082,-12.53173 -0.125,-18.78125 h -4e-5"
+ style="opacity:0.11;filter:url(#filter4592-2)" />
+ <path
+ id="path28767-9-3"
+ d="m 351.9604,200.85653 c -1.45162,0.38883 -1.23008,3.99417 -0.29604,5.49789 0.78886,1.26999 3.07235,2.27109 3.75853,1.00504 1.11412,-2.05562 -1.47192,-7.03613 -3.46249,-6.50293 z"
+ style="opacity:0.25;fill:#7c7c7c;filter:url(#filter15211-9)"
+ transform="matrix(-0.06991927,0.95700905,-0.56450744,-0.11853409,236.56758,-180.37928)" />
+ <path
+ transform="matrix(-0.09596121,-0.95700905,-0.77476232,0.11853409,398.90188,493.24449)"
+ style="opacity:0.75;fill:#7c7c7c;filter:url(#filter14706-3)"
+ d="m 361.75,209.34296 c 0.002,-1.53313 -7.56474,-10.0564 -9.7896,-8.48643 -2.22486,1.56998 -0.49172,3.7842 -0.29604,5.49789 0.19568,1.71368 -0.94537,6.60933 0.23849,7.25934 1.18386,0.65001 3.36607,-2.5198 5.30111,-4.27697 1.55818,-1.41494 4.54398,1.53929 4.54604,0.006 z"
+ id="path15189-4" />
+ <path
+ id="path28767-3"
+ d="m 277.9604,90.856536 c -2.22486,1.569973 -1.25289,3.530477 -0.29604,5.497884 0.95685,1.967407 -2.10429,7.63969 -2.13651,7.88434 -0.0322,0.24465 6.02534,-2.8754 7.67611,-4.901967 1.94956,-2.393373 6.87703,3.237917 6.60851,2.381167 0.002,-1.53312 -9.62721,-12.431397 -11.85207,-10.861424 z"
+ style="fill:#7c7c7c;filter:url(#filter15133-1)"
+ transform="matrix(1.1522137,0,0,1.1522137,-163.02721,-72.199565)" />
+ <path
+ style="fill:#838384;filter:url(#filter15185-2)"
+ d="m 16.687345,165.86218 c -2.16217,1.96937 1.01359,4.92767 2.51966,8.40429 0.93626,2.16126 3.52677,5.20509 6.03244,4.7175 1.8848,-0.36677 3.05427,-3.07936 2.87588,-4.99121 -0.34416,-3.68852 -3.45669,-4.55256 -5.7172,-5.81949 -1.79139,-1.00401 -4.19258,-3.69391 -5.71078,-2.31109 z"
+ id="path4596-3"
+ transform="translate(160,-57.362183)" />
+ <path
+ clip-path="url(#clipPath816)"
+ transform="translate(138.99984,-49.362181)"
+ style="fill:#000000;fill-opacity:0.258824;filter:url(#filter30479-2)"
+ id="path28461-8-7"
+ d="m -28.632498,172.60136 c 1.702936,4.93775 5.13035,9.15199 9.185848,12.44354 1.348656,1.0946 2.782167,2.10442 4.366233,2.817 1.584067,0.71257 3.331648,1.11945 5.062377,0.97245 1.6949733,-0.14396 3.3074706,-0.80936 4.788721,-1.64575 1.4812505,-0.8364 2.8560173,-1.84688 4.29298914,-2.75725 2.46262056,-1.56015 5.09983966,-2.82139 7.65715996,-4.22092 3.0824622,-1.68692 6.0695999,-3.59014 8.6646899,-5.95927 1.187948,-1.08451 2.295748,-2.26795 3.607519,-3.19888 1.31177,-0.93094 2.882987,-1.60572 4.487811,-1.49651 1.203853,0.0819 2.332908,0.59386 3.51249,0.84794 0.589792,0.12704 1.200784,0.18932 1.797215,0.0984 0.596431,-0.0909 1.179727,-0.34439 1.597895,-0.77928 0.512367,-0.53286 0.736406,-1.29981 0.709607,-2.03855 -0.0268,-0.73874 -0.284448,-1.45303 -0.628853,-2.10712 -0.68881,-1.30819 -1.734547,-2.43513 -2.200224,-3.83833 -0.414395,-1.24867 -0.330451,-2.59887 -0.293929,-3.91401 0.03652,-1.31513 0.0075,-2.68902 -0.598601,-3.85671 -0.461591,-0.88922 -1.236126,-1.59525 -2.12164,-2.06391 -0.885513,-0.46867 -1.878578,-0.71001 -2.876081,-0.80365 -1.995007,-0.18727 -3.993929,0.19997 -5.994489,0.31349 -2.655817,0.1507 -5.321957,-0.18176 -7.9772499,-0.0221 -3.3112912,0.1991 -6.5570138,1.16053 -9.87428,1.16645 -3.7859765,0.007 -7.5681223,-1.23192 -11.3075401,-0.63996 -1.60458,0.25401 -3.134778,0.8376 -4.675685,1.35219 -1.540906,0.5146 -3.132742,0.96724 -4.757133,0.94371 -1.844198,-0.0267 -3.629272,-0.66537 -5.468985,-0.79666 -0.919856,-0.0656 -1.86247,-1.8e-4 -2.726086,0.32326 -0.863615,0.32344 -1.644513,0.92357 -2.068349,1.7426 -0.242869,0.46932 -0.363194,0.99683 -0.385859,1.52479 -0.02266,0.52795 0.05026,1.05702 0.177828,1.56983 0.255132,1.02563 0.724233,1.98285 1.109821,2.96688 1.392508,3.55373 1.692361,7.44806 2.93678,11.05632" />
+ <path
+ clip-path="url(#clipPath820)"
+ style="opacity:0.3;fill:#000000;filter:url(#filter30475-4)"
+ id="path28461-84-3"
+ d="m -54.3809,165.4735 c 3.308481,2.21892 6.276719,4.94413 8.76949,8.0515 2.313244,2.88358 4.281072,6.1543 7.29931,8.28886 2.132561,1.50819 4.694875,2.3578 7.29406,2.61606 3.051509,0.3032 6.139761,-0.18685 9.08171,-1.05205 2.72664,-0.80188 5.363225,-1.92931 7.78216,-3.4214 4.5982326,-2.83636 8.4392136,-6.99279 13.51002,-8.85709 1.1070251,-0.407 2.2592345,-0.69817 3.3265087,-1.20024 1.0672741,-0.50208 2.071356,-1.25404 2.5810913,-2.31768 0.489979,-1.02241 0.4709637,-2.20249 0.63053,-3.32496 0.1707072,-1.20085 0.5537633,-2.36184 0.7638732,-3.55642 0.2101099,-1.19458 0.2351735,-2.47234 -0.2814032,-3.56975 -0.4277722,-0.90876 -1.2053869,-1.6278 -2.0998754,-2.08466 -0.8944886,-0.45686 -1.9010816,-0.6644 -2.9042801,-0.71362 -2.00639693,-0.0985 -3.9875479,0.41519 -5.9880545,0.59766 -2.649555,0.24167 -5.3179008,-0.0991 -7.97725,-0.019 -3.308278,0.0996 -6.568191,0.84884 -9.87428,1.00503 -3.771652,0.17818 -7.534056,-0.41751 -11.30754,-0.55139 -1.632251,-0.0579 -3.2754,-0.0286 -4.884302,0.25254 -1.608902,0.28112 -3.188197,0.82168 -4.548518,1.72563 -1.319979,0.87714 -2.396737,2.06728 -3.606567,3.09101 -0.604916,0.51187 -1.247757,0.98508 -1.953748,1.34495 -0.705991,0.35987 -1.478799,0.60451 -2.270305,0.64257 -0.40728,0.0196 -0.818345,-0.0152 -1.2213,0.0472 -0.676172,0.10463 -1.303709,0.49355 -1.698284,1.05254 -0.394576,0.55899 -0.550896,1.28053 -0.423046,1.9527 v 1e-5"
+ transform="matrix(1,0,0,0.92110599,159.99984,-43.254675)" />
+ </g>
+ <g
+ id="g481">
+ <path
+ transform="translate(160,-57.362183)"
+ d="m 45.10134,224.44951 c 6.084796,4.89463 9.945575,12.28597 11.14096,20.00305 0.932288,6.01859 0.326343,12.19496 -1.030694,18.13223 -1.357038,5.93726 -3.452212,11.67615 -5.531716,17.40051 -0.829244,2.2827 -1.662186,4.5871 -1.991686,6.9933 -0.3295,2.40621 -0.120849,4.95426 1.039536,7.08777 1.330223,2.44578 3.812954,4.13021 6.48184,4.92292 2.634941,0.78263 5.481042,0.76618 8.148186,0.10153 2.667145,-0.66466 7.157372,-1.52591 9.328374,-3.21179 5.515551,-4.28306 6.82474,-11.71935 8.13188,-18.24961 1.363195,-6.8103 0.69637,-13.95038 -0.50149,-20.83014 -1.63342,-9.38136 -4.38172,-18.55105 -7.87991,-27.40773 -2.573144,-6.51466 -5.8695,-12.74244 -9.79135,-18.52016 -3.847635,-5.66839 -9.306853,-10.09303 -13.34018,-15.63502 -1.401311,-1.92547 -3.086675,-3.93159 -4.463417,-5.87845 -2.968456,-4.19771 -2.296208,-3.41451 -4.137707,-6.13155 -1.336068,-1.9713 -3.445653,-2.6487 -5.665474,-3.51096 -2.219821,-0.86226 -4.71266,-1.11623 -7.005012,-0.47108 -3.021449,0.85034 -5.489775,3.23113 -6.802912,6.08208 -1.313136,2.85095 -1.54284,6.12313 -1.031948,9.2201 0.659095,3.99536 2.486278,7.70258 4.54639,11.18873 2.326679,3.93724 5.021993,7.72707 8.53596,10.65407 3.667149,3.05459 8.101532,5.06875 11.82037,8.0602"
+ id="path29705-5-0"
+ style="fill:#020204" />
+ <path
+ transform="translate(160,-57.362183)"
+ style="fill:#020204"
+ d="m -69.527091,194.03592 c -7.073089,8.03686 -14.352222,15.81627 -18.345769,24.50506 -1.976249,4.41329 -2.910774,9.20725 -4.26498,13.84932 -1.537901,5.27176 -3.626089,10.3703 -5.97071,15.33612 -2.16496,4.58531 -4.54982,9.06291 -6.93891,13.53553 -1.7382,3.25409 -3.50514,6.58104 -4.10782,10.22071 -0.47628,2.87632 -0.1985,5.84423 0.53375,8.66626 0.73225,2.82202 1.90965,5.5106 3.23776,8.10601 5.667249,11.07504 14.170032,20.62168 24.24176,27.92472 4.570626,3.31418 9.466691,6.18109 14.60245,8.52595 2.782468,1.27041 5.713552,2.40436 8.771859,2.45744 1.529154,0.0265 3.074104,-0.22544 4.47434,-0.84055 1.400236,-0.6151 2.650677,-1.60373 3.482541,-2.88709 1.022778,-1.5779 1.369917,-3.53829 1.164614,-5.40743 -0.205303,-1.86914 -0.934843,-3.65294 -1.913244,-5.25873 -2.389971,-3.92251 -6.165196,-6.76055 -9.79642,-9.57343 -7.840549,-6.07358 -15.424654,-12.48039 -22.68212,-19.23996 -2.049117,-1.90854 -4.098407,-3.87759 -5.53019,-6.28412 -1.394295,-2.34352 -2.147602,-5.01376 -2.65783,-7.69253 -1.399719,-7.34873 -1.040921,-15.08286 1.45958,-22.13343 0.978222,-2.75826 2.271183,-5.39201 3.51815,-8.03965 2.161326,-4.58906 4.207248,-9.26564 7.04933,-13.46723 3.537978,-5.23037 8.267489,-9.66049 11.15147,-15.27803 2.434229,-4.74149 3.419942,-10.07236 4.36185,-15.31831 0.736933,-4.10434 2.150416,-8.12437 2.869234,-12.23193 -1.406111,2.66567 -5.937961,7.04283 -8.710695,10.5253 z"
+ id="path14967-1-0" />
+ </g>
+ <g
+ id="g514">
+ <path
+ style="fill:#838384;filter:url(#filter14666-9)"
+ d="m 290.78125,216.01843 c 0.48482,0.46774 0.98091,0.94261 1.5,1.375 3.66715,3.05459 5.61879,6.48526 9.33763,9.47671 6.0848,4.89463 12.25895,13.34358 13.45434,21.06066 0.93229,6.01859 -0.30093,9.28947 -1.80468,16.3878 -1.50374,7.09832 -5.76944,17.14832 -8.07376,23.99211 -0.9189,2.7291 1.86121,1.60306 1.49609,4.4798 -0.17944,1.41384 -0.19766,2.84238 -0.0346,4.25917 0.0227,-0.27104 0.0388,-0.5525 0.0693,-0.82194 0.44281,-3.92274 1.62331,-7.69479 2.90878,-11.39514 2.47416,-7.12214 5.31434,-14.10109 7.27196,-21.40792 1.95763,-7.30683 1.74028,-12.56443 0.71875,-18.84375 -1.28459,-7.89637 -5.79703,-15.18702 -12.1875,-20 -4.51852,-3.40313 -9.84688,-5.58465 -14.65625,-8.5625 z"
+ id="path29705-9"
+ clip-path="url(#clipPath504)"
+ transform="matrix(1.0180731,0,0,1,-105.25547,-58.362183)" />
+ <path
+ style="opacity:0.95;fill:#7c7c7c;filter:url(#filter15053-7)"
+ d="m 232.33049,224.26954 c -2.32126,2.13749 -4.33307,4.61051 -5.95338,7.31823 -2.66801,4.45854 -4.23905,9.46835 -6.17809,14.28882 -1.44362,3.58886 -3.12519,7.19314 -3.32662,11.05622 -0.10346,1.98418 0.19056,3.96588 0.25671,5.95165 0.0662,1.98578 -0.11756,4.05108 -1.08967,5.78391 -0.81338,1.44988 -2.1659,2.58902 -3.73298,3.14402 2.11547,0.70686 4.00453,2.07546 5.33532,3.86539 1.11451,1.49902 1.82759,3.25366 2.79609,4.85091 0.78716,1.29818 1.75335,2.50124 2.94285,3.44463 1.1895,0.94339 2.61141,1.61974 4.11726,1.81293 2.06623,0.26508 4.23574,-0.42815 5.76541,-1.84225 -1.92538,-18.0357 -0.16195,-36.4572 5.15013,-53.80008 0.33544,-1.09515 0.68725,-2.19828 0.77034,-3.34063 0.0831,-1.14235 -0.12896,-2.34792 -0.82414,-3.2582 -0.37014,-0.48467 -0.86838,-0.87059 -1.4302,-1.1078 -0.56182,-0.2372 -1.18588,-0.32512 -1.79136,-0.25236 -0.60549,0.0727 -1.19096,0.306 -1.68059,0.66954 -0.48964,0.36355 -0.88227,0.85651 -1.12706,1.41507 h -2e-5"
+ id="path15007-0"
+ clip-path="url(#clipPath508)"
+ transform="translate(-150.00016,-58.362183)" />
+ </g>
+ <g
+ id="g457">
+ <g
+ id="g444">
+ <path
+ transform="matrix(1.0268828,0,0,1,157.6864,-58.362183)"
+ style="opacity:0.2;fill:url(#linearGradient18840);filter:url(#filter15115-3)"
+ d="m 86.05618,328.13191 c -0.45671,1.54919 -1.15216,3.04585 -2.04962,4.41089 -1.9805,3.01237 -4.85449,5.2794 -7.7268,7.37015 -4.89889,3.56589 -10.00272,6.83785 -14.56318,10.89029 -3.05551,2.71513 -5.84112,5.75937 -8.42278,8.96491 -2.20789,2.74146 -4.2839,5.61929 -6.80089,8.05729 -2.53964,2.45993 -5.53049,4.44676 -8.75187,5.52933 -3.91796,1.31667 -8.05795,1.2533 -11.83233,0.25938 -2.64475,-0.69647 -5.22365,-1.90703 -6.86216,-4.0969 -1.6448,-2.19828 -2.1777,-5.15218 -2.36802,-8.05186 -0.33651,-5.12875 0.25967,-10.36956 0.8034,-15.57549 0.45167,-4.3257 0.86825,-8.65475 1.03855,-12.97167 0.30984,-7.85202 -0.19668,-15.63586 -1.23186,-23.27336 -0.17336,-1.27909 -0.36202,-2.56818 -0.25656,-3.88562 0.10519,-1.31741 0.5354,-2.6883 1.43615,-3.70529 0.83202,-0.93937 1.9928,-1.49566 3.15071,-1.76892 1.15792,-0.27325 2.32983,-0.2898 3.4927,-0.3215 2.74018,-0.0747 5.49647,-0.24039 8.19521,0.006 1.70282,0.15559 3.37264,0.47459 5.07313,0.6427 2.83764,0.28052 5.78134,0.13286 8.62739,-0.72369 3.06405,-0.92215 5.98631,-2.65158 9.09944,-3.12742 1.27732,-0.19521 2.559,-0.17251 3.80104,0.006 1.26746,0.18218 2.5284,0.54175 3.50235,1.33598 0.74019,0.60362 1.28194,1.43281 1.70583,2.31655 0.63144,1.31651 1.01921,2.77031 1.24115,4.2613 0.19663,1.32082 0.26639,2.68017 0.59789,3.95737 0.54536,2.10123 1.78089,3.88647 3.26736,5.33963 1.48646,1.45316 3.22499,2.60245 4.96058,3.73413 1.72907,1.12743 3.46794,2.24684 5.31472,3.17629 0.86675,0.43621 1.75751,0.83074 2.58612,1.33307 0.8286,0.50234 1.60071,1.12107 2.15093,1.93549 0.74634,1.10471 1.04569,2.55273 0.82168,3.97474 l 2e-5,-1e-5"
+ id="path14483-7-4" />
+ <path
+ clip-path="none"
+ id="path14296-0"
+ d="m 263.18967,278.25167 c -2.6238,3.11482 -6.268,5.17039 -9.89648,7.01985 -6.1886,3.15437 -12.60169,5.92177 -18.41964,9.71654 -3.89802,2.54249 -7.4959,5.52671 -10.86016,8.74238 -2.87719,2.75012 -5.60582,5.68745 -8.83247,8.01771 -3.25567,2.35122 -7.01915,4.05426 -10.99061,4.6502 -4.83026,0.72481 -9.82134,-0.21289 -14.29898,-2.16416 -3.13754,-1.36728 -6.15569,-3.3229 -7.96301,-6.22931 -1.81425,-2.91754 -2.22807,-6.48813 -2.23266,-9.92375 -0.008,-6.07666 1.11824,-12.09004 2.17848,-18.07349 0.88097,-4.97177 1.71949,-9.95483 2.26013,-14.97502 0.98337,-9.13118 0.9763,-18.35278 0.3199,-27.51327 -0.10993,-1.53416 -0.23754,-3.0832 -0.008,-4.60412 0.22922,-1.52092 0.85475,-3.0367 2.02069,-4.03986 1.07696,-0.9266 2.52093,-1.33598 3.93947,-1.4145 1.41854,-0.0785 2.83404,0.14655 4.23982,0.35197 3.31254,0.48405 6.65159,0.8649 9.88917,1.71656 2.04284,0.53738 4.03315,1.25925 6.0722,1.81081 3.40258,0.92039 6.96639,1.36144 10.46739,0.95192 3.76917,-0.44089 7.42987,-1.85678 11.22363,-1.76474 1.55658,0.0378 3.1015,0.33171 4.58649,0.79985 1.51539,0.47772 3.00914,1.16182 4.12281,2.29512 0.84639,0.8613 1.43579,1.94539 1.87872,3.06879 0.65982,1.67352 1.01492,3.457 1.16703,5.24945 0.13475,1.58788 0.11343,3.19441 0.41433,4.75933 0.49503,2.57458 1.84746,4.92305 3.52848,6.93494 1.68102,2.01189 3.68982,3.72048 5.69641,5.40783 1.99908,1.68103 4.0106,3.35469 6.16708,4.82839 1.0121,0.69165 2.05642,1.33949 3.01736,2.10062 0.96094,0.76113 1.84466,1.6468 2.44543,2.71535 0.81492,1.44944 1.06377,3.2077 0.53758,4.87655 -0.5262,1.66885 -1.48162,3.27659 -2.67059,4.68806 z"
+ style="fill:url(#linearGradient18842)" />
+ <path
+ transform="translate(-250.00016,-58.362183)"
+ clip-path="url(#clipPath419)"
+ id="path14296-3-7"
+ d="m 512.89128,328.72435 c -0.61724,1.54745 -1.48971,2.99275 -2.57146,4.2598 -2.40248,2.814 -5.72921,4.65444 -9.03774,6.31099 -5.65305,2.83043 -11.50277,5.31761 -16.82133,8.73539 -3.55362,2.28361 -6.84076,4.96564 -9.9178,7.85959 -2.62917,2.47273 -5.12496,5.116 -8.06607,7.20809 -2.98093,2.12042 -6.41793,3.6468 -10.03693,4.18063 -4.40931,0.65041 -8.96019,-0.19314 -13.05822,-1.94562 -2.85719,-1.22185 -5.61733,-2.97002 -7.27205,-5.60029 -1.64629,-2.61688 -2.0313,-5.83002 -2.03893,-8.92166 -0.0135,-5.46467 1.01827,-10.87076 1.98945,-16.24846 0.80703,-4.46875 1.57531,-8.9482 2.06402,-13.46287 0.88853,-8.20825 0.8481,-16.49756 0.29214,-24.73502 -0.0931,-1.38017 -0.20023,-2.77381 0.0118,-4.14077 0.21204,-1.36695 0.77803,-2.72737 1.82595,-3.63036 0.9828,-0.84687 2.30304,-1.21795 3.5986,-1.28594 1.29556,-0.068 2.58744,0.14181 3.87096,0.3307 3.02315,0.4449 6.07241,0.77918 9.03106,1.54323 1.86541,0.48173 3.68372,1.13165 5.54531,1.62795 3.10947,0.82898 6.36227,1.22486 9.55911,0.8558 3.44127,-0.39728 6.78665,-1.67148 10.24974,-1.58654 1.42063,0.0348 2.83052,0.30037 4.1885,0.71908 1.38179,0.42605 2.74909,1.03446 3.76507,2.06337 0.76566,0.7754 1.29538,1.75352 1.7157,2.75891 0.62574,1.49674 1.03256,3.09742 1.06577,4.71936 0.0347,1.69374 -0.33552,3.39491 -0.10594,5.07338 0.18638,1.36264 0.7635,2.64802 1.50064,3.80912 0.73713,1.1611 1.634,2.2109 2.52251,3.26069 1.71726,2.02897 3.4393,4.09674 5.5931,5.65457 2.45218,1.77364 5.36188,2.81145 7.89508,4.46732 0.75511,0.49359 1.48596,1.05215 2.01814,1.78058 0.8972,1.22806 1.1387,2.90791 0.62379,4.33898 h 2e-5"
+ style="fill:#cd8907;filter:url(#filter14416-8)" />
+ <path
+ clip-path="url(#clipPath426)"
+ transform="matrix(1.1429721,0,0,1.2323048,-318.99817,-135.48838)"
+ id="path14296-3-1-9"
+ d="m 508.79285,327.92545 c -0.60151,1.26455 -1.38215,2.44372 -2.31134,3.49133 -2.15335,2.42776 -5.06099,4.09917 -8.12349,5.1725 -5.04166,1.76698 -10.54565,2.00437 -15.49471,4.01618 -3.01615,1.22607 -5.73063,3.07339 -8.47914,4.81871 -2.22174,1.41082 -4.49246,2.76887 -6.93206,3.75622 -2.75548,1.1152 -5.68568,1.74047 -8.62582,2.17857 -1.87082,0.27876 -3.76259,0.48423 -5.65156,0.38704 -1.88898,-0.0972 -3.78418,-0.50735 -5.45127,-1.40092 -1.26399,-0.6775 -2.40126,-1.6529 -3.07596,-2.91839 -0.74956,-1.4059 -0.87959,-3.05603 -0.86243,-4.64917 0.0457,-4.24592 1.02557,-8.4458 0.99617,-12.69186 -0.0256,-3.69614 -0.81525,-7.34495 -1.04231,-11.03419 -0.43665,-7.09457 1.2047,-14.31322 -0.23989,-21.27287 -0.23125,-1.11413 -0.54212,-2.22686 -0.52701,-3.36463 0.008,-0.56889 0.0988,-1.14101 0.31541,-1.66709 0.21661,-0.52609 0.56289,-1.00508 1.02461,-1.33751 0.38878,-0.27992 0.85044,-0.45024 1.32336,-0.52677 0.47292,-0.0765 0.95748,-0.0616 1.43166,0.007 0.94836,0.13656 1.85188,0.48215 2.77546,0.73718 2.64193,0.72952 5.43254,0.71432 8.11748,1.26484 1.68527,0.34555 3.31679,0.91149 4.98436,1.33427 2.80028,0.70996 5.72013,1.0133 8.59212,0.70142 3.0885,-0.33539 6.10714,-1.37534 9.21289,-1.30034 1.27305,0.0307 2.53741,0.25005 3.76479,0.58936 1.22771,0.3394 2.45538,0.81951 3.38421,1.69114 0.6693,0.62809 1.15135,1.4307 1.54214,2.26121 0.5703,1.21202 0.96726,2.52854 0.95796,3.868 -0.005,0.6968 -0.11899,1.38758 -0.18672,2.0811 -0.0677,0.69352 -0.0878,1.40368 0.0914,2.07705 0.18009,0.67656 0.55415,1.2867 0.98269,1.84033 0.42854,0.55364 0.91471,1.06002 1.35819,1.60176 1.24195,1.51713 2.12961,3.28544 3.09724,4.99067 0.96764,1.70523 2.05232,3.39266 3.58036,4.62117 2.0797,1.67204 4.77798,2.34016 7.09642,3.66141 0.67877,0.38682 1.33676,0.84082 1.81399,1.45937 0.38231,0.49552 0.63762,1.0882 0.73509,1.70642 0.0975,0.61822 0.0369,1.26071 -0.1744,1.84982 h 9e-5"
+ style="fill:#f5c021;filter:url(#filter14432-2)" />
+ <path
+ clip-path="url(#clipPath433)"
+ id="path16493"
+ d="m 187.30911,230.28754 c 3.27611,-0.88704 6.0662,1.5972 8.44228,3.47233 1.53527,1.30928 3.75348,0.97992 5.63665,1.04213 3.12069,-0.11321 6.22535,0.52281 9.34708,0.13577 6.14462,-0.51932 12.16847,-2.02966 18.34236,-2.28984 2.94948,-0.18579 6.25992,-0.35725 8.80813,1.36517 1.03299,0.7155 2.54702,3.74139 3.56647,2.60489 -0.42031,-3.17821 -2.77748,-6.25589 -5.93906,-7.10224 -2.47492,-0.38942 -4.98985,0.29134 -7.48947,0.0711 -7.42294,-0.17706 -14.79344,-1.5554 -22.23396,-1.16015 -5.17644,0.0448 -10.34657,-0.19501 -15.51546,-0.39662 -2.03057,-0.41489 -2.74674,1.38901 -3.8489,2.08085"
+ style="fill:url(#linearGradient18844);filter:url(#filter17044)" />
+ </g>
+ <g
+ id="g411">
+ <path
+ style="fill:url(#linearGradient18854)"
+ d="m 57.57688,222.65692 c 1.59929,-0.66295 3.3982,-0.78361 5.10074,-0.46963 1.70253,0.31398 3.31141,1.04948 4.74342,2.02239 2.86402,1.94583 4.98821,4.77774 7.02263,7.57952 4.67189,6.43406 9.16868,13.00227 13.24488,19.8293 3.30635,5.53766 6.34352,11.25685 10.16415,16.45304 2.49398,3.3919 5.3066,6.53947 7.813,9.92221 2.50639,3.38273 4.72794,7.05586 5.83931,11.11662 1.44411,5.27653 0.88463,11.09291 -1.62666,15.95302 -1.76663,3.41896 -4.47646,6.35228 -7.77242,8.33898 -3.29595,1.9867 -7.17064,3.01444 -11.01635,2.87021 -6.11413,-0.2293 -11.69944,-3.28515 -17.38362,-5.54906 -11.58097,-4.6125 -24.15978,-6.0594 -36.09666,-9.65174 -3.66859,-1.10404 -7.27582,-2.4107 -10.96988,-3.42629 -1.64125,-0.45122 -3.30866,-0.8482 -4.85875,-1.55144 -1.55008,-0.70325 -2.999548,-1.7491 -3.86171,-3.21675 -0.666391,-1.13439 -0.948386,-2.47002 -0.930187,-3.78554 0.0182,-1.31552 0.325889,-2.61453 0.773815,-3.85158 0.895851,-2.47409 2.343262,-4.71374 3.320162,-7.15696 1.59511,-3.98935 1.88169,-8.38839 1.66657,-12.67942 -0.21511,-4.29103 -0.91078,-8.54478 -1.20454,-12.83115 -0.13118,-1.91406 -0.18066,-3.85256 0.18479,-5.73598 0.36545,-1.88343 1.17577,-3.72459 2.55771,-5.05541 1.27406,-1.22693 2.96492,-1.95531 4.69643,-2.31651 1.73151,-0.3612 3.51533,-0.37747 5.28367,-0.33762 1.76833,0.0399 3.54067,0.13425 5.30351,-0.0106 1.76284,-0.14488 3.53347,-0.54055 5.06911,-1.41828 1.45996,-0.83447 2.65433,-2.0745 3.64374,-3.43424 0.9894,-1.35974 1.78909,-2.84573 2.60891,-4.31396 0.81983,-1.46823 1.66834,-2.93151 2.74157,-4.22611 1.07324,-1.2946 2.38923,-2.42304 3.94266,-3.06698"
+ id="path4635-1" />
+ <path
+ transform="translate(160,-57.362183)"
+ clip-path="url(#clipPath401)"
+ id="path13596-6"
+ d="m -99.89049,282.77885 c 1.45515,-0.58619 3.09423,-0.65064 4.62272,-0.30406 1.52849,0.34657 2.94957,1.09015 4.18836,2.047 2.47758,1.91371 4.19983,4.61379 5.85419,7.26861 3.97009,6.43306 7.8514,12.93381 11.5161,19.56716 2.7769,4.99324 5.4247,10.09253 8.83749,14.67892 2.26379,3.04154 4.84735,5.83139 7.15787,8.83675 2.31051,3.00536 4.37126,6.28214 5.3928,9.93347 1.31626,4.70582 0.78265,9.91001 -1.49541,14.23282 -1.63755,3.10576 -4.15203,5.74644 -7.18609,7.5126 -3.03406,1.76617 -6.57924,2.64923 -10.08655,2.48791 -5.59831,-0.25772 -10.71129,-3.05353 -15.98089,-4.95071 -10.10307,-3.66572 -21.05344,-4.15754 -31.41615,-7.02001 -3.71479,-1.00833 -7.33661,-2.35276 -11.06955,-3.29396 -1.65162,-0.41658 -3.33303,-0.75712 -4.90217,-1.4193 -1.56914,-0.66219 -3.04681,-1.68866 -3.89752,-3.16474 -0.63282,-1.09717 -0.88561,-2.38838 -0.84651,-3.65421 0.0391,-1.26584 0.35915,-2.51035 0.80992,-3.69386 0.90155,-2.36701 2.32025,-4.51029 3.22912,-6.87464 1.3787,-3.57425 1.54994,-7.50412 1.29397,-11.32617 -0.25597,-3.82205 -0.9211,-7.60949 -1.15326,-11.4336 -0.10374,-1.70896 -0.11933,-3.43899 0.22634,-5.11576 0.34564,-1.67677 1.07606,-3.30971 2.29486,-4.512 1.32089,-1.30904 3.14116,-2.02413 4.97727,-2.30427 1.83611,-0.28013 3.70601,-0.15808 5.55479,0.007 1.84877,0.16495 3.70503,0.37271 5.56113,0.26163 1.85609,-0.11109 3.7357,-0.56331 5.26886,-1.60694 1.39737,-0.94461 2.44584,-2.32407 3.24439,-3.79842 0.79856,-1.47435 1.3676,-3.05544 1.97644,-4.61656 0.60885,-1.56113 1.26672,-3.12189 2.2218,-4.50973 0.95509,-1.38785 2.23612,-2.60467 3.80568,-3.23473"
+ style="fill:#d99a03;filter:url(#filter14148-8)" />
+ <path
+ clip-path="url(#clipPath391)"
+ transform="matrix(1,0,0,0.98204782,-80.00015,-54.40321)"
+ style="fill:#f5bd0c;filter:url(#filter14140-3)"
+ d="m 138.7532,281.23531 c 1.40907,-0.7122 3.07062,-0.85812 4.61642,-0.53681 1.54579,0.3213 2.97823,1.09063 4.19572,2.09584 2.43498,2.0104 3.98026,4.8747 5.41939,7.68535 3.30494,6.45466 6.3834,13.04983 10.33791,19.12824 2.86875,4.40952 6.17965,8.51701 9.08155,12.90479 3.93557,5.95071 7.13582,12.4957 8.45639,19.50682 0.88822,4.71571 0.85899,9.80955 -1.37244,14.05779 -1.46869,2.79611 -3.85002,5.08988 -6.66339,6.52522 -2.81337,1.43533 -6.0432,2.01701 -9.18889,1.73441 -4.95423,-0.44507 -9.4537,-2.92512 -14.11748,-4.65475 -8.27469,-3.06879 -17.21809,-3.80325 -25.73435,-6.1187 -3.59196,-0.9766 -7.10999,-2.23521 -10.7509,-3.00963 -1.60616,-0.34163 -3.24361,-0.59125 -4.77675,-1.17943 -1.53313,-0.58818 -2.98623,-1.56578 -3.76965,-3.00894 -0.55139,-1.01573 -0.73656,-2.20459 -0.65433,-3.3574 0.0822,-1.15282 0.42084,-2.27486 0.86462,-3.34201 0.88755,-2.13429 2.20087,-4.08935 2.89035,-6.29561 1.01321,-3.24214 0.59672,-6.75718 -0.1636,-10.06777 -0.76031,-3.31059 -1.85667,-6.56127 -2.19448,-9.94121 -0.15046,-1.50543 -0.14681,-3.03993 0.19136,-4.51458 0.33818,-1.47465 1.02687,-2.89176 2.10855,-3.94955 1.3932,-1.36244 3.34372,-2.03997 5.28315,-2.22925 1.93944,-0.18927 3.89217,0.0689 5.82027,0.3512 1.9281,0.28227 3.86824,0.59003 5.8148,0.49986 1.94656,-0.0902 3.92849,-0.61081 5.45316,-1.82432 1.50782,-1.20011 2.45577,-2.98713 2.99939,-4.83599 0.54362,-1.84885 0.71997,-3.78191 0.94267,-5.69612 0.2227,-1.91421 0.50044,-3.8462 1.22971,-5.63 0.72928,-1.7838 1.96094,-3.42814 3.68085,-4.29745"
+ id="path4635-2-4" />
+ <path
+ style="fill:url(#linearGradient18856);filter:url(#filter14176-5)"
+ d="m 76.40702,237.60723 c 2.60622,4.71337 4.1958,10.12156 6.78125,14.875 2.3781,4.37223 5.08446,8.87379 7.5,12.90625 1.07545,1.79534 3.58329,4.5546 6.11895,8.83731 2.29771,3.88081 4.61826,9.29715 5.91658,11.1158 -0.74552,-2.12877 -2.27926,-7.84655 -4.10875,-11.92255 -1.70955,-3.80877 -3.69976,-5.98219 -4.92678,-8.03056 -2.41553,-4.03246 -5.01691,-7.65647 -7.5,-11.5 -3.42521,-5.30181 -6.03558,-11.23523 -9.78125,-16.28125 z"
+ id="path4792-8" />
+ </g>
+ </g>
+ <g
+ id="g526">
+ <path
+ d="m 231.4835,237.27796 c -0.56258,-1.10201 -1.58692,-1.92585 -2.72873,-2.40251 -1.1418,-0.47667 -2.39692,-0.6289 -3.63419,-0.61936 -2.47454,0.0191 -4.93459,0.66357 -7.39999,0.45028 -2.0826,-0.18018 -4.05875,-0.96301 -6.08982,-1.45739 -2.09726,-0.51049 -4.32188,-0.70969 -6.40465,-0.14297 -2.22595,0.60568 -4.18942,2.09362 -5.41915,4.04541 -1.08426,1.72091 -1.59909,3.75274 -1.76111,5.78028 -0.16202,2.02754 0.013,4.06578 0.21815,6.08941 0.1484,1.46363 0.31354,2.93079 0.66764,4.35866 0.35411,1.42788 0.90422,2.82282 1.76608,4.01506 1.24071,1.71632 3.08337,2.9395 5.06938,3.67497 3.24183,1.20053 6.9338,1.13597 10.13167,-0.17718 5.65885,-2.45702 10.44922,-6.8639 13.36879,-12.29857 1.04539,-1.94596 1.8574,-4.01932 2.38189,-6.16513 0.20845,-0.85283 0.37215,-1.72236 0.37977,-2.60027 0.008,-0.8779 -0.14655,-1.76875 -0.54573,-2.55069"
+ id="path29714-8-2"
+ style="opacity:0.35;fill:url(#radialGradient18846);filter:url(#filter14897-2)" />
+ <path
+ d="m 71.483661,295.64014 c -0.562575,-1.10201 -1.586921,-1.92585 -2.728725,-2.40251 -1.141803,-0.47667 -2.396928,-0.6289 -3.634197,-0.61936 -2.474537,0.0191 -4.934587,0.66357 -7.399988,0.45028 -2.082597,-0.18018 -4.058745,-0.96301 -6.08982,-1.45739 -2.097262,-0.51049 -4.321879,-0.70969 -6.40465,-0.14297 -2.225952,0.60568 -4.189424,2.09362 -5.41915,4.04541 -1.084262,1.72091 -1.599093,3.75274 -1.76111,5.78028 -0.162016,2.02754 0.01297,4.06578 0.21815,6.08941 0.148398,1.46363 0.31354,2.93079 0.667645,4.35866 0.354105,1.42788 0.904219,2.82282 1.766075,4.01506 1.240713,1.71632 3.083374,2.9395 5.06938,3.67497 3.241832,1.20053 6.933796,1.13597 10.13167,-0.17718 5.658851,-2.45702 10.449216,-6.8639 13.36879,-12.29857 1.045394,-1.94596 1.857401,-4.01932 2.38189,-6.16513 0.208453,-0.85283 0.372151,-1.72236 0.379775,-2.60027 0.0076,-0.8779 -0.146556,-1.76875 -0.545735,-2.55069"
+ id="path29714-8-3-0"
+ style="opacity:0.35;fill:url(#radialGradient18848);filter:url(#filter14951-8)"
+ transform="matrix(1,0,0,0.72292525,159.99984,20.396294)" />
+ </g>
+ <g
+ id="g545">
+ <path
+ d="m 76.1875,285.32775 c -0.405158,-1.10369 -1.118445,-2.08156 -1.990705,-2.86987 -0.872259,-0.78832 -1.900482,-1.39229 -2.982775,-1.85155 -2.164587,-0.91852 -4.520525,-1.26149 -6.83152,-1.69556 -2.179187,-0.40931 -4.34179,-0.90631 -6.52782,-1.27734 -2.27136,-0.38551 -4.617897,-0.63213 -6.8653,-0.1253 -1.965827,0.44333 -3.784499,1.45879 -5.271724,2.81864 -1.487225,1.35984 -2.649109,3.0564 -3.484986,4.89007 -1.472176,3.22952 -1.934512,6.86503 -1.65394,10.40316 0.208815,2.63325 0.875323,5.34594 2.60877,7.33912 1.400654,1.61052 3.387329,2.61526 5.43398,3.22092 3.525017,1.04316 7.366632,0.98822 10.86038,-0.1553 5.766894,-1.93113 10.875681,-5.77387 14.33034,-10.77903 1.138609,-1.64963 2.112174,-3.44809 2.5532,-5.4034 0.335973,-1.48955 0.348308,-3.08112 -0.1779,-4.51456"
+ id="path29714-5-4"
+ style="fill:#020204"
+ transform="translate(159.99984,-58.362183)" />
+ <path
+ style="fill:url(#radialGradient18850);filter:url(#filter14812-5)"
+ d="m 362.21875,276.45593 c -0.54933,0.0306 -1.08144,0.0909 -1.625,0.1875 -3.46951,0.61686 -6.64705,2.80857 -8.4375,5.84375 -1.26396,2.14267 -1.83985,4.67634 -1.65625,7.15625 0.0732,-1.74163 0.52946,-3.44685 1.375,-4.96875 1.43442,-2.58185 4.03238,-4.52979 6.9375,-5.0625 1.78976,-0.32819 3.63182,-0.13095 5.4375,0.0937 1.73256,0.2156 3.48115,0.44287 5.1875,0.8125 2.64101,0.57209 5.25428,1.45135 7.46875,3 0.51646,0.36118 0.99955,0.76857 1.40625,1.25 0.40669,0.48143 0.72188,1.03792 0.84375,1.65625 0.17824,0.90428 -0.0794,1.85295 -0.53125,2.65625 -0.45189,0.8033 -1.06491,1.50665 -1.71875,2.15625 -0.52923,0.5258 -1.09482,1.03417 -1.65625,1.53125 2.559,-0.49571 5.15199,-1.19766 7.28125,-2.6875 0.89975,-0.62955 1.71523,-1.38464 2.25,-2.34375 0.53477,-0.95912 0.76245,-2.1212 0.5,-3.1875 -0.17714,-0.71971 -0.57137,-1.3824 -1.0625,-1.9375 -0.49114,-0.55511 -1.0805,-1.01217 -1.6875,-1.4375 -2.67877,-1.87701 -5.81493,-3.07854 -9.0625,-3.46875 -2.08149,-0.38286 -4.18122,-0.70597 -6.28125,-0.96875 -1.64344,-0.20564 -3.32077,-0.37313 -4.96875,-0.28125 z"
+ id="path29714-3-9-9"
+ clip-path="url(#clipPath533)"
+ transform="translate(-150.00016,-58.362183)" />
+ <path
+ style="fill:url(#linearGradient18852);filter:url(#filter14812-0-9)"
+ d="m 362.21875,276.45593 c -0.54933,0.0306 -1.08144,0.0909 -1.625,0.1875 -3.46951,0.61686 -6.64705,2.80857 -8.4375,5.84375 -1.26396,2.14267 -1.83985,4.67634 -1.65625,7.15625 0.0732,-1.74163 0.52946,-3.44685 1.375,-4.96875 1.43442,-2.58185 4.03238,-4.52979 6.9375,-5.0625 1.78976,-0.32819 3.63182,-0.13095 5.4375,0.0937 1.73256,0.2156 3.48115,0.44287 5.1875,0.8125 2.64101,0.57209 5.25428,1.45135 7.46875,3 0.51646,0.36118 0.99955,0.76857 1.40625,1.25 0.40669,0.48143 0.72188,1.03792 0.84375,1.65625 0.17824,0.90428 -0.0794,1.85295 -0.53125,2.65625 -0.45189,0.8033 -1.06491,1.50665 -1.71875,2.15625 -0.52923,0.5258 -1.09482,1.03417 -1.65625,1.53125 2.559,-0.49571 5.15199,-1.19766 7.28125,-2.6875 0.89975,-0.62955 1.71523,-1.38464 2.25,-2.34375 0.53477,-0.95912 0.76245,-2.1212 0.5,-3.1875 -0.17714,-0.71971 -0.57137,-1.3824 -1.0625,-1.9375 -0.49114,-0.55511 -1.0805,-1.01217 -1.6875,-1.4375 -2.67877,-1.87701 -5.81493,-3.07854 -9.0625,-3.46875 -2.08149,-0.38286 -4.18122,-0.70597 -6.28125,-0.96875 -1.64344,-0.20564 -3.32077,-0.37313 -4.96875,-0.28125 z"
+ id="path29714-3-9-3-8"
+ clip-path="url(#clipPath538)"
+ transform="translate(-150.00016,-58.36218)" />
+ </g>
+ <g
+ id="g777">
+ <g
+ id="g669">
+ <g
+ id="g643">
+ <path
+ id="path28795-9-5"
+ d="m -24.767558,113.36218 c -1.780966,0.097 -3.484616,0.91899 -4.787852,2.1367 -1.303235,1.21771 -2.221372,2.81176 -2.786181,4.50357 -1.129618,3.38363 -0.87548,7.05177 -0.618697,10.60973 0.23251,3.22162 0.470404,6.50533 1.676785,9.50158 0.60319,1.49813 1.450246,2.91021 2.580338,4.06395 1.130092,1.15374 2.551736,2.04189 4.118297,2.43447 1.468838,0.36809 3.03816,0.29183 4.482783,-0.16209 1.444622,-0.45392 2.763916,-1.27887 3.846235,-2.33791 1.57904,-1.54507 2.643262,-3.5662 3.253449,-5.68947 0.610186,-2.12328 0.784157,-4.35155 0.752401,-6.56053 -0.03974,-2.76435 -0.400909,-5.53851 -1.265755,-8.16439 -0.864846,-2.62588 -2.245743,-5.10327 -4.172795,-7.08561 -0.933308,-0.96009 -1.997765,-1.80513 -3.198585,-2.39747 -1.200819,-0.59233 -2.543439,-0.92535 -3.880423,-0.85253"
+ style="fill:url(#radialGradient18806)"
+ transform="translate(138.99984,-49.362181)" />
+ <g
+ id="g605">
+ <path
+ transform="translate(-50.00015,-58.362183)"
+ style="fill:#020204"
+ id="path29453-9"
+ d="m 159.93889,137.11161 c -0.37211,2.24574 -0.38563,4.60199 0.3864,6.74344 0.50979,1.41404 1.35041,2.69692 2.37218,3.79935 0.66903,0.72184 1.42824,1.37779 2.31576,1.80318 0.88752,0.42539 1.91578,0.60638 2.87035,0.36671 0.88113,-0.22123 1.65156,-0.78859 2.22013,-1.49715 0.56856,-0.70857 0.9476,-1.55295 1.2177,-2.42034 0.7974,-2.56075 0.66926,-5.36165 -0.12241,-7.92418 -0.5768,-1.86701 -1.53208,-3.66794 -3.02664,-4.9268 -0.71307,-0.60061 -1.54773,-1.07115 -2.45479,-1.28664 -0.90707,-0.2155 -1.88874,-0.16505 -2.73754,0.22063 -0.9423,0.42817 -1.67159,1.24304 -2.14907,2.16134 -0.47749,0.91829 -0.72288,1.93936 -0.89207,2.96046" />
+ <path
+ style="fill:url(#linearGradient18820);filter:url(#filter29493-2)"
+ d="m 114.68735,77.124997 c 0.24185,0.6337 1.05418,0.86381 1.5,1.375 0.43302,0.49651 0.88735,1.01055 1.125,1.625 0.4549,1.17616 -0.4488,2.91931 0.5,3.75 0.29782,0.26075 0.89472,0.26639 1.1875,0 1.14539,-1.04215 0.89094,-3.14433 0.4375,-4.625 -0.4115,-1.34371 -1.42747,-2.61637 -2.67923,-3.25512 -0.57882,-0.29536 -1.45077,-0.54089 -1.94577,-0.11988 -0.31898,0.2713 -0.27431,0.85878 -0.125,1.25 z"
+ id="path29465-8" />
+ </g>
+ <path
+ transform="translate(59.99984,-58.362183)"
+ clip-path="url(#clipPath631)"
+ style="fill:url(#radialGradient18832)"
+ d="m 50.39208,129.52717 c 2.68537,-1.59933 5.95507,-1.97034 9.066699,-1.67565 3.111629,0.29468 6.125434,1.20847 9.141301,2.02921 2.211625,0.60188 4.451579,1.16149 6.525325,2.13777 2.073747,0.97627 3.99989,2.41568 5.141935,4.40296 0.183191,0.31877 0.345257,0.6497 0.539254,0.96201 0.193996,0.31232 0.42311,0.60867 0.716456,0.83031 0.293346,0.22164 0.656994,0.3643 1.024107,0.34424 0.183557,-0.01 0.365612,-0.0609 0.524176,-0.15388 0.158563,-0.093 0.292945,-0.22871 0.377987,-0.39169 0.09778,-0.18739 0.128079,-0.40446 0.117139,-0.61554 -0.01094,-0.21108 -0.06122,-0.41805 -0.117139,-0.62189 -0.755202,-2.75296 -2.53499,-5.08832 -3.88909,-7.6014 -0.8126,-1.5081 -1.476963,-3.09273 -2.2981,-4.5962 -2.81829,-5.16019 -7.443597,-9.21564 -12.701405,-11.84733 -5.257808,-2.6317 -11.127445,-3.89613 -16.997075,-4.23934 -6.801182,-0.39768 -13.619761,0.40945 -20.32932,1.59099 -2.908599,0.5122 -5.86079,1.11511 -8.435686,2.56156 -1.287447,0.72322 -2.467452,1.65662 -3.388474,2.81087 -0.921022,1.15425 -1.576477,2.53523 -1.78765,3.99673 -0.203522,1.40855 0.0088,2.86057 0.501301,4.19582 0.492484,1.33524 1.258246,2.5585 2.156537,3.66236 1.796584,2.20771 4.100665,3.93361 6.222432,5.83092 2.121308,1.8969 4.09001,3.99204 6.462948,5.56282 1.186469,0.78539 2.472664,1.43499 3.843385,1.81666 1.37072,0.38166 2.829918,0.48917 4.223827,0.20358 1.444987,-0.29606 2.782689,-1.005 3.953624,-1.90197 1.170934,-0.89697 2.186129,-1.98006 3.148417,-3.09793 1.924576,-2.23575 3.722539,-4.68648 6.257089,-6.19599"
+ id="path29551-9" />
+ <path
+ transform="translate(160,-57.362183)"
+ id="path28795-9-2-2"
+ d="m -38.437655,119.37798 c 2.5037,2.34533 4.36502,5.2397 5.625,8.30939 -0.550665,-3.38469 -1.423402,-6.10373 -3.625,-8.30939 -1.35129,-1.26581 -2.88639,-2.37775 -4.625,-3.1587 -1.52128,-0.68334 -3.213598,-1.10788 -4.180828,-1.12552 -0.96723,-0.0176 -1.2022,0.004 -1.40094,0.0134 -0.19874,0.009 -0.35739,0.0162 0.27185,0.0877 0.62924,0.0715 2.03368,0.45118 3.541104,1.12827 1.507424,0.6771 3.042524,1.78904 4.393814,3.05485 z"
+ style="fill:url(#linearGradient18818);filter:url(#filter29447-1)" />
+ </g>
+ <g
+ id="g652">
+ <path
+ id="path28795-3"
+ d="m 6.7500001,113.36218 c -2.780425,1.91023 -5.110569,4.57487 -6.24999996,7.75 -1.4360294,4.00163 -0.88583807,8.48071 0.49999996,12.5 1.4194877,4.11688 3.793788,8.04098 7.37932,10.51234 1.7927659,1.23567 3.8680909,2.08301 6.0304019,2.33859 2.162311,0.25558 4.409274,-0.0949 6.340278,-1.10093 2.353116,-1.22596 4.147816,-3.37278 5.262172,-5.78076 1.114356,-2.40798 1.588797,-5.0701 1.737828,-7.71924 0.189892,-3.37546 -0.140469,-6.80646 -1.25,-10 -1.205266,-3.46909 -3.390051,-6.67055 -6.472754,-8.6666 -1.541351,-0.99803 -3.291947,-1.68356 -5.110883,-1.93515 -1.818936,-0.25158 -3.704766,-0.0633 -5.4163629,0.60175 -0.9754713,0.37901 -1.8874384,0.9074 -2.75,1.5"
+ style="fill:url(#radialGradient18808)"
+ transform="translate(138.99984,-49.362181)" />
+ <g
+ id="g613">
+ <path
+ transform="translate(-150.00015,-58.362183)"
+ style="fill:#020204"
+ id="path28879-6"
+ d="m 302.16152,130.75695 c -1.04548,0.0749 -2.06437,0.4318 -2.95135,0.99028 -0.88699,0.55848 -1.64327,1.31521 -2.23701,2.17899 -1.18748,1.72757 -1.70894,3.84675 -1.793,5.94139 -0.0631,1.5723 0.11098,3.16512 0.63245,4.64977 0.52147,1.48465 1.40089,2.85877 2.61276,3.86251 1.24011,1.02713 2.81647,1.64364 4.42485,1.72094 1.60838,0.0773 3.23948,-0.38665 4.56105,-1.3066 1.05288,-0.73292 1.9021,-1.74168 2.50666,-2.87315 0.60455,-1.13148 0.96879,-2.38348 1.1353,-3.65549 0.29411,-2.24678 -0.0385,-4.59295 -1.07692,-6.60695 -1.03841,-2.01401 -2.80051,-3.67269 -4.92674,-4.45606 -0.92093,-0.3393 -1.90911,-0.51576 -2.88805,-0.44563" />
+ <path
+ style="fill:#141413;filter:url(#filter28927-8)"
+ d="m 154.6561,79.249997 c -0.86591,0.34162 -2.23657,0.12677 -2.61622,0.9767 -0.22493,0.50357 0.0927,1.33252 0.60343,1.54061 1.03244,0.42063 2.63193,-0.34111 3.04876,-1.3751 0.18104,-0.4491 -0.0934,-1.16101 -0.53974,-1.34865 -0.16515,-0.0694 -0.32958,0.14069 -0.49623,0.20644 z"
+ id="path28891-5" />
+ <path
+ style="fill:url(#linearGradient18812);filter:url(#filter28949-8)"
+ d="m 158.62485,81.499997 c 1.16113,-1.16113 -0.82613,-4.23951 -2.375,-5.5 -1.12184,-0.91296 -4.39063,-1.86851 -4.25,-0.875 0.14063,0.99351 1.60988,2.26647 2.59467,3.23744 1.21236,1.19533 3.47886,3.68903 4.03033,3.13756 z"
+ id="path28887-6" />
+ </g>
+ <path
+ transform="translate(59.99984,-58.362183)"
+ clip-path="url(#clipPath622)"
+ id="path28972-5"
+ d="m 75.25,132.48718 c 2.383746,-1.98014 5.160908,-3.48474 8.12154,-4.40008 6.085564,-1.88147 12.999677,-1.13706 18.37846,2.27508 1.85708,1.17808 3.51244,2.64192 5.23935,4.00367 1.72691,1.36176 3.56115,2.64122 5.63565,3.37133 1.12086,0.39448 2.31818,0.62345 3.5,0.5 1.06768,-0.11153 2.09928,-0.5118 2.98444,-1.11915 0.88515,-0.60736 1.62476,-1.4185 2.18064,-2.33686 1.11176,-1.8367 1.47001,-4.06457 1.27839,-6.20298 -0.38324,-4.27682 -2.79556,-8.05341 -4.81847,-11.84101 -0.63342,-1.18598 -1.23642,-2.39333 -2,-3.5 -2.34327,-3.39616 -6.07312,-5.63562 -9.98498,-6.94794 -3.91185,-1.31233 -8.046257,-1.78639 -12.14002,-2.30206 -1.825736,-0.22998 -3.673032,-0.46998 -5.5,-0.25 -2.099797,0.25283 -4.075978,1.101 -6.125,1.625 -0.972648,0.24874 -1.963662,0.42478 -2.928029,0.70391 -0.964366,0.27912 -1.912957,0.669 -2.696971,1.29609 -1.144817,0.91567 -1.865056,2.29088 -2.176504,3.72338 -0.311449,1.4325 -0.240517,2.92444 -0.01161,4.37242 0.457809,2.89597 1.540886,5.72407 1.438116,8.6542 -0.07058,2.01227 -0.702287,3.98797 -0.625,6 0.02266,0.58987 0.106588,1.17738 0.25,1.75"
+ style="fill:url(#linearGradient18814)" />
+ <path
+ transform="translate(160,-57.362183)"
+ id="path28795-92-2"
+ d="m -4.593905,113.125 c -0.47695,0.59985 -0.90798,1.25231 -1.25,1.96875 2.14641,0.46247 4.19906,1.34575 6.03125,2.5625 3.54507,2.35427 6.237,5.7965 8.125,9.625 0.44076,-0.48807 0.84202,-1.01184 1.1875,-1.59375 -1.89751,-3.9878 -4.64382,-7.5949 -8.3125,-10.03125 -1.76231,-1.17035 -3.72465,-2.05369 -5.78125,-2.53125 z"
+ style="fill:url(#linearGradient18816);filter:url(#filter29350-1)" />
+ </g>
+ </g>
+ <g
+ id="g735">
+ <path
+ transform="translate(138.99984,-49.362181)"
+ style="fill:url(#radialGradient18810)"
+ d="m -16.39938,136.86218 c 1.767366,-1.98662 2.976192,-4.41053 4.674142,-6.45679 0.848975,-1.02314 1.8284211,-1.95533 2.9816817,-2.61681 1.1532606,-0.66147 2.4919769,-1.0411 3.8165164,-0.9264 1.4744902,0.12769 2.8545436,0.86228 3.93407466,1.87472 1.07953103,1.01244 1.8797683,2.29027 2.51864534,3.62528 0.6117397,1.27831 1.0977635,2.64027 1.97912,3.75 0.940326,1.18398 2.2595274,1.99218 3.4510909,2.92288 0.5957818,0.46535 1.167477,0.96911 1.6383978,1.5605 0.4709209,0.59139 0.8396117,1.27595 0.9909913,2.01662 0.1537234,0.75214 0.077153,1.54506 -0.1851792,2.26653 -0.2623326,0.72148 -0.7066964,1.37174 -1.2596263,1.90429 -1.1058598,1.0651 -2.6135811,1.63957 -4.1338116,1.85466 -3.04046123,0.43016 -6.1146629,-0.47583 -9.1842429,-0.39142 -3.1068902,0.0854 -6.1415551,1.18366 -9.2475441,1.07007 -1.552994,-0.0568 -3.128063,-0.43624 -4.404252,-1.32301 -0.638094,-0.44339 -1.194008,-1.01055 -1.595831,-1.6756 -0.401824,-0.66505 -0.646688,-1.42894 -0.672863,-2.20552 -0.02497,-0.74092 0.148043,-1.48088 0.444075,-2.16055 0.296033,-0.67967 0.712681,-1.30175 1.182123,-1.87552 0.938883,-1.14753 2.086993,-2.10617 3.072492,-3.21393"
+ id="path28849-2" />
+ <g
+ id="g712">
+ <path
+ d="m 45.751683,165.03156 c 0.06146,0.29539 0.172509,0.58039 0.32709,0.8395 0.265683,0.44533 0.653935,0.80631 1.073256,1.1114 0.419321,0.30509 0.872799,0.55947 1.311827,0.83545 2.333646,1.46695 4.235362,3.52905 5.924734,5.70709 2.266543,2.92217 4.271913,6.16491 7.29931,8.28886 2.137781,1.49982 4.695713,2.35501 7.29406,2.61606 3.051317,0.30656 6.139876,-0.18595 9.08171,-1.05205 2.726384,-0.80267 5.363099,-1.92956 7.78216,-3.4214 4.598507,-2.83591 8.439249,-6.99271 13.51002,-8.85709 1.10702,-0.40702 2.25922,-0.69819 3.3265,-1.20026 1.06727,-0.50207 2.07136,-1.25403 2.5811,-2.31766 0.48998,-1.02241 0.47097,-2.20249 0.63053,-3.32496 0.1707,-1.20084 0.55374,-2.36184 0.76385,-3.55642 0.2101,-1.19458 0.23517,-2.47233 -0.28138,-3.56975 -0.42775,-0.90878 -1.20535,-1.62786 -2.09983,-2.08475 -0.89448,-0.4569 -1.90108,-0.66447 -2.90429,-0.71372 -2.006415,-0.0985 -3.987581,0.41519 -5.98809,0.59785 -2.649534,0.24193 -5.317874,-0.0982 -7.97725,-0.019 -3.308296,0.0986 -6.568402,0.84468 -9.87428,1.00503 -3.771518,0.18294 -7.534685,-0.39851 -11.30754,-0.55139 -1.634066,-0.0662 -3.279962,-0.0512 -4.891819,0.22531 -1.611857,0.27654 -3.195234,0.82363 -4.541001,1.75286 -1.311442,0.90553 -2.355916,2.14022 -3.560189,3.18405 -0.602137,0.52192 -1.249488,0.99929 -1.966273,1.3474 -0.716785,0.34812 -1.50749,0.564 -2.304158,0.54708 -0.409601,-0.009 -0.830861,-0.0769 -1.2213,0.0472 -0.243915,0.0775 -0.460478,0.22705 -0.643532,0.40593 -0.183054,0.17888 -0.334787,0.38705 -0.477798,0.59931 -0.332537,0.49356 -0.623066,1.01541 -0.867417,1.55807"
+ id="path28461-2"
+ style="fill:url(#radialGradient18822)"
+ transform="translate(59.99984,-58.362183)" />
+ <path
+ d="m 60.55673,169.09742 c -0.386462,1.59605 -0.151992,3.33408 0.64359,4.77067 0.795582,1.43659 2.144391,2.5575 3.70231,3.07676 1.977755,0.65919 4.206575,0.33635 6.05477,-0.62813 1.071362,-0.55909 2.051171,-1.34588 2.669379,-2.38425 0.309105,-0.51918 0.523981,-1.09707 0.604518,-1.69591 0.08054,-0.59884 0.02471,-1.2185 -0.184887,-1.78522 -0.229715,-0.62112 -0.640261,-1.16849 -1.146053,-1.59596 -0.505791,-0.42748 -1.104668,-0.7378 -1.733436,-0.94568 -1.257537,-0.41575 -2.610936,-0.42405 -3.933891,-0.36051 -2.005209,0.0963 -4.002918,0.34837 -5.9692,0.75318"
+ id="path28487-2"
+ style="fill:#d9b30d;filter:url(#filter28502-8)"
+ transform="translate(59.99984,-58.362183)" />
+ <path
+ id="path27476-7-8"
+ d="m 54.0663,156.67992 c -1.338955,0.79147 -2.628584,1.66369 -3.8975,2.56317 -0.656705,0.46551 -1.334168,0.96895 -1.68056,1.69557 -0.245501,0.51498 -0.301768,1.09903 -0.309586,1.66948 -0.0078,0.57045 0.02884,1.14399 -0.04618,1.70954 -0.05124,0.38625 -0.154326,0.76619 -0.171537,1.15544 -0.0086,0.19463 0.0047,0.39145 0.05602,0.57938 0.05134,0.18793 0.141902,0.36704 0.275482,0.50885 0.172556,0.18318 0.407931,0.29591 0.64865,0.36931 0.240719,0.0734 0.490638,0.1112 0.73562,0.16878 1.174662,0.27611 2.196917,0.99676 3.094125,1.80366 0.897208,0.8069 1.702883,1.71487 2.638865,2.47645 2.537255,2.06449 5.890478,2.91872 9.161088,2.97254 3.27061,0.0538 6.504204,-0.63066 9.695302,-1.34946 2.506322,-0.56456 5.014978,-1.15472 7.42544,-2.04356 3.702752,-1.36537 7.140748,-3.43167 10.11819,-6.02193 1.349968,-1.17442 2.617219,-2.46364 4.13251,-3.41525 1.340926,-0.84211 2.842622,-1.39796 4.206331,-2.20265 0.12193,-0.072 0.24321,-0.14621 0.35213,-0.23665 0.10893,-0.0905 0.20574,-0.1981 0.26892,-0.3248 0.10917,-0.21894 0.10937,-0.48123 0.0389,-0.71552 -0.0704,-0.23429 -0.20633,-0.44389 -0.36,-0.63425 -0.16999,-0.21058 -0.36336,-0.40158 -0.568951,-0.57756 -1.424379,-1.21921 -3.356756,-1.66245 -5.22581,-1.81067 -1.869053,-0.14822 -3.760672,-0.0434 -5.60996,-0.35238 -1.738647,-0.29048 -3.393268,-0.93881 -5.07175,-1.4773 -1.761942,-0.56527 -3.562776,-1.01251 -5.38903,-1.31044 -4.294756,-0.70063 -8.71732,-0.56641 -12.97748,0.32063 -4.057685,0.84488 -7.971287,2.37056 -11.53927,4.47962"
+ style="fill:#604405;filter:url(#filter15145-6)"
+ transform="translate(59.99984,-58.362183)" />
+ <path
+ id="path27476-4"
+ d="m 53.63941,152.15408 c -1.929391,1.2986 -3.666135,2.88291 -5.13602,4.68523 -0.840698,1.03083 -1.603727,2.15084 -2.02709,3.41185 -0.332996,0.99185 -0.446478,2.04153 -0.65633,3.06652 -0.07861,0.38398 -0.171386,0.76923 -0.169741,1.16118 8.22e-4,0.19597 0.02568,0.39281 0.08646,0.57912 0.06079,0.18631 0.15831,0.36204 0.294069,0.50337 0.224679,0.23391 0.540409,0.36101 0.858102,0.42632 0.317692,0.0653 0.643798,0.0751 0.966058,0.11177 1.454637,0.16535 2.794463,0.87199 4.000333,1.70216 1.205869,0.83017 2.317112,1.79543 3.554437,2.57795 2.733893,1.72899 5.994554,2.49829 9.226902,2.62285 3.232347,0.12456 6.457354,-0.36641 9.629488,-0.99977 2.520903,-0.50334 5.033924,-1.10072 7.42544,-2.04356 3.662411,-1.44389 6.963507,-3.66693 10.11819,-6.02193 1.43301,-1.06976 2.84598,-2.17318 4.13251,-3.41525 0.43668,-0.42159 0.859162,-0.85947 1.327567,-1.24551 0.468404,-0.38603 0.988159,-0.72177 1.565973,-0.90766 0.880766,-0.28336 1.835622,-0.20203 2.748192,-0.0495 0.68732,0.11488 1.376,0.26902 2.07229,0.24128 0.34815,-0.0139 0.69661,-0.0742 1.02006,-0.2037 0.32345,-0.12954 0.62155,-0.33028 0.8433,-0.59903 0.29139,-0.35317 0.43996,-0.81445 0.4416,-1.2723 0.002,-0.45786 -0.1387,-0.91095 -0.37105,-1.30548 -0.4647,-0.78905 -1.26825,-1.32311 -2.10504,-1.69503 -1.14614,-0.50941 -2.3863,-0.76136 -3.605512,-1.05573 -3.745289,-0.90427 -7.384752,-2.24056 -10.83577,-3.95385 -1.715597,-0.85173 -3.383551,-1.79555 -5.07175,-2.70037 -1.735567,-0.93021 -3.504569,-1.82415 -5.38903,-2.39536 -4.21332,-1.27713 -8.818528,-0.85829 -12.97748,0.58609 -4.619909,1.60447 -8.797447,4.46312 -11.96616,8.18832 v 2e-5"
+ style="fill:url(#linearGradient18824)"
+ transform="translate(59.99984,-58.362183)" />
+ <path
+ id="path28357-7"
+ d="m 83.23853,153.07989 c -0.226496,-0.28623 -0.551139,-0.48799 -0.901294,-0.59103 -0.350155,-0.10304 -0.724669,-0.1104 -1.084432,-0.0488 -0.719527,0.12322 -1.364496,0.51049 -1.965744,0.9245 -1.708552,1.17648 -3.218864,2.62822 -4.53731,4.22977 -1.745223,2.11996 -3.18499,4.57171 -3.66755,7.27489 -0.08131,0.45547 -0.135106,0.92132 -0.07821,1.38049 0.0569,0.45916 0.232792,0.91479 0.558708,1.24319 0.286171,0.28835 0.675727,0.46425 1.077847,0.52203 0.40212,0.0578 0.815901,0.002 1.200757,-0.12836 0.769713,-0.26019 1.408987,-0.79942 2.014436,-1.34126 3.335973,-2.98548 6.352522,-6.56776 7.55957,-10.87877 0.121128,-0.43261 0.224012,-0.87566 0.221233,-1.3249 -0.0028,-0.44924 -0.119237,-0.90947 -0.398013,-1.26176"
+ style="fill:#f6da4a;filter:url(#filter14963-7)"
+ transform="translate(59.99984,-58.362183)" />
+ <g
+ id="g681">
+ <path
+ style="opacity:0.8;fill:url(#radialGradient18826);filter:url(#filter15177-1)"
+ d="m 135.25114,88.527667 c 0.23129,0.7424 1.42778,0.61935 2.11906,0.97542 0.60659,0.31244 1.09447,0.99723 1.77651,1.01692 0.65093,0.0188 1.66398,-0.22542 1.74866,-0.87109 0.11187,-0.85303 -1.13379,-1.39511 -1.93536,-1.70762 -1.03148,-0.40216 -2.35301,-0.6062 -3.3206,-0.0682 -0.22173,0.12328 -0.46373,0.41238 -0.38827,0.65458 z"
+ id="path28396-7" />
+ <path
+ style="opacity:0.8;fill:url(#radialGradient18828);filter:url(#filter15173-0)"
+ d="m 123.82694,88.107827 c -0.88816,-0.28854 -2.35748,1.27746 -1.87806,2.07886 0.13167,0.22009 0.53491,0.49916 0.80641,0.34992 0.40925,-0.22497 0.74404,-1.02958 1.18746,-1.34496 0.29608,-0.21058 0.22974,-0.97156 -0.11581,-1.08382 z"
+ id="path28398-7" />
+ </g>
+ <path
+ transform="matrix(1.0956223,0,-0.17017853,1.5181314,-76.24447,-140.47964)"
+ style="fill:url(#linearGradient18830);filter:url(#filter28584-4)"
+ d="m 245.90496,158.28406 a 2.608083,2.328125 0 0 1 -2.60809,2.32812 2.608083,2.328125 0 0 1 -2.60808,-2.32812 2.608083,2.328125 0 0 1 2.60808,-2.32813 2.608083,2.328125 0 0 1 2.60809,2.32813 z"
+ id="path28570-8"
+ clip-path="url(#clipPath697)" />
+ </g>
+ </g>
+ </g>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.89359px;line-height:1.2;font-family:'Roboto Slab';-inkscape-font-specification:'Roboto Slab';font-variant-ligatures:discretionary-ligatures;font-variant-position:super;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-color:#000000;letter-spacing:-0.0257845px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#001024;fill-rule:evenodd;stroke-width:1.84175;stroke-linejoin:round;stop-color:#000000"
+ x="23.260744"
+ y="84.724617"
+ id="text6005"><tspan
+ id="tspan6003"
+ x="23.260744"
+ y="84.724617"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.89359px;font-family:'Roboto Slab';-inkscape-font-specification:'Roboto Slab';fill:#001024;stroke-width:1.84175">Code Signing</tspan><tspan
+ x="23.24785"
+ y="91.796928"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.89359px;font-family:'Roboto Slab';-inkscape-font-specification:'Roboto Slab';fill:#001024;stroke-width:1.84175"
+ id="tspan6007">Providers</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.89359px;line-height:1.2;font-family:'Roboto Slab';-inkscape-font-specification:'Roboto Slab';font-variant-ligatures:discretionary-ligatures;font-variant-position:super;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-color:#000000;letter-spacing:-0.0257845px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#001024;fill-rule:evenodd;stroke-width:1.84175;stroke-linejoin:round;stop-color:#000000"
+ x="121.53855"
+ y="84.724617"
+ id="text6253"><tspan
+ id="tspan6249"
+ x="121.53855"
+ y="84.724617"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.89359px;font-family:'Roboto Slab';-inkscape-font-specification:'Roboto Slab';fill:#001024;stroke-width:1.84175">Code Signing</tspan><tspan
+ x="121.52566"
+ y="91.796928"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.89359px;font-family:'Roboto Slab';-inkscape-font-specification:'Roboto Slab';fill:#001024;stroke-width:1.84175"
+ id="tspan6251">Consumers</tspan></text>
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.7367;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4140);stop-color:#000000"
+ d="M 88.288259,31.480739 110.14575,20.272964"
+ id="path4136" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.7367;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker3475);stop-color:#000000"
+ d="M 88.288259,41.14663 H 110.14575"
+ id="path3461" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.7367;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker6797);stop-color:#000000"
+ d="M 88.288259,50.812528 110.14575,62.020303"
+ id="path6783" />
+ <g
+ id="g1356">
+ <path
+ id="path7194"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.6804px;line-height:1.25;font-family:'Font Awesome 5 Free';-inkscape-font-specification:'Font Awesome 5 Free, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-color:#000000;letter-spacing:-0.0324629px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#9e1f63;fill-rule:evenodd;stroke:none;stroke-width:0.624264;stroke-linecap:round;stroke-linejoin:round"
+ d="m 24.794105,46.521553 c -2.002689,0.02064 -3.613072,1.631181 -3.613072,3.633867 0,0.412927 0.06187,0.784568 0.165092,1.156199 l -3.323931,3.323931 c -0.103234,0.103266 -0.144661,0.227111 -0.144661,0.350988 v 1.610422 c 0,0.28906 0.206596,0.495466 0.495643,0.495466 h 2.312211 c 0.268402,0 0.495646,-0.206406 0.495646,-0.495466 v -0.825833 h 0.825829 c 0.2684,0 0.49546,-0.206406 0.49546,-0.495455 v -0.825823 h 0.76399 c 0.144524,0 0.268364,-0.06202 0.371593,-0.165277 l 0.495461,-0.557488 c 0.206463,0.04124 0.433591,0.06202 0.681349,0.06202 2.002689,0 3.633685,-1.61039 3.633685,-3.613064 0,-2.023342 -1.630964,-3.654491 -3.654295,-3.654491 z m 1.011717,1.651842 c 0.536804,0 0.990922,0.454122 0.990922,0.990926 0,0.557446 -0.454118,0.991099 -0.990922,0.991099 -0.557447,0 -0.991107,-0.433653 -0.991107,-0.991099 0,-0.536804 0.43366,-0.990926 0.991107,-0.990926 z" />
+ <path
+ id="path7169"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.6804px;line-height:1.25;font-family:'Font Awesome 5 Free';-inkscape-font-specification:'Font Awesome 5 Free, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-color:#000000;letter-spacing:-0.0324629px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#9e1f63;fill-rule:evenodd;stroke:none;stroke-width:0.794368;stroke-linecap:round;stroke-linejoin:round"
+ d="m 16.627258,44.655351 h 13.071184 c 1.300372,0 2.332397,1.032029 2.332397,2.3324 v 13.071186 c 0,1.300374 -1.032025,2.332393 -2.332397,2.332393 H 16.627258 c -1.300372,0 -2.3324,-1.032019 -2.3324,-2.332393 V 46.987751 c 0,-1.300371 1.032028,-2.3324 2.3324,-2.3324 z m 0,-0.937503 c -1.803386,0 -3.269903,1.46652 -3.269903,3.269903 v 13.071186 c 0,1.803379 1.466517,3.269667 3.269903,3.269667 h 13.071184 c 1.803384,0 3.269902,-1.466288 3.269902,-3.269667 V 46.987751 c 0,-1.803384 -1.466518,-3.269903 -3.269902,-3.269903 z" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52778px;line-height:1.2;font-family:'Roboto Slab';-inkscape-font-specification:'Roboto Slab, Normal';font-variant-ligatures:discretionary-ligatures;font-variant-position:super;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-color:#000000;letter-spacing:-0.0193383px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#9e1f63;fill-opacity:1;fill-rule:evenodd;stroke-width:0.552351;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000"
+ x="23.130592"
+ y="61.258026"
+ id="text7208"><tspan
+ id="tspan7206"
+ x="23.12092"
+ y="61.258026"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52778px;font-family:'Roboto Slab';-inkscape-font-specification:'Roboto Slab, Normal';font-variant-ligatures:discretionary-ligatures;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#9e1f63;fill-opacity:1;stroke-width:0.552351;stroke-miterlimit:4;stroke-dasharray:none">release</tspan></text>
+ </g>
+ <g
+ id="g1350">
+ <path
+ id="path7216"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.6804px;line-height:1.25;font-family:'Font Awesome 5 Free';-inkscape-font-specification:'Font Awesome 5 Free, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-color:#000000;letter-spacing:-0.0324629px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#1f639e;fill-rule:evenodd;stroke:none;stroke-width:0.624264;stroke-linecap:round;stroke-linejoin:round"
+ d="m 24.794105,22.84941 c -2.002689,0.02064 -3.613072,1.631181 -3.613072,3.633867 0,0.412927 0.06187,0.784568 0.165092,1.156199 l -3.323931,3.323931 c -0.103234,0.103266 -0.144661,0.227111 -0.144661,0.350988 v 1.610422 c 0,0.28906 0.206596,0.495466 0.495643,0.495466 h 2.312211 c 0.268402,0 0.495646,-0.206406 0.495646,-0.495466 v -0.825833 h 0.825829 c 0.2684,0 0.49546,-0.206406 0.49546,-0.495455 v -0.825823 h 0.76399 c 0.144524,0 0.268364,-0.06202 0.371593,-0.165277 l 0.495461,-0.557488 c 0.206463,0.04124 0.433591,0.06202 0.681349,0.06202 2.002689,0 3.633685,-1.61039 3.633685,-3.613064 0,-2.023342 -1.630964,-3.654491 -3.654295,-3.654491 z m 1.011717,1.651842 c 0.536804,0 0.990922,0.454122 0.990922,0.990926 0,0.557446 -0.454118,0.991099 -0.990922,0.991099 -0.557447,0 -0.991107,-0.433653 -0.991107,-0.991099 0,-0.536804 0.43366,-0.990926 0.991107,-0.990926 z" />
+ <path
+ id="path7218"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:29.6804px;line-height:1.25;font-family:'Font Awesome 5 Free';-inkscape-font-specification:'Font Awesome 5 Free, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-color:#000000;letter-spacing:-0.0324629px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#1f639e;fill-rule:evenodd;stroke:none;stroke-width:0.794368;stroke-linecap:round;stroke-linejoin:round"
+ d="m 16.627258,20.983208 h 13.071184 c 1.300372,0 2.332397,1.032029 2.332397,2.3324 v 13.071186 c 0,1.300374 -1.032025,2.332393 -2.332397,2.332393 H 16.627258 c -1.300372,0 -2.3324,-1.032019 -2.3324,-2.332393 V 23.315608 c 0,-1.300371 1.032028,-2.3324 2.3324,-2.3324 z m 0,-0.937503 c -1.803386,0 -3.269903,1.46652 -3.269903,3.269903 v 13.071186 c 0,1.803379 1.466517,3.269667 3.269903,3.269667 h 13.071184 c 1.803384,0 3.269902,-1.466288 3.269902,-3.269667 V 23.315608 c 0,-1.803384 -1.466518,-3.269903 -3.269902,-3.269903 z" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52778px;line-height:1.2;font-family:'Roboto Slab';-inkscape-font-specification:'Roboto Slab, Normal';font-variant-ligatures:discretionary-ligatures;font-variant-position:super;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-color:#000000;letter-spacing:-0.0193383px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#1f639e;fill-opacity:1;fill-rule:evenodd;stroke-width:0.552351;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000"
+ x="23.130592"
+ y="37.585884"
+ id="text7222"><tspan
+ id="tspan7220"
+ x="23.12092"
+ y="37.585884"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52778px;font-family:'Roboto Slab';-inkscape-font-specification:'Roboto Slab, Normal';font-variant-ligatures:discretionary-ligatures;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#1f639e;fill-opacity:1;stroke-width:0.552351;stroke-miterlimit:4;stroke-dasharray:none">devel</tspan></text>
+ </g>
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.736468;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker5387);stop-color:#000000"
+ d="m 37.295996,29.679822 14.742818,7.095892"
+ id="path5121" />
+ <path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.736468;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker7252);stop-color:#000000"
+ d="M 37.295996,53.455348 52.038814,46.359459"
+ id="path7238" />
+ <g
+ id="g1361">
+ <rect
+ style="fill:#929292;fill-opacity:0.998066;fill-rule:evenodd;stroke:none;stroke-width:0.600033;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000"
+ id="rect9273"
+ width="12.422863"
+ height="43.266964"
+ x="93.231277"
+ y="19.513153"
+ rx="0.95758843"
+ ry="0.95758843" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111px;line-height:1.2;font-family:'Roboto Slab';-inkscape-font-specification:'Roboto Slab, Normal';font-variant-ligatures:discretionary-ligatures;font-variant-position:super;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-color:#000000;letter-spacing:-0.0411397px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#001024;fill-opacity:1;fill-rule:evenodd;stroke-width:1.17505;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;"
+ x="-41.135151"
+ y="102.22821"
+ id="text9271"
+ transform="rotate(-90)"><tspan
+ id="tspan9269"
+ x="-41.155727"
+ y="102.22821"
+ style="fill:#001024;stroke-width:1.17505;font-size:7.76111px;-inkscape-font-specification:'Roboto Slab, Normal';font-family:'Roboto Slab';font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-variant-ligatures:discretionary-ligatures ;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;">PKCS#11</tspan></text>
+ </g>
+</svg>
diff --git a/doc/dev_create_new_pkg_templates.rst b/doc/dev_create_new_pkg_templates.rst
index d7c2927b6..3c47addee 100644
--- a/doc/dev_create_new_pkg_templates.rst
+++ b/doc/dev_create_new_pkg_templates.rst
@@ -73,5 +73,5 @@ The helper functions that are used in the example above are defined in
The template is a normal shell function. Arbitrary things can be done here
to create the new package. The helper functions are just the most
convenient way to crate simple templates. It is also possible to create
-more files. For examples, the builtin ``genimage`` template creates a extra
+more files. For examples, the builtin ``genimage`` template creates an extra
config file for the new package.
diff --git a/doc/dev_layers_in_ptxdist.rst b/doc/dev_layers_in_ptxdist.rst
index 27ca85832..6f932eae9 100644
--- a/doc/dev_layers_in_ptxdist.rst
+++ b/doc/dev_layers_in_ptxdist.rst
@@ -89,7 +89,7 @@ must be updated before they can be used. This can be done by using the
``oldconfig`` command. In this special case, PTXdist will iterate from the
bottom to the top layer and run ``oldconfig`` for each of them. It will
use the delta config applied to the full config of the layer below at each
-step. This means that it's possible to enable or disable a option in the
+step. This means that it's possible to enable or disable an option in the
bottom layer and ``oldconfig`` will propagate this change to all other
layers.
diff --git a/doc/dev_licenses.rst b/doc/dev_licenses.rst
new file mode 100644
index 000000000..6aed9daac
--- /dev/null
+++ b/doc/dev_licenses.rst
@@ -0,0 +1,245 @@
+.. _licensing_in_packages:
+
+Tracking licensing information in packages
+------------------------------------------
+
+PTXdist aims to track licensing information for every package.
+This includes the license(s) under which a package can be distributed,
+as well as the respective files in the package's source tree that state those terms.
+Sadly there is no widely adopted standard for machine-readable licensing
+information in source code (`yet <https://reuse.software>`_),
+so here are a few hints where to look.
+
+In that process, we aim to collect the baseline set of licenses
+which at least apply to a package.
+There may be other licenses which apply too, but the complete set often cannot
+be found without a time-consuming review.
+Still, the extracted license information in PTXdist can serve as a hint for
+the full license compliance process,
+and can help to exclude certain software under certain licenses from the build.
+
+There are many older package rules in PTXdist which don't specify licensing information.
+If you want to help complete the database,
+you can use ``grep -L _LICENSE_FILES rules/*.make`` (in the PTXdist tree) to find those rules.
+Note however that this cannot find wrong or incomplete licensing information.
+
+Finding licensing information
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You should first select and extract the package in question, and then have a
+look at in the extracted package sources (usually something like
+``platform-nnn/build-target/mypackage-1.0`` in your BSP, if in doubt see
+``ptxdist package-info mypackage``).
+
+* Check for files named ``COPYING``, ``COPYRIGHT``, or ``LICENSE``.
+ These often only contain the license text and, in case of GPL, no information
+ if the code is available under the *-only* or *-or-later* variant.
+ Sometimes these files are in a folder ``/doc`` or ``/legal``.
+
+* Check the ``README``, if there is any.
+ Often there is important information there, e.g. in case of GPL if the
+ software is *GPL-x.x-or-later* or *GPL-x.x-only*.
+
+* Check source files, like ``*.c`` for license headers.
+ Often additional information can be found here.
+
+* If you want to be extra sure, use a license compliance toolchain (e.g.
+ `FOSSology <https://www.fossology.org/>`__) on the project.
+
+Ideally you'll find two pieces of information:
+
+* A *license text* (e.g. a GNU General Public License v2.0 text)
+* A *license statement* that states that a certain license applies to (parts of) the project
+ (often also including copyright statements and a warranty disclaimer)
+
+Some licenses (e.g. BSD-style licenses) are also short enough so that both
+pieces are combined in a short comment header in a source file or a README.
+Strictly speaking, both the license text and the license statement must be
+present for a complete, unambiguous license, but see the next section about
+edge cases.
+
+On the other hand, there are some parts that can be ignored for our purposes:
+
+* Everything that is auto-generated, either by a script in the project source,
+ or by the build system previous to packaging.
+ The generator itself cannot hold copyright, although the authors of the
+ templates used for the generation or the authors of the generator can.
+
+* Most files belonging to the build system don't make it into the compiled code
+ and can therefore be ignored (e.g. configure scripts, Makefiles).
+ These cases sometimes can be hard to detect – if unsure, include the file in
+ your research.
+
+Some projects also include a COPYING.LIB containing an LGPL text, which is
+referenced nowhere in the project.
+In that case, ignore the COPYING.LIB – it probably comes from a boilerplate
+project skeleton and the maintainer forgot to delete it.
+
+Distillation into license identifiers
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+In PTXdist, we use `SPDX license expressions <https://spdx.org/licenses/>`_.
+
+Either the license identifier is clear, e.g. because the README says "GPL 2.0
+or later" (check the license text to be sure), or you can use tools like
+`FOSSology <https://www.fossology.org>`__,
+`licensecheck <https://wiki.debian.org/CopyrightReviewTools#Command-line_tools_in_Debian>`_,
+or `spdx-license-match <https://github.com/rohieb/spdx-license-match>`_
+to match texts to SPDX license identifiers.
+
+License texts don't have to match exactly, you should apply the
+`SPDX Matching Guidelines <https://spdx.org/spdx-license-list/matching-guidelines>`_
+accordingly.
+The important part here is that the project's license and the SPDX identifier
+describe the same licensing terms.
+"Rather close" or "mostly similar" statements are not enough for a match,
+but simple unimportant changes like replacing *"The Author"* with the project's
+maintainer's name, or a change in e-mail adresses, are usually okay.
+
+For software that is not open-source according to the `OSI definition
+<https://opensource.org/osd>`_, use the identifier ``proprietary``.
+
+.. important::
+
+ If no license identifier matches, or if anything is unclear about the
+ licensing situation, use the identifier ``custom`` (for licenses)
+ or ``custom-exception`` (for license exceptions, e.g.: ``GPL-2.0-only WITH
+ custom-exception``).
+
+If SPDX doesn't know about a license yet, and the project is considered open
+source or free software, you can `report its license to be added to the SPDX
+license list
+<https://github.com/spdx/license-list-XML/blob/master/CONTRIBUTING.md#request-a-new-license-or-exception-be-added-to-the-spdx-license-list>`_.
+
+Multiple licenses
+^^^^^^^^^^^^^^^^^
+
+Open-source software is re-used all the time, so it can happen that some files
+make their way into a different project.
+This is usually no problem.
+If you encounter multiple parts of the project under different licenses, combine
+their license expressions with ``AND``.
+For example, in a project that contains both a library and command line tools,
+the license expression could be ``GPL-2.0-or-later AND LGPL-2.1-or-later``.
+
+Sometimes files are licensed under multiple licenses, and only one license is to
+be selected.
+In that case, combine the license expressions with ``OR``.
+This is often the case with Device Trees in the Linux kernel, e.g.:
+``GPL-2.0-only OR BSD-2-Clause``.
+
+No operator precedence is defined, use brackets ``(…)`` to group sub-statements.
+
+Conflicting and ambiguous statements
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Human interpretation is needed when statements inside the project conflict with
+each other.
+Some clues that can help you decide:
+
+Detailedness:
+ If the header in the COPYING file says *"GNU General Public License"*, but
+ the license text below that is in fact a BSD license, the correct license for
+ the license identifier is the BSD license.
+
+Author Intent:
+ If the README says *"this code is LGPL 2.1"*, but COPYING contains a GPL
+ boilerplate license text, the correct license identifier is probably *"LGPL 2.1"*
+ – the README written by the author prevails over the boilerplate text.
+
+Recency:
+ If README and COPYING are both clearly written by the author themselves, and
+ the README says *"don't do $thing*" and COPYING says *"do $thing*", the more
+ recent file prevails.
+
+Scope:
+ If no license statement can be found, but there is a COPYING file containing
+ a license text, infer that the whole project is licensed under that license.
+
+Err on the side of caution:
+ If all you can find is a GPL license text, this doesn't yet tell you whether
+ the project is licensed under the *-only* or the *-or-later* variant.
+ In that case, interpret the license restrictively and choose the *-only*
+ variant for the license identifier.
+
+Don't assume:
+ If anything is ambiguous or unclear, choose ``custom`` as a license identifier.
+
+.. note::
+
+ Any of these cases is considered a bug and should be reported to the upstream maintainers!
+
+"Public Domain" software
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+For `good reasons <https://wiki.spdx.org/view/Legal_Team/Decisions/Dealing_with_Public_Domain_within_SPDX_Files>`_,
+SPDX doesn't supply a license identifier for "Public Domain".
+Nevertheless, some PTXdist package rules specify ``public_domain`` as their
+respective license identifier.
+This is purely for historical reasons, and ``public_domain`` should normally
+*not* be used for new packages.
+Some of those "Public Domain" dedications in packages have since been accepted
+in SPDX, e.g. `libselinux <https://spdx.org/licenses/libselinux-1.0.html>`_ or
+`SQLite <https://spdx.org/licenses/blessing.html>`_.
+
+No license information at all
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+No license - no usage rights!
+
+Definitely report this bug to the upstream maintainer.
+Maybe even point them in the direction of `machine-readablity <https://reuse.software/>`_ :)
+
+Adding license files to PTXdist packages
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The SPDX license identifier of the package goes into the ``<PKG>_LICENSE``
+variable in the respective package rule file.
+All relevant files identified in the steps above are then added to the variable ``<PKG>_LICENSE_FILES``,
+including a checksum so that PTXdist complains when they change.
+
+Example:
+
+.. code-block:: make
+
+ DDRESCUE_LICENSE := GPL-2.0-or-later AND BSD-2-Clause
+ DDRESCUE_LICENSE_FILES := \
+ file://COPYING;md5=76d6e300ffd8fb9d18bd9b136a9bba13 \
+ file://main.cc;startline=1;endline=16;md5=a01d61d3293ce28b883d8ba0c497e968 \
+ file://arg_parser.cc;startline=1;endline=18;md5=41d1341d0d733a5d24b26dc3cbc1ac42
+
+See the section :ref:`package_specific_variables` for more information about
+the syntax of those two variables.
+
+The MD5 sum for a block of lines can be generated with sed's ``p`` (print)
+command applied to a range of lines.
+For the example above, lines 1 to 16 of main.cc would be::
+
+ $ sed -n 1,16p main.cc | md5sum -
+ a01d61d3293ce28b883d8ba0c497e968
+
+Always include the copyright statement ("Copyright YYYY (C) Some Person")
+for the calculation of the checksum, even if it means that the checksum changes
+on package updates when new years are added to the string.
+While it is not is needed for most licenses to be valid, some licenses require
+that it must not be removed (e.g. see GPLv2, section 1),
+and it is proper etiquette to give attribution to the maintainers in the
+license report document.
+
+If additional information is in the README or license headers in source files
+are used, also include these files (for source code: one of each is enough),
+but use md5sum only on the relevant lines, so changes in the rest of the file
+do not appear as license changes.
+
+For rather chaotic directories with lots of license files, definitely include at
+least one relevant source file with license headers (if there are any), as some
+developers tend to accumulate license files without adjusting it to license
+changes in their source.
+
+.. note::
+
+ For each single license identifier in the license expression, include at
+ least one file with checksum in the ``<PKG>_LICENSE_FILES`` variable.
+
+PTXdist will include all files (or their respective lines) that were referenced
+in ``<PKG>_LICENSE_FILES`` as verbatim sources in the license report.
diff --git a/doc/dev_manual.rst b/doc/dev_manual.rst
index c232cc914..fe4307a86 100644
--- a/doc/dev_manual.rst
+++ b/doc/dev_manual.rst
@@ -11,8 +11,11 @@ This chapter shows all (or most) of the details of how PTXdist works.
dev_dir_hierarchy
dev_add_new_pkgs
+ dev_advanced_rule_files
+ dev_patching
dev_add_bin_only_files
dev_create_new_pkg_templates
+ dev_licenses
dev_layers_in_ptxdist
dev_kconfig_diffs
dev_code_signing
diff --git a/doc/dev_patching.rst b/doc/dev_patching.rst
new file mode 100644
index 000000000..d2a261636
--- /dev/null
+++ b/doc/dev_patching.rst
@@ -0,0 +1,295 @@
+.. _patching_packages:
+
+*****************
+Patching Packages
+*****************
+
+There can be various reasons why a package must be patched:
+
+- Package is broken for cross compile environments
+
+- Package is broken within a specific feature
+
+- Package is vulnerable and needs some fixes
+
+- or anything else (this case is the most common one)
+
+Ideally, those problems should be addressed in the original project,
+so any patches you add to your BSP or to PTXdist should also be submitted upstream.
+The upstream project can often provide better feedback, they can integrate your
+patch into a new release, and also maintain your changes as part of the project.
+This way we make sure that all advantages of the open source idea work for us;
+and your patch can be removed again later when a new release of the project is
+integrated into your BSP or into PTXdist.
+
+PTXdist handles patching automatically.
+After extracting the archive of a package, PTXdist checks for the existence of
+a patch directory named like its ``<PKG>_PATCHES`` variable, or, if this variable
+is not set, like its ``<PKG>`` variable.
+The patch directory is then searched in all locations listed by the
+``PTXDIST_PATH_PATCHES`` variable, and the first one found is used.
+Take an exemplary package ``foo`` with version ``1.1.0``:
+The variable ``FOO`` will have the value ``foo-1.1.0``, so PTXdist will look for
+a patch directory named ``foo-1.1.0`` in the following locations:
+
+#. the current layer:
+
+ a. project (``./patches/foo-1.1.0``)
+ b. platform (``./configs/|ptxdistPlatformConfigDir|/patches/foo-1.1.0``)
+
+#. any :ref:`base layers <layers-in-ptxdist>`,
+ applying the same search order as above for each layer recursively
+
+#. ptxdist (``<ptxdist/installation/path>/patches/foo-1.1.0``)
+
+The patches from the first location found are used. Note: Due to this
+search order, a PTXdist project can replace global patches from the
+PTXdist installation. This can be useful if a project sticks to a
+specific PTXdist revision but fixes from a more recent revision of
+PTXdist should be used.
+
+PTXdist uses the utilities *git*, *patch* or *quilt* to work with
+patches or patch series. We recommend *git*, as it can manage patch
+series in a very easy way.
+
+Creating a Patch Series for a Package
+=====================================
+
+To create a patch series for the first time, we can run the following
+steps. We are still using our *foo-1.1.0* example package here:
+
+Using Quilt
+-----------
+
+We create a special directory for the patch series in the local project
+directory:
+
+.. code-block:: text
+
+ $ mkdir -p patches/foo-1.1.0
+
+PTXdist expects a ``series`` file in the patch directory and at least
+one patch. Otherwise it fails. Due to the fact that we do not have any
+patch content yet, we’ll start with a dummy entry in the ``series`` file
+and an empty ``patch`` file.
+
+.. code-block:: text
+
+ $ touch patches/foo-1.1.0/dummy
+ $ echo dummy > patches/foo-1.1.0/series
+
+Next is to extract the package (if already done, we must remove it
+first):
+
+.. code-block:: text
+
+ $ ptxdist extract foo
+
+This will extract the archive and create a symbolic link in the build
+directory pointing to our local patch directory. Working this way will
+ensure that we do not lose our created patches if we enter
+``ptxdist clean foo`` by accident. In our case the patches are still
+present in ``patches/foo-1.1.0`` and can be used the next time we
+extract the package again.
+
+All we have to do now is to do the modification we need to make the
+package work. We change into the build directory and use quilt_ to
+create new patches, add files to respective patches, modify these files
+and refresh the patches to save our changes.
+See the *quilt* documentation (``man 1 quilt``) for more information.
+
+.. note:: For patches that are intended for PTXdist upstream use the git
+ workflow described below to get proper patch headers.
+
+.. _quilt: http://savannah.nongnu.org/projects/quilt
+
+Using Git
+---------
+
+Create the patch directory like above for *quilt*,
+but only add an empty series file:
+
+.. code-block:: text
+
+ $ mkdir -p patches/foo-1.1.0
+ $ touch patches/foo-1.1.0/series
+
+Then extract the package with an additional command line switch:
+
+.. code-block:: text
+
+ $ ptxdist --git extract foo
+
+The empty series file makes PTXdist create a Git repository in the
+respective package build directory,
+and import the package source as the first commit.
+
+.. note:: Optionally, you can enable the setting *Developer Options →
+ use git to apply patches* in `ptxdist setup` to get this behaviour
+ as a default for every package.
+
+Then you can change into the package build directory
+(``platform-<name>/build-target/foo-1.1.0``),
+patch the required source files,
+and make Git commits on the way.
+The Git history should now look something like this:
+
+.. code-block:: text
+
+ $ git log --oneline --decorate
+ * df343e821851 (HEAD -> master) Makefile: don't build the tests
+ * 65a360c2bd60 strfry.c: frobnicate the excusator
+ * fdc315f6844c (tag: foobar-1.1.0, tag: base) initial commit
+
+Finally, call ``git ptx-patches`` to transform those Git commits into the patch
+series in the ``patches/foo-1.1.0`` folder.
+This way they don't get lost when cleaning the package.
+
+.. note:: PTXdist will only create a Git repository for packages with
+ patches. To use Git to generate the first patch, create an empty series
+ file ``patches/foobar-1.1.0/series`` before extracting the packages. This
+ will tell PTXdist to use Git anyways and ``git ptx-patches`` will put the
+ patches there.
+
+Both approaches (Git and quilt) are not suitable for modifying files
+that are autogenerated in autotools-based buildsystems.
+Refer to the section :ref:`configure_rebuild` on how PTXdist can
+handle this special task.
+
+Recovering from merge conflicts
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+When updating packages, it can happen that older patches no longer apply.
+In this case, the *extract* stage will throw errors like this::
+
+ -----------------------------
+ target: ima-evm-utils.extract
+ -----------------------------
+
+ extract: pkg_src=/ptx/src/ima-evm-utils-1.3.2.tar.gz
+ extract: pkg_extract_dir=DistroKit/platform-v7a/build-target/ima-evm-utils-1.3.2
+ patchin: git: initializing repository
+ patchin: git: done
+
+ pkg_patch_dir: 'ptxdist/patches/ima-evm-utils-1.3.2'
+ pkg_patch_series: 'ptxdist/patches/ima-evm-utils-1.3.2/series'
+
+ patchin: git: apply 'ptxdist/patches/ima-evm-utils-1.3.2/series'
+ tagging -> base
+ 0001-INSTALL-remove-file-at-it-s-autogenerated-by-autotoo.patch
+ 0002-Makefile.am-rename-INCLUDES-AM_CPPFLAGS.patch
+ error: patch failed: src/Makefile.am:1
+ error: src/Makefile.am: patch does not apply
+ make: *** […/ptxdist/rules/post/ptxd_make_world_extract.make:41: …/DistroKit/platform-v7a/state/ima-evm-utils.extract] Error 4
+
+In the example above, the first patch was applied cleanly, but the second one
+was not because src/Makefile.am contained different lines than expected.
+If this happens, you have to clean up the merge conflict,
+and apply the remaining patches manually.
+
+First, change into the package's build directory, and abort the current patch::
+
+ …/distrokit/master (master) $ cd platform-v7a/build-target/ima-evm-utils-1.3.2/
+
+ …/build-target/ima-evm-utils-1.3.2 (master|AM/REBASE) $ git log --oneline --graph
+ * 6687ab46087c (HEAD -> master) INSTALL: remove file, as it's autogenerated by autotools
+ * 01a52624237f (tag: ima-evm-utils-1.3.2, tag: base) initial commit
+
+ …/build-target/ima-evm-utils-1.3.2 (master|AM/REBASE) $ git am --abort
+
+ …/build-target/ima-evm-utils-1.3.2 (master) $
+
+(Notice how the Git integration in the shell prompt still shows ``AM/REBASE``
+before the cleanup, signaling the ongoing conflict resolution.)
+
+The remaining patches are still available in the ``./patches`` directory
+relative to your current location.
+Try to apply each of them in turn using ``git am``.
+If a patch fails to apply, Git will not change any files, but will still
+remember the patch's author and commit message, and prompt you to resolve
+the conflicts::
+
+ …/build-target/ima-evm-utils-1.3.2 (master) $ git am patches/0005-evmctl-add-fallback-definitions-for-XATTR_NAME_IMA.patch
+
+ Applying: evmctl: add fallback definitions for XATTR_NAME_IMA
+ Patch failed at 0005 evmctl: add fallback definitions for XATTR_NAME_IMA
+ hint: Use 'git am --show-current-patch=diff' to see the failed patch
+ When you have resolved this problem, run "git am --continue".
+ If you prefer to skip this patch, run "git am --skip" instead.
+ To restore the original branch and stop patching, run "git am --abort".
+
+* If you find that the patch is no longer necessary (e.g. because it was
+ already merged upstream in the new package version), skip it with
+ ``git am --skip``.
+* Otherwise, apply the same patch again manually via ``patch --merge -p1 <
+ patches/filename.patch``, and resolve any resulting conflicts using your
+ favourite editor.
+* Finally, ``git am --continue`` commits your conflict resolution with the
+ patch's original author and log message.
+
+After porting all patches, update the package's patch queue with ``git ptx-patches``.
+
+Adding More Patches to a Package
+================================
+
+If we want to add more patches to an already patched package, we can use
+nearly the same way as creating patches for the first time. But if the
+patch series comes from the PTXdist main installation, we do not have
+write permissions to these directories (do NEVER work on the main
+installation directories, NEVER, NEVER, NEVER). Due to the search order
+in which PTXdist searches for patches for a specific package, we can
+copy the global patch series to our local project directory. Now we have
+the permissions to add more patches or modify the existing ones. Also
+*quilt* and *git* are our friends here to manage the patch series.
+
+If we think that our new patches are valuable also for others, or they
+fix an error, it could be a good idea to send these patches to PTXdist
+mainline, and to the upstream project too.
+
+
+.. _configure_rebuild:
+
+Modifying Autotoolized Packages
+===============================
+
+Autotoolized packages are very picky when automatically generated files
+get patched. The patch order is very important in this case and
+sometimes it even fails and nobody knows why.
+
+To improve a package’s autotools-based build system, PTXdist comes with
+its own project local autotools to regenerate the autotools template
+files, instead of patching them. With this feature, only the template
+files must be patched, the required ``configure`` script and the
+``Makefile.in`` files are regenerated in the final stages of the
+*prepare* step.
+
+This feature works like the regular patching mechanism. The only
+difference is the additional ``autogen.sh`` file in the patch directory.
+If it exists and has execution permissions, it will be called after the
+package was patched (while the *extract* stage is running).
+
+Its content depends on developer needs; for the most simple case the
+content can be:
+
+.. code-block:: bash
+
+ #!/bin/bash
+
+ aclocal $ACLOCAL_FLAGS
+
+ libtoolize \
+ --force \
+ --copy
+
+ autoreconf \
+ --force \
+ --install \
+ --warnings=cross \
+ --warnings=syntax \
+ --warnings=obsolete \
+ --warnings=unsupported
+
+.. note:: In this way not yet autotoolized package can be autotoolized. We
+ just have to add the common autotool template files (``configure.ac``
+ and ``Makefile.am`` for example) via a patch series to the package
+ source and the ``autogen.sh`` to the patch directory.
diff --git a/doc/environment.rst b/doc/environment.rst
index 18aecec4e..225e8016e 100644
--- a/doc/environment.rst
+++ b/doc/environment.rst
@@ -14,13 +14,31 @@ http://www.ptxdist.org. This website provides
all required packages and documentation (at least for software
components which are available to the public).
+.. only:: ptxdistonly
+
+ .. note::
+ The PTXdist documenation can be built for a specific BSP. That makes it
+ possible to add BSP specific chapters to the documentation, the BSP is
+ referenced by its name and the PTXdist and toolchain versions are
+ correctly specified for this BSP.
+
+ This instance of the documentation is built without a BSP. So
+ *|ptxdistBSPName|* is used as a placeholder for the BSP name. There is no
+ *|ptxdistBSPName|* BSP!
+
+ To start experimenting with PTXdist, `DistroKit <https://git.pengutronix.de/cgit/DistroKit/>`_
+ can be used.
+
In order to build |ptxdistBSPName|, the following source archives have to be available
on the development host:
- * ptxdist-|ptxdistVendorVersion|.tar.bz2
- * |ptxdistBSPName|.tar.bz2 (or a similar source)
- * ptxdist-|oselasTCNVendorptxdistversion|.tar.bz2
- * OSELAS.Toolchain-|oselasTCNVendorVersion|.tar.bz2
+ * `ptxdist-|ptxdistVendorVersion|.tar.bz2 <https://public.pengutronix.de/software/ptxdist/ptxdist-|ptxdistVendorVersion|.tar.bz2>`_
+ * |ptxdistBSPSource|
+
+Additionally, these source archives are needed to build the toolchain:
+
+ * `ptxdist-|oselasTCNVendorptxdistversion|.tar.bz2 <https://public.pengutronix.de/software/ptxdist/ptxdist-|oselasTCNVendorptxdistversion|.tar.bz2>`_
+ * `OSELAS.Toolchain-|oselasTCNVendorVersion|.tar.bz2 <https://public.pengutronix.de/oselas/toolchain/OSELAS.Toolchain-|oselasTCNVendorVersion|.tar.bz2>`_
Main Parts of PTXdist
~~~~~~~~~~~~~~~~~~~~~
diff --git a/doc/getting_help.rst b/doc/getting_help.rst
index a4ea4b3bb..2983618c3 100644
--- a/doc/getting_help.rst
+++ b/doc/getting_help.rst
@@ -31,16 +31,17 @@ online version can be read here:
http://www.kroah.com/lkn/
-Chat/IRC
---------
+Chat: IRC and Matrix
+--------------------
-About PTXdist in particular
+Some of the PTXdist development community is active on IRC.
+Create a connection to the server ``irc.libera.chat`` on port 6697 (TLS) or
+6667 (plain text) and enter the chatroom ``#ptxdist``.
-**irc.freenode.net:6667**
+The same room is also bridged to Matrix at ``#ptxdist:matrix.org``.
-Create a connection to the ``irc.freenode.net:6667`` server and enter
-the chatroom ``#ptxdist``. This is an English room to answer questions
-about PTXdist. Best time to meet somebody there is at European daytime.
+This is an English room to answer questions about PTXdist.
+Best time to meet somebody there is at European daytime.
Commercial Support
------------------
diff --git a/doc/including_bsp_doc.inc b/doc/including_bsp_doc.inc
index 775ad3397..ca6f7519e 100644
--- a/doc/including_bsp_doc.inc
+++ b/doc/including_bsp_doc.inc
@@ -103,3 +103,37 @@ external dependencies.
Refer the PTXdist file ``doc/conf.py`` for more information on variable
substitution. This PTXdist global file can be superseded by a local copy as well.
+
+Documentation structure for layered BSPs
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+When you call ``ptxdist docs-html`` in a layer, PTXdist will assemble the
+``doc/`` directory from all lower layers in the usual layering fashion,
+and flatten it into a single directory.
+In the highest-level table of contents, PTXdist uses a wildcard match for
+``index-layer*`` files, which is the entry point to integrate documentation for
+your own layers by creating files with that pattern.
+It is advisable to number the index files accordingly so their ordering in the
+documentation reflects the layer order.
+PTXdist itself uses the file ``index-layer-0-ptxdist.rst`` to include the title
+page of the PTXdist manual first, and includes the rest of the PTXdist
+documentation after the layer-specific files.
+
+For example, see the following directory structure::
+
+ my-bsp/
+ ├── common/
+ │   └── doc/
+ │ └── index-layer-1-common.rst
+ └── product-layer
+ . ├── base/ -> ../common
+ .   └── doc
+ . └── index-layer-2-product.rst
+
+In this example, the contents of ``index-layer-1-common.rst`` and
+``index-layer-2-product.rst`` would describe some layer-specific content, or
+even have their own table of contents in the usual reStructuredTest fashion to
+include more sub-sections in separate files.
+The documentation built for the *product-layer* will therefore include a
+section each for the *common* layer documentation, then for the *product-layer*
+documentation, and finally the rest of the PTXdist documentation.
diff --git a/doc/index-layer-0-ptxdist.rst b/doc/index-layer-0-ptxdist.rst
new file mode 100644
index 000000000..4576503a3
--- /dev/null
+++ b/doc/index-layer-0-ptxdist.rst
@@ -0,0 +1 @@
+.. include:: welcome.rst
diff --git a/doc/index.rst b/doc/index.rst
index 6a01d6dd7..29c0dc9de 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -11,7 +11,7 @@ Welcome to the PTXdist Universe
:numbered: 2
:maxdepth: 3
- welcome
+ index-layer*
environment
user_manual_section
dev_manual
diff --git a/doc/multi_image_platforms.inc b/doc/multi_image_platforms.inc
index 2a8444391..726a42767 100644
--- a/doc/multi_image_platforms.inc
+++ b/doc/multi_image_platforms.inc
@@ -26,7 +26,7 @@ package rules manually. See :ref:`adding_new_packages` for more details one
how to create a new package.
.. note:: PTXdist looks in ``patches/$(<PKG>)`` for the patches. Symlinks
- can be uses to share the patch stack across multiple bootloader packages.
+ can be used to share the patch stack across multiple bootloader packages.
.. _multi_image_individual_root_filesystems:
@@ -46,7 +46,7 @@ There are two ways to mange the package list for the image:
Manually create the package list by listing package names or using **make**
macros to manipulate the default package list ``$(PTX_PACKAGES_INSTALL)``.
- To add a single custom package, extra packages can be uses. An extra package
+ To add a single custom package, extra packages can be used. An extra package
is not added to ``$(PTX_PACKAGES_INSTALL)``. It is created by modifying the
package rule like this:
@@ -93,8 +93,8 @@ The final steps are highly hardware dependent. In some cases a bootloader
image and a rootfs are all that is needed.
To boot from SD-Card a disk image including bootloader, partition table and
-rootfs is needed. The ``image-genimage`` template can be uses again to
+rootfs is needed. The ``image-genimage`` template can be used again to
create such an image for each variant.
-.. note:: The genimage config files in ``config/images/`` are good examles
+.. note:: The genimage config files in ``config/images/`` are good examples
when writing genimage for the new images.
diff --git a/doc/ref_code_signing_helpers.rst b/doc/ref_code_signing_helpers.rst
index f7928f52e..fd16ca763 100644
--- a/doc/ref_code_signing_helpers.rst
+++ b/doc/ref_code_signing_helpers.rst
@@ -215,6 +215,85 @@ Preconditions:
- when used with SoftHSM, certificates must have been imported before
(see :ref:`cs_import_cert_from_der`, :ref:`cs_import_cert_from_pem`)
+.. _cs_define_group:
+
+cs_define_group
+^^^^^^^^^^^^^^^
+
+Usage:
+
+.. code-block:: bash
+
+ cs_define_group <group>
+
+Define a new role group.
+
+See :ref:`cs_group_add_roles` for an example.
+
+.. _cs_group_add_roles:
+
+cs_group_add_roles
+^^^^^^^^^^^^^^^^^^
+
+Usage:
+
+.. code-block:: bash
+
+ cs_group_add_roles <group> <roles...>
+
+Add all given roles to a role group.
+
+Preconditions:
+
+- the group must have been defined (see :ref:`cs_define_group`)
+- the role(s) must have been defined (see :ref:`cs_define_role`)
+
+Example:
+
+.. code-block:: bash
+
+ # define two roles named imx-habv4-srk1 and imx-habv4-srk2
+ r="imx-habv4-srk1"
+ cs_define_role "${r}"
+ cs_set_uri "${r}" "pkcs11:object=SRK CA 0"
+ cs_append_ca_from_uri "${r}"
+ r="imx-habv4-srk2"
+ cs_define_role "${r}"
+ cs_set_uri "${r}" "pkcs11:object=SRK CA 1"
+ cs_append_ca_from_uri "${r}"
+
+ # define a group and add the roles
+ g="imx-habv4-srk"
+ cs_define_group "${g}"
+ cs_group_add_roles "${g}" "imx-habv4-srk1" "imx-habv4-srk2"
+
+.. _cs_group_get_roles:
+
+cs_group_get_roles
+^^^^^^^^^^^^^^^^^^
+
+Usage:
+
+.. code-block:: bash
+
+ cs_group_get_roles <group>
+
+Get a list of all roles that have been added to the role group.
+
+Example:
+
+.. code-block:: bash
+
+ # iterate over role names in a role group, and print their name and URI
+ for role in $(cs_group_get_roles "imx-habv4-srk"); do
+ echo "role '${role}' has URI '$(cs_get_uri "${role}")'"
+ done
+
+In the example given in :ref:`cs_group_add_roles` above, this would print::
+
+ role 'imx-habv4-srk1' has URI 'pkcs11:object=SRK CA 0'
+ role 'imx-habv4-srk2' has URI 'pkcs11:object=SRK CA 1'
+
Consumer Functions
~~~~~~~~~~~~~~~~~~
@@ -251,8 +330,24 @@ Usage:
Get path to the CA keyring in PEM format for role.
+If the provider does not set a CA for this role (see :ref:`cs_append_ca_from_pem`,
+:ref:`cs_append_ca_from_der`, :ref:`cs_append_ca_from_uri`), this function will print an empty
+string.
+
Preconditions:
-- a certificate must have been appended to the CA keyring
- (see :ref:`cs_append_ca_from_pem`, :ref:`cs_append_ca_from_der`,
- :ref:`cs_append_ca_from_uri`)
+- The role must have been defined by the provider (see :ref:`cs_define_role`).
+ Otherwise, this function will print ``ERROR_CA_NOT_YET_SET`` and return 1.
+ This can happen if the function is evaluated by a variable expansion in make
+ with ``:=`` instead of ``=`` before the code signing provider is set up.
+
+Example:
+
+.. code-block:: make
+
+ # set up kernel module signing, and add a trusted CA if the provider set one
+ KERNEL_SIGN_OPT =
+ CONFIG_MODULE_SIG_KEY='"$(shell cs_get_uri kernel-modules)"' \
+ CONFIG_MODULE_SIG_ALL=y \
+ $(if $(shell cs_get_ca kernel-trusted), \
+ CONFIG_SYSTEM_TRUSTED_KEYS=$(shell cs_get_ca kernel-trusted))
diff --git a/doc/ref_make_macros.rst b/doc/ref_make_macros.rst
index ae65cb940..fe300c457 100644
--- a/doc/ref_make_macros.rst
+++ b/doc/ref_make_macros.rst
@@ -148,6 +148,71 @@ For ``install`` the package directory is deleted.
When ``--verbose`` is used then the full command is logged. With
``--quiet`` both stdout and stderr are redirected to the logfile.
+ptx/image-install, ptx/image-install-link, world/image-clean
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Usage:
+
+.. code-block:: none
+
+ @$(call world/image-clean, <PKG>)
+ @$(call ptx/image-install, <PKG>, $(<PKG>_BUILD_DIR)/<source-image-name>[, <image-name>])
+ @$(call ptx/image-install-link, <PKG>, <link-target>, <link-name>)
+
+These macros are used to install files to ``|ptxdistPlatformDir|/images``.
+They are only allowed in the *targetinstall* stage. They are used by
+packages that produce files that are not part of a filesystem. Bootloaders
+are typical packages that do this.
+
+``world/image-clean`` will remove the files that were created by the other
+two macros in a previous run of the *targetinstall* stage. This also
+happens implicitly when the package is cleaned.
+
+``ptx/image-install`` copies a file. The source must be an absolute path.
+The destination must be relative to the image directory. If the destination
+file name is the source file without the path, then this argument can be
+omitted.
+
+``ptx/image-install-link`` creates a symlink in the image directory.
+
+.. _world_image_fit:
+
+world/image-fit
+~~~~~~~~~~~~~~~
+
+.. code-block:: none
+
+ @$(call world/image-fit, <PKG>)
+
+Build a FIT image containing a kernel, optionally an initial ramdisk, and one or
+multiple device trees. For each device tree, a configuration node is generated.
+
+.. note:: You can generate a template for a new FIT image recipe by
+ calling ``ptxdist newpackage image-fit``.
+
+The following variables are respected:
+
+``<PKG>_IMAGE``
+ The output file, usually something like ``$(IMAGEDIR)/pkg.fit``.
+
+``<PKG>_KERNEL``
+ The kernel image to package into the FIT image.
+
+``<PKG>_DTB``
+ One or more device trees that should be included in the FIT image.
+
+``<PKG>_INITRAMFS``
+ If the FIT image should contain an initial ramdisk, this variable determines
+ the initrd file name that is included. Otherwise it can be left empty.
+
+``<PKG>_SIGN_ROLE``
+ If the FIT image should be signed, this variable determines the role name
+ used for the signature. It is passed to :ref:`cs_get_uri`.
+
+``<PKG>_KEY_NAME_HINT``
+ If the FIT image should be signed, this variable determines the
+ *key-name-hint* property of the signature node.
+
.. _install_copy:
install_copy
@@ -259,7 +324,7 @@ Usage:
.. code-block:: make
- $(call install_tree, <package>, <UID>, <GID>, <source dir>, <destination dir>, <strip>])
+ $(call install_tree, <package>, <UID>, <GID>, <source dir>, <destination dir>[, <strip>])
Installs the whole directory tree with all files from the given directory into:
@@ -481,7 +546,7 @@ Usage:
.. code-block:: make
- $(call install_archive, <package>, <UID>, <GID>, <archive> , <base path>)
+ $(call install_archive, <package>, <UID>, <GID>, <archive> , <base path>[, <strip>])
Installs archives content into:
@@ -504,6 +569,8 @@ All parameters have fixed meanings:
**<base path>**
Base path component in the root filesystem the archive should be extracted
to. Can be just ``/`` for root.
+**<strip>**
+ same as for :ref:`install_copy`.
install_glob
~~~~~~~~~~~~
@@ -654,6 +721,24 @@ be installed with some other ``install_*`` command before
@$(call install_replace, timezone, /etc/timezone, @TIMEZONE@, \
$(PTXCONF_TIMEZONE_LOCALTIME))
+.. _ptx/cfghash:
+.. _ptx/cfghash-file:
+
+ptx/cfghash, ptx/cfghash-file
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Usage:
+
+.. code-block:: make
+
+ $(call ptx/cfghash, <PKG>, <string>)
+ $(call ptx/cfghash-file, <PKG>, <file>)
+
+Add an arbitrary **<string>** or the content of **<file>** to the config hash
+for **<PKG>**.
+This has the effect that the package will be rebuilt when the string or the
+content of the file changes.
+
.. _param_macros:
.. _ptxEndis:
.. _ptxDisen:
@@ -673,6 +758,7 @@ Usage:
$(call ptx/wow, VARIABLE)
$(call ptx/wwo, VARIABLE)
$(call ptx/yesno, VARIABLE)
+ $(call ptx/noyes, VARIABLE)
$(call ptx/truefalse, VARIABLE)
$(call ptx/falsetrue, VARIABLE)
$(call ptx/onoff, VARIABLE)
@@ -694,6 +780,8 @@ These are useful for ``<PKG>_CONF_OPT`` variables, and expand as follows:
+--------------------+-------------------------------+---------------------------------+---------------------+
| ptx/yesno | ``yes`` | ``no`` | autoconf cache vars |
+--------------------+-------------------------------+---------------------------------+---------------------+
+| ptx/noyes | ``no`` | ``yes`` | scons |
++--------------------+-------------------------------+---------------------------------+---------------------+
| ptx/truefalse | ``true`` | ``false`` | meson |
+--------------------+-------------------------------+---------------------------------+---------------------+
| ptx/falsetrue | ``false`` | ``true`` | meson |
@@ -757,10 +845,15 @@ whereas if the respective variable is unset, they would expand to the opposite:
ptx/get-alternative
~~~~~~~~~~~~~~~~~~~
+Usage:
+
+.. code-block:: make
+
+ $(call ptx/get-alternative, <prefix>, <file>)
+
This macro can be used to find files or directories in the BSP and PTXdist.
-There are two arguments, **prefix** and **file**. The search path is very
-similar to :ref:`install_alternative`. The first existing location of the
-following paths is returned:
+The search path is very similar to :ref:`install_alternative`.
+The first existing location of the following paths is returned:
* ``$(PTXDIST_WORKSPACE)/$(prefix)$(PTXDIST_PLATFORMSUFFIX)/$(file)``
* ``$(PTXDIST_WORKSPACE)/$(prefix)/$(file)$(PTXDIST_PLATFORMSUFFIX)``
@@ -775,9 +868,14 @@ following paths is returned:
ptx/in-path
~~~~~~~~~~~
+Usage:
+
+.. code-block:: make
+
+ $(call ptx/in-path, <path>, <file>)
+
This macro can be used to find files or directories in the BSP and PTXdist.
-There are two arguments, **path variable** and **file**. The **path
-variable** must be a variable name that is available in a shell called by
+The **path** must be a variable name that is available in a shell called by
**make**. The variable must contain a ``:`` separated list of directories.
The **file** will be searched in these directories and the first existing
path is returned. PTXdist defines several variables that can be used here.
@@ -801,8 +899,14 @@ directories for each of these variables.
ptx/in-platformconfigdir
~~~~~~~~~~~~~~~~~~~~~~~~
-This macro is only useful with multiple layers. It has one argument
-**file**. The **file** is searched for in the platform directory in
+Usage:
+
+.. code-block:: make
+
+ $(call ptx/in-platformconfigdir, <file>)
+
+This macro is only useful with multiple layers.
+The argument **file** is searched for in the platform directory in
all layers in the usual search order. It returns the first existing file.
If none exists it returns ``$(PTXDIST_PLATFORMCONFIGDIR)/$(file)``. This
avoids unexpected errors due to empty variables if a file is missing.
diff --git a/doc/ref_make_variables.rst b/doc/ref_make_variables.rst
index 674acdcea..775ff71be 100644
--- a/doc/ref_make_variables.rst
+++ b/doc/ref_make_variables.rst
@@ -35,18 +35,18 @@ Global Variables
project. All of the project’s packages built for the host to create data
for the target are searching in this directory tree for their
dependencies (executables, header and library files). Use
- ``$(PTXDIST_SYSROOT_CROSS)/bin`` to install executables,
- ``$(PTXDIST_SYSROOT_CROSS)/include`` for header files and
- ``$(PTXDIST_SYSROOT_CROSS)/lib`` for libraries.
+ ``$(PTXDIST_SYSROOT_CROSS)/usr/bin`` to install executables,
+ ``$(PTXDIST_SYSROOT_CROSS)/usr/include`` for header files and
+ ``$(PTXDIST_SYSROOT_CROSS)/usr/lib`` for libraries.
``PTXDIST_SYSROOT_HOST``
``PTXDIST_SYSROOT_HOST`` points to a directory tree all host relevant
executables, libraries and header files are installed to. All project’s
packages built for the host are searching in this directory tree for
their dependencies (executables, header and library files). Use
- ``$(PTXDIST_SYSROOT_HOST)/bin`` to install executables,
- ``$(PTXDIST_SYSROOT_HOST)/include`` for header files and
- ``$(PTXDIST_SYSROOT_HOST)/lib`` for libraries.
+ ``$(PTXDIST_SYSROOT_HOST)/usr/bin`` to install executables,
+ ``$(PTXDIST_SYSROOT_HOST)/usr/include`` for header files and
+ ``$(PTXDIST_SYSROOT_HOST)/usr/lib`` for libraries.
``PTXDIST_SYSROOT_TARGET``
``PTXDIST_SYSROOT_TARGET`` points to a directory tree all target
@@ -127,6 +127,8 @@ Other useful variables:
that are built and installed during the PTXdist build run.
There are analogous ``-y`` and ``-m`` variants of those variables too.
+.. _package_specific_variables:
+
Package Specific Variables
~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -194,9 +196,14 @@ Package Definition
Git URLs must either start with 'git://' or end with '.git'. They have a
mandatory ``tag=<tagname>`` option.
- Svn URLs must start with 'svn://'. They have a mandatory
+ SVN URLs must start with 'svn://'. They have a mandatory
``rev=r<number>`` option.
+ SVN custom tunnel schemes (e.g. 'svn+ssh') are supported as
+ well. There is a special treatment for 'svn+https'. In this case
+ the URL is fixed and 'svn+' is removed from URL. This is useful to
+ work around firewalls that block 'svn' ports.
+
``<PKG>_SOURCE``
The location of the downloaded source archive. There should be no reason
to set this to anything other than
@@ -223,10 +230,19 @@ Package Definition
'gdbserver' for an example.
``<PKG>_LICENSE``
- The license of the package. The SPDX license identifiers should be used
- here. Use ``proprietary`` for proprietary packages and ``ignore`` for
- packages without their own license, e.g. meta packages or packages that
- only install files from ``projectroot/``.
+ The license of the package in the form of an `SPDX license expression
+ <https://spdx.org/licenses/>`_.
+ The following values have special meaning for PTXdist:
+
+ - ``custom`` and ``custom-exception``: for licenses or license exceptions
+ that are considered free software, but do not match any license or license
+ exception known to SPDX.
+ - ``proprietary``: for proprietary (non-free) packages
+ - ``ignore`` for packages without their own license, e.g. meta packages or
+ packages that only install files from ``projectroot/``
+ - ``unknown``: no licensing information was extracted yet
+
+ See the section :ref:`licensing_in_packages` for more information.
``<PKG>_LICENSE_FILES``
A space separated list of URLs of license text files. The URLs must be
@@ -238,6 +254,7 @@ Package Definition
used in case the specified file contains more than just the license text,
e.g. if the license is in the header of a source file. For non ASCII or
UTF-8 files the encoding can be specified with ``encoding=<enc>``.
+ See the section :ref:`licensing_in_packages` for more information.
For most packages the variables described above are undefined by default.
However, for cross and host packages these variables default to the value
@@ -296,7 +313,7 @@ Build Environment for all Stages
packages and ``PATH=$(HOST_CROSS_PATH)`` for cross packages. It must be
set by packages that use the variable locally in the make file or if more
directories are added, e.g. to
- ``PATH=$(PTXDIST_SYSROOT_CROSS)/bin/qt5:$(CROSS_PATH)`` for packages that
+ ``PATH=$(PTXDIST_SYSROOT_CROSS)/usr/bin/qt5:$(CROSS_PATH)`` for packages that
use qmake from Qt5.
``<PKG>_CFLAGS``, ``<PKG>_CPPFLAGS``, ``<PKG>_LDFLAGS``
@@ -325,9 +342,34 @@ Build Environment for all Stages
individual options by setting it to a space separated list of the
corresponding Kconfig symbols (without the ``PTXCONF_`` prefix).
+``<PKG>_WRAPPER_ACCEPT_PATHS``
+ By default, the toolchain wrapper scripts will drop any -I and -L paths
+ that point to directories outside the BSP for target packages. This
+ avoids problems with bad search paths due to broken package build
+ systems.
+
+ Sometimes search paths outside the BSP are needed. In this case
+ ``<PKG>_WRAPPER_ACCEPT_PATHS`` can be used. It accepts a space separated
+ list of directories. Those directories (with and without symlinks
+ resolved) will not be dropped when the wrapper filters the search paths.
+
+ For example, external kernel modules need the kernel source tree. If the
+ kernel is built :ref:`using an external source tree<kernel_local_src>`
+ then search paths to that source tree are needed. So external kernel
+ modules should set ``<PKG>_WRAPPER_ACCEPT_PATHS`` to ``$(KERNEL_DIR)``.
+
Prepare Stage
^^^^^^^^^^^^^
+``<PKG>_CFGHASH``
+ This variable contains the config hash for the package.
+ If it changes, PTXdist rebuilds the prepare stage of the package (and
+ successively, all following stages).
+
+ You should not need to touch this variable directly.
+ To add content to the config hash, you can use the macros :ref:`ptx/cfghash
+ and ptx/cfghash-file <ptx/cfghash>`.
+
``<PKG>_CONF_ENV``
The environment for the prepare stage. If undefined, PTXdist will use
``$(CROSS_ENV)`` for target packages, ``$(HOST_ENV)`` for host packages
@@ -436,7 +478,7 @@ different.
package then this package should be selected in the menu file.
``<PKG>_PKGS``
- This is another mechanism to add files to the image. It can be uses
+ This is another mechanism to add files to the image. It can be used
instead of or in addition to ``<PKG>_FILES``. It must be set to a list of
ptxdist packages (the lowercase name of the packages). PTXdist will add
the necessary dependencies.
@@ -444,9 +486,9 @@ different.
Note that this will not ensure that the packages are enabled or that all
all package dependencies are satisfied. ``$(PTX_PACKAGES_INSTALL)`` can
be used to specify all enabled packages. Or ``$(call ptx/collection,
- $(PTXDIST_WORKSPACE)/configs/<collection-file-name>)`` can be uses to to
+ $(PTXDIST_WORKSPACE)/configs/<collection-file-name>)`` can be used to
specify the packages enabled by this collection. In both cases ``=`` must
- be uses instead of ``:=`` due to the makefile include order.
+ be used instead of ``:=`` due to the makefile include order.
``<PKG>_CONFIG``
``genimage`` packages use this to specify the ``genimage`` configuration
diff --git a/doc/ref_parameter.rst b/doc/ref_parameter.rst
index a5b9bfe9e..dd71046bb 100644
--- a/doc/ref_parameter.rst
+++ b/doc/ref_parameter.rst
@@ -57,6 +57,10 @@ Setup and Project Actions
simply some network settings to permit PTXdist to download required
packages.
+``localsetup``
+ The same setting as `ptxdist setup`. Any changes are saved locally in the
+ BSP and overwrite the global settings.
+
``boardsetup``
PTXdist based projects can provide information to
setup and configure the target automatically. This action lets the user
@@ -229,6 +233,32 @@ Misc Actions
are shown as well, so this can be used to verify that the correct version
of these files are used.
+``fast-bsp-report``
+ create a yaml report that describes the BSP and all packages. The data is
+ similar to what ``bsp-info`` and ``package-info`` provide but combined
+ into a machine readable format.
+
+ To run this command, the BSP must be configured (e.g. the toolchain must
+ be available), but it works without building packages.
+
+ The expected format of the yaml file is described in schema
+ ``scripts/bsp-report-schema.yaml`` in the PTXdist source tree. There is
+ also a simple helper script ``scripts/validate-bsp-report-schema.py``
+ that can be used to validate the yaml file.
+
+ The result is found in ``<platform-dir>/release/fast-bsp-report.yaml``.
+
+``full-bsp-report``
+ create a yaml report much like ``fast-bsp-report``. It contains some
+ additional data, such as the list of ipkgs created by a package. The
+ license information is validated and expanded, so this can be used to
+ create a custom license report.
+
+ When the report is generated all packages will be built unless they are
+ already built.
+
+ The result is found in ``<platform-dir>/release/full-bsp-report.yaml``.
+
.. _command_print:
``print <var>``
diff --git a/doc/user_manual.inc b/doc/user_manual.inc
index 2adcd964c..6bd534f3d 100644
--- a/doc/user_manual.inc
+++ b/doc/user_manual.inc
@@ -125,6 +125,10 @@ download an archive currently not existing on the development host. But
there are ways to prevent PTXdist from doing so (refer to section
:ref:`source-arch-loc`).
+.. note:: PTXdist tries to prevent downloads outside of the *get* stage
+ by setting certain widespread proxy environment variables to an
+ inexistent host name.
+
First steps with PTXdist
------------------------
diff --git a/patches/Imaging-1.1.7/0001-setup.py-remove-host-directories-from-search-paths.patch b/patches/Imaging-1.1.7/0001-setup.py-remove-host-directories-from-search-paths.patch
deleted file mode 100644
index f322445cd..000000000
--- a/patches/Imaging-1.1.7/0001-setup.py-remove-host-directories-from-search-paths.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Thu, 26 May 2011 17:07:26 +0200
-Subject: [PATCH] setup.py: remove host directories from search paths
-
-This patch is probably not acceptable in upstream.
-
-Forwarded: not-needed
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- setup.py | 8 --------
- 1 file changed, 8 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 5d4d53a..26d5672 100644
---- a/setup.py
-+++ b/setup.py
-@@ -147,7 +147,6 @@ class pil_build_ext(build_ext):
- add_directory(library_dirs, "/opt/local/lib")
- add_directory(include_dirs, "/opt/local/include")
-
-- add_directory(library_dirs, "/usr/local/lib")
- # FIXME: check /opt/stuff directories here?
-
- prefix = sysconfig.get_config_var("prefix")
-@@ -207,13 +206,6 @@ class pil_build_ext(build_ext):
- if os.path.isfile(os.path.join(tcl_dir, "tk.h")):
- add_directory(include_dirs, tcl_dir)
-
-- # standard locations
-- add_directory(library_dirs, "/usr/local/lib")
-- add_directory(include_dirs, "/usr/local/include")
--
-- add_directory(library_dirs, "/usr/lib")
-- add_directory(include_dirs, "/usr/include")
--
- #
- # insert new dirs *before* default libs, to avoid conflicts
- # between Python PYD stub libs and real libraries
diff --git a/patches/Imaging-1.1.7/0002-fix-compiling-with-FreeType-2.5.1.patch b/patches/Imaging-1.1.7/0002-fix-compiling-with-FreeType-2.5.1.patch
deleted file mode 100644
index ef5f2649b..000000000
--- a/patches/Imaging-1.1.7/0002-fix-compiling-with-FreeType-2.5.1.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From: Andrew Stromnov <stromnov@gmail.com>
-Date: Thu, 28 Nov 2013 16:58:43 +0400
-Subject: [PATCH] fix compiling with FreeType 2.5.1
-
----
- _imagingft.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/_imagingft.c b/_imagingft.c
-index 9358087..3ab1cbe 100644
---- a/_imagingft.c
-+++ b/_imagingft.c
-@@ -70,7 +70,11 @@ struct {
- const char* message;
- } ft_errors[] =
-
-+#if defined(USE_FREETYPE_2_1)
-+#include FT_ERRORS_H
-+#else
- #include <freetype/fterrors.h>
-+#endif
-
- /* -------------------------------------------------------------------- */
- /* font objects */
diff --git a/patches/Imaging-1.1.7/series b/patches/Imaging-1.1.7/series
deleted file mode 100644
index 852e106f2..000000000
--- a/patches/Imaging-1.1.7/series
+++ /dev/null
@@ -1,5 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-setup.py-remove-host-directories-from-search-paths.patch
-0002-fix-compiling-with-FreeType-2.5.1.patch
-# 02e3c3fc00cd9d7bba8253fd4c3e7b5a - git-ptx-patches magic
diff --git a/patches/ModemManager-1.16.2/0001-kerneldevice-udev-don-t-use-autoptr-in-GUdev-types.patch b/patches/ModemManager-1.16.2/0001-kerneldevice-udev-don-t-use-autoptr-in-GUdev-types.patch
deleted file mode 100644
index 511b1693f..000000000
--- a/patches/ModemManager-1.16.2/0001-kerneldevice-udev-don-t-use-autoptr-in-GUdev-types.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-From: Aleksander Morgado <aleksander@aleksander.es>
-Date: Tue, 23 Mar 2021 15:36:58 +0100
-Subject: [PATCH] kerneldevice,udev: don't use autoptr in GUdev types
-
-The autoptr support in all GUdev types was introduced in
-commit 272533131c6ed38479a88805, included in libgudev 232.
-
-In the MM 1.16 branch we depend on libgudev 147, so avoid
-implicitly bumping the required version.
-
-Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/349
----
- src/kerneldevice/mm-kernel-device-udev.c | 30 +++++++++++++++++++++---------
- 1 file changed, 21 insertions(+), 9 deletions(-)
-
-diff --git a/src/kerneldevice/mm-kernel-device-udev.c b/src/kerneldevice/mm-kernel-device-udev.c
-index f75104bd6b1c..a6bf1a71df88 100644
---- a/src/kerneldevice/mm-kernel-device-udev.c
-+++ b/src/kerneldevice/mm-kernel-device-udev.c
-@@ -81,7 +81,7 @@ static void
- preload_contents_platform (MMKernelDeviceUdev *self,
- const gchar *platform)
- {
-- g_autoptr(GUdevDevice) iter = NULL;
-+ GUdevDevice *iter;
-
- iter = g_object_ref (self->priv->device);
- while (iter) {
-@@ -102,17 +102,19 @@ preload_contents_platform (MMKernelDeviceUdev *self,
- g_clear_object (&iter);
- iter = parent;
- }
-+
-+ g_clear_object (&iter);
- }
-
- static void
- preload_contents_pcmcia (MMKernelDeviceUdev *self)
- {
-- g_autoptr(GUdevDevice) iter = NULL;
-- gboolean pcmcia_subsystem_found = FALSE;
-+ GUdevDevice *iter;
-+ gboolean pcmcia_subsystem_found = FALSE;
-
- iter = g_object_ref (self->priv->device);
- while (iter) {
-- g_autoptr(GUdevDevice) parent = NULL;
-+ GUdevDevice *parent;
-
- /* Store the first driver found */
- if (!self->priv->driver)
-@@ -133,18 +135,21 @@ preload_contents_pcmcia (MMKernelDeviceUdev *self)
- self->priv->product = udev_device_get_sysfs_attr_as_hex (iter, "card_id");
- self->priv->physdev = g_object_ref (iter);
- /* stop traversing as soon as the physical device is found */
-+ g_clear_object (&parent);
- break;
- }
-
- g_clear_object (&iter);
-- iter = g_steal_pointer (&parent);
-+ iter = parent;
- }
-+
-+ g_clear_object (&iter);
- }
-
- static void
- preload_contents_pci (MMKernelDeviceUdev *self)
- {
-- g_autoptr(GUdevDevice) iter = NULL;
-+ GUdevDevice *iter;
-
- iter = g_object_ref (self->priv->device);
- while (iter) {
-@@ -170,12 +175,14 @@ preload_contents_pci (MMKernelDeviceUdev *self)
- g_clear_object (&iter);
- iter = parent;
- }
-+
-+ g_clear_object (&iter);
- }
-
- static void
- preload_contents_usb (MMKernelDeviceUdev *self)
- {
-- g_autoptr(GUdevDevice) iter = NULL;
-+ GUdevDevice *iter;
-
- iter = g_object_ref (self->priv->device);
- while (iter) {
-@@ -204,12 +211,14 @@ preload_contents_usb (MMKernelDeviceUdev *self)
- g_clear_object (&iter);
- iter = parent;
- }
-+
-+ g_clear_object (&iter);
- }
-
- static gchar *
- find_device_bus_subsystem (MMKernelDeviceUdev *self)
- {
-- g_autoptr(GUdevDevice) iter = NULL;
-+ GUdevDevice *iter;
-
- iter = g_object_ref (self->priv->device);
- while (iter) {
-@@ -224,8 +233,10 @@ find_device_bus_subsystem (MMKernelDeviceUdev *self)
- (g_strcmp0 (subsys, "pci") == 0) ||
- (g_strcmp0 (subsys, "platform") == 0) ||
- (g_strcmp0 (subsys, "pnp") == 0) ||
-- (g_strcmp0 (subsys, "sdio") == 0))
-+ (g_strcmp0 (subsys, "sdio") == 0)) {
-+ g_clear_object (&iter);
- return g_strdup (subsys);
-+ }
-
- parent = g_udev_device_get_parent (iter);
- g_clear_object (&iter);
-@@ -233,6 +244,7 @@ find_device_bus_subsystem (MMKernelDeviceUdev *self)
- }
-
- /* no more parents to check */
-+ g_clear_object (&iter);
- return NULL;
- }
-
diff --git a/patches/ModemManager-1.16.2/series b/patches/ModemManager-1.16.2/series
deleted file mode 100644
index 073ee95c5..000000000
--- a/patches/ModemManager-1.16.2/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-kerneldevice-udev-don-t-use-autoptr-in-GUdev-types.patch
-# 7ee4df7afdcd7083fe59386d7e47c795 - git-ptx-patches magic
diff --git a/patches/NetworkManager-1.26.2/0001-clients-cli-build-generate_docs_nm_settings_nmcli-on.patch b/patches/NetworkManager-1.26.2/0001-clients-cli-build-generate_docs_nm_settings_nmcli-on.patch
deleted file mode 100644
index db3c29643..000000000
--- a/patches/NetworkManager-1.26.2/0001-clients-cli-build-generate_docs_nm_settings_nmcli-on.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 5ddd262c1042ef2cd748b3b2a724d2e15f89b9fb Mon Sep 17 00:00:00 2001
-From: Robert Schwebel <r.schwebel@pengutronix.de>
-Date: Sat, 25 Jul 2020 18:14:35 +0200
-Subject: [PATCH] clients/cli: build generate_docs_nm_settings_nmcli only if
- docs are enabled
-
-Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
----
- clients/cli/meson.build | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/clients/cli/meson.build b/clients/cli/meson.build
-index 517deffa6..2dada71f5 100644
---- a/clients/cli/meson.build
-+++ b/clients/cli/meson.build
-@@ -35,6 +35,9 @@ executable(
-
- endif
-
-+enable_docs = get_option('docs')
-+if enable_docs
-+
- generate_docs_nm_settings_nmcli = executable(
- 'generate-docs-nm-settings-nmcli',
- files(
-@@ -56,3 +59,5 @@ generate_docs_nm_settings_nmcli_xml = custom_target(
- command: [ generate_docs_nm_settings_nmcli ],
- capture: true,
- )
-+
-+endif
---
-2.27.0
-
diff --git a/patches/NetworkManager-1.26.2/series b/patches/NetworkManager-1.26.2/series
deleted file mode 100644
index b04ab9c47..000000000
--- a/patches/NetworkManager-1.26.2/series
+++ /dev/null
@@ -1 +0,0 @@
-0001-clients-cli-build-generate_docs_nm_settings_nmcli-on.patch
diff --git a/patches/OpenSC-0.23.0/0001-pkcs11-tool-Fix-private-key-import.patch b/patches/OpenSC-0.23.0/0001-pkcs11-tool-Fix-private-key-import.patch
new file mode 100644
index 000000000..16427c56f
--- /dev/null
+++ b/patches/OpenSC-0.23.0/0001-pkcs11-tool-Fix-private-key-import.patch
@@ -0,0 +1,28 @@
+From: Jakub Jelen <jjelen@redhat.com>
+Date: Thu, 1 Dec 2022 20:08:53 +0100
+Subject: [PATCH] pkcs11-tool: Fix private key import
+
+---
+ src/tools/pkcs11-tool.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/tools/pkcs11-tool.c b/src/tools/pkcs11-tool.c
+index aae205fe2cd6..cfee8526d5b0 100644
+--- a/src/tools/pkcs11-tool.c
++++ b/src/tools/pkcs11-tool.c
+@@ -3669,13 +3669,13 @@ parse_rsa_pkey(EVP_PKEY *pkey, int private, struct rsakey_info *rsa)
+ RSA_get0_factors(r, &r_p, &r_q);
+ RSA_get0_crt_params(r, &r_dmp1, &r_dmq1, &r_iqmp);
+ #else
+- if (EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_FACTOR1, &r_d) != 1 ||
++ if (EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_D, &r_d) != 1 ||
+ EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_FACTOR1, &r_p) != 1 ||
+ EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_FACTOR2, &r_q) != 1 ||
+ EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_EXPONENT1, &r_dmp1) != 1 ||
+ EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_EXPONENT2, &r_dmq1) != 1 ||
+- EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_EXPONENT3, &r_iqmp) != 1) {
+ util_fatal("OpenSSL error during RSA private key parsing");
++ EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_COEFFICIENT1, &r_iqmp) != 1) {
+ }
+ #endif
+ RSA_GET_BN(rsa, private_exponent, r_d);
diff --git a/patches/OpenSC-0.23.0/0002-pkcs11-tool-Log-more-information-on-OpenSSL-errors.patch b/patches/OpenSC-0.23.0/0002-pkcs11-tool-Log-more-information-on-OpenSSL-errors.patch
new file mode 100644
index 000000000..f5238e9d6
--- /dev/null
+++ b/patches/OpenSC-0.23.0/0002-pkcs11-tool-Log-more-information-on-OpenSSL-errors.patch
@@ -0,0 +1,49 @@
+From: Jakub Jelen <jjelen@redhat.com>
+Date: Thu, 1 Dec 2022 20:11:41 +0100
+Subject: [PATCH] pkcs11-tool: Log more information on OpenSSL errors
+
+---
+ src/tools/pkcs11-tool.c | 15 ++++++---------
+ 1 file changed, 6 insertions(+), 9 deletions(-)
+
+diff --git a/src/tools/pkcs11-tool.c b/src/tools/pkcs11-tool.c
+index cfee8526d5b0..f2e6b1dd91cd 100644
+--- a/src/tools/pkcs11-tool.c
++++ b/src/tools/pkcs11-tool.c
+@@ -3641,10 +3641,8 @@ parse_rsa_pkey(EVP_PKEY *pkey, int private, struct rsakey_info *rsa)
+ const BIGNUM *r_dmp1, *r_dmq1, *r_iqmp;
+ r = EVP_PKEY_get1_RSA(pkey);
+ if (!r) {
+- if (private)
+- util_fatal("OpenSSL error during RSA private key parsing");
+- else
+- util_fatal("OpenSSL error during RSA public key parsing");
++ util_fatal("OpenSSL error during RSA %s key parsing: %s", private ? "private" : "public",
++ ERR_error_string(ERR_peek_last_error(), NULL));
+ }
+
+ RSA_get0_key(r, &r_n, &r_e, NULL);
+@@ -3654,10 +3652,8 @@ parse_rsa_pkey(EVP_PKEY *pkey, int private, struct rsakey_info *rsa)
+ BIGNUM *r_dmp1 = NULL, *r_dmq1 = NULL, *r_iqmp = NULL;
+ if (EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_N, &r_n) != 1 ||
+ EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_E, &r_e) != 1) {
+- if (private)
+- util_fatal("OpenSSL error during RSA private key parsing");
+- else
+- util_fatal("OpenSSL error during RSA public key parsing");
++ util_fatal("OpenSSL error during RSA %s key parsing: %s", private ? "private" : "public",
++ ERR_error_string(ERR_peek_last_error(), NULL));
+ }
+ #endif
+ RSA_GET_BN(rsa, modulus, r_n);
+@@ -3674,8 +3670,9 @@ parse_rsa_pkey(EVP_PKEY *pkey, int private, struct rsakey_info *rsa)
+ EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_FACTOR2, &r_q) != 1 ||
+ EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_EXPONENT1, &r_dmp1) != 1 ||
+ EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_EXPONENT2, &r_dmq1) != 1 ||
+- util_fatal("OpenSSL error during RSA private key parsing");
+ EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_COEFFICIENT1, &r_iqmp) != 1) {
++ util_fatal("OpenSSL error during RSA private key parsing: %s",
++ ERR_error_string(ERR_peek_last_error(), NULL));
+ }
+ #endif
+ RSA_GET_BN(rsa, private_exponent, r_d);
diff --git a/patches/OpenSC-0.23.0/series b/patches/OpenSC-0.23.0/series
new file mode 100644
index 000000000..ab2d2c5a3
--- /dev/null
+++ b/patches/OpenSC-0.23.0/series
@@ -0,0 +1,5 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-pkcs11-tool-Fix-private-key-import.patch
+0002-pkcs11-tool-Log-more-information-on-OpenSSL-errors.patch
+# 841748d6d3e699afc5d54133ee12d6dd - git-ptx-patches magic
diff --git a/patches/Python-2.7.18/0001-Add-support-for-socketcan-to-the-python-socket-modul.patch b/patches/Python-2.7.18/0001-Add-support-for-socketcan-to-the-python-socket-modul.patch
deleted file mode 100644
index 6eeecd140..000000000
--- a/patches/Python-2.7.18/0001-Add-support-for-socketcan-to-the-python-socket-modul.patch
+++ /dev/null
@@ -1,224 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Tue, 5 May 2009 15:17:20 +0200
-Subject: [PATCH] Add support for socketcan to the python socket module
-
-This patch add support for the protocol family AF_CAN. It contains all the
-necessary code to use the python socket module for socketcan.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- Lib/plat-linux2/IN.py | 2 ++
- Modules/socketmodule.c | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++
- Modules/socketmodule.h | 11 +++++++
- configure.ac | 13 ++++++++
- 4 files changed, 115 insertions(+)
-
-diff --git a/Lib/plat-linux2/IN.py b/Lib/plat-linux2/IN.py
-index ad307f65398b..f72ae886cad8 100644
---- a/Lib/plat-linux2/IN.py
-+++ b/Lib/plat-linux2/IN.py
-@@ -384,6 +384,7 @@ PF_SNA = 22
- PF_IRDA = 23
- PF_PPPOX = 24
- PF_WANPIPE = 25
-+PF_CAN = 29
- PF_BLUETOOTH = 31
- PF_MAX = 32
- AF_UNSPEC = PF_UNSPEC
-@@ -414,6 +415,7 @@ AF_SNA = PF_SNA
- AF_IRDA = PF_IRDA
- AF_PPPOX = PF_PPPOX
- AF_WANPIPE = PF_WANPIPE
-+AF_CAN = PF_CAN
- AF_BLUETOOTH = PF_BLUETOOTH
- AF_MAX = PF_MAX
- SOL_RAW = 255
-diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
-index 4d5a8f6f0170..8636a8d6ca5e 100644
---- a/Modules/socketmodule.c
-+++ b/Modules/socketmodule.c
-@@ -448,6 +448,10 @@ const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);
-
- #define SAS2SA(x) ((struct sockaddr *)(x))
-
-+#ifdef ENABLE_CAN
-+#include <linux/can/raw.h>
-+#endif
-+
- /*
- * Constants for getnameinfo()
- */
-@@ -1125,6 +1129,22 @@ makesockaddr(int sockfd, struct sockaddr *addr, int addrlen, int proto)
- }
- #endif /* ENABLE_IPV6 */
-
-+#ifdef ENABLE_CAN
-+ case AF_CAN:
-+ {
-+ struct sockaddr_can *a = (struct sockaddr_can *)addr;
-+ char *ifname = "";
-+ struct ifreq ifr;
-+ /* need to look up interface name give index */
-+ if (a->can_ifindex) {
-+ ifr.ifr_ifindex = a->can_ifindex;
-+ if (ioctl(sockfd, SIOCGIFNAME, &ifr) == 0)
-+ ifname = ifr.ifr_name;
-+ }
-+ return Py_BuildValue("s", ifname);
-+ }
-+#endif
-+
- #ifdef USE_BLUETOOTH
- case AF_BLUETOOTH:
- switch (proto) {
-@@ -1411,6 +1431,28 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
- }
- #endif /* ENABLE_IPV6 */
-
-+#ifdef ENABLE_CAN
-+ case AF_CAN:
-+ {
-+ struct sockaddr_can* addr;
-+ struct ifreq ifr;
-+ char *interfaceName;
-+ addr = (struct sockaddr_can*)addr_ret;
-+ if (!PyArg_Parse(args, "s", &interfaceName))
-+ return 0;
-+ strncpy(ifr.ifr_name, interfaceName, sizeof(ifr.ifr_name));
-+ ifr.ifr_name[(sizeof(ifr.ifr_name))-1] = '\0';
-+ if (ioctl(s->sock_fd, SIOCGIFINDEX, &ifr) < 0) {
-+ s->errorhandler();
-+ return 0;
-+ }
-+ addr->can_family = AF_CAN;
-+ addr->can_ifindex = ifr.ifr_ifindex;
-+ *len_ret = sizeof *addr;
-+ return 1;
-+ }
-+#endif
-+
- #ifdef USE_BLUETOOTH
- case AF_BLUETOOTH:
- {
-@@ -1662,6 +1704,14 @@ getsockaddrlen(PySocketSockObject *s, socklen_t *len_ret)
- }
- #endif /* ENABLE_IPV6 */
-
-+#ifdef ENABLE_CAN
-+ case AF_CAN:
-+ {
-+ *len_ret = sizeof (struct sockaddr_can);
-+ return 1;
-+ }
-+#endif
-+
- #ifdef USE_BLUETOOTH
- case AF_BLUETOOTH:
- {
-@@ -4813,6 +4863,10 @@ init_socket(void)
- PyModule_AddIntConstant(m, "AF_LLC", AF_LLC);
- #endif
-
-+#ifdef ENABLE_CAN
-+ PyModule_AddIntConstant(m, "AF_CAN", AF_CAN);
-+#endif
-+
- #ifdef USE_BLUETOOTH
- PyModule_AddIntConstant(m, "AF_BLUETOOTH", AF_BLUETOOTH);
- PyModule_AddIntConstant(m, "BTPROTO_L2CAP", BTPROTO_L2CAP);
-@@ -5169,6 +5223,41 @@ init_socket(void)
- PyModule_AddIntConstant(m, "IPPROTO_MAX", IPPROTO_MAX);
- #endif
-
-+#ifdef CAN_RAW
-+ PyModule_AddIntConstant(m, "CAN_RAW", CAN_RAW);
-+#endif
-+#ifdef CAN_BCM
-+ PyModule_AddIntConstant(m, "CAN_BCM", CAN_BCM);
-+#endif
-+#ifdef CAN_TP16
-+ PyModule_AddIntConstant(m, "CAN_TP16", CAN_TP16);
-+#endif
-+#ifdef CAN_TP20
-+ PyModule_AddIntConstant(m, "CAN_TP20", CAN_TP20);
-+#endif
-+#ifdef CAN_MCNET
-+ PyModule_AddIntConstant(m, "CAN_MCNET", CAN_MCNET);
-+#endif
-+#ifdef CAN_ISOTP
-+ PyModule_AddIntConstant(m, "CAN_ISOTP", CAN_ISOTP);
-+#endif
-+#ifdef CAN_NPROTO
-+ PyModule_AddIntConstant(m, "CAN_NPROTO", CAN_NPROTO);
-+#endif
-+
-+#ifdef SOL_CAN_BASE
-+ PyModule_AddIntConstant(m, "SOL_CAN_BASE", SOL_CAN_BASE);
-+#endif
-+#ifdef SOL_CAN_RAW
-+ PyModule_AddIntConstant(m, "SOL_CAN_RAW", SOL_CAN_RAW);
-+#endif
-+#ifdef ENABLE_CAN
-+ PyModule_AddIntConstant(m, "CAN_RAW_FILTER", CAN_RAW_FILTER);
-+ PyModule_AddIntConstant(m, "CAN_RAW_ERR_FILTER", CAN_RAW_ERR_FILTER);
-+ PyModule_AddIntConstant(m, "CAN_RAW_LOOPBACK", CAN_RAW_LOOPBACK);
-+ PyModule_AddIntConstant(m, "CAN_RAW_RECV_OWN_MSGS", CAN_RAW_RECV_OWN_MSGS);
-+#endif
-+
- /* Some port configuration */
- #ifdef IPPORT_RESERVED
- PyModule_AddIntConstant(m, "IPPORT_RESERVED", IPPORT_RESERVED);
-diff --git a/Modules/socketmodule.h b/Modules/socketmodule.h
-index d98e00e88d27..3b6e22e29d3a 100644
---- a/Modules/socketmodule.h
-+++ b/Modules/socketmodule.h
-@@ -55,6 +55,14 @@ typedef int socklen_t;
- #include <bluetooth/hci.h>
- #endif
-
-+#define AF_CAN 29
-+#define PF_CAN AF_CAN
-+
-+#ifdef HAVE_LINUX_CAN_H
-+#define ENABLE_CAN 1
-+#include <linux/can.h>
-+#endif
-+
- #ifdef HAVE_BLUETOOTH_H
- #include <bluetooth.h>
- #endif
-@@ -106,6 +114,9 @@ typedef union sock_addr {
- struct sockaddr_in6 in6;
- struct sockaddr_storage storage;
- #endif
-+#ifdef ENABLE_CAN
-+ struct sockaddr_can can;
-+#endif
- #ifdef HAVE_BLUETOOTH_BLUETOOTH_H
- struct sockaddr_l2 bt_l2;
- struct sockaddr_rc bt_rc;
-diff --git a/configure.ac b/configure.ac
-index efe6922b5de2..14cc590e55d7 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1753,6 +1753,19 @@ AC_CHECK_HEADERS(linux/netlink.h,,,[
- #endif
- ])
-
-+AC_CHECK_HEADERS(linux/can.h,[],[],[#include <sys/socket.h>])
-+# check for AF_CAN
-+AC_TRY_COMPILE(
-+ [[#include <sys/socket.h>
-+ int domain = AF_CAN;]],
-+ [[socket(domain, 0, 0);]],
-+ [],
-+ [
-+ AC_DEFINE(AF_CAN, 29, [Define AF_CAN if not defined by sys/socket.h])
-+ AC_DEFINE(PF_CAN, 29, [Define PF_CAN if not defined by sys/socket.h])
-+ ]
-+)
-+
- # checks for typedefs
- was_it_defined=no
- AC_MSG_CHECKING(for clock_t in time.h)
diff --git a/patches/Python-2.7.18/0002-use-AC_CHECK_SIZEOF-rather-than-AC_TRY_COMPILE-for-l.patch b/patches/Python-2.7.18/0002-use-AC_CHECK_SIZEOF-rather-than-AC_TRY_COMPILE-for-l.patch
deleted file mode 100644
index d1d5647b9..000000000
--- a/patches/Python-2.7.18/0002-use-AC_CHECK_SIZEOF-rather-than-AC_TRY_COMPILE-for-l.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-Date: Fri, 24 Apr 2009 18:44:11 +0200
-Subject: [PATCH] use AC_CHECK_SIZEOF rather than AC_TRY_COMPILE for long long
- detection
-
-AC_CHECK_SIZEOF does first detect if the type is available and detects
-its size. Use it, rather than hand crafted function with AC_TRY_COMPILE.
-
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- configure.ac | 12 ++++--------
- 1 file changed, 4 insertions(+), 8 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 14cc590e55d7..04e713acd089 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1890,15 +1890,11 @@ AC_CHECK_SIZEOF(fpos_t, 4)
- AC_CHECK_SIZEOF(size_t, 4)
- AC_CHECK_SIZEOF(pid_t, 4)
-
--AC_MSG_CHECKING(for long long support)
--have_long_long=no
--AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[long long x; x = (long long)0;]])],[
-- AC_DEFINE(HAVE_LONG_LONG, 1, [Define this if you have the type long long.])
-+AC_TYPE_LONG_LONG_INT
-+AC_CHECK_SIZEOF(long long)
-+if test "$ac_cv_type_long_long_int" = "yes" ; then
- have_long_long=yes
--],[])
--AC_MSG_RESULT($have_long_long)
--if test "$have_long_long" = yes ; then
--AC_CHECK_SIZEOF(long long, 8)
-+ AC_DEFINE(HAVE_LONG_LONG, 1, [Define this if you have the type long long.])
- fi
-
- AC_MSG_CHECKING(for long double support)
diff --git a/patches/Python-2.7.18/0003-use-AC_TYPE_LONG_DOUBLE-to-detect-long-double-suppor.patch b/patches/Python-2.7.18/0003-use-AC_TYPE_LONG_DOUBLE-to-detect-long-double-suppor.patch
deleted file mode 100644
index b6ef13c1e..000000000
--- a/patches/Python-2.7.18/0003-use-AC_TYPE_LONG_DOUBLE-to-detect-long-double-suppor.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-Date: Fri, 24 Apr 2009 18:47:19 +0200
-Subject: [PATCH] use AC_TYPE_LONG_DOUBLE to detect long double support
-
-use the correct AC_TYPE_LONG_DOUBLE function rahter than hand crafted
-test to detect long double support.
-
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- configure.ac | 12 ++----------
- 1 file changed, 2 insertions(+), 10 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 04e713acd089..5899a7d819b5 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1897,16 +1897,8 @@ if test "$ac_cv_type_long_long_int" = "yes" ; then
- AC_DEFINE(HAVE_LONG_LONG, 1, [Define this if you have the type long long.])
- fi
-
--AC_MSG_CHECKING(for long double support)
--have_long_double=no
--AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[long double x; x = (long double)0;]])],[
-- AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define this if you have the type long double.])
-- have_long_double=yes
--],[])
--AC_MSG_RESULT($have_long_double)
--if test "$have_long_double" = yes ; then
--AC_CHECK_SIZEOF(long double, 12)
--fi
-+AC_TYPE_LONG_DOUBLE
-+AC_CHECK_SIZEOF(long double)
-
- AC_MSG_CHECKING(for _Bool support)
- have_c99_bool=no
diff --git a/patches/Python-2.7.18/0004-setup.py-don-t-leak-host-path-into-cross-compilation.patch b/patches/Python-2.7.18/0004-setup.py-don-t-leak-host-path-into-cross-compilation.patch
deleted file mode 100644
index 1cabdcec5..000000000
--- a/patches/Python-2.7.18/0004-setup.py-don-t-leak-host-path-into-cross-compilation.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-Date: Tue, 28 Apr 2009 19:07:54 +0200
-Subject: [PATCH] setup.py: don't leak host path into cross compilation
- environment
-
-During cross compilation we don't host path (neither include nor library
-search patch) to leak into our environment.
-
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- setup.py | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/setup.py b/setup.py
-index f764223d0627..53161c941ff8 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1274,6 +1274,9 @@ class PyBuildExt(build_ext):
- # the more recent berkeleydb's db.h file first in the include path
- # when attempting to compile and it will fail.
- f = "/usr/include/db.h"
-+ if cross_compiling:
-+ f = ''
-+
-
- if host_platform == 'darwin':
- if is_macosx_sdk_path(f):
diff --git a/patches/Python-2.7.18/0005-add-cross-compilation-support.patch b/patches/Python-2.7.18/0005-add-cross-compilation-support.patch
deleted file mode 100644
index f7812e732..000000000
--- a/patches/Python-2.7.18/0005-add-cross-compilation-support.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-Date: Mon, 4 May 2009 14:39:18 +0200
-Subject: [PATCH] add cross compilation support
-
-This patch adds preliminary cross compilation support to python.
-
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- Makefile.pre.in | 12 ++++++++----
- configure.ac | 7 +++++++
- 2 files changed, 15 insertions(+), 4 deletions(-)
-
-diff --git a/Makefile.pre.in b/Makefile.pre.in
-index 2a14f3323bc3..c1e8839a2d21 100644
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -88,6 +88,10 @@ CFLAGSFORSHARED=@CFLAGSFORSHARED@
- # C flags used for building the interpreter object files
- PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE
-
-+# cross compiler options
-+ifndef DESTDIR
-+sysroot= @SYSROOT@
-+endif
-
- # Machine-dependent subdirectories
- MACHDEP= @MACHDEP@
-@@ -106,11 +110,11 @@ datarootdir= @datarootdir@
-
- # Expanded directories
- BINDIR= @bindir@
--LIBDIR= @libdir@
-+LIBDIR= $(sysroot)@libdir@
- MANDIR= @mandir@
--INCLUDEDIR= @includedir@
--CONFINCLUDEDIR= $(exec_prefix)/include
--SCRIPTDIR= $(prefix)/lib
-+INCLUDEDIR= $(sysroot)@includedir@
-+CONFINCLUDEDIR= $(sysroot)$(exec_prefix)/include
-+SCRIPTDIR= $(sysroot)$(prefix)/lib
-
- # Detailed destination directories
- BINLIBDEST= $(LIBDIR)/python$(VERSION)
-diff --git a/configure.ac b/configure.ac
-index 5899a7d819b5..0dd23a07d73e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -980,6 +980,13 @@ if test "$cross_compiling" = yes; then
- RUNSHARED=
- fi
-
-+# sysroot
-+AC_SUBST(SYSROOT)
-+if test "$cross_compiling" = yes; then
-+ AC_MSG_CHECKING([for SYSROOT])
-+ AC_MSG_RESULT([$SYSROOT])
-+fi
-+
- AC_MSG_RESULT($LDLIBRARY)
-
- AC_PROG_RANLIB
diff --git a/patches/Python-2.7.18/0006-python-don-t-add-rpaths-in-setup.py.patch b/patches/Python-2.7.18/0006-python-don-t-add-rpaths-in-setup.py.patch
deleted file mode 100644
index b51ad1887..000000000
--- a/patches/Python-2.7.18/0006-python-don-t-add-rpaths-in-setup.py.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 27 May 2017 08:00:24 +0200
-Subject: [PATCH] python: don't add rpaths in setup.py
-
-We don't add rpaths.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- setup.py | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 53161c941ff8..4abd73317729 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1147,7 +1147,6 @@ class PyBuildExt(build_ext):
- exts.append(Extension('_bsddb', ['_bsddb.c'],
- depends = ['bsddb.h'],
- library_dirs=dblib_dir,
-- runtime_library_dirs=dblib_dir,
- include_dirs=db_incs,
- libraries=dblibs))
- else:
-@@ -1364,7 +1363,6 @@ class PyBuildExt(build_ext):
- print "building dbm using bdb"
- dbmext = Extension('dbm', ['dbmmodule.c'],
- library_dirs=dblib_dir,
-- runtime_library_dirs=dblib_dir,
- include_dirs=db_incs,
- define_macros=[
- ('HAVE_BERKDB_H', None),
diff --git a/patches/Python-2.7.18/0007-add-more-search-paths.patch b/patches/Python-2.7.18/0007-add-more-search-paths.patch
deleted file mode 100644
index ea1e2fc77..000000000
--- a/patches/Python-2.7.18/0007-add-more-search-paths.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Thu, 13 Jun 2013 10:42:58 +0200
-Subject: [PATCH] add more search paths
-
-Without this setup.py won't find libs in <sysroot>/lib
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- setup.py | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 4abd73317729..67f867ce1123 100644
---- a/setup.py
-+++ b/setup.py
-@@ -548,8 +548,10 @@ class PyBuildExt(build_ext):
- # (PYTHONFRAMEWORK is set) to avoid # linking problems when
- # building a framework with different architectures than
- # the one that is currently installed (issue #7473)
-- add_dir_to_list(self.compiler.library_dirs,
-- sysconfig.get_config_var("LIBDIR"))
-+ libdir = sysconfig.get_config_var("LIBDIR")
-+ add_dir_to_list(self.compiler.library_dirs, libdir)
-+ if libdir.endswith('/usr/lib'):
-+ add_dir_to_list(self.compiler.library_dirs, libdir.replace('/usr/lib','/lib'))
- add_dir_to_list(self.compiler.include_dirs,
- sysconfig.get_config_var("INCLUDEDIR"))
-
diff --git a/patches/Python-2.7.18/0008-resolve-existing-LD_LIBRARY_PATH-during-make-not-dur.patch b/patches/Python-2.7.18/0008-resolve-existing-LD_LIBRARY_PATH-during-make-not-dur.patch
deleted file mode 100644
index 474a1a4c6..000000000
--- a/patches/Python-2.7.18/0008-resolve-existing-LD_LIBRARY_PATH-during-make-not-dur.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Wed, 5 Feb 2014 12:16:12 +0100
-Subject: [PATCH] resolve existing LD_LIBRARY_PATH during make, not during
- configure
-
-Otherwise, calling "make install" with fakeroot may not work correctly.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 0dd23a07d73e..2c21a989e012 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -926,7 +926,7 @@ if test $enable_shared = "yes"; then
- Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*)
- LDLIBRARY='libpython$(VERSION).so'
- BLDLIBRARY='-L. -lpython$(VERSION)'
-- RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
-+ RUNSHARED=LD_LIBRARY_PATH=`pwd`:'${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}'
- case $ac_sys_system in
- FreeBSD*)
- SOVERSION=`echo $SOVERSION|cut -d "." -f 1`
diff --git a/patches/Python-2.7.18/0009-python2-prevent-host-path-leakage.patch b/patches/Python-2.7.18/0009-python2-prevent-host-path-leakage.patch
deleted file mode 100644
index 0888a62c4..000000000
--- a/patches/Python-2.7.18/0009-python2-prevent-host-path-leakage.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From: Bastian Stender <bst@pengutronix.de>
-Date: Mon, 8 Jan 2018 15:55:40 +0100
-Subject: [PATCH] python2: prevent host path leakage
-
-If cross-compiling and host/target architecture match host paths are
-added to include_dirs and library_dirs in add_multiarch_paths() (e.g.
-/usr/lib/i386-linux-gnu, /usr/include/i386-linux-gnu). This leads to
-build failures for some extensions (at least _ssl and _socket).
-
-ptxdist does not support multiarch, so remove this addition when
-cross-compiling.
-
-Based on a patch by Alexandru Ardelean <ardeleanalex@gmail.com>.
-
-See these patches for reference:
-- https://github.com/openwrt/packages/pull/784
-- https://github.com/openwrt/packages/blob/master/lang/python/python/patches/006-remove-multi-arch-and-local-paths.patch
-- http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-devtools/python/python/host_include_contamination.patch
-
-Signed-off-by: Bastian Stender <bst@pengutronix.de>
----
- setup.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index 67f867ce1123..d7b1991f93ca 100644
---- a/setup.py
-+++ b/setup.py
-@@ -504,9 +504,9 @@ class PyBuildExt(build_ext):
- if not cross_compiling:
- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
-+ self.add_multiarch_paths()
- if cross_compiling:
- self.add_gcc_paths()
-- self.add_multiarch_paths()
-
- # Add paths specified in the environment variables LDFLAGS and
- # CPPFLAGS for header and library files.
diff --git a/patches/Python-2.7.18/autogen.sh b/patches/Python-2.7.18/autogen.sh
deleted file mode 100755
index 903ce7847..000000000
--- a/patches/Python-2.7.18/autogen.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-
-# to add config.guess and config.sub
-automake --copy --add-missing || true
-
-autoheader --force
-
-autoconf \
- --force \
- --warnings=cross \
- --warnings=syntax \
- --warnings=obsolete \
- --warnings=unsupported
-
diff --git a/patches/Python-2.7.18/series b/patches/Python-2.7.18/series
deleted file mode 100644
index 476244734..000000000
--- a/patches/Python-2.7.18/series
+++ /dev/null
@@ -1,12 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Add-support-for-socketcan-to-the-python-socket-modul.patch
-0002-use-AC_CHECK_SIZEOF-rather-than-AC_TRY_COMPILE-for-l.patch
-0003-use-AC_TYPE_LONG_DOUBLE-to-detect-long-double-suppor.patch
-0004-setup.py-don-t-leak-host-path-into-cross-compilation.patch
-0005-add-cross-compilation-support.patch
-0006-python-don-t-add-rpaths-in-setup.py.patch
-0007-add-more-search-paths.patch
-0008-resolve-existing-LD_LIBRARY_PATH-during-make-not-dur.patch
-0009-python2-prevent-host-path-leakage.patch
-# 1fb48b2848c102e3848999b1d9f65710 - git-ptx-patches magic
diff --git a/patches/Python-3.7.10/0001-python3-don-t-leak-host-path-into-target-binaries.patch b/patches/Python-3.7.10/0001-python3-don-t-leak-host-path-into-target-binaries.patch
deleted file mode 100644
index ac5e64d48..000000000
--- a/patches/Python-3.7.10/0001-python3-don-t-leak-host-path-into-target-binaries.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sun, 14 Oct 2018 18:51:17 +0200
-Subject: [PATCH] python3: don't leak host path into target binaries
-
-Without this the rpath of the _dbm module contains <sysroot>/usr/lib.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- setup.py | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index bf90600eaad3..9250f5a1b691 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1344,7 +1344,6 @@ class PyBuildExt(build_ext):
- if dbm_setup_debug: print("building dbm using bdb")
- dbmext = Extension('_dbm', ['_dbmmodule.c'],
- library_dirs=dblib_dir,
-- runtime_library_dirs=dblib_dir,
- include_dirs=db_incs,
- define_macros=[
- ('HAVE_BERKDB_H', None),
diff --git a/patches/Python-3.7.10/0002-python3-prevent-host-path-leakage.patch b/patches/Python-3.7.10/0002-python3-prevent-host-path-leakage.patch
deleted file mode 100644
index 36ece1f85..000000000
--- a/patches/Python-3.7.10/0002-python3-prevent-host-path-leakage.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From: Bastian Stender <bst@pengutronix.de>
-Date: Mon, 8 Jan 2018 16:11:23 +0100
-Subject: [PATCH] python3: prevent host path leakage
-
-If cross-compiling and host/target architecture match host paths are
-added to include_dirs and library_dirs in add_multiarch_paths() (e.g.
-/usr/lib/i386-linux-gnu, /usr/include/i386-linux-gnu). This leads to
-build failures for some extensions (at least _ssl and _socket).
-
-ptxdist does not support multiarch, so remove this addition when
-cross-compiling.
-
-Based on a patch by Alexandru Ardelean <ardeleanalex@gmail.com>.
-
-See these patches for reference:
-- https://github.com/openwrt/packages/pull/784
-- https://github.com/openwrt/packages/blob/master/lang/python/python/patches/006-remove-multi-arch-and-local-paths.patch
-- http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-devtools/python/python/host_include_contamination.patch
-
-Signed-off-by: Bastian Stender <bst@pengutronix.de>
----
- setup.py | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index 9250f5a1b691..3278aaf6e677 100644
---- a/setup.py
-+++ b/setup.py
-@@ -587,10 +587,12 @@ class PyBuildExt(build_ext):
- if not cross_compiling:
- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
-+
-+ self.add_multiarch_paths()
-+
- # only change this for cross builds for 3.3, issues on Mageia
- if cross_compiling:
- self.add_gcc_paths()
-- self.add_multiarch_paths()
-
- # Add paths specified in the environment variables LDFLAGS and
- # CPPFLAGS for header and library files.
diff --git a/patches/Python-3.7.10/series b/patches/Python-3.7.10/series
deleted file mode 100644
index 305ae1d73..000000000
--- a/patches/Python-3.7.10/series
+++ /dev/null
@@ -1,5 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-python3-don-t-leak-host-path-into-target-binaries.patch
-0002-python3-prevent-host-path-leakage.patch
-# 9a6f885c0db25c8cff5dd088d9eff6af - git-ptx-patches magic
diff --git a/patches/SDL2_ttf-2.0.15/0001-configure-make-opengl-support-switchable.patch b/patches/SDL2_ttf-2.22.0/0001-configure-make-opengl-support-switchable.patch
index dd3470963..cf03ca9fb 100644
--- a/patches/SDL2_ttf-2.0.15/0001-configure-make-opengl-support-switchable.patch
+++ b/patches/SDL2_ttf-2.22.0/0001-configure-make-opengl-support-switchable.patch
@@ -4,16 +4,16 @@ Subject: [PATCH] configure: make opengl support switchable
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
---
- configure.in | 7 +++++++
+ configure.ac | 7 +++++++
1 file changed, 7 insertions(+)
-diff --git a/configure.in b/configure.in
-index 32b3a9139efd..d77bab0c0069 100644
---- a/configure.in
-+++ b/configure.in
-@@ -105,6 +105,12 @@ AM_PATH_SDL2($SDL_VERSION,
- CFLAGS="$CFLAGS $SDL_CFLAGS"
- LIBS="$LIBS $SDL_LIBS"
+diff --git a/configure.ac b/configure.ac
+index f0612a4be057..b12cab96de56 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -308,6 +308,12 @@ AM_CONDITIONAL(USE_BUILTIN_HARFBUZZ, test x$enable_harfbuzz_builtin = xyes)
+ dnl check for LD --no-undefined option
+ CheckNoUndef
+dnl Check to see if OpenGL support is desired
+AC_ARG_ENABLE(opengl,
@@ -23,12 +23,12 @@ index 32b3a9139efd..d77bab0c0069 100644
+if test x$enable_opengl = xyes; then
dnl Check for OpenGL
case "$host" in
- *-*-cygwin* | *-*-mingw32*)
-@@ -157,6 +163,7 @@ else
+ *-*-cygwin* | *-*-mingw*)
+@@ -358,6 +364,7 @@ else
GL_LIBS=""
fi
AC_SUBST([GL_LIBS])
+fi
AC_SUBST([MATHLIB])
- AC_SUBST([WINDRES])
-
+ AC_SUBST([TTF_CFLAGS])
+ AC_SUBST([TTF_LIBS])
diff --git a/patches/SDL2_ttf-2.0.15/autogen.sh b/patches/SDL2_ttf-2.22.0/autogen.sh
index a430a4eb7..a430a4eb7 100755
--- a/patches/SDL2_ttf-2.0.15/autogen.sh
+++ b/patches/SDL2_ttf-2.22.0/autogen.sh
diff --git a/patches/SDL2_ttf-2.0.15/series b/patches/SDL2_ttf-2.22.0/series
index 89c7959a2..89c7959a2 100644
--- a/patches/SDL2_ttf-2.0.15/series
+++ b/patches/SDL2_ttf-2.22.0/series
diff --git a/patches/acl-2.2.53/0001-Switch-to-sys-xattr.h.patch b/patches/acl-2.3.1/0001-Switch-to-sys-xattr.h.patch
index da061a087..3d64b9ba9 100644
--- a/patches/acl-2.2.53/0001-Switch-to-sys-xattr.h.patch
+++ b/patches/acl-2.3.1/0001-Switch-to-sys-xattr.h.patch
@@ -16,11 +16,11 @@ behind.
create mode 100644 libacl/error_context.h
diff --git a/configure.ac b/configure.ac
-index 92d6faac1913..28ef085f32a0 100644
+index 4abb9933948a..5915ee3e492c 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -46,8 +46,8 @@ dnl Automatically increment the revision for every release.
- LT_REVISION=$(echo "${PACKAGE_VERSION}" | tr -d .)
+@@ -51,8 +51,8 @@ fi
+ LT_REVISION=$(printf "%d%d%02d" "$1" "$2" "$3")
AC_SUBST(LT_REVISION)
-AC_PACKAGE_NEED_ATTR_ERROR_H
diff --git a/patches/acl-2.2.53/autogen.sh b/patches/acl-2.3.1/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/acl-2.2.53/autogen.sh
+++ b/patches/acl-2.3.1/autogen.sh
diff --git a/patches/acl-2.2.53/series b/patches/acl-2.3.1/series
index 5780f8222..5780f8222 100644
--- a/patches/acl-2.2.53/series
+++ b/patches/acl-2.3.1/series
diff --git a/patches/aiosqlite-0.18.0/0001-add-setup.py.patch b/patches/aiosqlite-0.18.0/0001-add-setup.py.patch
new file mode 100644
index 000000000..b7ef9455e
--- /dev/null
+++ b/patches/aiosqlite-0.18.0/0001-add-setup.py.patch
@@ -0,0 +1,25 @@
+From 0e7a0cafda6599d4af114fc0154a90b8786af7c6 Mon Sep 17 00:00:00 2001
+From: Artur Wiebe <artur@4wiebe.de>
+Date: Thu, 13 Apr 2023 16:47:50 +0200
+Subject: [PATCH] add setup.py
+
+---
+ setup.py | 6 ++++++
+ 1 file changed, 6 insertions(+)
+ create mode 100644 setup.py
+
+diff --git a/setup.py b/setup.py
+new file mode 100644
+index 0000000..358320c
+--- /dev/null
++++ b/setup.py
+@@ -0,0 +1,6 @@
++from setuptools import setup
++
++setup(
++ name='aiosqlite',
++ packages=['aiosqlite'],
++)
+--
+2.40.0
+
diff --git a/patches/aiosqlite-0.18.0/series b/patches/aiosqlite-0.18.0/series
new file mode 100644
index 000000000..737b1f8cb
--- /dev/null
+++ b/patches/aiosqlite-0.18.0/series
@@ -0,0 +1 @@
+0001-add-setup.py.patch
diff --git a/patches/alsa-lib-1.2.1.2/0001-add-largefile-support.patch b/patches/alsa-lib-1.2.1.2/0001-add-largefile-support.patch
deleted file mode 100644
index d6dce8fad..000000000
--- a/patches/alsa-lib-1.2.1.2/0001-add-largefile-support.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From: Lucas Stach <l.stach@pengutronix.de>
-Date: Tue, 17 Oct 2017 12:29:22 +0200
-Subject: [PATCH] add largefile support
-
-Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
----
- configure.ac | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index 119ef6005103..e9b4ebe32c03 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -38,6 +38,9 @@ AM_PROG_LIBTOOL
-
- CC_NOUNDEFINED
-
-+dnl enable largefile
-+AC_SYS_LARGEFILE
-+
- dnl Checks for header files.
- AC_HEADER_STDC
- AC_CONFIG_HEADERS(include/config.h)
-@@ -706,6 +709,8 @@ if test ! -L "$srcdir"/include/alsa ; then
- ln -sf . "$srcdir"/include/alsa
- fi
-
-+CPPFLAGS='-include $(CONFIG_HEADER)'
-+
- AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile doc/doxygen.cfg \
- include/Makefile include/sound/Makefile src/Versions src/Makefile \
- src/control/Makefile src/mixer/Makefile \
diff --git a/patches/alsa-lib-1.2.1.2/series b/patches/alsa-lib-1.2.1.2/series
deleted file mode 100644
index f96f3345c..000000000
--- a/patches/alsa-lib-1.2.1.2/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-add-largefile-support.patch
-# 28c8f5e33d509bdb14724d1cc3204a4d - git-ptx-patches magic
diff --git a/patches/alsa-utils-1.2.11/0001-alsactl-info.c-fix-conditionals-on-__ALSA_PCM_H-and-.patch b/patches/alsa-utils-1.2.11/0001-alsactl-info.c-fix-conditionals-on-__ALSA_PCM_H-and-.patch
new file mode 100644
index 000000000..6f4fe5848
--- /dev/null
+++ b/patches/alsa-utils-1.2.11/0001-alsactl-info.c-fix-conditionals-on-__ALSA_PCM_H-and-.patch
@@ -0,0 +1,103 @@
+From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+Date: Sun, 17 Jul 2022 19:22:40 +0200
+Subject: [PATCH] alsactl/info.c: fix conditionals on __ALSA_PCM_H and
+ __ALSA_RAWMIDI_H
+
+Commit bbc74a61ac7c35e506c3d7f76ecf943cb55736a6 ("alsactl: implement
+'info' command") implemented an alsactl info command. In this
+implementation, there was an attempt to properly address optional
+features from alsa-lib by using conditions on __ALSA_PCM_H,
+__ALSA_RAWMIDI_H.
+
+Unfortunately, this attempt does not work entirely: only the code
+inside pcm_device_list(), rawmidi_device_list() was conditionally
+compiled, but their very prototype also use type definitions provided
+in pcm.h and rawmidi.h. So really, it's the entire function that needs
+to be conditionally implemented.
+
+Also, snd_rawmidi_stream_name() was not handled properly, for the same
+reason.
+
+This commit implements pcm_device_list() only if __ALSA_PCM_H is
+defined, and implements snd_rawmidi_stream_name() and
+rawmidi_device_list() only if __ALSA_RAWMIDI_H is defined.
+
+general_card_info() is modified to not call the PCM or raw MIDI
+functions when support is not available.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+---
+ alsactl/info.c | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/alsactl/info.c b/alsactl/info.c
+index 1d648d870381..aeff16babb19 100644
+--- a/alsactl/info.c
++++ b/alsactl/info.c
+@@ -22,9 +22,9 @@
+ #include "aconfig.h"
+ #include "alsactl.h"
+
++#ifdef __ALSA_PCM_H
+ static int pcm_device_list(snd_ctl_t *ctl, snd_pcm_stream_t stream, bool *first)
+ {
+-#ifdef __ALSA_PCM_H
+ int err, dev, idx;
+ unsigned int count;
+ snd_pcm_info_t *pcminfo;
+@@ -76,10 +76,12 @@ static int pcm_device_list(snd_ctl_t *ctl, snd_pcm_stream_t stream, bool *first)
+ idx, snd_pcm_info_get_subdevice_name(pcminfo));
+ }
+ }
+-#endif
++
+ return 0;
+ }
++#endif
+
++#ifdef __ALSA_RAWMIDI_H
+ static const char *snd_rawmidi_stream_name(snd_rawmidi_stream_t stream)
+ {
+ if (stream == SND_RAWMIDI_STREAM_INPUT)
+@@ -91,7 +93,6 @@ static const char *snd_rawmidi_stream_name(snd_rawmidi_stream_t stream)
+
+ static int rawmidi_device_list(snd_ctl_t *ctl, snd_rawmidi_stream_t stream, bool *first)
+ {
+-#ifdef __ALSA_RAWMIDI_H
+ int err, dev, idx;
+ unsigned int count;
+ snd_rawmidi_info_t *info;
+@@ -143,9 +144,10 @@ static int rawmidi_device_list(snd_ctl_t *ctl, snd_rawmidi_stream_t stream, bool
+ idx, snd_rawmidi_info_get_subdevice_name(info));
+ }
+ }
+-#endif
++
+ return 0;
+ }
++#endif
+
+ static int hwdep_device_list(snd_ctl_t *ctl)
+ {
+@@ -228,17 +230,21 @@ int general_card_info(int cardno)
+ }
+ err = card_info(ctl);
+
++#ifdef __ALSA_PCM_H
+ first = true;
+ if (err >= 0)
+ err = pcm_device_list(ctl, SND_PCM_STREAM_PLAYBACK, &first);
+ if (err >= 0)
+ err = pcm_device_list(ctl, SND_PCM_STREAM_CAPTURE, &first);
++#endif
+
++#ifdef __ALSA_RAWMIDI_H
+ first = true;
+ if (err >= 0)
+ err = rawmidi_device_list(ctl, SND_RAWMIDI_STREAM_INPUT, &first);
+ if (err >= 0)
+ err = rawmidi_device_list(ctl, SND_RAWMIDI_STREAM_OUTPUT, &first);
++#endif
+
+ if (err >= 0)
+ err = hwdep_device_list(ctl);
diff --git a/patches/alsa-utils-1.2.11/series b/patches/alsa-utils-1.2.11/series
new file mode 100644
index 000000000..b39a77d00
--- /dev/null
+++ b/patches/alsa-utils-1.2.11/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-alsactl-info.c-fix-conditionals-on-__ALSA_PCM_H-and-.patch
+# 33c3f6b9e58007dd7e241f57feb385ac - git-ptx-patches magic
diff --git a/patches/apitrace-11.1/0001-HACK-don-t-check-for-submodules-for-external-depende.patch b/patches/apitrace-11.1/0001-HACK-don-t-check-for-submodules-for-external-depende.patch
new file mode 100644
index 000000000..e174b1439
--- /dev/null
+++ b/patches/apitrace-11.1/0001-HACK-don-t-check-for-submodules-for-external-depende.patch
@@ -0,0 +1,26 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Tue, 28 Nov 2023 17:54:13 +0100
+Subject: [PATCH] HACK: don't check for submodules for external dependencies
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ thirdparty/CMakeLists.txt | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt
+index 7eae7e55da3e..ceb9305b44a4 100644
+--- a/thirdparty/CMakeLists.txt
++++ b/thirdparty/CMakeLists.txt
+@@ -15,12 +15,8 @@ endfunction ()
+
+ set (SUBMODULES_MISSING FALSE)
+ foreach (path IN ITEMS
+- brotli/LICENSE
+- gtest/googletest/LICENSE
+ libbacktrace/LICENSE
+- libpng/LICENSE
+ snappy/COPYING
+- zlib/README
+ )
+ if (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${path}")
+ message (SEND_ERROR "error: ${CMAKE_CURRENT_SOURCE_DIR}/${path} does not exist")
diff --git a/patches/apitrace-11.1/0002-HACK-don-t-do-dpkg-architecture-magic.patch b/patches/apitrace-11.1/0002-HACK-don-t-do-dpkg-architecture-magic.patch
new file mode 100644
index 000000000..0a456973b
--- /dev/null
+++ b/patches/apitrace-11.1/0002-HACK-don-t-do-dpkg-architecture-magic.patch
@@ -0,0 +1,32 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Tue, 28 Nov 2023 18:15:18 +0100
+Subject: [PATCH] HACK: don't do dpkg-architecture magic
+
+We don't want any architecture specific subdir and dpkg-architecture may
+not be available, so this is not deterministic anyways.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ CMakeLists.txt | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a863b47cabcf..3d8b5811ebe2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -425,15 +425,6 @@ endif ()
+ ##############################################################################
+ # Installation directories
+
+-if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
+- # Debian multiarch support
+- execute_process(COMMAND dpkg-architecture -qDEB_HOST_MULTIARCH
+- OUTPUT_VARIABLE ARCH_SUBDIR
+- ERROR_QUIET
+- OUTPUT_STRIP_TRAILING_WHITESPACE
+- )
+-endif()
+-
+ if (WIN32 OR APPLE)
+ # On Windows/MacOSX, applications are usually installed on a directory of
+ # their own
diff --git a/patches/apitrace-11.1/series b/patches/apitrace-11.1/series
new file mode 100644
index 000000000..d4c24c917
--- /dev/null
+++ b/patches/apitrace-11.1/series
@@ -0,0 +1,5 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-HACK-don-t-check-for-submodules-for-external-depende.patch
+0002-HACK-don-t-do-dpkg-architecture-magic.patch
+# d781b7ce7b411ab6ab663c32f56ed491 - git-ptx-patches magic
diff --git a/patches/apitrace-9.0/0001-Use-CMAKE_INSTALL_LIBDIR-for-LIB_INSTALL_DIR.patch b/patches/apitrace-9.0/0001-Use-CMAKE_INSTALL_LIBDIR-for-LIB_INSTALL_DIR.patch
deleted file mode 100644
index f2bf4d46b..000000000
--- a/patches/apitrace-9.0/0001-Use-CMAKE_INSTALL_LIBDIR-for-LIB_INSTALL_DIR.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Mon, 29 Apr 2019 20:32:04 +0200
-Subject: [PATCH] Use CMAKE_INSTALL_LIBDIR for LIB_INSTALL_DIR
-
-Respect the libdir cmake already set up for us instead of using
-debian-specific multiarch paths.
-
-Patch was rebased multiple times from 4.0 to 9.0 now.
-
-Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
----
- CMakeLists.txt | 17 ++---------------
- 1 file changed, 2 insertions(+), 15 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 19316e604286..6c3c4b85c19c 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -438,15 +438,6 @@ endif ()
- ##############################################################################
- # Installation directories
-
--if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
-- # Debian multiarch support
-- execute_process(COMMAND dpkg-architecture -qDEB_HOST_MULTIARCH
-- OUTPUT_VARIABLE ARCH_SUBDIR
-- ERROR_QUIET
-- OUTPUT_STRIP_TRAILING_WHITESPACE
-- )
--endif()
--
- if (WIN32 OR APPLE)
- # On Windows/MacOSX, applications are usually installed on a directory of
- # their own
-@@ -455,12 +446,8 @@ if (WIN32 OR APPLE)
- set (LIB_ARCH_INSTALL_DIR lib)
- else ()
- set (DOC_DEFAULT_INSTALL_DIR share/doc/${CMAKE_PROJECT_NAME})
-- set (LIB_INSTALL_DIR lib${LIB_SUFFIX}/${CMAKE_PROJECT_NAME})
-- if (ARCH_SUBDIR)
-- set (LIB_ARCH_INSTALL_DIR lib/${ARCH_SUBDIR}/${CMAKE_PROJECT_NAME})
-- else ()
-- set (LIB_ARCH_INSTALL_DIR lib${LIB_SUFFIX}/${CMAKE_PROJECT_NAME})
-- endif ()
-+ set (LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/${CMAKE_PROJECT_NAME})
-+ set (LIB_ARCH_INSTALL_DIR ${LIB_INSTALL_DIR})
- endif ()
-
- # Allow customization of the doc installation dir (Slackware uses different
diff --git a/patches/apitrace-9.0/series b/patches/apitrace-9.0/series
deleted file mode 100644
index c75669299..000000000
--- a/patches/apitrace-9.0/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Use-CMAKE_INSTALL_LIBDIR-for-LIB_INSTALL_DIR.patch
-# e6b6e6297e24d182be6d8261d1509250 - git-ptx-patches magic
diff --git a/patches/at-3.1.12/0001-configure.ac-remove-manual-compiler-check-with-AC_TR.patch b/patches/at-3.1.12/0001-configure.ac-remove-manual-compiler-check-with-AC_TR.patch
deleted file mode 100644
index 9e6992294..000000000
--- a/patches/at-3.1.12/0001-configure.ac-remove-manual-compiler-check-with-AC_TR.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From a182f18fa3b9fb3dd817b601b51c758f9a77f407 Mon Sep 17 00:00:00 2001
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-Date: Tue, 1 Dec 2009 17:08:14 +0100
-Subject: [PATCH 1/5] configure.ac: remove manual compiler check with AC_TRY_RUN
-
-AC_TRY_RUN breaks cross compilation, so remove it. autotools will take
-care about a working (cross-) compiler.
-
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- configure.ac | 6 ------
- 1 files changed, 0 insertions(+), 6 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index a8c2a14..997a37f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -38,12 +38,6 @@ case "$host" in
- AC_MSG_RESULT(no)
- ;;
- esac
--AC_MSG_CHECKING(Trying to compile a trivial ANSI C program)
--AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
-- AC_MSG_RESULT(yes),
-- AC_MSG_RESULT(no)
-- AC_MSG_ERROR(Could not compile and run even a trivial ANSI C program - check CC.),
-- AC_MSG_ERROR(Could not compile and run even a trivial ANSI C program - check CC.))
-
- AC_MSG_CHECKING(__attribute__((noreturn)))
- AC_TRY_COMPILE([], [void __attribute__((noreturn)) panic(void);],
---
-1.6.5.3
-
diff --git a/patches/at-3.1.12/0002-configure.ac-convert-AC_TRY_COMPILE-AC_COMPILE_IFELS.patch b/patches/at-3.1.12/0002-configure.ac-convert-AC_TRY_COMPILE-AC_COMPILE_IFELS.patch
deleted file mode 100644
index ab6de4428..000000000
--- a/patches/at-3.1.12/0002-configure.ac-convert-AC_TRY_COMPILE-AC_COMPILE_IFELS.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From e12c96cccab550eda31cf7bb1dedddd3670ffe69 Mon Sep 17 00:00:00 2001
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-Date: Tue, 1 Dec 2009 17:22:22 +0100
-Subject: [PATCH 2/5] configure.ac: convert AC_TRY_COMPILE -> AC_COMPILE_IFELSE
-
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- configure.ac | 10 +++++-----
- 1 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 997a37f..cab80ed 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -40,11 +40,11 @@ case "$host" in
- esac
-
- AC_MSG_CHECKING(__attribute__((noreturn)))
--AC_TRY_COMPILE([], [void __attribute__((noreturn)) panic(void);],
-- AC_MSG_RESULT(yes)
-- AC_DEFINE(HAVE_ATTRIBUTE_NORETURN, 1,
-- [Define to 1 if compiler supports __attribute__((noreturn))]),
-- AC_MSG_RESULT(no)
-+AC_COMPILE_IFELSE(
-+ [AC_LANG_PROGRAM([[]], [[void __attribute__((noreturn)) panic(void);]])],
-+ [AC_MSG_RESULT(yes)
-+ AC_DEFINE(HAVE_ATTRIBUTE_NORETURN, 1, Define to 1 if compiler supports __attribute__((noreturn)))],
-+ [AC_MSG_RESULT(no)]
- )
- dnl Checks for libraries.
-
---
-1.6.5.3
-
diff --git a/patches/at-3.1.12/0003-Makefile.in-add-LDFLAGS-to-linking-stage.patch b/patches/at-3.1.12/0003-Makefile.in-add-LDFLAGS-to-linking-stage.patch
deleted file mode 100644
index e1ab3d376..000000000
--- a/patches/at-3.1.12/0003-Makefile.in-add-LDFLAGS-to-linking-stage.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 8720a71757f3626bf3bbc3a7aa2185e6387e5689 Mon Sep 17 00:00:00 2001
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-Date: Tue, 1 Dec 2009 20:37:31 +0100
-Subject: [PATCH 3/5] Makefile.in: add LDFLAGS to linking stage
-
-The linking stage ignores the LDFLAGS, this breaks if the flex library
-lives in a non standard location.
-
-This patch add LDFLAGS to both "at" and "atd" linking stage.
-
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- Makefile.in | 4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index dae6b7d..b766bbb 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -65,13 +65,13 @@ LIST = Filelist Filelist.asc
- all: at atd atrun
-
- at: $(ATOBJECTS)
-- $(CC) $(CFLAGS) -o at $(ATOBJECTS) $(LIBS) $(LEXLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o at $(ATOBJECTS) $(LIBS) $(LEXLIB)
- rm -f $(CLONES)
- $(LN_S) -f at atq
- $(LN_S) -f at atrm
-
- atd: $(RUNOBJECTS)
-- $(CC) $(CFLAGS) -o atd $(RUNOBJECTS) $(LIBS) $(PAMLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o atd $(RUNOBJECTS) $(LIBS) $(PAMLIB)
-
- y.tab.c y.tab.h: parsetime.y
- $(YACC) -d parsetime.y
---
-1.6.5.3
-
diff --git a/patches/at-3.1.12/0005-Makefile.in-replace-IROOT-by-DESTDIR.patch b/patches/at-3.1.12/0005-Makefile.in-replace-IROOT-by-DESTDIR.patch
deleted file mode 100644
index 6a295e37c..000000000
--- a/patches/at-3.1.12/0005-Makefile.in-replace-IROOT-by-DESTDIR.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 195d30e2e01fe2f91ed3bdaeec3982aa66b309dd Mon Sep 17 00:00:00 2001
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-Date: Tue, 1 Dec 2009 20:57:45 +0100
-Subject: [PATCH 5/5] Makefile.in: replace IROOT by DESTDIR
-
-This patch replaces IROOT by DESTDIR, which is the autotools standard
-variable. For backwards compatibilty IROOT overwrites the DESTDIR.
-
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- Makefile.in | 64 +++++++++++++++++++++++++++++++-----------------------------
- 1 file changed, 34 insertions(+), 30 deletions(-)
-
-Index: at-3.1.12/Makefile.in
-===================================================================
---- at-3.1.12.orig/Makefile.in
-+++ at-3.1.12/Makefile.in
-@@ -16,6 +16,10 @@ docdir = $(prefix)/doc
- atdocdir = $(docdir)/at
- etcdir = @ETCDIR@
-
-+ifdef IROOT
-+DESTDIR = $(IROOT)
-+endif
-+
- DAEMON_USERNAME = @DAEMON_USERNAME@
- DAEMON_GROUPNAME= @DAEMON_GROUPNAME@
- LOADAVG_MX = @LOADAVG_MX@
-@@ -86,38 +90,38 @@ atrun: atrun.in
- $(CC) -c $(CFLAGS) $(DEFS) $*.c
-
- install: all
-- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(etcdir)
-- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(bindir)
-- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(sbindir)
-- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(docdir)
-- $(INSTALL) -g root -o root -m 755 -d $(IROOT)$(atdocdir)
-- $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 755 -d $(IROOT)$(ATSPOOL_DIR) $(IROOT)$(ATJOB_DIR)
-- chmod 1770 $(IROOT)$(ATSPOOL_DIR) $(IROOT)$(ATJOB_DIR)
-- touch $(IROOT)$(LFILE)
-- chmod 600 $(IROOT)$(LFILE)
-- chown $(DAEMON_USERNAME):$(DAEMON_GROUPNAME) $(IROOT)$(LFILE)
-- test -f $(IROOT)$(etcdir)/at.allow || test -f $(IROOT)$(etcdir)/at.deny || $(INSTALL) -o root -g $(DAEMON_GROUPNAME) -m 640 at.deny $(IROOT)$(etcdir)/
-- $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 6755 -s at $(IROOT)$(bindir)
-- $(LN_S) -f at $(IROOT)$(bindir)/atq
-- $(LN_S) -f at $(IROOT)$(bindir)/atrm
-- $(INSTALL) -g root -o root -m 755 batch $(IROOT)$(bindir)
-- $(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man1dir)
-- $(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man5dir)
-- $(INSTALL) -d -o root -g root -m 755 $(IROOT)$(man8dir)
-- $(INSTALL) -g root -o root -m 755 -s atd $(IROOT)$(sbindir)
-- $(INSTALL) -g root -o root -m 755 atrun $(IROOT)$(sbindir)
-- $(INSTALL) -g root -o root -m 644 at.1 $(IROOT)$(man1dir)/
-- cd $(IROOT)$(man1dir) && $(LN_S) -f at.1 atq.1 && $(LN_S) -f at.1 batch.1 && $(LN_S) -f at.1 atrm.1
-- $(INSTALL) -g root -o root -m 644 atd.8 $(IROOT)$(man8dir)/
-+ $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(etcdir)
-+ $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(bindir)
-+ $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(sbindir)
-+ $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(docdir)
-+ $(INSTALL) -g root -o root -m 755 -d $(DESTDIR)$(atdocdir)
-+ $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 755 -d $(DESTDIR)$(ATSPOOL_DIR) $(DESTDIR)$(ATJOB_DIR)
-+ chmod 1770 $(DESTDIR)$(ATSPOOL_DIR) $(DESTDIR)$(ATJOB_DIR)
-+ touch $(DESTDIR)$(LFILE)
-+ chmod 600 $(DESTDIR)$(LFILE)
-+ chown $(DAEMON_USERNAME):$(DAEMON_GROUPNAME) $(DESTDIR)$(LFILE)
-+ test -f $(DESTDIR)$(etcdir)/at.allow || test -f $(DESTDIR)$(etcdir)/at.deny || $(INSTALL) -o root -g $(DAEMON_GROUPNAME) -m 640 at.deny $(DESTDIR)$(etcdir)/
-+ $(INSTALL) -g $(DAEMON_GROUPNAME) -o $(DAEMON_USERNAME) -m 6755 -s at $(DESTDIR)$(bindir)
-+ $(LN_S) -f at $(DESTDIR)$(bindir)/atq
-+ $(LN_S) -f at $(DESTDIR)$(bindir)/atrm
-+ $(INSTALL) -g root -o root -m 755 batch $(DESTDIR)$(bindir)
-+ $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man1dir)
-+ $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man5dir)
-+ $(INSTALL) -d -o root -g root -m 755 $(DESTDIR)$(man8dir)
-+ $(INSTALL) -g root -o root -m 755 -s atd $(DESTDIR)$(sbindir)
-+ $(INSTALL) -g root -o root -m 755 atrun $(DESTDIR)$(sbindir)
-+ $(INSTALL) -g root -o root -m 644 at.1 $(DESTDIR)$(man1dir)/
-+ cd $(DESTDIR)$(man1dir) && $(LN_S) -f at.1 atq.1 && $(LN_S) -f at.1 batch.1 && $(LN_S) -f at.1 atrm.1
-+ $(INSTALL) -g root -o root -m 644 atd.8 $(DESTDIR)$(man8dir)/
- sed "s,\$${exec_prefix},$(exec_prefix),g" <atrun.8>tmpman
-- $(INSTALL) -g root -o root -m 644 tmpman $(IROOT)$(man8dir)/atrun.8
-+ $(INSTALL) -g root -o root -m 644 tmpman $(DESTDIR)$(man8dir)/atrun.8
- rm -f tmpman
-- $(INSTALL) -g root -o root -m 644 at_allow.5 $(IROOT)$(man5dir)/
-- cd $(IROOT)$(man5dir) && $(LN_S) -f at_allow.5 at_deny.5
-- $(INSTALL) -g root -o root -m 644 $(DOCS) $(IROOT)$(atdocdir)
-- rm -f $(IROOT)$(mandir)/cat1/at.1* $(IROOT)$(mandir)/cat1/batch.1* \
-- $(IROOT)$(mandir)/cat1/atq.1*
-- rm -f $(IROOT)$(mandir)/cat1/atd.8*
-+ $(INSTALL) -g root -o root -m 644 at_allow.5 $(DESTDIR)$(man5dir)/
-+ cd $(DESTDIR)$(man5dir) && $(LN_S) -f at_allow.5 at_deny.5
-+ $(INSTALL) -g root -o root -m 644 $(DOCS) $(DESTDIR)$(atdocdir)
-+ rm -f $(DESTDIR)$(mandir)/cat1/at.1* $(DESTDIR)$(mandir)/cat1/batch.1* \
-+ $(DESTDIR)$(mandir)/cat1/atq.1*
-+ rm -f $(DESTDIR)$(mandir)/cat1/atd.8*
-
- dist: checkin $(DIST) $(LIST) Filelist.asc
- (cd ..; tar cf - `for a in $(DIST) $(LIST); do echo at-$(VERSION)/$$a; done` |\
diff --git a/patches/at-3.1.12/series b/patches/at-3.1.12/series
deleted file mode 100644
index 18e752288..000000000
--- a/patches/at-3.1.12/series
+++ /dev/null
@@ -1,4 +0,0 @@
-0001-configure.ac-remove-manual-compiler-check-with-AC_TR.patch
-0002-configure.ac-convert-AC_TRY_COMPILE-AC_COMPILE_IFELS.patch
-0003-Makefile.in-add-LDFLAGS-to-linking-stage.patch
-0005-Makefile.in-replace-IROOT-by-DESTDIR.patch
diff --git a/patches/aumix-2.9.1/0001-src-makefile-don-t-use-system-dirs.patch b/patches/aumix-2.9.1/0001-src-makefile-don-t-use-system-dirs.patch
deleted file mode 100644
index 93a146c44..000000000
--- a/patches/aumix-2.9.1/0001-src-makefile-don-t-use-system-dirs.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Thu, 10 Jan 2013 14:42:21 +0100
-Subject: [PATCH] src/makefile: don't use system dirs
-
-Aumix's src/Makefile.am incorrect adds @includedir@ to the list of
-include paths and @libdir@ to the list of libraries paths. This is
-incorrect, as @includedir@ and @libdir@ are respectively /usr/include
-and /usr/lib, even in cross-compilation mode.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- src/Makefile.am | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index d56c3e6..caeca31 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -9,9 +9,8 @@ aumix_SOURCES = common.c curses.c dummy.c gpm-xterm.c gtk.c interactive.c \
- mouse.c common.h curses.h gpm-xterm.h gtk.h interactive.h \
- mouse.h play.xpm record.xpm
- localedir = $(datadir)/locale
--INCLUDES = -I../intl -DLOCALEDIR=\"$(localedir)\" -I@includedir@
-+INCLUDES = -I../intl -DLOCALEDIR=\"$(localedir)\"
- AM_CFLAGS = @CFLAGS@ @GLIB_CFLAGS@ @GTK_CFLAGS@
--LDADD = -L@libdir@
- LIBS = @LIBS@ @GTK_LIBS@ @LIBINTL@
- DEFS = @DEFS@
-
diff --git a/patches/aumix-2.9.1/series b/patches/aumix-2.9.1/series
deleted file mode 100644
index 69f7c7e23..000000000
--- a/patches/aumix-2.9.1/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-src-makefile-don-t-use-system-dirs.patch
-# 2027ec073964554935db98ccad0f55ea - git-ptx-patches magic
diff --git a/patches/autogen.sh b/patches/autogen.sh
index 26ef3c670..e9eb29b95 100755
--- a/patches/autogen.sh
+++ b/patches/autogen.sh
@@ -6,6 +6,7 @@ if [ -n "${pkg_stamp}" ] && ! [[ " ${pkg_build_deps} " =~ " host-gettext " ]]; t
echo "No host-gettext dependency. Faking autopoint: AUTOPOINT=true."
export AUTOPOINT=true
fi
+export GTKDOCIZE=true
aclocal $ACLOCAL_FLAGS
diff --git a/patches/autossh-1.4c/0001-Make-install-rule-friendly-towards-packaging-with-DE.patch b/patches/autossh-1.4c/0001-Make-install-rule-friendly-towards-packaging-with-DE.patch
deleted file mode 100644
index 96fca563a..000000000
--- a/patches/autossh-1.4c/0001-Make-install-rule-friendly-towards-packaging-with-DE.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From: Jon Ringle <jringle@gridpoint.com>
-Date: Fri, 27 Jun 2014 16:39:41 -0400
-Subject: [PATCH] Make install rule friendly towards packaging with $DESTDIR
-
-Signed-off-by: Jon Ringle <jringle@gridpoint.com>
----
- Makefile.in | 30 +++++++++++++++---------------
- 1 file changed, 15 insertions(+), 15 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index fb7cc1d..a8e7a7e 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -45,18 +45,18 @@ distclean: allclean
- - /bin/rm -f Makefile
-
- install: $(TARGET)
-- mkdir -p -m 755 $(bindir)
-- mkdir -p -m 755 $(prefix)/share/doc/autossh
-- mkdir -p -m 755 $(datadir)/examples/autossh
-- mkdir -p -m 755 $(mandir)/man1
-- cp $(TARGET) $(bindir)
-- cp CHANGES README $(datadir)/doc/autossh
-- cp autossh.host $(datadir)/examples/autossh
-- cp rscreen $(datadir)/examples/autossh
-- cp autossh.1 $(mandir)/man1
-- chmod 755 $(bindir)/$(TARGET)
-- chmod 644 $(datadir)/doc/autossh/CHANGES
-- chmod 644 $(datadir)/doc/autossh/README
-- chmod 644 $(datadir)/examples/autossh/autossh.host
-- chmod 644 $(datadir)/examples/autossh/rscreen
-- chmod 644 $(mandir)/man1/autossh.1
-+ mkdir -p -m 755 $(DESTDIR)$(bindir)
-+ mkdir -p -m 755 $(DESTDIR)$(prefix)/share/doc/autossh
-+ mkdir -p -m 755 $(DESTDIR)$(datadir)/examples/autossh
-+ mkdir -p -m 755 $(DESTDIR)$(mandir)/man1
-+ cp $(TARGET) $(DESTDIR)$(bindir)
-+ cp CHANGES README $(DESTDIR)$(datadir)/doc/autossh
-+ cp autossh.host $(DESTDIR)$(datadir)/examples/autossh
-+ cp rscreen $(DESTDIR)$(datadir)/examples/autossh
-+ cp autossh.1 $(DESTDIR)$(mandir)/man1
-+ chmod 755 $(DESTDIR)$(bindir)/$(TARGET)
-+ chmod 644 $(DESTDIR)$(datadir)/doc/autossh/CHANGES
-+ chmod 644 $(DESTDIR)$(datadir)/doc/autossh/README
-+ chmod 644 $(DESTDIR)$(datadir)/examples/autossh/autossh.host
-+ chmod 644 $(DESTDIR)$(datadir)/examples/autossh/rscreen
-+ chmod 644 $(DESTDIR)$(mandir)/man1/autossh.1
diff --git a/patches/autossh-1.4c/series b/patches/autossh-1.4c/series
deleted file mode 100644
index 29f971c73..000000000
--- a/patches/autossh-1.4c/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Make-install-rule-friendly-towards-packaging-with-DE.patch
-# ecdd87ec5c25c56d421024daf8acf722 - git-ptx-patches magic
diff --git a/patches/bash-4.3.30/0001-Bash-4.3-patch-31.patch b/patches/bash-4.3.30/0001-Bash-4.3-patch-31.patch
deleted file mode 100644
index d9a187dcb..000000000
--- a/patches/bash-4.3.30/0001-Bash-4.3-patch-31.patch
+++ /dev/null
@@ -1,5467 +0,0 @@
-From: Chet Ramey <chet.ramey@case.edu>
-Date: Thu, 15 Jan 2015 10:20:04 -0500
-Subject: [PATCH] Bash-4.3 patch 31
-
----
- patchlevel.h | 2 +-
- subst.h | 1 +
- variables.c | 32 +-
- variables.c.orig | 5365 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 5397 insertions(+), 3 deletions(-)
- create mode 100644 variables.c.orig
-
-diff --git a/patchlevel.h b/patchlevel.h
-index e5dde5245275..0ad46aafbdd9 100644
---- a/patchlevel.h
-+++ b/patchlevel.h
-@@ -25,6 +25,6 @@
- regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh
- looks for to find the patch level (for the sccs version string). */
-
--#define PATCHLEVEL 30
-+#define PATCHLEVEL 31
-
- #endif /* _PATCHLEVEL_H_ */
-diff --git a/subst.h b/subst.h
-index cedaf8b6b444..1c300ab96b04 100644
---- a/subst.h
-+++ b/subst.h
-@@ -47,6 +47,7 @@
- #define ASS_MKASSOC 0x0004
- #define ASS_MKGLOBAL 0x0008 /* force global assignment */
- #define ASS_NAMEREF 0x0010 /* assigning to nameref variable */
-+#define ASS_FROMREF 0x0020 /* assigning from value of nameref variable */
-
- /* Flags for the string extraction functions. */
- #define SX_NOALLOC 0x0001 /* just skip; don't return substring */
-diff --git a/variables.c b/variables.c
-index 7c82710e0f0b..81b7877e32e8 100644
---- a/variables.c
-+++ b/variables.c
-@@ -2516,10 +2516,27 @@ bind_variable_internal (name, value, table, hflags, aflags)
- HASH_TABLE *table;
- int hflags, aflags;
- {
-- char *newval;
-+ char *newname, *newval;
- SHELL_VAR *entry;
-+#if defined (ARRAY_VARS)
-+ arrayind_t ind;
-+ char *subp;
-+ int sublen;
-+#endif
-
-+ newname = 0;
-+#if defined (ARRAY_VARS)
-+ if ((aflags & ASS_FROMREF) && (hflags & HASH_NOSRCH) == 0 && valid_array_reference (name))
-+ {
-+ newname = array_variable_name (name, &subp, &sublen);
-+ if (newname == 0)
-+ return (SHELL_VAR *)NULL; /* XXX */
-+ entry = hash_lookup (newname, table);
-+ }
-+ else
-+#endif
- entry = (hflags & HASH_NOSRCH) ? (SHELL_VAR *)NULL : hash_lookup (name, table);
-+
- /* Follow the nameref chain here if this is the global variables table */
- if (entry && nameref_p (entry) && (invisible_p (entry) == 0) && table == global_variables->table)
- {
-@@ -2550,6 +2567,16 @@ bind_variable_internal (name, value, table, hflags, aflags)
- var_setvalue (entry, make_variable_value (entry, value, 0));
- }
- }
-+#if defined (ARRAY_VARS)
-+ else if (entry == 0 && newname)
-+ {
-+ entry = make_new_array_variable (newname); /* indexed array by default */
-+ if (entry == 0)
-+ return entry;
-+ ind = array_expand_index (name, subp, sublen);
-+ bind_array_element (entry, ind, value, aflags);
-+ }
-+#endif
- else if (entry == 0)
- {
- entry = make_new_variable (name, table);
-@@ -2670,7 +2697,8 @@ bind_variable (name, value, flags)
- normal. */
- if (nameref_cell (nv) == 0)
- return (bind_variable_internal (nv->name, value, nvc->table, 0, flags));
-- return (bind_variable_internal (nameref_cell (nv), value, nvc->table, 0, flags));
-+ /* XXX - bug here with ref=array[index] */
-+ return (bind_variable_internal (nameref_cell (nv), value, nvc->table, 0, flags|ASS_FROMREF));
- }
- else
- v = nv;
-diff --git a/variables.c.orig b/variables.c.orig
-new file mode 100644
-index 000000000000..7c82710e0f0b
---- /dev/null
-+++ b/variables.c.orig
-@@ -0,0 +1,5365 @@
-+/* variables.c -- Functions for hacking shell variables. */
-+
-+/* Copyright (C) 1987-2013 Free Software Foundation, Inc.
-+
-+ This file is part of GNU Bash, the Bourne Again SHell.
-+
-+ Bash 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.
-+
-+ Bash 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 Bash. If not, see <http://www.gnu.org/licenses/>.
-+*/
-+
-+#include "config.h"
-+
-+#include "bashtypes.h"
-+#include "posixstat.h"
-+#include "posixtime.h"
-+
-+#if defined (__QNX__)
-+# if defined (__QNXNTO__)
-+# include <sys/netmgr.h>
-+# else
-+# include <sys/vc.h>
-+# endif /* !__QNXNTO__ */
-+#endif /* __QNX__ */
-+
-+#if defined (HAVE_UNISTD_H)
-+# include <unistd.h>
-+#endif
-+
-+#include <stdio.h>
-+#include "chartypes.h"
-+#if defined (HAVE_PWD_H)
-+# include <pwd.h>
-+#endif
-+#include "bashansi.h"
-+#include "bashintl.h"
-+
-+#define NEED_XTRACE_SET_DECL
-+
-+#include "shell.h"
-+#include "flags.h"
-+#include "execute_cmd.h"
-+#include "findcmd.h"
-+#include "mailcheck.h"
-+#include "input.h"
-+#include "hashcmd.h"
-+#include "pathexp.h"
-+#include "alias.h"
-+#include "jobs.h"
-+
-+#include "version.h"
-+
-+#include "builtins/getopt.h"
-+#include "builtins/common.h"
-+#include "builtins/builtext.h"
-+
-+#if defined (READLINE)
-+# include "bashline.h"
-+# include <readline/readline.h>
-+#else
-+# include <tilde/tilde.h>
-+#endif
-+
-+#if defined (HISTORY)
-+# include "bashhist.h"
-+# include <readline/history.h>
-+#endif /* HISTORY */
-+
-+#if defined (PROGRAMMABLE_COMPLETION)
-+# include "pcomplete.h"
-+#endif
-+
-+#define TEMPENV_HASH_BUCKETS 4 /* must be power of two */
-+
-+#define ifsname(s) ((s)[0] == 'I' && (s)[1] == 'F' && (s)[2] == 'S' && (s)[3] == '\0')
-+
-+#define BASHFUNC_PREFIX "BASH_FUNC_"
-+#define BASHFUNC_PREFLEN 10 /* == strlen(BASHFUNC_PREFIX */
-+#define BASHFUNC_SUFFIX "%%"
-+#define BASHFUNC_SUFFLEN 2 /* == strlen(BASHFUNC_SUFFIX) */
-+
-+extern char **environ;
-+
-+/* Variables used here and defined in other files. */
-+extern int posixly_correct;
-+extern int line_number, line_number_base;
-+extern int subshell_environment, indirection_level, subshell_level;
-+extern int build_version, patch_level;
-+extern int expanding_redir;
-+extern int last_command_exit_value;
-+extern char *dist_version, *release_status;
-+extern char *shell_name;
-+extern char *primary_prompt, *secondary_prompt;
-+extern char *current_host_name;
-+extern sh_builtin_func_t *this_shell_builtin;
-+extern SHELL_VAR *this_shell_function;
-+extern char *the_printed_command_except_trap;
-+extern char *this_command_name;
-+extern char *command_execution_string;
-+extern time_t shell_start_time;
-+extern int assigning_in_environment;
-+extern int executing_builtin;
-+extern int funcnest_max;
-+
-+#if defined (READLINE)
-+extern int no_line_editing;
-+extern int perform_hostname_completion;
-+#endif
-+
-+/* The list of shell variables that the user has created at the global
-+ scope, or that came from the environment. */
-+VAR_CONTEXT *global_variables = (VAR_CONTEXT *)NULL;
-+
-+/* The current list of shell variables, including function scopes */
-+VAR_CONTEXT *shell_variables = (VAR_CONTEXT *)NULL;
-+
-+/* The list of shell functions that the user has created, or that came from
-+ the environment. */
-+HASH_TABLE *shell_functions = (HASH_TABLE *)NULL;
-+
-+#if defined (DEBUGGER)
-+/* The table of shell function definitions that the user defined or that
-+ came from the environment. */
-+HASH_TABLE *shell_function_defs = (HASH_TABLE *)NULL;
-+#endif
-+
-+/* The current variable context. This is really a count of how deep into
-+ executing functions we are. */
-+int variable_context = 0;
-+
-+/* The set of shell assignments which are made only in the environment
-+ for a single command. */
-+HASH_TABLE *temporary_env = (HASH_TABLE *)NULL;
-+
-+/* Set to non-zero if an assignment error occurs while putting variables
-+ into the temporary environment. */
-+int tempenv_assign_error;
-+
-+/* Some funky variables which are known about specially. Here is where
-+ "$*", "$1", and all the cruft is kept. */
-+char *dollar_vars[10];
-+WORD_LIST *rest_of_args = (WORD_LIST *)NULL;
-+
-+/* The value of $$. */
-+pid_t dollar_dollar_pid;
-+
-+/* Non-zero means that we have to remake EXPORT_ENV. */
-+int array_needs_making = 1;
-+
-+/* The number of times BASH has been executed. This is set
-+ by initialize_variables (). */
-+int shell_level = 0;
-+
-+/* An array which is passed to commands as their environment. It is
-+ manufactured from the union of the initial environment and the
-+ shell variables that are marked for export. */
-+char **export_env = (char **)NULL;
-+static int export_env_index;
-+static int export_env_size;
-+
-+#if defined (READLINE)
-+static int winsize_assignment; /* currently assigning to LINES or COLUMNS */
-+#endif
-+
-+static HASH_TABLE *last_table_searched; /* hash_lookup sets this */
-+
-+/* Some forward declarations. */
-+static void create_variable_tables __P((void));
-+
-+static void set_machine_vars __P((void));
-+static void set_home_var __P((void));
-+static void set_shell_var __P((void));
-+static char *get_bash_name __P((void));
-+static void initialize_shell_level __P((void));
-+static void uidset __P((void));
-+#if defined (ARRAY_VARS)
-+static void make_vers_array __P((void));
-+#endif
-+
-+static SHELL_VAR *null_assign __P((SHELL_VAR *, char *, arrayind_t, char *));
-+#if defined (ARRAY_VARS)
-+static SHELL_VAR *null_array_assign __P((SHELL_VAR *, char *, arrayind_t, char *));
-+#endif
-+static SHELL_VAR *get_self __P((SHELL_VAR *));
-+
-+#if defined (ARRAY_VARS)
-+static SHELL_VAR *init_dynamic_array_var __P((char *, sh_var_value_func_t *, sh_var_assign_func_t *, int));
-+static SHELL_VAR *init_dynamic_assoc_var __P((char *, sh_var_value_func_t *, sh_var_assign_func_t *, int));
-+#endif
-+
-+static SHELL_VAR *assign_seconds __P((SHELL_VAR *, char *, arrayind_t, char *));
-+static SHELL_VAR *get_seconds __P((SHELL_VAR *));
-+static SHELL_VAR *init_seconds_var __P((void));
-+
-+static int brand __P((void));
-+static void sbrand __P((unsigned long)); /* set bash random number generator. */
-+static void seedrand __P((void)); /* seed generator randomly */
-+static SHELL_VAR *assign_random __P((SHELL_VAR *, char *, arrayind_t, char *));
-+static SHELL_VAR *get_random __P((SHELL_VAR *));
-+
-+static SHELL_VAR *assign_lineno __P((SHELL_VAR *, char *, arrayind_t, char *));
-+static SHELL_VAR *get_lineno __P((SHELL_VAR *));
-+
-+static SHELL_VAR *assign_subshell __P((SHELL_VAR *, char *, arrayind_t, char *));
-+static SHELL_VAR *get_subshell __P((SHELL_VAR *));
-+
-+static SHELL_VAR *get_bashpid __P((SHELL_VAR *));
-+
-+#if defined (HISTORY)
-+static SHELL_VAR *get_histcmd __P((SHELL_VAR *));
-+#endif
-+
-+#if defined (READLINE)
-+static SHELL_VAR *get_comp_wordbreaks __P((SHELL_VAR *));
-+static SHELL_VAR *assign_comp_wordbreaks __P((SHELL_VAR *, char *, arrayind_t, char *));
-+#endif
-+
-+#if defined (PUSHD_AND_POPD) && defined (ARRAY_VARS)
-+static SHELL_VAR *assign_dirstack __P((SHELL_VAR *, char *, arrayind_t, char *));
-+static SHELL_VAR *get_dirstack __P((SHELL_VAR *));
-+#endif
-+
-+#if defined (ARRAY_VARS)
-+static SHELL_VAR *get_groupset __P((SHELL_VAR *));
-+
-+static SHELL_VAR *build_hashcmd __P((SHELL_VAR *));
-+static SHELL_VAR *get_hashcmd __P((SHELL_VAR *));
-+static SHELL_VAR *assign_hashcmd __P((SHELL_VAR *, char *, arrayind_t, char *));
-+# if defined (ALIAS)
-+static SHELL_VAR *build_aliasvar __P((SHELL_VAR *));
-+static SHELL_VAR *get_aliasvar __P((SHELL_VAR *));
-+static SHELL_VAR *assign_aliasvar __P((SHELL_VAR *, char *, arrayind_t, char *));
-+# endif
-+#endif
-+
-+static SHELL_VAR *get_funcname __P((SHELL_VAR *));
-+static SHELL_VAR *init_funcname_var __P((void));
-+
-+static void initialize_dynamic_variables __P((void));
-+
-+static SHELL_VAR *hash_lookup __P((const char *, HASH_TABLE *));
-+static SHELL_VAR *new_shell_variable __P((const char *));
-+static SHELL_VAR *make_new_variable __P((const char *, HASH_TABLE *));
-+static SHELL_VAR *bind_variable_internal __P((const char *, char *, HASH_TABLE *, int, int));
-+
-+static void dispose_variable_value __P((SHELL_VAR *));
-+static void free_variable_hash_data __P((PTR_T));
-+
-+static VARLIST *vlist_alloc __P((int));
-+static VARLIST *vlist_realloc __P((VARLIST *, int));
-+static void vlist_add __P((VARLIST *, SHELL_VAR *, int));
-+
-+static void flatten __P((HASH_TABLE *, sh_var_map_func_t *, VARLIST *, int));
-+
-+static int qsort_var_comp __P((SHELL_VAR **, SHELL_VAR **));
-+
-+static SHELL_VAR **vapply __P((sh_var_map_func_t *));
-+static SHELL_VAR **fapply __P((sh_var_map_func_t *));
-+
-+static int visible_var __P((SHELL_VAR *));
-+static int visible_and_exported __P((SHELL_VAR *));
-+static int export_environment_candidate __P((SHELL_VAR *));
-+static int local_and_exported __P((SHELL_VAR *));
-+static int variable_in_context __P((SHELL_VAR *));
-+#if defined (ARRAY_VARS)
-+static int visible_array_vars __P((SHELL_VAR *));
-+#endif
-+
-+static SHELL_VAR *find_nameref_at_context __P((SHELL_VAR *, VAR_CONTEXT *));
-+static SHELL_VAR *find_variable_nameref_context __P((SHELL_VAR *, VAR_CONTEXT *, VAR_CONTEXT **));
-+static SHELL_VAR *find_variable_last_nameref_context __P((SHELL_VAR *, VAR_CONTEXT *, VAR_CONTEXT **));
-+
-+static SHELL_VAR *bind_tempenv_variable __P((const char *, char *));
-+static void push_temp_var __P((PTR_T));
-+static void propagate_temp_var __P((PTR_T));
-+static void dispose_temporary_env __P((sh_free_func_t *));
-+
-+static inline char *mk_env_string __P((const char *, const char *, int));
-+static char **make_env_array_from_var_list __P((SHELL_VAR **));
-+static char **make_var_export_array __P((VAR_CONTEXT *));
-+static char **make_func_export_array __P((void));
-+static void add_temp_array_to_env __P((char **, int, int));
-+
-+static int n_shell_variables __P((void));
-+static int set_context __P((SHELL_VAR *));
-+
-+static void push_func_var __P((PTR_T));
-+static void push_exported_var __P((PTR_T));
-+
-+static inline int find_special_var __P((const char *));
-+
-+static void
-+create_variable_tables ()
-+{
-+ if (shell_variables == 0)
-+ {
-+ shell_variables = global_variables = new_var_context ((char *)NULL, 0);
-+ shell_variables->scope = 0;
-+ shell_variables->table = hash_create (0);
-+ }
-+
-+ if (shell_functions == 0)
-+ shell_functions = hash_create (0);
-+
-+#if defined (DEBUGGER)
-+ if (shell_function_defs == 0)
-+ shell_function_defs = hash_create (0);
-+#endif
-+}
-+
-+/* Initialize the shell variables from the current environment.
-+ If PRIVMODE is nonzero, don't import functions from ENV or
-+ parse $SHELLOPTS. */
-+void
-+initialize_shell_variables (env, privmode)
-+ char **env;
-+ int privmode;
-+{
-+ char *name, *string, *temp_string;
-+ int c, char_index, string_index, string_length, ro;
-+ SHELL_VAR *temp_var;
-+
-+ create_variable_tables ();
-+
-+ for (string_index = 0; string = env[string_index++]; )
-+ {
-+ char_index = 0;
-+ name = string;
-+ while ((c = *string++) && c != '=')
-+ ;
-+ if (string[-1] == '=')
-+ char_index = string - name - 1;
-+
-+ /* If there are weird things in the environment, like `=xxx' or a
-+ string without an `=', just skip them. */
-+ if (char_index == 0)
-+ continue;
-+
-+ /* ASSERT(name[char_index] == '=') */
-+ name[char_index] = '\0';
-+ /* Now, name = env variable name, string = env variable value, and
-+ char_index == strlen (name) */
-+
-+ temp_var = (SHELL_VAR *)NULL;
-+
-+ /* If exported function, define it now. Don't import functions from
-+ the environment in privileged mode. */
-+ if (privmode == 0 && read_but_dont_execute == 0 &&
-+ STREQN (BASHFUNC_PREFIX, name, BASHFUNC_PREFLEN) &&
-+ STREQ (BASHFUNC_SUFFIX, name + char_index - BASHFUNC_SUFFLEN) &&
-+ STREQN ("() {", string, 4))
-+ {
-+ size_t namelen;
-+ char *tname; /* desired imported function name */
-+
-+ namelen = char_index - BASHFUNC_PREFLEN - BASHFUNC_SUFFLEN;
-+
-+ tname = name + BASHFUNC_PREFLEN; /* start of func name */
-+ tname[namelen] = '\0'; /* now tname == func name */
-+
-+ string_length = strlen (string);
-+ temp_string = (char *)xmalloc (namelen + string_length + 2);
-+
-+ memcpy (temp_string, tname, namelen);
-+ temp_string[namelen] = ' ';
-+ memcpy (temp_string + namelen + 1, string, string_length + 1);
-+
-+ /* Don't import function names that are invalid identifiers from the
-+ environment, though we still allow them to be defined as shell
-+ variables. */
-+ if (absolute_program (tname) == 0 && (posixly_correct == 0 || legal_identifier (tname)))
-+ parse_and_execute (temp_string, tname, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD);
-+
-+ if (temp_var = find_function (tname))
-+ {
-+ VSETATTR (temp_var, (att_exported|att_imported));
-+ array_needs_making = 1;
-+ }
-+ else
-+ {
-+ if (temp_var = bind_variable (name, string, 0))
-+ {
-+ VSETATTR (temp_var, (att_exported | att_imported | att_invisible));
-+ array_needs_making = 1;
-+ }
-+ last_command_exit_value = 1;
-+ report_error (_("error importing function definition for `%s'"), tname);
-+ }
-+
-+ /* Restore original suffix */
-+ tname[namelen] = BASHFUNC_SUFFIX[0];
-+ }
-+#if defined (ARRAY_VARS)
-+# if ARRAY_EXPORT
-+ /* Array variables may not yet be exported. */
-+ else if (*string == '(' && string[1] == '[' && string[strlen (string) - 1] == ')')
-+ {
-+ string_length = 1;
-+ temp_string = extract_array_assignment_list (string, &string_length);
-+ temp_var = assign_array_from_string (name, temp_string);
-+ FREE (temp_string);
-+ VSETATTR (temp_var, (att_exported | att_imported));
-+ array_needs_making = 1;
-+ }
-+# endif /* ARRAY_EXPORT */
-+#endif
-+#if 0
-+ else if (legal_identifier (name))
-+#else
-+ else
-+#endif
-+ {
-+ ro = 0;
-+ if (posixly_correct && STREQ (name, "SHELLOPTS"))
-+ {
-+ temp_var = find_variable ("SHELLOPTS");
-+ ro = temp_var && readonly_p (temp_var);
-+ if (temp_var)
-+ VUNSETATTR (temp_var, att_readonly);
-+ }
-+ temp_var = bind_variable (name, string, 0);
-+ if (temp_var)
-+ {
-+ if (legal_identifier (name))
-+ VSETATTR (temp_var, (att_exported | att_imported));
-+ else
-+ VSETATTR (temp_var, (att_exported | att_imported | att_invisible));
-+ if (ro)
-+ VSETATTR (temp_var, att_readonly);
-+ array_needs_making = 1;
-+ }
-+ }
-+
-+ name[char_index] = '=';
-+ /* temp_var can be NULL if it was an exported function with a syntax
-+ error (a different bug, but it still shouldn't dump core). */
-+ if (temp_var && function_p (temp_var) == 0) /* XXX not yet */
-+ {
-+ CACHE_IMPORTSTR (temp_var, name);
-+ }
-+ }
-+
-+ set_pwd ();
-+
-+ /* Set up initial value of $_ */
-+ temp_var = set_if_not ("_", dollar_vars[0]);
-+
-+ /* Remember this pid. */
-+ dollar_dollar_pid = getpid ();
-+
-+ /* Now make our own defaults in case the vars that we think are
-+ important are missing. */
-+ temp_var = set_if_not ("PATH", DEFAULT_PATH_VALUE);
-+#if 0
-+ set_auto_export (temp_var); /* XXX */
-+#endif
-+
-+ temp_var = set_if_not ("TERM", "dumb");
-+#if 0
-+ set_auto_export (temp_var); /* XXX */
-+#endif
-+
-+#if defined (__QNX__)
-+ /* set node id -- don't import it from the environment */
-+ {
-+ char node_name[22];
-+# if defined (__QNXNTO__)
-+ netmgr_ndtostr(ND2S_LOCAL_STR, ND_LOCAL_NODE, node_name, sizeof(node_name));
-+# else
-+ qnx_nidtostr (getnid (), node_name, sizeof (node_name));
-+# endif
-+ temp_var = bind_variable ("NODE", node_name, 0);
-+ set_auto_export (temp_var);
-+ }
-+#endif
-+
-+ /* set up the prompts. */
-+ if (interactive_shell)
-+ {
-+#if defined (PROMPT_STRING_DECODE)
-+ set_if_not ("PS1", primary_prompt);
-+#else
-+ if (current_user.uid == -1)
-+ get_current_user_info ();
-+ set_if_not ("PS1", current_user.euid == 0 ? "# " : primary_prompt);
-+#endif
-+ set_if_not ("PS2", secondary_prompt);
-+ }
-+ set_if_not ("PS4", "+ ");
-+
-+ /* Don't allow IFS to be imported from the environment. */
-+ temp_var = bind_variable ("IFS", " \t\n", 0);
-+ setifs (temp_var);
-+
-+ /* Magic machine types. Pretty convenient. */
-+ set_machine_vars ();
-+
-+ /* Default MAILCHECK for interactive shells. Defer the creation of a
-+ default MAILPATH until the startup files are read, because MAIL
-+ names a mail file if MAILPATH is not set, and we should provide a
-+ default only if neither is set. */
-+ if (interactive_shell)
-+ {
-+ temp_var = set_if_not ("MAILCHECK", posixly_correct ? "600" : "60");
-+ VSETATTR (temp_var, att_integer);
-+ }
-+
-+ /* Do some things with shell level. */
-+ initialize_shell_level ();
-+
-+ set_ppid ();
-+
-+ /* Initialize the `getopts' stuff. */
-+ temp_var = bind_variable ("OPTIND", "1", 0);
-+ VSETATTR (temp_var, att_integer);
-+ getopts_reset (0);
-+ bind_variable ("OPTERR", "1", 0);
-+ sh_opterr = 1;
-+
-+ if (login_shell == 1 && posixly_correct == 0)
-+ set_home_var ();
-+
-+ /* Get the full pathname to THIS shell, and set the BASH variable
-+ to it. */
-+ name = get_bash_name ();
-+ temp_var = bind_variable ("BASH", name, 0);
-+ free (name);
-+
-+ /* Make the exported environment variable SHELL be the user's login
-+ shell. Note that the `tset' command looks at this variable
-+ to determine what style of commands to output; if it ends in "csh",
-+ then C-shell commands are output, else Bourne shell commands. */
-+ set_shell_var ();
-+
-+ /* Make a variable called BASH_VERSION which contains the version info. */
-+ bind_variable ("BASH_VERSION", shell_version_string (), 0);
-+#if defined (ARRAY_VARS)
-+ make_vers_array ();
-+#endif
-+
-+ if (command_execution_string)
-+ bind_variable ("BASH_EXECUTION_STRING", command_execution_string, 0);
-+
-+ /* Find out if we're supposed to be in Posix.2 mode via an
-+ environment variable. */
-+ temp_var = find_variable ("POSIXLY_CORRECT");
-+ if (!temp_var)
-+ temp_var = find_variable ("POSIX_PEDANTIC");
-+ if (temp_var && imported_p (temp_var))
-+ sv_strict_posix (temp_var->name);
-+
-+#if defined (HISTORY)
-+ /* Set history variables to defaults, and then do whatever we would
-+ do if the variable had just been set. Do this only in the case
-+ that we are remembering commands on the history list. */
-+ if (remember_on_history)
-+ {
-+ name = bash_tilde_expand (posixly_correct ? "~/.sh_history" : "~/.bash_history", 0);
-+
-+ set_if_not ("HISTFILE", name);
-+ free (name);
-+ }
-+#endif /* HISTORY */
-+
-+ /* Seed the random number generator. */
-+ seedrand ();
-+
-+ /* Handle some "special" variables that we may have inherited from a
-+ parent shell. */
-+ if (interactive_shell)
-+ {
-+ temp_var = find_variable ("IGNOREEOF");
-+ if (!temp_var)
-+ temp_var = find_variable ("ignoreeof");
-+ if (temp_var && imported_p (temp_var))
-+ sv_ignoreeof (temp_var->name);
-+ }
-+
-+#if defined (HISTORY)
-+ if (interactive_shell && remember_on_history)
-+ {
-+ sv_history_control ("HISTCONTROL");
-+ sv_histignore ("HISTIGNORE");
-+ sv_histtimefmt ("HISTTIMEFORMAT");
-+ }
-+#endif /* HISTORY */
-+
-+#if defined (READLINE) && defined (STRICT_POSIX)
-+ /* POSIXLY_CORRECT will only be 1 here if the shell was compiled
-+ -DSTRICT_POSIX */
-+ if (interactive_shell && posixly_correct && no_line_editing == 0)
-+ rl_prefer_env_winsize = 1;
-+#endif /* READLINE && STRICT_POSIX */
-+
-+ /*
-+ * 24 October 2001
-+ *
-+ * I'm tired of the arguing and bug reports. Bash now leaves SSH_CLIENT
-+ * and SSH2_CLIENT alone. I'm going to rely on the shell_level check in
-+ * isnetconn() to avoid running the startup files more often than wanted.
-+ * That will, of course, only work if the user's login shell is bash, so
-+ * I've made that behavior conditional on SSH_SOURCE_BASHRC being defined
-+ * in config-top.h.
-+ */
-+#if 0
-+ temp_var = find_variable ("SSH_CLIENT");
-+ if (temp_var && imported_p (temp_var))
-+ {
-+ VUNSETATTR (temp_var, att_exported);
-+ array_needs_making = 1;
-+ }
-+ temp_var = find_variable ("SSH2_CLIENT");
-+ if (temp_var && imported_p (temp_var))
-+ {
-+ VUNSETATTR (temp_var, att_exported);
-+ array_needs_making = 1;
-+ }
-+#endif
-+
-+ /* Get the user's real and effective user ids. */
-+ uidset ();
-+
-+ temp_var = find_variable ("BASH_XTRACEFD");
-+ if (temp_var && imported_p (temp_var))
-+ sv_xtracefd (temp_var->name);
-+
-+ /* Initialize the dynamic variables, and seed their values. */
-+ initialize_dynamic_variables ();
-+}
-+
-+/* **************************************************************** */
-+/* */
-+/* Setting values for special shell variables */
-+/* */
-+/* **************************************************************** */
-+
-+static void
-+set_machine_vars ()
-+{
-+ SHELL_VAR *temp_var;
-+
-+ temp_var = set_if_not ("HOSTTYPE", HOSTTYPE);
-+ temp_var = set_if_not ("OSTYPE", OSTYPE);
-+ temp_var = set_if_not ("MACHTYPE", MACHTYPE);
-+
-+ temp_var = set_if_not ("HOSTNAME", current_host_name);
-+}
-+
-+/* Set $HOME to the information in the password file if we didn't get
-+ it from the environment. */
-+
-+/* This function is not static so the tilde and readline libraries can
-+ use it. */
-+char *
-+sh_get_home_dir ()
-+{
-+ if (current_user.home_dir == 0)
-+ get_current_user_info ();
-+ return current_user.home_dir;
-+}
-+
-+static void
-+set_home_var ()
-+{
-+ SHELL_VAR *temp_var;
-+
-+ temp_var = find_variable ("HOME");
-+ if (temp_var == 0)
-+ temp_var = bind_variable ("HOME", sh_get_home_dir (), 0);
-+#if 0
-+ VSETATTR (temp_var, att_exported);
-+#endif
-+}
-+
-+/* Set $SHELL to the user's login shell if it is not already set. Call
-+ get_current_user_info if we haven't already fetched the shell. */
-+static void
-+set_shell_var ()
-+{
-+ SHELL_VAR *temp_var;
-+
-+ temp_var = find_variable ("SHELL");
-+ if (temp_var == 0)
-+ {
-+ if (current_user.shell == 0)
-+ get_current_user_info ();
-+ temp_var = bind_variable ("SHELL", current_user.shell, 0);
-+ }
-+#if 0
-+ VSETATTR (temp_var, att_exported);
-+#endif
-+}
-+
-+static char *
-+get_bash_name ()
-+{
-+ char *name;
-+
-+ if ((login_shell == 1) && RELPATH(shell_name))
-+ {
-+ if (current_user.shell == 0)
-+ get_current_user_info ();
-+ name = savestring (current_user.shell);
-+ }
-+ else if (ABSPATH(shell_name))
-+ name = savestring (shell_name);
-+ else if (shell_name[0] == '.' && shell_name[1] == '/')
-+ {
-+ /* Fast path for common case. */
-+ char *cdir;
-+ int len;
-+
-+ cdir = get_string_value ("PWD");
-+ if (cdir)
-+ {
-+ len = strlen (cdir);
-+ name = (char *)xmalloc (len + strlen (shell_name) + 1);
-+ strcpy (name, cdir);
-+ strcpy (name + len, shell_name + 1);
-+ }
-+ else
-+ name = savestring (shell_name);
-+ }
-+ else
-+ {
-+ char *tname;
-+ int s;
-+
-+ tname = find_user_command (shell_name);
-+
-+ if (tname == 0)
-+ {
-+ /* Try the current directory. If there is not an executable
-+ there, just punt and use the login shell. */
-+ s = file_status (shell_name);
-+ if (s & FS_EXECABLE)
-+ {
-+ tname = make_absolute (shell_name, get_string_value ("PWD"));
-+ if (*shell_name == '.')
-+ {
-+ name = sh_canonpath (tname, PATH_CHECKDOTDOT|PATH_CHECKEXISTS);
-+ if (name == 0)
-+ name = tname;
-+ else
-+ free (tname);
-+ }
-+ else
-+ name = tname;
-+ }
-+ else
-+ {
-+ if (current_user.shell == 0)
-+ get_current_user_info ();
-+ name = savestring (current_user.shell);
-+ }
-+ }
-+ else
-+ {
-+ name = full_pathname (tname);
-+ free (tname);
-+ }
-+ }
-+
-+ return (name);
-+}
-+
-+void
-+adjust_shell_level (change)
-+ int change;
-+{
-+ char new_level[5], *old_SHLVL;
-+ intmax_t old_level;
-+ SHELL_VAR *temp_var;
-+
-+ old_SHLVL = get_string_value ("SHLVL");
-+ if (old_SHLVL == 0 || *old_SHLVL == '\0' || legal_number (old_SHLVL, &old_level) == 0)
-+ old_level = 0;
-+
-+ shell_level = old_level + change;
-+ if (shell_level < 0)
-+ shell_level = 0;
-+ else if (shell_level > 1000)
-+ {
-+ internal_warning (_("shell level (%d) too high, resetting to 1"), shell_level);
-+ shell_level = 1;
-+ }
-+
-+ /* We don't need the full generality of itos here. */
-+ if (shell_level < 10)
-+ {
-+ new_level[0] = shell_level + '0';
-+ new_level[1] = '\0';
-+ }
-+ else if (shell_level < 100)
-+ {
-+ new_level[0] = (shell_level / 10) + '0';
-+ new_level[1] = (shell_level % 10) + '0';
-+ new_level[2] = '\0';
-+ }
-+ else if (shell_level < 1000)
-+ {
-+ new_level[0] = (shell_level / 100) + '0';
-+ old_level = shell_level % 100;
-+ new_level[1] = (old_level / 10) + '0';
-+ new_level[2] = (old_level % 10) + '0';
-+ new_level[3] = '\0';
-+ }
-+
-+ temp_var = bind_variable ("SHLVL", new_level, 0);
-+ set_auto_export (temp_var);
-+}
-+
-+static void
-+initialize_shell_level ()
-+{
-+ adjust_shell_level (1);
-+}
-+
-+/* If we got PWD from the environment, update our idea of the current
-+ working directory. In any case, make sure that PWD exists before
-+ checking it. It is possible for getcwd () to fail on shell startup,
-+ and in that case, PWD would be undefined. If this is an interactive
-+ login shell, see if $HOME is the current working directory, and if
-+ that's not the same string as $PWD, set PWD=$HOME. */
-+
-+void
-+set_pwd ()
-+{
-+ SHELL_VAR *temp_var, *home_var;
-+ char *temp_string, *home_string;
-+
-+ home_var = find_variable ("HOME");
-+ home_string = home_var ? value_cell (home_var) : (char *)NULL;
-+
-+ temp_var = find_variable ("PWD");
-+ if (temp_var && imported_p (temp_var) &&
-+ (temp_string = value_cell (temp_var)) &&
-+ same_file (temp_string, ".", (struct stat *)NULL, (struct stat *)NULL))
-+ set_working_directory (temp_string);
-+ else if (home_string && interactive_shell && login_shell &&
-+ same_file (home_string, ".", (struct stat *)NULL, (struct stat *)NULL))
-+ {
-+ set_working_directory (home_string);
-+ temp_var = bind_variable ("PWD", home_string, 0);
-+ set_auto_export (temp_var);
-+ }
-+ else
-+ {
-+ temp_string = get_working_directory ("shell-init");
-+ if (temp_string)
-+ {
-+ temp_var = bind_variable ("PWD", temp_string, 0);
-+ set_auto_export (temp_var);
-+ free (temp_string);
-+ }
-+ }
-+
-+ /* According to the Single Unix Specification, v2, $OLDPWD is an
-+ `environment variable' and therefore should be auto-exported.
-+ Make a dummy invisible variable for OLDPWD, and mark it as exported. */
-+ temp_var = bind_variable ("OLDPWD", (char *)NULL, 0);
-+ VSETATTR (temp_var, (att_exported | att_invisible));
-+}
-+
-+/* Make a variable $PPID, which holds the pid of the shell's parent. */
-+void
-+set_ppid ()
-+{
-+ char namebuf[INT_STRLEN_BOUND(pid_t) + 1], *name;
-+ SHELL_VAR *temp_var;
-+
-+ name = inttostr (getppid (), namebuf, sizeof(namebuf));
-+ temp_var = find_variable ("PPID");
-+ if (temp_var)
-+ VUNSETATTR (temp_var, (att_readonly | att_exported));
-+ temp_var = bind_variable ("PPID", name, 0);
-+ VSETATTR (temp_var, (att_readonly | att_integer));
-+}
-+
-+static void
-+uidset ()
-+{
-+ char buff[INT_STRLEN_BOUND(uid_t) + 1], *b;
-+ register SHELL_VAR *v;
-+
-+ b = inttostr (current_user.uid, buff, sizeof (buff));
-+ v = find_variable ("UID");
-+ if (v == 0)
-+ {
-+ v = bind_variable ("UID", b, 0);
-+ VSETATTR (v, (att_readonly | att_integer));
-+ }
-+
-+ if (current_user.euid != current_user.uid)
-+ b = inttostr (current_user.euid, buff, sizeof (buff));
-+
-+ v = find_variable ("EUID");
-+ if (v == 0)
-+ {
-+ v = bind_variable ("EUID", b, 0);
-+ VSETATTR (v, (att_readonly | att_integer));
-+ }
-+}
-+
-+#if defined (ARRAY_VARS)
-+static void
-+make_vers_array ()
-+{
-+ SHELL_VAR *vv;
-+ ARRAY *av;
-+ char *s, d[32], b[INT_STRLEN_BOUND(int) + 1];
-+
-+ unbind_variable ("BASH_VERSINFO");
-+
-+ vv = make_new_array_variable ("BASH_VERSINFO");
-+ av = array_cell (vv);
-+ strcpy (d, dist_version);
-+ s = strchr (d, '.');
-+ if (s)
-+ *s++ = '\0';
-+ array_insert (av, 0, d);
-+ array_insert (av, 1, s);
-+ s = inttostr (patch_level, b, sizeof (b));
-+ array_insert (av, 2, s);
-+ s = inttostr (build_version, b, sizeof (b));
-+ array_insert (av, 3, s);
-+ array_insert (av, 4, release_status);
-+ array_insert (av, 5, MACHTYPE);
-+
-+ VSETATTR (vv, att_readonly);
-+}
-+#endif /* ARRAY_VARS */
-+
-+/* Set the environment variables $LINES and $COLUMNS in response to
-+ a window size change. */
-+void
-+sh_set_lines_and_columns (lines, cols)
-+ int lines, cols;
-+{
-+ char val[INT_STRLEN_BOUND(int) + 1], *v;
-+
-+#if defined (READLINE)
-+ /* If we are currently assigning to LINES or COLUMNS, don't do anything. */
-+ if (winsize_assignment)
-+ return;
-+#endif
-+
-+ v = inttostr (lines, val, sizeof (val));
-+ bind_variable ("LINES", v, 0);
-+
-+ v = inttostr (cols, val, sizeof (val));
-+ bind_variable ("COLUMNS", v, 0);
-+}
-+
-+/* **************************************************************** */
-+/* */
-+/* Printing variables and values */
-+/* */
-+/* **************************************************************** */
-+
-+/* Print LIST (a list of shell variables) to stdout in such a way that
-+ they can be read back in. */
-+void
-+print_var_list (list)
-+ register SHELL_VAR **list;
-+{
-+ register int i;
-+ register SHELL_VAR *var;
-+
-+ for (i = 0; list && (var = list[i]); i++)
-+ if (invisible_p (var) == 0)
-+ print_assignment (var);
-+}
-+
-+/* Print LIST (a list of shell functions) to stdout in such a way that
-+ they can be read back in. */
-+void
-+print_func_list (list)
-+ register SHELL_VAR **list;
-+{
-+ register int i;
-+ register SHELL_VAR *var;
-+
-+ for (i = 0; list && (var = list[i]); i++)
-+ {
-+ printf ("%s ", var->name);
-+ print_var_function (var);
-+ printf ("\n");
-+ }
-+}
-+
-+/* Print the value of a single SHELL_VAR. No newline is
-+ output, but the variable is printed in such a way that
-+ it can be read back in. */
-+void
-+print_assignment (var)
-+ SHELL_VAR *var;
-+{
-+ if (var_isset (var) == 0)
-+ return;
-+
-+ if (function_p (var))
-+ {
-+ printf ("%s", var->name);
-+ print_var_function (var);
-+ printf ("\n");
-+ }
-+#if defined (ARRAY_VARS)
-+ else if (array_p (var))
-+ print_array_assignment (var, 0);
-+ else if (assoc_p (var))
-+ print_assoc_assignment (var, 0);
-+#endif /* ARRAY_VARS */
-+ else
-+ {
-+ printf ("%s=", var->name);
-+ print_var_value (var, 1);
-+ printf ("\n");
-+ }
-+}
-+
-+/* Print the value cell of VAR, a shell variable. Do not print
-+ the name, nor leading/trailing newline. If QUOTE is non-zero,
-+ and the value contains shell metacharacters, quote the value
-+ in such a way that it can be read back in. */
-+void
-+print_var_value (var, quote)
-+ SHELL_VAR *var;
-+ int quote;
-+{
-+ char *t;
-+
-+ if (var_isset (var) == 0)
-+ return;
-+
-+ if (quote && posixly_correct == 0 && ansic_shouldquote (value_cell (var)))
-+ {
-+ t = ansic_quote (value_cell (var), 0, (int *)0);
-+ printf ("%s", t);
-+ free (t);
-+ }
-+ else if (quote && sh_contains_shell_metas (value_cell (var)))
-+ {
-+ t = sh_single_quote (value_cell (var));
-+ printf ("%s", t);
-+ free (t);
-+ }
-+ else
-+ printf ("%s", value_cell (var));
-+}
-+
-+/* Print the function cell of VAR, a shell variable. Do not
-+ print the name, nor leading/trailing newline. */
-+void
-+print_var_function (var)
-+ SHELL_VAR *var;
-+{
-+ char *x;
-+
-+ if (function_p (var) && var_isset (var))
-+ {
-+ x = named_function_string ((char *)NULL, function_cell(var), FUNC_MULTILINE|FUNC_EXTERNAL);
-+ printf ("%s", x);
-+ }
-+}
-+
-+/* **************************************************************** */
-+/* */
-+/* Dynamic Variables */
-+/* */
-+/* **************************************************************** */
-+
-+/* DYNAMIC VARIABLES
-+
-+ These are variables whose values are generated anew each time they are
-+ referenced. These are implemented using a pair of function pointers
-+ in the struct variable: assign_func, which is called from bind_variable
-+ and, if arrays are compiled into the shell, some of the functions in
-+ arrayfunc.c, and dynamic_value, which is called from find_variable.
-+
-+ assign_func is called from bind_variable_internal, if
-+ bind_variable_internal discovers that the variable being assigned to
-+ has such a function. The function is called as
-+ SHELL_VAR *temp = (*(entry->assign_func)) (entry, value, ind)
-+ and the (SHELL_VAR *)temp is returned as the value of bind_variable. It
-+ is usually ENTRY (self). IND is an index for an array variable, and
-+ unused otherwise.
-+
-+ dynamic_value is called from find_variable_internal to return a `new'
-+ value for the specified dynamic varible. If this function is NULL,
-+ the variable is treated as a `normal' shell variable. If it is not,
-+ however, then this function is called like this:
-+ tempvar = (*(var->dynamic_value)) (var);
-+
-+ Sometimes `tempvar' will replace the value of `var'. Other times, the
-+ shell will simply use the string value. Pretty object-oriented, huh?
-+
-+ Be warned, though: if you `unset' a special variable, it loses its
-+ special meaning, even if you subsequently set it.
-+
-+ The special assignment code would probably have been better put in
-+ subst.c: do_assignment_internal, in the same style as
-+ stupidly_hack_special_variables, but I wanted the changes as
-+ localized as possible. */
-+
-+#define INIT_DYNAMIC_VAR(var, val, gfunc, afunc) \
-+ do \
-+ { \
-+ v = bind_variable (var, (val), 0); \
-+ v->dynamic_value = gfunc; \
-+ v->assign_func = afunc; \
-+ } \
-+ while (0)
-+
-+#define INIT_DYNAMIC_ARRAY_VAR(var, gfunc, afunc) \
-+ do \
-+ { \
-+ v = make_new_array_variable (var); \
-+ v->dynamic_value = gfunc; \
-+ v->assign_func = afunc; \
-+ } \
-+ while (0)
-+
-+#define INIT_DYNAMIC_ASSOC_VAR(var, gfunc, afunc) \
-+ do \
-+ { \
-+ v = make_new_assoc_variable (var); \
-+ v->dynamic_value = gfunc; \
-+ v->assign_func = afunc; \
-+ } \
-+ while (0)
-+
-+static SHELL_VAR *
-+null_assign (self, value, unused, key)
-+ SHELL_VAR *self;
-+ char *value;
-+ arrayind_t unused;
-+ char *key;
-+{
-+ return (self);
-+}
-+
-+#if defined (ARRAY_VARS)
-+static SHELL_VAR *
-+null_array_assign (self, value, ind, key)
-+ SHELL_VAR *self;
-+ char *value;
-+ arrayind_t ind;
-+ char *key;
-+{
-+ return (self);
-+}
-+#endif
-+
-+/* Degenerate `dynamic_value' function; just returns what's passed without
-+ manipulation. */
-+static SHELL_VAR *
-+get_self (self)
-+ SHELL_VAR *self;
-+{
-+ return (self);
-+}
-+
-+#if defined (ARRAY_VARS)
-+/* A generic dynamic array variable initializer. Initialize array variable
-+ NAME with dynamic value function GETFUNC and assignment function SETFUNC. */
-+static SHELL_VAR *
-+init_dynamic_array_var (name, getfunc, setfunc, attrs)
-+ char *name;
-+ sh_var_value_func_t *getfunc;
-+ sh_var_assign_func_t *setfunc;
-+ int attrs;
-+{
-+ SHELL_VAR *v;
-+
-+ v = find_variable (name);
-+ if (v)
-+ return (v);
-+ INIT_DYNAMIC_ARRAY_VAR (name, getfunc, setfunc);
-+ if (attrs)
-+ VSETATTR (v, attrs);
-+ return v;
-+}
-+
-+static SHELL_VAR *
-+init_dynamic_assoc_var (name, getfunc, setfunc, attrs)
-+ char *name;
-+ sh_var_value_func_t *getfunc;
-+ sh_var_assign_func_t *setfunc;
-+ int attrs;
-+{
-+ SHELL_VAR *v;
-+
-+ v = find_variable (name);
-+ if (v)
-+ return (v);
-+ INIT_DYNAMIC_ASSOC_VAR (name, getfunc, setfunc);
-+ if (attrs)
-+ VSETATTR (v, attrs);
-+ return v;
-+}
-+#endif
-+
-+/* The value of $SECONDS. This is the number of seconds since shell
-+ invocation, or, the number of seconds since the last assignment + the
-+ value of the last assignment. */
-+static intmax_t seconds_value_assigned;
-+
-+static SHELL_VAR *
-+assign_seconds (self, value, unused, key)
-+ SHELL_VAR *self;
-+ char *value;
-+ arrayind_t unused;
-+ char *key;
-+{
-+ if (legal_number (value, &seconds_value_assigned) == 0)
-+ seconds_value_assigned = 0;
-+ shell_start_time = NOW;
-+ return (self);
-+}
-+
-+static SHELL_VAR *
-+get_seconds (var)
-+ SHELL_VAR *var;
-+{
-+ time_t time_since_start;
-+ char *p;
-+
-+ time_since_start = NOW - shell_start_time;
-+ p = itos(seconds_value_assigned + time_since_start);
-+
-+ FREE (value_cell (var));
-+
-+ VSETATTR (var, att_integer);
-+ var_setvalue (var, p);
-+ return (var);
-+}
-+
-+static SHELL_VAR *
-+init_seconds_var ()
-+{
-+ SHELL_VAR *v;
-+
-+ v = find_variable ("SECONDS");
-+ if (v)
-+ {
-+ if (legal_number (value_cell(v), &seconds_value_assigned) == 0)
-+ seconds_value_assigned = 0;
-+ }
-+ INIT_DYNAMIC_VAR ("SECONDS", (v ? value_cell (v) : (char *)NULL), get_seconds, assign_seconds);
-+ return v;
-+}
-+
-+/* The random number seed. You can change this by setting RANDOM. */
-+static unsigned long rseed = 1;
-+static int last_random_value;
-+static int seeded_subshell = 0;
-+
-+/* A linear congruential random number generator based on the example
-+ one in the ANSI C standard. This one isn't very good, but a more
-+ complicated one is overkill. */
-+
-+/* Returns a pseudo-random number between 0 and 32767. */
-+static int
-+brand ()
-+{
-+ /* From "Random number generators: good ones are hard to find",
-+ Park and Miller, Communications of the ACM, vol. 31, no. 10,
-+ October 1988, p. 1195. filtered through FreeBSD */
-+ long h, l;
-+
-+ /* Can't seed with 0. */
-+ if (rseed == 0)
-+ rseed = 123459876;
-+ h = rseed / 127773;
-+ l = rseed % 127773;
-+ rseed = 16807 * l - 2836 * h;
-+#if 0
-+ if (rseed < 0)
-+ rseed += 0x7fffffff;
-+#endif
-+ return ((unsigned int)(rseed & 32767)); /* was % 32768 */
-+}
-+
-+/* Set the random number generator seed to SEED. */
-+static void
-+sbrand (seed)
-+ unsigned long seed;
-+{
-+ rseed = seed;
-+ last_random_value = 0;
-+}
-+
-+static void
-+seedrand ()
-+{
-+ struct timeval tv;
-+
-+ gettimeofday (&tv, NULL);
-+ sbrand (tv.tv_sec ^ tv.tv_usec ^ getpid ());
-+}
-+
-+static SHELL_VAR *
-+assign_random (self, value, unused, key)
-+ SHELL_VAR *self;
-+ char *value;
-+ arrayind_t unused;
-+ char *key;
-+{
-+ sbrand (strtoul (value, (char **)NULL, 10));
-+ if (subshell_environment)
-+ seeded_subshell = getpid ();
-+ return (self);
-+}
-+
-+int
-+get_random_number ()
-+{
-+ int rv, pid;
-+
-+ /* Reset for command and process substitution. */
-+ pid = getpid ();
-+ if (subshell_environment && seeded_subshell != pid)
-+ {
-+ seedrand ();
-+ seeded_subshell = pid;
-+ }
-+
-+ do
-+ rv = brand ();
-+ while (rv == last_random_value);
-+ return rv;
-+}
-+
-+static SHELL_VAR *
-+get_random (var)
-+ SHELL_VAR *var;
-+{
-+ int rv;
-+ char *p;
-+
-+ rv = get_random_number ();
-+ last_random_value = rv;
-+ p = itos (rv);
-+
-+ FREE (value_cell (var));
-+
-+ VSETATTR (var, att_integer);
-+ var_setvalue (var, p);
-+ return (var);
-+}
-+
-+static SHELL_VAR *
-+assign_lineno (var, value, unused, key)
-+ SHELL_VAR *var;
-+ char *value;
-+ arrayind_t unused;
-+ char *key;
-+{
-+ intmax_t new_value;
-+
-+ if (value == 0 || *value == '\0' || legal_number (value, &new_value) == 0)
-+ new_value = 0;
-+ line_number = line_number_base = new_value;
-+ return var;
-+}
-+
-+/* Function which returns the current line number. */
-+static SHELL_VAR *
-+get_lineno (var)
-+ SHELL_VAR *var;
-+{
-+ char *p;
-+ int ln;
-+
-+ ln = executing_line_number ();
-+ p = itos (ln);
-+ FREE (value_cell (var));
-+ var_setvalue (var, p);
-+ return (var);
-+}
-+
-+static SHELL_VAR *
-+assign_subshell (var, value, unused, key)
-+ SHELL_VAR *var;
-+ char *value;
-+ arrayind_t unused;
-+ char *key;
-+{
-+ intmax_t new_value;
-+
-+ if (value == 0 || *value == '\0' || legal_number (value, &new_value) == 0)
-+ new_value = 0;
-+ subshell_level = new_value;
-+ return var;
-+}
-+
-+static SHELL_VAR *
-+get_subshell (var)
-+ SHELL_VAR *var;
-+{
-+ char *p;
-+
-+ p = itos (subshell_level);
-+ FREE (value_cell (var));
-+ var_setvalue (var, p);
-+ return (var);
-+}
-+
-+static SHELL_VAR *
-+get_bashpid (var)
-+ SHELL_VAR *var;
-+{
-+ int pid;
-+ char *p;
-+
-+ pid = getpid ();
-+ p = itos (pid);
-+
-+ FREE (value_cell (var));
-+ VSETATTR (var, att_integer|att_readonly);
-+ var_setvalue (var, p);
-+ return (var);
-+}
-+
-+static SHELL_VAR *
-+get_bash_command (var)
-+ SHELL_VAR *var;
-+{
-+ char *p;
-+
-+ if (the_printed_command_except_trap)
-+ p = savestring (the_printed_command_except_trap);
-+ else
-+ {
-+ p = (char *)xmalloc (1);
-+ p[0] = '\0';
-+ }
-+ FREE (value_cell (var));
-+ var_setvalue (var, p);
-+ return (var);
-+}
-+
-+#if defined (HISTORY)
-+static SHELL_VAR *
-+get_histcmd (var)
-+ SHELL_VAR *var;
-+{
-+ char *p;
-+
-+ p = itos (history_number ());
-+ FREE (value_cell (var));
-+ var_setvalue (var, p);
-+ return (var);
-+}
-+#endif
-+
-+#if defined (READLINE)
-+/* When this function returns, VAR->value points to malloced memory. */
-+static SHELL_VAR *
-+get_comp_wordbreaks (var)
-+ SHELL_VAR *var;
-+{
-+ /* If we don't have anything yet, assign a default value. */
-+ if (rl_completer_word_break_characters == 0 && bash_readline_initialized == 0)
-+ enable_hostname_completion (perform_hostname_completion);
-+
-+ FREE (value_cell (var));
-+ var_setvalue (var, savestring (rl_completer_word_break_characters));
-+
-+ return (var);
-+}
-+
-+/* When this function returns, rl_completer_word_break_characters points to
-+ malloced memory. */
-+static SHELL_VAR *
-+assign_comp_wordbreaks (self, value, unused, key)
-+ SHELL_VAR *self;
-+ char *value;
-+ arrayind_t unused;
-+ char *key;
-+{
-+ if (rl_completer_word_break_characters &&
-+ rl_completer_word_break_characters != rl_basic_word_break_characters)
-+ free (rl_completer_word_break_characters);
-+
-+ rl_completer_word_break_characters = savestring (value);
-+ return self;
-+}
-+#endif /* READLINE */
-+
-+#if defined (PUSHD_AND_POPD) && defined (ARRAY_VARS)
-+static SHELL_VAR *
-+assign_dirstack (self, value, ind, key)
-+ SHELL_VAR *self;
-+ char *value;
-+ arrayind_t ind;
-+ char *key;
-+{
-+ set_dirstack_element (ind, 1, value);
-+ return self;
-+}
-+
-+static SHELL_VAR *
-+get_dirstack (self)
-+ SHELL_VAR *self;
-+{
-+ ARRAY *a;
-+ WORD_LIST *l;
-+
-+ l = get_directory_stack (0);
-+ a = array_from_word_list (l);
-+ array_dispose (array_cell (self));
-+ dispose_words (l);
-+ var_setarray (self, a);
-+ return self;
-+}
-+#endif /* PUSHD AND POPD && ARRAY_VARS */
-+
-+#if defined (ARRAY_VARS)
-+/* We don't want to initialize the group set with a call to getgroups()
-+ unless we're asked to, but we only want to do it once. */
-+static SHELL_VAR *
-+get_groupset (self)
-+ SHELL_VAR *self;
-+{
-+ register int i;
-+ int ng;
-+ ARRAY *a;
-+ static char **group_set = (char **)NULL;
-+
-+ if (group_set == 0)
-+ {
-+ group_set = get_group_list (&ng);
-+ a = array_cell (self);
-+ for (i = 0; i < ng; i++)
-+ array_insert (a, i, group_set[i]);
-+ }
-+ return (self);
-+}
-+
-+static SHELL_VAR *
-+build_hashcmd (self)
-+ SHELL_VAR *self;
-+{
-+ HASH_TABLE *h;
-+ int i;
-+ char *k, *v;
-+ BUCKET_CONTENTS *item;
-+
-+ h = assoc_cell (self);
-+ if (h)
-+ assoc_dispose (h);
-+
-+ if (hashed_filenames == 0 || HASH_ENTRIES (hashed_filenames) == 0)
-+ {
-+ var_setvalue (self, (char *)NULL);
-+ return self;
-+ }
-+
-+ h = assoc_create (hashed_filenames->nbuckets);
-+ for (i = 0; i < hashed_filenames->nbuckets; i++)
-+ {
-+ for (item = hash_items (i, hashed_filenames); item; item = item->next)
-+ {
-+ k = savestring (item->key);
-+ v = pathdata(item)->path;
-+ assoc_insert (h, k, v);
-+ }
-+ }
-+
-+ var_setvalue (self, (char *)h);
-+ return self;
-+}
-+
-+static SHELL_VAR *
-+get_hashcmd (self)
-+ SHELL_VAR *self;
-+{
-+ build_hashcmd (self);
-+ return (self);
-+}
-+
-+static SHELL_VAR *
-+assign_hashcmd (self, value, ind, key)
-+ SHELL_VAR *self;
-+ char *value;
-+ arrayind_t ind;
-+ char *key;
-+{
-+ phash_insert (key, value, 0, 0);
-+ return (build_hashcmd (self));
-+}
-+
-+#if defined (ALIAS)
-+static SHELL_VAR *
-+build_aliasvar (self)
-+ SHELL_VAR *self;
-+{
-+ HASH_TABLE *h;
-+ int i;
-+ char *k, *v;
-+ BUCKET_CONTENTS *item;
-+
-+ h = assoc_cell (self);
-+ if (h)
-+ assoc_dispose (h);
-+
-+ if (aliases == 0 || HASH_ENTRIES (aliases) == 0)
-+ {
-+ var_setvalue (self, (char *)NULL);
-+ return self;
-+ }
-+
-+ h = assoc_create (aliases->nbuckets);
-+ for (i = 0; i < aliases->nbuckets; i++)
-+ {
-+ for (item = hash_items (i, aliases); item; item = item->next)
-+ {
-+ k = savestring (item->key);
-+ v = ((alias_t *)(item->data))->value;
-+ assoc_insert (h, k, v);
-+ }
-+ }
-+
-+ var_setvalue (self, (char *)h);
-+ return self;
-+}
-+
-+static SHELL_VAR *
-+get_aliasvar (self)
-+ SHELL_VAR *self;
-+{
-+ build_aliasvar (self);
-+ return (self);
-+}
-+
-+static SHELL_VAR *
-+assign_aliasvar (self, value, ind, key)
-+ SHELL_VAR *self;
-+ char *value;
-+ arrayind_t ind;
-+ char *key;
-+{
-+ add_alias (key, value);
-+ return (build_aliasvar (self));
-+}
-+#endif /* ALIAS */
-+
-+#endif /* ARRAY_VARS */
-+
-+/* If ARRAY_VARS is not defined, this just returns the name of any
-+ currently-executing function. If we have arrays, it's a call stack. */
-+static SHELL_VAR *
-+get_funcname (self)
-+ SHELL_VAR *self;
-+{
-+#if ! defined (ARRAY_VARS)
-+ char *t;
-+ if (variable_context && this_shell_function)
-+ {
-+ FREE (value_cell (self));
-+ t = savestring (this_shell_function->name);
-+ var_setvalue (self, t);
-+ }
-+#endif
-+ return (self);
-+}
-+
-+void
-+make_funcname_visible (on_or_off)
-+ int on_or_off;
-+{
-+ SHELL_VAR *v;
-+
-+ v = find_variable ("FUNCNAME");
-+ if (v == 0 || v->dynamic_value == 0)
-+ return;
-+
-+ if (on_or_off)
-+ VUNSETATTR (v, att_invisible);
-+ else
-+ VSETATTR (v, att_invisible);
-+}
-+
-+static SHELL_VAR *
-+init_funcname_var ()
-+{
-+ SHELL_VAR *v;
-+
-+ v = find_variable ("FUNCNAME");
-+ if (v)
-+ return v;
-+#if defined (ARRAY_VARS)
-+ INIT_DYNAMIC_ARRAY_VAR ("FUNCNAME", get_funcname, null_array_assign);
-+#else
-+ INIT_DYNAMIC_VAR ("FUNCNAME", (char *)NULL, get_funcname, null_assign);
-+#endif
-+ VSETATTR (v, att_invisible|att_noassign);
-+ return v;
-+}
-+
-+static void
-+initialize_dynamic_variables ()
-+{
-+ SHELL_VAR *v;
-+
-+ v = init_seconds_var ();
-+
-+ INIT_DYNAMIC_VAR ("BASH_COMMAND", (char *)NULL, get_bash_command, (sh_var_assign_func_t *)NULL);
-+ INIT_DYNAMIC_VAR ("BASH_SUBSHELL", (char *)NULL, get_subshell, assign_subshell);
-+
-+ INIT_DYNAMIC_VAR ("RANDOM", (char *)NULL, get_random, assign_random);
-+ VSETATTR (v, att_integer);
-+ INIT_DYNAMIC_VAR ("LINENO", (char *)NULL, get_lineno, assign_lineno);
-+ VSETATTR (v, att_integer);
-+
-+ INIT_DYNAMIC_VAR ("BASHPID", (char *)NULL, get_bashpid, null_assign);
-+ VSETATTR (v, att_integer|att_readonly);
-+
-+#if defined (HISTORY)
-+ INIT_DYNAMIC_VAR ("HISTCMD", (char *)NULL, get_histcmd, (sh_var_assign_func_t *)NULL);
-+ VSETATTR (v, att_integer);
-+#endif
-+
-+#if defined (READLINE)
-+ INIT_DYNAMIC_VAR ("COMP_WORDBREAKS", (char *)NULL, get_comp_wordbreaks, assign_comp_wordbreaks);
-+#endif
-+
-+#if defined (PUSHD_AND_POPD) && defined (ARRAY_VARS)
-+ v = init_dynamic_array_var ("DIRSTACK", get_dirstack, assign_dirstack, 0);
-+#endif /* PUSHD_AND_POPD && ARRAY_VARS */
-+
-+#if defined (ARRAY_VARS)
-+ v = init_dynamic_array_var ("GROUPS", get_groupset, null_array_assign, att_noassign);
-+
-+# if defined (DEBUGGER)
-+ v = init_dynamic_array_var ("BASH_ARGC", get_self, null_array_assign, att_noassign|att_nounset);
-+ v = init_dynamic_array_var ("BASH_ARGV", get_self, null_array_assign, att_noassign|att_nounset);
-+# endif /* DEBUGGER */
-+ v = init_dynamic_array_var ("BASH_SOURCE", get_self, null_array_assign, att_noassign|att_nounset);
-+ v = init_dynamic_array_var ("BASH_LINENO", get_self, null_array_assign, att_noassign|att_nounset);
-+
-+ v = init_dynamic_assoc_var ("BASH_CMDS", get_hashcmd, assign_hashcmd, att_nofree);
-+# if defined (ALIAS)
-+ v = init_dynamic_assoc_var ("BASH_ALIASES", get_aliasvar, assign_aliasvar, att_nofree);
-+# endif
-+#endif
-+
-+ v = init_funcname_var ();
-+}
-+
-+/* **************************************************************** */
-+/* */
-+/* Retrieving variables and values */
-+/* */
-+/* **************************************************************** */
-+
-+/* How to get a pointer to the shell variable or function named NAME.
-+ HASHED_VARS is a pointer to the hash table containing the list
-+ of interest (either variables or functions). */
-+
-+static SHELL_VAR *
-+hash_lookup (name, hashed_vars)
-+ const char *name;
-+ HASH_TABLE *hashed_vars;
-+{
-+ BUCKET_CONTENTS *bucket;
-+
-+ bucket = hash_search (name, hashed_vars, 0);
-+ /* If we find the name in HASHED_VARS, set LAST_TABLE_SEARCHED to that
-+ table. */
-+ if (bucket)
-+ last_table_searched = hashed_vars;
-+ return (bucket ? (SHELL_VAR *)bucket->data : (SHELL_VAR *)NULL);
-+}
-+
-+SHELL_VAR *
-+var_lookup (name, vcontext)
-+ const char *name;
-+ VAR_CONTEXT *vcontext;
-+{
-+ VAR_CONTEXT *vc;
-+ SHELL_VAR *v;
-+
-+ v = (SHELL_VAR *)NULL;
-+ for (vc = vcontext; vc; vc = vc->down)
-+ if (v = hash_lookup (name, vc->table))
-+ break;
-+
-+ return v;
-+}
-+
-+/* Look up the variable entry named NAME. If SEARCH_TEMPENV is non-zero,
-+ then also search the temporarily built list of exported variables.
-+ The lookup order is:
-+ temporary_env
-+ shell_variables list
-+*/
-+
-+SHELL_VAR *
-+find_variable_internal (name, force_tempenv)
-+ const char *name;
-+ int force_tempenv;
-+{
-+ SHELL_VAR *var;
-+ int search_tempenv;
-+ VAR_CONTEXT *vc;
-+
-+ var = (SHELL_VAR *)NULL;
-+
-+ /* If explicitly requested, first look in the temporary environment for
-+ the variable. This allows constructs such as "foo=x eval 'echo $foo'"
-+ to get the `exported' value of $foo. This happens if we are executing
-+ a function or builtin, or if we are looking up a variable in a
-+ "subshell environment". */
-+ search_tempenv = force_tempenv || (expanding_redir == 0 && subshell_environment);
-+
-+ if (search_tempenv && temporary_env)
-+ var = hash_lookup (name, temporary_env);
-+
-+ vc = shell_variables;
-+#if 0
-+if (search_tempenv == 0 && /* (subshell_environment & SUBSHELL_COMSUB) && */
-+ expanding_redir &&
-+ (this_shell_builtin == eval_builtin || this_shell_builtin == command_builtin))
-+ {
-+ itrace("find_variable_internal: search_tempenv == 0: skipping VC_BLTNENV");
-+ while (vc && (vc->flags & VC_BLTNENV))
-+ vc = vc->down;
-+ if (vc == 0)
-+ vc = shell_variables;
-+ }
-+#endif
-+
-+ if (var == 0)
-+ var = var_lookup (name, vc);
-+
-+ if (var == 0)
-+ return ((SHELL_VAR *)NULL);
-+
-+ return (var->dynamic_value ? (*(var->dynamic_value)) (var) : var);
-+}
-+
-+/* Look up and resolve the chain of nameref variables starting at V all the
-+ way to NULL or non-nameref. */
-+SHELL_VAR *
-+find_variable_nameref (v)
-+ SHELL_VAR *v;
-+{
-+ int level;
-+ char *newname;
-+ SHELL_VAR *orig, *oldv;
-+
-+ level = 0;
-+ orig = v;
-+ while (v && nameref_p (v))
-+ {
-+ level++;
-+ if (level > NAMEREF_MAX)
-+ return ((SHELL_VAR *)0); /* error message here? */
-+ newname = nameref_cell (v);
-+ if (newname == 0 || *newname == '\0')
-+ return ((SHELL_VAR *)0);
-+ oldv = v;
-+ v = find_variable_internal (newname, (expanding_redir == 0 && (assigning_in_environment || executing_builtin)));
-+ if (v == orig || v == oldv)
-+ {
-+ internal_warning (_("%s: circular name reference"), orig->name);
-+ return ((SHELL_VAR *)0);
-+ }
-+ }
-+ return v;
-+}
-+
-+/* Resolve the chain of nameref variables for NAME. XXX - could change later */
-+SHELL_VAR *
-+find_variable_last_nameref (name)
-+ const char *name;
-+{
-+ SHELL_VAR *v, *nv;
-+ char *newname;
-+ int level;
-+
-+ nv = v = find_variable_noref (name);
-+ level = 0;
-+ while (v && nameref_p (v))
-+ {
-+ level++;
-+ if (level > NAMEREF_MAX)
-+ return ((SHELL_VAR *)0); /* error message here? */
-+ newname = nameref_cell (v);
-+ if (newname == 0 || *newname == '\0')
-+ return ((SHELL_VAR *)0);
-+ nv = v;
-+ v = find_variable_internal (newname, (expanding_redir == 0 && (assigning_in_environment || executing_builtin)));
-+ }
-+ return nv;
-+}
-+
-+/* Resolve the chain of nameref variables for NAME. XXX - could change later */
-+SHELL_VAR *
-+find_global_variable_last_nameref (name)
-+ const char *name;
-+{
-+ SHELL_VAR *v, *nv;
-+ char *newname;
-+ int level;
-+
-+ nv = v = find_global_variable_noref (name);
-+ level = 0;
-+ while (v && nameref_p (v))
-+ {
-+ level++;
-+ if (level > NAMEREF_MAX)
-+ return ((SHELL_VAR *)0); /* error message here? */
-+ newname = nameref_cell (v);
-+ if (newname == 0 || *newname == '\0')
-+ return ((SHELL_VAR *)0);
-+ nv = v;
-+ v = find_global_variable_noref (newname);
-+ }
-+ return nv;
-+}
-+
-+static SHELL_VAR *
-+find_nameref_at_context (v, vc)
-+ SHELL_VAR *v;
-+ VAR_CONTEXT *vc;
-+{
-+ SHELL_VAR *nv, *nv2;
-+ VAR_CONTEXT *nvc;
-+ char *newname;
-+ int level;
-+
-+ nv = v;
-+ level = 1;
-+ while (nv && nameref_p (nv))
-+ {
-+ level++;
-+ if (level > NAMEREF_MAX)
-+ return ((SHELL_VAR *)NULL);
-+ newname = nameref_cell (nv);
-+ if (newname == 0 || *newname == '\0')
-+ return ((SHELL_VAR *)NULL);
-+ nv2 = hash_lookup (newname, vc->table);
-+ if (nv2 == 0)
-+ break;
-+ nv = nv2;
-+ }
-+ return nv;
-+}
-+
-+/* Do nameref resolution from the VC, which is the local context for some
-+ function or builtin, `up' the chain to the global variables context. If
-+ NVCP is not NULL, return the variable context where we finally ended the
-+ nameref resolution (so the bind_variable_internal can use the correct
-+ variable context and hash table). */
-+static SHELL_VAR *
-+find_variable_nameref_context (v, vc, nvcp)
-+ SHELL_VAR *v;
-+ VAR_CONTEXT *vc;
-+ VAR_CONTEXT **nvcp;
-+{
-+ SHELL_VAR *nv, *nv2;
-+ VAR_CONTEXT *nvc;
-+
-+ /* Look starting at the current context all the way `up' */
-+ for (nv = v, nvc = vc; nvc; nvc = nvc->down)
-+ {
-+ nv2 = find_nameref_at_context (nv, nvc);
-+ if (nv2 == 0)
-+ continue;
-+ nv = nv2;
-+ if (*nvcp)
-+ *nvcp = nvc;
-+ if (nameref_p (nv) == 0)
-+ break;
-+ }
-+ return (nameref_p (nv) ? (SHELL_VAR *)NULL : nv);
-+}
-+
-+/* Do nameref resolution from the VC, which is the local context for some
-+ function or builtin, `up' the chain to the global variables context. If
-+ NVCP is not NULL, return the variable context where we finally ended the
-+ nameref resolution (so the bind_variable_internal can use the correct
-+ variable context and hash table). */
-+static SHELL_VAR *
-+find_variable_last_nameref_context (v, vc, nvcp)
-+ SHELL_VAR *v;
-+ VAR_CONTEXT *vc;
-+ VAR_CONTEXT **nvcp;
-+{
-+ SHELL_VAR *nv, *nv2;
-+ VAR_CONTEXT *nvc;
-+
-+ /* Look starting at the current context all the way `up' */
-+ for (nv = v, nvc = vc; nvc; nvc = nvc->down)
-+ {
-+ nv2 = find_nameref_at_context (nv, nvc);
-+ if (nv2 == 0)
-+ continue;
-+ nv = nv2;
-+ if (*nvcp)
-+ *nvcp = nvc;
-+ }
-+ return (nameref_p (nv) ? nv : (SHELL_VAR *)NULL);
-+}
-+
-+/* Find a variable, forcing a search of the temporary environment first */
-+SHELL_VAR *
-+find_variable_tempenv (name)
-+ const char *name;
-+{
-+ SHELL_VAR *var;
-+
-+ var = find_variable_internal (name, 1);
-+ if (var && nameref_p (var))
-+ var = find_variable_nameref (var);
-+ return (var);
-+}
-+
-+/* Find a variable, not forcing a search of the temporary environment first */
-+SHELL_VAR *
-+find_variable_notempenv (name)
-+ const char *name;
-+{
-+ SHELL_VAR *var;
-+
-+ var = find_variable_internal (name, 0);
-+ if (var && nameref_p (var))
-+ var = find_variable_nameref (var);
-+ return (var);
-+}
-+
-+SHELL_VAR *
-+find_global_variable (name)
-+ const char *name;
-+{
-+ SHELL_VAR *var;
-+
-+ var = var_lookup (name, global_variables);
-+ if (var && nameref_p (var))
-+ var = find_variable_nameref (var);
-+
-+ if (var == 0)
-+ return ((SHELL_VAR *)NULL);
-+
-+ return (var->dynamic_value ? (*(var->dynamic_value)) (var) : var);
-+}
-+
-+SHELL_VAR *
-+find_global_variable_noref (name)
-+ const char *name;
-+{
-+ SHELL_VAR *var;
-+
-+ var = var_lookup (name, global_variables);
-+
-+ if (var == 0)
-+ return ((SHELL_VAR *)NULL);
-+
-+ return (var->dynamic_value ? (*(var->dynamic_value)) (var) : var);
-+}
-+
-+SHELL_VAR *
-+find_shell_variable (name)
-+ const char *name;
-+{
-+ SHELL_VAR *var;
-+
-+ var = var_lookup (name, shell_variables);
-+ if (var && nameref_p (var))
-+ var = find_variable_nameref (var);
-+
-+ if (var == 0)
-+ return ((SHELL_VAR *)NULL);
-+
-+ return (var->dynamic_value ? (*(var->dynamic_value)) (var) : var);
-+}
-+
-+/* Look up the variable entry named NAME. Returns the entry or NULL. */
-+SHELL_VAR *
-+find_variable (name)
-+ const char *name;
-+{
-+ SHELL_VAR *v;
-+
-+ last_table_searched = 0;
-+ v = find_variable_internal (name, (expanding_redir == 0 && (assigning_in_environment || executing_builtin)));
-+ if (v && nameref_p (v))
-+ v = find_variable_nameref (v);
-+ return v;
-+}
-+
-+SHELL_VAR *
-+find_variable_noref (name)
-+ const char *name;
-+{
-+ SHELL_VAR *v;
-+
-+ v = find_variable_internal (name, (expanding_redir == 0 && (assigning_in_environment || executing_builtin)));
-+ return v;
-+}
-+
-+/* Look up the function entry whose name matches STRING.
-+ Returns the entry or NULL. */
-+SHELL_VAR *
-+find_function (name)
-+ const char *name;
-+{
-+ return (hash_lookup (name, shell_functions));
-+}
-+
-+/* Find the function definition for the shell function named NAME. Returns
-+ the entry or NULL. */
-+FUNCTION_DEF *
-+find_function_def (name)
-+ const char *name;
-+{
-+#if defined (DEBUGGER)
-+ return ((FUNCTION_DEF *)hash_lookup (name, shell_function_defs));
-+#else
-+ return ((FUNCTION_DEF *)0);
-+#endif
-+}
-+
-+/* Return the value of VAR. VAR is assumed to have been the result of a
-+ lookup without any subscript, if arrays are compiled into the shell. */
-+char *
-+get_variable_value (var)
-+ SHELL_VAR *var;
-+{
-+ if (var == 0)
-+ return ((char *)NULL);
-+#if defined (ARRAY_VARS)
-+ else if (array_p (var))
-+ return (array_reference (array_cell (var), 0));
-+ else if (assoc_p (var))
-+ return (assoc_reference (assoc_cell (var), "0"));
-+#endif
-+ else
-+ return (value_cell (var));
-+}
-+
-+/* Return the string value of a variable. Return NULL if the variable
-+ doesn't exist. Don't cons a new string. This is a potential memory
-+ leak if the variable is found in the temporary environment. Since
-+ functions and variables have separate name spaces, returns NULL if
-+ var_name is a shell function only. */
-+char *
-+get_string_value (var_name)
-+ const char *var_name;
-+{
-+ SHELL_VAR *var;
-+
-+ var = find_variable (var_name);
-+ return ((var) ? get_variable_value (var) : (char *)NULL);
-+}
-+
-+/* This is present for use by the tilde and readline libraries. */
-+char *
-+sh_get_env_value (v)
-+ const char *v;
-+{
-+ return get_string_value (v);
-+}
-+
-+/* **************************************************************** */
-+/* */
-+/* Creating and setting variables */
-+/* */
-+/* **************************************************************** */
-+
-+/* Set NAME to VALUE if NAME has no value. */
-+SHELL_VAR *
-+set_if_not (name, value)
-+ char *name, *value;
-+{
-+ SHELL_VAR *v;
-+
-+ if (shell_variables == 0)
-+ create_variable_tables ();
-+
-+ v = find_variable (name);
-+ if (v == 0)
-+ v = bind_variable_internal (name, value, global_variables->table, HASH_NOSRCH, 0);
-+ return (v);
-+}
-+
-+/* Create a local variable referenced by NAME. */
-+SHELL_VAR *
-+make_local_variable (name)
-+ const char *name;
-+{
-+ SHELL_VAR *new_var, *old_var;
-+ VAR_CONTEXT *vc;
-+ int was_tmpvar;
-+ char *tmp_value;
-+
-+ /* local foo; local foo; is a no-op. */
-+ old_var = find_variable (name);
-+ if (old_var && local_p (old_var) && old_var->context == variable_context)
-+ return (old_var);
-+
-+ was_tmpvar = old_var && tempvar_p (old_var);
-+ /* If we're making a local variable in a shell function, the temporary env
-+ has already been merged into the function's variable context stack. We
-+ can assume that a temporary var in the same context appears in the same
-+ VAR_CONTEXT and can safely be returned without creating a new variable
-+ (which results in duplicate names in the same VAR_CONTEXT->table */
-+ /* We can't just test tmpvar_p because variables in the temporary env given
-+ to a shell function appear in the function's local variable VAR_CONTEXT
-+ but retain their tempvar attribute. We want temporary variables that are
-+ found in temporary_env, hence the test for last_table_searched, which is
-+ set in hash_lookup and only (so far) checked here. */
-+ if (was_tmpvar && old_var->context == variable_context && last_table_searched != temporary_env)
-+ {
-+ VUNSETATTR (old_var, att_invisible);
-+ return (old_var);
-+ }
-+ if (was_tmpvar)
-+ tmp_value = value_cell (old_var);
-+
-+ for (vc = shell_variables; vc; vc = vc->down)
-+ if (vc_isfuncenv (vc) && vc->scope == variable_context)
-+ break;
-+
-+ if (vc == 0)
-+ {
-+ internal_error (_("make_local_variable: no function context at current scope"));
-+ return ((SHELL_VAR *)NULL);
-+ }
-+ else if (vc->table == 0)
-+ vc->table = hash_create (TEMPENV_HASH_BUCKETS);
-+
-+ /* Since this is called only from the local/declare/typeset code, we can
-+ call builtin_error here without worry (of course, it will also work
-+ for anything that sets this_command_name). Variables with the `noassign'
-+ attribute may not be made local. The test against old_var's context
-+ level is to disallow local copies of readonly global variables (since I
-+ believe that this could be a security hole). Readonly copies of calling
-+ function local variables are OK. */
-+ if (old_var && (noassign_p (old_var) ||
-+ (readonly_p (old_var) && old_var->context == 0)))
-+ {
-+ if (readonly_p (old_var))
-+ sh_readonly (name);
-+ else if (noassign_p (old_var))
-+ builtin_error (_("%s: variable may not be assigned value"), name);
-+#if 0
-+ /* Let noassign variables through with a warning */
-+ if (readonly_p (old_var))
-+#endif
-+ return ((SHELL_VAR *)NULL);
-+ }
-+
-+ if (old_var == 0)
-+ new_var = make_new_variable (name, vc->table);
-+ else
-+ {
-+ new_var = make_new_variable (name, vc->table);
-+
-+ /* If we found this variable in one of the temporary environments,
-+ inherit its value. Watch to see if this causes problems with
-+ things like `x=4 local x'. XXX - see above for temporary env
-+ variables with the same context level as variable_context */
-+ /* XXX - we should only do this if the variable is not an array. */
-+ if (was_tmpvar)
-+ var_setvalue (new_var, savestring (tmp_value));
-+
-+ new_var->attributes = exported_p (old_var) ? att_exported : 0;
-+ }
-+
-+ vc->flags |= VC_HASLOCAL;
-+
-+ new_var->context = variable_context;
-+ VSETATTR (new_var, att_local);
-+
-+ if (ifsname (name))
-+ setifs (new_var);
-+
-+ if (was_tmpvar == 0)
-+ VSETATTR (new_var, att_invisible); /* XXX */
-+ return (new_var);
-+}
-+
-+/* Create a new shell variable with name NAME. */
-+static SHELL_VAR *
-+new_shell_variable (name)
-+ const char *name;
-+{
-+ SHELL_VAR *entry;
-+
-+ entry = (SHELL_VAR *)xmalloc (sizeof (SHELL_VAR));
-+
-+ entry->name = savestring (name);
-+ var_setvalue (entry, (char *)NULL);
-+ CLEAR_EXPORTSTR (entry);
-+
-+ entry->dynamic_value = (sh_var_value_func_t *)NULL;
-+ entry->assign_func = (sh_var_assign_func_t *)NULL;
-+
-+ entry->attributes = 0;
-+
-+ /* Always assume variables are to be made at toplevel!
-+ make_local_variable has the responsibility of changing the
-+ variable context. */
-+ entry->context = 0;
-+
-+ return (entry);
-+}
-+
-+/* Create a new shell variable with name NAME and add it to the hash table
-+ TABLE. */
-+static SHELL_VAR *
-+make_new_variable (name, table)
-+ const char *name;
-+ HASH_TABLE *table;
-+{
-+ SHELL_VAR *entry;
-+ BUCKET_CONTENTS *elt;
-+
-+ entry = new_shell_variable (name);
-+
-+ /* Make sure we have a shell_variables hash table to add to. */
-+ if (shell_variables == 0)
-+ create_variable_tables ();
-+
-+ elt = hash_insert (savestring (name), table, HASH_NOSRCH);
-+ elt->data = (PTR_T)entry;
-+
-+ return entry;
-+}
-+
-+#if defined (ARRAY_VARS)
-+SHELL_VAR *
-+make_new_array_variable (name)
-+ char *name;
-+{
-+ SHELL_VAR *entry;
-+ ARRAY *array;
-+
-+ entry = make_new_variable (name, global_variables->table);
-+ array = array_create ();
-+
-+ var_setarray (entry, array);
-+ VSETATTR (entry, att_array);
-+ return entry;
-+}
-+
-+SHELL_VAR *
-+make_local_array_variable (name, assoc_ok)
-+ char *name;
-+ int assoc_ok;
-+{
-+ SHELL_VAR *var;
-+ ARRAY *array;
-+
-+ var = make_local_variable (name);
-+ if (var == 0 || array_p (var) || (assoc_ok && assoc_p (var)))
-+ return var;
-+
-+ array = array_create ();
-+
-+ dispose_variable_value (var);
-+ var_setarray (var, array);
-+ VSETATTR (var, att_array);
-+ return var;
-+}
-+
-+SHELL_VAR *
-+make_new_assoc_variable (name)
-+ char *name;
-+{
-+ SHELL_VAR *entry;
-+ HASH_TABLE *hash;
-+
-+ entry = make_new_variable (name, global_variables->table);
-+ hash = assoc_create (0);
-+
-+ var_setassoc (entry, hash);
-+ VSETATTR (entry, att_assoc);
-+ return entry;
-+}
-+
-+SHELL_VAR *
-+make_local_assoc_variable (name)
-+ char *name;
-+{
-+ SHELL_VAR *var;
-+ HASH_TABLE *hash;
-+
-+ var = make_local_variable (name);
-+ if (var == 0 || assoc_p (var))
-+ return var;
-+
-+ dispose_variable_value (var);
-+ hash = assoc_create (0);
-+
-+ var_setassoc (var, hash);
-+ VSETATTR (var, att_assoc);
-+ return var;
-+}
-+#endif
-+
-+char *
-+make_variable_value (var, value, flags)
-+ SHELL_VAR *var;
-+ char *value;
-+ int flags;
-+{
-+ char *retval, *oval;
-+ intmax_t lval, rval;
-+ int expok, olen, op;
-+
-+ /* If this variable has had its type set to integer (via `declare -i'),
-+ then do expression evaluation on it and store the result. The
-+ functions in expr.c (evalexp()) and bind_int_variable() are responsible
-+ for turning off the integer flag if they don't want further
-+ evaluation done. */
-+ if (integer_p (var))
-+ {
-+ if (flags & ASS_APPEND)
-+ {
-+ oval = value_cell (var);
-+ lval = evalexp (oval, &expok); /* ksh93 seems to do this */
-+ if (expok == 0)
-+ {
-+ top_level_cleanup ();
-+ jump_to_top_level (DISCARD);
-+ }
-+ }
-+ rval = evalexp (value, &expok);
-+ if (expok == 0)
-+ {
-+ top_level_cleanup ();
-+ jump_to_top_level (DISCARD);
-+ }
-+ /* This can be fooled if the variable's value changes while evaluating
-+ `rval'. We can change it if we move the evaluation of lval to here. */
-+ if (flags & ASS_APPEND)
-+ rval += lval;
-+ retval = itos (rval);
-+ }
-+#if defined (CASEMOD_ATTRS)
-+ else if (capcase_p (var) || uppercase_p (var) || lowercase_p (var))
-+ {
-+ if (flags & ASS_APPEND)
-+ {
-+ oval = get_variable_value (var);
-+ if (oval == 0) /* paranoia */
-+ oval = "";
-+ olen = STRLEN (oval);
-+ retval = (char *)xmalloc (olen + (value ? STRLEN (value) : 0) + 1);
-+ strcpy (retval, oval);
-+ if (value)
-+ strcpy (retval+olen, value);
-+ }
-+ else if (*value)
-+ retval = savestring (value);
-+ else
-+ {
-+ retval = (char *)xmalloc (1);
-+ retval[0] = '\0';
-+ }
-+ op = capcase_p (var) ? CASE_CAPITALIZE
-+ : (uppercase_p (var) ? CASE_UPPER : CASE_LOWER);
-+ oval = sh_modcase (retval, (char *)0, op);
-+ free (retval);
-+ retval = oval;
-+ }
-+#endif /* CASEMOD_ATTRS */
-+ else if (value)
-+ {
-+ if (flags & ASS_APPEND)
-+ {
-+ oval = get_variable_value (var);
-+ if (oval == 0) /* paranoia */
-+ oval = "";
-+ olen = STRLEN (oval);
-+ retval = (char *)xmalloc (olen + (value ? STRLEN (value) : 0) + 1);
-+ strcpy (retval, oval);
-+ if (value)
-+ strcpy (retval+olen, value);
-+ }
-+ else if (*value)
-+ retval = savestring (value);
-+ else
-+ {
-+ retval = (char *)xmalloc (1);
-+ retval[0] = '\0';
-+ }
-+ }
-+ else
-+ retval = (char *)NULL;
-+
-+ return retval;
-+}
-+
-+/* Bind a variable NAME to VALUE in the HASH_TABLE TABLE, which may be the
-+ temporary environment (but usually is not). */
-+static SHELL_VAR *
-+bind_variable_internal (name, value, table, hflags, aflags)
-+ const char *name;
-+ char *value;
-+ HASH_TABLE *table;
-+ int hflags, aflags;
-+{
-+ char *newval;
-+ SHELL_VAR *entry;
-+
-+ entry = (hflags & HASH_NOSRCH) ? (SHELL_VAR *)NULL : hash_lookup (name, table);
-+ /* Follow the nameref chain here if this is the global variables table */
-+ if (entry && nameref_p (entry) && (invisible_p (entry) == 0) && table == global_variables->table)
-+ {
-+ entry = find_global_variable (entry->name);
-+ /* Let's see if we have a nameref referencing a variable that hasn't yet
-+ been created. */
-+ if (entry == 0)
-+ entry = find_variable_last_nameref (name); /* XXX */
-+ if (entry == 0) /* just in case */
-+ return (entry);
-+ }
-+
-+ /* The first clause handles `declare -n ref; ref=x;' */
-+ if (entry && invisible_p (entry) && nameref_p (entry))
-+ goto assign_value;
-+ else if (entry && nameref_p (entry))
-+ {
-+ newval = nameref_cell (entry);
-+#if defined (ARRAY_VARS)
-+ /* declare -n foo=x[2] */
-+ if (valid_array_reference (newval))
-+ /* XXX - should it be aflags? */
-+ entry = assign_array_element (newval, make_variable_value (entry, value, 0), aflags);
-+ else
-+#endif
-+ {
-+ entry = make_new_variable (newval, table);
-+ var_setvalue (entry, make_variable_value (entry, value, 0));
-+ }
-+ }
-+ else if (entry == 0)
-+ {
-+ entry = make_new_variable (name, table);
-+ var_setvalue (entry, make_variable_value (entry, value, 0)); /* XXX */
-+ }
-+ else if (entry->assign_func) /* array vars have assign functions now */
-+ {
-+ INVALIDATE_EXPORTSTR (entry);
-+ newval = (aflags & ASS_APPEND) ? make_variable_value (entry, value, aflags) : value;
-+ if (assoc_p (entry))
-+ entry = (*(entry->assign_func)) (entry, newval, -1, savestring ("0"));
-+ else if (array_p (entry))
-+ entry = (*(entry->assign_func)) (entry, newval, 0, 0);
-+ else
-+ entry = (*(entry->assign_func)) (entry, newval, -1, 0);
-+ if (newval != value)
-+ free (newval);
-+ return (entry);
-+ }
-+ else
-+ {
-+assign_value:
-+ if (readonly_p (entry) || noassign_p (entry))
-+ {
-+ if (readonly_p (entry))
-+ err_readonly (name);
-+ return (entry);
-+ }
-+
-+ /* Variables which are bound are visible. */
-+ VUNSETATTR (entry, att_invisible);
-+
-+#if defined (ARRAY_VARS)
-+ if (assoc_p (entry) || array_p (entry))
-+ newval = make_array_variable_value (entry, 0, "0", value, aflags);
-+ else
-+#endif
-+
-+ newval = make_variable_value (entry, value, aflags); /* XXX */
-+
-+ /* Invalidate any cached export string */
-+ INVALIDATE_EXPORTSTR (entry);
-+
-+#if defined (ARRAY_VARS)
-+ /* XXX -- this bears looking at again -- XXX */
-+ /* If an existing array variable x is being assigned to with x=b or
-+ `read x' or something of that nature, silently convert it to
-+ x[0]=b or `read x[0]'. */
-+ if (assoc_p (entry))
-+ {
-+ assoc_insert (assoc_cell (entry), savestring ("0"), newval);
-+ free (newval);
-+ }
-+ else if (array_p (entry))
-+ {
-+ array_insert (array_cell (entry), 0, newval);
-+ free (newval);
-+ }
-+ else
-+#endif
-+ {
-+ FREE (value_cell (entry));
-+ var_setvalue (entry, newval);
-+ }
-+ }
-+
-+ if (mark_modified_vars)
-+ VSETATTR (entry, att_exported);
-+
-+ if (exported_p (entry))
-+ array_needs_making = 1;
-+
-+ return (entry);
-+}
-+
-+/* Bind a variable NAME to VALUE. This conses up the name
-+ and value strings. If we have a temporary environment, we bind there
-+ first, then we bind into shell_variables. */
-+
-+SHELL_VAR *
-+bind_variable (name, value, flags)
-+ const char *name;
-+ char *value;
-+ int flags;
-+{
-+ SHELL_VAR *v, *nv;
-+ VAR_CONTEXT *vc, *nvc;
-+ int level;
-+
-+ if (shell_variables == 0)
-+ create_variable_tables ();
-+
-+ /* If we have a temporary environment, look there first for the variable,
-+ and, if found, modify the value there before modifying it in the
-+ shell_variables table. This allows sourced scripts to modify values
-+ given to them in a temporary environment while modifying the variable
-+ value that the caller sees. */
-+ if (temporary_env)
-+ bind_tempenv_variable (name, value);
-+
-+ /* XXX -- handle local variables here. */
-+ for (vc = shell_variables; vc; vc = vc->down)
-+ {
-+ if (vc_isfuncenv (vc) || vc_isbltnenv (vc))
-+ {
-+ v = hash_lookup (name, vc->table);
-+ nvc = vc;
-+ if (v && nameref_p (v))
-+ {
-+ nv = find_variable_nameref_context (v, vc, &nvc);
-+ if (nv == 0)
-+ {
-+ nv = find_variable_last_nameref_context (v, vc, &nvc);
-+ if (nv && nameref_p (nv))
-+ {
-+ /* If this nameref variable doesn't have a value yet,
-+ set the value. Otherwise, assign using the value as
-+ normal. */
-+ if (nameref_cell (nv) == 0)
-+ return (bind_variable_internal (nv->name, value, nvc->table, 0, flags));
-+ return (bind_variable_internal (nameref_cell (nv), value, nvc->table, 0, flags));
-+ }
-+ else
-+ v = nv;
-+ }
-+ else
-+ v = nv;
-+ }
-+ if (v)
-+ return (bind_variable_internal (v->name, value, nvc->table, 0, flags));
-+ }
-+ }
-+ /* bind_variable_internal will handle nameref resolution in this case */
-+ return (bind_variable_internal (name, value, global_variables->table, 0, flags));
-+}
-+
-+SHELL_VAR *
-+bind_global_variable (name, value, flags)
-+ const char *name;
-+ char *value;
-+ int flags;
-+{
-+ SHELL_VAR *v, *nv;
-+ VAR_CONTEXT *vc, *nvc;
-+ int level;
-+
-+ if (shell_variables == 0)
-+ create_variable_tables ();
-+
-+ /* bind_variable_internal will handle nameref resolution in this case */
-+ return (bind_variable_internal (name, value, global_variables->table, 0, flags));
-+}
-+
-+/* Make VAR, a simple shell variable, have value VALUE. Once assigned a
-+ value, variables are no longer invisible. This is a duplicate of part
-+ of the internals of bind_variable. If the variable is exported, or
-+ all modified variables should be exported, mark the variable for export
-+ and note that the export environment needs to be recreated. */
-+SHELL_VAR *
-+bind_variable_value (var, value, aflags)
-+ SHELL_VAR *var;
-+ char *value;
-+ int aflags;
-+{
-+ char *t;
-+ int invis;
-+
-+ invis = invisible_p (var);
-+ VUNSETATTR (var, att_invisible);
-+
-+ if (var->assign_func)
-+ {
-+ /* If we're appending, we need the old value, so use
-+ make_variable_value */
-+ t = (aflags & ASS_APPEND) ? make_variable_value (var, value, aflags) : value;
-+ (*(var->assign_func)) (var, t, -1, 0);
-+ if (t != value && t)
-+ free (t);
-+ }
-+ else
-+ {
-+ t = make_variable_value (var, value, aflags);
-+#if defined (ARRAY_VARS)
-+ if ((aflags & ASS_NAMEREF) && (t == 0 || *t == 0 || (legal_identifier (t) == 0 && valid_array_reference (t) == 0)))
-+#else
-+ if ((aflags & ASS_NAMEREF) && (t == 0 || *t == 0 || legal_identifier (t) == 0))
-+#endif
-+ {
-+ free (t);
-+ if (invis)
-+ VSETATTR (var, att_invisible); /* XXX */
-+ return ((SHELL_VAR *)NULL);
-+ }
-+ FREE (value_cell (var));
-+ var_setvalue (var, t);
-+ }
-+
-+ INVALIDATE_EXPORTSTR (var);
-+
-+ if (mark_modified_vars)
-+ VSETATTR (var, att_exported);
-+
-+ if (exported_p (var))
-+ array_needs_making = 1;
-+
-+ return (var);
-+}
-+
-+/* Bind/create a shell variable with the name LHS to the RHS.
-+ This creates or modifies a variable such that it is an integer.
-+
-+ This used to be in expr.c, but it is here so that all of the
-+ variable binding stuff is localized. Since we don't want any
-+ recursive evaluation from bind_variable() (possible without this code,
-+ since bind_variable() calls the evaluator for variables with the integer
-+ attribute set), we temporarily turn off the integer attribute for each
-+ variable we set here, then turn it back on after binding as necessary. */
-+
-+SHELL_VAR *
-+bind_int_variable (lhs, rhs)
-+ char *lhs, *rhs;
-+{
-+ register SHELL_VAR *v;
-+ int isint, isarr, implicitarray;
-+
-+ isint = isarr = implicitarray = 0;
-+#if defined (ARRAY_VARS)
-+ if (valid_array_reference (lhs))
-+ {
-+ isarr = 1;
-+ v = array_variable_part (lhs, (char **)0, (int *)0);
-+ }
-+ else
-+#endif
-+ v = find_variable (lhs);
-+
-+ if (v)
-+ {
-+ isint = integer_p (v);
-+ VUNSETATTR (v, att_integer);
-+#if defined (ARRAY_VARS)
-+ if (array_p (v) && isarr == 0)
-+ implicitarray = 1;
-+#endif
-+ }
-+
-+#if defined (ARRAY_VARS)
-+ if (isarr)
-+ v = assign_array_element (lhs, rhs, 0);
-+ else if (implicitarray)
-+ v = bind_array_variable (lhs, 0, rhs, 0);
-+ else
-+#endif
-+ v = bind_variable (lhs, rhs, 0);
-+
-+ if (v && isint)
-+ VSETATTR (v, att_integer);
-+
-+ VUNSETATTR (v, att_invisible);
-+
-+ return (v);
-+}
-+
-+SHELL_VAR *
-+bind_var_to_int (var, val)
-+ char *var;
-+ intmax_t val;
-+{
-+ char ibuf[INT_STRLEN_BOUND (intmax_t) + 1], *p;
-+
-+ p = fmtulong (val, 10, ibuf, sizeof (ibuf), 0);
-+ return (bind_int_variable (var, p));
-+}
-+
-+/* Do a function binding to a variable. You pass the name and
-+ the command to bind to. This conses the name and command. */
-+SHELL_VAR *
-+bind_function (name, value)
-+ const char *name;
-+ COMMAND *value;
-+{
-+ SHELL_VAR *entry;
-+
-+ entry = find_function (name);
-+ if (entry == 0)
-+ {
-+ BUCKET_CONTENTS *elt;
-+
-+ elt = hash_insert (savestring (name), shell_functions, HASH_NOSRCH);
-+ entry = new_shell_variable (name);
-+ elt->data = (PTR_T)entry;
-+ }
-+ else
-+ INVALIDATE_EXPORTSTR (entry);
-+
-+ if (var_isset (entry))
-+ dispose_command (function_cell (entry));
-+
-+ if (value)
-+ var_setfunc (entry, copy_command (value));
-+ else
-+ var_setfunc (entry, 0);
-+
-+ VSETATTR (entry, att_function);
-+
-+ if (mark_modified_vars)
-+ VSETATTR (entry, att_exported);
-+
-+ VUNSETATTR (entry, att_invisible); /* Just to be sure */
-+
-+ if (exported_p (entry))
-+ array_needs_making = 1;
-+
-+#if defined (PROGRAMMABLE_COMPLETION)
-+ set_itemlist_dirty (&it_functions);
-+#endif
-+
-+ return (entry);
-+}
-+
-+#if defined (DEBUGGER)
-+/* Bind a function definition, which includes source file and line number
-+ information in addition to the command, into the FUNCTION_DEF hash table.*/
-+void
-+bind_function_def (name, value)
-+ const char *name;
-+ FUNCTION_DEF *value;
-+{
-+ FUNCTION_DEF *entry;
-+ BUCKET_CONTENTS *elt;
-+ COMMAND *cmd;
-+
-+ entry = find_function_def (name);
-+ if (entry)
-+ {
-+ dispose_function_def_contents (entry);
-+ entry = copy_function_def_contents (value, entry);
-+ }
-+ else
-+ {
-+ cmd = value->command;
-+ value->command = 0;
-+ entry = copy_function_def (value);
-+ value->command = cmd;
-+
-+ elt = hash_insert (savestring (name), shell_function_defs, HASH_NOSRCH);
-+ elt->data = (PTR_T *)entry;
-+ }
-+}
-+#endif /* DEBUGGER */
-+
-+/* Add STRING, which is of the form foo=bar, to the temporary environment
-+ HASH_TABLE (temporary_env). The functions in execute_cmd.c are
-+ responsible for moving the main temporary env to one of the other
-+ temporary environments. The expansion code in subst.c calls this. */
-+int
-+assign_in_env (word, flags)
-+ WORD_DESC *word;
-+ int flags;
-+{
-+ int offset, aflags;
-+ char *name, *temp, *value;
-+ SHELL_VAR *var;
-+ const char *string;
-+
-+ string = word->word;
-+
-+ aflags = 0;
-+ offset = assignment (string, 0);
-+ name = savestring (string);
-+ value = (char *)NULL;
-+
-+ if (name[offset] == '=')
-+ {
-+ name[offset] = 0;
-+
-+ /* don't ignore the `+' when assigning temporary environment */
-+ if (name[offset - 1] == '+')
-+ {
-+ name[offset - 1] = '\0';
-+ aflags |= ASS_APPEND;
-+ }
-+
-+ var = find_variable (name);
-+ if (var && (readonly_p (var) || noassign_p (var)))
-+ {
-+ if (readonly_p (var))
-+ err_readonly (name);
-+ free (name);
-+ return (0);
-+ }
-+
-+ temp = name + offset + 1;
-+ value = expand_assignment_string_to_string (temp, 0);
-+
-+ if (var && (aflags & ASS_APPEND))
-+ {
-+ temp = make_variable_value (var, value, aflags);
-+ FREE (value);
-+ value = temp;
-+ }
-+ }
-+
-+ if (temporary_env == 0)
-+ temporary_env = hash_create (TEMPENV_HASH_BUCKETS);
-+
-+ var = hash_lookup (name, temporary_env);
-+ if (var == 0)
-+ var = make_new_variable (name, temporary_env);
-+ else
-+ FREE (value_cell (var));
-+
-+ if (value == 0)
-+ {
-+ value = (char *)xmalloc (1); /* like do_assignment_internal */
-+ value[0] = '\0';
-+ }
-+
-+ var_setvalue (var, value);
-+ var->attributes |= (att_exported|att_tempvar);
-+ var->context = variable_context; /* XXX */
-+
-+ INVALIDATE_EXPORTSTR (var);
-+ var->exportstr = mk_env_string (name, value, 0);
-+
-+ array_needs_making = 1;
-+
-+ if (flags)
-+ stupidly_hack_special_variables (name);
-+
-+ if (echo_command_at_execute)
-+ /* The Korn shell prints the `+ ' in front of assignment statements,
-+ so we do too. */
-+ xtrace_print_assignment (name, value, 0, 1);
-+
-+ free (name);
-+ return 1;
-+}
-+
-+/* **************************************************************** */
-+/* */
-+/* Copying variables */
-+/* */
-+/* **************************************************************** */
-+
-+#ifdef INCLUDE_UNUSED
-+/* Copy VAR to a new data structure and return that structure. */
-+SHELL_VAR *
-+copy_variable (var)
-+ SHELL_VAR *var;
-+{
-+ SHELL_VAR *copy = (SHELL_VAR *)NULL;
-+
-+ if (var)
-+ {
-+ copy = (SHELL_VAR *)xmalloc (sizeof (SHELL_VAR));
-+
-+ copy->attributes = var->attributes;
-+ copy->name = savestring (var->name);
-+
-+ if (function_p (var))
-+ var_setfunc (copy, copy_command (function_cell (var)));
-+#if defined (ARRAY_VARS)
-+ else if (array_p (var))
-+ var_setarray (copy, array_copy (array_cell (var)));
-+ else if (assoc_p (var))
-+ var_setassoc (copy, assoc_copy (assoc_cell (var)));
-+#endif
-+ else if (nameref_cell (var)) /* XXX - nameref */
-+ var_setref (copy, savestring (nameref_cell (var)));
-+ else if (value_cell (var)) /* XXX - nameref */
-+ var_setvalue (copy, savestring (value_cell (var)));
-+ else
-+ var_setvalue (copy, (char *)NULL);
-+
-+ copy->dynamic_value = var->dynamic_value;
-+ copy->assign_func = var->assign_func;
-+
-+ copy->exportstr = COPY_EXPORTSTR (var);
-+
-+ copy->context = var->context;
-+ }
-+ return (copy);
-+}
-+#endif
-+
-+/* **************************************************************** */
-+/* */
-+/* Deleting and unsetting variables */
-+/* */
-+/* **************************************************************** */
-+
-+/* Dispose of the information attached to VAR. */
-+static void
-+dispose_variable_value (var)
-+ SHELL_VAR *var;
-+{
-+ if (function_p (var))
-+ dispose_command (function_cell (var));
-+#if defined (ARRAY_VARS)
-+ else if (array_p (var))
-+ array_dispose (array_cell (var));
-+ else if (assoc_p (var))
-+ assoc_dispose (assoc_cell (var));
-+#endif
-+ else if (nameref_p (var))
-+ FREE (nameref_cell (var));
-+ else
-+ FREE (value_cell (var));
-+}
-+
-+void
-+dispose_variable (var)
-+ SHELL_VAR *var;
-+{
-+ if (var == 0)
-+ return;
-+
-+ if (nofree_p (var) == 0)
-+ dispose_variable_value (var);
-+
-+ FREE_EXPORTSTR (var);
-+
-+ free (var->name);
-+
-+ if (exported_p (var))
-+ array_needs_making = 1;
-+
-+ free (var);
-+}
-+
-+/* Unset the shell variable referenced by NAME. Unsetting a nameref variable
-+ unsets the variable it resolves to but leaves the nameref alone. */
-+int
-+unbind_variable (name)
-+ const char *name;
-+{
-+ SHELL_VAR *v, *nv;
-+ int r;
-+
-+ v = var_lookup (name, shell_variables);
-+ nv = (v && nameref_p (v)) ? find_variable_nameref (v) : (SHELL_VAR *)NULL;
-+
-+ r = nv ? makunbound (nv->name, shell_variables) : makunbound (name, shell_variables);
-+ return r;
-+}
-+
-+/* Unbind NAME, where NAME is assumed to be a nameref variable */
-+int
-+unbind_nameref (name)
-+ const char *name;
-+{
-+ SHELL_VAR *v;
-+
-+ v = var_lookup (name, shell_variables);
-+ if (v && nameref_p (v))
-+ return makunbound (name, shell_variables);
-+ return 0;
-+}
-+
-+/* Unset the shell function named NAME. */
-+int
-+unbind_func (name)
-+ const char *name;
-+{
-+ BUCKET_CONTENTS *elt;
-+ SHELL_VAR *func;
-+
-+ elt = hash_remove (name, shell_functions, 0);
-+
-+ if (elt == 0)
-+ return -1;
-+
-+#if defined (PROGRAMMABLE_COMPLETION)
-+ set_itemlist_dirty (&it_functions);
-+#endif
-+
-+ func = (SHELL_VAR *)elt->data;
-+ if (func)
-+ {
-+ if (exported_p (func))
-+ array_needs_making++;
-+ dispose_variable (func);
-+ }
-+
-+ free (elt->key);
-+ free (elt);
-+
-+ return 0;
-+}
-+
-+#if defined (DEBUGGER)
-+int
-+unbind_function_def (name)
-+ const char *name;
-+{
-+ BUCKET_CONTENTS *elt;
-+ FUNCTION_DEF *funcdef;
-+
-+ elt = hash_remove (name, shell_function_defs, 0);
-+
-+ if (elt == 0)
-+ return -1;
-+
-+ funcdef = (FUNCTION_DEF *)elt->data;
-+ if (funcdef)
-+ dispose_function_def (funcdef);
-+
-+ free (elt->key);
-+ free (elt);
-+
-+ return 0;
-+}
-+#endif /* DEBUGGER */
-+
-+int
-+delete_var (name, vc)
-+ const char *name;
-+ VAR_CONTEXT *vc;
-+{
-+ BUCKET_CONTENTS *elt;
-+ SHELL_VAR *old_var;
-+ VAR_CONTEXT *v;
-+
-+ for (elt = (BUCKET_CONTENTS *)NULL, v = vc; v; v = v->down)
-+ if (elt = hash_remove (name, v->table, 0))
-+ break;
-+
-+ if (elt == 0)
-+ return (-1);
-+
-+ old_var = (SHELL_VAR *)elt->data;
-+ free (elt->key);
-+ free (elt);
-+
-+ dispose_variable (old_var);
-+ return (0);
-+}
-+
-+/* Make the variable associated with NAME go away. HASH_LIST is the
-+ hash table from which this variable should be deleted (either
-+ shell_variables or shell_functions).
-+ Returns non-zero if the variable couldn't be found. */
-+int
-+makunbound (name, vc)
-+ const char *name;
-+ VAR_CONTEXT *vc;
-+{
-+ BUCKET_CONTENTS *elt, *new_elt;
-+ SHELL_VAR *old_var;
-+ VAR_CONTEXT *v;
-+ char *t;
-+
-+ for (elt = (BUCKET_CONTENTS *)NULL, v = vc; v; v = v->down)
-+ if (elt = hash_remove (name, v->table, 0))
-+ break;
-+
-+ if (elt == 0)
-+ return (-1);
-+
-+ old_var = (SHELL_VAR *)elt->data;
-+
-+ if (old_var && exported_p (old_var))
-+ array_needs_making++;
-+
-+ /* If we're unsetting a local variable and we're still executing inside
-+ the function, just mark the variable as invisible. The function
-+ eventually called by pop_var_context() will clean it up later. This
-+ must be done so that if the variable is subsequently assigned a new
-+ value inside the function, the `local' attribute is still present.
-+ We also need to add it back into the correct hash table. */
-+ if (old_var && local_p (old_var) && variable_context == old_var->context)
-+ {
-+ if (nofree_p (old_var))
-+ var_setvalue (old_var, (char *)NULL);
-+#if defined (ARRAY_VARS)
-+ else if (array_p (old_var))
-+ array_dispose (array_cell (old_var));
-+ else if (assoc_p (old_var))
-+ assoc_dispose (assoc_cell (old_var));
-+#endif
-+ else if (nameref_p (old_var))
-+ FREE (nameref_cell (old_var));
-+ else
-+ FREE (value_cell (old_var));
-+ /* Reset the attributes. Preserve the export attribute if the variable
-+ came from a temporary environment. Make sure it stays local, and
-+ make it invisible. */
-+ old_var->attributes = (exported_p (old_var) && tempvar_p (old_var)) ? att_exported : 0;
-+ VSETATTR (old_var, att_local);
-+ VSETATTR (old_var, att_invisible);
-+ var_setvalue (old_var, (char *)NULL);
-+ INVALIDATE_EXPORTSTR (old_var);
-+
-+ new_elt = hash_insert (savestring (old_var->name), v->table, 0);
-+ new_elt->data = (PTR_T)old_var;
-+ stupidly_hack_special_variables (old_var->name);
-+
-+ free (elt->key);
-+ free (elt);
-+ return (0);
-+ }
-+
-+ /* Have to save a copy of name here, because it might refer to
-+ old_var->name. If so, stupidly_hack_special_variables will
-+ reference freed memory. */
-+ t = savestring (name);
-+
-+ free (elt->key);
-+ free (elt);
-+
-+ dispose_variable (old_var);
-+ stupidly_hack_special_variables (t);
-+ free (t);
-+
-+ return (0);
-+}
-+
-+/* Get rid of all of the variables in the current context. */
-+void
-+kill_all_local_variables ()
-+{
-+ VAR_CONTEXT *vc;
-+
-+ for (vc = shell_variables; vc; vc = vc->down)
-+ if (vc_isfuncenv (vc) && vc->scope == variable_context)
-+ break;
-+ if (vc == 0)
-+ return; /* XXX */
-+
-+ if (vc->table && vc_haslocals (vc))
-+ {
-+ delete_all_variables (vc->table);
-+ hash_dispose (vc->table);
-+ }
-+ vc->table = (HASH_TABLE *)NULL;
-+}
-+
-+static void
-+free_variable_hash_data (data)
-+ PTR_T data;
-+{
-+ SHELL_VAR *var;
-+
-+ var = (SHELL_VAR *)data;
-+ dispose_variable (var);
-+}
-+
-+/* Delete the entire contents of the hash table. */
-+void
-+delete_all_variables (hashed_vars)
-+ HASH_TABLE *hashed_vars;
-+{
-+ hash_flush (hashed_vars, free_variable_hash_data);
-+}
-+
-+/* **************************************************************** */
-+/* */
-+/* Setting variable attributes */
-+/* */
-+/* **************************************************************** */
-+
-+#define FIND_OR_MAKE_VARIABLE(name, entry) \
-+ do \
-+ { \
-+ entry = find_variable (name); \
-+ if (!entry) \
-+ { \
-+ entry = bind_variable (name, "", 0); \
-+ if (!no_invisible_vars && entry) entry->attributes |= att_invisible; \
-+ } \
-+ } \
-+ while (0)
-+
-+/* Make the variable associated with NAME be readonly.
-+ If NAME does not exist yet, create it. */
-+void
-+set_var_read_only (name)
-+ char *name;
-+{
-+ SHELL_VAR *entry;
-+
-+ FIND_OR_MAKE_VARIABLE (name, entry);
-+ VSETATTR (entry, att_readonly);
-+}
-+
-+#ifdef INCLUDE_UNUSED
-+/* Make the function associated with NAME be readonly.
-+ If NAME does not exist, we just punt, like auto_export code below. */
-+void
-+set_func_read_only (name)
-+ const char *name;
-+{
-+ SHELL_VAR *entry;
-+
-+ entry = find_function (name);
-+ if (entry)
-+ VSETATTR (entry, att_readonly);
-+}
-+
-+/* Make the variable associated with NAME be auto-exported.
-+ If NAME does not exist yet, create it. */
-+void
-+set_var_auto_export (name)
-+ char *name;
-+{
-+ SHELL_VAR *entry;
-+
-+ FIND_OR_MAKE_VARIABLE (name, entry);
-+ set_auto_export (entry);
-+}
-+
-+/* Make the function associated with NAME be auto-exported. */
-+void
-+set_func_auto_export (name)
-+ const char *name;
-+{
-+ SHELL_VAR *entry;
-+
-+ entry = find_function (name);
-+ if (entry)
-+ set_auto_export (entry);
-+}
-+#endif
-+
-+/* **************************************************************** */
-+/* */
-+/* Creating lists of variables */
-+/* */
-+/* **************************************************************** */
-+
-+static VARLIST *
-+vlist_alloc (nentries)
-+ int nentries;
-+{
-+ VARLIST *vlist;
-+
-+ vlist = (VARLIST *)xmalloc (sizeof (VARLIST));
-+ vlist->list = (SHELL_VAR **)xmalloc ((nentries + 1) * sizeof (SHELL_VAR *));
-+ vlist->list_size = nentries;
-+ vlist->list_len = 0;
-+ vlist->list[0] = (SHELL_VAR *)NULL;
-+
-+ return vlist;
-+}
-+
-+static VARLIST *
-+vlist_realloc (vlist, n)
-+ VARLIST *vlist;
-+ int n;
-+{
-+ if (vlist == 0)
-+ return (vlist = vlist_alloc (n));
-+ if (n > vlist->list_size)
-+ {
-+ vlist->list_size = n;
-+ vlist->list = (SHELL_VAR **)xrealloc (vlist->list, (vlist->list_size + 1) * sizeof (SHELL_VAR *));
-+ }
-+ return vlist;
-+}
-+
-+static void
-+vlist_add (vlist, var, flags)
-+ VARLIST *vlist;
-+ SHELL_VAR *var;
-+ int flags;
-+{
-+ register int i;
-+
-+ for (i = 0; i < vlist->list_len; i++)
-+ if (STREQ (var->name, vlist->list[i]->name))
-+ break;
-+ if (i < vlist->list_len)
-+ return;
-+
-+ if (i >= vlist->list_size)
-+ vlist = vlist_realloc (vlist, vlist->list_size + 16);
-+
-+ vlist->list[vlist->list_len++] = var;
-+ vlist->list[vlist->list_len] = (SHELL_VAR *)NULL;
-+}
-+
-+/* Map FUNCTION over the variables in VAR_HASH_TABLE. Return an array of the
-+ variables for which FUNCTION returns a non-zero value. A NULL value
-+ for FUNCTION means to use all variables. */
-+SHELL_VAR **
-+map_over (function, vc)
-+ sh_var_map_func_t *function;
-+ VAR_CONTEXT *vc;
-+{
-+ VAR_CONTEXT *v;
-+ VARLIST *vlist;
-+ SHELL_VAR **ret;
-+ int nentries;
-+
-+ for (nentries = 0, v = vc; v; v = v->down)
-+ nentries += HASH_ENTRIES (v->table);
-+
-+ if (nentries == 0)
-+ return (SHELL_VAR **)NULL;
-+
-+ vlist = vlist_alloc (nentries);
-+
-+ for (v = vc; v; v = v->down)
-+ flatten (v->table, function, vlist, 0);
-+
-+ ret = vlist->list;
-+ free (vlist);
-+ return ret;
-+}
-+
-+SHELL_VAR **
-+map_over_funcs (function)
-+ sh_var_map_func_t *function;
-+{
-+ VARLIST *vlist;
-+ SHELL_VAR **ret;
-+
-+ if (shell_functions == 0 || HASH_ENTRIES (shell_functions) == 0)
-+ return ((SHELL_VAR **)NULL);
-+
-+ vlist = vlist_alloc (HASH_ENTRIES (shell_functions));
-+
-+ flatten (shell_functions, function, vlist, 0);
-+
-+ ret = vlist->list;
-+ free (vlist);
-+ return ret;
-+}
-+
-+/* Flatten VAR_HASH_TABLE, applying FUNC to each member and adding those
-+ elements for which FUNC succeeds to VLIST->list. FLAGS is reserved
-+ for future use. Only unique names are added to VLIST. If FUNC is
-+ NULL, each variable in VAR_HASH_TABLE is added to VLIST. If VLIST is
-+ NULL, FUNC is applied to each SHELL_VAR in VAR_HASH_TABLE. If VLIST
-+ and FUNC are both NULL, nothing happens. */
-+static void
-+flatten (var_hash_table, func, vlist, flags)
-+ HASH_TABLE *var_hash_table;
-+ sh_var_map_func_t *func;
-+ VARLIST *vlist;
-+ int flags;
-+{
-+ register int i;
-+ register BUCKET_CONTENTS *tlist;
-+ int r;
-+ SHELL_VAR *var;
-+
-+ if (var_hash_table == 0 || (HASH_ENTRIES (var_hash_table) == 0) || (vlist == 0 && func == 0))
-+ return;
-+
-+ for (i = 0; i < var_hash_table->nbuckets; i++)
-+ {
-+ for (tlist = hash_items (i, var_hash_table); tlist; tlist = tlist->next)
-+ {
-+ var = (SHELL_VAR *)tlist->data;
-+
-+ r = func ? (*func) (var) : 1;
-+ if (r && vlist)
-+ vlist_add (vlist, var, flags);
-+ }
-+ }
-+}
-+
-+void
-+sort_variables (array)
-+ SHELL_VAR **array;
-+{
-+ qsort (array, strvec_len ((char **)array), sizeof (SHELL_VAR *), (QSFUNC *)qsort_var_comp);
-+}
-+
-+static int
-+qsort_var_comp (var1, var2)
-+ SHELL_VAR **var1, **var2;
-+{
-+ int result;
-+
-+ if ((result = (*var1)->name[0] - (*var2)->name[0]) == 0)
-+ result = strcmp ((*var1)->name, (*var2)->name);
-+
-+ return (result);
-+}
-+
-+/* Apply FUNC to each variable in SHELL_VARIABLES, adding each one for
-+ which FUNC succeeds to an array of SHELL_VAR *s. Returns the array. */
-+static SHELL_VAR **
-+vapply (func)
-+ sh_var_map_func_t *func;
-+{
-+ SHELL_VAR **list;
-+
-+ list = map_over (func, shell_variables);
-+ if (list /* && posixly_correct */)
-+ sort_variables (list);
-+ return (list);
-+}
-+
-+/* Apply FUNC to each variable in SHELL_FUNCTIONS, adding each one for
-+ which FUNC succeeds to an array of SHELL_VAR *s. Returns the array. */
-+static SHELL_VAR **
-+fapply (func)
-+ sh_var_map_func_t *func;
-+{
-+ SHELL_VAR **list;
-+
-+ list = map_over_funcs (func);
-+ if (list /* && posixly_correct */)
-+ sort_variables (list);
-+ return (list);
-+}
-+
-+/* Create a NULL terminated array of all the shell variables. */
-+SHELL_VAR **
-+all_shell_variables ()
-+{
-+ return (vapply ((sh_var_map_func_t *)NULL));
-+}
-+
-+/* Create a NULL terminated array of all the shell functions. */
-+SHELL_VAR **
-+all_shell_functions ()
-+{
-+ return (fapply ((sh_var_map_func_t *)NULL));
-+}
-+
-+static int
-+visible_var (var)
-+ SHELL_VAR *var;
-+{
-+ return (invisible_p (var) == 0);
-+}
-+
-+SHELL_VAR **
-+all_visible_functions ()
-+{
-+ return (fapply (visible_var));
-+}
-+
-+SHELL_VAR **
-+all_visible_variables ()
-+{
-+ return (vapply (visible_var));
-+}
-+
-+/* Return non-zero if the variable VAR is visible and exported. Array
-+ variables cannot be exported. */
-+static int
-+visible_and_exported (var)
-+ SHELL_VAR *var;
-+{
-+ return (invisible_p (var) == 0 && exported_p (var));
-+}
-+
-+/* Candidate variables for the export environment are either valid variables
-+ with the export attribute or invalid variables inherited from the initial
-+ environment and simply passed through. */
-+static int
-+export_environment_candidate (var)
-+ SHELL_VAR *var;
-+{
-+ return (exported_p (var) && (invisible_p (var) == 0 || imported_p (var)));
-+}
-+
-+/* Return non-zero if VAR is a local variable in the current context and
-+ is exported. */
-+static int
-+local_and_exported (var)
-+ SHELL_VAR *var;
-+{
-+ return (invisible_p (var) == 0 && local_p (var) && var->context == variable_context && exported_p (var));
-+}
-+
-+SHELL_VAR **
-+all_exported_variables ()
-+{
-+ return (vapply (visible_and_exported));
-+}
-+
-+SHELL_VAR **
-+local_exported_variables ()
-+{
-+ return (vapply (local_and_exported));
-+}
-+
-+static int
-+variable_in_context (var)
-+ SHELL_VAR *var;
-+{
-+ return (invisible_p (var) == 0 && local_p (var) && var->context == variable_context);
-+}
-+
-+SHELL_VAR **
-+all_local_variables ()
-+{
-+ VARLIST *vlist;
-+ SHELL_VAR **ret;
-+ VAR_CONTEXT *vc;
-+
-+ vc = shell_variables;
-+ for (vc = shell_variables; vc; vc = vc->down)
-+ if (vc_isfuncenv (vc) && vc->scope == variable_context)
-+ break;
-+
-+ if (vc == 0)
-+ {
-+ internal_error (_("all_local_variables: no function context at current scope"));
-+ return (SHELL_VAR **)NULL;
-+ }
-+ if (vc->table == 0 || HASH_ENTRIES (vc->table) == 0 || vc_haslocals (vc) == 0)
-+ return (SHELL_VAR **)NULL;
-+
-+ vlist = vlist_alloc (HASH_ENTRIES (vc->table));
-+
-+ flatten (vc->table, variable_in_context, vlist, 0);
-+
-+ ret = vlist->list;
-+ free (vlist);
-+ if (ret)
-+ sort_variables (ret);
-+ return ret;
-+}
-+
-+#if defined (ARRAY_VARS)
-+/* Return non-zero if the variable VAR is visible and an array. */
-+static int
-+visible_array_vars (var)
-+ SHELL_VAR *var;
-+{
-+ return (invisible_p (var) == 0 && array_p (var));
-+}
-+
-+SHELL_VAR **
-+all_array_variables ()
-+{
-+ return (vapply (visible_array_vars));
-+}
-+#endif /* ARRAY_VARS */
-+
-+char **
-+all_variables_matching_prefix (prefix)
-+ const char *prefix;
-+{
-+ SHELL_VAR **varlist;
-+ char **rlist;
-+ int vind, rind, plen;
-+
-+ plen = STRLEN (prefix);
-+ varlist = all_visible_variables ();
-+ for (vind = 0; varlist && varlist[vind]; vind++)
-+ ;
-+ if (varlist == 0 || vind == 0)
-+ return ((char **)NULL);
-+ rlist = strvec_create (vind + 1);
-+ for (vind = rind = 0; varlist[vind]; vind++)
-+ {
-+ if (plen == 0 || STREQN (prefix, varlist[vind]->name, plen))
-+ rlist[rind++] = savestring (varlist[vind]->name);
-+ }
-+ rlist[rind] = (char *)0;
-+ free (varlist);
-+
-+ return rlist;
-+}
-+
-+/* **************************************************************** */
-+/* */
-+/* Managing temporary variable scopes */
-+/* */
-+/* **************************************************************** */
-+
-+/* Make variable NAME have VALUE in the temporary environment. */
-+static SHELL_VAR *
-+bind_tempenv_variable (name, value)
-+ const char *name;
-+ char *value;
-+{
-+ SHELL_VAR *var;
-+
-+ var = temporary_env ? hash_lookup (name, temporary_env) : (SHELL_VAR *)NULL;
-+
-+ if (var)
-+ {
-+ FREE (value_cell (var));
-+ var_setvalue (var, savestring (value));
-+ INVALIDATE_EXPORTSTR (var);
-+ }
-+
-+ return (var);
-+}
-+
-+/* Find a variable in the temporary environment that is named NAME.
-+ Return the SHELL_VAR *, or NULL if not found. */
-+SHELL_VAR *
-+find_tempenv_variable (name)
-+ const char *name;
-+{
-+ return (temporary_env ? hash_lookup (name, temporary_env) : (SHELL_VAR *)NULL);
-+}
-+
-+char **tempvar_list;
-+int tvlist_ind;
-+
-+/* Push the variable described by (SHELL_VAR *)DATA down to the next
-+ variable context from the temporary environment. */
-+static void
-+push_temp_var (data)
-+ PTR_T data;
-+{
-+ SHELL_VAR *var, *v;
-+ HASH_TABLE *binding_table;
-+
-+ var = (SHELL_VAR *)data;
-+
-+ binding_table = shell_variables->table;
-+ if (binding_table == 0)
-+ {
-+ if (shell_variables == global_variables)
-+ /* shouldn't happen */
-+ binding_table = shell_variables->table = global_variables->table = hash_create (0);
-+ else
-+ binding_table = shell_variables->table = hash_create (TEMPENV_HASH_BUCKETS);
-+ }
-+
-+ v = bind_variable_internal (var->name, value_cell (var), binding_table, 0, 0);
-+
-+ /* XXX - should we set the context here? It shouldn't matter because of how
-+ assign_in_env works, but might want to check. */
-+ if (binding_table == global_variables->table) /* XXX */
-+ var->attributes &= ~(att_tempvar|att_propagate);
-+ else
-+ {
-+ var->attributes |= att_propagate;
-+ if (binding_table == shell_variables->table)
-+ shell_variables->flags |= VC_HASTMPVAR;
-+ }
-+ v->attributes |= var->attributes;
-+
-+ if (find_special_var (var->name) >= 0)
-+ tempvar_list[tvlist_ind++] = savestring (var->name);
-+
-+ dispose_variable (var);
-+}
-+
-+static void
-+propagate_temp_var (data)
-+ PTR_T data;
-+{
-+ SHELL_VAR *var;
-+
-+ var = (SHELL_VAR *)data;
-+ if (tempvar_p (var) && (var->attributes & att_propagate))
-+ push_temp_var (data);
-+ else
-+ {
-+ if (find_special_var (var->name) >= 0)
-+ tempvar_list[tvlist_ind++] = savestring (var->name);
-+ dispose_variable (var);
-+ }
-+}
-+
-+/* Free the storage used in the hash table for temporary
-+ environment variables. PUSHF is a function to be called
-+ to free each hash table entry. It takes care of pushing variables
-+ to previous scopes if appropriate. PUSHF stores names of variables
-+ that require special handling (e.g., IFS) on tempvar_list, so this
-+ function can call stupidly_hack_special_variables on all the
-+ variables in the list when the temporary hash table is destroyed. */
-+static void
-+dispose_temporary_env (pushf)
-+ sh_free_func_t *pushf;
-+{
-+ int i;
-+
-+ tempvar_list = strvec_create (HASH_ENTRIES (temporary_env) + 1);
-+ tempvar_list[tvlist_ind = 0] = 0;
-+
-+ hash_flush (temporary_env, pushf);
-+ hash_dispose (temporary_env);
-+ temporary_env = (HASH_TABLE *)NULL;
-+
-+ tempvar_list[tvlist_ind] = 0;
-+
-+ array_needs_making = 1;
-+
-+#if 0
-+ sv_ifs ("IFS"); /* XXX here for now -- check setifs in assign_in_env */
-+#endif
-+ for (i = 0; i < tvlist_ind; i++)
-+ stupidly_hack_special_variables (tempvar_list[i]);
-+
-+ strvec_dispose (tempvar_list);
-+ tempvar_list = 0;
-+ tvlist_ind = 0;
-+}
-+
-+void
-+dispose_used_env_vars ()
-+{
-+ if (temporary_env)
-+ {
-+ dispose_temporary_env (propagate_temp_var);
-+ maybe_make_export_env ();
-+ }
-+}
-+
-+/* Take all of the shell variables in the temporary environment HASH_TABLE
-+ and make shell variables from them at the current variable context. */
-+void
-+merge_temporary_env ()
-+{
-+ if (temporary_env)
-+ dispose_temporary_env (push_temp_var);
-+}
-+
-+/* **************************************************************** */
-+/* */
-+/* Creating and manipulating the environment */
-+/* */
-+/* **************************************************************** */
-+
-+static inline char *
-+mk_env_string (name, value, isfunc)
-+ const char *name, *value;
-+ int isfunc;
-+{
-+ size_t name_len, value_len;
-+ char *p, *q;
-+
-+ name_len = strlen (name);
-+ value_len = STRLEN (value);
-+
-+ /* If we are exporting a shell function, construct the encoded function
-+ name. */
-+ if (isfunc && value)
-+ {
-+ p = (char *)xmalloc (BASHFUNC_PREFLEN + name_len + BASHFUNC_SUFFLEN + value_len + 2);
-+ q = p;
-+ memcpy (q, BASHFUNC_PREFIX, BASHFUNC_PREFLEN);
-+ q += BASHFUNC_PREFLEN;
-+ memcpy (q, name, name_len);
-+ q += name_len;
-+ memcpy (q, BASHFUNC_SUFFIX, BASHFUNC_SUFFLEN);
-+ q += BASHFUNC_SUFFLEN;
-+ }
-+ else
-+ {
-+ p = (char *)xmalloc (2 + name_len + value_len);
-+ memcpy (p, name, name_len);
-+ q = p + name_len;
-+ }
-+
-+ q[0] = '=';
-+ if (value && *value)
-+ memcpy (q + 1, value, value_len + 1);
-+ else
-+ q[1] = '\0';
-+
-+ return (p);
-+}
-+
-+#ifdef DEBUG
-+/* Debugging */
-+static int
-+valid_exportstr (v)
-+ SHELL_VAR *v;
-+{
-+ char *s;
-+
-+ s = v->exportstr;
-+ if (s == 0)
-+ {
-+ internal_error (_("%s has null exportstr"), v->name);
-+ return (0);
-+ }
-+ if (legal_variable_starter ((unsigned char)*s) == 0)
-+ {
-+ internal_error (_("invalid character %d in exportstr for %s"), *s, v->name);
-+ return (0);
-+ }
-+ for (s = v->exportstr + 1; s && *s; s++)
-+ {
-+ if (*s == '=')
-+ break;
-+ if (legal_variable_char ((unsigned char)*s) == 0)
-+ {
-+ internal_error (_("invalid character %d in exportstr for %s"), *s, v->name);
-+ return (0);
-+ }
-+ }
-+ if (*s != '=')
-+ {
-+ internal_error (_("no `=' in exportstr for %s"), v->name);
-+ return (0);
-+ }
-+ return (1);
-+}
-+#endif
-+
-+static char **
-+make_env_array_from_var_list (vars)
-+ SHELL_VAR **vars;
-+{
-+ register int i, list_index;
-+ register SHELL_VAR *var;
-+ char **list, *value;
-+
-+ list = strvec_create ((1 + strvec_len ((char **)vars)));
-+
-+#define USE_EXPORTSTR (value == var->exportstr)
-+
-+ for (i = 0, list_index = 0; var = vars[i]; i++)
-+ {
-+#if defined (__CYGWIN__)
-+ /* We don't use the exportstr stuff on Cygwin at all. */
-+ INVALIDATE_EXPORTSTR (var);
-+#endif
-+ if (var->exportstr)
-+ value = var->exportstr;
-+ else if (function_p (var))
-+ value = named_function_string ((char *)NULL, function_cell (var), 0);
-+#if defined (ARRAY_VARS)
-+ else if (array_p (var))
-+# if ARRAY_EXPORT
-+ value = array_to_assignment_string (array_cell (var));
-+# else
-+ continue; /* XXX array vars cannot yet be exported */
-+# endif /* ARRAY_EXPORT */
-+ else if (assoc_p (var))
-+# if 0
-+ value = assoc_to_assignment_string (assoc_cell (var));
-+# else
-+ continue; /* XXX associative array vars cannot yet be exported */
-+# endif
-+#endif
-+ else
-+ value = value_cell (var);
-+
-+ if (value)
-+ {
-+ /* Gee, I'd like to get away with not using savestring() if we're
-+ using the cached exportstr... */
-+ list[list_index] = USE_EXPORTSTR ? savestring (value)
-+ : mk_env_string (var->name, value, function_p (var));
-+
-+ if (USE_EXPORTSTR == 0)
-+ SAVE_EXPORTSTR (var, list[list_index]);
-+
-+ list_index++;
-+#undef USE_EXPORTSTR
-+
-+#if 0 /* not yet */
-+#if defined (ARRAY_VARS)
-+ if (array_p (var) || assoc_p (var))
-+ free (value);
-+#endif
-+#endif
-+ }
-+ }
-+
-+ list[list_index] = (char *)NULL;
-+ return (list);
-+}
-+
-+/* Make an array of assignment statements from the hash table
-+ HASHED_VARS which contains SHELL_VARs. Only visible, exported
-+ variables are eligible. */
-+static char **
-+make_var_export_array (vcxt)
-+ VAR_CONTEXT *vcxt;
-+{
-+ char **list;
-+ SHELL_VAR **vars;
-+
-+#if 0
-+ vars = map_over (visible_and_exported, vcxt);
-+#else
-+ vars = map_over (export_environment_candidate, vcxt);
-+#endif
-+
-+ if (vars == 0)
-+ return (char **)NULL;
-+
-+ list = make_env_array_from_var_list (vars);
-+
-+ free (vars);
-+ return (list);
-+}
-+
-+static char **
-+make_func_export_array ()
-+{
-+ char **list;
-+ SHELL_VAR **vars;
-+
-+ vars = map_over_funcs (visible_and_exported);
-+ if (vars == 0)
-+ return (char **)NULL;
-+
-+ list = make_env_array_from_var_list (vars);
-+
-+ free (vars);
-+ return (list);
-+}
-+
-+/* Add ENVSTR to the end of the exported environment, EXPORT_ENV. */
-+#define add_to_export_env(envstr,do_alloc) \
-+do \
-+ { \
-+ if (export_env_index >= (export_env_size - 1)) \
-+ { \
-+ export_env_size += 16; \
-+ export_env = strvec_resize (export_env, export_env_size); \
-+ environ = export_env; \
-+ } \
-+ export_env[export_env_index++] = (do_alloc) ? savestring (envstr) : envstr; \
-+ export_env[export_env_index] = (char *)NULL; \
-+ } while (0)
-+
-+/* Add ASSIGN to EXPORT_ENV, or supercede a previous assignment in the
-+ array with the same left-hand side. Return the new EXPORT_ENV. */
-+char **
-+add_or_supercede_exported_var (assign, do_alloc)
-+ char *assign;
-+ int do_alloc;
-+{
-+ register int i;
-+ int equal_offset;
-+
-+ equal_offset = assignment (assign, 0);
-+ if (equal_offset == 0)
-+ return (export_env);
-+
-+ /* If this is a function, then only supersede the function definition.
-+ We do this by including the `=() {' in the comparison, like
-+ initialize_shell_variables does. */
-+ if (assign[equal_offset + 1] == '(' &&
-+ strncmp (assign + equal_offset + 2, ") {", 3) == 0) /* } */
-+ equal_offset += 4;
-+
-+ for (i = 0; i < export_env_index; i++)
-+ {
-+ if (STREQN (assign, export_env[i], equal_offset + 1))
-+ {
-+ free (export_env[i]);
-+ export_env[i] = do_alloc ? savestring (assign) : assign;
-+ return (export_env);
-+ }
-+ }
-+ add_to_export_env (assign, do_alloc);
-+ return (export_env);
-+}
-+
-+static void
-+add_temp_array_to_env (temp_array, do_alloc, do_supercede)
-+ char **temp_array;
-+ int do_alloc, do_supercede;
-+{
-+ register int i;
-+
-+ if (temp_array == 0)
-+ return;
-+
-+ for (i = 0; temp_array[i]; i++)
-+ {
-+ if (do_supercede)
-+ export_env = add_or_supercede_exported_var (temp_array[i], do_alloc);
-+ else
-+ add_to_export_env (temp_array[i], do_alloc);
-+ }
-+
-+ free (temp_array);
-+}
-+
-+/* Make the environment array for the command about to be executed, if the
-+ array needs making. Otherwise, do nothing. If a shell action could
-+ change the array that commands receive for their environment, then the
-+ code should `array_needs_making++'.
-+
-+ The order to add to the array is:
-+ temporary_env
-+ list of var contexts whose head is shell_variables
-+ shell_functions
-+
-+ This is the shell variable lookup order. We add only new variable
-+ names at each step, which allows local variables and variables in
-+ the temporary environments to shadow variables in the global (or
-+ any previous) scope.
-+*/
-+
-+static int
-+n_shell_variables ()
-+{
-+ VAR_CONTEXT *vc;
-+ int n;
-+
-+ for (n = 0, vc = shell_variables; vc; vc = vc->down)
-+ n += HASH_ENTRIES (vc->table);
-+ return n;
-+}
-+
-+int
-+chkexport (name)
-+ char *name;
-+{
-+ SHELL_VAR *v;
-+
-+ v = find_variable (name);
-+ if (v && exported_p (v))
-+ {
-+ array_needs_making = 1;
-+ maybe_make_export_env ();
-+ return 1;
-+ }
-+ return 0;
-+}
-+
-+void
-+maybe_make_export_env ()
-+{
-+ register char **temp_array;
-+ int new_size;
-+ VAR_CONTEXT *tcxt;
-+
-+ if (array_needs_making)
-+ {
-+ if (export_env)
-+ strvec_flush (export_env);
-+
-+ /* Make a guess based on how many shell variables and functions we
-+ have. Since there will always be array variables, and array
-+ variables are not (yet) exported, this will always be big enough
-+ for the exported variables and functions. */
-+ new_size = n_shell_variables () + HASH_ENTRIES (shell_functions) + 1 +
-+ HASH_ENTRIES (temporary_env);
-+ if (new_size > export_env_size)
-+ {
-+ export_env_size = new_size;
-+ export_env = strvec_resize (export_env, export_env_size);
-+ environ = export_env;
-+ }
-+ export_env[export_env_index = 0] = (char *)NULL;
-+
-+ /* Make a dummy variable context from the temporary_env, stick it on
-+ the front of shell_variables, call make_var_export_array on the
-+ whole thing to flatten it, and convert the list of SHELL_VAR *s
-+ to the form needed by the environment. */
-+ if (temporary_env)
-+ {
-+ tcxt = new_var_context ((char *)NULL, 0);
-+ tcxt->table = temporary_env;
-+ tcxt->down = shell_variables;
-+ }
-+ else
-+ tcxt = shell_variables;
-+
-+ temp_array = make_var_export_array (tcxt);
-+ if (temp_array)
-+ add_temp_array_to_env (temp_array, 0, 0);
-+
-+ if (tcxt != shell_variables)
-+ free (tcxt);
-+
-+#if defined (RESTRICTED_SHELL)
-+ /* Restricted shells may not export shell functions. */
-+ temp_array = restricted ? (char **)0 : make_func_export_array ();
-+#else
-+ temp_array = make_func_export_array ();
-+#endif
-+ if (temp_array)
-+ add_temp_array_to_env (temp_array, 0, 0);
-+
-+ array_needs_making = 0;
-+ }
-+}
-+
-+/* This is an efficiency hack. PWD and OLDPWD are auto-exported, so
-+ we will need to remake the exported environment every time we
-+ change directories. `_' is always put into the environment for
-+ every external command, so without special treatment it will always
-+ cause the environment to be remade.
-+
-+ If there is no other reason to make the exported environment, we can
-+ just update the variables in place and mark the exported environment
-+ as no longer needing a remake. */
-+void
-+update_export_env_inplace (env_prefix, preflen, value)
-+ char *env_prefix;
-+ int preflen;
-+ char *value;
-+{
-+ char *evar;
-+
-+ evar = (char *)xmalloc (STRLEN (value) + preflen + 1);
-+ strcpy (evar, env_prefix);
-+ if (value)
-+ strcpy (evar + preflen, value);
-+ export_env = add_or_supercede_exported_var (evar, 0);
-+}
-+
-+/* We always put _ in the environment as the name of this command. */
-+void
-+put_command_name_into_env (command_name)
-+ char *command_name;
-+{
-+ update_export_env_inplace ("_=", 2, command_name);
-+}
-+
-+/* **************************************************************** */
-+/* */
-+/* Managing variable contexts */
-+/* */
-+/* **************************************************************** */
-+
-+/* Allocate and return a new variable context with NAME and FLAGS.
-+ NAME can be NULL. */
-+
-+VAR_CONTEXT *
-+new_var_context (name, flags)
-+ char *name;
-+ int flags;
-+{
-+ VAR_CONTEXT *vc;
-+
-+ vc = (VAR_CONTEXT *)xmalloc (sizeof (VAR_CONTEXT));
-+ vc->name = name ? savestring (name) : (char *)NULL;
-+ vc->scope = variable_context;
-+ vc->flags = flags;
-+
-+ vc->up = vc->down = (VAR_CONTEXT *)NULL;
-+ vc->table = (HASH_TABLE *)NULL;
-+
-+ return vc;
-+}
-+
-+/* Free a variable context and its data, including the hash table. Dispose
-+ all of the variables. */
-+void
-+dispose_var_context (vc)
-+ VAR_CONTEXT *vc;
-+{
-+ FREE (vc->name);
-+
-+ if (vc->table)
-+ {
-+ delete_all_variables (vc->table);
-+ hash_dispose (vc->table);
-+ }
-+
-+ free (vc);
-+}
-+
-+/* Set VAR's scope level to the current variable context. */
-+static int
-+set_context (var)
-+ SHELL_VAR *var;
-+{
-+ return (var->context = variable_context);
-+}
-+
-+/* Make a new variable context with NAME and FLAGS and a HASH_TABLE of
-+ temporary variables, and push it onto shell_variables. This is
-+ for shell functions. */
-+VAR_CONTEXT *
-+push_var_context (name, flags, tempvars)
-+ char *name;
-+ int flags;
-+ HASH_TABLE *tempvars;
-+{
-+ VAR_CONTEXT *vc;
-+
-+ vc = new_var_context (name, flags);
-+ vc->table = tempvars;
-+ if (tempvars)
-+ {
-+ /* Have to do this because the temp environment was created before
-+ variable_context was incremented. */
-+ flatten (tempvars, set_context, (VARLIST *)NULL, 0);
-+ vc->flags |= VC_HASTMPVAR;
-+ }
-+ vc->down = shell_variables;
-+ shell_variables->up = vc;
-+
-+ return (shell_variables = vc);
-+}
-+
-+static void
-+push_func_var (data)
-+ PTR_T data;
-+{
-+ SHELL_VAR *var, *v;
-+
-+ var = (SHELL_VAR *)data;
-+
-+ if (tempvar_p (var) && (posixly_correct || (var->attributes & att_propagate)))
-+ {
-+ /* Make sure we have a hash table to store the variable in while it is
-+ being propagated down to the global variables table. Create one if
-+ we have to */
-+ if ((vc_isfuncenv (shell_variables) || vc_istempenv (shell_variables)) && shell_variables->table == 0)
-+ shell_variables->table = hash_create (0);
-+ /* XXX - should we set v->context here? */
-+ v = bind_variable_internal (var->name, value_cell (var), shell_variables->table, 0, 0);
-+ if (shell_variables == global_variables)
-+ var->attributes &= ~(att_tempvar|att_propagate);
-+ else
-+ shell_variables->flags |= VC_HASTMPVAR;
-+ v->attributes |= var->attributes;
-+ }
-+ else
-+ stupidly_hack_special_variables (var->name); /* XXX */
-+
-+ dispose_variable (var);
-+}
-+
-+/* Pop the top context off of VCXT and dispose of it, returning the rest of
-+ the stack. */
-+void
-+pop_var_context ()
-+{
-+ VAR_CONTEXT *ret, *vcxt;
-+
-+ vcxt = shell_variables;
-+ if (vc_isfuncenv (vcxt) == 0)
-+ {
-+ internal_error (_("pop_var_context: head of shell_variables not a function context"));
-+ return;
-+ }
-+
-+ if (ret = vcxt->down)
-+ {
-+ ret->up = (VAR_CONTEXT *)NULL;
-+ shell_variables = ret;
-+ if (vcxt->table)
-+ hash_flush (vcxt->table, push_func_var);
-+ dispose_var_context (vcxt);
-+ }
-+ else
-+ internal_error (_("pop_var_context: no global_variables context"));
-+}
-+
-+/* Delete the HASH_TABLEs for all variable contexts beginning at VCXT, and
-+ all of the VAR_CONTEXTs except GLOBAL_VARIABLES. */
-+void
-+delete_all_contexts (vcxt)
-+ VAR_CONTEXT *vcxt;
-+{
-+ VAR_CONTEXT *v, *t;
-+
-+ for (v = vcxt; v != global_variables; v = t)
-+ {
-+ t = v->down;
-+ dispose_var_context (v);
-+ }
-+
-+ delete_all_variables (global_variables->table);
-+ shell_variables = global_variables;
-+}
-+
-+/* **************************************************************** */
-+/* */
-+/* Pushing and Popping temporary variable scopes */
-+/* */
-+/* **************************************************************** */
-+
-+VAR_CONTEXT *
-+push_scope (flags, tmpvars)
-+ int flags;
-+ HASH_TABLE *tmpvars;
-+{
-+ return (push_var_context ((char *)NULL, flags, tmpvars));
-+}
-+
-+static void
-+push_exported_var (data)
-+ PTR_T data;
-+{
-+ SHELL_VAR *var, *v;
-+
-+ var = (SHELL_VAR *)data;
-+
-+ /* If a temp var had its export attribute set, or it's marked to be
-+ propagated, bind it in the previous scope before disposing it. */
-+ /* XXX - This isn't exactly right, because all tempenv variables have the
-+ export attribute set. */
-+#if 0
-+ if (exported_p (var) || (var->attributes & att_propagate))
-+#else
-+ if (tempvar_p (var) && exported_p (var) && (var->attributes & att_propagate))
-+#endif
-+ {
-+ var->attributes &= ~att_tempvar; /* XXX */
-+ v = bind_variable_internal (var->name, value_cell (var), shell_variables->table, 0, 0);
-+ if (shell_variables == global_variables)
-+ var->attributes &= ~att_propagate;
-+ v->attributes |= var->attributes;
-+ }
-+ else
-+ stupidly_hack_special_variables (var->name); /* XXX */
-+
-+ dispose_variable (var);
-+}
-+
-+void
-+pop_scope (is_special)
-+ int is_special;
-+{
-+ VAR_CONTEXT *vcxt, *ret;
-+
-+ vcxt = shell_variables;
-+ if (vc_istempscope (vcxt) == 0)
-+ {
-+ internal_error (_("pop_scope: head of shell_variables not a temporary environment scope"));
-+ return;
-+ }
-+
-+ ret = vcxt->down;
-+ if (ret)
-+ ret->up = (VAR_CONTEXT *)NULL;
-+
-+ shell_variables = ret;
-+
-+ /* Now we can take care of merging variables in VCXT into set of scopes
-+ whose head is RET (shell_variables). */
-+ FREE (vcxt->name);
-+ if (vcxt->table)
-+ {
-+ if (is_special)
-+ hash_flush (vcxt->table, push_func_var);
-+ else
-+ hash_flush (vcxt->table, push_exported_var);
-+ hash_dispose (vcxt->table);
-+ }
-+ free (vcxt);
-+
-+ sv_ifs ("IFS"); /* XXX here for now */
-+}
-+
-+/* **************************************************************** */
-+/* */
-+/* Pushing and Popping function contexts */
-+/* */
-+/* **************************************************************** */
-+
-+static WORD_LIST **dollar_arg_stack = (WORD_LIST **)NULL;
-+static int dollar_arg_stack_slots;
-+static int dollar_arg_stack_index;
-+
-+/* XXX - we might want to consider pushing and popping the `getopts' state
-+ when we modify the positional parameters. */
-+void
-+push_context (name, is_subshell, tempvars)
-+ char *name; /* function name */
-+ int is_subshell;
-+ HASH_TABLE *tempvars;
-+{
-+ if (is_subshell == 0)
-+ push_dollar_vars ();
-+ variable_context++;
-+ push_var_context (name, VC_FUNCENV, tempvars);
-+}
-+
-+/* Only called when subshell == 0, so we don't need to check, and can
-+ unconditionally pop the dollar vars off the stack. */
-+void
-+pop_context ()
-+{
-+ pop_dollar_vars ();
-+ variable_context--;
-+ pop_var_context ();
-+
-+ sv_ifs ("IFS"); /* XXX here for now */
-+}
-+
-+/* Save the existing positional parameters on a stack. */
-+void
-+push_dollar_vars ()
-+{
-+ if (dollar_arg_stack_index + 2 > dollar_arg_stack_slots)
-+ {
-+ dollar_arg_stack = (WORD_LIST **)
-+ xrealloc (dollar_arg_stack, (dollar_arg_stack_slots += 10)
-+ * sizeof (WORD_LIST *));
-+ }
-+ dollar_arg_stack[dollar_arg_stack_index++] = list_rest_of_args ();
-+ dollar_arg_stack[dollar_arg_stack_index] = (WORD_LIST *)NULL;
-+}
-+
-+/* Restore the positional parameters from our stack. */
-+void
-+pop_dollar_vars ()
-+{
-+ if (!dollar_arg_stack || dollar_arg_stack_index == 0)
-+ return;
-+
-+ remember_args (dollar_arg_stack[--dollar_arg_stack_index], 1);
-+ dispose_words (dollar_arg_stack[dollar_arg_stack_index]);
-+ dollar_arg_stack[dollar_arg_stack_index] = (WORD_LIST *)NULL;
-+ set_dollar_vars_unchanged ();
-+}
-+
-+void
-+dispose_saved_dollar_vars ()
-+{
-+ if (!dollar_arg_stack || dollar_arg_stack_index == 0)
-+ return;
-+
-+ dispose_words (dollar_arg_stack[dollar_arg_stack_index]);
-+ dollar_arg_stack[dollar_arg_stack_index] = (WORD_LIST *)NULL;
-+}
-+
-+/* Manipulate the special BASH_ARGV and BASH_ARGC variables. */
-+
-+void
-+push_args (list)
-+ WORD_LIST *list;
-+{
-+#if defined (ARRAY_VARS) && defined (DEBUGGER)
-+ SHELL_VAR *bash_argv_v, *bash_argc_v;
-+ ARRAY *bash_argv_a, *bash_argc_a;
-+ WORD_LIST *l;
-+ arrayind_t i;
-+ char *t;
-+
-+ GET_ARRAY_FROM_VAR ("BASH_ARGV", bash_argv_v, bash_argv_a);
-+ GET_ARRAY_FROM_VAR ("BASH_ARGC", bash_argc_v, bash_argc_a);
-+
-+ for (l = list, i = 0; l; l = l->next, i++)
-+ array_push (bash_argv_a, l->word->word);
-+
-+ t = itos (i);
-+ array_push (bash_argc_a, t);
-+ free (t);
-+#endif /* ARRAY_VARS && DEBUGGER */
-+}
-+
-+/* Remove arguments from BASH_ARGV array. Pop top element off BASH_ARGC
-+ array and use that value as the count of elements to remove from
-+ BASH_ARGV. */
-+void
-+pop_args ()
-+{
-+#if defined (ARRAY_VARS) && defined (DEBUGGER)
-+ SHELL_VAR *bash_argv_v, *bash_argc_v;
-+ ARRAY *bash_argv_a, *bash_argc_a;
-+ ARRAY_ELEMENT *ce;
-+ intmax_t i;
-+
-+ GET_ARRAY_FROM_VAR ("BASH_ARGV", bash_argv_v, bash_argv_a);
-+ GET_ARRAY_FROM_VAR ("BASH_ARGC", bash_argc_v, bash_argc_a);
-+
-+ ce = array_shift (bash_argc_a, 1, 0);
-+ if (ce == 0 || legal_number (element_value (ce), &i) == 0)
-+ i = 0;
-+
-+ for ( ; i > 0; i--)
-+ array_pop (bash_argv_a);
-+ array_dispose_element (ce);
-+#endif /* ARRAY_VARS && DEBUGGER */
-+}
-+
-+/*************************************************
-+ * *
-+ * Functions to manage special variables *
-+ * *
-+ *************************************************/
-+
-+/* Extern declarations for variables this code has to manage. */
-+extern int eof_encountered, eof_encountered_limit, ignoreeof;
-+
-+#if defined (READLINE)
-+extern int hostname_list_initialized;
-+#endif
-+
-+/* An alist of name.function for each special variable. Most of the
-+ functions don't do much, and in fact, this would be faster with a
-+ switch statement, but by the end of this file, I am sick of switch
-+ statements. */
-+
-+#define SET_INT_VAR(name, intvar) intvar = find_variable (name) != 0
-+
-+/* This table will be sorted with qsort() the first time it's accessed. */
-+struct name_and_function {
-+ char *name;
-+ sh_sv_func_t *function;
-+};
-+
-+static struct name_and_function special_vars[] = {
-+ { "BASH_COMPAT", sv_shcompat },
-+ { "BASH_XTRACEFD", sv_xtracefd },
-+
-+#if defined (JOB_CONTROL)
-+ { "CHILD_MAX", sv_childmax },
-+#endif
-+
-+#if defined (READLINE)
-+# if defined (STRICT_POSIX)
-+ { "COLUMNS", sv_winsize },
-+# endif
-+ { "COMP_WORDBREAKS", sv_comp_wordbreaks },
-+#endif
-+
-+ { "FUNCNEST", sv_funcnest },
-+
-+ { "GLOBIGNORE", sv_globignore },
-+
-+#if defined (HISTORY)
-+ { "HISTCONTROL", sv_history_control },
-+ { "HISTFILESIZE", sv_histsize },
-+ { "HISTIGNORE", sv_histignore },
-+ { "HISTSIZE", sv_histsize },
-+ { "HISTTIMEFORMAT", sv_histtimefmt },
-+#endif
-+
-+#if defined (__CYGWIN__)
-+ { "HOME", sv_home },
-+#endif
-+
-+#if defined (READLINE)
-+ { "HOSTFILE", sv_hostfile },
-+#endif
-+
-+ { "IFS", sv_ifs },
-+ { "IGNOREEOF", sv_ignoreeof },
-+
-+ { "LANG", sv_locale },
-+ { "LC_ALL", sv_locale },
-+ { "LC_COLLATE", sv_locale },
-+ { "LC_CTYPE", sv_locale },
-+ { "LC_MESSAGES", sv_locale },
-+ { "LC_NUMERIC", sv_locale },
-+ { "LC_TIME", sv_locale },
-+
-+#if defined (READLINE) && defined (STRICT_POSIX)
-+ { "LINES", sv_winsize },
-+#endif
-+
-+ { "MAIL", sv_mail },
-+ { "MAILCHECK", sv_mail },
-+ { "MAILPATH", sv_mail },
-+
-+ { "OPTERR", sv_opterr },
-+ { "OPTIND", sv_optind },
-+
-+ { "PATH", sv_path },
-+ { "POSIXLY_CORRECT", sv_strict_posix },
-+
-+#if defined (READLINE)
-+ { "TERM", sv_terminal },
-+ { "TERMCAP", sv_terminal },
-+ { "TERMINFO", sv_terminal },
-+#endif /* READLINE */
-+
-+ { "TEXTDOMAIN", sv_locale },
-+ { "TEXTDOMAINDIR", sv_locale },
-+
-+#if defined (HAVE_TZSET)
-+ { "TZ", sv_tz },
-+#endif
-+
-+#if defined (HISTORY) && defined (BANG_HISTORY)
-+ { "histchars", sv_histchars },
-+#endif /* HISTORY && BANG_HISTORY */
-+
-+ { "ignoreeof", sv_ignoreeof },
-+
-+ { (char *)0, (sh_sv_func_t *)0 }
-+};
-+
-+#define N_SPECIAL_VARS (sizeof (special_vars) / sizeof (special_vars[0]) - 1)
-+
-+static int
-+sv_compare (sv1, sv2)
-+ struct name_and_function *sv1, *sv2;
-+{
-+ int r;
-+
-+ if ((r = sv1->name[0] - sv2->name[0]) == 0)
-+ r = strcmp (sv1->name, sv2->name);
-+ return r;
-+}
-+
-+static inline int
-+find_special_var (name)
-+ const char *name;
-+{
-+ register int i, r;
-+
-+ for (i = 0; special_vars[i].name; i++)
-+ {
-+ r = special_vars[i].name[0] - name[0];
-+ if (r == 0)
-+ r = strcmp (special_vars[i].name, name);
-+ if (r == 0)
-+ return i;
-+ else if (r > 0)
-+ /* Can't match any of rest of elements in sorted list. Take this out
-+ if it causes problems in certain environments. */
-+ break;
-+ }
-+ return -1;
-+}
-+
-+/* The variable in NAME has just had its state changed. Check to see if it
-+ is one of the special ones where something special happens. */
-+void
-+stupidly_hack_special_variables (name)
-+ char *name;
-+{
-+ static int sv_sorted = 0;
-+ int i;
-+
-+ if (sv_sorted == 0) /* shouldn't need, but it's fairly cheap. */
-+ {
-+ qsort (special_vars, N_SPECIAL_VARS, sizeof (special_vars[0]),
-+ (QSFUNC *)sv_compare);
-+ sv_sorted = 1;
-+ }
-+
-+ i = find_special_var (name);
-+ if (i != -1)
-+ (*(special_vars[i].function)) (name);
-+}
-+
-+/* Special variables that need hooks to be run when they are unset as part
-+ of shell reinitialization should have their sv_ functions run here. */
-+void
-+reinit_special_variables ()
-+{
-+#if defined (READLINE)
-+ sv_comp_wordbreaks ("COMP_WORDBREAKS");
-+#endif
-+ sv_globignore ("GLOBIGNORE");
-+ sv_opterr ("OPTERR");
-+}
-+
-+void
-+sv_ifs (name)
-+ char *name;
-+{
-+ SHELL_VAR *v;
-+
-+ v = find_variable ("IFS");
-+ setifs (v);
-+}
-+
-+/* What to do just after the PATH variable has changed. */
-+void
-+sv_path (name)
-+ char *name;
-+{
-+ /* hash -r */
-+ phash_flush ();
-+}
-+
-+/* What to do just after one of the MAILxxxx variables has changed. NAME
-+ is the name of the variable. This is called with NAME set to one of
-+ MAIL, MAILCHECK, or MAILPATH. */
-+void
-+sv_mail (name)
-+ char *name;
-+{
-+ /* If the time interval for checking the files has changed, then
-+ reset the mail timer. Otherwise, one of the pathname vars
-+ to the users mailbox has changed, so rebuild the array of
-+ filenames. */
-+ if (name[4] == 'C') /* if (strcmp (name, "MAILCHECK") == 0) */
-+ reset_mail_timer ();
-+ else
-+ {
-+ free_mail_files ();
-+ remember_mail_dates ();
-+ }
-+}
-+
-+void
-+sv_funcnest (name)
-+ char *name;
-+{
-+ SHELL_VAR *v;
-+ intmax_t num;
-+
-+ v = find_variable (name);
-+ if (v == 0)
-+ funcnest_max = 0;
-+ else if (legal_number (value_cell (v), &num) == 0)
-+ funcnest_max = 0;
-+ else
-+ funcnest_max = num;
-+}
-+
-+/* What to do when GLOBIGNORE changes. */
-+void
-+sv_globignore (name)
-+ char *name;
-+{
-+ if (privileged_mode == 0)
-+ setup_glob_ignore (name);
-+}
-+
-+#if defined (READLINE)
-+void
-+sv_comp_wordbreaks (name)
-+ char *name;
-+{
-+ SHELL_VAR *sv;
-+
-+ sv = find_variable (name);
-+ if (sv == 0)
-+ reset_completer_word_break_chars ();
-+}
-+
-+/* What to do just after one of the TERMxxx variables has changed.
-+ If we are an interactive shell, then try to reset the terminal
-+ information in readline. */
-+void
-+sv_terminal (name)
-+ char *name;
-+{
-+ if (interactive_shell && no_line_editing == 0)
-+ rl_reset_terminal (get_string_value ("TERM"));
-+}
-+
-+void
-+sv_hostfile (name)
-+ char *name;
-+{
-+ SHELL_VAR *v;
-+
-+ v = find_variable (name);
-+ if (v == 0)
-+ clear_hostname_list ();
-+ else
-+ hostname_list_initialized = 0;
-+}
-+
-+#if defined (STRICT_POSIX)
-+/* In strict posix mode, we allow assignments to LINES and COLUMNS (and values
-+ found in the initial environment) to override the terminal size reported by
-+ the kernel. */
-+void
-+sv_winsize (name)
-+ char *name;
-+{
-+ SHELL_VAR *v;
-+ intmax_t xd;
-+ int d;
-+
-+ if (posixly_correct == 0 || interactive_shell == 0 || no_line_editing)
-+ return;
-+
-+ v = find_variable (name);
-+ if (v == 0 || var_isnull (v))
-+ rl_reset_screen_size ();
-+ else
-+ {
-+ if (legal_number (value_cell (v), &xd) == 0)
-+ return;
-+ winsize_assignment = 1;
-+ d = xd; /* truncate */
-+ if (name[0] == 'L') /* LINES */
-+ rl_set_screen_size (d, -1);
-+ else /* COLUMNS */
-+ rl_set_screen_size (-1, d);
-+ winsize_assignment = 0;
-+ }
-+}
-+#endif /* STRICT_POSIX */
-+#endif /* READLINE */
-+
-+/* Update the value of HOME in the export environment so tilde expansion will
-+ work on cygwin. */
-+#if defined (__CYGWIN__)
-+sv_home (name)
-+ char *name;
-+{
-+ array_needs_making = 1;
-+ maybe_make_export_env ();
-+}
-+#endif
-+
-+#if defined (HISTORY)
-+/* What to do after the HISTSIZE or HISTFILESIZE variables change.
-+ If there is a value for this HISTSIZE (and it is numeric), then stifle
-+ the history. Otherwise, if there is NO value for this variable,
-+ unstifle the history. If name is HISTFILESIZE, and its value is
-+ numeric, truncate the history file to hold no more than that many
-+ lines. */
-+void
-+sv_histsize (name)
-+ char *name;
-+{
-+ char *temp;
-+ intmax_t num;
-+ int hmax;
-+
-+ temp = get_string_value (name);
-+
-+ if (temp && *temp)
-+ {
-+ if (legal_number (temp, &num))
-+ {
-+ hmax = num;
-+ if (hmax < 0 && name[4] == 'S')
-+ unstifle_history (); /* unstifle history if HISTSIZE < 0 */
-+ else if (name[4] == 'S')
-+ {
-+ stifle_history (hmax);
-+ hmax = where_history ();
-+ if (history_lines_this_session > hmax)
-+ history_lines_this_session = hmax;
-+ }
-+ else if (hmax >= 0) /* truncate HISTFILE if HISTFILESIZE >= 0 */
-+ {
-+ history_truncate_file (get_string_value ("HISTFILE"), hmax);
-+ if (hmax <= history_lines_in_file)
-+ history_lines_in_file = hmax;
-+ }
-+ }
-+ }
-+ else if (name[4] == 'S')
-+ unstifle_history ();
-+}
-+
-+/* What to do after the HISTIGNORE variable changes. */
-+void
-+sv_histignore (name)
-+ char *name;
-+{
-+ setup_history_ignore (name);
-+}
-+
-+/* What to do after the HISTCONTROL variable changes. */
-+void
-+sv_history_control (name)
-+ char *name;
-+{
-+ char *temp;
-+ char *val;
-+ int tptr;
-+
-+ history_control = 0;
-+ temp = get_string_value (name);
-+
-+ if (temp == 0 || *temp == 0)
-+ return;
-+
-+ tptr = 0;
-+ while (val = extract_colon_unit (temp, &tptr))
-+ {
-+ if (STREQ (val, "ignorespace"))
-+ history_control |= HC_IGNSPACE;
-+ else if (STREQ (val, "ignoredups"))
-+ history_control |= HC_IGNDUPS;
-+ else if (STREQ (val, "ignoreboth"))
-+ history_control |= HC_IGNBOTH;
-+ else if (STREQ (val, "erasedups"))
-+ history_control |= HC_ERASEDUPS;
-+
-+ free (val);
-+ }
-+}
-+
-+#if defined (BANG_HISTORY)
-+/* Setting/unsetting of the history expansion character. */
-+void
-+sv_histchars (name)
-+ char *name;
-+{
-+ char *temp;
-+
-+ temp = get_string_value (name);
-+ if (temp)
-+ {
-+ history_expansion_char = *temp;
-+ if (temp[0] && temp[1])
-+ {
-+ history_subst_char = temp[1];
-+ if (temp[2])
-+ history_comment_char = temp[2];
-+ }
-+ }
-+ else
-+ {
-+ history_expansion_char = '!';
-+ history_subst_char = '^';
-+ history_comment_char = '#';
-+ }
-+}
-+#endif /* BANG_HISTORY */
-+
-+void
-+sv_histtimefmt (name)
-+ char *name;
-+{
-+ SHELL_VAR *v;
-+
-+ if (v = find_variable (name))
-+ {
-+ if (history_comment_char == 0)
-+ history_comment_char = '#';
-+ }
-+ history_write_timestamps = (v != 0);
-+}
-+#endif /* HISTORY */
-+
-+#if defined (HAVE_TZSET)
-+void
-+sv_tz (name)
-+ char *name;
-+{
-+ if (chkexport (name))
-+ tzset ();
-+}
-+#endif
-+
-+/* If the variable exists, then the value of it can be the number
-+ of times we actually ignore the EOF. The default is small,
-+ (smaller than csh, anyway). */
-+void
-+sv_ignoreeof (name)
-+ char *name;
-+{
-+ SHELL_VAR *tmp_var;
-+ char *temp;
-+
-+ eof_encountered = 0;
-+
-+ tmp_var = find_variable (name);
-+ ignoreeof = tmp_var != 0;
-+ temp = tmp_var ? value_cell (tmp_var) : (char *)NULL;
-+ if (temp)
-+ eof_encountered_limit = (*temp && all_digits (temp)) ? atoi (temp) : 10;
-+ set_shellopts (); /* make sure `ignoreeof' is/is not in $SHELLOPTS */
-+}
-+
-+void
-+sv_optind (name)
-+ char *name;
-+{
-+ char *tt;
-+ int s;
-+
-+ tt = get_string_value ("OPTIND");
-+ if (tt && *tt)
-+ {
-+ s = atoi (tt);
-+
-+ /* According to POSIX, setting OPTIND=1 resets the internal state
-+ of getopt (). */
-+ if (s < 0 || s == 1)
-+ s = 0;
-+ }
-+ else
-+ s = 0;
-+ getopts_reset (s);
-+}
-+
-+void
-+sv_opterr (name)
-+ char *name;
-+{
-+ char *tt;
-+
-+ tt = get_string_value ("OPTERR");
-+ sh_opterr = (tt && *tt) ? atoi (tt) : 1;
-+}
-+
-+void
-+sv_strict_posix (name)
-+ char *name;
-+{
-+ SET_INT_VAR (name, posixly_correct);
-+ posix_initialize (posixly_correct);
-+#if defined (READLINE)
-+ if (interactive_shell)
-+ posix_readline_initialize (posixly_correct);
-+#endif /* READLINE */
-+ set_shellopts (); /* make sure `posix' is/is not in $SHELLOPTS */
-+}
-+
-+void
-+sv_locale (name)
-+ char *name;
-+{
-+ char *v;
-+ int r;
-+
-+ v = get_string_value (name);
-+ if (name[0] == 'L' && name[1] == 'A') /* LANG */
-+ r = set_lang (name, v);
-+ else
-+ r = set_locale_var (name, v); /* LC_*, TEXTDOMAIN* */
-+
-+#if 1
-+ if (r == 0 && posixly_correct)
-+ last_command_exit_value = 1;
-+#endif
-+}
-+
-+#if defined (ARRAY_VARS)
-+void
-+set_pipestatus_array (ps, nproc)
-+ int *ps;
-+ int nproc;
-+{
-+ SHELL_VAR *v;
-+ ARRAY *a;
-+ ARRAY_ELEMENT *ae;
-+ register int i;
-+ char *t, tbuf[INT_STRLEN_BOUND(int) + 1];
-+
-+ v = find_variable ("PIPESTATUS");
-+ if (v == 0)
-+ v = make_new_array_variable ("PIPESTATUS");
-+ if (array_p (v) == 0)
-+ return; /* Do nothing if not an array variable. */
-+ a = array_cell (v);
-+
-+ if (a == 0 || array_num_elements (a) == 0)
-+ {
-+ for (i = 0; i < nproc; i++) /* was ps[i] != -1, not i < nproc */
-+ {
-+ t = inttostr (ps[i], tbuf, sizeof (tbuf));
-+ array_insert (a, i, t);
-+ }
-+ return;
-+ }
-+
-+ /* Fast case */
-+ if (array_num_elements (a) == nproc && nproc == 1)
-+ {
-+ ae = element_forw (a->head);
-+ free (element_value (ae));
-+ ae->value = itos (ps[0]);
-+ }
-+ else if (array_num_elements (a) <= nproc)
-+ {
-+ /* modify in array_num_elements members in place, then add */
-+ ae = a->head;
-+ for (i = 0; i < array_num_elements (a); i++)
-+ {
-+ ae = element_forw (ae);
-+ free (element_value (ae));
-+ ae->value = itos (ps[i]);
-+ }
-+ /* add any more */
-+ for ( ; i < nproc; i++)
-+ {
-+ t = inttostr (ps[i], tbuf, sizeof (tbuf));
-+ array_insert (a, i, t);
-+ }
-+ }
-+ else
-+ {
-+ /* deleting elements. it's faster to rebuild the array. */
-+ array_flush (a);
-+ for (i = 0; ps[i] != -1; i++)
-+ {
-+ t = inttostr (ps[i], tbuf, sizeof (tbuf));
-+ array_insert (a, i, t);
-+ }
-+ }
-+}
-+
-+ARRAY *
-+save_pipestatus_array ()
-+{
-+ SHELL_VAR *v;
-+ ARRAY *a, *a2;
-+
-+ v = find_variable ("PIPESTATUS");
-+ if (v == 0 || array_p (v) == 0 || array_cell (v) == 0)
-+ return ((ARRAY *)NULL);
-+
-+ a = array_cell (v);
-+ a2 = array_copy (array_cell (v));
-+
-+ return a2;
-+}
-+
-+void
-+restore_pipestatus_array (a)
-+ ARRAY *a;
-+{
-+ SHELL_VAR *v;
-+ ARRAY *a2;
-+
-+ v = find_variable ("PIPESTATUS");
-+ /* XXX - should we still assign even if existing value is NULL? */
-+ if (v == 0 || array_p (v) == 0 || array_cell (v) == 0)
-+ return;
-+
-+ a2 = array_cell (v);
-+ var_setarray (v, a);
-+
-+ array_dispose (a2);
-+}
-+#endif
-+
-+void
-+set_pipestatus_from_exit (s)
-+ int s;
-+{
-+#if defined (ARRAY_VARS)
-+ static int v[2] = { 0, -1 };
-+
-+ v[0] = s;
-+ set_pipestatus_array (v, 1);
-+#endif
-+}
-+
-+void
-+sv_xtracefd (name)
-+ char *name;
-+{
-+ SHELL_VAR *v;
-+ char *t, *e;
-+ int fd;
-+ FILE *fp;
-+
-+ v = find_variable (name);
-+ if (v == 0)
-+ {
-+ xtrace_reset ();
-+ return;
-+ }
-+
-+ t = value_cell (v);
-+ if (t == 0 || *t == 0)
-+ xtrace_reset ();
-+ else
-+ {
-+ fd = (int)strtol (t, &e, 10);
-+ if (e != t && *e == '\0' && sh_validfd (fd))
-+ {
-+ fp = fdopen (fd, "w");
-+ if (fp == 0)
-+ internal_error (_("%s: %s: cannot open as FILE"), name, value_cell (v));
-+ else
-+ xtrace_set (fd, fp);
-+ }
-+ else
-+ internal_error (_("%s: %s: invalid value for trace file descriptor"), name, value_cell (v));
-+ }
-+}
-+
-+#define MIN_COMPAT_LEVEL 31
-+
-+void
-+sv_shcompat (name)
-+ char *name;
-+{
-+ SHELL_VAR *v;
-+ char *val;
-+ int tens, ones, compatval;
-+
-+ v = find_variable (name);
-+ if (v == 0)
-+ {
-+ shell_compatibility_level = DEFAULT_COMPAT_LEVEL;
-+ set_compatibility_opts ();
-+ return;
-+ }
-+ val = value_cell (v);
-+ if (val == 0 || *val == '\0')
-+ {
-+ shell_compatibility_level = DEFAULT_COMPAT_LEVEL;
-+ set_compatibility_opts ();
-+ return;
-+ }
-+ /* Handle decimal-like compatibility version specifications: 4.2 */
-+ if (isdigit (val[0]) && val[1] == '.' && isdigit (val[2]) && val[3] == 0)
-+ {
-+ tens = val[0] - '0';
-+ ones = val[2] - '0';
-+ compatval = tens*10 + ones;
-+ }
-+ /* Handle integer-like compatibility version specifications: 42 */
-+ else if (isdigit (val[0]) && isdigit (val[1]) && val[2] == 0)
-+ {
-+ tens = val[0] - '0';
-+ ones = val[1] - '0';
-+ compatval = tens*10 + ones;
-+ }
-+ else
-+ {
-+compat_error:
-+ internal_error (_("%s: %s: compatibility value out of range"), name, val);
-+ shell_compatibility_level = DEFAULT_COMPAT_LEVEL;
-+ set_compatibility_opts ();
-+ return;
-+ }
-+
-+ if (compatval < MIN_COMPAT_LEVEL || compatval > DEFAULT_COMPAT_LEVEL)
-+ goto compat_error;
-+
-+ shell_compatibility_level = compatval;
-+ set_compatibility_opts ();
-+}
-+
-+#if defined (JOB_CONTROL)
-+void
-+sv_childmax (name)
-+ char *name;
-+{
-+ char *tt;
-+ int s;
-+
-+ tt = get_string_value (name);
-+ s = (tt && *tt) ? atoi (tt) : 0;
-+ set_maxchild (s);
-+}
-+#endif
diff --git a/patches/bash-4.3.30/0002-Bash-4.3-patch-32.patch b/patches/bash-4.3.30/0002-Bash-4.3-patch-32.patch
deleted file mode 100644
index 801b4a609..000000000
--- a/patches/bash-4.3.30/0002-Bash-4.3-patch-32.patch
+++ /dev/null
@@ -1,5409 +0,0 @@
-From: Chet Ramey <chet.ramey@case.edu>
-Date: Thu, 15 Jan 2015 10:20:45 -0500
-Subject: [PATCH] Bash-4.3 patch 32
-
----
- jobs.c | 4 +-
- patchlevel.h | 2 +-
- variables.c.orig | 5365 ------------------------------------------------------
- 3 files changed, 4 insertions(+), 5367 deletions(-)
- delete mode 100644 variables.c.orig
-
-diff --git a/jobs.c b/jobs.c
-index f38b0c3f4446..b6e59eba0de8 100644
---- a/jobs.c
-+++ b/jobs.c
-@@ -3339,7 +3339,9 @@ itrace("waitchld: waitpid returns %d block = %d", pid, block);
- if (posixly_correct && this_shell_builtin && this_shell_builtin == wait_builtin)
- {
- interrupt_immediately = 0;
-- trap_handler (SIGCHLD); /* set pending_traps[SIGCHLD] */
-+ /* This was trap_handler (SIGCHLD) but that can lose traps if
-+ children_exited > 1 */
-+ queue_sigchld_trap (children_exited);
- wait_signal_received = SIGCHLD;
- /* If we're in a signal handler, let CHECK_WAIT_INTR pick it up;
- run_pending_traps will call run_sigchld_trap later */
-diff --git a/patchlevel.h b/patchlevel.h
-index 0ad46aafbdd9..b8bf38704ed2 100644
---- a/patchlevel.h
-+++ b/patchlevel.h
-@@ -25,6 +25,6 @@
- regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh
- looks for to find the patch level (for the sccs version string). */
-
--#define PATCHLEVEL 31
-+#define PATCHLEVEL 32
-
- #endif /* _PATCHLEVEL_H_ */
-diff --git a/variables.c.orig b/variables.c.orig
-deleted file mode 100644
-index 7c82710e0f0b..000000000000
---- a/variables.c.orig
-+++ /dev/null
-@@ -1,5365 +0,0 @@
--/* variables.c -- Functions for hacking shell variables. */
--
--/* Copyright (C) 1987-2013 Free Software Foundation, Inc.
--
-- This file is part of GNU Bash, the Bourne Again SHell.
--
-- Bash 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.
--
-- Bash 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 Bash. If not, see <http://www.gnu.org/licenses/>.
--*/
--
--#include "config.h"
--
--#include "bashtypes.h"
--#include "posixstat.h"
--#include "posixtime.h"
--
--#if defined (__QNX__)
--# if defined (__QNXNTO__)
--# include <sys/netmgr.h>
--# else
--# include <sys/vc.h>
--# endif /* !__QNXNTO__ */
--#endif /* __QNX__ */
--
--#if defined (HAVE_UNISTD_H)
--# include <unistd.h>
--#endif
--
--#include <stdio.h>
--#include "chartypes.h"
--#if defined (HAVE_PWD_H)
--# include <pwd.h>
--#endif
--#include "bashansi.h"
--#include "bashintl.h"
--
--#define NEED_XTRACE_SET_DECL
--
--#include "shell.h"
--#include "flags.h"
--#include "execute_cmd.h"
--#include "findcmd.h"
--#include "mailcheck.h"
--#include "input.h"
--#include "hashcmd.h"
--#include "pathexp.h"
--#include "alias.h"
--#include "jobs.h"
--
--#include "version.h"
--
--#include "builtins/getopt.h"
--#include "builtins/common.h"
--#include "builtins/builtext.h"
--
--#if defined (READLINE)
--# include "bashline.h"
--# include <readline/readline.h>
--#else
--# include <tilde/tilde.h>
--#endif
--
--#if defined (HISTORY)
--# include "bashhist.h"
--# include <readline/history.h>
--#endif /* HISTORY */
--
--#if defined (PROGRAMMABLE_COMPLETION)
--# include "pcomplete.h"
--#endif
--
--#define TEMPENV_HASH_BUCKETS 4 /* must be power of two */
--
--#define ifsname(s) ((s)[0] == 'I' && (s)[1] == 'F' && (s)[2] == 'S' && (s)[3] == '\0')
--
--#define BASHFUNC_PREFIX "BASH_FUNC_"
--#define BASHFUNC_PREFLEN 10 /* == strlen(BASHFUNC_PREFIX */
--#define BASHFUNC_SUFFIX "%%"
--#define BASHFUNC_SUFFLEN 2 /* == strlen(BASHFUNC_SUFFIX) */
--
--extern char **environ;
--
--/* Variables used here and defined in other files. */
--extern int posixly_correct;
--extern int line_number, line_number_base;
--extern int subshell_environment, indirection_level, subshell_level;
--extern int build_version, patch_level;
--extern int expanding_redir;
--extern int last_command_exit_value;
--extern char *dist_version, *release_status;
--extern char *shell_name;
--extern char *primary_prompt, *secondary_prompt;
--extern char *current_host_name;
--extern sh_builtin_func_t *this_shell_builtin;
--extern SHELL_VAR *this_shell_function;
--extern char *the_printed_command_except_trap;
--extern char *this_command_name;
--extern char *command_execution_string;
--extern time_t shell_start_time;
--extern int assigning_in_environment;
--extern int executing_builtin;
--extern int funcnest_max;
--
--#if defined (READLINE)
--extern int no_line_editing;
--extern int perform_hostname_completion;
--#endif
--
--/* The list of shell variables that the user has created at the global
-- scope, or that came from the environment. */
--VAR_CONTEXT *global_variables = (VAR_CONTEXT *)NULL;
--
--/* The current list of shell variables, including function scopes */
--VAR_CONTEXT *shell_variables = (VAR_CONTEXT *)NULL;
--
--/* The list of shell functions that the user has created, or that came from
-- the environment. */
--HASH_TABLE *shell_functions = (HASH_TABLE *)NULL;
--
--#if defined (DEBUGGER)
--/* The table of shell function definitions that the user defined or that
-- came from the environment. */
--HASH_TABLE *shell_function_defs = (HASH_TABLE *)NULL;
--#endif
--
--/* The current variable context. This is really a count of how deep into
-- executing functions we are. */
--int variable_context = 0;
--
--/* The set of shell assignments which are made only in the environment
-- for a single command. */
--HASH_TABLE *temporary_env = (HASH_TABLE *)NULL;
--
--/* Set to non-zero if an assignment error occurs while putting variables
-- into the temporary environment. */
--int tempenv_assign_error;
--
--/* Some funky variables which are known about specially. Here is where
-- "$*", "$1", and all the cruft is kept. */
--char *dollar_vars[10];
--WORD_LIST *rest_of_args = (WORD_LIST *)NULL;
--
--/* The value of $$. */
--pid_t dollar_dollar_pid;
--
--/* Non-zero means that we have to remake EXPORT_ENV. */
--int array_needs_making = 1;
--
--/* The number of times BASH has been executed. This is set
-- by initialize_variables (). */
--int shell_level = 0;
--
--/* An array which is passed to commands as their environment. It is
-- manufactured from the union of the initial environment and the
-- shell variables that are marked for export. */
--char **export_env = (char **)NULL;
--static int export_env_index;
--static int export_env_size;
--
--#if defined (READLINE)
--static int winsize_assignment; /* currently assigning to LINES or COLUMNS */
--#endif
--
--static HASH_TABLE *last_table_searched; /* hash_lookup sets this */
--
--/* Some forward declarations. */
--static void create_variable_tables __P((void));
--
--static void set_machine_vars __P((void));
--static void set_home_var __P((void));
--static void set_shell_var __P((void));
--static char *get_bash_name __P((void));
--static void initialize_shell_level __P((void));
--static void uidset __P((void));
--#if defined (ARRAY_VARS)
--static void make_vers_array __P((void));
--#endif
--
--static SHELL_VAR *null_assign __P((SHELL_VAR *, char *, arrayind_t, char *));
--#if defined (ARRAY_VARS)
--static SHELL_VAR *null_array_assign __P((SHELL_VAR *, char *, arrayind_t, char *));
--#endif
--static SHELL_VAR *get_self __P((SHELL_VAR *));
--
--#if defined (ARRAY_VARS)
--static SHELL_VAR *init_dynamic_array_var __P((char *, sh_var_value_func_t *, sh_var_assign_func_t *, int));
--static SHELL_VAR *init_dynamic_assoc_var __P((char *, sh_var_value_func_t *, sh_var_assign_func_t *, int));
--#endif
--
--static SHELL_VAR *assign_seconds __P((SHELL_VAR *, char *, arrayind_t, char *));
--static SHELL_VAR *get_seconds __P((SHELL_VAR *));
--static SHELL_VAR *init_seconds_var __P((void));
--
--static int brand __P((void));
--static void sbrand __P((unsigned long)); /* set bash random number generator. */
--static void seedrand __P((void)); /* seed generator randomly */
--static SHELL_VAR *assign_random __P((SHELL_VAR *, char *, arrayind_t, char *));
--static SHELL_VAR *get_random __P((SHELL_VAR *));
--
--static SHELL_VAR *assign_lineno __P((SHELL_VAR *, char *, arrayind_t, char *));
--static SHELL_VAR *get_lineno __P((SHELL_VAR *));
--
--static SHELL_VAR *assign_subshell __P((SHELL_VAR *, char *, arrayind_t, char *));
--static SHELL_VAR *get_subshell __P((SHELL_VAR *));
--
--static SHELL_VAR *get_bashpid __P((SHELL_VAR *));
--
--#if defined (HISTORY)
--static SHELL_VAR *get_histcmd __P((SHELL_VAR *));
--#endif
--
--#if defined (READLINE)
--static SHELL_VAR *get_comp_wordbreaks __P((SHELL_VAR *));
--static SHELL_VAR *assign_comp_wordbreaks __P((SHELL_VAR *, char *, arrayind_t, char *));
--#endif
--
--#if defined (PUSHD_AND_POPD) && defined (ARRAY_VARS)
--static SHELL_VAR *assign_dirstack __P((SHELL_VAR *, char *, arrayind_t, char *));
--static SHELL_VAR *get_dirstack __P((SHELL_VAR *));
--#endif
--
--#if defined (ARRAY_VARS)
--static SHELL_VAR *get_groupset __P((SHELL_VAR *));
--
--static SHELL_VAR *build_hashcmd __P((SHELL_VAR *));
--static SHELL_VAR *get_hashcmd __P((SHELL_VAR *));
--static SHELL_VAR *assign_hashcmd __P((SHELL_VAR *, char *, arrayind_t, char *));
--# if defined (ALIAS)
--static SHELL_VAR *build_aliasvar __P((SHELL_VAR *));
--static SHELL_VAR *get_aliasvar __P((SHELL_VAR *));
--static SHELL_VAR *assign_aliasvar __P((SHELL_VAR *, char *, arrayind_t, char *));
--# endif
--#endif
--
--static SHELL_VAR *get_funcname __P((SHELL_VAR *));
--static SHELL_VAR *init_funcname_var __P((void));
--
--static void initialize_dynamic_variables __P((void));
--
--static SHELL_VAR *hash_lookup __P((const char *, HASH_TABLE *));
--static SHELL_VAR *new_shell_variable __P((const char *));
--static SHELL_VAR *make_new_variable __P((const char *, HASH_TABLE *));
--static SHELL_VAR *bind_variable_internal __P((const char *, char *, HASH_TABLE *, int, int));
--
--static void dispose_variable_value __P((SHELL_VAR *));
--static void free_variable_hash_data __P((PTR_T));
--
--static VARLIST *vlist_alloc __P((int));
--static VARLIST *vlist_realloc __P((VARLIST *, int));
--static void vlist_add __P((VARLIST *, SHELL_VAR *, int));
--
--static void flatten __P((HASH_TABLE *, sh_var_map_func_t *, VARLIST *, int));
--
--static int qsort_var_comp __P((SHELL_VAR **, SHELL_VAR **));
--
--static SHELL_VAR **vapply __P((sh_var_map_func_t *));
--static SHELL_VAR **fapply __P((sh_var_map_func_t *));
--
--static int visible_var __P((SHELL_VAR *));
--static int visible_and_exported __P((SHELL_VAR *));
--static int export_environment_candidate __P((SHELL_VAR *));
--static int local_and_exported __P((SHELL_VAR *));
--static int variable_in_context __P((SHELL_VAR *));
--#if defined (ARRAY_VARS)
--static int visible_array_vars __P((SHELL_VAR *));
--#endif
--
--static SHELL_VAR *find_nameref_at_context __P((SHELL_VAR *, VAR_CONTEXT *));
--static SHELL_VAR *find_variable_nameref_context __P((SHELL_VAR *, VAR_CONTEXT *, VAR_CONTEXT **));
--static SHELL_VAR *find_variable_last_nameref_context __P((SHELL_VAR *, VAR_CONTEXT *, VAR_CONTEXT **));
--
--static SHELL_VAR *bind_tempenv_variable __P((const char *, char *));
--static void push_temp_var __P((PTR_T));
--static void propagate_temp_var __P((PTR_T));
--static void dispose_temporary_env __P((sh_free_func_t *));
--
--static inline char *mk_env_string __P((const char *, const char *, int));
--static char **make_env_array_from_var_list __P((SHELL_VAR **));
--static char **make_var_export_array __P((VAR_CONTEXT *));
--static char **make_func_export_array __P((void));
--static void add_temp_array_to_env __P((char **, int, int));
--
--static int n_shell_variables __P((void));
--static int set_context __P((SHELL_VAR *));
--
--static void push_func_var __P((PTR_T));
--static void push_exported_var __P((PTR_T));
--
--static inline int find_special_var __P((const char *));
--
--static void
--create_variable_tables ()
--{
-- if (shell_variables == 0)
-- {
-- shell_variables = global_variables = new_var_context ((char *)NULL, 0);
-- shell_variables->scope = 0;
-- shell_variables->table = hash_create (0);
-- }
--
-- if (shell_functions == 0)
-- shell_functions = hash_create (0);
--
--#if defined (DEBUGGER)
-- if (shell_function_defs == 0)
-- shell_function_defs = hash_create (0);
--#endif
--}
--
--/* Initialize the shell variables from the current environment.
-- If PRIVMODE is nonzero, don't import functions from ENV or
-- parse $SHELLOPTS. */
--void
--initialize_shell_variables (env, privmode)
-- char **env;
-- int privmode;
--{
-- char *name, *string, *temp_string;
-- int c, char_index, string_index, string_length, ro;
-- SHELL_VAR *temp_var;
--
-- create_variable_tables ();
--
-- for (string_index = 0; string = env[string_index++]; )
-- {
-- char_index = 0;
-- name = string;
-- while ((c = *string++) && c != '=')
-- ;
-- if (string[-1] == '=')
-- char_index = string - name - 1;
--
-- /* If there are weird things in the environment, like `=xxx' or a
-- string without an `=', just skip them. */
-- if (char_index == 0)
-- continue;
--
-- /* ASSERT(name[char_index] == '=') */
-- name[char_index] = '\0';
-- /* Now, name = env variable name, string = env variable value, and
-- char_index == strlen (name) */
--
-- temp_var = (SHELL_VAR *)NULL;
--
-- /* If exported function, define it now. Don't import functions from
-- the environment in privileged mode. */
-- if (privmode == 0 && read_but_dont_execute == 0 &&
-- STREQN (BASHFUNC_PREFIX, name, BASHFUNC_PREFLEN) &&
-- STREQ (BASHFUNC_SUFFIX, name + char_index - BASHFUNC_SUFFLEN) &&
-- STREQN ("() {", string, 4))
-- {
-- size_t namelen;
-- char *tname; /* desired imported function name */
--
-- namelen = char_index - BASHFUNC_PREFLEN - BASHFUNC_SUFFLEN;
--
-- tname = name + BASHFUNC_PREFLEN; /* start of func name */
-- tname[namelen] = '\0'; /* now tname == func name */
--
-- string_length = strlen (string);
-- temp_string = (char *)xmalloc (namelen + string_length + 2);
--
-- memcpy (temp_string, tname, namelen);
-- temp_string[namelen] = ' ';
-- memcpy (temp_string + namelen + 1, string, string_length + 1);
--
-- /* Don't import function names that are invalid identifiers from the
-- environment, though we still allow them to be defined as shell
-- variables. */
-- if (absolute_program (tname) == 0 && (posixly_correct == 0 || legal_identifier (tname)))
-- parse_and_execute (temp_string, tname, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD);
--
-- if (temp_var = find_function (tname))
-- {
-- VSETATTR (temp_var, (att_exported|att_imported));
-- array_needs_making = 1;
-- }
-- else
-- {
-- if (temp_var = bind_variable (name, string, 0))
-- {
-- VSETATTR (temp_var, (att_exported | att_imported | att_invisible));
-- array_needs_making = 1;
-- }
-- last_command_exit_value = 1;
-- report_error (_("error importing function definition for `%s'"), tname);
-- }
--
-- /* Restore original suffix */
-- tname[namelen] = BASHFUNC_SUFFIX[0];
-- }
--#if defined (ARRAY_VARS)
--# if ARRAY_EXPORT
-- /* Array variables may not yet be exported. */
-- else if (*string == '(' && string[1] == '[' && string[strlen (string) - 1] == ')')
-- {
-- string_length = 1;
-- temp_string = extract_array_assignment_list (string, &string_length);
-- temp_var = assign_array_from_string (name, temp_string);
-- FREE (temp_string);
-- VSETATTR (temp_var, (att_exported | att_imported));
-- array_needs_making = 1;
-- }
--# endif /* ARRAY_EXPORT */
--#endif
--#if 0
-- else if (legal_identifier (name))
--#else
-- else
--#endif
-- {
-- ro = 0;
-- if (posixly_correct && STREQ (name, "SHELLOPTS"))
-- {
-- temp_var = find_variable ("SHELLOPTS");
-- ro = temp_var && readonly_p (temp_var);
-- if (temp_var)
-- VUNSETATTR (temp_var, att_readonly);
-- }
-- temp_var = bind_variable (name, string, 0);
-- if (temp_var)
-- {
-- if (legal_identifier (name))
-- VSETATTR (temp_var, (att_exported | att_imported));
-- else
-- VSETATTR (temp_var, (att_exported | att_imported | att_invisible));
-- if (ro)
-- VSETATTR (temp_var, att_readonly);
-- array_needs_making = 1;
-- }
-- }
--
-- name[char_index] = '=';
-- /* temp_var can be NULL if it was an exported function with a syntax
-- error (a different bug, but it still shouldn't dump core). */
-- if (temp_var && function_p (temp_var) == 0) /* XXX not yet */
-- {
-- CACHE_IMPORTSTR (temp_var, name);
-- }
-- }
--
-- set_pwd ();
--
-- /* Set up initial value of $_ */
-- temp_var = set_if_not ("_", dollar_vars[0]);
--
-- /* Remember this pid. */
-- dollar_dollar_pid = getpid ();
--
-- /* Now make our own defaults in case the vars that we think are
-- important are missing. */
-- temp_var = set_if_not ("PATH", DEFAULT_PATH_VALUE);
--#if 0
-- set_auto_export (temp_var); /* XXX */
--#endif
--
-- temp_var = set_if_not ("TERM", "dumb");
--#if 0
-- set_auto_export (temp_var); /* XXX */
--#endif
--
--#if defined (__QNX__)
-- /* set node id -- don't import it from the environment */
-- {
-- char node_name[22];
--# if defined (__QNXNTO__)
-- netmgr_ndtostr(ND2S_LOCAL_STR, ND_LOCAL_NODE, node_name, sizeof(node_name));
--# else
-- qnx_nidtostr (getnid (), node_name, sizeof (node_name));
--# endif
-- temp_var = bind_variable ("NODE", node_name, 0);
-- set_auto_export (temp_var);
-- }
--#endif
--
-- /* set up the prompts. */
-- if (interactive_shell)
-- {
--#if defined (PROMPT_STRING_DECODE)
-- set_if_not ("PS1", primary_prompt);
--#else
-- if (current_user.uid == -1)
-- get_current_user_info ();
-- set_if_not ("PS1", current_user.euid == 0 ? "# " : primary_prompt);
--#endif
-- set_if_not ("PS2", secondary_prompt);
-- }
-- set_if_not ("PS4", "+ ");
--
-- /* Don't allow IFS to be imported from the environment. */
-- temp_var = bind_variable ("IFS", " \t\n", 0);
-- setifs (temp_var);
--
-- /* Magic machine types. Pretty convenient. */
-- set_machine_vars ();
--
-- /* Default MAILCHECK for interactive shells. Defer the creation of a
-- default MAILPATH until the startup files are read, because MAIL
-- names a mail file if MAILPATH is not set, and we should provide a
-- default only if neither is set. */
-- if (interactive_shell)
-- {
-- temp_var = set_if_not ("MAILCHECK", posixly_correct ? "600" : "60");
-- VSETATTR (temp_var, att_integer);
-- }
--
-- /* Do some things with shell level. */
-- initialize_shell_level ();
--
-- set_ppid ();
--
-- /* Initialize the `getopts' stuff. */
-- temp_var = bind_variable ("OPTIND", "1", 0);
-- VSETATTR (temp_var, att_integer);
-- getopts_reset (0);
-- bind_variable ("OPTERR", "1", 0);
-- sh_opterr = 1;
--
-- if (login_shell == 1 && posixly_correct == 0)
-- set_home_var ();
--
-- /* Get the full pathname to THIS shell, and set the BASH variable
-- to it. */
-- name = get_bash_name ();
-- temp_var = bind_variable ("BASH", name, 0);
-- free (name);
--
-- /* Make the exported environment variable SHELL be the user's login
-- shell. Note that the `tset' command looks at this variable
-- to determine what style of commands to output; if it ends in "csh",
-- then C-shell commands are output, else Bourne shell commands. */
-- set_shell_var ();
--
-- /* Make a variable called BASH_VERSION which contains the version info. */
-- bind_variable ("BASH_VERSION", shell_version_string (), 0);
--#if defined (ARRAY_VARS)
-- make_vers_array ();
--#endif
--
-- if (command_execution_string)
-- bind_variable ("BASH_EXECUTION_STRING", command_execution_string, 0);
--
-- /* Find out if we're supposed to be in Posix.2 mode via an
-- environment variable. */
-- temp_var = find_variable ("POSIXLY_CORRECT");
-- if (!temp_var)
-- temp_var = find_variable ("POSIX_PEDANTIC");
-- if (temp_var && imported_p (temp_var))
-- sv_strict_posix (temp_var->name);
--
--#if defined (HISTORY)
-- /* Set history variables to defaults, and then do whatever we would
-- do if the variable had just been set. Do this only in the case
-- that we are remembering commands on the history list. */
-- if (remember_on_history)
-- {
-- name = bash_tilde_expand (posixly_correct ? "~/.sh_history" : "~/.bash_history", 0);
--
-- set_if_not ("HISTFILE", name);
-- free (name);
-- }
--#endif /* HISTORY */
--
-- /* Seed the random number generator. */
-- seedrand ();
--
-- /* Handle some "special" variables that we may have inherited from a
-- parent shell. */
-- if (interactive_shell)
-- {
-- temp_var = find_variable ("IGNOREEOF");
-- if (!temp_var)
-- temp_var = find_variable ("ignoreeof");
-- if (temp_var && imported_p (temp_var))
-- sv_ignoreeof (temp_var->name);
-- }
--
--#if defined (HISTORY)
-- if (interactive_shell && remember_on_history)
-- {
-- sv_history_control ("HISTCONTROL");
-- sv_histignore ("HISTIGNORE");
-- sv_histtimefmt ("HISTTIMEFORMAT");
-- }
--#endif /* HISTORY */
--
--#if defined (READLINE) && defined (STRICT_POSIX)
-- /* POSIXLY_CORRECT will only be 1 here if the shell was compiled
-- -DSTRICT_POSIX */
-- if (interactive_shell && posixly_correct && no_line_editing == 0)
-- rl_prefer_env_winsize = 1;
--#endif /* READLINE && STRICT_POSIX */
--
-- /*
-- * 24 October 2001
-- *
-- * I'm tired of the arguing and bug reports. Bash now leaves SSH_CLIENT
-- * and SSH2_CLIENT alone. I'm going to rely on the shell_level check in
-- * isnetconn() to avoid running the startup files more often than wanted.
-- * That will, of course, only work if the user's login shell is bash, so
-- * I've made that behavior conditional on SSH_SOURCE_BASHRC being defined
-- * in config-top.h.
-- */
--#if 0
-- temp_var = find_variable ("SSH_CLIENT");
-- if (temp_var && imported_p (temp_var))
-- {
-- VUNSETATTR (temp_var, att_exported);
-- array_needs_making = 1;
-- }
-- temp_var = find_variable ("SSH2_CLIENT");
-- if (temp_var && imported_p (temp_var))
-- {
-- VUNSETATTR (temp_var, att_exported);
-- array_needs_making = 1;
-- }
--#endif
--
-- /* Get the user's real and effective user ids. */
-- uidset ();
--
-- temp_var = find_variable ("BASH_XTRACEFD");
-- if (temp_var && imported_p (temp_var))
-- sv_xtracefd (temp_var->name);
--
-- /* Initialize the dynamic variables, and seed their values. */
-- initialize_dynamic_variables ();
--}
--
--/* **************************************************************** */
--/* */
--/* Setting values for special shell variables */
--/* */
--/* **************************************************************** */
--
--static void
--set_machine_vars ()
--{
-- SHELL_VAR *temp_var;
--
-- temp_var = set_if_not ("HOSTTYPE", HOSTTYPE);
-- temp_var = set_if_not ("OSTYPE", OSTYPE);
-- temp_var = set_if_not ("MACHTYPE", MACHTYPE);
--
-- temp_var = set_if_not ("HOSTNAME", current_host_name);
--}
--
--/* Set $HOME to the information in the password file if we didn't get
-- it from the environment. */
--
--/* This function is not static so the tilde and readline libraries can
-- use it. */
--char *
--sh_get_home_dir ()
--{
-- if (current_user.home_dir == 0)
-- get_current_user_info ();
-- return current_user.home_dir;
--}
--
--static void
--set_home_var ()
--{
-- SHELL_VAR *temp_var;
--
-- temp_var = find_variable ("HOME");
-- if (temp_var == 0)
-- temp_var = bind_variable ("HOME", sh_get_home_dir (), 0);
--#if 0
-- VSETATTR (temp_var, att_exported);
--#endif
--}
--
--/* Set $SHELL to the user's login shell if it is not already set. Call
-- get_current_user_info if we haven't already fetched the shell. */
--static void
--set_shell_var ()
--{
-- SHELL_VAR *temp_var;
--
-- temp_var = find_variable ("SHELL");
-- if (temp_var == 0)
-- {
-- if (current_user.shell == 0)
-- get_current_user_info ();
-- temp_var = bind_variable ("SHELL", current_user.shell, 0);
-- }
--#if 0
-- VSETATTR (temp_var, att_exported);
--#endif
--}
--
--static char *
--get_bash_name ()
--{
-- char *name;
--
-- if ((login_shell == 1) && RELPATH(shell_name))
-- {
-- if (current_user.shell == 0)
-- get_current_user_info ();
-- name = savestring (current_user.shell);
-- }
-- else if (ABSPATH(shell_name))
-- name = savestring (shell_name);
-- else if (shell_name[0] == '.' && shell_name[1] == '/')
-- {
-- /* Fast path for common case. */
-- char *cdir;
-- int len;
--
-- cdir = get_string_value ("PWD");
-- if (cdir)
-- {
-- len = strlen (cdir);
-- name = (char *)xmalloc (len + strlen (shell_name) + 1);
-- strcpy (name, cdir);
-- strcpy (name + len, shell_name + 1);
-- }
-- else
-- name = savestring (shell_name);
-- }
-- else
-- {
-- char *tname;
-- int s;
--
-- tname = find_user_command (shell_name);
--
-- if (tname == 0)
-- {
-- /* Try the current directory. If there is not an executable
-- there, just punt and use the login shell. */
-- s = file_status (shell_name);
-- if (s & FS_EXECABLE)
-- {
-- tname = make_absolute (shell_name, get_string_value ("PWD"));
-- if (*shell_name == '.')
-- {
-- name = sh_canonpath (tname, PATH_CHECKDOTDOT|PATH_CHECKEXISTS);
-- if (name == 0)
-- name = tname;
-- else
-- free (tname);
-- }
-- else
-- name = tname;
-- }
-- else
-- {
-- if (current_user.shell == 0)
-- get_current_user_info ();
-- name = savestring (current_user.shell);
-- }
-- }
-- else
-- {
-- name = full_pathname (tname);
-- free (tname);
-- }
-- }
--
-- return (name);
--}
--
--void
--adjust_shell_level (change)
-- int change;
--{
-- char new_level[5], *old_SHLVL;
-- intmax_t old_level;
-- SHELL_VAR *temp_var;
--
-- old_SHLVL = get_string_value ("SHLVL");
-- if (old_SHLVL == 0 || *old_SHLVL == '\0' || legal_number (old_SHLVL, &old_level) == 0)
-- old_level = 0;
--
-- shell_level = old_level + change;
-- if (shell_level < 0)
-- shell_level = 0;
-- else if (shell_level > 1000)
-- {
-- internal_warning (_("shell level (%d) too high, resetting to 1"), shell_level);
-- shell_level = 1;
-- }
--
-- /* We don't need the full generality of itos here. */
-- if (shell_level < 10)
-- {
-- new_level[0] = shell_level + '0';
-- new_level[1] = '\0';
-- }
-- else if (shell_level < 100)
-- {
-- new_level[0] = (shell_level / 10) + '0';
-- new_level[1] = (shell_level % 10) + '0';
-- new_level[2] = '\0';
-- }
-- else if (shell_level < 1000)
-- {
-- new_level[0] = (shell_level / 100) + '0';
-- old_level = shell_level % 100;
-- new_level[1] = (old_level / 10) + '0';
-- new_level[2] = (old_level % 10) + '0';
-- new_level[3] = '\0';
-- }
--
-- temp_var = bind_variable ("SHLVL", new_level, 0);
-- set_auto_export (temp_var);
--}
--
--static void
--initialize_shell_level ()
--{
-- adjust_shell_level (1);
--}
--
--/* If we got PWD from the environment, update our idea of the current
-- working directory. In any case, make sure that PWD exists before
-- checking it. It is possible for getcwd () to fail on shell startup,
-- and in that case, PWD would be undefined. If this is an interactive
-- login shell, see if $HOME is the current working directory, and if
-- that's not the same string as $PWD, set PWD=$HOME. */
--
--void
--set_pwd ()
--{
-- SHELL_VAR *temp_var, *home_var;
-- char *temp_string, *home_string;
--
-- home_var = find_variable ("HOME");
-- home_string = home_var ? value_cell (home_var) : (char *)NULL;
--
-- temp_var = find_variable ("PWD");
-- if (temp_var && imported_p (temp_var) &&
-- (temp_string = value_cell (temp_var)) &&
-- same_file (temp_string, ".", (struct stat *)NULL, (struct stat *)NULL))
-- set_working_directory (temp_string);
-- else if (home_string && interactive_shell && login_shell &&
-- same_file (home_string, ".", (struct stat *)NULL, (struct stat *)NULL))
-- {
-- set_working_directory (home_string);
-- temp_var = bind_variable ("PWD", home_string, 0);
-- set_auto_export (temp_var);
-- }
-- else
-- {
-- temp_string = get_working_directory ("shell-init");
-- if (temp_string)
-- {
-- temp_var = bind_variable ("PWD", temp_string, 0);
-- set_auto_export (temp_var);
-- free (temp_string);
-- }
-- }
--
-- /* According to the Single Unix Specification, v2, $OLDPWD is an
-- `environment variable' and therefore should be auto-exported.
-- Make a dummy invisible variable for OLDPWD, and mark it as exported. */
-- temp_var = bind_variable ("OLDPWD", (char *)NULL, 0);
-- VSETATTR (temp_var, (att_exported | att_invisible));
--}
--
--/* Make a variable $PPID, which holds the pid of the shell's parent. */
--void
--set_ppid ()
--{
-- char namebuf[INT_STRLEN_BOUND(pid_t) + 1], *name;
-- SHELL_VAR *temp_var;
--
-- name = inttostr (getppid (), namebuf, sizeof(namebuf));
-- temp_var = find_variable ("PPID");
-- if (temp_var)
-- VUNSETATTR (temp_var, (att_readonly | att_exported));
-- temp_var = bind_variable ("PPID", name, 0);
-- VSETATTR (temp_var, (att_readonly | att_integer));
--}
--
--static void
--uidset ()
--{
-- char buff[INT_STRLEN_BOUND(uid_t) + 1], *b;
-- register SHELL_VAR *v;
--
-- b = inttostr (current_user.uid, buff, sizeof (buff));
-- v = find_variable ("UID");
-- if (v == 0)
-- {
-- v = bind_variable ("UID", b, 0);
-- VSETATTR (v, (att_readonly | att_integer));
-- }
--
-- if (current_user.euid != current_user.uid)
-- b = inttostr (current_user.euid, buff, sizeof (buff));
--
-- v = find_variable ("EUID");
-- if (v == 0)
-- {
-- v = bind_variable ("EUID", b, 0);
-- VSETATTR (v, (att_readonly | att_integer));
-- }
--}
--
--#if defined (ARRAY_VARS)
--static void
--make_vers_array ()
--{
-- SHELL_VAR *vv;
-- ARRAY *av;
-- char *s, d[32], b[INT_STRLEN_BOUND(int) + 1];
--
-- unbind_variable ("BASH_VERSINFO");
--
-- vv = make_new_array_variable ("BASH_VERSINFO");
-- av = array_cell (vv);
-- strcpy (d, dist_version);
-- s = strchr (d, '.');
-- if (s)
-- *s++ = '\0';
-- array_insert (av, 0, d);
-- array_insert (av, 1, s);
-- s = inttostr (patch_level, b, sizeof (b));
-- array_insert (av, 2, s);
-- s = inttostr (build_version, b, sizeof (b));
-- array_insert (av, 3, s);
-- array_insert (av, 4, release_status);
-- array_insert (av, 5, MACHTYPE);
--
-- VSETATTR (vv, att_readonly);
--}
--#endif /* ARRAY_VARS */
--
--/* Set the environment variables $LINES and $COLUMNS in response to
-- a window size change. */
--void
--sh_set_lines_and_columns (lines, cols)
-- int lines, cols;
--{
-- char val[INT_STRLEN_BOUND(int) + 1], *v;
--
--#if defined (READLINE)
-- /* If we are currently assigning to LINES or COLUMNS, don't do anything. */
-- if (winsize_assignment)
-- return;
--#endif
--
-- v = inttostr (lines, val, sizeof (val));
-- bind_variable ("LINES", v, 0);
--
-- v = inttostr (cols, val, sizeof (val));
-- bind_variable ("COLUMNS", v, 0);
--}
--
--/* **************************************************************** */
--/* */
--/* Printing variables and values */
--/* */
--/* **************************************************************** */
--
--/* Print LIST (a list of shell variables) to stdout in such a way that
-- they can be read back in. */
--void
--print_var_list (list)
-- register SHELL_VAR **list;
--{
-- register int i;
-- register SHELL_VAR *var;
--
-- for (i = 0; list && (var = list[i]); i++)
-- if (invisible_p (var) == 0)
-- print_assignment (var);
--}
--
--/* Print LIST (a list of shell functions) to stdout in such a way that
-- they can be read back in. */
--void
--print_func_list (list)
-- register SHELL_VAR **list;
--{
-- register int i;
-- register SHELL_VAR *var;
--
-- for (i = 0; list && (var = list[i]); i++)
-- {
-- printf ("%s ", var->name);
-- print_var_function (var);
-- printf ("\n");
-- }
--}
--
--/* Print the value of a single SHELL_VAR. No newline is
-- output, but the variable is printed in such a way that
-- it can be read back in. */
--void
--print_assignment (var)
-- SHELL_VAR *var;
--{
-- if (var_isset (var) == 0)
-- return;
--
-- if (function_p (var))
-- {
-- printf ("%s", var->name);
-- print_var_function (var);
-- printf ("\n");
-- }
--#if defined (ARRAY_VARS)
-- else if (array_p (var))
-- print_array_assignment (var, 0);
-- else if (assoc_p (var))
-- print_assoc_assignment (var, 0);
--#endif /* ARRAY_VARS */
-- else
-- {
-- printf ("%s=", var->name);
-- print_var_value (var, 1);
-- printf ("\n");
-- }
--}
--
--/* Print the value cell of VAR, a shell variable. Do not print
-- the name, nor leading/trailing newline. If QUOTE is non-zero,
-- and the value contains shell metacharacters, quote the value
-- in such a way that it can be read back in. */
--void
--print_var_value (var, quote)
-- SHELL_VAR *var;
-- int quote;
--{
-- char *t;
--
-- if (var_isset (var) == 0)
-- return;
--
-- if (quote && posixly_correct == 0 && ansic_shouldquote (value_cell (var)))
-- {
-- t = ansic_quote (value_cell (var), 0, (int *)0);
-- printf ("%s", t);
-- free (t);
-- }
-- else if (quote && sh_contains_shell_metas (value_cell (var)))
-- {
-- t = sh_single_quote (value_cell (var));
-- printf ("%s", t);
-- free (t);
-- }
-- else
-- printf ("%s", value_cell (var));
--}
--
--/* Print the function cell of VAR, a shell variable. Do not
-- print the name, nor leading/trailing newline. */
--void
--print_var_function (var)
-- SHELL_VAR *var;
--{
-- char *x;
--
-- if (function_p (var) && var_isset (var))
-- {
-- x = named_function_string ((char *)NULL, function_cell(var), FUNC_MULTILINE|FUNC_EXTERNAL);
-- printf ("%s", x);
-- }
--}
--
--/* **************************************************************** */
--/* */
--/* Dynamic Variables */
--/* */
--/* **************************************************************** */
--
--/* DYNAMIC VARIABLES
--
-- These are variables whose values are generated anew each time they are
-- referenced. These are implemented using a pair of function pointers
-- in the struct variable: assign_func, which is called from bind_variable
-- and, if arrays are compiled into the shell, some of the functions in
-- arrayfunc.c, and dynamic_value, which is called from find_variable.
--
-- assign_func is called from bind_variable_internal, if
-- bind_variable_internal discovers that the variable being assigned to
-- has such a function. The function is called as
-- SHELL_VAR *temp = (*(entry->assign_func)) (entry, value, ind)
-- and the (SHELL_VAR *)temp is returned as the value of bind_variable. It
-- is usually ENTRY (self). IND is an index for an array variable, and
-- unused otherwise.
--
-- dynamic_value is called from find_variable_internal to return a `new'
-- value for the specified dynamic varible. If this function is NULL,
-- the variable is treated as a `normal' shell variable. If it is not,
-- however, then this function is called like this:
-- tempvar = (*(var->dynamic_value)) (var);
--
-- Sometimes `tempvar' will replace the value of `var'. Other times, the
-- shell will simply use the string value. Pretty object-oriented, huh?
--
-- Be warned, though: if you `unset' a special variable, it loses its
-- special meaning, even if you subsequently set it.
--
-- The special assignment code would probably have been better put in
-- subst.c: do_assignment_internal, in the same style as
-- stupidly_hack_special_variables, but I wanted the changes as
-- localized as possible. */
--
--#define INIT_DYNAMIC_VAR(var, val, gfunc, afunc) \
-- do \
-- { \
-- v = bind_variable (var, (val), 0); \
-- v->dynamic_value = gfunc; \
-- v->assign_func = afunc; \
-- } \
-- while (0)
--
--#define INIT_DYNAMIC_ARRAY_VAR(var, gfunc, afunc) \
-- do \
-- { \
-- v = make_new_array_variable (var); \
-- v->dynamic_value = gfunc; \
-- v->assign_func = afunc; \
-- } \
-- while (0)
--
--#define INIT_DYNAMIC_ASSOC_VAR(var, gfunc, afunc) \
-- do \
-- { \
-- v = make_new_assoc_variable (var); \
-- v->dynamic_value = gfunc; \
-- v->assign_func = afunc; \
-- } \
-- while (0)
--
--static SHELL_VAR *
--null_assign (self, value, unused, key)
-- SHELL_VAR *self;
-- char *value;
-- arrayind_t unused;
-- char *key;
--{
-- return (self);
--}
--
--#if defined (ARRAY_VARS)
--static SHELL_VAR *
--null_array_assign (self, value, ind, key)
-- SHELL_VAR *self;
-- char *value;
-- arrayind_t ind;
-- char *key;
--{
-- return (self);
--}
--#endif
--
--/* Degenerate `dynamic_value' function; just returns what's passed without
-- manipulation. */
--static SHELL_VAR *
--get_self (self)
-- SHELL_VAR *self;
--{
-- return (self);
--}
--
--#if defined (ARRAY_VARS)
--/* A generic dynamic array variable initializer. Initialize array variable
-- NAME with dynamic value function GETFUNC and assignment function SETFUNC. */
--static SHELL_VAR *
--init_dynamic_array_var (name, getfunc, setfunc, attrs)
-- char *name;
-- sh_var_value_func_t *getfunc;
-- sh_var_assign_func_t *setfunc;
-- int attrs;
--{
-- SHELL_VAR *v;
--
-- v = find_variable (name);
-- if (v)
-- return (v);
-- INIT_DYNAMIC_ARRAY_VAR (name, getfunc, setfunc);
-- if (attrs)
-- VSETATTR (v, attrs);
-- return v;
--}
--
--static SHELL_VAR *
--init_dynamic_assoc_var (name, getfunc, setfunc, attrs)
-- char *name;
-- sh_var_value_func_t *getfunc;
-- sh_var_assign_func_t *setfunc;
-- int attrs;
--{
-- SHELL_VAR *v;
--
-- v = find_variable (name);
-- if (v)
-- return (v);
-- INIT_DYNAMIC_ASSOC_VAR (name, getfunc, setfunc);
-- if (attrs)
-- VSETATTR (v, attrs);
-- return v;
--}
--#endif
--
--/* The value of $SECONDS. This is the number of seconds since shell
-- invocation, or, the number of seconds since the last assignment + the
-- value of the last assignment. */
--static intmax_t seconds_value_assigned;
--
--static SHELL_VAR *
--assign_seconds (self, value, unused, key)
-- SHELL_VAR *self;
-- char *value;
-- arrayind_t unused;
-- char *key;
--{
-- if (legal_number (value, &seconds_value_assigned) == 0)
-- seconds_value_assigned = 0;
-- shell_start_time = NOW;
-- return (self);
--}
--
--static SHELL_VAR *
--get_seconds (var)
-- SHELL_VAR *var;
--{
-- time_t time_since_start;
-- char *p;
--
-- time_since_start = NOW - shell_start_time;
-- p = itos(seconds_value_assigned + time_since_start);
--
-- FREE (value_cell (var));
--
-- VSETATTR (var, att_integer);
-- var_setvalue (var, p);
-- return (var);
--}
--
--static SHELL_VAR *
--init_seconds_var ()
--{
-- SHELL_VAR *v;
--
-- v = find_variable ("SECONDS");
-- if (v)
-- {
-- if (legal_number (value_cell(v), &seconds_value_assigned) == 0)
-- seconds_value_assigned = 0;
-- }
-- INIT_DYNAMIC_VAR ("SECONDS", (v ? value_cell (v) : (char *)NULL), get_seconds, assign_seconds);
-- return v;
--}
--
--/* The random number seed. You can change this by setting RANDOM. */
--static unsigned long rseed = 1;
--static int last_random_value;
--static int seeded_subshell = 0;
--
--/* A linear congruential random number generator based on the example
-- one in the ANSI C standard. This one isn't very good, but a more
-- complicated one is overkill. */
--
--/* Returns a pseudo-random number between 0 and 32767. */
--static int
--brand ()
--{
-- /* From "Random number generators: good ones are hard to find",
-- Park and Miller, Communications of the ACM, vol. 31, no. 10,
-- October 1988, p. 1195. filtered through FreeBSD */
-- long h, l;
--
-- /* Can't seed with 0. */
-- if (rseed == 0)
-- rseed = 123459876;
-- h = rseed / 127773;
-- l = rseed % 127773;
-- rseed = 16807 * l - 2836 * h;
--#if 0
-- if (rseed < 0)
-- rseed += 0x7fffffff;
--#endif
-- return ((unsigned int)(rseed & 32767)); /* was % 32768 */
--}
--
--/* Set the random number generator seed to SEED. */
--static void
--sbrand (seed)
-- unsigned long seed;
--{
-- rseed = seed;
-- last_random_value = 0;
--}
--
--static void
--seedrand ()
--{
-- struct timeval tv;
--
-- gettimeofday (&tv, NULL);
-- sbrand (tv.tv_sec ^ tv.tv_usec ^ getpid ());
--}
--
--static SHELL_VAR *
--assign_random (self, value, unused, key)
-- SHELL_VAR *self;
-- char *value;
-- arrayind_t unused;
-- char *key;
--{
-- sbrand (strtoul (value, (char **)NULL, 10));
-- if (subshell_environment)
-- seeded_subshell = getpid ();
-- return (self);
--}
--
--int
--get_random_number ()
--{
-- int rv, pid;
--
-- /* Reset for command and process substitution. */
-- pid = getpid ();
-- if (subshell_environment && seeded_subshell != pid)
-- {
-- seedrand ();
-- seeded_subshell = pid;
-- }
--
-- do
-- rv = brand ();
-- while (rv == last_random_value);
-- return rv;
--}
--
--static SHELL_VAR *
--get_random (var)
-- SHELL_VAR *var;
--{
-- int rv;
-- char *p;
--
-- rv = get_random_number ();
-- last_random_value = rv;
-- p = itos (rv);
--
-- FREE (value_cell (var));
--
-- VSETATTR (var, att_integer);
-- var_setvalue (var, p);
-- return (var);
--}
--
--static SHELL_VAR *
--assign_lineno (var, value, unused, key)
-- SHELL_VAR *var;
-- char *value;
-- arrayind_t unused;
-- char *key;
--{
-- intmax_t new_value;
--
-- if (value == 0 || *value == '\0' || legal_number (value, &new_value) == 0)
-- new_value = 0;
-- line_number = line_number_base = new_value;
-- return var;
--}
--
--/* Function which returns the current line number. */
--static SHELL_VAR *
--get_lineno (var)
-- SHELL_VAR *var;
--{
-- char *p;
-- int ln;
--
-- ln = executing_line_number ();
-- p = itos (ln);
-- FREE (value_cell (var));
-- var_setvalue (var, p);
-- return (var);
--}
--
--static SHELL_VAR *
--assign_subshell (var, value, unused, key)
-- SHELL_VAR *var;
-- char *value;
-- arrayind_t unused;
-- char *key;
--{
-- intmax_t new_value;
--
-- if (value == 0 || *value == '\0' || legal_number (value, &new_value) == 0)
-- new_value = 0;
-- subshell_level = new_value;
-- return var;
--}
--
--static SHELL_VAR *
--get_subshell (var)
-- SHELL_VAR *var;
--{
-- char *p;
--
-- p = itos (subshell_level);
-- FREE (value_cell (var));
-- var_setvalue (var, p);
-- return (var);
--}
--
--static SHELL_VAR *
--get_bashpid (var)
-- SHELL_VAR *var;
--{
-- int pid;
-- char *p;
--
-- pid = getpid ();
-- p = itos (pid);
--
-- FREE (value_cell (var));
-- VSETATTR (var, att_integer|att_readonly);
-- var_setvalue (var, p);
-- return (var);
--}
--
--static SHELL_VAR *
--get_bash_command (var)
-- SHELL_VAR *var;
--{
-- char *p;
--
-- if (the_printed_command_except_trap)
-- p = savestring (the_printed_command_except_trap);
-- else
-- {
-- p = (char *)xmalloc (1);
-- p[0] = '\0';
-- }
-- FREE (value_cell (var));
-- var_setvalue (var, p);
-- return (var);
--}
--
--#if defined (HISTORY)
--static SHELL_VAR *
--get_histcmd (var)
-- SHELL_VAR *var;
--{
-- char *p;
--
-- p = itos (history_number ());
-- FREE (value_cell (var));
-- var_setvalue (var, p);
-- return (var);
--}
--#endif
--
--#if defined (READLINE)
--/* When this function returns, VAR->value points to malloced memory. */
--static SHELL_VAR *
--get_comp_wordbreaks (var)
-- SHELL_VAR *var;
--{
-- /* If we don't have anything yet, assign a default value. */
-- if (rl_completer_word_break_characters == 0 && bash_readline_initialized == 0)
-- enable_hostname_completion (perform_hostname_completion);
--
-- FREE (value_cell (var));
-- var_setvalue (var, savestring (rl_completer_word_break_characters));
--
-- return (var);
--}
--
--/* When this function returns, rl_completer_word_break_characters points to
-- malloced memory. */
--static SHELL_VAR *
--assign_comp_wordbreaks (self, value, unused, key)
-- SHELL_VAR *self;
-- char *value;
-- arrayind_t unused;
-- char *key;
--{
-- if (rl_completer_word_break_characters &&
-- rl_completer_word_break_characters != rl_basic_word_break_characters)
-- free (rl_completer_word_break_characters);
--
-- rl_completer_word_break_characters = savestring (value);
-- return self;
--}
--#endif /* READLINE */
--
--#if defined (PUSHD_AND_POPD) && defined (ARRAY_VARS)
--static SHELL_VAR *
--assign_dirstack (self, value, ind, key)
-- SHELL_VAR *self;
-- char *value;
-- arrayind_t ind;
-- char *key;
--{
-- set_dirstack_element (ind, 1, value);
-- return self;
--}
--
--static SHELL_VAR *
--get_dirstack (self)
-- SHELL_VAR *self;
--{
-- ARRAY *a;
-- WORD_LIST *l;
--
-- l = get_directory_stack (0);
-- a = array_from_word_list (l);
-- array_dispose (array_cell (self));
-- dispose_words (l);
-- var_setarray (self, a);
-- return self;
--}
--#endif /* PUSHD AND POPD && ARRAY_VARS */
--
--#if defined (ARRAY_VARS)
--/* We don't want to initialize the group set with a call to getgroups()
-- unless we're asked to, but we only want to do it once. */
--static SHELL_VAR *
--get_groupset (self)
-- SHELL_VAR *self;
--{
-- register int i;
-- int ng;
-- ARRAY *a;
-- static char **group_set = (char **)NULL;
--
-- if (group_set == 0)
-- {
-- group_set = get_group_list (&ng);
-- a = array_cell (self);
-- for (i = 0; i < ng; i++)
-- array_insert (a, i, group_set[i]);
-- }
-- return (self);
--}
--
--static SHELL_VAR *
--build_hashcmd (self)
-- SHELL_VAR *self;
--{
-- HASH_TABLE *h;
-- int i;
-- char *k, *v;
-- BUCKET_CONTENTS *item;
--
-- h = assoc_cell (self);
-- if (h)
-- assoc_dispose (h);
--
-- if (hashed_filenames == 0 || HASH_ENTRIES (hashed_filenames) == 0)
-- {
-- var_setvalue (self, (char *)NULL);
-- return self;
-- }
--
-- h = assoc_create (hashed_filenames->nbuckets);
-- for (i = 0; i < hashed_filenames->nbuckets; i++)
-- {
-- for (item = hash_items (i, hashed_filenames); item; item = item->next)
-- {
-- k = savestring (item->key);
-- v = pathdata(item)->path;
-- assoc_insert (h, k, v);
-- }
-- }
--
-- var_setvalue (self, (char *)h);
-- return self;
--}
--
--static SHELL_VAR *
--get_hashcmd (self)
-- SHELL_VAR *self;
--{
-- build_hashcmd (self);
-- return (self);
--}
--
--static SHELL_VAR *
--assign_hashcmd (self, value, ind, key)
-- SHELL_VAR *self;
-- char *value;
-- arrayind_t ind;
-- char *key;
--{
-- phash_insert (key, value, 0, 0);
-- return (build_hashcmd (self));
--}
--
--#if defined (ALIAS)
--static SHELL_VAR *
--build_aliasvar (self)
-- SHELL_VAR *self;
--{
-- HASH_TABLE *h;
-- int i;
-- char *k, *v;
-- BUCKET_CONTENTS *item;
--
-- h = assoc_cell (self);
-- if (h)
-- assoc_dispose (h);
--
-- if (aliases == 0 || HASH_ENTRIES (aliases) == 0)
-- {
-- var_setvalue (self, (char *)NULL);
-- return self;
-- }
--
-- h = assoc_create (aliases->nbuckets);
-- for (i = 0; i < aliases->nbuckets; i++)
-- {
-- for (item = hash_items (i, aliases); item; item = item->next)
-- {
-- k = savestring (item->key);
-- v = ((alias_t *)(item->data))->value;
-- assoc_insert (h, k, v);
-- }
-- }
--
-- var_setvalue (self, (char *)h);
-- return self;
--}
--
--static SHELL_VAR *
--get_aliasvar (self)
-- SHELL_VAR *self;
--{
-- build_aliasvar (self);
-- return (self);
--}
--
--static SHELL_VAR *
--assign_aliasvar (self, value, ind, key)
-- SHELL_VAR *self;
-- char *value;
-- arrayind_t ind;
-- char *key;
--{
-- add_alias (key, value);
-- return (build_aliasvar (self));
--}
--#endif /* ALIAS */
--
--#endif /* ARRAY_VARS */
--
--/* If ARRAY_VARS is not defined, this just returns the name of any
-- currently-executing function. If we have arrays, it's a call stack. */
--static SHELL_VAR *
--get_funcname (self)
-- SHELL_VAR *self;
--{
--#if ! defined (ARRAY_VARS)
-- char *t;
-- if (variable_context && this_shell_function)
-- {
-- FREE (value_cell (self));
-- t = savestring (this_shell_function->name);
-- var_setvalue (self, t);
-- }
--#endif
-- return (self);
--}
--
--void
--make_funcname_visible (on_or_off)
-- int on_or_off;
--{
-- SHELL_VAR *v;
--
-- v = find_variable ("FUNCNAME");
-- if (v == 0 || v->dynamic_value == 0)
-- return;
--
-- if (on_or_off)
-- VUNSETATTR (v, att_invisible);
-- else
-- VSETATTR (v, att_invisible);
--}
--
--static SHELL_VAR *
--init_funcname_var ()
--{
-- SHELL_VAR *v;
--
-- v = find_variable ("FUNCNAME");
-- if (v)
-- return v;
--#if defined (ARRAY_VARS)
-- INIT_DYNAMIC_ARRAY_VAR ("FUNCNAME", get_funcname, null_array_assign);
--#else
-- INIT_DYNAMIC_VAR ("FUNCNAME", (char *)NULL, get_funcname, null_assign);
--#endif
-- VSETATTR (v, att_invisible|att_noassign);
-- return v;
--}
--
--static void
--initialize_dynamic_variables ()
--{
-- SHELL_VAR *v;
--
-- v = init_seconds_var ();
--
-- INIT_DYNAMIC_VAR ("BASH_COMMAND", (char *)NULL, get_bash_command, (sh_var_assign_func_t *)NULL);
-- INIT_DYNAMIC_VAR ("BASH_SUBSHELL", (char *)NULL, get_subshell, assign_subshell);
--
-- INIT_DYNAMIC_VAR ("RANDOM", (char *)NULL, get_random, assign_random);
-- VSETATTR (v, att_integer);
-- INIT_DYNAMIC_VAR ("LINENO", (char *)NULL, get_lineno, assign_lineno);
-- VSETATTR (v, att_integer);
--
-- INIT_DYNAMIC_VAR ("BASHPID", (char *)NULL, get_bashpid, null_assign);
-- VSETATTR (v, att_integer|att_readonly);
--
--#if defined (HISTORY)
-- INIT_DYNAMIC_VAR ("HISTCMD", (char *)NULL, get_histcmd, (sh_var_assign_func_t *)NULL);
-- VSETATTR (v, att_integer);
--#endif
--
--#if defined (READLINE)
-- INIT_DYNAMIC_VAR ("COMP_WORDBREAKS", (char *)NULL, get_comp_wordbreaks, assign_comp_wordbreaks);
--#endif
--
--#if defined (PUSHD_AND_POPD) && defined (ARRAY_VARS)
-- v = init_dynamic_array_var ("DIRSTACK", get_dirstack, assign_dirstack, 0);
--#endif /* PUSHD_AND_POPD && ARRAY_VARS */
--
--#if defined (ARRAY_VARS)
-- v = init_dynamic_array_var ("GROUPS", get_groupset, null_array_assign, att_noassign);
--
--# if defined (DEBUGGER)
-- v = init_dynamic_array_var ("BASH_ARGC", get_self, null_array_assign, att_noassign|att_nounset);
-- v = init_dynamic_array_var ("BASH_ARGV", get_self, null_array_assign, att_noassign|att_nounset);
--# endif /* DEBUGGER */
-- v = init_dynamic_array_var ("BASH_SOURCE", get_self, null_array_assign, att_noassign|att_nounset);
-- v = init_dynamic_array_var ("BASH_LINENO", get_self, null_array_assign, att_noassign|att_nounset);
--
-- v = init_dynamic_assoc_var ("BASH_CMDS", get_hashcmd, assign_hashcmd, att_nofree);
--# if defined (ALIAS)
-- v = init_dynamic_assoc_var ("BASH_ALIASES", get_aliasvar, assign_aliasvar, att_nofree);
--# endif
--#endif
--
-- v = init_funcname_var ();
--}
--
--/* **************************************************************** */
--/* */
--/* Retrieving variables and values */
--/* */
--/* **************************************************************** */
--
--/* How to get a pointer to the shell variable or function named NAME.
-- HASHED_VARS is a pointer to the hash table containing the list
-- of interest (either variables or functions). */
--
--static SHELL_VAR *
--hash_lookup (name, hashed_vars)
-- const char *name;
-- HASH_TABLE *hashed_vars;
--{
-- BUCKET_CONTENTS *bucket;
--
-- bucket = hash_search (name, hashed_vars, 0);
-- /* If we find the name in HASHED_VARS, set LAST_TABLE_SEARCHED to that
-- table. */
-- if (bucket)
-- last_table_searched = hashed_vars;
-- return (bucket ? (SHELL_VAR *)bucket->data : (SHELL_VAR *)NULL);
--}
--
--SHELL_VAR *
--var_lookup (name, vcontext)
-- const char *name;
-- VAR_CONTEXT *vcontext;
--{
-- VAR_CONTEXT *vc;
-- SHELL_VAR *v;
--
-- v = (SHELL_VAR *)NULL;
-- for (vc = vcontext; vc; vc = vc->down)
-- if (v = hash_lookup (name, vc->table))
-- break;
--
-- return v;
--}
--
--/* Look up the variable entry named NAME. If SEARCH_TEMPENV is non-zero,
-- then also search the temporarily built list of exported variables.
-- The lookup order is:
-- temporary_env
-- shell_variables list
--*/
--
--SHELL_VAR *
--find_variable_internal (name, force_tempenv)
-- const char *name;
-- int force_tempenv;
--{
-- SHELL_VAR *var;
-- int search_tempenv;
-- VAR_CONTEXT *vc;
--
-- var = (SHELL_VAR *)NULL;
--
-- /* If explicitly requested, first look in the temporary environment for
-- the variable. This allows constructs such as "foo=x eval 'echo $foo'"
-- to get the `exported' value of $foo. This happens if we are executing
-- a function or builtin, or if we are looking up a variable in a
-- "subshell environment". */
-- search_tempenv = force_tempenv || (expanding_redir == 0 && subshell_environment);
--
-- if (search_tempenv && temporary_env)
-- var = hash_lookup (name, temporary_env);
--
-- vc = shell_variables;
--#if 0
--if (search_tempenv == 0 && /* (subshell_environment & SUBSHELL_COMSUB) && */
-- expanding_redir &&
-- (this_shell_builtin == eval_builtin || this_shell_builtin == command_builtin))
-- {
-- itrace("find_variable_internal: search_tempenv == 0: skipping VC_BLTNENV");
-- while (vc && (vc->flags & VC_BLTNENV))
-- vc = vc->down;
-- if (vc == 0)
-- vc = shell_variables;
-- }
--#endif
--
-- if (var == 0)
-- var = var_lookup (name, vc);
--
-- if (var == 0)
-- return ((SHELL_VAR *)NULL);
--
-- return (var->dynamic_value ? (*(var->dynamic_value)) (var) : var);
--}
--
--/* Look up and resolve the chain of nameref variables starting at V all the
-- way to NULL or non-nameref. */
--SHELL_VAR *
--find_variable_nameref (v)
-- SHELL_VAR *v;
--{
-- int level;
-- char *newname;
-- SHELL_VAR *orig, *oldv;
--
-- level = 0;
-- orig = v;
-- while (v && nameref_p (v))
-- {
-- level++;
-- if (level > NAMEREF_MAX)
-- return ((SHELL_VAR *)0); /* error message here? */
-- newname = nameref_cell (v);
-- if (newname == 0 || *newname == '\0')
-- return ((SHELL_VAR *)0);
-- oldv = v;
-- v = find_variable_internal (newname, (expanding_redir == 0 && (assigning_in_environment || executing_builtin)));
-- if (v == orig || v == oldv)
-- {
-- internal_warning (_("%s: circular name reference"), orig->name);
-- return ((SHELL_VAR *)0);
-- }
-- }
-- return v;
--}
--
--/* Resolve the chain of nameref variables for NAME. XXX - could change later */
--SHELL_VAR *
--find_variable_last_nameref (name)
-- const char *name;
--{
-- SHELL_VAR *v, *nv;
-- char *newname;
-- int level;
--
-- nv = v = find_variable_noref (name);
-- level = 0;
-- while (v && nameref_p (v))
-- {
-- level++;
-- if (level > NAMEREF_MAX)
-- return ((SHELL_VAR *)0); /* error message here? */
-- newname = nameref_cell (v);
-- if (newname == 0 || *newname == '\0')
-- return ((SHELL_VAR *)0);
-- nv = v;
-- v = find_variable_internal (newname, (expanding_redir == 0 && (assigning_in_environment || executing_builtin)));
-- }
-- return nv;
--}
--
--/* Resolve the chain of nameref variables for NAME. XXX - could change later */
--SHELL_VAR *
--find_global_variable_last_nameref (name)
-- const char *name;
--{
-- SHELL_VAR *v, *nv;
-- char *newname;
-- int level;
--
-- nv = v = find_global_variable_noref (name);
-- level = 0;
-- while (v && nameref_p (v))
-- {
-- level++;
-- if (level > NAMEREF_MAX)
-- return ((SHELL_VAR *)0); /* error message here? */
-- newname = nameref_cell (v);
-- if (newname == 0 || *newname == '\0')
-- return ((SHELL_VAR *)0);
-- nv = v;
-- v = find_global_variable_noref (newname);
-- }
-- return nv;
--}
--
--static SHELL_VAR *
--find_nameref_at_context (v, vc)
-- SHELL_VAR *v;
-- VAR_CONTEXT *vc;
--{
-- SHELL_VAR *nv, *nv2;
-- VAR_CONTEXT *nvc;
-- char *newname;
-- int level;
--
-- nv = v;
-- level = 1;
-- while (nv && nameref_p (nv))
-- {
-- level++;
-- if (level > NAMEREF_MAX)
-- return ((SHELL_VAR *)NULL);
-- newname = nameref_cell (nv);
-- if (newname == 0 || *newname == '\0')
-- return ((SHELL_VAR *)NULL);
-- nv2 = hash_lookup (newname, vc->table);
-- if (nv2 == 0)
-- break;
-- nv = nv2;
-- }
-- return nv;
--}
--
--/* Do nameref resolution from the VC, which is the local context for some
-- function or builtin, `up' the chain to the global variables context. If
-- NVCP is not NULL, return the variable context where we finally ended the
-- nameref resolution (so the bind_variable_internal can use the correct
-- variable context and hash table). */
--static SHELL_VAR *
--find_variable_nameref_context (v, vc, nvcp)
-- SHELL_VAR *v;
-- VAR_CONTEXT *vc;
-- VAR_CONTEXT **nvcp;
--{
-- SHELL_VAR *nv, *nv2;
-- VAR_CONTEXT *nvc;
--
-- /* Look starting at the current context all the way `up' */
-- for (nv = v, nvc = vc; nvc; nvc = nvc->down)
-- {
-- nv2 = find_nameref_at_context (nv, nvc);
-- if (nv2 == 0)
-- continue;
-- nv = nv2;
-- if (*nvcp)
-- *nvcp = nvc;
-- if (nameref_p (nv) == 0)
-- break;
-- }
-- return (nameref_p (nv) ? (SHELL_VAR *)NULL : nv);
--}
--
--/* Do nameref resolution from the VC, which is the local context for some
-- function or builtin, `up' the chain to the global variables context. If
-- NVCP is not NULL, return the variable context where we finally ended the
-- nameref resolution (so the bind_variable_internal can use the correct
-- variable context and hash table). */
--static SHELL_VAR *
--find_variable_last_nameref_context (v, vc, nvcp)
-- SHELL_VAR *v;
-- VAR_CONTEXT *vc;
-- VAR_CONTEXT **nvcp;
--{
-- SHELL_VAR *nv, *nv2;
-- VAR_CONTEXT *nvc;
--
-- /* Look starting at the current context all the way `up' */
-- for (nv = v, nvc = vc; nvc; nvc = nvc->down)
-- {
-- nv2 = find_nameref_at_context (nv, nvc);
-- if (nv2 == 0)
-- continue;
-- nv = nv2;
-- if (*nvcp)
-- *nvcp = nvc;
-- }
-- return (nameref_p (nv) ? nv : (SHELL_VAR *)NULL);
--}
--
--/* Find a variable, forcing a search of the temporary environment first */
--SHELL_VAR *
--find_variable_tempenv (name)
-- const char *name;
--{
-- SHELL_VAR *var;
--
-- var = find_variable_internal (name, 1);
-- if (var && nameref_p (var))
-- var = find_variable_nameref (var);
-- return (var);
--}
--
--/* Find a variable, not forcing a search of the temporary environment first */
--SHELL_VAR *
--find_variable_notempenv (name)
-- const char *name;
--{
-- SHELL_VAR *var;
--
-- var = find_variable_internal (name, 0);
-- if (var && nameref_p (var))
-- var = find_variable_nameref (var);
-- return (var);
--}
--
--SHELL_VAR *
--find_global_variable (name)
-- const char *name;
--{
-- SHELL_VAR *var;
--
-- var = var_lookup (name, global_variables);
-- if (var && nameref_p (var))
-- var = find_variable_nameref (var);
--
-- if (var == 0)
-- return ((SHELL_VAR *)NULL);
--
-- return (var->dynamic_value ? (*(var->dynamic_value)) (var) : var);
--}
--
--SHELL_VAR *
--find_global_variable_noref (name)
-- const char *name;
--{
-- SHELL_VAR *var;
--
-- var = var_lookup (name, global_variables);
--
-- if (var == 0)
-- return ((SHELL_VAR *)NULL);
--
-- return (var->dynamic_value ? (*(var->dynamic_value)) (var) : var);
--}
--
--SHELL_VAR *
--find_shell_variable (name)
-- const char *name;
--{
-- SHELL_VAR *var;
--
-- var = var_lookup (name, shell_variables);
-- if (var && nameref_p (var))
-- var = find_variable_nameref (var);
--
-- if (var == 0)
-- return ((SHELL_VAR *)NULL);
--
-- return (var->dynamic_value ? (*(var->dynamic_value)) (var) : var);
--}
--
--/* Look up the variable entry named NAME. Returns the entry or NULL. */
--SHELL_VAR *
--find_variable (name)
-- const char *name;
--{
-- SHELL_VAR *v;
--
-- last_table_searched = 0;
-- v = find_variable_internal (name, (expanding_redir == 0 && (assigning_in_environment || executing_builtin)));
-- if (v && nameref_p (v))
-- v = find_variable_nameref (v);
-- return v;
--}
--
--SHELL_VAR *
--find_variable_noref (name)
-- const char *name;
--{
-- SHELL_VAR *v;
--
-- v = find_variable_internal (name, (expanding_redir == 0 && (assigning_in_environment || executing_builtin)));
-- return v;
--}
--
--/* Look up the function entry whose name matches STRING.
-- Returns the entry or NULL. */
--SHELL_VAR *
--find_function (name)
-- const char *name;
--{
-- return (hash_lookup (name, shell_functions));
--}
--
--/* Find the function definition for the shell function named NAME. Returns
-- the entry or NULL. */
--FUNCTION_DEF *
--find_function_def (name)
-- const char *name;
--{
--#if defined (DEBUGGER)
-- return ((FUNCTION_DEF *)hash_lookup (name, shell_function_defs));
--#else
-- return ((FUNCTION_DEF *)0);
--#endif
--}
--
--/* Return the value of VAR. VAR is assumed to have been the result of a
-- lookup without any subscript, if arrays are compiled into the shell. */
--char *
--get_variable_value (var)
-- SHELL_VAR *var;
--{
-- if (var == 0)
-- return ((char *)NULL);
--#if defined (ARRAY_VARS)
-- else if (array_p (var))
-- return (array_reference (array_cell (var), 0));
-- else if (assoc_p (var))
-- return (assoc_reference (assoc_cell (var), "0"));
--#endif
-- else
-- return (value_cell (var));
--}
--
--/* Return the string value of a variable. Return NULL if the variable
-- doesn't exist. Don't cons a new string. This is a potential memory
-- leak if the variable is found in the temporary environment. Since
-- functions and variables have separate name spaces, returns NULL if
-- var_name is a shell function only. */
--char *
--get_string_value (var_name)
-- const char *var_name;
--{
-- SHELL_VAR *var;
--
-- var = find_variable (var_name);
-- return ((var) ? get_variable_value (var) : (char *)NULL);
--}
--
--/* This is present for use by the tilde and readline libraries. */
--char *
--sh_get_env_value (v)
-- const char *v;
--{
-- return get_string_value (v);
--}
--
--/* **************************************************************** */
--/* */
--/* Creating and setting variables */
--/* */
--/* **************************************************************** */
--
--/* Set NAME to VALUE if NAME has no value. */
--SHELL_VAR *
--set_if_not (name, value)
-- char *name, *value;
--{
-- SHELL_VAR *v;
--
-- if (shell_variables == 0)
-- create_variable_tables ();
--
-- v = find_variable (name);
-- if (v == 0)
-- v = bind_variable_internal (name, value, global_variables->table, HASH_NOSRCH, 0);
-- return (v);
--}
--
--/* Create a local variable referenced by NAME. */
--SHELL_VAR *
--make_local_variable (name)
-- const char *name;
--{
-- SHELL_VAR *new_var, *old_var;
-- VAR_CONTEXT *vc;
-- int was_tmpvar;
-- char *tmp_value;
--
-- /* local foo; local foo; is a no-op. */
-- old_var = find_variable (name);
-- if (old_var && local_p (old_var) && old_var->context == variable_context)
-- return (old_var);
--
-- was_tmpvar = old_var && tempvar_p (old_var);
-- /* If we're making a local variable in a shell function, the temporary env
-- has already been merged into the function's variable context stack. We
-- can assume that a temporary var in the same context appears in the same
-- VAR_CONTEXT and can safely be returned without creating a new variable
-- (which results in duplicate names in the same VAR_CONTEXT->table */
-- /* We can't just test tmpvar_p because variables in the temporary env given
-- to a shell function appear in the function's local variable VAR_CONTEXT
-- but retain their tempvar attribute. We want temporary variables that are
-- found in temporary_env, hence the test for last_table_searched, which is
-- set in hash_lookup and only (so far) checked here. */
-- if (was_tmpvar && old_var->context == variable_context && last_table_searched != temporary_env)
-- {
-- VUNSETATTR (old_var, att_invisible);
-- return (old_var);
-- }
-- if (was_tmpvar)
-- tmp_value = value_cell (old_var);
--
-- for (vc = shell_variables; vc; vc = vc->down)
-- if (vc_isfuncenv (vc) && vc->scope == variable_context)
-- break;
--
-- if (vc == 0)
-- {
-- internal_error (_("make_local_variable: no function context at current scope"));
-- return ((SHELL_VAR *)NULL);
-- }
-- else if (vc->table == 0)
-- vc->table = hash_create (TEMPENV_HASH_BUCKETS);
--
-- /* Since this is called only from the local/declare/typeset code, we can
-- call builtin_error here without worry (of course, it will also work
-- for anything that sets this_command_name). Variables with the `noassign'
-- attribute may not be made local. The test against old_var's context
-- level is to disallow local copies of readonly global variables (since I
-- believe that this could be a security hole). Readonly copies of calling
-- function local variables are OK. */
-- if (old_var && (noassign_p (old_var) ||
-- (readonly_p (old_var) && old_var->context == 0)))
-- {
-- if (readonly_p (old_var))
-- sh_readonly (name);
-- else if (noassign_p (old_var))
-- builtin_error (_("%s: variable may not be assigned value"), name);
--#if 0
-- /* Let noassign variables through with a warning */
-- if (readonly_p (old_var))
--#endif
-- return ((SHELL_VAR *)NULL);
-- }
--
-- if (old_var == 0)
-- new_var = make_new_variable (name, vc->table);
-- else
-- {
-- new_var = make_new_variable (name, vc->table);
--
-- /* If we found this variable in one of the temporary environments,
-- inherit its value. Watch to see if this causes problems with
-- things like `x=4 local x'. XXX - see above for temporary env
-- variables with the same context level as variable_context */
-- /* XXX - we should only do this if the variable is not an array. */
-- if (was_tmpvar)
-- var_setvalue (new_var, savestring (tmp_value));
--
-- new_var->attributes = exported_p (old_var) ? att_exported : 0;
-- }
--
-- vc->flags |= VC_HASLOCAL;
--
-- new_var->context = variable_context;
-- VSETATTR (new_var, att_local);
--
-- if (ifsname (name))
-- setifs (new_var);
--
-- if (was_tmpvar == 0)
-- VSETATTR (new_var, att_invisible); /* XXX */
-- return (new_var);
--}
--
--/* Create a new shell variable with name NAME. */
--static SHELL_VAR *
--new_shell_variable (name)
-- const char *name;
--{
-- SHELL_VAR *entry;
--
-- entry = (SHELL_VAR *)xmalloc (sizeof (SHELL_VAR));
--
-- entry->name = savestring (name);
-- var_setvalue (entry, (char *)NULL);
-- CLEAR_EXPORTSTR (entry);
--
-- entry->dynamic_value = (sh_var_value_func_t *)NULL;
-- entry->assign_func = (sh_var_assign_func_t *)NULL;
--
-- entry->attributes = 0;
--
-- /* Always assume variables are to be made at toplevel!
-- make_local_variable has the responsibility of changing the
-- variable context. */
-- entry->context = 0;
--
-- return (entry);
--}
--
--/* Create a new shell variable with name NAME and add it to the hash table
-- TABLE. */
--static SHELL_VAR *
--make_new_variable (name, table)
-- const char *name;
-- HASH_TABLE *table;
--{
-- SHELL_VAR *entry;
-- BUCKET_CONTENTS *elt;
--
-- entry = new_shell_variable (name);
--
-- /* Make sure we have a shell_variables hash table to add to. */
-- if (shell_variables == 0)
-- create_variable_tables ();
--
-- elt = hash_insert (savestring (name), table, HASH_NOSRCH);
-- elt->data = (PTR_T)entry;
--
-- return entry;
--}
--
--#if defined (ARRAY_VARS)
--SHELL_VAR *
--make_new_array_variable (name)
-- char *name;
--{
-- SHELL_VAR *entry;
-- ARRAY *array;
--
-- entry = make_new_variable (name, global_variables->table);
-- array = array_create ();
--
-- var_setarray (entry, array);
-- VSETATTR (entry, att_array);
-- return entry;
--}
--
--SHELL_VAR *
--make_local_array_variable (name, assoc_ok)
-- char *name;
-- int assoc_ok;
--{
-- SHELL_VAR *var;
-- ARRAY *array;
--
-- var = make_local_variable (name);
-- if (var == 0 || array_p (var) || (assoc_ok && assoc_p (var)))
-- return var;
--
-- array = array_create ();
--
-- dispose_variable_value (var);
-- var_setarray (var, array);
-- VSETATTR (var, att_array);
-- return var;
--}
--
--SHELL_VAR *
--make_new_assoc_variable (name)
-- char *name;
--{
-- SHELL_VAR *entry;
-- HASH_TABLE *hash;
--
-- entry = make_new_variable (name, global_variables->table);
-- hash = assoc_create (0);
--
-- var_setassoc (entry, hash);
-- VSETATTR (entry, att_assoc);
-- return entry;
--}
--
--SHELL_VAR *
--make_local_assoc_variable (name)
-- char *name;
--{
-- SHELL_VAR *var;
-- HASH_TABLE *hash;
--
-- var = make_local_variable (name);
-- if (var == 0 || assoc_p (var))
-- return var;
--
-- dispose_variable_value (var);
-- hash = assoc_create (0);
--
-- var_setassoc (var, hash);
-- VSETATTR (var, att_assoc);
-- return var;
--}
--#endif
--
--char *
--make_variable_value (var, value, flags)
-- SHELL_VAR *var;
-- char *value;
-- int flags;
--{
-- char *retval, *oval;
-- intmax_t lval, rval;
-- int expok, olen, op;
--
-- /* If this variable has had its type set to integer (via `declare -i'),
-- then do expression evaluation on it and store the result. The
-- functions in expr.c (evalexp()) and bind_int_variable() are responsible
-- for turning off the integer flag if they don't want further
-- evaluation done. */
-- if (integer_p (var))
-- {
-- if (flags & ASS_APPEND)
-- {
-- oval = value_cell (var);
-- lval = evalexp (oval, &expok); /* ksh93 seems to do this */
-- if (expok == 0)
-- {
-- top_level_cleanup ();
-- jump_to_top_level (DISCARD);
-- }
-- }
-- rval = evalexp (value, &expok);
-- if (expok == 0)
-- {
-- top_level_cleanup ();
-- jump_to_top_level (DISCARD);
-- }
-- /* This can be fooled if the variable's value changes while evaluating
-- `rval'. We can change it if we move the evaluation of lval to here. */
-- if (flags & ASS_APPEND)
-- rval += lval;
-- retval = itos (rval);
-- }
--#if defined (CASEMOD_ATTRS)
-- else if (capcase_p (var) || uppercase_p (var) || lowercase_p (var))
-- {
-- if (flags & ASS_APPEND)
-- {
-- oval = get_variable_value (var);
-- if (oval == 0) /* paranoia */
-- oval = "";
-- olen = STRLEN (oval);
-- retval = (char *)xmalloc (olen + (value ? STRLEN (value) : 0) + 1);
-- strcpy (retval, oval);
-- if (value)
-- strcpy (retval+olen, value);
-- }
-- else if (*value)
-- retval = savestring (value);
-- else
-- {
-- retval = (char *)xmalloc (1);
-- retval[0] = '\0';
-- }
-- op = capcase_p (var) ? CASE_CAPITALIZE
-- : (uppercase_p (var) ? CASE_UPPER : CASE_LOWER);
-- oval = sh_modcase (retval, (char *)0, op);
-- free (retval);
-- retval = oval;
-- }
--#endif /* CASEMOD_ATTRS */
-- else if (value)
-- {
-- if (flags & ASS_APPEND)
-- {
-- oval = get_variable_value (var);
-- if (oval == 0) /* paranoia */
-- oval = "";
-- olen = STRLEN (oval);
-- retval = (char *)xmalloc (olen + (value ? STRLEN (value) : 0) + 1);
-- strcpy (retval, oval);
-- if (value)
-- strcpy (retval+olen, value);
-- }
-- else if (*value)
-- retval = savestring (value);
-- else
-- {
-- retval = (char *)xmalloc (1);
-- retval[0] = '\0';
-- }
-- }
-- else
-- retval = (char *)NULL;
--
-- return retval;
--}
--
--/* Bind a variable NAME to VALUE in the HASH_TABLE TABLE, which may be the
-- temporary environment (but usually is not). */
--static SHELL_VAR *
--bind_variable_internal (name, value, table, hflags, aflags)
-- const char *name;
-- char *value;
-- HASH_TABLE *table;
-- int hflags, aflags;
--{
-- char *newval;
-- SHELL_VAR *entry;
--
-- entry = (hflags & HASH_NOSRCH) ? (SHELL_VAR *)NULL : hash_lookup (name, table);
-- /* Follow the nameref chain here if this is the global variables table */
-- if (entry && nameref_p (entry) && (invisible_p (entry) == 0) && table == global_variables->table)
-- {
-- entry = find_global_variable (entry->name);
-- /* Let's see if we have a nameref referencing a variable that hasn't yet
-- been created. */
-- if (entry == 0)
-- entry = find_variable_last_nameref (name); /* XXX */
-- if (entry == 0) /* just in case */
-- return (entry);
-- }
--
-- /* The first clause handles `declare -n ref; ref=x;' */
-- if (entry && invisible_p (entry) && nameref_p (entry))
-- goto assign_value;
-- else if (entry && nameref_p (entry))
-- {
-- newval = nameref_cell (entry);
--#if defined (ARRAY_VARS)
-- /* declare -n foo=x[2] */
-- if (valid_array_reference (newval))
-- /* XXX - should it be aflags? */
-- entry = assign_array_element (newval, make_variable_value (entry, value, 0), aflags);
-- else
--#endif
-- {
-- entry = make_new_variable (newval, table);
-- var_setvalue (entry, make_variable_value (entry, value, 0));
-- }
-- }
-- else if (entry == 0)
-- {
-- entry = make_new_variable (name, table);
-- var_setvalue (entry, make_variable_value (entry, value, 0)); /* XXX */
-- }
-- else if (entry->assign_func) /* array vars have assign functions now */
-- {
-- INVALIDATE_EXPORTSTR (entry);
-- newval = (aflags & ASS_APPEND) ? make_variable_value (entry, value, aflags) : value;
-- if (assoc_p (entry))
-- entry = (*(entry->assign_func)) (entry, newval, -1, savestring ("0"));
-- else if (array_p (entry))
-- entry = (*(entry->assign_func)) (entry, newval, 0, 0);
-- else
-- entry = (*(entry->assign_func)) (entry, newval, -1, 0);
-- if (newval != value)
-- free (newval);
-- return (entry);
-- }
-- else
-- {
--assign_value:
-- if (readonly_p (entry) || noassign_p (entry))
-- {
-- if (readonly_p (entry))
-- err_readonly (name);
-- return (entry);
-- }
--
-- /* Variables which are bound are visible. */
-- VUNSETATTR (entry, att_invisible);
--
--#if defined (ARRAY_VARS)
-- if (assoc_p (entry) || array_p (entry))
-- newval = make_array_variable_value (entry, 0, "0", value, aflags);
-- else
--#endif
--
-- newval = make_variable_value (entry, value, aflags); /* XXX */
--
-- /* Invalidate any cached export string */
-- INVALIDATE_EXPORTSTR (entry);
--
--#if defined (ARRAY_VARS)
-- /* XXX -- this bears looking at again -- XXX */
-- /* If an existing array variable x is being assigned to with x=b or
-- `read x' or something of that nature, silently convert it to
-- x[0]=b or `read x[0]'. */
-- if (assoc_p (entry))
-- {
-- assoc_insert (assoc_cell (entry), savestring ("0"), newval);
-- free (newval);
-- }
-- else if (array_p (entry))
-- {
-- array_insert (array_cell (entry), 0, newval);
-- free (newval);
-- }
-- else
--#endif
-- {
-- FREE (value_cell (entry));
-- var_setvalue (entry, newval);
-- }
-- }
--
-- if (mark_modified_vars)
-- VSETATTR (entry, att_exported);
--
-- if (exported_p (entry))
-- array_needs_making = 1;
--
-- return (entry);
--}
--
--/* Bind a variable NAME to VALUE. This conses up the name
-- and value strings. If we have a temporary environment, we bind there
-- first, then we bind into shell_variables. */
--
--SHELL_VAR *
--bind_variable (name, value, flags)
-- const char *name;
-- char *value;
-- int flags;
--{
-- SHELL_VAR *v, *nv;
-- VAR_CONTEXT *vc, *nvc;
-- int level;
--
-- if (shell_variables == 0)
-- create_variable_tables ();
--
-- /* If we have a temporary environment, look there first for the variable,
-- and, if found, modify the value there before modifying it in the
-- shell_variables table. This allows sourced scripts to modify values
-- given to them in a temporary environment while modifying the variable
-- value that the caller sees. */
-- if (temporary_env)
-- bind_tempenv_variable (name, value);
--
-- /* XXX -- handle local variables here. */
-- for (vc = shell_variables; vc; vc = vc->down)
-- {
-- if (vc_isfuncenv (vc) || vc_isbltnenv (vc))
-- {
-- v = hash_lookup (name, vc->table);
-- nvc = vc;
-- if (v && nameref_p (v))
-- {
-- nv = find_variable_nameref_context (v, vc, &nvc);
-- if (nv == 0)
-- {
-- nv = find_variable_last_nameref_context (v, vc, &nvc);
-- if (nv && nameref_p (nv))
-- {
-- /* If this nameref variable doesn't have a value yet,
-- set the value. Otherwise, assign using the value as
-- normal. */
-- if (nameref_cell (nv) == 0)
-- return (bind_variable_internal (nv->name, value, nvc->table, 0, flags));
-- return (bind_variable_internal (nameref_cell (nv), value, nvc->table, 0, flags));
-- }
-- else
-- v = nv;
-- }
-- else
-- v = nv;
-- }
-- if (v)
-- return (bind_variable_internal (v->name, value, nvc->table, 0, flags));
-- }
-- }
-- /* bind_variable_internal will handle nameref resolution in this case */
-- return (bind_variable_internal (name, value, global_variables->table, 0, flags));
--}
--
--SHELL_VAR *
--bind_global_variable (name, value, flags)
-- const char *name;
-- char *value;
-- int flags;
--{
-- SHELL_VAR *v, *nv;
-- VAR_CONTEXT *vc, *nvc;
-- int level;
--
-- if (shell_variables == 0)
-- create_variable_tables ();
--
-- /* bind_variable_internal will handle nameref resolution in this case */
-- return (bind_variable_internal (name, value, global_variables->table, 0, flags));
--}
--
--/* Make VAR, a simple shell variable, have value VALUE. Once assigned a
-- value, variables are no longer invisible. This is a duplicate of part
-- of the internals of bind_variable. If the variable is exported, or
-- all modified variables should be exported, mark the variable for export
-- and note that the export environment needs to be recreated. */
--SHELL_VAR *
--bind_variable_value (var, value, aflags)
-- SHELL_VAR *var;
-- char *value;
-- int aflags;
--{
-- char *t;
-- int invis;
--
-- invis = invisible_p (var);
-- VUNSETATTR (var, att_invisible);
--
-- if (var->assign_func)
-- {
-- /* If we're appending, we need the old value, so use
-- make_variable_value */
-- t = (aflags & ASS_APPEND) ? make_variable_value (var, value, aflags) : value;
-- (*(var->assign_func)) (var, t, -1, 0);
-- if (t != value && t)
-- free (t);
-- }
-- else
-- {
-- t = make_variable_value (var, value, aflags);
--#if defined (ARRAY_VARS)
-- if ((aflags & ASS_NAMEREF) && (t == 0 || *t == 0 || (legal_identifier (t) == 0 && valid_array_reference (t) == 0)))
--#else
-- if ((aflags & ASS_NAMEREF) && (t == 0 || *t == 0 || legal_identifier (t) == 0))
--#endif
-- {
-- free (t);
-- if (invis)
-- VSETATTR (var, att_invisible); /* XXX */
-- return ((SHELL_VAR *)NULL);
-- }
-- FREE (value_cell (var));
-- var_setvalue (var, t);
-- }
--
-- INVALIDATE_EXPORTSTR (var);
--
-- if (mark_modified_vars)
-- VSETATTR (var, att_exported);
--
-- if (exported_p (var))
-- array_needs_making = 1;
--
-- return (var);
--}
--
--/* Bind/create a shell variable with the name LHS to the RHS.
-- This creates or modifies a variable such that it is an integer.
--
-- This used to be in expr.c, but it is here so that all of the
-- variable binding stuff is localized. Since we don't want any
-- recursive evaluation from bind_variable() (possible without this code,
-- since bind_variable() calls the evaluator for variables with the integer
-- attribute set), we temporarily turn off the integer attribute for each
-- variable we set here, then turn it back on after binding as necessary. */
--
--SHELL_VAR *
--bind_int_variable (lhs, rhs)
-- char *lhs, *rhs;
--{
-- register SHELL_VAR *v;
-- int isint, isarr, implicitarray;
--
-- isint = isarr = implicitarray = 0;
--#if defined (ARRAY_VARS)
-- if (valid_array_reference (lhs))
-- {
-- isarr = 1;
-- v = array_variable_part (lhs, (char **)0, (int *)0);
-- }
-- else
--#endif
-- v = find_variable (lhs);
--
-- if (v)
-- {
-- isint = integer_p (v);
-- VUNSETATTR (v, att_integer);
--#if defined (ARRAY_VARS)
-- if (array_p (v) && isarr == 0)
-- implicitarray = 1;
--#endif
-- }
--
--#if defined (ARRAY_VARS)
-- if (isarr)
-- v = assign_array_element (lhs, rhs, 0);
-- else if (implicitarray)
-- v = bind_array_variable (lhs, 0, rhs, 0);
-- else
--#endif
-- v = bind_variable (lhs, rhs, 0);
--
-- if (v && isint)
-- VSETATTR (v, att_integer);
--
-- VUNSETATTR (v, att_invisible);
--
-- return (v);
--}
--
--SHELL_VAR *
--bind_var_to_int (var, val)
-- char *var;
-- intmax_t val;
--{
-- char ibuf[INT_STRLEN_BOUND (intmax_t) + 1], *p;
--
-- p = fmtulong (val, 10, ibuf, sizeof (ibuf), 0);
-- return (bind_int_variable (var, p));
--}
--
--/* Do a function binding to a variable. You pass the name and
-- the command to bind to. This conses the name and command. */
--SHELL_VAR *
--bind_function (name, value)
-- const char *name;
-- COMMAND *value;
--{
-- SHELL_VAR *entry;
--
-- entry = find_function (name);
-- if (entry == 0)
-- {
-- BUCKET_CONTENTS *elt;
--
-- elt = hash_insert (savestring (name), shell_functions, HASH_NOSRCH);
-- entry = new_shell_variable (name);
-- elt->data = (PTR_T)entry;
-- }
-- else
-- INVALIDATE_EXPORTSTR (entry);
--
-- if (var_isset (entry))
-- dispose_command (function_cell (entry));
--
-- if (value)
-- var_setfunc (entry, copy_command (value));
-- else
-- var_setfunc (entry, 0);
--
-- VSETATTR (entry, att_function);
--
-- if (mark_modified_vars)
-- VSETATTR (entry, att_exported);
--
-- VUNSETATTR (entry, att_invisible); /* Just to be sure */
--
-- if (exported_p (entry))
-- array_needs_making = 1;
--
--#if defined (PROGRAMMABLE_COMPLETION)
-- set_itemlist_dirty (&it_functions);
--#endif
--
-- return (entry);
--}
--
--#if defined (DEBUGGER)
--/* Bind a function definition, which includes source file and line number
-- information in addition to the command, into the FUNCTION_DEF hash table.*/
--void
--bind_function_def (name, value)
-- const char *name;
-- FUNCTION_DEF *value;
--{
-- FUNCTION_DEF *entry;
-- BUCKET_CONTENTS *elt;
-- COMMAND *cmd;
--
-- entry = find_function_def (name);
-- if (entry)
-- {
-- dispose_function_def_contents (entry);
-- entry = copy_function_def_contents (value, entry);
-- }
-- else
-- {
-- cmd = value->command;
-- value->command = 0;
-- entry = copy_function_def (value);
-- value->command = cmd;
--
-- elt = hash_insert (savestring (name), shell_function_defs, HASH_NOSRCH);
-- elt->data = (PTR_T *)entry;
-- }
--}
--#endif /* DEBUGGER */
--
--/* Add STRING, which is of the form foo=bar, to the temporary environment
-- HASH_TABLE (temporary_env). The functions in execute_cmd.c are
-- responsible for moving the main temporary env to one of the other
-- temporary environments. The expansion code in subst.c calls this. */
--int
--assign_in_env (word, flags)
-- WORD_DESC *word;
-- int flags;
--{
-- int offset, aflags;
-- char *name, *temp, *value;
-- SHELL_VAR *var;
-- const char *string;
--
-- string = word->word;
--
-- aflags = 0;
-- offset = assignment (string, 0);
-- name = savestring (string);
-- value = (char *)NULL;
--
-- if (name[offset] == '=')
-- {
-- name[offset] = 0;
--
-- /* don't ignore the `+' when assigning temporary environment */
-- if (name[offset - 1] == '+')
-- {
-- name[offset - 1] = '\0';
-- aflags |= ASS_APPEND;
-- }
--
-- var = find_variable (name);
-- if (var && (readonly_p (var) || noassign_p (var)))
-- {
-- if (readonly_p (var))
-- err_readonly (name);
-- free (name);
-- return (0);
-- }
--
-- temp = name + offset + 1;
-- value = expand_assignment_string_to_string (temp, 0);
--
-- if (var && (aflags & ASS_APPEND))
-- {
-- temp = make_variable_value (var, value, aflags);
-- FREE (value);
-- value = temp;
-- }
-- }
--
-- if (temporary_env == 0)
-- temporary_env = hash_create (TEMPENV_HASH_BUCKETS);
--
-- var = hash_lookup (name, temporary_env);
-- if (var == 0)
-- var = make_new_variable (name, temporary_env);
-- else
-- FREE (value_cell (var));
--
-- if (value == 0)
-- {
-- value = (char *)xmalloc (1); /* like do_assignment_internal */
-- value[0] = '\0';
-- }
--
-- var_setvalue (var, value);
-- var->attributes |= (att_exported|att_tempvar);
-- var->context = variable_context; /* XXX */
--
-- INVALIDATE_EXPORTSTR (var);
-- var->exportstr = mk_env_string (name, value, 0);
--
-- array_needs_making = 1;
--
-- if (flags)
-- stupidly_hack_special_variables (name);
--
-- if (echo_command_at_execute)
-- /* The Korn shell prints the `+ ' in front of assignment statements,
-- so we do too. */
-- xtrace_print_assignment (name, value, 0, 1);
--
-- free (name);
-- return 1;
--}
--
--/* **************************************************************** */
--/* */
--/* Copying variables */
--/* */
--/* **************************************************************** */
--
--#ifdef INCLUDE_UNUSED
--/* Copy VAR to a new data structure and return that structure. */
--SHELL_VAR *
--copy_variable (var)
-- SHELL_VAR *var;
--{
-- SHELL_VAR *copy = (SHELL_VAR *)NULL;
--
-- if (var)
-- {
-- copy = (SHELL_VAR *)xmalloc (sizeof (SHELL_VAR));
--
-- copy->attributes = var->attributes;
-- copy->name = savestring (var->name);
--
-- if (function_p (var))
-- var_setfunc (copy, copy_command (function_cell (var)));
--#if defined (ARRAY_VARS)
-- else if (array_p (var))
-- var_setarray (copy, array_copy (array_cell (var)));
-- else if (assoc_p (var))
-- var_setassoc (copy, assoc_copy (assoc_cell (var)));
--#endif
-- else if (nameref_cell (var)) /* XXX - nameref */
-- var_setref (copy, savestring (nameref_cell (var)));
-- else if (value_cell (var)) /* XXX - nameref */
-- var_setvalue (copy, savestring (value_cell (var)));
-- else
-- var_setvalue (copy, (char *)NULL);
--
-- copy->dynamic_value = var->dynamic_value;
-- copy->assign_func = var->assign_func;
--
-- copy->exportstr = COPY_EXPORTSTR (var);
--
-- copy->context = var->context;
-- }
-- return (copy);
--}
--#endif
--
--/* **************************************************************** */
--/* */
--/* Deleting and unsetting variables */
--/* */
--/* **************************************************************** */
--
--/* Dispose of the information attached to VAR. */
--static void
--dispose_variable_value (var)
-- SHELL_VAR *var;
--{
-- if (function_p (var))
-- dispose_command (function_cell (var));
--#if defined (ARRAY_VARS)
-- else if (array_p (var))
-- array_dispose (array_cell (var));
-- else if (assoc_p (var))
-- assoc_dispose (assoc_cell (var));
--#endif
-- else if (nameref_p (var))
-- FREE (nameref_cell (var));
-- else
-- FREE (value_cell (var));
--}
--
--void
--dispose_variable (var)
-- SHELL_VAR *var;
--{
-- if (var == 0)
-- return;
--
-- if (nofree_p (var) == 0)
-- dispose_variable_value (var);
--
-- FREE_EXPORTSTR (var);
--
-- free (var->name);
--
-- if (exported_p (var))
-- array_needs_making = 1;
--
-- free (var);
--}
--
--/* Unset the shell variable referenced by NAME. Unsetting a nameref variable
-- unsets the variable it resolves to but leaves the nameref alone. */
--int
--unbind_variable (name)
-- const char *name;
--{
-- SHELL_VAR *v, *nv;
-- int r;
--
-- v = var_lookup (name, shell_variables);
-- nv = (v && nameref_p (v)) ? find_variable_nameref (v) : (SHELL_VAR *)NULL;
--
-- r = nv ? makunbound (nv->name, shell_variables) : makunbound (name, shell_variables);
-- return r;
--}
--
--/* Unbind NAME, where NAME is assumed to be a nameref variable */
--int
--unbind_nameref (name)
-- const char *name;
--{
-- SHELL_VAR *v;
--
-- v = var_lookup (name, shell_variables);
-- if (v && nameref_p (v))
-- return makunbound (name, shell_variables);
-- return 0;
--}
--
--/* Unset the shell function named NAME. */
--int
--unbind_func (name)
-- const char *name;
--{
-- BUCKET_CONTENTS *elt;
-- SHELL_VAR *func;
--
-- elt = hash_remove (name, shell_functions, 0);
--
-- if (elt == 0)
-- return -1;
--
--#if defined (PROGRAMMABLE_COMPLETION)
-- set_itemlist_dirty (&it_functions);
--#endif
--
-- func = (SHELL_VAR *)elt->data;
-- if (func)
-- {
-- if (exported_p (func))
-- array_needs_making++;
-- dispose_variable (func);
-- }
--
-- free (elt->key);
-- free (elt);
--
-- return 0;
--}
--
--#if defined (DEBUGGER)
--int
--unbind_function_def (name)
-- const char *name;
--{
-- BUCKET_CONTENTS *elt;
-- FUNCTION_DEF *funcdef;
--
-- elt = hash_remove (name, shell_function_defs, 0);
--
-- if (elt == 0)
-- return -1;
--
-- funcdef = (FUNCTION_DEF *)elt->data;
-- if (funcdef)
-- dispose_function_def (funcdef);
--
-- free (elt->key);
-- free (elt);
--
-- return 0;
--}
--#endif /* DEBUGGER */
--
--int
--delete_var (name, vc)
-- const char *name;
-- VAR_CONTEXT *vc;
--{
-- BUCKET_CONTENTS *elt;
-- SHELL_VAR *old_var;
-- VAR_CONTEXT *v;
--
-- for (elt = (BUCKET_CONTENTS *)NULL, v = vc; v; v = v->down)
-- if (elt = hash_remove (name, v->table, 0))
-- break;
--
-- if (elt == 0)
-- return (-1);
--
-- old_var = (SHELL_VAR *)elt->data;
-- free (elt->key);
-- free (elt);
--
-- dispose_variable (old_var);
-- return (0);
--}
--
--/* Make the variable associated with NAME go away. HASH_LIST is the
-- hash table from which this variable should be deleted (either
-- shell_variables or shell_functions).
-- Returns non-zero if the variable couldn't be found. */
--int
--makunbound (name, vc)
-- const char *name;
-- VAR_CONTEXT *vc;
--{
-- BUCKET_CONTENTS *elt, *new_elt;
-- SHELL_VAR *old_var;
-- VAR_CONTEXT *v;
-- char *t;
--
-- for (elt = (BUCKET_CONTENTS *)NULL, v = vc; v; v = v->down)
-- if (elt = hash_remove (name, v->table, 0))
-- break;
--
-- if (elt == 0)
-- return (-1);
--
-- old_var = (SHELL_VAR *)elt->data;
--
-- if (old_var && exported_p (old_var))
-- array_needs_making++;
--
-- /* If we're unsetting a local variable and we're still executing inside
-- the function, just mark the variable as invisible. The function
-- eventually called by pop_var_context() will clean it up later. This
-- must be done so that if the variable is subsequently assigned a new
-- value inside the function, the `local' attribute is still present.
-- We also need to add it back into the correct hash table. */
-- if (old_var && local_p (old_var) && variable_context == old_var->context)
-- {
-- if (nofree_p (old_var))
-- var_setvalue (old_var, (char *)NULL);
--#if defined (ARRAY_VARS)
-- else if (array_p (old_var))
-- array_dispose (array_cell (old_var));
-- else if (assoc_p (old_var))
-- assoc_dispose (assoc_cell (old_var));
--#endif
-- else if (nameref_p (old_var))
-- FREE (nameref_cell (old_var));
-- else
-- FREE (value_cell (old_var));
-- /* Reset the attributes. Preserve the export attribute if the variable
-- came from a temporary environment. Make sure it stays local, and
-- make it invisible. */
-- old_var->attributes = (exported_p (old_var) && tempvar_p (old_var)) ? att_exported : 0;
-- VSETATTR (old_var, att_local);
-- VSETATTR (old_var, att_invisible);
-- var_setvalue (old_var, (char *)NULL);
-- INVALIDATE_EXPORTSTR (old_var);
--
-- new_elt = hash_insert (savestring (old_var->name), v->table, 0);
-- new_elt->data = (PTR_T)old_var;
-- stupidly_hack_special_variables (old_var->name);
--
-- free (elt->key);
-- free (elt);
-- return (0);
-- }
--
-- /* Have to save a copy of name here, because it might refer to
-- old_var->name. If so, stupidly_hack_special_variables will
-- reference freed memory. */
-- t = savestring (name);
--
-- free (elt->key);
-- free (elt);
--
-- dispose_variable (old_var);
-- stupidly_hack_special_variables (t);
-- free (t);
--
-- return (0);
--}
--
--/* Get rid of all of the variables in the current context. */
--void
--kill_all_local_variables ()
--{
-- VAR_CONTEXT *vc;
--
-- for (vc = shell_variables; vc; vc = vc->down)
-- if (vc_isfuncenv (vc) && vc->scope == variable_context)
-- break;
-- if (vc == 0)
-- return; /* XXX */
--
-- if (vc->table && vc_haslocals (vc))
-- {
-- delete_all_variables (vc->table);
-- hash_dispose (vc->table);
-- }
-- vc->table = (HASH_TABLE *)NULL;
--}
--
--static void
--free_variable_hash_data (data)
-- PTR_T data;
--{
-- SHELL_VAR *var;
--
-- var = (SHELL_VAR *)data;
-- dispose_variable (var);
--}
--
--/* Delete the entire contents of the hash table. */
--void
--delete_all_variables (hashed_vars)
-- HASH_TABLE *hashed_vars;
--{
-- hash_flush (hashed_vars, free_variable_hash_data);
--}
--
--/* **************************************************************** */
--/* */
--/* Setting variable attributes */
--/* */
--/* **************************************************************** */
--
--#define FIND_OR_MAKE_VARIABLE(name, entry) \
-- do \
-- { \
-- entry = find_variable (name); \
-- if (!entry) \
-- { \
-- entry = bind_variable (name, "", 0); \
-- if (!no_invisible_vars && entry) entry->attributes |= att_invisible; \
-- } \
-- } \
-- while (0)
--
--/* Make the variable associated with NAME be readonly.
-- If NAME does not exist yet, create it. */
--void
--set_var_read_only (name)
-- char *name;
--{
-- SHELL_VAR *entry;
--
-- FIND_OR_MAKE_VARIABLE (name, entry);
-- VSETATTR (entry, att_readonly);
--}
--
--#ifdef INCLUDE_UNUSED
--/* Make the function associated with NAME be readonly.
-- If NAME does not exist, we just punt, like auto_export code below. */
--void
--set_func_read_only (name)
-- const char *name;
--{
-- SHELL_VAR *entry;
--
-- entry = find_function (name);
-- if (entry)
-- VSETATTR (entry, att_readonly);
--}
--
--/* Make the variable associated with NAME be auto-exported.
-- If NAME does not exist yet, create it. */
--void
--set_var_auto_export (name)
-- char *name;
--{
-- SHELL_VAR *entry;
--
-- FIND_OR_MAKE_VARIABLE (name, entry);
-- set_auto_export (entry);
--}
--
--/* Make the function associated with NAME be auto-exported. */
--void
--set_func_auto_export (name)
-- const char *name;
--{
-- SHELL_VAR *entry;
--
-- entry = find_function (name);
-- if (entry)
-- set_auto_export (entry);
--}
--#endif
--
--/* **************************************************************** */
--/* */
--/* Creating lists of variables */
--/* */
--/* **************************************************************** */
--
--static VARLIST *
--vlist_alloc (nentries)
-- int nentries;
--{
-- VARLIST *vlist;
--
-- vlist = (VARLIST *)xmalloc (sizeof (VARLIST));
-- vlist->list = (SHELL_VAR **)xmalloc ((nentries + 1) * sizeof (SHELL_VAR *));
-- vlist->list_size = nentries;
-- vlist->list_len = 0;
-- vlist->list[0] = (SHELL_VAR *)NULL;
--
-- return vlist;
--}
--
--static VARLIST *
--vlist_realloc (vlist, n)
-- VARLIST *vlist;
-- int n;
--{
-- if (vlist == 0)
-- return (vlist = vlist_alloc (n));
-- if (n > vlist->list_size)
-- {
-- vlist->list_size = n;
-- vlist->list = (SHELL_VAR **)xrealloc (vlist->list, (vlist->list_size + 1) * sizeof (SHELL_VAR *));
-- }
-- return vlist;
--}
--
--static void
--vlist_add (vlist, var, flags)
-- VARLIST *vlist;
-- SHELL_VAR *var;
-- int flags;
--{
-- register int i;
--
-- for (i = 0; i < vlist->list_len; i++)
-- if (STREQ (var->name, vlist->list[i]->name))
-- break;
-- if (i < vlist->list_len)
-- return;
--
-- if (i >= vlist->list_size)
-- vlist = vlist_realloc (vlist, vlist->list_size + 16);
--
-- vlist->list[vlist->list_len++] = var;
-- vlist->list[vlist->list_len] = (SHELL_VAR *)NULL;
--}
--
--/* Map FUNCTION over the variables in VAR_HASH_TABLE. Return an array of the
-- variables for which FUNCTION returns a non-zero value. A NULL value
-- for FUNCTION means to use all variables. */
--SHELL_VAR **
--map_over (function, vc)
-- sh_var_map_func_t *function;
-- VAR_CONTEXT *vc;
--{
-- VAR_CONTEXT *v;
-- VARLIST *vlist;
-- SHELL_VAR **ret;
-- int nentries;
--
-- for (nentries = 0, v = vc; v; v = v->down)
-- nentries += HASH_ENTRIES (v->table);
--
-- if (nentries == 0)
-- return (SHELL_VAR **)NULL;
--
-- vlist = vlist_alloc (nentries);
--
-- for (v = vc; v; v = v->down)
-- flatten (v->table, function, vlist, 0);
--
-- ret = vlist->list;
-- free (vlist);
-- return ret;
--}
--
--SHELL_VAR **
--map_over_funcs (function)
-- sh_var_map_func_t *function;
--{
-- VARLIST *vlist;
-- SHELL_VAR **ret;
--
-- if (shell_functions == 0 || HASH_ENTRIES (shell_functions) == 0)
-- return ((SHELL_VAR **)NULL);
--
-- vlist = vlist_alloc (HASH_ENTRIES (shell_functions));
--
-- flatten (shell_functions, function, vlist, 0);
--
-- ret = vlist->list;
-- free (vlist);
-- return ret;
--}
--
--/* Flatten VAR_HASH_TABLE, applying FUNC to each member and adding those
-- elements for which FUNC succeeds to VLIST->list. FLAGS is reserved
-- for future use. Only unique names are added to VLIST. If FUNC is
-- NULL, each variable in VAR_HASH_TABLE is added to VLIST. If VLIST is
-- NULL, FUNC is applied to each SHELL_VAR in VAR_HASH_TABLE. If VLIST
-- and FUNC are both NULL, nothing happens. */
--static void
--flatten (var_hash_table, func, vlist, flags)
-- HASH_TABLE *var_hash_table;
-- sh_var_map_func_t *func;
-- VARLIST *vlist;
-- int flags;
--{
-- register int i;
-- register BUCKET_CONTENTS *tlist;
-- int r;
-- SHELL_VAR *var;
--
-- if (var_hash_table == 0 || (HASH_ENTRIES (var_hash_table) == 0) || (vlist == 0 && func == 0))
-- return;
--
-- for (i = 0; i < var_hash_table->nbuckets; i++)
-- {
-- for (tlist = hash_items (i, var_hash_table); tlist; tlist = tlist->next)
-- {
-- var = (SHELL_VAR *)tlist->data;
--
-- r = func ? (*func) (var) : 1;
-- if (r && vlist)
-- vlist_add (vlist, var, flags);
-- }
-- }
--}
--
--void
--sort_variables (array)
-- SHELL_VAR **array;
--{
-- qsort (array, strvec_len ((char **)array), sizeof (SHELL_VAR *), (QSFUNC *)qsort_var_comp);
--}
--
--static int
--qsort_var_comp (var1, var2)
-- SHELL_VAR **var1, **var2;
--{
-- int result;
--
-- if ((result = (*var1)->name[0] - (*var2)->name[0]) == 0)
-- result = strcmp ((*var1)->name, (*var2)->name);
--
-- return (result);
--}
--
--/* Apply FUNC to each variable in SHELL_VARIABLES, adding each one for
-- which FUNC succeeds to an array of SHELL_VAR *s. Returns the array. */
--static SHELL_VAR **
--vapply (func)
-- sh_var_map_func_t *func;
--{
-- SHELL_VAR **list;
--
-- list = map_over (func, shell_variables);
-- if (list /* && posixly_correct */)
-- sort_variables (list);
-- return (list);
--}
--
--/* Apply FUNC to each variable in SHELL_FUNCTIONS, adding each one for
-- which FUNC succeeds to an array of SHELL_VAR *s. Returns the array. */
--static SHELL_VAR **
--fapply (func)
-- sh_var_map_func_t *func;
--{
-- SHELL_VAR **list;
--
-- list = map_over_funcs (func);
-- if (list /* && posixly_correct */)
-- sort_variables (list);
-- return (list);
--}
--
--/* Create a NULL terminated array of all the shell variables. */
--SHELL_VAR **
--all_shell_variables ()
--{
-- return (vapply ((sh_var_map_func_t *)NULL));
--}
--
--/* Create a NULL terminated array of all the shell functions. */
--SHELL_VAR **
--all_shell_functions ()
--{
-- return (fapply ((sh_var_map_func_t *)NULL));
--}
--
--static int
--visible_var (var)
-- SHELL_VAR *var;
--{
-- return (invisible_p (var) == 0);
--}
--
--SHELL_VAR **
--all_visible_functions ()
--{
-- return (fapply (visible_var));
--}
--
--SHELL_VAR **
--all_visible_variables ()
--{
-- return (vapply (visible_var));
--}
--
--/* Return non-zero if the variable VAR is visible and exported. Array
-- variables cannot be exported. */
--static int
--visible_and_exported (var)
-- SHELL_VAR *var;
--{
-- return (invisible_p (var) == 0 && exported_p (var));
--}
--
--/* Candidate variables for the export environment are either valid variables
-- with the export attribute or invalid variables inherited from the initial
-- environment and simply passed through. */
--static int
--export_environment_candidate (var)
-- SHELL_VAR *var;
--{
-- return (exported_p (var) && (invisible_p (var) == 0 || imported_p (var)));
--}
--
--/* Return non-zero if VAR is a local variable in the current context and
-- is exported. */
--static int
--local_and_exported (var)
-- SHELL_VAR *var;
--{
-- return (invisible_p (var) == 0 && local_p (var) && var->context == variable_context && exported_p (var));
--}
--
--SHELL_VAR **
--all_exported_variables ()
--{
-- return (vapply (visible_and_exported));
--}
--
--SHELL_VAR **
--local_exported_variables ()
--{
-- return (vapply (local_and_exported));
--}
--
--static int
--variable_in_context (var)
-- SHELL_VAR *var;
--{
-- return (invisible_p (var) == 0 && local_p (var) && var->context == variable_context);
--}
--
--SHELL_VAR **
--all_local_variables ()
--{
-- VARLIST *vlist;
-- SHELL_VAR **ret;
-- VAR_CONTEXT *vc;
--
-- vc = shell_variables;
-- for (vc = shell_variables; vc; vc = vc->down)
-- if (vc_isfuncenv (vc) && vc->scope == variable_context)
-- break;
--
-- if (vc == 0)
-- {
-- internal_error (_("all_local_variables: no function context at current scope"));
-- return (SHELL_VAR **)NULL;
-- }
-- if (vc->table == 0 || HASH_ENTRIES (vc->table) == 0 || vc_haslocals (vc) == 0)
-- return (SHELL_VAR **)NULL;
--
-- vlist = vlist_alloc (HASH_ENTRIES (vc->table));
--
-- flatten (vc->table, variable_in_context, vlist, 0);
--
-- ret = vlist->list;
-- free (vlist);
-- if (ret)
-- sort_variables (ret);
-- return ret;
--}
--
--#if defined (ARRAY_VARS)
--/* Return non-zero if the variable VAR is visible and an array. */
--static int
--visible_array_vars (var)
-- SHELL_VAR *var;
--{
-- return (invisible_p (var) == 0 && array_p (var));
--}
--
--SHELL_VAR **
--all_array_variables ()
--{
-- return (vapply (visible_array_vars));
--}
--#endif /* ARRAY_VARS */
--
--char **
--all_variables_matching_prefix (prefix)
-- const char *prefix;
--{
-- SHELL_VAR **varlist;
-- char **rlist;
-- int vind, rind, plen;
--
-- plen = STRLEN (prefix);
-- varlist = all_visible_variables ();
-- for (vind = 0; varlist && varlist[vind]; vind++)
-- ;
-- if (varlist == 0 || vind == 0)
-- return ((char **)NULL);
-- rlist = strvec_create (vind + 1);
-- for (vind = rind = 0; varlist[vind]; vind++)
-- {
-- if (plen == 0 || STREQN (prefix, varlist[vind]->name, plen))
-- rlist[rind++] = savestring (varlist[vind]->name);
-- }
-- rlist[rind] = (char *)0;
-- free (varlist);
--
-- return rlist;
--}
--
--/* **************************************************************** */
--/* */
--/* Managing temporary variable scopes */
--/* */
--/* **************************************************************** */
--
--/* Make variable NAME have VALUE in the temporary environment. */
--static SHELL_VAR *
--bind_tempenv_variable (name, value)
-- const char *name;
-- char *value;
--{
-- SHELL_VAR *var;
--
-- var = temporary_env ? hash_lookup (name, temporary_env) : (SHELL_VAR *)NULL;
--
-- if (var)
-- {
-- FREE (value_cell (var));
-- var_setvalue (var, savestring (value));
-- INVALIDATE_EXPORTSTR (var);
-- }
--
-- return (var);
--}
--
--/* Find a variable in the temporary environment that is named NAME.
-- Return the SHELL_VAR *, or NULL if not found. */
--SHELL_VAR *
--find_tempenv_variable (name)
-- const char *name;
--{
-- return (temporary_env ? hash_lookup (name, temporary_env) : (SHELL_VAR *)NULL);
--}
--
--char **tempvar_list;
--int tvlist_ind;
--
--/* Push the variable described by (SHELL_VAR *)DATA down to the next
-- variable context from the temporary environment. */
--static void
--push_temp_var (data)
-- PTR_T data;
--{
-- SHELL_VAR *var, *v;
-- HASH_TABLE *binding_table;
--
-- var = (SHELL_VAR *)data;
--
-- binding_table = shell_variables->table;
-- if (binding_table == 0)
-- {
-- if (shell_variables == global_variables)
-- /* shouldn't happen */
-- binding_table = shell_variables->table = global_variables->table = hash_create (0);
-- else
-- binding_table = shell_variables->table = hash_create (TEMPENV_HASH_BUCKETS);
-- }
--
-- v = bind_variable_internal (var->name, value_cell (var), binding_table, 0, 0);
--
-- /* XXX - should we set the context here? It shouldn't matter because of how
-- assign_in_env works, but might want to check. */
-- if (binding_table == global_variables->table) /* XXX */
-- var->attributes &= ~(att_tempvar|att_propagate);
-- else
-- {
-- var->attributes |= att_propagate;
-- if (binding_table == shell_variables->table)
-- shell_variables->flags |= VC_HASTMPVAR;
-- }
-- v->attributes |= var->attributes;
--
-- if (find_special_var (var->name) >= 0)
-- tempvar_list[tvlist_ind++] = savestring (var->name);
--
-- dispose_variable (var);
--}
--
--static void
--propagate_temp_var (data)
-- PTR_T data;
--{
-- SHELL_VAR *var;
--
-- var = (SHELL_VAR *)data;
-- if (tempvar_p (var) && (var->attributes & att_propagate))
-- push_temp_var (data);
-- else
-- {
-- if (find_special_var (var->name) >= 0)
-- tempvar_list[tvlist_ind++] = savestring (var->name);
-- dispose_variable (var);
-- }
--}
--
--/* Free the storage used in the hash table for temporary
-- environment variables. PUSHF is a function to be called
-- to free each hash table entry. It takes care of pushing variables
-- to previous scopes if appropriate. PUSHF stores names of variables
-- that require special handling (e.g., IFS) on tempvar_list, so this
-- function can call stupidly_hack_special_variables on all the
-- variables in the list when the temporary hash table is destroyed. */
--static void
--dispose_temporary_env (pushf)
-- sh_free_func_t *pushf;
--{
-- int i;
--
-- tempvar_list = strvec_create (HASH_ENTRIES (temporary_env) + 1);
-- tempvar_list[tvlist_ind = 0] = 0;
--
-- hash_flush (temporary_env, pushf);
-- hash_dispose (temporary_env);
-- temporary_env = (HASH_TABLE *)NULL;
--
-- tempvar_list[tvlist_ind] = 0;
--
-- array_needs_making = 1;
--
--#if 0
-- sv_ifs ("IFS"); /* XXX here for now -- check setifs in assign_in_env */
--#endif
-- for (i = 0; i < tvlist_ind; i++)
-- stupidly_hack_special_variables (tempvar_list[i]);
--
-- strvec_dispose (tempvar_list);
-- tempvar_list = 0;
-- tvlist_ind = 0;
--}
--
--void
--dispose_used_env_vars ()
--{
-- if (temporary_env)
-- {
-- dispose_temporary_env (propagate_temp_var);
-- maybe_make_export_env ();
-- }
--}
--
--/* Take all of the shell variables in the temporary environment HASH_TABLE
-- and make shell variables from them at the current variable context. */
--void
--merge_temporary_env ()
--{
-- if (temporary_env)
-- dispose_temporary_env (push_temp_var);
--}
--
--/* **************************************************************** */
--/* */
--/* Creating and manipulating the environment */
--/* */
--/* **************************************************************** */
--
--static inline char *
--mk_env_string (name, value, isfunc)
-- const char *name, *value;
-- int isfunc;
--{
-- size_t name_len, value_len;
-- char *p, *q;
--
-- name_len = strlen (name);
-- value_len = STRLEN (value);
--
-- /* If we are exporting a shell function, construct the encoded function
-- name. */
-- if (isfunc && value)
-- {
-- p = (char *)xmalloc (BASHFUNC_PREFLEN + name_len + BASHFUNC_SUFFLEN + value_len + 2);
-- q = p;
-- memcpy (q, BASHFUNC_PREFIX, BASHFUNC_PREFLEN);
-- q += BASHFUNC_PREFLEN;
-- memcpy (q, name, name_len);
-- q += name_len;
-- memcpy (q, BASHFUNC_SUFFIX, BASHFUNC_SUFFLEN);
-- q += BASHFUNC_SUFFLEN;
-- }
-- else
-- {
-- p = (char *)xmalloc (2 + name_len + value_len);
-- memcpy (p, name, name_len);
-- q = p + name_len;
-- }
--
-- q[0] = '=';
-- if (value && *value)
-- memcpy (q + 1, value, value_len + 1);
-- else
-- q[1] = '\0';
--
-- return (p);
--}
--
--#ifdef DEBUG
--/* Debugging */
--static int
--valid_exportstr (v)
-- SHELL_VAR *v;
--{
-- char *s;
--
-- s = v->exportstr;
-- if (s == 0)
-- {
-- internal_error (_("%s has null exportstr"), v->name);
-- return (0);
-- }
-- if (legal_variable_starter ((unsigned char)*s) == 0)
-- {
-- internal_error (_("invalid character %d in exportstr for %s"), *s, v->name);
-- return (0);
-- }
-- for (s = v->exportstr + 1; s && *s; s++)
-- {
-- if (*s == '=')
-- break;
-- if (legal_variable_char ((unsigned char)*s) == 0)
-- {
-- internal_error (_("invalid character %d in exportstr for %s"), *s, v->name);
-- return (0);
-- }
-- }
-- if (*s != '=')
-- {
-- internal_error (_("no `=' in exportstr for %s"), v->name);
-- return (0);
-- }
-- return (1);
--}
--#endif
--
--static char **
--make_env_array_from_var_list (vars)
-- SHELL_VAR **vars;
--{
-- register int i, list_index;
-- register SHELL_VAR *var;
-- char **list, *value;
--
-- list = strvec_create ((1 + strvec_len ((char **)vars)));
--
--#define USE_EXPORTSTR (value == var->exportstr)
--
-- for (i = 0, list_index = 0; var = vars[i]; i++)
-- {
--#if defined (__CYGWIN__)
-- /* We don't use the exportstr stuff on Cygwin at all. */
-- INVALIDATE_EXPORTSTR (var);
--#endif
-- if (var->exportstr)
-- value = var->exportstr;
-- else if (function_p (var))
-- value = named_function_string ((char *)NULL, function_cell (var), 0);
--#if defined (ARRAY_VARS)
-- else if (array_p (var))
--# if ARRAY_EXPORT
-- value = array_to_assignment_string (array_cell (var));
--# else
-- continue; /* XXX array vars cannot yet be exported */
--# endif /* ARRAY_EXPORT */
-- else if (assoc_p (var))
--# if 0
-- value = assoc_to_assignment_string (assoc_cell (var));
--# else
-- continue; /* XXX associative array vars cannot yet be exported */
--# endif
--#endif
-- else
-- value = value_cell (var);
--
-- if (value)
-- {
-- /* Gee, I'd like to get away with not using savestring() if we're
-- using the cached exportstr... */
-- list[list_index] = USE_EXPORTSTR ? savestring (value)
-- : mk_env_string (var->name, value, function_p (var));
--
-- if (USE_EXPORTSTR == 0)
-- SAVE_EXPORTSTR (var, list[list_index]);
--
-- list_index++;
--#undef USE_EXPORTSTR
--
--#if 0 /* not yet */
--#if defined (ARRAY_VARS)
-- if (array_p (var) || assoc_p (var))
-- free (value);
--#endif
--#endif
-- }
-- }
--
-- list[list_index] = (char *)NULL;
-- return (list);
--}
--
--/* Make an array of assignment statements from the hash table
-- HASHED_VARS which contains SHELL_VARs. Only visible, exported
-- variables are eligible. */
--static char **
--make_var_export_array (vcxt)
-- VAR_CONTEXT *vcxt;
--{
-- char **list;
-- SHELL_VAR **vars;
--
--#if 0
-- vars = map_over (visible_and_exported, vcxt);
--#else
-- vars = map_over (export_environment_candidate, vcxt);
--#endif
--
-- if (vars == 0)
-- return (char **)NULL;
--
-- list = make_env_array_from_var_list (vars);
--
-- free (vars);
-- return (list);
--}
--
--static char **
--make_func_export_array ()
--{
-- char **list;
-- SHELL_VAR **vars;
--
-- vars = map_over_funcs (visible_and_exported);
-- if (vars == 0)
-- return (char **)NULL;
--
-- list = make_env_array_from_var_list (vars);
--
-- free (vars);
-- return (list);
--}
--
--/* Add ENVSTR to the end of the exported environment, EXPORT_ENV. */
--#define add_to_export_env(envstr,do_alloc) \
--do \
-- { \
-- if (export_env_index >= (export_env_size - 1)) \
-- { \
-- export_env_size += 16; \
-- export_env = strvec_resize (export_env, export_env_size); \
-- environ = export_env; \
-- } \
-- export_env[export_env_index++] = (do_alloc) ? savestring (envstr) : envstr; \
-- export_env[export_env_index] = (char *)NULL; \
-- } while (0)
--
--/* Add ASSIGN to EXPORT_ENV, or supercede a previous assignment in the
-- array with the same left-hand side. Return the new EXPORT_ENV. */
--char **
--add_or_supercede_exported_var (assign, do_alloc)
-- char *assign;
-- int do_alloc;
--{
-- register int i;
-- int equal_offset;
--
-- equal_offset = assignment (assign, 0);
-- if (equal_offset == 0)
-- return (export_env);
--
-- /* If this is a function, then only supersede the function definition.
-- We do this by including the `=() {' in the comparison, like
-- initialize_shell_variables does. */
-- if (assign[equal_offset + 1] == '(' &&
-- strncmp (assign + equal_offset + 2, ") {", 3) == 0) /* } */
-- equal_offset += 4;
--
-- for (i = 0; i < export_env_index; i++)
-- {
-- if (STREQN (assign, export_env[i], equal_offset + 1))
-- {
-- free (export_env[i]);
-- export_env[i] = do_alloc ? savestring (assign) : assign;
-- return (export_env);
-- }
-- }
-- add_to_export_env (assign, do_alloc);
-- return (export_env);
--}
--
--static void
--add_temp_array_to_env (temp_array, do_alloc, do_supercede)
-- char **temp_array;
-- int do_alloc, do_supercede;
--{
-- register int i;
--
-- if (temp_array == 0)
-- return;
--
-- for (i = 0; temp_array[i]; i++)
-- {
-- if (do_supercede)
-- export_env = add_or_supercede_exported_var (temp_array[i], do_alloc);
-- else
-- add_to_export_env (temp_array[i], do_alloc);
-- }
--
-- free (temp_array);
--}
--
--/* Make the environment array for the command about to be executed, if the
-- array needs making. Otherwise, do nothing. If a shell action could
-- change the array that commands receive for their environment, then the
-- code should `array_needs_making++'.
--
-- The order to add to the array is:
-- temporary_env
-- list of var contexts whose head is shell_variables
-- shell_functions
--
-- This is the shell variable lookup order. We add only new variable
-- names at each step, which allows local variables and variables in
-- the temporary environments to shadow variables in the global (or
-- any previous) scope.
--*/
--
--static int
--n_shell_variables ()
--{
-- VAR_CONTEXT *vc;
-- int n;
--
-- for (n = 0, vc = shell_variables; vc; vc = vc->down)
-- n += HASH_ENTRIES (vc->table);
-- return n;
--}
--
--int
--chkexport (name)
-- char *name;
--{
-- SHELL_VAR *v;
--
-- v = find_variable (name);
-- if (v && exported_p (v))
-- {
-- array_needs_making = 1;
-- maybe_make_export_env ();
-- return 1;
-- }
-- return 0;
--}
--
--void
--maybe_make_export_env ()
--{
-- register char **temp_array;
-- int new_size;
-- VAR_CONTEXT *tcxt;
--
-- if (array_needs_making)
-- {
-- if (export_env)
-- strvec_flush (export_env);
--
-- /* Make a guess based on how many shell variables and functions we
-- have. Since there will always be array variables, and array
-- variables are not (yet) exported, this will always be big enough
-- for the exported variables and functions. */
-- new_size = n_shell_variables () + HASH_ENTRIES (shell_functions) + 1 +
-- HASH_ENTRIES (temporary_env);
-- if (new_size > export_env_size)
-- {
-- export_env_size = new_size;
-- export_env = strvec_resize (export_env, export_env_size);
-- environ = export_env;
-- }
-- export_env[export_env_index = 0] = (char *)NULL;
--
-- /* Make a dummy variable context from the temporary_env, stick it on
-- the front of shell_variables, call make_var_export_array on the
-- whole thing to flatten it, and convert the list of SHELL_VAR *s
-- to the form needed by the environment. */
-- if (temporary_env)
-- {
-- tcxt = new_var_context ((char *)NULL, 0);
-- tcxt->table = temporary_env;
-- tcxt->down = shell_variables;
-- }
-- else
-- tcxt = shell_variables;
--
-- temp_array = make_var_export_array (tcxt);
-- if (temp_array)
-- add_temp_array_to_env (temp_array, 0, 0);
--
-- if (tcxt != shell_variables)
-- free (tcxt);
--
--#if defined (RESTRICTED_SHELL)
-- /* Restricted shells may not export shell functions. */
-- temp_array = restricted ? (char **)0 : make_func_export_array ();
--#else
-- temp_array = make_func_export_array ();
--#endif
-- if (temp_array)
-- add_temp_array_to_env (temp_array, 0, 0);
--
-- array_needs_making = 0;
-- }
--}
--
--/* This is an efficiency hack. PWD and OLDPWD are auto-exported, so
-- we will need to remake the exported environment every time we
-- change directories. `_' is always put into the environment for
-- every external command, so without special treatment it will always
-- cause the environment to be remade.
--
-- If there is no other reason to make the exported environment, we can
-- just update the variables in place and mark the exported environment
-- as no longer needing a remake. */
--void
--update_export_env_inplace (env_prefix, preflen, value)
-- char *env_prefix;
-- int preflen;
-- char *value;
--{
-- char *evar;
--
-- evar = (char *)xmalloc (STRLEN (value) + preflen + 1);
-- strcpy (evar, env_prefix);
-- if (value)
-- strcpy (evar + preflen, value);
-- export_env = add_or_supercede_exported_var (evar, 0);
--}
--
--/* We always put _ in the environment as the name of this command. */
--void
--put_command_name_into_env (command_name)
-- char *command_name;
--{
-- update_export_env_inplace ("_=", 2, command_name);
--}
--
--/* **************************************************************** */
--/* */
--/* Managing variable contexts */
--/* */
--/* **************************************************************** */
--
--/* Allocate and return a new variable context with NAME and FLAGS.
-- NAME can be NULL. */
--
--VAR_CONTEXT *
--new_var_context (name, flags)
-- char *name;
-- int flags;
--{
-- VAR_CONTEXT *vc;
--
-- vc = (VAR_CONTEXT *)xmalloc (sizeof (VAR_CONTEXT));
-- vc->name = name ? savestring (name) : (char *)NULL;
-- vc->scope = variable_context;
-- vc->flags = flags;
--
-- vc->up = vc->down = (VAR_CONTEXT *)NULL;
-- vc->table = (HASH_TABLE *)NULL;
--
-- return vc;
--}
--
--/* Free a variable context and its data, including the hash table. Dispose
-- all of the variables. */
--void
--dispose_var_context (vc)
-- VAR_CONTEXT *vc;
--{
-- FREE (vc->name);
--
-- if (vc->table)
-- {
-- delete_all_variables (vc->table);
-- hash_dispose (vc->table);
-- }
--
-- free (vc);
--}
--
--/* Set VAR's scope level to the current variable context. */
--static int
--set_context (var)
-- SHELL_VAR *var;
--{
-- return (var->context = variable_context);
--}
--
--/* Make a new variable context with NAME and FLAGS and a HASH_TABLE of
-- temporary variables, and push it onto shell_variables. This is
-- for shell functions. */
--VAR_CONTEXT *
--push_var_context (name, flags, tempvars)
-- char *name;
-- int flags;
-- HASH_TABLE *tempvars;
--{
-- VAR_CONTEXT *vc;
--
-- vc = new_var_context (name, flags);
-- vc->table = tempvars;
-- if (tempvars)
-- {
-- /* Have to do this because the temp environment was created before
-- variable_context was incremented. */
-- flatten (tempvars, set_context, (VARLIST *)NULL, 0);
-- vc->flags |= VC_HASTMPVAR;
-- }
-- vc->down = shell_variables;
-- shell_variables->up = vc;
--
-- return (shell_variables = vc);
--}
--
--static void
--push_func_var (data)
-- PTR_T data;
--{
-- SHELL_VAR *var, *v;
--
-- var = (SHELL_VAR *)data;
--
-- if (tempvar_p (var) && (posixly_correct || (var->attributes & att_propagate)))
-- {
-- /* Make sure we have a hash table to store the variable in while it is
-- being propagated down to the global variables table. Create one if
-- we have to */
-- if ((vc_isfuncenv (shell_variables) || vc_istempenv (shell_variables)) && shell_variables->table == 0)
-- shell_variables->table = hash_create (0);
-- /* XXX - should we set v->context here? */
-- v = bind_variable_internal (var->name, value_cell (var), shell_variables->table, 0, 0);
-- if (shell_variables == global_variables)
-- var->attributes &= ~(att_tempvar|att_propagate);
-- else
-- shell_variables->flags |= VC_HASTMPVAR;
-- v->attributes |= var->attributes;
-- }
-- else
-- stupidly_hack_special_variables (var->name); /* XXX */
--
-- dispose_variable (var);
--}
--
--/* Pop the top context off of VCXT and dispose of it, returning the rest of
-- the stack. */
--void
--pop_var_context ()
--{
-- VAR_CONTEXT *ret, *vcxt;
--
-- vcxt = shell_variables;
-- if (vc_isfuncenv (vcxt) == 0)
-- {
-- internal_error (_("pop_var_context: head of shell_variables not a function context"));
-- return;
-- }
--
-- if (ret = vcxt->down)
-- {
-- ret->up = (VAR_CONTEXT *)NULL;
-- shell_variables = ret;
-- if (vcxt->table)
-- hash_flush (vcxt->table, push_func_var);
-- dispose_var_context (vcxt);
-- }
-- else
-- internal_error (_("pop_var_context: no global_variables context"));
--}
--
--/* Delete the HASH_TABLEs for all variable contexts beginning at VCXT, and
-- all of the VAR_CONTEXTs except GLOBAL_VARIABLES. */
--void
--delete_all_contexts (vcxt)
-- VAR_CONTEXT *vcxt;
--{
-- VAR_CONTEXT *v, *t;
--
-- for (v = vcxt; v != global_variables; v = t)
-- {
-- t = v->down;
-- dispose_var_context (v);
-- }
--
-- delete_all_variables (global_variables->table);
-- shell_variables = global_variables;
--}
--
--/* **************************************************************** */
--/* */
--/* Pushing and Popping temporary variable scopes */
--/* */
--/* **************************************************************** */
--
--VAR_CONTEXT *
--push_scope (flags, tmpvars)
-- int flags;
-- HASH_TABLE *tmpvars;
--{
-- return (push_var_context ((char *)NULL, flags, tmpvars));
--}
--
--static void
--push_exported_var (data)
-- PTR_T data;
--{
-- SHELL_VAR *var, *v;
--
-- var = (SHELL_VAR *)data;
--
-- /* If a temp var had its export attribute set, or it's marked to be
-- propagated, bind it in the previous scope before disposing it. */
-- /* XXX - This isn't exactly right, because all tempenv variables have the
-- export attribute set. */
--#if 0
-- if (exported_p (var) || (var->attributes & att_propagate))
--#else
-- if (tempvar_p (var) && exported_p (var) && (var->attributes & att_propagate))
--#endif
-- {
-- var->attributes &= ~att_tempvar; /* XXX */
-- v = bind_variable_internal (var->name, value_cell (var), shell_variables->table, 0, 0);
-- if (shell_variables == global_variables)
-- var->attributes &= ~att_propagate;
-- v->attributes |= var->attributes;
-- }
-- else
-- stupidly_hack_special_variables (var->name); /* XXX */
--
-- dispose_variable (var);
--}
--
--void
--pop_scope (is_special)
-- int is_special;
--{
-- VAR_CONTEXT *vcxt, *ret;
--
-- vcxt = shell_variables;
-- if (vc_istempscope (vcxt) == 0)
-- {
-- internal_error (_("pop_scope: head of shell_variables not a temporary environment scope"));
-- return;
-- }
--
-- ret = vcxt->down;
-- if (ret)
-- ret->up = (VAR_CONTEXT *)NULL;
--
-- shell_variables = ret;
--
-- /* Now we can take care of merging variables in VCXT into set of scopes
-- whose head is RET (shell_variables). */
-- FREE (vcxt->name);
-- if (vcxt->table)
-- {
-- if (is_special)
-- hash_flush (vcxt->table, push_func_var);
-- else
-- hash_flush (vcxt->table, push_exported_var);
-- hash_dispose (vcxt->table);
-- }
-- free (vcxt);
--
-- sv_ifs ("IFS"); /* XXX here for now */
--}
--
--/* **************************************************************** */
--/* */
--/* Pushing and Popping function contexts */
--/* */
--/* **************************************************************** */
--
--static WORD_LIST **dollar_arg_stack = (WORD_LIST **)NULL;
--static int dollar_arg_stack_slots;
--static int dollar_arg_stack_index;
--
--/* XXX - we might want to consider pushing and popping the `getopts' state
-- when we modify the positional parameters. */
--void
--push_context (name, is_subshell, tempvars)
-- char *name; /* function name */
-- int is_subshell;
-- HASH_TABLE *tempvars;
--{
-- if (is_subshell == 0)
-- push_dollar_vars ();
-- variable_context++;
-- push_var_context (name, VC_FUNCENV, tempvars);
--}
--
--/* Only called when subshell == 0, so we don't need to check, and can
-- unconditionally pop the dollar vars off the stack. */
--void
--pop_context ()
--{
-- pop_dollar_vars ();
-- variable_context--;
-- pop_var_context ();
--
-- sv_ifs ("IFS"); /* XXX here for now */
--}
--
--/* Save the existing positional parameters on a stack. */
--void
--push_dollar_vars ()
--{
-- if (dollar_arg_stack_index + 2 > dollar_arg_stack_slots)
-- {
-- dollar_arg_stack = (WORD_LIST **)
-- xrealloc (dollar_arg_stack, (dollar_arg_stack_slots += 10)
-- * sizeof (WORD_LIST *));
-- }
-- dollar_arg_stack[dollar_arg_stack_index++] = list_rest_of_args ();
-- dollar_arg_stack[dollar_arg_stack_index] = (WORD_LIST *)NULL;
--}
--
--/* Restore the positional parameters from our stack. */
--void
--pop_dollar_vars ()
--{
-- if (!dollar_arg_stack || dollar_arg_stack_index == 0)
-- return;
--
-- remember_args (dollar_arg_stack[--dollar_arg_stack_index], 1);
-- dispose_words (dollar_arg_stack[dollar_arg_stack_index]);
-- dollar_arg_stack[dollar_arg_stack_index] = (WORD_LIST *)NULL;
-- set_dollar_vars_unchanged ();
--}
--
--void
--dispose_saved_dollar_vars ()
--{
-- if (!dollar_arg_stack || dollar_arg_stack_index == 0)
-- return;
--
-- dispose_words (dollar_arg_stack[dollar_arg_stack_index]);
-- dollar_arg_stack[dollar_arg_stack_index] = (WORD_LIST *)NULL;
--}
--
--/* Manipulate the special BASH_ARGV and BASH_ARGC variables. */
--
--void
--push_args (list)
-- WORD_LIST *list;
--{
--#if defined (ARRAY_VARS) && defined (DEBUGGER)
-- SHELL_VAR *bash_argv_v, *bash_argc_v;
-- ARRAY *bash_argv_a, *bash_argc_a;
-- WORD_LIST *l;
-- arrayind_t i;
-- char *t;
--
-- GET_ARRAY_FROM_VAR ("BASH_ARGV", bash_argv_v, bash_argv_a);
-- GET_ARRAY_FROM_VAR ("BASH_ARGC", bash_argc_v, bash_argc_a);
--
-- for (l = list, i = 0; l; l = l->next, i++)
-- array_push (bash_argv_a, l->word->word);
--
-- t = itos (i);
-- array_push (bash_argc_a, t);
-- free (t);
--#endif /* ARRAY_VARS && DEBUGGER */
--}
--
--/* Remove arguments from BASH_ARGV array. Pop top element off BASH_ARGC
-- array and use that value as the count of elements to remove from
-- BASH_ARGV. */
--void
--pop_args ()
--{
--#if defined (ARRAY_VARS) && defined (DEBUGGER)
-- SHELL_VAR *bash_argv_v, *bash_argc_v;
-- ARRAY *bash_argv_a, *bash_argc_a;
-- ARRAY_ELEMENT *ce;
-- intmax_t i;
--
-- GET_ARRAY_FROM_VAR ("BASH_ARGV", bash_argv_v, bash_argv_a);
-- GET_ARRAY_FROM_VAR ("BASH_ARGC", bash_argc_v, bash_argc_a);
--
-- ce = array_shift (bash_argc_a, 1, 0);
-- if (ce == 0 || legal_number (element_value (ce), &i) == 0)
-- i = 0;
--
-- for ( ; i > 0; i--)
-- array_pop (bash_argv_a);
-- array_dispose_element (ce);
--#endif /* ARRAY_VARS && DEBUGGER */
--}
--
--/*************************************************
-- * *
-- * Functions to manage special variables *
-- * *
-- *************************************************/
--
--/* Extern declarations for variables this code has to manage. */
--extern int eof_encountered, eof_encountered_limit, ignoreeof;
--
--#if defined (READLINE)
--extern int hostname_list_initialized;
--#endif
--
--/* An alist of name.function for each special variable. Most of the
-- functions don't do much, and in fact, this would be faster with a
-- switch statement, but by the end of this file, I am sick of switch
-- statements. */
--
--#define SET_INT_VAR(name, intvar) intvar = find_variable (name) != 0
--
--/* This table will be sorted with qsort() the first time it's accessed. */
--struct name_and_function {
-- char *name;
-- sh_sv_func_t *function;
--};
--
--static struct name_and_function special_vars[] = {
-- { "BASH_COMPAT", sv_shcompat },
-- { "BASH_XTRACEFD", sv_xtracefd },
--
--#if defined (JOB_CONTROL)
-- { "CHILD_MAX", sv_childmax },
--#endif
--
--#if defined (READLINE)
--# if defined (STRICT_POSIX)
-- { "COLUMNS", sv_winsize },
--# endif
-- { "COMP_WORDBREAKS", sv_comp_wordbreaks },
--#endif
--
-- { "FUNCNEST", sv_funcnest },
--
-- { "GLOBIGNORE", sv_globignore },
--
--#if defined (HISTORY)
-- { "HISTCONTROL", sv_history_control },
-- { "HISTFILESIZE", sv_histsize },
-- { "HISTIGNORE", sv_histignore },
-- { "HISTSIZE", sv_histsize },
-- { "HISTTIMEFORMAT", sv_histtimefmt },
--#endif
--
--#if defined (__CYGWIN__)
-- { "HOME", sv_home },
--#endif
--
--#if defined (READLINE)
-- { "HOSTFILE", sv_hostfile },
--#endif
--
-- { "IFS", sv_ifs },
-- { "IGNOREEOF", sv_ignoreeof },
--
-- { "LANG", sv_locale },
-- { "LC_ALL", sv_locale },
-- { "LC_COLLATE", sv_locale },
-- { "LC_CTYPE", sv_locale },
-- { "LC_MESSAGES", sv_locale },
-- { "LC_NUMERIC", sv_locale },
-- { "LC_TIME", sv_locale },
--
--#if defined (READLINE) && defined (STRICT_POSIX)
-- { "LINES", sv_winsize },
--#endif
--
-- { "MAIL", sv_mail },
-- { "MAILCHECK", sv_mail },
-- { "MAILPATH", sv_mail },
--
-- { "OPTERR", sv_opterr },
-- { "OPTIND", sv_optind },
--
-- { "PATH", sv_path },
-- { "POSIXLY_CORRECT", sv_strict_posix },
--
--#if defined (READLINE)
-- { "TERM", sv_terminal },
-- { "TERMCAP", sv_terminal },
-- { "TERMINFO", sv_terminal },
--#endif /* READLINE */
--
-- { "TEXTDOMAIN", sv_locale },
-- { "TEXTDOMAINDIR", sv_locale },
--
--#if defined (HAVE_TZSET)
-- { "TZ", sv_tz },
--#endif
--
--#if defined (HISTORY) && defined (BANG_HISTORY)
-- { "histchars", sv_histchars },
--#endif /* HISTORY && BANG_HISTORY */
--
-- { "ignoreeof", sv_ignoreeof },
--
-- { (char *)0, (sh_sv_func_t *)0 }
--};
--
--#define N_SPECIAL_VARS (sizeof (special_vars) / sizeof (special_vars[0]) - 1)
--
--static int
--sv_compare (sv1, sv2)
-- struct name_and_function *sv1, *sv2;
--{
-- int r;
--
-- if ((r = sv1->name[0] - sv2->name[0]) == 0)
-- r = strcmp (sv1->name, sv2->name);
-- return r;
--}
--
--static inline int
--find_special_var (name)
-- const char *name;
--{
-- register int i, r;
--
-- for (i = 0; special_vars[i].name; i++)
-- {
-- r = special_vars[i].name[0] - name[0];
-- if (r == 0)
-- r = strcmp (special_vars[i].name, name);
-- if (r == 0)
-- return i;
-- else if (r > 0)
-- /* Can't match any of rest of elements in sorted list. Take this out
-- if it causes problems in certain environments. */
-- break;
-- }
-- return -1;
--}
--
--/* The variable in NAME has just had its state changed. Check to see if it
-- is one of the special ones where something special happens. */
--void
--stupidly_hack_special_variables (name)
-- char *name;
--{
-- static int sv_sorted = 0;
-- int i;
--
-- if (sv_sorted == 0) /* shouldn't need, but it's fairly cheap. */
-- {
-- qsort (special_vars, N_SPECIAL_VARS, sizeof (special_vars[0]),
-- (QSFUNC *)sv_compare);
-- sv_sorted = 1;
-- }
--
-- i = find_special_var (name);
-- if (i != -1)
-- (*(special_vars[i].function)) (name);
--}
--
--/* Special variables that need hooks to be run when they are unset as part
-- of shell reinitialization should have their sv_ functions run here. */
--void
--reinit_special_variables ()
--{
--#if defined (READLINE)
-- sv_comp_wordbreaks ("COMP_WORDBREAKS");
--#endif
-- sv_globignore ("GLOBIGNORE");
-- sv_opterr ("OPTERR");
--}
--
--void
--sv_ifs (name)
-- char *name;
--{
-- SHELL_VAR *v;
--
-- v = find_variable ("IFS");
-- setifs (v);
--}
--
--/* What to do just after the PATH variable has changed. */
--void
--sv_path (name)
-- char *name;
--{
-- /* hash -r */
-- phash_flush ();
--}
--
--/* What to do just after one of the MAILxxxx variables has changed. NAME
-- is the name of the variable. This is called with NAME set to one of
-- MAIL, MAILCHECK, or MAILPATH. */
--void
--sv_mail (name)
-- char *name;
--{
-- /* If the time interval for checking the files has changed, then
-- reset the mail timer. Otherwise, one of the pathname vars
-- to the users mailbox has changed, so rebuild the array of
-- filenames. */
-- if (name[4] == 'C') /* if (strcmp (name, "MAILCHECK") == 0) */
-- reset_mail_timer ();
-- else
-- {
-- free_mail_files ();
-- remember_mail_dates ();
-- }
--}
--
--void
--sv_funcnest (name)
-- char *name;
--{
-- SHELL_VAR *v;
-- intmax_t num;
--
-- v = find_variable (name);
-- if (v == 0)
-- funcnest_max = 0;
-- else if (legal_number (value_cell (v), &num) == 0)
-- funcnest_max = 0;
-- else
-- funcnest_max = num;
--}
--
--/* What to do when GLOBIGNORE changes. */
--void
--sv_globignore (name)
-- char *name;
--{
-- if (privileged_mode == 0)
-- setup_glob_ignore (name);
--}
--
--#if defined (READLINE)
--void
--sv_comp_wordbreaks (name)
-- char *name;
--{
-- SHELL_VAR *sv;
--
-- sv = find_variable (name);
-- if (sv == 0)
-- reset_completer_word_break_chars ();
--}
--
--/* What to do just after one of the TERMxxx variables has changed.
-- If we are an interactive shell, then try to reset the terminal
-- information in readline. */
--void
--sv_terminal (name)
-- char *name;
--{
-- if (interactive_shell && no_line_editing == 0)
-- rl_reset_terminal (get_string_value ("TERM"));
--}
--
--void
--sv_hostfile (name)
-- char *name;
--{
-- SHELL_VAR *v;
--
-- v = find_variable (name);
-- if (v == 0)
-- clear_hostname_list ();
-- else
-- hostname_list_initialized = 0;
--}
--
--#if defined (STRICT_POSIX)
--/* In strict posix mode, we allow assignments to LINES and COLUMNS (and values
-- found in the initial environment) to override the terminal size reported by
-- the kernel. */
--void
--sv_winsize (name)
-- char *name;
--{
-- SHELL_VAR *v;
-- intmax_t xd;
-- int d;
--
-- if (posixly_correct == 0 || interactive_shell == 0 || no_line_editing)
-- return;
--
-- v = find_variable (name);
-- if (v == 0 || var_isnull (v))
-- rl_reset_screen_size ();
-- else
-- {
-- if (legal_number (value_cell (v), &xd) == 0)
-- return;
-- winsize_assignment = 1;
-- d = xd; /* truncate */
-- if (name[0] == 'L') /* LINES */
-- rl_set_screen_size (d, -1);
-- else /* COLUMNS */
-- rl_set_screen_size (-1, d);
-- winsize_assignment = 0;
-- }
--}
--#endif /* STRICT_POSIX */
--#endif /* READLINE */
--
--/* Update the value of HOME in the export environment so tilde expansion will
-- work on cygwin. */
--#if defined (__CYGWIN__)
--sv_home (name)
-- char *name;
--{
-- array_needs_making = 1;
-- maybe_make_export_env ();
--}
--#endif
--
--#if defined (HISTORY)
--/* What to do after the HISTSIZE or HISTFILESIZE variables change.
-- If there is a value for this HISTSIZE (and it is numeric), then stifle
-- the history. Otherwise, if there is NO value for this variable,
-- unstifle the history. If name is HISTFILESIZE, and its value is
-- numeric, truncate the history file to hold no more than that many
-- lines. */
--void
--sv_histsize (name)
-- char *name;
--{
-- char *temp;
-- intmax_t num;
-- int hmax;
--
-- temp = get_string_value (name);
--
-- if (temp && *temp)
-- {
-- if (legal_number (temp, &num))
-- {
-- hmax = num;
-- if (hmax < 0 && name[4] == 'S')
-- unstifle_history (); /* unstifle history if HISTSIZE < 0 */
-- else if (name[4] == 'S')
-- {
-- stifle_history (hmax);
-- hmax = where_history ();
-- if (history_lines_this_session > hmax)
-- history_lines_this_session = hmax;
-- }
-- else if (hmax >= 0) /* truncate HISTFILE if HISTFILESIZE >= 0 */
-- {
-- history_truncate_file (get_string_value ("HISTFILE"), hmax);
-- if (hmax <= history_lines_in_file)
-- history_lines_in_file = hmax;
-- }
-- }
-- }
-- else if (name[4] == 'S')
-- unstifle_history ();
--}
--
--/* What to do after the HISTIGNORE variable changes. */
--void
--sv_histignore (name)
-- char *name;
--{
-- setup_history_ignore (name);
--}
--
--/* What to do after the HISTCONTROL variable changes. */
--void
--sv_history_control (name)
-- char *name;
--{
-- char *temp;
-- char *val;
-- int tptr;
--
-- history_control = 0;
-- temp = get_string_value (name);
--
-- if (temp == 0 || *temp == 0)
-- return;
--
-- tptr = 0;
-- while (val = extract_colon_unit (temp, &tptr))
-- {
-- if (STREQ (val, "ignorespace"))
-- history_control |= HC_IGNSPACE;
-- else if (STREQ (val, "ignoredups"))
-- history_control |= HC_IGNDUPS;
-- else if (STREQ (val, "ignoreboth"))
-- history_control |= HC_IGNBOTH;
-- else if (STREQ (val, "erasedups"))
-- history_control |= HC_ERASEDUPS;
--
-- free (val);
-- }
--}
--
--#if defined (BANG_HISTORY)
--/* Setting/unsetting of the history expansion character. */
--void
--sv_histchars (name)
-- char *name;
--{
-- char *temp;
--
-- temp = get_string_value (name);
-- if (temp)
-- {
-- history_expansion_char = *temp;
-- if (temp[0] && temp[1])
-- {
-- history_subst_char = temp[1];
-- if (temp[2])
-- history_comment_char = temp[2];
-- }
-- }
-- else
-- {
-- history_expansion_char = '!';
-- history_subst_char = '^';
-- history_comment_char = '#';
-- }
--}
--#endif /* BANG_HISTORY */
--
--void
--sv_histtimefmt (name)
-- char *name;
--{
-- SHELL_VAR *v;
--
-- if (v = find_variable (name))
-- {
-- if (history_comment_char == 0)
-- history_comment_char = '#';
-- }
-- history_write_timestamps = (v != 0);
--}
--#endif /* HISTORY */
--
--#if defined (HAVE_TZSET)
--void
--sv_tz (name)
-- char *name;
--{
-- if (chkexport (name))
-- tzset ();
--}
--#endif
--
--/* If the variable exists, then the value of it can be the number
-- of times we actually ignore the EOF. The default is small,
-- (smaller than csh, anyway). */
--void
--sv_ignoreeof (name)
-- char *name;
--{
-- SHELL_VAR *tmp_var;
-- char *temp;
--
-- eof_encountered = 0;
--
-- tmp_var = find_variable (name);
-- ignoreeof = tmp_var != 0;
-- temp = tmp_var ? value_cell (tmp_var) : (char *)NULL;
-- if (temp)
-- eof_encountered_limit = (*temp && all_digits (temp)) ? atoi (temp) : 10;
-- set_shellopts (); /* make sure `ignoreeof' is/is not in $SHELLOPTS */
--}
--
--void
--sv_optind (name)
-- char *name;
--{
-- char *tt;
-- int s;
--
-- tt = get_string_value ("OPTIND");
-- if (tt && *tt)
-- {
-- s = atoi (tt);
--
-- /* According to POSIX, setting OPTIND=1 resets the internal state
-- of getopt (). */
-- if (s < 0 || s == 1)
-- s = 0;
-- }
-- else
-- s = 0;
-- getopts_reset (s);
--}
--
--void
--sv_opterr (name)
-- char *name;
--{
-- char *tt;
--
-- tt = get_string_value ("OPTERR");
-- sh_opterr = (tt && *tt) ? atoi (tt) : 1;
--}
--
--void
--sv_strict_posix (name)
-- char *name;
--{
-- SET_INT_VAR (name, posixly_correct);
-- posix_initialize (posixly_correct);
--#if defined (READLINE)
-- if (interactive_shell)
-- posix_readline_initialize (posixly_correct);
--#endif /* READLINE */
-- set_shellopts (); /* make sure `posix' is/is not in $SHELLOPTS */
--}
--
--void
--sv_locale (name)
-- char *name;
--{
-- char *v;
-- int r;
--
-- v = get_string_value (name);
-- if (name[0] == 'L' && name[1] == 'A') /* LANG */
-- r = set_lang (name, v);
-- else
-- r = set_locale_var (name, v); /* LC_*, TEXTDOMAIN* */
--
--#if 1
-- if (r == 0 && posixly_correct)
-- last_command_exit_value = 1;
--#endif
--}
--
--#if defined (ARRAY_VARS)
--void
--set_pipestatus_array (ps, nproc)
-- int *ps;
-- int nproc;
--{
-- SHELL_VAR *v;
-- ARRAY *a;
-- ARRAY_ELEMENT *ae;
-- register int i;
-- char *t, tbuf[INT_STRLEN_BOUND(int) + 1];
--
-- v = find_variable ("PIPESTATUS");
-- if (v == 0)
-- v = make_new_array_variable ("PIPESTATUS");
-- if (array_p (v) == 0)
-- return; /* Do nothing if not an array variable. */
-- a = array_cell (v);
--
-- if (a == 0 || array_num_elements (a) == 0)
-- {
-- for (i = 0; i < nproc; i++) /* was ps[i] != -1, not i < nproc */
-- {
-- t = inttostr (ps[i], tbuf, sizeof (tbuf));
-- array_insert (a, i, t);
-- }
-- return;
-- }
--
-- /* Fast case */
-- if (array_num_elements (a) == nproc && nproc == 1)
-- {
-- ae = element_forw (a->head);
-- free (element_value (ae));
-- ae->value = itos (ps[0]);
-- }
-- else if (array_num_elements (a) <= nproc)
-- {
-- /* modify in array_num_elements members in place, then add */
-- ae = a->head;
-- for (i = 0; i < array_num_elements (a); i++)
-- {
-- ae = element_forw (ae);
-- free (element_value (ae));
-- ae->value = itos (ps[i]);
-- }
-- /* add any more */
-- for ( ; i < nproc; i++)
-- {
-- t = inttostr (ps[i], tbuf, sizeof (tbuf));
-- array_insert (a, i, t);
-- }
-- }
-- else
-- {
-- /* deleting elements. it's faster to rebuild the array. */
-- array_flush (a);
-- for (i = 0; ps[i] != -1; i++)
-- {
-- t = inttostr (ps[i], tbuf, sizeof (tbuf));
-- array_insert (a, i, t);
-- }
-- }
--}
--
--ARRAY *
--save_pipestatus_array ()
--{
-- SHELL_VAR *v;
-- ARRAY *a, *a2;
--
-- v = find_variable ("PIPESTATUS");
-- if (v == 0 || array_p (v) == 0 || array_cell (v) == 0)
-- return ((ARRAY *)NULL);
--
-- a = array_cell (v);
-- a2 = array_copy (array_cell (v));
--
-- return a2;
--}
--
--void
--restore_pipestatus_array (a)
-- ARRAY *a;
--{
-- SHELL_VAR *v;
-- ARRAY *a2;
--
-- v = find_variable ("PIPESTATUS");
-- /* XXX - should we still assign even if existing value is NULL? */
-- if (v == 0 || array_p (v) == 0 || array_cell (v) == 0)
-- return;
--
-- a2 = array_cell (v);
-- var_setarray (v, a);
--
-- array_dispose (a2);
--}
--#endif
--
--void
--set_pipestatus_from_exit (s)
-- int s;
--{
--#if defined (ARRAY_VARS)
-- static int v[2] = { 0, -1 };
--
-- v[0] = s;
-- set_pipestatus_array (v, 1);
--#endif
--}
--
--void
--sv_xtracefd (name)
-- char *name;
--{
-- SHELL_VAR *v;
-- char *t, *e;
-- int fd;
-- FILE *fp;
--
-- v = find_variable (name);
-- if (v == 0)
-- {
-- xtrace_reset ();
-- return;
-- }
--
-- t = value_cell (v);
-- if (t == 0 || *t == 0)
-- xtrace_reset ();
-- else
-- {
-- fd = (int)strtol (t, &e, 10);
-- if (e != t && *e == '\0' && sh_validfd (fd))
-- {
-- fp = fdopen (fd, "w");
-- if (fp == 0)
-- internal_error (_("%s: %s: cannot open as FILE"), name, value_cell (v));
-- else
-- xtrace_set (fd, fp);
-- }
-- else
-- internal_error (_("%s: %s: invalid value for trace file descriptor"), name, value_cell (v));
-- }
--}
--
--#define MIN_COMPAT_LEVEL 31
--
--void
--sv_shcompat (name)
-- char *name;
--{
-- SHELL_VAR *v;
-- char *val;
-- int tens, ones, compatval;
--
-- v = find_variable (name);
-- if (v == 0)
-- {
-- shell_compatibility_level = DEFAULT_COMPAT_LEVEL;
-- set_compatibility_opts ();
-- return;
-- }
-- val = value_cell (v);
-- if (val == 0 || *val == '\0')
-- {
-- shell_compatibility_level = DEFAULT_COMPAT_LEVEL;
-- set_compatibility_opts ();
-- return;
-- }
-- /* Handle decimal-like compatibility version specifications: 4.2 */
-- if (isdigit (val[0]) && val[1] == '.' && isdigit (val[2]) && val[3] == 0)
-- {
-- tens = val[0] - '0';
-- ones = val[2] - '0';
-- compatval = tens*10 + ones;
-- }
-- /* Handle integer-like compatibility version specifications: 42 */
-- else if (isdigit (val[0]) && isdigit (val[1]) && val[2] == 0)
-- {
-- tens = val[0] - '0';
-- ones = val[1] - '0';
-- compatval = tens*10 + ones;
-- }
-- else
-- {
--compat_error:
-- internal_error (_("%s: %s: compatibility value out of range"), name, val);
-- shell_compatibility_level = DEFAULT_COMPAT_LEVEL;
-- set_compatibility_opts ();
-- return;
-- }
--
-- if (compatval < MIN_COMPAT_LEVEL || compatval > DEFAULT_COMPAT_LEVEL)
-- goto compat_error;
--
-- shell_compatibility_level = compatval;
-- set_compatibility_opts ();
--}
--
--#if defined (JOB_CONTROL)
--void
--sv_childmax (name)
-- char *name;
--{
-- char *tt;
-- int s;
--
-- tt = get_string_value (name);
-- s = (tt && *tt) ? atoi (tt) : 0;
-- set_maxchild (s);
--}
--#endif
diff --git a/patches/bash-4.3.30/0003-Bash-4.3-patch-33.patch b/patches/bash-4.3.30/0003-Bash-4.3-patch-33.patch
deleted file mode 100644
index cda179735..000000000
--- a/patches/bash-4.3.30/0003-Bash-4.3-patch-33.patch
+++ /dev/null
@@ -1,204 +0,0 @@
-From: Chet Ramey <chet.ramey@case.edu>
-Date: Thu, 15 Jan 2015 10:21:08 -0500
-Subject: [PATCH] Bash-4.3 patch 33
-
----
- bashline.c | 6 ++++--
- builtins/common.h | 4 ++++
- builtins/read.def | 31 ++++++++++++++++++++++++++++---
- patchlevel.h | 2 +-
- shell.c | 9 +++++++++
- sig.c | 6 ++++--
- 6 files changed, 50 insertions(+), 8 deletions(-)
-
-diff --git a/bashline.c b/bashline.c
-index 77ca033f2cc8..c87415171a4a 100644
---- a/bashline.c
-+++ b/bashline.c
-@@ -202,6 +202,7 @@ extern int current_command_line_count, saved_command_line_count;
- extern int last_command_exit_value;
- extern int array_needs_making;
- extern int posixly_correct, no_symbolic_links;
-+extern int sigalrm_seen;
- extern char *current_prompt_string, *ps1_prompt;
- extern STRING_INT_ALIST word_token_alist[];
- extern sh_builtin_func_t *last_shell_builtin, *this_shell_builtin;
-@@ -4208,8 +4209,9 @@ bash_event_hook ()
- {
- /* If we're going to longjmp to top_level, make sure we clean up readline.
- check_signals will call QUIT, which will eventually longjmp to top_level,
-- calling run_interrupt_trap along the way. */
-- if (interrupt_state)
-+ calling run_interrupt_trap along the way. The check for sigalrm_seen is
-+ to clean up the read builtin's state. */
-+ if (terminating_signal || interrupt_state || sigalrm_seen)
- rl_cleanup_after_signal ();
- bashline_reset_event_hook ();
- check_signals_and_traps (); /* XXX */
-diff --git a/builtins/common.h b/builtins/common.h
-index cae16b10fb65..a1298cb9c84a 100644
---- a/builtins/common.h
-+++ b/builtins/common.h
-@@ -122,6 +122,10 @@ extern void bash_logout __P((void));
- /* Functions from getopts.def */
- extern void getopts_reset __P((int));
-
-+/* Functions from read.def */
-+extern void read_tty_cleanup __P((void));
-+extern int read_tty_modified __P((void));
-+
- /* Functions from set.def */
- extern int minus_o_option_value __P((char *));
- extern void list_minus_o_opts __P((int, int));
-diff --git a/builtins/read.def b/builtins/read.def
-index 43971544d081..56c23010bbe8 100644
---- a/builtins/read.def
-+++ b/builtins/read.def
-@@ -140,10 +140,12 @@ static void reset_alarm __P((void));
- procenv_t alrmbuf;
- int sigalrm_seen;
-
--static int reading;
-+static int reading, tty_modified;
- static SigHandler *old_alrm;
- static unsigned char delim;
-
-+static struct ttsave termsave;
-+
- /* In all cases, SIGALRM just sets a flag that we check periodically. This
- avoids problems with the semi-tricky stuff we do with the xfree of
- input_string at the top of the unwind-protect list (see below). */
-@@ -188,7 +190,6 @@ read_builtin (list)
- struct stat tsb;
- SHELL_VAR *var;
- TTYSTRUCT ttattrs, ttset;
-- struct ttsave termsave;
- #if defined (ARRAY_VARS)
- WORD_LIST *alist;
- #endif
-@@ -221,7 +222,7 @@ read_builtin (list)
- USE_VAR(ps2);
- USE_VAR(lastsig);
-
-- sigalrm_seen = reading = 0;
-+ sigalrm_seen = reading = tty_modified = 0;
-
- i = 0; /* Index into the string that we are reading. */
- raw = edit = 0; /* Not reading raw input by default. */
-@@ -438,6 +439,8 @@ read_builtin (list)
- retval = 128+SIGALRM;
- goto assign_vars;
- }
-+ if (interactive_shell == 0)
-+ initialize_terminating_signals ();
- old_alrm = set_signal_handler (SIGALRM, sigalrm);
- add_unwind_protect (reset_alarm, (char *)NULL);
- #if defined (READLINE)
-@@ -482,7 +485,10 @@ read_builtin (list)
- i = silent ? ttfd_cbreak (fd, &ttset) : ttfd_onechar (fd, &ttset);
- if (i < 0)
- sh_ttyerror (1);
-+ tty_modified = 1;
- add_unwind_protect ((Function *)ttyrestore, (char *)&termsave);
-+ if (interactive_shell == 0)
-+ initialize_terminating_signals ();
- }
- }
- else if (silent) /* turn off echo but leave term in canonical mode */
-@@ -497,7 +503,10 @@ read_builtin (list)
- if (i < 0)
- sh_ttyerror (1);
-
-+ tty_modified = 1;
- add_unwind_protect ((Function *)ttyrestore, (char *)&termsave);
-+ if (interactive_shell == 0)
-+ initialize_terminating_signals ();
- }
-
- /* This *must* be the top unwind-protect on the stack, so the manipulation
-@@ -588,6 +597,8 @@ read_builtin (list)
- }
- else
- lastsig = 0;
-+ if (terminating_signal && tty_modified)
-+ ttyrestore (&termsave); /* fix terminal before exiting */
- CHECK_TERMSIG;
- eof = 1;
- break;
-@@ -978,6 +989,20 @@ ttyrestore (ttp)
- struct ttsave *ttp;
- {
- ttsetattr (ttp->fd, ttp->attrs);
-+ tty_modified = 0;
-+}
-+
-+void
-+read_tty_cleanup ()
-+{
-+ if (tty_modified)
-+ ttyrestore (&termsave);
-+}
-+
-+int
-+read_tty_modified ()
-+{
-+ return (tty_modified);
- }
-
- #if defined (READLINE)
-diff --git a/patchlevel.h b/patchlevel.h
-index b8bf38704ed2..cefe6bdd3a13 100644
---- a/patchlevel.h
-+++ b/patchlevel.h
-@@ -25,6 +25,6 @@
- regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh
- looks for to find the patch level (for the sccs version string). */
-
--#define PATCHLEVEL 32
-+#define PATCHLEVEL 33
-
- #endif /* _PATCHLEVEL_H_ */
-diff --git a/shell.c b/shell.c
-index bbc8a66cc2eb..2fd8179ba10d 100644
---- a/shell.c
-+++ b/shell.c
-@@ -73,6 +73,7 @@
- #endif
-
- #if defined (READLINE)
-+# include <readline/readline.h>
- # include "bashline.h"
- #endif
-
-@@ -909,6 +910,14 @@ exit_shell (s)
- fflush (stdout); /* XXX */
- fflush (stderr);
-
-+ /* Clean up the terminal if we are in a state where it's been modified. */
-+#if defined (READLINE)
-+ if (RL_ISSTATE (RL_STATE_TERMPREPPED) && rl_deprep_term_function)
-+ (*rl_deprep_term_function) ();
-+#endif
-+ if (read_tty_modified ())
-+ read_tty_cleanup ();
-+
- /* Do trap[0] if defined. Allow it to override the exit status
- passed to us. */
- if (signal_is_trapped (0))
-diff --git a/sig.c b/sig.c
-index 3b62ea5d7c5d..8bc45c17f478 100644
---- a/sig.c
-+++ b/sig.c
-@@ -532,8 +532,10 @@ termsig_sighandler (sig)
- #if defined (READLINE)
- /* Set the event hook so readline will call it after the signal handlers
- finish executing, so if this interrupted character input we can get
-- quick response. */
-- if (interactive_shell && interactive && no_line_editing == 0)
-+ quick response. If readline is active or has modified the terminal we
-+ need to set this no matter what the signal is, though the check for
-+ RL_STATE_TERMPREPPED is possibly redundant. */
-+ if (RL_ISSTATE (RL_STATE_SIGHANDLER) || RL_ISSTATE (RL_STATE_TERMPREPPED))
- bashline_set_event_hook ();
- #endif
-
diff --git a/patches/bash-4.3.30/series b/patches/bash-4.3.30/series
deleted file mode 100644
index 2e1fdf17f..000000000
--- a/patches/bash-4.3.30/series
+++ /dev/null
@@ -1,6 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Bash-4.3-patch-31.patch
-0002-Bash-4.3-patch-32.patch
-0003-Bash-4.3-patch-33.patch
-# 602897f584d96d29536a2fa60f8d5e23 - git-ptx-patches magic
diff --git a/patches/alsa-lib-1.2.1.2/autogen.sh b/patches/bayer2rgb3-v0.6.0/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/alsa-lib-1.2.1.2/autogen.sh
+++ b/patches/bayer2rgb3-v0.6.0/autogen.sh
diff --git a/patches/bonnie++-1.97.3/0001-configure-cache-result-of-large-file-test.patch b/patches/bonnie++-1.97.3/0001-configure-cache-result-of-large-file-test.patch
deleted file mode 100644
index 3d78119f8..000000000
--- a/patches/bonnie++-1.97.3/0001-configure-cache-result-of-large-file-test.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From: Alexander Stein <alexander.stein@systec-electronic.com>
-Date: Mon, 27 Apr 2015 13:22:58 +0200
-Subject: [PATCH] configure: cache result of large file test
-
-Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com>
----
- configure.in | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index f92f0ab8ea8f..015e8ba82e71 100644
---- a/configure.in
-+++ b/configure.in
-@@ -83,6 +83,7 @@ void * thread_func(void * param) { return NULL; }
- , thread_ldflags="-pthread")
-
- AC_SUBST(large_file)
-+AC_CACHE_CHECK([Large file support], bonnie_cv_sys_largefile,
- AC_TRY_RUN([#ifndef _LARGEFILE64_SOURCE
- #define _LARGEFILE64_SOURCE
- #endif
-@@ -118,8 +119,8 @@ int main () {
- }
- close(fd);
- return 0;
--}], large_file="yes")
--if [[ -n "$large_file" ]]; then
-+}], bonnie_cv_sys_largefile=yes, bonnie_cv_sys_largefile=no))
-+if [[ "x$bonnie_cv_sys_largefile" = "xyes" ]]; then
- large_file="#define _LARGEFILE64_SOURCE"
- fi
-
diff --git a/patches/bonnie++-1.97.3/0002-use-DESTDIR-during-make-install.patch b/patches/bonnie++-1.97.3/0002-use-DESTDIR-during-make-install.patch
deleted file mode 100644
index 0d7848bac..000000000
--- a/patches/bonnie++-1.97.3/0002-use-DESTDIR-during-make-install.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Thu, 30 Apr 2015 17:47:05 +0200
-Subject: [PATCH] use DESTDIR during 'make install'
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- Makefile.in | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 4f14819dd35c..14ac33ca54bb 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -52,15 +52,15 @@ generate_randfile: generate_randfile.o
- $(LINK) generate_randfile.o -o generate_randfile
-
- install-bin: $(EXE) $(EXES)
-- mkdir -p $(eprefix)/bin $(eprefix)/sbin
-- @INSTALL_PROGRAM@ @stripping@ $(EXES) $(eprefix)/sbin
-- @INSTALL_PROGRAM@ @stripping@ $(EXE) $(eprefix)/bin
-- @INSTALL_SCRIPT@ $(SCRIPTS) $(eprefix)/bin
-+ mkdir -p $(eprefix)/bin $(DESTDIR)$(eprefix)/sbin
-+ @INSTALL_PROGRAM@ @stripping@ $(EXES) $(DESTDIR)$(eprefix)/sbin
-+ @INSTALL_PROGRAM@ @stripping@ $(EXE) $(DESTDIR)$(eprefix)/bin
-+ @INSTALL_SCRIPT@ $(SCRIPTS) $(DESTDIR)$(eprefix)/bin
-
- install: install-bin
-- mkdir -p @mandir@/man1 @mandir@/man8
-- @INSTALL_DATA@ $(MAN1) @mandir@/man1
-- @INSTALL_DATA@ $(MAN8) @mandir@/man8
-+ mkdir -p @mandir@/man1 $(DESTDIR)@mandir@/man8
-+ @INSTALL_DATA@ $(MAN1) $(DESTDIR)@mandir@/man1
-+ @INSTALL_DATA@ $(MAN8) $(DESTDIR)@mandir@/man8
-
- %.o: %.cpp
- $(CXX) -c $<
diff --git a/patches/bonnie++-1.97.3/series b/patches/bonnie++-1.97.3/series
deleted file mode 100644
index b34bb5c9b..000000000
--- a/patches/bonnie++-1.97.3/series
+++ /dev/null
@@ -1,5 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-configure-cache-result-of-large-file-test.patch
-0002-use-DESTDIR-during-make-install.patch
-# 484f49264861fb7df4a305cb4508383f - git-ptx-patches magic
diff --git a/patches/at-3.1.12/autogen.sh b/patches/bridge-utils-1.7.1/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/at-3.1.12/autogen.sh
+++ b/patches/bridge-utils-1.7.1/autogen.sh
diff --git a/patches/busybox-1.31.1/0100-Remove-stime-function-calls.patch b/patches/busybox-1.31.1/0100-Remove-stime-function-calls.patch
deleted file mode 100644
index 5e4c62ee1..000000000
--- a/patches/busybox-1.31.1/0100-Remove-stime-function-calls.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From: Alistair Francis <alistair.francis@wdc.com>
-Date: Tue, 19 Nov 2019 13:06:40 +0100
-Subject: [PATCH] Remove stime() function calls
-
-stime() has been deprecated in glibc 2.31 and replaced with
-clock_settime(). Let's replace the stime() function calls with
-clock_settime() in preperation.
-
-function old new delta
-rdate_main 197 224 +27
-clock_settime - 27 +27
-date_main 926 941 +15
-stime 37 - -37
-------------------------------------------------------------------------------
-(add/remove: 2/2 grow/shrink: 2/0 up/down: 69/-37) Total: 32 bytes
-
-Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
----
- coreutils/date.c | 6 +++++-
- libbb/missing_syscalls.c | 8 --------
- util-linux/rdate.c | 8 ++++++--
- 3 files changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/coreutils/date.c b/coreutils/date.c
-index 3414d38aedd9..4ade6abb4249 100644
---- a/coreutils/date.c
-+++ b/coreutils/date.c
-@@ -279,6 +279,9 @@ int date_main(int argc UNUSED_PARAM, char **argv)
- time(&ts.tv_sec);
- #endif
- }
-+#if !ENABLE_FEATURE_DATE_NANO
-+ ts.tv_nsec = 0;
-+#endif
- localtime_r(&ts.tv_sec, &tm_time);
-
- /* If date string is given, update tm_time, and maybe set date */
-@@ -301,9 +304,10 @@ int date_main(int argc UNUSED_PARAM, char **argv)
- if (date_str[0] != '@')
- tm_time.tm_isdst = -1;
- ts.tv_sec = validate_tm_time(date_str, &tm_time);
-+ ts.tv_nsec = 0;
-
- /* if setting time, set it */
-- if ((opt & OPT_SET) && stime(&ts.tv_sec) < 0) {
-+ if ((opt & OPT_SET) && clock_settime(CLOCK_REALTIME, &ts) < 0) {
- bb_perror_msg("can't set date");
- }
- }
-diff --git a/libbb/missing_syscalls.c b/libbb/missing_syscalls.c
-index 87cf59b3d4cc..dc40d91552f1 100644
---- a/libbb/missing_syscalls.c
-+++ b/libbb/missing_syscalls.c
-@@ -15,14 +15,6 @@ pid_t getsid(pid_t pid)
- return syscall(__NR_getsid, pid);
- }
-
--int stime(const time_t *t)
--{
-- struct timeval tv;
-- tv.tv_sec = *t;
-- tv.tv_usec = 0;
-- return settimeofday(&tv, NULL);
--}
--
- int sethostname(const char *name, size_t len)
- {
- return syscall(__NR_sethostname, name, len);
-diff --git a/util-linux/rdate.c b/util-linux/rdate.c
-index 70f829e7fec7..878375d7868d 100644
---- a/util-linux/rdate.c
-+++ b/util-linux/rdate.c
-@@ -95,9 +95,13 @@ int rdate_main(int argc UNUSED_PARAM, char **argv)
- if (!(flags & 2)) { /* no -p (-s may be present) */
- if (time(NULL) == remote_time)
- bb_error_msg("current time matches remote time");
-- else
-- if (stime(&remote_time) < 0)
-+ else {
-+ struct timespec ts;
-+ ts.tv_sec = remote_time;
-+ ts.tv_nsec = 0;
-+ if (clock_settime(CLOCK_REALTIME, &ts) < 0)
- bb_perror_msg_and_die("can't set time of day");
-+ }
- }
-
- if (flags != 1) /* not lone -s */
diff --git a/patches/busybox-1.31.1/0201-Fix-the-format-warning-when-building-applets-usage_p.patch b/patches/busybox-1.31.1/0201-Fix-the-format-warning-when-building-applets-usage_p.patch
deleted file mode 100644
index 5a21793d8..000000000
--- a/patches/busybox-1.31.1/0201-Fix-the-format-warning-when-building-applets-usage_p.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: Dinny Wu <dinny.wu@gmail.com>
-Date: Thu, 26 Jul 2012 14:12:51 +0000
-Subject: [PATCH] Fix the format warning when building applets/usage_pod.c
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-When compiling busybox with gcc 4.6.3, it shows below warning:
-
-applets/usage_pod.c: In function ‘main’:
-applets/usage_pod.c:74:3: warning: format not a string literal and no format arguments [-Wformat-security]
-
-Signed-off-by: Dinny Wu <dinny.wu@gmail.com>
----
- applets/usage_pod.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/applets/usage_pod.c b/applets/usage_pod.c
-index ccc166aed708..9e6d3f0ee5b1 100644
---- a/applets/usage_pod.c
-+++ b/applets/usage_pod.c
-@@ -71,7 +71,7 @@ int main(void)
- } else {
- printf(", ");
- }
-- printf(usage_array[i].aname);
-+ printf("%s", usage_array[i].aname);
- col += len2;
- }
- printf("\n\n");
diff --git a/patches/busybox-1.31.1/series b/patches/busybox-1.31.1/series
deleted file mode 100644
index 2e75917fa..000000000
--- a/patches/busybox-1.31.1/series
+++ /dev/null
@@ -1,11 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-#tag:upstream-stable --start-number 1
-#tag:upstream-master --start-number 100
-0100-Remove-stime-function-calls.patch
-#tag:ptx --start-number 200
-0200-reactivate-check-for-tty.patch
-0201-Fix-the-format-warning-when-building-applets-usage_p.patch
-0202-build-system-only-pass-real-libs-to-SELINUX_LIBS.patch
-0203-scripts-trylink-honour-SKIP_STRIP-and-don-t-strip-if.patch
-# df58d733972ae3ce861e84850c98ce86 - git-ptx-patches magic
diff --git a/patches/busybox-1.31.1/0200-reactivate-check-for-tty.patch b/patches/busybox-1.36.1/0200-reactivate-check-for-tty.patch
index 077b84efa..5c1c79272 100644
--- a/patches/busybox-1.31.1/0200-reactivate-check-for-tty.patch
+++ b/patches/busybox-1.36.1/0200-reactivate-check-for-tty.patch
@@ -14,10 +14,10 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
-index 57734b590ace..b9cf03d76f55 100644
+index 39ec1cdb63ec..be94e19c2011 100644
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
-@@ -537,7 +537,7 @@ int main(int ac, char **av)
+@@ -539,7 +539,7 @@ int main(int ac, char **av)
break;
case 's':
input_mode = ask_silent;
diff --git a/patches/busybox-1.31.1/0202-build-system-only-pass-real-libs-to-SELINUX_LIBS.patch b/patches/busybox-1.36.1/0201-build-system-only-pass-real-libs-to-SELINUX_LIBS.patch
index 4e9dca9dc..8ed9efe53 100644
--- a/patches/busybox-1.31.1/0202-build-system-only-pass-real-libs-to-SELINUX_LIBS.patch
+++ b/patches/busybox-1.36.1/0201-build-system-only-pass-real-libs-to-SELINUX_LIBS.patch
@@ -10,10 +10,10 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
1 file changed, 1 insertion(+)
diff --git a/Makefile.flags b/Makefile.flags
-index f3c897b0687f..72e0a13a6388 100644
+index 1cec5ba20b47..fd195efc965d 100644
--- a/Makefile.flags
+++ b/Makefile.flags
-@@ -153,6 +153,7 @@ ifeq ($(CONFIG_SELINUX),y)
+@@ -180,6 +180,7 @@ ifeq ($(CONFIG_SELINUX),y)
SELINUX_PC_MODULES = libselinux libsepol
$(eval $(call pkg_check_modules,SELINUX,$(SELINUX_PC_MODULES)))
CPPFLAGS += $(SELINUX_CFLAGS)
diff --git a/patches/busybox-1.31.1/0203-scripts-trylink-honour-SKIP_STRIP-and-don-t-strip-if.patch b/patches/busybox-1.36.1/0202-scripts-trylink-honour-SKIP_STRIP-and-don-t-strip-if.patch
index 6f2106090..21b6d3ccc 100644
--- a/patches/busybox-1.31.1/0203-scripts-trylink-honour-SKIP_STRIP-and-don-t-strip-if.patch
+++ b/patches/busybox-1.36.1/0202-scripts-trylink-honour-SKIP_STRIP-and-don-t-strip-if.patch
@@ -9,10 +9,10 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/scripts/trylink b/scripts/trylink
-index ba2d265bc919..a3f3b5b8cc10 100755
+index 2255deee7699..4febc28fc013 100755
--- a/scripts/trylink
+++ b/scripts/trylink
-@@ -268,7 +268,12 @@ if test "$CONFIG_BUILD_LIBBUSYBOX" = y; then
+@@ -269,7 +269,12 @@ if test "$CONFIG_BUILD_LIBBUSYBOX" = y; then
cat $EXE.out
exit 1
}
@@ -26,7 +26,7 @@ index ba2d265bc919..a3f3b5b8cc10 100755
chmod a+x "$sharedlib_dir/libbusybox.so.$BB_VER"
echo "libbusybox: $sharedlib_dir/libbusybox.so.$BB_VER"
fi
-@@ -289,7 +294,11 @@ if test "$CONFIG_FEATURE_SHARED_BUSYBOX" = y; then
+@@ -290,7 +295,11 @@ if test "$CONFIG_FEATURE_SHARED_BUSYBOX" = y; then
cat $EXE.out
exit 1
}
@@ -39,7 +39,7 @@ index ba2d265bc919..a3f3b5b8cc10 100755
echo "busybox linked against libbusybox: $sharedlib_dir/busybox"
fi
-@@ -326,7 +335,9 @@ int main(int argc, char **argv)
+@@ -327,7 +336,9 @@ int main(int argc, char **argv)
exit 1
}
rm -- "$sharedlib_dir/applet.c" $EXE.out
diff --git a/patches/busybox-1.36.1/0203-tc-Fix-compilation-with-Linux-v6.8-rc1.patch b/patches/busybox-1.36.1/0203-tc-Fix-compilation-with-Linux-v6.8-rc1.patch
new file mode 100644
index 000000000..23715aa1a
--- /dev/null
+++ b/patches/busybox-1.36.1/0203-tc-Fix-compilation-with-Linux-v6.8-rc1.patch
@@ -0,0 +1,61 @@
+From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
+Date: Sat, 23 Mar 2024 13:28:56 +0100
+Subject: [PATCH] tc: Fix compilation with Linux v6.8-rc1
+
+Linux v6.8-rc1 removed the definitions related to CBQ making tc fail to
+build. Add some #ifdefs to handle this missing support.
+
+Forwarded: http://lists.busybox.net/pipermail/busybox/2024-March/090678.html
+---
+ networking/tc.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/networking/tc.c b/networking/tc.c
+index 43187f7ee26c..1315b953e39f 100644
+--- a/networking/tc.c
++++ b/networking/tc.c
+@@ -231,6 +231,13 @@ static int cbq_parse_opt(int argc, char **argv, struct nlmsghdr *n)
+ return 0;
+ }
+ #endif
++
++#ifndef TCA_CBQ_MAX
++/*
++ * Linux v6.8-rc1~131^2~60^2^2 removed the uapi definitions for CBQ.
++ * See https://git.kernel.org/linus/33241dca48626
++ */
++#else
+ static int cbq_print_opt(struct rtattr *opt)
+ {
+ struct rtattr *tb[TCA_CBQ_MAX+1];
+@@ -322,6 +329,7 @@ static int cbq_print_opt(struct rtattr *opt)
+ done:
+ return 0;
+ }
++#endif
+
+ static FAST_FUNC int print_qdisc(
+ const struct sockaddr_nl *who UNUSED_PARAM,
+@@ -372,8 +380,10 @@ static FAST_FUNC int print_qdisc(
+ int qqq = index_in_strings(_q_, name);
+ if (qqq == 0) { /* pfifo_fast aka prio */
+ prio_print_opt(tb[TCA_OPTIONS]);
++#ifdef TCA_CBQ_MAX
+ } else if (qqq == 1) { /* class based queuing */
+ cbq_print_opt(tb[TCA_OPTIONS]);
++#endif
+ } else {
+ /* don't know how to print options for this qdisc */
+ printf("(options for %s)", name);
+@@ -442,9 +452,11 @@ static FAST_FUNC int print_class(
+ int qqq = index_in_strings(_q_, name);
+ if (qqq == 0) { /* pfifo_fast aka prio */
+ /* nothing. */ /*prio_print_opt(tb[TCA_OPTIONS]);*/
++#ifdef TCA_CBQ_MAX
+ } else if (qqq == 1) { /* class based queuing */
+ /* cbq_print_copt() is identical to cbq_print_opt(). */
+ cbq_print_opt(tb[TCA_OPTIONS]);
++#endif
+ } else {
+ /* don't know how to print options for this class */
+ printf("(options for %s)", name);
diff --git a/patches/busybox-1.36.1/series b/patches/busybox-1.36.1/series
new file mode 100644
index 000000000..87fee5091
--- /dev/null
+++ b/patches/busybox-1.36.1/series
@@ -0,0 +1,10 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+#tag:upstream-stable --start-number 1
+#tag:upstream-master --start-number 100
+#tag:ptx --start-number 200
+0200-reactivate-check-for-tty.patch
+0201-build-system-only-pass-real-libs-to-SELINUX_LIBS.patch
+0202-scripts-trylink-honour-SKIP_STRIP-and-don-t-strip-if.patch
+0203-tc-Fix-compilation-with-Linux-v6.8-rc1.patch
+# e781b8c6838e27fd021f9c1a9f87654d - git-ptx-patches magic
diff --git a/patches/cairo-1.16.0/0001-only-build-GL-surface-tests-if-GLX-is-enabled.patch b/patches/cairo-1.16.0/0001-only-build-GL-surface-tests-if-GLX-is-enabled.patch
deleted file mode 100644
index 32fa1f64b..000000000
--- a/patches/cairo-1.16.0/0001-only-build-GL-surface-tests-if-GLX-is-enabled.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sun, 15 Apr 2018 13:08:23 +0200
-Subject: [PATCH] only build GL surface tests if GLX is enabled
-
-All GL surface tests use GLX. So with --enable-png (to enable tests in
-general) and --enable-gl (for CAIRO_HAS_GL_SURFACE) building fails with:
-[...]
-gl-surface-source.c:33:5: error: unknown type name 'Display'
-gl-surface-source.c:34:5: error: unknown type name 'GLXContext'
-[...]
-And similar errors for the other tests.
-
-Fix this by making sure the GL surface tests are only built is GLX is
-enabled.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- test/Makefile.am | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/test/Makefile.am b/test/Makefile.am
-index e3c42ea88032..a50ba376e904 100644
---- a/test/Makefile.am
-+++ b/test/Makefile.am
-@@ -17,8 +17,10 @@ endif
- endif
-
- if CAIRO_HAS_GL_SURFACE
-+if CAIRO_HAS_GLX_FUNCTIONS
- test_sources += $(gl_surface_test_sources)
- endif
-+endif
-
- if CAIRO_HAS_EGL_FUNCTIONS
- test_sources += $(egl_surface_test_sources)
diff --git a/patches/cairo-1.16.0/0002-Makefile.sources-move-font-variations.c-a-test-code-.patch b/patches/cairo-1.16.0/0002-Makefile.sources-move-font-variations.c-a-test-code-.patch
deleted file mode 100644
index 8ae3809b9..000000000
--- a/patches/cairo-1.16.0/0002-Makefile.sources-move-font-variations.c-a-test-code-.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From: suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
-Date: Mon, 8 Apr 2019 02:56:50 +0000
-Subject: [PATCH] Makefile.sources: move font-variations.c (a test code for
- Variation Font with FreeType2 functions) from test_sources to
- ft_font_test_sources, to restrict the test to the case with FreeType2
- backend. See discussion in
- https://lists.cairographics.org/archives/cairo/2019-April/028858.html
-
----
- test/Makefile.sources | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/test/Makefile.sources b/test/Makefile.sources
-index c47131faffe1..cc3d81f7e0be 100644
---- a/test/Makefile.sources
-+++ b/test/Makefile.sources
-@@ -144,7 +144,6 @@ test_sources = \
- font-face-get-type.c \
- font-matrix-translation.c \
- font-options.c \
-- font-variations.c \
- glyph-cache-pressure.c \
- get-and-set.c \
- get-clip.c \
-@@ -399,6 +398,7 @@ pthread_test_sources = \
-
- ft_font_test_sources = \
- bitmap-font.c \
-+ font-variations.c \
- ft-font-create-for-ft-face.c \
- ft-show-glyphs-positioning.c \
- ft-show-glyphs-table.c \
diff --git a/patches/cairo-1.16.0/0003-regrouping-of-test-sources-with-new-fc_font_test_sou.patch b/patches/cairo-1.16.0/0003-regrouping-of-test-sources-with-new-fc_font_test_sou.patch
deleted file mode 100644
index c81020488..000000000
--- a/patches/cairo-1.16.0/0003-regrouping-of-test-sources-with-new-fc_font_test_sou.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From: suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
-Date: Wed, 10 Apr 2019 01:07:16 +0000
-Subject: [PATCH] regrouping of test sources with new 'fc_font_test_sources'
- group
-
----
- test/Makefile.am | 3 ++-
- test/Makefile.sources | 4 +++-
- 2 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/test/Makefile.am b/test/Makefile.am
-index a50ba376e904..2809b996d83f 100644
---- a/test/Makefile.am
-+++ b/test/Makefile.am
-@@ -11,8 +11,9 @@ test_sources += $(pthread_test_sources)
- endif
-
- if CAIRO_HAS_FT_FONT
--if CAIRO_HAS_FC_FONT
- test_sources += $(ft_font_test_sources)
-+if CAIRO_HAS_FC_FONT
-+test_sources += $(fc_font_test_sources)
- endif
- endif
-
-diff --git a/test/Makefile.sources b/test/Makefile.sources
-index cc3d81f7e0be..cb1c74d539e6 100644
---- a/test/Makefile.sources
-+++ b/test/Makefile.sources
-@@ -397,8 +397,10 @@ pthread_test_sources = \
- $(NULL)
-
- ft_font_test_sources = \
-+ font-variations.c
-+
-+fc_font_test_sources = \
- bitmap-font.c \
-- font-variations.c \
- ft-font-create-for-ft-face.c \
- ft-show-glyphs-positioning.c \
- ft-show-glyphs-table.c \
diff --git a/patches/cairo-1.16.0/series b/patches/cairo-1.16.0/series
deleted file mode 100644
index dc125547f..000000000
--- a/patches/cairo-1.16.0/series
+++ /dev/null
@@ -1,6 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-only-build-GL-surface-tests-if-GLX-is-enabled.patch
-0002-Makefile.sources-move-font-variations.c-a-test-code-.patch
-0003-regrouping-of-test-sources-with-new-fc_font_test_sou.patch
-# dfb78163a7d65338b42965982e516176 - git-ptx-patches magic
diff --git a/patches/cairo-1.18.0/0001-cairo-ft-fx-building-without-SVG-support.patch b/patches/cairo-1.18.0/0001-cairo-ft-fx-building-without-SVG-support.patch
new file mode 100644
index 000000000..808322966
--- /dev/null
+++ b/patches/cairo-1.18.0/0001-cairo-ft-fx-building-without-SVG-support.patch
@@ -0,0 +1,35 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Wed, 27 Sep 2023 09:56:56 +0200
+Subject: [PATCH] cairo-ft: fx building without SVG support
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Without SVG support, FT_Color is not defined and building fails with:
+
+../cairo-1.18.0/src/cairo-ft-private.h:87:30: error: unknown type name ‘FT_Color’
+
+Fix this by defining FT_Color unconditionally.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ src/cairo-ft-private.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/cairo-ft-private.h b/src/cairo-ft-private.h
+index 836f7e523e59..399d0d046094 100644
+--- a/src/cairo-ft-private.h
++++ b/src/cairo-ft-private.h
+@@ -63,10 +63,10 @@ cairo_private cairo_status_t
+ _cairo_ft_face_decompose_glyph_outline (FT_Face face,
+ cairo_path_fixed_t **pathp);
+
+-#if HAVE_FT_SVG_DOCUMENT
+-
+ typedef struct FT_Color_ FT_Color;
+
++#if HAVE_FT_SVG_DOCUMENT
++
+ cairo_private cairo_status_t
+ _cairo_render_svg_glyph (const char *svg_document,
+ unsigned long first_glyph,
diff --git a/patches/cairo-1.18.0/0100-Cairo-Fix-Denial-of-Service-Attack-due-to-Logical-Pr.patch b/patches/cairo-1.18.0/0100-Cairo-Fix-Denial-of-Service-Attack-due-to-Logical-Pr.patch
new file mode 100644
index 000000000..b8a0aa0d7
--- /dev/null
+++ b/patches/cairo-1.18.0/0100-Cairo-Fix-Denial-of-Service-Attack-due-to-Logical-Pr.patch
@@ -0,0 +1,32 @@
+From: Christian Melki <christian.melki@t2data.com>
+Date: Tue, 17 May 2022 11:03:07 +0200
+Subject: [PATCH] Cairo: Fix Denial-of-Service Attack due to Logical Problem in
+ Program
+
+https://bugs.freedesktop.org/show_bug.cgi?id=100763
+
+CVE: CVE-2017-7475
+Upstream-Status: Submitted
+
+Signed-off-by: Fan Xin <fan.xin@jp.fujitsu.com>
+
+The patch was imported from the Yocto project.
+
+Signed-off-by: Christian Melki <christian.melki@t2data.com>
+---
+ src/cairo-ft-font.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c
+index bf0872e937db..0543c8c011e6 100644
+--- a/src/cairo-ft-font.c
++++ b/src/cairo-ft-font.c
+@@ -1233,7 +1233,7 @@ _get_bitmap_surface (FT_Bitmap *bitmap,
+ width = bitmap->width;
+ height = bitmap->rows;
+
+- if (width == 0 || height == 0) {
++ if (width == 0 || height == 0 || bitmap->buffer == NULL) {
+ *surface = (cairo_image_surface_t *)
+ cairo_image_surface_create_for_data (NULL, format, 0, 0, 0);
+ return (*surface)->base.status;
diff --git a/patches/cairo-1.18.0/0101-There-is-an-assertion-in-function-_cairo_arc_in_dire.patch b/patches/cairo-1.18.0/0101-There-is-an-assertion-in-function-_cairo_arc_in_dire.patch
new file mode 100644
index 000000000..741bd2473
--- /dev/null
+++ b/patches/cairo-1.18.0/0101-There-is-an-assertion-in-function-_cairo_arc_in_dire.patch
@@ -0,0 +1,29 @@
+From: Christian Melki <christian.melki@t2data.com>
+Date: Tue, 17 May 2022 11:10:14 +0200
+Subject: [PATCH] There is an assertion in function _cairo_arc_in_direction().
+
+CVE: CVE-2019-6462
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+The patch was imported from the Yocto project.
+
+Signed-off-by: Christian Melki <christian.melki@t2data.com>
+---
+ src/cairo-arc.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/cairo-arc.c b/src/cairo-arc.c
+index 010b9c1a7a18..4516c00e2602 100644
+--- a/src/cairo-arc.c
++++ b/src/cairo-arc.c
+@@ -191,7 +191,8 @@ _cairo_arc_in_direction (cairo_t *cr,
+ if (! ISFINITE (angle_max) || ! ISFINITE (angle_min))
+ return;
+
+- assert (angle_max >= angle_min);
++ if (angle_max < angle_min)
++ return;
+
+ if (angle_max - angle_min > 2 * M_PI * MAX_FULL_CIRCLES) {
+ angle_max = fmod (angle_max - angle_min, 2 * M_PI);
diff --git a/patches/cairo-1.18.0/series b/patches/cairo-1.18.0/series
new file mode 100644
index 000000000..6f99b817c
--- /dev/null
+++ b/patches/cairo-1.18.0/series
@@ -0,0 +1,7 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-cairo-ft-fx-building-without-SVG-support.patch
+#tag:yocto --start-number 100
+0100-Cairo-Fix-Denial-of-Service-Attack-due-to-Logical-Pr.patch
+0101-There-is-an-assertion-in-function-_cairo_arc_in_dire.patch
+# 3802b4df52c7537cff3ba7ad6393c380 - git-ptx-patches magic
diff --git a/patches/canfestival-3+hg20180126.794/0007-gnosis-port-to-python3.patch b/patches/canfestival-3+hg20180126.794/0007-gnosis-port-to-python3.patch
new file mode 100644
index 000000000..bc62c6b9a
--- /dev/null
+++ b/patches/canfestival-3+hg20180126.794/0007-gnosis-port-to-python3.patch
@@ -0,0 +1,1912 @@
+From: Roland Hieber <rhi@pengutronix.de>
+Date: Sun, 11 Feb 2024 22:51:48 +0100
+Subject: [PATCH] gnosis: port to python3
+
+Not all of the code was ported, only enough to make objdictgen calls in
+the Makefile work enough to generate the code in examples/.
+---
+ objdictgen/gnosis/__init__.py | 7 +-
+ objdictgen/gnosis/doc/xml_matters_39.txt | 2 +-
+ objdictgen/gnosis/indexer.py | 2 +-
+ objdictgen/gnosis/magic/dtdgenerator.py | 2 +-
+ objdictgen/gnosis/magic/multimethods.py | 4 +-
+ objdictgen/gnosis/pyconfig.py | 34 ++++-----
+ objdictgen/gnosis/trigramlib.py | 2 +-
+ objdictgen/gnosis/util/XtoY.py | 22 +++---
+ objdictgen/gnosis/util/introspect.py | 30 ++++----
+ objdictgen/gnosis/util/test/__init__.py | 0
+ objdictgen/gnosis/util/test/funcs.py | 2 +-
+ objdictgen/gnosis/util/test/test_data2attr.py | 16 ++---
+ objdictgen/gnosis/util/test/test_introspect.py | 39 +++++-----
+ objdictgen/gnosis/util/test/test_noinit.py | 43 ++++++------
+ .../gnosis/util/test/test_variants_noinit.py | 53 +++++++++-----
+ objdictgen/gnosis/util/xml2sql.py | 2 +-
+ objdictgen/gnosis/xml/indexer.py | 14 ++--
+ objdictgen/gnosis/xml/objectify/_objectify.py | 14 ++--
+ objdictgen/gnosis/xml/objectify/utils.py | 4 +-
+ objdictgen/gnosis/xml/pickle/__init__.py | 4 +-
+ objdictgen/gnosis/xml/pickle/_pickle.py | 82 ++++++++++------------
+ objdictgen/gnosis/xml/pickle/doc/HOWTO.extensions | 6 +-
+ objdictgen/gnosis/xml/pickle/exception.py | 2 +
+ objdictgen/gnosis/xml/pickle/ext/__init__.py | 2 +-
+ objdictgen/gnosis/xml/pickle/ext/_mutate.py | 17 +++--
+ objdictgen/gnosis/xml/pickle/ext/_mutators.py | 14 ++--
+ objdictgen/gnosis/xml/pickle/parsers/_dom.py | 34 ++++-----
+ objdictgen/gnosis/xml/pickle/parsers/_sax.py | 41 ++++++-----
+ objdictgen/gnosis/xml/pickle/test/test_all.py | 6 +-
+ .../gnosis/xml/pickle/test/test_badstring.py | 2 +-
+ objdictgen/gnosis/xml/pickle/test/test_bltin.py | 2 +-
+ objdictgen/gnosis/xml/pickle/test/test_mutators.py | 18 ++---
+ objdictgen/gnosis/xml/pickle/test/test_unicode.py | 31 ++++----
+ objdictgen/gnosis/xml/pickle/util/__init__.py | 4 +-
+ objdictgen/gnosis/xml/pickle/util/_flags.py | 11 ++-
+ objdictgen/gnosis/xml/pickle/util/_util.py | 20 +++---
+ objdictgen/gnosis/xml/relax/lex.py | 12 ++--
+ objdictgen/gnosis/xml/relax/rnctree.py | 2 +-
+ objdictgen/gnosis/xml/xmlmap.py | 32 ++++-----
+ 39 files changed, 322 insertions(+), 312 deletions(-)
+ create mode 100644 objdictgen/gnosis/util/test/__init__.py
+ create mode 100644 objdictgen/gnosis/xml/pickle/exception.py
+
+diff --git a/objdictgen/gnosis/__init__.py b/objdictgen/gnosis/__init__.py
+index ec2768738626..8d7bc5a5a467 100644
+--- a/objdictgen/gnosis/__init__.py
++++ b/objdictgen/gnosis/__init__.py
+@@ -1,9 +1,8 @@
+ import string
+ from os import sep
+-s = string
+-d = s.join(s.split(__file__, sep)[:-1], sep)+sep
+-_ = lambda f: s.rstrip(open(d+f).read())
+-l = lambda f: s.split(_(f),'\n')
++d = sep.join(__file__.split(sep)[:-1])+sep
++_ = lambda f: open(d+f).read().rstrip()
++l = lambda f: _(f).split('\n')
+
+ try:
+ __doc__ = _('README')
+diff --git a/objdictgen/gnosis/doc/xml_matters_39.txt b/objdictgen/gnosis/doc/xml_matters_39.txt
+index 136c20a6ae95..b2db8b83fd92 100644
+--- a/objdictgen/gnosis/doc/xml_matters_39.txt
++++ b/objdictgen/gnosis/doc/xml_matters_39.txt
+@@ -273,7 +273,7 @@ SERIALIZING TO XML
+ out.write(' %s=%s' % attr)
+ out.write('>')
+ for node in content(o):
+- if type(node) in StringTypes:
++ if type(node) == str:
+ out.write(node)
+ else:
+ write_xml(node, out=out)
+diff --git a/objdictgen/gnosis/indexer.py b/objdictgen/gnosis/indexer.py
+index e975afd5aeb6..60f1b742ec94 100644
+--- a/objdictgen/gnosis/indexer.py
++++ b/objdictgen/gnosis/indexer.py
+@@ -182,7 +182,7 @@ def recurse_files(curdir, pattern, exclusions, func=echo_fname, *args, **kw):
+ elif type(pattern)==type(re.compile('')):
+ if pattern.match(name):
+ files.append(fname)
+- elif type(pattern) is StringType:
++ elif type(pattern) is str:
+ if fnmatch.fnmatch(name, pattern):
+ files.append(fname)
+
+diff --git a/objdictgen/gnosis/magic/dtdgenerator.py b/objdictgen/gnosis/magic/dtdgenerator.py
+index 9f6368f4c0df..d06f80364616 100644
+--- a/objdictgen/gnosis/magic/dtdgenerator.py
++++ b/objdictgen/gnosis/magic/dtdgenerator.py
+@@ -83,7 +83,7 @@ class DTDGenerator(type):
+ map(lambda x: expand(x, subs), subs.keys())
+
+ # On final pass, substitute-in to the declarations
+- for decl, i in zip(decl_list, xrange(maxint)):
++ for decl, i in zip(decl_list, range(maxint)):
+ for name, sub in subs.items():
+ decl = decl.replace(name, sub)
+ decl_list[i] = decl
+diff --git a/objdictgen/gnosis/magic/multimethods.py b/objdictgen/gnosis/magic/multimethods.py
+index 699f4ffb5bbe..d1fe0302e631 100644
+--- a/objdictgen/gnosis/magic/multimethods.py
++++ b/objdictgen/gnosis/magic/multimethods.py
+@@ -59,7 +59,7 @@ def lexicographic_mro(signature, matches):
+ # Schwartzian transform to weight match sigs, left-to-right"
+ proximity = lambda klass, mro: mro.index(klass)
+ mros = [klass.mro() for klass in signature]
+- for (sig,func,nm),i in zip(matches,xrange(1000)):
++ for (sig,func,nm),i in zip(matches,range(1000)):
+ matches[i] = (map(proximity, sig, mros), matches[i])
+ matches.sort()
+ return map(lambda t:t[1], matches)
+@@ -71,7 +71,7 @@ def weighted_mro(signature, matches):
+ proximity = lambda klass, mro: mro.index(klass)
+ sum = lambda lst: reduce(add, lst)
+ mros = [klass.mro() for klass in signature]
+- for (sig,func,nm),i in zip(matches,xrange(1000)):
++ for (sig,func,nm),i in zip(matches,range(1000)):
+ matches[i] = (sum(map(proximity,sig,mros)), matches[i])
+ matches.sort()
+ return map(lambda t:t[1], matches)
+diff --git a/objdictgen/gnosis/pyconfig.py b/objdictgen/gnosis/pyconfig.py
+index b2419f2c4ba3..255fe42f9a1f 100644
+--- a/objdictgen/gnosis/pyconfig.py
++++ b/objdictgen/gnosis/pyconfig.py
+@@ -45,7 +45,7 @@
+ # just that each testcase compiles & runs OK.
+
+ # Note: Compatibility with Python 1.5 is required here.
+-import __builtin__, string
++import string
+
+ # FYI, there are tests for these PEPs:
+ #
+@@ -105,15 +105,15 @@ def compile_code( codestr ):
+ if codestr and codestr[-1] != '\n':
+ codestr = codestr + '\n'
+
+- return __builtin__.compile(codestr, 'dummyname', 'exec')
++ return compile(codestr, 'dummyname', 'exec')
+
+ def can_run_code( codestr ):
+ try:
+ eval( compile_code(codestr) )
+ return 1
+- except Exception,exc:
++ except Exception as exc:
+ if SHOW_DEBUG_INFO:
+- print "RUN EXC ",str(exc)
++ print("RUN EXC ",str(exc))
+
+ return 0
+
+@@ -359,11 +359,11 @@ def Can_AssignDoc():
+
+ def runtest(msg, test):
+ r = test()
+- print "%-40s %s" % (msg,['no','yes'][r])
++ print("%-40s %s" % (msg,['no','yes'][r]))
+
+ def runtest_1arg(msg, test, arg):
+ r = test(arg)
+- print "%-40s %s" % (msg,['no','yes'][r])
++ print("%-40s %s" % (msg,['no','yes'][r]))
+
+ if __name__ == '__main__':
+
+@@ -372,37 +372,37 @@ if __name__ == '__main__':
+ # show banner w/version
+ try:
+ v = sys.version_info
+- print "Python %d.%d.%d-%s [%s, %s]" % (v[0],v[1],v[2],str(v[3]),
+- os.name,sys.platform)
++ print("Python %d.%d.%d-%s [%s, %s]" % (v[0],v[1],v[2],str(v[3]),
++ os.name,sys.platform))
+ except:
+ # Python 1.5 lacks sys.version_info
+- print "Python %s [%s, %s]" % (string.split(sys.version)[0],
+- os.name,sys.platform)
++ print("Python %s [%s, %s]" % (string.split(sys.version)[0],
++ os.name,sys.platform))
+
+ # Python 1.5
+- print " ** Python 1.5 features **"
++ print(" ** Python 1.5 features **")
+ runtest("Can assign to __doc__?", Can_AssignDoc)
+
+ # Python 1.6
+- print " ** Python 1.6 features **"
++ print(" ** Python 1.6 features **")
+ runtest("Have Unicode?", Have_Unicode)
+ runtest("Have string methods?", Have_StringMethods)
+
+ # Python 2.0
+- print " ** Python 2.0 features **"
++ print(" ** Python 2.0 features **" )
+ runtest("Have augmented assignment?", Have_AugmentedAssignment)
+ runtest("Have list comprehensions?", Have_ListComprehensions)
+ runtest("Have 'import module AS ...'?", Have_ImportAs)
+
+ # Python 2.1
+- print " ** Python 2.1 features **"
++ print(" ** Python 2.1 features **" )
+ runtest("Have __future__?", Have_Future)
+ runtest("Have rich comparison?", Have_RichComparison)
+ runtest("Have function attributes?", Have_FunctionAttributes)
+ runtest("Have nested scopes?", Have_NestedScopes)
+
+ # Python 2.2
+- print " ** Python 2.2 features **"
++ print(" ** Python 2.2 features **" )
+ runtest("Have True/False?", Have_TrueFalse)
+ runtest("Have 'object' type?", Have_ObjectClass)
+ runtest("Have __slots__?", Have_Slots)
+@@ -415,7 +415,7 @@ if __name__ == '__main__':
+ runtest("Unified longs/ints?", Have_UnifiedLongInts)
+
+ # Python 2.3
+- print " ** Python 2.3 features **"
++ print(" ** Python 2.3 features **" )
+ runtest("Have enumerate()?", Have_Enumerate)
+ runtest("Have basestring?", Have_Basestring)
+ runtest("Longs > maxint in range()?", Have_LongRanges)
+@@ -425,7 +425,7 @@ if __name__ == '__main__':
+ runtest_1arg("bool is a baseclass [expect 'no']?", IsLegal_BaseClass, 'bool')
+
+ # Python 2.4
+- print " ** Python 2.4 features **"
++ print(" ** Python 2.4 features **" )
+ runtest("Have builtin sets?", Have_BuiltinSets)
+ runtest("Have function/method decorators?", Have_Decorators)
+ runtest("Have multiline imports?", Have_MultilineImports)
+diff --git a/objdictgen/gnosis/trigramlib.py b/objdictgen/gnosis/trigramlib.py
+index 3127638e22a0..3dc75ef16f49 100644
+--- a/objdictgen/gnosis/trigramlib.py
++++ b/objdictgen/gnosis/trigramlib.py
+@@ -23,7 +23,7 @@ def simplify_null(text):
+ def generate_trigrams(text, simplify=simplify):
+ "Iterator on trigrams in (simplified) text"
+ text = simplify(text)
+- for i in xrange(len(text)-3):
++ for i in range(len(text)-3):
+ yield text[i:i+3]
+
+ def read_trigrams(fname):
+diff --git a/objdictgen/gnosis/util/XtoY.py b/objdictgen/gnosis/util/XtoY.py
+index 9e2816216488..fc252b5d3dd0 100644
+--- a/objdictgen/gnosis/util/XtoY.py
++++ b/objdictgen/gnosis/util/XtoY.py
+@@ -27,20 +27,20 @@ def aton(s):
+
+ if re.match(re_float, s): return float(s)
+
+- if re.match(re_long, s): return long(s)
++ if re.match(re_long, s): return int(s[:-1]) # remove 'L' postfix
+
+ if re.match(re_int, s): return int(s)
+
+ m = re.match(re_hex, s)
+ if m:
+- n = long(m.group(3),16)
++ n = int(m.group(3),16)
+ if n < sys.maxint: n = int(n)
+ if m.group(1)=='-': n = n * (-1)
+ return n
+
+ m = re.match(re_oct, s)
+ if m:
+- n = long(m.group(3),8)
++ n = int(m.group(3),8)
+ if n < sys.maxint: n = int(n)
+ if m.group(1)=='-': n = n * (-1)
+ return n
+@@ -51,28 +51,26 @@ def aton(s):
+ r, i = s.split(':')
+ return complex(float(r), float(i))
+
+- raise SecurityError, \
+- "Malicious string '%s' passed to to_number()'d" % s
++ raise SecurityError( \
++ "Malicious string '%s' passed to to_number()'d" % s)
+
+ # we use ntoa() instead of repr() to ensure we have a known output format
+ def ntoa(n):
+ "Convert a number to a string without calling repr()"
+- if isinstance(n,IntType):
+- s = "%d" % n
+- elif isinstance(n,LongType):
++ if isinstance(n,int):
+ s = "%ldL" % n
+- elif isinstance(n,FloatType):
++ elif isinstance(n,float):
+ s = "%.17g" % n
+ # ensure a '.', adding if needed (unless in scientific notation)
+ if '.' not in s and 'e' not in s:
+ s = s + '.'
+- elif isinstance(n,ComplexType):
++ elif isinstance(n,complex):
+ # these are always used as doubles, so it doesn't
+ # matter if the '.' shows up
+ s = "%.17g:%.17g" % (n.real,n.imag)
+ else:
+- raise ValueError, \
+- "Unknown numeric type: %s" % repr(n)
++ raise ValueError( \
++ "Unknown numeric type: %s" % repr(n))
+ return s
+
+ def to_number(s):
+diff --git a/objdictgen/gnosis/util/introspect.py b/objdictgen/gnosis/util/introspect.py
+index 2eef3679211e..bf7425277d17 100644
+--- a/objdictgen/gnosis/util/introspect.py
++++ b/objdictgen/gnosis/util/introspect.py
+@@ -18,12 +18,10 @@ from types import *
+ from operator import add
+ from gnosis.util.combinators import or_, not_, and_, lazy_any
+
+-containers = (ListType, TupleType, DictType)
+-simpletypes = (IntType, LongType, FloatType, ComplexType, StringType)
+-if gnosis.pyconfig.Have_Unicode():
+- simpletypes = simpletypes + (UnicodeType,)
++containers = (list, tuple, dict)
++simpletypes = (int, float, complex, str)
+ datatypes = simpletypes+containers
+-immutabletypes = simpletypes+(TupleType,)
++immutabletypes = simpletypes+(tuple,)
+
+ class undef: pass
+
+@@ -34,15 +32,13 @@ def isinstance_any(o, types):
+
+ isContainer = lambda o: isinstance_any(o, containers)
+ isSimpleType = lambda o: isinstance_any(o, simpletypes)
+-isInstance = lambda o: type(o) is InstanceType
++isInstance = lambda o: isinstance(o, object)
+ isImmutable = lambda o: isinstance_any(o, immutabletypes)
+
+-if gnosis.pyconfig.Have_ObjectClass():
+- isNewStyleInstance = lambda o: issubclass(o.__class__,object) and \
+- not type(o) in datatypes
+-else:
+- isNewStyleInstance = lambda o: 0
+-isOldStyleInstance = lambda o: isinstance(o, ClassType)
++# Python 3 only has new-style classes
++import inspect
++isNewStyleInstance = lambda o: inspect.isclass(o)
++isOldStyleInstance = lambda o: False
+ isClass = or_(isOldStyleInstance, isNewStyleInstance)
+
+ if gnosis.pyconfig.Have_ObjectClass():
+@@ -95,7 +91,7 @@ def attr_dict(o, fillslots=0):
+ dct[attr] = getattr(o,attr)
+ return dct
+ else:
+- raise TypeError, "Object has neither __dict__ nor __slots__"
++ raise TypeError("Object has neither __dict__ nor __slots__")
+
+ attr_keys = lambda o: attr_dict(o).keys()
+ attr_vals = lambda o: attr_dict(o).values()
+@@ -129,10 +125,10 @@ def setCoreData(o, data, force=0):
+ new = o.__class__(data)
+ attr_update(new, attr_dict(o)) # __slots__ safe attr_dict()
+ o = new
+- elif isinstance(o, DictType):
++ elif isinstance(o, dict):
+ o.clear()
+ o.update(data)
+- elif isinstance(o, ListType):
++ elif isinstance(o, list):
+ o[:] = data
+ return o
+
+@@ -141,7 +137,7 @@ def getCoreData(o):
+ if hasCoreData(o):
+ return isinstance_any(o, datatypes)(o)
+ else:
+- raise TypeError, "Unhandled type in getCoreData for: ", o
++ raise TypeError("Unhandled type in getCoreData for: ", o)
+
+ def instance_noinit(C):
+ """Create an instance of class C without calling __init__
+@@ -166,7 +162,7 @@ def instance_noinit(C):
+ elif isNewStyleInstance(C):
+ return C.__new__(C)
+ else:
+- raise TypeError, "You must specify a class to create instance of."
++ raise TypeError("You must specify a class to create instance of.")
+
+ if __name__ == '__main__':
+ "We could use some could self-tests (see test/ subdir though)"
+diff --git a/objdictgen/gnosis/util/test/__init__.py b/objdictgen/gnosis/util/test/__init__.py
+new file mode 100644
+index 000000000000..e69de29bb2d1
+diff --git a/objdictgen/gnosis/util/test/funcs.py b/objdictgen/gnosis/util/test/funcs.py
+index 5d39d80bc3d4..28647fa14da0 100644
+--- a/objdictgen/gnosis/util/test/funcs.py
++++ b/objdictgen/gnosis/util/test/funcs.py
+@@ -1,4 +1,4 @@
+ import os, sys, string
+
+ def pyver():
+- return string.split(sys.version)[0]
++ return sys.version.split()[0]
+diff --git a/objdictgen/gnosis/util/test/test_data2attr.py b/objdictgen/gnosis/util/test/test_data2attr.py
+index fb5b9cd5cff4..24281a5ed761 100644
+--- a/objdictgen/gnosis/util/test/test_data2attr.py
++++ b/objdictgen/gnosis/util/test/test_data2attr.py
+@@ -1,5 +1,5 @@
+ from sys import version
+-from gnosis.util.introspect import data2attr, attr2data
++from ..introspect import data2attr, attr2data
+
+ if version >= '2.2':
+ class NewList(list): pass
+@@ -14,20 +14,20 @@ if version >= '2.2':
+ nd.attr = 'spam'
+
+ nl = data2attr(nl)
+- print nl, getattr(nl, '__coredata__', 'No __coredata__')
++ print(nl, getattr(nl, '__coredata__', 'No __coredata__'))
+ nl = attr2data(nl)
+- print nl, getattr(nl, '__coredata__', 'No __coredata__')
++ print(nl, getattr(nl, '__coredata__', 'No __coredata__'))
+
+ nt = data2attr(nt)
+- print nt, getattr(nt, '__coredata__', 'No __coredata__')
++ print(nt, getattr(nt, '__coredata__', 'No __coredata__'))
+ nt = attr2data(nt)
+- print nt, getattr(nt, '__coreData__', 'No __coreData__')
++ print(nt, getattr(nt, '__coreData__', 'No __coreData__'))
+
+ nd = data2attr(nd)
+- print nd, getattr(nd, '__coredata__', 'No __coredata__')
++ print(nd, getattr(nd, '__coredata__', 'No __coredata__'))
+ nd = attr2data(nd)
+- print nd, getattr(nd, '__coredata__', 'No __coredata__')
++ print(nd, getattr(nd, '__coredata__', 'No __coredata__'))
+ else:
+- print "data2attr() and attr2data() only work on 2.2+ new-style objects"
++ print("data2attr() and attr2data() only work on 2.2+ new-style objects")
+
+
+diff --git a/objdictgen/gnosis/util/test/test_introspect.py b/objdictgen/gnosis/util/test/test_introspect.py
+index 57e78ba2d88b..42aa10037570 100644
+--- a/objdictgen/gnosis/util/test/test_introspect.py
++++ b/objdictgen/gnosis/util/test/test_introspect.py
+@@ -1,7 +1,7 @@
+
+-import gnosis.util.introspect as insp
++from .. import introspect as insp
+ import sys
+-from funcs import pyver
++from .funcs import pyver
+
+ def test_list( ovlist, tname, test ):
+
+@@ -9,9 +9,9 @@ def test_list( ovlist, tname, test ):
+ sys.stdout.write('OBJ %s ' % str(o))
+
+ if (v and test(o)) or (not v and not test(o)):
+- print "%s = %d .. OK" % (tname,v)
++ print("%s = %d .. OK" % (tname,v))
+ else:
+- raise "ERROR - Wrong answer to test."
++ raise Exception("ERROR - Wrong answer to test.")
+
+ # isContainer
+ ol = [ ([], 1),
+@@ -40,30 +40,35 @@ ol = [ (foo1(), 1),
+ (foo2(), 1),
+ (foo3(), 0) ]
+
+-test_list( ol, 'isInstance', insp.isInstance)
++if pyver()[0] <= "2":
++ # in python >= 3, all variables are instances of object
++ test_list( ol, 'isInstance', insp.isInstance)
+
+ # isInstanceLike
+ ol = [ (foo1(), 1),
+ (foo2(), 1),
+ (foo3(), 0)]
+
+-test_list( ol, 'isInstanceLike', insp.isInstanceLike)
++if pyver()[0] <= "2":
++ # in python >= 3, all variables are instances of object
++ test_list( ol, 'isInstanceLike', insp.isInstanceLike)
+
+-from types import *
++if pyver()[0] <= "2":
++ from types import *
+
+-def is_oldclass(o):
+- if isinstance(o,ClassType):
+- return 1
+- else:
+- return 0
++ def is_oldclass(o):
++ if isinstance(o,ClassType):
++ return 1
++ else:
++ return 0
+
+-ol = [ (foo1,1),
+- (foo2,1),
+- (foo3,0)]
++ ol = [ (foo1,1),
++ (foo2,1),
++ (foo3,0)]
+
+-test_list(ol,'is_oldclass',is_oldclass)
++ test_list(ol,'is_oldclass',is_oldclass)
+
+-if pyver() >= '2.2':
++if pyver()[0] <= "2" and pyver() >= '2.2':
+ # isNewStyleClass
+ ol = [ (foo1,0),
+ (foo2,0),
+diff --git a/objdictgen/gnosis/util/test/test_noinit.py b/objdictgen/gnosis/util/test/test_noinit.py
+index a057133f2c0d..e027ce2390c6 100644
+--- a/objdictgen/gnosis/util/test/test_noinit.py
++++ b/objdictgen/gnosis/util/test/test_noinit.py
+@@ -1,28 +1,31 @@
+-from gnosis.util.introspect import instance_noinit
++from ..introspect import instance_noinit
++from .funcs import pyver
+
+-class Old_noinit: pass
++if pyver()[0] <= "2":
++ class Old_noinit: pass
+
+-class Old_init:
+- def __init__(self): print "Init in Old"
++ class Old_init:
++ def __init__(self): print("Init in Old")
+
+-class New_slots_and_init(int):
+- __slots__ = ('this','that')
+- def __init__(self): print "Init in New w/ slots"
++ class New_slots_and_init(int):
++ __slots__ = ('this','that')
++ def __init__(self): print("Init in New w/ slots")
+
+-class New_init_no_slots(int):
+- def __init__(self): print "Init in New w/o slots"
++ class New_init_no_slots(int):
++ def __init__(self): print("Init in New w/o slots")
+
+-class New_slots_no_init(int):
+- __slots__ = ('this','that')
++ class New_slots_no_init(int):
++ __slots__ = ('this','that')
+
+-class New_no_slots_no_init(int):
+- pass
++ class New_no_slots_no_init(int):
++ pass
+
+-print "----- This should be the only line -----"
+-instance_noinit(Old_noinit)
+-instance_noinit(Old_init)
+-instance_noinit(New_slots_and_init)
+-instance_noinit(New_slots_no_init)
+-instance_noinit(New_init_no_slots)
+-instance_noinit(New_no_slots_no_init)
+
++ instance_noinit(Old_noinit)
++ instance_noinit(Old_init)
++ instance_noinit(New_slots_and_init)
++ instance_noinit(New_slots_no_init)
++ instance_noinit(New_init_no_slots)
++ instance_noinit(New_no_slots_no_init)
++
++print("----- This should be the only line -----")
+diff --git a/objdictgen/gnosis/util/test/test_variants_noinit.py b/objdictgen/gnosis/util/test/test_variants_noinit.py
+index d2ea9a4fc46f..758a89d13660 100644
+--- a/objdictgen/gnosis/util/test/test_variants_noinit.py
++++ b/objdictgen/gnosis/util/test/test_variants_noinit.py
+@@ -1,25 +1,46 @@
+-from gnosis.util.introspect import hasSlots, hasInit
++from ..introspect import hasSlots, hasInit
+ from types import *
++from .funcs import pyver
+
+ class Old_noinit: pass
+
+ class Old_init:
+- def __init__(self): print "Init in Old"
++ def __init__(self): print("Init in Old")
+
+-class New_slots_and_init(int):
+- __slots__ = ('this','that')
+- def __init__(self): print "Init in New w/ slots"
++if pyver()[0] <= "2":
++ class New_slots_and_init(int):
++ __slots__ = ('this','that')
++ def __init__(self): print("Init in New w/ slots")
+
+-class New_init_no_slots(int):
+- def __init__(self): print "Init in New w/o slots"
++ class New_init_no_slots(int):
++ def __init__(self): print("Init in New w/o slots")
+
+-class New_slots_no_init(int):
+- __slots__ = ('this','that')
++ class New_slots_no_init(int):
++ __slots__ = ('this','that')
+
+-class New_no_slots_no_init(int):
+- pass
++ class New_no_slots_no_init(int):
++ pass
++
++else:
++ # nonempty __slots__ not supported for subtype of 'int' in Python 3
++ class New_slots_and_init:
++ __slots__ = ('this','that')
++ def __init__(self): print("Init in New w/ slots")
++
++ class New_init_no_slots:
++ def __init__(self): print("Init in New w/o slots")
++
++ class New_slots_no_init:
++ __slots__ = ('this','that')
++
++ class New_no_slots_no_init:
++ pass
++
++if pyver()[0] <= "2":
++ from UserDict import UserDict
++else:
++ from collections import UserDict
+
+-from UserDict import UserDict
+ class MyDict(UserDict):
+ pass
+
+@@ -43,7 +64,7 @@ def one():
+ obj.__class__ = C
+ return obj
+
+- print "----- This should be the only line -----"
++ print("----- This should be the only line -----")
+ instance_noinit(MyDict)
+ instance_noinit(Old_noinit)
+ instance_noinit(Old_init)
+@@ -75,7 +96,7 @@ def two():
+ obj = C()
+ return obj
+
+- print "----- Same test, fpm version of instance_noinit() -----"
++ print("----- Same test, fpm version of instance_noinit() -----")
+ instance_noinit(MyDict)
+ instance_noinit(Old_noinit)
+ instance_noinit(Old_init)
+@@ -90,7 +111,7 @@ def three():
+ if hasattr(C,'__init__') and isinstance(C.__init__,MethodType):
+ # the class defined init - remove it temporarily
+ _init = C.__init__
+- print _init
++ print(_init)
+ del C.__init__
+ obj = C()
+ C.__init__ = _init
+@@ -99,7 +120,7 @@ def three():
+ obj = C()
+ return obj
+
+- print "----- Same test, dqm version of instance_noinit() -----"
++ print("----- Same test, dqm version of instance_noinit() -----")
+ instance_noinit(MyDict)
+ instance_noinit(Old_noinit)
+ instance_noinit(Old_init)
+diff --git a/objdictgen/gnosis/util/xml2sql.py b/objdictgen/gnosis/util/xml2sql.py
+index 818661321db0..751985d88f23 100644
+--- a/objdictgen/gnosis/util/xml2sql.py
++++ b/objdictgen/gnosis/util/xml2sql.py
+@@ -77,7 +77,7 @@ def walkNodes(py_obj, parent_info=('',''), seq=0):
+ member = getattr(py_obj,colname)
+ if type(member) == InstanceType:
+ walkNodes(member, self_info)
+- elif type(member) == ListType:
++ elif type(member) == list:
+ for memitem in member:
+ if isinstance(memitem,_XO_):
+ seq += 1
+diff --git a/objdictgen/gnosis/xml/indexer.py b/objdictgen/gnosis/xml/indexer.py
+index 6e7f6941b506..45638b6d04ff 100644
+--- a/objdictgen/gnosis/xml/indexer.py
++++ b/objdictgen/gnosis/xml/indexer.py
+@@ -87,17 +87,11 @@ class XML_Indexer(indexer.PreferredIndexer, indexer.TextSplitter):
+ if type(member) is InstanceType:
+ xpath = xpath_suffix+'/'+membname
+ self.recurse_nodes(member, xpath.encode('UTF-8'))
+- elif type(member) is ListType:
++ elif type(member) is list:
+ for i in range(len(member)):
+ xpath = xpath_suffix+'/'+membname+'['+str(i+1)+']'
+ self.recurse_nodes(member[i], xpath.encode('UTF-8'))
+- elif type(member) is StringType:
+- if membname != 'PCDATA':
+- xpath = xpath_suffix+'/@'+membname
+- self.add_nodetext(member, xpath.encode('UTF-8'))
+- else:
+- self.add_nodetext(member, xpath_suffix.encode('UTF-8'))
+- elif type(member) is UnicodeType:
++ elif type(member) is str:
+ if membname != 'PCDATA':
+ xpath = xpath_suffix+'/@'+membname
+ self.add_nodetext(member.encode('UTF-8'),
+@@ -122,11 +116,11 @@ class XML_Indexer(indexer.PreferredIndexer, indexer.TextSplitter):
+ self.fileids[node_index] = node_id
+
+ for word in words:
+- if self.words.has_key(word):
++ if word in self.words.keys():
+ entry = self.words[word]
+ else:
+ entry = {}
+- if entry.has_key(node_index):
++ if node_index in entry.keys():
+ entry[node_index] = entry[node_index]+1
+ else:
+ entry[node_index] = 1
+diff --git a/objdictgen/gnosis/xml/objectify/_objectify.py b/objdictgen/gnosis/xml/objectify/_objectify.py
+index 27da2e451417..476dd9cd6245 100644
+--- a/objdictgen/gnosis/xml/objectify/_objectify.py
++++ b/objdictgen/gnosis/xml/objectify/_objectify.py
+@@ -43,10 +43,10 @@ def content(o):
+ return o._seq or []
+ def children(o):
+ "The child nodes (not PCDATA) of o"
+- return [x for x in content(o) if type(x) not in StringTypes]
++ return [x for x in content(o) if type(x) is not str]
+ def text(o):
+ "List of textual children"
+- return [x for x in content(o) if type(x) in StringTypes]
++ return [x for x in content(o) if type(x) is not str]
+ def dumps(o):
+ "The PCDATA in o (preserves whitespace)"
+ return "".join(text(o))
+@@ -59,7 +59,7 @@ def tagname(o):
+ def attributes(o):
+ "List of (XML) attributes of o"
+ return [(k,v) for k,v in o.__dict__.items()
+- if k!='PCDATA' and type(v) in StringTypes]
++ if k!='PCDATA' and type(v) is not str]
+
+ #-- Base class for objectified XML nodes
+ class _XO_:
+@@ -95,7 +95,7 @@ def _makeAttrDict(attr):
+ if not attr:
+ return {}
+ try:
+- attr.has_key('dummy')
++ 'dummy' in attr.keys()
+ except AttributeError:
+ # assume a W3C NamedNodeMap
+ attr_dict = {}
+@@ -116,7 +116,7 @@ class XML_Objectify:
+ or hasattr(xml_src,'childNodes')):
+ self._dom = xml_src
+ self._fh = None
+- elif type(xml_src) in (StringType, UnicodeType):
++ elif type(xml_src) is str:
+ if xml_src[0]=='<': # looks like XML
+ from cStringIO import StringIO
+ self._fh = StringIO(xml_src)
+@@ -210,7 +210,7 @@ class ExpatFactory:
+ # Does our current object have a child of this type already?
+ if hasattr(self._current, pyname):
+ # Convert a single child object into a list of children
+- if type(getattr(self._current, pyname)) is not ListType:
++ if type(getattr(self._current, pyname)) is not list:
+ setattr(self._current, pyname, [getattr(self._current, pyname)])
+ # Add the new subtag to the list of children
+ getattr(self._current, pyname).append(py_obj)
+@@ -290,7 +290,7 @@ def pyobj_from_dom(dom_node):
+ # does a py_obj attribute corresponding to the subtag already exist?
+ elif hasattr(py_obj, node_name):
+ # convert a single child object into a list of children
+- if type(getattr(py_obj, node_name)) is not ListType:
++ if type(getattr(py_obj, node_name)) is not list:
+ setattr(py_obj, node_name, [getattr(py_obj, node_name)])
+ # add the new subtag to the list of children
+ getattr(py_obj, node_name).append(pyobj_from_dom(node))
+diff --git a/objdictgen/gnosis/xml/objectify/utils.py b/objdictgen/gnosis/xml/objectify/utils.py
+index 781a189d2f04..431d9a0220da 100644
+--- a/objdictgen/gnosis/xml/objectify/utils.py
++++ b/objdictgen/gnosis/xml/objectify/utils.py
+@@ -39,7 +39,7 @@ def write_xml(o, out=stdout):
+ out.write(' %s=%s' % attr)
+ out.write('>')
+ for node in content(o):
+- if type(node) in StringTypes:
++ if type(node) is str:
+ out.write(node)
+ else:
+ write_xml(node, out=out)
+@@ -119,7 +119,7 @@ def pyobj_printer(py_obj, level=0):
+ if type(member) == InstanceType:
+ descript += '\n'+(' '*level)+'{'+membname+'}\n'
+ descript += pyobj_printer(member, level+3)
+- elif type(member) == ListType:
++ elif type(member) == list:
+ for i in range(len(member)):
+ descript += '\n'+(' '*level)+'['+membname+'] #'+str(i+1)
+ descript += (' '*level)+'\n'+pyobj_printer(member[i],level+3)
+diff --git a/objdictgen/gnosis/xml/pickle/__init__.py b/objdictgen/gnosis/xml/pickle/__init__.py
+index 34f90e50acba..4031142776c6 100644
+--- a/objdictgen/gnosis/xml/pickle/__init__.py
++++ b/objdictgen/gnosis/xml/pickle/__init__.py
+@@ -4,7 +4,7 @@ Please see the information at gnosis.xml.pickle.doc for
+ explanation of usage, design, license, and other details
+ """
+ from gnosis.xml.pickle._pickle import \
+- XML_Pickler, XMLPicklingError, XMLUnpicklingError, \
++ XML_Pickler, \
+ dump, dumps, load, loads
+
+ from gnosis.xml.pickle.util import \
+@@ -13,3 +13,5 @@ from gnosis.xml.pickle.util import \
+ setParser, setVerbose, enumParsers
+
+ from gnosis.xml.pickle.ext import *
++
++from gnosis.xml.pickle.exception import XMLPicklingError, XMLUnpicklingError
+diff --git a/objdictgen/gnosis/xml/pickle/_pickle.py b/objdictgen/gnosis/xml/pickle/_pickle.py
+index a5275e4830f6..5e1fa1c609f5 100644
+--- a/objdictgen/gnosis/xml/pickle/_pickle.py
++++ b/objdictgen/gnosis/xml/pickle/_pickle.py
+@@ -29,24 +29,17 @@ import gnosis.pyconfig
+
+ from types import *
+
+-try: # Get a usable StringIO
+- from cStringIO import StringIO
+-except:
+- from StringIO import StringIO
++from io import StringIO
+
+ # default settings
+-setInBody(IntType,0)
+-setInBody(FloatType,0)
+-setInBody(LongType,0)
+-setInBody(ComplexType,0)
+-setInBody(StringType,0)
++setInBody(int,0)
++setInBody(float,0)
++setInBody(complex,0)
+ # our unicode vs. "regular string" scheme relies on unicode
+ # strings only being in the body, so this is hardcoded.
+-setInBody(UnicodeType,1)
++setInBody(str,1)
+
+-# Define exceptions and flags
+-XMLPicklingError = "gnosis.xml.pickle.XMLPicklingError"
+-XMLUnpicklingError = "gnosis.xml.pickle.XMLUnpicklingError"
++from gnosis.xml.pickle.exception import XMLPicklingError, XMLUnpicklingError
+
+ # Maintain list of object identities for multiple and cyclical references
+ # (also to keep temporary objects alive)
+@@ -79,7 +72,7 @@ class StreamWriter:
+ self.iohandle = gzip.GzipFile(None,'wb',9,self.iohandle)
+
+ def append(self,item):
+- if type(item) in (ListType, TupleType): item = ''.join(item)
++ if type(item) in (list, tuple): item = ''.join(item)
+ self.iohandle.write(item)
+
+ def getvalue(self):
+@@ -102,7 +95,7 @@ def StreamReader( stream ):
+ appropriate for reading the stream."""
+
+ # turn strings into stream
+- if type(stream) in [StringType,UnicodeType]:
++ if type(stream) is str:
+ stream = StringIO(stream)
+
+ # determine if we have a gzipped stream by checking magic
+@@ -128,8 +121,8 @@ class XML_Pickler:
+ if isInstanceLike(py_obj):
+ self.to_pickle = py_obj
+ else:
+- raise XMLPicklingError, \
+- "XML_Pickler must be initialized with Instance (or None)"
++ raise XMLPicklingError( \
++ "XML_Pickler must be initialized with Instance (or None)")
+
+ def dump(self, iohandle, obj=None, binary=0, deepcopy=None):
+ "Write the XML representation of obj to iohandle."
+@@ -151,7 +144,8 @@ class XML_Pickler:
+ if parser:
+ return parser(fh, paranoia=paranoia)
+ else:
+- raise XMLUnpicklingError, "Unknown parser %s" % getParser()
++ raise XMLUnpicklingError("Unknown parser %s. Available parsers: %r" %
++ (getParser(), enumParsers()))
+
+ def dumps(self, obj=None, binary=0, deepcopy=None, iohandle=None):
+ "Create the XML representation as a string."
+@@ -159,15 +153,15 @@ class XML_Pickler:
+ if deepcopy is None: deepcopy = getDeepCopy()
+
+ # write to a file or string, either compressed or not
+- list = StreamWriter(iohandle,binary)
++ list_ = StreamWriter(iohandle,binary)
+
+ # here are our three forms:
+ if obj is not None: # XML_Pickler().dumps(obj)
+- return _pickle_toplevel_obj(list,obj, deepcopy)
++ return _pickle_toplevel_obj(list_,obj, deepcopy)
+ elif hasattr(self,'to_pickle'): # XML_Pickler(obj).dumps()
+- return _pickle_toplevel_obj(list,self.to_pickle, deepcopy)
++ return _pickle_toplevel_obj(list_,self.to_pickle, deepcopy)
+ else: # myXML_Pickler().dumps()
+- return _pickle_toplevel_obj(list,self, deepcopy)
++ return _pickle_toplevel_obj(list_,self, deepcopy)
+
+ def loads(self, xml_str, paranoia=None):
+ "Load a pickled object from the given XML string."
+@@ -221,8 +215,8 @@ def _pickle_toplevel_obj(xml_list, py_obj, deepcopy):
+ # sanity check until/if we eventually support these
+ # at the toplevel
+ if in_body or extra:
+- raise XMLPicklingError, \
+- "Sorry, mutators can't set in_body and/or extra at the toplevel."
++ raise XMLPicklingError( \
++ "Sorry, mutators can't set in_body and/or extra at the toplevel.")
+ famtype = famtype + 'family="obj" type="%s" ' % mtype
+
+ module = _module(py_obj)
+@@ -250,10 +244,10 @@ def _pickle_toplevel_obj(xml_list, py_obj, deepcopy):
+ # know that (or not care)
+ return xml_list.getvalue()
+
+-def pickle_instance(obj, list, level=0, deepcopy=0):
++def pickle_instance(obj, list_, level=0, deepcopy=0):
+ """Pickle the given object into a <PyObject>
+
+- Add XML tags to list. Level is indentation (for aesthetic reasons)
++ Add XML tags to list_. Level is indentation (for aesthetic reasons)
+ """
+ # concept: to pickle an object, we pickle two things:
+ #
+@@ -278,8 +272,8 @@ def pickle_instance(obj, list, level=0, deepcopy=0):
+ try:
+ len(args) # must be a sequence, from pickle.py
+ except:
+- raise XMLPicklingError, \
+- "__getinitargs__() must return a sequence"
++ raise XMLPicklingError( \
++ "__getinitargs__() must return a sequence")
+ except:
+ args = None
+
+@@ -293,22 +287,22 @@ def pickle_instance(obj, list, level=0, deepcopy=0):
+ # save initargs, if we have them
+ if args is not None:
+ # put them in an <attr name="__getinitargs__" ...> container
+- list.append(_attr_tag('__getinitargs__', args, level, deepcopy))
++ list_.append(_attr_tag('__getinitargs__', args, level, deepcopy))
+
+ # decide how to save the "stuff", depending on whether we need
+ # to later grab it back as a single object
+ if not hasattr(obj,'__setstate__'):
+- if type(stuff) is DictType:
++ if type(stuff) is dict:
+ # don't need it as a single object - save keys/vals as
+ # first-level attributes
+ for key,val in stuff.items():
+- list.append(_attr_tag(key, val, level, deepcopy))
++ list_.append(_attr_tag(key, val, level, deepcopy))
+ else:
+- raise XMLPicklingError, \
+- "__getstate__ must return a DictType here"
++ raise XMLPicklingError( \
++ "__getstate__ must return a dict here")
+ else:
+ # else, encapsulate the "stuff" in an <attr name="__getstate__" ...>
+- list.append(_attr_tag('__getstate__', stuff, level, deepcopy))
++ list_.append(_attr_tag('__getstate__', stuff, level, deepcopy))
+
+ #--- Functions to create XML output tags ---
+ def _attr_tag(name, thing, level=0, deepcopy=0):
+@@ -395,8 +389,8 @@ def _family_type(family,typename,mtype,mextra):
+
+ # sanity in case Python changes ...
+ if gnosis.pyconfig.Have_BoolClass() and gnosis.pyconfig.IsLegal_BaseClass('bool'):
+- raise XMLPicklingError, \
+- "Assumption broken - can now use bool as baseclass!"
++ raise XMLPicklingError( \
++ "Assumption broken - can now use bool as baseclass!")
+
+ Have_BoolClass = gnosis.pyconfig.Have_BoolClass()
+
+@@ -459,7 +453,7 @@ def _tag_completer(start_tag, orig_thing, close_tag, level, deepcopy):
+ pickle_instance(thing, tag_body, level+1, deepcopy)
+ else:
+ close_tag = ''
+- elif isinstance_any(thing, (IntType, LongType, FloatType, ComplexType)):
++ elif isinstance_any(thing, (int, float, complex)):
+ #thing_str = repr(thing)
+ thing_str = ntoa(thing)
+
+@@ -476,13 +470,13 @@ def _tag_completer(start_tag, orig_thing, close_tag, level, deepcopy):
+ start_tag = start_tag + '%s value="%s" />\n' % \
+ (_family_type('atom','numeric',mtag,mextra),thing_str)
+ close_tag = ''
+- elif isinstance_any(thing, (StringType,UnicodeType)):
++ elif isinstance_any(thing, str):
+ #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ # special check for now - this will be fixed in the next major
+ # gnosis release, so I don't care that the code is inline & gross
+ # for now
+ #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+- if isinstance(thing,UnicodeType):
++ if isinstance(thing,str):
+ # can't pickle unicode containing the special "escape" sequence
+ # we use for putting strings in the XML body (they'll be unpickled
+ # as strings, not unicode, if we do!)
+@@ -493,7 +487,7 @@ def _tag_completer(start_tag, orig_thing, close_tag, level, deepcopy):
+ if not is_legal_xml(thing):
+ raise Exception("Unpickleable Unicode value. To be fixed in next major Gnosis release.")
+
+- if isinstance(thing,StringType) and getInBody(StringType):
++ if isinstance(thing,str) and getInBody(str):
+ # technically, this will crash safe_content(), but I prefer to
+ # have the test here for clarity
+ try:
+@@ -525,7 +519,7 @@ def _tag_completer(start_tag, orig_thing, close_tag, level, deepcopy):
+ # before pickling subitems, in case it contains self-references
+ # (we CANNOT just move the visited{} update to the top of this
+ # function, since that would screw up every _family_type() call)
+- elif type(thing) is TupleType:
++ elif type(thing) is tuple:
+ start_tag, do_copy = \
+ _tag_compound(start_tag,_family_type('seq','tuple',mtag,mextra),
+ orig_thing,deepcopy)
+@@ -534,7 +528,7 @@ def _tag_completer(start_tag, orig_thing, close_tag, level, deepcopy):
+ tag_body.append(_item_tag(item, level+1, deepcopy))
+ else:
+ close_tag = ''
+- elif type(thing) is ListType:
++ elif type(thing) is list:
+ start_tag, do_copy = \
+ _tag_compound(start_tag,_family_type('seq','list',mtag,mextra),
+ orig_thing,deepcopy)
+@@ -545,7 +539,7 @@ def _tag_completer(start_tag, orig_thing, close_tag, level, deepcopy):
+ tag_body.append(_item_tag(item, level+1, deepcopy))
+ else:
+ close_tag = ''
+- elif type(thing) in [DictType]:
++ elif type(thing) in [dict]:
+ start_tag, do_copy = \
+ _tag_compound(start_tag,_family_type('map','dict',mtag,mextra),
+ orig_thing,deepcopy)
+@@ -583,7 +577,7 @@ def _tag_completer(start_tag, orig_thing, close_tag, level, deepcopy):
+ thing)
+ close_tag = close_tag.lstrip()
+ except:
+- raise XMLPicklingError, "non-handled type %s" % type(thing)
++ raise XMLPicklingError("non-handled type %s" % type(thing))
+
+ # need to keep a ref to the object for two reasons -
+ # 1. we can ref it later instead of copying it into the XML stream
+diff --git a/objdictgen/gnosis/xml/pickle/doc/HOWTO.extensions b/objdictgen/gnosis/xml/pickle/doc/HOWTO.extensions
+index e0bf7a253c48..13c320aafa21 100644
+--- a/objdictgen/gnosis/xml/pickle/doc/HOWTO.extensions
++++ b/objdictgen/gnosis/xml/pickle/doc/HOWTO.extensions
+@@ -51,11 +51,11 @@ integers into strings:
+
+ Now, to add silly_mutator to xml_pickle, you do:
+
+- m = silly_mutator( IntType, "silly_string", in_body=1 )
++ m = silly_mutator( int, "silly_string", in_body=1 )
+ mutate.add_mutator( m )
+
+ Explanation:
+- The parameter "IntType" says that we want to catch integers.
++ The parameter "int" says that we want to catch integers.
+ "silly_string" will be the typename in the XML stream.
+ "in_body=1" tells xml_pickle to place the value string in the body
+ of the tag.
+@@ -79,7 +79,7 @@ Mutator can define two additional functions:
+ # return 1 if we can unmutate mobj, 0 if not
+
+ By default, a Mutator will be asked to mutate/unmutate all objects of
+-the type it registered ("IntType", in our silly example). You would
++the type it registered ("int", in our silly example). You would
+ only need to override wants_obj/wants_mutated to provide specialized
+ sub-type handling (based on content, for example). test_mutators.py
+ shows examples of how to do this.
+diff --git a/objdictgen/gnosis/xml/pickle/exception.py b/objdictgen/gnosis/xml/pickle/exception.py
+new file mode 100644
+index 000000000000..a19e257bd8d8
+--- /dev/null
++++ b/objdictgen/gnosis/xml/pickle/exception.py
+@@ -0,0 +1,2 @@
++class XMLPicklingError(Exception): pass
++class XMLUnpicklingError(Exception): pass
+diff --git a/objdictgen/gnosis/xml/pickle/ext/__init__.py b/objdictgen/gnosis/xml/pickle/ext/__init__.py
+index df60171f5229..3833065f7750 100644
+--- a/objdictgen/gnosis/xml/pickle/ext/__init__.py
++++ b/objdictgen/gnosis/xml/pickle/ext/__init__.py
+@@ -6,7 +6,7 @@ __author__ = ["Frank McIngvale (frankm@hiwaay.net)",
+ "David Mertz (mertz@gnosis.cx)",
+ ]
+
+-from _mutate import \
++from ._mutate import \
+ can_mutate,mutate,can_unmutate,unmutate,\
+ add_mutator,remove_mutator,XMLP_Mutator, XMLP_Mutated, \
+ get_unmutator, try_mutate
+diff --git a/objdictgen/gnosis/xml/pickle/ext/_mutate.py b/objdictgen/gnosis/xml/pickle/ext/_mutate.py
+index aa8da4f87d62..43481a8c5331 100644
+--- a/objdictgen/gnosis/xml/pickle/ext/_mutate.py
++++ b/objdictgen/gnosis/xml/pickle/ext/_mutate.py
+@@ -3,8 +3,7 @@ from types import *
+ from gnosis.util.introspect import isInstanceLike, hasCoreData
+ import gnosis.pyconfig
+
+-XMLPicklingError = "gnosis.xml.pickle.XMLPicklingError"
+-XMLUnpicklingError = "gnosis.xml.pickle.XMLUnpicklingError"
++from gnosis.xml.pickle.exception import XMLPicklingError, XMLUnpicklingError
+
+ # hooks for adding mutators
+ # each dict entry is a list of chained mutators
+@@ -25,8 +24,8 @@ _has_coredata_cache = {}
+
+ # sanity in case Python changes ...
+ if gnosis.pyconfig.Have_BoolClass() and gnosis.pyconfig.IsLegal_BaseClass('bool'):
+- raise XMLPicklingError, \
+- "Assumption broken - can now use bool as baseclass!"
++ raise XMLPicklingError( \
++ "Assumption broken - can now use bool as baseclass!")
+
+ Have_BoolClass = gnosis.pyconfig.Have_BoolClass()
+
+@@ -54,7 +53,7 @@ def get_mutator(obj):
+ if not hasattr(obj,'__class__'):
+ return None
+
+- if _has_coredata_cache.has_key(obj.__class__):
++ if obj.__class__ in _has_coredata_cache.keys():
+ return _has_coredata_cache[obj.__class__]
+
+ if hasCoreData(obj):
+@@ -76,8 +75,8 @@ def mutate(obj):
+ tobj = mutator.mutate(obj)
+
+ if not isinstance(tobj,XMLP_Mutated):
+- raise XMLPicklingError, \
+- "Bad type returned from mutator %s" % mutator
++ raise XMLPicklingError( \
++ "Bad type returned from mutator %s" % mutator)
+
+ return (mutator.tag,tobj.obj,mutator.in_body,tobj.extra)
+
+@@ -96,8 +95,8 @@ def try_mutate(obj,alt_tag,alt_in_body,alt_extra):
+ tobj = mutator.mutate(obj)
+
+ if not isinstance(tobj,XMLP_Mutated):
+- raise XMLPicklingError, \
+- "Bad type returned from mutator %s" % mutator
++ raise XMLPicklingError( \
++ "Bad type returned from mutator %s" % mutator)
+
+ return (mutator.tag,tobj.obj,mutator.in_body,tobj.extra)
+
+diff --git a/objdictgen/gnosis/xml/pickle/ext/_mutators.py b/objdictgen/gnosis/xml/pickle/ext/_mutators.py
+index 142f611ea7b4..645dc4e64eed 100644
+--- a/objdictgen/gnosis/xml/pickle/ext/_mutators.py
++++ b/objdictgen/gnosis/xml/pickle/ext/_mutators.py
+@@ -1,5 +1,5 @@
+-from _mutate import XMLP_Mutator, XMLP_Mutated
+-import _mutate
++from gnosis.xml.pickle.ext._mutate import XMLP_Mutator, XMLP_Mutated
++import gnosis.xml.pickle.ext._mutate as _mutate
+ import sys, string
+ from types import *
+ from gnosis.util.introspect import isInstanceLike, attr_update, \
+@@ -176,16 +176,16 @@ def olddata_to_newdata(data,extra,paranoia):
+ (module,klass) = extra.split()
+ o = obj_from_name(klass,module,paranoia)
+
+- #if isinstance(o,ComplexType) and \
+- # type(data) in [StringType,UnicodeType]:
++ #if isinstance(o,complex) and \
++ # type(data) is str:
+ # # yuck ... have to strip () from complex data before
+ # # passing to __init__ (ran into this also in one of the
+ # # parsers ... maybe the () shouldn't be in the XML at all?)
+ # if data[0] == '(' and data[-1] == ')':
+ # data = data[1:-1]
+
+- if isinstance_any(o,(IntType,FloatType,ComplexType,LongType)) and \
+- type(data) in [StringType,UnicodeType]:
++ if isinstance_any(o,(int,float,complex)) and \
++ type(data) is str:
+ data = aton(data)
+
+ o = setCoreData(o,data)
+@@ -208,7 +208,7 @@ class mutate_bltin_instances(XMLP_Mutator):
+
+ def mutate(self,obj):
+
+- if isinstance(obj,UnicodeType):
++ if isinstance(obj,str):
+ # unicode strings are required to be placed in the body
+ # (by our encoding scheme)
+ self.in_body = 1
+diff --git a/objdictgen/gnosis/xml/pickle/parsers/_dom.py b/objdictgen/gnosis/xml/pickle/parsers/_dom.py
+index 0703331b8e48..8582f5c8f1a7 100644
+--- a/objdictgen/gnosis/xml/pickle/parsers/_dom.py
++++ b/objdictgen/gnosis/xml/pickle/parsers/_dom.py
+@@ -17,8 +17,7 @@ except ImportError:
+ array_type = 'array'
+
+ # Define exceptions and flags
+-XMLPicklingError = "gnosis.xml.pickle.XMLPicklingError"
+-XMLUnpicklingError = "gnosis.xml.pickle.XMLUnpicklingError"
++from gnosis.xml.pickle.exception import XMLPicklingError, XMLUnpicklingError
+
+ # Define our own TRUE/FALSE syms, based on Python version.
+ if pyconfig.Have_TrueFalse():
+@@ -70,7 +69,10 @@ def unpickle_instance(node, paranoia):
+
+ # next, decide what "stuff" is supposed to go into pyobj
+ if hasattr(raw,'__getstate__'):
+- stuff = raw.__getstate__
++ # Note: this code path was apparently never taken in Python 2, but
++ # __getstate__ is a function, and it makes no sense below to call
++ # __setstate__ or attr_update() with a function instead of a dict.
++ stuff = raw.__getstate__()
+ else:
+ stuff = raw.__dict__
+
+@@ -78,7 +80,7 @@ def unpickle_instance(node, paranoia):
+ if hasattr(pyobj,'__setstate__'):
+ pyobj.__setstate__(stuff)
+ else:
+- if type(stuff) is DictType: # must be a Dict if no __setstate__
++ if type(stuff) is dict: # must be a Dict if no __setstate__
+ # see note in pickle.py/load_build() about restricted
+ # execution -- do the same thing here
+ #try:
+@@ -92,9 +94,9 @@ def unpickle_instance(node, paranoia):
+ # does violate the pickle protocol, or because PARANOIA was
+ # set too high, and we couldn't create the real class, so
+ # __setstate__ is missing (and __stateinfo__ isn't a dict)
+- raise XMLUnpicklingError, \
+- "Non-DictType without setstate violates pickle protocol."+\
+- "(PARANOIA setting may be too high)"
++ raise XMLUnpicklingError( \
++ "Non-dict without setstate violates pickle protocol."+\
++ "(PARANOIA setting may be too high)")
+
+ return pyobj
+
+@@ -120,7 +122,7 @@ def get_node_valuetext(node):
+ # a value= attribute. ie. pickler can place it in either
+ # place (based on user preference) and unpickler doesn't care
+
+- if node._attrs.has_key('value'):
++ if 'value' in node._attrs.keys():
+ # text in tag
+ ttext = node.getAttribute('value')
+ return unsafe_string(ttext)
+@@ -165,8 +167,8 @@ def _fix_family(family,typename):
+ elif typename == 'False':
+ return 'uniq'
+ else:
+- raise XMLUnpicklingError, \
+- "family= must be given for unknown type %s" % typename
++ raise XMLUnpicklingError( \
++ "family= must be given for unknown type %s" % typename)
+
+ def _thing_from_dom(dom_node, container=None, paranoia=1):
+ "Converts an [xml_pickle] DOM tree to a 'native' Python object"
+@@ -248,7 +250,7 @@ def _thing_from_dom(dom_node, container=None, paranoia=1):
+ node.getAttribute('module'),
+ paranoia)
+ else:
+- raise XMLUnpicklingError, "Unknown lang type %s" % node_type
++ raise XMLUnpicklingError("Unknown lang type %s" % node_type)
+ elif node_family == 'uniq':
+ # uniq is another special type that is handled here instead
+ # of below.
+@@ -268,9 +270,9 @@ def _thing_from_dom(dom_node, container=None, paranoia=1):
+ elif node_type == 'False':
+ node_val = FALSE_VALUE
+ else:
+- raise XMLUnpicklingError, "Unknown uniq type %s" % node_type
++ raise XMLUnpicklingError("Unknown uniq type %s" % node_type)
+ else:
+- raise XMLUnpicklingError, "UNKNOWN family %s,%s,%s" % (node_family,node_type,node_name)
++ raise XMLUnpicklingError("UNKNOWN family %s,%s,%s" % (node_family,node_type,node_name))
+
+ # step 2 - take basic thing and make exact thing
+ # Note there are several NOPs here since node_val has been decided
+@@ -313,7 +315,7 @@ def _thing_from_dom(dom_node, container=None, paranoia=1):
+ #elif ext.can_handle_xml(node_type,node_valuetext):
+ # node_val = ext.xml_to_obj(node_type, node_valuetext, paranoia)
+ else:
+- raise XMLUnpicklingError, "Unknown type %s,%s" % (node,node_type)
++ raise XMLUnpicklingError("Unknown type %s,%s" % (node,node_type))
+
+ if node.nodeName == 'attr':
+ setattr(container,node_name,node_val)
+@@ -329,8 +331,8 @@ def _thing_from_dom(dom_node, container=None, paranoia=1):
+ # <entry> has no id for refchecking
+
+ else:
+- raise XMLUnpicklingError, \
+- "element %s is not in PyObjects.dtd" % node.nodeName
++ raise XMLUnpicklingError( \
++ "element %s is not in PyObjects.dtd" % node.nodeName)
+
+ return container
+
+diff --git a/objdictgen/gnosis/xml/pickle/parsers/_sax.py b/objdictgen/gnosis/xml/pickle/parsers/_sax.py
+index 4a6b42ad5858..6810135a52de 100644
+--- a/objdictgen/gnosis/xml/pickle/parsers/_sax.py
++++ b/objdictgen/gnosis/xml/pickle/parsers/_sax.py
+@@ -19,17 +19,16 @@ from gnosis.util.XtoY import to_number
+
+ import sys, os, string
+ from types import *
+-from StringIO import StringIO
++from io import StringIO
+
+ # Define exceptions and flags
+-XMLPicklingError = "gnosis.xml.pickle.XMLPicklingError"
+-XMLUnpicklingError = "gnosis.xml.pickle.XMLUnpicklingError"
++from gnosis.xml.pickle.exception import XMLPicklingError, XMLUnpicklingError
+
+ DEBUG = 0
+
+ def dbg(msg,force=0):
+ if DEBUG or force:
+- print msg
++ print(msg)
+
+ class _EmptyClass: pass
+
+@@ -64,12 +63,12 @@ class xmlpickle_handler(ContentHandler):
+ def prstk(self,force=0):
+ if DEBUG == 0 and not force:
+ return
+- print "**ELEM STACK**"
++ print("**ELEM STACK**")
+ for i in self.elem_stk:
+- print str(i)
+- print "**VALUE STACK**"
++ print(str(i))
++ print("**VALUE STACK**")
+ for i in self.val_stk:
+- print str(i)
++ print(str(i))
+
+ def save_obj_id(self,obj,elem):
+
+@@ -201,8 +200,8 @@ class xmlpickle_handler(ContentHandler):
+ elem[4].get('module'),
+ self.paranoia)
+ else:
+- raise XMLUnpicklingError, \
+- "Unknown lang type %s" % elem[2]
++ raise XMLUnpicklingError( \
++ "Unknown lang type %s" % elem[2])
+
+ elif family == 'uniq':
+ # uniq is a special type - we don't know how to unpickle
+@@ -225,12 +224,12 @@ class xmlpickle_handler(ContentHandler):
+ elif elem[2] == 'False':
+ obj = FALSE_VALUE
+ else:
+- raise XMLUnpicklingError, \
+- "Unknown uniq type %s" % elem[2]
++ raise XMLUnpicklingError( \
++ "Unknown uniq type %s" % elem[2])
+ else:
+- raise XMLUnpicklingError, \
++ raise XMLUnpicklingError( \
+ "UNKNOWN family %s,%s,%s" % \
+- (family,elem[2],elem[3])
++ (family,elem[2],elem[3]))
+
+ # step 2 -- convert basic -> specific type
+ # (many of these are NOPs, but included for clarity)
+@@ -286,8 +285,8 @@ class xmlpickle_handler(ContentHandler):
+
+ else:
+ self.prstk(1)
+- raise XMLUnpicklingError, \
+- "UNHANDLED elem %s"%elem[2]
++ raise XMLUnpicklingError( \
++ "UNHANDLED elem %s"%elem[2])
+
+ # push on stack and save obj ref
+ self.val_stk.append((elem[0],elem[3],obj))
+@@ -328,7 +327,7 @@ class xmlpickle_handler(ContentHandler):
+
+ def endDocument(self):
+ if DEBUG == 1:
+- print "NROBJS "+str(self.nr_objs)
++ print("NROBJS "+str(self.nr_objs))
+
+ def startElement(self,name,attrs):
+ dbg("** START ELEM %s,%s"%(name,attrs._attrs))
+@@ -406,17 +405,17 @@ class xmlpickle_handler(ContentHandler):
+
+ # implement the ErrorHandler interface here as well
+ def error(self,exception):
+- print "** ERROR - dumping stacks"
++ print("** ERROR - dumping stacks")
+ self.prstk(1)
+ raise exception
+
+ def fatalError(self,exception):
+- print "** FATAL ERROR - dumping stacks"
++ print("** FATAL ERROR - dumping stacks")
+ self.prstk(1)
+ raise exception
+
+ def warning(self,exception):
+- print "WARNING"
++ print("WARNING")
+ raise exception
+
+ # Implement EntityResolver interface (called when the parser runs
+@@ -435,7 +434,7 @@ class xmlpickle_handler(ContentHandler):
+ def thing_from_sax(filehandle=None,paranoia=1):
+
+ if DEBUG == 1:
+- print "**** SAX PARSER ****"
++ print("**** SAX PARSER ****")
+
+ e = ExpatParser()
+ m = xmlpickle_handler(paranoia)
+diff --git a/objdictgen/gnosis/xml/pickle/test/test_all.py b/objdictgen/gnosis/xml/pickle/test/test_all.py
+index 916dfa168806..a3f931621280 100644
+--- a/objdictgen/gnosis/xml/pickle/test/test_all.py
++++ b/objdictgen/gnosis/xml/pickle/test/test_all.py
+@@ -178,7 +178,7 @@ pechof(tout,"Sanity check: OK")
+ parser_dict = enumParsers()
+
+ # test with DOM parser, if available
+-if parser_dict.has_key('DOM'):
++if 'DOM' in parser_dict.keys():
+
+ # make sure the USE_.. files are gone
+ unlink("USE_SAX")
+@@ -199,7 +199,7 @@ else:
+ pechof(tout,"** SKIPPING DOM parser **")
+
+ # test with SAX parser, if available
+-if parser_dict.has_key("SAX"):
++if "SAX" in parser_dict.keys():
+
+ touch("USE_SAX")
+
+@@ -220,7 +220,7 @@ else:
+ pechof(tout,"** SKIPPING SAX parser **")
+
+ # test with cEXPAT parser, if available
+-if parser_dict.has_key("cEXPAT"):
++if "cEXPAT" in parser_dict.keys():
+
+ touch("USE_CEXPAT");
+
+diff --git a/objdictgen/gnosis/xml/pickle/test/test_badstring.py b/objdictgen/gnosis/xml/pickle/test/test_badstring.py
+index 837154f99a77..e8452e6c3857 100644
+--- a/objdictgen/gnosis/xml/pickle/test/test_badstring.py
++++ b/objdictgen/gnosis/xml/pickle/test/test_badstring.py
+@@ -88,7 +88,7 @@ try:
+ # safe_content assumes it can always convert the string
+ # to unicode, which isn't true
+ # ex: pickling a UTF-8 encoded value
+- setInBody(StringType, 1)
++ setInBody(str, 1)
+ f = Foo('\xed\xa0\x80')
+ x = xml_pickle.dumps(f)
+ print "************* ERROR *************"
+diff --git a/objdictgen/gnosis/xml/pickle/test/test_bltin.py b/objdictgen/gnosis/xml/pickle/test/test_bltin.py
+index c23c14785dc8..bd1e4afca149 100644
+--- a/objdictgen/gnosis/xml/pickle/test/test_bltin.py
++++ b/objdictgen/gnosis/xml/pickle/test/test_bltin.py
+@@ -48,7 +48,7 @@ foo = foo_class()
+
+ # try putting numeric content in body (doesn't matter which
+ # numeric type)
+-setInBody(ComplexType,1)
++setInBody(complex,1)
+
+ # test both code paths
+
+diff --git a/objdictgen/gnosis/xml/pickle/test/test_mutators.py b/objdictgen/gnosis/xml/pickle/test/test_mutators.py
+index ea049cf6421a..d8e531629d39 100644
+--- a/objdictgen/gnosis/xml/pickle/test/test_mutators.py
++++ b/objdictgen/gnosis/xml/pickle/test/test_mutators.py
+@@ -27,8 +27,8 @@ class mystring(XMLP_Mutator):
+ # (here we fold two types to a single tagname)
+
+ print "*** TEST 1 ***"
+-my1 = mystring(StringType,"MyString",in_body=1)
+-my2 = mystring(UnicodeType,"MyString",in_body=1)
++my1 = mystring(str,"MyString",in_body=1)
++my2 = mystring(str,"MyString",in_body=1)
+
+ mutate.add_mutator(my1)
+ mutate.add_mutator(my2)
+@@ -57,8 +57,8 @@ mutate.remove_mutator(my2)
+
+ print "*** TEST 2 ***"
+
+-my1 = mystring(StringType,"string",in_body=1)
+-my2 = mystring(UnicodeType,"string",in_body=1)
++my1 = mystring(str,"string",in_body=1)
++my2 = mystring(str,"string",in_body=1)
+
+ mutate.add_mutator(my1)
+ mutate.add_mutator(my2)
+@@ -86,14 +86,14 @@ print z
+ # mynumlist handles lists of integers and pickles them as "n,n,n,n"
+ # mycharlist does the same for single-char strings
+ #
+-# otherwise, the ListType builtin handles the list
++# otherwise, the list builtin handles the list
+
+ class mynumlist(XMLP_Mutator):
+
+ def wants_obj(self,obj):
+ # I only want lists of integers
+ for i in obj:
+- if type(i) is not IntType:
++ if type(i) is not int:
+ return 0
+
+ return 1
+@@ -113,7 +113,7 @@ class mycharlist(XMLP_Mutator):
+ def wants_obj(self,obj):
+ # I only want lists of single chars
+ for i in obj:
+- if type(i) is not StringType or \
++ if type(i) is not str or \
+ len(i) != 1:
+ return 0
+
+@@ -135,8 +135,8 @@ class mycharlist(XMLP_Mutator):
+
+ print "*** TEST 3 ***"
+
+-my1 = mynumlist(ListType,"NumList",in_body=1)
+-my2 = mycharlist(ListType,"CharList",in_body=1)
++my1 = mynumlist(list,"NumList",in_body=1)
++my2 = mycharlist(list,"CharList",in_body=1)
+
+ mutate.add_mutator(my1)
+ mutate.add_mutator(my2)
+diff --git a/objdictgen/gnosis/xml/pickle/test/test_unicode.py b/objdictgen/gnosis/xml/pickle/test/test_unicode.py
+index 2ab724664348..cf22ef6ad57b 100644
+--- a/objdictgen/gnosis/xml/pickle/test/test_unicode.py
++++ b/objdictgen/gnosis/xml/pickle/test/test_unicode.py
+@@ -2,13 +2,12 @@
+
+ from gnosis.xml.pickle import loads,dumps
+ from gnosis.xml.pickle.util import setInBody
+-from types import StringType, UnicodeType
+ import funcs
+
+ funcs.set_parser()
+
+ #-- Create some unicode and python strings (and an object that contains them)
+-ustring = u"Alef: %s, Omega: %s" % (unichr(1488), unichr(969))
++ustring = u"Alef: %s, Omega: %s" % (chr(1488), chr(969))
+ pstring = "Only US-ASCII characters"
+ estring = "Only US-ASCII with line breaks\n\tthat was a tab"
+ class C:
+@@ -25,12 +24,12 @@ xml = dumps(o)
+ #print '------------* Restored attributes from different strings *--------------'
+ o2 = loads(xml)
+ # check types explicitly, since comparison will coerce types
+-if not isinstance(o2.ustring,UnicodeType):
+- raise "AAGH! Didn't get UnicodeType"
+-if not isinstance(o2.pstring,StringType):
+- raise "AAGH! Didn't get StringType for pstring"
+-if not isinstance(o2.estring,StringType):
+- raise "AAGH! Didn't get StringType for estring"
++if not isinstance(o2.ustring,str):
++ raise "AAGH! Didn't get str"
++if not isinstance(o2.pstring,str):
++ raise "AAGH! Didn't get str for pstring"
++if not isinstance(o2.estring,str):
++ raise "AAGH! Didn't get str for estring"
+
+ #print "UNICODE:", `o2.ustring`, type(o2.ustring)
+ #print "PLAIN: ", o2.pstring, type(o2.pstring)
+@@ -43,18 +42,18 @@ if o.ustring != o2.ustring or \
+
+ #-- Pickle with Python strings in body
+ #print '\n------------* Pickle with Python strings in body *----------------------'
+-setInBody(StringType, 1)
++setInBody(str, 1)
+ xml = dumps(o)
+ #print xml,
+ #print '------------* Restored attributes from different strings *--------------'
+ o2 = loads(xml)
+ # check types explicitly, since comparison will coerce types
+-if not isinstance(o2.ustring,UnicodeType):
+- raise "AAGH! Didn't get UnicodeType"
+-if not isinstance(o2.pstring,StringType):
+- raise "AAGH! Didn't get StringType for pstring"
+-if not isinstance(o2.estring,StringType):
+- raise "AAGH! Didn't get StringType for estring"
++if not isinstance(o2.ustring,str):
++ raise "AAGH! Didn't get str"
++if not isinstance(o2.pstring,str):
++ raise "AAGH! Didn't get str for pstring"
++if not isinstance(o2.estring,str):
++ raise "AAGH! Didn't get str for estring"
+
+ #print "UNICODE:", `o2.ustring`, type(o2.ustring)
+ #print "PLAIN: ", o2.pstring, type(o2.pstring)
+@@ -67,7 +66,7 @@ if o.ustring != o2.ustring or \
+
+ #-- Pickle with Unicode strings in attributes (FAIL)
+ #print '\n------------* Pickle with Unicode strings in XML attrs *----------------'
+-setInBody(UnicodeType, 0)
++setInBody(str, 0)
+ try:
+ xml = dumps(o)
+ raise "FAIL: We should not be allowed to put Unicode in attrs"
+diff --git a/objdictgen/gnosis/xml/pickle/util/__init__.py b/objdictgen/gnosis/xml/pickle/util/__init__.py
+index 3eb05ee45b5e..46771ba97622 100644
+--- a/objdictgen/gnosis/xml/pickle/util/__init__.py
++++ b/objdictgen/gnosis/xml/pickle/util/__init__.py
+@@ -1,5 +1,5 @@
+-from _flags import *
+-from _util import \
++from gnosis.xml.pickle.util._flags import *
++from gnosis.xml.pickle.util._util import \
+ _klass, _module, _EmptyClass, subnodes, \
+ safe_eval, safe_string, unsafe_string, safe_content, unsafe_content, \
+ _mini_getstack, _mini_currentframe, \
+diff --git a/objdictgen/gnosis/xml/pickle/util/_flags.py b/objdictgen/gnosis/xml/pickle/util/_flags.py
+index 3555b0123251..969acd316e5f 100644
+--- a/objdictgen/gnosis/xml/pickle/util/_flags.py
++++ b/objdictgen/gnosis/xml/pickle/util/_flags.py
+@@ -32,17 +32,22 @@ def enumParsers():
+ try:
+ from gnosis.xml.pickle.parsers._dom import thing_from_dom
+ dict['DOM'] = thing_from_dom
+- except: pass
++ except:
++ print("Notice: no DOM parser available")
++ raise
+
+ try:
+ from gnosis.xml.pickle.parsers._sax import thing_from_sax
+ dict['SAX'] = thing_from_sax
+- except: pass
++ except:
++ print("Notice: no SAX parser available")
++ raise
+
+ try:
+ from gnosis.xml.pickle.parsers._cexpat import thing_from_cexpat
+ dict['cEXPAT'] = thing_from_cexpat
+- except: pass
++ except:
++ print("Notice: no cEXPAT parser available")
+
+ return dict
+
+diff --git a/objdictgen/gnosis/xml/pickle/util/_util.py b/objdictgen/gnosis/xml/pickle/util/_util.py
+index 86e7339a9090..46d99eb1f9bc 100644
+--- a/objdictgen/gnosis/xml/pickle/util/_util.py
++++ b/objdictgen/gnosis/xml/pickle/util/_util.py
+@@ -158,8 +158,8 @@ def get_class_from_name(classname, modname=None, paranoia=1):
+ dbg("**ERROR - couldn't get class - paranoia = %s" % str(paranoia))
+
+ # *should* only be for paranoia == 2, but a good failsafe anyways ...
+- raise XMLUnpicklingError, \
+- "Cannot create class under current PARANOIA setting!"
++ raise XMLUnpicklingError( \
++ "Cannot create class under current PARANOIA setting!")
+
+ def obj_from_name(classname, modname=None, paranoia=1):
+ """Given a classname, optional module name, return an object
+@@ -192,14 +192,14 @@ def _module(thing):
+
+ def safe_eval(s):
+ if 0: # Condition for malicious string in eval() block
+- raise "SecurityError", \
+- "Malicious string '%s' should not be eval()'d" % s
++ raise SecurityError( \
++ "Malicious string '%s' should not be eval()'d" % s)
+ else:
+ return eval(s)
+
+ def safe_string(s):
+- if isinstance(s, UnicodeType):
+- raise TypeError, "Unicode strings may not be stored in XML attributes"
++ if isinstance(s, str):
++ raise TypeError("Unicode strings may not be stored in XML attributes")
+
+ # markup XML entities
+ s = s.replace('&', '&amp;')
+@@ -215,7 +215,7 @@ def unsafe_string(s):
+ # for Python escapes, exec the string
+ # (niggle w/ literalizing apostrophe)
+ s = s.replace("'", r"\047")
+- exec "s='"+s+"'"
++ exec("s='"+s+"'")
+ # XML entities (DOM does it for us)
+ return s
+
+@@ -226,7 +226,7 @@ def safe_content(s):
+ s = s.replace('>', '&gt;')
+
+ # wrap "regular" python strings as unicode
+- if isinstance(s, StringType):
++ if isinstance(s, str):
+ s = u"\xbb\xbb%s\xab\xab" % s
+
+ return s.encode('utf-8')
+@@ -237,7 +237,7 @@ def unsafe_content(s):
+ # don't have to "unescape" XML entities (parser does it for us)
+
+ # unwrap python strings from unicode wrapper
+- if s[:2]==unichr(187)*2 and s[-2:]==unichr(171)*2:
++ if s[:2]==chr(187)*2 and s[-2:]==chr(171)*2:
+ s = s[2:-2].encode('us-ascii')
+
+ return s
+@@ -248,7 +248,7 @@ def subnodes(node):
+ # for PyXML > 0.8, childNodes includes both <DOM Elements> and
+ # DocumentType objects, so we have to separate them.
+ return filter(lambda n: hasattr(n,'_attrs') and \
+- n.nodeName<>'#text', node.childNodes)
++ n.nodeName!='#text', node.childNodes)
+
+ #-------------------------------------------------------------------
+ # Python 2.0 doesn't have the inspect module, so we provide
+diff --git a/objdictgen/gnosis/xml/relax/lex.py b/objdictgen/gnosis/xml/relax/lex.py
+index 833213c3887f..59b0c6ba5851 100644
+--- a/objdictgen/gnosis/xml/relax/lex.py
++++ b/objdictgen/gnosis/xml/relax/lex.py
+@@ -252,7 +252,7 @@ class Lexer:
+ # input() - Push a new string into the lexer
+ # ------------------------------------------------------------
+ def input(self,s):
+- if not isinstance(s,types.StringType):
++ if not isinstance(s,str):
+ raise ValueError, "Expected a string"
+ self.lexdata = s
+ self.lexpos = 0
+@@ -314,7 +314,7 @@ class Lexer:
+
+ # Verify type of the token. If not in the token map, raise an error
+ if not self.optimize:
+- if not self.lextokens.has_key(newtok.type):
++ if not newtok.type in self.lextokens.keys():
+ raise LexError, ("%s:%d: Rule '%s' returned an unknown token type '%s'" % (
+ func.func_code.co_filename, func.func_code.co_firstlineno,
+ func.__name__, newtok.type),lexdata[lexpos:])
+@@ -453,7 +453,7 @@ def lex(module=None,debug=0,optimize=0,lextab="lextab"):
+ tokens = ldict.get("tokens",None)
+ if not tokens:
+ raise SyntaxError,"lex: module does not define 'tokens'"
+- if not (isinstance(tokens,types.ListType) or isinstance(tokens,types.TupleType)):
++ if not (isinstance(tokens,list) or isinstance(tokens,tuple)):
+ raise SyntaxError,"lex: tokens must be a list or tuple."
+
+ # Build a dictionary of valid token names
+@@ -470,7 +470,7 @@ def lex(module=None,debug=0,optimize=0,lextab="lextab"):
+ if not is_identifier(n):
+ print "lex: Bad token name '%s'" % n
+ error = 1
+- if lexer.lextokens.has_key(n):
++ if n in lexer.lextokens.keys():
+ print "lex: Warning. Token '%s' multiply defined." % n
+ lexer.lextokens[n] = None
+ else:
+@@ -489,7 +489,7 @@ def lex(module=None,debug=0,optimize=0,lextab="lextab"):
+ for f in tsymbols:
+ if isinstance(ldict[f],types.FunctionType):
+ fsymbols.append(ldict[f])
+- elif isinstance(ldict[f],types.StringType):
++ elif isinstance(ldict[f],str):
+ ssymbols.append((f,ldict[f]))
+ else:
+ print "lex: %s not defined as a function or string" % f
+@@ -565,7 +565,7 @@ def lex(module=None,debug=0,optimize=0,lextab="lextab"):
+ error = 1
+ continue
+
+- if not lexer.lextokens.has_key(name[2:]):
++ if not name[2:] in lexer.lextokens.keys():
+ print "lex: Rule '%s' defined for an unspecified token %s." % (name,name[2:])
+ error = 1
+ continue
+diff --git a/objdictgen/gnosis/xml/relax/rnctree.py b/objdictgen/gnosis/xml/relax/rnctree.py
+index 5430d858f012..2eee519828f9 100644
+--- a/objdictgen/gnosis/xml/relax/rnctree.py
++++ b/objdictgen/gnosis/xml/relax/rnctree.py
+@@ -290,7 +290,7 @@ def scan_NS(nodes):
+ elif node.type == NS:
+ ns, url = map(str.strip, node.value.split('='))
+ OTHER_NAMESPACE[ns] = url
+- elif node.type == ANNOTATION and not OTHER_NAMESPACE.has_key('a'):
++ elif node.type == ANNOTATION and not 'a' in OTHER_NAMESPACE.keys():
+ OTHER_NAMESPACE['a'] =\
+ '"http://relaxng.org/ns/compatibility/annotations/1.0"'
+ elif node.type == DATATYPES:
+diff --git a/objdictgen/gnosis/xml/xmlmap.py b/objdictgen/gnosis/xml/xmlmap.py
+index 5f37cab24395..8103e902ae29 100644
+--- a/objdictgen/gnosis/xml/xmlmap.py
++++ b/objdictgen/gnosis/xml/xmlmap.py
+@@ -17,7 +17,7 @@
+ # codes. Anyways, Python 2.2 and up have fixed this bug, but
+ # I have used workarounds in the code here for compatibility.
+ #
+-# So, in several places you'll see I've used unichr() instead of
++# So, in several places you'll see I've used chr() instead of
+ # coding the u'' directly due to this bug. I'm guessing that
+ # might be a little slower.
+ #
+@@ -26,18 +26,10 @@ __all__ = ['usplit','is_legal_xml','is_legal_xml_char']
+
+ import re
+
+-# define True/False if this Python doesn't have them (only
+-# used in this file)
+-try:
+- a = True
+-except:
+- True = 1
+- False = 0
+-
+ def usplit( uval ):
+ """
+ Split Unicode string into a sequence of characters.
+- \U sequences are considered to be a single character.
++ \\U sequences are considered to be a single character.
+
+ You should assume you will get a sequence, and not assume
+ anything about the type of sequence (i.e. list vs. tuple vs. string).
+@@ -65,8 +57,8 @@ def usplit( uval ):
+ # the second character is in range (0xdc00 - 0xdfff), then
+ # it is a 2-character encoding
+ if len(uval[i:]) > 1 and \
+- uval[i] >= unichr(0xD800) and uval[i] <= unichr(0xDBFF) and \
+- uval[i+1] >= unichr(0xDC00) and uval[i+1] <= unichr(0xDFFF):
++ uval[i] >= chr(0xD800) and uval[i] <= chr(0xDBFF) and \
++ uval[i+1] >= chr(0xDC00) and uval[i+1] <= chr(0xDFFF):
+
+ # it's a two character encoding
+ clist.append( uval[i:i+2] )
+@@ -106,10 +98,10 @@ def make_illegal_xml_regex():
+ using the codes (D800-DBFF),(DC00-DFFF), which are both illegal
+ when used as single chars, from above.
+
+- Python won't let you define \U character ranges, so you can't
+- just say '\U00010000-\U0010FFFF'. However, you can take advantage
++ Python won't let you define \\U character ranges, so you can't
++ just say '\\U00010000-\\U0010FFFF'. However, you can take advantage
+ of the fact that (D800-DBFF) and (DC00-DFFF) are illegal, unless
+- part of a 2-character sequence, to match for the \U characters.
++ part of a 2-character sequence, to match for the \\U characters.
+ """
+
+ # First, add a group for all the basic illegal areas above
+@@ -124,9 +116,9 @@ def make_illegal_xml_regex():
+
+ # I've defined this oddly due to the bug mentioned at the top of this file
+ re_xml_illegal += u'([%s-%s][^%s-%s])|([^%s-%s][%s-%s])|([%s-%s]$)|(^[%s-%s])' % \
+- (unichr(0xd800),unichr(0xdbff),unichr(0xdc00),unichr(0xdfff),
+- unichr(0xd800),unichr(0xdbff),unichr(0xdc00),unichr(0xdfff),
+- unichr(0xd800),unichr(0xdbff),unichr(0xdc00),unichr(0xdfff))
++ (chr(0xd800),chr(0xdbff),chr(0xdc00),chr(0xdfff),
++ chr(0xd800),chr(0xdbff),chr(0xdc00),chr(0xdfff),
++ chr(0xd800),chr(0xdbff),chr(0xdc00),chr(0xdfff))
+
+ return re.compile( re_xml_illegal )
+
+@@ -156,7 +148,7 @@ def is_legal_xml_char( uchar ):
+
+ Otherwise, the first char of a legal 2-character
+ sequence will be incorrectly tagged as illegal, on
+- Pythons where \U is stored as 2-chars.
++ Pythons where \\U is stored as 2-chars.
+ """
+
+ # due to inconsistencies in how \U is handled (based on
+@@ -175,7 +167,7 @@ def is_legal_xml_char( uchar ):
+ (uchar >= u'\u000b' and uchar <= u'\u000c') or \
+ (uchar >= u'\u000e' and uchar <= u'\u0019') or \
+ # always illegal as single chars
+- (uchar >= unichr(0xd800) and uchar <= unichr(0xdfff)) or \
++ (uchar >= chr(0xd800) and uchar <= chr(0xdfff)) or \
+ (uchar >= u'\ufffe' and uchar <= u'\uffff')
+ )
+ elif len(uchar) == 2:
diff --git a/patches/canfestival-3+hg20180126.794/0008-port-to-python3.patch b/patches/canfestival-3+hg20180126.794/0008-port-to-python3.patch
new file mode 100644
index 000000000..133c509c6
--- /dev/null
+++ b/patches/canfestival-3+hg20180126.794/0008-port-to-python3.patch
@@ -0,0 +1,945 @@
+From: Roland Hieber <rhi@pengutronix.de>
+Date: Sun, 11 Feb 2024 22:28:38 +0100
+Subject: [PATCH] Port to Python 3
+
+Not all of the code was ported, only enough to make objdictgen calls in
+the Makefile work enough to generate the code in examples/.
+---
+ objdictgen/commondialogs.py | 2 +-
+ objdictgen/eds_utils.py | 76 ++++++++++++++++++++--------------------
+ objdictgen/gen_cfile.py | 25 +++++++------
+ objdictgen/networkedit.py | 4 +--
+ objdictgen/node.py | 57 +++++++++++++++---------------
+ objdictgen/nodeeditortemplate.py | 10 +++---
+ objdictgen/nodelist.py | 2 +-
+ objdictgen/nodemanager.py | 25 +++++++------
+ objdictgen/objdictedit.py | 22 ++++++------
+ objdictgen/objdictgen.py | 20 +++++------
+ 10 files changed, 122 insertions(+), 121 deletions(-)
+
+diff --git a/objdictgen/commondialogs.py b/objdictgen/commondialogs.py
+index 77d6705bd70b..38b840b617c0 100644
+--- a/objdictgen/commondialogs.py
++++ b/objdictgen/commondialogs.py
+@@ -1566,7 +1566,7 @@ class DCFEntryValuesDialog(wx.Dialog):
+ if values != "":
+ data = values[4:]
+ current = 0
+- for i in xrange(BE_to_LE(values[:4])):
++ for i in range(BE_to_LE(values[:4])):
+ value = {}
+ value["Index"] = BE_to_LE(data[current:current+2])
+ value["Subindex"] = BE_to_LE(data[current+2:current+3])
+diff --git a/objdictgen/eds_utils.py b/objdictgen/eds_utils.py
+index 969bae91dce5..aad8491681ac 100644
+--- a/objdictgen/eds_utils.py
++++ b/objdictgen/eds_utils.py
+@@ -53,8 +53,8 @@ BOOL_TRANSLATE = {True : "1", False : "0"}
+ ACCESS_TRANSLATE = {"RO" : "ro", "WO" : "wo", "RW" : "rw", "RWR" : "rw", "RWW" : "rw", "CONST" : "ro"}
+
+ # Function for verifying data values
+-is_integer = lambda x: type(x) in (IntType, LongType)
+-is_string = lambda x: type(x) in (StringType, UnicodeType)
++is_integer = lambda x: type(x) == int
++is_string = lambda x: type(x) == str
+ is_boolean = lambda x: x in (0, 1)
+
+ # Define checking of value for each attribute
+@@ -174,7 +174,7 @@ def ParseCPJFile(filepath):
+ try:
+ computed_value = int(value, 16)
+ except:
+- raise SyntaxError, _("\"%s\" is not a valid value for attribute \"%s\" of section \"[%s]\"")%(value, keyname, section_name)
++ raise SyntaxError(_("\"%s\" is not a valid value for attribute \"%s\" of section \"[%s]\"")%(value, keyname, section_name))
+ elif value.isdigit() or value.startswith("-") and value[1:].isdigit():
+ # Second case, value is a number and starts with "0" or "-0", then it's an octal value
+ if value.startswith("0") or value.startswith("-0"):
+@@ -193,59 +193,59 @@ def ParseCPJFile(filepath):
+
+ if keyname.upper() == "NETNAME":
+ if not is_string(computed_value):
+- raise SyntaxError, _("Invalid value \"%s\" for keyname \"%s\" of section \"[%s]\"")%(value, keyname, section_name)
++ raise SyntaxError(_("Invalid value \"%s\" for keyname \"%s\" of section \"[%s]\"")%(value, keyname, section_name))
+ topology["Name"] = computed_value
+ elif keyname.upper() == "NODES":
+ if not is_integer(computed_value):
+- raise SyntaxError, _("Invalid value \"%s\" for keyname \"%s\" of section \"[%s]\"")%(value, keyname, section_name)
++ raise SyntaxError(_("Invalid value \"%s\" for keyname \"%s\" of section \"[%s]\"")%(value, keyname, section_name))
+ topology["Number"] = computed_value
+ elif keyname.upper() == "EDSBASENAME":
+ if not is_string(computed_value):
+- raise SyntaxError, _("Invalid value \"%s\" for keyname \"%s\" of section \"[%s]\"")%(value, keyname, section_name)
++ raise SyntaxError(_("Invalid value \"%s\" for keyname \"%s\" of section \"[%s]\"")%(value, keyname, section_name))
+ topology["Path"] = computed_value
+ elif nodepresent_result:
+ if not is_boolean(computed_value):
+- raise SyntaxError, _("Invalid value \"%s\" for keyname \"%s\" of section \"[%s]\"")%(value, keyname, section_name)
++ raise SyntaxError(_("Invalid value \"%s\" for keyname \"%s\" of section \"[%s]\"")%(value, keyname, section_name))
+ nodeid = int(nodepresent_result.groups()[0])
+ if nodeid not in topology["Nodes"].keys():
+ topology["Nodes"][nodeid] = {}
+ topology["Nodes"][nodeid]["Present"] = computed_value
+ elif nodename_result:
+ if not is_string(value):
+- raise SyntaxError, _("Invalid value \"%s\" for keyname \"%s\" of section \"[%s]\"")%(value, keyname, section_name)
++ raise SyntaxError(_("Invalid value \"%s\" for keyname \"%s\" of section \"[%s]\"")%(value, keyname, section_name))
+ nodeid = int(nodename_result.groups()[0])
+ if nodeid not in topology["Nodes"].keys():
+ topology["Nodes"][nodeid] = {}
+ topology["Nodes"][nodeid]["Name"] = computed_value
+ elif nodedcfname_result:
+ if not is_string(computed_value):
+- raise SyntaxError, _("Invalid value \"%s\" for keyname \"%s\" of section \"[%s]\"")%(value, keyname, section_name)
++ raise SyntaxError(_("Invalid value \"%s\" for keyname \"%s\" of section \"[%s]\"")%(value, keyname, section_name))
+ nodeid = int(nodedcfname_result.groups()[0])
+ if nodeid not in topology["Nodes"].keys():
+ topology["Nodes"][nodeid] = {}
+ topology["Nodes"][nodeid]["DCFName"] = computed_value
+ else:
+- raise SyntaxError, _("Keyname \"%s\" not recognised for section \"[%s]\"")%(keyname, section_name)
++ raise SyntaxError(_("Keyname \"%s\" not recognised for section \"[%s]\"")%(keyname, section_name))
+
+ # All lines that are not empty and are neither a comment neither not a valid assignment
+ elif assignment.strip() != "":
+- raise SyntaxError, _("\"%s\" is not a valid CPJ line")%assignment.strip()
++ raise SyntaxError(_("\"%s\" is not a valid CPJ line")%assignment.strip())
+
+ if "Number" not in topology.keys():
+- raise SyntaxError, _("\"Nodes\" keyname in \"[%s]\" section is missing")%section_name
++ raise SyntaxError(_("\"Nodes\" keyname in \"[%s]\" section is missing")%section_name)
+
+ if topology["Number"] != len(topology["Nodes"]):
+- raise SyntaxError, _("\"Nodes\" value not corresponding to number of nodes defined")
++ raise SyntaxError(_("\"Nodes\" value not corresponding to number of nodes defined"))
+
+ for nodeid, node in topology["Nodes"].items():
+ if "Present" not in node.keys():
+- raise SyntaxError, _("\"Node%dPresent\" keyname in \"[%s]\" section is missing")%(nodeid, section_name)
++ raise SyntaxError(_("\"Node%dPresent\" keyname in \"[%s]\" section is missing")%(nodeid, section_name))
+
+ networks.append(topology)
+
+ # In other case, there is a syntax problem into CPJ file
+ else:
+- raise SyntaxError, _("Section \"[%s]\" is unrecognized")%section_name
++ raise SyntaxError(_("Section \"[%s]\" is unrecognized")%section_name)
+
+ return networks
+
+@@ -275,7 +275,7 @@ def ParseEDSFile(filepath):
+ if section_name.upper() not in eds_dict:
+ eds_dict[section_name.upper()] = values
+ else:
+- raise SyntaxError, _("\"[%s]\" section is defined two times")%section_name
++ raise SyntaxError(_("\"[%s]\" section is defined two times")%section_name)
+ # Second case, section name is an index name
+ elif index_result:
+ # Extract index number
+@@ -288,7 +288,7 @@ def ParseEDSFile(filepath):
+ values["subindexes"] = eds_dict[index]["subindexes"]
+ eds_dict[index] = values
+ else:
+- raise SyntaxError, _("\"[%s]\" section is defined two times")%section_name
++ raise SyntaxError(_("\"[%s]\" section is defined two times")%section_name)
+ is_entry = True
+ # Third case, section name is a subindex name
+ elif subindex_result:
+@@ -301,14 +301,14 @@ def ParseEDSFile(filepath):
+ if subindex not in eds_dict[index]["subindexes"]:
+ eds_dict[index]["subindexes"][subindex] = values
+ else:
+- raise SyntaxError, _("\"[%s]\" section is defined two times")%section_name
++ raise SyntaxError(_("\"[%s]\" section is defined two times")%section_name)
+ is_entry = True
+ # Third case, section name is a subindex name
+ elif index_objectlinks_result:
+ pass
+ # In any other case, there is a syntax problem into EDS file
+ else:
+- raise SyntaxError, _("Section \"[%s]\" is unrecognized")%section_name
++ raise SyntaxError(_("Section \"[%s]\" is unrecognized")%section_name)
+
+ for assignment in assignments:
+ # Escape any comment
+@@ -330,13 +330,13 @@ def ParseEDSFile(filepath):
+ test = int(value.upper().replace("$NODEID+", ""), 16)
+ computed_value = "\"%s\""%value
+ except:
+- raise SyntaxError, _("\"%s\" is not a valid formula for attribute \"%s\" of section \"[%s]\"")%(value, keyname, section_name)
++ raise SyntaxError(_("\"%s\" is not a valid formula for attribute \"%s\" of section \"[%s]\"")%(value, keyname, section_name))
+ # Second case, value starts with "0x", then it's an hexadecimal value
+ elif value.startswith("0x") or value.startswith("-0x"):
+ try:
+ computed_value = int(value, 16)
+ except:
+- raise SyntaxError, _("\"%s\" is not a valid value for attribute \"%s\" of section \"[%s]\"")%(value, keyname, section_name)
++ raise SyntaxError(_("\"%s\" is not a valid value for attribute \"%s\" of section \"[%s]\"")%(value, keyname, section_name))
+ elif value.isdigit() or value.startswith("-") and value[1:].isdigit():
+ # Third case, value is a number and starts with "0", then it's an octal value
+ if value.startswith("0") or value.startswith("-0"):
+@@ -354,17 +354,17 @@ def ParseEDSFile(filepath):
+ if is_entry:
+ # Verify that keyname is a possible attribute
+ if keyname.upper() not in ENTRY_ATTRIBUTES:
+- raise SyntaxError, _("Keyname \"%s\" not recognised for section \"[%s]\"")%(keyname, section_name)
++ raise SyntaxError(_("Keyname \"%s\" not recognised for section \"[%s]\"")%(keyname, section_name))
+ # Verify that value is valid
+ elif not ENTRY_ATTRIBUTES[keyname.upper()](computed_value):
+- raise SyntaxError, _("Invalid value \"%s\" for keyname \"%s\" of section \"[%s]\"")%(value, keyname, section_name)
++ raise SyntaxError(_("Invalid value \"%s\" for keyname \"%s\" of section \"[%s]\"")%(value, keyname, section_name))
+ else:
+ values[keyname.upper()] = computed_value
+ else:
+ values[keyname.upper()] = computed_value
+ # All lines that are not empty and are neither a comment neither not a valid assignment
+ elif assignment.strip() != "":
+- raise SyntaxError, _("\"%s\" is not a valid EDS line")%assignment.strip()
++ raise SyntaxError(_("\"%s\" is not a valid EDS line")%assignment.strip())
+
+ # If entry is an index or a subindex
+ if is_entry:
+@@ -384,7 +384,7 @@ def ParseEDSFile(filepath):
+ attributes = _("Attributes %s are")%_(", ").join(["\"%s\""%attribute for attribute in missing])
+ else:
+ attributes = _("Attribute \"%s\" is")%missing.pop()
+- raise SyntaxError, _("Error on section \"[%s]\":\n%s required for a %s entry")%(section_name, attributes, ENTRY_TYPES[values["OBJECTTYPE"]]["name"])
++ raise SyntaxError(_("Error on section \"[%s]\":\n%s required for a %s entry")%(section_name, attributes, ENTRY_TYPES[values["OBJECTTYPE"]]["name"]))
+ # Verify that parameters defined are all in the possible parameters
+ if not keys.issubset(possible):
+ unsupported = keys.difference(possible)
+@@ -392,7 +392,7 @@ def ParseEDSFile(filepath):
+ attributes = _("Attributes %s are")%_(", ").join(["\"%s\""%attribute for attribute in unsupported])
+ else:
+ attributes = _("Attribute \"%s\" is")%unsupported.pop()
+- raise SyntaxError, _("Error on section \"[%s]\":\n%s unsupported for a %s entry")%(section_name, attributes, ENTRY_TYPES[values["OBJECTTYPE"]]["name"])
++ raise SyntaxError(_("Error on section \"[%s]\":\n%s unsupported for a %s entry")%(section_name, attributes, ENTRY_TYPES[values["OBJECTTYPE"]]["name"]))
+
+ VerifyValue(values, section_name, "ParameterValue")
+ VerifyValue(values, section_name, "DefaultValue")
+@@ -409,10 +409,10 @@ def VerifyValue(values, section_name, param):
+ elif values["DATATYPE"] == 0x01:
+ values[param.upper()] = {0 : False, 1 : True}[values[param.upper()]]
+ else:
+- if not isinstance(values[param.upper()], (IntType, LongType)) and values[param.upper()].upper().find("$NODEID") == -1:
++ if not isinstance(values[param.upper()], int) and values[param.upper()].upper().find("$NODEID") == -1:
+ raise
+ except:
+- raise SyntaxError, _("Error on section \"[%s]\":\n%s incompatible with DataType")%(section_name, param)
++ raise SyntaxError(_("Error on section \"[%s]\":\n%s incompatible with DataType")%(section_name, param))
+
+
+ # Function that write an EDS file after generate it's content
+@@ -531,7 +531,7 @@ def GenerateFileContent(Node, filepath):
+ # Define section name
+ text = "\n[%X]\n"%entry
+ # If there is only one value, it's a VAR entry
+- if type(values) != ListType:
++ if type(values) != list:
+ # Extract the informations of the first subindex
+ subentry_infos = Node.GetSubentryInfos(entry, 0)
+ # Generate EDS informations for the entry
+@@ -636,7 +636,7 @@ def GenerateEDSFile(filepath, node):
+ # Write file
+ WriteFile(filepath, content)
+ return None
+- except ValueError, message:
++ except ValueError as essage:
+ return _("Unable to generate EDS file\n%s")%message
+
+ # Function that generate the CPJ file content for the nodelist
+@@ -696,7 +696,7 @@ def GenerateNode(filepath, nodeID = 0):
+ if values["OBJECTTYPE"] == 2:
+ values["DATATYPE"] = values.get("DATATYPE", 0xF)
+ if values["DATATYPE"] != 0xF:
+- raise SyntaxError, _("Domain entry 0x%4.4X DataType must be 0xF(DOMAIN) if defined")%entry
++ raise SyntaxError(_("Domain entry 0x%4.4X DataType must be 0xF(DOMAIN) if defined")%entry)
+ # Add mapping for entry
+ Node.AddMappingEntry(entry, name = values["PARAMETERNAME"], struct = 1)
+ # Add mapping for first subindex
+@@ -713,7 +713,7 @@ def GenerateNode(filepath, nodeID = 0):
+ # Add mapping for first subindex
+ Node.AddMappingEntry(entry, 0, values = {"name" : "Number of Entries", "type" : 0x05, "access" : "ro", "pdo" : False})
+ # Add mapping for other subindexes
+- for subindex in xrange(1, int(max_subindex) + 1):
++ for subindex in range(1, int(max_subindex) + 1):
+ # if subindex is defined
+ if subindex in values["subindexes"]:
+ Node.AddMappingEntry(entry, subindex, values = {"name" : values["subindexes"][subindex]["PARAMETERNAME"],
+@@ -727,7 +727,7 @@ def GenerateNode(filepath, nodeID = 0):
+ ## elif values["OBJECTTYPE"] == 9:
+ ## # Verify that the first subindex is defined
+ ## if 0 not in values["subindexes"]:
+-## raise SyntaxError, "Error on entry 0x%4.4X:\nSubindex 0 must be defined for a RECORD entry"%entry
++## raise SyntaxError("Error on entry 0x%4.4X:\nSubindex 0 must be defined for a RECORD entry"%entry)
+ ## # Add mapping for entry
+ ## Node.AddMappingEntry(entry, name = values["PARAMETERNAME"], struct = 7)
+ ## # Add mapping for first subindex
+@@ -740,7 +740,7 @@ def GenerateNode(filepath, nodeID = 0):
+ ## "pdo" : values["subindexes"][1].get("PDOMAPPING", 0) == 1,
+ ## "nbmax" : 0xFE})
+ ## else:
+-## raise SyntaxError, "Error on entry 0x%4.4X:\nA RECORD entry must have at least 2 subindexes"%entry
++## raise SyntaxError("Error on entry 0x%4.4X:\nA RECORD entry must have at least 2 subindexes"%entry)
+
+ # Define entry for the new node
+
+@@ -763,7 +763,7 @@ def GenerateNode(filepath, nodeID = 0):
+ max_subindex = max(values["subindexes"].keys())
+ Node.AddEntry(entry, value = [])
+ # Define value for all subindexes except the first
+- for subindex in xrange(1, int(max_subindex) + 1):
++ for subindex in range(1, int(max_subindex) + 1):
+ # Take default value if it is defined and entry is defined
+ if subindex in values["subindexes"] and "PARAMETERVALUE" in values["subindexes"][subindex]:
+ value = values["subindexes"][subindex]["PARAMETERVALUE"]
+@@ -774,9 +774,9 @@ def GenerateNode(filepath, nodeID = 0):
+ value = GetDefaultValue(Node, entry, subindex)
+ Node.AddEntry(entry, subindex, value)
+ else:
+- raise SyntaxError, _("Array or Record entry 0x%4.4X must have a \"SubNumber\" attribute")%entry
++ raise SyntaxError(_("Array or Record entry 0x%4.4X must have a \"SubNumber\" attribute")%entry)
+ return Node
+- except SyntaxError, message:
++ except SyntaxError as message:
+ return _("Unable to import EDS file\n%s")%message
+
+ #-------------------------------------------------------------------------------
+@@ -784,5 +784,5 @@ def GenerateNode(filepath, nodeID = 0):
+ #-------------------------------------------------------------------------------
+
+ if __name__ == '__main__':
+- print ParseEDSFile("examples/PEAK MicroMod.eds")
++ print(ParseEDSFile("examples/PEAK MicroMod.eds"))
+
+diff --git a/objdictgen/gen_cfile.py b/objdictgen/gen_cfile.py
+index 0945f52dc405..be452121fce9 100644
+--- a/objdictgen/gen_cfile.py
++++ b/objdictgen/gen_cfile.py
+@@ -61,9 +61,9 @@ def GetValidTypeInfos(typename, items=[]):
+ result = type_model.match(typename)
+ if result:
+ values = result.groups()
+- if values[0] == "UNSIGNED" and int(values[1]) in [i * 8 for i in xrange(1, 9)]:
++ if values[0] == "UNSIGNED" and int(values[1]) in [i * 8 for i in range(1, 9)]:
+ typeinfos = ("UNS%s"%values[1], None, "uint%s"%values[1], True)
+- elif values[0] == "INTEGER" and int(values[1]) in [i * 8 for i in xrange(1, 9)]:
++ elif values[0] == "INTEGER" and int(values[1]) in [i * 8 for i in range(1, 9)]:
+ typeinfos = ("INTEGER%s"%values[1], None, "int%s"%values[1], False)
+ elif values[0] == "REAL" and int(values[1]) in (32, 64):
+ typeinfos = ("%s%s"%(values[0], values[1]), None, "real%s"%values[1], False)
+@@ -82,11 +82,11 @@ def GetValidTypeInfos(typename, items=[]):
+ elif values[0] == "BOOLEAN":
+ typeinfos = ("UNS8", None, "boolean", False)
+ else:
+- raise ValueError, _("""!!! %s isn't a valid type for CanFestival.""")%typename
++ raise ValueError(_("""!!! %s isn't a valid type for CanFestival.""")%typename)
+ if typeinfos[2] not in ["visible_string", "domain"]:
+ internal_types[typename] = typeinfos
+ else:
+- raise ValueError, _("""!!! %s isn't a valid type for CanFestival.""")%typename
++ raise ValueError(_("""!!! %s isn't a valid type for CanFestival.""")%typename)
+ return typeinfos
+
+ def ComputeValue(type, value):
+@@ -107,7 +107,7 @@ def WriteFile(filepath, content):
+ def GetTypeName(Node, typenumber):
+ typename = Node.GetTypeName(typenumber)
+ if typename is None:
+- raise ValueError, _("""!!! Datatype with value "0x%4.4X" isn't defined in CanFestival.""")%typenumber
++ raise ValueError(_("""!!! Datatype with value "0x%4.4X" isn't defined in CanFestival.""")%typenumber)
+ return typename
+
+ def GenerateFileContent(Node, headerfilepath, pointers_dict = {}):
+@@ -189,7 +189,7 @@ def GenerateFileContent(Node, headerfilepath, pointers_dict = {}):
+ texts["index"] = index
+ strIndex = ""
+ entry_infos = Node.GetEntryInfos(index)
+- texts["EntryName"] = entry_infos["name"].encode('ascii','replace')
++ texts["EntryName"] = entry_infos["name"]
+ values = Node.GetEntry(index)
+ callbacks = Node.HasEntryCallbacks(index)
+ if index in variablelist:
+@@ -198,13 +198,13 @@ def GenerateFileContent(Node, headerfilepath, pointers_dict = {}):
+ strIndex += "\n/* index 0x%(index)04X : %(EntryName)s. */\n"%texts
+
+ # Entry type is VAR
+- if not isinstance(values, ListType):
++ if not isinstance(values, list):
+ subentry_infos = Node.GetSubentryInfos(index, 0)
+ typename = GetTypeName(Node, subentry_infos["type"])
+ typeinfos = GetValidTypeInfos(typename, [values])
+ if typename is "DOMAIN" and index in variablelist:
+ if not typeinfos[1]:
+- raise ValueError, _("\nDomain variable not initialized\nindex : 0x%04X\nsubindex : 0x00")%index
++ raise ValueError(_("\nDomain variable not initialized\nindex : 0x%04X\nsubindex : 0x00")%index)
+ texts["subIndexType"] = typeinfos[0]
+ if typeinfos[1] is not None:
+ texts["suffixe"] = "[%d]"%typeinfos[1]
+@@ -298,14 +298,14 @@ def GenerateFileContent(Node, headerfilepath, pointers_dict = {}):
+ name = "%(NodeName)s_Index%(index)04X"%texts
+ name=UnDigitName(name);
+ strIndex += " ODCallback_t %s_callbacks[] = \n {\n"%name
+- for subIndex in xrange(len(values)):
++ for subIndex in range(len(values)):
+ strIndex += " NULL,\n"
+ strIndex += " };\n"
+ indexCallbacks[index] = "*callbacks = %s_callbacks; "%name
+ else:
+ indexCallbacks[index] = ""
+ strIndex += " subindex %(NodeName)s_Index%(index)04X[] = \n {\n"%texts
+- for subIndex in xrange(len(values)):
++ for subIndex in range(len(values)):
+ subentry_infos = Node.GetSubentryInfos(index, subIndex)
+ if subIndex < len(values) - 1:
+ sep = ","
+@@ -514,8 +514,7 @@ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+ */
+ """%texts
+- contentlist = indexContents.keys()
+- contentlist.sort()
++ contentlist = sorted(indexContents.keys())
+ for index in contentlist:
+ fileContent += indexContents[index]
+
+@@ -600,6 +599,6 @@ def GenerateFile(filepath, node, pointers_dict = {}):
+ WriteFile(filepath, content)
+ WriteFile(headerfilepath, header)
+ return None
+- except ValueError, message:
++ except ValueError as message:
+ return _("Unable to Generate C File\n%s")%message
+
+diff --git a/objdictgen/networkedit.py b/objdictgen/networkedit.py
+index 6577d6f9760b..2ba72e6962e1 100644
+--- a/objdictgen/networkedit.py
++++ b/objdictgen/networkedit.py
+@@ -541,13 +541,13 @@ class networkedit(wx.Frame, NetworkEditorTemplate):
+ find_index = True
+ index, subIndex = result
+ result = OpenPDFDocIndex(index, ScriptDirectory)
+- if isinstance(result, (StringType, UnicodeType)):
++ if isinstance(result, str):
+ message = wx.MessageDialog(self, result, _("ERROR"), wx.OK|wx.ICON_ERROR)
+ message.ShowModal()
+ message.Destroy()
+ if not find_index:
+ result = OpenPDFDocIndex(None, ScriptDirectory)
+- if isinstance(result, (StringType, UnicodeType)):
++ if isinstance(result, str):
+ message = wx.MessageDialog(self, result, _("ERROR"), wx.OK|wx.ICON_ERROR)
+ message.ShowModal()
+ message.Destroy()
+diff --git a/objdictgen/node.py b/objdictgen/node.py
+index e73dacbe8248..acaf558a00c6 100755
+--- a/objdictgen/node.py
++++ b/objdictgen/node.py
+@@ -21,7 +21,7 @@
+ #License along with this library; if not, write to the Free Software
+ #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+-import cPickle
++import _pickle as cPickle
+ from types import *
+ import re
+
+@@ -348,7 +348,7 @@ def FindMapVariableList(mappingdictionary, Node, compute=True):
+ name = mappingdictionary[index]["values"][subIndex]["name"]
+ if mappingdictionary[index]["struct"] & OD_IdenticalSubindexes:
+ values = Node.GetEntry(index)
+- for i in xrange(len(values) - 1):
++ for i in range(len(values) - 1):
+ computed_name = name
+ if compute:
+ computed_name = StringFormat(computed_name, 1, i + 1)
+@@ -568,7 +568,7 @@ class Node:
+ elif subIndex == 1:
+ self.Dictionary[index] = [value]
+ return True
+- elif subIndex > 0 and type(self.Dictionary[index]) == ListType and subIndex == len(self.Dictionary[index]) + 1:
++ elif subIndex > 0 and type(self.Dictionary[index]) == list and subIndex == len(self.Dictionary[index]) + 1:
+ self.Dictionary[index].append(value)
+ return True
+ return False
+@@ -582,7 +582,7 @@ class Node:
+ if value != None:
+ self.Dictionary[index] = value
+ return True
+- elif type(self.Dictionary[index]) == ListType and 0 < subIndex <= len(self.Dictionary[index]):
++ elif type(self.Dictionary[index]) == list and 0 < subIndex <= len(self.Dictionary[index]):
+ if value != None:
+ self.Dictionary[index][subIndex - 1] = value
+ return True
+@@ -594,7 +594,7 @@ class Node:
+ if index in self.Dictionary:
+ if (comment != None or save != None or callback != None) and index not in self.ParamsDictionary:
+ self.ParamsDictionary[index] = {}
+- if subIndex == None or type(self.Dictionary[index]) != ListType and subIndex == 0:
++ if subIndex == None or type(self.Dictionary[index]) != list and subIndex == 0:
+ if comment != None:
+ self.ParamsDictionary[index]["comment"] = comment
+ if save != None:
+@@ -602,7 +602,7 @@ class Node:
+ if callback != None:
+ self.ParamsDictionary[index]["callback"] = callback
+ return True
+- elif type(self.Dictionary[index]) == ListType and 0 <= subIndex <= len(self.Dictionary[index]):
++ elif type(self.Dictionary[index]) == list and 0 <= subIndex <= len(self.Dictionary[index]):
+ if (comment != None or save != None or callback != None) and subIndex not in self.ParamsDictionary[index]:
+ self.ParamsDictionary[index][subIndex] = {}
+ if comment != None:
+@@ -626,7 +626,7 @@ class Node:
+ if index in self.ParamsDictionary:
+ self.ParamsDictionary.pop(index)
+ return True
+- elif type(self.Dictionary[index]) == ListType and subIndex == len(self.Dictionary[index]):
++ elif type(self.Dictionary[index]) == list and subIndex == len(self.Dictionary[index]):
+ self.Dictionary[index].pop(subIndex - 1)
+ if index in self.ParamsDictionary:
+ if subIndex in self.ParamsDictionary[index]:
+@@ -657,7 +657,7 @@ class Node:
+ def GetEntry(self, index, subIndex = None, compute = True):
+ if index in self.Dictionary:
+ if subIndex == None:
+- if type(self.Dictionary[index]) == ListType:
++ if type(self.Dictionary[index]) == list:
+ values = [len(self.Dictionary[index])]
+ for value in self.Dictionary[index]:
+ values.append(self.CompileValue(value, index, compute))
+@@ -665,11 +665,11 @@ class Node:
+ else:
+ return self.CompileValue(self.Dictionary[index], index, compute)
+ elif subIndex == 0:
+- if type(self.Dictionary[index]) == ListType:
++ if type(self.Dictionary[index]) == list:
+ return len(self.Dictionary[index])
+ else:
+ return self.CompileValue(self.Dictionary[index], index, compute)
+- elif type(self.Dictionary[index]) == ListType and 0 < subIndex <= len(self.Dictionary[index]):
++ elif type(self.Dictionary[index]) == list and 0 < subIndex <= len(self.Dictionary[index]):
+ return self.CompileValue(self.Dictionary[index][subIndex - 1], index, compute)
+ return None
+
+@@ -682,28 +682,28 @@ class Node:
+ self.ParamsDictionary = {}
+ if index in self.Dictionary:
+ if subIndex == None:
+- if type(self.Dictionary[index]) == ListType:
++ if type(self.Dictionary[index]) == list:
+ if index in self.ParamsDictionary:
+ result = []
+- for i in xrange(len(self.Dictionary[index]) + 1):
++ for i in range(len(self.Dictionary[index]) + 1):
+ line = DefaultParams.copy()
+ if i in self.ParamsDictionary[index]:
+ line.update(self.ParamsDictionary[index][i])
+ result.append(line)
+ return result
+ else:
+- return [DefaultParams.copy() for i in xrange(len(self.Dictionary[index]) + 1)]
++ return [DefaultParams.copy() for i in range(len(self.Dictionary[index]) + 1)]
+ else:
+ result = DefaultParams.copy()
+ if index in self.ParamsDictionary:
+ result.update(self.ParamsDictionary[index])
+ return result
+- elif subIndex == 0 and type(self.Dictionary[index]) != ListType:
++ elif subIndex == 0 and type(self.Dictionary[index]) != list:
+ result = DefaultParams.copy()
+ if index in self.ParamsDictionary:
+ result.update(self.ParamsDictionary[index])
+ return result
+- elif type(self.Dictionary[index]) == ListType and 0 <= subIndex <= len(self.Dictionary[index]):
++ elif type(self.Dictionary[index]) == list and 0 <= subIndex <= len(self.Dictionary[index]):
+ result = DefaultParams.copy()
+ if index in self.ParamsDictionary and subIndex in self.ParamsDictionary[index]:
+ result.update(self.ParamsDictionary[index][subIndex])
+@@ -780,23 +780,23 @@ class Node:
+ if self.UserMapping[index]["struct"] & OD_IdenticalSubindexes:
+ if self.IsStringType(self.UserMapping[index]["values"][subIndex]["type"]):
+ if self.IsRealType(values["type"]):
+- for i in xrange(len(self.Dictionary[index])):
++ for i in range(len(self.Dictionary[index])):
+ self.SetEntry(index, i + 1, 0.)
+ elif not self.IsStringType(values["type"]):
+- for i in xrange(len(self.Dictionary[index])):
++ for i in range(len(self.Dictionary[index])):
+ self.SetEntry(index, i + 1, 0)
+ elif self.IsRealType(self.UserMapping[index]["values"][subIndex]["type"]):
+ if self.IsStringType(values["type"]):
+- for i in xrange(len(self.Dictionary[index])):
++ for i in range(len(self.Dictionary[index])):
+ self.SetEntry(index, i + 1, "")
+ elif not self.IsRealType(values["type"]):
+- for i in xrange(len(self.Dictionary[index])):
++ for i in range(len(self.Dictionary[index])):
+ self.SetEntry(index, i + 1, 0)
+ elif self.IsStringType(values["type"]):
+- for i in xrange(len(self.Dictionary[index])):
++ for i in range(len(self.Dictionary[index])):
+ self.SetEntry(index, i + 1, "")
+ elif self.IsRealType(values["type"]):
+- for i in xrange(len(self.Dictionary[index])):
++ for i in range(len(self.Dictionary[index])):
+ self.SetEntry(index, i + 1, 0.)
+ else:
+ if self.IsStringType(self.UserMapping[index]["values"][subIndex]["type"]):
+@@ -883,14 +883,13 @@ class Node:
+ """
+ def GetIndexes(self):
+ listindex = self.Dictionary.keys()
+- listindex.sort()
+- return listindex
++ return sorted(listindex)
+
+ """
+ Print the Dictionary values
+ """
+ def Print(self):
+- print self.PrintString()
++ print(self.PrintString())
+
+ def PrintString(self):
+ result = ""
+@@ -899,7 +898,7 @@ class Node:
+ for index in listindex:
+ name = self.GetEntryName(index)
+ values = self.Dictionary[index]
+- if isinstance(values, ListType):
++ if isinstance(values, list):
+ result += "%04X (%s):\n"%(index, name)
+ for subidx, value in enumerate(values):
+ subentry_infos = self.GetSubentryInfos(index, subidx + 1)
+@@ -918,17 +917,17 @@ class Node:
+ value += (" %0"+"%d"%(size * 2)+"X")%BE_to_LE(data[i+7:i+7+size])
+ i += 7 + size
+ count += 1
+- elif isinstance(value, IntType):
++ elif isinstance(value, int):
+ value = "%X"%value
+ result += "%04X %02X (%s): %s\n"%(index, subidx+1, subentry_infos["name"], value)
+ else:
+- if isinstance(values, IntType):
++ if isinstance(values, int):
+ values = "%X"%values
+ result += "%04X (%s): %s\n"%(index, name, values)
+ return result
+
+ def CompileValue(self, value, index, compute = True):
+- if isinstance(value, (StringType, UnicodeType)) and value.upper().find("$NODEID") != -1:
++ if isinstance(value, str) and value.upper().find("$NODEID") != -1:
+ base = self.GetBaseIndex(index)
+ try:
+ raw = eval(value)
+@@ -1153,7 +1152,7 @@ def LE_to_BE(value, size):
+ """
+
+ data = ("%" + str(size * 2) + "." + str(size * 2) + "X") % value
+- list_car = [data[i:i+2] for i in xrange(0, len(data), 2)]
++ list_car = [data[i:i+2] for i in range(0, len(data), 2)]
+ list_car.reverse()
+ return "".join([chr(int(car, 16)) for car in list_car])
+
+diff --git a/objdictgen/nodeeditortemplate.py b/objdictgen/nodeeditortemplate.py
+index 462455f01df1..dc7c3743620d 100644
+--- a/objdictgen/nodeeditortemplate.py
++++ b/objdictgen/nodeeditortemplate.py
+@@ -83,10 +83,10 @@ class NodeEditorTemplate:
+ text = _("%s: %s entry of struct %s%s.")%(name,category,struct,number)
+ self.Frame.HelpBar.SetStatusText(text, 2)
+ else:
+- for i in xrange(3):
++ for i in range(3):
+ self.Frame.HelpBar.SetStatusText("", i)
+ else:
+- for i in xrange(3):
++ for i in range(3):
+ self.Frame.HelpBar.SetStatusText("", i)
+
+ def RefreshProfileMenu(self):
+@@ -95,7 +95,7 @@ class NodeEditorTemplate:
+ edititem = self.Frame.EditMenu.FindItemById(self.EDITMENU_ID)
+ if edititem:
+ length = self.Frame.AddMenu.GetMenuItemCount()
+- for i in xrange(length-6):
++ for i in range(length-6):
+ additem = self.Frame.AddMenu.FindItemByPosition(6)
+ self.Frame.AddMenu.Delete(additem.GetId())
+ if profile not in ("None", "DS-301"):
+@@ -201,7 +201,7 @@ class NodeEditorTemplate:
+ dialog.SetIndex(index)
+ if dialog.ShowModal() == wx.ID_OK:
+ result = self.Manager.AddMapVariableToCurrent(*dialog.GetValues())
+- if not isinstance(result, (StringType, UnicodeType)):
++ if not isinstance(result, str):
+ self.RefreshBufferState()
+ self.RefreshCurrentIndexList()
+ else:
+@@ -215,7 +215,7 @@ class NodeEditorTemplate:
+ dialog.SetTypeList(self.Manager.GetCustomisableTypes())
+ if dialog.ShowModal() == wx.ID_OK:
+ result = self.Manager.AddUserTypeToCurrent(*dialog.GetValues())
+- if not isinstance(result, (StringType, UnicodeType)):
++ if not isinstance(result, str):
+ self.RefreshBufferState()
+ self.RefreshCurrentIndexList()
+ else:
+diff --git a/objdictgen/nodelist.py b/objdictgen/nodelist.py
+index 97576ac24210..d1356434fe97 100644
+--- a/objdictgen/nodelist.py
++++ b/objdictgen/nodelist.py
+@@ -184,7 +184,7 @@ class NodeList:
+ result = self.Manager.OpenFileInCurrent(masterpath)
+ else:
+ result = self.Manager.CreateNewNode("MasterNode", 0x00, "master", "", "None", "", "heartbeat", ["DS302"])
+- if not isinstance(result, types.IntType):
++ if not isinstance(result, int):
+ return result
+ return None
+
+diff --git a/objdictgen/nodemanager.py b/objdictgen/nodemanager.py
+index 8ad5d83b430e..9394e05e76cd 100755
+--- a/objdictgen/nodemanager.py
++++ b/objdictgen/nodemanager.py
+@@ -31,6 +31,8 @@ import eds_utils, gen_cfile
+ from types import *
+ import os, re
+
++_ = lambda x: x
++
+ UndoBufferLength = 20
+
+ type_model = re.compile('([\_A-Z]*)([0-9]*)')
+@@ -65,7 +67,7 @@ class UndoBuffer:
+ self.MinIndex = 0
+ self.MaxIndex = 0
+ # Initialising buffer with currentstate at the first place
+- for i in xrange(UndoBufferLength):
++ for i in range(UndoBufferLength):
+ if i == 0:
+ self.Buffer.append(currentstate)
+ else:
+@@ -285,7 +287,8 @@ class NodeManager:
+ self.SetCurrentFilePath(filepath)
+ return index
+ except:
+- return _("Unable to load file \"%s\"!")%filepath
++ print( _("Unable to load file \"%s\"!")%filepath)
++ raise
+
+ """
+ Save current node in a file
+@@ -378,7 +381,7 @@ class NodeManager:
+ default = self.GetTypeDefaultValue(subentry_infos["type"])
+ # First case entry is record
+ if infos["struct"] & OD_IdenticalSubindexes:
+- for i in xrange(1, min(number,subentry_infos["nbmax"]-length) + 1):
++ for i in range(1, min(number,subentry_infos["nbmax"]-length) + 1):
+ node.AddEntry(index, length + i, default)
+ if not disable_buffer:
+ self.BufferCurrentNode()
+@@ -386,7 +389,7 @@ class NodeManager:
+ # Second case entry is array, only possible for manufacturer specific
+ elif infos["struct"] & OD_MultipleSubindexes and 0x2000 <= index <= 0x5FFF:
+ values = {"name" : "Undefined", "type" : 5, "access" : "rw", "pdo" : True}
+- for i in xrange(1, min(number,0xFE-length) + 1):
++ for i in range(1, min(number,0xFE-length) + 1):
+ node.AddMappingEntry(index, length + i, values = values.copy())
+ node.AddEntry(index, length + i, 0)
+ if not disable_buffer:
+@@ -408,7 +411,7 @@ class NodeManager:
+ nbmin = 1
+ # Entry is a record, or is an array of manufacturer specific
+ if infos["struct"] & OD_IdenticalSubindexes or 0x2000 <= index <= 0x5FFF and infos["struct"] & OD_IdenticalSubindexes:
+- for i in xrange(min(number, length - nbmin)):
++ for i in range(min(number, length - nbmin)):
+ self.RemoveCurrentVariable(index, length - i)
+ self.BufferCurrentNode()
+
+@@ -497,7 +500,7 @@ class NodeManager:
+ default = self.GetTypeDefaultValue(subentry_infos["type"])
+ node.AddEntry(index, value = [])
+ if "nbmin" in subentry_infos:
+- for i in xrange(subentry_infos["nbmin"]):
++ for i in range(subentry_infos["nbmin"]):
+ node.AddEntry(index, i + 1, default)
+ else:
+ node.AddEntry(index, 1, default)
+@@ -581,7 +584,7 @@ class NodeManager:
+ for menu,list in self.CurrentNode.GetSpecificMenu():
+ for i in list:
+ iinfos = self.GetEntryInfos(i)
+- indexes = [i + incr * iinfos["incr"] for incr in xrange(iinfos["nbmax"])]
++ indexes = [i + incr * iinfos["incr"] for incr in range(iinfos["nbmax"])]
+ if index in indexes:
+ found = True
+ diff = index - i
+@@ -613,10 +616,10 @@ class NodeManager:
+ if struct == rec:
+ values = {"name" : name + " %d[(sub)]", "type" : 0x05, "access" : "rw", "pdo" : True, "nbmax" : 0xFE}
+ node.AddMappingEntry(index, 1, values = values)
+- for i in xrange(number):
++ for i in range(number):
+ node.AddEntry(index, i + 1, 0)
+ else:
+- for i in xrange(number):
++ for i in range(number):
+ values = {"name" : "Undefined", "type" : 0x05, "access" : "rw", "pdo" : True}
+ node.AddMappingEntry(index, i + 1, values = values)
+ node.AddEntry(index, i + 1, 0)
+@@ -1029,7 +1032,7 @@ class NodeManager:
+ editors = []
+ values = node.GetEntry(index, compute = False)
+ params = node.GetParamsEntry(index)
+- if isinstance(values, ListType):
++ if isinstance(values, list):
+ for i, value in enumerate(values):
+ data.append({"value" : value})
+ data[-1].update(params[i])
+@@ -1049,7 +1052,7 @@ class NodeManager:
+ "type" : None, "value" : None,
+ "access" : None, "save" : "option",
+ "callback" : "option", "comment" : "string"}
+- if isinstance(values, ListType) and i == 0:
++ if isinstance(values, list) and i == 0:
+ if 0x1600 <= index <= 0x17FF or 0x1A00 <= index <= 0x1C00:
+ editor["access"] = "raccess"
+ else:
+diff --git a/objdictgen/objdictedit.py b/objdictgen/objdictedit.py
+index 9efb1ae83c0b..1a356fa2e7c5 100755
+--- a/objdictgen/objdictedit.py
++++ b/objdictgen/objdictedit.py
+@@ -30,8 +30,8 @@ __version__ = "$Revision: 1.48 $"
+
+ if __name__ == '__main__':
+ def usage():
+- print _("\nUsage of objdictedit.py :")
+- print "\n %s [Filepath, ...]\n"%sys.argv[0]
++ print(_("\nUsage of objdictedit.py :"))
++ print("\n %s [Filepath, ...]\n"%sys.argv[0])
+
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], "h", ["help"])
+@@ -343,7 +343,7 @@ class objdictedit(wx.Frame, NodeEditorTemplate):
+ if self.ModeSolo:
+ for filepath in filesOpen:
+ result = self.Manager.OpenFileInCurrent(os.path.abspath(filepath))
+- if isinstance(result, (IntType, LongType)):
++ if isinstance(result, int):
+ new_editingpanel = EditingPanel(self.FileOpened, self, self.Manager)
+ new_editingpanel.SetIndex(result)
+ self.FileOpened.AddPage(new_editingpanel, "")
+@@ -392,13 +392,13 @@ class objdictedit(wx.Frame, NodeEditorTemplate):
+ find_index = True
+ index, subIndex = result
+ result = OpenPDFDocIndex(index, ScriptDirectory)
+- if isinstance(result, (StringType, UnicodeType)):
++ if isinstance(result, str):
+ message = wx.MessageDialog(self, result, _("ERROR"), wx.OK|wx.ICON_ERROR)
+ message.ShowModal()
+ message.Destroy()
+ if not find_index:
+ result = OpenPDFDocIndex(None, ScriptDirectory)
+- if isinstance(result, (StringType, UnicodeType)):
++ if isinstance(result, str):
+ message = wx.MessageDialog(self, result, _("ERROR"), wx.OK|wx.ICON_ERROR)
+ message.ShowModal()
+ message.Destroy()
+@@ -448,7 +448,7 @@ class objdictedit(wx.Frame, NodeEditorTemplate):
+ answer = dialog.ShowModal()
+ dialog.Destroy()
+ if answer == wx.ID_YES:
+- for i in xrange(self.Manager.GetBufferNumber()):
++ for i in range(self.Manager.GetBufferNumber()):
+ if self.Manager.CurrentIsSaved():
+ self.Manager.CloseCurrent()
+ else:
+@@ -542,7 +542,7 @@ class objdictedit(wx.Frame, NodeEditorTemplate):
+ NMT = dialog.GetNMTManagement()
+ options = dialog.GetOptions()
+ result = self.Manager.CreateNewNode(name, id, nodetype, description, profile, filepath, NMT, options)
+- if isinstance(result, (IntType, LongType)):
++ if isinstance(result, int):
+ new_editingpanel = EditingPanel(self.FileOpened, self, self.Manager)
+ new_editingpanel.SetIndex(result)
+ self.FileOpened.AddPage(new_editingpanel, "")
+@@ -570,7 +570,7 @@ class objdictedit(wx.Frame, NodeEditorTemplate):
+ filepath = dialog.GetPath()
+ if os.path.isfile(filepath):
+ result = self.Manager.OpenFileInCurrent(filepath)
+- if isinstance(result, (IntType, LongType)):
++ if isinstance(result, int):
+ new_editingpanel = EditingPanel(self.FileOpened, self, self.Manager)
+ new_editingpanel.SetIndex(result)
+ self.FileOpened.AddPage(new_editingpanel, "")
+@@ -603,7 +603,7 @@ class objdictedit(wx.Frame, NodeEditorTemplate):
+ result = self.Manager.SaveCurrentInFile()
+ if not result:
+ self.SaveAs()
+- elif not isinstance(result, (StringType, UnicodeType)):
++ elif not isinstance(result, str):
+ self.RefreshBufferState()
+ else:
+ message = wx.MessageDialog(self, result, _("Error"), wx.OK|wx.ICON_ERROR)
+@@ -621,7 +621,7 @@ class objdictedit(wx.Frame, NodeEditorTemplate):
+ filepath = dialog.GetPath()
+ if os.path.isdir(os.path.dirname(filepath)):
+ result = self.Manager.SaveCurrentInFile(filepath)
+- if not isinstance(result, (StringType, UnicodeType)):
++ if not isinstance(result, str):
+ self.RefreshBufferState()
+ else:
+ message = wx.MessageDialog(self, result, _("Error"), wx.OK|wx.ICON_ERROR)
+@@ -665,7 +665,7 @@ class objdictedit(wx.Frame, NodeEditorTemplate):
+ filepath = dialog.GetPath()
+ if os.path.isfile(filepath):
+ result = self.Manager.ImportCurrentFromEDSFile(filepath)
+- if isinstance(result, (IntType, LongType)):
++ if isinstance(result, int):
+ new_editingpanel = EditingPanel(self.FileOpened, self, self.Manager)
+ new_editingpanel.SetIndex(result)
+ self.FileOpened.AddPage(new_editingpanel, "")
+diff --git a/objdictgen/objdictgen.py b/objdictgen/objdictgen.py
+index 9d5131b7a8c9..6dd88737fa18 100644
+--- a/objdictgen/objdictgen.py
++++ b/objdictgen/objdictgen.py
+@@ -29,8 +29,8 @@ from nodemanager import *
+ _ = lambda x: x
+
+ def usage():
+- print _("\nUsage of objdictgen.py :")
+- print "\n %s XMLFilePath CFilePath\n"%sys.argv[0]
++ print(_("\nUsage of objdictgen.py :"))
++ print("\n %s XMLFilePath CFilePath\n"%sys.argv[0])
+
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], "h", ["help"])
+@@ -57,20 +57,20 @@ if __name__ == '__main__':
+ if fileIn != "" and fileOut != "":
+ manager = NodeManager()
+ if os.path.isfile(fileIn):
+- print _("Parsing input file")
++ print(_("Parsing input file"))
+ result = manager.OpenFileInCurrent(fileIn)
+- if not isinstance(result, (StringType, UnicodeType)):
++ if not isinstance(result, str):
+ Node = result
+ else:
+- print result
++ print(result)
+ sys.exit(-1)
+ else:
+- print _("%s is not a valid file!")%fileIn
++ print(_("%s is not a valid file!")%fileIn)
+ sys.exit(-1)
+- print _("Writing output file")
++ print(_("Writing output file"))
+ result = manager.ExportCurrentToCFile(fileOut)
+- if isinstance(result, (UnicodeType, StringType)):
+- print result
++ if isinstance(result, str):
++ print(result)
+ sys.exit(-1)
+- print _("All done")
++ print(_("All done"))
+
diff --git a/patches/canfestival-3+hg20180126.794/series b/patches/canfestival-3+hg20180126.794/series
index 73f9b660f..06183b8a7 100644
--- a/patches/canfestival-3+hg20180126.794/series
+++ b/patches/canfestival-3+hg20180126.794/series
@@ -5,4 +5,6 @@
0003-Makefile.in-fix-suffix-rules.patch
0004-let-canfestival.h-include-config.h.patch
0005-Use-include-.-instead-of-include-.-for-own-files.patch
-# 3c7ac338090e2d1acca872cb33f8371f - git-ptx-patches magic
+0007-gnosis-port-to-python3.patch
+0008-port-to-python3.patch
+# c4e00d98381c6fe694a31333755e24e4 - git-ptx-patches magic
diff --git a/patches/aumix-2.9.1/autogen.sh b/patches/canutils-v2021.06.0/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/aumix-2.9.1/autogen.sh
+++ b/patches/canutils-v2021.06.0/autogen.sh
diff --git a/patches/cbmbasic/0001-Add-IOBASE-and-pseudo-timer-will-give-RND-functional.patch b/patches/cbmbasic/0001-Add-IOBASE-and-pseudo-timer-will-give-RND-functional.patch
deleted file mode 100644
index f455d0a14..000000000
--- a/patches/cbmbasic/0001-Add-IOBASE-and-pseudo-timer-will-give-RND-functional.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From: Wolfram Sang <ninja@the-dreams.de>
-Date: Sat, 29 Oct 2011 19:01:11 +0200
-Subject: [PATCH] Add IOBASE and pseudo-timer (will give RND-functionality)
-
-Signed-off-by: Wolfram Sang <ninja@the-dreams.de>
-
-# ---
-# 20091210 rsc: check if there is another upstream version
-# 20081127 wsa: already sent mainline and accepted.
----
- runtime.c | 14 ++++++++++++--
- 1 files changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/runtime.c b/runtime.c
-index 454000e..2c3c54b 100644
---- a/runtime.c
-+++ b/runtime.c
-@@ -29,6 +29,7 @@
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-+#include <time.h>
-
- unsigned char RAM[65536];
-
-@@ -155,6 +156,7 @@ init_os(int argc, char **argv) {
- interactive = 1;
- f = NULL;
- }
-+ srand(time(NULL));
- }
-
- static void
-@@ -565,8 +567,16 @@ PLOT() {
- /* IOBASE */
- static void
- IOBASE() {
-- printf("UNIMPL: IOBASE\n");
-- exit(1);
-+ /*
-+ * IOBASE is just used inside RND to get a timer value.
-+ * So, let's fake this here, too.
-+ */
-+ int pseudo_timer = rand();
-+ RAM[0xDC04] = pseudo_timer&0xff;
-+ RAM[0xDC05] = pseudo_timer>>8;
-+
-+ X = 0x00;
-+ Y = 0xDC;
- }
-
- int
diff --git a/patches/cbmbasic/series b/patches/cbmbasic/series
deleted file mode 100644
index 24a3eeb8f..000000000
--- a/patches/cbmbasic/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Add-IOBASE-and-pseudo-timer-will-give-RND-functional.patch
-# 92d915f4b4aaf53608a652ac1eeddc42 - git-ptx-patches magic
diff --git a/patches/cgic205/0001-Makefile-add-possibility-to-cross-compile.patch b/patches/cgic205/0001-Makefile-add-possibility-to-cross-compile.patch
deleted file mode 100644
index a6479e17a..000000000
--- a/patches/cgic205/0001-Makefile-add-possibility-to-cross-compile.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From: Marc Kleine-Budde <mkl@pengutronixd.de>
-Date: Wed, 2 May 2012 13:21:27 +0200
-Subject: [PATCH] Makefile: add possibility to cross compile
-
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- Makefile | 21 +++++++++++++--------
- 1 files changed, 13 insertions(+), 8 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index ad782bb..080aa23 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,21 +1,26 @@
--CFLAGS=-g -Wall
--CC=gcc
-+CFLAGS+=-g -O2 -Wall
- AR=ar
- RANLIB=ranlib
- LIBS=-L./ -lcgic
-+PREFIX=/usr/local
-
--all: libcgic.a cgictest.cgi capture
-+all: libcgic.a libcgic.so.2.05
-
- install: libcgic.a
-- cp libcgic.a /usr/local/lib
-- cp cgic.h /usr/local/include
-- @echo libcgic.a is in /usr/local/lib. cgic.h is in /usr/local/include.
-+ cp libcgic.a libcgic.so.2.05 $(DESTDIR)$(PREFIX)/lib
-+ cp cgic.h $(DESTDIR)$(PREFIX)/include
-+ @echo libcgic.a is in $(PREFIX)/lib. cgic.h is in $(PREFIX)/include.
-
--libcgic.a: cgic.o cgic.h
-+libcgic.a: cgic.c cgic.h
- rm -f libcgic.a
-+ $(CC) $(CFLAGS) -D_REENTRANT -pipe -c cgic.c -o cgic.o
- $(AR) rc libcgic.a cgic.o
- $(RANLIB) libcgic.a
-
-+libcgic.so.2.05: cgic.c cgic.h
-+ $(CC) $(CFLAGS) -D_REENTRANT -fPIC -pipe -c cgic.c -o cgic.o
-+ $(CC) -shared -Wl,-soname,libcgic.so.2 -o libcgic.so.2.05 cgic.o -lc
-+
- #mingw32 and cygwin users: replace .cgi with .exe
-
- cgictest.cgi: cgictest.o libcgic.a
-@@ -25,5 +30,5 @@ capture: capture.o libcgic.a
- gcc capture.o -o capture ${LIBS}
-
- clean:
-- rm -f *.o *.a cgictest.cgi capture
-+ rm -f *.o *.a *.so.* cgictest.cgi capture
-
diff --git a/patches/cgic205/series b/patches/cgic205/series
deleted file mode 100644
index c3a68898f..000000000
--- a/patches/cgic205/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Makefile-add-possibility-to-cross-compile.patch
-# e802bf5fd4e0844a492fbaa8bd49d556 - git-ptx-patches magic
diff --git a/patches/chrony-3.5/0001-configure-make-unrecognized-option-a-fatal-error.patch b/patches/chrony-4.5/0001-configure-make-unrecognized-option-a-fatal-error.patch
index 01f213633..c7b762015 100644
--- a/patches/chrony-3.5/0001-configure-make-unrecognized-option-a-fatal-error.patch
+++ b/patches/chrony-4.5/0001-configure-make-unrecognized-option-a-fatal-error.patch
@@ -12,10 +12,10 @@ Signed-off-by: Bruno Thomsen <bruno.thomsen@gmail.com>
1 file changed, 1 insertion(+)
diff --git a/configure b/configure
-index 323f5743cd57..080f7bce746d 100755
+index eefe5de82cb6..000021624709 100755
--- a/configure
+++ b/configure
-@@ -388,6 +388,7 @@ do
+@@ -410,6 +410,7 @@ do
;;
* )
echo "Unrecognized option : " $option
diff --git a/patches/chrony-3.5/series b/patches/chrony-4.5/series
index 501972558..501972558 100644
--- a/patches/chrony-3.5/series
+++ b/patches/chrony-4.5/series
diff --git a/patches/classpath-0.99/0001-Fix-building-with-OpenJDK-1.8.patch b/patches/classpath-0.99/0001-Fix-building-with-OpenJDK-1.8.patch
deleted file mode 100644
index 656eb3c70..000000000
--- a/patches/classpath-0.99/0001-Fix-building-with-OpenJDK-1.8.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From: =?UTF-8?q?Guillermo=20Rodr=C3=ADguez?= <guille.rodriguez@gmail.com>
-Date: Thu, 22 Nov 2018 06:44:55 +0100
-Subject: [PATCH] Fix building with OpenJDK 1.8
-
-This patch makes it possible to build GNU Classpath using javac
-from OpenJDK 1.7 and 1.8.
-
-- From the javac docs: "Classes found through the classpath are
-subject to automatic recompilation if their sources are found."
-javac from OpenJDK 1.7+ will try (and fail) to recompile "standard"
-Java classes (e.g. java/lang/Object.java) when compiling the Java
-test class. Fix this by explicitly passing an empty -sourcepath.
-
-- Use -source/-target 1.6 instead of 1.5, as the latter is
-deprecated in Java 8.
----
- examples/Makefile.am | 4 ++--
- lib/Makefile.am | 4 ++--
- m4/ac_prog_java_works.m4 | 3 ++-
- m4/ac_prog_javac_works.m4 | 4 ++--
- tools/Makefile.am | 4 ++--
- 5 files changed, 10 insertions(+), 9 deletions(-)
-
-diff --git a/examples/Makefile.am b/examples/Makefile.am
-index ff47801247c9..ba40c08747b8 100644
---- a/examples/Makefile.am
-+++ b/examples/Makefile.am
-@@ -2,9 +2,9 @@
- GLIBJ_CLASSPATH='$(top_builddir)/lib/glibj.zip:$(top_builddir)/lib'
-
- if GCJ_JAVAC
--JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.5 -ftarget=1.5 --encoding=UTF-8 --bootclasspath=$(GLIBJ_CLASSPATH) --classpath='$(top_builddir)/tools/tools.zip'
-+JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.6 -ftarget=1.6 --encoding=UTF-8 --bootclasspath=$(GLIBJ_CLASSPATH) --classpath='$(top_builddir)/tools/tools.zip'
- else
--JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath '$(top_builddir)/tools/tools.zip'
-+JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.6 -target 1.6 -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath '$(top_builddir)/tools/tools.zip'
- endif
-
- # All our example java source files
-diff --git a/lib/Makefile.am b/lib/Makefile.am
-index 50d1baa9b738..97a8b692692c 100644
---- a/lib/Makefile.am
-+++ b/lib/Makefile.am
-@@ -9,9 +9,9 @@ compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$
-
- # handling source to bytecode compiler programs like gcj, jikes and kjc
- if GCJ_JAVAC
--JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.5 -ftarget=1.5 --bootclasspath='' --classpath=$(compile_classpath) -d . @classes
-+JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.6 -ftarget=1.6 --bootclasspath='' --classpath=$(compile_classpath) -d . @classes
- else
--JCOMPILER = $(JAVAC) $(JAVACFLAGS) $(JAVAC_MEM_OPT) -source 1.5 -target 1.5 -bootclasspath '' -classpath $(compile_classpath) -d . @classes
-+JCOMPILER = $(JAVAC) $(JAVACFLAGS) $(JAVAC_MEM_OPT) -source 1.6 -target 1.6 -bootclasspath '' -classpath $(compile_classpath) -d . @classes
- endif
-
- if CREATE_COLLECTIONS
-diff --git a/m4/ac_prog_java_works.m4 b/m4/ac_prog_java_works.m4
-index d3f274478d09..f36318ba1c9f 100644
---- a/m4/ac_prog_java_works.m4
-+++ b/m4/ac_prog_java_works.m4
-@@ -62,7 +62,8 @@ EOF
- changequote([, ])dnl
- if test x$ac_cv_prog_uudecode_base64 != xyes; then
- AC_REQUIRE([AC_PROG_JAVAC_WORKS])
-- if AC_TRY_COMMAND($JAVAC $JAVACFLAGS $JAVA_TEST) && test -s $CLASS_TEST; then
-+ CMD="$JAVAC $JAVACFLAGS -sourcepath '' $JAVA_TEST"
-+ if AC_TRY_COMMAND($CMD) && test -s $CLASS_TEST; then
- :
- else
- echo "configure: failed program was:" >&AC_FD_CC
-diff --git a/m4/ac_prog_javac_works.m4 b/m4/ac_prog_javac_works.m4
-index 7fb298d49be5..fbe24ce60f25 100644
---- a/m4/ac_prog_javac_works.m4
-+++ b/m4/ac_prog_javac_works.m4
-@@ -33,9 +33,9 @@ public class Object
- }
- EOF
- if test x$JAVAC_IS_GCJ = xyes; then
-- CMD="$JAVAC $JAVACFLAGS -fsource=1.5 -ftarget=1.5 $JAVA_TEST"
-+ CMD="$JAVAC $JAVACFLAGS -fsource=1.6 -ftarget=1.6 $JAVA_TEST"
- else
-- CMD="$JAVAC $JAVACFLAGS -source 1.5 -target 1.5 $JAVA_TEST"
-+ CMD="$JAVAC $JAVACFLAGS -sourcepath '' -source 1.6 -target 1.6 $JAVA_TEST"
- fi
- if AC_TRY_COMMAND($CMD) >/dev/null 2>&1; then
- ac_cv_prog_javac_works=yes
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index c5db7cd0ada4..54cd2ceab5ed 100755
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -14,9 +14,9 @@ GLIBJ_CLASSPATH=asm:$(ANTLR_CLASSPATH)
-
- # Setup the compiler to use the GNU Classpath library we just built.
- if GCJ_JAVAC
--JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.5 -ftarget=1.5 --encoding=UTF-8 --bootclasspath=$(GLIBJ_BOOTCLASSPATH) --classpath=$(GLIBJ_CLASSPATH)
-+JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.6 -ftarget=1.6 --encoding=UTF-8 --bootclasspath=$(GLIBJ_BOOTCLASSPATH) --classpath=$(GLIBJ_CLASSPATH)
- else
--JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH)
-+JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.6 -target 1.6 -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH)
- endif
-
- if CREATE_WRAPPERS
diff --git a/patches/classpath-0.99/0002-Fix-unmappable-character-error.patch b/patches/classpath-0.99/0002-Fix-unmappable-character-error.patch
deleted file mode 100644
index 1427ea3c1..000000000
--- a/patches/classpath-0.99/0002-Fix-unmappable-character-error.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From: =?UTF-8?q?Guillermo=20Rodr=C3=ADguez?= <guille.rodriguez@gmail.com>
-Date: Thu, 22 Nov 2018 06:44:55 +0100
-Subject: [PATCH] Fix unmappable character error
-
-Fix unmappable character to make it possible to build when
-default locale is not UTF-8.
----
- java/util/regex/Matcher.java | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/java/util/regex/Matcher.java b/java/util/regex/Matcher.java
-index 8d033d5e3160..584d9a4f8c8e 100644
---- a/java/util/regex/Matcher.java
-+++ b/java/util/regex/Matcher.java
-@@ -620,7 +620,7 @@ public final class Matcher implements MatchResult
- *
- * @param s the string to literalize.
- * @return the literalized string.
-- * @since 1.5
-+ * @since 1.5
- */
- public static String quoteReplacement(String s)
- {
diff --git a/patches/classpath-0.99/autogen.sh b/patches/classpath-0.99/autogen.sh
deleted file mode 100755
index 9ca025f61..000000000
--- a/patches/classpath-0.99/autogen.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-exec ./autogen.sh
diff --git a/patches/classpath-0.99/series b/patches/classpath-0.99/series
deleted file mode 100644
index e43938734..000000000
--- a/patches/classpath-0.99/series
+++ /dev/null
@@ -1,5 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Fix-building-with-OpenJDK-1.8.patch
-0002-Fix-unmappable-character-error.patch
-# 3ac111393d482d13349d5b5141d89368 - git-ptx-patches magic
diff --git a/patches/cog-0.8.1/0001-CMake-install-D-Bus-policy-configuration-to-CMAKE_IN.patch b/patches/cog-0.8.1/0001-CMake-install-D-Bus-policy-configuration-to-CMAKE_IN.patch
deleted file mode 100644
index 9f2a19009..000000000
--- a/patches/cog-0.8.1/0001-CMake-install-D-Bus-policy-configuration-to-CMAKE_IN.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From: Bastian Krause <bst@pengutronix.de>
-Date: Wed, 14 Apr 2021 17:36:24 +0200
-Subject: [PATCH] CMake: install D-Bus policy configuration to
- CMAKE_INSTALL_DATADIR
-
-The D-BUS system bus policy config should reside in
-CMAKE_INSTALL_DATADIR rather than in CMAKE_INSTALL_SYSCONFDIR.
-
-See:
-
- https://gitlab.freedesktop.org/dbus/dbus/-/blob/ef55a3db0d8f17848f8a579092fb05900cc076f5/bus/CMakeLists.txt#L117
-
-Forwarded: https://github.com/Igalia/cog/pull/296
-Signed-off-by: Bastian Krause <bst@pengutronix.de>
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index cb51087359fc..2fcd63845212 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -157,7 +157,7 @@ if (COG_DBUS_SYSTEM_BUS)
- configure_file(dbus/policy.conf.in ${COG_DEFAULT_APPID}.conf @ONLY)
- install(
- FILES ${CMAKE_CURRENT_BINARY_DIR}/${COG_DEFAULT_APPID}.conf
-- DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/dbus-1/system.d
-+ DESTINATION ${CMAKE_INSTALL_DATADIR}/dbus-1/system.d
- COMPONENT "runtime"
- )
-
diff --git a/patches/cog-0.8.1/series b/patches/cog-0.8.1/series
deleted file mode 100644
index 14639312e..000000000
--- a/patches/cog-0.8.1/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-CMake-install-D-Bus-policy-configuration-to-CMAKE_IN.patch
-# a7cfa1be71dd856d687d8a3863e5a56f - git-ptx-patches magic
diff --git a/patches/bayer2rgb3-0.4.1/autogen.sh b/patches/cpputest-3.8/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/bayer2rgb3-0.4.1/autogen.sh
+++ b/patches/cpputest-3.8/autogen.sh
diff --git a/patches/crda-3.18/0001-fix-linking-libreg.patch b/patches/crda-4.15/0001-fix-linking-libreg.patch
index 8eae90bd3..6b566ba04 100644
--- a/patches/crda-3.18/0001-fix-linking-libreg.patch
+++ b/patches/crda-4.15/0001-fix-linking-libreg.patch
@@ -9,7 +9,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/Makefile b/Makefile
-index a3ead30371c9..2f485724c3be 100644
+index 6ca26f341dfa..832399dea8db 100644
--- a/Makefile
+++ b/Makefile
@@ -30,7 +30,7 @@ CFLAGS += -std=gnu99 -Wall -Werror -pedantic
@@ -39,10 +39,10 @@ index a3ead30371c9..2f485724c3be 100644
@@ -116,7 +116,7 @@ keys-%.c: utils/key2pub.py $(wildcard $(PUBKEY_DIR)/*.pem)
- $(LIBREG): regdb.h reglib.h reglib.c
+ $(LIBREG): reglib.c regdb.h reglib.h
$(NQ) ' CC ' $@
-- $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^
-+ $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $^ $(LIBREGLIBS)
+- $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $<
++ $(Q)$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -shared -Wl,-soname,$(LIBREG) $< $(LIBREGLIBS)
install-libreg-headers:
$(NQ) ' INSTALL libreg-headers'
diff --git a/patches/crda-3.18/0002-Do-not-run-ldconfig-if-DESTDIR-is-set.patch b/patches/crda-4.15/0002-Do-not-run-ldconfig-if-DESTDIR-is-set.patch
index fac346892..8f40e0a89 100644
--- a/patches/crda-3.18/0002-Do-not-run-ldconfig-if-DESTDIR-is-set.patch
+++ b/patches/crda-4.15/0002-Do-not-run-ldconfig-if-DESTDIR-is-set.patch
@@ -8,13 +8,13 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1 file changed, 2 insertions(+)
diff --git a/Makefile b/Makefile
-index 2f485724c3be..b74d3b544bd9 100644
+index 832399dea8db..4ba2ed5aadd8 100644
--- a/Makefile
+++ b/Makefile
@@ -127,7 +127,9 @@ install-libreg:
$(NQ) ' INSTALL libreg'
$(Q)mkdir -p $(DESTDIR)/$(LIBDIR)
- $(Q)cp $(LIBREG) $(DESTDIR)/$(LIBDIR)/
+ $(Q)$(INSTALL) -m 644 $(LIBREG) $(DESTDIR)/$(LIBDIR)/
+ifndef DESTDIR
$(Q)ldconfig
+endif
diff --git a/patches/crda-3.18/0003-Allow-build-without-embedding-pubkey-data-into-crda-.patch b/patches/crda-4.15/0003-Allow-build-without-embedding-pubkey-data-into-crda-.patch
index 5a55618e6..a5b9fb9f3 100644
--- a/patches/crda-3.18/0003-Allow-build-without-embedding-pubkey-data-into-crda-.patch
+++ b/patches/crda-4.15/0003-Allow-build-without-embedding-pubkey-data-into-crda-.patch
@@ -10,7 +10,7 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
-index b74d3b544bd9..9ce318484001 100644
+index 4ba2ed5aadd8..8f45630296d7 100644
--- a/Makefile
+++ b/Makefile
@@ -42,7 +42,12 @@ ifeq ($(USE_OPENSSL),1)
@@ -27,7 +27,7 @@ index b74d3b544bd9..9ce318484001 100644
else
CFLAGS += -DUSE_GCRYPT
diff --git a/reglib.c b/reglib.c
-index e00e9b8d4b44..87691022f9e7 100644
+index 4dee40151bd6..6f1edec4e154 100644
--- a/reglib.c
+++ b/reglib.c
@@ -30,7 +30,7 @@
diff --git a/patches/crda-3.18/0004-udev-Fix-rule-for-initial-setup.patch b/patches/crda-4.15/0004-udev-Fix-rule-for-initial-setup.patch
index 551b84bf6..551b84bf6 100644
--- a/patches/crda-3.18/0004-udev-Fix-rule-for-initial-setup.patch
+++ b/patches/crda-4.15/0004-udev-Fix-rule-for-initial-setup.patch
diff --git a/patches/crda-3.18/series b/patches/crda-4.15/series
index fdaa19478..fdaa19478 100644
--- a/patches/crda-3.18/series
+++ b/patches/crda-4.15/series
diff --git a/patches/cryptodev-linux-1.13/0001-zero-copy-Fix-build-for-Linux-6.4.patch b/patches/cryptodev-linux-1.13/0001-zero-copy-Fix-build-for-Linux-6.4.patch
new file mode 100644
index 000000000..e63e12bd7
--- /dev/null
+++ b/patches/cryptodev-linux-1.13/0001-zero-copy-Fix-build-for-Linux-6.4.patch
@@ -0,0 +1,33 @@
+From: Gaurav Jain <gaurav.jain@nxp.com>
+Date: Tue, 30 May 2023 17:09:42 +0530
+Subject: [PATCH] zero copy: Fix build for Linux 6.4
+
+get_user_pages_remote api prototype is changed in kernel.
+struct vm_area_struct **vmas argument is removed.
+Migrate to the new API.
+
+Signed-off-by: Gaurav Jain <gaurav.jain@nxp.com>
+---
+ zc.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/zc.c b/zc.c
+index fdf7da17e2e1..6637945a9227 100644
+--- a/zc.c
++++ b/zc.c
+@@ -80,10 +80,14 @@ int __get_userbuf(uint8_t __user *addr, uint32_t len, int write,
+ ret = get_user_pages_remote(task, mm,
+ (unsigned long)addr, pgcount, write ? FOLL_WRITE : 0,
+ pg, NULL, NULL);
+-#else
++#elif (LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0))
+ ret = get_user_pages_remote(mm,
+ (unsigned long)addr, pgcount, write ? FOLL_WRITE : 0,
+ pg, NULL, NULL);
++#else
++ ret = get_user_pages_remote(mm,
++ (unsigned long)addr, pgcount, write ? FOLL_WRITE : 0,
++ pg, NULL);
+ #endif
+ #if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0))
+ up_read(&mm->mmap_sem);
diff --git a/patches/cryptodev-linux-1.13/0002-cryptodev_verbosity-Fix-build-for-Linux-6.4.patch b/patches/cryptodev-linux-1.13/0002-cryptodev_verbosity-Fix-build-for-Linux-6.4.patch
new file mode 100644
index 000000000..4c11c5d0a
--- /dev/null
+++ b/patches/cryptodev-linux-1.13/0002-cryptodev_verbosity-Fix-build-for-Linux-6.4.patch
@@ -0,0 +1,40 @@
+From: Gaurav Jain <gaurav.jain@nxp.com>
+Date: Wed, 28 Jun 2023 12:44:32 +0530
+Subject: [PATCH] cryptodev_verbosity: Fix build for Linux 6.4
+
+register_sysctl_table api is removed in kernel.
+migrate to the new api register_sysctl.
+
+child is also removed in linux 6.4 ctl_table struct.
+
+Signed-off-by: Gaurav Jain <gaurav.jain@nxp.com>
+---
+ ioctl.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/ioctl.c b/ioctl.c
+index 8f241b8678f6..4262bbd58acc 100644
+--- a/ioctl.c
++++ b/ioctl.c
+@@ -1246,7 +1246,9 @@ static struct ctl_table verbosity_ctl_root[] = {
+ {
+ .procname = "ioctl",
+ .mode = 0555,
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0))
+ .child = verbosity_ctl_dir,
++#endif
+ },
+ {},
+ };
+@@ -1267,7 +1269,11 @@ static int __init init_cryptodev(void)
+ return rc;
+ }
+
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0))
+ verbosity_sysctl_header = register_sysctl_table(verbosity_ctl_root);
++#else
++ verbosity_sysctl_header = register_sysctl(verbosity_ctl_root->procname, verbosity_ctl_dir);
++#endif
+
+ pr_info(PFX "driver %s loaded.\n", VERSION);
+
diff --git a/patches/cryptodev-linux-1.13/0003-Move-recent-Linux-version-ifdefs-from-v6.4-to-v6.5.patch b/patches/cryptodev-linux-1.13/0003-Move-recent-Linux-version-ifdefs-from-v6.4-to-v6.5.patch
new file mode 100644
index 000000000..7905e586f
--- /dev/null
+++ b/patches/cryptodev-linux-1.13/0003-Move-recent-Linux-version-ifdefs-from-v6.4-to-v6.5.patch
@@ -0,0 +1,59 @@
+From: =?UTF-8?q?Joan=20Bruguera=20Mic=C3=B3?= <joanbrugueram@gmail.com>
+Date: Mon, 3 Jul 2023 00:46:02 +0000
+Subject: [PATCH] Move recent Linux version #ifdefs from v6.4 to v6.5
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The latest commits, meant to fix the build on Linux 6.4, are actually
+fixing the build for API changes introduced in the merge window of the
+yet-unreleased Linux 6.5, and actually break the build for Linux 6.4.
+
+In particular, the upstream commits introducing the API changes are the
+following, which are *not* included in the Linux v6.4 tag:
+* https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=19c4e618a1bc3d0cad1f04c857be8076cb05bbb2
+* https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ca5e863233e8f6acd1792fd85d6bc2729a1b2c10
+
+Change to #ifdef's to v6.5, where they will most likely be included.
+
+Signed-off-by: Joan Bruguera Micó <joanbrugueram@gmail.com>
+---
+ ioctl.c | 4 ++--
+ zc.c | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/ioctl.c b/ioctl.c
+index 4262bbd58acc..e3eefe112914 100644
+--- a/ioctl.c
++++ b/ioctl.c
+@@ -1246,7 +1246,7 @@ static struct ctl_table verbosity_ctl_root[] = {
+ {
+ .procname = "ioctl",
+ .mode = 0555,
+-#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0))
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 5, 0))
+ .child = verbosity_ctl_dir,
+ #endif
+ },
+@@ -1269,7 +1269,7 @@ static int __init init_cryptodev(void)
+ return rc;
+ }
+
+-#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0))
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 5, 0))
+ verbosity_sysctl_header = register_sysctl_table(verbosity_ctl_root);
+ #else
+ verbosity_sysctl_header = register_sysctl(verbosity_ctl_root->procname, verbosity_ctl_dir);
+diff --git a/zc.c b/zc.c
+index 6637945a9227..00e00c13e5fc 100644
+--- a/zc.c
++++ b/zc.c
+@@ -80,7 +80,7 @@ int __get_userbuf(uint8_t __user *addr, uint32_t len, int write,
+ ret = get_user_pages_remote(task, mm,
+ (unsigned long)addr, pgcount, write ? FOLL_WRITE : 0,
+ pg, NULL, NULL);
+-#elif (LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0))
++#elif (LINUX_VERSION_CODE < KERNEL_VERSION(6, 5, 0))
+ ret = get_user_pages_remote(mm,
+ (unsigned long)addr, pgcount, write ? FOLL_WRITE : 0,
+ pg, NULL, NULL);
diff --git a/patches/cryptodev-linux-1.13/0004-Fix-build-for-Linux-6.7-rc1.patch b/patches/cryptodev-linux-1.13/0004-Fix-build-for-Linux-6.7-rc1.patch
new file mode 100644
index 000000000..07de5d4d2
--- /dev/null
+++ b/patches/cryptodev-linux-1.13/0004-Fix-build-for-Linux-6.7-rc1.patch
@@ -0,0 +1,34 @@
+From: =?UTF-8?q?Joan=20Bruguera=20Mic=C3=B3?= <joanbrugueram@gmail.com>
+Date: Sun, 10 Dec 2023 13:57:55 +0000
+Subject: [PATCH] Fix build for Linux 6.7-rc1
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Since Linux 6.7-rc1, no ahash algorithms set a nonzero alignmask,
+and therefore `crypto_ahash_alignmask` has been removed.
+
+See also: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0f8660c82b79af595b056f6b9f4f227edeb88574
+ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c626910f3f1bbce6ad18bc613d895d2a089ed95e
+
+Signed-off-by: Joan Bruguera Micó <joanbrugueram@gmail.com>
+---
+ cryptlib.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/cryptlib.c b/cryptlib.c
+index 4d739e535f44..0e59d4cd96b8 100644
+--- a/cryptlib.c
++++ b/cryptlib.c
+@@ -381,7 +381,11 @@ int cryptodev_hash_init(struct hash_data *hdata, const char *alg_name,
+ }
+
+ hdata->digestsize = crypto_ahash_digestsize(hdata->async.s);
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 7, 0))
+ hdata->alignmask = crypto_ahash_alignmask(hdata->async.s);
++#else
++ hdata->alignmask = 0;
++#endif
+
+ init_completion(&hdata->async.result.completion);
+
diff --git a/patches/cryptodev-linux-1.13/series b/patches/cryptodev-linux-1.13/series
new file mode 100644
index 000000000..41b308456
--- /dev/null
+++ b/patches/cryptodev-linux-1.13/series
@@ -0,0 +1,7 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-zero-copy-Fix-build-for-Linux-6.4.patch
+0002-cryptodev_verbosity-Fix-build-for-Linux-6.4.patch
+0003-Move-recent-Linux-version-ifdefs-from-v6.4-to-v6.5.patch
+0004-Fix-build-for-Linux-6.7-rc1.patch
+# 19e654e3a0d17c03488aa9ea5adc09e5 - git-ptx-patches magic
diff --git a/patches/dbus-1.15.8/0001-HACK-meson_post_install.py-don-t-try-to-change-owner.patch b/patches/dbus-1.15.8/0001-HACK-meson_post_install.py-don-t-try-to-change-owner.patch
new file mode 100644
index 000000000..971cab3c3
--- /dev/null
+++ b/patches/dbus-1.15.8/0001-HACK-meson_post_install.py-don-t-try-to-change-owner.patch
@@ -0,0 +1,25 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Fri, 8 Dec 2023 18:12:20 +0100
+Subject: [PATCH] HACK: meson_post_install.py: don't try to change
+ owner/permissions for dbus-daemon-launch-helper
+
+This tries to get the uid from the build host. This can fail if the user
+is missing or produces an incorrect uid.
+This is not needed here anyways because ptxdist explicitly sets the
+correct owner/permissions during targetinstall.
+So just skip this during install.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ meson_post_install.py | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/meson_post_install.py b/meson_post_install.py
+index cfc03b2219ff..1d007ad65e6e 100755
+--- a/meson_post_install.py
++++ b/meson_post_install.py
+@@ -103,4 +103,3 @@ def post_install_exe():
+
+ if __name__ == "__main__":
+ post_install_relocation()
+- post_install_exe()
diff --git a/patches/dbus-1.15.8/series b/patches/dbus-1.15.8/series
new file mode 100644
index 000000000..8f5dfcd4b
--- /dev/null
+++ b/patches/dbus-1.15.8/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-HACK-meson_post_install.py-don-t-try-to-change-owner.patch
+# f313c4305c590ba31dfcce93696743c2 - git-ptx-patches magic
diff --git a/patches/dhcp-4.4.2/0001-Fixed-gcc-10-compilation-issues.patch b/patches/dhcp-4.4.2/0001-Fixed-gcc-10-compilation-issues.patch
deleted file mode 100644
index f0e3cc450..000000000
--- a/patches/dhcp-4.4.2/0001-Fixed-gcc-10-compilation-issues.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From: Thomas Markwalder <tmark@isc.org>
-Date: Thu, 30 Jul 2020 10:01:36 -0400
-Subject: [PATCH] Fixed gcc 10 compilation issues
-
-client/dhclient.c
-relay/dhcrelay.c
- extern'ed local_port,remote_port
-
-common/discover.c
- init local_port,remote_port to 0
-
-server/mdb.c
- extern'ed dhcp_type_host
-
-server/mdb6.c
- create_prefix6() - eliminated memcpy string overflow error
-
-Origin: https://sources.debian.org/patches/isc-dhcp/4.4.1-2.2/Fixed_gcc_10_compilation_issues.patch/
----
- client/dhclient.c | 5 +++--
- relay/dhcrelay.c | 4 ++--
- server/mdb.c | 2 +-
- server/mdb6.c | 2 +-
- 4 files changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/client/dhclient.c b/client/dhclient.c
-index 189e527094e8..7a7837cb8152 100644
---- a/client/dhclient.c
-+++ b/client/dhclient.c
-@@ -83,8 +83,9 @@ static const char message [] = "Internet Systems Consortium DHCP Client";
- static const char url [] = "For info, please visit https://www.isc.org/software/dhcp/";
- #endif /* UNIT_TEST */
-
--u_int16_t local_port = 0;
--u_int16_t remote_port = 0;
-+extern u_int16_t local_port;
-+extern u_int16_t remote_port;
-+
- #if defined(DHCPv6) && defined(DHCP4o6)
- int dhcp4o6_state = -1; /* -1 = stopped, 0 = polling, 1 = started */
- #endif
-diff --git a/relay/dhcrelay.c b/relay/dhcrelay.c
-index 883d5058f2ee..7211e3bbbec9 100644
---- a/relay/dhcrelay.c
-+++ b/relay/dhcrelay.c
-@@ -95,8 +95,8 @@ enum { forward_and_append, /* Forward and append our own relay option. */
- forward_untouched, /* Forward without changes. */
- discard } agent_relay_mode = forward_and_replace;
-
--u_int16_t local_port;
--u_int16_t remote_port;
-+extern u_int16_t local_port;
-+extern u_int16_t remote_port;
-
- /* Relay agent server list. */
- struct server_list {
-diff --git a/server/mdb.c b/server/mdb.c
-index ff8a707fac1b..8266d76432b8 100644
---- a/server/mdb.c
-+++ b/server/mdb.c
-@@ -67,7 +67,7 @@ static host_id_info_t *host_id_info = NULL;
-
- int numclasseswritten;
-
--omapi_object_type_t *dhcp_type_host;
-+extern omapi_object_type_t *dhcp_type_host;
-
- isc_result_t enter_class(cd, dynamicp, commit)
- struct class *cd;
-diff --git a/server/mdb6.c b/server/mdb6.c
-index da7baf6e50df..ebe01e5607cb 100644
---- a/server/mdb6.c
-+++ b/server/mdb6.c
-@@ -1945,7 +1945,7 @@ create_prefix6(struct ipv6_pool *pool, struct iasubopt **pref,
- }
- new_ds.data = new_ds.buffer->data;
- memcpy(new_ds.buffer->data, ds.data, ds.len);
-- memcpy(new_ds.buffer->data + ds.len, &tmp, sizeof(tmp));
-+ memcpy(&new_ds.buffer->data[0] + ds.len, &tmp, sizeof(tmp));
- data_string_forget(&ds, MDL);
- data_string_copy(&ds, &new_ds, MDL);
- data_string_forget(&new_ds, MDL);
diff --git a/patches/dhcp-4.4.2/series b/patches/dhcp-4.4.2/series
deleted file mode 100644
index de5f31877..000000000
--- a/patches/dhcp-4.4.2/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Fixed-gcc-10-compilation-issues.patch
-# dd19bdbd49b780e973ed9392604d03fe - git-ptx-patches magic
diff --git a/patches/dnsmasq-2.81/0001-the-pkg-config-file-is-lua-no-lua5.2.patch b/patches/dnsmasq-2.89/0001-the-pkg-config-file-is-lua-no-lua5.2.patch
index c26cec2bb..ec0952173 100644
--- a/patches/dnsmasq-2.81/0001-the-pkg-config-file-is-lua-no-lua5.2.patch
+++ b/patches/dnsmasq-2.89/0001-the-pkg-config-file-is-lua-no-lua5.2.patch
@@ -8,7 +8,7 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
-index 78e25f053bf2..9511893615e3 100644
+index 48e8d3b40ee4..5c0e748280c7 100644
--- a/Makefile
+++ b/Makefile
@@ -60,8 +60,8 @@ idn2_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LIBIDN2 $(PKG_CONFI
@@ -19,6 +19,6 @@ index 78e25f053bf2..9511893615e3 100644
-lua_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --libs lua5.2`
+lua_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --cflags lua`
+lua_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LUASCRIPT $(PKG_CONFIG) --libs lua`
- nettle_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DNSSEC $(PKG_CONFIG) --cflags nettle hogweed`
- nettle_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DNSSEC $(PKG_CONFIG) --libs nettle hogweed`
- gmp_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DNSSEC NO_GMP --copy -lgmp`
+ nettle_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DNSSEC $(PKG_CONFIG) --cflags 'nettle hogweed' \
+ HAVE_CRYPTOHASH $(PKG_CONFIG) --cflags nettle \
+ HAVE_NETTLEHASH $(PKG_CONFIG) --cflags nettle`
diff --git a/patches/dnsmasq-2.81/series b/patches/dnsmasq-2.89/series
index bdbf61ed5..bdbf61ed5 100644
--- a/patches/dnsmasq-2.81/series
+++ b/patches/dnsmasq-2.89/series
diff --git a/patches/dropwatch-1.5.3/0001-Fix-build-issue-when-compiling-with-Wcast-align.patch b/patches/dropwatch-1.5.3/0001-Fix-build-issue-when-compiling-with-Wcast-align.patch
deleted file mode 100644
index d63d0b18a..000000000
--- a/patches/dropwatch-1.5.3/0001-Fix-build-issue-when-compiling-with-Wcast-align.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From: Neil Horman <nhorman@tuxdriver.com>
-Date: Sat, 21 Mar 2020 07:22:29 -0400
-Subject: [PATCH] Fix build issue when compiling with -Wcast-align
-
-Passing a char buffer cast to struct nlmsghdr * violates the rules of
--Wcast-align on some arches, as described in :
-https://github.com/nhorman/dropwatch/issues/26
-
-Fix it by declaring the buffer as a struct nlmsghdr, and casting to a
-less alligned type
-
-Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
----
- src/main.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/main.c b/src/main.c
-index bd87085d7dc8..2253fc4eb8c1 100644
---- a/src/main.c
-+++ b/src/main.c
-@@ -267,7 +267,7 @@ int send_netlink_message(struct netlink_message *msg)
-
- struct netlink_message *recv_netlink_message(int *err)
- {
-- static unsigned char *buf;
-+ static struct nlmsghdr *buf;
- struct netlink_message *msg;
- struct genlmsghdr *glm;
- struct sockaddr_nl nla;
-@@ -277,7 +277,7 @@ struct netlink_message *recv_netlink_message(int *err)
- *err = 0;
-
- do {
-- rc = nl_recv(nsd, &nla, &buf, NULL);
-+ rc = nl_recv(nsd, &nla, (unsigned char **)&buf, NULL);
- if (rc < 0) {
- switch (errno) {
- case EINTR:
-@@ -294,7 +294,7 @@ struct netlink_message *recv_netlink_message(int *err)
- }
- } while (rc == 0);
-
-- msg = wrap_netlink_msg((struct nlmsghdr *)buf);
-+ msg = wrap_netlink_msg(buf);
-
- type = ((struct nlmsghdr *)msg->msg)->nlmsg_type;
-
diff --git a/patches/dropwatch-1.5.3/0002-Fix-configure-for-libnl3-genl.patch b/patches/dropwatch-1.5.3/0002-Fix-configure-for-libnl3-genl.patch
deleted file mode 100644
index 5c39d8201..000000000
--- a/patches/dropwatch-1.5.3/0002-Fix-configure-for-libnl3-genl.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From: Neil Horman <nhorman@tuxdriver.com>
-Date: Wed, 20 May 2020 07:08:47 -0400
-Subject: [PATCH] Fix configure for libnl3-genl
-
-Apparently, way back when we wrote the configure script, we included a
-package check for libnl, but not libnl3-genl (ostensibly because it
-didn't exist I think), and so we hardcoded linking to -lnl3-genl. The
-pkg-config file for that library exists now, so lets actually test for
-it during the running of configure, and use its output during make
-
-Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
----
- configure.ac | 1 +
- src/Makefile.am | 4 ++--
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ad917022eb82..278da5479152 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -14,6 +14,7 @@ AC_PROG_AWK
- AC_CHECK_FUNCS(getopt_long)
-
- PKG_CHECK_MODULES([LIBNL3], [libnl-3.0], [], [AC_MSG_ERROR([libnl-3.0 is required])])
-+PKG_CHECK_MODULES([LIBNLG3], [libnl-genl-3.0], [], [AC_MSG_ERROR([libnl-genl-3.0 is required])])
- # Fallback on using -lreadline as readline.pc is only available since version 8.0
- PKG_CHECK_MODULES([READLINE], [readline], [], [READLINE_LIBS=-lreadline])
- PKG_CHECK_MODULES([LIBPCAP], [libpcap], [], [
-diff --git a/src/Makefile.am b/src/Makefile.am
-index a324fd36eb9e..f56a39dcf274 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -1,8 +1,8 @@
-
- bin_PROGRAMS = dropwatch dwdump
-
--AM_CFLAGS = -g -Wall -Werror $(LIBNL3_CFLAGS) $(READLINE_CFLAGS)
--AM_LDFLAGS = $(LIBNL3_LIBS) -lnl-genl-3 $(READLINE_LIBS) -lpcap
-+AM_CFLAGS = -g -Wall -Werror $(LIBNL3_CFLAGS) $(LIBNLG3_CFLAGS) $(READLINE_CFLAGS)
-+AM_LDFLAGS = $(LIBNL3_LIBS) $(LIBNLG3_LIBS) $(READLINE_LIBS) -lpcap
- AM_CPPFLAGS = -D_GNU_SOURCE
-
- dropwatch_SOURCES = main.c lookup.c lookup_kas.c
diff --git a/patches/dropwatch-1.5.3/series b/patches/dropwatch-1.5.3/series
deleted file mode 100644
index f3c5dd88d..000000000
--- a/patches/dropwatch-1.5.3/series
+++ /dev/null
@@ -1,5 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Fix-build-issue-when-compiling-with-Wcast-align.patch
-0002-Fix-configure-for-libnl3-genl.patch
-# 68fccae5492fb3b53d1b549cfe32ed5f - git-ptx-patches magic
diff --git a/patches/bonnie++-1.97.3/autogen.sh b/patches/dropwatch-1.5.4/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/bonnie++-1.97.3/autogen.sh
+++ b/patches/dropwatch-1.5.4/autogen.sh
diff --git a/patches/dtc-v1.6.0/0001-fdtdump-Fix-gcc11-warning.patch b/patches/dtc-v1.6.0/0001-fdtdump-Fix-gcc11-warning.patch
deleted file mode 100644
index 052419940..000000000
--- a/patches/dtc-v1.6.0/0001-fdtdump-Fix-gcc11-warning.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: David Gibson <david@gibson.dropbear.id.au>
-Date: Wed, 6 Jan 2021 14:52:26 +1100
-Subject: [PATCH] fdtdump: Fix gcc11 warning
-
-In one place, fdtdump abuses fdt_set_magic(), passing it just a small char
-array instead of the full fdt header it expects. That's relying on the
-fact that in fact fdt_set_magic() will only actually access the first 4
-bytes of the buffer.
-
-This trips a new warning in GCC 11 - and it's entirely possible it was
-always UB. So, don't do that.
-
-Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
----
- fdtdump.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/fdtdump.c b/fdtdump.c
-index 9613befede71..d9fb374a59be 100644
---- a/fdtdump.c
-+++ b/fdtdump.c
-@@ -217,7 +217,7 @@ int main(int argc, char *argv[])
- char *p = buf;
- char *endp = buf + len;
-
-- fdt_set_magic(smagic, FDT_MAGIC);
-+ fdt32_st(smagic, FDT_MAGIC);
-
- /* poor man's memmem */
- while ((endp - p) >= FDT_MAGIC_SIZE) {
diff --git a/patches/dtc-v1.6.0/series b/patches/dtc-v1.6.0/series
deleted file mode 100644
index a7e9d0319..000000000
--- a/patches/dtc-v1.6.0/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-fdtdump-Fix-gcc11-warning.patch
-# cb5c26c7ab3ae2082ecff7af4de4e8c5 - git-ptx-patches magic
diff --git a/patches/e2fsprogs-1.47.0/0001-e2fsprogs-Disable-docs.patch b/patches/e2fsprogs-1.47.0/0001-e2fsprogs-Disable-docs.patch
new file mode 100644
index 000000000..38a8cc8eb
--- /dev/null
+++ b/patches/e2fsprogs-1.47.0/0001-e2fsprogs-Disable-docs.patch
@@ -0,0 +1,37 @@
+From: Christian Melki <christian.melki@t2data.com>
+Date: Thu, 9 Feb 2023 09:41:43 +0100
+Subject: [PATCH] e2fsprogs: Disable docs.
+
+Disable doc building and installing.
+
+Signed-off-by: Christian Melki <christian.melki@t2data.com>
+---
+ Makefile.in | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 79b71165002d..0b80c20d4858 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -35,7 +35,6 @@ TAR=tar
+ all:: subs
+ $(MAKE) libs
+ @ALL_CMT@ $(MAKE) progs
+-@ALL_CMT@ $(MAKE) docs
+
+ all-static::
+ $(MAKE) libs
+@@ -72,11 +71,11 @@ distclean-doc:
+ -test -d doc && cd doc && $(MAKE) distclean
+
+ install: subs all-libs-recursive install-progs-recursive \
+- install-shlibs-libs-recursive install-doc-libs
++ install-shlibs-libs-recursive
+ @SUBSET_CMT@ $(MAKE) install-libs
+
+ install-strip: subs all-libs-recursive install-strip-progs-recursive \
+- install-shlibs-strip-libs-recursive install-doc-libs
++ install-shlibs-strip-libs-recursive
+
+ uninstall: uninstall-progs-recursive uninstall-shlibs-libs-recursive uninstall-doc-libs
+
diff --git a/patches/e2fsprogs-1.47.0/0002-e2fsprogs-Disable-ldconfig.patch b/patches/e2fsprogs-1.47.0/0002-e2fsprogs-Disable-ldconfig.patch
new file mode 100644
index 000000000..100d5bc5e
--- /dev/null
+++ b/patches/e2fsprogs-1.47.0/0002-e2fsprogs-Disable-ldconfig.patch
@@ -0,0 +1,29 @@
+From: Christian Melki <christian.melki@t2data.com>
+Date: Thu, 9 Feb 2023 09:42:26 +0100
+Subject: [PATCH] e2fsprogs: Disable ldconfig.
+
+ldconfig on shlibs pokes files which are normally not
+accessible for non-root users.
+There are two ways to deal with this.
+1. Patch it, disabling the call.
+2. point ldconfig to something like ac_cv_path_LDCONFIG=true
+This patch inplements the former.
+
+Signed-off-by: Christian Melki <christian.melki@t2data.com>
+---
+ lib/Makefile.elf-lib | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/lib/Makefile.elf-lib b/lib/Makefile.elf-lib
+index f850f3ddb795..ea0bbde82b2f 100644
+--- a/lib/Makefile.elf-lib
++++ b/lib/Makefile.elf-lib
+@@ -50,8 +50,6 @@ install-shlibs install:: $(ELF_LIB) installdirs-elf-lib $(DEP_INSTALL_SYMLINK)
+ $(E) " SYMLINK $(libdir)/$(ELF_IMAGE).so"
+ $(Q) $(INSTALL_SYMLINK) $(ELF_INSTALL_DIR)/$(ELF_SONAME) \
+ $(libdir)/$(ELF_IMAGE).so $(DESTDIR)
+- $(E) " LDCONFIG"
+- $(Q) -$(LDCONFIG)
+
+ install-strip: install
+ $(E) " STRIP-LIB $(ELF_INSTALL_DIR)/$(ELF_LIB)"
diff --git a/patches/e2fsprogs-1.47.0/0003-mke2fs.conf-remove-orphan_file-from-ext4-features.patch b/patches/e2fsprogs-1.47.0/0003-mke2fs.conf-remove-orphan_file-from-ext4-features.patch
new file mode 100644
index 000000000..e401cad09
--- /dev/null
+++ b/patches/e2fsprogs-1.47.0/0003-mke2fs.conf-remove-orphan_file-from-ext4-features.patch
@@ -0,0 +1,39 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Fri, 22 Sep 2023 10:18:04 +0200
+Subject: [PATCH] mke2fs.conf: remove orphan_file from ext4 features
+
+It's a performance optimization for deleting files. This is usually not
+that important for embedded and the option causes problems during
+up/downgrading:
+
+If an ext4 image with orphan_file is installed in a system with an older
+e2fsprogs version, then resizing the filesystem to fill the partition
+will fail.
+
+If, during a downgrade, rootfs is created with orphan_file and then
+filled from a tarball, then booting into that system can fail because
+fsck does not work.
+
+So remove orphan_file from the config. With host-e2fsprogs, this file is
+used to generate images at build-time. With the target e2fsprogs package
+this file is installed. So in both cases above the filesystems are
+generated without orphan_file.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ misc/mke2fs.conf.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/misc/mke2fs.conf.in b/misc/mke2fs.conf.in
+index b7fc95df7acf..d1637f854e57 100644
+--- a/misc/mke2fs.conf.in
++++ b/misc/mke2fs.conf.in
+@@ -11,7 +11,7 @@
+ features = has_journal
+ }
+ ext4 = {
+- features = has_journal,extent,huge_file,flex_bg,metadata_csum,metadata_csum_seed,64bit,dir_nlink,extra_isize,orphan_file
++ features = has_journal,extent,huge_file,flex_bg,metadata_csum,metadata_csum_seed,64bit,dir_nlink,extra_isize
+ }
+ small = {
+ blocksize = 1024
diff --git a/patches/e2fsprogs-1.47.0/series b/patches/e2fsprogs-1.47.0/series
new file mode 100644
index 000000000..a4d897d2a
--- /dev/null
+++ b/patches/e2fsprogs-1.47.0/series
@@ -0,0 +1,6 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-e2fsprogs-Disable-docs.patch
+0002-e2fsprogs-Disable-ldconfig.patch
+0003-mke2fs.conf-remove-orphan_file-from-ext4-features.patch
+# 64efe4be705d81494b152b54654a13a5 - git-ptx-patches magic
diff --git a/patches/efivar-37/0001-dp.h-make-format_guid-handle-misaligned-guid-pointer.patch b/patches/efivar-37/0001-dp.h-make-format_guid-handle-misaligned-guid-pointer.patch
deleted file mode 100644
index 89e913a74..000000000
--- a/patches/efivar-37/0001-dp.h-make-format_guid-handle-misaligned-guid-pointer.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From: Peter Jones <pjones@redhat.com>
-Date: Mon, 7 Jan 2019 10:30:59 -0500
-Subject: [PATCH] dp.h: make format_guid() handle misaligned guid pointers
- safely.
-
-GCC 9 adds -Werror=address-of-packed-member, which causes us to see the
-build error reported at
- https://bugzilla.opensuse.org/show_bug.cgi?id=1120862 .
-
-That bug report shows us the following:
-
-In file included from dp.c:26:
-dp.h: In function 'format_vendor_helper':
-dp.h:120:37: error: taking address of packed member of 'struct <anonymous>' may result in an unaligned pointer value [-Werror=address-of-packed-member]
- 120 | format_guid(buf, size, off, label, &dp->hw_vendor.vendor_guid);
- | ^~~~~~~~~~~~~~~~~~~~~~~~~~
-dp.h:74:25: note: in definition of macro 'format_guid'
- 74 | _rc = efi_guid_to_str(guid, &_guidstr); \
- | ^~~~
-cc1: all warnings being treated as errors
-
-This patch makes format_guid() use a local variable as a bounce buffer
-in the case that the guid we're passed is aligned as chaotic neutral.
-
-Note that this only fixes this instance and there may be others that bz
-didn't show because it exited too soon, and I don't have a gcc 9 build
-in front of me right now.
-
-Signed-off-by: Peter Jones <pjones@redhat.com>
----
- src/dp.h | 11 +++++++++--
- 1 file changed, 9 insertions(+), 2 deletions(-)
-
-diff --git a/src/dp.h b/src/dp.h
-index aa4e3902992d..20cb608d05f7 100644
---- a/src/dp.h
-+++ b/src/dp.h
-@@ -70,8 +70,15 @@
- #define format_guid(buf, size, off, dp_type, guid) ({ \
- int _rc; \
- char *_guidstr = NULL; \
-- \
-- _rc = efi_guid_to_str(guid, &_guidstr); \
-+ efi_guid_t _guid; \
-+ const efi_guid_t * const _guid_p = \
-+ likely(__alignof__(guid) == sizeof(guid)) \
-+ ? guid \
-+ : &_guid; \
-+ \
-+ if (unlikely(__alignof__(guid) == sizeof(guid))) \
-+ memmove(&_guid, guid, sizeof(_guid)); \
-+ _rc = efi_guid_to_str(_guid_p, &_guidstr); \
- if (_rc < 0) { \
- efi_error("could not build %s GUID DP string", \
- dp_type); \
diff --git a/patches/efivar-37/0002-Fix-all-the-places-Werror-address-of-packed-member-c.patch b/patches/efivar-37/0002-Fix-all-the-places-Werror-address-of-packed-member-c.patch
deleted file mode 100644
index 7653bd80a..000000000
--- a/patches/efivar-37/0002-Fix-all-the-places-Werror-address-of-packed-member-c.patch
+++ /dev/null
@@ -1,167 +0,0 @@
-From: Peter Jones <pjones@redhat.com>
-Date: Thu, 21 Feb 2019 15:20:12 -0500
-Subject: [PATCH] Fix all the places -Werror=address-of-packed-member catches.
-
-This gets rid of all the places GCC 9's -Werror=address-of-packed-member
-flags as problematic.
-
-Fixes github issue #123
-
-Signed-off-by: Peter Jones <pjones@redhat.com>
----
- src/dp-message.c | 6 ++++--
- src/dp.h | 12 ++++--------
- src/guid.c | 2 +-
- src/include/efivar/efivar.h | 2 +-
- src/ucs2.h | 27 +++++++++++++++++++--------
- 5 files changed, 29 insertions(+), 20 deletions(-)
-
-diff --git a/src/dp-message.c b/src/dp-message.c
-index 3724e5f57bdb..9f964663de86 100644
---- a/src/dp-message.c
-+++ b/src/dp-message.c
-@@ -620,11 +620,13 @@ _format_message_dn(char *buf, size_t size, const_efidp dp)
- ) / sizeof(efi_ip_addr_t);
- format(buf, size, off, "Dns", "Dns(");
- for (int i=0; i < end; i++) {
-- const efi_ip_addr_t *addr = &dp->dns.addrs[i];
-+ efi_ip_addr_t addr;
-+
-+ memcpy(&addr, &dp->dns.addrs[i], sizeof(addr));
- if (i != 0)
- format(buf, size, off, "Dns", ",");
- format_ip_addr(buf, size, off, "Dns",
-- dp->dns.is_ipv6, addr);
-+ dp->dns.is_ipv6, &addr);
- }
- format(buf, size, off, "Dns", ")");
- break;
-diff --git a/src/dp.h b/src/dp.h
-index 20cb608d05f7..1f921d524aaf 100644
---- a/src/dp.h
-+++ b/src/dp.h
-@@ -71,13 +71,9 @@
- int _rc; \
- char *_guidstr = NULL; \
- efi_guid_t _guid; \
-- const efi_guid_t * const _guid_p = \
-- likely(__alignof__(guid) == sizeof(guid)) \
-- ? guid \
-- : &_guid; \
-- \
-- if (unlikely(__alignof__(guid) == sizeof(guid))) \
-- memmove(&_guid, guid, sizeof(_guid)); \
-+ const efi_guid_t * const _guid_p = &_guid; \
-+ \
-+ memmove(&_guid, guid, sizeof(_guid)); \
- _rc = efi_guid_to_str(_guid_p, &_guidstr); \
- if (_rc < 0) { \
- efi_error("could not build %s GUID DP string", \
-@@ -86,7 +82,7 @@
- _guidstr = onstack(_guidstr, \
- strlen(_guidstr)+1); \
- _rc = format(buf, size, off, dp_type, "%s", \
-- _guidstr); \
-+ _guidstr); \
- } \
- _rc; \
- })
-diff --git a/src/guid.c b/src/guid.c
-index 306c9ff8287c..3156b3b7c60a 100644
---- a/src/guid.c
-+++ b/src/guid.c
-@@ -31,7 +31,7 @@
- extern const efi_guid_t efi_guid_zero;
-
- int NONNULL(1, 2) PUBLIC
--efi_guid_cmp(const efi_guid_t *a, const efi_guid_t *b)
-+efi_guid_cmp(const void * const a, const void * const b)
- {
- return memcmp(a, b, sizeof (efi_guid_t));
- }
-diff --git a/src/include/efivar/efivar.h b/src/include/efivar/efivar.h
-index 316891ccae9c..ad6449d9d938 100644
---- a/src/include/efivar/efivar.h
-+++ b/src/include/efivar/efivar.h
-@@ -128,7 +128,7 @@ extern int efi_symbol_to_guid(const char *symbol, efi_guid_t *guid)
-
- extern int efi_guid_is_zero(const efi_guid_t *guid);
- extern int efi_guid_is_empty(const efi_guid_t *guid);
--extern int efi_guid_cmp(const efi_guid_t *a, const efi_guid_t *b);
-+extern int efi_guid_cmp(const void * const a, const void * const b);
-
- /* import / export functions */
- typedef struct efi_variable efi_variable_t;
-diff --git a/src/ucs2.h b/src/ucs2.h
-index dbb59004b7c0..edd8367b4bcc 100644
---- a/src/ucs2.h
-+++ b/src/ucs2.h
-@@ -23,16 +23,21 @@
- (((val) & ((mask) << (shift))) >> (shift))
-
- static inline size_t UNUSED
--ucs2len(const uint16_t * const s, ssize_t limit)
-+ucs2len(const void *vs, ssize_t limit)
- {
- ssize_t i;
-- for (i = 0; i < (limit >= 0 ? limit : i+1) && s[i] != (uint16_t)0; i++)
-+ const uint16_t *s = vs;
-+ const uint8_t *s8 = vs;
-+
-+ for (i = 0;
-+ i < (limit >= 0 ? limit : i+1) && s8[0] != 0 && s8[1] != 0;
-+ i++, s8 += 2, s++)
- ;
- return i;
- }
-
- static inline size_t UNUSED
--ucs2size(const uint16_t * const s, ssize_t limit)
-+ucs2size(const void *s, ssize_t limit)
- {
- size_t rc = ucs2len(s, limit);
- rc *= sizeof (uint16_t);
-@@ -69,10 +74,11 @@ utf8size(uint8_t *s, ssize_t limit)
- }
-
- static inline unsigned char * UNUSED
--ucs2_to_utf8(const uint16_t * const chars, ssize_t limit)
-+ucs2_to_utf8(const void * const voidchars, ssize_t limit)
- {
- ssize_t i, j;
- unsigned char *ret;
-+ const uint16_t * const chars = voidchars;
-
- if (limit < 0)
- limit = ucs2len(chars, -1);
-@@ -124,10 +130,12 @@ ucs2_to_utf8(const uint16_t * const chars, ssize_t limit)
- }
-
- static inline ssize_t UNUSED NONNULL(4)
--utf8_to_ucs2(uint16_t *ucs2, ssize_t size, int terminate, uint8_t *utf8)
-+utf8_to_ucs2(void *ucs2void, ssize_t size, int terminate, uint8_t *utf8)
- {
- ssize_t req;
- ssize_t i, j;
-+ uint16_t *ucs2 = ucs2void;
-+ uint16_t val16;
-
- if (!ucs2 && size > 0) {
- errno = EINVAL;
-@@ -162,10 +170,13 @@ utf8_to_ucs2(uint16_t *ucs2, ssize_t size, int terminate, uint8_t *utf8)
- val = utf8[i] & 0x7f;
- i += 1;
- }
-- ucs2[j] = val;
-+ val16 = val;
-+ ucs2[j] = val16;
-+ }
-+ if (terminate) {
-+ val16 = 0;
-+ ucs2[j++] = val16;
- }
-- if (terminate)
-- ucs2[j++] = (uint16_t)0;
- return j;
- };
-
diff --git a/patches/efivar-37/series b/patches/efivar-37/series
deleted file mode 100644
index e6f14fec2..000000000
--- a/patches/efivar-37/series
+++ /dev/null
@@ -1,5 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-dp.h-make-format_guid-handle-misaligned-guid-pointer.patch
-0002-Fix-all-the-places-Werror-address-of-packed-member-c.patch
-# cbb8f240dc2a442323107d34454fa178 - git-ptx-patches magic
diff --git a/patches/elfutils-0.180/autogen.sh b/patches/elfutils-0.180/autogen.sh
deleted file mode 100755
index df78c388b..000000000
--- a/patches/elfutils-0.180/autogen.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash
-
-set -e
-
-aclocal $ACLOCAL_FLAGS
-
-libtoolize \
- --force \
- --copy
-
-autoreconf \
- --force \
- --install \
- --warnings=cross \
- --warnings=syntax \
- --warnings=obsolete \
- --warnings=unsupported
-
diff --git a/patches/elfutils-0.180/series b/patches/elfutils-0.180/series
deleted file mode 100644
index 0ecd40a09..000000000
--- a/patches/elfutils-0.180/series
+++ /dev/null
@@ -1,2 +0,0 @@
-0001-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch
-0002-riscv-retval-workaround.patch
diff --git a/patches/elfutils-0.180/0001-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch b/patches/elfutils-0.190/0001-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch
index 18820595a..c9955f19c 100644
--- a/patches/elfutils-0.180/0001-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch
+++ b/patches/elfutils-0.190/0001-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch
@@ -1,8 +1,8 @@
From: Helmut Grohne <helmut@subdivi.de>
-Date: Sun, 2 Aug 2020 09:48:45 +0200
+Date: Wed, 15 Nov 2023 13:00:19 +0100
Subject: [PATCH] disable -Werror as it tends to break with new gcc versions
-Imported from elfutils_0.180-1.debian.tar.xz
+Imported from elfutils_0.189-4.debian.tar.xz
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
---
@@ -10,22 +10,22 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1 file changed, 2 deletions(-)
diff --git a/config/eu.am b/config/eu.am
-index 6c3c444f143a..3bc0dc95b1fd 100644
+index e6c241f9d88a..4136e7cd538a 100644
--- a/config/eu.am
+++ b/config/eu.am
-@@ -73,7 +73,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
- -Wold-style-definition -Wstrict-prototypes -Wtrampolines \
+@@ -99,7 +99,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
$(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \
$(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \
+ $(USE_AFTER_FREE3_WARNING) \
- $(if $($(*F)_no_Werror),,-Werror) \
$(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
$(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
- $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \
-@@ -83,7 +82,6 @@ AM_CXXFLAGS = -std=c++11 -Wall -Wshadow \
- -Wtrampolines \
+ $(if $($(*F)_no_Wpacked_not_aligned),$(NO_PACKED_NOT_ALIGNED_WARNING),) \
+@@ -109,7 +108,6 @@ AM_CXXFLAGS = -std=c++11 -Wall -Wshadow \
+ $(TRAMPOLINES_WARNING) \
$(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \
$(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \
- $(if $($(*F)_no_Werror),,-Werror) \
$(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
$(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
- $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \
+ $(if $($(*F)_no_Wpacked_not_aligned),$(NO_PACKED_NOT_ALIGNED_WARNING),) \
diff --git a/patches/elfutils-0.180/0002-riscv-retval-workaround.patch b/patches/elfutils-0.190/0002-riscv-retval-workaround.patch
index 338b533d6..a2c81d10d 100644
--- a/patches/elfutils-0.180/0002-riscv-retval-workaround.patch
+++ b/patches/elfutils-0.190/0002-riscv-retval-workaround.patch
@@ -1,8 +1,8 @@
From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sun, 2 Aug 2020 09:48:45 +0200
+Date: Wed, 15 Nov 2023 13:00:19 +0100
Subject: [PATCH] riscv-retval-workaround
-Imported from elfutils_0.180-1.debian.tar.xz
+Imported from elfutils_0.189-4.debian.tar.xz
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
---
@@ -10,7 +10,7 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/backends/riscv_retval.c b/backends/riscv_retval.c
-index 35b6010bf3e3..46d465e913d4 100644
+index 0a1e02f81cd2..95bfdc3cd019 100644
--- a/backends/riscv_retval.c
+++ b/backends/riscv_retval.c
@@ -111,7 +111,7 @@ flatten_aggregate_arg (Dwarf_Die *typedie __attribute__ ((unused)),
diff --git a/patches/elfutils-0.190/0003-remove-old-glibc-hack.patch b/patches/elfutils-0.190/0003-remove-old-glibc-hack.patch
new file mode 100644
index 000000000..0f8ba8fb2
--- /dev/null
+++ b/patches/elfutils-0.190/0003-remove-old-glibc-hack.patch
@@ -0,0 +1,30 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Wed, 15 Nov 2023 13:00:19 +0100
+Subject: [PATCH] remove old glibc hack
+
+Imported from elfutils_0.189-4.debian.tar.xz
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ tests/dwfl-proc-attach.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/tests/dwfl-proc-attach.c b/tests/dwfl-proc-attach.c
+index d02e9fc0e95e..9521900453df 100644
+--- a/tests/dwfl-proc-attach.c
++++ b/tests/dwfl-proc-attach.c
+@@ -107,6 +107,7 @@ main (int argc __attribute__ ((unused)),
+ return (threads == 3) ? 0 : -1;
+ }
+
++#if 0
+ /* HACK. This is a simple workaround for a combination of old glibc
+ and valgrind. libdw will try to dlopen libdebuginfod this causes
+ some unsuppressable memory leak warnings when the process is
+@@ -118,5 +119,6 @@ void *dlopen (void)
+ {
+ return NULL;
+ }
++#endif
+
+ #endif /* __linux__ */
diff --git a/patches/bridge-utils-1.6/autogen.sh b/patches/elfutils-0.190/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/bridge-utils-1.6/autogen.sh
+++ b/patches/elfutils-0.190/autogen.sh
diff --git a/patches/elfutils-0.190/series b/patches/elfutils-0.190/series
new file mode 100644
index 000000000..25d788eca
--- /dev/null
+++ b/patches/elfutils-0.190/series
@@ -0,0 +1,6 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-disable-Werror-as-it-tends-to-break-with-new-gcc-ver.patch
+0002-riscv-retval-workaround.patch
+0003-remove-old-glibc-hack.patch
+# 9cdd9b689558d0ff58c761b2e41416fc - git-ptx-patches magic
diff --git a/patches/cairo-1.16.0/autogen.sh b/patches/evtest-1.35/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/cairo-1.16.0/autogen.sh
+++ b/patches/evtest-1.35/autogen.sh
diff --git a/patches/canutils-v2020.02.04/autogen.sh b/patches/f2fs-tools-1.14.0/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/canutils-v2020.02.04/autogen.sh
+++ b/patches/f2fs-tools-1.14.0/autogen.sh
diff --git a/patches/failmalloc-1.0/0001-fix-building-with-glibc-2.14.1.patch b/patches/failmalloc-1.0/0001-fix-building-with-glibc-2.14.1.patch
deleted file mode 100644
index 54c8b568f..000000000
--- a/patches/failmalloc-1.0/0001-fix-building-with-glibc-2.14.1.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Wed, 23 Nov 2011 13:56:05 +0100
-Subject: [PATCH] fix building with glibc-2.14.1
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- failmalloc.c | 4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/failmalloc.c b/failmalloc.c
-index fc33552..cecc7b5 100644
---- a/failmalloc.c
-+++ b/failmalloc.c
-@@ -204,5 +204,9 @@ failmalloc_init (void)
- failmalloc_install ();
- }
-
-+#ifdef __MALLOC_HOOK_VOLATILE
-+void (*__MALLOC_HOOK_VOLATILE __malloc_initialize_hook) (void) = failmalloc_init;
-+#else
- void (*__malloc_initialize_hook) (void) = failmalloc_init;
-+#endif
-
diff --git a/patches/failmalloc-1.0/series b/patches/failmalloc-1.0/series
deleted file mode 100644
index eda3da385..000000000
--- a/patches/failmalloc-1.0/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-fix-building-with-glibc-2.14.1.patch
-# 77ed858c96b7d3dc9f91cc361acc732c - git-ptx-patches magic
diff --git a/patches/fakeroot-1.25.3/0001-libfakeroot.c-define-_STAT_VER-if-not-already-define.patch b/patches/fakeroot-1.25.3/0001-libfakeroot.c-define-_STAT_VER-if-not-already-define.patch
deleted file mode 100644
index 92584801d..000000000
--- a/patches/fakeroot-1.25.3/0001-libfakeroot.c-define-_STAT_VER-if-not-already-define.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
-Date: Thu, 11 Feb 2021 20:59:25 -0800
-Subject: [PATCH] libfakeroot.c: define _STAT_VER if not already defined
-
-Based on patch from Jan Pazdziora:
-https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/SMQ3RYXEYTVZH6PLQMKNB3NM4XLPMNZO/
-
-Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
----
- libfakeroot.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/libfakeroot.c b/libfakeroot.c
-index 3e80e38b16db..14cdbc4dca12 100644
---- a/libfakeroot.c
-+++ b/libfakeroot.c
-@@ -90,6 +90,16 @@
- #define SEND_GET_XATTR64(a,b,c) send_get_xattr64(a,b)
- #endif
-
-+#ifndef _STAT_VER
-+ #if defined (__aarch64__)
-+ #define _STAT_VER 0
-+ #elif defined (__x86_64__)
-+ #define _STAT_VER 1
-+ #else
-+ #define _STAT_VER 3
-+ #endif
-+#endif
-+
- /*
- These INT_* (which stands for internal) macros should always be used when
- the fakeroot library owns the storage of the stat variable.
diff --git a/patches/fakeroot-1.25.3/0002-libfakeroot.c-add-wrappers-for-new-glibc-2.33-symbol.patch b/patches/fakeroot-1.25.3/0002-libfakeroot.c-add-wrappers-for-new-glibc-2.33-symbol.patch
deleted file mode 100644
index 59bc951d3..000000000
--- a/patches/fakeroot-1.25.3/0002-libfakeroot.c-add-wrappers-for-new-glibc-2.33-symbol.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
-Date: Thu, 11 Feb 2021 21:00:04 -0800
-Subject: [PATCH] libfakeroot.c: add wrappers for new glibc 2.33+ symbols
-
-Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
----
- libfakeroot.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 48 insertions(+)
-
-diff --git a/libfakeroot.c b/libfakeroot.c
-index 14cdbc4dca12..d75c51fa990a 100644
---- a/libfakeroot.c
-+++ b/libfakeroot.c
-@@ -1352,6 +1352,54 @@ int renameat(int olddir_fd, const char *oldpath,
- #endif /* HAVE_FSTATAT */
-
-
-+#if defined(__GLIBC__) && __GLIBC_PREREQ(2,33)
-+/* Glibc 2.33 exports symbols for these functions in the shared lib */
-+ int lstat(const char *file_name, struct stat *statbuf) {
-+ return WRAP_LSTAT LSTAT_ARG(_STAT_VER, file_name, statbuf);
-+ }
-+ int stat(const char *file_name, struct stat *st) {
-+ return WRAP_STAT STAT_ARG(_STAT_VER, file_name, st);
-+ }
-+ int fstat(int fd, struct stat *st) {
-+ return WRAP_FSTAT FSTAT_ARG(_STAT_VER, fd, st);
-+ }
-+
-+ #ifdef HAVE_FSTATAT
-+ int fstatat(int dir_fd, const char *path, struct stat *st, int flags) {
-+ return WRAP_FSTATAT FSTATAT_ARG(_STAT_VER, dir_fd, path, st, flags);
-+ }
-+ #endif
-+
-+ #ifdef STAT64_SUPPORT
-+ int lstat64(const char *file_name, struct stat64 *st) {
-+ return WRAP_LSTAT64 LSTAT64_ARG(_STAT_VER, file_name, st);
-+ }
-+ int stat64(const char *file_name, struct stat64 *st) {
-+ return WRAP_STAT64 STAT64_ARG(_STAT_VER, file_name, st);
-+ }
-+ int fstat64(int fd, struct stat64 *st) {
-+ return WRAP_FSTAT64 FSTAT64_ARG(_STAT_VER, fd, st);
-+ }
-+
-+ #ifdef HAVE_FSTATAT
-+ int fstatat64(int dir_fd, const char *path, struct stat64 *st, int flags) {
-+ return WRAP_FSTATAT64 FSTATAT64_ARG(_STAT_VER, dir_fd, path, st, flags);
-+ }
-+ #endif
-+ #endif
-+
-+ int mknod(const char *pathname, mode_t mode, dev_t dev) {
-+ return WRAP_MKNOD MKNOD_ARG(_STAT_VER, pathname, mode, &dev);
-+ }
-+
-+ #if defined(HAVE_FSTATAT) && defined(HAVE_MKNODAT)
-+ int mknodat(int dir_fd, const char *pathname, mode_t mode, dev_t dev) {
-+ return WRAP_MKNODAT MKNODAT_ARG(_STAT_VER, dir_fd, pathname, mode, &dev);
-+ }
-+ #endif
-+#endif /* GLIBC_PREREQ */
-+
-+
- #ifdef FAKEROOT_FAKENET
- pid_t fork(void)
- {
diff --git a/patches/fakeroot-1.25.3/0003-libfakeroot.c-fix-compile-error-with-DEBUG-enabled.patch b/patches/fakeroot-1.25.3/0003-libfakeroot.c-fix-compile-error-with-DEBUG-enabled.patch
deleted file mode 100644
index 8007d7334..000000000
--- a/patches/fakeroot-1.25.3/0003-libfakeroot.c-fix-compile-error-with-DEBUG-enabled.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
-Date: Thu, 11 Feb 2021 21:00:20 -0800
-Subject: [PATCH] libfakeroot.c: fix compile error with DEBUG enabled
-
-Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
----
- libfakeroot.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libfakeroot.c b/libfakeroot.c
-index d75c51fa990a..31480f8323ba 100644
---- a/libfakeroot.c
-+++ b/libfakeroot.c
-@@ -2525,7 +2525,7 @@ int statx (int dirfd, const char *path, int flags, unsigned int mask, struct sta
-
- #ifdef LIBFAKEROOT_DEBUGGING
- if (fakeroot_debug) {
-- fprintf(stderr, "statx fd %d\n", fd);
-+ fprintf(stderr, "statx fd %d\n", dirfd);
- }
- #endif /* LIBFAKEROOT_DEBUGGING */
- r=INT_NEXT_FSTATAT(dirfd, path, &st, flags);
diff --git a/patches/fakeroot-1.25.3/0004-configure.ac-fix-__xmknod-at-pointer-argument.patch b/patches/fakeroot-1.25.3/0004-configure.ac-fix-__xmknod-at-pointer-argument.patch
deleted file mode 100644
index 5291625ee..000000000
--- a/patches/fakeroot-1.25.3/0004-configure.ac-fix-__xmknod-at-pointer-argument.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
-Date: Sat, 13 Feb 2021 19:32:08 -0800
-Subject: [PATCH] configure.ac: fix __xmknod{,at} pointer argument
-
-Switch default to assume * and not the absence of *.
-
-On glibc 2.33+, there is no definition for these functions in header
-files, so the compile test doesn't work. But, we can default to using
-the pointer (as is the case with newer glibc), and use the header file
-on older platforms to fail the test and use no pointer.
-
-Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
----
- configure.ac | 16 ++++++++--------
- 1 file changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 73415d2a91a6..d85566f089b4 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -183,13 +183,13 @@ AC_MSG_CHECKING([for type of arg of __xmknod])
- ]], [[
- int __xmknod ( int ver,
- const char *pathname ,
-- mode_t mode , dev_t dev);
-+ mode_t mode , dev_t *dev);
- ]])],[
-- AC_DEFINE(XMKNOD_FRTH_ARG,)
-- AC_MSG_RESULT([no extra *])
-- ],[
- AC_DEFINE(XMKNOD_FRTH_ARG,[*])
- AC_MSG_RESULT([needs *])
-+ ],[
-+ AC_DEFINE(XMKNOD_FRTH_ARG,)
-+ AC_MSG_RESULT([no extra *])
-
- ])
-
-@@ -210,13 +210,13 @@ AC_MSG_CHECKING([for type of arg of __xmknodat])
- int __xmknodat ( int ver,
- int dirfd,
- const char *pathname ,
-- mode_t mode , dev_t dev);
-+ mode_t mode , dev_t *dev);
- ]])],[
-- AC_DEFINE(XMKNODAT_FIFTH_ARG,)
-- AC_MSG_RESULT([no extra *])
-- ],[
- AC_DEFINE(XMKNODAT_FIFTH_ARG,[*])
- AC_MSG_RESULT([needs *])
-+ ],[
-+ AC_DEFINE(XMKNODAT_FIFTH_ARG,)
-+ AC_MSG_RESULT([no extra *])
-
- ])
-
diff --git a/patches/fakeroot-1.25.3/0005-libfakeroot.c-fix-fts_read-and-fts_children.patch b/patches/fakeroot-1.25.3/0005-libfakeroot.c-fix-fts_read-and-fts_children.patch
deleted file mode 100644
index 620afc2ea..000000000
--- a/patches/fakeroot-1.25.3/0005-libfakeroot.c-fix-fts_read-and-fts_children.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
-Date: Sat, 13 Feb 2021 19:35:31 -0800
-Subject: [PATCH] libfakeroot.c: fix fts_read and fts_children
-
-Apply Debian patch from [0], since glibc is usually built without LFS.
-__USE_LARGEFILE64 and FTSENT64 should be used anyway for proper support
-of this, if needed. See [1] for more details.
-
-[0]: https://sources.debian.org/patches/fakeroot/1.25.3-1.1/eglibc-fts-without-LFS/
-[1]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=676428
-
-Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
----
- libfakeroot.c | 8 --------
- 1 file changed, 8 deletions(-)
-
-diff --git a/libfakeroot.c b/libfakeroot.c
-index 31480f8323ba..169f4da4de21 100644
---- a/libfakeroot.c
-+++ b/libfakeroot.c
-@@ -2066,11 +2066,7 @@ FTSENT *fts_read(FTS *ftsp) {
- || r->fts_info == FTS_NS || r->fts_info == FTS_NSOK))
- r->fts_statp = NULL; /* Otherwise fts_statp may be a random pointer */
- if(r && r->fts_statp) { /* Should we bother checking fts_info here? */
--# if defined(STAT64_SUPPORT) && !defined(__APPLE__)
-- SEND_GET_STAT64(r->fts_statp, _STAT_VER);
--# else
- SEND_GET_STAT(r->fts_statp, _STAT_VER);
--# endif
- }
-
- return r;
-@@ -2089,11 +2085,7 @@ FTSENT *fts_children(FTS *ftsp, int options) {
- first=next_fts_children(ftsp, options);
- for(r = first; r; r = r->fts_link) {
- if(r && r->fts_statp) { /* Should we bother checking fts_info here? */
--# if defined(STAT64_SUPPORT) && !defined(__APPLE__)
-- SEND_GET_STAT64(r->fts_statp, _STAT_VER);
--# else
- SEND_GET_STAT(r->fts_statp, _STAT_VER);
--# endif
- }
- }
-
diff --git a/patches/fakeroot-1.25.3/0006-Add-_STAT_VER-defines-for-ppc64le-riscv64-s390x.patch b/patches/fakeroot-1.25.3/0006-Add-_STAT_VER-defines-for-ppc64le-riscv64-s390x.patch
deleted file mode 100644
index 5db58dcd3..000000000
--- a/patches/fakeroot-1.25.3/0006-Add-_STAT_VER-defines-for-ppc64le-riscv64-s390x.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From: Dimitri John Ledkov <xnox@ubuntu.com>
-Date: Wed, 17 Feb 2021 14:41:43 +0000
-Subject: [PATCH] Add _STAT_VER defines for ppc64le, riscv64, s390x.
-
-Signed-off-by: Dimitri John Ledkov <xnox@ubuntu.com>
----
- libfakeroot.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/libfakeroot.c b/libfakeroot.c
-index 169f4da4de21..74f52ab1df79 100644
---- a/libfakeroot.c
-+++ b/libfakeroot.c
-@@ -93,6 +93,12 @@
- #ifndef _STAT_VER
- #if defined (__aarch64__)
- #define _STAT_VER 0
-+ #elif defined (__powerpc__) && __WORDSIZE == 64
-+ #define _STAT_VER 1
-+ #elif defined (__riscv) && __riscv_xlen==64
-+ #define _STAT_VER 0
-+ #elif defined (__s390x__)
-+ #define _STAT_VER 1
- #elif defined (__x86_64__)
- #define _STAT_VER 1
- #else
diff --git a/patches/fakeroot-1.25.3/0007-OS-X-portability.patch b/patches/fakeroot-1.25.3/0007-OS-X-portability.patch
deleted file mode 100644
index 768696a25..000000000
--- a/patches/fakeroot-1.25.3/0007-OS-X-portability.patch
+++ /dev/null
@@ -1,161 +0,0 @@
-From: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
-Date: Sat, 13 Feb 2021 20:05:17 -0800
-Subject: [PATCH] OS X portability
-
-OS X portability work from OpenWrt.
-
-Cc: Felix Fietkau <nbd@nbd.name>
-Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
----
- configure.ac | 1 +
- libfakeroot.c | 36 ++++++++++++++++++++++++++++++++++--
- wrapawk_macosx | 10 +++++++---
- wrapfunc.inp | 4 ++--
- 4 files changed, 44 insertions(+), 7 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index d85566f089b4..35f9ecf28993 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -146,6 +146,7 @@ for first in size_t int; do
- #include <sys/types.h>
- #endif
- #include <unistd.h>
-+#include <stdio.h>
- #ifdef HAVE_GRP_H
- #include <grp.h>
- #endif
-diff --git a/libfakeroot.c b/libfakeroot.c
-index 74f52ab1df79..f9ca1820e4b7 100644
---- a/libfakeroot.c
-+++ b/libfakeroot.c
-@@ -128,8 +128,16 @@
- #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>
- #include <stdlib.h>
- #include <sys/ipc.h>
- #include <sys/msg.h>
-@@ -141,7 +149,6 @@
- #include <unistd.h>
- #include <dirent.h>
- #include <errno.h>
--#include <sys/types.h>
- #ifdef HAVE_SYS_ACL_H
- #include <sys/acl.h>
- #endif /* HAVE_SYS_ACL_H */
-@@ -204,6 +211,15 @@ extern int unsetenv (const char *name);
- #undef __lxstat64
- #undef _FILE_OFFSET_BITS
-
-+
-+#ifndef AT_EMPTY_PATH
-+#define AT_EMPTY_PATH 0
-+#endif
-+
-+#ifndef AT_NO_AUTOMOUNT
-+#define AT_NO_AUTOMOUNT 0
-+#endif
-+
- /*
- // next_wrap_st:
- // this structure is used in next_wrap, which is defined in
-@@ -1975,7 +1991,7 @@ ssize_t fremovexattr(int fd, const char *name)
- }
- #endif /* HAVE_FREMOVEXATTR */
-
--int setpriority(int which, int who, int prio){
-+int setpriority(int which, id_t who, int prio){
- if (fakeroot_disabled)
- return next_setpriority(which, who, prio);
- next_setpriority(which, who, prio);
-@@ -2576,3 +2592,19 @@ int sysinfo(int command, char *buf, long count)
- }
- }
- #endif
-+
-+#ifdef HAVE_OPENAT
-+int openat(int dir_fd, const char *pathname, int flags, ...)
-+{
-+ mode_t mode;
-+
-+ if (flags & O_CREAT) {
-+ va_list args;
-+ va_start(args, flags);
-+ mode = va_arg(args, int);
-+ va_end(args);
-+ }
-+
-+ return next_openat(dir_fd, pathname, flags, mode);
-+}
-+#endif
-diff --git a/wrapawk_macosx b/wrapawk_macosx
-index 088a7f48de49..f783219758ac 100644
---- a/wrapawk_macosx
-+++ b/wrapawk_macosx
-@@ -46,26 +46,30 @@ BEGIN{
- argtype=$3;
- argname=$4;
- MACRO=$5;
-+ argtype_def=$6
-+ if(!argtype_def) {
-+ argtype_def = argtype
-+ }
- if(MACRO){
- print "extern " ret " MY_DEF(" name ")" argtype " __attribute__((visibility(\"hidden\")));" > headerfile;
- print "INTERPOSE(MY_DEF(" name "_RAW)," name "_RAW);" > structfile;
- print "#undef " name > deffile
- print "#define " name " MY_DEF(" name "_RAW)" > deffile
-
-- print "extern " ret, name, argtype ";" > tmpffile;
-+ print "extern " ret, name, argtype_def ";" > tmpffile;
- print "static __inline__ " ret " NEXT_" MACRO "_NOARG " argtype " __attribute__((always_inline));" > tmpffile;
- print "static __inline__ " ret " NEXT_" MACRO "_NOARG " argtype " {" > tmpffile;
- print " return " name, argname ";" > tmpffile;
- print "}" > tmpffile;
- print "" > tmpffile;
- } else {
-- print "extern " ret " my_" name, argtype " __attribute__((visibility(\"hidden\")));" > headerfile;
-+ print "extern " ret " my_" name, argtype_def " __attribute__((visibility(\"hidden\")));" > headerfile;
- print "#undef " name > structfile;
- print "INTERPOSE(my_" name "," name ");" > structfile;
- print "#define " name " my_" name > structfile
- print "#define " name " my_" name > deffile
-
-- print "extern " ret, name, argtype ";" > tmpffile;
-+ print "extern " ret, name, argtype_def ";" > tmpffile;
- if(argname){
- print "static __inline__ " ret " next_" name, argtype " __attribute__((always_inline));" > tmpffile;
- print "static __inline__ " ret " next_" name, argtype " {" > tmpffile;
-diff --git a/wrapfunc.inp b/wrapfunc.inp
-index f7ad1867891a..556af34579b0 100644
---- a/wrapfunc.inp
-+++ b/wrapfunc.inp
-@@ -146,7 +146,7 @@ setfsgid;gid_t;(gid_t fsgid);(fsgid)
- initgroups;int;(const char *user, INITGROUPS_SECOND_ARG group);(user, group)
- getgroups;int;(int size, gid_t list[]);(size, list)
- setgroups;int;(SETGROUPS_SIZE_TYPE size, const gid_t *list);(size, list)
--setpriority;int;(int which, int who, int prio);(which, who, prio)
-+setpriority;int;(int which, id_t who, int prio);(which, who, prio)
- #ifdef HAVE_CAPSET
- capset;int;(cap_user_header_t hdrp, const cap_user_data_t datap);(hdrp, datap)
- #endif /* HAVE_CAPSET */
-@@ -198,7 +198,7 @@ fchownat;int;(int dir_fd, const char *path, uid_t owner, gid_t group, int flags)
- mkdirat;int;(int dir_fd, const char *pathname, mode_t mode);(dir_fd, pathname, mode)
- #endif /* HAVE_MKDIRAT */
- #ifdef HAVE_OPENAT
--openat;int;(int dir_fd, const char *pathname, int flags);(dir_fd, pathname, flags)
-+openat;int;(int dir_fd, const char *pathname, int flags, mode_t mode);(dir_fd, pathname, flags, mode);;(int dir_fd, const char *pathname, int flags, ...)
- #endif /* HAVE_OPENAT */
- #ifdef HAVE_RENAMEAT
- renameat;int;(int olddir_fd, const char *oldpath, int newdir_fd, const char *newpath);(olddir_fd, oldpath, newdir_fd, newpath)
diff --git a/patches/fakeroot-1.25.3/series b/patches/fakeroot-1.25.3/series
deleted file mode 100644
index fa0010583..000000000
--- a/patches/fakeroot-1.25.3/series
+++ /dev/null
@@ -1,13 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-#tag:upstream --start-number 1
-0001-libfakeroot.c-define-_STAT_VER-if-not-already-define.patch
-0002-libfakeroot.c-add-wrappers-for-new-glibc-2.33-symbol.patch
-0003-libfakeroot.c-fix-compile-error-with-DEBUG-enabled.patch
-0004-configure.ac-fix-__xmknod-at-pointer-argument.patch
-0005-libfakeroot.c-fix-fts_read-and-fts_children.patch
-0006-Add-_STAT_VER-defines-for-ppc64le-riscv64-s390x.patch
-0007-OS-X-portability.patch
-#tag:ptxdist --start-number 100
-0008-make-fakeroot-relocatable.patch
-# d07e91409b4dcfb1e6e2abd76ddc7481 - git-ptx-patches magic
diff --git a/patches/fakeroot-1.25.3/0008-make-fakeroot-relocatable.patch b/patches/fakeroot-1.31/0001-make-fakeroot-relocatable.patch
index 8d7a6994c..bedb319a9 100644
--- a/patches/fakeroot-1.25.3/0008-make-fakeroot-relocatable.patch
+++ b/patches/fakeroot-1.31/0001-make-fakeroot-relocatable.patch
@@ -27,7 +27,7 @@ index 0d6f435af1ed..08d8b27863a8 100755
USEABSLIBPATH=@LDPRELOADABS@
FAKEROOT_LIB=lib@fakeroot_transformed@@DLSUFFIX@
-PATHS=@libdir@:${FAKEROOT_PREFIX}/lib64/libfakeroot:${FAKEROOT_PREFIX}/lib32/libfakeroot
-+PATHS="${FAKEROOT_PREFIX}@libdir@":${FAKEROOT_PREFIX}/lib64/libfakeroot:${FAKEROOT_PREFIX}/lib32/libfakeroot
++PATHS="${FAKEROOT_PREFIX}/lib/fakeroot":${FAKEROOT_PREFIX}/lib64/libfakeroot:${FAKEROOT_PREFIX}/lib32/libfakeroot
FAKED=${FAKEROOT_BINDIR}/@faked_transformed@
FAKED_MODE="unknown-is-root"
diff --git a/patches/fakeroot-1.31/series b/patches/fakeroot-1.31/series
new file mode 100644
index 000000000..bf6039484
--- /dev/null
+++ b/patches/fakeroot-1.31/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-make-fakeroot-relocatable.patch
+# 997aab71aab23715410e9573ed7fb092 - git-ptx-patches magic
diff --git a/patches/fbset-2.1/0001-fbset-do-not-overwrite-CC-to-allow-crosscompiling.patch b/patches/fbset-2.1/0001-fbset-do-not-overwrite-CC-to-allow-crosscompiling.patch
deleted file mode 100644
index 372113646..000000000
--- a/patches/fbset-2.1/0001-fbset-do-not-overwrite-CC-to-allow-crosscompiling.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 78265ef4686eb72f163802b63f7e145f96a88776 Mon Sep 17 00:00:00 2001
-From: Wolfram Sang <w.sang@pengutronix.de>
-Date: Thu, 28 Apr 2011 11:51:57 +0200
-Subject: [PATCH] fbset: fix makefile
-
-* do not overwrite CC to allow crosscompiling
-* use DESTDIR
-* don't create nodes or remove files in install
-
-Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
----
- Makefile | 17 ++++-------------
- 1 file changed, 4 insertions(+), 13 deletions(-)
-
-Index: fbset-2.1/Makefile
-===================================================================
---- fbset-2.1.orig/Makefile
-+++ fbset-2.1/Makefile
-@@ -2,7 +2,7 @@
- # Linux Frame Buffer Device Configuration
- #
-
--CC = gcc -Wall -O2 -I.
-+CFLAGS += -Wall -O2 -I.
- BISON = bison -d
- FLEX = flex
- INSTALL = install
-@@ -24,18 +24,9 @@ modes.tab.c: modes.y
- $(BISON) modes.y
-
- install: fbset
-- if [ -f /sbin/fbset ]; then rm /sbin/fbset; fi
-- $(INSTALL) fbset /usr/sbin
-- $(INSTALL) fbset.8 /usr/man/man8
-- $(INSTALL) fb.modes.5 /usr/man/man5
-- if [ ! -c /dev/fb0 ]; then mknod /dev/fb0 c 29 0; fi
-- if [ ! -c /dev/fb1 ]; then mknod /dev/fb1 c 29 32; fi
-- if [ ! -c /dev/fb2 ]; then mknod /dev/fb2 c 29 64; fi
-- if [ ! -c /dev/fb3 ]; then mknod /dev/fb3 c 29 96; fi
-- if [ ! -c /dev/fb4 ]; then mknod /dev/fb4 c 29 128; fi
-- if [ ! -c /dev/fb5 ]; then mknod /dev/fb5 c 29 160; fi
-- if [ ! -c /dev/fb6 ]; then mknod /dev/fb6 c 29 192; fi
-- if [ ! -c /dev/fb7 ]; then mknod /dev/fb7 c 29 224; fi
-+ $(INSTALL) -D fbset $(DESTDIR)/usr/sbin
-+ $(INSTALL) -D fbset.8 $(DESTDIR)/usr/man/man8
-+ $(INSTALL) -D fb.modes.5 $(DESTDIR)/usr/man/man5
-
- clean:
- $(RM) *.o fbset lex.yy.c modes.tab.c modes.tab.h
diff --git a/patches/fbset-2.1/series b/patches/fbset-2.1/series
deleted file mode 100644
index 7ec7a11b9..000000000
--- a/patches/fbset-2.1/series
+++ /dev/null
@@ -1 +0,0 @@
-0001-fbset-do-not-overwrite-CC-to-allow-crosscompiling.patch
diff --git a/patches/fbtest-2014-08-11-g29ab066/0001-provide-a-pre-generated-penguin.c-to-get-rid-of-this.patch b/patches/fbtest-2023-03-28-g47f6351/0001-provide-a-pre-generated-penguin.c-to-get-rid-of-this.patch
index 0baef3cd7..97b5d1c82 100644
--- a/patches/fbtest-2014-08-11-g29ab066/0001-provide-a-pre-generated-penguin.c-to-get-rid-of-this.patch
+++ b/patches/fbtest-2023-03-28-g47f6351/0001-provide-a-pre-generated-penguin.c-to-get-rid-of-this.patch
@@ -19,7 +19,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
create mode 100644 images/penguin.c
diff --git a/Makefile b/Makefile
-index 9a0a7ad95d9b..1557199d1fb5 100644
+index 5041f6ca5ca1..512a684f5f32 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@ TOPDIR = .
diff --git a/patches/fbtest-2014-08-11-g29ab066/0002-add-install-target.patch b/patches/fbtest-2023-03-28-g47f6351/0002-add-install-target.patch
index 636226d53..3e65cbaa4 100644
--- a/patches/fbtest-2014-08-11-g29ab066/0002-add-install-target.patch
+++ b/patches/fbtest-2023-03-28-g47f6351/0002-add-install-target.patch
@@ -9,10 +9,10 @@ Signed-off-by: Markus Niebel <Markus.Niebel@tq-group.com>
1 file changed, 2 insertions(+)
diff --git a/Makefile b/Makefile
-index 1557199d1fb5..1f926b4cf6be 100644
+index 512a684f5f32..c20376dccf70 100644
--- a/Makefile
+++ b/Makefile
-@@ -12,3 +12,5 @@ include $(TOPDIR)/Rules.make
+@@ -13,3 +13,5 @@ include $(TOPDIR)/Rules.make
images: pnmtohex
diff --git a/patches/fbtest-2023-03-28-g47f6351/0003-Initialize-ticks-in-benchmark.patch b/patches/fbtest-2023-03-28-g47f6351/0003-Initialize-ticks-in-benchmark.patch
new file mode 100644
index 000000000..0360f05b9
--- /dev/null
+++ b/patches/fbtest-2023-03-28-g47f6351/0003-Initialize-ticks-in-benchmark.patch
@@ -0,0 +1,29 @@
+From: Philipp Zabel <p.zabel@pengutronix.de>
+Date: Thu, 29 Jun 2023 10:28:40 +0200
+Subject: [PATCH] Initialize ticks in benchmark()
+
+Fixes a build error with GCC 13:
+
+ util.c: In function 'benchmark':
+ util.c:177:17: error: 'ticks' may be used uninitialized [-Werror=maybe-uninitialized]
+ util.c:161:14: note: 'ticks' was declared here
+
+Link: https://lore.kernel.org/r/20230629082840.888110-1-p.zabel@pengutronix.de
+Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
+---
+ util.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/util.c b/util.c
+index cdf89b38618a..1193523990e7 100644
+--- a/util.c
++++ b/util.c
+@@ -158,7 +158,7 @@ static uint64_t get_ticks(void)
+
+ double benchmark(void (*func)(unsigned long n, void *data), void *data)
+ {
+- uint64_t ticks;
++ uint64_t ticks = 0;
+ unsigned long n = 1;
+
+ printf("Benchmarking... ");
diff --git a/patches/fbtest-2014-08-11-g29ab066/series b/patches/fbtest-2023-03-28-g47f6351/series
index af761ac8d..d3af842b3 100644
--- a/patches/fbtest-2014-08-11-g29ab066/series
+++ b/patches/fbtest-2023-03-28-g47f6351/series
@@ -2,4 +2,5 @@
#tag:base --start-number 1
0001-provide-a-pre-generated-penguin.c-to-get-rid-of-this.patch
0002-add-install-target.patch
-# 96842eebf8f8f3ef2bf71367ce23f9cd - git-ptx-patches magic
+0003-Initialize-ticks-in-benchmark.patch
+# 552895bf186281b657d9f116ef4cae0d - git-ptx-patches magic
diff --git a/patches/fio-3.23/0001-use-latomic-when-necessary.patch b/patches/fio-3.32/0001-use-latomic-when-necessary.patch
index d8265106d..7b502ea9f 100644
--- a/patches/fio-3.23/0001-use-latomic-when-necessary.patch
+++ b/patches/fio-3.32/0001-use-latomic-when-necessary.patch
@@ -11,10 +11,10 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/configure b/configure
-index 6d672fe5ebda..4103a5af66ed 100755
+index a2b9bd4cc8f4..a118d90f9648 100755
--- a/configure
+++ b/configure
-@@ -578,16 +578,19 @@ cat > $TMPC <<EOF
+@@ -607,16 +607,19 @@ cat > $TMPC <<EOF
#include <stdatomic.h>
int main(void)
{
diff --git a/patches/fio-3.23/series b/patches/fio-3.32/series
index 9d54f50bf..9d54f50bf 100644
--- a/patches/fio-3.23/series
+++ b/patches/fio-3.32/series
diff --git a/patches/flup-1.0.2/0001-support-python2.7.patch b/patches/flup-1.0.2/0001-support-python2.7.patch
deleted file mode 100644
index 2a2ee1613..000000000
--- a/patches/flup-1.0.2/0001-support-python2.7.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Wed, 12 Jun 2013 21:03:22 +0200
-Subject: [PATCH] support python2.7
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- ez_setup.py | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/ez_setup.py b/ez_setup.py
-index d24e845..b48fc0b 100644
---- a/ez_setup.py
-+++ b/ez_setup.py
-@@ -14,7 +14,7 @@ the appropriate options to ``use_setuptools()``.
- This file can also be run as a script to install or upgrade setuptools.
- """
- import sys
--DEFAULT_VERSION = "0.6c9"
-+DEFAULT_VERSION = "0.6c11"
- DEFAULT_URL = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3]
-
- md5_data = {
-@@ -52,6 +52,8 @@ md5_data = {
- 'setuptools-0.6c9-py2.4.egg': '260a2be2e5388d66bdaee06abec6342a',
- 'setuptools-0.6c9-py2.5.egg': 'fe67c3e5a17b12c0e7c541b7ea43a8e6',
- 'setuptools-0.6c9-py2.6.egg': 'ca37b1ff16fa2ede6e19383e7b59245a',
-+ 'setuptools-0.6c11-py2.7.egg': 'fe1f997bc722265116870bc7919059ea',
-+
- }
-
- import sys, os
diff --git a/patches/flup-1.0.2/autogen.sh b/patches/flup-1.0.2/autogen.sh
deleted file mode 100755
index 71b2e73ea..000000000
--- a/patches/flup-1.0.2/autogen.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/bash
-
-cp patches/setuptools-0.6c11-py2.7.egg .
-
diff --git a/patches/flup-1.0.2/series b/patches/flup-1.0.2/series
deleted file mode 100644
index b90762fc5..000000000
--- a/patches/flup-1.0.2/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-support-python2.7.patch
-# 38422a23875f4810b966c4154441dc57 - git-ptx-patches magic
diff --git a/patches/flup-1.0.2/setuptools-0.6c11-py2.7.egg b/patches/flup-1.0.2/setuptools-0.6c11-py2.7.egg
deleted file mode 100644
index 8a51424a4..000000000
--- a/patches/flup-1.0.2/setuptools-0.6c11-py2.7.egg
+++ /dev/null
Binary files differ
diff --git a/patches/freetype-2.10.1/0001-generate-freetype-config-and-freetype2.pc-correctly.patch b/patches/freetype-2.13.2/0001-generate-freetype-config-and-freetype2.pc-correctly.patch
index d5b50f663..1110f457b 100644
--- a/patches/freetype-2.10.1/0001-generate-freetype-config-and-freetype2.pc-correctly.patch
+++ b/patches/freetype-2.13.2/0001-generate-freetype-config-and-freetype2.pc-correctly.patch
@@ -6,15 +6,15 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
---
builds/unix/configure.ac | 4 +++-
builds/unix/freetype-config.in | 19 ++++++-------------
- builds/unix/freetype2.in | 14 +++++++-------
+ builds/unix/freetype2.in | 18 +++++++++---------
builds/unix/unix-def.in | 3 ---
- 4 files changed, 16 insertions(+), 24 deletions(-)
+ 4 files changed, 18 insertions(+), 26 deletions(-)
diff --git a/builds/unix/configure.ac b/builds/unix/configure.ac
-index d374088aae9e..e40558adb105 100644
+index a98865a432d9..45c3bcbcd770 100644
--- a/builds/unix/configure.ac
+++ b/builds/unix/configure.ac
-@@ -1114,7 +1114,9 @@ AC_CONFIG_HEADERS([ftconfig.h:ftconfig.in],
+@@ -1140,7 +1140,9 @@ AC_CONFIG_HEADERS([ftconfig.h])
# and `builds/unix/unix-cc.mk' that will be used by the build system
#
AC_CONFIG_FILES([unix-cc.mk:unix-cc.in
@@ -23,10 +23,10 @@ index d374088aae9e..e40558adb105 100644
+ freetype-config:freetype-config.in
+ freetype2.pc:freetype2.in])
- # re-generate the Jamfile to use libtool now
- #
+ AC_OUTPUT
+
diff --git a/builds/unix/freetype-config.in b/builds/unix/freetype-config.in
-index 9e8d3c2bb82f..8f1c0af3c254 100644
+index 58561126f2bd..5d7cc4f36dfa 100644
--- a/builds/unix/freetype-config.in
+++ b/builds/unix/freetype-config.in
@@ -16,13 +16,6 @@ export LC_ALL
@@ -68,7 +68,7 @@ index 9e8d3c2bb82f..8f1c0af3c254 100644
test "${SYSROOT}$libdir" != "/usr/lib64" ; then
libs_L="-L${SYSROOT}$libdir"
diff --git a/builds/unix/freetype2.in b/builds/unix/freetype2.in
-index 2d759ecf8bfd..f44f14cabf9a 100644
+index fe389f4b6fef..885444efebf7 100644
--- a/builds/unix/freetype2.in
+++ b/builds/unix/freetype2.in
@@ -1,14 +1,14 @@
@@ -85,19 +85,21 @@ index 2d759ecf8bfd..f44f14cabf9a 100644
URL: https://freetype.org
Description: A free, high-quality, and portable font engine.
-Version: %ft_version%
+-Requires: %PKGCONFIG_REQUIRES%
+-Requires.private: %PKGCONFIG_REQUIRES_PRIVATE%
+-Libs: %PKGCONFIG_LIBS%
+-Libs.private: %PKGCONFIG_LIBS_PRIVATE%
+Version: @ft_version@
- Requires:
--Requires.private: %REQUIRES_PRIVATE%
-+Requires.private: @REQUIRES_PRIVATE@
- Libs: -L${libdir} -lfreetype
--Libs.private: %LIBS_PRIVATE%
-+Libs.private: @LIBS_PRIVATE@
++Requires: @PKGCONFIG_REQUIRES@
++Requires.private: @PKGCONFIG_REQUIRES_PRIVATE@
++Libs: @PKGCONFIG_LIBS@
++Libs.private: @PKGCONFIG_LIBS_PRIVATE@
Cflags: -I${includedir}/freetype2
diff --git a/builds/unix/unix-def.in b/builds/unix/unix-def.in
-index e74844d29dcd..c117b5ef0d5c 100644
+index d50994f3c928..ba02b00c742d 100644
--- a/builds/unix/unix-def.in
+++ b/builds/unix/unix-def.in
-@@ -154,7 +154,4 @@ $(OBJ_BUILD)/freetype2.pc: $(TOP_DIR)/builds/unix/freetype2.in
+@@ -157,7 +157,4 @@ $(OBJ_BUILD)/freetype2.pc: $(TOP_DIR)/builds/unix/freetype2.in
# defines whether we should install `freetype-config' or not
INSTALL_FT2_CONFIG = @INSTALL_FT2_CONFIG@
diff --git a/patches/freetype-2.10.1/autogen.sh b/patches/freetype-2.13.2/autogen.sh
index 1056b101c..1056b101c 100755
--- a/patches/freetype-2.10.1/autogen.sh
+++ b/patches/freetype-2.13.2/autogen.sh
diff --git a/patches/freetype-2.10.1/series b/patches/freetype-2.13.2/series
index ab166a354..ab166a354 100644
--- a/patches/freetype-2.10.1/series
+++ b/patches/freetype-2.13.2/series
diff --git a/patches/fuse-2.9.9/0001-Whitelist-UFSD-backport-to-2.9-branch-452.patch b/patches/fuse-2.9.9/0001-Whitelist-UFSD-backport-to-2.9-branch-452.patch
new file mode 100644
index 000000000..2f7e58560
--- /dev/null
+++ b/patches/fuse-2.9.9/0001-Whitelist-UFSD-backport-to-2.9-branch-452.patch
@@ -0,0 +1,35 @@
+From: tenzap <46226844+tenzap@users.noreply.github.com>
+Date: Sun, 15 Sep 2019 17:57:08 +0200
+Subject: [PATCH] Whitelist UFSD (backport to 2.9 branch) (#452)
+
+---
+ ChangeLog | 6 ++++++
+ util/fusermount.c | 1 +
+ 2 files changed, 7 insertions(+)
+
+diff --git a/ChangeLog b/ChangeLog
+index 13a369f6d113..5574f204abb2 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,9 @@
++Unreleased Changes
++==================
++
++* Added UFSD to whitelist (so users can now mount FUSE filesystems
++ on mountpoints within UFSD filesystems).
++
+ FUSE 2.9.9 (2019-01-04)
+ =======================
+
+diff --git a/util/fusermount.c b/util/fusermount.c
+index 4b799d96b131..5af487aa0e64 100644
+--- a/util/fusermount.c
++++ b/util/fusermount.c
+@@ -1049,6 +1049,7 @@ static int check_perm(const char **mntp, struct stat *stbuf, int *mountpoint_fd)
+ 0x73717368 /* SQUASHFS_MAGIC */,
+ 0x01021994 /* TMPFS_MAGIC */,
+ 0x24051905 /* UBIFS_SUPER_MAGIC */,
++ 0x736675005346544e /* UFSD */,
+ 0x58465342 /* XFS_SB_MAGIC */,
+ 0x2FC12FC1 /* ZFS_SUPER_MAGIC */,
+ };
diff --git a/patches/fuse-2.9.9/0002-Correct-errno-comparison-571.patch b/patches/fuse-2.9.9/0002-Correct-errno-comparison-571.patch
new file mode 100644
index 000000000..ea2a3afde
--- /dev/null
+++ b/patches/fuse-2.9.9/0002-Correct-errno-comparison-571.patch
@@ -0,0 +1,21 @@
+From: Andrew Gaul <gaul@google.com>
+Date: Mon, 14 Dec 2020 19:16:05 +0900
+Subject: [PATCH] Correct errno comparison (#571)
+
+---
+ lib/fuse.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/fuse.c b/lib/fuse.c
+index d1d873a37018..1ee0ef47945d 100644
+--- a/lib/fuse.c
++++ b/lib/fuse.c
+@@ -4350,7 +4350,7 @@ static int fuse_session_loop_remember(struct fuse *f)
+
+ res = poll(&fds, 1, timeout * 1000);
+ if (res == -1) {
+- if (errno == -EINTR)
++ if (errno == EINTR)
+ continue;
+ else
+ break;
diff --git a/patches/fuse-2.9.9/0003-util-ulockmgr_server.c-conditionally-define-closefro.patch b/patches/fuse-2.9.9/0003-util-ulockmgr_server.c-conditionally-define-closefro.patch
new file mode 100644
index 000000000..7e252df4b
--- /dev/null
+++ b/patches/fuse-2.9.9/0003-util-ulockmgr_server.c-conditionally-define-closefro.patch
@@ -0,0 +1,59 @@
+From: Sam James <sam@gentoo.org>
+Date: Sat, 24 Jul 2021 22:02:45 +0100
+Subject: [PATCH] util/ulockmgr_server.c: conditionally define closefrom (fix
+ glibc-2.34+)
+
+closefrom(3) has joined us in glibc-land from *BSD and Solaris. Since
+it's available in glibc 2.34+, we want to detect it and only define our
+fallback if the libc doesn't provide it.
+
+Bug: https://bugs.gentoo.org/803923
+Signed-off-by: Sam James <sam@gentoo.org>
+---
+ configure.ac | 1 +
+ util/ulockmgr_server.c | 6 ++++++
+ 2 files changed, 7 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 9946a0efa4a2..a2d481aa9c04 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -55,6 +55,7 @@ fi
+
+ AC_CHECK_FUNCS([fork setxattr fdatasync splice vmsplice utimensat])
+ AC_CHECK_FUNCS([posix_fallocate])
++AC_CHECK_FUNCS([closefrom])
+ AC_CHECK_MEMBERS([struct stat.st_atim])
+ AC_CHECK_MEMBERS([struct stat.st_atimespec])
+
+diff --git a/util/ulockmgr_server.c b/util/ulockmgr_server.c
+index 273c7d9231ae..a04dac5c6548 100644
+--- a/util/ulockmgr_server.c
++++ b/util/ulockmgr_server.c
+@@ -22,6 +22,10 @@
+ #include <sys/socket.h>
+ #include <sys/wait.h>
+
++#ifdef HAVE_CONFIG_H
++ #include "config.h"
++#endif
++
+ struct message {
+ unsigned intr : 1;
+ unsigned nofd : 1;
+@@ -124,6 +128,7 @@ static int receive_message(int sock, void *buf, size_t buflen, int *fdp,
+ return res;
+ }
+
++#if !defined(HAVE_CLOSEFROM)
+ static int closefrom(int minfd)
+ {
+ DIR *dir = opendir("/proc/self/fd");
+@@ -141,6 +146,7 @@ static int closefrom(int minfd)
+ }
+ return 0;
+ }
++#endif
+
+ static void send_reply(int cfd, struct message *msg)
+ {
diff --git a/patches/fuse-2.9.9/0001-use-asm-types.h-to-define-__u64-etc.patch b/patches/fuse-2.9.9/0100-use-asm-types.h-to-define-__u64-etc.patch
index 5b79e61a1..5b79e61a1 100644
--- a/patches/fuse-2.9.9/0001-use-asm-types.h-to-define-__u64-etc.patch
+++ b/patches/fuse-2.9.9/0100-use-asm-types.h-to-define-__u64-etc.patch
diff --git a/patches/dropwatch-1.5.3/autogen.sh b/patches/fuse-2.9.9/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/dropwatch-1.5.3/autogen.sh
+++ b/patches/fuse-2.9.9/autogen.sh
diff --git a/patches/fuse-2.9.9/series b/patches/fuse-2.9.9/series
index 8ade71715..4e490d092 100644
--- a/patches/fuse-2.9.9/series
+++ b/patches/fuse-2.9.9/series
@@ -1,4 +1,9 @@
# generated by git-ptx-patches
#tag:base --start-number 1
-0001-use-asm-types.h-to-define-__u64-etc.patch
-# 14044a304d2cf460a7b33d5e064996e9 - git-ptx-patches magic
+#tag:upstream --start-number 1
+0001-Whitelist-UFSD-backport-to-2.9-branch-452.patch
+0002-Correct-errno-comparison-571.patch
+0003-util-ulockmgr_server.c-conditionally-define-closefro.patch
+#tag:ptxdist --start-number 100
+0100-use-asm-types.h-to-define-__u64-etc.patch
+# 65207a5295e69748308b0f9451983b5e - git-ptx-patches magic
diff --git a/patches/glmark2-2020.04/0001-Build-Fix-Python-3-incompatibility.patch b/patches/glmark2-2020.04/0001-Build-Fix-Python-3-incompatibility.patch
deleted file mode 100644
index 88c85406a..000000000
--- a/patches/glmark2-2020.04/0001-Build-Fix-Python-3-incompatibility.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-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 aefde706be0a..e09fa7850e1c 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/patches/glmark2-2020.04/0002-drm-Don-t-prefer-RGBA-component-widths-larger-than-8.patch b/patches/glmark2-2020.04/0002-drm-Don-t-prefer-RGBA-component-widths-larger-than-8.patch
deleted file mode 100644
index 490c4815c..000000000
--- a/patches/glmark2-2020.04/0002-drm-Don-t-prefer-RGBA-component-widths-larger-than-8.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From: Alexandros Frantzis <alexandros.frantzis@collabora.com>
-Date: Mon, 13 Jul 2020 11:16:28 +0300
-Subject: [PATCH] drm: Don't prefer RGBA component widths larger than 8
-
-Don't prefer RGBA component widths larger than 8, since they are
-unlikely to be what the users want or properly supported for display.
-Such widths can still be used, but only if explicitly requested.
-
-Fixes #125
----
- src/gl-visual-config.cpp | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/src/gl-visual-config.cpp b/src/gl-visual-config.cpp
-index dbd87d2a3c3c..013cc646356b 100644
---- a/src/gl-visual-config.cpp
-+++ b/src/gl-visual-config.cpp
-@@ -108,6 +108,14 @@ GLVisualConfig::score_component(int component, int target, int scale) const
- /* Reward exact matches with the maximum per component score */
- score = MAXIMUM_COMPONENT_SCORE;
- }
-+ else if (component > 8 && target <= 8 && scale > 1)
-+ {
-+ /* Penalize RGBA component widths larger than 8, since they are
-+ * unlikely to be what the users want or properly supported for
-+ * display. Such widths can still be used, but only if explicitly
-+ * requested. */
-+ score = UNACCEPTABLE_COMPONENT_PENALTY;
-+ }
- else
- {
- /*
diff --git a/patches/glmark2-2020.04/series b/patches/glmark2-2020.04/series
deleted file mode 100644
index 48cf812db..000000000
--- a/patches/glmark2-2020.04/series
+++ /dev/null
@@ -1,5 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Build-Fix-Python-3-incompatibility.patch
-0002-drm-Don-t-prefer-RGBA-component-widths-larger-than-8.patch
-# 1ffb9f179a40f263a2758a123744c53e - git-ptx-patches magic
diff --git a/patches/glu-9.0.1/0001-build-fix-the-debug-parameter-to-properly-handle-dis.patch b/patches/glu-9.0.1/0001-build-fix-the-debug-parameter-to-properly-handle-dis.patch
deleted file mode 100644
index c1bb17c63..000000000
--- a/patches/glu-9.0.1/0001-build-fix-the-debug-parameter-to-properly-handle-dis.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: Lucas Stach <l.stach@pengutronix.de>
-Date: Mon, 5 Oct 2020 16:45:11 +0200
-Subject: [PATCH] build: fix the debug parameter to properly handle
- --disable-debug
-
-Right now the the enableval isn't checked, so the debug options are added
-for --enable-debug and --disable-debug, which is quite surprising for a
-user. Fix this to peroply handle the disable case.
----
- configure.ac | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 6d9b04b45cb2..f1bb7b14eae4 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -42,8 +42,11 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
- AC_ARG_ENABLE(debug,
- AS_HELP_STRING([--enable-debug],
- [Enable debugging information]),
-- [CFLAGS="$CFLAGS -g -O0 -DDEBUG"
-- CXXFLAGS="$CXXFLAGS -g -O0 -DDEBUG"],
-+ [if test x$enableval = xyes; then
-+ CFLAGS="$CFLAGS -g -O0 -DDEBUG"
-+ CXXFLAGS="$CXXFLAGS -g -O0 -DDEBUG"; else
-+ CFLAGS="$CFLAGS -DNDEBUG"
-+ CXXFLAGS="$CXXFLAGS -DNDEBUG"; fi],
- [CFLAGS="$CFLAGS -DNDEBUG"
- CXXFLAGS="$CXXFLAGS -DNDEBUG"])
-
diff --git a/patches/glu-9.0.1/series b/patches/glu-9.0.1/series
deleted file mode 100644
index 1ad43d010..000000000
--- a/patches/glu-9.0.1/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-build-fix-the-debug-parameter-to-properly-handle-dis.patch
-# d78721868a7016e340f9e3fe654aa62e - git-ptx-patches magic
diff --git a/patches/gnutls-3.6.15/0001-don-t-try-ru-build-run-code-generator.patch b/patches/gnutls-3.6.15/0001-don-t-try-ru-build-run-code-generator.patch
deleted file mode 100644
index c879ec7f8..000000000
--- a/patches/gnutls-3.6.15/0001-don-t-try-ru-build-run-code-generator.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Fri, 3 Apr 2020 13:07:30 +0200
-Subject: [PATCH] don't try ru build / run code generator
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- lib/nettle/Makefile.am | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/lib/nettle/Makefile.am b/lib/nettle/Makefile.am
-index aae87e09023a..de6f9ed44399 100644
---- a/lib/nettle/Makefile.am
-+++ b/lib/nettle/Makefile.am
-@@ -99,6 +99,8 @@ ecc_generated_headers = \
- BUILT_SOURCES = $(ecc_generated_headers)
- EXTRA_DIST = $(ecc_generated_headers) ecc/eccdata.stamp
-
-+if !CROSS_COMPILING
-+
- noinst_PROGRAMS = ecc/eccdata$(EXEEXT)
-
- ecc_eccdata_SOURCES = ecc/eccdata.c
-@@ -126,6 +128,8 @@ ecc/ecc-gost-gc512a-32.h: ecc/eccdata.stamp
- ecc/ecc-gost-gc512a-64.h: ecc/eccdata.stamp
- $(AM_V_GEN)ecc/eccdata$(EXEEXT) gost_gc512a 43 6 64 > $@T && mv $@T $@
-
-+endif
-+
- libcrypto_la_SOURCES += \
- gost/ecc-gost-hash.c nettle-alloca.h ecc-gost-curve.h
-
diff --git a/patches/gnutls-3.6.15/autogen.sh b/patches/gnutls-3.6.15/autogen.sh
deleted file mode 100755
index d99000165..000000000
--- a/patches/gnutls-3.6.15/autogen.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/bash
-
-# only automake to avoid autopoint / gettext dependency
-automake
diff --git a/patches/gnutls-3.6.15/series b/patches/gnutls-3.6.15/series
deleted file mode 100644
index 1a79ecf82..000000000
--- a/patches/gnutls-3.6.15/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-don-t-try-ru-build-run-code-generator.patch
-# b14a2a9426010360472bbafa176de894 - git-ptx-patches magic
diff --git a/patches/gobject-introspection-1.66.1/0002-meson-fix-building-with-Dbuild_introspection_data-fa.patch b/patches/gobject-introspection-1.66.1/0002-meson-fix-building-with-Dbuild_introspection_data-fa.patch
deleted file mode 100644
index f788c564f..000000000
--- a/patches/gobject-introspection-1.66.1/0002-meson-fix-building-with-Dbuild_introspection_data-fa.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Thu, 3 Dec 2020 15:29:01 +0100
-Subject: [PATCH] meson: fix building with -Dbuild_introspection_data=false
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- meson.build | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 14af2b17109b..8429553d483e 100644
---- a/meson.build
-+++ b/meson.build
-@@ -224,7 +224,7 @@ subdir('docs')
-
- # The tests will also run, which is not possible if they
- # were built for a different architecture.
--if not meson.is_cross_build()
-+if not meson.is_cross_build() and get_option('build_introspection_data')
- subdir('tests')
- endif
-
-@@ -283,7 +283,7 @@ pkg.generate(
- # FIXME: meson.override_dependency() and declare_dependency()'s variable arguments
- # are new in Meson 0.54.0, older versions of Meson won't be able to use g-i as
- # subproject anyway
--if meson.version().version_compare('>=0.54.0')
-+if meson.version().version_compare('>=0.54.0') and get_option('build_introspection_data')
- girepo_dep = declare_dependency(
- sources: typelibs,
- dependencies: girepo_dep,
diff --git a/patches/gobject-introspection-1.66.1/series b/patches/gobject-introspection-1.66.1/series
deleted file mode 100644
index 1b4ae1e76..000000000
--- a/patches/gobject-introspection-1.66.1/series
+++ /dev/null
@@ -1,6 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-dumper.py-don-t-close-fds.patch
-0002-meson-fix-building-with-Dbuild_introspection_data-fa.patch
-0003-HACK-don-t-build-the-python-module-when-cross-compil.patch
-# 304833ca29e000d20d22ec6022863d8c - git-ptx-patches magic
diff --git a/patches/gobject-introspection-1.66.1/0001-dumper.py-don-t-close-fds.patch b/patches/gobject-introspection-1.72.0/0001-dumper.py-don-t-close-fds.patch
index 05606e784..cf032b35c 100644
--- a/patches/gobject-introspection-1.66.1/0001-dumper.py-don-t-close-fds.patch
+++ b/patches/gobject-introspection-1.72.0/0001-dumper.py-don-t-close-fds.patch
@@ -10,7 +10,7 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/giscanner/dumper.py b/giscanner/dumper.py
-index e4b6ea03a301..cb3a7ad1659e 100644
+index 22afd61efb67..08c3ae19f4f2 100644
--- a/giscanner/dumper.py
+++ b/giscanner/dumper.py
@@ -275,7 +275,7 @@ class DumpCompiler(object):
diff --git a/patches/gobject-introspection-1.66.1/0003-HACK-don-t-build-the-python-module-when-cross-compil.patch b/patches/gobject-introspection-1.72.0/0002-HACK-don-t-build-the-python-module-when-cross-compil.patch
index ae368408a..dc64696d9 100644
--- a/patches/gobject-introspection-1.66.1/0003-HACK-don-t-build-the-python-module-when-cross-compil.patch
+++ b/patches/gobject-introspection-1.72.0/0002-HACK-don-t-build-the-python-module-when-cross-compil.patch
@@ -9,10 +9,10 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/giscanner/meson.build b/giscanner/meson.build
-index a3b06f37b912..b6dfb7144c76 100644
+index 3d7dc678a260..79795d54ac2d 100644
--- a/giscanner/meson.build
+++ b/giscanner/meson.build
-@@ -99,6 +99,7 @@ giscanner_lib = static_library('giscanner',
+@@ -97,6 +97,7 @@ giscanner_lib = static_library('giscanner',
dependencies: [glib_dep, gobject_dep, gio_dep, gmodule_dep],
)
@@ -20,7 +20,7 @@ index a3b06f37b912..b6dfb7144c76 100644
# https://github.com/mesonbuild/meson/issues/4117
if host_machine.system() == 'windows'
python_ext_dep = python.dependency()
-@@ -120,3 +121,6 @@ giscanner_pymod = python.extension_module('_giscanner', ['giscannermodule.c'],
+@@ -118,3 +119,6 @@ giscanner_pymod = python.extension_module('_giscanner', ['giscannermodule.c'],
install: true,
install_dir: giscannerdir,
)
@@ -28,12 +28,12 @@ index a3b06f37b912..b6dfb7144c76 100644
+giscanner_pymod = []
+endif
diff --git a/meson.build b/meson.build
-index 8429553d483e..ec791006b29e 100644
+index e15f6f9965ca..52fd99ff1409 100644
--- a/meson.build
+++ b/meson.build
-@@ -157,8 +157,10 @@ endif
- libffi_dep = dependency('libffi',
- fallback : ['libffi', 'ffi_dep'])
+@@ -162,8 +162,10 @@ configure_file(
+ output: 'config.h'
+ )
-# python headers
-cc.check_header('Python.h', dependencies: [python.dependency()], required: true)
diff --git a/patches/gobject-introspection-1.72.0/series b/patches/gobject-introspection-1.72.0/series
new file mode 100644
index 000000000..4d340c52d
--- /dev/null
+++ b/patches/gobject-introspection-1.72.0/series
@@ -0,0 +1,5 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-dumper.py-don-t-close-fds.patch
+0002-HACK-don-t-build-the-python-module-when-cross-compil.patch
+# 5897d2843253341a60a4fb45e833d86d - git-ptx-patches magic
diff --git a/patches/gpsd-3.21/0003-SConstruct-don-t-make-python-files-without-shebang-e.patch b/patches/gpsd-3.21/0003-SConstruct-don-t-make-python-files-without-shebang-e.patch
deleted file mode 100644
index 809d98a6d..000000000
--- a/patches/gpsd-3.21/0003-SConstruct-don-t-make-python-files-without-shebang-e.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Fri, 14 Aug 2020 09:44:34 +0200
-Subject: [PATCH] SConstruct: don't make python files without shebang
- executable
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- SConstruct | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/SConstruct b/SConstruct
-index 434141f3e46b..d303c3aa6d20 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -2116,7 +2116,7 @@ for fn in templated:
- env.Default(builder)
- # set read-only to alert people trying to edit the files.
- env.AddPostAction(builder, 'chmod -w $TARGET')
-- if ((fn.endswith(".py.in") or
-+ if ((fn[:-3] in ['contrib/skyview2svg.py', 'gps/gps.py'] or
- fn[:-3] in python_progs or
- fn[:-3] in ['contrib/ntpshmviz', 'contrib/webgps'])):
- # set python files to executable
diff --git a/patches/gpsd-3.21/series b/patches/gpsd-3.21/series
deleted file mode 100644
index bbfb1be7d..000000000
--- a/patches/gpsd-3.21/series
+++ /dev/null
@@ -1,7 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Search-for-ncursesw-pkgconfig.patch
-0002-SConstruct-Use-target-option-to-decide-whenewer-to-r.patch
-0003-SConstruct-don-t-make-python-files-without-shebang-e.patch
-0004-SConstruct-don-t-use-lnsl.patch
-# a4f439aa9ecaa21523935c6cada0b0dc - git-ptx-patches magic
diff --git a/patches/gpsd-3.21/0001-Search-for-ncursesw-pkgconfig.patch b/patches/gpsd-3.23.1/0001-SConscript-Search-for-ncursesw-pkgconfig.patch
index c7b874c83..7f662bf2d 100644
--- a/patches/gpsd-3.21/0001-Search-for-ncursesw-pkgconfig.patch
+++ b/patches/gpsd-3.23.1/0001-SConscript-Search-for-ncursesw-pkgconfig.patch
@@ -1,20 +1,20 @@
From: Ladislav Michl <ladis@linux-mips.org>
Date: Fri, 25 Oct 2019 14:18:30 +0200
-Subject: [PATCH] Search for ncursesw pkgconfig
+Subject: [PATCH] SConscript: Search for ncursesw pkgconfig
PTXDist can be configured to build wide char version of ncurses
-which SConstruct is unaware of.
+which SConscript is unaware of.
Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
---
- SConstruct | 2 ++
+ SConscript | 2 ++
1 file changed, 2 insertions(+)
-diff --git a/SConstruct b/SConstruct
-index e15d63f6ede0..71643c428f26 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -1067,6 +1067,8 @@ else:
+diff --git a/SConscript b/SConscript
+index 8c6136d9d623..dc7a5c997357 100644
+--- a/SConscript
++++ b/SConscript
+@@ -1036,6 +1036,8 @@ if not cleaning and not helping:
ncurseslibs = pkg_config('ncurses', rpath_hack=True)
if config.CheckPKG('tinfo'):
ncurseslibs += pkg_config('tinfo', rpath_hack=True)
diff --git a/patches/gpsd-3.21/0002-SConstruct-Use-target-option-to-decide-whenewer-to-r.patch b/patches/gpsd-3.23.1/0002-SConscript-Use-target-option-to-decide-whenewer-to-r.patch
index d7c6945ae..ef8974979 100644
--- a/patches/gpsd-3.21/0002-SConstruct-Use-target-option-to-decide-whenewer-to-r.patch
+++ b/patches/gpsd-3.23.1/0002-SConscript-Use-target-option-to-decide-whenewer-to-r.patch
@@ -1,17 +1,18 @@
From: Ladislav Michl <ladis@linux-mips.org>
Date: Sun, 2 Feb 2020 09:45:04 +0100
-Subject: [PATCH] SConstruct: Use 'target' option to decide whenewer to restart
+Subject: [PATCH] SConscript: Use 'target' option to decide whenewer to restart
systemd
+Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
---
- SConstruct | 2 +-
+ SConscript | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/SConstruct b/SConstruct
-index 71643c428f26..434141f3e46b 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -2853,7 +2853,7 @@ udev_install = Utility('udev-install', 'install', [
+diff --git a/SConscript b/SConscript
+index dc7a5c997357..e090a3a22e24 100644
+--- a/SConscript
++++ b/SConscript
+@@ -3102,7 +3102,7 @@ udev_install = Utility('udev-install', 'install', [
if env['systemd']:
env.Requires(udev_install, systemd_install)
diff --git a/patches/gpsd-3.23.1/0003-SConscript-don-t-make-python-files-without-shebang-e.patch b/patches/gpsd-3.23.1/0003-SConscript-don-t-make-python-files-without-shebang-e.patch
new file mode 100644
index 000000000..1c4caef05
--- /dev/null
+++ b/patches/gpsd-3.23.1/0003-SConscript-don-t-make-python-files-without-shebang-e.patch
@@ -0,0 +1,23 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Fri, 14 Aug 2020 09:44:34 +0200
+Subject: [PATCH] SConscript: don't make python files without shebang
+ executable
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ SConscript | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/SConscript b/SConscript
+index e090a3a22e24..400af2c1fdb3 100644
+--- a/SConscript
++++ b/SConscript
+@@ -2263,7 +2263,7 @@ for (tgt, src) in templated.items():
+ env.Default(builder)
+ # set read-only to alert people trying to edit the files.
+ env.AddPostAction(builder, 'chmod -w $TARGET')
+- if ((src.endswith(".py.in") or
++ if (((src.endswith(".py.in") and src not in ['gps/__init__.py.in', 'gps/packet.py.in']) or
+ tgt in python_progs or
+ tgt in ['contrib/ntpshmviz', 'contrib/webgps'])):
+ # set python files to executable
diff --git a/patches/gpsd-3.21/0004-SConstruct-don-t-use-lnsl.patch b/patches/gpsd-3.23.1/0004-SConscript-don-t-use-lnsl.patch
index e857f8faa..f5fd260e9 100644
--- a/patches/gpsd-3.21/0004-SConstruct-don-t-use-lnsl.patch
+++ b/patches/gpsd-3.23.1/0004-SConscript-don-t-use-lnsl.patch
@@ -1,19 +1,19 @@
From: Michael Olbrich <m.olbrich@pengutronix.de>
Date: Fri, 13 Nov 2020 11:55:47 +0100
-Subject: [PATCH] SConstruct: don't use -lnsl
+Subject: [PATCH] SConscript: don't use -lnsl
It may be found on Linux but is not actually needed.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
---
- SConstruct | 8 +-------
+ SConscript | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
-diff --git a/SConstruct b/SConstruct
-index d303c3aa6d20..ce627e93f65e 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -1113,13 +1113,7 @@ else:
+diff --git a/SConscript b/SConscript
+index 400af2c1fdb3..d6678ba9bd13 100644
+--- a/SConscript
++++ b/SConscript
+@@ -1082,13 +1082,7 @@ if not cleaning and not helping:
else:
confdefs.append("/* #undef HAVE_LIBRT */\n")
diff --git a/patches/gpsd-3.23.1/series b/patches/gpsd-3.23.1/series
new file mode 100644
index 000000000..931e45a04
--- /dev/null
+++ b/patches/gpsd-3.23.1/series
@@ -0,0 +1,7 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-SConscript-Search-for-ncursesw-pkgconfig.patch
+0002-SConscript-Use-target-option-to-decide-whenewer-to-r.patch
+0003-SConscript-don-t-make-python-files-without-shebang-e.patch
+0004-SConscript-don-t-use-lnsl.patch
+# 22a1bb00c3298707123a09b397fd475a - git-ptx-patches magic
diff --git a/patches/grpc-1.21.0/0001-Add-pkg-config-files.patch b/patches/grpc-1.21.0/0001-Add-pkg-config-files.patch
deleted file mode 100644
index 713419bd9..000000000
--- a/patches/grpc-1.21.0/0001-Add-pkg-config-files.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From: Clemens Gruber <clemens.gruber@pqgruber.com>
-Date: Mon, 10 Dec 2018 13:44:53 +0100
-Subject: [PATCH] Add pkg-config files
-
----
- grpc++.pc.in | 12 ++++++++++++
- grpc.pc.in | 12 ++++++++++++
- 2 files changed, 24 insertions(+)
- create mode 100644 grpc++.pc.in
- create mode 100644 grpc.pc.in
-
-diff --git a/grpc++.pc.in b/grpc++.pc.in
-new file mode 100644
-index 000000000000..c2677831a9c7
---- /dev/null
-+++ b/grpc++.pc.in
-@@ -0,0 +1,12 @@
-+prefix=${pcfiledir}/../..
-+exec_prefix=${prefix}
-+libdir=${prefix}/lib
-+includedir=${prefix}/include
-+
-+Name: gRPC++
-+Description: C++ wrapper for gRPC
-+Version: @VERSION@
-+Cflags: -I${includedir}
-+Requires.private: grpc protobuf
-+Libs: -L${libdir} -lgrpc++
-+Libs.private:
-diff --git a/grpc.pc.in b/grpc.pc.in
-new file mode 100644
-index 000000000000..917c57a5e074
---- /dev/null
-+++ b/grpc.pc.in
-@@ -0,0 +1,12 @@
-+prefix=${pcfiledir}/../..
-+exec_prefix=${prefix}
-+libdir=${prefix}/lib
-+includedir=${prefix}/include
-+
-+Name: gRPC
-+Description: high performance general RPC framework
-+Version: @VERSION@
-+Cflags: -I${includedir}
-+Requires.private: zlib libcares openssl
-+Libs: -L{libdir} -lgrpc
-+Libs.private: -lgpr
diff --git a/patches/grpc-1.21.0/0100-Fix-gettid-naming-conflict.patch b/patches/grpc-1.21.0/0100-Fix-gettid-naming-conflict.patch
deleted file mode 100644
index 65979bbce..000000000
--- a/patches/grpc-1.21.0/0100-Fix-gettid-naming-conflict.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From: Juanli Shen <juanlishen@google.com>
-Date: Fri, 23 Aug 2019 08:46:09 -0700
-Subject: [PATCH] Fix gettid() naming conflict
-
----
- src/core/lib/gpr/log_linux.cc | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/src/core/lib/gpr/log_linux.cc b/src/core/lib/gpr/log_linux.cc
-index 561276f0c20a..81026e5689bc 100644
---- a/src/core/lib/gpr/log_linux.cc
-+++ b/src/core/lib/gpr/log_linux.cc
-@@ -40,7 +40,9 @@
- #include <time.h>
- #include <unistd.h>
-
--static long gettid(void) { return syscall(__NR_gettid); }
-+// Not naming it as gettid() to avoid duplicate declarations when complied with
-+// GCC 9.1.
-+static long local_gettid(void) { return syscall(__NR_gettid); }
-
- void gpr_log(const char* file, int line, gpr_log_severity severity,
- const char* format, ...) {
-@@ -70,7 +72,7 @@ void gpr_default_log(gpr_log_func_args* args) {
- gpr_timespec now = gpr_now(GPR_CLOCK_REALTIME);
- struct tm tm;
- static __thread long tid = 0;
-- if (tid == 0) tid = gettid();
-+ if (tid == 0) tid = local_gettid();
-
- timer = static_cast<time_t>(now.tv_sec);
- final_slash = strrchr(args->file, '/');
diff --git a/patches/grpc-1.21.0/0101-Rename-gettid-functions.patch b/patches/grpc-1.21.0/0101-Rename-gettid-functions.patch
deleted file mode 100644
index b9ece8175..000000000
--- a/patches/grpc-1.21.0/0101-Rename-gettid-functions.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From: Benjamin Peterson <benjamin@dropbox.com>
-Date: Fri, 3 May 2019 08:11:00 -0700
-Subject: [PATCH] Rename gettid() functions.
-
-glibc 2.30 will declare its own gettid; see https://sourceware.org/git/?p=glibc.git;a=commit;h=1d0fc213824eaa2a8f8c4385daaa698ee8fb7c92. Rename the grpc versions to avoid naming conflicts.
----
- src/core/lib/gpr/log_linux.cc | 6 ++----
- src/core/lib/gpr/log_posix.cc | 4 ++--
- src/core/lib/iomgr/ev_epollex_linux.cc | 4 ++--
- 3 files changed, 6 insertions(+), 8 deletions(-)
-
-diff --git a/src/core/lib/gpr/log_linux.cc b/src/core/lib/gpr/log_linux.cc
-index 81026e5689bc..8b597b4cf2f1 100644
---- a/src/core/lib/gpr/log_linux.cc
-+++ b/src/core/lib/gpr/log_linux.cc
-@@ -40,9 +40,7 @@
- #include <time.h>
- #include <unistd.h>
-
--// Not naming it as gettid() to avoid duplicate declarations when complied with
--// GCC 9.1.
--static long local_gettid(void) { return syscall(__NR_gettid); }
-+static long sys_gettid(void) { return syscall(__NR_gettid); }
-
- void gpr_log(const char* file, int line, gpr_log_severity severity,
- const char* format, ...) {
-@@ -72,7 +70,7 @@ void gpr_default_log(gpr_log_func_args* args) {
- gpr_timespec now = gpr_now(GPR_CLOCK_REALTIME);
- struct tm tm;
- static __thread long tid = 0;
-- if (tid == 0) tid = local_gettid();
-+ if (tid == 0) tid = sys_gettid();
-
- timer = static_cast<time_t>(now.tv_sec);
- final_slash = strrchr(args->file, '/');
-diff --git a/src/core/lib/gpr/log_posix.cc b/src/core/lib/gpr/log_posix.cc
-index b6edc14ab6b9..2f7c6ce37605 100644
---- a/src/core/lib/gpr/log_posix.cc
-+++ b/src/core/lib/gpr/log_posix.cc
-@@ -31,7 +31,7 @@
- #include <string.h>
- #include <time.h>
-
--static intptr_t gettid(void) { return (intptr_t)pthread_self(); }
-+static intptr_t sys_gettid(void) { return (intptr_t)pthread_self(); }
-
- void gpr_log(const char* file, int line, gpr_log_severity severity,
- const char* format, ...) {
-@@ -86,7 +86,7 @@ void gpr_default_log(gpr_log_func_args* args) {
- char* prefix;
- gpr_asprintf(&prefix, "%s%s.%09d %7" PRIdPTR " %s:%d]",
- gpr_log_severity_string(args->severity), time_buffer,
-- (int)(now.tv_nsec), gettid(), display_file, args->line);
-+ (int)(now.tv_nsec), sys_gettid(), display_file, args->line);
-
- fprintf(stderr, "%-70s %s\n", prefix, args->message);
- gpr_free(prefix);
-diff --git a/src/core/lib/iomgr/ev_epollex_linux.cc b/src/core/lib/iomgr/ev_epollex_linux.cc
-index 08116b3ab534..76f598443120 100644
---- a/src/core/lib/iomgr/ev_epollex_linux.cc
-+++ b/src/core/lib/iomgr/ev_epollex_linux.cc
-@@ -1102,7 +1102,7 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
- }
-
- #ifndef NDEBUG
--static long gettid(void) { return syscall(__NR_gettid); }
-+static long sys_gettid(void) { return syscall(__NR_gettid); }
- #endif
-
- /* pollset->mu lock must be held by the caller before calling this.
-@@ -1122,7 +1122,7 @@ static grpc_error* pollset_work(grpc_pollset* pollset,
- #define WORKER_PTR (&worker)
- #endif
- #ifndef NDEBUG
-- WORKER_PTR->originator = gettid();
-+ WORKER_PTR->originator = sys_gettid();
- #endif
- if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
- gpr_log(GPR_INFO,
diff --git a/patches/grpc-1.21.0/series b/patches/grpc-1.21.0/series
deleted file mode 100644
index 72f6287db..000000000
--- a/patches/grpc-1.21.0/series
+++ /dev/null
@@ -1,7 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Add-pkg-config-files.patch
-#tag:upstream --start-number 100
-0100-Fix-gettid-naming-conflict.patch
-0101-Rename-gettid-functions.patch
-# c5d68a15d62fcc8495ce48a49dd9d92d - git-ptx-patches magic
diff --git a/patches/gst-plugins-bad-0.10.23/0001-remove-endianness-swapping.patch b/patches/gst-plugins-bad-0.10.23/0001-remove-endianness-swapping.patch
deleted file mode 100644
index 5dcc70105..000000000
--- a/patches/gst-plugins-bad-0.10.23/0001-remove-endianness-swapping.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From: Luotao Fu <lfu@pengutronix.de>
-Date: Thu, 11 Dec 2008 11:57:48 +0100
-Subject: [PATCH] remove endianness swapping
-
- Swapping r- g- and bmask here is weird. It turns i.E. RGB888 to BGR888. For
- formats like RGB666 it turns the mask into a mess. Seems that gstreamer
- treat all True color as Big Endian. Still I doubt that it makes sense to
- swap the masks. I'm however not quite sure about this, comments are highly
- welcome.
-
-Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
----
- sys/fbdev/gstfbdevsink.c | 14 +-------------
- 1 files changed, 1 insertions(+), 13 deletions(-)
-
-diff --git a/sys/fbdev/gstfbdevsink.c b/sys/fbdev/gstfbdevsink.c
-index 989d48f..62b9986 100644
---- a/sys/fbdev/gstfbdevsink.c
-+++ b/sys/fbdev/gstfbdevsink.c
-@@ -153,21 +153,9 @@ gst_fbdevsink_getcaps (GstBaseSink * bsink)
-
- switch (fbdevsink->varinfo.bits_per_pixel) {
- case 32:
-- /* swap endian of masks */
-- rmask = swapendian (rmask);
-- gmask = swapendian (gmask);
-- bmask = swapendian (bmask);
-+ case 24:
- endianness = 4321;
- break;
-- case 24:{
-- /* swap red and blue masks */
-- uint32_t t = rmask;
--
-- rmask = bmask;
-- bmask = t;
-- endianness = 4321;
-- break;
-- }
- case 15:
- case 16:
- endianness = 1234;
---
-1.7.4.1
-
diff --git a/patches/gst-plugins-bad-0.10.23/0002-add-rgb666-support.patch b/patches/gst-plugins-bad-0.10.23/0002-add-rgb666-support.patch
deleted file mode 100644
index 5b9cf7a16..000000000
--- a/patches/gst-plugins-bad-0.10.23/0002-add-rgb666-support.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From: Luotao Fu <lfu@pengutronix.de>
-Date: Thu, 11 Dec 2008 12:03:59 +0100
-Subject: [PATCH] add rgb666 support
-
- This one adds support for rgb666 to fbdevsink. It's an exotic format, but still
- can be found on especially some embedded devices. The Modelines are taken
- directly from video.h of the video plugin, which is included by gstdevsink.
- It'd probably be cleaner to split this in a separate patch for plugins-base.
- I put the stuffs together for now for easier review. Patches for some sources
- with rgb666 capability are coming soon.
-
-Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
----
- sys/fbdev/gstfbdevsink.c | 19 +++++++++++++++++++
- 1 files changed, 19 insertions(+), 0 deletions(-)
-
-diff --git a/sys/fbdev/gstfbdevsink.c b/sys/fbdev/gstfbdevsink.c
-index 62b9986..b7d3f1a 100644
---- a/sys/fbdev/gstfbdevsink.c
-+++ b/sys/fbdev/gstfbdevsink.c
-@@ -69,9 +69,28 @@ static GstCaps *gst_fbdevsink_getcaps (GstBaseSink * bsink);
-
- static GstVideoSinkClass *parent_class = NULL;
-
-+#define GST_VIDEO_BYTE1_MASK_18 "0x0003F000"
-+#define GST_VIDEO_BYTE2_MASK_18 "0x00000FC0"
-+#define GST_VIDEO_BYTE3_MASK_18 "0x0000003F"
-+#define __GST_VIDEO_CAPS_MAKE_18(R, G, B) \
-+ "video/x-raw-rgb, " \
-+ "bpp = (int) 32, " \
-+ "depth = (int) 18, " \
-+ "endianness = (int) BIG_ENDIAN, " \
-+ "red_mask = (int) " GST_VIDEO_BYTE ## R ## _MASK_18 ", " \
-+ "green_mask = (int) " GST_VIDEO_BYTE ## G ## _MASK_18 ", " \
-+ "blue_mask = (int) " GST_VIDEO_BYTE ## B ## _MASK_18 ", " \
-+ "width = " GST_VIDEO_SIZE_RANGE ", " \
-+ "height = " GST_VIDEO_SIZE_RANGE ", " \
-+ "framerate = " GST_VIDEO_FPS_RANGE
-+
-+#define GST_VIDEO_CAPS_RGB666 \
-+ __GST_VIDEO_CAPS_MAKE_18 (1, 2, 3)
-+
- #define GST_FBDEV_TEMPLATE_CAPS \
- GST_VIDEO_CAPS_RGB_15 \
- ";" GST_VIDEO_CAPS_RGB_16 \
-+ ";" GST_VIDEO_CAPS_RGB666 \
- ";" GST_VIDEO_CAPS_BGR \
- ";" GST_VIDEO_CAPS_BGRx \
- ";" GST_VIDEO_CAPS_xBGR \
---
-1.7.4.1
-
diff --git a/patches/gst-plugins-bad-0.10.23/series b/patches/gst-plugins-bad-0.10.23/series
deleted file mode 100644
index 27b2a0226..000000000
--- a/patches/gst-plugins-bad-0.10.23/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-0001-remove-endianness-swapping.patch
-0002-add-rgb666-support.patch
-# a70d7259ce8042d3a4e1640d6f8b4861 - git-ptx-patches magic
diff --git a/patches/gst-plugins-base-0.10.36/0001-added-RGB666-Support-to-ffmpegcolorspace.patch b/patches/gst-plugins-base-0.10.36/0001-added-RGB666-Support-to-ffmpegcolorspace.patch
deleted file mode 100644
index e18ce465b..000000000
--- a/patches/gst-plugins-base-0.10.36/0001-added-RGB666-Support-to-ffmpegcolorspace.patch
+++ /dev/null
@@ -1,296 +0,0 @@
-From: Luotao Fu <lfu@pengutronix.de>
-Date: Thu, 11 Dec 2008 17:02:52 +0100
-Subject: [PATCH] added RGB666 Support to ffmpegcolorspace
-
-This one adds RGB666 Support to ffmpegcolorspace
-Still very hacky, need to be enhanced before submitting to mainline
-
-Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
----
- gst/ffmpegcolorspace/avcodec.h | 1 +
- gst/ffmpegcolorspace/gstffmpegcodecmap.c | 26 ++++++++++--
- gst/ffmpegcolorspace/imgconvert.c | 71 ++++++++++++++++++++++++++++++--
- 3 files changed, 91 insertions(+), 7 deletions(-)
-
-diff --git a/gst/ffmpegcolorspace/avcodec.h b/gst/ffmpegcolorspace/avcodec.h
-index 6067aedb5e1b..6714b60350b1 100644
---- a/gst/ffmpegcolorspace/avcodec.h
-+++ b/gst/ffmpegcolorspace/avcodec.h
-@@ -94,6 +94,7 @@ enum PixelFormat {
-
- PIX_FMT_AYUV4444, ///< Packed pixel, A0 Y0 Cb Cr
- PIX_FMT_YUVA420P, ///< Planar YUV 4:4:2:0 (1 Cr & Cb sample per 2x2 Y & A samples) (A420)
-+ PIX_FMT_RGB666,
- PIX_FMT_NB
- };
-
-diff --git a/gst/ffmpegcolorspace/gstffmpegcodecmap.c b/gst/ffmpegcolorspace/gstffmpegcodecmap.c
-index 97052cb454f1..a8d17cf0b583 100644
---- a/gst/ffmpegcolorspace/gstffmpegcodecmap.c
-+++ b/gst/ffmpegcolorspace/gstffmpegcodecmap.c
-@@ -228,6 +228,14 @@ gst_ffmpeg_pixfmt_to_caps (enum PixelFormat pix_fmt, AVCodecContext * context)
- b_mask = 0xff000000;
- #endif
- break;
-+ case PIX_FMT_RGB666:
-+ bpp = 32;
-+ depth = 18;
-+ endianness = G_BIG_ENDIAN;
-+ r_mask = 0x0003f000;
-+ g_mask = 0x00000fc0;
-+ b_mask = 0x0000003f;
-+ break;
- case PIX_FMT_BGR32:
- bpp = 32;
- depth = 24;
-@@ -684,7 +692,6 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps * caps,
- }
- } else if (gst_structure_has_name (structure, "video/x-raw-rgb")) {
- gint bpp = 0, rmask = 0, endianness = 0, amask = 0, depth = 0;
--
- if (gst_structure_get_int (structure, "bpp", &bpp) &&
- gst_structure_get_int (structure, "endianness", &endianness)) {
- if (gst_structure_get_int (structure, "red_mask", &rmask)) {
-@@ -696,6 +703,8 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps * caps,
- context->pix_fmt = PIX_FMT_BGRA32;
- else if (rmask == 0x00ff0000)
- context->pix_fmt = PIX_FMT_RGBA32;
-+ else if (rmask == 0x0003f000)
-+ context->pix_fmt = PIX_FMT_RGB666;
- else if (rmask == 0xff000000)
- context->pix_fmt = PIX_FMT_ARGB32;
- else // if (r_mask = 0x000000ff)
-@@ -705,6 +714,11 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps * caps,
- context->pix_fmt = PIX_FMT_BGRA32;
- else if (rmask == 0x0000ff00)
- context->pix_fmt = PIX_FMT_RGBA32;
-+ /* XXX: Hack here, gstreamer seems not to treat endianess in a
-+ * consistent way between plugins. Since we only have RGB666 for
-+ * now, We have to hack it around here */
-+ else if (rmask == 0x0003f000)
-+ context->pix_fmt = PIX_FMT_RGB666;
- else if (rmask == 0x000000ff)
- context->pix_fmt = PIX_FMT_ARGB32;
- else // if (rmask == 0xff000000)
-@@ -716,7 +730,9 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps * caps,
- context->pix_fmt = PIX_FMT_RGB32;
- else if (rmask == 0x0000ff00)
- context->pix_fmt = PIX_FMT_BGR32;
-- else if (rmask == 0xff000000)
-+ else if (rmask == 0x0003f000)
-+ context->pix_fmt = PIX_FMT_RGB666;
-+ else if (rmask == 0xff000000)
- context->pix_fmt = PIX_FMT_xRGB32;
- else // if (rmask == 0x000000ff)
- context->pix_fmt = PIX_FMT_BGRx32;
-@@ -725,7 +741,10 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps * caps,
- context->pix_fmt = PIX_FMT_RGB32;
- else if (rmask == 0x00ff0000)
- context->pix_fmt = PIX_FMT_BGR32;
-- else if (rmask == 0x000000ff)
-+ /* XXX: Hack here, see XXX section above for more details */
-+ else if (rmask == 0x0003f000)
-+ context->pix_fmt = PIX_FMT_RGB666;
-+ else if (rmask == 0x000000ff)
- context->pix_fmt = PIX_FMT_xRGB32;
- else // if (rmask == 0xff000000)
- context->pix_fmt = PIX_FMT_BGRx32;
-@@ -922,6 +941,7 @@ gst_ffmpegcsp_avpicture_fill (AVPicture * picture,
- picture->linesize[0] = stride;
- return size;
- case PIX_FMT_AYUV4444:
-+ case PIX_FMT_RGB666:
- case PIX_FMT_RGB32:
- case PIX_FMT_RGBA32:
- case PIX_FMT_ARGB32:
-diff --git a/gst/ffmpegcolorspace/imgconvert.c b/gst/ffmpegcolorspace/imgconvert.c
-index c670e25fff9b..696f32b3353c 100644
---- a/gst/ffmpegcolorspace/imgconvert.c
-+++ b/gst/ffmpegcolorspace/imgconvert.c
-@@ -488,7 +488,18 @@ static PixFmtInfo pix_fmt_info[PIX_FMT_NB] = {
- /* .x_chroma_shift = */ 1,
- /* .y_chroma_shift = */ 1,
- /* .depth = */ 8,
-- }
-+ },
-+ /* [PIX_FMT_RGB666] = */ {
-+ /* .format = */ PIX_FMT_RGB666,
-+ /* .name = */ "rgb666",
-+ /* .nb_channels = */ 4,
-+ /* .color_type = */ FF_COLOR_RGB,
-+ /* .pixel_type = */ FF_PIXEL_PLANAR,
-+ /* .is_alpha = */ 0,
-+ /* .x_chroma_shift = */ 0,
-+ /* .y_chroma_shift = */ 0,
-+ /* .depth = */ 6,
-+ }
- };
-
- /* returns NULL if not found */
-@@ -497,7 +508,6 @@ PixFmtInfo *
- get_pix_fmt_info (enum PixelFormat format)
- {
- int i;
--
- for (i = 0; i < sizeof (pix_fmt_info) / sizeof (pix_fmt_info[0]); i++) {
- if (pix_fmt_info[i].format == format) {
- return pix_fmt_info + i;
-@@ -673,6 +683,8 @@ avg_bits_per_pixel (int pix_fmt)
- case PIX_FMT_RGB555:
- bits = 16;
- break;
-+ case PIX_FMT_RGB666:
-+ bits = 8 * pf->nb_channels;
- case PIX_FMT_UYVY411:
- bits = 12;
- break;
-@@ -682,7 +694,9 @@ avg_bits_per_pixel (int pix_fmt)
- }
- break;
- case FF_PIXEL_PLANAR:
-- if (pf->x_chroma_shift == 0 && pf->y_chroma_shift == 0) {
-+ if(pix_fmt == PIX_FMT_RGB666) {
-+ bits = 8 * pf->nb_channels;
-+ } else if (pf->x_chroma_shift == 0 && pf->y_chroma_shift == 0) {
- bits = pf->depth * pf->nb_channels;
- } else {
- bits = pf->depth + ((2 * pf->depth) >>
-@@ -740,7 +754,6 @@ avcodec_find_best_pix_fmt (int pix_fmt_mask, int src_pix_fmt,
- ~FF_LOSS_DEPTH,
- 0,
- };
--
- /* try with successive loss */
- i = 0;
- for (;;) {
-@@ -2371,6 +2384,37 @@ bitcopy_n (unsigned int a, int n)
-
- #include "imgconvert_template.h"
-
-+/* rgb666 handling */
-+
-+#define RGB_NAME rgb666
-+#define FMT_RGB666
-+
-+#define RGB_IN(r, g, b, s)\
-+{\
-+ unsigned int v = ((const uint32_t *)(s))[0];\
-+ r = (v >> 12) & 0x3f;\
-+ g = (v >> 6) & 0x3f;\
-+ b = v & 0x3f;\
-+}
-+
-+#define RGBA_IN(r, g, b, a, s)\
-+{\
-+ unsigned int v = ((const uint32_t *)(s))[0];\
-+ a = 0xff;\
-+ r = (v >> 12) & 0x3f;\
-+ g = (v >> 6) & 0x3f;\
-+ b = v & 0x3f;\
-+}
-+
-+#define RGBA_OUT(d, r, g, b, a)\
-+{\
-+ ((uint32_t *)(d))[0] = ((r >> 2) << 12) | ((g >> 2) << 6) | (b >> 2);\
-+}
-+
-+#define BPP 4
-+
-+#include "imgconvert_template.h"
-+
- /* xrgb32 handling */
-
- #define RGB_NAME xrgb32
-@@ -3102,6 +3146,7 @@ static ConvertEntry convert_table[] = {
- {PIX_FMT_YUV420P, PIX_FMT_RGB565, yuv420p_to_rgb565},
- {PIX_FMT_YUV420P, PIX_FMT_BGR24, yuv420p_to_bgr24},
- {PIX_FMT_YUV420P, PIX_FMT_RGB24, yuv420p_to_rgb24},
-+ {PIX_FMT_YUV420P, PIX_FMT_RGB666, yuv420p_to_rgb666},
- {PIX_FMT_YUV420P, PIX_FMT_RGB32, yuv420p_to_rgb32},
- {PIX_FMT_YUV420P, PIX_FMT_BGR32, yuv420p_to_bgr32},
- {PIX_FMT_YUV420P, PIX_FMT_xRGB32, yuv420p_to_xrgb32},
-@@ -3115,6 +3160,7 @@ static ConvertEntry convert_table[] = {
- {PIX_FMT_NV12, PIX_FMT_RGB565, nv12_to_rgb565},
- {PIX_FMT_NV12, PIX_FMT_BGR24, nv12_to_bgr24},
- {PIX_FMT_NV12, PIX_FMT_RGB24, nv12_to_rgb24},
-+ {PIX_FMT_NV12, PIX_FMT_RGB666, nv12_to_rgb666},
- {PIX_FMT_NV12, PIX_FMT_RGB32, nv12_to_rgb32},
- {PIX_FMT_NV12, PIX_FMT_BGR32, nv12_to_bgr32},
- {PIX_FMT_NV12, PIX_FMT_xRGB32, nv12_to_xrgb32},
-@@ -3130,6 +3176,7 @@ static ConvertEntry convert_table[] = {
- {PIX_FMT_NV21, PIX_FMT_RGB565, nv21_to_rgb565},
- {PIX_FMT_NV21, PIX_FMT_BGR24, nv21_to_bgr24},
- {PIX_FMT_NV21, PIX_FMT_RGB24, nv21_to_rgb24},
-+ {PIX_FMT_NV21, PIX_FMT_RGB666, nv21_to_rgb666},
- {PIX_FMT_NV21, PIX_FMT_RGB32, nv21_to_rgb32},
- {PIX_FMT_NV21, PIX_FMT_BGR32, nv21_to_bgr32},
- {PIX_FMT_NV21, PIX_FMT_xRGB32, nv21_to_xrgb32},
-@@ -3151,6 +3198,7 @@ static ConvertEntry convert_table[] = {
- {PIX_FMT_YUVJ420P, PIX_FMT_RGB565, yuvj420p_to_rgb565},
- {PIX_FMT_YUVJ420P, PIX_FMT_BGR24, yuvj420p_to_bgr24},
- {PIX_FMT_YUVJ420P, PIX_FMT_RGB24, yuvj420p_to_rgb24},
-+ {PIX_FMT_YUVJ420P, PIX_FMT_RGB666, yuvj420p_to_rgb666},
- {PIX_FMT_YUVJ420P, PIX_FMT_RGB32, yuvj420p_to_rgb32},
- {PIX_FMT_YUVJ420P, PIX_FMT_BGR32, yuvj420p_to_bgr32},
- {PIX_FMT_YUVJ420P, PIX_FMT_RGB32, yuvj420p_to_xrgb32},
-@@ -3216,6 +3264,7 @@ static ConvertEntry convert_table[] = {
- {PIX_FMT_RGB24, PIX_FMT_NV21, rgb24_to_nv21},
- {PIX_FMT_RGB24, PIX_FMT_RGB565, rgb24_to_rgb565},
- {PIX_FMT_RGB24, PIX_FMT_RGB555, rgb24_to_rgb555},
-+ {PIX_FMT_RGB24, PIX_FMT_RGB666, rgb24_to_rgb666},
- {PIX_FMT_RGB24, PIX_FMT_RGB32, rgb24_to_rgb32},
- {PIX_FMT_RGB24, PIX_FMT_BGR32, rgb24_to_bgr32},
- {PIX_FMT_RGB24, PIX_FMT_xRGB32, rgb24_to_xrgb32},
-@@ -3239,6 +3288,7 @@ static ConvertEntry convert_table[] = {
-
- {PIX_FMT_RGB32, PIX_FMT_RGB24, rgb32_to_rgb24},
- {PIX_FMT_RGB32, PIX_FMT_RGB555, rgba32_to_rgb555},
-+ {PIX_FMT_RGB32, PIX_FMT_RGB666, rgba32_to_rgb666},
- {PIX_FMT_RGB32, PIX_FMT_PAL8, rgb32_to_pal8},
- {PIX_FMT_RGB32, PIX_FMT_YUV420P, rgb32_to_yuv420p},
- {PIX_FMT_RGB32, PIX_FMT_YUVA420P, rgb32_to_yuva420p},
-@@ -3269,6 +3319,7 @@ static ConvertEntry convert_table[] = {
- {PIX_FMT_RGBA32, PIX_FMT_BGRx32, rgba32_to_bgrx32},
- {PIX_FMT_RGBA32, PIX_FMT_ABGR32, rgba32_to_abgr32},
- {PIX_FMT_RGBA32, PIX_FMT_RGB24, rgba32_to_rgb24},
-+ {PIX_FMT_RGBA32, PIX_FMT_RGB666, rgba32_to_rgb666},
- {PIX_FMT_RGBA32, PIX_FMT_RGB555, rgba32_to_rgb555},
- {PIX_FMT_RGBA32, PIX_FMT_PAL8, rgba32_to_pal8},
- {PIX_FMT_RGBA32, PIX_FMT_YUV420P, rgba32_to_yuv420p},
-@@ -3408,10 +3459,18 @@ static ConvertEntry convert_table[] = {
- {PIX_FMT_Y16, PIX_FMT_ABGR32, y16_to_abgr32},
- {PIX_FMT_Y16, PIX_FMT_Y800, y16_to_y800},
-
-+ {PIX_FMT_RGB666, PIX_FMT_GRAY8, rgb666_to_gray},
-+ {PIX_FMT_RGB666, PIX_FMT_NV12, rgb666_to_nv12},
-+ {PIX_FMT_RGB666, PIX_FMT_NV21, rgb666_to_nv21},
-+ {PIX_FMT_RGB666, PIX_FMT_YUV420P, rgb666_to_yuv420p},
-+ {PIX_FMT_RGB666, PIX_FMT_RGBA32, rgb666_to_rgba32},
-+ {PIX_FMT_RGB666, PIX_FMT_RGB24, rgb666_to_rgb24},
-+
- {PIX_FMT_GRAY8, PIX_FMT_RGB555, gray_to_rgb555},
- {PIX_FMT_GRAY8, PIX_FMT_RGB565, gray_to_rgb565},
- {PIX_FMT_GRAY8, PIX_FMT_RGB24, gray_to_rgb24},
- {PIX_FMT_GRAY8, PIX_FMT_BGR24, gray_to_bgr24},
-+ {PIX_FMT_GRAY8, PIX_FMT_RGB666, gray_to_rgb666},
- {PIX_FMT_GRAY8, PIX_FMT_RGB32, gray_to_rgb32},
- {PIX_FMT_GRAY8, PIX_FMT_BGR32, gray_to_bgr32},
- {PIX_FMT_GRAY8, PIX_FMT_xRGB32, gray_to_xrgb32},
-@@ -3463,6 +3522,7 @@ static ConvertEntry convert_table[] = {
- {PIX_FMT_PAL8, PIX_FMT_RGB565, pal8_to_rgb565},
- {PIX_FMT_PAL8, PIX_FMT_BGR24, pal8_to_bgr24},
- {PIX_FMT_PAL8, PIX_FMT_RGB24, pal8_to_rgb24},
-+ {PIX_FMT_PAL8, PIX_FMT_RGB666, pal8_to_rgb666},
- {PIX_FMT_PAL8, PIX_FMT_RGB32, pal8_to_rgb32},
- {PIX_FMT_PAL8, PIX_FMT_BGR32, pal8_to_bgr32},
- {PIX_FMT_PAL8, PIX_FMT_xRGB32, pal8_to_xrgb32},
-@@ -3858,6 +3918,9 @@ img_get_alpha_info (const AVPicture * src, int pix_fmt, int width, int height)
- case PIX_FMT_ABGR32:
- ret = get_alpha_info_abgr32 (src, width, height);
- break;
-+ case PIX_FMT_RGB666:
-+ ret = get_alpha_info_rgb666 (src, width, height);
-+ break;
- case PIX_FMT_RGB555:
- ret = get_alpha_info_rgb555 (src, width, height);
- break;
diff --git a/patches/gst-plugins-base-0.10.36/0002-audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch b/patches/gst-plugins-base-0.10.36/0002-audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch
deleted file mode 100644
index 4f48709ba..000000000
--- a/patches/gst-plugins-base-0.10.36/0002-audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From: Antoine Jacoutot <ajacoutot@gnome.org>
-Date: Mon, 20 Jan 2014 15:44:09 +0100
-Subject: [PATCH] audioresample: Fix build on x86 if emmintrin.h is available
- but can't be used
-
-On i386, EMMINTRIN is defined but not usable without SSE so check for
-__SSE__ and __SSE2__ as well.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=670690
----
- gst/audioresample/resample.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gst/audioresample/resample.c b/gst/audioresample/resample.c
-index 490eebcc41df..c47d51271be4 100644
---- a/gst/audioresample/resample.c
-+++ b/gst/audioresample/resample.c
-@@ -77,13 +77,13 @@
- #define EXPORT G_GNUC_INTERNAL
-
- #ifdef _USE_SSE
--#ifndef HAVE_XMMINTRIN_H
-+#if !defined(__SSE__) || !defined(HAVE_XMMINTRIN_H)
- #undef _USE_SSE
- #endif
- #endif
-
- #ifdef _USE_SSE2
--#ifndef HAVE_EMMINTRIN_H
-+#if !defined(__SSE2__) || !defined(HAVE_XMMINTRIN_H)
- #undef _USE_SSE2
- #endif
- #endif
diff --git a/patches/gst-plugins-base-0.10.36/series b/patches/gst-plugins-base-0.10.36/series
deleted file mode 100644
index 7360dd91c..000000000
--- a/patches/gst-plugins-base-0.10.36/series
+++ /dev/null
@@ -1,5 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-added-RGB666-Support-to-ffmpegcolorspace.patch
-0002-audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch
-# b0035d1a88e1f254765abd3c5d24c8da - git-ptx-patches magic
diff --git a/patches/gst-plugins-gl-0.10.2/0001-make-sure-gtk-example-builds-for-non-X-gtk.patch b/patches/gst-plugins-gl-0.10.2/0001-make-sure-gtk-example-builds-for-non-X-gtk.patch
deleted file mode 100644
index 23000e7cd..000000000
--- a/patches/gst-plugins-gl-0.10.2/0001-make-sure-gtk-example-builds-for-non-X-gtk.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sun, 30 Oct 2011 22:37:00 +0100
-Subject: [PATCH] make sure gtk example builds for non X gtk
-
-With this patch tests/examples/gtk/gstgtk.c will compile with non X gtk.
-It won't do anything usefull, though.
-
-Not for upstream.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- tests/examples/gtk/gstgtk.c | 4 ----
- 1 files changed, 0 insertions(+), 4 deletions(-)
-
-diff --git a/tests/examples/gtk/gstgtk.c b/tests/examples/gtk/gstgtk.c
-index 3a68e19..3d53325 100644
---- a/tests/examples/gtk/gstgtk.c
-+++ b/tests/examples/gtk/gstgtk.c
-@@ -26,8 +26,6 @@
- #include <gdk/gdkx.h>
- #elif defined(GDK_WINDOWING_QUARTZ)
- #include <gdk/gdkquartz.h>
--#else
--#error unimplemented GTK backend
- #endif
-
-
-@@ -42,8 +40,6 @@ gst_x_overlay_set_gtk_window (GstXOverlay *xoverlay, GtkWidget *window)
- (gulong)gdk_quartz_window_get_nswindow (window->window));
- #elif defined(GDK_WINDOWING_X11)
- gst_x_overlay_set_xwindow_id (xoverlay, GDK_WINDOW_XWINDOW(window->window));
--#else
--#error unimplemented GTK backend
- #endif
-
- }
diff --git a/patches/gst-plugins-gl-0.10.2/series b/patches/gst-plugins-gl-0.10.2/series
deleted file mode 100644
index bd9ef82d2..000000000
--- a/patches/gst-plugins-gl-0.10.2/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-make-sure-gtk-example-builds-for-non-X-gtk.patch
-# 2ea327771c70a99ce54d1e3f64e5c874 - git-ptx-patches magic
diff --git a/patches/gst-plugins-good-0.10.31/0001-follow-up-on-bug-622500-in-gst-plugins-good-bugzilla.patch b/patches/gst-plugins-good-0.10.31/0001-follow-up-on-bug-622500-in-gst-plugins-good-bugzilla.patch
deleted file mode 100644
index c1426db19..000000000
--- a/patches/gst-plugins-good-0.10.31/0001-follow-up-on-bug-622500-in-gst-plugins-good-bugzilla.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From: Michael Grzeschik <m.grzeschik@pengutronix.de>
-Date: Mon, 18 Apr 2011 11:35:21 +0200
-Subject: [PATCH] follow up on bug:622500 in gst-plugins-good bugzilla
-
-The situation is still unclear, so just for now we will
-keep that patch to check on this again later.
----
- sys/v4l2/gstv4l2sink.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
-index f6aba24..1a218e4 100644
---- a/sys/v4l2/gstv4l2sink.c
-+++ b/sys/v4l2/gstv4l2sink.c
-@@ -737,6 +737,7 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
- * gst_v4l2_buffer_pool_destroy()
- *
- */
-+ gst_v4l2_object_stop_streaming(v4l2sink->v4l2object);
- GST_DEBUG_OBJECT (v4l2sink, "warning, changing caps not supported yet");
- return FALSE;
- }
diff --git a/patches/gst-plugins-good-0.10.31/0002-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch b/patches/gst-plugins-good-0.10.31/0002-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch
deleted file mode 100644
index 9e92e9a5e..000000000
--- a/patches/gst-plugins-good-0.10.31/0002-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From: Matthias Clasen <mclasen@redhat.com>
-Date: Thu, 9 Aug 2012 08:35:23 +0100
-Subject: [PATCH] v4l2: fix build with recent kernels, the v4l2_buffer input
- field was removed
-
-This was unused apparently and removed in the kernel in commit:
-
- From 2b719d7baf490e24ce7d817c6337b7c87fda84c1 Mon Sep 17 00:00:00 2001
- From: Sakari Ailus <sakari.ailus@iki.fi>
- Date: Wed, 2 May 2012 09:40:03 -0300
- Subject: [PATCH] [media] v4l: drop v4l2_buffer.input and V4L2_BUF_FLAG_INPUT
-
- Remove input field in struct v4l2_buffer and flag V4L2_BUF_FLAG_INPUT which
- tells the former is valid. The flag is used by no driver currently.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=681491
----
- sys/v4l2/gstv4l2bufferpool.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
-index b81c6a4..51cc0ce 100644
---- a/sys/v4l2/gstv4l2bufferpool.c
-+++ b/sys/v4l2/gstv4l2bufferpool.c
-@@ -181,7 +181,6 @@ gst_v4l2_buffer_new (GstV4l2BufferPool * pool, guint index, GstCaps * caps)
- GST_LOG_OBJECT (pool->v4l2elem, " MMAP offset: %u",
- ret->vbuffer.m.offset);
- GST_LOG_OBJECT (pool->v4l2elem, " length: %u", ret->vbuffer.length);
-- GST_LOG_OBJECT (pool->v4l2elem, " input: %u", ret->vbuffer.input);
-
- data = (guint8 *) v4l2_mmap (0, ret->vbuffer.length,
- PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd,
diff --git a/patches/gst-plugins-good-0.10.31/0003-remove-V4L2_CID_HCENTER-V4L2_CID_VCENTER-usage.patch b/patches/gst-plugins-good-0.10.31/0003-remove-V4L2_CID_HCENTER-V4L2_CID_VCENTER-usage.patch
deleted file mode 100644
index 5a8a07431..000000000
--- a/patches/gst-plugins-good-0.10.31/0003-remove-V4L2_CID_HCENTER-V4L2_CID_VCENTER-usage.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Tue, 17 Dec 2013 15:36:39 +0100
-Subject: [PATCH] remove V4L2_CID_HCENTER/V4L2_CID_VCENTER usage
-
-They have been deprecated for a long time and since v3.9 building fails
-with:
-
-v4l2_calls.c:58:26: error: 'V4L2_CID_HCENTER_DEPRECATED' undeclared (first use in this function)
- #define V4L2_CID_HCENTER V4L2_CID_HCENTER_DEPRECATED
- ^
-v4l2_calls.c:297:12: note: in expansion of macro 'V4L2_CID_HCENTER'
- case V4L2_CID_HCENTER:
- ^
-v4l2_calls.c:58:26: note: each undeclared identifier is reported only once for each function it appears in
- #define V4L2_CID_HCENTER V4L2_CID_HCENTER_DEPRECATED
- ^
-v4l2_calls.c:297:12: note: in expansion of macro 'V4L2_CID_HCENTER'
- case V4L2_CID_HCENTER:
- ^
-v4l2_calls.c:61:26: error: 'V4L2_CID_VCENTER_DEPRECATED' undeclared (first use in this function)
- #define V4L2_CID_VCENTER V4L2_CID_VCENTER_DEPRECATED
- ^
-v4l2_calls.c:298:12: note: in expansion of macro 'V4L2_CID_VCENTER'
- case V4L2_CID_VCENTER:
- ^
-make[4]: *** [libgstvideo4linux2_la-v4l2_calls.lo] Error 1
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- sys/v4l2/v4l2_calls.c | 10 ----------
- 1 file changed, 10 deletions(-)
-
-diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c
-index 309bfb6..47c2f46 100644
---- a/sys/v4l2/v4l2_calls.c
-+++ b/sys/v4l2/v4l2_calls.c
-@@ -53,14 +53,6 @@
-
- #include "gst/gst-i18n-plugin.h"
-
--/* Those are ioctl calls */
--#ifndef V4L2_CID_HCENTER
--#define V4L2_CID_HCENTER V4L2_CID_HCENTER_DEPRECATED
--#endif
--#ifndef V4L2_CID_VCENTER
--#define V4L2_CID_VCENTER V4L2_CID_VCENTER_DEPRECATED
--#endif
--
- GST_DEBUG_CATEGORY_EXTERN (v4l2_debug);
- #define GST_CAT_DEFAULT v4l2_debug
-
-@@ -294,8 +286,6 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object)
- break;
- case V4L2_CID_HFLIP:
- case V4L2_CID_VFLIP:
-- case V4L2_CID_HCENTER:
-- case V4L2_CID_VCENTER:
- #ifdef V4L2_CID_PAN_RESET
- case V4L2_CID_PAN_RESET:
- #endif
diff --git a/patches/gst-plugins-good-0.10.31/series b/patches/gst-plugins-good-0.10.31/series
deleted file mode 100644
index 180d8d650..000000000
--- a/patches/gst-plugins-good-0.10.31/series
+++ /dev/null
@@ -1,6 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-follow-up-on-bug-622500-in-gst-plugins-good-bugzilla.patch
-0002-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch
-0003-remove-V4L2_CID_HCENTER-V4L2_CID_VCENTER-usage.patch
-# 5c83a3ef700d58dc6d445f2e7559e797 - git-ptx-patches magic
diff --git a/patches/gst-plugins-rs-1.24.2/0001-allow-executing-cargo-with-frozen.patch b/patches/gst-plugins-rs-1.24.2/0001-allow-executing-cargo-with-frozen.patch
new file mode 100644
index 000000000..43da33cdb
--- /dev/null
+++ b/patches/gst-plugins-rs-1.24.2/0001-allow-executing-cargo-with-frozen.patch
@@ -0,0 +1,58 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Tue, 25 Apr 2023 17:43:16 +0200
+Subject: [PATCH] allow executing cargo with --frozen
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ cargo_wrapper.py | 4 ++++
+ meson.build | 4 ++++
+ meson_options.txt | 2 ++
+ 3 files changed, 10 insertions(+)
+
+diff --git a/cargo_wrapper.py b/cargo_wrapper.py
+index 183ffcd12acc..f8e063918c71 100644
+--- a/cargo_wrapper.py
++++ b/cargo_wrapper.py
+@@ -28,6 +28,7 @@ PARSER.add_argument('--lib-suffixes', nargs="+", default=[])
+ PARSER.add_argument('--exe-suffix')
+ PARSER.add_argument('--depfile')
+ PARSER.add_argument('--disable-doc', action="store_true", default=False)
++PARSER.add_argument('--frozen', action="store_true", default=False)
+
+
+ def shlex_join(args):
+@@ -122,6 +123,9 @@ if __name__ == "__main__":
+ print("Unknown command:", opts.command, file=logfile)
+ sys.exit(1)
+
++ if opts.frozen:
++ cargo_cmd += ['--frozen']
++
+ if rustc_target:
+ cargo_cmd += ['--target', rustc_target]
+ if features:
+diff --git a/meson.build b/meson.build
+index 46a3f8aa645f..518c50dd58d0 100644
+--- a/meson.build
++++ b/meson.build
+@@ -434,6 +434,10 @@ if get_option('doc').disabled()
+ extra_args += ['--disable-doc']
+ endif
+
++if get_option('frozen')
++ extra_args += ['--frozen']
++endif
++
+ # 'pkgconfig' is the entry in the machine file, if specified
+ pkg_config = find_program('pkgconfig', 'pkg-config')
+ if pkg_config.found()
+diff --git a/meson_options.txt b/meson_options.txt
+index 0842a6613211..cf44abae7ce7 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -66,3 +66,5 @@ option('examples', type: 'feature', value: 'disabled', yield: true,
+ description: 'Build examples')
+ option('tests', type : 'feature', value : 'auto', yield : true,
+ description : 'Build and enable unit tests')
++option('frozen', type: 'boolean', value: false,
++ description: 'Run cargo with --frozen')
diff --git a/patches/gst-plugins-rs-1.24.2/0002-HACK-allow-feature-build_hasher_simple_hash_one.patch b/patches/gst-plugins-rs-1.24.2/0002-HACK-allow-feature-build_hasher_simple_hash_one.patch
new file mode 100644
index 000000000..56c51cc72
--- /dev/null
+++ b/patches/gst-plugins-rs-1.24.2/0002-HACK-allow-feature-build_hasher_simple_hash_one.patch
@@ -0,0 +1,25 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Sat, 2 Mar 2024 22:59:31 +0100
+Subject: [PATCH] HACK: allow feature build_hasher_simple_hash_one
+
+In rustc 1.70.0 from OSELAS.Toolchain-2023.07.*, this feature is still
+unstable, so explicitly allow it to make it possible to use this
+toolchain.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ ptxdist-cargo-home/source/ahash-0.8.11/src/lib.rs | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/ptxdist-cargo-home/source/ahash-0.8.11/src/lib.rs b/ptxdist-cargo-home/source/ahash-0.8.11/src/lib.rs
+index 69fb2ca2371f..e93e20b816c8 100644
+--- a/ptxdist-cargo-home/source/ahash-0.8.11/src/lib.rs
++++ b/ptxdist-cargo-home/source/ahash-0.8.11/src/lib.rs
+@@ -12,6 +12,7 @@
+ //! Because aHash does not have a fixed standard for its output, it is able to improve over time.
+ //! But this also means that different computers or computers using different versions of ahash may observe different
+ //! hash values for the same input.
++#![feature(build_hasher_simple_hash_one)]
+ #![cfg_attr(
+ all(
+ feature = "std",
diff --git a/patches/gst-plugins-rs-1.24.2/series b/patches/gst-plugins-rs-1.24.2/series
new file mode 100644
index 000000000..9a43194df
--- /dev/null
+++ b/patches/gst-plugins-rs-1.24.2/series
@@ -0,0 +1,5 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-allow-executing-cargo-with-frozen.patch
+0002-HACK-allow-feature-build_hasher_simple_hash_one.patch
+# 1b24e8b1e596f24e14e42a3758cf1078 - git-ptx-patches magic
diff --git a/patches/gst-python-1.24.2/0001-gst-python-fix-cross-compiling.patch b/patches/gst-python-1.24.2/0001-gst-python-fix-cross-compiling.patch
new file mode 100644
index 000000000..a36926102
--- /dev/null
+++ b/patches/gst-python-1.24.2/0001-gst-python-fix-cross-compiling.patch
@@ -0,0 +1,43 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Sat, 2 Mar 2024 16:44:19 +0100
+Subject: [PATCH] gst-python: fix cross-compiling
+
+When cross-compiling, looking in the root filesystem of the build host to find
+the Python library makes no sense. Instead, assume that the directory and file
+name provided by Python are correct and use those without checking.
+---
+ meson.build | 20 ++++++++++++--------
+ 1 file changed, 12 insertions(+), 8 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 5cccbcc3b6a5..6bf006367450 100644
+--- a/meson.build
++++ b/meson.build
+@@ -70,15 +70,19 @@ else
+ ]
+ endif
+ pylib_fname = ''
+-foreach loc: pylib_locs
+- foreach fname: pylib_fnames
+- if fsmod.exists(loc / fname)
+- pylib_fname = fname
+- message(f'PY_LIB_FNAME = @fname@ (@loc@)')
+- break
+- endif
++if meson.is_cross_build()
++ pylib_fname = pylib_locs[0] / pylib_fnames[0]
++else
++ foreach loc: pylib_locs
++ foreach fname: pylib_fnames
++ if fsmod.exists(loc / fname)
++ pylib_fname = fname
++ message(f'PY_LIB_FNAME = @fname@ (@loc@)')
++ break
++ endif
++ endforeach
+ endforeach
+-endforeach
++endif
+ if pylib_fname == ''
+ error_msg = 'Could not find python library to load'
+ if python_opt.enabled()
diff --git a/patches/gst-python-1.24.2/series b/patches/gst-python-1.24.2/series
new file mode 100644
index 000000000..6ab8e2ca1
--- /dev/null
+++ b/patches/gst-python-1.24.2/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-gst-python-fix-cross-compiling.patch
+# 8c160ebb6f35ca6c8a0ed3489fb1a177 - git-ptx-patches magic
diff --git a/patches/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch b/patches/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch
deleted file mode 100644
index 2bf7c7204..000000000
--- a/patches/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From: Kerrick Staley <kerrick@kerrickstaley.com>
-Date: Tue, 20 Aug 2013 23:59:29 -0700
-Subject: [PATCH] parse: make grammar.y work with Bison 3
-
-YYLEX_PARAM is no longer supported in Bison 3.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=706462
----
- gst/parse/grammar.y | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gst/parse/grammar.y b/gst/parse/grammar.y
-index 24fc87b..7f9dd16 100644
---- a/gst/parse/grammar.y
-+++ b/gst/parse/grammar.y
-@@ -26,7 +26,6 @@
- */
-
- #define YYERROR_VERBOSE 1
--#define YYLEX_PARAM scanner
-
- #define YYENABLE_NLS 0
-
-@@ -648,6 +647,7 @@ static int yyerror (void *scanner, graph_t *graph, const char *s);
- %right '.'
- %left '!' '='
-
-+%lex-param { void *scanner }
- %parse-param { void *scanner }
- %parse-param { graph_t *graph }
- %pure-parser
diff --git a/patches/gstreamer-0.10.36/series b/patches/gstreamer-0.10.36/series
deleted file mode 100644
index 25b0b109f..000000000
--- a/patches/gstreamer-0.10.36/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-parse-make-grammar.y-work-with-Bison-3.patch
-# a3a435f70f584cb974149d88dc7a8704 - git-ptx-patches magic
diff --git a/patches/gtk+-2.24.32/0001-gtk-Do-not-build-demos.patch b/patches/gtk+-2.24.32/0001-gtk-Do-not-build-demos.patch
deleted file mode 100644
index 820dc7f9e..000000000
--- a/patches/gtk+-2.24.32/0001-gtk-Do-not-build-demos.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From: Markus Pargmann <mpa@pengutronix.de>
-Date: Thu, 13 Nov 2014 15:20:21 +0100
-Subject: [PATCH] gtk: Do not build demos
-
-Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
----
- Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 8e3a2f1283e9..7288db20341f 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1,7 +1,7 @@
- ## Makefile.am for GTK+
- include $(top_srcdir)/Makefile.decl
-
--SRC_SUBDIRS = gdk gtk modules demos tests perf
-+SRC_SUBDIRS = gdk gtk modules tests perf
- SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros build
-
- # require automake 1.4
diff --git a/patches/gtk+-2.24.32/series b/patches/gtk+-2.24.32/series
deleted file mode 100644
index 09c5f5a74..000000000
--- a/patches/gtk+-2.24.32/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-gtk-Do-not-build-demos.patch
-# dc5190e694355ef8da45835009bc3f40 - git-ptx-patches magic
diff --git a/patches/gtk+-3.24.21/0001-build-make-atk-bridge-optional.patch b/patches/gtk+-3.24.35/0001-build-make-atk-bridge-optional.patch
index 25067656c..78f656e31 100644
--- a/patches/gtk+-3.24.21/0001-build-make-atk-bridge-optional.patch
+++ b/patches/gtk+-3.24.35/0001-build-make-atk-bridge-optional.patch
@@ -46,19 +46,19 @@ index 7f0e5207d915..81b2ed0d55b3 100644
#endif
diff --git a/meson.build b/meson.build
-index 945c5de87ba8..cb421f0b516f 100644
+index f0b4fabe8b59..b4846b619676 100644
--- a/meson.build
+++ b/meson.build
-@@ -572,7 +572,7 @@ if x11_enabled
+@@ -582,7 +582,7 @@ if x11_enabled
xfixes_dep = dependency('xfixes', required: false)
xcomposite_dep = dependency('xcomposite', required: false)
fontconfig_dep = dependency('fontconfig', fallback: ['fontconfig', 'fontconfig_dep'])
-- atkbridge_dep = dependency('atk-bridge-2.0', version: atk_req)
-+ atkbridge_dep = dependency('atk-bridge-2.0', version: atk_req, required: false)
+- atkbridge_dep = dependency('atk-bridge-2.0', version: at_spi2_atk_req)
++ atkbridge_dep = dependency('atk-bridge-2.0', version: at_spi2_atk_req, required: false)
- x11_pkgs = ['fontconfig', 'x11', 'xext', 'xi', 'xrandr']
+ backend_immodules += ['xim']
-@@ -588,8 +588,9 @@ if x11_enabled
+@@ -600,8 +600,9 @@ if x11_enabled
if xdamage_dep.found()
x11_pkgs += ['xdamage']
endif
diff --git a/patches/gtk+-3.24.21/series b/patches/gtk+-3.24.35/series
index 91b3069ef..91b3069ef 100644
--- a/patches/gtk+-3.24.21/series
+++ b/patches/gtk+-3.24.35/series
diff --git a/patches/hpanel-0.3.2/0001-Patches-the-Makefile-to-be-able-to-cross-compile.patch b/patches/hpanel-0.3.2/0001-Patches-the-Makefile-to-be-able-to-cross-compile.patch
deleted file mode 100644
index f99a0028a..000000000
--- a/patches/hpanel-0.3.2/0001-Patches-the-Makefile-to-be-able-to-cross-compile.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From: Juergen Beisert <j.beisert@pengutronix.de>
-Date: Tue, 21 Jun 2011 09:27:25 +0200
-Subject: [PATCH] Patches the Makefile to be able to cross compile
-
-The original makefile assumes fixed pathes to libraries and
-include files. This patch replace them with calls to pkg_config.
-Don't strip the binary. targetinstall will do this.
-Install to $(DESTDIR).
-
-Forwarded: not-needed (upstream dead)
-Signed-off-by: j.beisert@pengutronix.de
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- Makefile | 19 ++++++++++---------
- 1 files changed, 10 insertions(+), 9 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 9d20d90..28519a7 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,13 +1,14 @@
--CC=cc
--CFLAGS= -O2 -I/usr/X11R6/include -DHAVE_XPM -DXFT -DCLOCK
--LDFLAGS= -L/usr/X11R6/lib -lX11 -lXpm -lXft
-+.PHONY: install clean
-+
-+CFLAGS +=-O2 -g `pkg-config --cflags xft` `pkg-config --cflags xpm` -DCLOCK
-+LDLIBS +=`pkg-config --libs xft` `pkg-config --libs xpm`
- PROGNAME=hpanel
-
--$(PROGNAME): Makefile hpanel.c hpanel.h icon.xpm
-- $(CC) $(CFLAGS) $(LDFLAGS) hpanel.c -o $(PROGNAME)
-- @ls -l $(PROGNAME)
-- strip $(PROGNAME)
-- @ls -l $(PROGNAME)
-+$(PROGNAME): hpanel.c
-
- install:
-- install $(PROGNAME) /usr/local/bin
-+ install $(PROGNAME) $(DESTDIR)/usr/bin
-+
-+clean:
-+ @rm -f $(PROGNAME)
-+
diff --git a/patches/hpanel-0.3.2/series b/patches/hpanel-0.3.2/series
deleted file mode 100644
index 4561eb605..000000000
--- a/patches/hpanel-0.3.2/series
+++ /dev/null
@@ -1,3 +0,0 @@
-# generated by git-ptx-patches
-0001-Patches-the-Makefile-to-be-able-to-cross-compile.patch
-# ee25b7b07cba51a7b49037c8a8138fda - git-ptx-patches magic
diff --git a/patches/hping3-20051105/clean_makefile.diff b/patches/hping3-20051105/clean_makefile.diff
deleted file mode 100644
index 899524fe9..000000000
--- a/patches/hping3-20051105/clean_makefile.diff
+++ /dev/null
@@ -1,74 +0,0 @@
-Subject: Don't be smarter than make
-From: Juergen Beisert <jbe@pengutronix.de>
-
-Simplify the makefile and use embedded rules.
-
-Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
-[mkl: install relative links only]
-Singed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
-
----
- Makefile.in | 29 +++++++++++++----------------
- 1 file changed, 13 insertions(+), 16 deletions(-)
-
-Index: Makefile.in
-===================================================================
---- Makefile.in.orig
-+++ Makefile.in
-@@ -9,7 +9,7 @@
- CC= gcc
- AR=/usr/bin/ar
- RANLIB=/usr/bin/ranlib
--CCOPT= -O2 -Wall @PCAP_INCLUDE@ @TCL_INC@ @USE_TCL@
-+CFLAGS= -O2 -Wall @PCAP_INCLUDE@ @TCL_INC@ @USE_TCL@
- DEBUG= -g
- #uncomment the following if you need libpcap based build under linux
- #(not raccomanded)
-@@ -50,21 +50,18 @@ libars.a: $(ARSOBJ)
- $(RANLIB) $@
-
- hping3: byteorder.h $(OBJ)
-- $(CC) -o hping3 $(CCOPT) $(DEBUG) $(OBJ) -L/usr/local/lib $(PCAP) @SOLARISLIB@ @TCL_LIB@
-+ $(CC) -o hping3 $(LDFLAGS) $(DEBUG) $(OBJ) $(PCAP) $(LDLIBS) @SOLARISLIB@ @TCL_LIB@
- @echo
-- ./hping3 -v
-- @echo "use \`make strip' to strip hping3 binary"
-- @echo "use \`make install' to install hping3"
-+# ./hping3 -v
-+# @echo "use \`make strip' to strip hping3 binary"
-+# @echo "use \`make install' to install hping3"
-
- hping3-static: byteorder.h $(OBJ)
-- $(CC) -static -o hping3-static $(CCOPT) $(DEBUG) $(OBJ) -L/usr/local/lib $(PCAP) @SOLARISLIB@ @TCL_LIB@ -ldl
-+ $(CC) -static -o hping3-static $(LDFLAGS) $(CCOPT) $(DEBUG) $(OBJ) $(PCAP) $(LDLIBS) @SOLARISLIB@ @TCL_LIB@ -ldl
-
- byteorder.h:
- ./configure
-
--.c.o:
-- $(CC) -c $(CCOPT) $(DEBUG) $(COMPILE_TIME) $<
--
- clean:
- rm -rf hping3 *.o libars.a
-
-@@ -72,13 +69,13 @@ distclean:
- rm -rf hping3 *.o byteorder byteorder.h systype.h Makefile libars.a .depend
-
- install: hping3
-- cp -f hping3 /usr/sbin/
-- chmod 755 /usr/sbin/hping3
-- ln -s /usr/sbin/hping3 /usr/sbin/hping
-- ln -s /usr/sbin/hping3 /usr/sbin/hping2
-- @if [ -d ${INSTALL_MANPATH}/man8 ]; then \
-- cp ./docs/hping3.8 ${INSTALL_MANPATH}/man8; \
-- chmod 644 ${INSTALL_MANPATH}/man8/hping3.8; \
-+ cp -f hping3 $(DESTDIR)/usr/sbin/
-+ chmod 755 $(DESTDIR)/usr/sbin/hping3
-+ ln -sf hping3 $(DESTDIR)/usr/sbin/hping
-+ ln -sf hping3 $(DESTDIR)/usr/sbin/hping2
-+ @if [ -d $(DESTDIR)${INSTALL_MANPATH}/man8 ]; then \
-+ cp ./docs/hping3.8 $(DESTDIR)/${INSTALL_MANPATH}/man8; \
-+ chmod 644 $(DESTDIR)/${INSTALL_MANPATH}/man8/hping3.8; \
- else \
- echo "@@@@@@ WARNING @@@@@@"; \
- echo "Can't install the man page: ${INSTALL_MANPATH}/man8 does not exist"; \
diff --git a/patches/hping3-20051105/host_vs_target.diff b/patches/hping3-20051105/host_vs_target.diff
deleted file mode 100644
index 59092f5b9..000000000
--- a/patches/hping3-20051105/host_vs_target.diff
+++ /dev/null
@@ -1,75 +0,0 @@
-Subject: Endianess detection should not happen at host side...
-From: Juergen Beisert <jbe@pengutronix.de>
-
-Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
-
----
- bytesex.h | 3 ++-
- configure | 20 ++------------------
- hping2.h | 2 +-
- 3 files changed, 5 insertions(+), 20 deletions(-)
-
-Index: configure
-===================================================================
---- configure.orig
-+++ configure
-@@ -15,30 +15,14 @@ fi
-
- CC=${CC:=cc}
-
--echo build byteorder.c...
--$CC byteorder.c -o byteorder || exit 1
--
- INSTALL_MANPATH=`echo $MANPATH|cut -f1 -d:`
- if [ "$INSTALL_MANPATH" = "" ]; then
- INSTALL_MANPATH="/usr/local/man"
- fi
--BYTEORDER=`./byteorder -m`
--
--echo create byteorder.h...
--cat > byteorder.h <<EOF
--#ifndef __BYTEORDER_H
--#define __BYTEORDER_H
-
--EOF
--echo \#ifndef $BYTEORDER >> byteorder.h
--echo \#define $BYTEORDER >> byteorder.h
--echo \#endif /\* $BYTEORDER \*/ >> byteorder.h
--cat >> byteorder.h <<EOF
--
--#endif /* __BYTEORDER_H */
--EOF
-+# CONFIGOSTYPE=`uname -s | tr [a-z] [A-Z]`
-+CONFIGOSTYPE=LINUX
-
--CONFIGOSTYPE=`uname -s | tr [a-z] [A-Z]`
- if [ ! "$CONFIGOSTYPE" ]; then
- CONFIGOSTYPE=UNKNOWN
- fi
-Index: hping2.h
-===================================================================
---- hping2.h.orig
-+++ hping2.h
-@@ -17,7 +17,7 @@
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <limits.h>
--#include "byteorder.h"
-+#include <asm/byteorder.h>
- #include "systype.h"
- #include "fixtypes.h"
-
-Index: bytesex.h
-===================================================================
---- bytesex.h.orig
-+++ bytesex.h
-@@ -9,7 +9,8 @@
-
- #if defined(__i386__) \
- || defined(__alpha__) \
-- || (defined(__mips__) && (defined(MIPSEL) || defined (__MIPSEL__)))
-+ || (defined(__mips__) && (defined(MIPSEL) || defined (__MIPSEL__))) \
-+ || defined(__ARMEL__)
- #define BYTE_ORDER_LITTLE_ENDIAN
- #elif defined(__mc68000__) \
- || defined (__sparc__) \
diff --git a/patches/hping3-20051105/remove_pcap_header.diff b/patches/hping3-20051105/remove_pcap_header.diff
deleted file mode 100644
index 2a9e75735..000000000
--- a/patches/hping3-20051105/remove_pcap_header.diff
+++ /dev/null
@@ -1,23 +0,0 @@
-Subject: The <net/bpf.h> include file does not exist an more
-From: Juergen Beisert <jbe@pengutronix.de>
-
-The <net/bpf.h> include file does not exist an more. Simply removed.
-
-Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
-
----
- libpcap_stuff.c | 1 -
- 1 file changed, 1 deletion(-)
-
-Index: libpcap_stuff.c
-===================================================================
---- libpcap_stuff.c.orig
-+++ libpcap_stuff.c
-@@ -17,7 +17,6 @@
- #include <stdlib.h>
- #include <sys/ioctl.h>
- #include <pcap.h>
--#include <net/bpf.h>
-
- #include "globals.h"
-
diff --git a/patches/hping3-20051105/series b/patches/hping3-20051105/series
deleted file mode 100644
index d639ae763..000000000
--- a/patches/hping3-20051105/series
+++ /dev/null
@@ -1,3 +0,0 @@
-clean_makefile.diff -p0
-remove_pcap_header.diff -p0
-host_vs_target.diff -p0
diff --git a/patches/htmldoc-1.9.16/0001-Makefile-don-t-build-install-docs-or-desktop-files.patch b/patches/htmldoc-1.9.16/0001-Makefile-don-t-build-install-docs-or-desktop-files.patch
new file mode 100644
index 000000000..940a09cee
--- /dev/null
+++ b/patches/htmldoc-1.9.16/0001-Makefile-don-t-build-install-docs-or-desktop-files.patch
@@ -0,0 +1,28 @@
+From: Roland Hieber <rhi@pengutronix.de>
+Date: Sun, 14 May 2023 23:57:58 +0200
+Subject: [PATCH] Makefile: don't build/install docs or desktop files
+
+htmldoc is configured without GUI, so no desktop data is needed.
+Furthermore it will try to call the built binary to build the docs,
+which will not work in cross builds.
+
+Forwarded: not-needed
+---
+ Makefile.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index d846bf7621e5..31211a244b62 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -19,8 +19,8 @@ include Makedefs
+ # Subdirectories...
+ #
+
+-DIRS = htmldoc doc
+-INSTALLDIRS = fonts data desktop doc htmldoc
++DIRS = htmldoc
++INSTALLDIRS = fonts data htmldoc
+
+
+ #
diff --git a/patches/open62541-1.2/series b/patches/htmldoc-1.9.16/series
index 248a1b603..e9d04563d 100644
--- a/patches/open62541-1.2/series
+++ b/patches/htmldoc-1.9.16/series
@@ -1,4 +1,4 @@
# generated by git-ptx-patches
#tag:base --start-number 1
-0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch
-# 4a88edd1483ff7bb07a623335b407de7 - git-ptx-patches magic
+0001-Makefile-don-t-build-install-docs-or-desktop-files.patch
+# fdcadd964bbc6253264d4d6326477667 - git-ptx-patches magic
diff --git a/patches/ima-evm-utils-1.1/0001-INSTALL-remove-file-at-it-s-autogenerated-by-autotoo.patch b/patches/ima-evm-utils-1.1/0001-INSTALL-remove-file-at-it-s-autogenerated-by-autotoo.patch
deleted file mode 100644
index c035197d9..000000000
--- a/patches/ima-evm-utils-1.1/0001-INSTALL-remove-file-at-it-s-autogenerated-by-autotoo.patch
+++ /dev/null
@@ -1,389 +0,0 @@
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-Date: Wed, 18 Nov 2015 15:15:15 +0100
-Subject: [PATCH] INSTALL: remove file, at it's autogenerated by autotools
-
-This patch remove the file "INSTALL" which is autogenerated during
-./autogen.sh.
-
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- INSTALL | 370 ----------------------------------------------------------------
- 1 file changed, 370 deletions(-)
- delete mode 100644 INSTALL
-
-diff --git a/INSTALL b/INSTALL
-deleted file mode 100644
-index 007e9396d0a2..000000000000
---- a/INSTALL
-+++ /dev/null
-@@ -1,370 +0,0 @@
--Installation Instructions
--*************************
--
--Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
--Inc.
--
-- Copying and distribution of this file, with or without modification,
--are permitted in any medium without royalty provided the copyright
--notice and this notice are preserved. This file is offered as-is,
--without warranty of any kind.
--
--Basic Installation
--==================
--
-- Briefly, the shell commands `./configure; make; make install' should
--configure, build, and install this package. The following
--more-detailed instructions are generic; see the `README' file for
--instructions specific to this package. Some packages provide this
--`INSTALL' file but do not implement all of the features documented
--below. The lack of an optional feature in a given package is not
--necessarily a bug. More recommendations for GNU packages can be found
--in *note Makefile Conventions: (standards)Makefile Conventions.
--
-- The `configure' shell script attempts to guess correct values for
--various system-dependent variables used during compilation. It uses
--those values to create a `Makefile' in each directory of the package.
--It may also create one or more `.h' files containing system-dependent
--definitions. Finally, it creates a shell script `config.status' that
--you can run in the future to recreate the current configuration, and a
--file `config.log' containing compiler output (useful mainly for
--debugging `configure').
--
-- It can also use an optional file (typically called `config.cache'
--and enabled with `--cache-file=config.cache' or simply `-C') that saves
--the results of its tests to speed up reconfiguring. Caching is
--disabled by default to prevent problems with accidental use of stale
--cache files.
--
-- If you need to do unusual things to compile the package, please try
--to figure out how `configure' could check whether to do them, and mail
--diffs or instructions to the address given in the `README' so they can
--be considered for the next release. If you are using the cache, and at
--some point `config.cache' contains results you don't want to keep, you
--may remove or edit it.
--
-- The file `configure.ac' (or `configure.in') is used to create
--`configure' by a program called `autoconf'. You need `configure.ac' if
--you want to change it or regenerate `configure' using a newer version
--of `autoconf'.
--
-- The simplest way to compile this package is:
--
-- 1. `cd' to the directory containing the package's source code and type
-- `./configure' to configure the package for your system.
--
-- Running `configure' might take a while. While running, it prints
-- some messages telling which features it is checking for.
--
-- 2. Type `make' to compile the package.
--
-- 3. Optionally, type `make check' to run any self-tests that come with
-- the package, generally using the just-built uninstalled binaries.
--
-- 4. Type `make install' to install the programs and any data files and
-- documentation. When installing into a prefix owned by root, it is
-- recommended that the package be configured and built as a regular
-- user, and only the `make install' phase executed with root
-- privileges.
--
-- 5. Optionally, type `make installcheck' to repeat any self-tests, but
-- this time using the binaries in their final installed location.
-- This target does not install anything. Running this target as a
-- regular user, particularly if the prior `make install' required
-- root privileges, verifies that the installation completed
-- correctly.
--
-- 6. You can remove the program binaries and object files from the
-- source code directory by typing `make clean'. To also remove the
-- files that `configure' created (so you can compile the package for
-- a different kind of computer), type `make distclean'. There is
-- also a `make maintainer-clean' target, but that is intended mainly
-- for the package's developers. If you use it, you may have to get
-- all sorts of other programs in order to regenerate files that came
-- with the distribution.
--
-- 7. Often, you can also type `make uninstall' to remove the installed
-- files again. In practice, not all packages have tested that
-- uninstallation works correctly, even though it is required by the
-- GNU Coding Standards.
--
-- 8. Some packages, particularly those that use Automake, provide `make
-- distcheck', which can by used by developers to test that all other
-- targets like `make install' and `make uninstall' work correctly.
-- This target is generally not run by end users.
--
--Compilers and Options
--=====================
--
-- Some systems require unusual options for compilation or linking that
--the `configure' script does not know about. Run `./configure --help'
--for details on some of the pertinent environment variables.
--
-- You can give `configure' initial values for configuration parameters
--by setting variables in the command line or in the environment. Here
--is an example:
--
-- ./configure CC=c99 CFLAGS=-g LIBS=-lposix
--
-- *Note Defining Variables::, for more details.
--
--Compiling For Multiple Architectures
--====================================
--
-- You can compile the package for more than one kind of computer at the
--same time, by placing the object files for each architecture in their
--own directory. To do this, you can use GNU `make'. `cd' to the
--directory where you want the object files and executables to go and run
--the `configure' script. `configure' automatically checks for the
--source code in the directory that `configure' is in and in `..'. This
--is known as a "VPATH" build.
--
-- With a non-GNU `make', it is safer to compile the package for one
--architecture at a time in the source code directory. After you have
--installed the package for one architecture, use `make distclean' before
--reconfiguring for another architecture.
--
-- On MacOS X 10.5 and later systems, you can create libraries and
--executables that work on multiple system types--known as "fat" or
--"universal" binaries--by specifying multiple `-arch' options to the
--compiler but only a single `-arch' option to the preprocessor. Like
--this:
--
-- ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
-- CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
-- CPP="gcc -E" CXXCPP="g++ -E"
--
-- This is not guaranteed to produce working output in all cases, you
--may have to build one architecture at a time and combine the results
--using the `lipo' tool if you have problems.
--
--Installation Names
--==================
--
-- By default, `make install' installs the package's commands under
--`/usr/local/bin', include files under `/usr/local/include', etc. You
--can specify an installation prefix other than `/usr/local' by giving
--`configure' the option `--prefix=PREFIX', where PREFIX must be an
--absolute file name.
--
-- You can specify separate installation prefixes for
--architecture-specific files and architecture-independent files. If you
--pass the option `--exec-prefix=PREFIX' to `configure', the package uses
--PREFIX as the prefix for installing programs and libraries.
--Documentation and other data files still use the regular prefix.
--
-- In addition, if you use an unusual directory layout you can give
--options like `--bindir=DIR' to specify different values for particular
--kinds of files. Run `configure --help' for a list of the directories
--you can set and what kinds of files go in them. In general, the
--default for these options is expressed in terms of `${prefix}', so that
--specifying just `--prefix' will affect all of the other directory
--specifications that were not explicitly provided.
--
-- The most portable way to affect installation locations is to pass the
--correct locations to `configure'; however, many packages provide one or
--both of the following shortcuts of passing variable assignments to the
--`make install' command line to change installation locations without
--having to reconfigure or recompile.
--
-- The first method involves providing an override variable for each
--affected directory. For example, `make install
--prefix=/alternate/directory' will choose an alternate location for all
--directory configuration variables that were expressed in terms of
--`${prefix}'. Any directories that were specified during `configure',
--but not in terms of `${prefix}', must each be overridden at install
--time for the entire installation to be relocated. The approach of
--makefile variable overrides for each directory variable is required by
--the GNU Coding Standards, and ideally causes no recompilation.
--However, some platforms have known limitations with the semantics of
--shared libraries that end up requiring recompilation when using this
--method, particularly noticeable in packages that use GNU Libtool.
--
-- The second method involves providing the `DESTDIR' variable. For
--example, `make install DESTDIR=/alternate/directory' will prepend
--`/alternate/directory' before all installation names. The approach of
--`DESTDIR' overrides is not required by the GNU Coding Standards, and
--does not work on platforms that have drive letters. On the other hand,
--it does better at avoiding recompilation issues, and works well even
--when some directory options were not specified in terms of `${prefix}'
--at `configure' time.
--
--Optional Features
--=================
--
-- If the package supports it, you can cause programs to be installed
--with an extra prefix or suffix on their names by giving `configure' the
--option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
--
-- Some packages pay attention to `--enable-FEATURE' options to
--`configure', where FEATURE indicates an optional part of the package.
--They may also pay attention to `--with-PACKAGE' options, where PACKAGE
--is something like `gnu-as' or `x' (for the X Window System). The
--`README' should mention any `--enable-' and `--with-' options that the
--package recognizes.
--
-- For packages that use the X Window System, `configure' can usually
--find the X include and library files automatically, but if it doesn't,
--you can use the `configure' options `--x-includes=DIR' and
--`--x-libraries=DIR' to specify their locations.
--
-- Some packages offer the ability to configure how verbose the
--execution of `make' will be. For these packages, running `./configure
----enable-silent-rules' sets the default to minimal output, which can be
--overridden with `make V=1'; while running `./configure
----disable-silent-rules' sets the default to verbose, which can be
--overridden with `make V=0'.
--
--Particular systems
--==================
--
-- On HP-UX, the default C compiler is not ANSI C compatible. If GNU
--CC is not installed, it is recommended to use the following options in
--order to use an ANSI C compiler:
--
-- ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
--
--and if that doesn't work, install pre-built binaries of GCC for HP-UX.
--
-- HP-UX `make' updates targets which have the same time stamps as
--their prerequisites, which makes it generally unusable when shipped
--generated files such as `configure' are involved. Use GNU `make'
--instead.
--
-- On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
--parse its `<wchar.h>' header file. The option `-nodtk' can be used as
--a workaround. If GNU CC is not installed, it is therefore recommended
--to try
--
-- ./configure CC="cc"
--
--and if that doesn't work, try
--
-- ./configure CC="cc -nodtk"
--
-- On Solaris, don't put `/usr/ucb' early in your `PATH'. This
--directory contains several dysfunctional programs; working variants of
--these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
--in your `PATH', put it _after_ `/usr/bin'.
--
-- On Haiku, software installed for all users goes in `/boot/common',
--not `/usr/local'. It is recommended to use the following options:
--
-- ./configure --prefix=/boot/common
--
--Specifying the System Type
--==========================
--
-- There may be some features `configure' cannot figure out
--automatically, but needs to determine by the type of machine the package
--will run on. Usually, assuming the package is built to be run on the
--_same_ architectures, `configure' can figure that out, but if it prints
--a message saying it cannot guess the machine type, give it the
--`--build=TYPE' option. TYPE can either be a short name for the system
--type, such as `sun4', or a canonical name which has the form:
--
-- CPU-COMPANY-SYSTEM
--
--where SYSTEM can have one of these forms:
--
-- OS
-- KERNEL-OS
--
-- See the file `config.sub' for the possible values of each field. If
--`config.sub' isn't included in this package, then this package doesn't
--need to know the machine type.
--
-- If you are _building_ compiler tools for cross-compiling, you should
--use the option `--target=TYPE' to select the type of system they will
--produce code for.
--
-- If you want to _use_ a cross compiler, that generates code for a
--platform different from the build platform, you should specify the
--"host" platform (i.e., that on which the generated programs will
--eventually be run) with `--host=TYPE'.
--
--Sharing Defaults
--================
--
-- If you want to set default values for `configure' scripts to share,
--you can create a site shell script called `config.site' that gives
--default values for variables like `CC', `cache_file', and `prefix'.
--`configure' looks for `PREFIX/share/config.site' if it exists, then
--`PREFIX/etc/config.site' if it exists. Or, you can set the
--`CONFIG_SITE' environment variable to the location of the site script.
--A warning: not all `configure' scripts look for a site script.
--
--Defining Variables
--==================
--
-- Variables not defined in a site shell script can be set in the
--environment passed to `configure'. However, some packages may run
--configure again during the build, and the customized values of these
--variables may be lost. In order to avoid this problem, you should set
--them in the `configure' command line, using `VAR=value'. For example:
--
-- ./configure CC=/usr/local2/bin/gcc
--
--causes the specified `gcc' to be used as the C compiler (unless it is
--overridden in the site shell script).
--
--Unfortunately, this technique does not work for `CONFIG_SHELL' due to
--an Autoconf limitation. Until the limitation is lifted, you can use
--this workaround:
--
-- CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
--
--`configure' Invocation
--======================
--
-- `configure' recognizes the following options to control how it
--operates.
--
--`--help'
--`-h'
-- Print a summary of all of the options to `configure', and exit.
--
--`--help=short'
--`--help=recursive'
-- Print a summary of the options unique to this package's
-- `configure', and exit. The `short' variant lists options used
-- only in the top level, while the `recursive' variant lists options
-- also present in any nested packages.
--
--`--version'
--`-V'
-- Print the version of Autoconf used to generate the `configure'
-- script, and exit.
--
--`--cache-file=FILE'
-- Enable the cache: use and save the results of the tests in FILE,
-- traditionally `config.cache'. FILE defaults to `/dev/null' to
-- disable caching.
--
--`--config-cache'
--`-C'
-- Alias for `--cache-file=config.cache'.
--
--`--quiet'
--`--silent'
--`-q'
-- Do not print messages saying which checks are being made. To
-- suppress all normal output, redirect it to `/dev/null' (any error
-- messages will still be shown).
--
--`--srcdir=DIR'
-- Look for the package's source code in directory DIR. Usually
-- `configure' can determine that directory automatically.
--
--`--prefix=DIR'
-- Use DIR as the installation prefix. *note Installation Names::
-- for more details, including other options available for fine-tuning
-- the installation locations.
--
--`--no-create'
--`-n'
-- Run the configure checks, but stop before creating any output
-- files.
--
--`configure' also accepts some other, not widely useful, options. Run
--`configure --help' for more details.
diff --git a/patches/ima-evm-utils-1.1/0002-Makefile.am-rename-INCLUDES-AM_CPPFLAGS.patch b/patches/ima-evm-utils-1.1/0002-Makefile.am-rename-INCLUDES-AM_CPPFLAGS.patch
deleted file mode 100644
index cb09b8d78..000000000
--- a/patches/ima-evm-utils-1.1/0002-Makefile.am-rename-INCLUDES-AM_CPPFLAGS.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-Date: Wed, 27 May 2015 10:41:27 +0200
-Subject: [PATCH] Makefile.am: rename INCLUDES -> AM_CPPFLAGS
-
-This patch fixes the following warning during autoreconf:
-
-| src/Makefile.am:19: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
-
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- src/Makefile.am | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index deb18fb09dc7..9f547283d535 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -1,7 +1,7 @@
- lib_LTLIBRARIES = libimaevm.la
-
- libimaevm_la_SOURCES = libimaevm.c
--libimaevm_la_CPPFLAGS = $(OPENSSL_CFLAGS)
-+libimaevm_la_CPPFLAGS = $(OPENSSL_CFLAGS) $(AM_CPPFLAGS)
- # current[:revision[:age]]
- # result: [current-age].age.revision
- libimaevm_la_LDFLAGS = -version-info 0:0:0
-@@ -12,11 +12,11 @@ include_HEADERS = imaevm.h
- bin_PROGRAMS = evmctl
-
- evmctl_SOURCES = evmctl.c
--evmctl_CPPFLAGS = $(OPENSSL_CFLAGS)
-+evmctl_CPPFLAGS = $(OPENSSL_CFLAGS) $(AM_CPPFLAGS)
- evmctl_LDFLAGS = $(LDFLAGS_READLINE)
- evmctl_LDADD = $(OPENSSL_LIBS) -lkeyutils libimaevm.la
-
--INCLUDES = -I$(top_srcdir) -include config.h
-+AM_CPPFLAGS = -I$(top_srcdir) -include config.h
-
- DISTCLEANFILES = @DISTCLEANFILES@
-
diff --git a/patches/ima-evm-utils-1.1/0006-evmctl-libimaevm-use-EVP_MAX_MD_SIZE-for-hash-size-i.patch b/patches/ima-evm-utils-1.1/0006-evmctl-libimaevm-use-EVP_MAX_MD_SIZE-for-hash-size-i.patch
deleted file mode 100644
index a3cd597f8..000000000
--- a/patches/ima-evm-utils-1.1/0006-evmctl-libimaevm-use-EVP_MAX_MD_SIZE-for-hash-size-i.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-Date: Sat, 26 Mar 2016 22:58:07 +0100
-Subject: [PATCH] evmctl, libimaevm: use EVP_MAX_MD_SIZE for hash size instead
- of open coding it
-
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- src/evmctl.c | 10 +++++-----
- src/libimaevm.c | 2 +-
- 2 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/src/evmctl.c b/src/evmctl.c
-index de53be37b69b..b0f3b6362528 100644
---- a/src/evmctl.c
-+++ b/src/evmctl.c
-@@ -495,7 +495,7 @@ static int calc_evm_hash(const char *file, unsigned char *hash)
-
- static int sign_evm(const char *file, const char *key)
- {
-- unsigned char hash[20];
-+ unsigned char hash[EVP_MAX_MD_SIZE];
- unsigned char sig[1024];
- int len, err;
-
-@@ -533,7 +533,7 @@ static int sign_evm(const char *file, const char *key)
-
- static int hash_ima(const char *file)
- {
-- unsigned char hash[66]; /* MAX hash size + 2 */
-+ unsigned char hash[EVP_MAX_MD_SIZE + 2]; /* MAX hash size + 2 */
- int len, err, offset;
- int algo = get_hash_algo(params.hash_algo);
-
-@@ -571,7 +571,7 @@ static int hash_ima(const char *file)
-
- static int sign_ima(const char *file, const char *key)
- {
-- unsigned char hash[64];
-+ unsigned char hash[EVP_MAX_MD_SIZE];
- unsigned char sig[1024];
- int len, err;
-
-@@ -751,7 +751,7 @@ static int cmd_sign_evm(struct command *cmd)
-
- static int verify_evm(const char *file)
- {
-- unsigned char hash[20];
-+ unsigned char hash[EVP_MAX_MD_SIZE];
- unsigned char sig[1024];
- int len;
-
-@@ -1119,7 +1119,7 @@ out:
-
- static int hmac_evm(const char *file, const char *key)
- {
-- unsigned char hash[20];
-+ unsigned char hash[EVP_MAX_MD_SIZE];
- unsigned char sig[1024];
- int len, err;
-
-diff --git a/src/libimaevm.c b/src/libimaevm.c
-index 6fa0ed4a1c74..8fc23be08bd7 100644
---- a/src/libimaevm.c
-+++ b/src/libimaevm.c
-@@ -590,7 +590,7 @@ int verify_hash(const char *file, const unsigned char *hash, int size, unsigned
- int ima_verify_signature(const char *file, unsigned char *sig, int siglen,
- unsigned char *digest, int digestlen)
- {
-- unsigned char hash[64];
-+ unsigned char hash[EVP_MAX_MD_SIZE];
- int hashlen, sig_hash_algo;
-
- if (sig[0] != 0x03) {
diff --git a/patches/ima-evm-utils-1.1/0008-evmctl-add-parameter-e-to-set-evm-hash-algo.patch b/patches/ima-evm-utils-1.1/0008-evmctl-add-parameter-e-to-set-evm-hash-algo.patch
deleted file mode 100644
index 488dfa822..000000000
--- a/patches/ima-evm-utils-1.1/0008-evmctl-add-parameter-e-to-set-evm-hash-algo.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-From: Steffen Trumtrar <s.trumtrar@pengutronix.de>
-Date: Tue, 8 Mar 2016 13:46:14 +0100
-Subject: [PATCH] evmctl: add parameter -e to set evm hash algo
-
-The paramter -a sets the hash algorithm only for IMA. To not break
-anything, add a new parameter -e to be able to change the hash for
-EVM, too.
-
-Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
----
- src/evmctl.c | 27 +++++++++++++++++++++++----
- src/imaevm.h | 1 +
- src/libimaevm.c | 1 +
- 3 files changed, 25 insertions(+), 4 deletions(-)
-
-diff --git a/src/evmctl.c b/src/evmctl.c
-index b0f3b6362528..5d664005e915 100644
---- a/src/evmctl.c
-+++ b/src/evmctl.c
-@@ -336,6 +336,7 @@ static int calc_evm_hash(const char *file, unsigned char *hash)
- #else
- pctx = EVP_MD_CTX_new();
- #endif
-+ const EVP_MD *md;
-
- if (lstat(file, &st)) {
- log_err("Failed to stat: %s\n", file);
-@@ -379,7 +380,13 @@ static int calc_evm_hash(const char *file, unsigned char *hash)
- return -1;
- }
-
-- err = EVP_DigestInit(pctx, EVP_sha1());
-+ md = EVP_get_digestbyname(params.evm_hash_algo);
-+ if (!md) {
-+ log_err("EVP_get_digestbyname() failed\n");
-+ return 1;
-+ }
-+
-+ err = EVP_DigestInit(pctx, md);
- if (!err) {
- log_err("EVP_DigestInit() failed\n");
- return 1;
-@@ -503,7 +510,7 @@ static int sign_evm(const char *file, const char *key)
- if (len <= 1)
- return len;
-
-- len = sign_hash("sha1", hash, len, key, NULL, sig + 1);
-+ len = sign_hash(params.evm_hash_algo, hash, len, key, NULL, sig + 1);
- if (len <= 1)
- return len;
-
-@@ -992,6 +999,7 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h
- #else
- pctx = HMAC_CTX_new();
- #endif
-+ const EVP_MD *md;
-
- key = file2bin(keyfile, NULL, &keylen);
- if (!key) {
-@@ -1038,7 +1046,13 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h
- goto out;
- }
-
-- err = !HMAC_Init_ex(pctx, evmkey, sizeof(evmkey), EVP_sha1(), NULL);
-+ md = EVP_get_digestbyname(params.evm_hash_algo);
-+ if (!md) {
-+ log_err("EVP_get_digestbyname() failed\n");
-+ return 1;
-+ }
-+
-+ err = !HMAC_Init_ex(pctx, evmkey, sizeof(evmkey), md, NULL);
- if (err) {
- log_err("HMAC_Init() failed\n");
- goto out;
-@@ -1635,6 +1649,7 @@ static void usage(void)
- printf(
- "\n"
- " -a, --hashalgo sha1 (default), sha224, sha256, sha384, sha512\n"
-+ " -e, --evmhashalgo sha1 (default), sha224, sha256, sha384, sha512\n"
- " -s, --imasig make IMA signature\n"
- " -d, --imahash make IMA hash\n"
- " -f, --sigfile store IMA signature in .sig file instead of xattr\n"
-@@ -1691,6 +1706,7 @@ static struct option opts[] = {
- {"imasig", 0, 0, 's'},
- {"imahash", 0, 0, 'd'},
- {"hashalgo", 1, 0, 'a'},
-+ {"evmhashalgo", 1, 0, 'e'},
- {"pass", 2, 0, 'p'},
- {"sigfile", 0, 0, 'f'},
- {"uuid", 2, 0, 'u'},
-@@ -1758,7 +1774,7 @@ int main(int argc, char *argv[])
- g_argc = argc;
-
- while (1) {
-- c = getopt_long(argc, argv, "hvnsda:op::fu::k:t:ri", opts, &lind);
-+ c = getopt_long(argc, argv, "hvnsda:e:op::fu::k:t:ri", opts, &lind);
- if (c == -1)
- break;
-
-@@ -1784,6 +1800,9 @@ int main(int argc, char *argv[])
- case 'a':
- params.hash_algo = optarg;
- break;
-+ case 'e':
-+ params.evm_hash_algo = optarg;
-+ break;
- case 'p':
- if (optarg)
- params.keypass = optarg;
-diff --git a/src/imaevm.h b/src/imaevm.h
-index 1bafaad0f4ab..ed92e4d8981d 100644
---- a/src/imaevm.h
-+++ b/src/imaevm.h
-@@ -179,6 +179,7 @@ struct libevm_params {
- int verbose;
- int x509;
- const char *hash_algo;
-+ const char *evm_hash_algo;
- const char *keyfile;
- const char *keypass;
- };
-diff --git a/src/libimaevm.c b/src/libimaevm.c
-index b6c328801708..4c093a038b72 100644
---- a/src/libimaevm.c
-+++ b/src/libimaevm.c
-@@ -129,6 +129,7 @@ struct libevm_params params = {
- .verbose = LOG_INFO - 1,
- .x509 = 1,
- .hash_algo = "sha1",
-+ .evm_hash_algo = "sha1",
- };
-
- static void __attribute__ ((constructor)) libinit(void);
diff --git a/patches/ima-evm-utils-1.1/0011-HACK-don-t-generate-man-page.patch b/patches/ima-evm-utils-1.1/0011-HACK-don-t-generate-man-page.patch
deleted file mode 100644
index bb44e8d6c..000000000
--- a/patches/ima-evm-utils-1.1/0011-HACK-don-t-generate-man-page.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Wed, 3 Jun 2015 16:08:51 +0200
-Subject: [PATCH] HACK: don't generate man page
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- Makefile.am | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 06ebf59ea4aa..e527f34f1faa 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1,5 +1,4 @@
- SUBDIRS = src
--dist_man_MANS = evmctl.1
-
- doc_DATA = examples/ima-genkey-self.sh examples/ima-genkey.sh examples/ima-gen-local-ca.sh
- EXTRA_DIST = autogen.sh $(doc_DATA)
diff --git a/patches/ima-evm-utils-1.1/0013-evmctl-use-correct-include-for-xattr.h.patch b/patches/ima-evm-utils-1.1/0013-evmctl-use-correct-include-for-xattr.h.patch
deleted file mode 100644
index 3157c711a..000000000
--- a/patches/ima-evm-utils-1.1/0013-evmctl-use-correct-include-for-xattr.h.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <git@andred.net>
-Date: Mon, 17 Oct 2016 12:45:32 +0100
-Subject: [PATCH] evmctl: use correct include for xattr.h
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The xattr API/ABI is provided by both the c-library, as well as by the
-libattr package. The c-library's header file is sys/xattr.h, whereas
-libattr's header file can be found in attr/xattr.h.
-
-Given none of the code here *links* against the libattr.so shared library, it
-is wrong to *compile* against libattr's API (header file).
-
-Doing so avoids confusion as to which xattr.h is used as the least problem,
-and potential ABI differences as the worst problem due the mismatching header
-file used.
-
-So make sure we compile and link against the same thing, the c-library in
-both cases.
-
-Signed-off-by: André Draszik <git@andred.net>
-Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
----
- configure.ac | 2 +-
- packaging/ima-evm-utils.spec | 1 -
- packaging/ima-evm-utils.spec.in | 1 -
- src/evmctl.c | 2 +-
- 4 files changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 6822f39cff69..06d061bc94ea 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -30,7 +30,7 @@ AC_SUBST(OPENSSL_LIBS)
- AC_CHECK_HEADER(unistd.h)
- AC_CHECK_HEADERS(openssl/conf.h)
-
--AC_CHECK_HEADERS(attr/xattr.h, , [AC_MSG_ERROR([attr/xattr.h header not found. You need the libattr development package.])])
-+AC_CHECK_HEADERS(sys/xattr.h, , [AC_MSG_ERROR([sys/xattr.h header not found. You need the c-library development package.])])
- AC_CHECK_HEADERS(keyutils.h, , [AC_MSG_ERROR([keyutils.h header not found. You need the libkeyutils development package.])])
-
- #debug support - yes for a while
-diff --git a/packaging/ima-evm-utils.spec b/packaging/ima-evm-utils.spec
-index a11a27a18815..63388d2b444b 100644
---- a/packaging/ima-evm-utils.spec
-+++ b/packaging/ima-evm-utils.spec
-@@ -11,7 +11,6 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
- BuildRequires: autoconf
- BuildRequires: automake
- BuildRequires: openssl-devel
--BuildRequires: libattr-devel
- BuildRequires: keyutils-libs-devel
-
- %description
-diff --git a/packaging/ima-evm-utils.spec.in b/packaging/ima-evm-utils.spec.in
-index 7ca6c6fb3b0d..65c32f9e6445 100644
---- a/packaging/ima-evm-utils.spec.in
-+++ b/packaging/ima-evm-utils.spec.in
-@@ -11,7 +11,6 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
- BuildRequires: autoconf
- BuildRequires: automake
- BuildRequires: openssl-devel
--BuildRequires: libattr-devel
- BuildRequires: keyutils-libs-devel
-
- %description
-diff --git a/src/evmctl.c b/src/evmctl.c
-index 4422c0e84d4a..02eb84d4c341 100644
---- a/src/evmctl.c
-+++ b/src/evmctl.c
-@@ -49,7 +49,7 @@
- #include <stdint.h>
- #include <string.h>
- #include <dirent.h>
--#include <attr/xattr.h>
-+#include <sys/xattr.h>
- #include <linux/xattr.h>
- #include <getopt.h>
- #include <keyutils.h>
diff --git a/patches/ima-evm-utils-1.1/series b/patches/ima-evm-utils-1.1/series
deleted file mode 100644
index 6fb042465..000000000
--- a/patches/ima-evm-utils-1.1/series
+++ /dev/null
@@ -1,16 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-INSTALL-remove-file-at-it-s-autogenerated-by-autotoo.patch
-0002-Makefile.am-rename-INCLUDES-AM_CPPFLAGS.patch
-0003-evmctl-find-add-missing-closedir-dir-on-error.patch
-0004-evmctl-find-add-missing-error-handling-and-propagate.patch
-0005-evmctl-add-fallback-definitions-for-XATTR_NAME_IMA.patch
-0006-evmctl-libimaevm-use-EVP_MAX_MD_SIZE-for-hash-size-i.patch
-0007-libimaevm-use-SHA_DIGEST_LENGTH-instead-of-open-codi.patch
-0008-evmctl-add-parameter-e-to-set-evm-hash-algo.patch
-0009-evmctl-add-support-for-offline-image-preparation.patch
-0010-evmctl-Do-not-account-.-and-.-for-directory-hash-gen.patch
-0011-HACK-don-t-generate-man-page.patch
-0012-Fix-warning-for-non-debug-use-case.patch
-0013-evmctl-use-correct-include-for-xattr.h.patch
-# 5032e96fb6da7cb77f053c2b5a6edc44 - git-ptx-patches magic
diff --git a/patches/ima-evm-utils-1.1/0003-evmctl-find-add-missing-closedir-dir-on-error.patch b/patches/ima-evm-utils-1.3.2/0001-evmctl-find-add-missing-closedir-dir-on-error.patch
index 4b1c84584..5c91c4621 100644
--- a/patches/ima-evm-utils-1.1/0003-evmctl-find-add-missing-closedir-dir-on-error.patch
+++ b/patches/ima-evm-utils-1.3.2/0001-evmctl-find-add-missing-closedir-dir-on-error.patch
@@ -10,10 +10,10 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
1 file changed, 2 insertions(+)
diff --git a/src/evmctl.c b/src/evmctl.c
-index 2ffee786865b..20eccfa93b2b 100644
+index 1815f55d73e0..cca2fabdb2a6 100644
--- a/src/evmctl.c
+++ b/src/evmctl.c
-@@ -1229,6 +1229,7 @@ static int find(const char *path, int dts, find_cb_t func)
+@@ -1331,6 +1331,7 @@ static int find(const char *path, int dts, find_cb_t func)
if (fchdir(dirfd(dir))) {
log_err("Failed to chdir %s\n", path);
@@ -21,7 +21,7 @@ index 2ffee786865b..20eccfa93b2b 100644
return -1;
}
-@@ -1244,6 +1245,7 @@ static int find(const char *path, int dts, find_cb_t func)
+@@ -1346,6 +1347,7 @@ static int find(const char *path, int dts, find_cb_t func)
if (chdir("..")) {
log_err("Failed to chdir: %s\n", path);
diff --git a/patches/ima-evm-utils-1.1/0004-evmctl-find-add-missing-error-handling-and-propagate.patch b/patches/ima-evm-utils-1.3.2/0002-evmctl-find-add-missing-error-handling-and-propagate.patch
index 68660d95e..62471489a 100644
--- a/patches/ima-evm-utils-1.1/0004-evmctl-find-add-missing-error-handling-and-propagate.patch
+++ b/patches/ima-evm-utils-1.3.2/0002-evmctl-find-add-missing-error-handling-and-propagate.patch
@@ -12,10 +12,10 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/src/evmctl.c b/src/evmctl.c
-index 20eccfa93b2b..55fc619f5990 100644
+index cca2fabdb2a6..e6761f2ae5e4 100644
--- a/src/evmctl.c
+++ b/src/evmctl.c
-@@ -1234,13 +1234,20 @@ static int find(const char *path, int dts, find_cb_t func)
+@@ -1336,13 +1336,20 @@ static int find(const char *path, int dts, find_cb_t func)
}
while ((de = readdir(dir))) {
@@ -38,7 +38,7 @@ index 20eccfa93b2b..55fc619f5990 100644
}
if (chdir("..")) {
-@@ -1249,8 +1256,13 @@ static int find(const char *path, int dts, find_cb_t func)
+@@ -1351,8 +1358,13 @@ static int find(const char *path, int dts, find_cb_t func)
return -1;
}
diff --git a/patches/ima-evm-utils-1.1/0005-evmctl-add-fallback-definitions-for-XATTR_NAME_IMA.patch b/patches/ima-evm-utils-1.3.2/0003-evmctl-add-fallback-definitions-for-XATTR_NAME_IMA.patch
index 69aadb377..0de24af6a 100644
--- a/patches/ima-evm-utils-1.1/0005-evmctl-add-fallback-definitions-for-XATTR_NAME_IMA.patch
+++ b/patches/ima-evm-utils-1.3.2/0003-evmctl-add-fallback-definitions-for-XATTR_NAME_IMA.patch
@@ -10,12 +10,12 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
1 file changed, 5 insertions(+)
diff --git a/src/evmctl.c b/src/evmctl.c
-index 55fc619f5990..de53be37b69b 100644
+index e6761f2ae5e4..a1fd9feaea78 100644
--- a/src/evmctl.c
+++ b/src/evmctl.c
-@@ -62,6 +62,11 @@
- #include <openssl/err.h>
- #include <openssl/rsa.h>
+@@ -72,6 +72,11 @@
+ #define XATTR_NAME_APPARMOR XATTR_SECURITY_PREFIX XATTR_APPARMOR_SUFFIX
+ #endif
+#ifndef XATTR_NAME_IMA
+#define XATTR_IMA_SUFFIX "ima"
diff --git a/patches/ima-evm-utils-1.1/0007-libimaevm-use-SHA_DIGEST_LENGTH-instead-of-open-codi.patch b/patches/ima-evm-utils-1.3.2/0004-libimaevm-use-SHA_DIGEST_LENGTH-instead-of-open-codi.patch
index 2164c6238..e20cfaa82 100644
--- a/patches/ima-evm-utils-1.1/0007-libimaevm-use-SHA_DIGEST_LENGTH-instead-of-open-codi.patch
+++ b/patches/ima-evm-utils-1.3.2/0004-libimaevm-use-SHA_DIGEST_LENGTH-instead-of-open-codi.patch
@@ -8,10 +8,10 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/libimaevm.c b/src/libimaevm.c
-index 8fc23be08bd7..b6c328801708 100644
+index fa6c27858d0f..002b0657337c 100644
--- a/src/libimaevm.c
+++ b/src/libimaevm.c
-@@ -379,7 +379,7 @@ int verify_hash_v1(const char *file, const unsigned char *hash, int size,
+@@ -382,7 +382,7 @@ static int verify_hash_v1(const char *file, const unsigned char *hash, int size,
SHA_CTX ctx;
unsigned char out[1024];
RSA *key;
@@ -20,7 +20,7 @@ index 8fc23be08bd7..b6c328801708 100644
struct signature_hdr *hdr = (struct signature_hdr *)sig;
log_info("hash-v1: ");
-@@ -744,7 +744,7 @@ int sign_hash_v1(const char *hashalgo, const unsigned char *hash, int size, cons
+@@ -805,7 +805,7 @@ static int sign_hash_v1(const char *hashalgo, const unsigned char *hash,
unsigned char pub[1024];
RSA *key;
char name[20];
diff --git a/patches/ima-evm-utils-1.1/0009-evmctl-add-support-for-offline-image-preparation.patch b/patches/ima-evm-utils-1.3.2/0005-evmctl-add-support-for-offline-image-preparation.patch
index 6d9b40fc5..75d927341 100644
--- a/patches/ima-evm-utils-1.1/0009-evmctl-add-support-for-offline-image-preparation.patch
+++ b/patches/ima-evm-utils-1.3.2/0005-evmctl-add-support-for-offline-image-preparation.patch
@@ -33,29 +33,29 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
src/evmctl.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++--------
src/imaevm.h | 1 +
- src/libimaevm.c | 25 ++++++++++++++++++++++++-
- 3 files changed, 74 insertions(+), 9 deletions(-)
+ src/libimaevm.c | 24 +++++++++++++++++++++++-
+ 3 files changed, 73 insertions(+), 9 deletions(-)
diff --git a/src/evmctl.c b/src/evmctl.c
-index 5d664005e915..9003f7640c0f 100644
+index a1fd9feaea78..a4d784a5bfb6 100644
--- a/src/evmctl.c
+++ b/src/evmctl.c
-@@ -337,6 +337,7 @@ static int calc_evm_hash(const char *file, unsigned char *hash)
+@@ -352,6 +352,7 @@ static int calc_evm_hash(const char *file, unsigned char *hash)
+ #else
pctx = EVP_MD_CTX_new();
#endif
- const EVP_MD *md;
+ ino_t ino;
if (lstat(file, &st)) {
log_err("Failed to stat: %s\n", file);
-@@ -371,9 +372,25 @@ static int calc_evm_hash(const char *file, unsigned char *hash)
+@@ -386,9 +387,25 @@ static int calc_evm_hash(const char *file, unsigned char *hash)
}
close(fd);
}
- log_info("generation: %u\n", generation);
}
-+ if (params.image_mode) {
++ if (imaevm_params.image_mode) {
+ char buf[128] = { };
+
+ err = lgetxattr(file, "user.image-inode-number", buf, sizeof(buf) - 1);
@@ -75,7 +75,7 @@ index 5d664005e915..9003f7640c0f 100644
list_size = llistxattr(file, list, sizeof(list));
if (list_size < 0) {
log_err("llistxattr() failed\n");
-@@ -439,7 +456,7 @@ static int calc_evm_hash(const char *file, unsigned char *hash)
+@@ -470,7 +487,7 @@ static int calc_evm_hash(const char *file, unsigned char *hash)
hmac_size = sizeof(*hmac);
if (!evm_portable) {
@@ -84,7 +84,7 @@ index 5d664005e915..9003f7640c0f 100644
hmac->generation = generation;
}
hmac->uid = st.st_uid;
-@@ -450,7 +467,7 @@ static int calc_evm_hash(const char *file, unsigned char *hash)
+@@ -481,7 +498,7 @@ static int calc_evm_hash(const char *file, unsigned char *hash)
hmac_size = sizeof(*hmac);
if (!evm_portable) {
@@ -93,7 +93,7 @@ index 5d664005e915..9003f7640c0f 100644
hmac->generation = generation;
}
hmac->uid = st.st_uid;
-@@ -461,7 +478,7 @@ static int calc_evm_hash(const char *file, unsigned char *hash)
+@@ -492,7 +509,7 @@ static int calc_evm_hash(const char *file, unsigned char *hash)
hmac_size = sizeof(*hmac);
if (!evm_portable) {
@@ -102,19 +102,19 @@ index 5d664005e915..9003f7640c0f 100644
hmac->generation = generation;
}
hmac->uid = st.st_uid;
-@@ -1000,6 +1017,7 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h
+@@ -1085,6 +1102,7 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h
+ #else
pctx = HMAC_CTX_new();
#endif
- const EVP_MD *md;
+ ino_t ino;
key = file2bin(keyfile, NULL, &keylen);
if (!key) {
-@@ -1038,10 +1056,26 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h
+@@ -1123,10 +1141,26 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h
close(fd);
}
-+ if (params.image_mode) {
++ if (imaevm_params.image_mode) {
+ char buf[128] = { };
+
+ err = lgetxattr(file, "user.image-inode-number", buf, sizeof(buf) - 1);
@@ -137,7 +137,7 @@ index 5d664005e915..9003f7640c0f 100644
log_err("llistxattr() failed: %s\n", file);
goto out;
}
-@@ -1084,7 +1118,7 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h
+@@ -1170,7 +1204,7 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h
struct h_misc *hmac = (struct h_misc *)&hmac_misc;
hmac_size = sizeof(*hmac);
@@ -146,7 +146,7 @@ index 5d664005e915..9003f7640c0f 100644
hmac->generation = generation;
hmac->uid = st.st_uid;
hmac->gid = st.st_gid;
-@@ -1093,7 +1127,7 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h
+@@ -1179,7 +1213,7 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h
struct h_misc_64 *hmac = (struct h_misc_64 *)&hmac_misc;
hmac_size = sizeof(*hmac);
@@ -155,7 +155,7 @@ index 5d664005e915..9003f7640c0f 100644
hmac->generation = generation;
hmac->uid = st.st_uid;
hmac->gid = st.st_gid;
-@@ -1102,7 +1136,7 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h
+@@ -1188,7 +1222,7 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h
struct h_misc_32 *hmac = (struct h_misc_32 *)&hmac_misc;
hmac_size = sizeof(*hmac);
@@ -164,7 +164,7 @@ index 5d664005e915..9003f7640c0f 100644
hmac->generation = generation;
hmac->uid = st.st_uid;
hmac->gid = st.st_gid;
-@@ -1666,6 +1700,9 @@ static void usage(void)
+@@ -2476,6 +2510,9 @@ static void usage(void)
" --smack use extra SMACK xattrs for EVM\n"
" --m32 force EVM hmac/signature for 32 bit target system\n"
" --m64 force EVM hmac/signature for 64 bit target system\n"
@@ -174,7 +174,7 @@ index 5d664005e915..9003f7640c0f 100644
" --ino use custom inode for EVM\n"
" --uid use custom UID for EVM\n"
" --gid use custom GID for EVM\n"
-@@ -1716,6 +1753,7 @@ static struct option opts[] = {
+@@ -2528,6 +2565,7 @@ static struct option opts[] = {
{"recursive", 0, 0, 'r'},
{"m32", 0, 0, '3'},
{"m64", 0, 0, '6'},
@@ -182,31 +182,31 @@ index 5d664005e915..9003f7640c0f 100644
{"portable", 0, 0, 'o'},
{"smack", 0, 0, 128},
{"version", 0, 0, 129},
-@@ -1774,7 +1812,7 @@ int main(int argc, char *argv[])
+@@ -2600,7 +2638,7 @@ int main(int argc, char *argv[])
g_argc = argc;
while (1) {
-- c = getopt_long(argc, argv, "hvnsda:e:op::fu::k:t:ri", opts, &lind);
-+ c = getopt_long(argc, argv, "hvnsda:e:op::fu::k:t:rim", opts, &lind);
+- c = getopt_long(argc, argv, "hvnsda:op::fu::k:t:ri", opts, &lind);
++ c = getopt_long(argc, argv, "hvnsda:op::fu::k:t:rim", opts, &lind);
if (c == -1)
break;
-@@ -1847,6 +1885,9 @@ int main(int argc, char *argv[])
+@@ -2670,6 +2708,9 @@ int main(int argc, char *argv[])
case '6':
msize = 64;
break;
+ case 'm':
-+ params.image_mode = true;
++ imaevm_params.image_mode = true;
+ break;
case 128:
evm_config_xattrnames = evm_extra_smack_xattrs;
break;
diff --git a/src/imaevm.h b/src/imaevm.h
-index ed92e4d8981d..7e32d09c6538 100644
+index 45039199ab31..2f78a31ab438 100644
--- a/src/imaevm.h
+++ b/src/imaevm.h
-@@ -182,6 +182,7 @@ struct libevm_params {
- const char *evm_hash_algo;
+@@ -196,6 +196,7 @@ struct libimaevm_params {
+ const char *hash_algo;
const char *keyfile;
const char *keypass;
+ bool image_mode;
@@ -214,31 +214,23 @@ index ed92e4d8981d..7e32d09c6538 100644
struct RSA_ASN1_template {
diff --git a/src/libimaevm.c b/src/libimaevm.c
-index 4c093a038b72..866f74b39b41 100644
+index 002b0657337c..1cdf1dc590cc 100644
--- a/src/libimaevm.c
+++ b/src/libimaevm.c
-@@ -40,6 +40,7 @@
-
- /* should we use logger instead for library? */
- #define USE_FPRINTF
-+#define _GNU_SOURCE
-
- #include <sys/types.h>
- #include <sys/param.h>
-@@ -49,6 +50,7 @@
- #include <dirent.h>
- #include <string.h>
+@@ -51,6 +51,7 @@
#include <stdio.h>
+ #include <assert.h>
+ #include <ctype.h>
+#include <sys/xattr.h>
+ #include <openssl/crypto.h>
#include <openssl/pem.h>
- #include <openssl/evp.h>
-@@ -224,7 +226,28 @@ static int add_dir_hash(const char *file, EVP_MD_CTX *ctx)
+@@ -193,7 +194,28 @@ static int add_dir_hash(const char *file, EVP_MD_CTX *ctx)
}
while ((de = readdir(dir))) {
- ino = de->d_ino;
-+ if (params.image_mode) {
++ if (imaevm_params.image_mode) {
+ char *name;
+ char buf[128] = { };
+
diff --git a/patches/ima-evm-utils-1.1/0010-evmctl-Do-not-account-.-and-.-for-directory-hash-gen.patch b/patches/ima-evm-utils-1.3.2/0006-evmctl-Do-not-account-.-and-.-for-directory-hash-gen.patch
index 12b77a132..251f7136b 100644
--- a/patches/ima-evm-utils-1.1/0010-evmctl-Do-not-account-.-and-.-for-directory-hash-gen.patch
+++ b/patches/ima-evm-utils-1.3.2/0006-evmctl-Do-not-account-.-and-.-for-directory-hash-gen.patch
@@ -15,16 +15,16 @@ Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
1 file changed, 3 insertions(+)
diff --git a/src/libimaevm.c b/src/libimaevm.c
-index 866f74b39b41..834b738426bf 100644
+index 1cdf1dc590cc..6bb0b0757c42 100644
--- a/src/libimaevm.c
+++ b/src/libimaevm.c
-@@ -226,6 +226,9 @@ static int add_dir_hash(const char *file, EVP_MD_CTX *ctx)
+@@ -194,6 +194,9 @@ static int add_dir_hash(const char *file, EVP_MD_CTX *ctx)
}
while ((de = readdir(dir))) {
+ if (!strcmp(de->d_name, ".") || !strcmp(de->d_name, ".."))
+ continue;
+
- if (params.image_mode) {
+ if (imaevm_params.image_mode) {
char *name;
char buf[128] = { };
diff --git a/patches/ima-evm-utils-1.1/0012-Fix-warning-for-non-debug-use-case.patch b/patches/ima-evm-utils-1.3.2/0007-Fix-warning-for-non-debug-use-case.patch
index 80073f19a..2cddf569a 100644
--- a/patches/ima-evm-utils-1.1/0012-Fix-warning-for-non-debug-use-case.patch
+++ b/patches/ima-evm-utils-1.3.2/0007-Fix-warning-for-non-debug-use-case.patch
@@ -14,10 +14,10 @@ Signed-off-by: Juergen Borleis <jbe@pengutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/evmctl.c b/src/evmctl.c
-index 9003f7640c0f..4422c0e84d4a 100644
+index a4d784a5bfb6..7c1f15082615 100644
--- a/src/evmctl.c
+++ b/src/evmctl.c
-@@ -1191,7 +1191,7 @@ static int hmac_evm(const char *file, const char *key)
+@@ -1279,7 +1279,7 @@ static int hmac_evm(const char *file, const char *key)
return 0;
}
diff --git a/patches/evtest-1.33/autogen.sh b/patches/ima-evm-utils-1.3.2/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/evtest-1.33/autogen.sh
+++ b/patches/ima-evm-utils-1.3.2/autogen.sh
diff --git a/patches/ima-evm-utils-1.3.2/series b/patches/ima-evm-utils-1.3.2/series
new file mode 100644
index 000000000..36781ea6b
--- /dev/null
+++ b/patches/ima-evm-utils-1.3.2/series
@@ -0,0 +1,10 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-evmctl-find-add-missing-closedir-dir-on-error.patch
+0002-evmctl-find-add-missing-error-handling-and-propagate.patch
+0003-evmctl-add-fallback-definitions-for-XATTR_NAME_IMA.patch
+0004-libimaevm-use-SHA_DIGEST_LENGTH-instead-of-open-codi.patch
+0005-evmctl-add-support-for-offline-image-preparation.patch
+0006-evmctl-Do-not-account-.-and-.-for-directory-hash-gen.patch
+0007-Fix-warning-for-non-debug-use-case.patch
+# f8ecfd002cf2ee8244984a1757a1bfea - git-ptx-patches magic
diff --git a/patches/installer-0.7.0/0001-HACK-drop-shebang-magic.patch b/patches/installer-0.7.0/0001-HACK-drop-shebang-magic.patch
new file mode 100644
index 000000000..f12463329
--- /dev/null
+++ b/patches/installer-0.7.0/0001-HACK-drop-shebang-magic.patch
@@ -0,0 +1,37 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Thu, 27 Apr 2023 22:20:08 +0200
+Subject: [PATCH] HACK: drop shebang magic
+
+We replace the shebang later anyways, so make sure it's always the same.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ src/installer/scripts.py | 15 +--------------
+ 1 file changed, 1 insertion(+), 14 deletions(-)
+
+diff --git a/src/installer/scripts.py b/src/installer/scripts.py
+index 7e3c8fcd070a..ba6ed5aec3b6 100644
+--- a/src/installer/scripts.py
++++ b/src/installer/scripts.py
+@@ -59,20 +59,7 @@ def _build_shebang(executable: str, forlauncher: bool) -> bytes:
+ https://bitbucket.org/pypa/distlib/src/58cd5c6/distlib/scripts.py#lines-124
+ """
+ executable_bytes = executable.encode("utf-8")
+- if forlauncher: # The launcher can just use the command as-is.
+- return b"#!" + executable_bytes
+- if _is_executable_simple(executable_bytes):
+- return b"#!" + executable_bytes
+-
+- # Shebang support for an executable with a space in it is under-specified
+- # and platform-dependent, so we use a clever hack to generate a script to
+- # run in ``/bin/sh`` that should work on all reasonably modern platforms.
+- # Read the following message to understand how the hack works:
+- # https://github.com/pradyunsg/installer/pull/4#issuecomment-623668717
+-
+- quoted = shlex.quote(executable).encode("utf-8")
+- # I don't understand a lick what this is trying to do.
+- return b"#!/bin/sh\n'''exec' " + quoted + b' "$0" "$@"\n' + b"' '''"
++ return b"#!" + executable_bytes
+
+
+ class InvalidScript(ValueError):
diff --git a/patches/installer-0.7.0/series b/patches/installer-0.7.0/series
new file mode 100644
index 000000000..391c80de2
--- /dev/null
+++ b/patches/installer-0.7.0/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-HACK-drop-shebang-magic.patch
+# 1fa60d140bd5ea18d5663cb3af68671c - git-ptx-patches magic
diff --git a/patches/jed-0.99-19/0001-jed-don-t-execute-cross-compiled-files.patch b/patches/jed-0.99-19/0001-jed-don-t-execute-cross-compiled-files.patch
deleted file mode 100644
index 1129a3fb9..000000000
--- a/patches/jed-0.99-19/0001-jed-don-t-execute-cross-compiled-files.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: Robert Schwebel <r.schwebel@pengutronix.de>
-Date: Wed, 3 Oct 2018 11:15:59 +0200
-Subject: [PATCH] jed: don't execute cross compiled files
-
-When cross compiling, chkslang is a tool for the "host" machine, but we
-try to run it on the "build" box.
-
-Hack alert - not for upstream.
-
-Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
----
- src/Makefile.in | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/src/Makefile.in b/src/Makefile.in
-index e91f66a1dea8..d2033fba2771 100644
---- a/src/Makefile.in
-+++ b/src/Makefile.in
-@@ -160,9 +160,8 @@ slangversion: $(OBJDIR)/chkslang
- if $(OBJDIR)/chkslang jed $(MIN_SLANG_VERSION) $(MAX_SLANG_VERSION);\
- then exit 0; else $(RM) $(OBJDIR)/chkslang; exit 1; fi
-
--$(OBJDIR)/chkslang: config.h Makefile chkslang.c $(DOT_O_DEPS) $(chkslang_O_DEP)
-- $(CC) $(ALL_CFLAGS) $(LDFLAGS) $(SRCDIR)/chkslang.c -o $(OBJDIR)/chkslang $(COMMON_LIBS)
--
-+$(OBJDIR)/chkslang: | $(OBJDIR)
-+ rm -f $@; ln -s /bin/true $@
-
- $(OBJDIR):
- -mkdir $(OBJDIR)
diff --git a/patches/jed-0.99-19/0002-avoid-rpath.patch b/patches/jed-0.99-19/0002-avoid-rpath.patch
deleted file mode 100644
index c0cb81558..000000000
--- a/patches/jed-0.99-19/0002-avoid-rpath.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Robert Schwebel <r.schwebel@pengutronix.de>
-Date: Wed, 3 Oct 2018 11:15:59 +0200
-Subject: [PATCH] avoid rpath
-
-An rpath on the target is uggly as hell when cross compiling. Disable
-it. This is just a hack and not intended for upstream. I was too lazy to
-fix it in the m4 macros... in the end, it's just an emacs clone, so it
-isn't worth it :-)
-
-Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
----
- configure | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/configure b/configure
-index 2dc36ae5daa4..661a3ae35fe2 100755
---- a/configure
-+++ b/configure
-@@ -11466,6 +11466,8 @@ esac
- RPATH="$RPATH:$jd_slang_library_dir"
- fi
- fi
-+# rsc: uggly hack to disable rpath
-+RPATH=
-
- fi
-
diff --git a/patches/jed-0.99-19/series b/patches/jed-0.99-19/series
deleted file mode 100644
index 3986b7794..000000000
--- a/patches/jed-0.99-19/series
+++ /dev/null
@@ -1,5 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-jed-don-t-execute-cross-compiled-files.patch
-0002-avoid-rpath.patch
-# 5ef540b082b80bd2e3d53023327d388b - git-ptx-patches magic
diff --git a/patches/keyutils-1.5.10/0001-Makefile-don-t-create-absolute-link-outside-of-DESTD.patch b/patches/keyutils-1.6.3/0001-Makefile-don-t-create-absolute-link-outside-of-DESTD.patch
index fe9d7a374..590d087d6 100644
--- a/patches/keyutils-1.5.10/0001-Makefile-don-t-create-absolute-link-outside-of-DESTD.patch
+++ b/patches/keyutils-1.6.3/0001-Makefile-don-t-create-absolute-link-outside-of-DESTD.patch
@@ -8,15 +8,15 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
-index 824bbbf470c2..351e749760f7 100644
+index 599b1452a05a..0a2bacacfb88 100644
--- a/Makefile
+++ b/Makefile
-@@ -167,7 +167,7 @@ ifeq ($(NO_SOLIB),0)
+@@ -200,7 +200,7 @@ ifeq ($(NO_SOLIB),0)
$(INSTALL) -D $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBNAME)
$(LNS) $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SONAME)
mkdir -p $(DESTDIR)$(USRLIBDIR)
- $(LNS) $(LIBDIR)/$(SONAME) $(DESTDIR)$(USRLIBDIR)/$(DEVELLIB)
+ $(LNS) $(SONAME) $(DESTDIR)$(LIBDIR)/$(DEVELLIB)
- endif
- $(INSTALL) -D keyctl $(DESTDIR)$(BINDIR)/keyctl
- $(INSTALL) -D request-key $(DESTDIR)$(SBINDIR)/request-key
+ sed \
+ -e 's,@VERSION\@,$(VERSION),g' \
+ -e 's,@prefix\@,$(PREFIX),g' \
diff --git a/patches/keyutils-1.5.10/0002-build-use-SOURCE_DATE_EPOCH-if-available-to-make-the.patch b/patches/keyutils-1.6.3/0002-build-use-SOURCE_DATE_EPOCH-if-available-to-make-the.patch
index 31e472864..efd87614f 100644
--- a/patches/keyutils-1.5.10/0002-build-use-SOURCE_DATE_EPOCH-if-available-to-make-the.patch
+++ b/patches/keyutils-1.6.3/0002-build-use-SOURCE_DATE_EPOCH-if-available-to-make-the.patch
@@ -16,10 +16,10 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
-index 351e749760f7..c5aafd5fbdc5 100644
+index 0a2bacacfb88..163dfd8dc565 100644
--- a/Makefile
+++ b/Makefile
-@@ -104,7 +104,7 @@ all: keyctl request-key key.dns_resolver
+@@ -109,7 +109,7 @@ all: keyctl request-key key.dns_resolver cxx
###############################################################################
#RPATH = -Wl,-rpath,$(LIBDIR)
diff --git a/patches/keyutils-1.5.10/series b/patches/keyutils-1.6.3/series
index 342a4d284..342a4d284 100644
--- a/patches/keyutils-1.5.10/series
+++ b/patches/keyutils-1.6.3/series
diff --git a/patches/libaio-0.3.110/0001-make-the-package-DESTDIR-aware.patch b/patches/libaio-0.3.110/0001-make-the-package-DESTDIR-aware.patch
deleted file mode 100644
index c0fd32f2b..000000000
--- a/patches/libaio-0.3.110/0001-make-the-package-DESTDIR-aware.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Thu, 26 May 2016 10:25:21 +0200
-Subject: [PATCH] make the package DESTDIR aware
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/Makefile | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index eadb336b47e3..8a037c865c29 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -53,11 +53,11 @@ $(libname): $(libaio_sobjs) libaio.map
- $(CC) $(SO_CFLAGS) -Wl,--version-script=libaio.map -Wl,-soname=$(soname) -o $@ $(libaio_sobjs) $(LINK_FLAGS)
-
- install: $(all_targets)
-- install -D -m 644 libaio.h $(includedir)/libaio.h
-- install -D -m 644 libaio.a $(libdir)/libaio.a
-- install -D -m 755 $(libname) $(libdir)/$(libname)
-- ln -sf $(libname) $(libdir)/$(soname)
-- ln -sf $(libname) $(libdir)/libaio.so
-+ install -D -m 644 libaio.h $(DESTDIR)$(includedir)/libaio.h
-+ install -D -m 644 libaio.a $(DESTDIR)$(libdir)/libaio.a
-+ install -D -m 755 $(libname) $(DESTDIR)$(libdir)/$(libname)
-+ ln -sf $(libname) $(DESTDIR)$(libdir)/$(soname)
-+ ln -sf $(libname) $(DESTDIR)$(libdir)/libaio.so
-
- $(libaio_objs): libaio.h
-
diff --git a/patches/libaio-0.3.110/series b/patches/libaio-0.3.110/series
deleted file mode 100644
index 1c5e0b993..000000000
--- a/patches/libaio-0.3.110/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-make-the-package-DESTDIR-aware.patch
-# 2c519bc2ab00d1696f060ce28efb150a - git-ptx-patches magic
diff --git a/patches/f2fs-tools-1.12.0/autogen.sh b/patches/libatasmart-0.19/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/f2fs-tools-1.12.0/autogen.sh
+++ b/patches/libatasmart-0.19/autogen.sh
diff --git a/patches/libbsd-0.8.2/0001-use-I-instead-of-isystem-for-local-path.patch b/patches/libbsd-0.11.7/0001-use-I-instead-of-isystem-for-local-path.patch
index c919ce965..6dbf20c2a 100644
--- a/patches/libbsd-0.8.2/0001-use-I-instead-of-isystem-for-local-path.patch
+++ b/patches/libbsd-0.11.7/0001-use-I-instead-of-isystem-for-local-path.patch
@@ -12,7 +12,7 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/Makefile.am b/src/Makefile.am
-index 4649937bb891..265c631d7e70 100644
+index 7ef2013a5ff9..167ad58ce747 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -2,7 +2,7 @@
@@ -25,7 +25,7 @@ index 4649937bb891..265c631d7e70 100644
-DLIBBSD_OVERLAY -DLIBBSD_DISABLE_DEPRECATED \
-D__REENTRANT
diff --git a/test/Makefile.am b/test/Makefile.am
-index 9b79f06540ce..dcc7d1d55914 100644
+index 90fe38430bbd..eb54cf39d60d 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -7,7 +7,7 @@ HEADERS_CPPFLAGS = \
diff --git a/patches/fakeroot-1.25.3/autogen.sh b/patches/libbsd-0.11.7/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/fakeroot-1.25.3/autogen.sh
+++ b/patches/libbsd-0.11.7/autogen.sh
diff --git a/patches/libbsd-0.8.2/series b/patches/libbsd-0.11.7/series
index 4e941d98e..4e941d98e 100644
--- a/patches/libbsd-0.8.2/series
+++ b/patches/libbsd-0.11.7/series
diff --git a/patches/libcaca-0.99.beta16/0002-set-the-escape-delay-with-set_escdelay.patch b/patches/libcaca-0.99.beta16/0002-set-the-escape-delay-with-set_escdelay.patch
deleted file mode 100644
index 2e252163a..000000000
--- a/patches/libcaca-0.99.beta16/0002-set-the-escape-delay-with-set_escdelay.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Wed, 22 Jun 2011 00:31:47 +0200
-Subject: [PATCH] set the escape delay with set_escdelay
-
-This fixes building with ncurses-5.9:
-driver/ncurses.c: In function 'ncurses_init_graphics':
-driver/ncurses.c:267:5: error: lvalue required as left operand of assignment
-
-Origin: upstream, http://caca.zoy.org/changeset/4643/libcaca/trunk/caca/driver/ncurses.c
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- caca/driver/ncurses.c | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/caca/driver/ncurses.c b/caca/driver/ncurses.c
-index 274cdd8..4fe950c 100644
---- a/caca/driver/ncurses.c
-+++ b/caca/driver/ncurses.c
-@@ -264,7 +264,7 @@ static int ncurses_init_graphics(caca_display_t *dp)
- mouseinterval(-1); /* No click emulation */
-
- /* Set the escape delay to a ridiculously low value */
-- ESCDELAY = 10;
-+ set_escdelay(10);
-
- /* Activate colour */
- start_color();
diff --git a/patches/libcaca-0.99.beta16/series b/patches/libcaca-0.99.beta16/series
deleted file mode 100644
index 212faa1a1..000000000
--- a/patches/libcaca-0.99.beta16/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-0001-caca-config-add-SYSROOT-support.patch
-0002-set-the-escape-delay-with-set_escdelay.patch
-# d6fec66d66041a42b99192404234b9e8 - git-ptx-patches magic
diff --git a/patches/libcaca-0.99.beta16/0001-caca-config-add-SYSROOT-support.patch b/patches/libcaca-0.99.beta19/0001-caca-config-add-SYSROOT-support.patch
index a66f7dc37..b95a867aa 100644
--- a/patches/libcaca-0.99.beta16/0001-caca-config-add-SYSROOT-support.patch
+++ b/patches/libcaca-0.99.beta19/0001-caca-config-add-SYSROOT-support.patch
@@ -7,14 +7,14 @@ The method used here is probably not acceptable upstream.
Forwarded: not-needed
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
- caca-config.in | 6 +++---
- 1 files changed, 3 insertions(+), 3 deletions(-)
+ caca-config.in | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/caca-config.in b/caca-config.in
-index c768b99..56274e9 100644
+index a54e6e1149ef..4632f14fd7a6 100644
--- a/caca-config.in
+++ b/caca-config.in
-@@ -102,18 +102,18 @@ fi
+@@ -101,18 +101,18 @@ fi
if test "$echo_cflags" = "yes"
then
diff --git a/patches/libcaca-0.99.beta19/series b/patches/libcaca-0.99.beta19/series
new file mode 100644
index 000000000..3cb93edd0
--- /dev/null
+++ b/patches/libcaca-0.99.beta19/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-caca-config-add-SYSROOT-support.patch
+# 55662fe144e05c1c860b85eaff82bafd - git-ptx-patches magic
diff --git a/patches/libcap-2.44/0001-Fix-build-on-non-Linux-host.patch b/patches/libcap-2.44/0001-Fix-build-on-non-Linux-host.patch
deleted file mode 100644
index 31fb5e5cd..000000000
--- a/patches/libcap-2.44/0001-Fix-build-on-non-Linux-host.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From: Bernhard Walle <bernhard@bwalle.de>
-Date: Sun, 8 Apr 2012 17:55:56 +0200
-Subject: [PATCH] Fix build on non-Linux host
-
-Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- libcap/include/sys/capability.h | 1 -
- libcap/include/uapi/linux/capability.h | 6 ++++++
- 2 files changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/libcap/include/sys/capability.h b/libcap/include/sys/capability.h
-index ac13c128e3d2..18391f853769 100644
---- a/libcap/include/sys/capability.h
-+++ b/libcap/include/sys/capability.h
-@@ -21,7 +21,6 @@ extern "C" {
-
- #include <sys/types.h>
- #include <stdint.h>
--#include <linux/types.h>
-
- #ifndef __user
- #define __user
-diff --git a/libcap/include/uapi/linux/capability.h b/libcap/include/uapi/linux/capability.h
-index 09b556389a87..9e659e379659 100644
---- a/libcap/include/uapi/linux/capability.h
-+++ b/libcap/include/uapi/linux/capability.h
-@@ -14,7 +14,13 @@
- #ifndef _UAPI_LINUX_CAPABILITY_H
- #define _UAPI_LINUX_CAPABILITY_H
-
-+#ifdef __linux__
- #include <linux/types.h>
-+#else
-+#include <stdint.h>
-+typedef uint32_t __u32;
-+typedef uint32_t __le32;
-+#endif
-
- /* User-level do most of the mapping between kernel and user
- capabilities based on the version tag given by the kernel. The
diff --git a/patches/libcap-2.44/series b/patches/libcap-2.44/series
deleted file mode 100644
index 4f7f7421b..000000000
--- a/patches/libcap-2.44/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Fix-build-on-non-Linux-host.patch
-# 69b7a8db215659ad00eab9b8ed2ab43e - git-ptx-patches magic
diff --git a/patches/libcroco-0.6.2/0001-croco-config-add-SYSROOT-support.patch b/patches/libcroco-0.6.2/0001-croco-config-add-SYSROOT-support.patch
deleted file mode 100644
index c10e24447..000000000
--- a/patches/libcroco-0.6.2/0001-croco-config-add-SYSROOT-support.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 320c3c9fb9d6c1fa143bf73fc891fc255d78500b Mon Sep 17 00:00:00 2001
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-Date: Sat, 9 Jan 2010 19:20:30 +0100
-Subject: [PATCH] croco-config: add SYSROOT support
-
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- croco-config.in | 4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/croco-config.in b/croco-config.in
-index 78911ff..a52853a 100644
---- a/croco-config.in
-+++ b/croco-config.in
-@@ -3,8 +3,8 @@
- prefix=@prefix@
- exec_prefix=@exec_prefix@
- exec_prefix_set=no
--includedir=@includedir@
--libdir=@libdir@
-+includedir=${SYSROOT}@includedir@
-+libdir=${SYSROOT}@libdir@
-
- usage()
- {
---
-1.6.6
-
diff --git a/patches/libcroco-0.6.2/series b/patches/libcroco-0.6.2/series
deleted file mode 100644
index 7b446bc65..000000000
--- a/patches/libcroco-0.6.2/series
+++ /dev/null
@@ -1 +0,0 @@
-0001-croco-config-add-SYSROOT-support.patch
diff --git a/patches/libffi-3.3/0001-Fixed-missed-ifndef-for-__mips_soft_float-442.patch b/patches/libffi-3.3/0001-Fixed-missed-ifndef-for-__mips_soft_float-442.patch
deleted file mode 100644
index fae0a0e7d..000000000
--- a/patches/libffi-3.3/0001-Fixed-missed-ifndef-for-__mips_soft_float-442.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From: Carl Hurd <carl.m.hurd@gmail.com>
-Date: Fri, 29 Nov 2019 14:46:11 -0500
-Subject: [PATCH] Fixed missed #ifndef for __mips_soft_float (#442)
-
-Thank you!
----
- src/mips/o32.S | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/mips/o32.S b/src/mips/o32.S
-index 44e74cb91a21..799139b2968b 100644
---- a/src/mips/o32.S
-+++ b/src/mips/o32.S
-@@ -282,9 +282,11 @@ $LCFI12:
- li $13, 1 # FFI_O32
- bne $16, $13, 1f # Skip fp save if FFI_O32_SOFT_FLOAT
-
-+#ifndef __mips_soft_float
- # Store all possible float/double registers.
- s.d $f12, FA_0_0_OFF2($fp)
- s.d $f14, FA_1_0_OFF2($fp)
-+#endif
- 1:
- # prepare arguments for ffi_closure_mips_inner_O32
- REG_L a0, 4($15) # cif
diff --git a/patches/libffi-3.3/0002-powerpc-fix-build-failure-on-power7-and-older-532.patch b/patches/libffi-3.3/0002-powerpc-fix-build-failure-on-power7-and-older-532.patch
deleted file mode 100644
index aa2487c29..000000000
--- a/patches/libffi-3.3/0002-powerpc-fix-build-failure-on-power7-and-older-532.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Thu, 28 Nov 2019 12:42:41 +0000
-Subject: [PATCH] powerpc: fix build failure on power7 and older (#532)
-
-Build failure looks as:
-```
-libtool: compile: powerpc-unknown-linux-gnu-gcc \
- -O2 -mcpu=powerpc -mtune=powerpc -pipe ... -c src/powerpc/ffi.c ...
-In file included from src/powerpc/ffi.c:33:
-src/powerpc/ffi_powerpc.h:65:9: error: '__int128' is not supported on this target
- 65 | typedef __int128 float128;
- | ^~~~~~~~
-```
-
-The fix avoids using __int128 in favour of aligned char[16].
-
-Closes: https://github.com/libffi/libffi/issues/531
-Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
----
- src/powerpc/ffi_powerpc.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/powerpc/ffi_powerpc.h b/src/powerpc/ffi_powerpc.h
-index 5ee2a7095a6a..8e2f2f0e74a3 100644
---- a/src/powerpc/ffi_powerpc.h
-+++ b/src/powerpc/ffi_powerpc.h
-@@ -62,7 +62,7 @@ typedef _Float128 float128;
- #elif defined(__FLOAT128__)
- typedef __float128 float128;
- #else
--typedef __int128 float128;
-+typedef char float128[16] __attribute__((aligned(16)));
- #endif
-
- void FFI_HIDDEN ffi_closure_SYSV (void);
diff --git a/patches/libffi-3.3/series b/patches/libffi-3.3/series
deleted file mode 100644
index d90333c03..000000000
--- a/patches/libffi-3.3/series
+++ /dev/null
@@ -1,5 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Fixed-missed-ifndef-for-__mips_soft_float-442.patch
-0002-powerpc-fix-build-failure-on-power7-and-older-532.patch
-# 8d546ed0993c3fef550e4e9fba36368b - git-ptx-patches magic
diff --git a/patches/libffi-3.4.6/0001-libffi-Fix-location-of-libraries-for-multilib-toolch.patch b/patches/libffi-3.4.6/0001-libffi-Fix-location-of-libraries-for-multilib-toolch.patch
new file mode 100644
index 000000000..851455713
--- /dev/null
+++ b/patches/libffi-3.4.6/0001-libffi-Fix-location-of-libraries-for-multilib-toolch.patch
@@ -0,0 +1,24 @@
+From: Christian Melki <christian.melki@t2data.com>
+Date: Thu, 8 Jul 2021 15:41:52 +0200
+Subject: [PATCH] libffi: Fix location of libraries for multilib toolchains.
+
+Buildroot came to the same solution.
+
+Signed-off-by: Christian Melki <christian.melki@t2data.com>
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 3de0bea4737d..55b507e021aa 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -35,7 +35,7 @@ MAKEOVERRIDES=
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = libffi.pc
+
+-toolexeclib_LTLIBRARIES = libffi.la
++lib_LTLIBRARIES = libffi.la
+ noinst_LTLIBRARIES = libffi_convenience.la
+
+ libffi_la_SOURCES = src/prep_cif.c src/types.c \
diff --git a/patches/libffi-3.4.6/0002-libffi-ensure-sysroot-paths-are-not-in-libffi.pc.patch b/patches/libffi-3.4.6/0002-libffi-ensure-sysroot-paths-are-not-in-libffi.pc.patch
new file mode 100644
index 000000000..fc77ca27b
--- /dev/null
+++ b/patches/libffi-3.4.6/0002-libffi-ensure-sysroot-paths-are-not-in-libffi.pc.patch
@@ -0,0 +1,33 @@
+From: Ross Burton <ross.burton@intel.com>
+Date: Thu, 4 Feb 2016 16:22:50 +0000
+Subject: [PATCH] libffi: ensure sysroot paths are not in libffi.pc
+
+libffi's configure assumes that cross-compiled builds are complicated and
+introduces convoluted path manipulation involving gcc search paths to the
+install paths, resulting in paths like -L/usr/lib/../lib/ appearing in
+libffi.pc. When pkg-config is then used to obtain the linker flags for libffi
+it can't tell that this path is on the default search path and returns
+$SYSROOT/usr/lib/../lib which then gets written all over the target sysroot.
+This then means the sstate can't be shared and triggers QA errors.
+
+As this block is generally pointless, disable it.
+
+Upstream-Status: Inappropriate
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 741a6690a729..2aa767cb192e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -401,7 +401,7 @@ AC_ARG_ENABLE(multi-os-directory,
+
+ # These variables are only ever used when we cross-build to X86_WIN32.
+ # And we only support this with GCC, so...
+-if test "x$GCC" = "xyes"; then
++if false; then
+ if test -n "$with_cross_host" &&
+ test x"$with_cross_host" != x"no"; then
+ toolexecdir='${exec_prefix}'/'$(target_alias)'
diff --git a/patches/glu-9.0.1/autogen.sh b/patches/libffi-3.4.6/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/glu-9.0.1/autogen.sh
+++ b/patches/libffi-3.4.6/autogen.sh
diff --git a/patches/libffi-3.4.6/series b/patches/libffi-3.4.6/series
new file mode 100644
index 000000000..e7edd1e47
--- /dev/null
+++ b/patches/libffi-3.4.6/series
@@ -0,0 +1,5 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-libffi-Fix-location-of-libraries-for-multilib-toolch.patch
+0002-libffi-ensure-sysroot-paths-are-not-in-libffi.pc.patch
+# 1a2be5d11f83cc2dc4277928237f651e - git-ptx-patches magic
diff --git a/patches/libgpg-error-1.36/0001-awk-Prepare-for-Gawk-5.0.patch b/patches/libgpg-error-1.36/0001-awk-Prepare-for-Gawk-5.0.patch
deleted file mode 100644
index 47a84c19b..000000000
--- a/patches/libgpg-error-1.36/0001-awk-Prepare-for-Gawk-5.0.patch
+++ /dev/null
@@ -1,154 +0,0 @@
-From: NIIBE Yutaka <gniibe@fsij.org>
-Date: Mon, 15 Apr 2019 15:10:44 +0900
-Subject: [PATCH] awk: Prepare for Gawk 5.0.
-
-* src/Makefile.am: Use pkg_namespace (instead of namespace).
-* src/mkerrnos.awk: Likewise.
-* lang/cl/mkerrcodes.awk: Don't escape # in regexp.
-* src/mkerrcodes.awk, src/mkerrcodes1.awk, src/mkerrcodes2.awk: Ditto.
-
---
-
-In Gawk 5.0, regexp routines are replaced by Gnulib implementation,
-which only allows escaping specific characters.
-
-GnuPG-bug-id: 4459
-Reported-by: Marius Schamschula
-Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
----
- lang/cl/mkerrcodes.awk | 2 +-
- src/Makefile.am | 2 +-
- src/mkerrcodes.awk | 2 +-
- src/mkerrcodes1.awk | 2 +-
- src/mkerrcodes2.awk | 2 +-
- src/mkerrnos.awk | 2 +-
- src/mkstrtable.awk | 10 +++++-----
- 7 files changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/lang/cl/mkerrcodes.awk b/lang/cl/mkerrcodes.awk
-index ae290435fccf..9a1fc18c55cb 100644
---- a/lang/cl/mkerrcodes.awk
-+++ b/lang/cl/mkerrcodes.awk
-@@ -122,7 +122,7 @@ header {
- }
-
- !header {
-- sub (/\#.+/, "");
-+ sub (/#.+/, "");
- sub (/[ ]+$/, ""); # Strip trailing space and tab characters.
-
- if (/^$/)
-diff --git a/src/Makefile.am b/src/Makefile.am
-index ce1b882c23bf..f2590cb715d8 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -293,7 +293,7 @@ code-from-errno.h: mkerrcodes$(EXEEXT_FOR_BUILD) Makefile
-
- errnos-sym.h: Makefile mkstrtable.awk errnos.in
- $(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=2 -v nogettext=1 \
-- -v prefix=GPG_ERR_ -v namespace=errnos_ \
-+ -v prefix=GPG_ERR_ -v pkg_namespace=errnos_ \
- $(srcdir)/errnos.in >$@
-
-
-diff --git a/src/mkerrcodes.awk b/src/mkerrcodes.awk
-index 46d436c6b0c7..e9c857c62f9e 100644
---- a/src/mkerrcodes.awk
-+++ b/src/mkerrcodes.awk
-@@ -85,7 +85,7 @@ header {
- }
-
- !header {
-- sub (/\#.+/, "");
-+ sub (/#.+/, "");
- sub (/[ ]+$/, ""); # Strip trailing space and tab characters.
-
- if (/^$/)
-diff --git a/src/mkerrcodes1.awk b/src/mkerrcodes1.awk
-index a771a73602f6..4578e290ca6b 100644
---- a/src/mkerrcodes1.awk
-+++ b/src/mkerrcodes1.awk
-@@ -81,7 +81,7 @@ header {
- }
-
- !header {
-- sub (/\#.+/, "");
-+ sub (/#.+/, "");
- sub (/[ ]+$/, ""); # Strip trailing space and tab characters.
-
- if (/^$/)
-diff --git a/src/mkerrcodes2.awk b/src/mkerrcodes2.awk
-index ea5850341c33..188f7a48e358 100644
---- a/src/mkerrcodes2.awk
-+++ b/src/mkerrcodes2.awk
-@@ -91,7 +91,7 @@ header {
- }
-
- !header {
-- sub (/\#.+/, "");
-+ sub (/#.+/, "");
- sub (/[ ]+$/, ""); # Strip trailing space and tab characters.
-
- if (/^$/)
-diff --git a/src/mkerrnos.awk b/src/mkerrnos.awk
-index f79df6613a09..15b1aad225ee 100644
---- a/src/mkerrnos.awk
-+++ b/src/mkerrnos.awk
-@@ -83,7 +83,7 @@ header {
- }
-
- !header {
-- sub (/\#.+/, "");
-+ sub (/#.+/, "");
- sub (/[ ]+$/, ""); # Strip trailing space and tab characters.
-
- if (/^$/)
-diff --git a/src/mkstrtable.awk b/src/mkstrtable.awk
-index c9de9c1e4111..285e45f24ce1 100644
---- a/src/mkstrtable.awk
-+++ b/src/mkstrtable.awk
-@@ -77,7 +77,7 @@
- #
- # The variable prefix can be used to prepend a string to each message.
- #
--# The variable namespace can be used to prepend a string to each
-+# The variable pkg_namespace can be used to prepend a string to each
- # variable and macro name.
-
- BEGIN {
-@@ -102,7 +102,7 @@ header {
- print "/* The purpose of this complex string table is to produce";
- print " optimal code with a minimum of relocations. */";
- print "";
-- print "static const char " namespace "msgstr[] = ";
-+ print "static const char " pkg_namespace "msgstr[] = ";
- header = 0;
- }
- else
-@@ -110,7 +110,7 @@ header {
- }
-
- !header {
-- sub (/\#.+/, "");
-+ sub (/#.+/, "");
- sub (/[ ]+$/, ""); # Strip trailing space and tab characters.
-
- if (/^$/)
-@@ -150,7 +150,7 @@ END {
- else
- print " gettext_noop (\"" last_msgstr "\");";
- print "";
-- print "static const int " namespace "msgidx[] =";
-+ print "static const int " pkg_namespace "msgidx[] =";
- print " {";
- for (i = 0; i < coded_msgs; i++)
- print " " pos[i] ",";
-@@ -158,7 +158,7 @@ END {
- print " };";
- print "";
- print "static GPG_ERR_INLINE int";
-- print namespace "msgidxof (int code)";
-+ print pkg_namespace "msgidxof (int code)";
- print "{";
- print " return (0 ? 0";
-
diff --git a/patches/libgpg-error-1.36/series b/patches/libgpg-error-1.36/series
deleted file mode 100644
index 39b476b41..000000000
--- a/patches/libgpg-error-1.36/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-awk-Prepare-for-Gawk-5.0.patch
-# d78e2e603a5ad706ac53915963ac24e4 - git-ptx-patches magic
diff --git a/patches/libgpg-error-1.47/0001-gpgrt-config-improve-pkg-config-file-parsing.patch b/patches/libgpg-error-1.47/0001-gpgrt-config-improve-pkg-config-file-parsing.patch
new file mode 100644
index 000000000..64a07ab6e
--- /dev/null
+++ b/patches/libgpg-error-1.47/0001-gpgrt-config-improve-pkg-config-file-parsing.patch
@@ -0,0 +1,33 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Sun, 7 Aug 2022 11:28:19 +0200
+Subject: [PATCH] gpgrt-config: improve pkg-config file parsing
+
+.pc files may contain '${pcfiledir}'. Set it to ensure that paths that use
+it are expanded correctly.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ src/gpgrt-config.in | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/gpgrt-config.in b/src/gpgrt-config.in
+index 3aaa24329ecf..3bbc9e0e6184 100644
+--- a/src/gpgrt-config.in
++++ b/src/gpgrt-config.in
+@@ -166,6 +166,7 @@ read_config_file () {
+ fi
+ exit 1
+ fi
++ VAR_pcfiledir="$(dirname $RESULT)"
+ read_config_from_stdin $RESULT < $RESULT
+ }
+
+@@ -522,7 +523,7 @@ output=""
+
+ mt="no"
+
+-VAR_list=VAR_pc_sysrootdir
++VAR_list="VAR_pc_sysrootdir VAR_pcfiledir"
+ if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
+ VAR_pc_sysrootdir="/"
+ else
diff --git a/patches/libgpg-error-1.47/series b/patches/libgpg-error-1.47/series
new file mode 100644
index 000000000..92e846ff5
--- /dev/null
+++ b/patches/libgpg-error-1.47/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-gpgrt-config-improve-pkg-config-file-parsing.patch
+# beec67d9655cda67970f34b4593c254e - git-ptx-patches magic
diff --git a/patches/libgudev-230/0001-Prepare-to-check-for-an-older-UDEV.patch b/patches/libgudev-230/0001-Prepare-to-check-for-an-older-UDEV.patch
deleted file mode 100644
index 02834a648..000000000
--- a/patches/libgudev-230/0001-Prepare-to-check-for-an-older-UDEV.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-From: Juergen Borleis <entwicklung@pengutronix.de>
-Date: Thu, 10 Dec 2015 16:28:37 +0100
-Subject: [PATCH] Prepare to check for an older UDEV
-
-In order to use libgudev with systemd's based udev and the standalone udev
-we must libgudev check for an older udev release. Since v182 is the last
-standalone udev, check for this specific release. The libudev API seems stable
-enough in both releases.
-
-Signed-off-by: Juergen Borleis <jbe@pengutronix.de>
----
- configure.ac | 2 +-
- m4/introspection.m4 | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 97 insertions(+), 1 deletion(-)
- create mode 100644 m4/introspection.m4
-
-diff --git a/configure.ac b/configure.ac
-index 2b5e96ef30a1..58a35631187f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -38,7 +38,7 @@ GOBJECT_INTROSPECTION_CHECK([1.31.1])
- AM_CONDITIONAL([HAVE_INTROSPECTION], [false])
- enable_introspection=no])
-
--PKG_CHECK_MODULES([LIBUDEV], [libudev >= 199])
-+PKG_CHECK_MODULES([LIBUDEV], [libudev >= 182])
- PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.22.0 gobject-2.0 >= 2.22.0 gio-2.0])
-
- AC_CONFIG_FILES([
-diff --git a/m4/introspection.m4 b/m4/introspection.m4
-new file mode 100644
-index 000000000000..aa7b3b408852
---- /dev/null
-+++ b/m4/introspection.m4
-@@ -0,0 +1,96 @@
-+dnl -*- mode: autoconf -*-
-+dnl Copyright 2009 Johan Dahlin
-+dnl
-+dnl This file is free software; the author(s) gives unlimited
-+dnl permission to copy and/or distribute it, with or without
-+dnl modifications, as long as this notice is preserved.
-+dnl
-+
-+# serial 1
-+
-+m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
-+[
-+ AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
-+ AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
-+ AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
-+
-+ dnl enable/disable introspection
-+ m4_if([$2], [require],
-+ [dnl
-+ enable_introspection=yes
-+ ],[dnl
-+ AC_ARG_ENABLE(introspection,
-+ AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
-+ [Enable introspection for this build]),,
-+ [enable_introspection=auto])
-+ ])dnl
-+
-+ AC_MSG_CHECKING([for gobject-introspection])
-+
-+ dnl presence/version checking
-+ AS_CASE([$enable_introspection],
-+ [no], [dnl
-+ found_introspection="no (disabled, use --enable-introspection to enable)"
-+ ],dnl
-+ [yes],[dnl
-+ PKG_CHECK_EXISTS([gobject-introspection-1.0],,
-+ AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
-+ PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
-+ found_introspection=yes,
-+ AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
-+ ],dnl
-+ [auto],[dnl
-+ PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
-+ dnl Canonicalize enable_introspection
-+ enable_introspection=$found_introspection
-+ ],dnl
-+ [dnl
-+ AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
-+ ])dnl
-+
-+ AC_MSG_RESULT([$found_introspection])
-+
-+ INTROSPECTION_SCANNER=
-+ INTROSPECTION_COMPILER=
-+ INTROSPECTION_GENERATE=
-+ INTROSPECTION_GIRDIR=
-+ INTROSPECTION_TYPELIBDIR=
-+ if test "x$found_introspection" = "xyes"; then
-+ INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
-+ INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
-+ INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
-+ INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
-+ INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
-+ INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
-+ INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
-+ INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
-+ fi
-+ AC_SUBST(INTROSPECTION_SCANNER)
-+ AC_SUBST(INTROSPECTION_COMPILER)
-+ AC_SUBST(INTROSPECTION_GENERATE)
-+ AC_SUBST(INTROSPECTION_GIRDIR)
-+ AC_SUBST(INTROSPECTION_TYPELIBDIR)
-+ AC_SUBST(INTROSPECTION_CFLAGS)
-+ AC_SUBST(INTROSPECTION_LIBS)
-+ AC_SUBST(INTROSPECTION_MAKEFILE)
-+
-+ AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
-+])
-+
-+
-+dnl Usage:
-+dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
-+
-+AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
-+[
-+ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
-+])
-+
-+dnl Usage:
-+dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
-+
-+
-+AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
-+[
-+ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
-+])
diff --git a/patches/libgudev-230/series b/patches/libgudev-230/series
deleted file mode 100644
index ad87bca53..000000000
--- a/patches/libgudev-230/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Prepare-to-check-for-an-older-UDEV.patch
-# e9296de8eff5967b176ee4e6b0558fdc - git-ptx-patches magic
diff --git a/patches/gtk+-2.24.32/autogen.sh b/patches/libkcapi-1.5.0/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/gtk+-2.24.32/autogen.sh
+++ b/patches/libkcapi-1.5.0/autogen.sh
diff --git a/patches/liboil-0.3.16/0001-liboil-don-t-check-for-assembler-options-and-add-com.patch b/patches/liboil-0.3.16/0001-liboil-don-t-check-for-assembler-options-and-add-com.patch
deleted file mode 100644
index 275c83ea2..000000000
--- a/patches/liboil-0.3.16/0001-liboil-don-t-check-for-assembler-options-and-add-com.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Mon, 4 Aug 2014 17:45:42 +0200
-Subject: [PATCH] liboil: don't check for assembler options and add compiler
- options
-
-Checking for "-Wa,-mfpu=vfp" and then adding "-mfpu=vfp" os of course nonsense.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- configure.ac | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index a657101..38bd436 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -188,10 +188,10 @@ if test x$HAVE_GCC_ASM = xyes -a x$HAVE_POWERPC = xyes ; then
- fi
-
- if test x$HAVE_GCC_ASM = xyes -a x$HAVE_ARM = xyes ; then
-- AS_COMPILER_FLAG(["-Wa,-mfpu=vfp"],
-+ AS_COMPILER_FLAG(["-mfpu=vfp"],
- [VFP_CFLAGS="$VFP_CFLAGS -mfpu=vfp"],
- true)
-- #AS_COMPILER_FLAG(["-Wa,-mfloat-abi=softfp"],
-+ #AS_COMPILER_FLAG(["-mfloat-abi=softfp"],
- # [VFP_CFLAGS="$VFP_CFLAGS -mfloat-abi=softfp"],
- # true)
- fi
diff --git a/patches/liboil-0.3.16/0002-fix-unaligned-access-whitelist-check.patch b/patches/liboil-0.3.16/0002-fix-unaligned-access-whitelist-check.patch
deleted file mode 100644
index 86f6d76df..000000000
--- a/patches/liboil-0.3.16/0002-fix-unaligned-access-whitelist-check.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Mon, 4 Aug 2014 17:47:38 +0200
-Subject: [PATCH] fix unaligned access whitelist check
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- m4/as-unaligned-access.m4 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/m4/as-unaligned-access.m4 b/m4/as-unaligned-access.m4
-index ede8bd2..3496505 100644
---- a/m4/as-unaligned-access.m4
-+++ b/m4/as-unaligned-access.m4
-@@ -4,7 +4,7 @@ dnl check if unaligned memory access works correctly
- AC_DEFUN([AS_UNALIGNED_ACCESS], [
- AC_MSG_CHECKING([if unaligned memory access works correctly])
- if test x"$as_cv_unaligned_access" = x ; then
-- case $host in
-+ case "$host_cpu" in
- alpha*|arm*|hp*|mips*|sh*|sparc*|ia64*)
- _AS_ECHO_N([(blacklisted) ])
- as_cv_unaligned_access=no
diff --git a/patches/liboil-0.3.16/autogen.sh b/patches/liboil-0.3.16/autogen.sh
deleted file mode 100755
index 9a2ff4e99..000000000
--- a/patches/liboil-0.3.16/autogen.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-
-set -e
-
-aclocal $ACLOCAL_FLAGS
-
-am_macro_dir=m4 \
-libtoolize \
- --force \
- --copy
-
-autoreconf \
- --force \
- --install \
- --warnings=cross \
- --warnings=syntax \
- --warnings=obsolete \
- --warnings=unsupported
-
diff --git a/patches/liboil-0.3.16/series b/patches/liboil-0.3.16/series
deleted file mode 100644
index d5a53b3f8..000000000
--- a/patches/liboil-0.3.16/series
+++ /dev/null
@@ -1,5 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-liboil-don-t-check-for-assembler-options-and-add-com.patch
-0002-fix-unaligned-access-whitelist-check.patch
-# a45ce1b5bbcfaf2b379d89609c26c1d1 - git-ptx-patches magic
diff --git a/patches/libpcap-1.8.1/0100-build-and-install-share-lib-only.patch b/patches/libpcap-1.10.4/0100-build-and-install-share-lib-only.patch
index 85ce7015d..cae5cc2b2 100644
--- a/patches/libpcap-1.8.1/0100-build-and-install-share-lib-only.patch
+++ b/patches/libpcap-1.10.4/0100-build-and-install-share-lib-only.patch
@@ -12,24 +12,24 @@ Signed-off-by: Alexander Aring <alex.aring@gmail.com>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile.in b/Makefile.in
-index e71d973ca448..e0debadeb837 100644
+index 54246586828d..4c6768d6d764 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -358,7 +358,7 @@ EXTRA_DIST = \
- Win32/Prj/wpcap.vcxproj \
- Win32/Prj/wpcap.vcxproj.filters
+@@ -429,7 +429,7 @@ RELEASE_FILES = $(COMMON_C_SRC) $(HDR) $(MAN1) $(MAN3PCAP_EXPAND) \
+ $(MAN3PCAP_NOEXPAND) $(MANFILE) $(MANMISC) $(EXTRA_DIST) \
+ $(TEST_DIST)
--all: libpcap.a shared pcap-config
-+all: shared pcap-config
+-all: libpcap.a shared $(BUILD_RPCAPD) libpcap.pc pcap-config
++all: shared $(BUILD_RPCAPD) libpcap.pc pcap-config
libpcap.a: $(OBJ)
@rm -f $@
-@@ -550,7 +550,7 @@ selpolltest: tests/selpolltest.c libpcap.a
- valgrindtest: tests/valgrindtest.c libpcap.a
- $(CC) $(FULL_CFLAGS) -I. -L. -o valgrindtest $(srcdir)/tests/valgrindtest.c libpcap.a $(LIBS)
+@@ -615,7 +615,7 @@ testprogs: FORCE
--install: install-shared install-archive pcap-config
-+install: install-shared pcap-config
+ FORCE:
+
+-install: install-shared install-archive libpcap.pc pcap-config @INSTALL_RPCAPD@
++install: install-shared libpcap.pc pcap-config @INSTALL_RPCAPD@
[ -d $(DESTDIR)$(libdir) ] || \
(mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir))
[ -d $(DESTDIR)$(includedir) ] || \
diff --git a/patches/libpcap-1.8.1/0101-pcap-config-add-SYSROOT-support.patch b/patches/libpcap-1.10.4/0101-pcap-config-add-SYSROOT-support.patch
index 51cf6c554..da6d1d62a 100644
--- a/patches/libpcap-1.8.1/0101-pcap-config-add-SYSROOT-support.patch
+++ b/patches/libpcap-1.10.4/0101-pcap-config-add-SYSROOT-support.patch
@@ -4,14 +4,14 @@ Subject: [PATCH] pcap-config: add SYSROOT support
Signed-off-by: Alexander Aring <alex.aring@gmail.com>
---
- pcap-config.in | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
+ pcap-config.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/pcap-config.in b/pcap-config.in
-index 206be3b4a644..50b05f53d32e 100644
+index 6039ef33b324..505f7515f2f7 100644
--- a/pcap-config.in
+++ b/pcap-config.in
-@@ -6,8 +6,8 @@
+@@ -10,8 +10,8 @@
#
prefix="@prefix@"
exec_prefix="@exec_prefix@"
@@ -19,15 +19,6 @@ index 206be3b4a644..50b05f53d32e 100644
-libdir="@libdir@"
+includedir="${SYSROOT}@includedir@"
+libdir="${SYSROOT}@libdir@"
- V_RPATH_OPT="@V_RPATH_OPT@"
LIBS="@LIBS@"
-
-@@ -41,7 +41,7 @@ then
- #
- # If libdir isn't /usr/lib, add it to the run-time linker path.
- #
-- if [ "$libdir" != "/usr/lib" ]
-+ if [ "$libdir" != "${SYSROOT}/usr/lib" ]
- then
- RPATH=$V_RPATH_OPT$libdir
- fi
+ LIBS_STATIC="@LIBS_STATIC@"
+ VERSION="@PACKAGE_VERSION@"
diff --git a/patches/libpcap-1.8.1/series b/patches/libpcap-1.10.4/series
index 7e01f0602..897b78f91 100644
--- a/patches/libpcap-1.8.1/series
+++ b/patches/libpcap-1.10.4/series
@@ -1,9 +1,7 @@
# generated by git-ptx-patches
#tag:base --start-number 1
#tag:upstream --start-number 1
-0001-Fix-compilation-if-INET6-isn-t-defined.patch
#tag:ptx --start-number 100
0100-build-and-install-share-lib-only.patch
0101-pcap-config-add-SYSROOT-support.patch
-0102-configure.ac-allow-specifying-path-for-libnl3.patch
-# 363b6cba4073355bfab4a58107b4a1da - git-ptx-patches magic
+# a0b9f6d3f3bc0054c50d9df9a57fc140 - git-ptx-patches magic
diff --git a/patches/libpcap-1.8.1/0001-Fix-compilation-if-INET6-isn-t-defined.patch b/patches/libpcap-1.8.1/0001-Fix-compilation-if-INET6-isn-t-defined.patch
deleted file mode 100644
index 7607752e1..000000000
--- a/patches/libpcap-1.8.1/0001-Fix-compilation-if-INET6-isn-t-defined.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From: Guy Harris <guy@alum.mit.edu>
-Date: Tue, 17 Jan 2017 02:58:52 -0800
-Subject: [PATCH] Fix compilation if INET6 isn't defined.
-
-Addresses GitHub issue #541, but differently from the pull request (it
-defines gen_gateway() with a function prototype rather than using a
-pre-prototype-style definition).
----
- gencode.c | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/gencode.c b/gencode.c
-index a887f2730f7a..60494e3de974 100644
---- a/gencode.c
-+++ b/gencode.c
-@@ -523,7 +523,8 @@ static struct block *gen_host6(compiler_state_t *, struct in6_addr *,
- struct in6_addr *, int, int, int);
- #endif
- #ifndef INET6
--static struct block *gen_gateway(const u_char *, bpf_u_int32 **, int, int);
-+static struct block *gen_gateway(compiler_state_t *, const u_char *,
-+ bpf_u_int32 **, int, int);
- #endif
- static struct block *gen_ipfrag(compiler_state_t *);
- static struct block *gen_portatom(compiler_state_t *, int, bpf_int32);
-@@ -690,7 +691,9 @@ pcap_compile(pcap_t *p, struct bpf_program *program,
- }
- initchunks(&cstate);
- cstate.no_optimize = 0;
-+#ifdef INET6
- cstate.ai = NULL;
-+#endif
- cstate.ic.root = NULL;
- cstate.ic.cur_mark = 0;
- cstate.bpf_pcap = p;
-@@ -4902,11 +4905,8 @@ gen_host6(compiler_state_t *cstate, struct in6_addr *addr,
-
- #ifndef INET6
- static struct block *
--gen_gateway(eaddr, alist, proto, dir)
-- const u_char *eaddr;
-- bpf_u_int32 **alist;
-- int proto;
-- int dir;
-+gen_gateway(compiler_state_t *cstate, const u_char *eaddr, bpf_u_int32 **alist,
-+ int proto, int dir)
- {
- struct block *b0, *b1, *tmp;
-
-@@ -6470,7 +6470,7 @@ gen_scode(compiler_state_t *cstate, const char *name, struct qual q)
- alist = pcap_nametoaddr(name);
- if (alist == NULL || *alist == NULL)
- bpf_error(cstate, "unknown host '%s'", name);
-- b = gen_gateway(eaddr, alist, proto, dir);
-+ b = gen_gateway(cstate, eaddr, alist, proto, dir);
- free(eaddr);
- return b;
- #else
diff --git a/patches/libpcap-1.8.1/0102-configure.ac-allow-specifying-path-for-libnl3.patch b/patches/libpcap-1.8.1/0102-configure.ac-allow-specifying-path-for-libnl3.patch
deleted file mode 100644
index 3e56d90c9..000000000
--- a/patches/libpcap-1.8.1/0102-configure.ac-allow-specifying-path-for-libnl3.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Wed, 29 Jan 2014 09:17:52 +0100
-Subject: [PATCH] configure.ac: allow specifying path for libnl3
-
----
- configure.ac | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index da2f940da963..8a3ab56d865c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -511,7 +511,11 @@ linux)
- AC_DEFINE(HAVE_LIBNL_3_x,1,[if libnl exists and is version 3.x])
- AC_DEFINE(HAVE_LIBNL_NLE,1,[libnl has NLE_FAILURE])
- AC_DEFINE(HAVE_LIBNL_SOCKETS,1,[libnl has new-style socket api])
-- V_INCLS="$V_INCLS ${incdir}"
-+ if test x$with_libnl != xyes ; then
-+ V_INCLS="$V_INCLS -I${with_libnl}/include/libnl3"
-+ else
-+ V_INCLS="$V_INCLS ${incdir}"
-+ fi
- have_any_nl="yes"
- ],[], ${incdir} ${libnldir} -lnl-genl-3 -lnl-3 )
-
diff --git a/patches/libseccomp-2.5.1/0001-run-time-use-a-broadly-supported-shell-interpreter.patch b/patches/libseccomp-2.5.5/0001-run-time-use-a-broadly-supported-shell-interpreter.patch
index 9e4b6d350..9e4b6d350 100644
--- a/patches/libseccomp-2.5.1/0001-run-time-use-a-broadly-supported-shell-interpreter.patch
+++ b/patches/libseccomp-2.5.5/0001-run-time-use-a-broadly-supported-shell-interpreter.patch
diff --git a/patches/libseccomp-2.5.1/series b/patches/libseccomp-2.5.5/series
index d492518bb..d492518bb 100644
--- a/patches/libseccomp-2.5.1/series
+++ b/patches/libseccomp-2.5.5/series
diff --git a/patches/libsndfile-1.0.25/0001-configure.ac-use-default-largefile-macro.patch b/patches/libsndfile-1.0.25/0001-configure.ac-use-default-largefile-macro.patch
deleted file mode 100644
index 7dbc92bc3..000000000
--- a/patches/libsndfile-1.0.25/0001-configure.ac-use-default-largefile-macro.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sun, 12 Jan 2014 18:36:22 +0100
-Subject: [PATCH] configure.ac: use default largefile macro
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 20ba55a..72dccac 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -200,7 +200,7 @@ case "$host_os" in
- pre_largefile_sizeof_off_t=$ac_cv_sizeof_off_t
- unset ac_cv_sizeof_off_t
-
-- AC_SYS_EXTRA_LARGEFILE
-+ AC_SYS_LARGEFILE
-
- if test "x$ac_cv_sys_largefile_CFLAGS" = "xno" ; then
- ac_cv_sys_largefile_CFLAGS=""
diff --git a/patches/libsndfile-1.0.25/autogen.sh b/patches/libsndfile-1.0.25/autogen.sh
deleted file mode 100755
index cf66cf33c..000000000
--- a/patches/libsndfile-1.0.25/autogen.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-
-set -e
-
-aclocal $ACLOCAL_FLAGS
-
-libtoolize \
- --force \
- --copy
-
-autoreconf \
- --include=M4 \
- --force \
- --install \
- --warnings=cross \
- --warnings=syntax \
- --warnings=obsolete \
- --warnings=unsupported
-
diff --git a/patches/libsndfile-1.0.25/series b/patches/libsndfile-1.0.25/series
deleted file mode 100644
index 2c7bf05de..000000000
--- a/patches/libsndfile-1.0.25/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-configure.ac-use-default-largefile-macro.patch
-# b26d82dddc9376bd2a2696502b2b4dd2 - git-ptx-patches magic
diff --git a/patches/libsoup-2.66.2/0001-meson-allow-enabling-gir-when-cross-compiling.patch b/patches/libsoup-2.66.2/0001-meson-allow-enabling-gir-when-cross-compiling.patch
deleted file mode 100644
index 5acb5bab9..000000000
--- a/patches/libsoup-2.66.2/0001-meson-allow-enabling-gir-when-cross-compiling.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Thu, 8 Aug 2019 14:56:33 +0200
-Subject: [PATCH] meson: allow enabling gir when cross-compiling
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index 89837c1553c6..759821019b29 100644
---- a/meson.build
-+++ b/meson.build
-@@ -290,7 +290,7 @@ enable_gnome = get_option('gnome') and host_machine.system() != 'windows'
- # FIXME: once we start to require meson 0.49.0+ and gnome-introspection 1.58.1+
- # the we can enable the introspection even for the static build. See
- # https://github.com/mesonbuild/meson/pull/4478.
--enable_introspection = get_option('introspection') and find_program('g-ir-scanner', required: false).found() and not meson.is_cross_build() and not is_static_library
-+enable_introspection = get_option('introspection') and find_program('g-ir-scanner', required: false).found() and not is_static_library
-
- ############
- # Vala API #
diff --git a/patches/libsoup-2.66.2/series b/patches/libsoup-2.66.2/series
deleted file mode 100644
index 305ed6fe0..000000000
--- a/patches/libsoup-2.66.2/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-meson-allow-enabling-gir-when-cross-compiling.patch
-# b5e8cd63bf616136df653d409ae9e0f9 - git-ptx-patches magic
diff --git a/patches/libtahu-1.0.1/0001-c-core-Makefile-Fixes-for-parallel-make-and-make-lib.patch b/patches/libtahu-1.0.1/0001-c-core-Makefile-Fixes-for-parallel-make-and-make-lib.patch
new file mode 100644
index 000000000..602fee06d
--- /dev/null
+++ b/patches/libtahu-1.0.1/0001-c-core-Makefile-Fixes-for-parallel-make-and-make-lib.patch
@@ -0,0 +1,34 @@
+From 6f70eff53d370b96070d1362ebcd4ce153b2a172 Mon Sep 17 00:00:00 2001
+From: Ian Abbott <abbotti@mev.co.uk>
+Date: Fri, 17 Feb 2023 10:41:20 +0000
+Subject: [PATCH] c/core/Makefile: Fixes for parallel make and make
+ lib/libtahu.so
+
+Change $(TEST) target to depend on the built library files.
+
+Change $(DNAME) target rules to create the lib directory.
+
+Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
+---
+ c/core/Makefile | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/c/core/Makefile b/c/core/Makefile
+index 8243a67..17c5e3d 100644
+--- a/c/core/Makefile
++++ b/c/core/Makefile
+@@ -36,9 +36,10 @@ $(SNAME): $(OBJ)
+
+ $(DNAME): LDFLAGS += -shared
+ $(DNAME): $(OBJ)
++ mkdir -p lib
+ $(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS)
+
+-$(TEST):
++$(TEST): $(SNAME) $(DNAME)
+ $(CC) $(CFLAGS) -o test/test_static $(TEST_OBJ) $(SNAME) -lmosquitto
+ $(CC) $(CFLAGS) $(LD_TEST) -o test/test_dynamic $(TEST_OBJ) -l$(NAME) -lmosquitto
+
+--
+2.39.1
+
diff --git a/patches/libtahu-1.0.1/0002-tahu.h-Do-not-define-SPARKPLUG_DEBUG.patch b/patches/libtahu-1.0.1/0002-tahu.h-Do-not-define-SPARKPLUG_DEBUG.patch
new file mode 100644
index 000000000..417cec098
--- /dev/null
+++ b/patches/libtahu-1.0.1/0002-tahu.h-Do-not-define-SPARKPLUG_DEBUG.patch
@@ -0,0 +1,28 @@
+From cff7b099c23937bad205833ea1e4e8278690eb21 Mon Sep 17 00:00:00 2001
+From: Ian Abbott <abbotti@mev.co.uk>
+Date: Fri, 17 Feb 2023 14:40:58 +0000
+Subject: [PATCH] tahu.h: Do not define SPARKPLUG_DEBUG
+
+If SPARKPLUG_DEBUG is defined in tahu.c, the library will write lots of
+debug messages to standard output. That's OK for experimentation, but
+not for a live system, so comment out the macro definition.
+---
+ c/core/include/tahu.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/c/core/include/tahu.h b/c/core/include/tahu.h
+index e599146..03fbaaa 100644
+--- a/c/core/include/tahu.h
++++ b/c/core/include/tahu.h
+@@ -29,7 +29,7 @@ extern "C" {
+ #endif
+
+ // Enable/disable debug messages
+-#define SPARKPLUG_DEBUG 1
++//#define SPARKPLUG_DEBUG 1
+
+ #ifdef SPARKPLUG_DEBUG
+ #define DEBUG_PRINT(...) printf(__VA_ARGS__)
+--
+2.39.1
+
diff --git a/patches/libtahu-1.0.1/series b/patches/libtahu-1.0.1/series
new file mode 100644
index 000000000..31edd1b86
--- /dev/null
+++ b/patches/libtahu-1.0.1/series
@@ -0,0 +1,2 @@
+0001-c-core-Makefile-Fixes-for-parallel-make-and-make-lib.patch
+0002-tahu.h-Do-not-define-SPARKPLUG_DEBUG.patch
diff --git a/patches/libtool-2.4.6/0001-libool.m4-add-ARFLAGS-variable.patch b/patches/libtool-2.4.6/0001-libool.m4-add-ARFLAGS-variable.patch
deleted file mode 100644
index 52e21f513..000000000
--- a/patches/libtool-2.4.6/0001-libool.m4-add-ARFLAGS-variable.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From: Pavel Raiskup <praiskup@redhat.com>
-Date: Fri, 17 Apr 2015 15:05:42 +0200
-Subject: [PATCH] libool.m4: add ARFLAGS variable
-
-Libtool has used $AR_FLAGS since 2000-05-29 commit
-8300de4c54e6f04f0d, Automake ARFLAGS since 2003-04-06 commit
-a71b3490639831ca. Even though ARFLAGS is younger, it sounds like
-better name according GNU Coding Standards.
-
-Related to bug#20082.
-
-* m4/libtool.m4 (_LT_PROG_AR): Copy ARFLAGS value into AR_FLAGS
-variable if AR_FLAGS is not set. Add new _LT_DECL'ed variable
-'lt_ar_flags' to keep the configure-time value of AR_FLAGS. The
-new 'lt_ar_flags' is to be used as the default value for AR_FLAGS
-at libtool-runtime.
-* NEWS: Document.
----
- NEWS | 6 ++++++
- m4/libtool.m4 | 17 +++++++++++++++--
- 2 files changed, 21 insertions(+), 2 deletions(-)
-
-diff --git a/NEWS b/NEWS
-index d7ca4341c393..590ce15ed5cd 100644
---- a/NEWS
-+++ b/NEWS
-@@ -140,6 +140,12 @@ NEWS - list of user-visible changes between releases of GNU Libtool
-
- make check-local TESTSUITEFLAGS='-k "!expensive"'
-
-+** New features:
-+
-+ - Libtool script now supports (configure-time and runtime) ARFLAGS
-+ variable, which obsoletes AR_FLAGS. This is due to naming conventions
-+ among other *FLAGS and to be consistent with Automake's ARFLAGS.
-+
- ** Bug fixes:
-
- - Fix a long-standing latent bug in autom4te include path for autotests
-diff --git a/m4/libtool.m4 b/m4/libtool.m4
-index a3bc337b79ad..2d6bda98fc92 100644
---- a/m4/libtool.m4
-+++ b/m4/libtool.m4
-@@ -1493,9 +1493,22 @@ need_locks=$enable_libtool_lock
- m4_defun([_LT_PROG_AR],
- [AC_CHECK_TOOLS(AR, [ar], false)
- : ${AR=ar}
--: ${AR_FLAGS=cru}
- _LT_DECL([], [AR], [1], [The archiver])
--_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
-+
-+# Use ARFLAGS variable as AR's operation code to sync the variable naming with
-+# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have
-+# higher priority because thats what people were doing historically (setting
-+# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS
-+# variable obsoleted/removed.
-+
-+test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cru}
-+lt_ar_flags=$AR_FLAGS
-+_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)])
-+
-+# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override
-+# by AR_FLAGS because that was never working and AR_FLAGS is about to die.
-+_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}],
-+ [Flags to create an archive])
-
- AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
- [lt_cv_ar_at_file=no
diff --git a/patches/libtool-2.4.6/0002-ARFLAGS-use-cr-instead-of-cru-by-default.patch b/patches/libtool-2.4.6/0002-ARFLAGS-use-cr-instead-of-cru-by-default.patch
deleted file mode 100644
index a137845e8..000000000
--- a/patches/libtool-2.4.6/0002-ARFLAGS-use-cr-instead-of-cru-by-default.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From: Pavel Raiskup <praiskup@redhat.com>
-Date: Fri, 17 Apr 2015 16:54:58 +0200
-Subject: [PATCH] ARFLAGS: use 'cr' instead of 'cru' by default
-
-In some GNU/Linux distributions people started to compile 'ar'
-binary with --enable-deterministic-archives (binutils project).
-That, however, in combination with our previous long time working
-default AR_FLAGS=cru causes warnings on such installations:
-ar: `u' modifier ignored since `D' is the default (see `U')
-
-The 'u' option (at least with GNU binutils) did small optimization
-during repeated builds because it instructed 'ar' to not
-open/close unchanged *.o files and to rather read their contents
-from old archive file. However, its removal should not cause a
-big performance hit for usual workflows.
-
-Distributions started using --enable-deterministic-archives
-knowing that it would disable the 'u', just to rather have a bit
-more deterministic builds.
-
-Also, to justify this change a bit more, keeping 'u' in ARFLAGS
-could only result in many per-project changes to override
-Libtool's ARFLAGS default, just to silent such warnings.
-
-Fixes bug#19967. Reported by Eric Blake.
-
-* m4/libtool.m4 (_LT_PROG_AR): Default AR_FLAGS to 'cr'.
-(_LT_REQUIRED_DARWIN_CHECKS): Use $AR_FLAGS instead 'cru' string.
-* doc/libtool.texi: Do 's/ar cru/ar cr/' in whole documentation.
-* NEWS: Document.
----
- NEWS | 4 ++++
- doc/libtool.texi | 10 +++++-----
- m4/libtool.m4 | 6 +++---
- 3 files changed, 12 insertions(+), 8 deletions(-)
-
-diff --git a/NEWS b/NEWS
-index 590ce15ed5cd..2afc01ef38a9 100644
---- a/NEWS
-+++ b/NEWS
-@@ -146,6 +146,10 @@ NEWS - list of user-visible changes between releases of GNU Libtool
- variable, which obsoletes AR_FLAGS. This is due to naming conventions
- among other *FLAGS and to be consistent with Automake's ARFLAGS.
-
-+** Important incompatible changes:
-+
-+ - Libtool changed ARFLAGS/AR_FLAGS default from 'cru' to 'cr'.
-+
- ** Bug fixes:
-
- - Fix a long-standing latent bug in autom4te include path for autotests
-diff --git a/doc/libtool.texi b/doc/libtool.texi
-index 0298627c2464..4c664bb2ab05 100644
---- a/doc/libtool.texi
-+++ b/doc/libtool.texi
-@@ -602,7 +602,7 @@ Without libtool, the programmer would invoke the @command{ar} command to
- create a static library:
-
- @example
--burger$ @kbd{ar cru libhello.a hello.o foo.o}
-+burger$ @kbd{ar cr libhello.a hello.o foo.o}
- burger$
- @end example
-
-@@ -632,7 +632,7 @@ libtool are the same ones you would use to produce an executable named
- a23$ @kbd{libtool --mode=link gcc -g -O -o libhello.la foo.o hello.o}
- *** Warning: Linking the shared library libhello.la against the
- *** non-libtool objects foo.o hello.o is not portable!
--ar cru .libs/libhello.a
-+ar cr .libs/libhello.a
- ranlib .libs/libhello.a
- creating libhello.la
- (cd .libs && rm -f libhello.la && ln -s ../libhello.la libhello.la)
-@@ -662,7 +662,7 @@ archive, not a shared library (@pxref{Static libraries}).}:
- @example
- a23$ @kbd{libtool --mode=link gcc -g -O -o libhello.la foo.lo hello.lo \
- -rpath /usr/local/lib -lm}
--ar cru @value{objdir}/libhello.a foo.o hello.o
-+ar cr @value{objdir}/libhello.a foo.o hello.o
- ranlib @value{objdir}/libhello.a
- creating libhello.la
- (cd @value{objdir} && rm -f libhello.la && ln -s ../libhello.la libhello.la)
-@@ -676,7 +676,7 @@ burger$ @kbd{libtool --mode=link gcc -g -O -o libhello.la foo.lo hello.lo \
- -rpath /usr/local/lib -lm}
- rm -fr @value{objdir}/libhello.a @value{objdir}/libhello.la
- ld -Bshareable -o @value{objdir}/libhello.so.0.0 @value{objdir}/foo.o @value{objdir}/hello.o -lm
--ar cru @value{objdir}/libhello.a foo.o hello.o
-+ar cr @value{objdir}/libhello.a foo.o hello.o
- ranlib @value{objdir}/libhello.a
- creating libhello.la
- (cd @value{objdir} && rm -f libhello.la && ln -s ../libhello.la libhello.la)
-@@ -6001,7 +6001,7 @@ in cases where it is necessary.
- @subsection Archivers
-
- On all known systems, building a static library can be accomplished by
--running @kbd{ar cru lib@var{name}.a @var{obj1}.o @var{obj2}.o @dots{}},
-+running @kbd{ar cr lib@var{name}.a @var{obj1}.o @var{obj2}.o @dots{}},
- where the @file{.a} file is the output library, and each @file{.o} file is an
- object file.
-
-diff --git a/m4/libtool.m4 b/m4/libtool.m4
-index 2d6bda98fc92..3335def6d847 100644
---- a/m4/libtool.m4
-+++ b/m4/libtool.m4
-@@ -1042,8 +1042,8 @@ int forced_loaded() { return 2;}
- _LT_EOF
- echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
-- echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
-- $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
-+ echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
-+ $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
- echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
- $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
- cat > conftest.c << _LT_EOF
-@@ -1501,7 +1501,7 @@ _LT_DECL([], [AR], [1], [The archiver])
- # ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS
- # variable obsoleted/removed.
-
--test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cru}
-+test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}
- lt_ar_flags=$AR_FLAGS
- _LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)])
-
diff --git a/patches/libtool-2.4.6/0003-libtool-fix-GCC-linking-with-specs.patch b/patches/libtool-2.4.6/0003-libtool-fix-GCC-linking-with-specs.patch
deleted file mode 100644
index c40a2b711..000000000
--- a/patches/libtool-2.4.6/0003-libtool-fix-GCC-linking-with-specs.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From: Pavel Raiskup <praiskup@redhat.com>
-Date: Fri, 18 Sep 2015 10:36:43 +0200
-Subject: [PATCH] libtool: fix GCC linking with -specs=*
-
-References:
-https://bugzilla.redhat.com/show_bug.cgi?id=985592
-
-* build-aux/ltmain.in (func_mode_link): Pass -specs=*
-to the linker, Fedora uses this option for hardening.
-
-Signed-off-by: Pavel Raiskup <praiskup@redhat.com>
----
- build-aux/ltmain.in | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
-index d5cf07a63f59..0c40da06deb4 100644
---- a/build-aux/ltmain.in
-+++ b/build-aux/ltmain.in
-@@ -5360,10 +5360,12 @@ func_mode_link ()
- # -tp=* Portland pgcc target processor selection
- # --sysroot=* for sysroot support
- # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
-+ # -specs=* GCC specs files
- # -stdlib=* select c++ std lib with clang
- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
-- -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*)
-+ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
-+ -specs=*)
- func_quote_for_eval "$arg"
- arg=$func_quote_for_eval_result
- func_append compile_command " $arg"
diff --git a/patches/libtool-2.4.6/0004-libtool-fix-GCC-clang-linking-with-fsanitize.patch b/patches/libtool-2.4.6/0004-libtool-fix-GCC-clang-linking-with-fsanitize.patch
deleted file mode 100644
index 67e103ca3..000000000
--- a/patches/libtool-2.4.6/0004-libtool-fix-GCC-clang-linking-with-fsanitize.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
-Date: Sun, 18 Oct 2015 21:55:39 -0700
-Subject: [PATCH] libtool: fix GCC/clang linking with -fsanitize=*
-
-References:
-https://lists.gnu.org/archive/html/libtool/2014-04/msg00026.html
-
-* build-aux/ltmain.in (func_mode_link): Pass -fsanitize=* to the
-linker to allow trivial use of the clang address sanitizer.
-
-Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
-Copyright-paperwork-exempt: Yes
----
- build-aux/ltmain.in | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
-index 0c40da06deb4..d063aa44a486 100644
---- a/build-aux/ltmain.in
-+++ b/build-aux/ltmain.in
-@@ -5362,10 +5362,11 @@ func_mode_link ()
- # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
- # -specs=* GCC specs files
- # -stdlib=* select c++ std lib with clang
-+ # -fsanitize=* Clang/GCC memory and address sanitizer
- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
- -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
-- -specs=*)
-+ -specs=*|-fsanitize=*)
- func_quote_for_eval "$arg"
- arg=$func_quote_for_eval_result
- func_append compile_command " $arg"
diff --git a/patches/libtool-2.4.6/0005-libtool-pass-through-fuse-ld-flags.patch b/patches/libtool-2.4.6/0005-libtool-pass-through-fuse-ld-flags.patch
deleted file mode 100644
index e7c88c60c..000000000
--- a/patches/libtool-2.4.6/0005-libtool-pass-through-fuse-ld-flags.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Sat, 13 Feb 2016 02:14:29 -0500
-Subject: [PATCH] libtool: pass through -fuse-ld flags
-
-Starting with gcc-4.8, there's a -fuse-ld flag that can be used to
-select between bfd & gold. Make sure we pass it through to the
-linking stage.
-
-* build-aux/ltmain.in (func_mode_link): Pass -fuse-ld=* flags
-through.
-Copyright-paperwork-exempt: Yes
----
- build-aux/ltmain.in | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
-index d063aa44a486..14e45d0b9d07 100644
---- a/build-aux/ltmain.in
-+++ b/build-aux/ltmain.in
-@@ -5363,10 +5363,11 @@ func_mode_link ()
- # -specs=* GCC specs files
- # -stdlib=* select c++ std lib with clang
- # -fsanitize=* Clang/GCC memory and address sanitizer
-+ # -fuse-ld=* Linker select flags for GCC
- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
- -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
-- -specs=*|-fsanitize=*)
-+ -specs=*|-fsanitize=*|-fuse-ld=*)
- func_quote_for_eval "$arg"
- arg=$func_quote_for_eval_result
- func_append compile_command " $arg"
diff --git a/patches/libtool-2.4.6/series b/patches/libtool-2.4.6/series
deleted file mode 100644
index c0b3d421b..000000000
--- a/patches/libtool-2.4.6/series
+++ /dev/null
@@ -1,8 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-libool.m4-add-ARFLAGS-variable.patch
-0002-ARFLAGS-use-cr-instead-of-cru-by-default.patch
-0003-libtool-fix-GCC-linking-with-specs.patch
-0004-libtool-fix-GCC-clang-linking-with-fsanitize.patch
-0005-libtool-pass-through-fuse-ld-flags.patch
-# 55967635b8c962a56e9ee2fd8dc06f7d - git-ptx-patches magic
diff --git a/patches/libtremor-1.0.3/0001-HACK-configure.in-remove-extended-OGG-check.patch b/patches/libtremor-2018-03-19-g7c30a6634619/0001-HACK-configure.in-remove-extended-OGG-check.patch
index d0a40ef2a..5d17c6e9a 100644
--- a/patches/libtremor-1.0.3/0001-HACK-configure.in-remove-extended-OGG-check.patch
+++ b/patches/libtremor-2018-03-19-g7c30a6634619/0001-HACK-configure.in-remove-extended-OGG-check.patch
@@ -13,7 +13,7 @@ Tested-by: Juergen Beisert <jbe@pengutronix.de>
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/configure.in b/configure.in
-index e7f5690..6eaf6e4 100644
+index e7f56900295d..6eaf6e418363 100644
--- a/configure.in
+++ b/configure.in
@@ -119,11 +119,7 @@ fi
diff --git a/patches/libtremor-2018-03-19-g7c30a6634619/0002-Only-enable-ARM-assember-on-armel.patch b/patches/libtremor-2018-03-19-g7c30a6634619/0002-Only-enable-ARM-assember-on-armel.patch
new file mode 100644
index 000000000..19f267659
--- /dev/null
+++ b/patches/libtremor-2018-03-19-g7c30a6634619/0002-Only-enable-ARM-assember-on-armel.patch
@@ -0,0 +1,30 @@
+From: Sebastian Ramacher <sramacher@debian.org>
+Date: Sat, 12 Sep 2020 17:48:41 +0200
+Subject: [PATCH] Only enable ARM assember on armel
+
+---
+ configure.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 6eaf6e418363..a33613e34aab 100644
+--- a/configure.in
++++ b/configure.in
+@@ -48,7 +48,7 @@ cflags_save="$CFLAGS"
+ ldflags_save="$LDFLAGS"
+ if test -z "$GCC"; then
+ case $host in
+- arm-*-*)
++ arm-*-gnueabi)
+ DEBUG="-g -D_ARM_ASSEM_"
+ CFLAGS="-O -D_ARM_ASSEM_"
+ PROFILE="-p -g -O -D_ARM_ASSEM_" ;;
+@@ -60,7 +60,7 @@ if test -z "$GCC"; then
+ else
+
+ case $host in
+- arm-*-*)
++ arm-*-gnueabi)
+ DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char -D_ARM_ASSEM_"
+ CFLAGS="-O2 -D_ARM_ASSEM_ -fsigned-char"
+ PROFILE="-W -pg -g -O2 -D_ARM_ASSEM_ -fsigned-char -fno-inline-functions";;
diff --git a/patches/ima-evm-utils-1.1/autogen.sh b/patches/libtremor-2018-03-19-g7c30a6634619/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/ima-evm-utils-1.1/autogen.sh
+++ b/patches/libtremor-2018-03-19-g7c30a6634619/autogen.sh
diff --git a/patches/libtremor-1.0.3/series b/patches/libtremor-2018-03-19-g7c30a6634619/series
index 75ee87212..12c69a94c 100644
--- a/patches/libtremor-1.0.3/series
+++ b/patches/libtremor-2018-03-19-g7c30a6634619/series
@@ -1,4 +1,5 @@
# generated by git-ptx-patches
#tag:base --start-number 1
0001-HACK-configure.in-remove-extended-OGG-check.patch
-# 8b861fdf14ed5f27dce4c67d75786cf3 - git-ptx-patches magic
+0002-Only-enable-ARM-assember-on-armel.patch
+# bf1ffccccf3c1c9653f3f1c13bad6006 - git-ptx-patches magic
diff --git a/patches/libunwind-1.4.0/0001-Fix-compilation-with-fno-common.patch b/patches/libunwind-1.4.0/0001-Fix-compilation-with-fno-common.patch
deleted file mode 100644
index 250114d2e..000000000
--- a/patches/libunwind-1.4.0/0001-Fix-compilation-with-fno-common.patch
+++ /dev/null
@@ -1,441 +0,0 @@
-From: Yichao Yu <yyc1992@gmail.com>
-Date: Tue, 31 Mar 2020 00:43:32 -0400
-Subject: [PATCH] Fix compilation with -fno-common.
-
-Making all other archs consistent with IA64 which should not have this problem.
-Also move the FIXME to the correct place.
-
-Also add some minimum comments about this...
----
- src/aarch64/Ginit.c | 15 +++++++--------
- src/arm/Ginit.c | 15 +++++++--------
- src/coredump/_UPT_get_dyn_info_list_addr.c | 5 +++++
- src/hppa/Ginit.c | 15 +++++++--------
- src/ia64/Ginit.c | 1 +
- src/mi/Gfind_dynamic_proc_info.c | 1 +
- src/mips/Ginit.c | 15 +++++++--------
- src/ppc32/Ginit.c | 11 +++++++----
- src/ppc64/Ginit.c | 11 +++++++----
- src/ptrace/_UPT_get_dyn_info_list_addr.c | 5 +++++
- src/s390x/Ginit.c | 15 +++++++--------
- src/sh/Ginit.c | 15 +++++++--------
- src/tilegx/Ginit.c | 15 +++++++--------
- src/x86/Ginit.c | 15 +++++++--------
- src/x86_64/Ginit.c | 15 +++++++--------
- 15 files changed, 89 insertions(+), 80 deletions(-)
-
-diff --git a/src/aarch64/Ginit.c b/src/aarch64/Ginit.c
-index dec235c82908..35389762f27e 100644
---- a/src/aarch64/Ginit.c
-+++ b/src/aarch64/Ginit.c
-@@ -61,13 +61,6 @@ tdep_uc_addr (unw_tdep_context_t *uc, int reg)
-
- # endif /* UNW_LOCAL_ONLY */
-
--HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
--
--/* XXX fix me: there is currently no way to locate the dyn-info list
-- by a remote unwinder. On ia64, this is done via a special
-- unwind-table entry. Perhaps something similar can be done with
-- DWARF2 unwind info. */
--
- static void
- put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
- {
-@@ -78,7 +71,13 @@ static int
- get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
- void *arg)
- {
-- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
-+#ifndef UNW_LOCAL_ONLY
-+# pragma weak _U_dyn_info_list_addr
-+ if (!_U_dyn_info_list_addr)
-+ return -UNW_ENOINFO;
-+#endif
-+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
-+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
- return 0;
- }
-
-diff --git a/src/arm/Ginit.c b/src/arm/Ginit.c
-index 2720d063a242..0bac0d72da6f 100644
---- a/src/arm/Ginit.c
-+++ b/src/arm/Ginit.c
-@@ -57,18 +57,17 @@ tdep_uc_addr (unw_tdep_context_t *uc, int reg)
-
- # endif /* UNW_LOCAL_ONLY */
-
--HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
--
--/* XXX fix me: there is currently no way to locate the dyn-info list
-- by a remote unwinder. On ia64, this is done via a special
-- unwind-table entry. Perhaps something similar can be done with
-- DWARF2 unwind info. */
--
- static int
- get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
- void *arg)
- {
-- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
-+#ifndef UNW_LOCAL_ONLY
-+# pragma weak _U_dyn_info_list_addr
-+ if (!_U_dyn_info_list_addr)
-+ return -UNW_ENOINFO;
-+#endif
-+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
-+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
- return 0;
- }
-
-diff --git a/src/coredump/_UPT_get_dyn_info_list_addr.c b/src/coredump/_UPT_get_dyn_info_list_addr.c
-index 0d11905566c3..739ed0569b9e 100644
---- a/src/coredump/_UPT_get_dyn_info_list_addr.c
-+++ b/src/coredump/_UPT_get_dyn_info_list_addr.c
-@@ -74,6 +74,11 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
-
- #else
-
-+/* XXX fix me: there is currently no way to locate the dyn-info list
-+ by a remote unwinder. On ia64, this is done via a special
-+ unwind-table entry. Perhaps something similar can be done with
-+ DWARF2 unwind info. */
-+
- static inline int
- get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
- int *countp)
-diff --git a/src/hppa/Ginit.c b/src/hppa/Ginit.c
-index 461e4b93da65..265455a68c82 100644
---- a/src/hppa/Ginit.c
-+++ b/src/hppa/Ginit.c
-@@ -64,13 +64,6 @@ _Uhppa_uc_addr (ucontext_t *uc, int reg)
-
- # endif /* UNW_LOCAL_ONLY */
-
--HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
--
--/* XXX fix me: there is currently no way to locate the dyn-info list
-- by a remote unwinder. On ia64, this is done via a special
-- unwind-table entry. Perhaps something similar can be done with
-- DWARF2 unwind info. */
--
- static void
- put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
- {
-@@ -81,7 +74,13 @@ static int
- get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
- void *arg)
- {
-- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
-+#ifndef UNW_LOCAL_ONLY
-+# pragma weak _U_dyn_info_list_addr
-+ if (!_U_dyn_info_list_addr)
-+ return -UNW_ENOINFO;
-+#endif
-+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
-+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
- return 0;
- }
-
-diff --git a/src/ia64/Ginit.c b/src/ia64/Ginit.c
-index b09a2ad57c7a..8601bb3ca885 100644
---- a/src/ia64/Ginit.c
-+++ b/src/ia64/Ginit.c
-@@ -68,6 +68,7 @@ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
- if (!_U_dyn_info_list_addr)
- return -UNW_ENOINFO;
- #endif
-+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
- *dyn_info_list_addr = _U_dyn_info_list_addr ();
- return 0;
- }
-diff --git a/src/mi/Gfind_dynamic_proc_info.c b/src/mi/Gfind_dynamic_proc_info.c
-index 98d35012861c..2e7c62e5e862 100644
---- a/src/mi/Gfind_dynamic_proc_info.c
-+++ b/src/mi/Gfind_dynamic_proc_info.c
-@@ -49,6 +49,7 @@ local_find_proc_info (unw_addr_space_t as, unw_word_t ip, unw_proc_info_t *pi,
- return -UNW_ENOINFO;
- #endif
-
-+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
- list = (unw_dyn_info_list_t *) (uintptr_t) _U_dyn_info_list_addr ();
- for (di = list->first; di; di = di->next)
- if (ip >= di->start_ip && ip < di->end_ip)
-diff --git a/src/mips/Ginit.c b/src/mips/Ginit.c
-index 3df170c75493..bf7a8f5a8f44 100644
---- a/src/mips/Ginit.c
-+++ b/src/mips/Ginit.c
-@@ -69,13 +69,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
-
- # endif /* UNW_LOCAL_ONLY */
-
--HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
--
--/* XXX fix me: there is currently no way to locate the dyn-info list
-- by a remote unwinder. On ia64, this is done via a special
-- unwind-table entry. Perhaps something similar can be done with
-- DWARF2 unwind info. */
--
- static void
- put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
- {
-@@ -86,7 +79,13 @@ static int
- get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
- void *arg)
- {
-- *dyn_info_list_addr = (unw_word_t) (intptr_t) &_U_dyn_info_list;
-+#ifndef UNW_LOCAL_ONLY
-+# pragma weak _U_dyn_info_list_addr
-+ if (!_U_dyn_info_list_addr)
-+ return -UNW_ENOINFO;
-+#endif
-+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
-+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
- return 0;
- }
-
-diff --git a/src/ppc32/Ginit.c b/src/ppc32/Ginit.c
-index ba302448a314..7b45455807c8 100644
---- a/src/ppc32/Ginit.c
-+++ b/src/ppc32/Ginit.c
-@@ -91,9 +91,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
-
- # endif /* UNW_LOCAL_ONLY */
-
--HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
--
--
- static void
- put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
- {
-@@ -104,7 +101,13 @@ static int
- get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
- void *arg)
- {
-- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
-+#ifndef UNW_LOCAL_ONLY
-+# pragma weak _U_dyn_info_list_addr
-+ if (!_U_dyn_info_list_addr)
-+ return -UNW_ENOINFO;
-+#endif
-+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
-+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
- return 0;
- }
-
-diff --git a/src/ppc64/Ginit.c b/src/ppc64/Ginit.c
-index 4c88cd6e77ff..7bfb395a7923 100644
---- a/src/ppc64/Ginit.c
-+++ b/src/ppc64/Ginit.c
-@@ -95,9 +95,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
-
- # endif /* UNW_LOCAL_ONLY */
-
--HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
--
--
- static void
- put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
- {
-@@ -108,7 +105,13 @@ static int
- get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
- void *arg)
- {
-- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
-+#ifndef UNW_LOCAL_ONLY
-+# pragma weak _U_dyn_info_list_addr
-+ if (!_U_dyn_info_list_addr)
-+ return -UNW_ENOINFO;
-+#endif
-+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
-+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
- return 0;
- }
-
-diff --git a/src/ptrace/_UPT_get_dyn_info_list_addr.c b/src/ptrace/_UPT_get_dyn_info_list_addr.c
-index cc5ed0441865..16671d453e1f 100644
---- a/src/ptrace/_UPT_get_dyn_info_list_addr.c
-+++ b/src/ptrace/_UPT_get_dyn_info_list_addr.c
-@@ -71,6 +71,11 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
-
- #else
-
-+/* XXX fix me: there is currently no way to locate the dyn-info list
-+ by a remote unwinder. On ia64, this is done via a special
-+ unwind-table entry. Perhaps something similar can be done with
-+ DWARF2 unwind info. */
-+
- static inline int
- get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
- int *countp)
-diff --git a/src/s390x/Ginit.c b/src/s390x/Ginit.c
-index f0886ac93370..db01743c0627 100644
---- a/src/s390x/Ginit.c
-+++ b/src/s390x/Ginit.c
-@@ -50,8 +50,6 @@ static struct unw_addr_space local_addr_space;
-
- unw_addr_space_t unw_local_addr_space = &local_addr_space;
-
--HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
--
- static inline void *
- uc_addr (ucontext_t *uc, int reg)
- {
-@@ -75,11 +73,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
-
- # endif /* UNW_LOCAL_ONLY */
-
--/* XXX fix me: there is currently no way to locate the dyn-info list
-- by a remote unwinder. On ia64, this is done via a special
-- unwind-table entry. Perhaps something similar can be done with
-- DWARF2 unwind info. */
--
- static void
- put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
- {
-@@ -90,7 +83,13 @@ static int
- get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
- void *arg)
- {
-- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
-+#ifndef UNW_LOCAL_ONLY
-+# pragma weak _U_dyn_info_list_addr
-+ if (!_U_dyn_info_list_addr)
-+ return -UNW_ENOINFO;
-+#endif
-+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
-+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
- return 0;
- }
-
-diff --git a/src/sh/Ginit.c b/src/sh/Ginit.c
-index 52988a721e9d..9fe96d2bd4d8 100644
---- a/src/sh/Ginit.c
-+++ b/src/sh/Ginit.c
-@@ -58,13 +58,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
-
- # endif /* UNW_LOCAL_ONLY */
-
--HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
--
--/* XXX fix me: there is currently no way to locate the dyn-info list
-- by a remote unwinder. On ia64, this is done via a special
-- unwind-table entry. Perhaps something similar can be done with
-- DWARF2 unwind info. */
--
- static void
- put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
- {
-@@ -75,7 +68,13 @@ static int
- get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
- void *arg)
- {
-- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
-+#ifndef UNW_LOCAL_ONLY
-+# pragma weak _U_dyn_info_list_addr
-+ if (!_U_dyn_info_list_addr)
-+ return -UNW_ENOINFO;
-+#endif
-+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
-+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
- return 0;
- }
-
-diff --git a/src/tilegx/Ginit.c b/src/tilegx/Ginit.c
-index 7564a558be43..925e6413246b 100644
---- a/src/tilegx/Ginit.c
-+++ b/src/tilegx/Ginit.c
-@@ -64,13 +64,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
-
- # endif /* UNW_LOCAL_ONLY */
-
--HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
--
--/* XXX fix me: there is currently no way to locate the dyn-info list
-- by a remote unwinder. On ia64, this is done via a special
-- unwind-table entry. Perhaps something similar can be done with
-- DWARF2 unwind info. */
--
- static void
- put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
- {
-@@ -81,7 +74,13 @@ static int
- get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
- void *arg)
- {
-- *dyn_info_list_addr = (unw_word_t) (intptr_t) &_U_dyn_info_list;
-+#ifndef UNW_LOCAL_ONLY
-+# pragma weak _U_dyn_info_list_addr
-+ if (!_U_dyn_info_list_addr)
-+ return -UNW_ENOINFO;
-+#endif
-+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
-+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
- return 0;
- }
-
-diff --git a/src/x86/Ginit.c b/src/x86/Ginit.c
-index f6b8dc27d493..3cec74a216b1 100644
---- a/src/x86/Ginit.c
-+++ b/src/x86/Ginit.c
-@@ -54,13 +54,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
-
- # endif /* UNW_LOCAL_ONLY */
-
--HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
--
--/* XXX fix me: there is currently no way to locate the dyn-info list
-- by a remote unwinder. On ia64, this is done via a special
-- unwind-table entry. Perhaps something similar can be done with
-- DWARF2 unwind info. */
--
- static void
- put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
- {
-@@ -71,7 +64,13 @@ static int
- get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
- void *arg)
- {
-- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
-+#ifndef UNW_LOCAL_ONLY
-+# pragma weak _U_dyn_info_list_addr
-+ if (!_U_dyn_info_list_addr)
-+ return -UNW_ENOINFO;
-+#endif
-+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
-+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
- return 0;
- }
-
-diff --git a/src/x86_64/Ginit.c b/src/x86_64/Ginit.c
-index 6161da6401b4..5c4e4269a6bf 100644
---- a/src/x86_64/Ginit.c
-+++ b/src/x86_64/Ginit.c
-@@ -49,13 +49,6 @@ static struct unw_addr_space local_addr_space;
-
- unw_addr_space_t unw_local_addr_space = &local_addr_space;
-
--HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
--
--/* XXX fix me: there is currently no way to locate the dyn-info list
-- by a remote unwinder. On ia64, this is done via a special
-- unwind-table entry. Perhaps something similar can be done with
-- DWARF2 unwind info. */
--
- static void
- put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
- {
-@@ -66,7 +59,13 @@ static int
- get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
- void *arg)
- {
-- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
-+#ifndef UNW_LOCAL_ONLY
-+# pragma weak _U_dyn_info_list_addr
-+ if (!_U_dyn_info_list_addr)
-+ return -UNW_ENOINFO;
-+#endif
-+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
-+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
- return 0;
- }
-
diff --git a/patches/libunwind-1.4.0/series b/patches/libunwind-1.4.0/series
deleted file mode 100644
index 3f1eae538..000000000
--- a/patches/libunwind-1.4.0/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Fix-compilation-with-fno-common.patch
-# 14a237c2929f4a533a7a5da1f74936a1 - git-ptx-patches magic
diff --git a/patches/libuv-v1.34.0/autogen.sh b/patches/libuv-v1.47.0/autogen.sh
index e81262ffe..e81262ffe 100755
--- a/patches/libuv-v1.34.0/autogen.sh
+++ b/patches/libuv-v1.47.0/autogen.sh
diff --git a/patches/libwacom-1.9/0001-HACK-build-generate-hwdb-as-native-tool.patch b/patches/libwacom-1.9/0001-HACK-build-generate-hwdb-as-native-tool.patch
deleted file mode 100644
index f8d72e4f6..000000000
--- a/patches/libwacom-1.9/0001-HACK-build-generate-hwdb-as-native-tool.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Tue, 16 Feb 2021 16:28:22 +0100
-Subject: [PATCH] HACK: build generate-hwdb as native tool
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- libwacom/libwacom.c | 6 ++++++
- meson.build | 18 ++++++++++++++----
- 2 files changed, 20 insertions(+), 4 deletions(-)
-
-diff --git a/libwacom/libwacom.c b/libwacom/libwacom.c
-index 062b3131dfec..44d3438ed576 100644
---- a/libwacom/libwacom.c
-+++ b/libwacom/libwacom.c
-@@ -34,7 +34,9 @@
- #include <stdbool.h>
- #include <stdio.h>
- #include <string.h>
-+#ifndef NO_UDEV
- #include <gudev/gudev.h>
-+#endif
-
- #include <linux/input-event-codes.h>
-
-@@ -44,6 +46,7 @@ libwacom_get_device(const WacomDeviceDatabase *db, const char *match)
- return (WacomDevice *) g_hash_table_lookup (db->device_ht, match);
- }
-
-+#ifndef NO_UDEV
- static gboolean
- is_tablet (GUdevDevice *device)
- {
-@@ -304,6 +307,7 @@ out:
- g_object_unref (client);
- return retval;
- }
-+#endif
-
- static WacomDevice *
- libwacom_copy(const WacomDevice *device)
-@@ -481,6 +485,7 @@ libwacom_new (const WacomDeviceDatabase *db, const char *name, int vendor_id, in
- return device;
- }
-
-+#ifndef NO_UDEV
- LIBWACOM_EXPORT WacomDevice*
- libwacom_new_from_path(const WacomDeviceDatabase *db, const char *path, WacomFallbackFlags fallback, WacomError *error)
- {
-@@ -558,6 +563,7 @@ bail:
- libwacom_error_set(error, WERROR_UNKNOWN_MODEL, NULL);
- return NULL;
- }
-+#endif
-
- LIBWACOM_EXPORT WacomDevice*
- libwacom_new_from_usbid(const WacomDeviceDatabase *db, int vendor_id, int product_id, WacomError *error)
-diff --git a/meson.build b/meson.build
-index b960826820b8..f8f690e4616e 100644
---- a/meson.build
-+++ b/meson.build
-@@ -128,20 +128,30 @@ test('svg-layout-exists',
-
- ############### tools ###########################
-
-+dep_native_glib = dependency('glib-2.0', native: true)
-+
- executable('libwacom-list-local-devices',
- 'tools/list-local-devices.c',
- dependencies: [dep_libwacom, dep_glib],
- include_directories: [includes_src],
- install: true)
-
--tools_cflags = ['-DTOPSRCDIR="@0@"'.format(meson.source_root())]
-+tools_cflags = [
-+ '-DTOPSRCDIR="@0@"'.format(meson.source_root()),
-+ '-DDATADIR="@0@"'.format(dir_data),
-+ '-DETCDIR="@0@"'.format(dir_etc),
-+ '-DNO_UDEV',
-+]
-
- gen_hwdb = executable('generate-hwdb',
-- 'tools/generate-hwdb.c',
-- dependencies: [dep_libwacom, dep_glib],
-+ ['tools/generate-hwdb.c',
-+ 'libwacom/libwacom-database.c',
-+ 'libwacom/libwacom.c',
-+ 'libwacom/libwacom-error.c' ],
-+ dependencies: dep_native_glib,
- include_directories: [includes_src],
- c_args: tools_cflags,
-- install: false)
-+ install: false, native: true)
- custom_target('hwdb',
- command: gen_hwdb,
- capture: true,
diff --git a/patches/libwacom-1.9/series b/patches/libwacom-1.9/series
deleted file mode 100644
index 0ffb269e2..000000000
--- a/patches/libwacom-1.9/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-HACK-build-generate-hwdb-as-native-tool.patch
-# 21d721c45f880605c0bd34c8ce3399e1 - git-ptx-patches magic
diff --git a/patches/libx86-1.1/libx86-1.1-IF_MASK-undeclared.diff b/patches/libx86-1.1/libx86-1.1-IF_MASK-undeclared.diff
deleted file mode 100644
index 2e4ac290f..000000000
--- a/patches/libx86-1.1/libx86-1.1-IF_MASK-undeclared.diff
+++ /dev/null
@@ -1,33 +0,0 @@
-From: Robert Schwebel <r.schwebel@pengutronix.de>
-Subject: define IF_MASK for sanitized kernel headers
-
-Current kernels don't have IF_MASK defined in their sanitized headers
-any more. This results in the following error:
-
-lrmi.c: In function 'set_regs':
-lrmi.c:191: error: 'IF_MASK' undeclared (first use in this function)
-
-Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
-
----
- lrmi.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-Index: libx86-1.1/lrmi.c
-===================================================================
---- libx86-1.1.orig/lrmi.c
-+++ libx86-1.1/lrmi.c
-@@ -54,6 +54,13 @@ OTHER DEALINGS IN THE SOFTWARE.
- #include "lrmi.h"
- #include "x86-common.h"
-
-+#if defined(__linux__) && !defined(TF_MASK)
-+#define TF_MASK X86_EFLAGS_TF
-+#define IF_MASK X86_EFLAGS_IF
-+#define VIF_MASK X86_EFLAGS_VIF
-+#define IOPL_MASK X86_EFLAGS_IOPL
-+#endif
-+
- #if defined(__linux__)
- #define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK)
- #elif defined(__NetBSD__) || defined(__FreeBSD__)
diff --git a/patches/libx86-1.1/series b/patches/libx86-1.1/series
deleted file mode 100644
index e55b9991a..000000000
--- a/patches/libx86-1.1/series
+++ /dev/null
@@ -1 +0,0 @@
-libx86-1.1-IF_MASK-undeclared.diff
diff --git a/patches/libxml2-2.9.12/0200-xml2-config-is-not-SYSROOT-aware.patch b/patches/libxml2-2.11.7/0200-xml2-config-is-not-SYSROOT-aware.patch
index 7204497b3..96bd12dbd 100644
--- a/patches/libxml2-2.9.12/0200-xml2-config-is-not-SYSROOT-aware.patch
+++ b/patches/libxml2-2.11.7/0200-xml2-config-is-not-SYSROOT-aware.patch
@@ -10,7 +10,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xml2-config.in b/xml2-config.in
-index cb4aa613a68c..31f9e67a999b 100644
+index 5863ffa04956..b5effdb2d15e 100644
--- a/xml2-config.in
+++ b/xml2-config.in
@@ -1,6 +1,6 @@
diff --git a/patches/libxml2-2.9.12/series b/patches/libxml2-2.11.7/series
index 05ba5ddea..05ba5ddea 100644
--- a/patches/libxml2-2.9.12/series
+++ b/patches/libxml2-2.11.7/series
diff --git a/patches/libxslt-1.1.34/0001-Fix-xml2-config-check-in-configure-script.patch b/patches/libxslt-1.1.34/0001-Fix-xml2-config-check-in-configure-script.patch
deleted file mode 100644
index ab7227344..000000000
--- a/patches/libxslt-1.1.34/0001-Fix-xml2-config-check-in-configure-script.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From: Nick Wellnhofer <wellnhofer@aevum.de>
-Date: Fri, 15 Nov 2019 11:53:11 +0100
-Subject: [PATCH] Fix xml2-config check in configure script
-
-A 'print' option has never been supported. After a recent change to
-libxml2, invalid options cause xml2-config to fail.
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 325a7bea0dcf..d6b5594ad477 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -546,7 +546,7 @@ dnl make sure xml2-config is executable,
- dnl test version and init our variables
- dnl
-
--if test "x$LIBXML_LIBS" = "x" && ${XML_CONFIG} --libs print > /dev/null 2>&1
-+if test "x$LIBXML_LIBS" = "x" && ${XML_CONFIG} --libs > /dev/null 2>&1
- then
- AC_MSG_CHECKING(for libxml libraries >= $LIBXML_REQUIRED_VERSION)
- XMLVERS=`$XML_CONFIG --version`
diff --git a/patches/libxslt-1.1.34/series b/patches/libxslt-1.1.34/series
deleted file mode 100644
index 1ede19a8c..000000000
--- a/patches/libxslt-1.1.34/series
+++ /dev/null
@@ -1,7 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-#tag:upstream --start-number 1
-0001-Fix-xml2-config-check-in-configure-script.patch
-#tag:ptx --start-number 200
-0200-xslt-config-add-SYSROOT-support.patch
-# c8a532c629ee7654cb91733eefc0814b - git-ptx-patches magic
diff --git a/patches/libxslt-1.1.34/0200-xslt-config-add-SYSROOT-support.patch b/patches/libxslt-1.1.39/0200-xslt-config-add-SYSROOT-support.patch
index 1f124a8d6..1f124a8d6 100644
--- a/patches/libxslt-1.1.34/0200-xslt-config-add-SYSROOT-support.patch
+++ b/patches/libxslt-1.1.39/0200-xslt-config-add-SYSROOT-support.patch
diff --git a/patches/libxslt-1.1.39/series b/patches/libxslt-1.1.39/series
new file mode 100644
index 000000000..e7aa0f393
--- /dev/null
+++ b/patches/libxslt-1.1.39/series
@@ -0,0 +1,5 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+#tag:ptx --start-number 200
+0200-xslt-config-add-SYSROOT-support.patch
+# d971b2e05382256c96c63c656e15719c - git-ptx-patches magic
diff --git a/patches/libbsd-0.8.2/autogen.sh b/patches/libyaml-0.2.5/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/libbsd-0.8.2/autogen.sh
+++ b/patches/libyaml-0.2.5/autogen.sh
diff --git a/patches/linuxptp-2.0/0001-Fix-building-with-new-kernel-headers.patch b/patches/linuxptp-2.0/0001-Fix-building-with-new-kernel-headers.patch
deleted file mode 100644
index 247a6a353..000000000
--- a/patches/linuxptp-2.0/0001-Fix-building-with-new-kernel-headers.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From: Miroslav Lichvar <mlichvar@redhat.com>
-Date: Thu, 6 Dec 2018 18:23:44 +0100
-Subject: [PATCH] Fix building with new kernel headers.
-
-net_tstamp.h in recent kernel versions requires time.h for clockid_t.
-
-Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
----
- clock.c | 2 +-
- sk.c | 1 +
- timemaster.c | 1 +
- 3 files changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/clock.c b/clock.c
-index faf2dea82a5b..9bbcefa5c57c 100644
---- a/clock.c
-+++ b/clock.c
-@@ -17,11 +17,11 @@
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
- #include <errno.h>
-+#include <time.h>
- #include <linux/net_tstamp.h>
- #include <poll.h>
- #include <stdlib.h>
- #include <string.h>
--#include <time.h>
- #include <sys/queue.h>
-
- #include "address.h"
-diff --git a/sk.c b/sk.c
-index f18b2bf8732b..386b4c8adf80 100644
---- a/sk.c
-+++ b/sk.c
-@@ -18,6 +18,7 @@
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
- #include <errno.h>
-+#include <time.h>
- #include <linux/net_tstamp.h>
- #include <linux/sockios.h>
- #include <linux/ethtool.h>
-diff --git a/timemaster.c b/timemaster.c
-index 4ba921edb902..28c215a2de95 100644
---- a/timemaster.c
-+++ b/timemaster.c
-@@ -22,6 +22,7 @@
- #include <errno.h>
- #include <libgen.h>
- #include <limits.h>
-+#include <time.h>
- #include <linux/net_tstamp.h>
- #include <net/if.h>
- #include <signal.h>
diff --git a/patches/linuxptp-2.0/series b/patches/linuxptp-2.0/series
deleted file mode 100644
index fe0aad830..000000000
--- a/patches/linuxptp-2.0/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Fix-building-with-new-kernel-headers.patch
-# b102f87ad3ef97777cea9ad16f755ca7 - git-ptx-patches magic
diff --git a/patches/lmbench-3.0-a9/lmbench-3.0-a9-remove-old-buildsystem.diff b/patches/lmbench-3.0-a9/0001-Add-autotool-based-build-system.patch
index 21c1ed39d..f40b509d8 100644
--- a/patches/lmbench-3.0-a9/lmbench-3.0-a9-remove-old-buildsystem.diff
+++ b/patches/lmbench-3.0-a9/0001-Add-autotool-based-build-system.patch
@@ -1,19 +1,23 @@
From: Robert Schwebel <r.schwebel@pengutronix.de>
-Subject: Add autotool based build system
+Date: Thu, 9 Apr 2009 19:40:55 +0000
+Subject: [PATCH] Add autotool based build system
In order to provide an autotool based build system, remove the old one.
Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
-
---
- Makefile | 74 --------
- results/Makefile | 333 -------------------------------------
- src/Makefile | 489 -------------------------------------------------------
+ Makefile | 74 ---------
+ results/Makefile | 333 -------------------------------------
+ src/Makefile | 489 -------------------------------------------------------
3 files changed, 896 deletions(-)
+ delete mode 100644 Makefile
+ delete mode 100644 results/Makefile
+ delete mode 100644 src/Makefile
-Index: lmbench-3.0-a9/Makefile
-===================================================================
---- lmbench-3.0-a9.orig/Makefile
+diff --git a/Makefile b/Makefile
+deleted file mode 100644
+index e84dda8079ac..000000000000
+--- a/Makefile
+++ /dev/null
@@ -1,74 +0,0 @@
-# Makefile for top level of lmbench
@@ -90,9 +94,10 @@ Index: lmbench-3.0-a9/Makefile
- cd .. && shar -S -a -n lmbench1.0 -L 50K < /tmp/FILES
-
-FRC:
-Index: lmbench-3.0-a9/results/Makefile
-===================================================================
---- lmbench-3.0-a9.orig/results/Makefile
+diff --git a/results/Makefile b/results/Makefile
+deleted file mode 100644
+index 0935376c13e3..000000000000
+--- a/results/Makefile
+++ /dev/null
@@ -1,333 +0,0 @@
-# Makefile for lmbench results.
@@ -428,9 +433,10 @@ Index: lmbench-3.0-a9/results/Makefile
- @if [ ! -d tmp ]; then mkdir tmp; fi
- @if [ ! -d PS ]; then mkdir PS; fi
- @if [ ! -d HTML ]; then mkdir HTML; fi
-Index: lmbench-3.0-a9/src/Makefile
-===================================================================
---- lmbench-3.0-a9.orig/src/Makefile
+diff --git a/src/Makefile b/src/Makefile
+deleted file mode 100644
+index 4962815b5fe7..000000000000
+--- a/src/Makefile
+++ /dev/null
@@ -1,489 +0,0 @@
-# $Id$
diff --git a/patches/lmbench-3.0-a9/lmbench-3.0-a9-autotoolize.diff b/patches/lmbench-3.0-a9/0002-Add-autotool-based-build-system.patch
index b41b77b91..c8d005c52 100644
--- a/patches/lmbench-3.0-a9/lmbench-3.0-a9-autotoolize.diff
+++ b/patches/lmbench-3.0-a9/0002-Add-autotool-based-build-system.patch
@@ -1,25 +1,30 @@
From: Robert Schwebel <r.schwebel@pengutronix.de>
-Subject: Add autotool based build system
+Date: Thu, 9 Apr 2009 19:40:55 +0000
+Subject: [PATCH] Add autotool based build system
Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
-
---
- Makefile.am | 3 +
- autogen.sh | 22 ++++++++++++
- configure.ac | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- src/Makefile.am | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 226 insertions(+)
+ Makefile.am | 2 ++
+ autogen.sh | 22 +++++++++++++
+ configure.ac | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/Makefile.am | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 223 insertions(+)
+ create mode 100644 Makefile.am
+ create mode 100644 autogen.sh
+ create mode 100644 configure.ac
+ create mode 100644 src/Makefile.am
-Index: b/Makefile.am
-===================================================================
+diff --git a/Makefile.am b/Makefile.am
+new file mode 100644
+index 000000000000..02962da59478
--- /dev/null
+++ b/Makefile.am
-@@ -0,0 +1,3 @@
+@@ -0,0 +1,2 @@
+SUBDIRS = \
+ src
-+
-Index: b/autogen.sh
-===================================================================
+diff --git a/autogen.sh b/autogen.sh
+new file mode 100644
+index 000000000000..29db9c9806d6
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,22 @@
@@ -45,11 +50,12 @@ Index: b/autogen.sh
+autoreconf --force --install --symlink -Wall || exit $?
+
+banner "Finished"
-Index: b/configure.ac
-===================================================================
+diff --git a/configure.ac b/configure.ac
+new file mode 100644
+index 000000000000..7fdb476a2510
--- /dev/null
+++ b/configure.ac
-@@ -0,0 +1,101 @@
+@@ -0,0 +1,100 @@
+AC_PREREQ(2.59)
+
+AC_INIT([lmbench], [trunk], [bugs@pengutronix.de])
@@ -150,12 +156,12 @@ Index: b/configure.ac
+ src/Makefile
+])
+AC_OUTPUT
-+
-Index: b/src/Makefile.am
-===================================================================
+diff --git a/src/Makefile.am b/src/Makefile.am
+new file mode 100644
+index 000000000000..90de5e286d40
--- /dev/null
+++ b/src/Makefile.am
-@@ -0,0 +1,100 @@
+@@ -0,0 +1,99 @@
+bin_PROGRAMS = \
+ bw_file_rd \
+ bw_mem \
@@ -255,4 +261,3 @@ Index: b/src/Makefile.am
+#libactor_@name@_la_LIBADD = \
+# $(libpv_LIBS) \
+# $(libstiebel_LIBS)
-+
diff --git a/patches/lmbench-3.0-a9/lmbench-3.0-a9-rpcheaders.diff b/patches/lmbench-3.0-a9/0003-minor-cleanups.patch
index 07ef7b144..326994548 100644
--- a/patches/lmbench-3.0-a9/lmbench-3.0-a9-rpcheaders.diff
+++ b/patches/lmbench-3.0-a9/0003-minor-cleanups.patch
@@ -1,13 +1,19 @@
From: Robert Schwebel <r.schwebel@pengutronix.de>
-Subject: minor cleanups
+Date: Thu, 9 Apr 2009 19:40:55 +0000
+Subject: [PATCH] minor cleanups
Add missing header file, add a cast to silence compiler.
Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
---
+ src/lib_tcp.c | 3 ++-
+ src/lib_udp.c | 1 +
+ 2 files changed, 3 insertions(+), 1 deletion(-)
---- lmbench-3.0-a9-orig/src/lib_tcp.c 2006-06-27 18:27:19.000000000 +0200
-+++ lmbench-3.0-a9/src/lib_tcp.c 2009-04-09 17:56:50.000000000 +0200
+diff --git a/src/lib_tcp.c b/src/lib_tcp.c
+index 738d5578abbc..5d5860ea4f61 100644
+--- a/src/lib_tcp.c
++++ b/src/lib_tcp.c
@@ -7,6 +7,7 @@
*/
#define _LIB /* bench.h needs this */
@@ -16,7 +22,7 @@ Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
/*
* Get a TCP socket, bind it, figure out the port,
-@@ -148,7 +149,7 @@
+@@ -148,7 +149,7 @@ tcp_connect(char *host, int prog, int rdwr)
fprintf(stderr, "Client port %d\n", sockport(sock));
#endif
sock_optimize(sock, rdwr);
@@ -25,8 +31,10 @@ Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
save_host = host; /* XXX - counting on them not
* changing it - benchmark only.
*/
---- lmbench-3.0-a9-orig/src/lib_udp.c 2006-06-27 18:27:20.000000000 +0200
-+++ lmbench-3.0-a9/src/lib_udp.c 2009-04-09 17:57:19.000000000 +0200
+diff --git a/src/lib_udp.c b/src/lib_udp.c
+index 1ed4c92b8444..13b3d6536fd1 100644
+--- a/src/lib_udp.c
++++ b/src/lib_udp.c
@@ -7,6 +7,7 @@
*/
#define _LIB /* bench.h needs this */
diff --git a/patches/lmbench-3.0-a9/0004-Added-libtirpc.patch b/patches/lmbench-3.0-a9/0004-Added-libtirpc.patch
new file mode 100644
index 000000000..ec4691780
--- /dev/null
+++ b/patches/lmbench-3.0-a9/0004-Added-libtirpc.patch
@@ -0,0 +1,59 @@
+From: =?UTF-8?q?Sven=20P=C3=BCschel?= <s.pueschel@pengutronix.de>
+Date: Wed, 1 Feb 2023 08:17:38 +0000
+Subject: [PATCH] Added libtirpc
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+glibc has removed the SunRPC implementation, therefore it was replaced with libtirpc
+See also https://fedoraproject.org/wiki/Changes/SunRPCRemoval
+
+Signed-off-by: Sven Püschel <s.pueschel@pengutronix.de>
+---
+ configure.ac | 31 +++++++++++++++++++++++++++++++
+ 1 file changed, 31 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 7fdb476a2510..0f0e54fb2e7d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -27,8 +27,39 @@ AC_SUBST(LT_AGE)
+ #
+ # Checks for programs.
+ #
++
++# Function copied and modified from http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=blob;f=aclocal/libtirpc.m4;h=bddae022693100c810edff042d51b145c8f411a6;hb=HEAD
++dnl Checks for TI-RPC library and headers
++dnl
++AC_DEFUN([AC_LIBTIRPC], [
++
++ PKG_PROG_PKG_CONFIG([0.9.0])
++ PKG_CHECK_MODULES([TIRPC], [libtirpc],
++ [LIBS="${LIBS} ${TIRPC_LIBS}"
++ AM_CFLAGS="${AM_CFLAGS} ${TIRPC_CFLAGS}"
++ AC_DEFINE([HAVE_LIBTIRPC], [1],
++ [Define to 1 if you have and wish to use libtirpc.])])
++
++ AS_IF([test -n "${LIBTIRPC}"],
++ [AC_CHECK_LIB([tirpc], [authgss_free_private_data],
++ [AC_DEFINE([HAVE_AUTHGSS_FREE_PRIVATE_DATA], [1],
++ [Define to 1 if your rpcsec library provides authgss_free_private_data])],,
++ [${LIBS}])])
++
++ AS_IF([test -n "${LIBTIRPC}"],
++ [AC_CHECK_LIB([tirpc], [libtirpc_set_debug],
++ [AC_DEFINE([HAVE_LIBTIRPC_SET_DEBUG], [1],
++ [Define to 1 if your tirpc library provides libtirpc_set_debug])],,
++ [${LIBS}])])
++
++ AC_SUBST([AM_CFLAGS])
++ AC_SUBST([LIBS])
++
++])dnl
++
+ AC_PROG_CC
+ AC_PROG_LIBTOOL
++AC_LIBTIRPC
+
+ AM_INIT_AUTOMAKE([foreign no-exeext dist-bzip2])
+
diff --git a/patches/lmbench-3.0-a9/0005-Added-missing-include-for-socklen_t-check.patch b/patches/lmbench-3.0-a9/0005-Added-missing-include-for-socklen_t-check.patch
new file mode 100644
index 000000000..a25b192dd
--- /dev/null
+++ b/patches/lmbench-3.0-a9/0005-Added-missing-include-for-socklen_t-check.patch
@@ -0,0 +1,25 @@
+From: =?UTF-8?q?Sven=20P=C3=BCschel?= <s.pueschel@pengutronix.de>
+Date: Wed, 1 Feb 2023 08:54:07 +0000
+Subject: [PATCH] Added missing include for socklen_t check
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Sven Püschel <s.pueschel@pengutronix.de>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0f0e54fb2e7d..431d436203fa 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -100,7 +100,7 @@ AC_CHECK_TYPE([uint64],[CFLAGS="${CFLAGS} -DHAVE_uint64"])
+ AC_CHECK_TYPE([uint64_t],[CFLAGS="${CFLAGS} -DHAVE_uint64_t"])
+ AC_CHECK_TYPE([int64],[CFLAGS="${CFLAGS} -DHAVE_int64"])
+ AC_CHECK_TYPE([int64_t],[CFLAGS="${CFLAGS} -DHAVE_int64_t"])
+-AC_CHECK_TYPE([socklen_t],[CFLAGS="${CFLAGS} -DHAVE_socklen_t"])
++AC_CHECK_TYPE([socklen_t],[CFLAGS="${CFLAGS} -DHAVE_socklen_t"], [], [[#include <sys/socket.h>]])
+ AC_CHECK_TYPE([off64_t],[CFLAGS="${CFLAGS} -DHAVE_off64_t"])
+
+ AC_COMPILE_IFELSE(
diff --git a/patches/lmbench-3.0-a9/series b/patches/lmbench-3.0-a9/series
index 0c4ffef30..0426ae051 100644
--- a/patches/lmbench-3.0-a9/series
+++ b/patches/lmbench-3.0-a9/series
@@ -1,3 +1,8 @@
-lmbench-3.0-a9-remove-old-buildsystem.diff
-lmbench-3.0-a9-autotoolize.diff
-lmbench-3.0-a9-rpcheaders.diff
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-Add-autotool-based-build-system.patch
+0002-Add-autotool-based-build-system.patch
+0003-minor-cleanups.patch
+0004-Added-libtirpc.patch
+0005-Added-missing-include-for-socklen_t-check.patch
+# e13ee6371916fe5f60ad543ca2daa4b2 - git-ptx-patches magic
diff --git a/patches/localedef-glibc-2.27/0001-HACK-only-build-and-install-localedef.patch b/patches/localedef-glibc-2.37/0001-HACK-only-build-and-install-localedef.patch
index 9ad678c96..8e9f7d679 100644
--- a/patches/localedef-glibc-2.27/0001-HACK-only-build-and-install-localedef.patch
+++ b/patches/localedef-glibc-2.37/0001-HACK-only-build-and-install-localedef.patch
@@ -9,10 +9,10 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
2 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/Rules b/Rules
-index 706c8a749dfb..04f3f333cd06 100644
+index ac9455d6a707..da4e76523d6f 100644
--- a/Rules
+++ b/Rules
-@@ -188,10 +188,16 @@ binaries-shared-notests = $(filter-out $(binaries-pie) $(binaries-static), \
+@@ -224,10 +224,16 @@ binaries-shared-notests = $(filter-out $(binaries-pie) $(binaries-static), \
$(binaries-all-notests))
ifneq "$(strip $(binaries-shared-notests))" ""
@@ -34,10 +34,10 @@ index 706c8a749dfb..04f3f333cd06 100644
ifneq "$(strip $(binaries-shared-tests))" ""
diff --git a/locale/Makefile b/locale/Makefile
-index fd9972279ba7..a8541593295f 100644
+index eb55750496e1..0fe80c31cb36 100644
--- a/locale/Makefile
+++ b/locale/Makefile
-@@ -32,13 +32,13 @@ categories = ctype messages monetary numeric time paper name \
+@@ -33,15 +33,15 @@ categories = ctype messages monetary numeric time paper name \
address telephone measurement identification collate
aux = $(categories:%=lc-%) $(categories:%=C-%) SYS_libc C_name \
xlocale localename global-locale coll-lookup
@@ -48,6 +48,8 @@ index fd9972279ba7..a8541593295f 100644
+install-bin = localedef
extra-objs = $(localedef-modules:=.o) $(localedef-aux:=.o) \
$(locale-modules:=.o) $(lib-modules:=.o)
+ generated += C-translit.h
+ before-compile += $(objpfx)C-translit.h
-extra-libs = libBrokenLocale
+#extra-libs = libBrokenLocale
diff --git a/patches/localedef-glibc-2.27/0002-Do-not-fail-on-unknown-LC_IDENTIFICATION.category-va.patch b/patches/localedef-glibc-2.37/0002-Do-not-fail-on-unknown-LC_IDENTIFICATION.category-va.patch
index 00f10302b..c5230a63d 100644
--- a/patches/localedef-glibc-2.27/0002-Do-not-fail-on-unknown-LC_IDENTIFICATION.category-va.patch
+++ b/patches/localedef-glibc-2.37/0002-Do-not-fail-on-unknown-LC_IDENTIFICATION.category-va.patch
@@ -14,10 +14,10 @@ Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/locale/programs/ld-identification.c b/locale/programs/ld-identification.c
-index df0257b6c075..aef618c86363 100644
+index 214b47b396b1..74b51aae2b01 100644
--- a/locale/programs/ld-identification.c
+++ b/locale/programs/ld-identification.c
-@@ -194,8 +194,8 @@ No definition for %s category found"), "LC_IDENTIFICATION");
+@@ -193,8 +193,8 @@ No definition for %s category found"), "LC_IDENTIFICATION");
matched = true;
if (matched != true)
diff --git a/patches/localedef-glibc-2.27/series b/patches/localedef-glibc-2.37/series
index 78e9f706b..78e9f706b 100644
--- a/patches/localedef-glibc-2.27/series
+++ b/patches/localedef-glibc-2.37/series
diff --git a/patches/lsh-2.0.4/0001-fix-typo-in-md5-compress.asm.patch b/patches/lsh-2.0.4/0001-fix-typo-in-md5-compress.asm.patch
deleted file mode 100644
index 784b23ff7..000000000
--- a/patches/lsh-2.0.4/0001-fix-typo-in-md5-compress.asm.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Tue, 22 Nov 2011 16:50:31 +0100
-Subject: [PATCH] fix typo in md5-compress.asm
-
-without this building with gcc-4.6 is broken.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/nettle/x86/md5-compress.asm | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/src/nettle/x86/md5-compress.asm b/src/nettle/x86/md5-compress.asm
-index 9664754..e3c51f3 100644
---- a/src/nettle/x86/md5-compress.asm
-+++ b/src/nettle/x86/md5-compress.asm
-@@ -171,4 +171,4 @@ PROLOGUE(_nettle_md5_compress)
- popl %ebp
- popl %ebx
- ret
--EPILOGUE(_nettle_sha1_compress)
-+EPILOGUE(_nettle_md5_compress)
diff --git a/patches/lsh-2.0.4/series b/patches/lsh-2.0.4/series
deleted file mode 100644
index b3a31f466..000000000
--- a/patches/lsh-2.0.4/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-fix-typo-in-md5-compress.asm.patch
-# 877723ef86b38b26af32bf999bbc4c22 - git-ptx-patches magic
diff --git a/patches/lshw-B.02.14/0001-fix-cross-compilation.patch b/patches/lshw-B.02.14/0001-fix-cross-compilation.patch
deleted file mode 100644
index 3e9974d15..000000000
--- a/patches/lshw-B.02.14/0001-fix-cross-compilation.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From cb3fbcd551017645b092743e2b48c27514829196 Mon Sep 17 00:00:00 2001
-From: Remy Bohmer <linux@bohmer.net>
-Date: Sun, 20 Jun 2010 22:48:09 +0200
-Subject: [PATCH 1/2] fix cross-compilation
-
-Signed-off-by: Remy Bohmer <linux@bohmer.net>
-[mkl: improve fix]
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- src/Makefile | 4 ++--
- src/core/Makefile | 6 +++---
- src/gui/Makefile | 6 +++---
- 3 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index 93c3ead..ea20184 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -18,8 +18,8 @@ export DATADIR
- CXX?=c++
- INCLUDES=-I./core/
- DEFINES=-DPREFIX=\"$(PREFIX)\" -DSBINDIR=\"$(SBINDIR)\" -DMANDIR=\"$(MANDIR)\" -DDATADIR=\"$(DATADIR)\"
--CXXFLAGS=-g -Wall -g $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
--LDFLAGS=-L./core/ -g
-+CXXFLAGS+=-g -Wall -g $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS) $(CPPFLAGS)
-+LDFLAGS+=-L./core/ -g
- ifneq ($(shell $(LD) --help 2| grep -- --as-needed), )
- LDFLAGS+= -Wl,--as-needed
- endif
-diff --git a/src/core/Makefile b/src/core/Makefile
-index 024b921..b108a6e 100644
---- a/src/core/Makefile
-+++ b/src/core/Makefile
-@@ -1,10 +1,10 @@
- PACKAGENAME?=lshw
-
--CXX=c++
-+CXX?=c++
- INCLUDES=
- DEFINES=-DPREFIX=\"$(PREFIX)\" -DSBINDIR=\"$(SBINDIR)\" -DMANDIR=\"$(MANDIR)\" -DDATADIR=\"$(DATADIR)\"
--CXXFLAGS=-g -Wall $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
--LDFLAGS=
-+CXXFLAGS+=-g -Wall $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS) $(CPPFLAGS)
-+LDFLAGS+=
- LDSTATIC=
- LIBS=
-
-diff --git a/src/gui/Makefile b/src/gui/Makefile
-index 05fbbfd..d410a1d 100644
---- a/src/gui/Makefile
-+++ b/src/gui/Makefile
-@@ -8,11 +8,11 @@ OBJCOPY?=objcopy
- DEFINES=-DPREFIX=\"$(PREFIX)\" -DSBINDIR=\"$(SBINDIR)\" -DMANDIR=\"$(MANDIR)\" -DDATADIR=\"$(DATADIR)\"
- GTKINCLUDES=$(shell pkg-config gtk+-2.0 --cflags)
- INCLUDES=-I../core $(GTKINCLUDES)
--CXXFLAGS=-g -Wall $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
--CFLAGS=$(CXXFLAGS) $(DEFINES)
-+CXXFLAGS+=-g -Wall $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS) $(CPPFLAGS)
-+CFLAGS+=$(CXXFLAGS) $(DEFINES)
- GTKLIBS=$(shell pkg-config gtk+-2.0 --libs)
- LIBS=-L../core -llshw -lresolv $(GTKLIBS)
--LDFLAGS=
-+LDFLAGS+=
- ifneq ($(shell $(LD) --help 2| grep -- --as-needed), )
- LDFLAGS+= -Wl,--as-needed
- endif
---
-1.7.1
-
diff --git a/patches/lshw-B.02.14/0003-fix-compiling-with-g-4.5.patch b/patches/lshw-B.02.14/0003-fix-compiling-with-g-4.5.patch
deleted file mode 100644
index 903b87dd5..000000000
--- a/patches/lshw-B.02.14/0003-fix-compiling-with-g-4.5.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From: unknown author <unknown.author@example.com>
-Date: Mon, 23 Aug 2010 10:45:58 +0200
-Subject: [PATCH] fix compiling with g++ 4.5
-
-g++ 4.5 is stricter and won't compile without this patch.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/core/scsi.cc | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/src/core/scsi.cc b/src/core/scsi.cc
-index ef49677..e72376b 100644
---- a/src/core/scsi.cc
-+++ b/src/core/scsi.cc
-@@ -842,7 +842,7 @@ static bool scan_hosts(hwNode & node)
-
- if (!controller)
- {
-- controller = node.addChild(hwNode::hwNode("scsi", hw::storage));
-+ controller = node.addChild(hwNode("scsi", hw::storage));
- if (controller)
- {
- controller->setLogicalName(host_logicalname(number));
---
-1.7.1
-
diff --git a/patches/lshw-B.02.14/series b/patches/lshw-B.02.14/series
deleted file mode 100644
index c740bfba6..000000000
--- a/patches/lshw-B.02.14/series
+++ /dev/null
@@ -1,3 +0,0 @@
-0001-fix-cross-compilation.patch
-0002-Replace-keyword-node-with-hwnode-for-TinyXpath-compa.patch
-0003-fix-compiling-with-g-4.5.patch
diff --git a/patches/lshw-B.02.14/0002-Replace-keyword-node-with-hwnode-for-TinyXpath-compa.patch b/patches/lshw-B.02.19.2/0001-Replace-keyword-node-with-hwnode-for-TinyXpath-compa.patch
index eb9abb671..b075f7edf 100644
--- a/patches/lshw-B.02.14/0002-Replace-keyword-node-with-hwnode-for-TinyXpath-compa.patch
+++ b/patches/lshw-B.02.19.2/0001-Replace-keyword-node-with-hwnode-for-TinyXpath-compa.patch
@@ -1,7 +1,6 @@
-From 0eea91e31ed90c82acc45c221be689c10e4f779c Mon Sep 17 00:00:00 2001
-From: Bart vdr. Meulen <bartvdrmeulen@gmail.com>
+From: "Bart vdr. Meulen" <bartvdrmeulen@gmail.com>
Date: Sun, 20 Jun 2010 22:48:09 +0200
-Subject: [PATCH 2/2] Replace keyword node with hwnode for TinyXpath compatibility
+Subject: [PATCH] Replace keyword node with hwnode for TinyXpath compatibility
It turns out that within TinyXpath 'node' is a reserved key-word.
Replace it with 'hwnode' when printing to xml.
@@ -9,14 +8,14 @@ Replace it with 'hwnode' when printing to xml.
Signed-off-by: Bart vdr. Meulen <bartvdrmeulen@gmail.com>
Signed-off-by: Remy Bohmer <linux@bohmer.net>
---
- src/core/hw.cc | 4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
+ src/core/hw.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/core/hw.cc b/src/core/hw.cc
-index 36679d3..367729b 100644
+index 4522c1af0fc3..13c22ac8f44d 100644
--- a/src/core/hw.cc
+++ b/src/core/hw.cc
-@@ -1343,7 +1343,7 @@ string hwNode::asXML(unsigned level)
+@@ -1715,7 +1715,7 @@ string hwNode::asXML(unsigned level)
if(visible(getClassName()))
{
out << spaces(2*level);
@@ -25,7 +24,7 @@ index 36679d3..367729b 100644
if (disabled())
out << " disabled=\"true\"";
if (claimed())
-@@ -1596,7 +1596,7 @@ string hwNode::asXML(unsigned level)
+@@ -2014,7 +2014,7 @@ string hwNode::asXML(unsigned level)
if(visible(getClassName()))
{
out << spaces(2*level);
@@ -33,7 +32,4 @@ index 36679d3..367729b 100644
+ out << "</hwnode>" << endl;
}
- return out.str();
---
-1.7.1
-
+ if((level==0) && ::enabled("output:list"))
diff --git a/patches/lshw-B.02.19.2/series b/patches/lshw-B.02.19.2/series
new file mode 100644
index 000000000..9e84d09a6
--- /dev/null
+++ b/patches/lshw-B.02.19.2/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-Replace-keyword-node-with-hwnode-for-TinyXpath-compa.patch
+# 71740a4e0313709445f69ef544501432 - git-ptx-patches magic
diff --git a/patches/lua-5.3.4/0001-Cross-compile-in-ptxdist-envirionment.patch b/patches/lua-5.4.4/0001-Cross-compile-in-ptxdist-envirionment.patch
index 859d18ce1..7b72d7a43 100644
--- a/patches/lua-5.3.4/0001-Cross-compile-in-ptxdist-envirionment.patch
+++ b/patches/lua-5.4.4/0001-Cross-compile-in-ptxdist-envirionment.patch
@@ -9,14 +9,14 @@ Signed-off-by: Denis Osterland <Denis.Osterland@diehl.com>
2 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/Makefile b/Makefile
-index 119110d2f010..c40c4cd6e0f7 100644
+index fef1af4821e6..3c169540fea4 100644
--- a/Makefile
+++ b/Makefile
@@ -4,13 +4,13 @@
# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
# Your platform. See PLATS for possible values.
--PLAT= none
+-PLAT= guess
+PLAT= linux
# Where to install. The installation starts in the src and doc directories,
@@ -28,16 +28,15 @@ index 119110d2f010..c40c4cd6e0f7 100644
INSTALL_BIN= $(INSTALL_TOP)/bin
INSTALL_INC= $(INSTALL_TOP)/include
INSTALL_LIB= $(INSTALL_TOP)/lib
-@@ -52,7 +52,7 @@ R= $V.4
+@@ -52,13 +52,17 @@ R= $V.4
all: $(PLAT)
- $(PLATS) clean:
-- cd src && $(MAKE) $@
-+ cd src && $(MAKE) $@ R=$R
+ $(PLATS) help test clean:
+- @cd src && $(MAKE) $@
++ @cd src && $(MAKE) $@ R=$R
- test: dummy
- src/lua -v
-@@ -62,6 +62,10 @@ install: dummy
+ install: dummy
+ cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN)
cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
@@ -49,19 +48,19 @@ index 119110d2f010..c40c4cd6e0f7 100644
uninstall:
diff --git a/src/Makefile b/src/Makefile
-index d71c75c87322..8ad9a1b718ad 100644
+index 1907381fef0a..e53fd31d3383 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -4,15 +4,13 @@
# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
# Your platform. See PLATS for possible values.
--PLAT= none
+-PLAT= guess
+PLAT= linux
-CC= gcc -std=gnu99
--CFLAGS= -O2 -Wall -Wextra -DLUA_COMPAT_5_2 $(SYSCFLAGS) $(MYCFLAGS)
-+CFLAGS= -std=gnu99 -fPIC -O2 -Wall -Wextra -DLUA_COMPAT_5_2 $(SYSCFLAGS) $(MYCFLAGS)
+-CFLAGS= -O2 -Wall -Wextra -DLUA_COMPAT_5_3 $(SYSCFLAGS) $(MYCFLAGS)
++CFLAGS= -std=gnu99 -fPIC -O2 -Wall -Wextra -DLUA_COMPAT_5_3 $(SYSCFLAGS) $(MYCFLAGS)
LDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS)
LIBS= -lm $(SYSLIBS) $(MYLIBS)
@@ -69,17 +68,17 @@ index d71c75c87322..8ad9a1b718ad 100644
-RANLIB= ranlib
+ARFLAGS= rcu
RM= rm -f
+ UNAME= uname
- SYSCFLAGS=
-@@ -29,6 +27,7 @@ MYOBJS=
- PLATS= aix bsd c89 freebsd generic linux macosx mingw posix solaris
+@@ -33,6 +31,7 @@ CMCFLAGS=
+ PLATS= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix solaris
LUA_A= liblua.a
+LUA_SO= liblua.so.$R
- CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \
- lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \
- ltm.o lundump.o lvm.o lzio.o
-@@ -43,8 +42,8 @@ LUAC_T= luac
+ CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o
+ LIB_O= lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o
+ BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
+@@ -44,8 +43,8 @@ LUAC_T= luac
LUAC_O= luac.o
ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
@@ -90,7 +89,7 @@ index d71c75c87322..8ad9a1b718ad 100644
# Targets start here.
default: $(PLAT)
-@@ -56,9 +55,12 @@ o: $(ALL_O)
+@@ -57,9 +56,12 @@ o: $(ALL_O)
a: $(ALL_A)
$(LUA_A): $(BASE_O)
diff --git a/patches/lua-5.3.4/0002-Install-pkgconfig-file.patch b/patches/lua-5.4.4/0002-Install-pkgconfig-file.patch
index ca02e3804..a3bbad59e 100644
--- a/patches/lua-5.3.4/0002-Install-pkgconfig-file.patch
+++ b/patches/lua-5.4.4/0002-Install-pkgconfig-file.patch
@@ -10,12 +10,12 @@ Signed-off-by: Denis Osterland <Denis.Osterland@diehl.com>
create mode 100644 lua.pc.in
diff --git a/Makefile b/Makefile
-index c40c4cd6e0f7..179246813af2 100644
+index 3c169540fea4..cf428cedcff4 100644
--- a/Makefile
+++ b/Makefile
-@@ -57,8 +57,8 @@ $(PLATS) clean:
- test: dummy
- src/lua -v
+@@ -54,8 +54,8 @@ all: $(PLAT)
+ $(PLATS) help test clean:
+ @cd src && $(MAKE) $@ R=$R
-install: dummy
- cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
@@ -24,7 +24,7 @@ index c40c4cd6e0f7..179246813af2 100644
cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN)
cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
-@@ -66,6 +66,7 @@ install: dummy
+@@ -63,6 +63,7 @@ install: dummy
ln -s liblua.so.$R $(INSTALL_LIB)/liblua.so.$V
ln -s liblua.so.$R $(INSTALL_LIB)/liblua.so.$(basename $V)
ln -s liblua.so.$V $(INSTALL_LIB)/liblua.so
@@ -32,15 +32,15 @@ index c40c4cd6e0f7..179246813af2 100644
cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
uninstall:
-@@ -112,6 +113,9 @@ pc:
+@@ -104,6 +105,9 @@ pc:
@echo "libdir=$(INSTALL_LIB)"
@echo "includedir=$(INSTALL_INC)"
+lua.pc: lua.pc.in
+ sed -e "s/@VERSION@/$R/g" $< > $@
+
- # list targets that do not create files (but not all makes understand .PHONY)
- .PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho
+ # Targets that do not create files (not all makes understand .PHONY).
+ .PHONY: all $(PLATS) help test clean install uninstall local dummy echo pc
diff --git a/lua.pc.in b/lua.pc.in
new file mode 100644
diff --git a/patches/lua-5.3.4/series b/patches/lua-5.4.4/series
index 8d0a79399..8d0a79399 100644
--- a/patches/lua-5.3.4/series
+++ b/patches/lua-5.4.4/series
diff --git a/patches/lxml-4.4.2/0001-do-not-use-libdirs-from-xslt-config.patch b/patches/lxml-4.4.2/0001-do-not-use-libdirs-from-xslt-config.patch
deleted file mode 100644
index c0cea0f16..000000000
--- a/patches/lxml-4.4.2/0001-do-not-use-libdirs-from-xslt-config.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From d20f79d5e0d04a243f8bda8ef49e59f8d3afaf9c Mon Sep 17 00:00:00 2001
-From: Artur Wiebe <artur@4wiebe.de>
-Date: Thu, 30 Aug 2018 10:46:22 +0200
-Subject: [PATCH] do not use libdirs from xslt-config
-
----
- setupinfo.py | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/setupinfo.py b/setupinfo.py
-index bdac1d0..87feac7 100644
---- a/setupinfo.py
-+++ b/setupinfo.py
-@@ -292,10 +292,10 @@ def library_dirs(static_library_dirs):
- return static_library_dirs
- # filter them from xslt-config --libs
- result = []
-- possible_library_dirs = flags('libs')
-- for possible_library_dir in possible_library_dirs:
-- if possible_library_dir.startswith('-L'):
-- result.append(possible_library_dir[2:])
-+# possible_library_dirs = flags('libs')
-+# for possible_library_dir in possible_library_dirs:
-+# if possible_library_dir.startswith('-L'):
-+# result.append(possible_library_dir[2:])
- return result
-
- def include_dirs(static_include_dirs):
---
-2.18.0
-
diff --git a/patches/lxml-4.4.2/series b/patches/lxml-4.4.2/series
deleted file mode 100644
index 13f153f5b..000000000
--- a/patches/lxml-4.4.2/series
+++ /dev/null
@@ -1 +0,0 @@
-0001-do-not-use-libdirs-from-xslt-config.patch
diff --git a/patches/m4-1.4.18/0001-fflush-adjust-to-glibc-2.28-libio.h-removal.patch b/patches/m4-1.4.18/0001-fflush-adjust-to-glibc-2.28-libio.h-removal.patch
deleted file mode 100644
index 00b99fdd9..000000000
--- a/patches/m4-1.4.18/0001-fflush-adjust-to-glibc-2.28-libio.h-removal.patch
+++ /dev/null
@@ -1,159 +0,0 @@
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Thu, 8 Mar 2018 16:42:45 2018 -0800
-Subject: [PATCH] fflush: adjust to glibc 2.28 libio.h removal
-
-Problem reported by Daniel P. Berrangé in:
-https://lists.gnu.org/r/bug-gnulib/2018-03/msg00000.html
-* lib/fbufmode.c (fbufmode):
-* lib/fflush.c (clear_ungetc_buffer_preserving_position)
-(disable_seek_optimization, rpl_fflush):
-* lib/fpending.c (__fpending):
-* lib/fpurge.c (fpurge):
-* lib/freadable.c (freadable):
-* lib/freadahead.c (freadahead):
-* lib/freading.c (freading):
-* lib/freadptr.c (freadptr):
-* lib/freadseek.c (freadptrinc):
-* lib/fseeko.c (fseeko):
-* lib/fseterr.c (fseterr):
-* lib/fwritable.c (fwritable):
-* lib/fwriting.c (fwriting):
-Check _IO_EOF_SEEN instead of _IO_ftrylockfile.
-* lib/stdio-impl.h (_IO_IN_BACKUP) [_IO_EOF_SEEN]:
-Define if not already defined.
-
-manual backport of of4af4a4a71827c0bc5e0ec67af23edef4f15cee8e
-
-Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de>
----
- lib/fflush.c | 6 +++---
- lib/fpending.c | 2 +-
- lib/fpurge.c | 2 +-
- lib/freadahead.c | 2 +-
- lib/freading.c | 2 +-
- lib/fseeko.c | 4 ++--
- lib/stdio-impl.h | 6 ++++++
- 7 files changed, 15 insertions(+), 9 deletions(-)
-
-diff --git a/lib/fflush.c b/lib/fflush.c
-index ef2a7f1237ee..787790d09031 100644
---- a/lib/fflush.c
-+++ b/lib/fflush.c
-@@ -33,7 +33,7 @@
- #undef fflush
-
-
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-
- /* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */
- static void
-@@ -72,7 +72,7 @@ clear_ungetc_buffer (FILE *fp)
-
- #endif
-
--#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
-+#if ! (defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
-
- # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
-@@ -148,7 +148,7 @@ rpl_fflush (FILE *stream)
- if (stream == NULL || ! freading (stream))
- return fflush (stream);
-
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-
- clear_ungetc_buffer_preserving_position (stream);
-
-diff --git a/lib/fpending.c b/lib/fpending.c
-index ce93604e518f..9fe7ffb2f615 100644
---- a/lib/fpending.c
-+++ b/lib/fpending.c
-@@ -32,7 +32,7 @@ __fpending (FILE *fp)
- /* Most systems provide FILE as a struct and the necessary bitmask in
- <stdio.h>, because they need it for implementing getc() and putc() as
- fast macros. */
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- return fp->_IO_write_ptr - fp->_IO_write_base;
- #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
-diff --git a/lib/fpurge.c b/lib/fpurge.c
-index 53ee68c37efc..7cba3a37bef2 100644
---- a/lib/fpurge.c
-+++ b/lib/fpurge.c
-@@ -62,7 +62,7 @@ fpurge (FILE *fp)
- /* Most systems provide FILE as a struct and the necessary bitmask in
- <stdio.h>, because they need it for implementing getc() and putc() as
- fast macros. */
--# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- fp->_IO_read_end = fp->_IO_read_ptr;
- fp->_IO_write_ptr = fp->_IO_write_base;
- /* Avoid memory leak when there is an active ungetc buffer. */
-diff --git a/lib/freadahead.c b/lib/freadahead.c
-index cfc969b4cffd..5e43e13af727 100644
---- a/lib/freadahead.c
-+++ b/lib/freadahead.c
-@@ -25,7 +25,7 @@
- size_t
- freadahead (FILE *fp)
- {
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- if (fp->_IO_write_ptr > fp->_IO_write_base)
- return 0;
- return (fp->_IO_read_end - fp->_IO_read_ptr)
-diff --git a/lib/freading.c b/lib/freading.c
-index 05cb0b80999d..f1da5b958b5e 100644
---- a/lib/freading.c
-+++ b/lib/freading.c
-@@ -31,7 +31,7 @@ freading (FILE *fp)
- /* Most systems provide FILE as a struct and the necessary bitmask in
- <stdio.h>, because they need it for implementing getc() and putc() as
- fast macros. */
--# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- return ((fp->_flags & _IO_NO_WRITES) != 0
- || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0
- && fp->_IO_read_base != NULL));
-diff --git a/lib/fseeko.c b/lib/fseeko.c
-index 0c01c4fd08c1..0601619d80a2 100644
---- a/lib/fseeko.c
-+++ b/lib/fseeko.c
-@@ -47,7 +47,7 @@ fseeko (FILE *fp, off_t offset, int whence)
- #endif
-
- /* These tests are based on fpurge.c. */
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- if (fp->_IO_read_end == fp->_IO_read_ptr
- && fp->_IO_write_ptr == fp->_IO_write_base
- && fp->_IO_save_base == NULL)
-@@ -123,7 +123,7 @@ fseeko (FILE *fp, off_t offset, int whence)
- return -1;
- }
-
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- fp->_flags &= ~_IO_EOF_SEEN;
- fp->_offset = pos;
- #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
-diff --git a/lib/stdio-impl.h b/lib/stdio-impl.h
-index 766d6936590f..75fe3ade4237 100644
---- a/lib/stdio-impl.h
-+++ b/lib/stdio-impl.h
-@@ -18,6 +18,12 @@
- the same implementation of stdio extension API, except that some fields
- have different naming conventions, or their access requires some casts. */
-
-+/* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this
-+ problem by defining it ourselves. FIXME: Do not rely on glibc
-+ internals. */
-+#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN
-+# define _IO_IN_BACKUP 0x100
-+#endif
-
- /* BSD stdio derived implementations. */
-
diff --git a/patches/m4-1.4.18/series b/patches/m4-1.4.18/series
deleted file mode 100644
index c9993f086..000000000
--- a/patches/m4-1.4.18/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-fflush-adjust-to-glibc-2.28-libio.h-removal.patch
-# b03bed9248af170f04892265a5918d5b - git-ptx-patches magic
diff --git a/patches/meson-0.56.0/0001-pkgconfig-Respect-variable-ordering-when-passed-as-l.patch b/patches/meson-0.56.0/0001-pkgconfig-Respect-variable-ordering-when-passed-as-l.patch
deleted file mode 100644
index 086ec0d81..000000000
--- a/patches/meson-0.56.0/0001-pkgconfig-Respect-variable-ordering-when-passed-as-l.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From: Xavier Claessens <xavier.claessens@collabora.com>
-Date: Mon, 7 Dec 2020 11:40:20 -0500
-Subject: [PATCH] pkgconfig: Respect variable ordering when passed as list
-
-This fix a regression introduced in Meson 0.56.0 when using python 3.5.
-Also mention in documentation that using a meson dict does not guarantee
-ordering.
-
-Fixes: #8074.
----
- mesonbuild/interpreter.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
-index 6222f97a71d8..b0cbecc75114 100644
---- a/mesonbuild/interpreter.py
-+++ b/mesonbuild/interpreter.py
-@@ -2690,7 +2690,7 @@ class Interpreter(InterpreterBase):
- varlist = mesonlib.stringlistify(variables)
- if list_new:
- FeatureNew.single_use('variables as list of strings', '0.56.0', self.subproject)
-- variables = {}
-+ variables = collections.OrderedDict()
- for v in varlist:
- try:
- (key, value) = v.split('=', 1)
diff --git a/patches/meson-0.56.0/0101-HACK-enable-NEON-only-for-ARMv7.patch b/patches/meson-0.56.0/0101-HACK-enable-NEON-only-for-ARMv7.patch
deleted file mode 100644
index f6f0dc448..000000000
--- a/patches/meson-0.56.0/0101-HACK-enable-NEON-only-for-ARMv7.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Tue, 1 Oct 2019 22:30:59 +0200
-Subject: [PATCH] HACK: enable NEON only for ARMv7
-
-NEON detection is broken, so just skip it for anything that is not ARMv7.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- mesonbuild/modules/unstable_simd.py | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/mesonbuild/modules/unstable_simd.py b/mesonbuild/modules/unstable_simd.py
-index 4c066fb91339..e4b1824a7087 100644
---- a/mesonbuild/modules/unstable_simd.py
-+++ b/mesonbuild/modules/unstable_simd.py
-@@ -62,6 +62,9 @@ class SimdModule(ExtensionModule):
- continue
- iset_fname = kwargs[iset] # Might also be an array or Files. static_library will validate.
- args = compiler.get_instruction_set_args(iset)
-+ cpu = state.environment.machines.host.cpu
-+ if iset == 'neon' and not cpu.startswith('armv7'):
-+ args = None
- if args is None:
- mlog.log('Compiler supports %s:' % iset, mlog.red('NO'))
- continue
diff --git a/patches/meson-0.56.0/series b/patches/meson-0.56.0/series
deleted file mode 100644
index 10eaa5573..000000000
--- a/patches/meson-0.56.0/series
+++ /dev/null
@@ -1,7 +0,0 @@
-# generated by git-ptx-patches
-#tag:upstream --start-number 1
-0001-pkgconfig-Respect-variable-ordering-when-passed-as-l.patch
-#tag:ptxdist --start-number 100
-0100-don-t-add-rpaths-for-build-directories-when-cross-co.patch
-0101-HACK-enable-NEON-only-for-ARMv7.patch
-# a15bcb28786933dffabce202768a0e86 - git-ptx-patches magic
diff --git a/patches/meson-0.56.0/0100-don-t-add-rpaths-for-build-directories-when-cross-co.patch b/patches/meson-1.3.0/0001-don-t-add-rpaths-for-build-directories-when-cross-co.patch
index ccf5bfc2f..6a4772ac5 100644
--- a/patches/meson-0.56.0/0100-don-t-add-rpaths-for-build-directories-when-cross-co.patch
+++ b/patches/meson-1.3.0/0001-don-t-add-rpaths-for-build-directories-when-cross-co.patch
@@ -7,14 +7,14 @@ size unnecessarily.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
---
- mesonbuild/linkers.py | 8 ++++++--
+ mesonbuild/linkers/linkers.py | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
-diff --git a/mesonbuild/linkers.py b/mesonbuild/linkers.py
-index 589945c511ff..59463bdfdcc5 100644
---- a/mesonbuild/linkers.py
-+++ b/mesonbuild/linkers.py
-@@ -605,7 +605,10 @@ class GnuLikeDynamicLinkerMixin:
+diff --git a/mesonbuild/linkers/linkers.py b/mesonbuild/linkers/linkers.py
+index dbb5e57aa585..3d321cc24413 100644
+--- a/mesonbuild/linkers/linkers.py
++++ b/mesonbuild/linkers/linkers.py
+@@ -684,7 +684,10 @@ class GnuLikeDynamicLinkerMixin(DynamicLinkerBase):
# Need to deduplicate rpaths, as macOS's install_name_tool
# is *very* allergic to duplicate -delete_rpath arguments
# when calling depfixer on installation.
@@ -23,10 +23,10 @@ index 589945c511ff..59463bdfdcc5 100644
+ all_paths = mesonlib.OrderedSet([os.path.join(origin_placeholder, p) for p in processed_rpaths])
+ else:
+ all_paths = mesonlib.OrderedSet()
- rpath_dirs_to_remove = set()
+ rpath_dirs_to_remove: T.Set[bytes] = set()
for p in all_paths:
rpath_dirs_to_remove.add(p.encode('utf8'))
-@@ -633,7 +636,8 @@ class GnuLikeDynamicLinkerMixin:
+@@ -712,7 +715,8 @@ class GnuLikeDynamicLinkerMixin(DynamicLinkerBase):
paths = padding
else:
paths = paths + ':' + padding
diff --git a/patches/meson-1.3.0/0002-HACK-enable-NEON-only-for-ARMv7.patch b/patches/meson-1.3.0/0002-HACK-enable-NEON-only-for-ARMv7.patch
new file mode 100644
index 000000000..7be876034
--- /dev/null
+++ b/patches/meson-1.3.0/0002-HACK-enable-NEON-only-for-ARMv7.patch
@@ -0,0 +1,25 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Tue, 1 Oct 2019 22:30:59 +0200
+Subject: [PATCH] HACK: enable NEON only for ARMv7
+
+NEON detection is broken, so just skip it for anything that is not ARMv7.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ mesonbuild/modules/simd.py | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/mesonbuild/modules/simd.py b/mesonbuild/modules/simd.py
+index b8baf39ef34a..2ce09b20d2f9 100644
+--- a/mesonbuild/modules/simd.py
++++ b/mesonbuild/modules/simd.py
+@@ -94,6 +94,9 @@ class SimdModule(ExtensionModule):
+ continue
+
+ compile_args = compiler.get_instruction_set_args(iset)
++ cpu = state.environment.machines.host.cpu
++ if iset == 'neon' and not cpu.startswith('armv7'):
++ compile_args = None
+ if compile_args is None:
+ mlog.log(f'Compiler supports {iset}:', mlog.red('NO'))
+ continue
diff --git a/patches/meson-1.3.0/0003-HACK-don-t-fail-if-lrelease-is-missing.patch b/patches/meson-1.3.0/0003-HACK-don-t-fail-if-lrelease-is-missing.patch
new file mode 100644
index 000000000..28e6b9084
--- /dev/null
+++ b/patches/meson-1.3.0/0003-HACK-don-t-fail-if-lrelease-is-missing.patch
@@ -0,0 +1,26 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Wed, 7 Jun 2023 11:42:46 +0200
+Subject: [PATCH] HACK: don't fail if lrelease is missing
+
+PTXdist does not currently build lrelease for Qt6 so this is always
+missing. It's not needed in most cases, so just ignore it.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ mesonbuild/modules/qt.py | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/mesonbuild/modules/qt.py b/mesonbuild/modules/qt.py
+index 83dcf31bdfb3..b3242ceaf167 100644
+--- a/mesonbuild/modules/qt.py
++++ b/mesonbuild/modules/qt.py
+@@ -278,6 +278,9 @@ class QtBaseModule(ExtensionModule):
+ self._detect_tools(state, method, required=False)
+ for tool in self.tools.values():
+ if not tool.found():
++ if tool.name == 'lrelease':
++ mlog.warning('Ignoring missing lrelease')
++ continue
+ if required:
+ raise MesonException('Qt tools not found')
+ return False
diff --git a/patches/meson-1.3.0/0004-HACK-don-t-fail-if-uic-is-missing.patch b/patches/meson-1.3.0/0004-HACK-don-t-fail-if-uic-is-missing.patch
new file mode 100644
index 000000000..c404d3149
--- /dev/null
+++ b/patches/meson-1.3.0/0004-HACK-don-t-fail-if-uic-is-missing.patch
@@ -0,0 +1,29 @@
+From: Michael Tretter <m.tretter@pengutronix.de>
+Date: Tue, 12 Mar 2024 18:22:06 +0100
+Subject: [PATCH] HACK: don't fail if uic is missing
+
+Qt5 builds the uic only if Widgets are enabled. The uic is not required
+for applications that don't use Widgets, but is required as standard
+tool by meson.
+
+Ignore uic if it is not found.
+
+Signed-off-by: Michael Tretter <m.tretter@pengutronix.de>
+---
+ mesonbuild/modules/qt.py | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/mesonbuild/modules/qt.py b/mesonbuild/modules/qt.py
+index b3242ceaf167..26b5dbc9fc0d 100644
+--- a/mesonbuild/modules/qt.py
++++ b/mesonbuild/modules/qt.py
+@@ -281,6 +281,9 @@ class QtBaseModule(ExtensionModule):
+ if tool.name == 'lrelease':
+ mlog.warning('Ignoring missing lrelease')
+ continue
++ if tool.name == 'uic':
++ mlog.warning('Ignoring missing uic')
++ continue
+ if required:
+ raise MesonException('Qt tools not found')
+ return False
diff --git a/patches/meson-1.3.0/series b/patches/meson-1.3.0/series
new file mode 100644
index 000000000..3bba04f5b
--- /dev/null
+++ b/patches/meson-1.3.0/series
@@ -0,0 +1,7 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-don-t-add-rpaths-for-build-directories-when-cross-co.patch
+0002-HACK-enable-NEON-only-for-ARMv7.patch
+0003-HACK-don-t-fail-if-lrelease-is-missing.patch
+0004-HACK-don-t-fail-if-uic-is-missing.patch
+# 344e721ffeeec9faa5876797156d7064 - git-ptx-patches magic
diff --git a/patches/mgetty-1.1.36/0001-fix-install.patch b/patches/mgetty-1.1.36/0001-fix-install.patch
deleted file mode 100644
index 774b3ac4c..000000000
--- a/patches/mgetty-1.1.36/0001-fix-install.patch
+++ /dev/null
@@ -1,205 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sun, 15 Jan 2017 12:02:05 +0100
-Subject: [PATCH] fix install
-
-prefix all paths with DESTDIR when installing.
-install all necessary stuff
-don't chown dirs
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- Makefile | 77 +++++++++++++++++++++++++++++--------------------------
- callback/Makefile | 4 +--
- fax/Makefile | 25 +++++++++---------
- g3/Makefile | 4 +--
- 4 files changed, 57 insertions(+), 53 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 97ea1986dce9..401ae6e4b37b 100644
---- a/Makefile
-+++ b/Makefile
-@@ -580,56 +580,54 @@ install.bin: mgetty sendfax newslock \
- #
- # binaries
- #
-- -test -d $(BINDIR) || ( ./mkidirs $(BINDIR) ; chmod 755 $(BINDIR) )
-- $(INSTALL) -m 755 newslock $(BINDIR)
-+ -test -d $(DESTDIR)$(BINDIR) || ( ./mkidirs $(DESTDIR)$(BINDIR) ; chmod 755 $(DESTDIR)$(BINDIR) )
-+ $(INSTALL) -m 755 newslock $(DESTDIR)$(BINDIR)
-
-- -test -d $(SBINDIR) || ( ./mkidirs $(SBINDIR) ; chmod 755 $(SBINDIR) )
-- -mv -f $(SBINDIR)/mgetty $(SBINDIR)/mgetty.old
-- -mv -f $(SBINDIR)/sendfax $(SBINDIR)/sendfax.old
-- $(INSTALL) -s -m 700 mgetty $(SBINDIR)
-- $(INSTALL) -s -m 755 sendfax $(SBINDIR)
-+ -test -d $(DESTDIR)$(SBINDIR) || ( ./mkidirs $(DESTDIR)$(SBINDIR) ; chmod 755 $(DESTDIR)$(SBINDIR) )
-+ -mv -f $(DESTDIR)$(SBINDIR)/mgetty $(DESTDIR)$(SBINDIR)/mgetty.old
-+ -mv -f $(DESTDIR)$(SBINDIR)/sendfax $(DESTDIR)$(SBINDIR)/sendfax.old
-+ $(INSTALL) -s -m 700 mgetty $(DESTDIR)$(SBINDIR)
-+ $(INSTALL) -s -m 755 sendfax $(DESTDIR)$(SBINDIR)
- #
- # data files + directories
- #
-- test -d $(LIBDIR) || \
-- ( ./mkidirs $(LIBDIR) && chmod 755 $(LIBDIR) )
-- test -d $(CONFDIR) || \
-- ( ./mkidirs $(CONFDIR) && chmod 755 $(CONFDIR))
-- test -f $(CONFDIR)/login.config || \
-- $(INSTALL) -o root -m 600 login.config $(CONFDIR)/
-- test -f $(CONFDIR)/mgetty.config || \
-- $(INSTALL) -o root -m 600 mgetty.config $(CONFDIR)/
-- test -f $(CONFDIR)/sendfax.config || \
-- $(INSTALL) -o root -m 644 sendfax.config $(CONFDIR)/
-- test -f $(CONFDIR)/dialin.config || \
-- $(INSTALL) -o root -m 600 dialin.config $(CONFDIR)/
-- test -f $(CONFDIR)/faxrunq.config || \
-- $(INSTALL) -o root -m 644 faxrunq.config $(CONFDIR)/
-+ test -d $(DESTDIR)$(LIBDIR) || \
-+ ( ./mkidirs $(DESTDIR)$(LIBDIR) && chmod 755 $(DESTDIR)$(LIBDIR) )
-+ test -d $(DESTDIR)$(CONFDIR) || \
-+ ( ./mkidirs $(DESTDIR)$(CONFDIR) && chmod 755 $(DESTDIR)$(CONFDIR))
-+ test -f $(DESTDIR)$(CONFDIR)/login.config || \
-+ $(INSTALL) -o root -m 600 login.config $(DESTDIR)$(CONFDIR)/
-+ test -f $(DESTDIR)$(CONFDIR)/mgetty.config || \
-+ $(INSTALL) -o root -m 600 mgetty.config $(DESTDIR)$(CONFDIR)/
-+ test -f $(DESTDIR)$(CONFDIR)/sendfax.config || \
-+ $(INSTALL) -o root -m 644 sendfax.config $(DESTDIR)$(CONFDIR)/
-+ test -f $(DESTDIR)$(CONFDIR)/dialin.config || \
-+ $(INSTALL) -o root -m 600 dialin.config $(DESTDIR)$(CONFDIR)/
-+ test -f $(DESTDIR)$(CONFDIR)/faxrunq.config || \
-+ $(INSTALL) -o root -m 644 faxrunq.config $(DESTDIR)$(CONFDIR)/
- #
- # test for outdated stuff
- #
-- -@if test -f $(LIBDIR)/mgetty.login ; \
-+ -@if test -f $(DESTDIR)$(LIBDIR)/mgetty.login ; \
- then \
-- echo "WARNING: the format of $(LIBDIR)/mgetty.login has " ;\
-+ echo "WARNING: the format of $(DESTDIR)$(LIBDIR)/mgetty.login has " ;\
- echo "been changed. Because of this, to avoid confusions, it's called " ;\
-- echo "$(CONFDIR)/login.config now." ;\
-+ echo "$(DESTDIR)$(CONFDIR)/login.config now." ;\
- echo "" ;\
- fi
- #
- # fax spool directories
- #
-- test -d $(spool) || \
-- ( mkdir $(spool) && chmod 755 $(spool) )
-- test -d $(FAX_SPOOL) || \
-- ( mkdir $(FAX_SPOOL) && \
-- chown $(FAX_OUT_USER) $(FAX_SPOOL) && \
-- chmod 755 $(FAX_SPOOL) )
-- test -d $(FAX_SPOOL_IN) || \
-- ( mkdir $(FAX_SPOOL_IN) && chmod 755 $(FAX_SPOOL_IN) )
-- test -d $(FAX_SPOOL_OUT) || \
-- mkdir $(FAX_SPOOL_OUT)
-- chown $(FAX_OUT_USER) $(FAX_SPOOL_OUT)
-- chmod 755 $(FAX_SPOOL_OUT)
-+ test -d $(DESTDIR)$(spool) || \
-+ ( ./mkidirs $(DESTDIR)$(spool) && chmod 755 $(DESTDIR)$(spool) )
-+ test -d $(DESTDIR)$(FAX_SPOOL) || \
-+ ( ./mkidirs $(DESTDIR)$(FAX_SPOOL) && \
-+ chmod 755 $(DESTDIR)$(FAX_SPOOL) )
-+ test -d $(DESTDIR)$(FAX_SPOOL_IN) || \
-+ ( ./mkidirs $(DESTDIR)$(FAX_SPOOL_IN) && chmod 755 $(DESTDIR)$(FAX_SPOOL_IN) )
-+ test -d $(DESTDIR)$(FAX_SPOOL_OUT) || \
-+ ./mkidirs $(DESTDIR)$(FAX_SPOOL_OUT)
-+ chmod 755 $(DESTDIR)$(FAX_SPOOL_OUT)
- #
- # g3 tool programs
- #
-@@ -644,6 +642,13 @@ install.bin: mgetty sendfax newslock \
- BINDIR=$(BINDIR) SBINDIR=$(SBINDIR) \
- LIBDIR=$(LIBDIR) CONFDIR=$(CONFDIR)
- #
-+# callback
-+#
-+ cd callback ; $(MAKE) install INSTALL="$(INSTALL)" \
-+ FAX_OUT_USER=$(FAX_OUT_USER) \
-+ BINDIR=$(BINDIR) SBINDIR=$(SBINDIR) \
-+ LIBDIR=$(LIBDIR) CONFDIR=$(CONFDIR)
-+#
- # compatibility
- #
- if [ ! -z "$(INSTALL_MECHO)" ] ; then \
-diff --git a/callback/Makefile b/callback/Makefile
-index 061e63a9f966..577e0dfa6fe2 100644
---- a/callback/Makefile
-+++ b/callback/Makefile
-@@ -37,7 +37,7 @@ clean:
- # install programs
- #
- install: all
-- $(INSTALL) -s -m 700 -o root callback $(SBINDIR)
-- $(INSTALL) -s -m 4711 -o root ct $(BINDIR)
-+ $(INSTALL) -s -m 700 -o root callback $(DESTDIR)$(SBINDIR)
-+ $(INSTALL) -s -m 4711 -o root ct $(DESTDIR)$(BINDIR)
-
- # source modules
-diff --git a/fax/Makefile b/fax/Makefile
-index 89ceccb611f8..6438c0f8461c 100644
---- a/fax/Makefile
-+++ b/fax/Makefile
-@@ -53,25 +53,24 @@ install: all
- # programs / scripts
- #
- -for i in $(FAX_SCRIPTS); do \
-- mv -f $(BINDIR)/$$i $(BINDIR)/$$i.old 2>/dev/null ; \
-- $(INSTALL) -m 755 $$i $(BINDIR) ; \
-+ mv -f $(DESTDIR)$(BINDIR)/$$i $(DESTDIR)$(BINDIR)/$$i.old 2>/dev/null ; \
-+ $(INSTALL) -m 755 $$i $(DESTDIR)$(BINDIR) ; \
- done
-- $(INSTALL) -m 755 faxrunqd $(SBINDIR)
-- $(INSTALL) faxq-helper $(LIBDIR)
-- chown $(FAX_OUT_USER) $(LIBDIR)/faxq-helper
-- chmod 4711 $(LIBDIR)/faxq-helper
-+ $(INSTALL) -m 755 faxrunqd $(DESTDIR)$(SBINDIR)
-+ $(INSTALL) faxq-helper $(DESTDIR)$(LIBDIR)
-+ chmod 4711 $(DESTDIR)$(LIBDIR)/faxq-helper
- #
- # data files
- #
-- $(INSTALL) -m 644 cour25.pbm $(LIBDIR)
-- $(INSTALL) -m 644 cour25n.pbm $(LIBDIR)
-- -test -f $(CONFDIR)/faxheader || \
-- $(INSTALL) -m 644 faxheader $(CONFDIR)
-+ $(INSTALL) -m 644 cour25.pbm $(DESTDIR)$(LIBDIR)
-+ $(INSTALL) -m 644 cour25n.pbm $(DESTDIR)$(LIBDIR)
-+ -test -f $(DESTDIR)$(CONFDIR)/faxheader || \
-+ $(INSTALL) -m 644 faxheader $(DESTDIR)$(CONFDIR)
- #
- # /etc/magic
- #
-- -@test -r /etc/magic && \
-- if grep "string.*P1" /etc/magic >/dev/null ; then : ; \
-+ -@test -r $(DESTDIR)/etc/magic && \
-+ if grep "string.*P1" $(DESTDIR)/etc/magic >/dev/null ; then : ; \
- else \
- echo "WARNING: no PBM magic (string P1) found in /etc/magic" ; \
- echo " maybe you should append the definitions in \`\`fax/etc-magic''." ; \
-@@ -79,4 +78,4 @@ install: all
- #
- # faxspool.rules sample file
- #
-- $(INSTALL) -m 644 faxspool.rules $(CONFDIR)/faxspool.rules.sample
-+ $(INSTALL) -m 644 faxspool.rules $(DESTDIR)$(CONFDIR)/faxspool.rules.sample
-diff --git a/g3/Makefile b/g3/Makefile
-index 33082e1e9692..70e2f57cd534 100644
---- a/g3/Makefile
-+++ b/g3/Makefile
-@@ -37,12 +37,12 @@ install: all
- # install programs
- #
- for f in $(G3_PROGRAMS) ; do \
-- $(INSTALL) -s -m 755 $$f $(BINDIR) ; \
-+ $(INSTALL) -s -m 755 $$f $(DESTDIR)$(BINDIR) ; \
- done
- #
- # make symlink for "g3topbm" (so third-party fax viewers won't fail)
- #
-- -cd $(BINDIR) ; \
-+ -cd $(DESTDIR)$(BINDIR) ; \
- test -x g3topbm || ln -s g32pbm g3topbm
-
-
diff --git a/patches/mgetty-1.1.36/0002-fix-building-on-arm64.patch b/patches/mgetty-1.1.36/0002-fix-building-on-arm64.patch
deleted file mode 100644
index cd91ebee9..000000000
--- a/patches/mgetty-1.1.36/0002-fix-building-on-arm64.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sun, 15 Jan 2017 12:06:11 +0100
-Subject: [PATCH] fix building on arm64
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- mgetty.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mgetty.h b/mgetty.h
-index 14845207421a..811e5519d1b4 100644
---- a/mgetty.h
-+++ b/mgetty.h
-@@ -198,7 +198,7 @@ typedef unsigned char uch;
- */
- #if defined(__alpha__) || defined(__sparc64__) || \
- defined(__ia64__) || defined(__s390x__) || defined(__x86_64__) || \
-- defined(__powerpc64__)
-+ defined(__powerpc64__) || defined(__aarch64__)
- # define PTR_IS_LONG
- #endif
-
diff --git a/patches/mgetty-1.1.36/0003-fix-building-with-gcc-7.x.patch b/patches/mgetty-1.1.36/0003-fix-building-with-gcc-7.x.patch
deleted file mode 100644
index 7783883b6..000000000
--- a/patches/mgetty-1.1.36/0003-fix-building-with-gcc-7.x.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From: Hilko Bengen <bengen@debian.org>
-Date: Wed, 7 Feb 2018 10:59:18 +0100
-Subject: [PATCH] fix building with gcc 7.x
-
-make some functions static
-
-Patch imported from Debian.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- g3/g3cat.c | 3 +++
- g3/pbm2g3.c | 4 ++++
- 2 files changed, 7 insertions(+)
-
-diff --git a/g3/g3cat.c b/g3/g3cat.c
-index 8a4b708afa7e..4205d332cde7 100644
---- a/g3/g3cat.c
-+++ b/g3/g3cat.c
-@@ -67,6 +67,7 @@ void putcode _P2( (code, len), int code, int len )
- }
-
- #ifdef __GNUC__
-+static
- inline
- #endif
- void putwhitespan _P1( (l), int l )
-@@ -98,6 +99,7 @@ void putwhitespan _P1( (l), int l )
- }
-
- #ifdef __GNUC__
-+static
- inline
- #endif
- void putblackspan _P1( (l), int l )
-@@ -129,6 +131,7 @@ void putblackspan _P1( (l), int l )
- }
-
- #ifdef __GNUC__
-+static
- inline
- #endif
- void puteol _P0( void ) /* write byte-aligned EOL */
-diff --git a/g3/pbm2g3.c b/g3/pbm2g3.c
-index 283a72867312..7dc81a808bfc 100644
---- a/g3/pbm2g3.c
-+++ b/g3/pbm2g3.c
-@@ -40,6 +40,7 @@ static unsigned int out_hibit = 0;
- static int out_byte_tab[ 256 ]; /* for g3 byte reversal */
-
- #ifdef __GNUC__
-+static
- inline
- #endif
- void putcode _P2( (code, len), int code, int len )
-@@ -60,6 +61,7 @@ void putcode _P2( (code, len), int code, int len )
- }
-
- #ifdef __GNUC__
-+static
- inline
- #endif
- void puteol _P0( void ) /* write byte-aligned EOL */
-@@ -69,6 +71,7 @@ void puteol _P0( void ) /* write byte-aligned EOL */
- }
-
- #ifdef __GNUC__
-+static
- inline
- #endif
- void putwhitespan _P1( (l), int l )
-@@ -100,6 +103,7 @@ void putwhitespan _P1( (l), int l )
- }
-
- #ifdef __GNUC__
-+static
- inline
- #endif
- void putblackspan _P1( (l), int l )
diff --git a/patches/mgetty-1.1.36/series b/patches/mgetty-1.1.36/series
deleted file mode 100644
index a518c09ac..000000000
--- a/patches/mgetty-1.1.36/series
+++ /dev/null
@@ -1,6 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-fix-install.patch
-0002-fix-building-on-arm64.patch
-0003-fix-building-with-gcc-7.x.patch
-# 96cac79d77bdaba764aa0a1ae734b06b - git-ptx-patches magic
diff --git a/patches/minicom-2.8/0002-lib-usleep.c-fix-error-NULL-undeclared.patch b/patches/minicom-2.8/0002-lib-usleep.c-fix-error-NULL-undeclared.patch
deleted file mode 100644
index 79e414295..000000000
--- a/patches/minicom-2.8/0002-lib-usleep.c-fix-error-NULL-undeclared.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Roland Hieber <rhi@pengutronix.de>
-Date: Mon, 24 May 2021 22:52:00 +0200
-Subject: [PATCH] lib/usleep.c: fix error: 'NULL' undeclared
-
-This fixes compilation with GCC 11:
-
- usleep.c: In function 'usleep':
- usleep.c:14:12: error: 'NULL' undeclared (first use in this function)
- usleep.c:14:12: note: 'NULL' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
- usleep.c:14:12: note: each undeclared identifier is reported only once for each function it appears in
- make[2]: *** [Makefile:365: usleep.o] Error 1
----
- lib/usleep.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/lib/usleep.c b/lib/usleep.c
-index af9dd0326024..861c00ad97d1 100644
---- a/lib/usleep.c
-+++ b/lib/usleep.c
-@@ -2,6 +2,7 @@
- # include <config.h>
- #endif
-
-+#include <stddef.h>
- #include <sys/time.h>
- #include <sys/select.h>
-
diff --git a/patches/minicom-2.8/series b/patches/minicom-2.8/series
deleted file mode 100644
index 259f67ccf..000000000
--- a/patches/minicom-2.8/series
+++ /dev/null
@@ -1,5 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-build-reproducibly.patch
-0002-lib-usleep.c-fix-error-NULL-undeclared.patch
-# beb4273308afd0935d7b8b27ba4f2497 - git-ptx-patches magic
diff --git a/patches/minicom-2.8/0001-build-reproducibly.patch b/patches/minicom-2.9/0001-build-reproducibly.patch
index 2d48c129a..ba445171e 100644
--- a/patches/minicom-2.8/0001-build-reproducibly.patch
+++ b/patches/minicom-2.9/0001-build-reproducibly.patch
@@ -8,10 +8,10 @@ Origin: Debian, https://sources.debian.org/patches/minicom/2.8-1/04reproducible.
1 file changed, 6 deletions(-)
diff --git a/src/minicom.c b/src/minicom.c
-index cfdb76396968..bf3ad17ca089 100644
+index c9ce75c223be..8a006a3e039f 100644
--- a/src/minicom.c
+++ b/src/minicom.c
-@@ -1248,9 +1248,6 @@ int main(int argc, char **argv)
+@@ -1323,9 +1323,6 @@ int main(int argc, char **argv)
switch(c) {
case 'v':
printf(_("%s version %s"), PACKAGE, VERSION);
@@ -21,7 +21,7 @@ index cfdb76396968..bf3ad17ca089 100644
printf("\n");
printf(_("Copyright (C) Miquel van Smoorenburg.\n\n"));
printf(_("This program is free software; you can redistribute it and/or\n"
-@@ -1580,9 +1577,6 @@ int main(int argc, char **argv)
+@@ -1659,9 +1656,6 @@ int main(int argc, char **argv)
mc_wprintf(us, "\n%s %s\r\n", _("Welcome to minicom"), VERSION);
mc_wprintf(us, "\n%s: %s\r\n", _("OPTIONS"), option_string);
diff --git a/patches/minicom-2.9/series b/patches/minicom-2.9/series
new file mode 100644
index 000000000..a3135b429
--- /dev/null
+++ b/patches/minicom-2.9/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-build-reproducibly.patch
+# efe12230191a1ea2d64341d06c8f792b - git-ptx-patches magic
diff --git a/patches/mlpack-4.2.1/0001-HACK-don-t-do-magic-stuff-for-cross-compiling.patch b/patches/mlpack-4.2.1/0001-HACK-don-t-do-magic-stuff-for-cross-compiling.patch
new file mode 100644
index 000000000..4e29a36ad
--- /dev/null
+++ b/patches/mlpack-4.2.1/0001-HACK-don-t-do-magic-stuff-for-cross-compiling.patch
@@ -0,0 +1,67 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Mon, 20 Nov 2023 10:09:15 +0100
+Subject: [PATCH] HACK: don't do magic stuff for cross-compiling
+
+ - PTXdist handles sysroot & toolchain prefix
+ - don't link to arbitrary libraries just for cross-compiling
+ - don't force downloading dependencies
+ - the toolchain will set all necessary compiler optimizations
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ CMake/ConfigureCrossCompile.cmake | 9 +--------
+ CMakeLists.txt | 2 +-
+ board/flags-config.cmake | 2 ++
+ 3 files changed, 4 insertions(+), 9 deletions(-)
+
+diff --git a/CMake/ConfigureCrossCompile.cmake b/CMake/ConfigureCrossCompile.cmake
+index a320d32932be..6f8fb74e28cf 100644
+--- a/CMake/ConfigureCrossCompile.cmake
++++ b/CMake/ConfigureCrossCompile.cmake
+@@ -9,13 +9,6 @@
+
+ if (CMAKE_CROSSCOMPILING)
+ include(board/flags-config.cmake)
+- if (NOT CMAKE_SYSROOT AND (NOT TOOLCHAIN_PREFIX))
+- message(FATAL_ERROR "Neither CMAKE_SYSROOT nor TOOLCHAIN_PREFIX are set; please set both of them and try again.")
+- elseif(NOT CMAKE_SYSROOT)
+- message(FATAL_ERROR "Cannot configure: CMAKE_SYSROOT must be set when performing cross-compiling!")
+- elseif(NOT TOOLCHAIN_PREFIX)
+- message(FATAL_ERROR "Cannot configure: TOOLCHAIN_PREFIX must be set when performing cross-compiling!")
+- endif()
+ endif()
+
+ macro(search_openblas version)
+@@ -40,5 +33,5 @@ macro(search_openblas version)
+ endif()
+ find_library(GFORTRAN NAMES libgfortran.a)
+ find_library(PTHREAD NAMES libpthread.a)
+- set(CROSS_COMPILE_SUPPORT_LIBRARIES ${GFORTRAN} ${PTHREAD})
++ #set(CROSS_COMPILE_SUPPORT_LIBRARIES ${GFORTRAN} ${PTHREAD})
+ endmacro()
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index cc826923286e..71801a8587b5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -45,7 +45,7 @@ endif()
+
+ # Enable auto-download if we are cross compiling.
+ if (CMAKE_CROSSCOMPILING)
+- set(DOWNLOAD_DEPENDENCIES ON)
++ set(DOWNLOAD_DEPENDENCIES OFF)
+ endif()
+
+ # Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES.
+diff --git a/board/flags-config.cmake b/board/flags-config.cmake
+index 06dfecd5cfc9..ddde5bca5826 100644
+--- a/board/flags-config.cmake
++++ b/board/flags-config.cmake
+@@ -63,6 +63,8 @@ elseif(BOARD MATCHES "NORTHWOOD")
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gc-sections")
+ set(OPENBLAS_TARGET "NORTHWOOD")
+ set(OPENBLAS_BINARY "32")
++elseif(BOARD MATCHES "PTX")
++ ## BSP toolchain will set the correct optimizations
+ elseif(BOARD)
+ ## TODO: update documentation with a list of the supported boards.
+ message(FATAL_ERROR "Given BOARD_NAME is not known; please choose a supported board from the list")
diff --git a/patches/mlpack-4.2.1/series b/patches/mlpack-4.2.1/series
new file mode 100644
index 000000000..37997b1dd
--- /dev/null
+++ b/patches/mlpack-4.2.1/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-HACK-don-t-do-magic-stuff-for-cross-compiling.patch
+# b54392880537e8535b4de1e35e1d8bea - git-ptx-patches magic
diff --git a/patches/libgpg-error-1.36/autogen.sh b/patches/mobile-broadband-provider-info-20220725/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/libgpg-error-1.36/autogen.sh
+++ b/patches/mobile-broadband-provider-info-20220725/autogen.sh
diff --git a/patches/mongodb-7.2.2/0001-HACK-SConstruct-remove-metrics.patch b/patches/mongodb-7.2.2/0001-HACK-SConstruct-remove-metrics.patch
new file mode 100644
index 000000000..cc33f9ac5
--- /dev/null
+++ b/patches/mongodb-7.2.2/0001-HACK-SConstruct-remove-metrics.patch
@@ -0,0 +1,40 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Tue, 5 Mar 2024 09:53:43 +0100
+Subject: [PATCH] HACK: SConstruct: remove metrics
+
+It's not available here and not needed.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ SConstruct | 11 -----------
+ 1 file changed, 11 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 6303ad21f4be..7f0415775fbe 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -25,7 +25,6 @@ from pkg_resources import parse_version
+
+ import SCons
+ import SCons.Script
+-from mongo_tooling_metrics.lib.top_level_metrics import SConsToolingMetrics
+ from site_scons.mongo import build_profiles
+
+ # This must be first, even before EnsureSConsVersion, if
+@@ -1692,16 +1691,6 @@ env = Environment(variables=env_vars, **envDict)
+ del envDict
+ env.AddMethod(lambda env, name, **kwargs: add_option(name, **kwargs), 'AddOption')
+
+-# The placement of this is intentional. Here we setup an atexit method to store tooling metrics.
+-# We should only register this function after env, env_vars and the parser have been properly initialized.
+-SConsToolingMetrics.register_metrics(
+- utc_starttime=datetime.utcnow(),
+- artifact_dir=env.Dir('$BUILD_DIR').get_abspath(),
+- env_vars=env_vars,
+- env=env,
+- parser=_parser,
+-)
+-
+ if get_option('build-metrics'):
+ env['BUILD_METRICS_ARTIFACTS_DIR'] = '$BUILD_ROOT/$VARIANT_DIR'
+ env.Tool('build_metrics')
diff --git a/patches/mongodb-7.2.2/0002-HACK-SConstruct-keep-environment.patch b/patches/mongodb-7.2.2/0002-HACK-SConstruct-keep-environment.patch
new file mode 100644
index 000000000..091a6af87
--- /dev/null
+++ b/patches/mongodb-7.2.2/0002-HACK-SConstruct-keep-environment.patch
@@ -0,0 +1,24 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Tue, 5 Mar 2024 09:54:42 +0100
+Subject: [PATCH] HACK: SConstruct: keep environment
+
+Without this $PATH is sometimes lost and the compiler may not be found.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ SConstruct | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/SConstruct b/SConstruct
+index 7f0415775fbe..efe13094e2bc 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1687,7 +1687,7 @@ envDict = dict(
+ if get_option('build-tools') == 'next':
+ SCons.Tool.DefaultToolpath.insert(0, os.path.abspath('site_scons/site_tools/next'))
+
+-env = Environment(variables=env_vars, **envDict)
++env = Environment(ENV=os.environ, variables=env_vars, **envDict)
+ del envDict
+ env.AddMethod(lambda env, name, **kwargs: add_option(name, **kwargs), 'AddOption')
+
diff --git a/patches/mongodb-7.2.2/0003-HACK-don-t-require-GitPython.patch b/patches/mongodb-7.2.2/0003-HACK-don-t-require-GitPython.patch
new file mode 100644
index 000000000..1c6ef68ca
--- /dev/null
+++ b/patches/mongodb-7.2.2/0003-HACK-don-t-require-GitPython.patch
@@ -0,0 +1,24 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Wed, 6 Mar 2024 08:44:02 +0100
+Subject: [PATCH] HACK: don't require GitPython
+
+It's only used to create dist packages, not to build from source
+archive. So remove the 'import' to avoid the dependency.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ site_scons/site_tools/distsrc.py | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/site_scons/site_tools/distsrc.py b/site_scons/site_tools/distsrc.py
+index 893552e6ace4..556c7f0790bb 100644
+--- a/site_scons/site_tools/distsrc.py
++++ b/site_scons/site_tools/distsrc.py
+@@ -20,7 +20,6 @@
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #
+
+-import git
+ import SCons
+ import os
+ import os.path as ospath
diff --git a/patches/mongodb-7.2.2/series b/patches/mongodb-7.2.2/series
new file mode 100644
index 000000000..c23838084
--- /dev/null
+++ b/patches/mongodb-7.2.2/series
@@ -0,0 +1,6 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-HACK-SConstruct-remove-metrics.patch
+0002-HACK-SConstruct-keep-environment.patch
+0003-HACK-don-t-require-GitPython.patch
+# 92efd435d713858af1a7f9c04eb75aab - git-ptx-patches magic
diff --git a/patches/mtd-utils-2.1.2/0002-Add-an-ubifs-mount-helper.patch b/patches/mtd-utils-2.1.2/0002-Add-an-ubifs-mount-helper.patch
deleted file mode 100644
index f45b660ee..000000000
--- a/patches/mtd-utils-2.1.2/0002-Add-an-ubifs-mount-helper.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
-Date: Tue, 6 Oct 2020 11:19:13 +0200
-Subject: [PATCH] Add an ubifs mount helper
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This abstracts away attaching of the right ubi and then selecting the right
-ubi device and volume to mount.
-
-As described in the comment at the top this allows to mount ubifs volumes
-directly from /etc/fstab without having to use hardcoded numbers (which
-depend on mount order and so are unreliable) and extra magic to care for
-attaching.
-
-Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
-Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
-Origin: upstream, commit:efeba0875ed181e7c1c7915742a3868799604d0c
----
- ubifs-utils/Makemodule.am | 2 +
- ubifs-utils/mount.ubifs | 101 ++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 103 insertions(+)
- create mode 100755 ubifs-utils/mount.ubifs
-
-diff --git a/ubifs-utils/Makemodule.am b/ubifs-utils/Makemodule.am
-index 59109ccd613c..5c5d99f7572b 100644
---- a/ubifs-utils/Makemodule.am
-+++ b/ubifs-utils/Makemodule.am
-@@ -47,4 +47,6 @@ UBIFS_EXTRA = \
-
- EXTRA_DIST += $(UBIFS_HEADER) $(UBIFS_EXTRA)
-
-+dist_sbin_SCRIPTS = ubifs-utils/mount.ubifs
-+
- sbin_PROGRAMS += $(UBIFS_BINS)
-diff --git a/ubifs-utils/mount.ubifs b/ubifs-utils/mount.ubifs
-new file mode 100755
-index 000000000000..b94ddc5649f4
---- /dev/null
-+++ b/ubifs-utils/mount.ubifs
-@@ -0,0 +1,101 @@
-+#!/bin/sh
-+
-+# This script should be installed as /sbin/mount.ubifs. The benefit is that an
-+# fstab entry like:
-+#
-+# mtd=mtddev:home /home ubifs defaults 0 0
-+#
-+# results in the ubi contained in the mtd named "mtddev" to be attached (if not
-+# already done) and then the volume named "home" being mounted to /home.
-+
-+# This is called by mount with the following options:
-+# /sbin/mount.ubifs spec dir [-sfnv] [-N namespace] [-o options] [-t type.subtype]
-+
-+spec="$1"
-+shift
-+
-+mtdname2num() {
-+ local name
-+
-+ name="$1"
-+
-+ for d in $(find /sys/class/mtd/ -regex '.*/mtd[0-9]*'); do
-+ case "$d" in
-+ *ro)
-+ continue
-+ ;;
-+ esac
-+
-+ if test "$name" = "$(cat "$d/name")"; then
-+ local dev mtdnum
-+
-+ dev="$(basename "$d")"
-+ mtdnum="${dev#mtd}"
-+ echo "$mtdnum"
-+ return
-+ fi
-+ done
-+
-+ return 1
-+}
-+
-+mtdnum2ubi() {
-+ local mtdnum
-+
-+ mtdnum="$1"
-+
-+ for d in $(find /sys/class/ubi/ -regex '.*/ubi[0-9]*'); do
-+ case "$d" in
-+ *_[0-9]*)
-+ continue
-+ ;;
-+ esac
-+
-+ if test "$mtdnum" = "$(cat "$d/mtd_num")"; then
-+ local ubi
-+
-+ ubi="$(basename "$d")"
-+ echo "$ubi"
-+ return;
-+ fi
-+ done
-+
-+ return 1
-+}
-+
-+mtdnum2ubi_autoattach() {
-+ local mtdnum ubi
-+
-+ mtdnum="$1"
-+
-+ ubi="$(mtdnum2ubi "$mtdnum")" && { echo "$ubi"; return; }
-+
-+ # ubiattach might fail with "mtdX is already attached to ubiY" if there
-+ # is more than one mount to do in the same mtd partition. So ignore errors.
-+ ubiattach -m "$mtdnum" >&2 || true
-+
-+ mtdnum2ubi "$mtdnum"
-+}
-+
-+case "$spec" in
-+ mtd=*:*)
-+ spec="${spec#mtd=}"
-+ mtd="${spec%:*}"
-+ rspec="${spec#*:}"
-+
-+ mtdnum="$(mtdname2num "$mtd")" || {
-+ echo "Failed to find mtdnum for mtd \"$mtd\""
-+ exit 1
-+ }
-+
-+ ubi="$(mtdnum2ubi_autoattach "$mtdnum")" || {
-+ echo "Failed to find ubi for mtd \"$mtd\""
-+ exit 1
-+ }
-+
-+ spec="$ubi:$rspec"
-+
-+ ;;
-+esac
-+
-+/bin/mount -i -t ubifs "$spec" "$@"
diff --git a/patches/mtd-utils-2.1.2/autogen.sh b/patches/mtd-utils-2.1.2/autogen.sh
deleted file mode 120000
index 9f8a4cb7d..000000000
--- a/patches/mtd-utils-2.1.2/autogen.sh
+++ /dev/null
@@ -1 +0,0 @@
-../autogen.sh \ No newline at end of file
diff --git a/patches/mtd-utils-2.1.2/0001-nandmarkbad-new-util-to-mark-blocks-as-bad.patch b/patches/mtd-utils-2.2.0/0001-nandmarkbad-new-util-to-mark-blocks-as-bad.patch
index 1cea5f238..e6ff202a7 100644
--- a/patches/mtd-utils-2.1.2/0001-nandmarkbad-new-util-to-mark-blocks-as-bad.patch
+++ b/patches/mtd-utils-2.2.0/0001-nandmarkbad-new-util-to-mark-blocks-as-bad.patch
@@ -9,7 +9,7 @@ Subject: [PATCH] nandmarkbad: new util to mark blocks as bad
create mode 100644 nand-utils/nandmarkbad.c
diff --git a/nand-utils/Makemodule.am b/nand-utils/Makemodule.am
-index d75b0cb3e36c..c31dcb01f06e 100644
+index cee677783e7a..7fd1de5aa9ae 100644
--- a/nand-utils/Makemodule.am
+++ b/nand-utils/Makemodule.am
@@ -7,6 +7,9 @@ nandwrite_LDADD = libmtd.a
@@ -19,18 +19,18 @@ index d75b0cb3e36c..c31dcb01f06e 100644
+nandmarkbad_SOURCES = nand-utils/nandmarkbad.c
+nandmarkbad_LDADD = libmtd.a
+
- nftldump_SOURCES = nand-utils/nftldump.c
+ nftldump_SOURCES = nand-utils/nftldump.c include/mtd_swab.h
+ nftldump_SOURCES += include/mtd/nftl-user.h include/mtd/ftl-user.h
nftldump_LDADD = libmtd.a
+@@ -23,7 +26,7 @@ NAND_SH = \
-@@ -14,7 +17,7 @@ nftl_format_SOURCES = nand-utils/nftl_format.c
- nftl_format_LDADD = libmtd.a
+ EXTRA_DIST += $(NAND_SH)
- NAND_BINS = \
-- nanddump nandwrite nandtest nftldump nftl_format
-+ nanddump nandwrite nandtest nandmarkbad nftldump nftl_format
+-sbin_PROGRAMS += nanddump nandwrite nandtest nftldump nftl_format nandflipbits
++sbin_PROGRAMS += nanddump nandwrite nandtest nandmarkbad nftldump nftl_format nandflipbits
- NAND_SH = \
- nand-utils/load_nandsim.sh
+ if BUILD_TESTS
+ test_SCRIPTS += $(NAND_SH)
diff --git a/nand-utils/nandmarkbad.c b/nand-utils/nandmarkbad.c
new file mode 100644
index 000000000000..cf05698c3609
diff --git a/patches/libgudev-230/autogen.sh b/patches/mtd-utils-2.2.0/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/libgudev-230/autogen.sh
+++ b/patches/mtd-utils-2.2.0/autogen.sh
diff --git a/patches/mtd-utils-2.1.2/series b/patches/mtd-utils-2.2.0/series
index 7a5eec8b0..92dc1b94f 100644
--- a/patches/mtd-utils-2.1.2/series
+++ b/patches/mtd-utils-2.2.0/series
@@ -1,5 +1,4 @@
# generated by git-ptx-patches
#tag:base --start-number 1
0001-nandmarkbad-new-util-to-mark-blocks-as-bad.patch
-0002-Add-an-ubifs-mount-helper.patch
-# 096af547b18d202f08576089a0cee058 - git-ptx-patches magic
+# 407ded52b82ffa3ff91d50cf6b2388e0 - git-ptx-patches magic
diff --git a/patches/mysql-5.7.11/0001-Fix_buildsystem-use-compile-only-tests.patch b/patches/mysql-5.7.11/0001-Fix_buildsystem-use-compile-only-tests.patch
deleted file mode 100644
index 106abc54a..000000000
--- a/patches/mysql-5.7.11/0001-Fix_buildsystem-use-compile-only-tests.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From: Juergen Borleis <jbe@pengutronix.de>
-Date: Tue, 15 Mar 2016 15:02:02 +0100
-Subject: [PATCH] Fix_buildsystem: use compile only tests
-
-Testing compiler features need not to run to test them.
----
- storage/innobase/innodb.cmake | 36 ++++++++++++++++--------------------
- 1 file changed, 16 insertions(+), 20 deletions(-)
-
-diff --git a/storage/innobase/innodb.cmake b/storage/innobase/innodb.cmake
-index 809e58941e95..944f4e10803b 100644
---- a/storage/innobase/innodb.cmake
-+++ b/storage/innobase/innodb.cmake
-@@ -108,7 +108,7 @@ IF(HAVE_NANOSLEEP)
- ENDIF()
-
- IF(NOT MSVC)
-- CHECK_C_SOURCE_RUNS(
-+ CHECK_CXX_SOURCE_COMPILES(
- "
- #define _GNU_SOURCE
- #include <fcntl.h>
-@@ -131,28 +131,27 @@ ENDIF()
-
- IF(NOT MSVC)
- # either define HAVE_IB_GCC_ATOMIC_BUILTINS or not
--IF(NOT CMAKE_CROSSCOMPILING)
-- CHECK_C_SOURCE_RUNS(
-- "#include<stdint.h>
-+CHECK_CXX_SOURCE_COMPILES("
-+ #include<stdint.h>
- int main()
- {
- __sync_synchronize();
- return(0);
- }"
-- HAVE_IB_GCC_SYNC_SYNCHRONISE
-- )
-- CHECK_C_SOURCE_RUNS(
-- "#include<stdint.h>
-+ HAVE_IB_GCC_SYNC_SYNCHRONISE)
-+
-+CHECK_CXX_SOURCE_COMPILES("
-+ #include<stdint.h>
- int main()
- {
- __atomic_thread_fence(__ATOMIC_ACQUIRE);
- __atomic_thread_fence(__ATOMIC_RELEASE);
- return(0);
- }"
-- HAVE_IB_GCC_ATOMIC_THREAD_FENCE
-- )
-- CHECK_C_SOURCE_RUNS(
-- "#include<stdint.h>
-+ HAVE_IB_GCC_ATOMIC_THREAD_FENCE)
-+
-+CHECK_CXX_SOURCE_COMPILES("
-+ #include<stdint.h>
- int main()
- {
- unsigned char a = 0;
-@@ -164,9 +163,7 @@ IF(NOT CMAKE_CROSSCOMPILING)
- __ATOMIC_RELEASE, __ATOMIC_ACQUIRE);
- return(0);
- }"
-- HAVE_IB_GCC_ATOMIC_COMPARE_EXCHANGE
-- )
--ENDIF()
-+ HAVE_IB_GCC_ATOMIC_COMPARE_EXCHANGE)
-
- IF(HAVE_IB_GCC_SYNC_SYNCHRONISE)
- ADD_DEFINITIONS(-DHAVE_IB_GCC_SYNC_SYNCHRONISE=1)
-@@ -181,8 +178,7 @@ IF(HAVE_IB_GCC_ATOMIC_COMPARE_EXCHANGE)
- ENDIF()
-
- # either define HAVE_IB_ATOMIC_PTHREAD_T_GCC or not
--IF(NOT CMAKE_CROSSCOMPILING)
-- CHECK_C_SOURCE_RUNS(
-+CHECK_CXX_SOURCE_COMPILES(
- "
- #include <pthread.h>
- #include <string.h>
-@@ -201,14 +197,14 @@ IF(NOT CMAKE_CROSSCOMPILING)
- return(0);
- }"
- HAVE_IB_ATOMIC_PTHREAD_T_GCC)
--ENDIF()
-+
- IF(HAVE_IB_ATOMIC_PTHREAD_T_GCC)
- ADD_DEFINITIONS(-DHAVE_IB_ATOMIC_PTHREAD_T_GCC=1)
- ENDIF()
-
- # Only use futexes on Linux if GCC atomics are available
--IF(NOT MSVC AND NOT CMAKE_CROSSCOMPILING)
-- CHECK_C_SOURCE_RUNS(
-+IF(NOT MSVC)
-+ CHECK_CXX_SOURCE_COMPILES(
- "
- #include <stdio.h>
- #include <unistd.h>
diff --git a/patches/mysql-5.7.11/series b/patches/mysql-5.7.11/series
deleted file mode 100644
index 2d5f3314f..000000000
--- a/patches/mysql-5.7.11/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Fix_buildsystem-use-compile-only-tests.patch
-# feb58169ae07f03fb795bfc9055f69a9 - git-ptx-patches magic
diff --git a/patches/nanocom-1.0/0001-Nanocom-fix-its-buildsystem.patch b/patches/nanocom-1.0/0001-Nanocom-fix-its-buildsystem.patch
deleted file mode 100644
index 2e50eff3f..000000000
--- a/patches/nanocom-1.0/0001-Nanocom-fix-its-buildsystem.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From: Juergen Beisert <jbe@pengutronix.de>
-Date: Mon, 2 Jul 2012 10:36:35 +0200
-Subject: [PATCH] Nanocom: fix its buildsystem
-
-This existing Makefile tries to be smarter than Make is. And it fails badly.
- - it is not able to compile twice
- - it does not honor external flags, nor does it list the binaries sources for
- dependency detection
-
-Signed-off.by: Juergen Beisert <jbe@pengutronix.de>
----
- Makefile | 10 ++++------
- 1 files changed, 4 insertions(+), 6 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index df28d22..1ef2aed 100644
---- a/Makefile
-+++ b/Makefile
-@@ -12,13 +12,11 @@
- #** GNU General Public License for more details at www.gnu.org
- #****************************************************************************/
-
--CC=gcc
-+all: nanocom
-
--all: clean nanocom
-+nanocom: mux.c menu.c nanocom.c
-
--nanocom:
-- $(CC) mux.c nanocom.c menu.c -o nanocom
--
- clean:
- rm -rf *.o nanocom
--
-\ No newline at end of file
-+
-+.PHONY: all clean
diff --git a/patches/nanocom-1.0/series b/patches/nanocom-1.0/series
deleted file mode 100644
index 5314ad7bf..000000000
--- a/patches/nanocom-1.0/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Nanocom-fix-its-buildsystem.patch
-# e6ac4f301256655d216f4f37323e0a80 - git-ptx-patches magic
diff --git a/patches/nbd-3.12.1/0001-Don-t-make-the-readit-function-depend-on-WORDS_BIGEN.patch b/patches/nbd-3.12.1/0001-Don-t-make-the-readit-function-depend-on-WORDS_BIGEN.patch
deleted file mode 100644
index c84172966..000000000
--- a/patches/nbd-3.12.1/0001-Don-t-make-the-readit-function-depend-on-WORDS_BIGEN.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From: Wouter Verhelst <w@uter.be>
-Date: Tue, 1 Dec 2015 13:59:27 +0100
-Subject: [PATCH] Don't make the readit() function depend on WORDS_BIGENDIAN
-
-We had accidentally moved the readit() function to the wrong location in
-this cliserv file, which meant that it wouldn't be compiled in if
-WORDS_BIGENDIAN was defined.
-
-Fix that.
----
- cliserv.c | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/cliserv.c b/cliserv.c
-index 93835f9800af..241aa556ed26 100644
---- a/cliserv.c
-+++ b/cliserv.c
-@@ -81,6 +81,7 @@ u64 ntohll(u64 a) {
- hi = ntohl(hi);
- return ((u64) lo) << 32U | hi;
- }
-+#endif
-
- /**
- * Read data from a file descriptor into a buffer
-@@ -103,5 +104,3 @@ void readit(int f, void *buf, size_t len) {
- }
- }
- }
--
--#endif
diff --git a/patches/nbd-3.12.1/series b/patches/nbd-3.12.1/series
deleted file mode 100644
index 21ea7d41f..000000000
--- a/patches/nbd-3.12.1/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Don-t-make-the-readit-function-depend-on-WORDS_BIGEN.patch
-# e21d14a8cba5e1ec12aea4ded98639ae - git-ptx-patches magic
diff --git a/patches/ncftp-3.2.6-src/0001-HACK-configure-always-assume-cross-compiling.patch b/patches/ncftp-3.2.6-src/0001-HACK-configure-always-assume-cross-compiling.patch
deleted file mode 100644
index 6a8d60706..000000000
--- a/patches/ncftp-3.2.6-src/0001-HACK-configure-always-assume-cross-compiling.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Mon, 10 Apr 2017 11:04:41 +0200
-Subject: [PATCH] HACK: configure: always assume cross-compiling
-
-Running a simple test program is not a good check for cross-compiling. It
-succeed e.g. for x86 on x86_64 even if more complex programs fail to run.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- configure | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure b/configure
-index da04298783a7..b3095d8d3c34 100755
---- a/configure
-+++ b/configure
-@@ -847,7 +847,7 @@ if { (eval echo configure:847: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && te
- ac_cv_prog_cc_works=yes
- # If we can't run a trivial program, we are probably using a cross compiler.
- if (./conftest; exit) 2>/dev/null; then
-- ac_cv_prog_cc_cross=no
-+ ac_cv_prog_cc_cross=yes
- else
- ac_cv_prog_cc_cross=yes
- fi
diff --git a/patches/ncftp-3.2.6-src/0002-HACK-avoid-miss-detecting-clang.patch b/patches/ncftp-3.2.6-src/0002-HACK-avoid-miss-detecting-clang.patch
deleted file mode 100644
index 7b4390302..000000000
--- a/patches/ncftp-3.2.6-src/0002-HACK-avoid-miss-detecting-clang.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sun, 18 Aug 2019 14:51:50 +0200
-Subject: [PATCH] HACK: avoid miss detecting clang
-
-Without this gcc may be miss detected as clang if the build path contained
-the word 'clang'.
-
-Note: configure is patched here because regenerating it is broken.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- configure | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure b/configure
-index b3095d8d3c34..0c0546dc2758 100755
---- a/configure
-+++ b/configure
-@@ -1820,7 +1820,7 @@ case "$CC" in
- CC_is_clang="yes"
- ;;
- *)
-- cc_dash_v=`${CC-gcc} -v 2>&1 | grep clang 2>/dev/null`
-+ cc_dash_v=`${CC-gcc} -v 2>&1 | grep '^clang' 2>/dev/null`
- if test -n "$cc_dash_v" ; then
- CC_is_clang="yes"
- fi
-@@ -2984,7 +2984,7 @@ case "$CC" in
- CC_is_clang="yes"
- ;;
- *)
-- cc_dash_v=`${CC-gcc} -v 2>&1 | grep clang 2>/dev/null`
-+ cc_dash_v=`${CC-gcc} -v 2>&1 | grep '^clang' 2>/dev/null`
- if test -n "$cc_dash_v" ; then
- CC_is_clang="yes"
- fi
diff --git a/patches/ncftp-3.2.6-src/series b/patches/ncftp-3.2.6-src/series
deleted file mode 100644
index 1bd3c790e..000000000
--- a/patches/ncftp-3.2.6-src/series
+++ /dev/null
@@ -1,5 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-HACK-configure-always-assume-cross-compiling.patch
-0002-HACK-avoid-miss-detecting-clang.patch
-# f8d883c4a3df4b49699ecdc988b884d4 - git-ptx-patches magic
diff --git a/patches/ncurses-6.2/0001-teach-ncurses-config-about-sysroot.patch b/patches/ncurses-6.4/0001-teach-ncurses-config-about-sysroot.patch
index 707b5a49c..4a8ee40a9 100644
--- a/patches/ncurses-6.2/0001-teach-ncurses-config-about-sysroot.patch
+++ b/patches/ncurses-6.4/0001-teach-ncurses-config-about-sysroot.patch
@@ -7,13 +7,17 @@ This patch teaches ncurses-config about sysroot
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
[ported from ncurses 6.1 to 6.2]
Signed-off-by: Robert Schwebel <rsc@pengutronix.de>
+[ported from ncurses 6.3 to 6.4]
+Signed-off-by: Christian Melki <christian.melki@t2data.com>
---
- misc/ncurses-config.in | 12 ++++++------
- 1 files changed, 6 insertions(+), 6 deletions(-)
+ misc/ncurses-config.in | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
---- ncurses-6.2/misc/ncurses-config.in 2020-02-03 00:34:34.000000000 +0100
-+++ ncurses-6.2-ptx/misc/ncurses-config.in 2020-07-25 23:28:48.123350040 +0200
-@@ -149,10 +149,10 @@
+diff --git a/misc/ncurses-config.in b/misc/ncurses-config.in
+index c9f1cf809843..af37d68c022c 100644
+--- a/misc/ncurses-config.in
++++ b/misc/ncurses-config.in
+@@ -188,10 +188,10 @@ while [ $# -gt 0 ]; do
--cflags)
INCS="@PKG_CFLAGS@"
if [ "x@WITH_OVERWRITE@" = xno ]; then
@@ -26,8 +30,8 @@ Signed-off-by: Robert Schwebel <rsc@pengutronix.de>
fi
sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
$INCS
-@@ -235,7 +235,7 @@
- echo $INCS
+@@ -274,7 +274,7 @@ ENDECHO
+ echo "$INCS"
;;
--libdir)
- echo "${libdir}"
diff --git a/patches/ncurses-6.2/series b/patches/ncurses-6.4/series
index fbdd3447d..fbdd3447d 100644
--- a/patches/ncurses-6.2/series
+++ b/patches/ncurses-6.4/series
diff --git a/patches/net-snmp-5.9/0001-net-snmp-config-add-SYSROOT-support.patch b/patches/net-snmp-5.9.1/0001-net-snmp-config-add-SYSROOT-support.patch
index e1c88ae10..8995a6ea2 100644
--- a/patches/net-snmp-5.9/0001-net-snmp-config-add-SYSROOT-support.patch
+++ b/patches/net-snmp-5.9.1/0001-net-snmp-config-add-SYSROOT-support.patch
@@ -16,10 +16,10 @@ Signed-off-by: Alexander Dahl <post@lespocky.de>
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/net-snmp-config.in b/net-snmp-config.in
-index a412412118af..eb7bd0921fd6 100644
+index 6b5abf8f838a..366d648dfb19 100644
--- a/net-snmp-config.in
+++ b/net-snmp-config.in
-@@ -54,7 +54,7 @@ NSC_LAGENTLIBS="@LAGENTLIBS@ @PERLLDOPTS_FOR_APPS@"
+@@ -57,7 +57,7 @@ NSC_LAGENTLIBS="@LAGENTLIBS@ @PERLLDOPTS_FOR_APPS@"
NSC_LMIBLIBS="@LMIBLIBS@"
NSC_INCLUDEDIR=${includedir}
@@ -28,7 +28,7 @@ index a412412118af..eb7bd0921fd6 100644
NSC_SNMPLIBS="-lnetsnmp ${NSC_LNETSNMPLIBS}"
NSC_SUBAGENTLIBS="-lnetsnmpagent ${NSC_LAGENTLIBS} ${NSC_SNMPLIBS}"
-@@ -140,10 +140,10 @@ else
+@@ -143,10 +143,10 @@ else
;;
#################################################### compile
--base-cflags)
@@ -41,12 +41,12 @@ index a412412118af..eb7bd0921fd6 100644
;;
--srcdir)
echo $NSC_SRCDIR
-@@ -657,7 +657,7 @@ EOF
+@@ -660,7 +660,7 @@ EOF
echo "Ack. Can't create $tmpfile."
exit 1
fi
- cmd="@CC@ $cflags @CFLAGS@ @DEVFLAGS@ -I. -I${NSC_INCLUDEDIR} -o $outname $tmpfile $cfiles $NSC_LDFLAGS $NSC_LIBDIR $NSC_BASE_AGENT_LIBS $NSC_AGENTLIBS $ldflags"
+ cmd="@CC@ $cflags @CFLAGS@ @DEVFLAGS@ -I. -I${SYSROOT}${NSC_INCLUDEDIR} -o $outname $tmpfile $cfiles $NSC_LDFLAGS $NSC_LIBDIR $NSC_BASE_AGENT_LIBS $NSC_AGENTLIBS $ldflags"
echo "running: $cmd"
- `$cmd`
+ echo `$cmd`
result=$?
diff --git a/patches/net-snmp-5.9/0002-Don-t-disable-udp-and-tcp-when-disable-agentx-dom-so.patch b/patches/net-snmp-5.9.1/0002-Don-t-disable-udp-and-tcp-when-disable-agentx-dom-so.patch
index 4b7338c71..bf0b88a82 100644
--- a/patches/net-snmp-5.9/0002-Don-t-disable-udp-and-tcp-when-disable-agentx-dom-so.patch
+++ b/patches/net-snmp-5.9.1/0002-Don-t-disable-udp-and-tcp-when-disable-agentx-dom-so.patch
@@ -17,10 +17,10 @@ semantic.
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/configure.d/config_project_with_enable b/configure.d/config_project_with_enable
-index daa0ccc0fbbc..fd7feba777b4 100644
+index cdf56deb69dc..37d6ed1d6984 100644
--- a/configure.d/config_project_with_enable
+++ b/configure.d/config_project_with_enable
-@@ -777,9 +777,11 @@ NETSNMP_ARG_ENABLE(local-smux,
+@@ -771,9 +771,11 @@ NETSNMP_ARG_ENABLE(local-smux,
fi])
NETSNMP_ARG_ENABLE(agentx-dom-sock-only,
diff --git a/patches/libkcapi-1.1.5/autogen.sh b/patches/net-snmp-5.9.1/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/libkcapi-1.1.5/autogen.sh
+++ b/patches/net-snmp-5.9.1/autogen.sh
diff --git a/patches/net-snmp-5.9/series b/patches/net-snmp-5.9.1/series
index 1596362e4..1596362e4 100644
--- a/patches/net-snmp-5.9/series
+++ b/patches/net-snmp-5.9.1/series
diff --git a/patches/net-snmp-5.9/autogen.sh b/patches/net-snmp-5.9/autogen.sh
deleted file mode 120000
index 9f8a4cb7d..000000000
--- a/patches/net-snmp-5.9/autogen.sh
+++ /dev/null
@@ -1 +0,0 @@
-../autogen.sh \ No newline at end of file
diff --git a/patches/netperf-2.7.0/0001-fix-inlining.patch b/patches/netperf-2.7.0/0001-fix-inlining.patch
deleted file mode 100644
index 1e6689da7..000000000
--- a/patches/netperf-2.7.0/0001-fix-inlining.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 68cfbafb9f239950065e6a0ed7ca60c12668740f Mon Sep 17 00:00:00 2001
-From: Clemens Gruber <clemens.gruber@pqgruber.com>
-Date: Thu, 15 Dec 2016 16:14:01 +0100
-Subject: [PATCH] fix inlining
-
-Signed-off-by: Clemens Gruber <clemens.gruber@pqgruber.com>
----
- src/netlib.c | 14 +-------------
- 1 file changed, 1 insertion(+), 13 deletions(-)
-
-diff --git a/src/netlib.c b/src/netlib.c
-index f3a3fe5e00ab..4465d0f1b5f3 100644
---- a/src/netlib.c
-+++ b/src/netlib.c
-@@ -3997,11 +3997,7 @@ void demo_stream_setup(uint32_t a, uint32_t b) {
- }
- }
-
--#ifdef WIN32
--__forceinline void demo_interval_display(double actual_interval)
--#else
-- inline void demo_interval_display(double actual_interval)
--#endif
-+void demo_interval_display(double actual_interval)
- {
- static int count = 0;
- struct timeval now;
-@@ -4060,15 +4056,7 @@ __forceinline void demo_interval_display(double actual_interval)
- important compilers have supported such a construct so it should
- not be a big deal. raj 2012-01-23 */
-
--#ifdef WIN32
--/* It would seem that the Microsoft compiler will not inline across
-- source files. So there is little point in having an inline
-- directive in that situation. Of course that makes me wonder if an
-- inline directive has to appear in netlib.h... */
- void demo_interval_tick(uint32_t units)
--#else
-- inline void demo_interval_tick(uint32_t units)
--#endif
- {
- double actual_interval = 0.0;
-
---
-2.10.2
-
diff --git a/patches/netperf-2.7.0/series b/patches/netperf-2.7.0/series
deleted file mode 100644
index 54488afdf..000000000
--- a/patches/netperf-2.7.0/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-fix-inlining.patch
-# ce464498af68ff457cdb324c32f1c72b - git-ptx-patches magic
diff --git a/patches/nfs-utils-2.5.3/0001-allow-installing-all-tools-in-usr.patch b/patches/nfs-utils-2.5.3/0001-allow-installing-all-tools-in-usr.patch
deleted file mode 100644
index 8a4415770..000000000
--- a/patches/nfs-utils-2.5.3/0001-allow-installing-all-tools-in-usr.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Wed, 11 Jan 2017 11:57:05 +0100
-Subject: [PATCH] allow installing all tools in /usr
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- utils/mount/Makefile.am | 4 ----
- utils/nfsdcltrack/Makefile.am | 4 ----
- 2 files changed, 8 deletions(-)
-
-diff --git a/utils/mount/Makefile.am b/utils/mount/Makefile.am
-index ad0be93b1def..ece27eeab7bf 100644
---- a/utils/mount/Makefile.am
-+++ b/utils/mount/Makefile.am
-@@ -1,9 +1,5 @@
- ## Process this file with automake to produce Makefile.in
-
--# These binaries go in /sbin (not /usr/sbin), and that cannot be
--# overridden at config time.
--sbindir = /sbin
--
- man8_MANS = mount.nfs.man umount.nfs.man
- man5_MANS = nfs.man
-
-diff --git a/utils/nfsdcltrack/Makefile.am b/utils/nfsdcltrack/Makefile.am
-index 2f7fe3de6922..6a17fce373f0 100644
---- a/utils/nfsdcltrack/Makefile.am
-+++ b/utils/nfsdcltrack/Makefile.am
-@@ -1,9 +1,5 @@
- ## Process this file with automake to produce Makefile.in
-
--# These binaries go in /sbin (not /usr/sbin), and that cannot be
--# overridden at config time. The kernel "knows" the /sbin name.
--sbindir = /sbin
--
- man8_MANS = nfsdcltrack.man
- EXTRA_DIST = $(man8_MANS)
-
diff --git a/patches/nfs-utils-2.5.3/0002-configure-check-for-rpc-rpc.h-presence.patch b/patches/nfs-utils-2.5.3/0002-configure-check-for-rpc-rpc.h-presence.patch
deleted file mode 100644
index 27519121c..000000000
--- a/patches/nfs-utils-2.5.3/0002-configure-check-for-rpc-rpc.h-presence.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From: Roland Hieber <rhi@pengutronix.de>
-Date: Tue, 25 May 2021 01:08:07 +0200
-Subject: [PATCH] configure: check for rpc/rpc.h presence
-
-Recent versions of glibc (since 2.26?) no longer supply rpc/rpc.h.
-Detect such cases and prompt the user to build with libtirpc instead.
-
-Signed-off-by: Roland Hieber <rhi@pengutronix.de>
-Signed-off-by: Steve Dickson <steved@redhat.com>
-Origin: upstream, http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=be7365239abf8556773b063730621967b9971708
----
- configure.ac | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index f2e1bd30d0f2..25e988dfa33c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -335,6 +335,13 @@ AC_CHECK_HEADERS([sched.h], [], [])
- AC_CHECK_FUNCS([unshare fstatat statx], [] , [])
- AC_LIBPTHREAD([])
-
-+# rpc/rpc.h can come from the glibc or from libtirpc
-+nfsutils_save_CPPFLAGS="${CPPFLAGS}"
-+CPPFLAGS="${CPPFLAGS} ${TIRPC_CFLAGS}"
-+AC_CHECK_HEADER(rpc/rpc.h, ,
-+ AC_MSG_ERROR([Header file rpc/rpc.h not found - maybe try building with --enable-tirpc]))
-+CPPFLAGS="${nfsutils_save_CPPFLAGS}"
-+
- if test "$enable_nfsv4" = yes; then
- dnl check for libevent libraries and headers
- AC_LIBEVENT
diff --git a/patches/nfs-utils-2.5.3/autogen.sh b/patches/nfs-utils-2.5.3/autogen.sh
deleted file mode 120000
index 9f8a4cb7d..000000000
--- a/patches/nfs-utils-2.5.3/autogen.sh
+++ /dev/null
@@ -1 +0,0 @@
-../autogen.sh \ No newline at end of file
diff --git a/patches/nfs-utils-2.5.3/series b/patches/nfs-utils-2.5.3/series
deleted file mode 100644
index b6261ed8f..000000000
--- a/patches/nfs-utils-2.5.3/series
+++ /dev/null
@@ -1,5 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-allow-installing-all-tools-in-usr.patch
-0002-configure-check-for-rpc-rpc.h-presence.patch
-# e74bb66e111cbf71e8ff8030c9081753 - git-ptx-patches magic
diff --git a/patches/nftables-0.8.3/0001-configure-don-t-enable-xtables-when-without-xtables-.patch b/patches/nftables-0.8.3/0001-configure-don-t-enable-xtables-when-without-xtables-.patch
deleted file mode 100644
index 2b5ff1bf5..000000000
--- a/patches/nftables-0.8.3/0001-configure-don-t-enable-xtables-when-without-xtables-.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From: Florian Westphal <fw@strlen.de>
-Date: Wed, 4 Apr 2018 13:53:28 +0200
-Subject: [PATCH] configure: don't enable xtables when --without-xtables is
- passed
-
-AC_ARG_WITH runs this when EITHER --with-foo or --without-foo is given,
-so use 'withval'.
-
-After this patch:
-./configure -> xtables off
-./configure --with-xtables -> xtables on
-./configure --without-xtables -> xtables off (was on).
-
-Reported-by: Alexander Dahl <ada@thorsis.com>
-Signed-off-by: Florian Westphal <fw@strlen.de>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 2d0b1b939a18..74e721cd4691 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -99,7 +99,7 @@ AM_CONDITIONAL([BUILD_CLI], [test "x$with_cli" != xno])
-
- AC_ARG_WITH([xtables], [AS_HELP_STRING([--with-xtables],
- [Use libxtables for iptables interaction)])],
-- [with_libxtables=yes], [with_libxtables=no])
-+ [with_libxtables=$withval], [with_libxtables=no])
- AS_IF([test "x$with_libxtables" != xno], [
- PKG_CHECK_MODULES([XTABLES], [xtables >= 1.6.1])
- AC_DEFINE([HAVE_LIBXTABLES], [1], [0])
diff --git a/patches/nftables-0.8.3/autogen.sh b/patches/nftables-0.8.3/autogen.sh
deleted file mode 120000
index 9f8a4cb7d..000000000
--- a/patches/nftables-0.8.3/autogen.sh
+++ /dev/null
@@ -1 +0,0 @@
-../autogen.sh \ No newline at end of file
diff --git a/patches/nftables-0.8.3/series b/patches/nftables-0.8.3/series
deleted file mode 100644
index d4fe1dc34..000000000
--- a/patches/nftables-0.8.3/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-configure-don-t-enable-xtables-when-without-xtables-.patch
-# 12321dad8667c00b553d2c9b76ee6dd3 - git-ptx-patches magic
diff --git a/patches/nginx-1.18.0/0006-auto-lib-openssl-conf-use-pkg-config.patch b/patches/nginx-1.18.0/0006-auto-lib-openssl-conf-use-pkg-config.patch
deleted file mode 100644
index 5cbd262fe..000000000
--- a/patches/nginx-1.18.0/0006-auto-lib-openssl-conf-use-pkg-config.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Martin Bark <martin@barkynet.com>
-Date: Fri, 6 May 2016 14:48:31 +0100
-Subject: [PATCH] auto/lib/openssl/conf: use pkg-config
-
-Change to using pkg-config to find the path to openssl and its
-dependencies.
-
-Signed-off-by: Martin Bark <martin@barkynet.com>
----
- auto/lib/openssl/conf | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/auto/lib/openssl/conf b/auto/lib/openssl/conf
-index 4fb52df7fe17..32ab2a045209 100644
---- a/auto/lib/openssl/conf
-+++ b/auto/lib/openssl/conf
-@@ -59,8 +59,8 @@ else
- ngx_feature_name="NGX_OPENSSL"
- ngx_feature_run=no
- ngx_feature_incs="#include <openssl/ssl.h>"
-- ngx_feature_path=
-- ngx_feature_libs="-lssl -lcrypto $NGX_LIBDL $NGX_LIBPTHREAD"
-+ ngx_feature_path="$(${PKG_CONFIG:=pkg-config} --cflags-only-I openssl|sed -re 's/(^|\s)-I\s*(\S+)/\1\2/g')"
-+ ngx_feature_libs="$(${PKG_CONFIG:=pkg-config} --libs openssl) $NGX_LIBDL $NGX_LIBPTHREAD"
- ngx_feature_test="SSL_CTX_set_options(NULL, 0)"
- . auto/feature
-
diff --git a/patches/nginx-1.18.0/0100-auto-endianness-add-mechanism-allowing-to-force-resu.patch b/patches/nginx-1.18.0/0100-auto-endianness-add-mechanism-allowing-to-force-resu.patch
deleted file mode 100644
index 8d4ad867a..000000000
--- a/patches/nginx-1.18.0/0100-auto-endianness-add-mechanism-allowing-to-force-resu.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From: Marc Kleine-Budde <mkl@pengutronix.de>
-Date: Wed, 2 Sep 2015 18:20:10 +0200
-Subject: [PATCH] auto/endianness: add mechanism allowing to force result
-
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- auto/endianness | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/auto/endianness b/auto/endianness
-index 1b552b6b37b8..0f2394cfb6a1 100644
---- a/auto/endianness
-+++ b/auto/endianness
-@@ -32,7 +32,7 @@ ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
- eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
-
- if [ -x $NGX_AUTOTEST ]; then
-- if $NGX_AUTOTEST >/dev/null 2>&1; then
-+ if $NGX_AUTOTEST >/dev/null 2>&1 || test "$ngx_force_have_little_endian" = "yes"; then
- echo " little endian"
- have=NGX_HAVE_LITTLE_ENDIAN . auto/have
- else
diff --git a/patches/nginx-1.18.0/0001-auto-type-sizeof-rework-autotest-to-be-cross-compila.patch b/patches/nginx-1.24.0/0001-auto-type-sizeof-rework-autotest-to-be-cross-compila.patch
index bc4c8d527..2353f6400 100644
--- a/patches/nginx-1.18.0/0001-auto-type-sizeof-rework-autotest-to-be-cross-compila.patch
+++ b/patches/nginx-1.24.0/0001-auto-type-sizeof-rework-autotest-to-be-cross-compila.patch
@@ -14,7 +14,7 @@ Refresh for 1.8.0.
Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
[martin@barkynet.com: Updated for 1.10.0]
Signed-off-by: Martin Bark <martin@barkynet.com>
-Signed-off-by: Adam Duskett <Adamduskett@outlook.com>
+Signed-off-by: Adam Duskett <aduskett@gmail.com>
Refresh for 1.12.0
---
auto/types/sizeof | 37 ++++++++++++++++++++++++++++---------
diff --git a/patches/nginx-1.18.0/0002-auto-feature-add-mechanism-allowing-to-force-feature.patch b/patches/nginx-1.24.0/0002-auto-feature-add-mechanism-allowing-to-force-feature.patch
index 4742694ce..4742694ce 100644
--- a/patches/nginx-1.18.0/0002-auto-feature-add-mechanism-allowing-to-force-feature.patch
+++ b/patches/nginx-1.24.0/0002-auto-feature-add-mechanism-allowing-to-force-feature.patch
diff --git a/patches/nginx-1.18.0/0003-auto-set-ngx_feature_run_force_result-for-each-featu.patch b/patches/nginx-1.24.0/0003-auto-set-ngx_feature_run_force_result-for-each-featu.patch
index b468812bd..187dccaa4 100644
--- a/patches/nginx-1.18.0/0003-auto-set-ngx_feature_run_force_result-for-each-featu.patch
+++ b/patches/nginx-1.24.0/0003-auto-set-ngx_feature_run_force_result-for-each-featu.patch
@@ -14,17 +14,19 @@ Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Refresh for 1.8.0.
Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
+[rebased against v1.20.1]
+Signed-off-by: Adam Duskett <Aduskett@gmail.com>
---
auto/cc/conf | 3 +++
auto/cc/name | 1 +
auto/lib/libatomic/conf | 1 +
auto/os/darwin | 3 +++
auto/os/linux | 4 ++++
- auto/unix | 8 ++++++++
- 6 files changed, 20 insertions(+)
+ auto/unix | 7 +++++++
+ 6 files changed, 19 insertions(+)
diff --git a/auto/cc/conf b/auto/cc/conf
-index afbca62bcef9..ad42c8000cca 100644
+index ba31cb88c9c6..2995131ca904 100644
--- a/auto/cc/conf
+++ b/auto/cc/conf
@@ -184,6 +184,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
@@ -104,7 +106,7 @@ index 429468f7fd40..1ed47cca5c89 100644
#include <sys/socket.h>
#include <sys/uio.h>
diff --git a/auto/os/linux b/auto/os/linux
-index 5e280eca75db..50bf84d503d0 100644
+index eb6702679a4b..1d7a0af7ae19 100644
--- a/auto/os/linux
+++ b/auto/os/linux
@@ -37,6 +37,7 @@ fi
@@ -115,7 +117,7 @@ index 5e280eca75db..50bf84d503d0 100644
ngx_feature_incs="#include <sys/epoll.h>"
ngx_feature_path=
ngx_feature_libs=
-@@ -111,6 +112,7 @@ CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE"
+@@ -136,6 +137,7 @@ CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE"
ngx_feature="sendfile()"
ngx_feature_name="NGX_HAVE_SENDFILE"
ngx_feature_run=yes
@@ -123,7 +125,7 @@ index 5e280eca75db..50bf84d503d0 100644
ngx_feature_incs="#include <sys/sendfile.h>
#include <errno.h>"
ngx_feature_path=
-@@ -132,6 +134,7 @@ CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
+@@ -157,6 +159,7 @@ CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
ngx_feature="sendfile64()"
ngx_feature_name="NGX_HAVE_SENDFILE64"
ngx_feature_run=yes
@@ -131,7 +133,7 @@ index 5e280eca75db..50bf84d503d0 100644
ngx_feature_incs="#include <sys/sendfile.h>
#include <errno.h>"
ngx_feature_path=
-@@ -150,6 +153,7 @@ ngx_include="sys/prctl.h"; . auto/include
+@@ -175,6 +178,7 @@ ngx_include="sys/prctl.h"; . auto/include
ngx_feature="prctl(PR_SET_DUMPABLE)"
ngx_feature_name="NGX_HAVE_PR_SET_DUMPABLE"
ngx_feature_run=yes
@@ -140,7 +142,7 @@ index 5e280eca75db..50bf84d503d0 100644
ngx_feature_path=
ngx_feature_libs=
diff --git a/auto/unix b/auto/unix
-index 43d3b25a5456..3da005375cf5 100644
+index 867101982440..679e21213879 100644
--- a/auto/unix
+++ b/auto/unix
@@ -100,6 +100,7 @@ if test -z "$NGX_KQUEUE_CHECKED"; then
@@ -151,31 +153,23 @@ index 43d3b25a5456..3da005375cf5 100644
ngx_feature_incs="#include <sys/event.h>
#include <sys/time.h>"
ngx_feature_path=
-@@ -730,6 +731,7 @@ ngx_feature_test="char buf[1]; struct iovec vec[1]; ssize_t n;
- ngx_feature="sys_nerr"
- ngx_feature_name="NGX_SYS_NERR"
- ngx_feature_run=value
-+ngx_feature_run_force_result="$ngx_force_sys_nerr"
- ngx_feature_incs='#include <errno.h>
- #include <stdio.h>'
- ngx_feature_path=
-@@ -744,6 +746,7 @@ if [ $ngx_found = no ]; then
- ngx_feature="_sys_nerr"
+@@ -722,6 +723,7 @@ if [ $ngx_found = no ]; then
+ ngx_feature="sys_nerr"
ngx_feature_name="NGX_SYS_NERR"
ngx_feature_run=value
+ ngx_feature_run_force_result="$ngx_force_sys_nerr"
ngx_feature_incs='#include <errno.h>
#include <stdio.h>'
ngx_feature_path=
-@@ -759,6 +762,7 @@ if [ $ngx_found = no ]; then
- ngx_feature='maximum errno'
- ngx_feature_name=NGX_SYS_NERR
+@@ -737,6 +739,7 @@ if [ $ngx_found = no ]; then
+ ngx_feature="_sys_nerr"
+ ngx_feature_name="NGX_SYS_NERR"
ngx_feature_run=value
+ ngx_feature_run_force_result="$ngx_force_sys_nerr"
ngx_feature_incs='#include <errno.h>
- #include <string.h>
#include <stdio.h>'
-@@ -841,6 +845,7 @@ ngx_feature_test="void *p; p = memalign(4096, 4096);
+ ngx_feature_path=
+@@ -806,6 +809,7 @@ ngx_feature_test="void *p; p = memalign(4096, 4096);
ngx_feature="mmap(MAP_ANON|MAP_SHARED)"
ngx_feature_name="NGX_HAVE_MAP_ANON"
ngx_feature_run=yes
@@ -183,7 +177,7 @@ index 43d3b25a5456..3da005375cf5 100644
ngx_feature_incs="#include <sys/mman.h>"
ngx_feature_path=
ngx_feature_libs=
-@@ -854,6 +859,7 @@ ngx_feature_test="void *p;
+@@ -819,6 +823,7 @@ ngx_feature_test="void *p;
ngx_feature='mmap("/dev/zero", MAP_SHARED)'
ngx_feature_name="NGX_HAVE_MAP_DEVZERO"
ngx_feature_run=yes
@@ -191,7 +185,7 @@ index 43d3b25a5456..3da005375cf5 100644
ngx_feature_incs="#include <sys/mman.h>
#include <sys/stat.h>
#include <fcntl.h>"
-@@ -869,6 +875,7 @@ ngx_feature_test='void *p; int fd;
+@@ -834,6 +839,7 @@ ngx_feature_test='void *p; int fd;
ngx_feature="System V shared memory"
ngx_feature_name="NGX_HAVE_SYSVSHM"
ngx_feature_run=yes
@@ -199,7 +193,7 @@ index 43d3b25a5456..3da005375cf5 100644
ngx_feature_incs="#include <sys/ipc.h>
#include <sys/shm.h>"
ngx_feature_path=
-@@ -883,6 +890,7 @@ ngx_feature_test="int id;
+@@ -848,6 +854,7 @@ ngx_feature_test="int id;
ngx_feature="POSIX semaphores"
ngx_feature_name="NGX_HAVE_POSIX_SEM"
ngx_feature_run=yes
diff --git a/patches/nginx-1.18.0/0004-auto-lib-libxslt-conf-use-pkg-config.patch b/patches/nginx-1.24.0/0004-auto-lib-libxslt-conf-use-pkg-config.patch
index bd0c07b84..b881dc028 100644
--- a/patches/nginx-1.18.0/0004-auto-lib-libxslt-conf-use-pkg-config.patch
+++ b/patches/nginx-1.24.0/0004-auto-lib-libxslt-conf-use-pkg-config.patch
@@ -6,6 +6,8 @@ Change to using pkg-config to find the path to libxslt and its
dependencies.
Signed-off-by: Martin Bark <martin@barkynet.com>
+[Peter: updated for 1.15.6]
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
auto/lib/libxslt/conf | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/patches/nginx-1.18.0/0005-auto-unix-make-sys_nerr-guessing-cross-friendly.patch b/patches/nginx-1.24.0/0005-auto-unix-make-sys_nerr-guessing-cross-friendly.patch
index 8a98f197f..b2949a069 100644
--- a/patches/nginx-1.18.0/0005-auto-unix-make-sys_nerr-guessing-cross-friendly.patch
+++ b/patches/nginx-1.24.0/0005-auto-unix-make-sys_nerr-guessing-cross-friendly.patch
@@ -14,10 +14,12 @@ Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Refresh for 1.8.0.
Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
+[rebased against v1.20.1]
+Signed-off-by: Adam Duskett <Aduskett@gmail.com>
---
auto/os/sys_nerr | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- auto/unix | 10 ++++++++
- 2 files changed, 88 insertions(+)
+ auto/unix | 8 ++++++
+ 2 files changed, 86 insertions(+)
create mode 100644 auto/os/sys_nerr
diff --git a/auto/os/sys_nerr b/auto/os/sys_nerr
@@ -105,21 +107,16 @@ index 000000000000..8970f5f6ec73
+
+echo " $ngx_sys_nerr"
diff --git a/auto/unix b/auto/unix
-index 3da005375cf5..a67ee3e2939c 100644
+index 679e21213879..12059a2301f2 100644
--- a/auto/unix
+++ b/auto/unix
-@@ -736,6 +736,10 @@ ngx_feature_incs='#include <errno.h>
- #include <stdio.h>'
- ngx_feature_path=
- ngx_feature_libs=
-+
-+if false ; then
-+# Disabled because only valid for native build.
-+
- ngx_feature_test='printf("%d", sys_nerr);'
- . auto/feature
-
-@@ -784,6 +788,12 @@ if [ $ngx_found = no ]; then
+@@ -744,10 +744,18 @@ if [ $ngx_found = no ]; then
+ #include <stdio.h>'
+ ngx_feature_path=
+ ngx_feature_libs=
++ if false ; then
++ # Disabled because only valid for native build.
+ ngx_feature_test='printf("%d", _sys_nerr);'
. auto/feature
fi
diff --git a/patches/nginx-1.24.0/0006-auto-lib-openssl-conf-use-pkg-config.patch b/patches/nginx-1.24.0/0006-auto-lib-openssl-conf-use-pkg-config.patch
new file mode 100644
index 000000000..e06ffd6fe
--- /dev/null
+++ b/patches/nginx-1.24.0/0006-auto-lib-openssl-conf-use-pkg-config.patch
@@ -0,0 +1,247 @@
+From: Martin Bark <martin@barkynet.com>
+Date: Fri, 6 May 2016 14:48:31 +0100
+Subject: [PATCH] auto/lib/openssl/conf: use pkg-config
+
+Change to using pkg-config to find the path to openssl and its
+dependencies.
+
+Signed-off-by: Martin Bark <martin@barkynet.com>
+---
+ auto/lib/openssl/conf | 187 +++++++++++++++++++++++++-------------------------
+ 1 file changed, 94 insertions(+), 93 deletions(-)
+
+diff --git a/auto/lib/openssl/conf b/auto/lib/openssl/conf
+index 4fb52df7fe17..9f30490d745d 100644
+--- a/auto/lib/openssl/conf
++++ b/auto/lib/openssl/conf
+@@ -1,4 +1,3 @@
+-
+ # Copyright (C) Igor Sysoev
+ # Copyright (C) Nginx, Inc.
+
+@@ -7,123 +6,125 @@ if [ $OPENSSL != NONE ]; then
+
+ case "$CC" in
+
+- cl | bcc32)
+- have=NGX_OPENSSL . auto/have
+- have=NGX_SSL . auto/have
+-
+- CFLAGS="$CFLAGS -DNO_SYS_TYPES_H"
+-
+- CORE_INCS="$CORE_INCS $OPENSSL/openssl/include"
+- CORE_DEPS="$CORE_DEPS $OPENSSL/openssl/include/openssl/ssl.h"
+-
+- if [ -f $OPENSSL/ms/do_ms.bat ]; then
+- # before OpenSSL 1.1.0
+- CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/ssleay32.lib"
+- CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libeay32.lib"
+- else
+- # OpenSSL 1.1.0+
+- CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libssl.lib"
+- CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libcrypto.lib"
+- fi
+-
+- # libeay32.lib requires gdi32.lib
+- CORE_LIBS="$CORE_LIBS gdi32.lib"
+- # OpenSSL 1.0.0 requires crypt32.lib
+- CORE_LIBS="$CORE_LIBS crypt32.lib"
+- ;;
+-
+- *)
+- have=NGX_OPENSSL . auto/have
+- have=NGX_SSL . auto/have
+-
+- CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
+- CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
+- CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
+- CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
+- CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
+- CORE_LIBS="$CORE_LIBS $NGX_LIBPTHREAD"
+-
+- if [ "$NGX_PLATFORM" = win32 ]; then
+- CORE_LIBS="$CORE_LIBS -lgdi32 -lcrypt32 -lws2_32"
+- fi
+- ;;
++ cl | bcc32)
++ have=NGX_OPENSSL . auto/have
++ have=NGX_SSL . auto/have
++
++ CFLAGS="$CFLAGS -DNO_SYS_TYPES_H"
++
++ CORE_INCS="$CORE_INCS $OPENSSL/openssl/include"
++ CORE_DEPS="$CORE_DEPS $OPENSSL/openssl/include/openssl/ssl.h"
++
++ if [ -f $OPENSSL/ms/do_ms.bat ]; then
++ # before OpenSSL 1.1.0
++ CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/ssleay32.lib"
++ CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libeay32.lib"
++ else
++ # OpenSSL 1.1.0+
++ CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libssl.lib"
++ CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libcrypto.lib"
++ fi
++
++ # libeay32.lib requires gdi32.lib
++ CORE_LIBS="$CORE_LIBS gdi32.lib"
++ # OpenSSL 1.0.0 requires crypt32.lib
++ CORE_LIBS="$CORE_LIBS crypt32.lib"
++ ;;
++
++ *)
++ have=NGX_OPENSSL . auto/have
++ have=NGX_SSL . auto/have
++
++ CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
++ CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
++ CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
++ CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
++ CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
++ CORE_LIBS="$CORE_LIBS $NGX_LIBPTHREAD"
++
++ if [ "$NGX_PLATFORM" = win32 ]; then
++ CORE_LIBS="$CORE_LIBS -lgdi32 -lcrypt32 -lws2_32"
++ fi
++ ;;
+ esac
+
+ else
+
+ if [ "$NGX_PLATFORM" != win32 ]; then
+
+- OPENSSL=NO
++ OPENSSL=NO
+
+- ngx_feature="OpenSSL library"
+- ngx_feature_name="NGX_OPENSSL"
+- ngx_feature_run=no
+- ngx_feature_incs="#include <openssl/ssl.h>"
+- ngx_feature_path=
+- ngx_feature_libs="-lssl -lcrypto $NGX_LIBDL $NGX_LIBPTHREAD"
+- ngx_feature_test="SSL_CTX_set_options(NULL, 0)"
+- . auto/feature
++ ngx_feature="OpenSSL library"
++ ngx_feature_name="NGX_OPENSSL"
++ ngx_feature_run=no
++ ngx_feature_incs="#include <openssl/ssl.h>"
++ ngx_feature_path=
++ ngx_feature_path="$(${PKG_CONFIG:=pkg-config} --cflags-only-I openssl|
++ sed -re 's/(^|\s)-I\s*(\S+)/\1\2/g')"
++ ngx_feature_libs="$(${PKG_CONFIG:=pkg-config} --libs openssl)"
++ ngx_feature_test="SSL_CTX_set_options(NULL, 0)"
++ . auto/feature
+
+- if [ $ngx_found = no ]; then
++ if [ $ngx_found = no ]; then
+
+- # FreeBSD port
++ # FreeBSD port
+
+- ngx_feature="OpenSSL library in /usr/local/"
+- ngx_feature_path="/usr/local/include"
++ ngx_feature="OpenSSL library in /usr/local/"
++ ngx_feature_path="/usr/local/include"
+
+- if [ $NGX_RPATH = YES ]; then
+- ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lssl -lcrypto"
+- else
+- ngx_feature_libs="-L/usr/local/lib -lssl -lcrypto"
+- fi
++ if [ $NGX_RPATH = YES ]; then
++ ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lssl -lcrypto"
++ else
++ ngx_feature_libs="-L/usr/local/lib -lssl -lcrypto"
++ fi
+
+- ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"
++ ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"
+
+- . auto/feature
+- fi
++ . auto/feature
++ fi
+
+- if [ $ngx_found = no ]; then
++ if [ $ngx_found = no ]; then
+
+- # NetBSD port
++ # NetBSD port
+
+- ngx_feature="OpenSSL library in /usr/pkg/"
+- ngx_feature_path="/usr/pkg/include"
++ ngx_feature="OpenSSL library in /usr/pkg/"
++ ngx_feature_path="/usr/pkg/include"
+
+- if [ $NGX_RPATH = YES ]; then
+- ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lssl -lcrypto"
+- else
+- ngx_feature_libs="-L/usr/pkg/lib -lssl -lcrypto"
+- fi
++ if [ $NGX_RPATH = YES ]; then
++ ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lssl -lcrypto"
++ else
++ ngx_feature_libs="-L/usr/pkg/lib -lssl -lcrypto"
++ fi
+
+- ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"
++ ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"
+
+- . auto/feature
+- fi
++ . auto/feature
++ fi
+
+- if [ $ngx_found = no ]; then
++ if [ $ngx_found = no ]; then
+
+- # MacPorts
++ # MacPorts
+
+- ngx_feature="OpenSSL library in /opt/local/"
+- ngx_feature_path="/opt/local/include"
++ ngx_feature="OpenSSL library in /opt/local/"
++ ngx_feature_path="/opt/local/include"
+
+- if [ $NGX_RPATH = YES ]; then
+- ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lssl -lcrypto"
+- else
+- ngx_feature_libs="-L/opt/local/lib -lssl -lcrypto"
+- fi
++ if [ $NGX_RPATH = YES ]; then
++ ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lssl -lcrypto"
++ else
++ ngx_feature_libs="-L/opt/local/lib -lssl -lcrypto"
++ fi
+
+- ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"
++ ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"
+
+- . auto/feature
+- fi
++ . auto/feature
++ fi
+
+- if [ $ngx_found = yes ]; then
+- have=NGX_SSL . auto/have
+- CORE_INCS="$CORE_INCS $ngx_feature_path"
+- CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
+- OPENSSL=YES
+- fi
++ if [ $ngx_found = yes ]; then
++ have=NGX_SSL . auto/have
++ CORE_INCS="$CORE_INCS $ngx_feature_path"
++ CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
++ OPENSSL=YES
++ fi
+ fi
+
+ if [ $OPENSSL != YES ]; then
+@@ -136,7 +137,7 @@ into the system, or build the OpenSSL library statically from the source
+ with nginx by using --with-openssl=<path> option.
+
+ END
+- exit 1
++ exit 1
+ fi
+
+ fi
diff --git a/patches/nginx-1.18.0/0007-auto-lib-libgd-conf-use-pkg-config.patch b/patches/nginx-1.24.0/0007-auto-lib-libgd-conf-use-pkg-config.patch
index 2f1c80013..bc496436a 100644
--- a/patches/nginx-1.18.0/0007-auto-lib-libgd-conf-use-pkg-config.patch
+++ b/patches/nginx-1.24.0/0007-auto-lib-libgd-conf-use-pkg-config.patch
@@ -6,22 +6,27 @@ Change to using pkg-config to find the path to libgd and its
dependencies.
Signed-off-by: Martin Bark <martin@barkynet.com>
+[Peter: updated for 1.15.6]
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+[Fabrice: use pkg-config instead of gdlib-config]
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
- auto/lib/libgd/conf | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
+ auto/lib/libgd/conf | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/auto/lib/libgd/conf b/auto/lib/libgd/conf
-index 678639767a63..1a4379a5e45c 100644
+index 678639767a63..031bcfec86ad 100644
--- a/auto/lib/libgd/conf
+++ b/auto/lib/libgd/conf
-@@ -7,8 +7,8 @@
+@@ -7,8 +7,9 @@
ngx_feature_name=
ngx_feature_run=no
ngx_feature_incs="#include <gd.h>"
- ngx_feature_path=
- ngx_feature_libs="-lgd"
-+ ngx_feature_path="$(${GDLIB_CONFIG:=gdlib-config} --includedir)"
-+ ngx_feature_libs="$(${GDLIB_CONFIG:=gdlib-config} --libs)"
++ ngx_feature_path="$(${PKG_CONFIG:=pkg-config} --cflags-only-I gdlib|
++ sed -re 's/(^|\s)-I\s*(\S+)/\1\2/g')"
++ ngx_feature_libs="$(${PKG_CONFIG:=pkg-config} --libs gdlib)"
ngx_feature_test="gdImagePtr img = gdImageCreateFromGifPtr(1, NULL);
(void) img"
. auto/feature
diff --git a/patches/nginx-1.18.0/0008-src-os-unix-ngx_linux_config.h-only-include-dlfcn.h-.patch b/patches/nginx-1.24.0/0008-src-os-unix-ngx_linux_config.h-only-include-dlfcn.h-.patch
index 43b3e2e38..a1eb9e5cc 100644
--- a/patches/nginx-1.18.0/0008-src-os-unix-ngx_linux_config.h-only-include-dlfcn.h-.patch
+++ b/patches/nginx-1.24.0/0008-src-os-unix-ngx_linux_config.h-only-include-dlfcn.h-.patch
@@ -9,7 +9,7 @@ Signed-off-by: Martin Bark <martin@barkynet.com>
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/os/unix/ngx_linux_config.h b/src/os/unix/ngx_linux_config.h
-index 3036caebf630..e282a1f7533c 100644
+index 88fef47cefeb..ceb2f6175bf5 100644
--- a/src/os/unix/ngx_linux_config.h
+++ b/src/os/unix/ngx_linux_config.h
@@ -55,10 +55,12 @@
diff --git a/patches/nginx-1.24.0/0009-auto-os-linux-fix-build-with-libxcrypt.patch b/patches/nginx-1.24.0/0009-auto-os-linux-fix-build-with-libxcrypt.patch
new file mode 100644
index 000000000..a65123aeb
--- /dev/null
+++ b/patches/nginx-1.24.0/0009-auto-os-linux-fix-build-with-libxcrypt.patch
@@ -0,0 +1,34 @@
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Fri, 2 Apr 2021 09:18:26 +0200
+Subject: [PATCH] auto/os/linux: fix build with libxcrypt
+
+If crypt_r is found in libcrypt, add -lcrypt to CORE_LIBS to avoid the
+following build failure with libxcrypt:
+
+objs/ngx_modules.o \
+-lpcre -L/home/giuliobenetti/autobuild/run/instance-3/output-1/host/bin/../xtensa-buildroot-linux-uclibc/sysroot/usr/lib -lssl -lcrypto -L/home/giuliobenetti/autobuild/run/instance-3/output-1/host/bin/../xtensa-buildroot-linux-uclibc/sysroot/usr/lib -lxslt -lxml2 -lGeoIP \
+-Wl,-E
+/home/giuliobenetti/autobuild/run/instance-3/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/9.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: objs/src/os/unix/ngx_user.o:/home/giuliobenetti/autobuild/run/instance-3/output-1/build/nginx-1.18.0/src/os/unix/ngx_user.c:18: undefined reference to `crypt_r'
+
+Fixes:
+ - http://autobuild.buildroot.org/results/79a51b0d348e756517b5c9ce815a67f5c657e7e6
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ auto/os/linux | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/auto/os/linux b/auto/os/linux
+index 1d7a0af7ae19..d8afcb78ca37 100644
+--- a/auto/os/linux
++++ b/auto/os/linux
+@@ -232,6 +232,9 @@ ngx_feature_test="struct crypt_data cd;
+ crypt_r(\"key\", \"salt\", &cd);"
+ . auto/feature
+
++if [ $ngx_found = yes ]; then
++ CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
++fi
+
+ ngx_include="sys/vfs.h"; . auto/include
+
diff --git a/patches/nginx-1.24.0/0010-Allow-forcing-of-endianness-for-cross-compilation.patch b/patches/nginx-1.24.0/0010-Allow-forcing-of-endianness-for-cross-compilation.patch
new file mode 100644
index 000000000..da9f27cc6
--- /dev/null
+++ b/patches/nginx-1.24.0/0010-Allow-forcing-of-endianness-for-cross-compilation.patch
@@ -0,0 +1,114 @@
+From: Nevo Hed <nhed+buildroot@starry.com>
+Date: Mon, 30 Aug 2021 13:28:13 -0400
+Subject: [PATCH] Allow forcing of endianness for cross-compilation
+
+Upstream-status: Invalid (upstream doesn't support cross-compilation)
+See https://trac.nginx.org/nginx/ticket/2240
+
+Signed-off-by: Nevo Hed <nhed+buildroot@starry.com>
+---
+ auto/endianness | 61 +++++++++++++++++++++++++++++++++++++--------------------
+ auto/options | 6 ++++++
+ 2 files changed, 46 insertions(+), 21 deletions(-)
+
+diff --git a/auto/endianness b/auto/endianness
+index 1b552b6b37b8..4b2a3cd75bcc 100644
+--- a/auto/endianness
++++ b/auto/endianness
+@@ -26,25 +26,44 @@ int main(void) {
+
+ END
+
+-ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
+- -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
+-
+-eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
+-
+-if [ -x $NGX_AUTOTEST ]; then
+- if $NGX_AUTOTEST >/dev/null 2>&1; then
+- echo " little endian"
++case "${NGX_FORCE_ENDIANNESS}" in
++ little)
++ echo " little endian (forced)"
+ have=NGX_HAVE_LITTLE_ENDIAN . auto/have
+- else
+- echo " big endian"
+- fi
+-
+- rm -rf $NGX_AUTOTEST*
+-
+-else
+- rm -rf $NGX_AUTOTEST*
+-
+- echo
+- echo "$0: error: cannot detect system byte ordering"
+- exit 1
+-fi
++ ;;
++
++ big)
++ echo " big endian (forced)"
++ ;;
++
++ "")
++ ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
++ -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
++
++ eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
++
++ if [ -x $NGX_AUTOTEST ]; then
++ if $NGX_AUTOTEST >/dev/null 2>&1; then
++ echo " little endian"
++ have=NGX_HAVE_LITTLE_ENDIAN . auto/have
++ else
++ echo " big endian"
++ fi
++
++ rm -rf $NGX_AUTOTEST*
++
++ else
++ rm -rf $NGX_AUTOTEST*
++
++ echo
++ echo "$0: error: cannot detect system byte ordering"
++ exit 1
++ fi
++ ;;
++
++ *)
++ echo
++ echo "$0: error: invalid \"--force-endianness=${NGX_FORCE_ENDIANNESS}\""
++ exit 1
++ ;;
++esac
+diff --git a/auto/options b/auto/options
+index 48f3a1a4251b..7f4163d3449a 100644
+--- a/auto/options
++++ b/auto/options
+@@ -17,6 +17,8 @@ NGX_USER=
+ NGX_GROUP=
+ NGX_BUILD=
+
++NGX_FORCE_ENDIANNESS=
++
+ CC=${CC:-cc}
+ CPP=
+ NGX_OBJS=objs
+@@ -197,6 +199,8 @@ do
+ --user=*) NGX_USER="$value" ;;
+ --group=*) NGX_GROUP="$value" ;;
+
++ --force-endianness=*) NGX_FORCE_ENDIANNESS="$value" ;;
++
+ --crossbuild=*) NGX_PLATFORM="$value" ;;
+
+ --build=*) NGX_BUILD="$value" ;;
+@@ -434,6 +438,8 @@ cat << END
+ --build=NAME set build name
+ --builddir=DIR set build directory
+
++ --force-endianness=<big>|<little> force endianness
++
+ --with-select_module enable select module
+ --without-select_module disable select module
+ --with-poll_module enable poll module
diff --git a/patches/nginx-1.18.0/0101-auto-unix-allow-overriding-the-IPv6-build-tests.patch b/patches/nginx-1.24.0/0100-auto-unix-allow-overriding-the-IPv6-build-tests.patch
index d8c4a04b1..81e04691b 100644
--- a/patches/nginx-1.18.0/0101-auto-unix-allow-overriding-the-IPv6-build-tests.patch
+++ b/patches/nginx-1.24.0/0100-auto-unix-allow-overriding-the-IPv6-build-tests.patch
@@ -30,7 +30,7 @@ index 8016d802e7a8..a9c6b6ee5eeb 100644
END
diff --git a/auto/unix b/auto/unix
-index a67ee3e2939c..1c3c1cf5996f 100644
+index 12059a2301f2..f467fef04868 100644
--- a/auto/unix
+++ b/auto/unix
@@ -440,7 +440,8 @@ ngx_feature_test="struct in_pktinfo pkt;
@@ -43,7 +43,7 @@ index a67ee3e2939c..1c3c1cf5996f 100644
ngx_feature_incs="#include <sys/socket.h>
#include <netinet/in.h>"
ngx_feature_path=
-@@ -668,7 +669,8 @@ ngx_param=NGX_MAX_TIME_T_VALUE; ngx_value=$ngx_max_value; . auto/types/value
+@@ -645,7 +646,8 @@ ngx_param=NGX_MAX_TIME_T_VALUE; ngx_value=$ngx_max_value; . auto/types/value
ngx_feature="AF_INET6"
ngx_feature_name="NGX_HAVE_INET6"
diff --git a/patches/nginx-1.18.0/series b/patches/nginx-1.24.0/series
index 92d0a70c8..1eeb9c431 100644
--- a/patches/nginx-1.18.0/series
+++ b/patches/nginx-1.24.0/series
@@ -9,7 +9,8 @@
0006-auto-lib-openssl-conf-use-pkg-config.patch
0007-auto-lib-libgd-conf-use-pkg-config.patch
0008-src-os-unix-ngx_linux_config.h-only-include-dlfcn.h-.patch
+0009-auto-os-linux-fix-build-with-libxcrypt.patch
+0010-Allow-forcing-of-endianness-for-cross-compilation.patch
#tag:ptxdist --start-number 100
-0100-auto-endianness-add-mechanism-allowing-to-force-resu.patch
-0101-auto-unix-allow-overriding-the-IPv6-build-tests.patch
-# 2d82d97a87698e491d40c417a32a8a6b - git-ptx-patches magic
+0100-auto-unix-allow-overriding-the-IPv6-build-tests.patch
+# 8b3a0cda12fc98d0ea43c37b609327f9 - git-ptx-patches magic
diff --git a/patches/ninja-1.8.2/0007-don-t-close-open-fds.patch b/patches/ninja-1.11.1.g95dee.kitware.jobserver-1/0001-don-t-close-open-fds.patch
index 8da54d4bd..0155a62bb 100644
--- a/patches/ninja-1.8.2/0007-don-t-close-open-fds.patch
+++ b/patches/ninja-1.11.1.g95dee.kitware.jobserver-1/0001-don-t-close-open-fds.patch
@@ -10,10 +10,10 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure.py b/configure.py
-index 41d95469c00d..d5e34a0eeb3a 100755
+index a239b90eef44..1f287c116d66 100755
--- a/configure.py
+++ b/configure.py
-@@ -186,7 +186,7 @@ class Bootstrap:
+@@ -191,7 +191,7 @@ class Bootstrap:
try:
if self.verbose:
print(cmdline)
@@ -22,7 +22,7 @@ index 41d95469c00d..d5e34a0eeb3a 100755
except subprocess.CalledProcessError:
print('when running: ', cmdline)
raise
-@@ -683,4 +683,4 @@ if options.bootstrap:
+@@ -722,4 +722,4 @@ if options.bootstrap:
if options.verbose:
rebuild_args.append('-v')
diff --git a/patches/ninja-1.11.1.g95dee.kitware.jobserver-1/series b/patches/ninja-1.11.1.g95dee.kitware.jobserver-1/series
new file mode 100644
index 000000000..05bd05b30
--- /dev/null
+++ b/patches/ninja-1.11.1.g95dee.kitware.jobserver-1/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-don-t-close-open-fds.patch
+# 9f9c2c8544d68ab2c7db95cac6cf30bc - git-ptx-patches magic
diff --git a/patches/ninja-1.8.2/0001-Add-GNU-make-jobserver-client-support.patch b/patches/ninja-1.8.2/0001-Add-GNU-make-jobserver-client-support.patch
deleted file mode 100644
index 5c23e036e..000000000
--- a/patches/ninja-1.8.2/0001-Add-GNU-make-jobserver-client-support.patch
+++ /dev/null
@@ -1,478 +0,0 @@
-From: Stefan Becker <stefanb@gpartner-nvidia.com>
-Date: Tue, 22 Mar 2016 13:48:07 +0200
-Subject: [PATCH] Add GNU make jobserver client support
-
-- add new TokenPool interface
-- GNU make implementation for TokenPool parses and verifies the magic
- information from the MAKEFLAGS environment variable
-- RealCommandRunner tries to acquire TokenPool
- * if no token pool is available then there is no change in behaviour
-- When a token pool is available then RealCommandRunner behaviour
- changes as follows
- * CanRunMore() only returns true if TokenPool::Acquire() returns true
- * StartCommand() calls TokenPool::Reserve()
- * WaitForCommand() calls TokenPool::Release()
-
-Documentation for GNU make jobserver
-
- http://make.mad-scientist.net/papers/jobserver-implementation/
-
-Fixes https://github.com/ninja-build/ninja/issues/1139
----
- configure.py | 2 +
- src/build.cc | 59 ++++++++-----
- src/build.h | 3 +
- src/tokenpool-gnu-make.cc | 211 ++++++++++++++++++++++++++++++++++++++++++++++
- src/tokenpool-none.cc | 27 ++++++
- src/tokenpool.h | 26 ++++++
- 6 files changed, 308 insertions(+), 20 deletions(-)
- create mode 100644 src/tokenpool-gnu-make.cc
- create mode 100644 src/tokenpool-none.cc
- create mode 100644 src/tokenpool.h
-
-diff --git a/configure.py b/configure.py
-index a4437489426e..41d95469c00d 100755
---- a/configure.py
-+++ b/configure.py
-@@ -499,6 +499,7 @@ for name in ['build',
- objs += cxx(name)
- if platform.is_windows():
- for name in ['subprocess-win32',
-+ 'tokenpool-none',
- 'includes_normalize-win32',
- 'msvc_helper-win32',
- 'msvc_helper_main-win32']:
-@@ -508,6 +509,7 @@ if platform.is_windows():
- objs += cc('getopt')
- else:
- objs += cxx('subprocess-posix')
-+ objs += cxx('tokenpool-gnu-make')
- if platform.is_aix():
- objs += cc('getopt')
- if platform.is_msvc():
-diff --git a/src/build.cc b/src/build.cc
-index 61ef0e849add..cc796ff838fa 100644
---- a/src/build.cc
-+++ b/src/build.cc
-@@ -38,6 +38,7 @@
- #include "graph.h"
- #include "state.h"
- #include "subprocess.h"
-+#include "tokenpool.h"
- #include "util.h"
-
- namespace {
-@@ -347,7 +348,7 @@ bool Plan::AddSubTarget(Node* node, Node* dependent, string* err) {
- }
-
- Edge* Plan::FindWork() {
-- if (ready_.empty())
-+ if (!more_ready())
- return NULL;
- set<Edge*>::iterator e = ready_.begin();
- Edge* edge = *e;
-@@ -485,8 +486,8 @@ void Plan::Dump() {
- }
-
- struct RealCommandRunner : public CommandRunner {
-- explicit RealCommandRunner(const BuildConfig& config) : config_(config) {}
-- virtual ~RealCommandRunner() {}
-+ explicit RealCommandRunner(const BuildConfig& config);
-+ virtual ~RealCommandRunner();
- virtual bool CanRunMore();
- virtual bool StartCommand(Edge* edge);
- virtual bool WaitForCommand(Result* result);
-@@ -495,9 +496,18 @@ struct RealCommandRunner : public CommandRunner {
-
- const BuildConfig& config_;
- SubprocessSet subprocs_;
-+ TokenPool *tokens_;
- map<Subprocess*, Edge*> subproc_to_edge_;
- };
-
-+RealCommandRunner::RealCommandRunner(const BuildConfig& config) : config_(config) {
-+ tokens_ = TokenPool::Get();
-+}
-+
-+RealCommandRunner::~RealCommandRunner() {
-+ delete tokens_;
-+}
-+
- vector<Edge*> RealCommandRunner::GetActiveEdges() {
- vector<Edge*> edges;
- for (map<Subprocess*, Edge*>::iterator e = subproc_to_edge_.begin();
-@@ -508,14 +518,18 @@ vector<Edge*> RealCommandRunner::GetActiveEdges() {
-
- void RealCommandRunner::Abort() {
- subprocs_.Clear();
-+ if (tokens_)
-+ tokens_->Clear();
- }
-
- bool RealCommandRunner::CanRunMore() {
- size_t subproc_number =
- subprocs_.running_.size() + subprocs_.finished_.size();
- return (int)subproc_number < config_.parallelism
-- && ((subprocs_.running_.empty() || config_.max_load_average <= 0.0f)
-- || GetLoadAverage() < config_.max_load_average);
-+ && (subprocs_.running_.empty() ||
-+ ((config_.max_load_average <= 0.0f ||
-+ GetLoadAverage() < config_.max_load_average)
-+ && (!tokens_ || tokens_->Acquire())));
- }
-
- bool RealCommandRunner::StartCommand(Edge* edge) {
-@@ -523,6 +537,8 @@ bool RealCommandRunner::StartCommand(Edge* edge) {
- Subprocess* subproc = subprocs_.Add(command, edge->use_console());
- if (!subproc)
- return false;
-+ if (tokens_)
-+ tokens_->Reserve();
- subproc_to_edge_.insert(make_pair(subproc, edge));
-
- return true;
-@@ -536,6 +552,9 @@ bool RealCommandRunner::WaitForCommand(Result* result) {
- return false;
- }
-
-+ if (tokens_)
-+ tokens_->Release();
-+
- result->status = subproc->Finish();
- result->output = subproc->GetOutput();
-
-@@ -644,23 +663,23 @@ bool Builder::Build(string* err) {
- // Second, we attempt to wait for / reap the next finished command.
- while (plan_.more_to_do()) {
- // See if we can start any more commands.
-- if (failures_allowed && command_runner_->CanRunMore()) {
-- if (Edge* edge = plan_.FindWork()) {
-- if (!StartEdge(edge, err)) {
-- Cleanup();
-- status_->BuildFinished();
-- return false;
-- }
--
-- if (edge->is_phony()) {
-- plan_.EdgeFinished(edge, Plan::kEdgeSucceeded);
-- } else {
-- ++pending_commands;
-- }
-+ if (failures_allowed && plan_.more_ready() &&
-+ command_runner_->CanRunMore()) {
-+ Edge* edge = plan_.FindWork();
-+ if (!StartEdge(edge, err)) {
-+ Cleanup();
-+ status_->BuildFinished();
-+ return false;
-+ }
-
-- // We made some progress; go back to the main loop.
-- continue;
-+ if (edge->is_phony()) {
-+ plan_.EdgeFinished(edge, Plan::kEdgeSucceeded);
-+ } else {
-+ ++pending_commands;
- }
-+
-+ // We made some progress; go back to the main loop.
-+ continue;
- }
-
- // See if we can reap any finished commands.
-diff --git a/src/build.h b/src/build.h
-index 43786f1c928f..cca7e8d8181d 100644
---- a/src/build.h
-+++ b/src/build.h
-@@ -53,6 +53,9 @@ struct Plan {
- /// Returns true if there's more work to be done.
- bool more_to_do() const { return wanted_edges_ > 0 && command_edges_ > 0; }
-
-+ /// Returns true if there's more edges ready to start
-+ bool more_ready() const { return !ready_.empty(); }
-+
- /// Dumps the current state of the plan.
- void Dump();
-
-diff --git a/src/tokenpool-gnu-make.cc b/src/tokenpool-gnu-make.cc
-new file mode 100644
-index 000000000000..a8f9b7139d23
---- /dev/null
-+++ b/src/tokenpool-gnu-make.cc
-@@ -0,0 +1,211 @@
-+// Copyright 2016 Google Inc. All Rights Reserved.
-+//
-+// 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.
-+
-+#include "tokenpool.h"
-+
-+#include <errno.h>
-+#include <fcntl.h>
-+#include <poll.h>
-+#include <unistd.h>
-+#include <signal.h>
-+#include <stdio.h>
-+#include <string.h>
-+#include <stdlib.h>
-+
-+// TokenPool implementation for GNU make jobserver
-+// (http://make.mad-scientist.net/papers/jobserver-implementation/)
-+struct GNUmakeTokenPool : public TokenPool {
-+ GNUmakeTokenPool();
-+ virtual ~GNUmakeTokenPool();
-+
-+ virtual bool Acquire();
-+ virtual void Reserve();
-+ virtual void Release();
-+ virtual void Clear();
-+
-+ bool Setup();
-+
-+ private:
-+ int available_;
-+ int used_;
-+
-+#ifdef _WIN32
-+ // @TODO
-+#else
-+ int rfd_;
-+ int wfd_;
-+
-+ struct sigaction old_act_;
-+ bool restore_;
-+
-+ static int dup_rfd_;
-+ static void CloseDupRfd(int signum);
-+
-+ bool CheckFd(int fd);
-+ bool SetAlarmHandler();
-+#endif
-+
-+ void Return();
-+};
-+
-+// every instance owns an implicit token -> available_ == 1
-+GNUmakeTokenPool::GNUmakeTokenPool() : available_(1), used_(0),
-+ rfd_(-1), wfd_(-1), restore_(false) {
-+}
-+
-+GNUmakeTokenPool::~GNUmakeTokenPool() {
-+ Clear();
-+ if (restore_)
-+ sigaction(SIGALRM, &old_act_, NULL);
-+}
-+
-+bool GNUmakeTokenPool::CheckFd(int fd) {
-+ if (fd < 0)
-+ return false;
-+ int ret = fcntl(fd, F_GETFD);
-+ if (ret < 0)
-+ return false;
-+ return true;
-+}
-+
-+int GNUmakeTokenPool::dup_rfd_ = -1;
-+
-+void GNUmakeTokenPool::CloseDupRfd(int signum) {
-+ close(dup_rfd_);
-+ dup_rfd_ = -1;
-+}
-+
-+bool GNUmakeTokenPool::SetAlarmHandler() {
-+ struct sigaction act;
-+ memset(&act, 0, sizeof(act));
-+ act.sa_handler = CloseDupRfd;
-+ if (sigaction(SIGALRM, &act, &old_act_) < 0) {
-+ perror("sigaction:");
-+ return(false);
-+ } else {
-+ restore_ = true;
-+ return(true);
-+ }
-+}
-+
-+bool GNUmakeTokenPool::Setup() {
-+ const char *value = getenv("MAKEFLAGS");
-+ if (value) {
-+ // GNU make <= 4.1
-+ const char *jobserver = strstr(value, "--jobserver-fds=");
-+ // GNU make => 4.2
-+ if (!jobserver)
-+ jobserver = strstr(value, "--jobserver-auth=");
-+ if (jobserver) {
-+ int rfd = -1;
-+ int wfd = -1;
-+ if ((sscanf(jobserver, "%*[^=]=%d,%d", &rfd, &wfd) == 2) &&
-+ CheckFd(rfd) &&
-+ CheckFd(wfd) &&
-+ SetAlarmHandler()) {
-+ printf("ninja: using GNU make jobserver.\n");
-+ rfd_ = rfd;
-+ wfd_ = wfd;
-+ return true;
-+ }
-+ }
-+ }
-+
-+ return false;
-+}
-+
-+bool GNUmakeTokenPool::Acquire() {
-+ if (available_ > 0)
-+ return true;
-+
-+#ifdef USE_PPOLL
-+ pollfd pollfds[] = {{rfd_, POLLIN, 0}};
-+ int ret = poll(pollfds, 1, 0);
-+#else
-+ fd_set set;
-+ struct timeval timeout = { 0, 0 };
-+ FD_ZERO(&set);
-+ FD_SET(rfd_, &set);
-+ int ret = select(rfd_ + 1, &set, NULL, NULL, &timeout);
-+#endif
-+ if (ret > 0) {
-+ dup_rfd_ = dup(rfd_);
-+
-+ if (dup_rfd_ != -1) {
-+ struct sigaction act, old_act;
-+ int ret = 0;
-+
-+ memset(&act, 0, sizeof(act));
-+ act.sa_handler = CloseDupRfd;
-+ if (sigaction(SIGCHLD, &act, &old_act) == 0) {
-+ char buf;
-+
-+ // block until token read, child exits or timeout
-+ alarm(1);
-+ ret = read(dup_rfd_, &buf, 1);
-+ alarm(0);
-+
-+ sigaction(SIGCHLD, &old_act, NULL);
-+ }
-+
-+ CloseDupRfd(0);
-+
-+ if (ret > 0) {
-+ available_++;
-+ return true;
-+ }
-+ }
-+ }
-+ return false;
-+}
-+
-+void GNUmakeTokenPool::Reserve() {
-+ available_--;
-+ used_++;
-+}
-+
-+void GNUmakeTokenPool::Return() {
-+ const char buf = '+';
-+ while (1) {
-+ int ret = write(wfd_, &buf, 1);
-+ if (ret > 0)
-+ available_--;
-+ if ((ret != -1) || (errno != EINTR))
-+ return;
-+ // write got interrupted - retry
-+ }
-+}
-+
-+void GNUmakeTokenPool::Release() {
-+ available_++;
-+ used_--;
-+ if (available_ > 1)
-+ Return();
-+}
-+
-+void GNUmakeTokenPool::Clear() {
-+ while (used_ > 0)
-+ Release();
-+ while (available_ > 1)
-+ Return();
-+}
-+
-+struct TokenPool *TokenPool::Get(void) {
-+ GNUmakeTokenPool *tokenpool = new GNUmakeTokenPool;
-+ if (tokenpool->Setup())
-+ return tokenpool;
-+ else
-+ delete tokenpool;
-+ return NULL;
-+}
-diff --git a/src/tokenpool-none.cc b/src/tokenpool-none.cc
-new file mode 100644
-index 000000000000..602b3316f54d
---- /dev/null
-+++ b/src/tokenpool-none.cc
-@@ -0,0 +1,27 @@
-+// Copyright 2016 Google Inc. All Rights Reserved.
-+//
-+// 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.
-+
-+#include "tokenpool.h"
-+
-+#include <fcntl.h>
-+#include <poll.h>
-+#include <unistd.h>
-+#include <stdio.h>
-+#include <string.h>
-+#include <stdlib.h>
-+
-+// No-op TokenPool implementation
-+struct TokenPool *TokenPool::Get(void) {
-+ return NULL;
-+}
-diff --git a/src/tokenpool.h b/src/tokenpool.h
-new file mode 100644
-index 000000000000..f560b1083b65
---- /dev/null
-+++ b/src/tokenpool.h
-@@ -0,0 +1,26 @@
-+// Copyright 2016 Google Inc. All Rights Reserved.
-+//
-+// 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.
-+
-+// interface to token pool
-+struct TokenPool {
-+ virtual ~TokenPool() {}
-+
-+ virtual bool Acquire() = 0;
-+ virtual void Reserve() = 0;
-+ virtual void Release() = 0;
-+ virtual void Clear() = 0;
-+
-+ // returns NULL if token pool is not available
-+ static struct TokenPool *Get(void);
-+};
diff --git a/patches/ninja-1.8.2/0002-Add-TokenPool-monitoring-to-SubprocessSet-DoWork.patch b/patches/ninja-1.8.2/0002-Add-TokenPool-monitoring-to-SubprocessSet-DoWork.patch
deleted file mode 100644
index f8ee646d7..000000000
--- a/patches/ninja-1.8.2/0002-Add-TokenPool-monitoring-to-SubprocessSet-DoWork.patch
+++ /dev/null
@@ -1,554 +0,0 @@
-From: Stefan Becker <stefanb@gpartner-nvidia.com>
-Date: Fri, 27 May 2016 16:47:10 +0300
-Subject: [PATCH] Add TokenPool monitoring to SubprocessSet::DoWork()
-
-Improve on the original jobserver client implementation. This makes
-ninja a more aggressive GNU make jobserver client.
-
-- add monitor interface to TokenPool
-- TokenPool is passed down when main loop indicates that more work is
- ready and would be allowed to start if a token becomes available
-- posix: update DoWork() to monitor TokenPool read file descriptor
-- WaitForCommand() exits when DoWork() sets token flag
-- Main loop starts over when WaitForCommand() sets token exit status
----
- src/build.cc | 53 +++++++++++++++++++++++++++++++++++------------
- src/build.h | 3 ++-
- src/build_test.cc | 9 ++++++--
- src/exit_status.h | 3 ++-
- src/subprocess-posix.cc | 33 +++++++++++++++++++++++++++--
- src/subprocess-win32.cc | 2 +-
- src/subprocess.h | 8 ++++++-
- src/subprocess_test.cc | 47 ++++++++++++++++++++++++++++-------------
- src/tokenpool-gnu-make.cc | 5 +++++
- src/tokenpool.h | 6 ++++++
- 10 files changed, 134 insertions(+), 35 deletions(-)
-
-diff --git a/src/build.cc b/src/build.cc
-index cc796ff838fa..219bb9f1ff48 100644
---- a/src/build.cc
-+++ b/src/build.cc
-@@ -49,8 +49,9 @@ struct DryRunCommandRunner : public CommandRunner {
-
- // Overridden from CommandRunner:
- virtual bool CanRunMore();
-+ virtual bool AcquireToken();
- virtual bool StartCommand(Edge* edge);
-- virtual bool WaitForCommand(Result* result);
-+ virtual bool WaitForCommand(Result* result, bool more_ready);
-
- private:
- queue<Edge*> finished_;
-@@ -60,12 +61,16 @@ bool DryRunCommandRunner::CanRunMore() {
- return true;
- }
-
-+bool DryRunCommandRunner::AcquireToken() {
-+ return true;
-+}
-+
- bool DryRunCommandRunner::StartCommand(Edge* edge) {
- finished_.push(edge);
- return true;
- }
-
--bool DryRunCommandRunner::WaitForCommand(Result* result) {
-+bool DryRunCommandRunner::WaitForCommand(Result* result, bool more_ready) {
- if (finished_.empty())
- return false;
-
-@@ -489,8 +494,9 @@ struct RealCommandRunner : public CommandRunner {
- explicit RealCommandRunner(const BuildConfig& config);
- virtual ~RealCommandRunner();
- virtual bool CanRunMore();
-+ virtual bool AcquireToken();
- virtual bool StartCommand(Edge* edge);
-- virtual bool WaitForCommand(Result* result);
-+ virtual bool WaitForCommand(Result* result, bool more_ready);
- virtual vector<Edge*> GetActiveEdges();
- virtual void Abort();
-
-@@ -527,9 +533,12 @@ bool RealCommandRunner::CanRunMore() {
- subprocs_.running_.size() + subprocs_.finished_.size();
- return (int)subproc_number < config_.parallelism
- && (subprocs_.running_.empty() ||
-- ((config_.max_load_average <= 0.0f ||
-- GetLoadAverage() < config_.max_load_average)
-- && (!tokens_ || tokens_->Acquire())));
-+ (config_.max_load_average <= 0.0f ||
-+ GetLoadAverage() < config_.max_load_average));
-+}
-+
-+bool RealCommandRunner::AcquireToken() {
-+ return (!tokens_ || tokens_->Acquire());
- }
-
- bool RealCommandRunner::StartCommand(Edge* edge) {
-@@ -544,14 +553,23 @@ bool RealCommandRunner::StartCommand(Edge* edge) {
- return true;
- }
-
--bool RealCommandRunner::WaitForCommand(Result* result) {
-+bool RealCommandRunner::WaitForCommand(Result* result, bool more_ready) {
- Subprocess* subproc;
-- while ((subproc = subprocs_.NextFinished()) == NULL) {
-- bool interrupted = subprocs_.DoWork();
-+ subprocs_.ResetTokenAvailable();
-+ while (((subproc = subprocs_.NextFinished()) == NULL) &&
-+ !subprocs_.IsTokenAvailable()) {
-+ bool interrupted = subprocs_.DoWork(more_ready ? tokens_ : NULL);
- if (interrupted)
- return false;
- }
-
-+ // token became available
-+ if (subproc == NULL) {
-+ result->status = ExitTokenAvailable;
-+ return true;
-+ }
-+
-+ // command completed
- if (tokens_)
- tokens_->Release();
-
-@@ -662,9 +680,14 @@ bool Builder::Build(string* err) {
- // command runner.
- // Second, we attempt to wait for / reap the next finished command.
- while (plan_.more_to_do()) {
-- // See if we can start any more commands.
-- if (failures_allowed && plan_.more_ready() &&
-- command_runner_->CanRunMore()) {
-+ // See if we can start any more commands...
-+ bool can_run_more =
-+ failures_allowed &&
-+ plan_.more_ready() &&
-+ command_runner_->CanRunMore();
-+
-+ // ... but we also need a token to do that.
-+ if (can_run_more && command_runner_->AcquireToken()) {
- Edge* edge = plan_.FindWork();
- if (!StartEdge(edge, err)) {
- Cleanup();
-@@ -685,7 +708,7 @@ bool Builder::Build(string* err) {
- // See if we can reap any finished commands.
- if (pending_commands) {
- CommandRunner::Result result;
-- if (!command_runner_->WaitForCommand(&result) ||
-+ if (!command_runner_->WaitForCommand(&result, can_run_more) ||
- result.status == ExitInterrupted) {
- Cleanup();
- status_->BuildFinished();
-@@ -693,6 +716,10 @@ bool Builder::Build(string* err) {
- return false;
- }
-
-+ // We might be able to start another command; start the main loop over.
-+ if (result.status == ExitTokenAvailable)
-+ continue;
-+
- --pending_commands;
- if (!FinishCommand(&result, err)) {
- Cleanup();
-diff --git a/src/build.h b/src/build.h
-index cca7e8d8181d..ca605e62e0e3 100644
---- a/src/build.h
-+++ b/src/build.h
-@@ -108,6 +108,7 @@ private:
- struct CommandRunner {
- virtual ~CommandRunner() {}
- virtual bool CanRunMore() = 0;
-+ virtual bool AcquireToken() = 0;
- virtual bool StartCommand(Edge* edge) = 0;
-
- /// The result of waiting for a command.
-@@ -119,7 +120,7 @@ struct CommandRunner {
- bool success() const { return status == ExitSuccess; }
- };
- /// Wait for a command to complete, or return false if interrupted.
-- virtual bool WaitForCommand(Result* result) = 0;
-+ virtual bool WaitForCommand(Result* result, bool more_ready) = 0;
-
- virtual vector<Edge*> GetActiveEdges() { return vector<Edge*>(); }
- virtual void Abort() {}
-diff --git a/src/build_test.cc b/src/build_test.cc
-index 46ab33ef86c8..a1022edcf546 100644
---- a/src/build_test.cc
-+++ b/src/build_test.cc
-@@ -445,8 +445,9 @@ struct FakeCommandRunner : public CommandRunner {
-
- // CommandRunner impl
- virtual bool CanRunMore();
-+ virtual bool AcquireToken();
- virtual bool StartCommand(Edge* edge);
-- virtual bool WaitForCommand(Result* result);
-+ virtual bool WaitForCommand(Result* result, bool more_ready);
- virtual vector<Edge*> GetActiveEdges();
- virtual void Abort();
-
-@@ -547,6 +548,10 @@ bool FakeCommandRunner::CanRunMore() {
- return last_command_ == NULL;
- }
-
-+bool FakeCommandRunner::AcquireToken() {
-+ return true;
-+}
-+
- bool FakeCommandRunner::StartCommand(Edge* edge) {
- assert(!last_command_);
- commands_ran_.push_back(edge->EvaluateCommand());
-@@ -575,7 +580,7 @@ bool FakeCommandRunner::StartCommand(Edge* edge) {
- return true;
- }
-
--bool FakeCommandRunner::WaitForCommand(Result* result) {
-+bool FakeCommandRunner::WaitForCommand(Result* result, bool more_ready) {
- if (!last_command_)
- return false;
-
-diff --git a/src/exit_status.h b/src/exit_status.h
-index a714ece791f7..75ebf6a7a0ce 100644
---- a/src/exit_status.h
-+++ b/src/exit_status.h
-@@ -18,7 +18,8 @@
- enum ExitStatus {
- ExitSuccess,
- ExitFailure,
-- ExitInterrupted
-+ ExitTokenAvailable,
-+ ExitInterrupted,
- };
-
- #endif // NINJA_EXIT_STATUS_H_
-diff --git a/src/subprocess-posix.cc b/src/subprocess-posix.cc
-index 1de22c38f7fa..980fadf78e0d 100644
---- a/src/subprocess-posix.cc
-+++ b/src/subprocess-posix.cc
-@@ -13,6 +13,7 @@
- // limitations under the License.
-
- #include "subprocess.h"
-+#include "tokenpool.h"
-
- #include <assert.h>
- #include <errno.h>
-@@ -219,7 +220,7 @@ Subprocess *SubprocessSet::Add(const string& command, bool use_console) {
- }
-
- #ifdef USE_PPOLL
--bool SubprocessSet::DoWork() {
-+bool SubprocessSet::DoWork(struct TokenPool* tokens) {
- vector<pollfd> fds;
- nfds_t nfds = 0;
-
-@@ -233,6 +234,12 @@ bool SubprocessSet::DoWork() {
- ++nfds;
- }
-
-+ if (tokens) {
-+ pollfd pfd = { tokens->GetMonitorFd(), POLLIN | POLLPRI, 0 };
-+ fds.push_back(pfd);
-+ ++nfds;
-+ }
-+
- interrupted_ = 0;
- int ret = ppoll(&fds.front(), nfds, NULL, &old_mask_);
- if (ret == -1) {
-@@ -265,11 +272,20 @@ bool SubprocessSet::DoWork() {
- ++i;
- }
-
-+ if (tokens) {
-+ pollfd *pfd = &fds[nfds - 1];
-+ if (pfd->fd >= 0) {
-+ assert(pfd->fd == tokens->GetMonitorFd());
-+ if (pfd->revents != 0)
-+ token_available_ = true;
-+ }
-+ }
-+
- return IsInterrupted();
- }
-
- #else // !defined(USE_PPOLL)
--bool SubprocessSet::DoWork() {
-+bool SubprocessSet::DoWork(struct TokenPool* tokens) {
- fd_set set;
- int nfds = 0;
- FD_ZERO(&set);
-@@ -284,6 +300,13 @@ bool SubprocessSet::DoWork() {
- }
- }
-
-+ if (tokens) {
-+ int fd = tokens->GetMonitorFd();
-+ FD_SET(fd, &set);
-+ if (nfds < fd+1)
-+ nfds = fd+1;
-+ }
-+
- interrupted_ = 0;
- int ret = pselect(nfds, &set, 0, 0, 0, &old_mask_);
- if (ret == -1) {
-@@ -312,6 +335,12 @@ bool SubprocessSet::DoWork() {
- ++i;
- }
-
-+ if (tokens) {
-+ int fd = tokens->GetMonitorFd();
-+ if ((fd >= 0) && FD_ISSET(fd, &set))
-+ token_available_ = true;
-+ }
-+
- return IsInterrupted();
- }
- #endif // !defined(USE_PPOLL)
-diff --git a/src/subprocess-win32.cc b/src/subprocess-win32.cc
-index 4bab71939d6d..9b415b0b7bc3 100644
---- a/src/subprocess-win32.cc
-+++ b/src/subprocess-win32.cc
-@@ -236,7 +236,7 @@ Subprocess *SubprocessSet::Add(const string& command, bool use_console) {
- return subprocess;
- }
-
--bool SubprocessSet::DoWork() {
-+bool SubprocessSet::DoWork(struct TokenPool* tokens) {
- DWORD bytes_read;
- Subprocess* subproc;
- OVERLAPPED* overlapped;
-diff --git a/src/subprocess.h b/src/subprocess.h
-index b2d486ca400c..bf1a46090bc1 100644
---- a/src/subprocess.h
-+++ b/src/subprocess.h
-@@ -77,6 +77,8 @@ struct Subprocess {
- friend struct SubprocessSet;
- };
-
-+struct TokenPool;
-+
- /// SubprocessSet runs a ppoll/pselect() loop around a set of Subprocesses.
- /// DoWork() waits for any state change in subprocesses; finished_
- /// is a queue of subprocesses as they finish.
-@@ -85,13 +87,17 @@ struct SubprocessSet {
- ~SubprocessSet();
-
- Subprocess* Add(const string& command, bool use_console = false);
-- bool DoWork();
-+ bool DoWork(struct TokenPool* tokens);
- Subprocess* NextFinished();
- void Clear();
-
- vector<Subprocess*> running_;
- queue<Subprocess*> finished_;
-
-+ bool token_available_;
-+ bool IsTokenAvailable() { return token_available_; }
-+ void ResetTokenAvailable() { token_available_ = false; }
-+
- #ifdef _WIN32
- static BOOL WINAPI NotifyInterrupted(DWORD dwCtrlType);
- static HANDLE ioport_;
-diff --git a/src/subprocess_test.cc b/src/subprocess_test.cc
-index 0a8c2061b7f2..e759ea4574bc 100644
---- a/src/subprocess_test.cc
-+++ b/src/subprocess_test.cc
-@@ -43,10 +43,12 @@ TEST_F(SubprocessTest, BadCommandStderr) {
- Subprocess* subproc = subprocs_.Add("cmd /c ninja_no_such_command");
- ASSERT_NE((Subprocess *) 0, subproc);
-
-+ subprocs_.ResetTokenAvailable();
- while (!subproc->Done()) {
- // Pretend we discovered that stderr was ready for writing.
-- subprocs_.DoWork();
-+ subprocs_.DoWork(NULL);
- }
-+ ASSERT_EQ(false, subprocs_.IsTokenAvailable());
-
- EXPECT_EQ(ExitFailure, subproc->Finish());
- EXPECT_NE("", subproc->GetOutput());
-@@ -57,10 +59,12 @@ TEST_F(SubprocessTest, NoSuchCommand) {
- Subprocess* subproc = subprocs_.Add("ninja_no_such_command");
- ASSERT_NE((Subprocess *) 0, subproc);
-
-+ subprocs_.ResetTokenAvailable();
- while (!subproc->Done()) {
- // Pretend we discovered that stderr was ready for writing.
-- subprocs_.DoWork();
-+ subprocs_.DoWork(NULL);
- }
-+ ASSERT_EQ(false, subprocs_.IsTokenAvailable());
-
- EXPECT_EQ(ExitFailure, subproc->Finish());
- EXPECT_NE("", subproc->GetOutput());
-@@ -76,9 +80,11 @@ TEST_F(SubprocessTest, InterruptChild) {
- Subprocess* subproc = subprocs_.Add("kill -INT $$");
- ASSERT_NE((Subprocess *) 0, subproc);
-
-+ subprocs_.ResetTokenAvailable();
- while (!subproc->Done()) {
-- subprocs_.DoWork();
-+ subprocs_.DoWork(NULL);
- }
-+ ASSERT_EQ(false, subprocs_.IsTokenAvailable());
-
- EXPECT_EQ(ExitInterrupted, subproc->Finish());
- }
-@@ -88,7 +94,7 @@ TEST_F(SubprocessTest, InterruptParent) {
- ASSERT_NE((Subprocess *) 0, subproc);
-
- while (!subproc->Done()) {
-- bool interrupted = subprocs_.DoWork();
-+ bool interrupted = subprocs_.DoWork(NULL);
- if (interrupted)
- return;
- }
-@@ -100,9 +106,11 @@ TEST_F(SubprocessTest, InterruptChildWithSigTerm) {
- Subprocess* subproc = subprocs_.Add("kill -TERM $$");
- ASSERT_NE((Subprocess *) 0, subproc);
-
-+ subprocs_.ResetTokenAvailable();
- while (!subproc->Done()) {
-- subprocs_.DoWork();
-+ subprocs_.DoWork(NULL);
- }
-+ ASSERT_EQ(false, subprocs_.IsTokenAvailable());
-
- EXPECT_EQ(ExitInterrupted, subproc->Finish());
- }
-@@ -112,7 +120,7 @@ TEST_F(SubprocessTest, InterruptParentWithSigTerm) {
- ASSERT_NE((Subprocess *) 0, subproc);
-
- while (!subproc->Done()) {
-- bool interrupted = subprocs_.DoWork();
-+ bool interrupted = subprocs_.DoWork(NULL);
- if (interrupted)
- return;
- }
-@@ -124,9 +132,11 @@ TEST_F(SubprocessTest, InterruptChildWithSigHup) {
- Subprocess* subproc = subprocs_.Add("kill -HUP $$");
- ASSERT_NE((Subprocess *) 0, subproc);
-
-+ subprocs_.ResetTokenAvailable();
- while (!subproc->Done()) {
-- subprocs_.DoWork();
-+ subprocs_.DoWork(NULL);
- }
-+ ASSERT_EQ(false, subprocs_.IsTokenAvailable());
-
- EXPECT_EQ(ExitInterrupted, subproc->Finish());
- }
-@@ -136,7 +146,7 @@ TEST_F(SubprocessTest, InterruptParentWithSigHup) {
- ASSERT_NE((Subprocess *) 0, subproc);
-
- while (!subproc->Done()) {
-- bool interrupted = subprocs_.DoWork();
-+ bool interrupted = subprocs_.DoWork(NULL);
- if (interrupted)
- return;
- }
-@@ -151,9 +161,11 @@ TEST_F(SubprocessTest, Console) {
- subprocs_.Add("test -t 0 -a -t 1 -a -t 2", /*use_console=*/true);
- ASSERT_NE((Subprocess*)0, subproc);
-
-+ subprocs_.ResetTokenAvailable();
- while (!subproc->Done()) {
-- subprocs_.DoWork();
-+ subprocs_.DoWork(NULL);
- }
-+ ASSERT_EQ(false, subprocs_.IsTokenAvailable());
-
- EXPECT_EQ(ExitSuccess, subproc->Finish());
- }
-@@ -165,9 +177,11 @@ TEST_F(SubprocessTest, SetWithSingle) {
- Subprocess* subproc = subprocs_.Add(kSimpleCommand);
- ASSERT_NE((Subprocess *) 0, subproc);
-
-+ subprocs_.ResetTokenAvailable();
- while (!subproc->Done()) {
-- subprocs_.DoWork();
-+ subprocs_.DoWork(NULL);
- }
-+ ASSERT_EQ(false, subprocs_.IsTokenAvailable());
- ASSERT_EQ(ExitSuccess, subproc->Finish());
- ASSERT_NE("", subproc->GetOutput());
-
-@@ -198,12 +212,13 @@ TEST_F(SubprocessTest, SetWithMulti) {
- ASSERT_EQ("", processes[i]->GetOutput());
- }
-
-+ subprocs_.ResetTokenAvailable();
- while (!processes[0]->Done() || !processes[1]->Done() ||
- !processes[2]->Done()) {
- ASSERT_GT(subprocs_.running_.size(), 0u);
-- subprocs_.DoWork();
-+ subprocs_.DoWork(NULL);
- }
--
-+ ASSERT_EQ(false, subprocs_.IsTokenAvailable());
- ASSERT_EQ(0u, subprocs_.running_.size());
- ASSERT_EQ(3u, subprocs_.finished_.size());
-
-@@ -235,8 +250,10 @@ TEST_F(SubprocessTest, SetWithLots) {
- ASSERT_NE((Subprocess *) 0, subproc);
- procs.push_back(subproc);
- }
-+ subprocs_.ResetTokenAvailable();
- while (!subprocs_.running_.empty())
-- subprocs_.DoWork();
-+ subprocs_.DoWork(NULL);
-+ ASSERT_EQ(false, subprocs_.IsTokenAvailable());
- for (size_t i = 0; i < procs.size(); ++i) {
- ASSERT_EQ(ExitSuccess, procs[i]->Finish());
- ASSERT_NE("", procs[i]->GetOutput());
-@@ -252,9 +269,11 @@ TEST_F(SubprocessTest, SetWithLots) {
- // that stdin is closed.
- TEST_F(SubprocessTest, ReadStdin) {
- Subprocess* subproc = subprocs_.Add("cat -");
-+ subprocs_.ResetTokenAvailable();
- while (!subproc->Done()) {
-- subprocs_.DoWork();
-+ subprocs_.DoWork(NULL);
- }
-+ ASSERT_EQ(false, subprocs_.IsTokenAvailable());
- ASSERT_EQ(ExitSuccess, subproc->Finish());
- ASSERT_EQ(1u, subprocs_.finished_.size());
- }
-diff --git a/src/tokenpool-gnu-make.cc b/src/tokenpool-gnu-make.cc
-index a8f9b7139d23..396bb7d87443 100644
---- a/src/tokenpool-gnu-make.cc
-+++ b/src/tokenpool-gnu-make.cc
-@@ -33,6 +33,7 @@ struct GNUmakeTokenPool : public TokenPool {
- virtual void Reserve();
- virtual void Release();
- virtual void Clear();
-+ virtual int GetMonitorFd();
-
- bool Setup();
-
-@@ -201,6 +202,10 @@ void GNUmakeTokenPool::Clear() {
- Return();
- }
-
-+int GNUmakeTokenPool::GetMonitorFd() {
-+ return(rfd_);
-+}
-+
- struct TokenPool *TokenPool::Get(void) {
- GNUmakeTokenPool *tokenpool = new GNUmakeTokenPool;
- if (tokenpool->Setup())
-diff --git a/src/tokenpool.h b/src/tokenpool.h
-index f560b1083b65..301e1998ee8e 100644
---- a/src/tokenpool.h
-+++ b/src/tokenpool.h
-@@ -21,6 +21,12 @@ struct TokenPool {
- virtual void Release() = 0;
- virtual void Clear() = 0;
-
-+#ifdef _WIN32
-+ // @TODO
-+#else
-+ virtual int GetMonitorFd() = 0;
-+#endif
-+
- // returns NULL if token pool is not available
- static struct TokenPool *Get(void);
- };
diff --git a/patches/ninja-1.8.2/0003-Ignore-jobserver-when-jN-is-forced-on-command-line.patch b/patches/ninja-1.8.2/0003-Ignore-jobserver-when-jN-is-forced-on-command-line.patch
deleted file mode 100644
index cd4b78f69..000000000
--- a/patches/ninja-1.8.2/0003-Ignore-jobserver-when-jN-is-forced-on-command-line.patch
+++ /dev/null
@@ -1,192 +0,0 @@
-From: Stefan Becker <chemobejk@gmail.com>
-Date: Sun, 12 Nov 2017 16:58:55 +0200
-Subject: [PATCH] Ignore jobserver when -jN is forced on command line
-
-This emulates the behaviour of GNU make.
-
-- add parallelism_from_cmdline flag to build configuration
-- set the flag when -jN is given on command line
-- pass the flag to TokenPool::Get()
-- GNUmakeTokenPool::Setup()
- * prints a warning when the flag is true and jobserver was detected
- * returns false, i.e. jobserver will be ignored
-- ignore config.parallelism in CanRunMore() when we have a valid
- TokenPool, because it gets always initialized to a default when not
- given on the command line
----
- src/build.cc | 10 ++++++----
- src/build.h | 4 +++-
- src/ninja.cc | 1 +
- src/tokenpool-gnu-make.cc | 34 +++++++++++++++++++---------------
- src/tokenpool-none.cc | 4 ++--
- src/tokenpool.h | 4 ++--
- 6 files changed, 33 insertions(+), 24 deletions(-)
-
-diff --git a/src/build.cc b/src/build.cc
-index 219bb9f1ff48..bc26bdade61b 100644
---- a/src/build.cc
-+++ b/src/build.cc
-@@ -507,7 +507,7 @@ struct RealCommandRunner : public CommandRunner {
- };
-
- RealCommandRunner::RealCommandRunner(const BuildConfig& config) : config_(config) {
-- tokens_ = TokenPool::Get();
-+ tokens_ = TokenPool::Get(config_.parallelism_from_cmdline);
- }
-
- RealCommandRunner::~RealCommandRunner() {
-@@ -529,9 +529,11 @@ void RealCommandRunner::Abort() {
- }
-
- bool RealCommandRunner::CanRunMore() {
-- size_t subproc_number =
-- subprocs_.running_.size() + subprocs_.finished_.size();
-- return (int)subproc_number < config_.parallelism
-+ bool parallelism_limit_not_reached =
-+ tokens_ || // ignore config_.parallelism
-+ ((int) (subprocs_.running_.size() +
-+ subprocs_.finished_.size()) < config_.parallelism);
-+ return parallelism_limit_not_reached
- && (subprocs_.running_.empty() ||
- (config_.max_load_average <= 0.0f ||
- GetLoadAverage() < config_.max_load_average));
-diff --git a/src/build.h b/src/build.h
-index ca605e62e0e3..6bc6fea26e94 100644
---- a/src/build.h
-+++ b/src/build.h
-@@ -128,7 +128,8 @@ struct CommandRunner {
-
- /// Options (e.g. verbosity, parallelism) passed to a build.
- struct BuildConfig {
-- BuildConfig() : verbosity(NORMAL), dry_run(false), parallelism(1),
-+ BuildConfig() : verbosity(NORMAL), dry_run(false),
-+ parallelism(1), parallelism_from_cmdline(false),
- failures_allowed(1), max_load_average(-0.0f) {}
-
- enum Verbosity {
-@@ -139,6 +140,7 @@ struct BuildConfig {
- Verbosity verbosity;
- bool dry_run;
- int parallelism;
-+ bool parallelism_from_cmdline;
- int failures_allowed;
- /// The maximum load average we must not exceed. A negative value
- /// means that we do not have any limit.
-diff --git a/src/ninja.cc b/src/ninja.cc
-index ed004ac8f1fe..4332636c1b64 100644
---- a/src/ninja.cc
-+++ b/src/ninja.cc
-@@ -1063,6 +1063,7 @@ int ReadFlags(int* argc, char*** argv,
- if (*end != 0 || value <= 0)
- Fatal("invalid -j parameter");
- config->parallelism = value;
-+ config->parallelism_from_cmdline = true;
- break;
- }
- case 'k': {
-diff --git a/src/tokenpool-gnu-make.cc b/src/tokenpool-gnu-make.cc
-index 396bb7d87443..af4be05a31cf 100644
---- a/src/tokenpool-gnu-make.cc
-+++ b/src/tokenpool-gnu-make.cc
-@@ -1,4 +1,4 @@
--// Copyright 2016 Google Inc. All Rights Reserved.
-+// Copyright 2016-2017 Google Inc. All Rights Reserved.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
-@@ -35,7 +35,7 @@ struct GNUmakeTokenPool : public TokenPool {
- virtual void Clear();
- virtual int GetMonitorFd();
-
-- bool Setup();
-+ bool Setup(bool ignore);
-
- private:
- int available_;
-@@ -100,7 +100,7 @@ bool GNUmakeTokenPool::SetAlarmHandler() {
- }
- }
-
--bool GNUmakeTokenPool::Setup() {
-+bool GNUmakeTokenPool::Setup(bool ignore) {
- const char *value = getenv("MAKEFLAGS");
- if (value) {
- // GNU make <= 4.1
-@@ -109,16 +109,20 @@ bool GNUmakeTokenPool::Setup() {
- if (!jobserver)
- jobserver = strstr(value, "--jobserver-auth=");
- if (jobserver) {
-- int rfd = -1;
-- int wfd = -1;
-- if ((sscanf(jobserver, "%*[^=]=%d,%d", &rfd, &wfd) == 2) &&
-- CheckFd(rfd) &&
-- CheckFd(wfd) &&
-- SetAlarmHandler()) {
-- printf("ninja: using GNU make jobserver.\n");
-- rfd_ = rfd;
-- wfd_ = wfd;
-- return true;
-+ if (ignore) {
-+ printf("ninja: warning: -jN forced on command line; ignoring GNU make jobserver.\n");
-+ } else {
-+ int rfd = -1;
-+ int wfd = -1;
-+ if ((sscanf(jobserver, "%*[^=]=%d,%d", &rfd, &wfd) == 2) &&
-+ CheckFd(rfd) &&
-+ CheckFd(wfd) &&
-+ SetAlarmHandler()) {
-+ printf("ninja: using GNU make jobserver.\n");
-+ rfd_ = rfd;
-+ wfd_ = wfd;
-+ return true;
-+ }
- }
- }
- }
-@@ -206,9 +210,9 @@ int GNUmakeTokenPool::GetMonitorFd() {
- return(rfd_);
- }
-
--struct TokenPool *TokenPool::Get(void) {
-+struct TokenPool *TokenPool::Get(bool ignore) {
- GNUmakeTokenPool *tokenpool = new GNUmakeTokenPool;
-- if (tokenpool->Setup())
-+ if (tokenpool->Setup(ignore))
- return tokenpool;
- else
- delete tokenpool;
-diff --git a/src/tokenpool-none.cc b/src/tokenpool-none.cc
-index 602b3316f54d..199b22264bc6 100644
---- a/src/tokenpool-none.cc
-+++ b/src/tokenpool-none.cc
-@@ -1,4 +1,4 @@
--// Copyright 2016 Google Inc. All Rights Reserved.
-+// Copyright 2016-2017 Google Inc. All Rights Reserved.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
-@@ -22,6 +22,6 @@
- #include <stdlib.h>
-
- // No-op TokenPool implementation
--struct TokenPool *TokenPool::Get(void) {
-+struct TokenPool *TokenPool::Get(bool ignore) {
- return NULL;
- }
-diff --git a/src/tokenpool.h b/src/tokenpool.h
-index 301e1998ee8e..878a0933c2f0 100644
---- a/src/tokenpool.h
-+++ b/src/tokenpool.h
-@@ -1,4 +1,4 @@
--// Copyright 2016 Google Inc. All Rights Reserved.
-+// Copyright 2016-2017 Google Inc. All Rights Reserved.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
-@@ -28,5 +28,5 @@ struct TokenPool {
- #endif
-
- // returns NULL if token pool is not available
-- static struct TokenPool *Get(void);
-+ static struct TokenPool *Get(bool ignore);
- };
diff --git a/patches/ninja-1.8.2/0004-Honor-lN-from-MAKEFLAGS.patch b/patches/ninja-1.8.2/0004-Honor-lN-from-MAKEFLAGS.patch
deleted file mode 100644
index 2a2505001..000000000
--- a/patches/ninja-1.8.2/0004-Honor-lN-from-MAKEFLAGS.patch
+++ /dev/null
@@ -1,128 +0,0 @@
-From: Stefan Becker <chemobejk@gmail.com>
-Date: Sun, 12 Nov 2017 18:04:12 +0200
-Subject: [PATCH] Honor -lN from MAKEFLAGS
-
-This emulates the behaviour of GNU make.
-
-- build: make a copy of max_load_average and pass it to TokenPool.
-- GNUmakeTokenPool: if we detect a jobserver and a valid -lN argument in
- MAKEFLAGS then set max_load_average to N.
----
- src/build.cc | 10 +++++++---
- src/tokenpool-gnu-make.cc | 19 +++++++++++++++----
- src/tokenpool-none.cc | 2 +-
- src/tokenpool.h | 2 +-
- 4 files changed, 24 insertions(+), 9 deletions(-)
-
-diff --git a/src/build.cc b/src/build.cc
-index bc26bdade61b..6eaf299caeec 100644
---- a/src/build.cc
-+++ b/src/build.cc
-@@ -501,13 +501,17 @@ struct RealCommandRunner : public CommandRunner {
- virtual void Abort();
-
- const BuildConfig& config_;
-+ // copy of config_.max_load_average; can be modified by TokenPool setup
-+ double max_load_average_;
- SubprocessSet subprocs_;
- TokenPool *tokens_;
- map<Subprocess*, Edge*> subproc_to_edge_;
- };
-
- RealCommandRunner::RealCommandRunner(const BuildConfig& config) : config_(config) {
-- tokens_ = TokenPool::Get(config_.parallelism_from_cmdline);
-+ max_load_average_ = config.max_load_average;
-+ tokens_ = TokenPool::Get(config_.parallelism_from_cmdline,
-+ max_load_average_);
- }
-
- RealCommandRunner::~RealCommandRunner() {
-@@ -535,8 +539,8 @@ bool RealCommandRunner::CanRunMore() {
- subprocs_.finished_.size()) < config_.parallelism);
- return parallelism_limit_not_reached
- && (subprocs_.running_.empty() ||
-- (config_.max_load_average <= 0.0f ||
-- GetLoadAverage() < config_.max_load_average));
-+ (max_load_average_ <= 0.0f ||
-+ GetLoadAverage() < max_load_average_));
- }
-
- bool RealCommandRunner::AcquireToken() {
-diff --git a/src/tokenpool-gnu-make.cc b/src/tokenpool-gnu-make.cc
-index af4be05a31cf..fb654c4d88ba 100644
---- a/src/tokenpool-gnu-make.cc
-+++ b/src/tokenpool-gnu-make.cc
-@@ -35,7 +35,7 @@ struct GNUmakeTokenPool : public TokenPool {
- virtual void Clear();
- virtual int GetMonitorFd();
-
-- bool Setup(bool ignore);
-+ bool Setup(bool ignore, double& max_load_average);
-
- private:
- int available_;
-@@ -100,7 +100,7 @@ bool GNUmakeTokenPool::SetAlarmHandler() {
- }
- }
-
--bool GNUmakeTokenPool::Setup(bool ignore) {
-+bool GNUmakeTokenPool::Setup(bool ignore, double& max_load_average) {
- const char *value = getenv("MAKEFLAGS");
- if (value) {
- // GNU make <= 4.1
-@@ -118,9 +118,20 @@ bool GNUmakeTokenPool::Setup(bool ignore) {
- CheckFd(rfd) &&
- CheckFd(wfd) &&
- SetAlarmHandler()) {
-+ const char *l_arg = strstr(value, " -l");
-+ int load_limit = -1;
-+
- printf("ninja: using GNU make jobserver.\n");
- rfd_ = rfd;
- wfd_ = wfd;
-+
-+ // translate GNU make -lN to ninja -lN
-+ if (l_arg &&
-+ (sscanf(l_arg + 3, "%d ", &load_limit) == 1) &&
-+ (load_limit > 0)) {
-+ max_load_average = load_limit;
-+ }
-+
- return true;
- }
- }
-@@ -210,9 +221,9 @@ int GNUmakeTokenPool::GetMonitorFd() {
- return(rfd_);
- }
-
--struct TokenPool *TokenPool::Get(bool ignore) {
-+struct TokenPool *TokenPool::Get(bool ignore, double& max_load_average) {
- GNUmakeTokenPool *tokenpool = new GNUmakeTokenPool;
-- if (tokenpool->Setup(ignore))
-+ if (tokenpool->Setup(ignore, max_load_average))
- return tokenpool;
- else
- delete tokenpool;
-diff --git a/src/tokenpool-none.cc b/src/tokenpool-none.cc
-index 199b22264bc6..e8e25426c39f 100644
---- a/src/tokenpool-none.cc
-+++ b/src/tokenpool-none.cc
-@@ -22,6 +22,6 @@
- #include <stdlib.h>
-
- // No-op TokenPool implementation
--struct TokenPool *TokenPool::Get(bool ignore) {
-+struct TokenPool *TokenPool::Get(bool ignore, double& max_load_average) {
- return NULL;
- }
-diff --git a/src/tokenpool.h b/src/tokenpool.h
-index 878a0933c2f0..f9e8cc2ee081 100644
---- a/src/tokenpool.h
-+++ b/src/tokenpool.h
-@@ -28,5 +28,5 @@ struct TokenPool {
- #endif
-
- // returns NULL if token pool is not available
-- static struct TokenPool *Get(bool ignore);
-+ static struct TokenPool *Get(bool ignore, double& max_load_average);
- };
diff --git a/patches/ninja-1.8.2/0005-Use-LinePrinter-for-TokenPool-messages.patch b/patches/ninja-1.8.2/0005-Use-LinePrinter-for-TokenPool-messages.patch
deleted file mode 100644
index 1894be5a1..000000000
--- a/patches/ninja-1.8.2/0005-Use-LinePrinter-for-TokenPool-messages.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From: Stefan Becker <chemobejk@gmail.com>
-Date: Wed, 6 Dec 2017 22:14:21 +0200
-Subject: [PATCH] Use LinePrinter for TokenPool messages
-
-- replace printf() with calls to LinePrinter
-- print GNU make jobserver message only when verbose build is requested
----
- src/build.cc | 1 +
- src/tokenpool-gnu-make.cc | 22 ++++++++++++++++------
- src/tokenpool-none.cc | 4 +++-
- src/tokenpool.h | 4 +++-
- 4 files changed, 23 insertions(+), 8 deletions(-)
-
-diff --git a/src/build.cc b/src/build.cc
-index 6eaf299caeec..754d362c7162 100644
---- a/src/build.cc
-+++ b/src/build.cc
-@@ -511,6 +511,7 @@ struct RealCommandRunner : public CommandRunner {
- RealCommandRunner::RealCommandRunner(const BuildConfig& config) : config_(config) {
- max_load_average_ = config.max_load_average;
- tokens_ = TokenPool::Get(config_.parallelism_from_cmdline,
-+ config_.verbosity == BuildConfig::VERBOSE,
- max_load_average_);
- }
-
-diff --git a/src/tokenpool-gnu-make.cc b/src/tokenpool-gnu-make.cc
-index fb654c4d88ba..b0d3e6ebc463 100644
---- a/src/tokenpool-gnu-make.cc
-+++ b/src/tokenpool-gnu-make.cc
-@@ -23,6 +23,8 @@
- #include <string.h>
- #include <stdlib.h>
-
-+#include "line_printer.h"
-+
- // TokenPool implementation for GNU make jobserver
- // (http://make.mad-scientist.net/papers/jobserver-implementation/)
- struct GNUmakeTokenPool : public TokenPool {
-@@ -35,7 +37,7 @@ struct GNUmakeTokenPool : public TokenPool {
- virtual void Clear();
- virtual int GetMonitorFd();
-
-- bool Setup(bool ignore, double& max_load_average);
-+ bool Setup(bool ignore, bool verbose, double& max_load_average);
-
- private:
- int available_;
-@@ -100,7 +102,9 @@ bool GNUmakeTokenPool::SetAlarmHandler() {
- }
- }
-
--bool GNUmakeTokenPool::Setup(bool ignore, double& max_load_average) {
-+bool GNUmakeTokenPool::Setup(bool ignore,
-+ bool verbose,
-+ double& max_load_average) {
- const char *value = getenv("MAKEFLAGS");
- if (value) {
- // GNU make <= 4.1
-@@ -109,8 +113,10 @@ bool GNUmakeTokenPool::Setup(bool ignore, double& max_load_average) {
- if (!jobserver)
- jobserver = strstr(value, "--jobserver-auth=");
- if (jobserver) {
-+ LinePrinter printer;
-+
- if (ignore) {
-- printf("ninja: warning: -jN forced on command line; ignoring GNU make jobserver.\n");
-+ printer.PrintOnNewLine("ninja: warning: -jN forced on command line; ignoring GNU make jobserver.\n");
- } else {
- int rfd = -1;
- int wfd = -1;
-@@ -121,7 +127,9 @@ bool GNUmakeTokenPool::Setup(bool ignore, double& max_load_average) {
- const char *l_arg = strstr(value, " -l");
- int load_limit = -1;
-
-- printf("ninja: using GNU make jobserver.\n");
-+ if (verbose) {
-+ printer.PrintOnNewLine("ninja: using GNU make jobserver.\n");
-+ }
- rfd_ = rfd;
- wfd_ = wfd;
-
-@@ -221,9 +229,11 @@ int GNUmakeTokenPool::GetMonitorFd() {
- return(rfd_);
- }
-
--struct TokenPool *TokenPool::Get(bool ignore, double& max_load_average) {
-+struct TokenPool *TokenPool::Get(bool ignore,
-+ bool verbose,
-+ double& max_load_average) {
- GNUmakeTokenPool *tokenpool = new GNUmakeTokenPool;
-- if (tokenpool->Setup(ignore, max_load_average))
-+ if (tokenpool->Setup(ignore, verbose, max_load_average))
- return tokenpool;
- else
- delete tokenpool;
-diff --git a/src/tokenpool-none.cc b/src/tokenpool-none.cc
-index e8e25426c39f..1c1c499c8d9c 100644
---- a/src/tokenpool-none.cc
-+++ b/src/tokenpool-none.cc
-@@ -22,6 +22,8 @@
- #include <stdlib.h>
-
- // No-op TokenPool implementation
--struct TokenPool *TokenPool::Get(bool ignore, double& max_load_average) {
-+struct TokenPool *TokenPool::Get(bool ignore,
-+ bool verbose,
-+ double& max_load_average) {
- return NULL;
- }
-diff --git a/src/tokenpool.h b/src/tokenpool.h
-index f9e8cc2ee081..4bf477f20c8a 100644
---- a/src/tokenpool.h
-+++ b/src/tokenpool.h
-@@ -28,5 +28,7 @@ struct TokenPool {
- #endif
-
- // returns NULL if token pool is not available
-- static struct TokenPool *Get(bool ignore, double& max_load_average);
-+ static struct TokenPool *Get(bool ignore,
-+ bool verbose,
-+ double& max_load_average);
- };
diff --git a/patches/ninja-1.8.2/0006-Prepare-PR-for-merging.patch b/patches/ninja-1.8.2/0006-Prepare-PR-for-merging.patch
deleted file mode 100644
index bf44d5f4b..000000000
--- a/patches/ninja-1.8.2/0006-Prepare-PR-for-merging.patch
+++ /dev/null
@@ -1,151 +0,0 @@
-From: Stefan Becker <chemobejk@gmail.com>
-Date: Sat, 7 Apr 2018 17:11:21 +0300
-Subject: [PATCH] Prepare PR for merging
-
-- fix Windows build error in no-op TokenPool implementation
-- improve Acquire() to block for a maximum of 100ms
-- address review comments
----
- src/build.h | 2 ++
- src/tokenpool-gnu-make.cc | 53 ++++++++++++++++++++++++++++++++++++++++-------
- src/tokenpool-none.cc | 7 +------
- 3 files changed, 49 insertions(+), 13 deletions(-)
-
-diff --git a/src/build.h b/src/build.h
-index 6bc6fea26e94..530812bb9a2a 100644
---- a/src/build.h
-+++ b/src/build.h
-@@ -120,6 +120,8 @@ struct CommandRunner {
- bool success() const { return status == ExitSuccess; }
- };
- /// Wait for a command to complete, or return false if interrupted.
-+ /// If more_ready is true then the optional TokenPool is monitored too
-+ /// and we return when a token becomes available.
- virtual bool WaitForCommand(Result* result, bool more_ready) = 0;
-
- virtual vector<Edge*> GetActiveEdges() { return vector<Edge*>(); }
-diff --git a/src/tokenpool-gnu-make.cc b/src/tokenpool-gnu-make.cc
-index b0d3e6ebc463..4132bb06d9dd 100644
---- a/src/tokenpool-gnu-make.cc
-+++ b/src/tokenpool-gnu-make.cc
-@@ -1,4 +1,4 @@
--// Copyright 2016-2017 Google Inc. All Rights Reserved.
-+// Copyright 2016-2018 Google Inc. All Rights Reserved.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
-@@ -19,6 +19,7 @@
- #include <poll.h>
- #include <unistd.h>
- #include <signal.h>
-+#include <sys/time.h>
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
-@@ -153,6 +154,15 @@ bool GNUmakeTokenPool::Acquire() {
- if (available_ > 0)
- return true;
-
-+ // Please read
-+ //
-+ // http://make.mad-scientist.net/papers/jobserver-implementation/
-+ //
-+ // for the reasoning behind the following code.
-+ //
-+ // Try to read one character from the pipe. Returns true on success.
-+ //
-+ // First check if read() would succeed without blocking.
- #ifdef USE_PPOLL
- pollfd pollfds[] = {{rfd_, POLLIN, 0}};
- int ret = poll(pollfds, 1, 0);
-@@ -164,33 +174,62 @@ bool GNUmakeTokenPool::Acquire() {
- int ret = select(rfd_ + 1, &set, NULL, NULL, &timeout);
- #endif
- if (ret > 0) {
-+ // Handle potential race condition:
-+ // - the above check succeeded, i.e. read() should not block
-+ // - the character disappears before we call read()
-+ //
-+ // Create a duplicate of rfd_. The duplicate file descriptor dup_rfd_
-+ // can safely be closed by signal handlers without affecting rfd_.
- dup_rfd_ = dup(rfd_);
-
- if (dup_rfd_ != -1) {
- struct sigaction act, old_act;
- int ret = 0;
-
-+ // Temporarily replace SIGCHLD handler with our own
- memset(&act, 0, sizeof(act));
- act.sa_handler = CloseDupRfd;
- if (sigaction(SIGCHLD, &act, &old_act) == 0) {
-- char buf;
--
-- // block until token read, child exits or timeout
-- alarm(1);
-- ret = read(dup_rfd_, &buf, 1);
-- alarm(0);
-+ struct itimerval timeout;
-+
-+ // install a 100ms timeout that generates SIGALARM on expiration
-+ memset(&timeout, 0, sizeof(timeout));
-+ timeout.it_value.tv_usec = 100 * 1000; // [ms] -> [usec]
-+ if (setitimer(ITIMER_REAL, &timeout, NULL) == 0) {
-+ char buf;
-+
-+ // Now try to read() from dup_rfd_. Return values from read():
-+ //
-+ // 1. token read -> 1
-+ // 2. pipe closed -> 0
-+ // 3. alarm expires -> -1 (EINTR)
-+ // 4. child exits -> -1 (EINTR)
-+ // 5. alarm expired before entering read() -> -1 (EBADF)
-+ // 6. child exited before entering read() -> -1 (EBADF)
-+ // 7. child exited before handler is installed -> go to 1 - 3
-+ ret = read(dup_rfd_, &buf, 1);
-+
-+ // disarm timer
-+ memset(&timeout, 0, sizeof(timeout));
-+ setitimer(ITIMER_REAL, &timeout, NULL);
-+ }
-
- sigaction(SIGCHLD, &old_act, NULL);
- }
-
- CloseDupRfd(0);
-
-+ // Case 1 from above list
- if (ret > 0) {
- available_++;
- return true;
- }
- }
- }
-+
-+ // read() would block, i.e. no token available,
-+ // cases 2-6 from above list or
-+ // select() / poll() / dup() / sigaction() / setitimer() failed
- return false;
- }
-
-diff --git a/src/tokenpool-none.cc b/src/tokenpool-none.cc
-index 1c1c499c8d9c..4c592875b4ad 100644
---- a/src/tokenpool-none.cc
-+++ b/src/tokenpool-none.cc
-@@ -1,4 +1,4 @@
--// Copyright 2016-2017 Google Inc. All Rights Reserved.
-+// Copyright 2016-2018 Google Inc. All Rights Reserved.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
-@@ -14,11 +14,6 @@
-
- #include "tokenpool.h"
-
--#include <fcntl.h>
--#include <poll.h>
--#include <unistd.h>
--#include <stdio.h>
--#include <string.h>
- #include <stdlib.h>
-
- // No-op TokenPool implementation
diff --git a/patches/ninja-1.8.2/series b/patches/ninja-1.8.2/series
deleted file mode 100644
index ef13f1510..000000000
--- a/patches/ninja-1.8.2/series
+++ /dev/null
@@ -1,10 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Add-GNU-make-jobserver-client-support.patch
-0002-Add-TokenPool-monitoring-to-SubprocessSet-DoWork.patch
-0003-Ignore-jobserver-when-jN-is-forced-on-command-line.patch
-0004-Honor-lN-from-MAKEFLAGS.patch
-0005-Use-LinePrinter-for-TokenPool-messages.patch
-0006-Prepare-PR-for-merging.patch
-0007-don-t-close-open-fds.patch
-# e4c44c2e231b79ea6c0263de5d69c6d3 - git-ptx-patches magic
diff --git a/patches/node-v12.16.1/0001-Disable-running-gyp-on-shared-deps.patch b/patches/node-v12.16.1/0001-Disable-running-gyp-on-shared-deps.patch
deleted file mode 100644
index f1d6bb737..000000000
--- a/patches/node-v12.16.1/0001-Disable-running-gyp-on-shared-deps.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From: Zuzana Svetlikova <zsvetlik@redhat.com>
-Date: Thu, 27 Apr 2017 14:25:42 +0200
-Subject: [PATCH] Disable running gyp on shared deps
-
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 05eaa73abbe0..965e4f8560e6 100644
---- a/Makefile
-+++ b/Makefile
-@@ -141,7 +141,7 @@ test-code-cache: with-code-cache
- echo "'test-code-cache' target is a noop"
-
- out/Makefile: config.gypi common.gypi node.gyp \
-- deps/uv/uv.gyp deps/http_parser/http_parser.gyp deps/zlib/zlib.gyp \
-+ deps/http_parser/http_parser.gyp \
- tools/v8_gypfiles/toolchain.gypi tools/v8_gypfiles/features.gypi \
- tools/v8_gypfiles/inspector.gypi tools/v8_gypfiles/v8.gyp
- $(PYTHON) tools/gyp_node.py -f make
diff --git a/patches/node-v12.16.1/0002-Install-both-binaries-and-use-libdir.patch b/patches/node-v12.16.1/0002-Install-both-binaries-and-use-libdir.patch
deleted file mode 100644
index b9dc62bb4..000000000
--- a/patches/node-v12.16.1/0002-Install-both-binaries-and-use-libdir.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
-Date: Tue, 19 Mar 2019 23:22:40 -0400
-Subject: [PATCH] Install both binaries and use libdir.
-
-This allows us to build with a shared library for other users while
-still providing the normal executable.
-
-Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
----
- configure.py | 7 +++++++
- tools/install.py | 31 ++++++++++++++-----------------
- 2 files changed, 21 insertions(+), 17 deletions(-)
-
-diff --git a/configure.py b/configure.py
-index 14f5665e0299..36a8a413713a 100755
---- a/configure.py
-+++ b/configure.py
-@@ -572,6 +572,12 @@ parser.add_option('--shared',
- help='compile shared library for embedding node in another project. ' +
- '(This mode is not officially supported for regular applications)')
-
-+parser.add_option('--libdir',
-+ action='store',
-+ dest='libdir',
-+ default='lib',
-+ help='a directory to install the shared library into')
-+
- parser.add_option('--without-v8-platform',
- action='store_true',
- dest='without_v8_platform',
-@@ -1121,6 +1127,7 @@ def configure_node(o):
- o['variables']['node_no_browser_globals'] = b(options.no_browser_globals)
-
- o['variables']['node_shared'] = b(options.shared)
-+ o['variables']['libdir'] = options.libdir
- node_module_version = getmoduleversion.get_version()
-
- if options.dest_os == 'android':
-diff --git a/tools/install.py b/tools/install.py
-index 655802980a6e..fe4723bf1501 100755
---- a/tools/install.py
-+++ b/tools/install.py
-@@ -121,26 +121,23 @@ def subdir_files(path, dest, action):
-
- def files(action):
- is_windows = sys.platform == 'win32'
-- output_file = 'node'
- output_prefix = 'out/Release/'
-+ output_libprefix = output_prefix
-
-- if 'false' == variables.get('node_shared'):
-- if is_windows:
-- output_file += '.exe'
-+ if is_windows:
-+ output_bin = 'node.exe'
-+ output_lib = 'node.dll'
- else:
-- if is_windows:
-- output_file += '.dll'
-- else:
-- output_file = 'lib' + output_file + '.' + variables.get('shlib_suffix')
-- # GYP will output to lib.target except on OS X, this is hardcoded
-- # in its source - see the _InstallableTargetInstallPath function.
-- if sys.platform != 'darwin':
-- output_prefix += 'lib.target/'
--
-- if 'false' == variables.get('node_shared'):
-- action([output_prefix + output_file], 'bin/' + output_file)
-- else:
-- action([output_prefix + output_file], 'lib/' + output_file)
-+ output_bin = 'node'
-+ output_lib = 'libnode.' + variables.get('shlib_suffix')
-+ # GYP will output to lib.target except on OS X, this is hardcoded
-+ # in its source - see the _InstallableTargetInstallPath function.
-+ if sys.platform != 'darwin':
-+ output_libprefix += 'lib.target/'
-+
-+ action([output_prefix + output_bin], 'bin/' + output_bin)
-+ if 'true' == variables.get('node_shared'):
-+ action([output_libprefix + output_lib], variables.get('libdir') + '/' + output_lib)
-
- if 'true' == variables.get('node_use_dtrace'):
- action(['out/Release/node.d'], 'lib/dtrace/node.d')
diff --git a/patches/node-v12.16.1/0003-tools-do-not-explicitely-set-an-rpath-in-make-genera.patch b/patches/node-v12.16.1/0003-tools-do-not-explicitely-set-an-rpath-in-make-genera.patch
deleted file mode 100644
index f05bcafd5..000000000
--- a/patches/node-v12.16.1/0003-tools-do-not-explicitely-set-an-rpath-in-make-genera.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: =?UTF-8?q?Ulrich=20=C3=96lmann?= <u.oelmann@pengutronix.de>
-Date: Fri, 13 Mar 2020 12:36:49 +0100
-Subject: [PATCH] tools: do not explicitely set an rpath in make generator
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This is not necessary as the library is installed into the standard path.
-
-Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de>
----
- tools/gyp/pylib/gyp/generator/make.py | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/tools/gyp/pylib/gyp/generator/make.py b/tools/gyp/pylib/gyp/generator/make.py
-index 91a119c5a576..c109b2b488ec 100644
---- a/tools/gyp/pylib/gyp/generator/make.py
-+++ b/tools/gyp/pylib/gyp/generator/make.py
-@@ -1474,11 +1474,7 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
- target_postbuilds[configname] = target_postbuild
- else:
- ldflags = config.get('ldflags', [])
-- # Compute an rpath for this output if needed.
- if any(dep.endswith('.so') or '.so.' in dep for dep in deps):
-- # We want to get the literal string "$ORIGIN" into the link command,
-- # so we need lots of escaping.
-- ldflags.append(r'-Wl,-rpath=\$$ORIGIN/lib.%s/' % self.toolset)
- ldflags.append(r'-Wl,-rpath-link=\$(builddir)/lib.%s/' %
- self.toolset)
- library_dirs = config.get('library_dirs', [])
diff --git a/patches/node-v12.16.1/0004-HACK-don-t-add-LD_LIBRARY_PATH-for-external-tools.patch b/patches/node-v12.16.1/0004-HACK-don-t-add-LD_LIBRARY_PATH-for-external-tools.patch
deleted file mode 100644
index 121bba28b..000000000
--- a/patches/node-v12.16.1/0004-HACK-don-t-add-LD_LIBRARY_PATH-for-external-tools.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Fri, 27 Mar 2020 11:32:01 +0100
-Subject: [PATCH] HACK: don't add LD_LIBRARY_PATH for external tools
-
-When host and target architecture match, then the target path in
-LD_LIBRARY_PATH confuses the linker and the wrong libraries are used.
-As a result executing the tool fails.
-Always removing the target path from LD_LIBRARY_PATH is not an options
-because in this case building host-nodejs fails with a missing library.
-
-In PTXdist we overwrite the path to the tool to point to sysroot-host when
-building the target nodejs. We can use that to set the LD_LIBRARY_PATH only
-for host-nodejs.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- tools/gyp/pylib/gyp/generator/make.py | 14 +++++++++-----
- 1 file changed, 9 insertions(+), 5 deletions(-)
-
-diff --git a/tools/gyp/pylib/gyp/generator/make.py b/tools/gyp/pylib/gyp/generator/make.py
-index c109b2b488ec..995f6df0f441 100644
---- a/tools/gyp/pylib/gyp/generator/make.py
-+++ b/tools/gyp/pylib/gyp/generator/make.py
-@@ -923,11 +923,15 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
- # libraries, but until everything is made cross-compile safe, also use
- # target libraries.
- # TODO(piman): when everything is cross-compile safe, remove lib.target
-- self.WriteLn('cmd_%s = LD_LIBRARY_PATH=$(builddir)/lib.host:'
-- '$(builddir)/lib.target:$$LD_LIBRARY_PATH; '
-- 'export LD_LIBRARY_PATH; '
-- '%s%s'
-- % (name, cd_action, command))
-+ if action['action'][0].startswith('$(builddir)'):
-+ self.WriteLn('cmd_%s = LD_LIBRARY_PATH=$(builddir)/lib.host:'
-+ '$(builddir)/lib.target:$$LD_LIBRARY_PATH; '
-+ 'export LD_LIBRARY_PATH; '
-+ '%s%s'
-+ % (name, cd_action, command))
-+ else:
-+ self.WriteLn('cmd_%s = %s%s'
-+ % (name, cd_action, command))
- self.WriteLn()
- outputs = [self.Absolutify(o) for o in outputs]
- # The makefile rules are all relative to the top dir, but the gyp actions
diff --git a/patches/node-v12.16.1/0005-HACK-run-configure-directly-with-python2.patch b/patches/node-v12.16.1/0005-HACK-run-configure-directly-with-python2.patch
deleted file mode 100644
index 3119571fc..000000000
--- a/patches/node-v12.16.1/0005-HACK-run-configure-directly-with-python2.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Mon, 13 Apr 2020 07:37:05 +0200
-Subject: [PATCH] HACK: run configure directly with python2
-
-This ensures that the correct Python version is used. Without this,
-'python2.7' is the first try. This is either the cross Python or bypasses
-the host-system-python dependency check.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- configure | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure b/configure
-index 9156e13f7aed..317a768b0fd6 100755
---- a/configure
-+++ b/configure
-@@ -1,4 +1,4 @@
--#!/bin/sh
-+#!/usr/bin/env python2
-
- # Locate python2 interpreter and re-execute the script. Note that the
- # mix of single and double quotes is intentional, as is the fact that
diff --git a/patches/node-v12.16.1/series b/patches/node-v12.16.1/series
deleted file mode 100644
index f0162c556..000000000
--- a/patches/node-v12.16.1/series
+++ /dev/null
@@ -1,8 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Disable-running-gyp-on-shared-deps.patch
-0002-Install-both-binaries-and-use-libdir.patch
-0003-tools-do-not-explicitely-set-an-rpath-in-make-genera.patch
-0004-HACK-don-t-add-LD_LIBRARY_PATH-for-external-tools.patch
-0005-HACK-run-configure-directly-with-python2.patch
-# c39d7fdc79e6b2f672a807f38ade396e - git-ptx-patches magic
diff --git a/patches/node-v20.11.0/0001-Disable-running-gyp-on-shared-deps.patch b/patches/node-v20.11.0/0001-Disable-running-gyp-on-shared-deps.patch
new file mode 100644
index 000000000..b6e52636e
--- /dev/null
+++ b/patches/node-v20.11.0/0001-Disable-running-gyp-on-shared-deps.patch
@@ -0,0 +1,46 @@
+From: Zuzana Svetlikova <zsvetlik@redhat.com>
+Date: Thu, 27 Apr 2017 14:25:42 +0200
+Subject: [PATCH] Disable running gyp on shared deps
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Probably imported from:
+https://src.fedoraproject.org/rpms/nodejs/c/41af04f2a3c050fb44628e91ac65fd225b927acb?branch=22609d8c1bfeaa21fe0057645af20b3a2ccc7f53
+which is probably based on dont-run-gyp-files-for-bundled-deps.patch added in:
+https://github.com/alpinelinux/aports/commit/6662eb3199902e8451fb20dce82554ad96f796bb
+
+We also explicitly prune some dependencies from source in the bitbake recipe:
+
+python prune_sources() {
+ import shutil
+
+ shutil.rmtree(d.getVar('S') + '/deps/openssl')
+ if 'ares' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/cares')
+ if 'brotli' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/brotli')
+ if 'libuv' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/uv')
+ if 'nghttp2' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/nghttp2')
+ if 'zlib' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/zlib')
+}
+do_unpack[postfuncs] += "prune_sources"
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index b7871bf21857..e1b2c717b414 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/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/patches/node-v20.11.0/0002-v8-don-t-override-ARM-CFLAGS.patch b/patches/node-v20.11.0/0002-v8-don-t-override-ARM-CFLAGS.patch
new file mode 100644
index 000000000..5fd7984f2
--- /dev/null
+++ b/patches/node-v20.11.0/0002-v8-don-t-override-ARM-CFLAGS.patch
@@ -0,0 +1,98 @@
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <git@andred.net>
+Date: Sat, 9 Nov 2019 14:45:30 +0000
+Subject: [PATCH] v8: don't override ARM CFLAGS
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This overrides yocto-provided build flags with its own, e.g we get
+ arm-poky-linux-musleabi-g++ -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 \
+ ... \
+ -march=armv7-a -mfpu=neon -mfloat-abi=hard -marm
+
+Causing the latter to override the former, and compiler warnings:
+ cc1plus: warning: switch '-mcpu=cortex-a7' conflicts with '-march=armv7-a' switch
+
+Patch this out, so that yocto-provided flags take precedence.
+Note that in reality the same should probably be done for all the other
+supported architectures, too.
+
+Note that this also switches to Thumb(2) mode (in my case). No obvious
+problems have been noted during compilation or runtime.
+
+Upstream-Status: Inappropriate [oe-specific]
+Signed-off-by: André Draszik <git@andred.net>
+---
+ tools/v8_gypfiles/toolchain.gypi | 52 ++--------------------------------------
+ 1 file changed, 2 insertions(+), 50 deletions(-)
+
+diff --git a/tools/v8_gypfiles/toolchain.gypi b/tools/v8_gypfiles/toolchain.gypi
+index f53644502a2d..f01f45af8534 100644
+--- a/tools/v8_gypfiles/toolchain.gypi
++++ b/tools/v8_gypfiles/toolchain.gypi
+@@ -177,31 +177,7 @@
+ 'target_conditions': [
+ ['_toolset=="host"', {
+ 'conditions': [
+- ['v8_target_arch==host_arch', {
+- # Host built with an Arm CXX compiler.
+- 'conditions': [
+- [ 'arm_version==7', {
+- 'cflags': ['-march=armv7-a',],
+- }],
+- [ 'arm_version==7 or arm_version=="default"', {
+- 'conditions': [
+- [ 'arm_fpu!="default"', {
+- 'cflags': ['-mfpu=<(arm_fpu)',],
+- }],
+- ],
+- }],
+- [ 'arm_float_abi!="default"', {
+- 'cflags': ['-mfloat-abi=<(arm_float_abi)',],
+- }],
+- [ 'arm_thumb==1', {
+- 'cflags': ['-mthumb',],
+- }],
+- [ 'arm_thumb==0', {
+- 'cflags': ['-marm',],
+- }],
+- ],
+- }, {
+- # 'v8_target_arch!=host_arch'
++ ['v8_target_arch!=host_arch', {
+ # Host not built with an Arm CXX compiler (simulator build).
+ 'conditions': [
+ [ 'arm_float_abi=="hard"', {
+@@ -220,31 +196,7 @@
+ }], # _toolset=="host"
+ ['_toolset=="target"', {
+ 'conditions': [
+- ['v8_target_arch==target_arch', {
+- # Target built with an Arm CXX compiler.
+- 'conditions': [
+- [ 'arm_version==7', {
+- 'cflags': ['-march=armv7-a',],
+- }],
+- [ 'arm_version==7 or arm_version=="default"', {
+- 'conditions': [
+- [ 'arm_fpu!="default"', {
+- 'cflags': ['-mfpu=<(arm_fpu)',],
+- }],
+- ],
+- }],
+- [ 'arm_float_abi!="default"', {
+- 'cflags': ['-mfloat-abi=<(arm_float_abi)',],
+- }],
+- [ 'arm_thumb==1', {
+- 'cflags': ['-mthumb',],
+- }],
+- [ 'arm_thumb==0', {
+- 'cflags': ['-marm',],
+- }],
+- ],
+- }, {
+- # 'v8_target_arch!=target_arch'
++ ['v8_target_arch!=target_arch', {
+ # Target not built with an Arm CXX compiler (simulator build).
+ 'conditions': [
+ [ 'arm_float_abi=="hard"', {
diff --git a/patches/node-v20.11.0/0100-HACK-don-t-add-LD_LIBRARY_PATH-for-external-tools.patch b/patches/node-v20.11.0/0100-HACK-don-t-add-LD_LIBRARY_PATH-for-external-tools.patch
new file mode 100644
index 000000000..211304072
--- /dev/null
+++ b/patches/node-v20.11.0/0100-HACK-don-t-add-LD_LIBRARY_PATH-for-external-tools.patch
@@ -0,0 +1,46 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Fri, 27 Mar 2020 11:32:01 +0100
+Subject: [PATCH] HACK: don't add LD_LIBRARY_PATH for external tools
+
+When host and target architecture match, then the target path in
+LD_LIBRARY_PATH confuses the linker and the wrong libraries are used.
+As a result executing the tool fails.
+Always removing the target path from LD_LIBRARY_PATH is not an options
+because in this case building host-nodejs fails with a missing library.
+
+In PTXdist we overwrite the path to the tool to point to sysroot-host when
+building the target nodejs. We can use that to set the LD_LIBRARY_PATH only
+for host-nodejs.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ tools/gyp/pylib/gyp/generator/make.py | 16 ++++++++++------
+ 1 file changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/tools/gyp/pylib/gyp/generator/make.py b/tools/gyp/pylib/gyp/generator/make.py
+index 1b9974948e4d..d6f7097dd6bf 100644
+--- a/tools/gyp/pylib/gyp/generator/make.py
++++ b/tools/gyp/pylib/gyp/generator/make.py
+@@ -1071,12 +1071,16 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
+ "%s%s" % (name, cd_action, command)
+ )
+ else:
+- self.WriteLn(
+- "cmd_%s = LD_LIBRARY_PATH=$(builddir)/lib.host:"
+- "$(builddir)/lib.target:$$LD_LIBRARY_PATH; "
+- "export LD_LIBRARY_PATH; "
+- "%s%s" % (name, cd_action, command)
+- )
++ if action['action'][0].startswith('$(builddir)'):
++ self.WriteLn(
++ "cmd_%s = LD_LIBRARY_PATH=$(builddir)/lib.host:"
++ "$(builddir)/lib.target:$$LD_LIBRARY_PATH; "
++ "export LD_LIBRARY_PATH; "
++ "%s%s" % (name, cd_action, command)
++ )
++ else:
++ self.WriteLn('cmd_%s = %s%s'
++ % (name, cd_action, command))
+ self.WriteLn()
+ outputs = [self.Absolutify(o) for o in outputs]
+ # The makefile rules are all relative to the top dir, but the gyp actions
diff --git a/patches/node-v20.11.0/0101-run-native-code-generators-with-qemu.patch b/patches/node-v20.11.0/0101-run-native-code-generators-with-qemu.patch
new file mode 100644
index 000000000..5cbcfd4ff
--- /dev/null
+++ b/patches/node-v20.11.0/0101-run-native-code-generators-with-qemu.patch
@@ -0,0 +1,85 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Sat, 4 Feb 2023 16:18:21 +0100
+Subject: [PATCH] run native code generators with qemu
+
+Host tools cannot be used because they would generate code based on
+properties of the host architecture, e.g. pointer size.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ node.gyp | 3 +++
+ tools/v8_gypfiles/v8.gyp | 5 +++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/node.gyp b/node.gyp
+index aa98fe4c2fae..5ebc27d92de4 100644
+--- a/node.gyp
++++ b/node.gyp
+@@ -662,6 +662,7 @@
+ 'action_name': 'node_mksnapshot',
+ 'process_outputs_as_sources': 1,
+ 'inputs': [
++ '<(PRODUCT_DIR)/tool-wrapper',
+ '<(node_mksnapshot_exec)',
+ '<(node_snapshot_main)',
+ ],
+@@ -966,6 +967,7 @@
+ 'action_name': 'node_js2c',
+ 'process_outputs_as_sources': 1,
+ 'inputs': [
++ '<(PRODUCT_DIR)/tool-wrapper',
+ '<(node_js2c_exec)',
+ '<@(library_files)',
+ '<@(deps_files)',
+@@ -975,6 +977,7 @@
+ '<(SHARED_INTERMEDIATE_DIR)/node_javascript.cc',
+ ],
+ 'action': [
++ '<(PRODUCT_DIR)/tool-wrapper',
+ '<(node_js2c_exec)',
+ '<@(_outputs)',
+ 'lib',
+diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp
+index adfc3f6e1095..f4c472a08d23 100644
+--- a/tools/v8_gypfiles/v8.gyp
++++ b/tools/v8_gypfiles/v8.gyp
+@@ -81,6 +81,7 @@
+ {
+ 'action_name': 'run_torque_action',
+ 'inputs': [ # Order matters.
++ '<(PRODUCT_DIR)/tool-wrapper',
+ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)',
+ '<@(torque_files)',
+ ],
+@@ -112,6 +113,7 @@
+ '<@(torque_outputs_inc)',
+ ],
+ 'action': [
++ '<(PRODUCT_DIR)/tool-wrapper',
+ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)',
+ '-o', '<(SHARED_INTERMEDIATE_DIR)/torque-generated',
+ '-v8-root', '<(V8_ROOT)',
+@@ -224,6 +226,7 @@
+ {
+ 'action_name': 'generate_bytecode_builtins_list_action',
+ 'inputs': [
++ '<(PRODUCT_DIR)/tool-wrapper',
+ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)bytecode_builtins_list_generator<(EXECUTABLE_SUFFIX)',
+ ],
+ 'outputs': [
+@@ -401,6 +404,7 @@
+ ],
+ },
+ 'inputs': [
++ '<(PRODUCT_DIR)/tool-wrapper',
+ '<(mksnapshot_exec)',
+ ],
+ 'outputs': [
+@@ -1670,6 +1674,7 @@
+ {
+ 'action_name': 'run_gen-regexp-special-case_action',
+ 'inputs': [
++ '<(PRODUCT_DIR)/tool-wrapper',
+ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)gen-regexp-special-case<(EXECUTABLE_SUFFIX)',
+ ],
+ 'outputs': [
diff --git a/patches/node-v20.11.0/series b/patches/node-v20.11.0/series
new file mode 100644
index 000000000..144cf5e3c
--- /dev/null
+++ b/patches/node-v20.11.0/series
@@ -0,0 +1,9 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+#tag:yocto --start-number 1
+0001-Disable-running-gyp-on-shared-deps.patch
+0002-v8-don-t-override-ARM-CFLAGS.patch
+#tag:ptxdist --start-number 100
+0100-HACK-don-t-add-LD_LIBRARY_PATH-for-external-tools.patch
+0101-run-native-code-generators-with-qemu.patch
+# 9987788495828c11410721504d543da5 - git-ptx-patches magic
diff --git a/patches/nss-3.63/0001-nss-fix-nsinstall-build.patch b/patches/nss-3.98/0001-nss-fix-nsinstall-build.patch
index 6787295ce..ec9c342b6 100644
--- a/patches/nss-3.63/0001-nss-fix-nsinstall-build.patch
+++ b/patches/nss-3.98/0001-nss-fix-nsinstall-build.patch
@@ -24,7 +24,7 @@ Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
1 file changed, 7 insertions(+)
diff --git a/nss/coreconf/nsinstall/Makefile b/nss/coreconf/nsinstall/Makefile
-index 08dfbc2fe627..aa385a17453f 100644
+index 5061789ffebd..4e67f56cf0bc 100644
--- a/nss/coreconf/nsinstall/Makefile
+++ b/nss/coreconf/nsinstall/Makefile
@@ -18,6 +18,13 @@ INTERNAL_TOOLS = 1
diff --git a/patches/nss-3.63/0002-add-nss.pc.in.patch b/patches/nss-3.98/0002-add-nss.pc.in.patch
index addc805b5..addc805b5 100644
--- a/patches/nss-3.63/0002-add-nss.pc.in.patch
+++ b/patches/nss-3.98/0002-add-nss.pc.in.patch
diff --git a/patches/nss-3.63/0003-HACK-don-t-build-commands-that-need-zlib.patch b/patches/nss-3.98/0003-HACK-don-t-build-commands-that-need-zlib.patch
index 623e97076..0447fef00 100644
--- a/patches/nss-3.63/0003-HACK-don-t-build-commands-that-need-zlib.patch
+++ b/patches/nss-3.98/0003-HACK-don-t-build-commands-that-need-zlib.patch
@@ -12,19 +12,19 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1 file changed, 2 deletions(-)
diff --git a/nss/cmd/manifest.mn b/nss/cmd/manifest.mn
-index 695177c9dccf..004c7f819198 100644
+index 06bb99f4f8e0..4eb0024415ee 100644
--- a/nss/cmd/manifest.mn
+++ b/nss/cmd/manifest.mn
-@@ -67,7 +67,6 @@ NSS_SRCDIRS = \
- rsapoptst \
+@@ -69,7 +69,6 @@ NSS_SRCDIRS = \
+ sdbthreadtst \
sdrtest \
selfserv \
- signtool \
signver \
smimetools \
ssltap \
-@@ -77,7 +76,6 @@ NSS_SRCDIRS = \
- tstclnt \
+@@ -80,7 +79,6 @@ NSS_SRCDIRS = \
+ validation \
vfychain \
vfyserv \
- modutil \
diff --git a/patches/nss-3.63/0004-HACK-fix-parallel-building-issue.patch b/patches/nss-3.98/0004-HACK-fix-parallel-building-issue.patch
index b2273008a..b4e5a9f00 100644
--- a/patches/nss-3.63/0004-HACK-fix-parallel-building-issue.patch
+++ b/patches/nss-3.98/0004-HACK-fix-parallel-building-issue.patch
@@ -17,7 +17,7 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/nss/coreconf/rules.mk b/nss/coreconf/rules.mk
-index dc72e9cef62f..62fb57655819 100644
+index a341b8385ae4..2c0a7a3f30b1 100644
--- a/nss/coreconf/rules.mk
+++ b/nss/coreconf/rules.mk
@@ -373,8 +373,8 @@ endif
@@ -30,4 +30,4 @@ index dc72e9cef62f..62fb57655819 100644
+ $$(INSTALL) -m 444 $$< $(3)
$(1): $$(addprefix $(3)/,$$($(2))) | $(3)/d
- endif
+
diff --git a/patches/nss-3.63/0005-fix-dependency-generation.patch b/patches/nss-3.98/0005-fix-dependency-generation.patch
index c97c3fb60..1192da18b 100644
--- a/patches/nss-3.63/0005-fix-dependency-generation.patch
+++ b/patches/nss-3.98/0005-fix-dependency-generation.patch
@@ -18,7 +18,7 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1 file changed, 2 insertions(+)
diff --git a/nss/coreconf/rules.mk b/nss/coreconf/rules.mk
-index 62fb57655819..b318eb41cb7c 100644
+index 2c0a7a3f30b1..a188881df94b 100644
--- a/nss/coreconf/rules.mk
+++ b/nss/coreconf/rules.mk
@@ -191,6 +191,8 @@ ifeq ($(OS_ARCH),WINNT)
diff --git a/patches/nss-3.63/series b/patches/nss-3.98/series
index 534d0d6d6..534d0d6d6 100644
--- a/patches/nss-3.63/series
+++ b/patches/nss-3.98/series
diff --git a/patches/ntp-4.2.8p12/0001-make-the-build-reproducible.patch b/patches/ntp-4.2.8p12/0001-make-the-build-reproducible.patch
deleted file mode 100644
index 5c70b10a2..000000000
--- a/patches/ntp-4.2.8p12/0001-make-the-build-reproducible.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Tue, 23 Oct 2018 00:21:54 +0200
-Subject: [PATCH] make the build reproducible
-
-Don't include the current date / time into the build.
-
-Original patch from Debian.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- scripts/build/mkver.in | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/scripts/build/mkver.in b/scripts/build/mkver.in
-index 3aef1c816a7f..badd2cda8c1f 100644
---- a/scripts/build/mkver.in
-+++ b/scripts/build/mkver.in
-@@ -15,8 +15,6 @@ case "@VER_SUFFIX@" in
- *) ConfStr="${ConfStr}-@VER_SUFFIX@" ;;
- esac
-
--ConfStr="$ConfStr `LC_TIME=C TZ=UTC date`"
--
- if [ ! -f .version ]; then
- echo 0 > .version
- fi
diff --git a/patches/ntp-4.2.8p12/series b/patches/ntp-4.2.8p12/series
deleted file mode 100644
index 6b9bdfd27..000000000
--- a/patches/ntp-4.2.8p12/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-make-the-build-reproducible.patch
-# a698708e9f96ed91827a81d376db1955 - git-ptx-patches magic
diff --git a/patches/ntpclient-2007/0001-Use-the-correct-macro-name-to-parametrize-make-s-sta.patch b/patches/ntpclient-2007/0001-Use-the-correct-macro-name-to-parametrize-make-s-sta.patch
deleted file mode 100644
index 1a742ba53..000000000
--- a/patches/ntpclient-2007/0001-Use-the-correct-macro-name-to-parametrize-make-s-sta.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From bfaeb4bc93d1298d97a166dfec900e407f77e6e1 Mon Sep 17 00:00:00 2001
-From: Juergen Beisert <juergen@kreuzholzen.de>
-Date: Wed, 20 Jan 2010 00:04:56 +0100
-Subject: [PATCH 1/3] Use the correct macro name to parametrize make's standard rule
-
-To add libraries to be linked, the 'LDLIBS' is the correct macro name.
-'LDFAGS' is for paths etc.
-
-Make's standard rule to compile a C file into an executable is:
-
-$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $< $(LDLIBS) -o $@
-
-Signed-off-by: Juergen Beisert <juergen@kreuzholzen.de>
----
- Makefile | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index ceed367..3ab9206 100644
---- a/Makefile
-+++ b/Makefile
-@@ -14,7 +14,7 @@ CFLAGS += -DENABLE_DEBUG
- CFLAGS += -DENABLE_REPLAY
- # CFLAGS += -DUSE_OBSOLETE_GETTIMEOFDAY
-
--LDFLAGS += -lrt
-+LDLIBS += -lrt
-
- all: ntpclient
-
---
-1.6.6
-
diff --git a/patches/ntpclient-2007/0002-Avoid-some-confusing-compile-time-warnings.patch b/patches/ntpclient-2007/0002-Avoid-some-confusing-compile-time-warnings.patch
deleted file mode 100644
index d90028e05..000000000
--- a/patches/ntpclient-2007/0002-Avoid-some-confusing-compile-time-warnings.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From cb4ef6d4101d3a558647c8d9e84f67a81b1d1bd2 Mon Sep 17 00:00:00 2001
-From: Juergen Beisert <juergen@kreuzholzen.de>
-Date: Wed, 20 Jan 2010 00:04:56 +0100
-Subject: [PATCH 2/3] Avoid some confusing compile time warnings
-
-We are compiling ntpclient on a GNU based system. This patch avoids the
-following warning:
-
-ntpclient.c:447: warning: implicit declaration of function 'herror'
-ntpclient.c:447: warning: nested extern declaration of 'herror'
-
-Signed-off-by: Juergen Beisert <juergen@kreuzholzen.de>
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- ntpclient.c | 2 --
- 1 files changed, 0 insertions(+), 2 deletions(-)
-
-diff --git a/ntpclient.c b/ntpclient.c
-index 61254e2..73d9fa6 100644
---- a/ntpclient.c
-+++ b/ntpclient.c
-@@ -32,8 +32,6 @@
- * labelled "XXX fixme - non-automatic build configuration".
- */
-
--#define _POSIX_C_SOURCE 199309
--
- #ifdef USE_OBSOLETE_GETTIMEOFDAY
- #define _BSD_SOURCE
- #endif
---
-1.6.6
-
diff --git a/patches/ntpclient-2007/series b/patches/ntpclient-2007/series
deleted file mode 100644
index 0b0052937..000000000
--- a/patches/ntpclient-2007/series
+++ /dev/null
@@ -1,3 +0,0 @@
-0001-Use-the-correct-macro-name-to-parametrize-make-s-sta.patch
-0002-Avoid-some-confusing-compile-time-warnings.patch
-0003-Makefile-add-installtarget.patch
diff --git a/patches/ntpclient-2007/0003-Makefile-add-installtarget.patch b/patches/ntpclient_2015_365/0001-Makefile-add-installtarget.patch
index ddaae7bb1..33c09cf80 100644
--- a/patches/ntpclient-2007/0003-Makefile-add-installtarget.patch
+++ b/patches/ntpclient_2015_365/0001-Makefile-add-installtarget.patch
@@ -1,19 +1,18 @@
-From e4b1603f6e38923c905110a7d096c4d4a3553ccb Mon Sep 17 00:00:00 2001
From: Michael Olbrich <m.olbrich@pengutronix.de>
Date: Wed, 20 Jan 2010 00:05:54 +0100
-Subject: [PATCH 3/3] Makefile: add installtarget
+Subject: [PATCH] Makefile: add installtarget
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
- Makefile | 6 ++++++
- 1 files changed, 6 insertions(+), 0 deletions(-)
+ Makefile | 6 ++++++
+ 1 file changed, 6 insertions(+)
diff --git a/Makefile b/Makefile
-index 3ab9206..fe4da0a 100644
+index 0b596626fd9c..4ae37fd3dd43 100644
--- a/Makefile
+++ b/Makefile
-@@ -27,5 +27,11 @@ ntpclient.o phaselock.o: ntpclient.h
+@@ -39,5 +39,11 @@ ntpclient.o phaselock.o: ntpclient.h
adjtimex: adjtimex.o
@@ -25,6 +24,3 @@ index 3ab9206..fe4da0a 100644
+
clean:
rm -f ntpclient adjtimex *.o
---
-1.6.6
-
diff --git a/patches/ntpclient_2015_365/series b/patches/ntpclient_2015_365/series
new file mode 100644
index 000000000..6d4842f4a
--- /dev/null
+++ b/patches/ntpclient_2015_365/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-Makefile-add-installtarget.patch
+# b4b01856a6ce13d5b2fba2d4ab158b05 - git-ptx-patches magic
diff --git a/patches/numpy-1.17.4/0001-remove-sse2-flag.patch b/patches/numpy-1.17.4/0001-remove-sse2-flag.patch
deleted file mode 100644
index 2c88b429b..000000000
--- a/patches/numpy-1.17.4/0001-remove-sse2-flag.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 4708211dc86d396f30c54bf71bc7194338272637 Mon Sep 17 00:00:00 2001
-From: mattip <matti.picus@gmail.com>
-Date: Mon, 11 Nov 2019 12:48:00 -0700
-Subject: [PATCH] BUILD: remove SSE2 flag from numpy.random builds
-
-This is a backport of https://github.com/numpy/numpy/pull/14878
-
----
- numpy/random/setup.py | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/numpy/random/setup.py b/numpy/random/setup.py
-index ca01250f437..f9059d7d76a 100644
---- a/numpy/random/setup.py
-+++ b/numpy/random/setup.py
-@@ -49,11 +49,6 @@
- elif not is_msvc:
- # Some bit generators require c99
- EXTRA_COMPILE_ARGS += ['-std=c99']
-- INTEL_LIKE = any(arch in platform.machine()
-- for arch in ('x86', 'i686', 'i386', 'amd64'))
-- if INTEL_LIKE:
-- # Assumes GCC or GCC-like compiler
-- EXTRA_COMPILE_ARGS += ['-msse2']
-
- # Use legacy integer variable sizes
- LEGACY_DEFS = [('NP_RANDOM_LEGACY', '1')]
diff --git a/patches/numpy-1.17.4/series b/patches/numpy-1.17.4/series
deleted file mode 100644
index 64785c945..000000000
--- a/patches/numpy-1.17.4/series
+++ /dev/null
@@ -1 +0,0 @@
-0001-remove-sse2-flag.patch
diff --git a/patches/numpy-1.26.0/0001-use-path-from-environment-only-for-library_dirs.patch b/patches/numpy-1.26.0/0001-use-path-from-environment-only-for-library_dirs.patch
new file mode 100644
index 000000000..199780ab2
--- /dev/null
+++ b/patches/numpy-1.26.0/0001-use-path-from-environment-only-for-library_dirs.patch
@@ -0,0 +1,25 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Tue, 21 Nov 2023 12:06:35 +0100
+Subject: [PATCH] use path from environment only for 'library_dirs'
+
+The environment variable is needed for openblas to be found but it should
+not be used exdend the rpath.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ numpy/distutils/system_info.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py
+index edf56909ab5d..2b43b450a417 100644
+--- a/numpy/distutils/system_info.py
++++ b/numpy/distutils/system_info.py
+@@ -890,7 +890,7 @@ def get_paths(self, section, key):
+ if not env_var[0] == e0:
+ log.info('Setting %s=%s' % (env_var[0], e0))
+ env_var = e0
+- if env_var and env_var in os.environ:
++ if env_var and env_var in os.environ and key == 'library_dirs':
+ d = os.environ[env_var]
+ if d == 'None':
+ log.info('Disabled %s: %s',
diff --git a/patches/numpy-1.26.0/series b/patches/numpy-1.26.0/series
new file mode 100644
index 000000000..a493ac227
--- /dev/null
+++ b/patches/numpy-1.26.0/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-use-path-from-environment-only-for-library_dirs.patch
+# d9bc0f9a910e0d311ad4c7761b8f6062 - git-ptx-patches magic
diff --git a/patches/open62541-1.2/0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch b/patches/open62541-1.2/0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch
deleted file mode 100644
index d07f9a30a..000000000
--- a/patches/open62541-1.2/0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-From 3b0511e0e85700a8623ab6d0e1a6f8df42bc1c16 Mon Sep 17 00:00:00 2001
-From: Sascha Hauer <s.hauer@pengutronix.de>
-Date: Wed, 3 Mar 2021 10:46:28 +0100
-Subject: [PATCH] CMake: Allow UA_NODESET_DIR to be custom defined.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This makes it easier for developers to keep all ua-nodesets XML
-definitions in a common location.
-
-Backported from: https://github.com/open62541/open62541/pull/3310
-
-Signed-off-by: Björn Esser <b.esser@pengutronix.de>
----
- CMakeLists.txt | 6 +++++-
- doc/nodeset_compiler.rst | 22 +++++++++++-----------
- examples/CMakeLists.txt | 4 ----
- tools/cmake/macros_public.cmake | 2 +-
- 4 files changed, 17 insertions(+), 17 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index d09a77a6..87338eb8 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -15,7 +15,6 @@ include(GNUInstallDirs)
-
- # Set when installed via make install
- set(open62541_TOOLS_DIR ${PROJECT_SOURCE_DIR}/tools)
--set(open62541_NODESET_DIR ${PROJECT_SOURCE_DIR}/deps/ua-nodeset)
- set(XDP_LIBRARY "/usr/local/src/bpf-next/tools/lib/bpf/libbpf.a")
-
- include(macros_internal)
-@@ -160,6 +159,11 @@ if(UA_ENABLE_ENCRYPTION_OPENSSL)
- set(UA_ENABLE_ENCRYPTION_MBEDTLS OFF)
- endif()
-
-+if(NOT UA_NODESET_DIR)
-+ set(UA_NODESET_DIR ${PROJECT_SOURCE_DIR}/deps/ua-nodeset)
-+endif()
-+set(open62541_NODESET_DIR ${UA_NODESET_DIR})
-+
- # Namespace Zero
- set(UA_NAMESPACE_ZERO "REDUCED" CACHE STRING "Completeness of the generated namespace zero (minimal/reduced/full)")
- SET_PROPERTY(CACHE UA_NAMESPACE_ZERO PROPERTY STRINGS "MINIMAL" "REDUCED" "FULL")
-diff --git a/doc/nodeset_compiler.rst b/doc/nodeset_compiler.rst
-index 730eda80..ea110d40 100644
---- a/doc/nodeset_compiler.rst
-+++ b/doc/nodeset_compiler.rst
-@@ -292,17 +292,17 @@ Here are some examples for the ``DI`` and ``PLCOpen`` nodesets::
- # Generate types and namespace for DI
- ua_generate_nodeset_and_datatypes(
- NAME "di"
-- FILE_CSV "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/OpcUaDiModel.csv"
-- FILE_BSD "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.Types.bsd"
-+ FILE_CSV "${UA_NODESET_DIR}/deps/ua-nodeset/DI/OpcUaDiModel.csv"
-+ FILE_BSD "${UA_NODESET_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.Types.bsd"
- NAMESPACE_MAP "2:http://opcfoundation.org/UA/DI/"
-- FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.NodeSet2.xml"
-+ FILE_NS "${UA_NODESET_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.NodeSet2.xml"
- )
-
- # generate PLCopen namespace which is using DI
- ua_generate_nodeset_and_datatypes(
- NAME "plc"
- # PLCopen does not define custom types. Only generate the nodeset
-- FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
-+ FILE_NS "${UA_NODESET_DIR}/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
- # PLCopen depends on the di nodeset, which must be generated before
- DEPENDS "di"
- )
-@@ -401,8 +401,8 @@ This DI nodeset makes use of some additional data types in ``deps/ua-nodeset/DI/
- NAME "ua_types_di"
- TARGET_SUFFIX "types-di"
- NAMESPACE_MAP "2:http://opcfoundation.org/UA/DI/"
-- FILE_CSV "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/OpcUaDiModel.csv"
-- FILES_BSD "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.Types.bsd"
-+ FILE_CSV "${UA_NODESET_DIR}/deps/ua-nodeset/DI/OpcUaDiModel.csv"
-+ FILES_BSD "${UA_NODESET_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.Types.bsd"
- )
-
- The ``NAMESPACE_MAP`` parameter is an array of strings which indicates the mapping of specific namespace uris to the resulting namespace index.
-@@ -414,11 +414,11 @@ Now you can compile the DI nodeset XML using the following command::
-
- ua_generate_nodeset(
- NAME "di"
-- FILE "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.NodeSet2.xml"
-+ FILE "${UA_NODESET_DIR}/DI/Opc.Ua.Di.NodeSet2.xml"
- TYPES_ARRAY "UA_TYPES_DI"
- INTERNAL
- DEPENDS_TYPES "UA_TYPES"
-- DEPENDS_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.NodeSet2.xml"
-+ DEPENDS_NS "${UA_NODESET_DIR}/Schema/Opc.Ua.NodeSet2.xml"
- DEPENDS_TARGET "open62541-generator-types-di"
- )
-
-@@ -429,13 +429,13 @@ Next we can generate the PLCopen nodeset. Since it doesn't require any additiona
-
- ua_generate_nodeset(
- NAME "plc"
-- FILE "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
-+ FILE "${UA_NODESET_DIR}/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
- INTERNAL
- DEPENDS_TYPES
- "UA_TYPES" "UA_TYPES_DI"
- DEPENDS_NS
-- "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.NodeSet2.xml"
-- "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.NodeSet2.xml"
-+ "${UA_NODESET_DIR}/Schema/Opc.Ua.NodeSet2.xml"
-+ "${UA_NODESET_DIR}/DI/Opc.Ua.Di.NodeSet2.xml"
- DEPENDS_TARGET "open62541-generator-ns-di"
- )
-
-diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
-index 70c84560..b589dec3 100644
---- a/examples/CMakeLists.txt
-+++ b/examples/CMakeLists.txt
-@@ -26,10 +26,6 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
- set(UA_TOOLS_DIR ${open62541_TOOLS_DIR})
- endif()
-
-- if(NOT UA_NODESET_DIR)
-- set(UA_NODESET_DIR ${open62541_NODESET_DIR})
-- endif()
--
- function(assign_source_group)
- # define empty function. We don't need it in standalone
- endfunction(assign_source_group)
-diff --git a/tools/cmake/macros_public.cmake b/tools/cmake/macros_public.cmake
-index 95414e3d..4172392f 100644
---- a/tools/cmake/macros_public.cmake
-+++ b/tools/cmake/macros_public.cmake
-@@ -97,7 +97,7 @@ endfunction()
- # passed which will all combined to one resulting code.
- # IMPORT_BSD Combination of types array and path to the .bsd file containing additional type definitions referenced by
- # the FILES_BSD files. The value is separated with a hash sign, i.e.
--# 'UA_TYPES#${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.Types.bsd'
-+# 'UA_TYPES#${UA_NODESET_DIR}/Schema/Opc.Ua.Types.bsd'
- # Multiple files can be passed which will all be imported.
- # [FILES_SELECTED] Optional path to a simple text file which contains a list of types which should be included in the generation.
- # The file should contain one type per line. Multiple files can be passed to this argument.
---
-2.29.2
-
diff --git a/patches/open62541-1.3.4/0001-feat-server-allow-UA_NODESET_DIR-to-be-custom-define.patch b/patches/open62541-1.3.4/0001-feat-server-allow-UA_NODESET_DIR-to-be-custom-define.patch
new file mode 100644
index 000000000..f54b5d7a5
--- /dev/null
+++ b/patches/open62541-1.3.4/0001-feat-server-allow-UA_NODESET_DIR-to-be-custom-define.patch
@@ -0,0 +1,71 @@
+From: Noel Graf <69737119+NoelGraf@users.noreply.github.com>
+Date: Tue, 7 Jun 2022 11:04:03 +0200
+Subject: [PATCH] feat(server) allow UA_NODESET_DIR to be custom defined.
+ (#5138)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This makes it easier for developers to keep all ua-nodesets XML
+definitions in a common location.
+
+Signed-off-by: Björn Esser <b.esser@pengutronix.de>
+
+Co-authored-by: Björn Esser <b.esser@pengutronix.de>
+Origin: backport, https://github.com/open62541/open62541/commit/02f101df73b8d9a32b6882f41e1a2240f3c601b3
+Signed-off-by: Roland Hieber <rhi@pengutronix.de>
+---
+ CMakeLists.txt | 15 ++++++++-------
+ 1 file changed, 8 insertions(+), 7 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1934374ecc2b..27498e54a6be 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -20,7 +20,7 @@ include(GNUInstallDirs)
+
+ # Set when installed via make install
+ set(open62541_TOOLS_DIR ${PROJECT_SOURCE_DIR}/tools)
+-set(open62541_NODESET_DIR ${PROJECT_SOURCE_DIR}/deps/ua-nodeset)
++set(UA_NODESET_DIR ${PROJECT_SOURCE_DIR}/deps/ua-nodeset CACHE STRING "The path to the nodetset directory.")
+ set(open62541_MQTT_DIR ${PROJECT_SOURCE_DIR}/deps/mqtt-c)
+
+ include(macros_internal)
+@@ -1184,12 +1184,12 @@ set(UA_FILE_NODESETS)
+
+ if(UA_NAMESPACE_ZERO STREQUAL "FULL" OR UA_NAMESPACE_ZERO STREQUAL "LATEST_1_05")
+ if(NOT UA_FILE_NS0)
+- set(UA_FILE_NS0 ${open62541_NODESET_DIR}/Schema/Opc.Ua.NodeSet2.xml)
++ set(UA_FILE_NS0 ${UA_NODESET_DIR}/Schema/Opc.Ua.NodeSet2.xml)
+ endif()
+ set(UA_FILE_NODESETS "${UA_FILE_NS0}")
+
+ if(NOT EXISTS "${UA_FILE_NS0}")
+- message(FATAL_ERROR "File ${UA_FILE_NS0} not found. You probably need to initialize the git submodule for deps/ua-nodeset or set open62541_NODESET_DIR.")
++ message(FATAL_ERROR "File ${UA_FILE_NS0} not found. You probably need to initialize the git submodule for deps/ua-nodeset or set UA_NODESET_DIR.")
+ else()
+ # If the "LATEST_1_05" flag is set, it must be checked whether the nodeset NS0 is on the latest version.
+ if(UA_NAMESPACE_ZERO STREQUAL "LATEST_1_05")
+@@ -1202,9 +1202,10 @@ if(UA_NAMESPACE_ZERO STREQUAL "FULL" OR UA_NAMESPACE_ZERO STREQUAL "LATEST_1_05"
+ endif()
+
+
+- set(UA_FILE_NODEIDS ${open62541_NODESET_DIR}/Schema/NodeIds.csv)
+- set(UA_FILE_STATUSCODES ${open62541_NODESET_DIR}/Schema/StatusCode.csv)
+- set(UA_FILE_TYPES_BSD ${open62541_NODESET_DIR}/Schema/Opc.Ua.Types.bsd)
++
++ set(UA_FILE_NODEIDS ${UA_NODESET_DIR}/Schema/NodeIds.csv)
++ set(UA_FILE_STATUSCODES ${UA_NODESET_DIR}/Schema/StatusCode.csv)
++ set(UA_FILE_TYPES_BSD ${UA_NODESET_DIR}/Schema/Opc.Ua.Types.bsd)
+ else()
+ if(NOT UA_FILE_NS0)
+ set(UA_FILE_NS0 ${PROJECT_SOURCE_DIR}/tools/schema/Opc.Ua.NodeSet2.Reduced.xml)
+@@ -1691,7 +1692,7 @@ endif()
+ set(UA_install_tools_dirs "tools/certs"
+ "tools/nodeset_compiler"
+ "tools/schema"
+- ${open62541_NODESET_DIR})
++ ${UA_NODESET_DIR})
+
+ set(UA_install_tools_files "tools/generate_datatypes.py"
+ "tools/generate_nodeid_header.py"
diff --git a/patches/open62541-1.3.4/series b/patches/open62541-1.3.4/series
new file mode 100644
index 000000000..65289cc57
--- /dev/null
+++ b/patches/open62541-1.3.4/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-feat-server-allow-UA_NODESET_DIR-to-be-custom-define.patch
+# 5f49204d943b5891fa7fb1fe92f69352 - git-ptx-patches magic
diff --git a/patches/openblas-0.3.24/0001-openblas.pc-add-prefix.patch b/patches/openblas-0.3.24/0001-openblas.pc-add-prefix.patch
new file mode 100644
index 000000000..5f39f1ed7
--- /dev/null
+++ b/patches/openblas-0.3.24/0001-openblas.pc-add-prefix.patch
@@ -0,0 +1,20 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Wed, 22 Nov 2023 08:52:47 +0100
+Subject: [PATCH] openblas.pc: add prefix=
+
+This is necessary for the PTXdist pc file mangling to work correctly.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ cmake/openblas.pc.in | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/cmake/openblas.pc.in b/cmake/openblas.pc.in
+index 7e120af86609..4a192b84ddaf 100644
+--- a/cmake/openblas.pc.in
++++ b/cmake/openblas.pc.in
+@@ -1,3 +1,4 @@
++prefix=@CMAKE_INSTALL_PREFIX@
+ libdir=@CMAKE_INSTALL_FULL_LIBDIR@
+ libsuffix=@SUFFIX64_UNDERSCORE@
+ includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
diff --git a/patches/openblas-0.3.24/series b/patches/openblas-0.3.24/series
new file mode 100644
index 000000000..e33f06605
--- /dev/null
+++ b/patches/openblas-0.3.24/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-openblas.pc-add-prefix.patch
+# 0c516007ce3365e0a487aedd5026b60d - git-ptx-patches magic
diff --git a/patches/openssl-1.1.1k/0003-Set-systemwide-default-settings-for-libssl-users.patch b/patches/openssl-1.1.1k/0003-Set-systemwide-default-settings-for-libssl-users.patch
deleted file mode 100644
index 2377d8017..000000000
--- a/patches/openssl-1.1.1k/0003-Set-systemwide-default-settings-for-libssl-users.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
-Date: Tue, 20 Mar 2018 22:07:30 +0100
-Subject: [PATCH] Set systemwide default settings for libssl users
-
-This config change enforeces a TLS1.2 protocol version as minimum. It
-can be overwritten by the system administrator.
-
-It also changes the default security level from 1 to 2, moving from the 80 bit
-security level to the 112 bit security level.
-
-Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
-
-Imported from openssl_1.1.1k-1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- apps/openssl.cnf | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
-diff --git a/apps/openssl.cnf b/apps/openssl.cnf
-index 4acca4b0446f..a6fed92a2e75 100644
---- a/apps/openssl.cnf
-+++ b/apps/openssl.cnf
-@@ -15,6 +15,9 @@ HOME = .
- #oid_file = $ENV::HOME/.oid
- oid_section = new_oids
-
-+# System default
-+openssl_conf = default_conf
-+
- # To use this configuration file with the "-extfile" option of the
- # "openssl x509" utility, name here the section containing the
- # X.509v3 extensions to use:
-@@ -348,3 +351,12 @@ ess_cert_id_chain = no # Must the ESS cert id chain be included?
- # (optional, default: no)
- ess_cert_id_alg = sha1 # algorithm to compute certificate
- # identifier (optional, default: sha1)
-+[default_conf]
-+ssl_conf = ssl_sect
-+
-+[ssl_sect]
-+system_default = system_default_sect
-+
-+[system_default_sect]
-+MinProtocol = TLSv1.2
-+CipherString = DEFAULT@SECLEVEL=2
diff --git a/patches/openssl-1.1.1k/series b/patches/openssl-1.1.1k/series
deleted file mode 100644
index 2bfca5ade..000000000
--- a/patches/openssl-1.1.1k/series
+++ /dev/null
@@ -1,6 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-debian-targets.patch
-0002-pic.patch
-0003-Set-systemwide-default-settings-for-libssl-users.patch
-# 0312ece60c710f114a26383fdd75ddcb - git-ptx-patches magic
diff --git a/patches/openssl-1.1.1k/0001-debian-targets.patch b/patches/openssl-3.2.1/0001-debian-targets.patch
index 940d68e3d..cb16676dc 100644
--- a/patches/openssl-1.1.1k/0001-debian-targets.patch
+++ b/patches/openssl-3.2.1/0001-debian-targets.patch
@@ -2,23 +2,23 @@ From: Debian OpenSSL Team <pkg-openssl-devel@lists.alioth.debian.org>
Date: Sun, 5 Nov 2017 15:09:09 +0100
Subject: [PATCH] debian-targets
-Imported from openssl_1.1.1k-1.debian.tar.xz
+Imported from openssl_3.0.8-1.debian.tar.xz
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
---
- Configurations/20-debian.conf | 210 ++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 210 insertions(+)
+ Configurations/20-debian.conf | 169 ++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 169 insertions(+)
create mode 100644 Configurations/20-debian.conf
diff --git a/Configurations/20-debian.conf b/Configurations/20-debian.conf
new file mode 100644
-index 000000000000..a3d5f68d36aa
+index 000000000000..c6860ed4b7d7
--- /dev/null
+++ b/Configurations/20-debian.conf
-@@ -0,0 +1,210 @@
+@@ -0,0 +1,169 @@
+my %targets = (
+ "debian" => {
-+ cflags => add("-Wa,--noexecstack -Wall"),
++ cflags => add("-Wa,--noexecstack -Wall -fzero-call-used-regs=used-gpr -DOPENSSL_TLS_SECURITY_LEVEL=2"),
+ },
+ "debian-alpha" => {
+ inherit_from => [ "linux-alpha-gcc", "debian" ],
@@ -31,6 +31,9 @@ index 000000000000..a3d5f68d36aa
+ inherit_from => [ "debian-alpha" ],
+ cflags => add("-mcpu=ev5"),
+ },
++ "debian-arc" => {
++ inherit_from => [ "linux-latomic", "debian" ],
++ },
+ "debian-arm64" => {
+ inherit_from => [ "linux-aarch64", "debian" ],
+ },
@@ -62,15 +65,21 @@ index 000000000000..a3d5f68d36aa
+ },
+ "debian-hppa" => {
+ inherit_from => [ "linux-generic32", "debian" ],
++ cflags => add("-DB_ENDIAN"),
+ },
+ "debian-hurd-i386" => {
+ inherit_from => [ "hurd-x86", "debian" ],
+ },
+ "debian-ia64" => {
+ inherit_from => [ "linux-ia64", "debian" ],
++ cflags => add("-fzero-call-used-regs=skip"),
++ },
++ "debian-loong64" => {
++ inherit_from => [ "linux64-loongarch64", "debian" ],
+ },
+ "debian-m68k" => {
-+ inherit_from => [ "linux-generic32", "debian" ],
++ inherit_from => [ "linux-latomic", "debian" ],
++ cflags => add("-DB_ENDIAN"),
+ },
+ "debian-mips" => {
+ inherit_from => [ "linux-mips32", "debian" ],
@@ -97,59 +106,6 @@ index 000000000000..a3d5f68d36aa
+ cflags => add("-DL_ENDIAN"),
+ },
+
-+ # Temporary MIPS R6 targets. Those will vanish approx in 1.1.1 because
-+ # aes-mips.pl creates proper R6 ASM code. After that, we can inherit from
-+ # the linux*-mips* targets.
-+ "linux-mips32r6" => {
-+ # Configure script adds minimally required -march for assembly
-+ # support, if no -march was specified at command line.
-+ inherit_from => [ "linux-generic32"],
-+ cflags => add("-mabi=32"),
-+ perlasm_scheme => "o32",
-+ shared_ldflag => add("-mabi=32"),
-+ },
-+ # mips32 and mips64 below refer to contemporary MIPS Architecture
-+ # specifications, MIPS32 and MIPS64, rather than to kernel bitness.
-+ "linux-mips64r6" => {
-+ inherit_from => [ "linux-generic32"],
-+ cflags => add("-mabi=n32"),
-+ bn_ops => "SIXTY_FOUR_BIT RC4_CHAR",
-+ perlasm_scheme => "n32",
-+ shared_ldflag => add("-mabi=n32"),
-+ multilib => "32",
-+ },
-+ "linux64-mips64r6" => {
-+ inherit_from => [ "linux-generic64"],
-+ cflags => add("-mabi=64"),
-+ perlasm_scheme => "64",
-+ shared_ldflag => add("-mabi=64"),
-+ multilib => "64",
-+ },
-+ "debian-mipsr6" => {
-+ inherit_from => [ "linux-mips32r6", "debian" ],
-+ cflags => add("-DB_ENDIAN"),
-+ },
-+ "debian-mipsr6el" => {
-+ inherit_from => [ "linux-mips32r6", "debian" ],
-+ cflags => add("-DL_ENDIAN"),
-+ },
-+ "debian-mipsn32r6" => {
-+ inherit_from => [ "linux-mips64r6", "debian" ],
-+ cflags => add("-DB_ENDIAN"),
-+ },
-+ "debian-mipsn32r6el" => {
-+ inherit_from => [ "linux-mips64r6", "debian" ],
-+ cflags => add("-DL_ENDIAN"),
-+ },
-+ "debian-mips64r6" => {
-+ inherit_from => [ "linux64-mips64r6", "debian" ],
-+ cflags => add("-DB_ENDIAN"),
-+ },
-+ "debian-mips64r6el" => {
-+ inherit_from => [ "linux64-mips64r6", "debian" ],
-+ cflags => add("-DL_ENDIAN"),
-+ },
-+
+ "debian-musl-linux-arm64" => {
+ inherit_from => [ "linux-aarch64", "debian" ],
+ },
@@ -169,7 +125,7 @@ index 000000000000..a3d5f68d36aa
+ },
+
+ "debian-nios2" => {
-+ inherit_from => [ "linux-generic32", "debian" ],
++ inherit_from => [ "linux-latomic", "debian" ],
+ },
+ "debian-powerpc" => {
+ inherit_from => [ "linux-ppc", "debian" ],
@@ -178,7 +134,8 @@ index 000000000000..a3d5f68d36aa
+ inherit_from => [ "linux-ppc", "debian" ],
+ },
+ "debian-ppc64" => {
-+ inherit_from => [ "linux-generic64", "debian", asm("ppc64_asm") ],
++ inherit_from => [ "linux-generic64", "debian", ],
++ asm_arch => 'ppc64',
+ cflags => add("-DB_ENDIAN"),
+ perlasm_scheme => "linux64",
+ },
@@ -195,28 +152,31 @@ index 000000000000..a3d5f68d36aa
+ inherit_from => [ "linux64-s390x", "debian" ],
+ },
+ "debian-sh3" => {
-+ inherit_from => [ "linux-generic32", "debian" ],
++ inherit_from => [ "linux-latomic", "debian" ],
+ },
+ "debian-sh3eb" => {
-+ inherit_from => [ "linux-generic32", "debian" ],
++ inherit_from => [ "linux-latomic", "debian" ],
+ },
+ "debian-sh4" => {
-+ inherit_from => [ "linux-generic32", "debian" ],
++ inherit_from => [ "linux-latomic", "debian" ],
+ },
+ "debian-sh4eb" => {
-+ inherit_from => [ "linux-generic32", "debian" ],
++ inherit_from => [ "linux-latomic", "debian" ],
+ },
+ "debian-m32r" => {
-+ inherit_from => [ "linux-generic32", "debian" ],
++ inherit_from => [ "linux-latomic", "debian" ],
+ },
+ "debian-sparc" => {
-+ inherit_from => [ "linux-generic32", "debian", asm("sparcv9_asm") ],
++ inherit_from => [ "linux-latomic", "debian", ],
++ asm_arch => 'sparcv9',
+ cflags => add("-DB_ENDIAN -DBN_DIV2W"),
+ },
+ "debian-sparc64" => {
-+ inherit_from => [ "linux-generic64", "debian", asm("sparcv9_asm") ],
++ inherit_from => [ "linux-generic64", "debian" ],
++ asm_arch => 'sparcv9',
+ cflags => add("-m64 -mcpu=ultrasparc -DB_ENDIAN"),
+ bn_ops => "BN_LLONG RC4_CHAR",
++ ex_libs => add("-latomic"),
+ },
+ "debian-tilegx" => {
+ inherit_from => [ "linux-generic64", "debian" ],
@@ -225,4 +185,3 @@ index 000000000000..a3d5f68d36aa
+ inherit_from => [ "linux-x32", "debian" ],
+ },
+);
-+
diff --git a/patches/openssl-1.1.1k/0002-pic.patch b/patches/openssl-3.2.1/0002-pic.patch
index d833d93e8..840819211 100644
--- a/patches/openssl-1.1.1k/0002-pic.patch
+++ b/patches/openssl-3.2.1/0002-pic.patch
@@ -2,7 +2,7 @@ From: Debian OpenSSL Team <pkg-openssl-devel@lists.alioth.debian.org>
Date: Sun, 5 Nov 2017 15:09:09 +0100
Subject: [PATCH] pic
-Imported from openssl_1.1.1k-1.debian.tar.xz
+Imported from openssl_3.0.8-1.debian.tar.xz
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
---
@@ -13,7 +13,7 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
4 files changed, 55 insertions(+), 12 deletions(-)
diff --git a/crypto/des/asm/desboth.pl b/crypto/des/asm/desboth.pl
-index ef7054e27506..50765d2b1552 100644
+index afffd20d84cd..b50e85ce24f8 100644
--- a/crypto/des/asm/desboth.pl
+++ b/crypto/des/asm/desboth.pl
@@ -23,6 +23,11 @@ sub DES_encrypt3
@@ -54,7 +54,7 @@ index ef7054e27506..50765d2b1552 100644
&stack_pop(3);
&mov($L,&DWP(0,"ebx","",0));
diff --git a/crypto/perlasm/cbc.pl b/crypto/perlasm/cbc.pl
-index 01bafe457d68..c093be5a4fd6 100644
+index ef09e0fd297a..fe6ff45d1804 100644
--- a/crypto/perlasm/cbc.pl
+++ b/crypto/perlasm/cbc.pl
@@ -129,7 +129,11 @@ sub cbc
@@ -70,7 +70,7 @@ index 01bafe457d68..c093be5a4fd6 100644
&mov("eax", &DWP($data_off,"esp","",0));
&mov("ebx", &DWP($data_off+4,"esp","",0));
-@@ -192,7 +196,11 @@ sub cbc
+@@ -199,7 +203,11 @@ sub cbc
&mov(&DWP($data_off,"esp","",0), "eax"); # put in array for call
&mov(&DWP($data_off+4,"esp","",0), "ebx"); #
@@ -83,7 +83,7 @@ index 01bafe457d68..c093be5a4fd6 100644
&mov("eax", &DWP($data_off,"esp","",0));
&mov("ebx", &DWP($data_off+4,"esp","",0));
-@@ -225,7 +233,11 @@ sub cbc
+@@ -232,7 +240,11 @@ sub cbc
&mov(&DWP($data_off,"esp","",0), "eax"); # put back
&mov(&DWP($data_off+4,"esp","",0), "ebx"); #
@@ -96,7 +96,7 @@ index 01bafe457d68..c093be5a4fd6 100644
&mov("eax", &DWP($data_off,"esp","",0)); # get return
&mov("ebx", &DWP($data_off+4,"esp","",0)); #
-@@ -268,7 +280,11 @@ sub cbc
+@@ -275,7 +287,11 @@ sub cbc
&mov(&DWP($data_off,"esp","",0), "eax"); # put back
&mov(&DWP($data_off+4,"esp","",0), "ebx"); #
@@ -110,18 +110,18 @@ index 01bafe457d68..c093be5a4fd6 100644
&mov("eax", &DWP($data_off,"esp","",0)); # get return
&mov("ebx", &DWP($data_off+4,"esp","",0)); #
diff --git a/crypto/perlasm/x86gas.pl b/crypto/perlasm/x86gas.pl
-index 5c7ea3880e4d..7e49b55e97c7 100644
+index 1b2b27c02286..a62c01b175a2 100644
--- a/crypto/perlasm/x86gas.pl
+++ b/crypto/perlasm/x86gas.pl
-@@ -170,6 +170,7 @@ sub ::file_end
+@@ -171,6 +171,7 @@ sub ::file_end
if ($::macosx) { push (@out,"$tmp,2\n"); }
elsif ($::elf) { push (@out,"$tmp,4\n"); }
else { push (@out,"$tmp\n"); }
-+ if ($::elf) { push (@out,".hidden\tOPENSSL_ia32cap_P\n"); }
++ if ($::elf) { push (@out,".hidden\tOPENSSL_ia32cap_P\n"); }
}
push(@out,$initseg) if ($initseg);
- }
-@@ -228,8 +229,23 @@ ___
+ if ($::elf) {
+@@ -249,8 +250,23 @@ ___
elsif ($::elf)
{ $initseg.=<<___;
.section .init
@@ -146,10 +146,10 @@ index 5c7ea3880e4d..7e49b55e97c7 100644
elsif ($::coff)
{ $initseg.=<<___; # applies to both Cygwin and Mingw
diff --git a/crypto/x86cpuid.pl b/crypto/x86cpuid.pl
-index ba4fd80fb32e..18c124707587 100644
+index a7bcb27e262d..6688a1fc4464 100644
--- a/crypto/x86cpuid.pl
+++ b/crypto/x86cpuid.pl
-@@ -18,6 +18,8 @@ open OUT,">$output";
+@@ -16,6 +16,8 @@ $output = pop and open STDOUT,">$output";
for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
@@ -158,7 +158,7 @@ index ba4fd80fb32e..18c124707587 100644
&function_begin("OPENSSL_ia32_cpuid");
&xor ("edx","edx");
&pushf ();
-@@ -163,9 +165,7 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
+@@ -161,9 +163,7 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
&set_label("nocpuid");
&function_end("OPENSSL_ia32_cpuid");
@@ -169,7 +169,7 @@ index ba4fd80fb32e..18c124707587 100644
&xor ("eax","eax");
&xor ("edx","edx");
&picmeup("ecx","OPENSSL_ia32cap_P");
-@@ -179,7 +179,7 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
+@@ -177,7 +177,7 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
# This works in Ring 0 only [read DJGPP+MS-DOS+privileged DPMI host],
# but it's safe to call it on any [supported] 32-bit platform...
# Just check for [non-]zero return value...
@@ -178,7 +178,7 @@ index ba4fd80fb32e..18c124707587 100644
&picmeup("ecx","OPENSSL_ia32cap_P");
&bt (&DWP(0,"ecx"),4);
&jnc (&label("nohalt")); # no TSC
-@@ -246,7 +246,7 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
+@@ -244,7 +244,7 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
&ret ();
&function_end_B("OPENSSL_far_spin");
diff --git a/patches/openssl-3.2.1/0003-Configure-allow-to-enable-ktls-if-target-does-not-st.patch b/patches/openssl-3.2.1/0003-Configure-allow-to-enable-ktls-if-target-does-not-st.patch
new file mode 100644
index 000000000..6b518ef22
--- /dev/null
+++ b/patches/openssl-3.2.1/0003-Configure-allow-to-enable-ktls-if-target-does-not-st.patch
@@ -0,0 +1,55 @@
+From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+Date: Thu, 1 Apr 2021 21:46:17 +0200
+Subject: [PATCH] Configure: allow to enable ktls if target does not start with
+ Linux
+
+The Debian build system uses a `debian' target which sets CFLAGS and
+then we have for instance debian-amd64 which inherits from
+linux-x86_64 and debian. So far so good.
+
+Since the target name does not start with `linux', the build system does not
+enable ktls. So in order to get enabled, I
+added a
+ `enable => [ "ktls" ],'
+to the generic linux config which sets it explicit). Having this set, we can
+check for it instead matching the target name.
+
+This commit is based on changes for afalgeng in commit
+ 9e381e8a01859 ("Configure: allow to enable afalgeng if target does not start with Linux")
+
+Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+
+Imported from openssl_3.0.8-1.debian.tar.xz
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ Configurations/10-main.conf | 2 +-
+ Configure | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf
+index 2a047caa7d4a..aa2685be93b9 100644
+--- a/Configurations/10-main.conf
++++ b/Configurations/10-main.conf
+@@ -693,7 +693,7 @@ my %targets = (
+ shared_target => "linux-shared",
+ shared_cflag => "-fPIC",
+ shared_ldflag => sub { $disabled{pinshared} ? () : "-Wl,-znodelete" },
+- enable => [ "afalgeng" ],
++ enable => [ "afalgeng", "ktls" ],
+ },
+ "linux-latomic" => {
+ inherit_from => [ "linux-generic32" ],
+diff --git a/Configure b/Configure
+index cca1ac8d162e..c9bbcbbed3e6 100755
+--- a/Configure
++++ b/Configure
+@@ -1765,7 +1765,7 @@ unless ($disabled{devcryptoeng}) {
+ unless ($disabled{ktls}) {
+ $config{ktls}="";
+ my $cc = $config{CROSS_COMPILE}.$config{CC};
+- if ($target =~ m/^linux/) {
++ if (grep { $_ eq 'afalgeng' } @{$target{enable}}) {
+ system("printf '#include <sys/types.h>\n#include <linux/tls.h>' | $cc -E - >/dev/null 2>&1");
+ if ($? != 0) {
+ disable('too-old-kernel', 'ktls');
diff --git a/patches/openssl-3.2.1/0004-conf-Serialize-allocation-free-of-ssl_names.patch b/patches/openssl-3.2.1/0004-conf-Serialize-allocation-free-of-ssl_names.patch
new file mode 100644
index 000000000..e9cabb5f9
--- /dev/null
+++ b/patches/openssl-3.2.1/0004-conf-Serialize-allocation-free-of-ssl_names.patch
@@ -0,0 +1,106 @@
+From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+Date: Mon, 19 Sep 2022 20:51:31 +0200
+Subject: [PATCH] conf: Serialize allocation/free of ssl_names.
+
+The access to `ssl_names' is not fully serialized. With multiple threads
+it is possible that more than one thread starts to clean up `ssl_names'.
+This leads to occasional segfaults if more than one terminates and
+performs the clean up.
+
+Fixes: #19243
+
+Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+
+Imported from openssl_3.0.8-1.debian.tar.xz
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ crypto/conf/conf_ssl.c | 35 ++++++++++++++++++++++++++++++++---
+ 1 file changed, 32 insertions(+), 3 deletions(-)
+
+diff --git a/crypto/conf/conf_ssl.c b/crypto/conf/conf_ssl.c
+index 84c5b2afe581..d6596e60c3b5 100644
+--- a/crypto/conf/conf_ssl.c
++++ b/crypto/conf/conf_ssl.c
+@@ -12,6 +12,7 @@
+ #include <openssl/conf.h>
+ #include <openssl/err.h>
+ #include "internal/sslconf.h"
++#include "internal/thread_once.h"
+ #include "conf_local.h"
+
+ /*
+@@ -35,12 +36,25 @@ struct ssl_conf_cmd_st {
+ char *arg;
+ };
+
++static CRYPTO_ONCE init_ssl_names_lock = CRYPTO_ONCE_STATIC_INIT;
++static CRYPTO_RWLOCK *ssl_names_lock;
+ static struct ssl_conf_name_st *ssl_names;
+ static size_t ssl_names_count;
+
+-static void ssl_module_free(CONF_IMODULE *md)
++DEFINE_RUN_ONCE_STATIC(do_init_ssl_names_lock)
++{
++ ssl_names_lock = CRYPTO_THREAD_lock_new();
++ if (ssl_names_lock == NULL) {
++ ERR_raise(ERR_LIB_CONF, ERR_R_MALLOC_FAILURE);
++ return 0;
++ }
++ return 1;
++}
++
++static void ssl_module_free_unlocked(CONF_IMODULE *md)
+ {
+ size_t i, j;
++
+ if (ssl_names == NULL)
+ return;
+ for (i = 0; i < ssl_names_count; i++) {
+@@ -58,6 +72,14 @@ static void ssl_module_free(CONF_IMODULE *md)
+ ssl_names_count = 0;
+ }
+
++static void ssl_module_free(CONF_IMODULE *md)
++{
++ if (!CRYPTO_THREAD_write_lock(ssl_names_lock))
++ return;
++ ssl_module_free_unlocked(md);
++ CRYPTO_THREAD_unlock(ssl_names_lock);
++}
++
+ static int ssl_module_init(CONF_IMODULE *md, const CONF *cnf)
+ {
+ size_t i, j, cnt;
+@@ -65,6 +87,12 @@ static int ssl_module_init(CONF_IMODULE *md, const CONF *cnf)
+ const char *ssl_conf_section;
+ STACK_OF(CONF_VALUE) *cmd_lists;
+
++ if (!RUN_ONCE(&init_ssl_names_lock, do_init_ssl_names_lock))
++ return 0;
++
++ if (!CRYPTO_THREAD_write_lock(ssl_names_lock))
++ return 0;
++
+ ssl_conf_section = CONF_imodule_get_value(md);
+ cmd_lists = NCONF_get_section(cnf, ssl_conf_section);
+ if (sk_CONF_VALUE_num(cmd_lists) <= 0) {
+@@ -77,7 +105,7 @@ static int ssl_module_init(CONF_IMODULE *md, const CONF *cnf)
+ goto err;
+ }
+ cnt = sk_CONF_VALUE_num(cmd_lists);
+- ssl_module_free(md);
++ ssl_module_free_unlocked(md);
+ ssl_names = OPENSSL_zalloc(sizeof(*ssl_names) * cnt);
+ if (ssl_names == NULL)
+ goto err;
+@@ -126,7 +154,8 @@ static int ssl_module_init(CONF_IMODULE *md, const CONF *cnf)
+ rv = 1;
+ err:
+ if (rv == 0)
+- ssl_module_free(md);
++ ssl_module_free_unlocked(md);
++ CRYPTO_THREAD_unlock(ssl_names_lock);
+ return rv;
+ }
+
diff --git a/patches/openssl-3.2.1/0005-Configure-drop-fzero-call-used-regs-used-gpr-from-De.patch b/patches/openssl-3.2.1/0005-Configure-drop-fzero-call-used-regs-used-gpr-from-De.patch
new file mode 100644
index 000000000..a26a6a2ae
--- /dev/null
+++ b/patches/openssl-3.2.1/0005-Configure-drop-fzero-call-used-regs-used-gpr-from-De.patch
@@ -0,0 +1,25 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Fri, 17 Feb 2023 15:00:13 +0100
+Subject: [PATCH] Configure: drop -fzero-call-used-regs=used-gpr from Debian
+ targets
+
+This option is only supported since gcc 11 so it cannot be used
+unconditionally.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ Configurations/20-debian.conf | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Configurations/20-debian.conf b/Configurations/20-debian.conf
+index c6860ed4b7d7..607704906c62 100644
+--- a/Configurations/20-debian.conf
++++ b/Configurations/20-debian.conf
+@@ -1,6 +1,6 @@
+ my %targets = (
+ "debian" => {
+- cflags => add("-Wa,--noexecstack -Wall -fzero-call-used-regs=used-gpr -DOPENSSL_TLS_SECURITY_LEVEL=2"),
++ cflags => add("-Wa,--noexecstack -Wall -DOPENSSL_TLS_SECURITY_LEVEL=2"),
+ },
+ "debian-alpha" => {
+ inherit_from => [ "linux-alpha-gcc", "debian" ],
diff --git a/patches/openssl-3.2.1/series b/patches/openssl-3.2.1/series
new file mode 100644
index 000000000..cd66cc21a
--- /dev/null
+++ b/patches/openssl-3.2.1/series
@@ -0,0 +1,10 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+#tag:debian --start-number 1
+0001-debian-targets.patch
+0002-pic.patch
+0003-Configure-allow-to-enable-ktls-if-target-does-not-st.patch
+0004-conf-Serialize-allocation-free-of-ssl_names.patch
+0005-Configure-drop-fzero-call-used-regs-used-gpr-from-De.patch
+#tag:upstream --start-number 100
+# ab24a399a1a602376760e385c08ab320 - git-ptx-patches magic
diff --git a/patches/opkg-utils-0.4.2/0001-Fix-reproducibility-issues-in-opkg-build.patch b/patches/opkg-utils-0.4.2/0001-Fix-reproducibility-issues-in-opkg-build.patch
deleted file mode 100644
index f1615a392..000000000
--- a/patches/opkg-utils-0.4.2/0001-Fix-reproducibility-issues-in-opkg-build.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Wed, 5 Feb 2020 12:08:39 +0000
-Subject: [PATCH] Fix reproducibility issues in opkg-build
-
-There is a sorting problem with opkg-build where the ipk generated is depending
-upon the order of files on disk. The reason is the --sort option to tar only
-influences the orders of files tar reads, not those passed by the -T option.
-
-Add in a sort call to resolve this issue. To ensure consistent sorting we
-also need to force to a specific locale (C) else the results are still not
-deterministic.
-
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
----
- opkg-build | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/opkg-build b/opkg-build
-index 8b3d7a9f78de..1b564166a7a4 100755
---- a/opkg-build
-+++ b/opkg-build
-@@ -305,8 +305,10 @@ if [ ! -z "$SOURCE_DATE_EPOCH" ]; then
- mtime_args="--mtime=@$build_date --clamp-mtime"
- fi
-
--( cd $pkg_dir/$CONTROL && find . -type f > $tmp_dir/control_list )
--( cd $pkg_dir && find . -path ./$CONTROL -prune -o -path . -o -print > $tmp_dir/file_list )
-+export LANG=C
-+export LC_ALL=C
-+( cd $pkg_dir/$CONTROL && find . -type f | sort > $tmp_dir/control_list )
-+( cd $pkg_dir && find . -path ./$CONTROL -prune -o -path . -o -print | sort > $tmp_dir/file_list )
- ( cd $pkg_dir && tar $ogargs $tsortargs --no-recursion $mtime_args -c $tarformat -T $tmp_dir/file_list | $compressor $compressorargs > $tmp_dir/data.tar.$cext )
- ( cd $pkg_dir/$CONTROL && tar $ogargs $tsortargs --no-recursion --mtime=@$build_date -c $tarformat -T $tmp_dir/control_list | gzip $zipargs > $tmp_dir/control.tar.gz )
- rm $tmp_dir/file_list
diff --git a/patches/opkg-utils-0.4.2/0103-Revert-opkg-build-clamp-mtimes-to-SOURCE_DATE_EPOCH.patch b/patches/opkg-utils-0.4.2/0103-Revert-opkg-build-clamp-mtimes-to-SOURCE_DATE_EPOCH.patch
deleted file mode 100644
index b855eec53..000000000
--- a/patches/opkg-utils-0.4.2/0103-Revert-opkg-build-clamp-mtimes-to-SOURCE_DATE_EPOCH.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 25 Jan 2020 18:28:40 +0100
-Subject: [PATCH] Revert "opkg-build: clamp mtimes to SOURCE_DATE_EPOCH"
-
-This reverts commit c3cc95693048bdd57a82069bad47abbc72a1932e.
-
-We set the mtime already in PTXdist so it's not needed and this breaks
-building with tar <= 1.28 (e.g. CentOS 7).
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- opkg-build | 9 +--------
- 1 file changed, 1 insertion(+), 8 deletions(-)
-
-diff --git a/opkg-build b/opkg-build
-index 6d6f7e92b919..2fb6216104b6 100755
---- a/opkg-build
-+++ b/opkg-build
-@@ -298,18 +298,11 @@ mkdir $tmp_dir
-
- build_date="${SOURCE_DATE_EPOCH:-$(date +%s)}"
-
--mtime_args=""
--# --clamp-mtime requires tar > 1.28. Only use it if SOURCE_DATE_EPOCH is set, to avoid having a generic case dependency on tar > 1.28.
--# this setting will make sure files generated at build time have consistent mtimes, for reproducible builds.
--if [ ! -z "$SOURCE_DATE_EPOCH" ]; then
-- mtime_args="--mtime=@$build_date --clamp-mtime"
--fi
--
- export LANG=C
- export LC_ALL=C
- ( cd $pkg_dir/$CONTROL && find . -type f | sort > $tmp_dir/control_list )
- ( cd $pkg_dir && find . -path ./$CONTROL -prune -o -path . -o -print | sort > $tmp_dir/file_list )
--( cd $pkg_dir && tar $ogargs $tsortargs --no-recursion $mtime_args -c $tarformat -T $tmp_dir/file_list | $compressor $compressorargs > $tmp_dir/data.tar.$cext )
-+( cd $pkg_dir && tar $ogargs $tsortargs --no-recursion -c $tarformat -T $tmp_dir/file_list | $compressor $compressorargs > $tmp_dir/data.tar.$cext )
- ( cd $pkg_dir/$CONTROL && tar $ogargs $tsortargs --no-recursion --mtime=@$build_date -c $tarformat -T $tmp_dir/control_list | gzip $zipargs > $tmp_dir/control.tar.gz )
- rm $tmp_dir/file_list
- rm $tmp_dir/control_list
diff --git a/patches/opkg-utils-0.4.2/0100-opkg-build-use-CROSS_COMPILE-ar.patch b/patches/opkg-utils-0.6.3/0100-opkg-build-use-CROSS_COMPILE-ar.patch
index 9e54dd0ec..556092909 100644
--- a/patches/opkg-utils-0.4.2/0100-opkg-build-use-CROSS_COMPILE-ar.patch
+++ b/patches/opkg-utils-0.6.3/0100-opkg-build-use-CROSS_COMPILE-ar.patch
@@ -14,15 +14,15 @@ Signed-off-by: Andreas Bießmann <andreas@biessmann.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/opkg-build b/opkg-build
-index 1b564166a7a4..eca1ee2fa42c 100755
+index 6edd938b8f7e..ef2fbfa42c09 100755
--- a/opkg-build
+++ b/opkg-build
-@@ -324,7 +324,7 @@ fi
+@@ -352,7 +352,7 @@ fi
rm -f $pkg_file
if [ "$outer" = "ar" ] ; then
-- ( cd $tmp_dir && ar -crfD $pkg_file ./debian-binary ./control.tar.gz ./data.tar.$cext )
-+ ( cd $tmp_dir && ${CROSS_COMPILE}ar -crfD $pkg_file ./debian-binary ./control.tar.gz ./data.tar.$cext )
+- ( cd $tmp_dir && ar -crfD $pkg_file ./debian-binary ./control.tar.gz ./data.tar.$cext )
++ ( cd $tmp_dir && ${CROSS_COMPILE}ar -crfD $pkg_file ./debian-binary ./control.tar.gz ./data.tar.$cext )
else
- ( cd $tmp_dir && tar -c $tsortargs --mtime=@$build_date $tarformat ./debian-binary ./control.tar.gz ./data.tar.$cext | gzip $zipargs > $pkg_file )
+ ( cd $tmp_dir && tar -c $tsortargs $mtime_args $tarformat ./debian-binary ./control.tar.gz ./data.tar.$cext | gzip $zipargs > $pkg_file )
fi
diff --git a/patches/opkg-utils-0.4.2/0101-Update-Installed-Size-properly.patch b/patches/opkg-utils-0.6.3/0101-Update-Installed-Size-properly.patch
index 3f617eaff..48a00ff9a 100644
--- a/patches/opkg-utils-0.4.2/0101-Update-Installed-Size-properly.patch
+++ b/patches/opkg-utils-0.6.3/0101-Update-Installed-Size-properly.patch
@@ -11,10 +11,10 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/opkg.py b/opkg.py
-index ba947c2e887b..7b7e216419a1 100644
+index e5a65dd1ae8f..ec77c147156c 100644
--- a/opkg.py
+++ b/opkg.py
-@@ -248,7 +248,7 @@ class Package(object):
+@@ -276,7 +276,7 @@ class Package(object):
lineparts = re.match(r'([\w-]*?):\s*(.*)', line)
if lineparts:
name = lineparts.group(1)
@@ -23,7 +23,7 @@ index ba947c2e887b..7b7e216419a1 100644
value = lineparts.group(2)
while 1:
line = control.readline().rstrip()
-@@ -510,7 +510,7 @@ class Package(object):
+@@ -538,7 +538,7 @@ class Package(object):
if 'sha256' in checksum:
if self.sha256: out = out + "SHA256sum: %s\n" % (self.sha256)
if self.size: out = out + "Size: %d\n" % int(self.size)
diff --git a/patches/opkg-utils-0.4.2/0102-opkg-build-in-ptxdist-the-maxium-UID-for-system-user.patch b/patches/opkg-utils-0.6.3/0102-opkg-build-in-ptxdist-the-maxium-UID-for-system-user.patch
index 8a1df58e1..ba8c852a1 100644
--- a/patches/opkg-utils-0.4.2/0102-opkg-build-in-ptxdist-the-maxium-UID-for-system-user.patch
+++ b/patches/opkg-utils-0.6.3/0102-opkg-build-in-ptxdist-the-maxium-UID-for-system-user.patch
@@ -8,11 +8,11 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/opkg-build b/opkg-build
-index eca1ee2fa42c..6d6f7e92b919 100755
+index ef2fbfa42c09..6a1b631fc5d5 100755
--- a/opkg-build
+++ b/opkg-build
@@ -69,14 +69,14 @@ You probably want to remove them: " >&2
- fi
+ fi
fi
- large_uid_files=`find . -uid +99 -ls -printf '\\\n' || true`
diff --git a/patches/opkg-utils-0.4.2/0104-opkg-build-fix-typo-in-compressorargs.patch b/patches/opkg-utils-0.6.3/0103-opkg-build-fix-typo-in-compressorargs.patch
index ea791bbc2..1576296ba 100644
--- a/patches/opkg-utils-0.4.2/0104-opkg-build-fix-typo-in-compressorargs.patch
+++ b/patches/opkg-utils-0.6.3/0103-opkg-build-fix-typo-in-compressorargs.patch
@@ -11,10 +11,10 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/opkg-build b/opkg-build
-index 2fb6216104b6..7e1a1af99948 100755
+index 6a1b631fc5d5..c609249190f4 100755
--- a/opkg-build
+++ b/opkg-build
-@@ -236,7 +236,7 @@ if gzip --help 2>&1 | grep -- "-T" > /dev/null; then
+@@ -252,7 +252,7 @@ if gzip --help 2>&1 | grep -- "-T" > /dev/null; then
zipargs="-9nT"
fi
diff --git a/patches/opkg-utils-0.4.2/series b/patches/opkg-utils-0.6.3/series
index 5782e137f..800146487 100644
--- a/patches/opkg-utils-0.4.2/series
+++ b/patches/opkg-utils-0.6.3/series
@@ -1,11 +1,9 @@
# generated by git-ptx-patches
#tag:base --start-number 1
#tag:upstream --start-number 1
-0001-Fix-reproducibility-issues-in-opkg-build.patch
#tag:ptx --start-number 100
0100-opkg-build-use-CROSS_COMPILE-ar.patch
0101-Update-Installed-Size-properly.patch
0102-opkg-build-in-ptxdist-the-maxium-UID-for-system-user.patch
-0103-Revert-opkg-build-clamp-mtimes-to-SOURCE_DATE_EPOCH.patch
-0104-opkg-build-fix-typo-in-compressorargs.patch
-# beebeb187639b0a8c121563179f0d21b - git-ptx-patches magic
+0103-opkg-build-fix-typo-in-compressorargs.patch
+# 6c399b3d39fd841e35a006cd4534b2eb - git-ptx-patches magic
diff --git a/patches/opus-1.5.1/0001-fix-arm-asm-meson-source-build.patch b/patches/opus-1.5.1/0001-fix-arm-asm-meson-source-build.patch
new file mode 100644
index 000000000..046b12c65
--- /dev/null
+++ b/patches/opus-1.5.1/0001-fix-arm-asm-meson-source-build.patch
@@ -0,0 +1,66 @@
+From: Rudi Heitbaum <rudi@heitbaum.com>
+Date: Wed, 6 Mar 2024 11:21:07 +0000
+Subject: [PATCH] fix arm asm meson source build
+
+meson does mot support output with paths; add a meson.build file in the arm
+directory. The output files were being incorrectly placed in the celt/ directory.
+
+Program arm/arm2gnu.pl found: YES (/var/media/DATA/home-rudi/LibreELEC.kernel11/build.LibreELEC-H3.arm-12.0-devel/build/opus-v1.5.1/celt/arm/arm2gnu.pl)
+Configuring celt_pitch_xcorr_arm-gnu.S with command
+
+../celt/meson.build:51:25: ERROR: configure_file keyword argument "output" Output 'arm/armopts.s' must not contain a path segment.
+
+before:
+celt/celt_pitch_xcorr_arm-gnu.S
+
+after:
+celt/arm/celt_pitch_xcorr_arm-gnu.S
+celt/arm/armopts.s
+celt/arm/armopts-gnu.S
+
+Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com>
+Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
+---
+ celt/arm/meson.build | 12 ++++++++++++
+ celt/meson.build | 9 +--------
+ 2 files changed, 13 insertions(+), 8 deletions(-)
+ create mode 100644 celt/arm/meson.build
+
+diff --git a/celt/arm/meson.build b/celt/arm/meson.build
+new file mode 100644
+index 000000000000..b4dec564fcbe
+--- /dev/null
++++ b/celt/arm/meson.build
+@@ -0,0 +1,12 @@
++arm2gnu = [find_program('arm2gnu.pl')] + arm2gnu_args
++celt_sources_arm_asm = configure_file(input: 'celt_pitch_xcorr_arm.s',
++ output: '@BASENAME@-gnu.S',
++ command: arm2gnu + ['@INPUT@'],
++ capture: true)
++celt_arm_armopts_s_in = configure_file(input: 'armopts.s.in',
++ output: 'armopts.s',
++ configuration: opus_conf)
++celt_arm_armopts_s = configure_file(input: [celt_arm_armopts_s_in],
++ output: '@BASENAME@-gnu.S',
++ command: arm2gnu + ['@INPUT@'],
++ capture: true)
+diff --git a/celt/meson.build b/celt/meson.build
+index 7852fc156021..46601ca13586 100644
+--- a/celt/meson.build
++++ b/celt/meson.build
+@@ -43,14 +43,7 @@ if host_cpu_family in ['arm', 'aarch64'] and have_arm_intrinsics_or_asm
+ celt_sources += sources['CELT_SOURCES_ARM_NE10']
+ endif
+ if opus_arm_external_asm
+- arm2gnu = [find_program('arm/arm2gnu.pl')] + arm2gnu_args
+- celt_sources_arm_asm = configure_file(input: 'arm/celt_pitch_xcorr_arm.s',
+- output: '@BASENAME@-gnu.S',
+- command: arm2gnu + ['@INPUT@'],
+- capture: true)
+- celt_arm_armopts_s = configure_file(input: 'arm/armopts.s.in',
+- output: 'arm/armopts.s',
+- configuration: opus_conf)
++ subdir('arm')
+ celt_static_libs += static_library('celt-armasm',
+ celt_arm_armopts_s, celt_sources_arm_asm,
+ install: false)
diff --git a/patches/opus-1.5.1/0002-Extended-asm-with-C-operands-doesn-t-work-at-top-lev.patch b/patches/opus-1.5.1/0002-Extended-asm-with-C-operands-doesn-t-work-at-top-lev.patch
new file mode 100644
index 000000000..6fd6e641d
--- /dev/null
+++ b/patches/opus-1.5.1/0002-Extended-asm-with-C-operands-doesn-t-work-at-top-lev.patch
@@ -0,0 +1,44 @@
+From: Rudi Heitbaum <rudi@heitbaum.com>
+Date: Sat, 9 Mar 2024 17:39:20 +0000
+Subject: [PATCH] =?UTF-8?q?Extended=20asm=20with=20C=20operands=20doesn?=
+ =?UTF-8?q?=E2=80=99t=20work=20at=20top=20level?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+fix the following test in the meson.build
+
+stderr:
+testfile.c:6:34: error: expected ')' before '::' token
+ 6 |__asm__ (""::)
+ | ~ ^~
+ | )
+testfile.c:6:37: error: expected ';' at end of input
+ 6 |__asm__ (""::)
+ | ^
+ | ;
+-----------
+Checking if "compiler supports gcc-style inline assembly" compiles: NO
+
+refer:
+- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=41045
+
+Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com>
+Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 5623260962fc..1b16b08f662a 100644
+--- a/meson.build
++++ b/meson.build
+@@ -227,7 +227,7 @@ if not opt_asm.disabled()
+ #error GCC before 3.4 has critical bugs compiling inline assembly
+ #endif
+ #endif
+- __asm__ (""::)''',
++ int main(int argc, char ** argv) { __asm__ (""::); }''',
+ name : 'compiler supports gcc-style inline assembly')
+
+ opus_conf.set('OPUS_ARM_INLINE_ASM', 1)
diff --git a/patches/opus-1.5.1/0003-use-semicolon-not-newline-for-inline-assembler.patch b/patches/opus-1.5.1/0003-use-semicolon-not-newline-for-inline-assembler.patch
new file mode 100644
index 000000000..e36073e2a
--- /dev/null
+++ b/patches/opus-1.5.1/0003-use-semicolon-not-newline-for-inline-assembler.patch
@@ -0,0 +1,47 @@
+From: Rudi Heitbaum <rudi@heitbaum.com>
+Date: Sat, 9 Mar 2024 17:58:18 +0000
+Subject: [PATCH] use semicolon not newline for inline assembler
+
+fixes:
+
+testfile.c:3:11: warning: missing terminating " character
+ 3 | __asm__(".arch armv5te
+ | ^
+testfile.c:4:1: error: expected string literal before '.' token
+ 4 | .object_arch armv4t
+ | ^
+testfile.c:5:14: warning: missing terminating " character
+ 5 | qadd r3,r3,r3");
+ | ^
+
+Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com>
+Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
+---
+ meson.build | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 1b16b08f662a..bd23744cadb1 100644
+--- a/meson.build
++++ b/meson.build
+@@ -277,17 +277,17 @@ if not opt_asm.disabled()
+ if not opus_arm_may_have_edsp
+ message('Trying to force-enable armv5e EDSP instructions...')
+ # AS_ASM_ARM_EDSP_FORCE
+- opus_arm_may_have_edsp = cc.compiles(asm_tmpl.format('.arch armv5te\n.object_arch armv4t\nqadd r3,r3,r3'),
++ opus_arm_may_have_edsp = cc.compiles(asm_tmpl.format('.arch armv5te;.object_arch armv4t;qadd r3,r3,r3'),
+ name : 'Assembler supports EDSP instructions on ARM (forced)')
+ endif
+ if not opus_arm_may_have_media
+ message('Trying to force-enable ARMv6 media instructions...')
+- opus_arm_may_have_media = cc.compiles(asm_tmpl.format('.arch armv6\n.object_arch armv4t\nshadd8 r3,r3,r3'),
++ opus_arm_may_have_media = cc.compiles(asm_tmpl.format('.arch armv6;.object_arch armv4t;shadd8 r3,r3,r3'),
+ name : 'Assembler supports ARMv6 media instructions on ARM (forced)')
+ endif
+ if not opus_arm_may_have_neon
+ message('Trying to force-enable NEON instructions...')
+- opus_arm_may_have_neon = cc.compiles(asm_tmpl.format('.arch armv7-a\n.fpu neon\n.object_arch armv4t\nvorr d0,d0,d0'),
++ opus_arm_may_have_neon = cc.compiles(asm_tmpl.format('.arch armv7-a;.fpu neon;.object_arch armv4t;vorr d0,d0,d0'),
+ name : 'Assembler supports NEON instructions on ARM (forced)')
+ endif
+ endif
diff --git a/patches/opus-1.5.1/0004-Add-OPUS_ARM_INLINE_DOTPROD-dotprod-check.patch b/patches/opus-1.5.1/0004-Add-OPUS_ARM_INLINE_DOTPROD-dotprod-check.patch
new file mode 100644
index 000000000..30590fb63
--- /dev/null
+++ b/patches/opus-1.5.1/0004-Add-OPUS_ARM_INLINE_DOTPROD-dotprod-check.patch
@@ -0,0 +1,73 @@
+From: Rudi Heitbaum <rudi@heitbaum.com>
+Date: Sat, 9 Mar 2024 18:55:53 +0000
+Subject: [PATCH] Add OPUS_ARM_INLINE_DOTPROD dotprod check
+
+fixes:
+ ../meson.build:322:9: ERROR: Unknown variable "opus_arm_may_have_dotprod"
+
+after:
+ dotprod check passes through.
+
+Checking if "compiler supports gcc-style inline assembly" compiles: YES
+Checking if "assembler supports EDSP instructions on ARM" compiles: YES
+Checking if "assembler supports ARMv6 media instructions on ARM" compiles: YES
+Checking if "assembler supports NEON instructions on ARM" compiles: YES
+Checking if "assembler supports DOTPROD instructions on ARM" compiles: NO
+Program perl found: YES (/usr/bin/perl)
+Fetching value of define "__APPLE__" : (undefined)
+Checking if "compiler supports ARMv7/AArch64 NEON intrinsics" : links: YES
+Checking if "compiler supports AArch64 NEON intrinsics" : links: NO
+Checking if "compiler supports AArch64 NEON intrinsics with -mfpu=neon" : links: NO
+Message: Compiler does not support AArch64 NEON intrinsics
+Checking if "compiler supports AArch64 DOTPROD intrinsics" : links: NO
+Checking if "compiler supports AArch64 DOTPROD intrinsics with -march=armv8.2-a+dotprod" : links: NO
+Message: Compiler does not support AArch64 DOTPROD intrinsics
+
+refer:
+- https://community.arm.com/arm-community-blogs/b/tools-software-ides-blog/posts/exploring-the-arm-dot-product-instructions
+
+test with:
+armv7ve-none-linux-gnueabihf-gcc test.c
+/tmp/cc02sooK.s: Assembler messages:
+/tmp/cc02sooK.s:32: Error: bad instruction `udot v0.4s,v1.16b,v2.16b'
+
+aarch64-none-linux-gnu-gcc test.c
+/tmp/ccnVi9Ec.s: Assembler messages:
+/tmp/ccnVi9Ec.s:12: Error: selected processor does not support `udot v0.4s,v1.16b,v2.16b'
+
+aarch64-none-linux-gnu-gcc -march=armv8.2-a+dotprod test.c
+
+Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com>
+Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
+---
+ meson.build | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/meson.build b/meson.build
+index bd23744cadb1..8624f0c38a59 100644
+--- a/meson.build
++++ b/meson.build
+@@ -252,6 +252,13 @@ if not opt_asm.disabled()
+ opus_conf.set('OPUS_ARM_INLINE_NEON', 1)
+ inline_optimization += ['NEON']
+ endif
++
++ # AS_ASM_ARM_DOTPROD
++ if cc.compiles(asm_tmpl.format('udot v0.4s,v1.16b,v2.16b'),
++ name : 'assembler supports DOTPROD instructions on ARM')
++ opus_conf.set('OPUS_ARM_INLINE_DOTPROD', 1)
++ inline_optimization += ['DOTPROD']
++ endif
+ endif
+
+ # We need Perl to translate RVCT-syntax asm to gas syntax
+@@ -273,6 +280,9 @@ if not opt_asm.disabled()
+ opus_arm_may_have_neon = opus_conf.has('OPUS_ARM_INLINE_NEON')
+ opus_arm_presume_neon = opus_arm_may_have_neon and opus_can_presume_simd
+
++ opus_arm_may_have_dotprod = opus_conf.has('OPUS_ARM_INLINE_DOTPROD')
++ opus_arm_presume_dotprod = opus_arm_may_have_dotprod and opus_can_presume_simd
++
+ if not opt_rtcd.disabled()
+ if not opus_arm_may_have_edsp
+ message('Trying to force-enable armv5e EDSP instructions...')
diff --git a/patches/opus-1.5.1/0005-Fix-meson-AVX2-fixed-point.patch b/patches/opus-1.5.1/0005-Fix-meson-AVX2-fixed-point.patch
new file mode 100644
index 000000000..3ca42f93b
--- /dev/null
+++ b/patches/opus-1.5.1/0005-Fix-meson-AVX2-fixed-point.patch
@@ -0,0 +1,23 @@
+From: Jean-Marc Valin <jmvalin@jmvalin.ca>
+Date: Tue, 12 Mar 2024 02:03:22 -0400
+Subject: [PATCH] Fix meson AVX2 fixed-point
+
+---
+ silk/meson.build | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/silk/meson.build b/silk/meson.build
+index 80a59b050eb5..35d955784f5d 100644
+--- a/silk/meson.build
++++ b/silk/meson.build
+@@ -44,9 +44,7 @@ foreach intr_name : ['sse4_1', 'avx2', 'neon_intr']
+ endif
+
+ intr_sources = get_variable('silk_sources_' + intr_name)
+- if opt_fixed_point
+- intr_sources += get_variable('silk_sources_fixed_' + intr_name)
+- else
++ if not opt_fixed_point
+ intr_sources += get_variable('silk_sources_float_' + intr_name)
+ endif
+
diff --git a/patches/opus-1.5.1/0100-ptxdist-get-version.py-don-t-detect-extract-git-as-g.patch b/patches/opus-1.5.1/0100-ptxdist-get-version.py-don-t-detect-extract-git-as-g.patch
new file mode 100644
index 000000000..0fce16913
--- /dev/null
+++ b/patches/opus-1.5.1/0100-ptxdist-get-version.py-don-t-detect-extract-git-as-g.patch
@@ -0,0 +1,25 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Sun, 24 Mar 2024 15:59:29 +0100
+Subject: [PATCH] ptxdist: get-version.py: don't detect 'extract --git' as git
+ checkout
+
+Otherwise building fails because the relevant tags are missing.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ meson/get-version.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson/get-version.py b/meson/get-version.py
+index d3835f134c81..96a275f15af8 100755
+--- a/meson/get-version.py
++++ b/meson/get-version.py
+@@ -31,7 +31,7 @@ if __name__ == '__main__':
+
+ # check if git checkout
+ git_dir = os.path.join(srcroot, '.git')
+- is_git = os.path.isdir(git_dir) or os.path.isfile(git_dir)
++ is_git = (os.path.isdir(git_dir) or os.path.isfile(git_dir)) and not os.path.isdir(os.path.join(srcroot, '.ptxdist/git-patches'))
+ have_git = shutil.which('git') is not None
+
+ if is_git and have_git:
diff --git a/patches/opus-1.5.1/series b/patches/opus-1.5.1/series
new file mode 100644
index 000000000..5678dc243
--- /dev/null
+++ b/patches/opus-1.5.1/series
@@ -0,0 +1,11 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+#tag:upstream --start-number 1
+0001-fix-arm-asm-meson-source-build.patch
+0002-Extended-asm-with-C-operands-doesn-t-work-at-top-lev.patch
+0003-use-semicolon-not-newline-for-inline-assembler.patch
+0004-Add-OPUS_ARM_INLINE_DOTPROD-dotprod-check.patch
+0005-Fix-meson-AVX2-fixed-point.patch
+#tag:ptxdist --start-number 100
+0100-ptxdist-get-version.py-don-t-detect-extract-git-as-g.patch
+# d3a0d1e86246dea00cfd9809d8cd3632 - git-ptx-patches magic
diff --git a/patches/pango-1.43.0/0001-tests-fix-build-dependency.patch b/patches/pango-1.43.0/0001-tests-fix-build-dependency.patch
deleted file mode 100644
index 0873ddfaa..000000000
--- a/patches/pango-1.43.0/0001-tests-fix-build-dependency.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From: Marco Felsch <m.felsch@pengutronix.de>
-Date: Wed, 13 Mar 2019 11:03:18 +0100
-Subject: [PATCH] tests: fix build dependency
-
-In case of cairo is found but without png support this test will fail
-during linking becuase the 'cairo_surface_write_to_png' is undefined.
-
-Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
----
- tests/meson.build | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/tests/meson.build b/tests/meson.build
-index bceb9093d9a5..6a74e0998a08 100644
---- a/tests/meson.build
-+++ b/tests/meson.build
-@@ -35,12 +35,17 @@ if cairo_dep.found()
- test_cflags += '-DHAVE_CAIRO'
- tests += [
- [ 'testiter', [ 'testiter.c' ], [ libpangocairo_dep ] ],
-- [ 'test-pangocairo-threads', [ 'test-pangocairo-threads.c' ], [ libpangocairo_dep, cairo_dep ] ],
- [ 'markup-parse', [ 'markup-parse.c' ], [ libpangocairo_dep ] ],
- [ 'test-layout', [ 'test-layout.c', 'test-common.c' ], [ libpangocairo_dep ] ],
- [ 'test-font', [ 'test-font.c' ], [ libpangocairo_dep ] ],
- [ 'testattributes', [ 'testattributes.c', 'test-common.c' ], [ libpangocairo_dep ] ],
- ]
-+
-+ if pango_cairo_backends.contains('png')
-+ tests += [
-+ [ 'test-pangocairo-threads', [ 'test-pangocairo-threads.c' ], [ libpangocairo_dep, cairo_dep ] ],
-+ ]
-+ endif
- endif
-
- installed_test_data = [
diff --git a/patches/pango-1.43.0/series b/patches/pango-1.43.0/series
deleted file mode 100644
index 19f20760e..000000000
--- a/patches/pango-1.43.0/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-tests-fix-build-dependency.patch
-# 3d31badd8cc08ee86bb7372d30866049 - git-ptx-patches magic
diff --git a/patches/poco-1.9.0/0001-fix-parallel-building.patch b/patches/poco-1.9.0/0001-fix-parallel-building.patch
deleted file mode 100644
index e5897fb1d..000000000
--- a/patches/poco-1.9.0/0001-fix-parallel-building.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Tue, 5 Feb 2019 22:02:43 +0100
-Subject: [PATCH] fix parallel building
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- build/rules/compile | 16 ++++++++--------
- 1 file changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/build/rules/compile b/build/rules/compile
-index f513434938fa..f52d4d2c2776 100644
---- a/build/rules/compile
-+++ b/build/rules/compile
-@@ -36,35 +36,35 @@ $(OBJPATH_RELEASE_STATIC) $(OBJPATH_DEBUG_STATIC) $(OBJPATH_RELEASE_SHARED) $(OB
- #
- # Rules for compiling
- #
--$(OBJPATH_DEBUG_STATIC)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG)
-+$(OBJPATH_DEBUG_STATIC)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) | $(OBJPATH_DEBUG_STATIC)
- @echo "** Compiling" $< "(debug, static)"
- $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(STATICOPT_CXX) -c $< -o $@
-
--$(OBJPATH_RELEASE_STATIC)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG)
-+$(OBJPATH_RELEASE_STATIC)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) | $(OBJPATH_RELEASE_STATIC)
- @echo "** Compiling" $< "(release, static)"
- $(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(STATICOPT_CXX) -c $< -o $@
-
--$(OBJPATH_DEBUG_STATIC)/%.o: $(SRCDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG)
-+$(OBJPATH_DEBUG_STATIC)/%.o: $(SRCDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) | $(OBJPATH_DEBUG_STATIC)
- @echo "** Compiling" $< "(debug, static)"
- $(CC) $(INCLUDE) $(CFLAGS) $(DEBUGOPT_CC) $(STATICOPT_CC) -c $< -o $@
-
--$(OBJPATH_RELEASE_STATIC)/%.o: $(SRCDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG)
-+$(OBJPATH_RELEASE_STATIC)/%.o: $(SRCDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) | $(OBJPATH_RELEASE_STATIC)
- @echo "** Compiling" $< "(release, static)"
- $(CC) $(INCLUDE) $(CFLAGS) $(RELEASEOPT_CC) $(STATICOPT_CC) -c $< -o $@
-
--$(OBJPATH_DEBUG_SHARED)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG)
-+$(OBJPATH_DEBUG_SHARED)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) | $(OBJPATH_DEBUG_SHARED)
- @echo "** Compiling" $< "(debug, shared)"
- $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@
-
--$(OBJPATH_RELEASE_SHARED)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG)
-+$(OBJPATH_RELEASE_SHARED)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) | $(OBJPATH_RELEASE_SHARED)
- @echo "** Compiling" $< "(release, shared)"
- $(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@
-
--$(OBJPATH_DEBUG_SHARED)/%.o: $(SRCDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG)
-+$(OBJPATH_DEBUG_SHARED)/%.o: $(SRCDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) | $(OBJPATH_DEBUG_SHARED)
- @echo "** Compiling" $< "(debug, shared)"
- $(CC) $(INCLUDE) $(CFLAGS) $(DEBUGOPT_CC) $(SHAREDOPT_CC) -c $< -o $@
-
--$(OBJPATH_RELEASE_SHARED)/%.o: $(SRCDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG)
-+$(OBJPATH_RELEASE_SHARED)/%.o: $(SRCDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) | $(OBJPATH_RELEASE_SHARED)
- @echo "** Compiling" $< "(release, shared)"
- $(CC) $(INCLUDE) $(CFLAGS) $(RELEASEOPT_CC) $(SHAREDOPT_CC) -c $< -o $@
-
diff --git a/patches/poco-1.9.0/series b/patches/poco-1.9.0/series
deleted file mode 100644
index c107fa32c..000000000
--- a/patches/poco-1.9.0/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-fix-parallel-building.patch
-# 5cc5d42dfd5d2c4a2a35024d9a874950 - git-ptx-patches magic
diff --git a/patches/polkit-0.105/0001-0.106-agenthelper-pam-Fix-newline-trimming-code.patch b/patches/polkit-0.105/0001-0.106-agenthelper-pam-Fix-newline-trimming-code.patch
deleted file mode 100644
index 0dcef786f..000000000
--- a/patches/polkit-0.105/0001-0.106-agenthelper-pam-Fix-newline-trimming-code.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From: Colin Walters <walters@verbum.org>
-Date: Wed, 6 Jun 2012 09:05:14 -0400
-Subject: [PATCH] 0.106: agenthelper-pam: Fix newline-trimming code
-
-First, we were using == instead of =, as the author probably intended.
-But after changing that, we're now assigning to const memory. Fix
-that by writing to a temporary string buffer.
-
-Signed-off-by: David Zeuthen <zeuthen@gmail.com>
-Origin: upstream, 0.106, commit:14121fda7e4fa9463c66ce419cc32be7e7f3b535
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkitagent/polkitagenthelper-pam.c | 11 ++++++++---
- 1 file changed, 8 insertions(+), 3 deletions(-)
-
-diff --git a/src/polkitagent/polkitagenthelper-pam.c b/src/polkitagent/polkitagenthelper-pam.c
-index 85a26718a513..7af5321ebfa3 100644
---- a/src/polkitagent/polkitagenthelper-pam.c
-+++ b/src/polkitagent/polkitagenthelper-pam.c
-@@ -227,6 +227,8 @@ conversation_function (int n, const struct pam_message **msg, struct pam_respons
- char buf[PAM_MAX_RESP_SIZE];
- int i;
- gchar *escaped = NULL;
-+ gchar *tmp = NULL;
-+ size_t len;
-
- data = data;
- if (n <= 0 || n > PAM_MAX_NUM_MSG)
-@@ -258,9 +260,12 @@ conversation_function (int n, const struct pam_message **msg, struct pam_respons
- #ifdef PAH_DEBUG
- fprintf (stderr, "polkit-agent-helper-1: writing `%s' to stdout\n", msg[i]->msg);
- #endif /* PAH_DEBUG */
-- if (strlen (msg[i]->msg) > 0 && msg[i]->msg[strlen (msg[i]->msg) - 1] == '\n')
-- msg[i]->msg[strlen (msg[i]->msg) - 1] == '\0';
-- escaped = g_strescape (msg[i]->msg, NULL);
-+ tmp = g_strdup (msg[i]->msg);
-+ len = strlen (tmp);
-+ if (len > 0 && tmp[len - 1] == '\n')
-+ tmp[len - 1] = '\0';
-+ escaped = g_strescape (tmp, NULL);
-+ g_free (tmp);
- fputs (escaped, stdout);
- g_free (escaped);
- #ifdef PAH_DEBUG
diff --git a/patches/polkit-0.105/0002-0.108-build-Fix-.gir-generation-for-parallel-make.patch b/patches/polkit-0.105/0002-0.108-build-Fix-.gir-generation-for-parallel-make.patch
deleted file mode 100644
index 6f8991262..000000000
--- a/patches/polkit-0.105/0002-0.108-build-Fix-.gir-generation-for-parallel-make.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From: Ryan Lortie <desrt@velocity.(none)>
-Date: Tue, 13 Nov 2012 11:50:14 -0500
-Subject: [PATCH] 0.108: build: Fix .gir generation for parallel make
-
-As per the intructions in the introspection Makefile, we should have a
-line declaring a dependency between the .gir and .la files.
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=57077
-Signed-off-by: David Zeuthen <zeuthen@gmail.com>
-Bug-Debian: https://bugs.debian.org/894205
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkit/Makefile.am | 2 ++
- src/polkitagent/Makefile.am | 2 ++
- 2 files changed, 4 insertions(+)
-
-diff --git a/src/polkit/Makefile.am b/src/polkit/Makefile.am
-index 1068ea124b41..41ccf5c34581 100644
---- a/src/polkit/Makefile.am
-+++ b/src/polkit/Makefile.am
-@@ -106,6 +106,8 @@ if HAVE_INTROSPECTION
-
- INTROSPECTION_GIRS = Polkit-1.0.gir
-
-+Polkit-1.0.gir: libpolkit-gobject-1.la
-+
- girdir = $(INTROSPECTION_GIRDIR)
- gir_DATA = Polkit-1.0.gir
-
-diff --git a/src/polkitagent/Makefile.am b/src/polkitagent/Makefile.am
-index e8c9fb1a7aa8..7b51137b5658 100644
---- a/src/polkitagent/Makefile.am
-+++ b/src/polkitagent/Makefile.am
-@@ -106,6 +106,8 @@ if HAVE_INTROSPECTION
- girdir = $(INTROSPECTION_GIRDIR)
- gir_DATA = PolkitAgent-1.0.gir
-
-+PolkitAgent-1.0.gir: libpolkit-agent-1.la
-+
- typelibsdir = $(INTROSPECTION_TYPELIBDIR)
- typelibs_DATA = PolkitAgent-1.0.typelib
-
diff --git a/patches/polkit-0.105/0003-0.110-Set-XAUTHORITY-environment-variable-if-is-unse.patch b/patches/polkit-0.105/0003-0.110-Set-XAUTHORITY-environment-variable-if-is-unse.patch
deleted file mode 100644
index 53082a771..000000000
--- a/patches/polkit-0.105/0003-0.110-Set-XAUTHORITY-environment-variable-if-is-unse.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From: David Zeuthen <zeuthen@gmail.com>
-Date: Wed, 19 Dec 2012 14:28:29 -0500
-Subject: [PATCH] 0.110: Set XAUTHORITY environment variable if is unset
-
-The way it works is that if XAUTHORITY is unset, then its default
-value is $HOME/.Xauthority. But since we're changing user identity
-this will not work since $HOME will now change. Therefore, if
-XAUTHORITY is unset, just set its default value before changing
-identity. This bug only affected login managers using X Window
-Authorization but not explicitly setting the XAUTHORITY variable.
-
-You can argue that XAUTHORITY is broken since it forces uid-changing
-apps like pkexec(1) to do more work - and get involved in intimate
-details of how X works and so on - but that doesn't change how things
-work.
-
-Based on a patch from Peter Wu <lekensteyn@gmail.com>.
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=51623
-Signed-off-by: David Zeuthen <zeuthen@gmail.com>
-Origin: upstream, 0.110, commit:d6acecdd0ebb42e28ff28e04e0207cb01fa20910
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/programs/pkexec.c | 22 ++++++++++++++++++++++
- 1 file changed, 22 insertions(+)
-
-diff --git a/src/programs/pkexec.c b/src/programs/pkexec.c
-index 373977b891c8..7fafa14d1c7a 100644
---- a/src/programs/pkexec.c
-+++ b/src/programs/pkexec.c
-@@ -597,6 +597,28 @@ main (int argc, char *argv[])
- g_ptr_array_add (saved_env, g_strdup (value));
- }
-
-+ /* $XAUTHORITY is "special" - if unset, we need to set it to ~/.Xauthority. Yes,
-+ * this is broken but it's unfortunately how things work (see fdo #51623 for
-+ * details)
-+ */
-+ if (g_getenv ("XAUTHORITY") == NULL)
-+ {
-+ const gchar *home;
-+
-+ /* pre-2.36 GLib does not examine $HOME (it always looks in /etc/passwd) and
-+ * this is not what we want
-+ */
-+ home = g_getenv ("HOME");
-+ if (home == NULL)
-+ home = g_get_home_dir ();
-+
-+ if (home != NULL)
-+ {
-+ g_ptr_array_add (saved_env, g_strdup ("XAUTHORITY"));
-+ g_ptr_array_add (saved_env, g_build_filename (home, ".Xauthority", NULL));
-+ }
-+ }
-+
- /* Nuke the environment to get a well-known and sanitized environment to avoid attacks
- * via e.g. the DBUS_SYSTEM_BUS_ADDRESS environment variable and similar.
- */
diff --git a/patches/polkit-0.105/0004-0.110-Fix-build-on-GNU-Hurd.patch b/patches/polkit-0.105/0004-0.110-Fix-build-on-GNU-Hurd.patch
deleted file mode 100644
index c58fd302c..000000000
--- a/patches/polkit-0.105/0004-0.110-Fix-build-on-GNU-Hurd.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From: Emilio Pozuelo Monfort <pochu27@gmail.com>
-Date: Sat, 26 Mar 2011 07:28:14 +0000
-Subject: [PATCH] 0.110: Fix build on GNU Hurd
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=35685
-Applied-upstream: 0.110, commit:d6de13e12379826af8ca9355a32da48707b9831f
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/programs/pkexec.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/programs/pkexec.c b/src/programs/pkexec.c
-index 7fafa14d1c7a..682fe95419c8 100644
---- a/src/programs/pkexec.c
-+++ b/src/programs/pkexec.c
-@@ -53,7 +53,7 @@
- #include <polkitagent/polkitagent.h>
-
- static gchar *original_user_name = NULL;
--static gchar original_cwd[PATH_MAX];
-+static gchar *original_cwd;
- static gchar *command_line = NULL;
- static struct passwd *pw;
-
-@@ -465,7 +465,7 @@ main (int argc, char *argv[])
- goto out;
- }
-
-- if (getcwd (original_cwd, sizeof (original_cwd)) == NULL)
-+ if ((original_cwd = g_get_current_dir ()) == NULL)
- {
- g_printerr ("Error getting cwd: %s\n",
- g_strerror (errno));
-@@ -953,6 +953,7 @@ main (int argc, char *argv[])
- g_ptr_array_free (saved_env, TRUE);
- }
-
-+ g_free (original_cwd);
- g_free (path);
- g_free (command_line);
- g_free (opt_user);
diff --git a/patches/polkit-0.105/0005-0.111-pkexec-Set-process-environment-from-pam_getenv.patch b/patches/polkit-0.105/0005-0.111-pkexec-Set-process-environment-from-pam_getenv.patch
deleted file mode 100644
index 4f4fa151a..000000000
--- a/patches/polkit-0.105/0005-0.111-pkexec-Set-process-environment-from-pam_getenv.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From: Steve Langasek <steve.langasek@canonical.com>
-Date: Fri, 8 Mar 2013 12:00:00 +0100
-Subject: [PATCH] 0.111: pkexec: Set process environment from pam_getenvlist()
-
-Various pam modules provide environment variables that are intended to be set
-in the environment of the pam session. pkexec needs to process the output of
-pam_getenvlist() to get these.
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=62016
-Applied-upstream: 0.111, commit:5aef9722c15a350fbf8b20a3b58419f156cc7c98
-Bug-Ubuntu: https://bugs.launchpad.net/bugs/982684
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/programs/pkexec.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/src/programs/pkexec.c b/src/programs/pkexec.c
-index 682fe95419c8..9a0570a307a1 100644
---- a/src/programs/pkexec.c
-+++ b/src/programs/pkexec.c
-@@ -145,6 +145,7 @@ open_session (const gchar *user_to_auth)
- gboolean ret;
- gint rc;
- pam_handle_t *pam_h;
-+ char **envlist;
- struct pam_conv conversation;
-
- ret = FALSE;
-@@ -176,6 +177,15 @@ open_session (const gchar *user_to_auth)
-
- ret = TRUE;
-
-+ envlist = pam_getenvlist (pam_h);
-+ if (envlist != NULL)
-+ {
-+ guint n;
-+ for (n = 0; envlist[n]; n++)
-+ putenv (envlist[n]);
-+ free (envlist);
-+ }
-+
- out:
- if (pam_h != NULL)
- pam_end (pam_h, rc);
diff --git a/patches/polkit-0.105/0006-0.111-Fix-a-memory-leak.patch b/patches/polkit-0.105/0006-0.111-Fix-a-memory-leak.patch
deleted file mode 100644
index c92b7f595..000000000
--- a/patches/polkit-0.105/0006-0.111-Fix-a-memory-leak.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From: =?UTF-8?q?Miloslav=20Trma=C4=8D?= <mitr@redhat.com>
-Date: Tue, 7 May 2013 22:30:25 +0200
-Subject: [PATCH] 0.111: Fix a memory leak
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=64336
-Origin: upstream, 0.111, commit:d7b6ab40b586c255c49aba22f558eb6602c88b1e
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkitagent/polkitagenthelper-pam.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/polkitagent/polkitagenthelper-pam.c b/src/polkitagent/polkitagenthelper-pam.c
-index 7af5321ebfa3..292abbe44e88 100644
---- a/src/polkitagent/polkitagenthelper-pam.c
-+++ b/src/polkitagent/polkitagenthelper-pam.c
-@@ -321,6 +321,7 @@ error:
- }
- }
- memset (aresp, 0, n * sizeof *aresp);
-+ free (aresp);
- *resp = NULL;
- return PAM_CONV_ERR;
- }
diff --git a/patches/polkit-0.105/0007-0.112-Use-GOnce-for-interface-type-registration.patch b/patches/polkit-0.105/0007-0.112-Use-GOnce-for-interface-type-registration.patch
deleted file mode 100644
index 907510e9e..000000000
--- a/patches/polkit-0.105/0007-0.112-Use-GOnce-for-interface-type-registration.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From: Tomas Bzatek <tbzatek@redhat.com>
-Date: Wed, 29 May 2013 13:45:31 +0000
-Subject: [PATCH] 0.112: Use GOnce for interface type registration
-
-Static local variable may not be enough since it doesn't provide locking.
-
-Related to these udisksd warnings:
- GLib-GObject-WARNING **: cannot register existing type `PolkitSubject'
-
-Thanks to Hans de Goede for spotting this!
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=65130
-Origin: upstream, 0.112, commit:20ad116a6582e57d20f9d8197758947918753a4c
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkit/polkitidentity.c | 10 ++++++----
- src/polkit/polkitsubject.c | 10 ++++++----
- src/polkitbackend/polkitbackendactionlookup.c | 10 ++++++----
- 3 files changed, 18 insertions(+), 12 deletions(-)
-
-diff --git a/src/polkit/polkitidentity.c b/src/polkit/polkitidentity.c
-index dd15b2f94828..7813c2c07919 100644
---- a/src/polkit/polkitidentity.c
-+++ b/src/polkit/polkitidentity.c
-@@ -49,9 +49,9 @@ base_init (gpointer g_iface)
- GType
- polkit_identity_get_type (void)
- {
-- static GType iface_type = 0;
-+ static volatile gsize g_define_type_id__volatile = 0;
-
-- if (iface_type == 0)
-+ if (g_once_init_enter (&g_define_type_id__volatile))
- {
- static const GTypeInfo info =
- {
-@@ -67,12 +67,14 @@ polkit_identity_get_type (void)
- NULL /* value_table */
- };
-
-- iface_type = g_type_register_static (G_TYPE_INTERFACE, "PolkitIdentity", &info, 0);
-+ GType iface_type =
-+ g_type_register_static (G_TYPE_INTERFACE, "PolkitIdentity", &info, 0);
-
- g_type_interface_add_prerequisite (iface_type, G_TYPE_OBJECT);
-+ g_once_init_leave (&g_define_type_id__volatile, iface_type);
- }
-
-- return iface_type;
-+ return g_define_type_id__volatile;
- }
-
- /**
-diff --git a/src/polkit/polkitsubject.c b/src/polkit/polkitsubject.c
-index d2c4c205b1f2..aed57951bb6b 100644
---- a/src/polkit/polkitsubject.c
-+++ b/src/polkit/polkitsubject.c
-@@ -50,9 +50,9 @@ base_init (gpointer g_iface)
- GType
- polkit_subject_get_type (void)
- {
-- static GType iface_type = 0;
-+ static volatile gsize g_define_type_id__volatile = 0;
-
-- if (iface_type == 0)
-+ if (g_once_init_enter (&g_define_type_id__volatile))
- {
- static const GTypeInfo info =
- {
-@@ -68,12 +68,14 @@ polkit_subject_get_type (void)
- NULL /* value_table */
- };
-
-- iface_type = g_type_register_static (G_TYPE_INTERFACE, "PolkitSubject", &info, 0);
-+ GType iface_type =
-+ g_type_register_static (G_TYPE_INTERFACE, "PolkitSubject", &info, 0);
-
- g_type_interface_add_prerequisite (iface_type, G_TYPE_OBJECT);
-+ g_once_init_leave (&g_define_type_id__volatile, iface_type);
- }
-
-- return iface_type;
-+ return g_define_type_id__volatile;
- }
-
- /**
-diff --git a/src/polkitbackend/polkitbackendactionlookup.c b/src/polkitbackend/polkitbackendactionlookup.c
-index 5a1a228a4c10..20747e7921ef 100644
---- a/src/polkitbackend/polkitbackendactionlookup.c
-+++ b/src/polkitbackend/polkitbackendactionlookup.c
-@@ -74,9 +74,9 @@ base_init (gpointer g_iface)
- GType
- polkit_backend_action_lookup_get_type (void)
- {
-- static GType iface_type = 0;
-+ static volatile gsize g_define_type_id__volatile = 0;
-
-- if (iface_type == 0)
-+ if (g_once_init_enter (&g_define_type_id__volatile))
- {
- static const GTypeInfo info =
- {
-@@ -92,12 +92,14 @@ polkit_backend_action_lookup_get_type (void)
- NULL /* value_table */
- };
-
-- iface_type = g_type_register_static (G_TYPE_INTERFACE, "PolkitBackendActionLookup", &info, 0);
-+ GType iface_type =
-+ g_type_register_static (G_TYPE_INTERFACE, "PolkitBackendActionLookup", &info, 0);
-
- g_type_interface_add_prerequisite (iface_type, G_TYPE_OBJECT);
-+ g_once_init_leave (&g_define_type_id__volatile, iface_type);
- }
-
-- return iface_type;
-+ return g_define_type_id__volatile;
- }
-
- /**
diff --git a/patches/polkit-0.105/0008-0.112-polkitunixprocess-Deprecate-racy-APIs.patch b/patches/polkit-0.105/0008-0.112-polkitunixprocess-Deprecate-racy-APIs.patch
deleted file mode 100644
index c39c0486c..000000000
--- a/patches/polkit-0.105/0008-0.112-polkitunixprocess-Deprecate-racy-APIs.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From: Colin Walters <walters@verbum.org>
-Date: Tue, 20 Aug 2013 15:15:31 -0400
-Subject: [PATCH] 0.112: polkitunixprocess: Deprecate racy APIs
-
-It's only safe for processes to be created with their owning uid,
-(without kernel support, which we don't have). Anything else is
-subject to clients exec()ing setuid binaries after the fact.
-
-Origin: upstream, 0.112, commit:08291789a1f99d4ab29c74c39344304bcca43023
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkit/polkitunixprocess.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/polkit/polkitunixprocess.h b/src/polkit/polkitunixprocess.h
-index 531a57d61445..f5ed1a73e652 100644
---- a/src/polkit/polkitunixprocess.h
-+++ b/src/polkit/polkitunixprocess.h
-@@ -47,7 +47,9 @@ typedef struct _PolkitUnixProcess PolkitUnixProcess;
- typedef struct _PolkitUnixProcessClass PolkitUnixProcessClass;
-
- GType polkit_unix_process_get_type (void) G_GNUC_CONST;
-+G_GNUC_DEPRECATED_FOR(polkit_unix_process_new_for_owner)
- PolkitSubject *polkit_unix_process_new (gint pid);
-+G_GNUC_DEPRECATED_FOR(polkit_unix_process_new_for_owner)
- PolkitSubject *polkit_unix_process_new_full (gint pid,
- guint64 start_time);
- PolkitSubject *polkit_unix_process_new_for_owner (gint pid,
diff --git a/patches/polkit-0.105/0009-0.112-pkcheck-Support-process-pid-start-time-uid-syn.patch b/patches/polkit-0.105/0009-0.112-pkcheck-Support-process-pid-start-time-uid-syn.patch
deleted file mode 100644
index 198ddc639..000000000
--- a/patches/polkit-0.105/0009-0.112-pkcheck-Support-process-pid-start-time-uid-syn.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From: Colin Walters <walters@verbum.org>
-Date: Mon, 19 Aug 2013 12:16:11 -0400
-Subject: [PATCH] 0.112: pkcheck: Support --process=pid,start-time,uid syntax
- too
-
-The uid is a new addition; this allows callers such as libvirt to
-close a race condition in reading the uid of the process talking to
-them. They can read it via getsockopt(SO_PEERCRED) or equivalent,
-rather than having pkcheck look at /proc later after the fact.
-
-Programs which invoke pkcheck but need to know beforehand (i.e. at
-compile time) whether or not it supports passing the uid can
-use:
-
-pkcheck_supports_uid=$($PKG_CONFIG --variable pkcheck_supports_uid polkit-gobject-1)
-test x$pkcheck_supports_uid = xyes
-
-Origin: upstream, 0.112, commit:3968411b0c7ba193f9b9276ec911692aec248608
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- data/polkit-gobject-1.pc.in | 3 +++
- docs/man/pkcheck.xml | 29 ++++++++++++++++++++---------
- src/programs/pkcheck.c | 7 ++++++-
- 3 files changed, 29 insertions(+), 10 deletions(-)
-
-diff --git a/data/polkit-gobject-1.pc.in b/data/polkit-gobject-1.pc.in
-index c39677ddf52f..5c4c62072f80 100644
---- a/data/polkit-gobject-1.pc.in
-+++ b/data/polkit-gobject-1.pc.in
-@@ -11,3 +11,6 @@ Version: @VERSION@
- Libs: -L${libdir} -lpolkit-gobject-1
- Cflags: -I${includedir}/polkit-1
- Requires: gio-2.0 >= 2.18 glib-2.0 >= 2.18
-+# Programs using pkcheck can use this to determine
-+# whether or not it can be passed a uid.
-+pkcheck_supports_uid=true
-diff --git a/docs/man/pkcheck.xml b/docs/man/pkcheck.xml
-index 6b8a874311a0..508447e23329 100644
---- a/docs/man/pkcheck.xml
-+++ b/docs/man/pkcheck.xml
-@@ -55,6 +55,9 @@
- <arg choice="plain">
- <replaceable>pid,pid-start-time</replaceable>
- </arg>
-+ <arg choice="plain">
-+ <replaceable>pid,pid-start-time,uid</replaceable>
-+ </arg>
- </group>
- </arg>
- <arg choice="plain">
-@@ -90,7 +93,7 @@
- <title>DESCRIPTION</title>
- <para>
- <command>pkcheck</command> is used to check whether a process, specified by
-- either <option>--process</option> or <option>--system-bus-name</option>,
-+ either <option>--process</option> (see below) or <option>--system-bus-name</option>,
- is authorized for <replaceable>action</replaceable>. The <option>--detail</option>
- option can be used zero or more times to pass details about <replaceable>action</replaceable>.
- If <option>--allow-user-interaction</option> is passed, <command>pkcheck</command> blocks
-@@ -160,17 +163,25 @@ KEY3=VALUE3
- <refsect1 id="pkcheck-notes">
- <title>NOTES</title>
- <para>
-- Since process identifiers can be recycled, the caller should always use
-- <replaceable>pid,pid-start-time</replaceable> to specify the process
-- to check for authorization when using the <option>--process</option> option.
-- The value of <replaceable>pid-start-time</replaceable>
-- can be determined by consulting e.g. the
-+ Do not use either the bare <replaceable>pid</replaceable> or
-+ <replaceable>pid,start-time</replaceable> syntax forms for
-+ <option>--process</option>. There are race conditions in both.
-+ New code should always use
-+ <replaceable>pid,pid-start-time,uid</replaceable>. The value of
-+ <replaceable>start-time</replaceable> can be determined by
-+ consulting e.g. the
- <citerefentry>
- <refentrytitle>proc</refentrytitle><manvolnum>5</manvolnum>
- </citerefentry>
-- file system depending on the operating system. If only <replaceable>pid</replaceable>
-- is passed to the <option>--process</option> option, then <command>pkcheck</command>
-- will look up the start time itself but note that this may be racy.
-+ file system depending on the operating system. If fewer than 3
-+ arguments are passed, <command>pkcheck</command> will attempt to
-+ look up them up internally, but note that this may be racy.
-+ </para>
-+ <para>
-+ If your program is a daemon with e.g. a custom Unix domain
-+ socket, you should determine the <replaceable>uid</replaceable>
-+ parameter via operating system mechanisms such as
-+ <literal>PEERCRED</literal>.
- </para>
- </refsect1>
-
-diff --git a/src/programs/pkcheck.c b/src/programs/pkcheck.c
-index 719a36c47c21..057e926db86f 100644
---- a/src/programs/pkcheck.c
-+++ b/src/programs/pkcheck.c
-@@ -372,6 +372,7 @@ main (int argc, char *argv[])
- else if (g_strcmp0 (argv[n], "--process") == 0 || g_strcmp0 (argv[n], "-p") == 0)
- {
- gint pid;
-+ guint uid;
- guint64 pid_start_time;
-
- n++;
-@@ -381,7 +382,11 @@ main (int argc, char *argv[])
- goto out;
- }
-
-- if (sscanf (argv[n], "%i,%" G_GUINT64_FORMAT, &pid, &pid_start_time) == 2)
-+ if (sscanf (argv[n], "%i,%" G_GUINT64_FORMAT ",%u", &pid, &pid_start_time, &uid) == 3)
-+ {
-+ subject = polkit_unix_process_new_for_owner (pid, pid_start_time, uid);
-+ }
-+ else if (sscanf (argv[n], "%i,%" G_GUINT64_FORMAT, &pid, &pid_start_time) == 2)
- {
- subject = polkit_unix_process_new_full (pid, pid_start_time);
- }
diff --git a/patches/polkit-0.105/0010-0.113-Port-internals-non-deprecated-PolkitProcess-AP.patch b/patches/polkit-0.105/0010-0.113-Port-internals-non-deprecated-PolkitProcess-AP.patch
deleted file mode 100644
index b1f29326e..000000000
--- a/patches/polkit-0.105/0010-0.113-Port-internals-non-deprecated-PolkitProcess-AP.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From: Colin Walters <walters@verbum.org>
-Date: Sat, 9 Nov 2013 13:48:21 -0500
-Subject: [PATCH] 0.113: Port internals non-deprecated PolkitProcess API where
- possible
-
-We can't port everything, but in PolkitPermission and these test
-cases, we can use _for_owner() with the right information.
-
-[smcv: drop the part that touches
-test/polkitbackend/test-polkitbackendjsauthority.c which is not
-in this branch]
-
-Origin: upstream, 0.113, commit:6d3d0a8ffb0fd8ae59eb35593b305ec87da8858d
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkit/polkitpermission.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/polkit/polkitpermission.c b/src/polkit/polkitpermission.c
-index 22d195fcdc60..f8a666e81913 100644
---- a/src/polkit/polkitpermission.c
-+++ b/src/polkit/polkitpermission.c
-@@ -122,7 +122,7 @@ polkit_permission_constructed (GObject *object)
- PolkitPermission *permission = POLKIT_PERMISSION (object);
-
- if (permission->subject == NULL)
-- permission->subject = polkit_unix_process_new (getpid ());
-+ permission->subject = polkit_unix_process_new_for_owner (getpid (), 0, getuid ());
-
- if (G_OBJECT_CLASS (polkit_permission_parent_class)->constructed != NULL)
- G_OBJECT_CLASS (polkit_permission_parent_class)->constructed (object);
diff --git a/patches/polkit-0.105/0011-0.113-pkexec-Work-around-systemd-injecting-broken-XD.patch b/patches/polkit-0.105/0011-0.113-pkexec-Work-around-systemd-injecting-broken-XD.patch
deleted file mode 100644
index a270de1fe..000000000
--- a/patches/polkit-0.105/0011-0.113-pkexec-Work-around-systemd-injecting-broken-XD.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From: Colin Walters <walters@verbum.org>
-Date: Thu, 21 Nov 2013 17:39:37 -0500
-Subject: [PATCH] 0.113: pkexec: Work around systemd injecting broken
- XDG_RUNTIME_DIR
-
-This workaround isn't too much code, and it's often better to fix bugs
-in two places anyways.
-
-For more information:
-
-See https://bugzilla.redhat.com/show_bug.cgi?id=753882
-See http://lists.freedesktop.org/archives/systemd-devel/2013-November/014370.html
-
-Origin: upstream, 0.113, commit:8635ffc16aeff6a07d675f861fe0dea03ea81d7e
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/programs/pkexec.c | 33 ++++++++++++++++++++++++++++++---
- 1 file changed, 30 insertions(+), 3 deletions(-)
-
-diff --git a/src/programs/pkexec.c b/src/programs/pkexec.c
-index 9a0570a307a1..5e99044311ac 100644
---- a/src/programs/pkexec.c
-+++ b/src/programs/pkexec.c
-@@ -139,8 +139,22 @@ pam_conversation_function (int n,
- return PAM_CONV_ERR;
- }
-
-+/* A work around for:
-+ * https://bugzilla.redhat.com/show_bug.cgi?id=753882
-+ */
-+static gboolean
-+xdg_runtime_dir_is_owned_by (const char *path,
-+ uid_t target_uid)
-+{
-+ struct stat stbuf;
-+
-+ return stat (path, &stbuf) == 0 &&
-+ stbuf.st_uid == target_uid;
-+}
-+
- static gboolean
--open_session (const gchar *user_to_auth)
-+open_session (const gchar *user_to_auth,
-+ uid_t target_uid)
- {
- gboolean ret;
- gint rc;
-@@ -182,7 +196,19 @@ open_session (const gchar *user_to_auth)
- {
- guint n;
- for (n = 0; envlist[n]; n++)
-- putenv (envlist[n]);
-+ {
-+ const char *envitem = envlist[n];
-+
-+ if (g_str_has_prefix (envitem, "XDG_RUNTIME_DIR="))
-+ {
-+ const char *eq = strchr (envitem, '=');
-+ g_assert (eq);
-+ if (!xdg_runtime_dir_is_owned_by (eq + 1, target_uid))
-+ continue;
-+ }
-+
-+ putenv (envlist[n]);
-+ }
- free (envlist);
- }
-
-@@ -892,7 +918,8 @@ main (int argc, char *argv[])
- * As evident above, neither su(1) (and, for that matter, nor sudo(8)) does this.
- */
- #ifdef POLKIT_AUTHFW_PAM
-- if (!open_session (pw->pw_name))
-+ if (!open_session (pw->pw_name,
-+ pw->pw_uid))
- {
- goto out;
- }
diff --git a/patches/polkit-0.105/0012-0.113-PolkitAgentSession-fix-race-between-child-and-.patch b/patches/polkit-0.105/0012-0.113-PolkitAgentSession-fix-race-between-child-and-.patch
deleted file mode 100644
index d91e0f09c..000000000
--- a/patches/polkit-0.105/0012-0.113-PolkitAgentSession-fix-race-between-child-and-.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From: Rui Matos <tiagomatos@gmail.com>
-Date: Thu, 6 Feb 2014 18:41:18 +0100
-Subject: [PATCH] 0.113: PolkitAgentSession: fix race between child and io
- watches
-
-The helper flushes and fdatasyncs stdout and stderr before terminating
-but this doesn't guarantee that our io watch is called before our
-child watch. This means that we can end up with a successful return
-from the helper which we still report as a failure.
-
-If we add G_IO_HUP and G_IO_ERR to the conditions we look for in the
-io watch and the child terminates we still run the io watch handler
-which will complete the session.
-
-This means that the child watch is in fact needless and we can remove
-it.
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=60847
-Origin: upstream, 0.113, commit:7650ad1e08ab13bdb461783c4995d186d9392840
-Bug: http://bugs.freedesktop.org/show_bug.cgi?id=30515
-Bug-Ubuntu: https://launchpad.net/bugs/649939
-Bug-Ubuntu: https://launchpad.net/bugs/445303
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkitagent/polkitagentsession.c | 47 +++++++---------------------
- 1 file changed, 11 insertions(+), 36 deletions(-)
-
-diff --git a/src/polkitagent/polkitagentsession.c b/src/polkitagent/polkitagentsession.c
-index 8129cd9f7091..a658a2295da7 100644
---- a/src/polkitagent/polkitagentsession.c
-+++ b/src/polkitagent/polkitagentsession.c
-@@ -92,7 +92,6 @@ struct _PolkitAgentSession
- int child_stdout;
- GPid child_pid;
-
-- GSource *child_watch_source;
- GSource *child_stdout_watch_source;
- GIOChannel *child_stdout_channel;
-
-@@ -377,13 +376,6 @@ kill_helper (PolkitAgentSession *session)
- session->child_pid = 0;
- }
-
-- if (session->child_watch_source != NULL)
-- {
-- g_source_destroy (session->child_watch_source);
-- g_source_unref (session->child_watch_source);
-- session->child_watch_source = NULL;
-- }
--
- if (session->child_stdout_watch_source != NULL)
- {
- g_source_destroy (session->child_stdout_watch_source);
-@@ -429,26 +421,6 @@ complete_session (PolkitAgentSession *session,
- }
- }
-
--static void
--child_watch_func (GPid pid,
-- gint status,
-- gpointer user_data)
--{
-- PolkitAgentSession *session = POLKIT_AGENT_SESSION (user_data);
--
-- if (G_UNLIKELY (_show_debug ()))
-- {
-- g_print ("PolkitAgentSession: in child_watch_func for pid %d (WIFEXITED=%d WEXITSTATUS=%d)\n",
-- (gint) pid,
-- WIFEXITED(status),
-- WEXITSTATUS(status));
-- }
--
-- /* kill all the watches we have set up, except for the child since it has exited already */
-- session->child_pid = 0;
-- complete_session (session, FALSE);
--}
--
- static gboolean
- io_watch_have_data (GIOChannel *channel,
- GIOCondition condition,
-@@ -475,10 +447,13 @@ io_watch_have_data (GIOChannel *channel,
- NULL,
- NULL,
- &error);
-- if (error != NULL)
-+ if (error != NULL || line == NULL)
- {
-- g_warning ("Error reading line from helper: %s", error->message);
-- g_error_free (error);
-+ /* In case we get just G_IO_HUP, line is NULL but error is
-+ unset.*/
-+ g_warning ("Error reading line from helper: %s",
-+ error ? error->message : "nothing to read");
-+ g_clear_error (&error);
-
- complete_session (session, FALSE);
- goto out;
-@@ -540,6 +515,9 @@ io_watch_have_data (GIOChannel *channel,
- g_free (line);
- g_free (unescaped);
-
-+ if (condition & (G_IO_ERR | G_IO_HUP))
-+ complete_session (session, FALSE);
-+
- /* keep the IOChannel around */
- return TRUE;
- }
-@@ -650,12 +628,9 @@ polkit_agent_session_initiate (PolkitAgentSession *session)
- if (G_UNLIKELY (_show_debug ()))
- g_print ("PolkitAgentSession: spawned helper with pid %d\n", (gint) session->child_pid);
-
-- session->child_watch_source = g_child_watch_source_new (session->child_pid);
-- g_source_set_callback (session->child_watch_source, (GSourceFunc) child_watch_func, session, NULL);
-- g_source_attach (session->child_watch_source, g_main_context_get_thread_default ());
--
- session->child_stdout_channel = g_io_channel_unix_new (session->child_stdout);
-- session->child_stdout_watch_source = g_io_create_watch (session->child_stdout_channel, G_IO_IN);
-+ session->child_stdout_watch_source = g_io_create_watch (session->child_stdout_channel,
-+ G_IO_IN | G_IO_ERR | G_IO_HUP);
- g_source_set_callback (session->child_stdout_watch_source, (GSourceFunc) io_watch_have_data, session, NULL);
- g_source_attach (session->child_stdout_watch_source, g_main_context_get_thread_default ());
-
diff --git a/patches/polkit-0.105/0013-0.113-polkitd-Fix-problem-with-removing-non-existent.patch b/patches/polkit-0.105/0013-0.113-polkitd-Fix-problem-with-removing-non-existent.patch
deleted file mode 100644
index 9c6e5ec30..000000000
--- a/patches/polkit-0.105/0013-0.113-polkitd-Fix-problem-with-removing-non-existent.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Lukasz Skalski <l.skalski@samsung.com>
-Date: Tue, 22 Apr 2014 11:11:20 +0200
-Subject: [PATCH] 0.113: polkitd: Fix problem with removing non-existent source
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77167
-Applied-upstream: 0.113, commit:3ca4e00c7e003ea80aa96b499bc7cd83246d7108
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkitd/main.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/polkitd/main.c b/src/polkitd/main.c
-index b21723f697ce..f18fb917c3b6 100644
---- a/src/polkitd/main.c
-+++ b/src/polkitd/main.c
-@@ -93,7 +93,7 @@ on_sigint (gpointer user_data)
- {
- g_print ("Handling SIGINT\n");
- g_main_loop_quit (loop);
-- return FALSE;
-+ return TRUE;
- }
-
- int
diff --git a/patches/polkit-0.105/0014-0.113-PolkitSystemBusName-Add-public-API-to-retrieve.patch b/patches/polkit-0.105/0014-0.113-PolkitSystemBusName-Add-public-API-to-retrieve.patch
deleted file mode 100644
index e10a19d58..000000000
--- a/patches/polkit-0.105/0014-0.113-PolkitSystemBusName-Add-public-API-to-retrieve.patch
+++ /dev/null
@@ -1,171 +0,0 @@
-From: Colin Walters <walters@verbum.org>
-Date: Wed, 21 Aug 2013 12:23:55 -0400
-Subject: [PATCH] 0.113: PolkitSystemBusName: Add public API to retrieve Unix
- user
-
-And change the duplicated code in the backend session monitors to use
-it. This just a code cleanup resulting from review after
-CVE-2013-4288. There's no security impact from this patch, it just
-removes duplicated code.
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=69538
-Origin: upstream, 0.113, commit:904d8404d93dec45fce3b719eb1a626acc6b8a73
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkit/polkitsystembusname.c | 56 +++++++++++++++++++
- src/polkit/polkitsystembusname.h | 4 ++
- .../polkitbackendsessionmonitor-systemd.c | 20 +------
- .../polkitbackendsessionmonitor.c | 20 +------
- 4 files changed, 62 insertions(+), 38 deletions(-)
-
-diff --git a/src/polkit/polkitsystembusname.c b/src/polkit/polkitsystembusname.c
-index 2a297c4af475..51e4a694aa38 100644
---- a/src/polkit/polkitsystembusname.c
-+++ b/src/polkit/polkitsystembusname.c
-@@ -25,6 +25,7 @@
-
- #include <string.h>
- #include "polkitsystembusname.h"
-+#include "polkitunixuser.h"
- #include "polkitsubject.h"
- #include "polkitprivate.h"
-
-@@ -396,3 +397,58 @@ polkit_system_bus_name_get_process_sync (PolkitSystemBusName *system_bus_name,
- return ret;
- }
-
-+/**
-+ * polkit_system_bus_name_get_user_sync:
-+ * @system_bus_name: A #PolkitSystemBusName.
-+ * @cancellable: (allow-none): A #GCancellable or %NULL.
-+ * @error: (allow-none): Return location for error or %NULL.
-+ *
-+ * Synchronously gets a #PolkitUnixUser object for @system_bus_name;
-+ * the calling thread is blocked until a reply is received.
-+ *
-+ * Returns: (allow-none) (transfer full): A #PolkitUnixUser object or %NULL if @error is set.
-+ **/
-+PolkitUnixUser *
-+polkit_system_bus_name_get_user_sync (PolkitSystemBusName *system_bus_name,
-+ GCancellable *cancellable,
-+ GError **error)
-+{
-+ GDBusConnection *connection;
-+ PolkitUnixUser *ret;
-+ GVariant *result;
-+ guint32 uid;
-+
-+ g_return_val_if_fail (POLKIT_IS_SYSTEM_BUS_NAME (system_bus_name), NULL);
-+ g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), NULL);
-+ g_return_val_if_fail (error == NULL || *error == NULL, NULL);
-+
-+ ret = NULL;
-+
-+ connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, cancellable, error);
-+ if (connection == NULL)
-+ goto out;
-+
-+ result = g_dbus_connection_call_sync (connection,
-+ "org.freedesktop.DBus", /* name */
-+ "/org/freedesktop/DBus", /* object path */
-+ "org.freedesktop.DBus", /* interface name */
-+ "GetConnectionUnixUser", /* method */
-+ g_variant_new ("(s)", system_bus_name->name),
-+ G_VARIANT_TYPE ("(u)"),
-+ G_DBUS_CALL_FLAGS_NONE,
-+ -1,
-+ cancellable,
-+ error);
-+ if (result == NULL)
-+ goto out;
-+
-+ g_variant_get (result, "(u)", &uid);
-+ g_variant_unref (result);
-+
-+ ret = (PolkitUnixUser*)polkit_unix_user_new (uid);
-+
-+ out:
-+ if (connection != NULL)
-+ g_object_unref (connection);
-+ return ret;
-+}
-diff --git a/src/polkit/polkitsystembusname.h b/src/polkit/polkitsystembusname.h
-index 1fc464fc41ef..38d31f715d10 100644
---- a/src/polkit/polkitsystembusname.h
-+++ b/src/polkit/polkitsystembusname.h
-@@ -56,6 +56,10 @@ PolkitSubject *polkit_system_bus_name_get_process_sync (PolkitSystemBusName
- GCancellable *cancellable,
- GError **error);
-
-+PolkitUnixUser * polkit_system_bus_name_get_user_sync (PolkitSystemBusName *system_bus_name,
-+ GCancellable *cancellable,
-+ GError **error);
-+
- G_END_DECLS
-
- #endif /* __POLKIT_SYSTEM_BUS_NAME_H */
-diff --git a/src/polkitbackend/polkitbackendsessionmonitor-systemd.c b/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
-index 58593c323508..018531051714 100644
---- a/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
-+++ b/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
-@@ -277,25 +277,7 @@ polkit_backend_session_monitor_get_user_for_subject (PolkitBackendSessionMonitor
- }
- else if (POLKIT_IS_SYSTEM_BUS_NAME (subject))
- {
-- GVariant *result;
--
-- result = g_dbus_connection_call_sync (monitor->system_bus,
-- "org.freedesktop.DBus",
-- "/org/freedesktop/DBus",
-- "org.freedesktop.DBus",
-- "GetConnectionUnixUser",
-- g_variant_new ("(s)", polkit_system_bus_name_get_name (POLKIT_SYSTEM_BUS_NAME (subject))),
-- G_VARIANT_TYPE ("(u)"),
-- G_DBUS_CALL_FLAGS_NONE,
-- -1, /* timeout_msec */
-- NULL, /* GCancellable */
-- error);
-- if (result == NULL)
-- goto out;
-- g_variant_get (result, "(u)", &uid);
-- g_variant_unref (result);
--
-- ret = polkit_unix_user_new (uid);
-+ ret = (PolkitIdentity*)polkit_system_bus_name_get_user_sync (POLKIT_SYSTEM_BUS_NAME (subject), NULL, error);
- }
- else if (POLKIT_IS_UNIX_SESSION (subject))
- {
-diff --git a/src/polkitbackend/polkitbackendsessionmonitor.c b/src/polkitbackend/polkitbackendsessionmonitor.c
-index 9c331b64a0ec..4075d3ff06ad 100644
---- a/src/polkitbackend/polkitbackendsessionmonitor.c
-+++ b/src/polkitbackend/polkitbackendsessionmonitor.c
-@@ -306,25 +306,7 @@ polkit_backend_session_monitor_get_user_for_subject (PolkitBackendSessionMonitor
- }
- else if (POLKIT_IS_SYSTEM_BUS_NAME (subject))
- {
-- GVariant *result;
--
-- result = g_dbus_connection_call_sync (monitor->system_bus,
-- "org.freedesktop.DBus",
-- "/org/freedesktop/DBus",
-- "org.freedesktop.DBus",
-- "GetConnectionUnixUser",
-- g_variant_new ("(s)", polkit_system_bus_name_get_name (POLKIT_SYSTEM_BUS_NAME (subject))),
-- G_VARIANT_TYPE ("(u)"),
-- G_DBUS_CALL_FLAGS_NONE,
-- -1, /* timeout_msec */
-- NULL, /* GCancellable */
-- error);
-- if (result == NULL)
-- goto out;
-- g_variant_get (result, "(u)", &uid);
-- g_variant_unref (result);
--
-- ret = polkit_unix_user_new (uid);
-+ ret = (PolkitIdentity*)polkit_system_bus_name_get_user_sync (POLKIT_SYSTEM_BUS_NAME (subject));
- }
- else if (POLKIT_IS_UNIX_SESSION (subject))
- {
diff --git a/patches/polkit-0.105/0015-0.113-Fixed-compilation-problem-in-the-backend.patch b/patches/polkit-0.105/0015-0.113-Fixed-compilation-problem-in-the-backend.patch
deleted file mode 100644
index a61daa192..000000000
--- a/patches/polkit-0.105/0015-0.113-Fixed-compilation-problem-in-the-backend.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Xabier Rodriguez Calvar <calvaris@igalia.com>
-Date: Sun, 10 Nov 2013 19:16:41 +0100
-Subject: [PATCH] 0.113: Fixed compilation problem in the backend
-
-Origin: upstream, 0.113, commit: dbbb7dc60abdd970af0a8fae404484181fa909c9
-Bug-Debian: https://bugs.debian.org/798769
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkitbackend/polkitbackendsessionmonitor.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/polkitbackend/polkitbackendsessionmonitor.c b/src/polkitbackend/polkitbackendsessionmonitor.c
-index 4075d3ff06ad..05f51c581479 100644
---- a/src/polkitbackend/polkitbackendsessionmonitor.c
-+++ b/src/polkitbackend/polkitbackendsessionmonitor.c
-@@ -306,7 +306,7 @@ polkit_backend_session_monitor_get_user_for_subject (PolkitBackendSessionMonitor
- }
- else if (POLKIT_IS_SYSTEM_BUS_NAME (subject))
- {
-- ret = (PolkitIdentity*)polkit_system_bus_name_get_user_sync (POLKIT_SYSTEM_BUS_NAME (subject));
-+ ret = (PolkitIdentity*)polkit_system_bus_name_get_user_sync (POLKIT_SYSTEM_BUS_NAME (subject), NULL, NULL);
- }
- else if (POLKIT_IS_UNIX_SESSION (subject))
- {
diff --git a/patches/polkit-0.105/0016-0.113-Don-t-discard-error-data-returned-by-polkit_sy.patch b/patches/polkit-0.105/0016-0.113-Don-t-discard-error-data-returned-by-polkit_sy.patch
deleted file mode 100644
index de3da552f..000000000
--- a/patches/polkit-0.105/0016-0.113-Don-t-discard-error-data-returned-by-polkit_sy.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From: =?UTF-8?q?Miloslav=20Trma=C4=8D?= <mitr@redhat.com>
-Date: Mon, 11 Nov 2013 23:51:23 +0100
-Subject: [PATCH] 0.113: Don't discard error data returned by
- polkit_system_bus_name_get_user_sync
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=71458
-Origin: upstream, 0.113, commit: 145d43b9c891f248ad68ebe597cb151a865bdb3a
-Bug-Debian: https://bugs.debian.org/798769
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkitbackend/polkitbackendsessionmonitor.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/polkitbackend/polkitbackendsessionmonitor.c b/src/polkitbackend/polkitbackendsessionmonitor.c
-index 05f51c581479..e1a9ab3a32cc 100644
---- a/src/polkitbackend/polkitbackendsessionmonitor.c
-+++ b/src/polkitbackend/polkitbackendsessionmonitor.c
-@@ -306,7 +306,7 @@ polkit_backend_session_monitor_get_user_for_subject (PolkitBackendSessionMonitor
- }
- else if (POLKIT_IS_SYSTEM_BUS_NAME (subject))
- {
-- ret = (PolkitIdentity*)polkit_system_bus_name_get_user_sync (POLKIT_SYSTEM_BUS_NAME (subject), NULL, NULL);
-+ ret = (PolkitIdentity*)polkit_system_bus_name_get_user_sync (POLKIT_SYSTEM_BUS_NAME (subject), NULL, error);
- }
- else if (POLKIT_IS_UNIX_SESSION (subject))
- {
diff --git a/patches/polkit-0.105/0017-0.113-sessionmonitor-systemd-Deduplicate-code-paths.patch b/patches/polkit-0.105/0017-0.113-sessionmonitor-systemd-Deduplicate-code-paths.patch
deleted file mode 100644
index 756701aa4..000000000
--- a/patches/polkit-0.105/0017-0.113-sessionmonitor-systemd-Deduplicate-code-paths.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From: Colin Walters <walters@verbum.org>
-Date: Thu, 7 Nov 2013 15:57:50 -0500
-Subject: [PATCH] 0.113: sessionmonitor-systemd: Deduplicate code paths
-
-We had the code to go from pid -> session duplicated. If we have a
-PolkitSystemBusName, convert it to a PolkitUnixProcess.
-Then we can do PolkitUnixProcess -> pid -> session in one place.
-
-This is just a code cleanup.
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=69538
-Origin: upstream, 0.113, commit:26d0c0578211fb96fc8fe75572aa11ad6ecbf9b8
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- .../polkitbackendsessionmonitor-systemd.c | 63 +++++++------------
- 1 file changed, 22 insertions(+), 41 deletions(-)
-
-diff --git a/src/polkitbackend/polkitbackendsessionmonitor-systemd.c b/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
-index 018531051714..756b728ab952 100644
---- a/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
-+++ b/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
-@@ -313,61 +313,42 @@ polkit_backend_session_monitor_get_session_for_subject (PolkitBackendSessionMoni
- PolkitSubject *subject,
- GError **error)
- {
-- PolkitSubject *session;
--
-- session = NULL;
-+ PolkitUnixProcess *tmp_process = NULL;
-+ PolkitUnixProcess *process = NULL;
-+ PolkitSubject *session = NULL;
-+ char *session_id = NULL;
-+ pid_t pid;
-
- if (POLKIT_IS_UNIX_PROCESS (subject))
-- {
-- gchar *session_id;
-- pid_t pid;
--
-- pid = polkit_unix_process_get_pid (POLKIT_UNIX_PROCESS (subject));
-- if (sd_pid_get_session (pid, &session_id) < 0)
-- goto out;
--
-- session = polkit_unix_session_new (session_id);
-- free (session_id);
-- }
-+ process = POLKIT_UNIX_PROCESS (subject); /* We already have a process */
- else if (POLKIT_IS_SYSTEM_BUS_NAME (subject))
- {
-- guint32 pid;
-- gchar *session_id;
-- GVariant *result;
--
-- result = g_dbus_connection_call_sync (monitor->system_bus,
-- "org.freedesktop.DBus",
-- "/org/freedesktop/DBus",
-- "org.freedesktop.DBus",
-- "GetConnectionUnixProcessID",
-- g_variant_new ("(s)", polkit_system_bus_name_get_name (POLKIT_SYSTEM_BUS_NAME (subject))),
-- G_VARIANT_TYPE ("(u)"),
-- G_DBUS_CALL_FLAGS_NONE,
-- -1, /* timeout_msec */
-- NULL, /* GCancellable */
-- error);
-- if (result == NULL)
-- goto out;
-- g_variant_get (result, "(u)", &pid);
-- g_variant_unref (result);
--
-- if (sd_pid_get_session (pid, &session_id) < 0)
-- goto out;
--
-- session = polkit_unix_session_new (session_id);
-- free (session_id);
-+ /* Convert bus name to process */
-+ tmp_process = (PolkitUnixProcess*)polkit_system_bus_name_get_process_sync (POLKIT_SYSTEM_BUS_NAME (subject), NULL, error);
-+ if (!tmp_process)
-+ goto out;
-+ process = tmp_process;
- }
- else
- {
- g_set_error (error,
- POLKIT_ERROR,
- POLKIT_ERROR_NOT_SUPPORTED,
-- "Cannot get user for subject of type %s",
-+ "Cannot get session for subject of type %s",
- g_type_name (G_TYPE_FROM_INSTANCE (subject)));
- }
-
-- out:
-+ /* Now do process -> pid -> session */
-+ g_assert (process != NULL);
-+ pid = polkit_unix_process_get_pid (process);
-
-+ if (sd_pid_get_session (pid, &session_id) < 0)
-+ goto out;
-+
-+ session = polkit_unix_session_new (session_id);
-+ free (session_id);
-+ out:
-+ if (tmp_process) g_object_unref (tmp_process);
- return session;
- }
-
diff --git a/patches/polkit-0.105/0018-0.113-sessionmonitor-systemd-prepare-for-D-Bus-user-.patch b/patches/polkit-0.105/0018-0.113-sessionmonitor-systemd-prepare-for-D-Bus-user-.patch
deleted file mode 100644
index ffd729a55..000000000
--- a/patches/polkit-0.105/0018-0.113-sessionmonitor-systemd-prepare-for-D-Bus-user-.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From: Kay Sievers <kay@vrfy.org>
-Date: Mon, 19 May 2014 10:19:49 +0900
-Subject: [PATCH] 0.113: sessionmonitor-systemd: prepare for D-Bus "user bus"
- model
-
-In the D-Bus "user bus" model, all sessions of a user share the same
-D-Bus instance, a polkit requesting process might live outside the
-login session which registered the user's polkit agent.
-
-In case a polkit requesting process is not part of the user's login
-session, we ask systemd-logind for the user's "display" session
-instead.
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=78905
-Bug-Debian: https://bugs.debian.org/779988
-Applied-upstream: 0.113, commit:a68f5dfd7662767b7b9822090b70bc5bd145c50c
-[smcv: backport configure.ac changes; fail with #error if the required
-API is not found]
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- configure.ac | 4 +++
- .../polkitbackendsessionmonitor-systemd.c | 29 +++++++++++++++----
- 2 files changed, 28 insertions(+), 5 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index f4a0c4177fbf..aa2760f90606 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -165,6 +165,10 @@ if test "$enable_systemd" != "no"; then
- have_systemd=no)
- if test "$have_systemd" = "yes"; then
- SESSION_TRACKING=systemd
-+ save_LIBS=$LIBS
-+ LIBS=$SYSTEMD_LIBS
-+ AC_CHECK_FUNCS(sd_uid_get_display)
-+ LIBS=$save_LIBS
- else
- if test "$enable_systemd" = "yes"; then
- AC_MSG_ERROR([systemd support requested but libsystemd-login1 library not found])
-diff --git a/src/polkitbackend/polkitbackendsessionmonitor-systemd.c b/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
-index 756b728ab952..ebd05cea45dc 100644
---- a/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
-+++ b/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
-@@ -318,6 +318,9 @@ polkit_backend_session_monitor_get_session_for_subject (PolkitBackendSessionMoni
- PolkitSubject *session = NULL;
- char *session_id = NULL;
- pid_t pid;
-+#if HAVE_SD_UID_GET_DISPLAY
-+ uid_t uid;
-+#endif
-
- if (POLKIT_IS_UNIX_PROCESS (subject))
- process = POLKIT_UNIX_PROCESS (subject); /* We already have a process */
-@@ -338,16 +341,32 @@ polkit_backend_session_monitor_get_session_for_subject (PolkitBackendSessionMoni
- g_type_name (G_TYPE_FROM_INSTANCE (subject)));
- }
-
-- /* Now do process -> pid -> session */
-+ /* Now do process -> pid -> same session */
- g_assert (process != NULL);
- pid = polkit_unix_process_get_pid (process);
-
-- if (sd_pid_get_session (pid, &session_id) < 0)
-+ if (sd_pid_get_session (pid, &session_id) >= 0)
-+ {
-+ session = polkit_unix_session_new (session_id);
-+ goto out;
-+ }
-+
-+#if HAVE_SD_UID_GET_DISPLAY
-+ /* Now do process -> uid -> graphical session (systemd version 213)*/
-+ if (sd_pid_get_owner_uid (pid, &uid) < 0)
- goto out;
--
-- session = polkit_unix_session_new (session_id);
-- free (session_id);
-+
-+ if (sd_uid_get_display (uid, &session_id) >= 0)
-+ {
-+ session = polkit_unix_session_new (session_id);
-+ goto out;
-+ }
-+#else
-+#error Debian should have sd_uid_get_display()
-+#endif
-+
- out:
-+ free (session_id);
- if (tmp_process) g_object_unref (tmp_process);
- return session;
- }
diff --git a/patches/polkit-0.105/0019-0.113-Refuse-duplicate-user-arguments-to-pkexec.patch b/patches/polkit-0.105/0019-0.113-Refuse-duplicate-user-arguments-to-pkexec.patch
deleted file mode 100644
index 65708c9d5..000000000
--- a/patches/polkit-0.105/0019-0.113-Refuse-duplicate-user-arguments-to-pkexec.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From: =?UTF-8?q?Miloslav=20Trma=C4=8D?= <mitr@redhat.com>
-Date: Tue, 26 Aug 2014 17:59:47 +0200
-Subject: [PATCH] 0.113: Refuse duplicate --user arguments to pkexec
-
-This usage is clearly erroneous, so we should tell the users they are
-making a mistake.
-
-Besides, this allows an attacker to cause a high number of heap
-allocations with attacker-controlled sizes (
-http://googleprojectzero.blogspot.cz/2014/08/the-poisoned-nul-byte-2014-edition.html
-), making some exploits easier.
-
-(To be clear, this is not a pkexec vulnerability, and we will not
-refuse attacker-affected malloc() usage as a matter of policy; but this
-commit is both user-friendly and adding some hardening.)
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=83093
-Origin: upstream, 0.113, commit:6c992bc8aefa195a41eaa41c07f46f17de18e25c
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/programs/pkexec.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/src/programs/pkexec.c b/src/programs/pkexec.c
-index 5e99044311ac..abc660dfddc6 100644
---- a/src/programs/pkexec.c
-+++ b/src/programs/pkexec.c
-@@ -533,6 +533,11 @@ main (int argc, char *argv[])
- goto out;
- }
-
-+ if (opt_user != NULL)
-+ {
-+ g_printerr ("--user specified twice\n");
-+ goto out;
-+ }
- opt_user = g_strdup (argv[n]);
- }
- else if (strcmp (argv[n], "--disable-internal-agent") == 0)
diff --git a/patches/polkit-0.105/0020-0.113-authority-Fix-memory-leak-in-EnumerateActions-.patch b/patches/polkit-0.105/0020-0.113-authority-Fix-memory-leak-in-EnumerateActions-.patch
deleted file mode 100644
index 6b5668119..000000000
--- a/patches/polkit-0.105/0020-0.113-authority-Fix-memory-leak-in-EnumerateActions-.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From: "Max A. Dednev" <dednev@rambler.ru>
-Date: Sun, 11 Jan 2015 20:00:44 -0500
-Subject: [PATCH] 0.113: authority: Fix memory leak in EnumerateActions call
- results handler
-
-Policykit-1 doesn't release reference counters of GVariant data for
-org.freedesktop.PolicyKit1.Authority.EnumerateActions dbus call. This
-patch fixed reference counting and following memory leak.
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=88288
-Origin: upstream, 0.113, commit:f4d71e0de885010494b8b0b8d62ca910011d7544
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkit/polkitauthority.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/src/polkit/polkitauthority.c b/src/polkit/polkitauthority.c
-index 9947cf3273b2..84dab72c6f0f 100644
---- a/src/polkit/polkitauthority.c
-+++ b/src/polkit/polkitauthority.c
-@@ -715,7 +715,6 @@ polkit_authority_enumerate_actions_finish (PolkitAuthority *authority,
- while ((child = g_variant_iter_next_value (&iter)) != NULL)
- {
- ret = g_list_prepend (ret, polkit_action_description_new_for_gvariant (child));
-- g_variant_ref_sink (child);
- g_variant_unref (child);
- }
- ret = g_list_reverse (ret);
diff --git a/patches/polkit-0.105/0021-0.113-CVE-2015-3218-backend-Handle-invalid-object-pa.patch b/patches/polkit-0.105/0021-0.113-CVE-2015-3218-backend-Handle-invalid-object-pa.patch
deleted file mode 100644
index 688d87e55..000000000
--- a/patches/polkit-0.105/0021-0.113-CVE-2015-3218-backend-Handle-invalid-object-pa.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-From: Colin Walters <walters@redhat.com>
-Date: Sat, 30 May 2015 09:06:23 -0400
-Subject: [PATCH] 0.113: CVE-2015-3218: backend: Handle invalid object paths in
- RegisterAuthenticationAgent
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Properly propagate the error, otherwise we dereference a `NULL`
-pointer. This is a local, authenticated DoS.
-
-`RegisterAuthenticationAgentWithOptions` and
-`UnregisterAuthentication` have been validated to not need changes for
-this.
-
-http://lists.freedesktop.org/archives/polkit-devel/2015-May/000420.html
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=90829
-Bug-Debian: https://bugs.debian.org/787932
-Reported-by: Tavis Ormandy <taviso@google.com>
-Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
-Reviewed-by: Miloslav TrmaÄ <mitr@redhat.com>
-Signed-off-by: Colin Walters <walters@redhat.com>
-Origin: upstream, 0.113, commit:48e646918efb2bf0b3b505747655726d7869f31c
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- .../polkitbackendinteractiveauthority.c | 53 +++++++++++--------
- 1 file changed, 30 insertions(+), 23 deletions(-)
-
-diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c
-index b237e9db0be8..25e13fb0907e 100644
---- a/src/polkitbackend/polkitbackendinteractiveauthority.c
-+++ b/src/polkitbackend/polkitbackendinteractiveauthority.c
-@@ -1558,36 +1558,42 @@ authentication_agent_new (PolkitSubject *scope,
- const gchar *unique_system_bus_name,
- const gchar *locale,
- const gchar *object_path,
-- GVariant *registration_options)
-+ GVariant *registration_options,
-+ GError **error)
- {
- AuthenticationAgent *agent;
-- GError *error;
-+ GDBusProxy *proxy;
-
-- agent = g_new0 (AuthenticationAgent, 1);
-+ if (!g_variant_is_object_path (object_path))
-+ {
-+ g_set_error (error, POLKIT_ERROR, POLKIT_ERROR_FAILED,
-+ "Invalid object path '%s'", object_path);
-+ return NULL;
-+ }
-+
-+ proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
-+ G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES |
-+ G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS,
-+ NULL, /* GDBusInterfaceInfo* */
-+ unique_system_bus_name,
-+ object_path,
-+ "org.freedesktop.PolicyKit1.AuthenticationAgent",
-+ NULL, /* GCancellable* */
-+ error);
-+ if (proxy == NULL)
-+ {
-+ g_prefix_error (error, "Failed to construct proxy for agent: " );
-+ return NULL;
-+ }
-
-+ agent = g_new0 (AuthenticationAgent, 1);
- agent->ref_count = 1;
- agent->scope = g_object_ref (scope);
- agent->object_path = g_strdup (object_path);
- agent->unique_system_bus_name = g_strdup (unique_system_bus_name);
- agent->locale = g_strdup (locale);
- agent->registration_options = registration_options != NULL ? g_variant_ref (registration_options) : NULL;
--
-- error = NULL;
-- agent->proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
-- G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES |
-- G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS,
-- NULL, /* GDBusInterfaceInfo* */
-- agent->unique_system_bus_name,
-- agent->object_path,
-- "org.freedesktop.PolicyKit1.AuthenticationAgent",
-- NULL, /* GCancellable* */
-- &error);
-- if (agent->proxy == NULL)
-- {
-- g_warning ("Error constructing proxy for agent: %s", error->message);
-- g_error_free (error);
-- /* TODO: Make authentication_agent_new() return NULL and set a GError */
-- }
-+ agent->proxy = proxy;
-
- return agent;
- }
-@@ -2234,8 +2240,6 @@ polkit_backend_interactive_authority_register_authentication_agent (PolkitBacken
- caller_cmdline = NULL;
- agent = NULL;
-
-- /* TODO: validate that object path is well-formed */
--
- interactive_authority = POLKIT_BACKEND_INTERACTIVE_AUTHORITY (authority);
- priv = POLKIT_BACKEND_INTERACTIVE_AUTHORITY_GET_PRIVATE (interactive_authority);
-
-@@ -2322,7 +2326,10 @@ polkit_backend_interactive_authority_register_authentication_agent (PolkitBacken
- polkit_system_bus_name_get_name (POLKIT_SYSTEM_BUS_NAME (caller)),
- locale,
- object_path,
-- options);
-+ options,
-+ error);
-+ if (!agent)
-+ goto out;
-
- g_hash_table_insert (priv->hash_scope_to_authentication_agent,
- g_object_ref (subject),
diff --git a/patches/polkit-0.105/0022-0.113-sessionmonitor-systemd-Use-sd_uid_get_state-to.patch b/patches/polkit-0.105/0022-0.113-sessionmonitor-systemd-Use-sd_uid_get_state-to.patch
deleted file mode 100644
index 6f10b2954..000000000
--- a/patches/polkit-0.105/0022-0.113-sessionmonitor-systemd-Use-sd_uid_get_state-to.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From: Philip Withnall <philip.withnall@collabora.co.uk>
-Date: Tue, 2 Jun 2015 16:19:51 +0100
-Subject: [PATCH] 0.113: sessionmonitor-systemd: Use sd_uid_get_state() to
- check session activity
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Instead of using sd_pid_get_session() then sd_session_is_active() to
-determine whether the user is active, use sd_uid_get_state() directly.
-This gets the maximum of the states of all the user’s sessions, rather
-than the state of the session containing the subject process. Since the
-user is the security boundary, this is fine.
-
-This change is necessary for `systemd --user` sessions, where most user
-code will be forked off user@.service, rather than running inside the
-logind session (whether that be a foreground/active or background/online
-session).
-
-Policy-wise, the change is from checking whether the subject process is
-in an active session; to checking whether the subject process is owned
-by a user with at least one active session.
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=76358
-Applied-upstream: 0.113, commit:a29653ffa99e0809e15aa34afcd7b2df8593871c
-Bug-Debian: https://bugs.debian.org/779988
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- .../polkitbackendsessionmonitor-systemd.c | 33 ++++++++++++++++++-
- 1 file changed, 32 insertions(+), 1 deletion(-)
-
-diff --git a/src/polkitbackend/polkitbackendsessionmonitor-systemd.c b/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
-index ebd05cea45dc..6bd517abb169 100644
---- a/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
-+++ b/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
-@@ -391,6 +391,37 @@ gboolean
- polkit_backend_session_monitor_is_session_active (PolkitBackendSessionMonitor *monitor,
- PolkitSubject *session)
- {
-- return sd_session_is_active (polkit_unix_session_get_session_id (POLKIT_UNIX_SESSION (session)));
-+ const char *session_id;
-+ char *state;
-+ uid_t uid;
-+ gboolean is_active = FALSE;
-+
-+ session_id = polkit_unix_session_get_session_id (POLKIT_UNIX_SESSION (session));
-+
-+ g_debug ("Checking whether session %s is active.", session_id);
-+
-+ /* Check whether *any* of the user's current sessions are active. */
-+ if (sd_session_get_uid (session_id, &uid) < 0)
-+ goto fallback;
-+
-+ g_debug ("Session %s has UID %u.", session_id, uid);
-+
-+ if (sd_uid_get_state (uid, &state) < 0)
-+ goto fallback;
-+
-+ g_debug ("UID %u has state %s.", uid, state);
-+
-+ is_active = (g_strcmp0 (state, "active") == 0);
-+ free (state);
-+
-+ return is_active;
-+
-+fallback:
-+ /* Fall back to checking the session. This is not ideal, since the user
-+ * might have multiple sessions, and we cannot guarantee to have chosen
-+ * the active one.
-+ *
-+ * See: https://bugs.freedesktop.org/show_bug.cgi?id=76358. */
-+ return sd_session_is_active (session_id);
- }
-
diff --git a/patches/polkit-0.105/0023-0.113-Fix-a-possible-NULL-dereference.patch b/patches/polkit-0.105/0023-0.113-Fix-a-possible-NULL-dereference.patch
deleted file mode 100644
index 5bcc45010..000000000
--- a/patches/polkit-0.105/0023-0.113-Fix-a-possible-NULL-dereference.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From: =?UTF-8?q?Miloslav=20Trma=C4=8D?= <mitr@redhat.com>
-Date: Wed, 11 Jun 2014 22:36:50 +0200
-Subject: [PATCH] 0.113: Fix a possible NULL dereference.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-polkit_backend_session_monitor_get_user_for_subject() may return NULL
-(and because it is using external processes, we can’t really rule it
-out). The code was already anticipating NULL in the cleanup section, so
-handle it also when actually using the value.
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=80767
-Origin: upstream, 0.113, commit:6109543303def367b84eaac97d2ff9cefe735efb
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkitbackend/polkitbackendinteractiveauthority.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c
-index 25e13fb0907e..00ee0446445f 100644
---- a/src/polkitbackend/polkitbackendinteractiveauthority.c
-+++ b/src/polkitbackend/polkitbackendinteractiveauthority.c
-@@ -557,7 +557,11 @@ log_result (PolkitBackendInteractiveAuthority *authority,
- user_of_subject = polkit_backend_session_monitor_get_user_for_subject (priv->session_monitor, subject, NULL);
-
- subject_str = polkit_subject_to_string (subject);
-- user_of_subject_str = polkit_identity_to_string (user_of_subject);
-+
-+ if (user_of_subject != NULL)
-+ user_of_subject_str = polkit_identity_to_string (user_of_subject);
-+ else
-+ user_of_subject_str = g_strdup ("<unknown>");
- caller_str = polkit_subject_to_string (caller);
-
- subject_cmdline = _polkit_subject_get_cmdline (subject);
diff --git a/patches/polkit-0.105/0024-0.113-Remove-a-redundant-assignment.patch b/patches/polkit-0.105/0024-0.113-Remove-a-redundant-assignment.patch
deleted file mode 100644
index aab9d157d..000000000
--- a/patches/polkit-0.105/0024-0.113-Remove-a-redundant-assignment.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: =?UTF-8?q?Miloslav=20Trma=C4=8D?= <mitr@redhat.com>
-Date: Wed, 11 Jun 2014 22:44:28 +0200
-Subject: [PATCH] 0.113: Remove a redundant assignment.
-
-Instead of a nonsensical (data = data), use the more customary
-((void)data) to silence the warning about an unused parameter.
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=80767
-Origin: upstream, 0.113, commit:37143eb06cb0c4dffca67079dd1c10c5b191b6a7
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkitagent/polkitagenthelper-pam.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/polkitagent/polkitagenthelper-pam.c b/src/polkitagent/polkitagenthelper-pam.c
-index 292abbe44e88..937386e8f1d3 100644
---- a/src/polkitagent/polkitagenthelper-pam.c
-+++ b/src/polkitagent/polkitagenthelper-pam.c
-@@ -230,7 +230,7 @@ conversation_function (int n, const struct pam_message **msg, struct pam_respons
- gchar *tmp = NULL;
- size_t len;
-
-- data = data;
-+ (void)data;
- if (n <= 0 || n > PAM_MAX_NUM_MSG)
- return PAM_CONV_ERR;
-
diff --git a/patches/polkit-0.105/0025-0.113-Fix-duplicate-GError-use-when-uid-is-missing.patch b/patches/polkit-0.105/0025-0.113-Fix-duplicate-GError-use-when-uid-is-missing.patch
deleted file mode 100644
index eca000906..000000000
--- a/patches/polkit-0.105/0025-0.113-Fix-duplicate-GError-use-when-uid-is-missing.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From: =?UTF-8?q?Miloslav=20Trma=C4=8D?= <mitr@redhat.com>
-Date: Mon, 15 Sep 2014 19:45:15 +0200
-Subject: [PATCH] 0.113: Fix duplicate GError use when "uid" is missing
-
-Some GLib versions complain loudly about this.
-
-To reproduce, call e.g. RegisterAuthenticationAgent with the following
-parameters:
-("unix-process", {"pid": __import__('gi.repository.GLib', globals(),
-locals(), ['Variant']).Variant("u", 1), "start-time":
-__import__('gi.repository.GLib', globals(), locals(),
-['Variant']).Variant("t", 1)}), "cs", "/"
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=90877
-Origin: upstream, 0.113, commit:2c8738941be18ef05ce724df46547f41dbc02fb5
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkit/polkitsubject.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/polkit/polkitsubject.c b/src/polkit/polkitsubject.c
-index aed57951bb6b..78ec745a4df2 100644
---- a/src/polkit/polkitsubject.c
-+++ b/src/polkit/polkitsubject.c
-@@ -424,7 +424,7 @@ polkit_subject_new_for_gvariant (GVariant *variant,
- start_time = g_variant_get_uint64 (v);
- g_variant_unref (v);
-
-- v = lookup_asv (details_gvariant, "uid", G_VARIANT_TYPE_INT32, error);
-+ v = lookup_asv (details_gvariant, "uid", G_VARIANT_TYPE_INT32, NULL);
- if (v != NULL)
- {
- uid = g_variant_get_int32 (v);
diff --git a/patches/polkit-0.105/0026-0.113-Fix-a-crash-when-two-authentication-requests-a.patch b/patches/polkit-0.105/0026-0.113-Fix-a-crash-when-two-authentication-requests-a.patch
deleted file mode 100644
index 46dd4293d..000000000
--- a/patches/polkit-0.105/0026-0.113-Fix-a-crash-when-two-authentication-requests-a.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From: =?UTF-8?q?Miloslav=20Trma=C4=8D?= <mitr@redhat.com>
-Date: Sat, 6 Jun 2015 01:07:08 +0200
-Subject: [PATCH] 0.113: Fix a crash when two authentication requests are in
- flight.
-
-To reproduce:
-1. pkttyagent -p $$ # or another suitable PID
-2. pkcheck -p $that_pid -a org.freedesktop.policykit.exec -u
-3. pkcheck -p $that_pid -a org.freedesktop.policykit.exec -u
-4. Then, in the pkttyagent prompt, press Enter.
-
-polkit_agent_text_listener_initiate_authentication was already setting
-an appropriate error code, so the g_assert was unnecessary.
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=90879
-Origin: upstream, 0.113, commit:e2d2fafd106624ddfea4b17d3f40704b2031c00b
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkitagent/polkitagenttextlistener.c | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/src/polkitagent/polkitagenttextlistener.c b/src/polkitagent/polkitagenttextlistener.c
-index b5c8a3f370e1..e63c2853cfe5 100644
---- a/src/polkitagent/polkitagenttextlistener.c
-+++ b/src/polkitagent/polkitagenttextlistener.c
-@@ -546,12 +546,10 @@ polkit_agent_text_listener_initiate_authentication_finish (PolkitAgentListener
- GAsyncResult *res,
- GError **error)
- {
-- PolkitAgentTextListener *listener = POLKIT_AGENT_TEXT_LISTENER (_listener);
- gboolean ret;
-
- g_warn_if_fail (g_simple_async_result_get_source_tag (G_SIMPLE_ASYNC_RESULT (res)) ==
- polkit_agent_text_listener_initiate_authentication);
-- g_assert (listener->active_session == NULL);
-
- ret = FALSE;
-
diff --git a/patches/polkit-0.105/0027-0.113-CVE-2015-4625-Use-unpredictable-cookie-values-.patch b/patches/polkit-0.105/0027-0.113-CVE-2015-4625-Use-unpredictable-cookie-values-.patch
deleted file mode 100644
index 612bc4ef7..000000000
--- a/patches/polkit-0.105/0027-0.113-CVE-2015-4625-Use-unpredictable-cookie-values-.patch
+++ /dev/null
@@ -1,545 +0,0 @@
-From: Colin Walters <walters@redhat.com>
-Date: Thu, 4 Jun 2015 12:15:18 -0400
-Subject: [PATCH] 0.113: CVE-2015-4625: Use unpredictable cookie values, keep
- them secret
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Tavis noted that it'd be possible with a 32 bit counter for someone to
-cause the cookie to wrap by creating Authentication requests in a
-loop.
-
-Something important to note here is that wrapping of signed integers
-is undefined behavior in C, so we definitely want to fix that. All
-counter integers used in this patch are unsigned.
-
-See the comment above `authentication_agent_generate_cookie` for
-details, but basically we're now using a cookie of the form:
-
-```
- <agent serial> - <agent random id> - <session serial> - <session
-random id>
-```
-
-Which has multiple 64 bit counters, plus unpredictable random 128 bit
-integer ids (effectively UUIDs, but we're not calling them that
-because we don't need to be globally unique.
-
-We further ensure that the cookies are not visible to other processes
-by changing the setuid helper to accept them over standard input. This
-means that an attacker would have to guess both ids.
-
-In any case, the security hole here is better fixed with the other
-change to bind user id (uid) of the agent with cookie lookups, making
-cookie guessing worthless.
-
-Nevertheless, I think it's worth doing this change too, for defense in
-depth.
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=90832
-CVE: CVE-2015-4625
-Reported-by: Tavis Ormandy <taviso@google.com>
-Reviewed-by: Miloslav TrmaÄ <mitr@redhat.com>
-Signed-off-by: Colin Walters <walters@redhat.com>
-Origin: upstream, 0.113, commit:ea544ffc18405237ccd95d28d7f45afef49aca17
-Bug-Debian: https://bugs.debian.org/796134
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- configure.ac | 2 +-
- src/polkitagent/polkitagenthelper-pam.c | 12 ++-
- src/polkitagent/polkitagenthelper-shadow.c | 12 ++-
- src/polkitagent/polkitagenthelperprivate.c | 33 +++++++
- src/polkitagent/polkitagenthelperprivate.h | 2 +
- src/polkitagent/polkitagentsession.c | 30 +++---
- .../polkitbackendinteractiveauthority.c | 99 +++++++++++++++----
- 7 files changed, 150 insertions(+), 40 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index aa2760f90606..388605d2cb08 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -123,7 +123,7 @@ if test "x$GCC" = "xyes"; then
- changequote([,])dnl
- fi
-
--PKG_CHECK_MODULES(GLIB, [gio-2.0 >= 2.28.0])
-+PKG_CHECK_MODULES(GLIB, [gmodule-2.0 gio-unix-2.0 >= 2.30.0])
- AC_SUBST(GLIB_CFLAGS)
- AC_SUBST(GLIB_LIBS)
-
-diff --git a/src/polkitagent/polkitagenthelper-pam.c b/src/polkitagent/polkitagenthelper-pam.c
-index 937386e8f1d3..19062aa8d0da 100644
---- a/src/polkitagent/polkitagenthelper-pam.c
-+++ b/src/polkitagent/polkitagenthelper-pam.c
-@@ -65,7 +65,7 @@ main (int argc, char *argv[])
- {
- int rc;
- const char *user_to_auth;
-- const char *cookie;
-+ char *cookie = NULL;
- struct pam_conv pam_conversation;
- pam_handle_t *pam_h;
- const void *authed_user;
-@@ -97,7 +97,7 @@ main (int argc, char *argv[])
- openlog ("polkit-agent-helper-1", LOG_CONS | LOG_PID, LOG_AUTHPRIV);
-
- /* check for correct invocation */
-- if (argc != 3)
-+ if (!(argc == 2 || argc == 3))
- {
- syslog (LOG_NOTICE, "inappropriate use of helper, wrong number of arguments [uid=%d]", getuid ());
- fprintf (stderr, "polkit-agent-helper-1: wrong number of arguments. This incident has been logged.\n");
-@@ -105,7 +105,10 @@ main (int argc, char *argv[])
- }
-
- user_to_auth = argv[1];
-- cookie = argv[2];
-+
-+ cookie = read_cookie (argc, argv);
-+ if (!cookie)
-+ goto error;
-
- if (getuid () != 0)
- {
-@@ -203,6 +206,8 @@ main (int argc, char *argv[])
- goto error;
- }
-
-+ free (cookie);
-+
- #ifdef PAH_DEBUG
- fprintf (stderr, "polkit-agent-helper-1: successfully sent D-Bus message to PolicyKit daemon\n");
- #endif /* PAH_DEBUG */
-@@ -212,6 +217,7 @@ main (int argc, char *argv[])
- return 0;
-
- error:
-+ free (cookie);
- if (pam_h != NULL)
- pam_end (pam_h, rc);
-
-diff --git a/src/polkitagent/polkitagenthelper-shadow.c b/src/polkitagent/polkitagenthelper-shadow.c
-index a4f73acff3a9..e87791541a9c 100644
---- a/src/polkitagent/polkitagenthelper-shadow.c
-+++ b/src/polkitagent/polkitagenthelper-shadow.c
-@@ -46,7 +46,7 @@ main (int argc, char *argv[])
- {
- struct spwd *shadow;
- const char *user_to_auth;
-- const char *cookie;
-+ char *cookie = NULL;
- time_t now;
-
- /* clear the entire environment to avoid attacks with
-@@ -67,7 +67,7 @@ main (int argc, char *argv[])
- openlog ("polkit-agent-helper-1", LOG_CONS | LOG_PID, LOG_AUTHPRIV);
-
- /* check for correct invocation */
-- if (argc != 3)
-+ if (!(argc == 2 || argc == 3))
- {
- syslog (LOG_NOTICE, "inappropriate use of helper, wrong number of arguments [uid=%d]", getuid ());
- fprintf (stderr, "polkit-agent-helper-1: wrong number of arguments. This incident has been logged.\n");
-@@ -86,7 +86,10 @@ main (int argc, char *argv[])
- }
-
- user_to_auth = argv[1];
-- cookie = argv[2];
-+
-+ cookie = read_cookie (argc, argv);
-+ if (!cookie)
-+ goto error;
-
- #ifdef PAH_DEBUG
- fprintf (stderr, "polkit-agent-helper-1: user to auth is '%s'.\n", user_to_auth);
-@@ -153,6 +156,8 @@ main (int argc, char *argv[])
- goto error;
- }
-
-+ free (cookie);
-+
- #ifdef PAH_DEBUG
- fprintf (stderr, "polkit-agent-helper-1: successfully sent D-Bus message to PolicyKit daemon\n");
- #endif /* PAH_DEBUG */
-@@ -162,6 +167,7 @@ main (int argc, char *argv[])
- return 0;
-
- error:
-+ free (cookie);
- fprintf (stdout, "FAILURE\n");
- flush_and_wait ();
- return 1;
-diff --git a/src/polkitagent/polkitagenthelperprivate.c b/src/polkitagent/polkitagenthelperprivate.c
-index 4417e70f6ef7..a99de7dd5c16 100644
---- a/src/polkitagent/polkitagenthelperprivate.c
-+++ b/src/polkitagent/polkitagenthelperprivate.c
-@@ -23,6 +23,7 @@
- #include "config.h"
- #include "polkitagenthelperprivate.h"
- #include <stdio.h>
-+#include <string.h>
- #include <stdlib.h>
- #include <unistd.h>
-
-@@ -45,6 +46,38 @@ _polkit_clearenv (void)
- #endif
-
-
-+char *
-+read_cookie (int argc, char **argv)
-+{
-+ /* As part of CVE-2015-4625, we started passing the cookie
-+ * on standard input, to ensure it's not visible to other
-+ * processes. However, to ensure that things continue
-+ * to work if the setuid binary is upgraded while old
-+ * agents are still running (this will be common with
-+ * package managers), we support both modes.
-+ */
-+ if (argc == 3)
-+ return strdup (argv[2]);
-+ else
-+ {
-+ char *ret = NULL;
-+ size_t n = 0;
-+ ssize_t r = getline (&ret, &n, stdin);
-+ if (r == -1)
-+ {
-+ if (!feof (stdin))
-+ perror ("getline");
-+ free (ret);
-+ return NULL;
-+ }
-+ else
-+ {
-+ g_strchomp (ret);
-+ return ret;
-+ }
-+ }
-+}
-+
- gboolean
- send_dbus_message (const char *cookie, const char *user)
- {
-diff --git a/src/polkitagent/polkitagenthelperprivate.h b/src/polkitagent/polkitagenthelperprivate.h
-index aeca2c74d44a..547fdccfd2e2 100644
---- a/src/polkitagent/polkitagenthelperprivate.h
-+++ b/src/polkitagent/polkitagenthelperprivate.h
-@@ -38,6 +38,8 @@
-
- int _polkit_clearenv (void);
-
-+char *read_cookie (int argc, char **argv);
-+
- gboolean send_dbus_message (const char *cookie, const char *user);
-
- void flush_and_wait ();
-diff --git a/src/polkitagent/polkitagentsession.c b/src/polkitagent/polkitagentsession.c
-index a658a2295da7..6a3d6bc94c49 100644
---- a/src/polkitagent/polkitagentsession.c
-+++ b/src/polkitagent/polkitagentsession.c
-@@ -55,6 +55,7 @@
- #include <stdio.h>
- #include <sys/types.h>
- #include <sys/wait.h>
-+#include <gio/gunixoutputstream.h>
- #include <pwd.h>
-
- #include "polkitagentmarshal.h"
-@@ -88,7 +89,7 @@ struct _PolkitAgentSession
- gchar *cookie;
- PolkitIdentity *identity;
-
-- int child_stdin;
-+ GOutputStream *child_stdin;
- int child_stdout;
- GPid child_pid;
-
-@@ -129,7 +130,6 @@ G_DEFINE_TYPE (PolkitAgentSession, polkit_agent_session, G_TYPE_OBJECT);
- static void
- polkit_agent_session_init (PolkitAgentSession *session)
- {
-- session->child_stdin = -1;
- session->child_stdout = -1;
- }
-
-@@ -395,11 +395,7 @@ kill_helper (PolkitAgentSession *session)
- session->child_stdout = -1;
- }
-
-- if (session->child_stdin != -1)
-- {
-- g_warn_if_fail (close (session->child_stdin) == 0);
-- session->child_stdin = -1;
-- }
-+ g_clear_object (&session->child_stdin);
-
- session->helper_is_running = FALSE;
-
-@@ -545,9 +541,9 @@ polkit_agent_session_response (PolkitAgentSession *session,
-
- add_newline = (response[response_len] != '\n');
-
-- write (session->child_stdin, response, response_len);
-+ (void) g_output_stream_write_all (session->child_stdin, response, response_len, NULL, NULL, NULL);
- if (add_newline)
-- write (session->child_stdin, newline, 1);
-+ (void) g_output_stream_write_all (session->child_stdin, newline, 1, NULL, NULL, NULL);
- }
-
- /**
-@@ -567,8 +563,9 @@ polkit_agent_session_initiate (PolkitAgentSession *session)
- {
- uid_t uid;
- GError *error;
-- gchar *helper_argv[4];
-+ gchar *helper_argv[3];
- struct passwd *passwd;
-+ int stdin_fd = -1;
-
- g_return_if_fail (POLKIT_AGENT_IS_SESSION (session));
-
-@@ -600,10 +597,8 @@ polkit_agent_session_initiate (PolkitAgentSession *session)
-
- helper_argv[0] = PACKAGE_LIBEXEC_DIR "/polkit-agent-helper-1";
- helper_argv[1] = passwd->pw_name;
-- helper_argv[2] = session->cookie;
-- helper_argv[3] = NULL;
-+ helper_argv[2] = NULL;
-
-- session->child_stdin = -1;
- session->child_stdout = -1;
-
- error = NULL;
-@@ -615,7 +610,7 @@ polkit_agent_session_initiate (PolkitAgentSession *session)
- NULL,
- NULL,
- &session->child_pid,
-- &session->child_stdin,
-+ &stdin_fd,
- &session->child_stdout,
- NULL,
- &error))
-@@ -628,6 +623,13 @@ polkit_agent_session_initiate (PolkitAgentSession *session)
- if (G_UNLIKELY (_show_debug ()))
- g_print ("PolkitAgentSession: spawned helper with pid %d\n", (gint) session->child_pid);
-
-+ session->child_stdin = (GOutputStream*)g_unix_output_stream_new (stdin_fd, TRUE);
-+
-+ /* Write the cookie on stdin so it can't be seen by other processes */
-+ (void) g_output_stream_write_all (session->child_stdin, session->cookie, strlen (session->cookie),
-+ NULL, NULL, NULL);
-+ (void) g_output_stream_write_all (session->child_stdin, "\n", 1, NULL, NULL, NULL);
-+
- session->child_stdout_channel = g_io_channel_unix_new (session->child_stdout);
- session->child_stdout_watch_source = g_io_create_watch (session->child_stdout_channel,
- G_IO_IN | G_IO_ERR | G_IO_HUP);
-diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c
-index 00ee0446445f..10eda2c7fb36 100644
---- a/src/polkitbackend/polkitbackendinteractiveauthority.c
-+++ b/src/polkitbackend/polkitbackendinteractiveauthority.c
-@@ -212,6 +212,8 @@ typedef struct
-
- GDBusConnection *system_bus_connection;
- guint name_owner_changed_signal_id;
-+
-+ guint64 agent_serial;
- } PolkitBackendInteractiveAuthorityPrivate;
-
- /* ---------------------------------------------------------------------------------------------------- */
-@@ -430,11 +432,15 @@ struct AuthenticationAgent
- volatile gint ref_count;
-
- PolkitSubject *scope;
-+ guint64 serial;
-
- gchar *locale;
- GVariant *registration_options;
- gchar *object_path;
- gchar *unique_system_bus_name;
-+ GRand *cookie_pool;
-+ gchar *cookie_prefix;
-+ guint64 cookie_serial;
-
- GDBusProxy *proxy;
-
-@@ -1430,9 +1436,54 @@ authentication_session_cancelled_cb (GCancellable *cancellable,
- authentication_session_cancel (session);
- }
-
-+/* We're not calling this a UUID, but it's basically
-+ * the same thing, just not formatted that way because:
-+ *
-+ * - I'm too lazy to do it
-+ * - If we did, people might think it was actually
-+ * generated from /dev/random, which we're not doing
-+ * because this value doesn't actually need to be
-+ * globally unique.
-+ */
-+static void
-+append_rand_u128_str (GString *buf,
-+ GRand *pool)
-+{
-+ g_string_append_printf (buf, "%08x%08x%08x%08x",
-+ g_rand_int (pool),
-+ g_rand_int (pool),
-+ g_rand_int (pool),
-+ g_rand_int (pool));
-+}
-+
-+/* A value that should be unique to the (AuthenticationAgent, AuthenticationSession)
-+ * pair, and not guessable by other agents.
-+ *
-+ * <agent serial> - <agent uuid> - <session serial> - <session uuid>
-+ *
-+ * See http://lists.freedesktop.org/archives/polkit-devel/2015-June/000425.html
-+ *
-+ */
-+static gchar *
-+authentication_agent_generate_cookie (AuthenticationAgent *agent)
-+{
-+ GString *buf = g_string_new ("");
-+
-+ g_string_append (buf, agent->cookie_prefix);
-+
-+ g_string_append_c (buf, '-');
-+ agent->cookie_serial++;
-+ g_string_append_printf (buf, "%" G_GUINT64_FORMAT,
-+ agent->cookie_serial);
-+ g_string_append_c (buf, '-');
-+ append_rand_u128_str (buf, agent->cookie_pool);
-+
-+ return g_string_free (buf, FALSE);
-+}
-+
-+
- static AuthenticationSession *
- authentication_session_new (AuthenticationAgent *agent,
-- const gchar *cookie,
- PolkitSubject *subject,
- PolkitIdentity *user_of_subject,
- PolkitSubject *caller,
-@@ -1449,7 +1500,7 @@ authentication_session_new (AuthenticationAgent *agent,
-
- session = g_new0 (AuthenticationSession, 1);
- session->agent = authentication_agent_ref (agent);
-- session->cookie = g_strdup (cookie);
-+ session->cookie = authentication_agent_generate_cookie (agent);
- session->subject = g_object_ref (subject);
- session->user_of_subject = g_object_ref (user_of_subject);
- session->caller = g_object_ref (caller);
-@@ -1496,16 +1547,6 @@ authentication_session_free (AuthenticationSession *session)
- g_free (session);
- }
-
--static gchar *
--authentication_agent_new_cookie (AuthenticationAgent *agent)
--{
-- static gint counter = 0;
--
-- /* TODO: use a more random-looking cookie */
--
-- return g_strdup_printf ("cookie%d", counter++);
--}
--
- static PolkitSubject *
- authentication_agent_get_scope (AuthenticationAgent *agent)
- {
-@@ -1553,12 +1594,15 @@ authentication_agent_unref (AuthenticationAgent *agent)
- g_free (agent->unique_system_bus_name);
- if (agent->registration_options != NULL)
- g_variant_unref (agent->registration_options);
-+ g_rand_free (agent->cookie_pool);
-+ g_free (agent->cookie_prefix);
- g_free (agent);
- }
- }
-
- static AuthenticationAgent *
--authentication_agent_new (PolkitSubject *scope,
-+authentication_agent_new (guint64 serial,
-+ PolkitSubject *scope,
- const gchar *unique_system_bus_name,
- const gchar *locale,
- const gchar *object_path,
-@@ -1592,6 +1636,7 @@ authentication_agent_new (PolkitSubject *scope,
-
- agent = g_new0 (AuthenticationAgent, 1);
- agent->ref_count = 1;
-+ agent->serial = serial;
- agent->scope = g_object_ref (scope);
- agent->object_path = g_strdup (object_path);
- agent->unique_system_bus_name = g_strdup (unique_system_bus_name);
-@@ -1599,6 +1644,25 @@ authentication_agent_new (PolkitSubject *scope,
- agent->registration_options = registration_options != NULL ? g_variant_ref (registration_options) : NULL;
- agent->proxy = proxy;
-
-+ {
-+ GString *cookie_prefix = g_string_new ("");
-+ GRand *agent_private_rand = g_rand_new ();
-+
-+ g_string_append_printf (cookie_prefix, "%" G_GUINT64_FORMAT "-", agent->serial);
-+
-+ /* Use a uniquely seeded PRNG to get a prefix cookie for this agent,
-+ * whose sequence will not correlate with the per-authentication session
-+ * cookies.
-+ */
-+ append_rand_u128_str (cookie_prefix, agent_private_rand);
-+ g_rand_free (agent_private_rand);
-+
-+ agent->cookie_prefix = g_string_free (cookie_prefix, FALSE);
-+
-+ /* And a newly seeded pool for per-session cookies */
-+ agent->cookie_pool = g_rand_new ();
-+ }
-+
- return agent;
- }
-
-@@ -2083,7 +2147,6 @@ authentication_agent_initiate_challenge (AuthenticationAgent *agent,
- gpointer user_data)
- {
- AuthenticationSession *session;
-- gchar *cookie;
- GList *l;
- GList *identities;
- gchar *localized_message;
-@@ -2104,8 +2167,6 @@ authentication_agent_initiate_challenge (AuthenticationAgent *agent,
- &localized_icon_name,
- &localized_details);
-
-- cookie = authentication_agent_new_cookie (agent);
--
- identities = NULL;
-
- /* select admin user if required by the implicit authorization */
-@@ -2125,7 +2186,6 @@ authentication_agent_initiate_challenge (AuthenticationAgent *agent,
- }
-
- session = authentication_session_new (agent,
-- cookie,
- subject,
- user_of_subject,
- caller,
-@@ -2179,7 +2239,6 @@ authentication_agent_initiate_challenge (AuthenticationAgent *agent,
-
- g_list_foreach (identities, (GFunc) g_object_unref, NULL);
- g_list_free (identities);
-- g_free (cookie);
-
- g_free (localized_message);
- g_free (localized_icon_name);
-@@ -2326,7 +2385,9 @@ polkit_backend_interactive_authority_register_authentication_agent (PolkitBacken
- goto out;
- }
-
-- agent = authentication_agent_new (subject,
-+ priv->agent_serial++;
-+ agent = authentication_agent_new (priv->agent_serial,
-+ subject,
- polkit_system_bus_name_get_name (POLKIT_SYSTEM_BUS_NAME (caller)),
- locale,
- object_path,
diff --git a/patches/polkit-0.105/0028-0.113-CVE-2015-4625-Bind-use-of-cookies-to-specific-.patch b/patches/polkit-0.105/0028-0.113-CVE-2015-4625-Bind-use-of-cookies-to-specific-.patch
deleted file mode 100644
index 871bf9fbc..000000000
--- a/patches/polkit-0.105/0028-0.113-CVE-2015-4625-Bind-use-of-cookies-to-specific-.patch
+++ /dev/null
@@ -1,488 +0,0 @@
-From: Colin Walters <walters@redhat.com>
-Date: Wed, 17 Jun 2015 13:07:02 -0400
-Subject: [PATCH] 0.113: CVE-2015-4625: Bind use of cookies to specific uids
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-http://lists.freedesktop.org/archives/polkit-devel/2015-June/000425.html
-
-The "cookie" value that Polkit hands out is global to all polkit
-users. And when `AuthenticationAgentResponse` is invoked, we
-previously only received the cookie and *target* identity, and
-attempted to find an agent from that.
-
-The problem is that the current cookie is just an integer
-counter, and if it overflowed, it would be possible for
-an successful authorization in one session to trigger a response
-in another session.
-
-The overflow and ability to guess the cookie were fixed by the
-previous patch.
-
-This patch is conceptually further hardening on top of that. Polkit
-currently treats uids as equivalent from a security domain
-perspective; there is no support for
-SELinux/AppArmor/etc. differentiation.
-
-We can retrieve the uid from `getuid()` in the setuid helper, which
-allows us to ensure the uid invoking `AuthenticationAgentResponse2`
-matches that of the agent.
-
-Then the authority only looks at authentication sessions matching the
-cookie that were created by a matching uid, thus removing the ability
-for different uids to interfere with each other entirely.
-
-Several fixes to this patch were contributed by:
-Miloslav TrmaÄ <mitr@redhat.com>
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=90837
-CVE: CVE-2015-4625
-Reported-by: Tavis Ormandy <taviso@google.com>
-Reviewed-by: Miloslav TrmaÄ <mitr@redhat.com>
-Signed-off-by: Colin Walters <walters@redhat.com>
-Origin: upstream, 0.113, commit:493aa5dc1d278ab9097110c1262f5229bbaf1766
-Bug-Debian: https://bugs.debian.org/796134
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- ...desktop.PolicyKit1.AuthenticationAgent.xml | 14 ++++-
- data/org.freedesktop.PolicyKit1.Authority.xml | 24 +++++++-
- ...e-org.freedesktop.PolicyKit1.Authority.xml | 46 +++++++++++++-
- docs/polkit/overview.xml | 18 +++---
- src/polkit/polkitauthority.c | 13 +++-
- src/polkitbackend/polkitbackendauthority.c | 61 ++++++++++++++++++-
- src/polkitbackend/polkitbackendauthority.h | 2 +
- .../polkitbackendinteractiveauthority.c | 39 ++++++++++--
- 8 files changed, 198 insertions(+), 19 deletions(-)
-
-diff --git a/data/org.freedesktop.PolicyKit1.AuthenticationAgent.xml b/data/org.freedesktop.PolicyKit1.AuthenticationAgent.xml
-index 3b519c2fb2c2..5beef7d4ef92 100644
---- a/data/org.freedesktop.PolicyKit1.AuthenticationAgent.xml
-+++ b/data/org.freedesktop.PolicyKit1.AuthenticationAgent.xml
-@@ -8,7 +8,19 @@
- <annotation name="org.gtk.EggDBus.DocString" value="<para>This D-Bus interface is used for communication between the system-wide PolicyKit daemon and one or more authentication agents each running in a user session.</para><para>An authentication agent must implement this interface and register (passing the object path of the object implementing the interface) using the org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent() and org.freedesktop.PolicyKit1.Authority.UnregisterAuthenticationAgent() methods on the #org.freedesktop.PolicyKit1.Authority interface of the PolicyKit daemon.</para>"/>
-
- <method name="BeginAuthentication">
-- <annotation name="org.gtk.EggDBus.DocString" value="<para>Called by the PolicyKit daemon when the authentication agent needs the user to authenticate as one of the identities in @identities for the action with the identifier @action_id.</para><para>Upon succesful authentication, the authentication agent must invoke the org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse() method on the #org.freedesktop.PolicyKit1.Authority interface of the PolicyKit daemon before returning.</para><para>If the user dismisses the authentication dialog, the authentication agent should return an error.</para>"/>
-+ <annotation name="org.gtk.EggDBus.DocString" value="<para>Called
-+ by the PolicyKit daemon when the authentication agent needs the
-+ user to authenticate as one of the identities in @identities for
-+ the action with the identifier @action_id.</para><para>This
-+ authentication is normally achieved via the
-+ polkit_agent_session_response() API, which invokes a private
-+ setuid helper process to verify the authentication. When
-+ successful, it calls the
-+ org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse2()
-+ method on the #org.freedesktop.PolicyKit1.Authority interface of
-+ the PolicyKit daemon before returning. If the user dismisses the
-+ authentication dialog, the authentication agent should call
-+ polkit_agent_session_cancel().</para>"/>
-
- <arg name="action_id" direction="in" type="s">
- <annotation name="org.gtk.EggDBus.DocString" value="The identifier for the action that the user is authentication for."/>
-diff --git a/data/org.freedesktop.PolicyKit1.Authority.xml b/data/org.freedesktop.PolicyKit1.Authority.xml
-index fbfb9cdcfbad..f9021ee2e7c8 100644
---- a/data/org.freedesktop.PolicyKit1.Authority.xml
-+++ b/data/org.freedesktop.PolicyKit1.Authority.xml
-@@ -313,7 +313,29 @@
- </method>
-
- <method name="AuthenticationAgentResponse">
-- <annotation name="org.gtk.EggDBus.DocString" value="Method for authentication agents to invoke on successful authentication. This method will fail unless a sufficiently privileged caller invokes it."/>
-+ <annotation name="org.gtk.EggDBus.DocString" value="Method for authentication agents to invoke on successful
-+authentication, intended only for use by a privileged helper process
-+internal to polkit."/>
-+
-+ <arg name="cookie" direction="in" type="s">
-+ <annotation name="org.gtk.EggDBus.DocString" value="The cookie identifying the authentication request that was passed to the authentication agent."/>
-+ </arg>
-+
-+ <arg name="identity" direction="in" type="(sa{sv})">
-+ <annotation name="org.gtk.EggDBus.Type" value="Identity"/>
-+ <annotation name="org.gtk.EggDBus.DocString" value="A #Identity struct describing what identity was authenticated."/>
-+ </arg>
-+ </method>
-+
-+ <method name="AuthenticationAgentResponse2">
-+ <annotation name="org.gtk.EggDBus.DocString" value="Method for authentication agents to invoke on successful
-+authentication, intended only for use by a privileged helper process
-+internal to polkit. Note this method was added in 0.114, and should be preferred over AuthenticationAgentResponse
-+as it fixes a security issue."/>
-+
-+ <arg name="uid" direction="in" type="u">
-+ <annotation name="org.gtk.EggDBus.DocString" value="The real uid of the agent. Normally set by the setuid helper program."/>
-+ </arg>
-
- <arg name="cookie" direction="in" type="s">
- <annotation name="org.gtk.EggDBus.DocString" value="The cookie identifying the authentication request that was passed to the authentication agent."/>
-diff --git a/docs/polkit/docbook-interface-org.freedesktop.PolicyKit1.Authority.xml b/docs/polkit/docbook-interface-org.freedesktop.PolicyKit1.Authority.xml
-index 6525e250acc2..e66bf5349c61 100644
---- a/docs/polkit/docbook-interface-org.freedesktop.PolicyKit1.Authority.xml
-+++ b/docs/polkit/docbook-interface-org.freedesktop.PolicyKit1.Authority.xml
-@@ -42,6 +42,8 @@ Structure <link linkend="eggdbus-struct-TemporaryAuthorization">TemporaryAuth
- IN String object_path)
- <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse">AuthenticationAgentResponse</link> (IN String cookie,
- IN <link linkend="eggdbus-struct-Identity">Identity</link> identity)
-+<link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse">AuthenticationAgentResponse2</link> (IN uint32 uid, IN String cookie,
-+ IN <link linkend="eggdbus-struct-Identity">Identity</link> identity)
- <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.EnumerateTemporaryAuthorizations">EnumerateTemporaryAuthorizations</link> (IN <link linkend="eggdbus-struct-Subject">Subject</link> subject,
- OUT Array&lt;<link linkend="eggdbus-struct-TemporaryAuthorization">TemporaryAuthorization</link>&gt; temporary_authorizations)
- <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.RevokeTemporaryAuthorizations">RevokeTemporaryAuthorizations</link> (IN <link linkend="eggdbus-struct-Subject">Subject</link> subject)
-@@ -777,9 +779,51 @@ AuthenticationAgentResponse (IN String cookie,
- IN <link linkend="eggdbus-struct-Identity">Identity</link> identity)
- </programlisting>
- <para>
--Method for authentication agents to invoke on successful authentication. This method will fail unless a sufficiently privileged caller invokes it.
-+Method for authentication agents to invoke on successful
-+authentication, intended only for use by a privileged helper process
-+internal to polkit. Deprecated in favor of AuthenticationAgentResponse2.
-+ </para>
-+<variablelist role="params">
-+ <varlistentry>
-+ <term><literal>IN String <parameter>cookie</parameter></literal>:</term>
-+ <listitem>
-+ <para>
-+The cookie identifying the authentication request that was passed to the authentication agent.
-+ </para>
-+ </listitem>
-+ </varlistentry>
-+ <varlistentry>
-+ <term><literal>IN <link linkend="eggdbus-struct-Identity">Identity</link> <parameter>identity</parameter></literal>:</term>
-+ <listitem>
-+ <para>
-+A <link linkend="eggdbus-struct-Identity">Identity</link> struct describing what identity was authenticated.
-+ </para>
-+ </listitem>
-+ </varlistentry>
-+</variablelist>
-+ </refsect2>
-+ <refsect2 role="function" id="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse2">
-+ <title>AuthenticationAgentResponse2 ()</title>
-+ <programlisting>
-+AuthenticationAgentResponse2 (IN uint32 uid,
-+ IN String cookie,
-+ IN <link linkend="eggdbus-struct-Identity">Identity</link> identity)
-+ </programlisting>
-+ <para>
-+Method for authentication agents to invoke on successful
-+authentication, intended only for use by a privileged helper process
-+internal to polkit. Note this method was introduced in 0.114 to fix a security issue.
- </para>
- <variablelist role="params">
-+ <varlistentry>
-+ <term><literal>IN uint32 <parameter>uid</parameter></literal>:</term>
-+ <listitem>
-+ <para>
-+The user id of the agent; normally this is the owner of the parent pid
-+of the process that invoked the internal setuid helper.
-+ </para>
-+ </listitem>
-+ </varlistentry>
- <varlistentry>
- <term><literal>IN String <parameter>cookie</parameter></literal>:</term>
- <listitem>
-diff --git a/docs/polkit/overview.xml b/docs/polkit/overview.xml
-index 24440d2ed03d..c29d8da242c6 100644
---- a/docs/polkit/overview.xml
-+++ b/docs/polkit/overview.xml
-@@ -66,16 +66,18 @@
- <para>
- Authentication agents are provided by desktop environments. When
- an user session starts, the agent registers with the polkit
-- Authority using
-- the <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent">RegisterAuthenticationAgent()</link>
-+ Authority using the <link
-+ linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent">RegisterAuthenticationAgent()</link>
- method. When services are needed, the authority will invoke
-- methods on
-- the <link linkend="eggdbus-interface-org.freedesktop.PolicyKit1.AuthenticationAgent">org.freedesktop.PolicyKit1.AuthenticationAgent</link>
-+ methods on the <link
-+ linkend="eggdbus-interface-org.freedesktop.PolicyKit1.AuthenticationAgent">org.freedesktop.PolicyKit1.AuthenticationAgent</link>
- D-Bus interface. Once the user is authenticated, (a privileged
-- part of) the agent invokes
-- the <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse">AuthenticationAgentResponse()</link>
-- method. Note that the polkit Authority itself does not care
-- how the agent authenticates the user.
-+ part of) the agent invokes the <link
-+ linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse">AuthenticationAgentResponse()</link>
-+ method. This method should be treated as an internal
-+ implementation detail, and callers should use the public shared
-+ library API to invoke it, which currently uses a setuid helper
-+ program.
- </para>
- <para>
- The <link linkend="ref-authentication-agent-api">libpolkit-agent-1</link>
-diff --git a/src/polkit/polkitauthority.c b/src/polkit/polkitauthority.c
-index 84dab72c6f0f..f45abc4ad946 100644
---- a/src/polkit/polkitauthority.c
-+++ b/src/polkit/polkitauthority.c
-@@ -1492,6 +1492,14 @@ polkit_authority_authentication_agent_response (PolkitAuthority *authority,
- gpointer user_data)
- {
- GVariant *identity_value;
-+ /* Note that in reality, this API is only accessible to root, and
-+ * only called from the setuid helper `polkit-agent-helper-1`.
-+ *
-+ * However, because this is currently public API, we avoid
-+ * triggering warnings from ABI diff type programs by just grabbing
-+ * the real uid of the caller here.
-+ */
-+ uid_t uid = getuid ();
-
- g_return_if_fail (POLKIT_IS_AUTHORITY (authority));
- g_return_if_fail (cookie != NULL);
-@@ -1501,8 +1509,9 @@ polkit_authority_authentication_agent_response (PolkitAuthority *authority,
- identity_value = polkit_identity_to_gvariant (identity);
- g_variant_ref_sink (identity_value);
- g_dbus_proxy_call (authority->proxy,
-- "AuthenticationAgentResponse",
-- g_variant_new ("(s@(sa{sv}))",
-+ "AuthenticationAgentResponse2",
-+ g_variant_new ("(us@(sa{sv}))",
-+ (guint32)uid,
- cookie,
- identity_value),
- G_DBUS_CALL_FLAGS_NONE,
-diff --git a/src/polkitbackend/polkitbackendauthority.c b/src/polkitbackend/polkitbackendauthority.c
-index fd4f161c3a61..d1b1a257e435 100644
---- a/src/polkitbackend/polkitbackendauthority.c
-+++ b/src/polkitbackend/polkitbackendauthority.c
-@@ -355,6 +355,7 @@ polkit_backend_authority_unregister_authentication_agent (PolkitBackendAuthority
- gboolean
- polkit_backend_authority_authentication_agent_response (PolkitBackendAuthority *authority,
- PolkitSubject *caller,
-+ uid_t uid,
- const gchar *cookie,
- PolkitIdentity *identity,
- GError **error)
-@@ -373,7 +374,7 @@ polkit_backend_authority_authentication_agent_response (PolkitBackendAuthority
- }
- else
- {
-- return klass->authentication_agent_response (authority, caller, cookie, identity, error);
-+ return klass->authentication_agent_response (authority, caller, uid, cookie, identity, error);
- }
- }
-
-@@ -587,6 +588,11 @@ static const gchar *server_introspection_data =
- " <arg type='s' name='cookie' direction='in'/>"
- " <arg type='(sa{sv})' name='identity' direction='in'/>"
- " </method>"
-+ " <method name='AuthenticationAgentResponse2'>"
-+ " <arg type='u' name='uid' direction='in'/>"
-+ " <arg type='s' name='cookie' direction='in'/>"
-+ " <arg type='(sa{sv})' name='identity' direction='in'/>"
-+ " </method>"
- " <method name='EnumerateTemporaryAuthorizations'>"
- " <arg type='(sa{sv})' name='subject' direction='in'/>"
- " <arg type='a(ss(sa{sv})tt)' name='temporary_authorizations' direction='out'/>"
-@@ -1035,6 +1041,57 @@ server_handle_authentication_agent_response (Server *server,
- error = NULL;
- if (!polkit_backend_authority_authentication_agent_response (server->authority,
- caller,
-+ (uid_t)-1,
-+ cookie,
-+ identity,
-+ &error))
-+ {
-+ g_dbus_method_invocation_return_gerror (invocation, error);
-+ g_error_free (error);
-+ goto out;
-+ }
-+
-+ g_dbus_method_invocation_return_value (invocation, g_variant_new ("()"));
-+
-+ out:
-+ if (identity != NULL)
-+ g_object_unref (identity);
-+}
-+
-+static void
-+server_handle_authentication_agent_response2 (Server *server,
-+ GVariant *parameters,
-+ PolkitSubject *caller,
-+ GDBusMethodInvocation *invocation)
-+{
-+ const gchar *cookie;
-+ GVariant *identity_gvariant;
-+ PolkitIdentity *identity;
-+ GError *error;
-+ guint32 uid;
-+
-+ identity = NULL;
-+
-+ g_variant_get (parameters,
-+ "(u&s@(sa{sv}))",
-+ &uid,
-+ &cookie,
-+ &identity_gvariant);
-+
-+ error = NULL;
-+ identity = polkit_identity_new_for_gvariant (identity_gvariant, &error);
-+ if (identity == NULL)
-+ {
-+ g_prefix_error (&error, "Error getting identity: ");
-+ g_dbus_method_invocation_return_gerror (invocation, error);
-+ g_error_free (error);
-+ goto out;
-+ }
-+
-+ error = NULL;
-+ if (!polkit_backend_authority_authentication_agent_response (server->authority,
-+ caller,
-+ (uid_t)uid,
- cookie,
- identity,
- &error))
-@@ -1222,6 +1279,8 @@ server_handle_method_call (GDBusConnection *connection,
- server_handle_unregister_authentication_agent (server, parameters, caller, invocation);
- else if (g_strcmp0 (method_name, "AuthenticationAgentResponse") == 0)
- server_handle_authentication_agent_response (server, parameters, caller, invocation);
-+ else if (g_strcmp0 (method_name, "AuthenticationAgentResponse2") == 0)
-+ server_handle_authentication_agent_response2 (server, parameters, caller, invocation);
- else if (g_strcmp0 (method_name, "EnumerateTemporaryAuthorizations") == 0)
- server_handle_enumerate_temporary_authorizations (server, parameters, caller, invocation);
- else if (g_strcmp0 (method_name, "RevokeTemporaryAuthorizations") == 0)
-diff --git a/src/polkitbackend/polkitbackendauthority.h b/src/polkitbackend/polkitbackendauthority.h
-index a564054f433a..1c212e0d4937 100644
---- a/src/polkitbackend/polkitbackendauthority.h
-+++ b/src/polkitbackend/polkitbackendauthority.h
-@@ -154,6 +154,7 @@ struct _PolkitBackendAuthorityClass
-
- gboolean (*authentication_agent_response) (PolkitBackendAuthority *authority,
- PolkitSubject *caller,
-+ uid_t uid,
- const gchar *cookie,
- PolkitIdentity *identity,
- GError **error);
-@@ -256,6 +257,7 @@ gboolean polkit_backend_authority_unregister_authentication_agent (PolkitBackend
-
- gboolean polkit_backend_authority_authentication_agent_response (PolkitBackendAuthority *authority,
- PolkitSubject *caller,
-+ uid_t uid,
- const gchar *cookie,
- PolkitIdentity *identity,
- GError **error);
-diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c
-index 10eda2c7fb36..5e29af2c83ce 100644
---- a/src/polkitbackend/polkitbackendinteractiveauthority.c
-+++ b/src/polkitbackend/polkitbackendinteractiveauthority.c
-@@ -106,8 +106,9 @@ static AuthenticationAgent *get_authentication_agent_for_subject (PolkitBackendI
- PolkitSubject *subject);
-
-
--static AuthenticationSession *get_authentication_session_for_cookie (PolkitBackendInteractiveAuthority *authority,
-- const gchar *cookie);
-+static AuthenticationSession *get_authentication_session_for_uid_and_cookie (PolkitBackendInteractiveAuthority *authority,
-+ uid_t uid,
-+ const gchar *cookie);
-
- static GList *get_authentication_sessions_initiated_by_system_bus_unique_name (PolkitBackendInteractiveAuthority *authority,
- const gchar *system_bus_unique_name);
-@@ -167,6 +168,7 @@ static gboolean polkit_backend_interactive_authority_unregister_authentication_a
-
- static gboolean polkit_backend_interactive_authority_authentication_agent_response (PolkitBackendAuthority *authority,
- PolkitSubject *caller,
-+ uid_t uid,
- const gchar *cookie,
- PolkitIdentity *identity,
- GError **error);
-@@ -431,6 +433,7 @@ struct AuthenticationAgent
- {
- volatile gint ref_count;
-
-+ uid_t creator_uid;
- PolkitSubject *scope;
- guint64 serial;
-
-@@ -1603,6 +1606,7 @@ authentication_agent_unref (AuthenticationAgent *agent)
- static AuthenticationAgent *
- authentication_agent_new (guint64 serial,
- PolkitSubject *scope,
-+ PolkitIdentity *creator,
- const gchar *unique_system_bus_name,
- const gchar *locale,
- const gchar *object_path,
-@@ -1611,6 +1615,10 @@ authentication_agent_new (guint64 serial,
- {
- AuthenticationAgent *agent;
- GDBusProxy *proxy;
-+ PolkitUnixUser *creator_user;
-+
-+ g_assert (POLKIT_IS_UNIX_USER (creator));
-+ creator_user = POLKIT_UNIX_USER (creator);
-
- if (!g_variant_is_object_path (object_path))
- {
-@@ -1638,6 +1646,7 @@ authentication_agent_new (guint64 serial,
- agent->ref_count = 1;
- agent->serial = serial;
- agent->scope = g_object_ref (scope);
-+ agent->creator_uid = (uid_t)polkit_unix_user_get_uid (creator_user);
- agent->object_path = g_strdup (object_path);
- agent->unique_system_bus_name = g_strdup (unique_system_bus_name);
- agent->locale = g_strdup (locale);
-@@ -1736,8 +1745,9 @@ get_authentication_agent_for_subject (PolkitBackendInteractiveAuthority *authori
- }
-
- static AuthenticationSession *
--get_authentication_session_for_cookie (PolkitBackendInteractiveAuthority *authority,
-- const gchar *cookie)
-+get_authentication_session_for_uid_and_cookie (PolkitBackendInteractiveAuthority *authority,
-+ uid_t uid,
-+ const gchar *cookie)
- {
- PolkitBackendInteractiveAuthorityPrivate *priv;
- GHashTableIter hash_iter;
-@@ -1755,6 +1765,23 @@ get_authentication_session_for_cookie (PolkitBackendInteractiveAuthority *author
- {
- GList *l;
-
-+ /* We need to ensure that if somehow we have duplicate cookies
-+ * due to wrapping, that the cookie used is matched to the user
-+ * who called AuthenticationAgentResponse2. See
-+ * http://lists.freedesktop.org/archives/polkit-devel/2015-June/000425.html
-+ *
-+ * Except if the legacy AuthenticationAgentResponse is invoked,
-+ * we don't know the uid and hence use -1. Continue to support
-+ * the old behavior for backwards compatibility, although everyone
-+ * who is using our own setuid helper will automatically be updated
-+ * to the new API.
-+ */
-+ if (uid != (uid_t)-1)
-+ {
-+ if (agent->creator_uid != uid)
-+ continue;
-+ }
-+
- for (l = agent->active_sessions; l != NULL; l = l->next)
- {
- AuthenticationSession *session = l->data;
-@@ -2388,6 +2415,7 @@ polkit_backend_interactive_authority_register_authentication_agent (PolkitBacken
- priv->agent_serial++;
- agent = authentication_agent_new (priv->agent_serial,
- subject,
-+ user_of_caller,
- polkit_system_bus_name_get_name (POLKIT_SYSTEM_BUS_NAME (caller)),
- locale,
- object_path,
-@@ -2601,6 +2629,7 @@ polkit_backend_interactive_authority_unregister_authentication_agent (PolkitBack
- static gboolean
- polkit_backend_interactive_authority_authentication_agent_response (PolkitBackendAuthority *authority,
- PolkitSubject *caller,
-+ uid_t uid,
- const gchar *cookie,
- PolkitIdentity *identity,
- GError **error)
-@@ -2643,7 +2672,7 @@ polkit_backend_interactive_authority_authentication_agent_response (PolkitBacken
- }
-
- /* find the authentication session */
-- session = get_authentication_session_for_cookie (interactive_authority, cookie);
-+ session = get_authentication_session_for_uid_and_cookie (interactive_authority, uid, cookie);
- if (session == NULL)
- {
- g_set_error (error,
diff --git a/patches/polkit-0.105/0029-0.113-docs-Update-for-changes-to-uid-binding-Authent.patch b/patches/polkit-0.105/0029-0.113-docs-Update-for-changes-to-uid-binding-Authent.patch
deleted file mode 100644
index ff1e8bd29..000000000
--- a/patches/polkit-0.105/0029-0.113-docs-Update-for-changes-to-uid-binding-Authent.patch
+++ /dev/null
@@ -1,264 +0,0 @@
-From: =?UTF-8?q?Miloslav=20Trma=C4=8D?= <mitr@redhat.com>
-Date: Wed, 17 Jun 2015 01:01:27 +0200
-Subject: [PATCH] 0.113: docs: Update for changes to uid
- binding/AuthenticationAgentResponse2
-
- - Refer to PolkitAgentSession in general instead of to _response only
- - Revert to the original description of authentication cancellation, the
- agent really needs to return an error to the caller (in addition to dealing
- with the session if any).
- - Explicitly document the UID assumption; in the process fixing bug #69980.
- - Keep documenting that we need a sufficiently privileged caller.
- - Refer to the ...Response2 API in more places.
- - Also update docbook documentation.
- - Drop a paragraph suggesting non-PolkitAgentSession implementations are
- expected and commonplace.
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=90837
-Reviewed-by: Colin Walters <walters@redhat.com>
-Origin: upstream, 0.113, commit:fb5076b7c05d01a532d593a4079a29cf2d63a228
-Bug-Debian: https://bugs.debian.org/796134
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- ...desktop.PolicyKit1.AuthenticationAgent.xml | 6 ++---
- data/org.freedesktop.PolicyKit1.Authority.xml | 11 +++++----
- ...desktop.PolicyKit1.AuthenticationAgent.xml | 7 ++++--
- ...e-org.freedesktop.PolicyKit1.Authority.xml | 12 ++++++----
- docs/polkit/overview.xml | 8 +++----
- src/polkit/polkitauthority.c | 24 +++++++++++++++++--
- src/polkitagent/polkitagentlistener.c | 5 +---
- src/polkitbackend/polkitbackendauthority.c | 1 +
- 8 files changed, 51 insertions(+), 23 deletions(-)
-
-diff --git a/data/org.freedesktop.PolicyKit1.AuthenticationAgent.xml b/data/org.freedesktop.PolicyKit1.AuthenticationAgent.xml
-index 5beef7d4ef92..482332f6fc35 100644
---- a/data/org.freedesktop.PolicyKit1.AuthenticationAgent.xml
-+++ b/data/org.freedesktop.PolicyKit1.AuthenticationAgent.xml
-@@ -13,14 +13,14 @@
- user to authenticate as one of the identities in @identities for
- the action with the identifier @action_id.</para><para>This
- authentication is normally achieved via the
-- polkit_agent_session_response() API, which invokes a private
-+ PolkitAgentSession API, which invokes a private
- setuid helper process to verify the authentication. When
- successful, it calls the
- org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse2()
- method on the #org.freedesktop.PolicyKit1.Authority interface of
- the PolicyKit daemon before returning. If the user dismisses the
-- authentication dialog, the authentication agent should call
-- polkit_agent_session_cancel().</para>"/>
-+ authentication dialog, the authentication agent should return an
-+ error.</para>"/>
-
- <arg name="action_id" direction="in" type="s">
- <annotation name="org.gtk.EggDBus.DocString" value="The identifier for the action that the user is authentication for."/>
-diff --git a/data/org.freedesktop.PolicyKit1.Authority.xml b/data/org.freedesktop.PolicyKit1.Authority.xml
-index f9021ee2e7c8..88da3c052cbe 100644
---- a/data/org.freedesktop.PolicyKit1.Authority.xml
-+++ b/data/org.freedesktop.PolicyKit1.Authority.xml
-@@ -283,7 +283,7 @@
- <!-- ---------------------------------------------------------------------------------------------------- -->
-
- <method name="RegisterAuthenticationAgent">
-- <annotation name="org.gtk.EggDBus.DocString" value="<para>Register an authentication agent.</para><para>Note that current versions of PolicyKit will only work if @session_id is set to the empty string. In the future it might work for non-empty strings if the caller is sufficiently privileged.</para>"/>
-+ <annotation name="org.gtk.EggDBus.DocString" value="<para>Register an authentication agent.</para><para>Note that this should be called by the same effective UID which will be passed to org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse2().</para>"/>
-
- <arg name="subject" direction="in" type="(sa{sv})">
- <annotation name="org.gtk.EggDBus.Type" value="Subject"/>
-@@ -315,7 +315,8 @@
- <method name="AuthenticationAgentResponse">
- <annotation name="org.gtk.EggDBus.DocString" value="Method for authentication agents to invoke on successful
- authentication, intended only for use by a privileged helper process
--internal to polkit."/>
-+internal to polkit. This method will fail unless a sufficiently privileged
-+caller invokes it. Deprecated in favor of org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse2."/>
-
- <arg name="cookie" direction="in" type="s">
- <annotation name="org.gtk.EggDBus.DocString" value="The cookie identifying the authentication request that was passed to the authentication agent."/>
-@@ -330,11 +331,13 @@ internal to polkit."/>
- <method name="AuthenticationAgentResponse2">
- <annotation name="org.gtk.EggDBus.DocString" value="Method for authentication agents to invoke on successful
- authentication, intended only for use by a privileged helper process
--internal to polkit. Note this method was added in 0.114, and should be preferred over AuthenticationAgentResponse
-+internal to polkit. This method will fail unless a sufficiently privileged
-+caller invokes it. Note this method was added in 0.114, and should be preferred over org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse()
- as it fixes a security issue."/>
-
- <arg name="uid" direction="in" type="u">
-- <annotation name="org.gtk.EggDBus.DocString" value="The real uid of the agent. Normally set by the setuid helper program."/>
-+ <annotation name="org.gtk.EggDBus.DocString" value="The real uid of the agent. Normally set by the setuid helper program.
-+Must match the effective UID of the caller of org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent()."/>
- </arg>
-
- <arg name="cookie" direction="in" type="s">
-diff --git a/docs/polkit/docbook-interface-org.freedesktop.PolicyKit1.AuthenticationAgent.xml b/docs/polkit/docbook-interface-org.freedesktop.PolicyKit1.AuthenticationAgent.xml
-index ec596268cc3c..ab27b2f6638c 100644
---- a/docs/polkit/docbook-interface-org.freedesktop.PolicyKit1.AuthenticationAgent.xml
-+++ b/docs/polkit/docbook-interface-org.freedesktop.PolicyKit1.AuthenticationAgent.xml
-@@ -47,10 +47,13 @@ BeginAuthentication (IN String action_id,
- identifier <parameter>action_id</parameter>.</para><para>Upon
- succesful authentication, the authentication agent must invoke
- the <link
-- linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse">AuthenticationAgentResponse()</link>
-+ linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse2">AuthenticationAgentResponse2()</link>
- method on the <link
- linkend="eggdbus-interface-org.freedesktop.PolicyKit1.Authority">org.freedesktop.PolicyKit1.Authority</link>
-- interface of the PolicyKit daemon before returning.
-+ interface of the PolicyKit daemon before returning. This is normally
-+ achieved via the <link linkend="PolkitAgentSession">PolkitAgentSession</link>
-+ API, which invokes a private setuid helper process to verify the
-+ authentication.
- </para>
- <para>
- The authentication agent should not return until after authentication is complete.
-diff --git a/docs/polkit/docbook-interface-org.freedesktop.PolicyKit1.Authority.xml b/docs/polkit/docbook-interface-org.freedesktop.PolicyKit1.Authority.xml
-index e66bf5349c61..f2eed63999de 100644
---- a/docs/polkit/docbook-interface-org.freedesktop.PolicyKit1.Authority.xml
-+++ b/docs/polkit/docbook-interface-org.freedesktop.PolicyKit1.Authority.xml
-@@ -42,7 +42,7 @@ Structure <link linkend="eggdbus-struct-TemporaryAuthorization">TemporaryAuth
- IN String object_path)
- <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse">AuthenticationAgentResponse</link> (IN String cookie,
- IN <link linkend="eggdbus-struct-Identity">Identity</link> identity)
--<link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse">AuthenticationAgentResponse2</link> (IN uint32 uid, IN String cookie,
-+<link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse2">AuthenticationAgentResponse2</link> (IN uint32 uid, IN String cookie,
- IN <link linkend="eggdbus-struct-Identity">Identity</link> identity)
- <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.EnumerateTemporaryAuthorizations">EnumerateTemporaryAuthorizations</link> (IN <link linkend="eggdbus-struct-Subject">Subject</link> subject,
- OUT Array&lt;<link linkend="eggdbus-struct-TemporaryAuthorization">TemporaryAuthorization</link>&gt; temporary_authorizations)
-@@ -701,7 +701,7 @@ RegisterAuthenticationAgent (IN <link linkend="eggdbus-struct-Subject">Subject<
- IN String object_path)
- </programlisting>
- <para>
--<para>Register an authentication agent.</para><para>Note that current versions of PolicyKit will only work if <parameter>session_id</parameter> is set to the empty string. In the future it might work for non-empty strings if the caller is sufficiently privileged.</para>
-+<para>Register an authentication agent.</para><para>Note that this should be called by same effective UID which will be passed to <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse2">AuthenticationAgentResponse2()</link>.</para>
- </para>
- <variablelist role="params">
- <varlistentry>
-@@ -781,7 +781,8 @@ AuthenticationAgentResponse (IN String cookie,
- <para>
- Method for authentication agents to invoke on successful
- authentication, intended only for use by a privileged helper process
--internal to polkit. Deprecated in favor of AuthenticationAgentResponse2.
-+internal to polkit. This method will fail unless a sufficiently privileged
-++caller invokes it. Deprecated in favor of <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse2">AuthenticationAgentResponse2()</link>.
- </para>
- <variablelist role="params">
- <varlistentry>
-@@ -812,7 +813,10 @@ AuthenticationAgentResponse2 (IN uint32 uid,
- <para>
- Method for authentication agents to invoke on successful
- authentication, intended only for use by a privileged helper process
--internal to polkit. Note this method was introduced in 0.114 to fix a security issue.
-+internal to polkit. This method will fail unless a sufficiently privileged
-+caller invokes it. Note this method was introduced in 0.114 and should be
-+preferred over <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse">AuthenticationAgentResponse()</link>
-+as it fixes a security issue.
- </para>
- <variablelist role="params">
- <varlistentry>
-diff --git a/docs/polkit/overview.xml b/docs/polkit/overview.xml
-index c29d8da242c6..8ddb34ccb1de 100644
---- a/docs/polkit/overview.xml
-+++ b/docs/polkit/overview.xml
-@@ -73,11 +73,11 @@
- linkend="eggdbus-interface-org.freedesktop.PolicyKit1.AuthenticationAgent">org.freedesktop.PolicyKit1.AuthenticationAgent</link>
- D-Bus interface. Once the user is authenticated, (a privileged
- part of) the agent invokes the <link
-- linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse">AuthenticationAgentResponse()</link>
-+ linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.AuthenticationAgentResponse2">AuthenticationAgentResponse2()</link>
- method. This method should be treated as an internal
-- implementation detail, and callers should use the public shared
-- library API to invoke it, which currently uses a setuid helper
-- program.
-+ implementation detail, and callers should use the
-+ <link linkend="PolkitAgentSession">PolkitAgentSession</link> API to invoke
-+ it, which currently uses a setuid helper program.
- </para>
- <para>
- The <link linkend="ref-authentication-agent-api">libpolkit-agent-1</link>
-diff --git a/src/polkit/polkitauthority.c b/src/polkit/polkitauthority.c
-index f45abc4ad946..4e882e6412ea 100644
---- a/src/polkit/polkitauthority.c
-+++ b/src/polkit/polkitauthority.c
-@@ -1038,6 +1038,10 @@ polkit_authority_check_authorization_sync (PolkitAuthority *author
- *
- * Asynchronously registers an authentication agent.
- *
-+ * Note that this should be called by the same effective UID which will be
-+ * the real UID using the #PolkitAgentSession API or otherwise calling
-+ * polkit_authority_authentication_agent_response().
-+ *
- * When the operation is finished, @callback will be invoked in the
- * <link linkend="g-main-context-push-thread-default">thread-default
- * main loop</link> of the thread you are calling this method
-@@ -1129,7 +1133,13 @@ polkit_authority_register_authentication_agent_finish (PolkitAuthority *authorit
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: (allow-none): Return location for error or %NULL.
- *
-- * Registers an authentication agent. The calling thread is blocked
-+ * Registers an authentication agent.
-+ *
-+ * Note that this should be called by the same effective UID which will be
-+ * the real UID using the #PolkitAgentSession API or otherwise calling
-+ * polkit_authority_authentication_agent_response().
-+ *
-+ * The calling thread is blocked
- * until a reply is received. See
- * polkit_authority_register_authentication_agent() for the
- * asynchronous version.
-@@ -1178,6 +1188,10 @@ polkit_authority_register_authentication_agent_sync (PolkitAuthority *author
- *
- * Asynchronously registers an authentication agent.
- *
-+ * Note that this should be called by the same effective UID which will be
-+ * the real UID using the #PolkitAgentSession API or otherwise calling
-+ * polkit_authority_authentication_agent_response().
-+ *
- * When the operation is finished, @callback will be invoked in the
- * <link linkend="g-main-context-push-thread-default">thread-default
- * main loop</link> of the thread you are calling this method
-@@ -1292,7 +1306,13 @@ polkit_authority_register_authentication_agent_with_options_finish (PolkitAuthor
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: (allow-none): Return location for error or %NULL.
- *
-- * Registers an authentication agent. The calling thread is blocked
-+ * Registers an authentication agent.
-+ *
-+ * Note that this should be called by the same effective UID which will be
-+ * the real UID using the #PolkitAgentSession API or otherwise calling
-+ * polkit_authority_authentication_agent_response().
-+ *
-+ * The calling thread is blocked
- * until a reply is received. See
- * polkit_authority_register_authentication_agent_with_options() for the
- * asynchronous version.
-diff --git a/src/polkitagent/polkitagentlistener.c b/src/polkitagent/polkitagentlistener.c
-index 0d97501a028c..10dbfb9c0d4e 100644
---- a/src/polkitagent/polkitagentlistener.c
-+++ b/src/polkitagent/polkitagentlistener.c
-@@ -37,10 +37,7 @@
- *
- * Typically authentication agents use #PolkitAgentSession to
- * authenticate users (via passwords) and communicate back the
-- * authentication result to the PolicyKit daemon. This is however not
-- * requirement. Depending on the system an authentication agent may
-- * use other means (such as a Yes/No dialog) to obtain sufficient
-- * evidence that the user is one of the requested identities.
-+ * authentication result to the PolicyKit daemon.
- *
- * To register a #PolkitAgentListener with the PolicyKit daemon, use
- * polkit_agent_listener_register() or
-diff --git a/src/polkitbackend/polkitbackendauthority.c b/src/polkitbackend/polkitbackendauthority.c
-index d1b1a257e435..10b8af34205c 100644
---- a/src/polkitbackend/polkitbackendauthority.c
-+++ b/src/polkitbackend/polkitbackendauthority.c
-@@ -343,6 +343,7 @@ polkit_backend_authority_unregister_authentication_agent (PolkitBackendAuthority
- * polkit_backend_authority_authentication_agent_response:
- * @authority: A #PolkitBackendAuthority.
- * @caller: The system bus name that initiated the query.
-+ * @uid: The real UID of the registered agent, or (uid_t)-1 if unknown.
- * @cookie: The cookie passed to the authentication agent from the authority.
- * @identity: The identity that was authenticated.
- * @error: Return location for error or %NULL.
diff --git a/patches/polkit-0.105/0030-0.113-Fix-a-per-authorization-memory-leak.patch b/patches/polkit-0.105/0030-0.113-Fix-a-per-authorization-memory-leak.patch
deleted file mode 100644
index a3428746e..000000000
--- a/patches/polkit-0.105/0030-0.113-Fix-a-per-authorization-memory-leak.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From: =?UTF-8?q?Miloslav=20Trma=C4=8D?= <mitr@redhat.com>
-Date: Tue, 1 Jul 2014 20:00:48 +0200
-Subject: [PATCH] 0.113: Fix a per-authorization memory leak
-
-We were leaking PolkitAuthorizationResult on every request, primarily on
-the success path, but also on various error paths as well.
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=69501
-Origin: upstream, 0.113, commit:0f5852a4bdabe377ddcdbed09a0c1f95710e17fe
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkitbackend/polkitbackendauthority.c | 1 +
- src/polkitbackend/polkitbackendinteractiveauthority.c | 5 ++++-
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/src/polkitbackend/polkitbackendauthority.c b/src/polkitbackend/polkitbackendauthority.c
-index 10b8af34205c..39eb5b9d29fa 100644
---- a/src/polkitbackend/polkitbackendauthority.c
-+++ b/src/polkitbackend/polkitbackendauthority.c
-@@ -714,6 +714,7 @@ check_auth_cb (GObject *source_object,
- g_variant_ref_sink (value);
- g_dbus_method_invocation_return_value (data->invocation, g_variant_new ("(@(bba{ss}))", value));
- g_variant_unref (value);
-+ g_object_unref (result);
- }
-
- check_auth_data_free (data);
-diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c
-index 5e29af2c83ce..73d0a0e29e24 100644
---- a/src/polkitbackend/polkitbackendinteractiveauthority.c
-+++ b/src/polkitbackend/polkitbackendinteractiveauthority.c
-@@ -1015,7 +1015,7 @@ polkit_backend_interactive_authority_check_authorization (PolkitBackendAuthority
-
- /* Otherwise just return the result */
- g_simple_async_result_set_op_res_gpointer (simple,
-- result,
-+ g_object_ref (result),
- g_object_unref);
- g_simple_async_result_complete (simple);
- g_object_unref (simple);
-@@ -1032,6 +1032,9 @@ polkit_backend_interactive_authority_check_authorization (PolkitBackendAuthority
- g_free (subject_str);
- g_free (user_of_caller_str);
- g_free (user_of_subject_str);
-+
-+ if (result != NULL)
-+ g_object_unref (result);
- }
-
- /* ---------------------------------------------------------------------------------------------------- */
diff --git a/patches/polkit-0.105/0031-0.113-Fix-a-memory-leak-when-registering-an-authenti.patch b/patches/polkit-0.105/0031-0.113-Fix-a-memory-leak-when-registering-an-authenti.patch
deleted file mode 100644
index aa649cf24..000000000
--- a/patches/polkit-0.105/0031-0.113-Fix-a-memory-leak-when-registering-an-authenti.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From: =?UTF-8?q?Miloslav=20Trma=C4=8D?= <mitr@redhat.com>
-Date: Tue, 1 Jul 2014 20:00:48 +0200
-Subject: [PATCH] 0.113: Fix a memory leak when registering an authentication
- agent
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=69501
-Origin: upstream, 0.113, commit:ec039f9d7ede5b839f5511e26d5cd6ae9107cb2e
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkitbackend/polkitbackendauthority.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/polkitbackend/polkitbackendauthority.c b/src/polkitbackend/polkitbackendauthority.c
-index 39eb5b9d29fa..afe5b90c140e 100644
---- a/src/polkitbackend/polkitbackendauthority.c
-+++ b/src/polkitbackend/polkitbackendauthority.c
-@@ -900,6 +900,7 @@ server_handle_register_authentication_agent (Server *server,
- g_dbus_method_invocation_return_value (invocation, g_variant_new ("()"));
-
- out:
-+ g_variant_unref (subject_gvariant);
- if (subject != NULL)
- g_object_unref (subject);
- }
diff --git a/patches/polkit-0.105/0032-0.113-CVE-2015-3255-Fix-GHashTable-usage.patch b/patches/polkit-0.105/0032-0.113-CVE-2015-3255-Fix-GHashTable-usage.patch
deleted file mode 100644
index 9303bf791..000000000
--- a/patches/polkit-0.105/0032-0.113-CVE-2015-3255-Fix-GHashTable-usage.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From: =?UTF-8?q?Miloslav=20Trma=C4=8D?= <mitr@redhat.com>
-Date: Wed, 1 Apr 2015 05:22:37 +0200
-Subject: [PATCH] 0.113: CVE-2015-3255 Fix GHashTable usage.
-
-Don't assume that the hash table with free both the key and the value
-at the same time, supply proper deallocation functions for the key
-and value separately.
-
-Then drop ParsedAction::action_id which is no longer used for anything.
-
-https://bugs.freedesktop.org/show_bug.cgi?id=69501
-and
-https://bugs.freedesktop.org/show_bug.cgi?id=83590
-
-CVE: CVE-2015-3255
-Origin: upstream, 0.113, commit:9f5e0c731784003bd4d6fc75ab739ff8b2ea269f
-Bug-Debian: https://bugs.debian.org/796134
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkitbackend/polkitbackendactionpool.c | 8 +++-----
- 1 file changed, 3 insertions(+), 5 deletions(-)
-
-diff --git a/src/polkitbackend/polkitbackendactionpool.c b/src/polkitbackend/polkitbackendactionpool.c
-index e3ed38d4a81e..4270d4ed2b41 100644
---- a/src/polkitbackend/polkitbackendactionpool.c
-+++ b/src/polkitbackend/polkitbackendactionpool.c
-@@ -40,7 +40,6 @@
-
- typedef struct
- {
-- gchar *action_id;
- gchar *vendor_name;
- gchar *vendor_url;
- gchar *icon_name;
-@@ -62,7 +61,6 @@ typedef struct
- static void
- parsed_action_free (ParsedAction *action)
- {
-- g_free (action->action_id);
- g_free (action->vendor_name);
- g_free (action->vendor_url);
- g_free (action->icon_name);
-@@ -134,7 +132,7 @@ polkit_backend_action_pool_init (PolkitBackendActionPool *pool)
-
- priv->parsed_actions = g_hash_table_new_full (g_str_hash,
- g_str_equal,
-- NULL,
-+ g_free,
- (GDestroyNotify) parsed_action_free);
-
- priv->parsed_files = g_hash_table_new_full (g_str_hash,
-@@ -988,7 +986,6 @@ _end (void *data, const char *el)
- icon_name = pd->global_icon_name;
-
- action = g_new0 (ParsedAction, 1);
-- action->action_id = g_strdup (pd->action_id);
- action->vendor_name = g_strdup (vendor);
- action->vendor_url = g_strdup (vendor_url);
- action->icon_name = g_strdup (icon_name);
-@@ -1003,7 +1000,8 @@ _end (void *data, const char *el)
- action->implicit_authorization_inactive = pd->implicit_authorization_inactive;
- action->implicit_authorization_active = pd->implicit_authorization_active;
-
-- g_hash_table_insert (priv->parsed_actions, action->action_id, action);
-+ g_hash_table_insert (priv->parsed_actions, g_strdup (pd->action_id),
-+ action);
-
- /* we steal these hash tables */
- pd->annotations = NULL;
diff --git a/patches/polkit-0.105/0033-0.113-Fix-use-after-free-in-polkitagentsession.c.patch b/patches/polkit-0.105/0033-0.113-Fix-use-after-free-in-polkitagentsession.c.patch
deleted file mode 100644
index ee35b7cb2..000000000
--- a/patches/polkit-0.105/0033-0.113-Fix-use-after-free-in-polkitagentsession.c.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From: =?UTF-8?q?Miloslav=20Trma=C4=8D?= <mitr@redhat.com>
-Date: Tue, 14 Apr 2015 22:27:41 +0200
-Subject: [PATCH] 0.113: Fix use-after-free in polkitagentsession.c
-
-PolkitAgentTextListener's "completed" handler drops the last reference
-to the session; in fact this is explicitly recommended in the signal's
-documentation. So we must not access any members of session after
-emitting the signal.
-
-Found while dealing with
-https://bugs.freedesktop.org/show_bug.cgi?id=69501
-
-Origin: upstream, 0.113, commit:efb6cd56a423ba15bb1f44ee3c4987aad5a5fd45
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkitagent/polkitagentsession.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/polkitagent/polkitagentsession.c b/src/polkitagent/polkitagentsession.c
-index 6a3d6bc94c49..46fbaf06f469 100644
---- a/src/polkitagent/polkitagentsession.c
-+++ b/src/polkitagent/polkitagentsession.c
-@@ -412,8 +412,9 @@ complete_session (PolkitAgentSession *session,
- {
- if (G_UNLIKELY (_show_debug ()))
- g_print ("PolkitAgentSession: emitting ::completed(%s)\n", result ? "TRUE" : "FALSE");
-- g_signal_emit_by_name (session, "completed", result);
- session->have_emitted_completed = TRUE;
-+ /* Note that the signal handler may drop the last reference to session. */
-+ g_signal_emit_by_name (session, "completed", result);
- }
- }
-
diff --git a/patches/polkit-0.105/0034-0.114-Fix-multi-line-pam-text-info.patch b/patches/polkit-0.105/0034-0.114-Fix-multi-line-pam-text-info.patch
deleted file mode 100644
index 5c51de5a7..000000000
--- a/patches/polkit-0.105/0034-0.114-Fix-multi-line-pam-text-info.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From: Dariusz Gadomski <dariusz.gadomski@canonical.com>
-Date: Tue, 10 Nov 2015 10:52:02 +0100
-Subject: [PATCH] 0.114: Fix multi-line pam text info.
-
-There are pam modules (e.g. pam_vas) that may attempt to display multi-line
-PAM_TEXT_INFO messages. Polkit was interpreting the lines after the first one
-as a separate message that was not recognized causing the authorization
-to fail. Escaping these strings and unescaping them fixes the issue.
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=92886
-Origin: upstream, 0.114, commit:10597322eccc320f9053821750ae9af51e918d74
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkitagent/polkitagenthelper-pam.c | 13 +++++++++----
- 1 file changed, 9 insertions(+), 4 deletions(-)
-
-diff --git a/src/polkitagent/polkitagenthelper-pam.c b/src/polkitagent/polkitagenthelper-pam.c
-index 19062aa8d0da..063d656dcbef 100644
---- a/src/polkitagent/polkitagenthelper-pam.c
-+++ b/src/polkitagent/polkitagenthelper-pam.c
-@@ -302,10 +302,15 @@ conversation_function (int n, const struct pam_message **msg, struct pam_respons
- case PAM_TEXT_INFO:
- fprintf (stdout, "PAM_TEXT_INFO ");
- conv2:
-- fputs (msg[i]->msg, stdout);
-- if (strlen (msg[i]->msg) > 0 &&
-- msg[i]->msg[strlen (msg[i]->msg) - 1] != '\n')
-- fputc ('\n', stdout);
-+ tmp = g_strdup (msg[i]->msg);
-+ len = strlen (tmp);
-+ if (len > 0 && tmp[len - 1] == '\n')
-+ tmp[len - 1] = '\0';
-+ escaped = g_strescape (tmp, NULL);
-+ g_free (tmp);
-+ fputs (escaped, stdout);
-+ g_free (escaped);
-+ fputc ('\n', stdout);
- fflush (stdout);
- break;
-
diff --git a/patches/polkit-0.105/0035-0.114-Refactor-send_to_helper-usage.patch b/patches/polkit-0.105/0035-0.114-Refactor-send_to_helper-usage.patch
deleted file mode 100644
index 8be72ef26..000000000
--- a/patches/polkit-0.105/0035-0.114-Refactor-send_to_helper-usage.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-From: Dariusz Gadomski <dariusz.gadomski@canonical.com>
-Date: Thu, 12 Nov 2015 15:01:19 +0100
-Subject: [PATCH] 0.114: Refactor send_to_helper usage
-
-There were duplicated pieces of code detecting EOLs and escaping the code.
-Those actions has been delegated to already-existing send_to_helper function.
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=92886
-Origin: upstream, 0.114, commit:2690cd0312b310946c86674c8dd1f55c63f7dd6a
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkitagent/polkitagenthelper-pam.c | 81 ++++++++-----------------
- 1 file changed, 26 insertions(+), 55 deletions(-)
-
-diff --git a/src/polkitagent/polkitagenthelper-pam.c b/src/polkitagent/polkitagenthelper-pam.c
-index 063d656dcbef..3ea3a3f2e801 100644
---- a/src/polkitagent/polkitagenthelper-pam.c
-+++ b/src/polkitagent/polkitagenthelper-pam.c
-@@ -39,25 +39,35 @@ static void
- send_to_helper (const gchar *str1,
- const gchar *str2)
- {
-+ char *escaped;
-+ char *tmp2;
-+ size_t len2;
-+
-+ tmp2 = g_strdup(str2);
-+ len2 = strlen(tmp2);
- #ifdef PAH_DEBUG
-- fprintf (stderr, "polkit-agent-helper-1: writing `%s' to stdout\n", str1);
-+ fprintf (stderr, "polkit-agent-helper-1: writing `%s ' to stdout\n", str1);
- #endif /* PAH_DEBUG */
-- fprintf (stdout, "%s", str1);
-+ fprintf (stdout, "%s ", str1);
-+
-+ if (len2 > 0 && tmp2[len2 - 1] == '\n')
-+ tmp2[len2 - 1] = '\0';
-+ escaped = g_strescape (tmp2, NULL);
- #ifdef PAH_DEBUG
-- fprintf (stderr, "polkit-agent-helper-1: writing `%s' to stdout\n", str2);
-+ fprintf (stderr, "polkit-agent-helper-1: writing `%s' to stdout\n", escaped);
- #endif /* PAH_DEBUG */
-- fprintf (stdout, "%s", str2);
-- if (strlen (str2) > 0 && str2[strlen (str2) - 1] != '\n')
-- {
-+ fprintf (stdout, "%s", escaped);
- #ifdef PAH_DEBUG
-- fprintf (stderr, "polkit-agent-helper-1: writing newline to stdout\n");
-+ fprintf (stderr, "polkit-agent-helper-1: writing newline to stdout\n");
- #endif /* PAH_DEBUG */
-- fputc ('\n', stdout);
-- }
-+ fputc ('\n', stdout);
- #ifdef PAH_DEBUG
- fprintf (stderr, "polkit-agent-helper-1: flushing stdout\n");
- #endif /* PAH_DEBUG */
- fflush (stdout);
-+
-+ g_free (escaped);
-+ g_free (tmp2);
- }
-
- int
-@@ -89,7 +99,7 @@ main (int argc, char *argv[])
-
- /* Special-case a very common error triggered in jhbuild setups */
- s = g_strdup_printf ("Incorrect permissions on %s (needs to be setuid root)", argv[0]);
-- send_to_helper ("PAM_ERROR_MSG ", s);
-+ send_to_helper ("PAM_ERROR_MSG", s);
- g_free (s);
- goto error;
- }
-@@ -232,9 +242,6 @@ conversation_function (int n, const struct pam_message **msg, struct pam_respons
- struct pam_response *aresp;
- char buf[PAM_MAX_RESP_SIZE];
- int i;
-- gchar *escaped = NULL;
-- gchar *tmp = NULL;
-- size_t len;
-
- (void)data;
- if (n <= 0 || n > PAM_MAX_NUM_MSG)
-@@ -251,38 +258,13 @@ conversation_function (int n, const struct pam_message **msg, struct pam_respons
- {
-
- case PAM_PROMPT_ECHO_OFF:
--#ifdef PAH_DEBUG
-- fprintf (stderr, "polkit-agent-helper-1: writing `PAM_PROMPT_ECHO_OFF ' to stdout\n");
--#endif /* PAH_DEBUG */
-- fprintf (stdout, "PAM_PROMPT_ECHO_OFF ");
-+ send_to_helper ("PAM_PROMPT_ECHO_OFF", msg[i]->msg);
- goto conv1;
-
- case PAM_PROMPT_ECHO_ON:
--#ifdef PAH_DEBUG
-- fprintf (stderr, "polkit-agent-helper-1: writing `PAM_PROMPT_ECHO_ON ' to stdout\n");
--#endif /* PAH_DEBUG */
-- fprintf (stdout, "PAM_PROMPT_ECHO_ON ");
-- conv1:
--#ifdef PAH_DEBUG
-- fprintf (stderr, "polkit-agent-helper-1: writing `%s' to stdout\n", msg[i]->msg);
--#endif /* PAH_DEBUG */
-- tmp = g_strdup (msg[i]->msg);
-- len = strlen (tmp);
-- if (len > 0 && tmp[len - 1] == '\n')
-- tmp[len - 1] = '\0';
-- escaped = g_strescape (tmp, NULL);
-- g_free (tmp);
-- fputs (escaped, stdout);
-- g_free (escaped);
--#ifdef PAH_DEBUG
-- fprintf (stderr, "polkit-agent-helper-1: writing newline to stdout\n");
--#endif /* PAH_DEBUG */
-- fputc ('\n', stdout);
--#ifdef PAH_DEBUG
-- fprintf (stderr, "polkit-agent-helper-1: flushing stdout\n");
--#endif /* PAH_DEBUG */
-- fflush (stdout);
-+ send_to_helper ("PAM_PROMPT_ECHO_ON", msg[i]->msg);
-
-+ conv1:
- if (fgets (buf, sizeof buf, stdin) == NULL)
- goto error;
-
-@@ -296,22 +278,11 @@ conversation_function (int n, const struct pam_message **msg, struct pam_respons
- break;
-
- case PAM_ERROR_MSG:
-- fprintf (stdout, "PAM_ERROR_MSG ");
-- goto conv2;
-+ send_to_helper ("PAM_ERROR_MSG", msg[i]->msg);
-+ break;
-
- case PAM_TEXT_INFO:
-- fprintf (stdout, "PAM_TEXT_INFO ");
-- conv2:
-- tmp = g_strdup (msg[i]->msg);
-- len = strlen (tmp);
-- if (len > 0 && tmp[len - 1] == '\n')
-- tmp[len - 1] = '\0';
-- escaped = g_strescape (tmp, NULL);
-- g_free (tmp);
-- fputs (escaped, stdout);
-- g_free (escaped);
-- fputc ('\n', stdout);
-- fflush (stdout);
-+ send_to_helper ("PAM_TEXT_INFO", msg[i]->msg);
- break;
-
- default:
diff --git a/patches/polkit-0.105/0036-0.114-Support-polkit-session-agent-running-outside-u.patch b/patches/polkit-0.105/0036-0.114-Support-polkit-session-agent-running-outside-u.patch
deleted file mode 100644
index 49ee8a807..000000000
--- a/patches/polkit-0.105/0036-0.114-Support-polkit-session-agent-running-outside-u.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From: Sebastien Bacher <seb128@ubuntu.com>
-Date: Mon, 2 Apr 2018 10:52:47 -0400
-Subject: [PATCH] 0.114: Support polkit session agent running outside user
- session
-
-commit a68f5dfd7662767b7b9822090b70bc5bd145c50c made
-session applications that are running from a user bus
-work with polkitd, by falling back to using the currently
-active session.
-
-This commit is similar, but for the polkit agent. It allows,
-a polkit agent to be run from a systemd --user service
-that's not running directly in the users session.
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=96977
-Applied-upstream: 0.114, commit:00a663e3fb14d8023e7cb6a66d091872bf4f2851
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkit/polkitunixsession-systemd.c | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/src/polkit/polkitunixsession-systemd.c b/src/polkit/polkitunixsession-systemd.c
-index 8a8bf65b9995..c34f36a909cf 100644
---- a/src/polkit/polkitunixsession-systemd.c
-+++ b/src/polkit/polkitunixsession-systemd.c
-@@ -451,6 +451,7 @@ polkit_unix_session_initable_init (GInitable *initable,
- PolkitUnixSession *session = POLKIT_UNIX_SESSION (initable);
- gboolean ret = FALSE;
- char *s;
-+ uid_t uid;
-
- if (session->session_id != NULL)
- {
-@@ -467,6 +468,19 @@ polkit_unix_session_initable_init (GInitable *initable,
- goto out;
- }
-
-+ /* Now do process -> uid -> graphical session (systemd version 213)*/
-+ if (sd_pid_get_owner_uid (session->pid, &uid) < 0)
-+ goto error;
-+
-+ if (sd_uid_get_display (uid, &s) >= 0)
-+ {
-+ session->session_id = g_strdup (s);
-+ free (s);
-+ ret = TRUE;
-+ goto out;
-+ }
-+
-+error:
- g_set_error (error,
- POLKIT_ERROR,
- POLKIT_ERROR_FAILED,
diff --git a/patches/polkit-0.105/0037-0.115-Fix-CVE-2018-1116-Trusting-client-supplied-UID.patch b/patches/polkit-0.105/0037-0.115-Fix-CVE-2018-1116-Trusting-client-supplied-UID.patch
deleted file mode 100644
index eaffd94a7..000000000
--- a/patches/polkit-0.105/0037-0.115-Fix-CVE-2018-1116-Trusting-client-supplied-UID.patch
+++ /dev/null
@@ -1,573 +0,0 @@
-From: =?UTF-8?q?Miloslav=20Trma=C4=8D?= <mitr@redhat.com>
-Date: Mon, 25 Jun 2018 19:24:06 +0200
-Subject: [PATCH] 0.115: Fix CVE-2018-1116: Trusting client-supplied UID
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-As part of CVE-2013-4288, the D-Bus clients were allowed (and
-encouraged) to submit the UID of the subject of authorization checks
-to avoid races against UID changes (notably using executables
-set-UID to root).
-
-However, that also allowed any client to submit an arbitrary UID, and
-that could be used to bypass "can only ask about / affect the same UID"
-checks in CheckAuthorization / RegisterAuthenticationAgent /
-UnregisterAuthenticationAgent. This allowed an attacker:
-
-- With CheckAuthorization, to cause the registered authentication
- agent in victim's session to pop up a dialog, or to determine whether
- the victim currently has a temporary authorization to perform an
- operation.
-
- (In principle, the attacker can also determine whether JavaScript
- rules allow the victim process to perform an operation; however,
- usually rules base their decisions on information determined from
- the supplied UID, so the attacker usually won't learn anything new.)
-
-- With RegisterAuthenticationAgent, to prevent the victim's
- authentication agent to work (for a specific victim process),
- or to learn about which operations requiring authorization
- the victim is attempting.
-
-To fix this, expose internal _polkit_unix_process_get_owner() /
-obsolete polkit_unix_process_get_owner() as a private
-polkit_unix_process_get_racy_uid__() (being more explicit about the
-dangers on relying on it), and use it in
-polkit_backend_session_monitor_get_user_for_subject() to return
-a boolean indicating whether the subject UID may be caller-chosen.
-
-Then, in the permission checks that require the subject to be
-equal to the caller, fail on caller-chosen UIDs (and continue
-through the pre-existing code paths which allow root, or root-designated
-server processes, to ask about arbitrary subjects.)
-
-Signed-off-by: Miloslav TrmaÄ <mitr@redhat.com>
-Origin: upstream, 0.115, commit:bc7ffad53643a9c80231fc41f5582d6a8931c32c
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkit/polkitprivate.h | 2 +
- src/polkit/polkitunixprocess.c | 60 +++++++++++++++----
- .../polkitbackendinteractiveauthority.c | 39 +++++++-----
- .../polkitbackendsessionmonitor-systemd.c | 38 ++++++++++--
- .../polkitbackendsessionmonitor.c | 40 +++++++++++--
- .../polkitbackendsessionmonitor.h | 1 +
- 6 files changed, 147 insertions(+), 33 deletions(-)
-
-diff --git a/src/polkit/polkitprivate.h b/src/polkit/polkitprivate.h
-index 579cc2535014..d6cd45d46aa5 100644
---- a/src/polkit/polkitprivate.h
-+++ b/src/polkit/polkitprivate.h
-@@ -34,6 +34,8 @@ GVariant *polkit_action_description_to_gvariant (PolkitActionDescription *action
- GVariant *polkit_subject_to_gvariant (PolkitSubject *subject);
- GVariant *polkit_identity_to_gvariant (PolkitIdentity *identity);
-
-+gint polkit_unix_process_get_racy_uid__ (PolkitUnixProcess *process, GError **error);
-+
- PolkitSubject *polkit_subject_new_for_gvariant (GVariant *variant, GError **error);
- PolkitIdentity *polkit_identity_new_for_gvariant (GVariant *variant, GError **error);
-
-diff --git a/src/polkit/polkitunixprocess.c b/src/polkit/polkitunixprocess.c
-index 913be3ac6a0a..464f034c0a21 100644
---- a/src/polkit/polkitunixprocess.c
-+++ b/src/polkit/polkitunixprocess.c
-@@ -49,6 +49,14 @@
- * To uniquely identify processes, both the process id and the start
- * time of the process (a monotonic increasing value representing the
- * time since the kernel was started) is used.
-+ *
-+ * NOTE: This object stores, and provides access to, the real UID of the
-+ * process. That value can change over time (with set*uid*(2) and exec*(2)).
-+ * Checks whether an operation is allowed need to take care to use the UID
-+ * value as of the time when the operation was made (or, following the open()
-+ * privilege check model, when the connection making the operation possible
-+ * was initiated). That is usually done by initializing this with
-+ * polkit_unix_process_new_for_owner() with trusted data.
- */
-
- /**
-@@ -83,9 +91,6 @@ static void subject_iface_init (PolkitSubjectIface *subject_iface);
- static guint64 get_start_time_for_pid (gint pid,
- GError **error);
-
--static gint _polkit_unix_process_get_owner (PolkitUnixProcess *process,
-- GError **error);
--
- #ifdef HAVE_FREEBSD
- static gboolean get_kinfo_proc (gint pid, struct kinfo_proc *p);
- #endif
-@@ -170,7 +175,7 @@ polkit_unix_process_constructed (GObject *object)
- {
- GError *error;
- error = NULL;
-- process->uid = _polkit_unix_process_get_owner (process, &error);
-+ process->uid = polkit_unix_process_get_racy_uid__ (process, &error);
- if (error != NULL)
- {
- process->uid = -1;
-@@ -259,6 +264,12 @@ polkit_unix_process_class_init (PolkitUnixProcessClass *klass)
- * Gets the user id for @process. Note that this is the real user-id,
- * not the effective user-id.
- *
-+ * NOTE: The UID may change over time, so the returned value may not match the
-+ * current state of the underlying process; or the UID may have been set by
-+ * polkit_unix_process_new_for_owner() or polkit_unix_process_set_uid(),
-+ * in which case it may not correspond to the actual UID of the referenced
-+ * process at all (at any point in time).
-+ *
- * Returns: The user id for @process or -1 if unknown.
- */
- gint
-@@ -655,18 +666,26 @@ out:
- return start_time;
- }
-
--static gint
--_polkit_unix_process_get_owner (PolkitUnixProcess *process,
-- GError **error)
-+/*
-+ * Private: Return the "current" UID. Note that this is inherently racy,
-+ * and the value may already be obsolete by the time this function returns;
-+ * this function only guarantees that the UID was valid at some point during
-+ * its execution.
-+ */
-+gint
-+polkit_unix_process_get_racy_uid__ (PolkitUnixProcess *process,
-+ GError **error)
- {
- gint result;
- gchar *contents;
- gchar **lines;
-+ guint64 start_time;
- #ifdef HAVE_FREEBSD
- struct kinfo_proc p;
- #else
- gchar filename[64];
- guint n;
-+ GError *local_error;
- #endif
-
- g_return_val_if_fail (POLKIT_IS_UNIX_PROCESS (process), 0);
-@@ -689,6 +708,7 @@ _polkit_unix_process_get_owner (PolkitUnixProcess *process,
- }
-
- result = p.ki_uid;
-+ start_time = (guint64) p.ki_start.tv_sec;
- #else
-
- /* see 'man proc' for layout of the status file
-@@ -722,17 +742,37 @@ _polkit_unix_process_get_owner (PolkitUnixProcess *process,
- else
- {
- result = real_uid;
-- goto out;
-+ goto found;
- }
- }
--
- g_set_error (error,
- POLKIT_ERROR,
- POLKIT_ERROR_FAILED,
- "Didn't find any line starting with `Uid:' in file %s",
- filename);
-+ goto out;
-+
-+found:
-+ /* The UID and start time are, sadly, not available in a single file. So,
-+ * read the UID first, and then the start time; if the start time is the same
-+ * before and after reading the UID, it couldn't have changed.
-+ */
-+ local_error = NULL;
-+ start_time = get_start_time_for_pid (process->pid, &local_error);
-+ if (local_error != NULL)
-+ {
-+ g_propagate_error (error, local_error);
-+ goto out;
-+ }
- #endif
-
-+ if (process->start_time != start_time)
-+ {
-+ g_set_error (error, POLKIT_ERROR, POLKIT_ERROR_FAILED,
-+ "process with PID %d has been replaced", process->pid);
-+ goto out;
-+ }
-+
- out:
- g_strfreev (lines);
- g_free (contents);
-@@ -744,5 +784,5 @@ gint
- polkit_unix_process_get_owner (PolkitUnixProcess *process,
- GError **error)
- {
-- return _polkit_unix_process_get_owner (process, error);
-+ return polkit_unix_process_get_racy_uid__ (process, error);
- }
-diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c
-index 73d0a0e29e24..97a8d8009886 100644
---- a/src/polkitbackend/polkitbackendinteractiveauthority.c
-+++ b/src/polkitbackend/polkitbackendinteractiveauthority.c
-@@ -563,7 +563,7 @@ log_result (PolkitBackendInteractiveAuthority *authority,
- if (polkit_authorization_result_get_is_authorized (result))
- log_result_str = "ALLOWING";
-
-- user_of_subject = polkit_backend_session_monitor_get_user_for_subject (priv->session_monitor, subject, NULL);
-+ user_of_subject = polkit_backend_session_monitor_get_user_for_subject (priv->session_monitor, subject, NULL, NULL);
-
- subject_str = polkit_subject_to_string (subject);
-
-@@ -837,6 +837,7 @@ polkit_backend_interactive_authority_check_authorization (PolkitBackendAuthority
- gchar *subject_str;
- PolkitIdentity *user_of_caller;
- PolkitIdentity *user_of_subject;
-+ gboolean user_of_subject_matches;
- gchar *user_of_caller_str;
- gchar *user_of_subject_str;
- PolkitAuthorizationResult *result;
-@@ -882,7 +883,7 @@ polkit_backend_interactive_authority_check_authorization (PolkitBackendAuthority
- action_id);
-
- user_of_caller = polkit_backend_session_monitor_get_user_for_subject (priv->session_monitor,
-- caller,
-+ caller, NULL,
- &error);
- if (error != NULL)
- {
-@@ -897,7 +898,7 @@ polkit_backend_interactive_authority_check_authorization (PolkitBackendAuthority
- g_debug (" user of caller is %s", user_of_caller_str);
-
- user_of_subject = polkit_backend_session_monitor_get_user_for_subject (priv->session_monitor,
-- subject,
-+ subject, &user_of_subject_matches,
- &error);
- if (error != NULL)
- {
-@@ -927,7 +928,10 @@ polkit_backend_interactive_authority_check_authorization (PolkitBackendAuthority
- * We only allow this if, and only if,
- *
- * - processes may check for another process owned by the *same* user but not
-- * if details are passed (otherwise you'd be able to spoof the dialog)
-+ * if details are passed (otherwise you'd be able to spoof the dialog);
-+ * the caller supplies the user_of_subject value, so we additionally
-+ * require it to match at least at one point in time (via
-+ * user_of_subject_matches).
- *
- * - processes running as uid 0 may check anything and pass any details
- *
-@@ -935,7 +939,9 @@ polkit_backend_interactive_authority_check_authorization (PolkitBackendAuthority
- * then any uid referenced by that annotation is also allowed to check
- * to check anything and pass any details
- */
-- if (!polkit_identity_equal (user_of_caller, user_of_subject) || has_details)
-+ if (!user_of_subject_matches
-+ || !polkit_identity_equal (user_of_caller, user_of_subject)
-+ || has_details)
- {
- if (!may_identity_check_authorization (interactive_authority, action_id, user_of_caller))
- {
-@@ -1102,9 +1108,10 @@ check_authorization_sync (PolkitBackendAuthority *authority,
- goto out;
- }
-
-- /* every subject has a user */
-+ /* every subject has a user; this is supplied by the client, so we rely
-+ * on the caller to validate its acceptability. */
- user_of_subject = polkit_backend_session_monitor_get_user_for_subject (priv->session_monitor,
-- subject,
-+ subject, NULL,
- error);
- if (user_of_subject == NULL)
- goto out;
-@@ -2319,6 +2326,7 @@ polkit_backend_interactive_authority_register_authentication_agent (PolkitBacken
- PolkitSubject *session_for_caller;
- PolkitIdentity *user_of_caller;
- PolkitIdentity *user_of_subject;
-+ gboolean user_of_subject_matches;
- AuthenticationAgent *agent;
- gboolean ret;
- gchar *caller_cmdline;
-@@ -2371,7 +2379,7 @@ polkit_backend_interactive_authority_register_authentication_agent (PolkitBacken
- goto out;
- }
-
-- user_of_caller = polkit_backend_session_monitor_get_user_for_subject (priv->session_monitor, caller, NULL);
-+ user_of_caller = polkit_backend_session_monitor_get_user_for_subject (priv->session_monitor, caller, NULL, NULL);
- if (user_of_caller == NULL)
- {
- g_set_error (error,
-@@ -2380,7 +2388,7 @@ polkit_backend_interactive_authority_register_authentication_agent (PolkitBacken
- "Cannot determine user of caller");
- goto out;
- }
-- user_of_subject = polkit_backend_session_monitor_get_user_for_subject (priv->session_monitor, subject, NULL);
-+ user_of_subject = polkit_backend_session_monitor_get_user_for_subject (priv->session_monitor, subject, &user_of_subject_matches, NULL);
- if (user_of_subject == NULL)
- {
- g_set_error (error,
-@@ -2389,7 +2397,8 @@ polkit_backend_interactive_authority_register_authentication_agent (PolkitBacken
- "Cannot determine user of subject");
- goto out;
- }
-- if (!polkit_identity_equal (user_of_caller, user_of_subject))
-+ if (!user_of_subject_matches
-+ || !polkit_identity_equal (user_of_caller, user_of_subject))
- {
- if (POLKIT_IS_UNIX_USER (user_of_caller) && polkit_unix_user_get_uid (POLKIT_UNIX_USER (user_of_caller)) == 0)
- {
-@@ -2482,6 +2491,7 @@ polkit_backend_interactive_authority_unregister_authentication_agent (PolkitBack
- PolkitSubject *session_for_caller;
- PolkitIdentity *user_of_caller;
- PolkitIdentity *user_of_subject;
-+ gboolean user_of_subject_matches;
- AuthenticationAgent *agent;
- gboolean ret;
- gchar *scope_str;
-@@ -2530,7 +2540,7 @@ polkit_backend_interactive_authority_unregister_authentication_agent (PolkitBack
- goto out;
- }
-
-- user_of_caller = polkit_backend_session_monitor_get_user_for_subject (priv->session_monitor, caller, NULL);
-+ user_of_caller = polkit_backend_session_monitor_get_user_for_subject (priv->session_monitor, caller, NULL, NULL);
- if (user_of_caller == NULL)
- {
- g_set_error (error,
-@@ -2539,7 +2549,7 @@ polkit_backend_interactive_authority_unregister_authentication_agent (PolkitBack
- "Cannot determine user of caller");
- goto out;
- }
-- user_of_subject = polkit_backend_session_monitor_get_user_for_subject (priv->session_monitor, subject, NULL);
-+ user_of_subject = polkit_backend_session_monitor_get_user_for_subject (priv->session_monitor, subject, &user_of_subject_matches, NULL);
- if (user_of_subject == NULL)
- {
- g_set_error (error,
-@@ -2548,7 +2558,8 @@ polkit_backend_interactive_authority_unregister_authentication_agent (PolkitBack
- "Cannot determine user of subject");
- goto out;
- }
-- if (!polkit_identity_equal (user_of_caller, user_of_subject))
-+ if (!user_of_subject_matches
-+ || !polkit_identity_equal (user_of_caller, user_of_subject))
- {
- if (POLKIT_IS_UNIX_USER (user_of_caller) && polkit_unix_user_get_uid (POLKIT_UNIX_USER (user_of_caller)) == 0)
- {
-@@ -2658,7 +2669,7 @@ polkit_backend_interactive_authority_authentication_agent_response (PolkitBacken
- identity_str);
-
- user_of_caller = polkit_backend_session_monitor_get_user_for_subject (priv->session_monitor,
-- caller,
-+ caller, NULL,
- error);
- if (user_of_caller == NULL)
- goto out;
-diff --git a/src/polkitbackend/polkitbackendsessionmonitor-systemd.c b/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
-index 6bd517abb169..773256e37ae0 100644
---- a/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
-+++ b/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
-@@ -29,6 +29,7 @@
- #include <stdlib.h>
-
- #include <polkit/polkit.h>
-+#include <polkit/polkitprivate.h>
- #include "polkitbackendsessionmonitor.h"
-
- /* <internal>
-@@ -246,26 +247,40 @@ polkit_backend_session_monitor_get_sessions (PolkitBackendSessionMonitor *monito
- * polkit_backend_session_monitor_get_user:
- * @monitor: A #PolkitBackendSessionMonitor.
- * @subject: A #PolkitSubject.
-+ * @result_matches: If not %NULL, set to indicate whether the return value matches current (RACY) state.
- * @error: Return location for error.
- *
- * Gets the user corresponding to @subject or %NULL if no user exists.
- *
-+ * NOTE: For a #PolkitUnixProcess, the UID is read from @subject (which may
-+ * come from e.g. a D-Bus client), so it may not correspond to the actual UID
-+ * of the referenced process (at any point in time). This is indicated by
-+ * setting @result_matches to %FALSE; the caller may reject such subjects or
-+ * require additional privileges. @result_matches == %TRUE only indicates that
-+ * the UID matched the underlying process at ONE point in time, it may not match
-+ * later.
-+ *
- * Returns: %NULL if @error is set otherwise a #PolkitUnixUser that should be freed with g_object_unref().
- */
- PolkitIdentity *
- polkit_backend_session_monitor_get_user_for_subject (PolkitBackendSessionMonitor *monitor,
- PolkitSubject *subject,
-+ gboolean *result_matches,
- GError **error)
- {
- PolkitIdentity *ret;
-- guint32 uid;
-+ gboolean matches;
-
- ret = NULL;
-+ matches = FALSE;
-
- if (POLKIT_IS_UNIX_PROCESS (subject))
- {
-- uid = polkit_unix_process_get_uid (POLKIT_UNIX_PROCESS (subject));
-- if ((gint) uid == -1)
-+ gint subject_uid, current_uid;
-+ GError *local_error;
-+
-+ subject_uid = polkit_unix_process_get_uid (POLKIT_UNIX_PROCESS (subject));
-+ if (subject_uid == -1)
- {
- g_set_error (error,
- POLKIT_ERROR,
-@@ -273,14 +288,24 @@ polkit_backend_session_monitor_get_user_for_subject (PolkitBackendSessionMonitor
- "Unix process subject does not have uid set");
- goto out;
- }
-- ret = polkit_unix_user_new (uid);
-+ local_error = NULL;
-+ current_uid = polkit_unix_process_get_racy_uid__ (POLKIT_UNIX_PROCESS (subject), &local_error);
-+ if (local_error != NULL)
-+ {
-+ g_propagate_error (error, local_error);
-+ goto out;
-+ }
-+ ret = polkit_unix_user_new (subject_uid);
-+ matches = (subject_uid == current_uid);
- }
- else if (POLKIT_IS_SYSTEM_BUS_NAME (subject))
- {
- ret = (PolkitIdentity*)polkit_system_bus_name_get_user_sync (POLKIT_SYSTEM_BUS_NAME (subject), NULL, error);
-+ matches = TRUE;
- }
- else if (POLKIT_IS_UNIX_SESSION (subject))
- {
-+ uid_t uid;
-
- if (sd_session_get_uid (polkit_unix_session_get_session_id (POLKIT_UNIX_SESSION (subject)), &uid) < 0)
- {
-@@ -292,9 +317,14 @@ polkit_backend_session_monitor_get_user_for_subject (PolkitBackendSessionMonitor
- }
-
- ret = polkit_unix_user_new (uid);
-+ matches = TRUE;
- }
-
- out:
-+ if (result_matches != NULL)
-+ {
-+ *result_matches = matches;
-+ }
- return ret;
- }
-
-diff --git a/src/polkitbackend/polkitbackendsessionmonitor.c b/src/polkitbackend/polkitbackendsessionmonitor.c
-index e1a9ab3a32cc..ed3075595dfb 100644
---- a/src/polkitbackend/polkitbackendsessionmonitor.c
-+++ b/src/polkitbackend/polkitbackendsessionmonitor.c
-@@ -27,6 +27,7 @@
- #include <glib/gstdio.h>
-
- #include <polkit/polkit.h>
-+#include <polkit/polkitprivate.h>
- #include "polkitbackendsessionmonitor.h"
-
- #define CKDB_PATH "/var/run/ConsoleKit/database"
-@@ -273,28 +274,40 @@ polkit_backend_session_monitor_get_sessions (PolkitBackendSessionMonitor *monito
- * polkit_backend_session_monitor_get_user:
- * @monitor: A #PolkitBackendSessionMonitor.
- * @subject: A #PolkitSubject.
-+ * @result_matches: If not %NULL, set to indicate whether the return value matches current (RACY) state.
- * @error: Return location for error.
- *
- * Gets the user corresponding to @subject or %NULL if no user exists.
- *
-+ * NOTE: For a #PolkitUnixProcess, the UID is read from @subject (which may
-+ * come from e.g. a D-Bus client), so it may not correspond to the actual UID
-+ * of the referenced process (at any point in time). This is indicated by
-+ * setting @result_matches to %FALSE; the caller may reject such subjects or
-+ * require additional privileges. @result_matches == %TRUE only indicates that
-+ * the UID matched the underlying process at ONE point in time, it may not match
-+ * later.
-+ *
- * Returns: %NULL if @error is set otherwise a #PolkitUnixUser that should be freed with g_object_unref().
- */
- PolkitIdentity *
- polkit_backend_session_monitor_get_user_for_subject (PolkitBackendSessionMonitor *monitor,
- PolkitSubject *subject,
-+ gboolean *result_matches,
- GError **error)
- {
- PolkitIdentity *ret;
-+ gboolean matches;
- GError *local_error;
-- gchar *group;
-- guint32 uid;
-
- ret = NULL;
-+ matches = FALSE;
-
- if (POLKIT_IS_UNIX_PROCESS (subject))
- {
-- uid = polkit_unix_process_get_uid (POLKIT_UNIX_PROCESS (subject));
-- if ((gint) uid == -1)
-+ gint subject_uid, current_uid;
-+
-+ subject_uid = polkit_unix_process_get_uid (POLKIT_UNIX_PROCESS (subject));
-+ if (subject_uid == -1)
- {
- g_set_error (error,
- POLKIT_ERROR,
-@@ -302,14 +315,26 @@ polkit_backend_session_monitor_get_user_for_subject (PolkitBackendSessionMonitor
- "Unix process subject does not have uid set");
- goto out;
- }
-- ret = polkit_unix_user_new (uid);
-+ local_error = NULL;
-+ current_uid = polkit_unix_process_get_racy_uid__ (POLKIT_UNIX_PROCESS (subject), &local_error);
-+ if (local_error != NULL)
-+ {
-+ g_propagate_error (error, local_error);
-+ goto out;
-+ }
-+ ret = polkit_unix_user_new (subject_uid);
-+ matches = (subject_uid == current_uid);
- }
- else if (POLKIT_IS_SYSTEM_BUS_NAME (subject))
- {
- ret = (PolkitIdentity*)polkit_system_bus_name_get_user_sync (POLKIT_SYSTEM_BUS_NAME (subject), NULL, error);
-+ matches = TRUE;
- }
- else if (POLKIT_IS_UNIX_SESSION (subject))
- {
-+ gint uid;
-+ gchar *group;
-+
- if (!ensure_database (monitor, error))
- {
- g_prefix_error (error, "Error getting user for session: Error ensuring CK database at " CKDB_PATH ": ");
-@@ -328,9 +353,14 @@ polkit_backend_session_monitor_get_user_for_subject (PolkitBackendSessionMonitor
- g_free (group);
-
- ret = polkit_unix_user_new (uid);
-+ matches = TRUE;
- }
-
- out:
-+ if (result_matches != NULL)
-+ {
-+ *result_matches = matches;
-+ }
- return ret;
- }
-
-diff --git a/src/polkitbackend/polkitbackendsessionmonitor.h b/src/polkitbackend/polkitbackendsessionmonitor.h
-index 8f8a2caefd6b..3972326bf9f3 100644
---- a/src/polkitbackend/polkitbackendsessionmonitor.h
-+++ b/src/polkitbackend/polkitbackendsessionmonitor.h
-@@ -47,6 +47,7 @@ GList *polkit_backend_session_monitor_get_sessions (Polkit
-
- PolkitIdentity *polkit_backend_session_monitor_get_user_for_subject (PolkitBackendSessionMonitor *monitor,
- PolkitSubject *subject,
-+ gboolean *result_matches,
- GError **error);
-
- PolkitSubject *polkit_backend_session_monitor_get_session_for_subject (PolkitBackendSessionMonitor *monitor,
diff --git a/patches/polkit-0.105/0038-0.116-Allow-negative-uids-gids-in-PolkitUnixUser-and.patch b/patches/polkit-0.105/0038-0.116-Allow-negative-uids-gids-in-PolkitUnixUser-and.patch
deleted file mode 100644
index 5ac4f582e..000000000
--- a/patches/polkit-0.105/0038-0.116-Allow-negative-uids-gids-in-PolkitUnixUser-and.patch
+++ /dev/null
@@ -1,191 +0,0 @@
-From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
-Date: Mon, 3 Dec 2018 10:28:58 +0100
-Subject: [PATCH] 0.116: Allow negative uids/gids in PolkitUnixUser and Group
- objects
-
-(uid_t) -1 is still used as placeholder to mean "unset". This is OK, since
-there should be no users with such number, see
-https://systemd.io/UIDS-GIDS#special-linux-uids.
-
-(uid_t) -1 is used as the default value in class initialization.
-
-When a user or group above INT32_MAX is created, the numeric uid or
-gid wraps around to negative when the value is assigned to gint, and
-polkit gets confused. Let's accept such gids, except for -1.
-
-A nicer fix would be to change the underlying type to e.g. uint32 to
-not have negative values. But this cannot be done without breaking the
-API, so likely new functions will have to be added (a
-polkit_unix_user_new variant that takes a unsigned, and the same for
-_group_new, _set_uid, _get_uid, _set_gid, _get_gid, etc.). This will
-require a bigger patch.
-
-Fixes https://gitlab.freedesktop.org/polkit/polkit/issues/74.
-
-(cherry picked from commit 2cb40c4d5feeaa09325522bd7d97910f1b59e379)
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkit/polkitunixgroup.c | 15 +++++++++++----
- src/polkit/polkitunixprocess.c | 12 ++++++++----
- src/polkit/polkitunixuser.c | 13 ++++++++++---
- 3 files changed, 29 insertions(+), 11 deletions(-)
-
-diff --git a/src/polkit/polkitunixgroup.c b/src/polkit/polkitunixgroup.c
-index c57a1aaacbb1..309f68918895 100644
---- a/src/polkit/polkitunixgroup.c
-+++ b/src/polkit/polkitunixgroup.c
-@@ -71,6 +71,7 @@ G_DEFINE_TYPE_WITH_CODE (PolkitUnixGroup, polkit_unix_group, G_TYPE_OBJECT,
- static void
- polkit_unix_group_init (PolkitUnixGroup *unix_group)
- {
-+ unix_group->gid = -1; /* (git_t) -1 is not a valid GID under Linux */
- }
-
- static void
-@@ -100,11 +101,14 @@ polkit_unix_group_set_property (GObject *object,
- GParamSpec *pspec)
- {
- PolkitUnixGroup *unix_group = POLKIT_UNIX_GROUP (object);
-+ gint val;
-
- switch (prop_id)
- {
- case PROP_GID:
-- unix_group->gid = g_value_get_int (value);
-+ val = g_value_get_int (value);
-+ g_return_if_fail (val != -1);
-+ unix_group->gid = val;
- break;
-
- default:
-@@ -131,9 +135,9 @@ polkit_unix_group_class_init (PolkitUnixGroupClass *klass)
- g_param_spec_int ("gid",
- "Group ID",
- "The UNIX group ID",
-- 0,
-+ G_MININT,
- G_MAXINT,
-- 0,
-+ -1,
- G_PARAM_CONSTRUCT |
- G_PARAM_READWRITE |
- G_PARAM_STATIC_NAME |
-@@ -166,9 +170,10 @@ polkit_unix_group_get_gid (PolkitUnixGroup *group)
- */
- void
- polkit_unix_group_set_gid (PolkitUnixGroup *group,
-- gint gid)
-+ gint gid)
- {
- g_return_if_fail (POLKIT_IS_UNIX_GROUP (group));
-+ g_return_if_fail (gid != -1);
- group->gid = gid;
- }
-
-@@ -183,6 +188,8 @@ polkit_unix_group_set_gid (PolkitUnixGroup *group,
- PolkitIdentity *
- polkit_unix_group_new (gint gid)
- {
-+ g_return_val_if_fail (gid != -1, NULL);
-+
- return POLKIT_IDENTITY (g_object_new (POLKIT_TYPE_UNIX_GROUP,
- "gid", gid,
- NULL));
-diff --git a/src/polkit/polkitunixprocess.c b/src/polkit/polkitunixprocess.c
-index 464f034c0a21..02a083f70a1c 100644
---- a/src/polkit/polkitunixprocess.c
-+++ b/src/polkit/polkitunixprocess.c
-@@ -147,9 +147,14 @@ polkit_unix_process_set_property (GObject *object,
- polkit_unix_process_set_pid (unix_process, g_value_get_int (value));
- break;
-
-- case PROP_UID:
-- polkit_unix_process_set_uid (unix_process, g_value_get_int (value));
-+ case PROP_UID: {
-+ gint val;
-+
-+ val = g_value_get_int (value);
-+ g_return_if_fail (val != -1);
-+ polkit_unix_process_set_uid (unix_process, val);
- break;
-+ }
-
- case PROP_START_TIME:
- polkit_unix_process_set_start_time (unix_process, g_value_get_uint64 (value));
-@@ -227,7 +232,7 @@ polkit_unix_process_class_init (PolkitUnixProcessClass *klass)
- g_param_spec_int ("uid",
- "User ID",
- "The UNIX user ID",
-- -1,
-+ G_MININT,
- G_MAXINT,
- -1,
- G_PARAM_CONSTRUCT |
-@@ -291,7 +296,6 @@ polkit_unix_process_set_uid (PolkitUnixProcess *process,
- gint uid)
- {
- g_return_if_fail (POLKIT_IS_UNIX_PROCESS (process));
-- g_return_if_fail (uid >= -1);
- process->uid = uid;
- }
-
-diff --git a/src/polkit/polkitunixuser.c b/src/polkit/polkitunixuser.c
-index 8bfd3a1fb05d..234a6976c573 100644
---- a/src/polkit/polkitunixuser.c
-+++ b/src/polkit/polkitunixuser.c
-@@ -72,6 +72,7 @@ G_DEFINE_TYPE_WITH_CODE (PolkitUnixUser, polkit_unix_user, G_TYPE_OBJECT,
- static void
- polkit_unix_user_init (PolkitUnixUser *unix_user)
- {
-+ unix_user->uid = -1; /* (uid_t) -1 is not a valid UID under Linux */
- unix_user->name = NULL;
- }
-
-@@ -112,11 +113,14 @@ polkit_unix_user_set_property (GObject *object,
- GParamSpec *pspec)
- {
- PolkitUnixUser *unix_user = POLKIT_UNIX_USER (object);
-+ gint val;
-
- switch (prop_id)
- {
- case PROP_UID:
-- unix_user->uid = g_value_get_int (value);
-+ val = g_value_get_int (value);
-+ g_return_if_fail (val != -1);
-+ unix_user->uid = val;
- break;
-
- default:
-@@ -144,9 +148,9 @@ polkit_unix_user_class_init (PolkitUnixUserClass *klass)
- g_param_spec_int ("uid",
- "User ID",
- "The UNIX user ID",
-- 0,
-+ G_MININT,
- G_MAXINT,
-- 0,
-+ -1,
- G_PARAM_CONSTRUCT |
- G_PARAM_READWRITE |
- G_PARAM_STATIC_NAME |
-@@ -182,6 +186,7 @@ polkit_unix_user_set_uid (PolkitUnixUser *user,
- gint uid)
- {
- g_return_if_fail (POLKIT_IS_UNIX_USER (user));
-+ g_return_if_fail (uid != -1);
- user->uid = uid;
- }
-
-@@ -196,6 +201,8 @@ polkit_unix_user_set_uid (PolkitUnixUser *user,
- PolkitIdentity *
- polkit_unix_user_new (gint uid)
- {
-+ g_return_val_if_fail (uid != -1, NULL);
-+
- return POLKIT_IDENTITY (g_object_new (POLKIT_TYPE_UNIX_USER,
- "uid", uid,
- NULL));
diff --git a/patches/polkit-0.105/0039-0.116-Allow-uid-of-1-for-a-PolkitUnixProcess.patch b/patches/polkit-0.105/0039-0.116-Allow-uid-of-1-for-a-PolkitUnixProcess.patch
deleted file mode 100644
index cdb6c31d9..000000000
--- a/patches/polkit-0.105/0039-0.116-Allow-uid-of-1-for-a-PolkitUnixProcess.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From: Matthew Leeds <matthew.leeds@endlessm.com>
-Date: Tue, 11 Dec 2018 12:04:26 -0800
-Subject: [PATCH] 0.116: Allow uid of -1 for a PolkitUnixProcess
-
-Commit 2cb40c4d5 changed PolkitUnixUser, PolkitUnixGroup, and
-PolkitUnixProcess to allow negative values for their uid/gid properties,
-since these are values above INT_MAX which wrap around but are still
-valid, with the exception of -1 which is not valid. However,
-PolkitUnixProcess allows a uid of -1 to be passed to
-polkit_unix_process_new_for_owner() which means polkit is expected to
-figure out the uid on its own (this happens in the _constructed
-function). So this commit removes the check in
-polkit_unix_process_set_property() so that new_for_owner() can be used
-as documented without producing a critical error message.
-
-This does not affect the protection against CVE-2018-19788 which is
-based on creating a user with a UID up to but not including 4294967295
-(-1).
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkit/polkitunixprocess.c | 9 ++-------
- 1 file changed, 2 insertions(+), 7 deletions(-)
-
-diff --git a/src/polkit/polkitunixprocess.c b/src/polkit/polkitunixprocess.c
-index 02a083f70a1c..4a4256746d6e 100644
---- a/src/polkit/polkitunixprocess.c
-+++ b/src/polkit/polkitunixprocess.c
-@@ -147,14 +147,9 @@ polkit_unix_process_set_property (GObject *object,
- polkit_unix_process_set_pid (unix_process, g_value_get_int (value));
- break;
-
-- case PROP_UID: {
-- gint val;
--
-- val = g_value_get_int (value);
-- g_return_if_fail (val != -1);
-- polkit_unix_process_set_uid (unix_process, val);
-+ case PROP_UID:
-+ polkit_unix_process_set_uid (unix_process, g_value_get_int (value));
- break;
-- }
-
- case PROP_START_TIME:
- polkit_unix_process_set_start_time (unix_process, g_value_get_uint64 (value));
diff --git a/patches/polkit-0.105/0040-Revert-Default-to-AdminIdentities-unix-group-wheel-f.patch b/patches/polkit-0.105/0040-Revert-Default-to-AdminIdentities-unix-group-wheel-f.patch
deleted file mode 100644
index cd41f00be..000000000
--- a/patches/polkit-0.105/0040-Revert-Default-to-AdminIdentities-unix-group-wheel-f.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From: Michael Biebl <biebl@debian.org>
-Date: Fri, 9 Dec 2011 00:31:21 +0100
-Subject: [PATCH] Revert "Default to AdminIdentities=unix-group:wheel for local
- authority"
-
-This reverts commit 763faf434b445c20ae9529100d3ef5290976d0c9.
-
-On Red Hat derivatives, every member of group 'wheel' is necessarily
-privileged. On Debian derivatives, there is no wheel group, and gid 0
-(root) is not used in this way. Change the default rule to consider
-uid 0 to be privileged, instead.
-
-On Red Hat derivatives, 50-default.rules is not preserved by upgrades;
-on dpkg-based systems, it is a proper conffile and may be edited
-(at the sysadmin's own risk), so the comment about not editing it is
-misleading.
-
-[smcv: added longer explanation of why we make this change;
-remove unrelated cosmetic change to a man page]
-
-Forwarded: no, Debian-specific
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkitbackend/50-localauthority.conf | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/polkitbackend/50-localauthority.conf b/src/polkitbackend/50-localauthority.conf
-index 5e44bde08869..20e0ba344e83 100644
---- a/src/polkitbackend/50-localauthority.conf
-+++ b/src/polkitbackend/50-localauthority.conf
-@@ -7,4 +7,4 @@
- #
-
- [Configuration]
--AdminIdentities=unix-group:wheel
-+AdminIdentities=unix-user:0
diff --git a/patches/polkit-0.105/0041-Build-against-libsystemd.patch b/patches/polkit-0.105/0041-Build-against-libsystemd.patch
deleted file mode 100644
index 76ef40029..000000000
--- a/patches/polkit-0.105/0041-Build-against-libsystemd.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From: Michael Biebl <biebl@debian.org>
-Date: Wed, 8 Jul 2015 02:08:33 +0200
-Subject: [PATCH] Build against libsystemd
-
-Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=779756
-Forwarded: no, obsoleted by upstream commit 2291767a014f5a04a92ca6f0eb472794f212ca67 in 0.113
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- configure.ac | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 388605d2cb08..f55ddb7fa002 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -160,7 +160,7 @@ AC_ARG_ENABLE([systemd],
- [enable_systemd=auto])
- if test "$enable_systemd" != "no"; then
- PKG_CHECK_MODULES(SYSTEMD,
-- [libsystemd-login],
-+ [libsystemd],
- have_systemd=yes,
- have_systemd=no)
- if test "$have_systemd" = "yes"; then
-@@ -171,7 +171,7 @@ if test "$enable_systemd" != "no"; then
- LIBS=$save_LIBS
- else
- if test "$enable_systemd" = "yes"; then
-- AC_MSG_ERROR([systemd support requested but libsystemd-login1 library not found])
-+ AC_MSG_ERROR([systemd support requested but libsystemd library not found])
- fi
- fi
- fi
diff --git a/patches/polkit-0.105/0042-Move-D-Bus-policy-file-to-usr-share-dbus-1-system.d.patch b/patches/polkit-0.105/0042-Move-D-Bus-policy-file-to-usr-share-dbus-1-system.d.patch
deleted file mode 100644
index 89ecb9e66..000000000
--- a/patches/polkit-0.105/0042-Move-D-Bus-policy-file-to-usr-share-dbus-1-system.d.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From: Michael Biebl <biebl@debian.org>
-Date: Tue, 27 Nov 2018 18:36:27 +0100
-Subject: [PATCH] Move D-Bus policy file to /usr/share/dbus-1/system.d/
-
-To better support stateless systems with an empty /etc, the old location
-in /etc/dbus-1/system.d/ should only be used for local admin changes.
-Package provided D-Bus policy files are supposed to be installed in
-/usr/share/dbus-1/system.d/.
-
-This is supported since dbus 1.9.18.
-
-https://lists.freedesktop.org/archives/dbus/2015-July/016746.html
-
-https://gitlab.freedesktop.org/polkit/polkit/merge_requests/11
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- data/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/data/Makefile.am b/data/Makefile.am
-index f0beeba42cd2..ec41433b48d9 100644
---- a/data/Makefile.am
-+++ b/data/Makefile.am
-@@ -9,7 +9,7 @@ service_DATA = $(service_in_files:.service.in=.service)
- $(service_DATA): $(service_in_files) Makefile
- @sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@
-
--dbusconfdir = $(sysconfdir)/dbus-1/system.d
-+dbusconfdir = $(datadir)/dbus-1/system.d
- dbusconf_DATA = org.freedesktop.PolicyKit1.conf
-
- if POLKIT_AUTHFW_PAM
diff --git a/patches/polkit-0.105/0043-0.116-backend-Compare-PolkitUnixProcess-uids-for-tem.patch b/patches/polkit-0.105/0043-0.116-backend-Compare-PolkitUnixProcess-uids-for-tem.patch
deleted file mode 100644
index 93af341dc..000000000
--- a/patches/polkit-0.105/0043-0.116-backend-Compare-PolkitUnixProcess-uids-for-tem.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-From: Colin Walters <walters@verbum.org>
-Date: Fri, 4 Jan 2019 14:24:48 -0500
-Subject: [PATCH] 0.116: backend: Compare PolkitUnixProcess uids for temporary
- authorizations
-
-It turns out that the combination of `(pid, start time)` is not
-enough to be unique. For temporary authorizations, we can avoid
-separate users racing on pid reuse by simply comparing the uid.
-
-https://bugs.chromium.org/p/project-zero/issues/detail?id=1692
-
-And the above original email report is included in full in a new comment.
-
-Reported-by: Jann Horn <jannh@google.com>
-
-Closes: https://gitlab.freedesktop.org/polkit/polkit/issues/75
-(cherry picked from commit 6cc6aafee135ba44ea748250d7d29b562ca190e3)
-
-Imported from policykit-1_0.105-25.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/polkit/polkitsubject.c | 2 +
- src/polkit/polkitunixprocess.c | 71 ++++++++++++++++++-
- .../polkitbackendinteractiveauthority.c | 39 +++++++++-
- 3 files changed, 110 insertions(+), 2 deletions(-)
-
-diff --git a/src/polkit/polkitsubject.c b/src/polkit/polkitsubject.c
-index 78ec745a4df2..fadcfe9b624e 100644
---- a/src/polkit/polkitsubject.c
-+++ b/src/polkit/polkitsubject.c
-@@ -99,6 +99,8 @@ polkit_subject_hash (PolkitSubject *subject)
- * @b: A #PolkitSubject.
- *
- * Checks if @a and @b are equal, ie. represent the same subject.
-+ * However, avoid calling polkit_subject_equal() to compare two processes;
-+ * for more information see the `PolkitUnixProcess` documentation.
- *
- * This function can be used in e.g. g_hash_table_new().
- *
-diff --git a/src/polkit/polkitunixprocess.c b/src/polkit/polkitunixprocess.c
-index 4a4256746d6e..0f33598a7401 100644
---- a/src/polkit/polkitunixprocess.c
-+++ b/src/polkit/polkitunixprocess.c
-@@ -44,7 +44,10 @@
- * @title: PolkitUnixProcess
- * @short_description: Unix processs
- *
-- * An object for representing a UNIX process.
-+ * An object for representing a UNIX process. NOTE: This object as
-+ * designed is now known broken; a mechanism to exploit a delay in
-+ * start time in the Linux kernel was identified. Avoid
-+ * calling polkit_subject_equal() to compare two processes.
- *
- * To uniquely identify processes, both the process id and the start
- * time of the process (a monotonic increasing value representing the
-@@ -59,6 +62,72 @@
- * polkit_unix_process_new_for_owner() with trusted data.
- */
-
-+/* See https://gitlab.freedesktop.org/polkit/polkit/issues/75
-+
-+ But quoting the original email in full here to ensure it's preserved:
-+
-+ From: Jann Horn <jannh@google.com>
-+ Subject: 0.116: [SECURITY] polkit: temporary auth hijacking via PID reuse and non-atomic fork
-+ Date: Wednesday, October 10, 2018 5:34 PM
-+
-+When a (non-root) user attempts to e.g. control systemd units in the system
-+instance from an active session over DBus, the access is gated by a polkit
-+policy that requires "auth_admin_keep" auth. This results in an auth prompt
-+being shown to the user, asking the user to confirm the action by entering the
-+password of an administrator account.
-+
-+After the action has been confirmed, the auth decision for "auth_admin_keep" is
-+cached for up to five minutes. Subject to some restrictions, similar actions can
-+then be performed in this timespan without requiring re-auth:
-+
-+ - The PID of the DBus client requesting the new action must match the PID of
-+ the DBus client requesting the old action (based on SO_PEERCRED information
-+ forwarded by the DBus daemon).
-+ - The "start time" of the client's PID (as seen in /proc/$pid/stat, field 22)
-+ must not have changed. The granularity of this timestamp is in the
-+ millisecond range.
-+ - polkit polls every two seconds whether a process with the expected start time
-+ still exists. If not, the temporary auth entry is purged.
-+
-+Without the start time check, this would obviously be buggy because an attacker
-+could simply wait for the legitimate client to disappear, then create a new
-+client with the same PID.
-+
-+Unfortunately, the start time check is bypassable because fork() is not atomic.
-+Looking at the source code of copy_process() in the kernel:
-+
-+ p->start_time = ktime_get_ns();
-+ p->real_start_time = ktime_get_boot_ns();
-+ [...]
-+ retval = copy_thread_tls(clone_flags, stack_start, stack_size, p, tls);
-+ if (retval)
-+ goto bad_fork_cleanup_io;
-+
-+ if (pid != &init_struct_pid) {
-+ pid = alloc_pid(p->nsproxy->pid_ns_for_children);
-+ if (IS_ERR(pid)) {
-+ retval = PTR_ERR(pid);
-+ goto bad_fork_cleanup_thread;
-+ }
-+ }
-+
-+The ktime_get_boot_ns() call is where the "start time" of the process is
-+recorded. The alloc_pid() call is where a free PID is allocated. In between
-+these, some time passes; and because the copy_thread_tls() call between them can
-+access userspace memory when sys_clone() is invoked through the 32-bit syscall
-+entry point, an attacker can even stall the kernel arbitrarily long at this
-+point (by supplying a pointer into userspace memory that is associated with a
-+userfaultfd or is backed by a custom FUSE filesystem).
-+
-+This means that an attacker can immediately call sys_clone() when the victim
-+process is created, often resulting in a process that has the exact same start
-+time reported in procfs; and then the attacker can delay the alloc_pid() call
-+until after the victim process has died and the PID assignment has cycled
-+around. This results in an attacker process that polkit can't distinguish from
-+the victim process.
-+*/
-+
-+
- /**
- * PolkitUnixProcess:
- *
-diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c
-index 97a8d8009886..1e17dfd5b695 100644
---- a/src/polkitbackend/polkitbackendinteractiveauthority.c
-+++ b/src/polkitbackend/polkitbackendinteractiveauthority.c
-@@ -2870,6 +2870,43 @@ temporary_authorization_store_free (TemporaryAuthorizationStore *store)
- g_free (store);
- }
-
-+/* See the comment at the top of polkitunixprocess.c */
-+static gboolean
-+subject_equal_for_authz (PolkitSubject *a,
-+ PolkitSubject *b)
-+{
-+ if (!polkit_subject_equal (a, b))
-+ return FALSE;
-+
-+ /* Now special case unix processes, as we want to protect against
-+ * pid reuse by including the UID.
-+ */
-+ if (POLKIT_IS_UNIX_PROCESS (a) && POLKIT_IS_UNIX_PROCESS (b)) {
-+ PolkitUnixProcess *ap = (PolkitUnixProcess*)a;
-+ int uid_a = polkit_unix_process_get_uid ((PolkitUnixProcess*)a);
-+ PolkitUnixProcess *bp = (PolkitUnixProcess*)b;
-+ int uid_b = polkit_unix_process_get_uid ((PolkitUnixProcess*)b);
-+
-+ if (uid_a != -1 && uid_b != -1)
-+ {
-+ if (uid_a == uid_b)
-+ {
-+ return TRUE;
-+ }
-+ else
-+ {
-+ g_printerr ("denying slowfork; pid %d uid %d != %d!\n",
-+ polkit_unix_process_get_pid (ap),
-+ uid_a, uid_b);
-+ return FALSE;
-+ }
-+ }
-+ /* Fall through; one of the uids is unset so we can't reliably compare */
-+ }
-+
-+ return TRUE;
-+}
-+
- static gboolean
- temporary_authorization_store_has_authorization (TemporaryAuthorizationStore *store,
- PolkitSubject *subject,
-@@ -2912,7 +2949,7 @@ temporary_authorization_store_has_authorization (TemporaryAuthorizationStore *st
- TemporaryAuthorization *authorization = l->data;
-
- if (strcmp (action_id, authorization->action_id) == 0 &&
-- polkit_subject_equal (subject_to_use, authorization->subject))
-+ subject_equal_for_authz (subject_to_use, authorization->subject))
- {
- ret = TRUE;
- if (out_tmp_authz_id != NULL)
diff --git a/patches/polkit-0.105/0100-automake-add-missing-conditional-HAVE_INTROSPECTION.patch b/patches/polkit-0.105/0100-automake-add-missing-conditional-HAVE_INTROSPECTION.patch
deleted file mode 100644
index 88afa7a00..000000000
--- a/patches/polkit-0.105/0100-automake-add-missing-conditional-HAVE_INTROSPECTION.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-From: =?UTF-8?q?Ulrich=20=C3=96lmann?= <u.oelmann@pengutronix.de>
-Date: Wed, 4 Oct 2017 10:57:38 +0200
-Subject: [PATCH] automake: add missing conditional HAVE_INTROSPECTION
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Copy the corresponding m4 file from gobject-introspection-1.52.1.
-
-Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de>
----
- Makefile.am | 2 ++
- m4/introspection.m4 | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 98 insertions(+)
- create mode 100644 m4/introspection.m4
-
-diff --git a/Makefile.am b/Makefile.am
-index 01f0a4bae8f3..d7ad566dc5f7 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1,5 +1,7 @@
- ## Process this file with automake to produce Makefile.in
-
-+ACLOCAL_AMFLAGS = -I m4
-+
- SUBDIRS = actions data src docs po test
-
- NULL =
-diff --git a/m4/introspection.m4 b/m4/introspection.m4
-new file mode 100644
-index 000000000000..d89c3d907d9c
---- /dev/null
-+++ b/m4/introspection.m4
-@@ -0,0 +1,96 @@
-+dnl -*- mode: autoconf -*-
-+dnl Copyright 2009 Johan Dahlin
-+dnl
-+dnl This file is free software; the author(s) gives unlimited
-+dnl permission to copy and/or distribute it, with or without
-+dnl modifications, as long as this notice is preserved.
-+dnl
-+
-+# serial 1
-+
-+m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
-+[
-+ AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
-+ AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
-+ AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
-+
-+ dnl enable/disable introspection
-+ m4_if([$2], [require],
-+ [dnl
-+ enable_introspection=yes
-+ ],[dnl
-+ AC_ARG_ENABLE(introspection,
-+ AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
-+ [Enable introspection for this build]),,
-+ [enable_introspection=auto])
-+ ])dnl
-+
-+ AC_MSG_CHECKING([for gobject-introspection])
-+
-+ dnl presence/version checking
-+ AS_CASE([$enable_introspection],
-+ [no], [dnl
-+ found_introspection="no (disabled, use --enable-introspection to enable)"
-+ ],dnl
-+ [yes],[dnl
-+ PKG_CHECK_EXISTS([gobject-introspection-1.0],,
-+ AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
-+ PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
-+ found_introspection=yes,
-+ AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
-+ ],dnl
-+ [auto],[dnl
-+ PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
-+ dnl Canonicalize enable_introspection
-+ enable_introspection=$found_introspection
-+ ],dnl
-+ [dnl
-+ AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
-+ ])dnl
-+
-+ AC_MSG_RESULT([$found_introspection])
-+
-+ INTROSPECTION_SCANNER=
-+ INTROSPECTION_COMPILER=
-+ INTROSPECTION_GENERATE=
-+ INTROSPECTION_GIRDIR=
-+ INTROSPECTION_TYPELIBDIR=
-+ if test "x$found_introspection" = "xyes"; then
-+ INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
-+ INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
-+ INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
-+ INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
-+ INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
-+ INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
-+ INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
-+ INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
-+ fi
-+ AC_SUBST(INTROSPECTION_SCANNER)
-+ AC_SUBST(INTROSPECTION_COMPILER)
-+ AC_SUBST(INTROSPECTION_GENERATE)
-+ AC_SUBST(INTROSPECTION_GIRDIR)
-+ AC_SUBST(INTROSPECTION_TYPELIBDIR)
-+ AC_SUBST(INTROSPECTION_CFLAGS)
-+ AC_SUBST(INTROSPECTION_LIBS)
-+ AC_SUBST(INTROSPECTION_MAKEFILE)
-+
-+ AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
-+])
-+
-+
-+dnl Usage:
-+dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
-+
-+AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
-+[
-+ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
-+])
-+
-+dnl Usage:
-+dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
-+
-+
-+AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
-+[
-+ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
-+])
diff --git a/patches/polkit-0.105/0101-Add-a-systemd-.service-file.patch b/patches/polkit-0.105/0101-Add-a-systemd-.service-file.patch
deleted file mode 100644
index abb26ccf0..000000000
--- a/patches/polkit-0.105/0101-Add-a-systemd-.service-file.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From: David Zeuthen <davidz@redhat.com>
-Date: Wed, 23 May 2012 16:16:20 -0400
-Subject: [PATCH] Add a systemd .service file
-
-Signed-off-by: David Zeuthen <davidz@redhat.com>
----
- Makefile.am | 7 ++++++-
- configure.ac | 16 +++++++++++++++-
- data/Makefile.am | 13 ++++++++++++-
- data/org.freedesktop.PolicyKit1.service.in | 1 +
- data/polkit.service.in | 8 ++++++++
- 5 files changed, 42 insertions(+), 3 deletions(-)
- create mode 100644 data/polkit.service.in
-
-diff --git a/Makefile.am b/Makefile.am
-index d7ad566dc5f7..f66424040277 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -11,7 +11,12 @@ EXTRA_DIST = \
- $(NULL)
-
- # xsltproc barfs on 'make distcheck'; disable for now
--DISTCHECK_CONFIGURE_FLAGS=--disable-man-pages --disable-gtk-doc --disable-introspection
-+DISTCHECK_CONFIGURE_FLAGS= \
-+ --disable-man-pages \
-+ --disable-gtk-doc \
-+ --disable-introspection \
-+ --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir) \
-+ $(NULL)
-
- sign : dist
- gpg --armor --detach-sign --output polkit-$(VERSION).tar.gz.sign polkit-$(VERSION).tar.gz
-diff --git a/configure.ac b/configure.ac
-index f55ddb7fa002..e1a514599d0e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -180,6 +180,19 @@ AC_SUBST(SYSTEMD_CFLAGS)
- AC_SUBST(SYSTEMD_LIBS)
- AM_CONDITIONAL(HAVE_SYSTEMD, [test "$have_systemd" = "yes"], [Using systemd])
-
-+dnl ---------------------------------------------------------------------------
-+dnl - systemd unit / service files
-+dnl ---------------------------------------------------------------------------
-+
-+AC_ARG_WITH([systemdsystemunitdir],
-+ AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
-+ [],
-+ [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
-+if test "x$with_systemdsystemunitdir" != "xno"; then
-+ AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
-+fi
-+AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$systemdsystemunitdir"])
-+
- dnl ---------------------------------------------------------------------------
- dnl - Select which authentication framework to use
- dnl ---------------------------------------------------------------------------
-@@ -484,7 +497,8 @@ echo "
- Distribution/OS: ${with_os_type}
- Authentication framework: ${POLKIT_AUTHFW}
- Session tracking: ${SESSION_TRACKING}
-- PAM support: ${have_pam}"
-+ PAM support: ${have_pam}
-+ systemdsystemunitdir: ${systemdsystemunitdir}"
-
- if test "$have_pam" = yes ; then
- echo "
-diff --git a/data/Makefile.am b/data/Makefile.am
-index ec41433b48d9..17e829b97421 100644
---- a/data/Makefile.am
-+++ b/data/Makefile.am
-@@ -20,15 +20,26 @@ endif
- pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = polkit-gobject-1.pc polkit-backend-1.pc polkit-agent-1.pc
-
-+
-+systemdservice_in_files = polkit.service.in
-+
-+if HAVE_SYSTEMD
-+systemdservicedir = $(systemdsystemunitdir)
-+systemdservice_DATA = $(systemdservice_in_files:.service.in=.service)
-+$(systemdservice_DATA): $(systemdservice_in_files) Makefile
-+ @sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@
-+endif
-+
- CLEANFILES = $(BUILT_SOURCES)
-
- EXTRA_DIST = \
- org.freedesktop.PolicyKit1.Authority.xml \
- org.freedesktop.PolicyKit1.AuthenticationAgent.xml \
- $(service_in_files) \
-+ $(systemdservice_in_files) \
- $(dbusconf_DATA) \
- $(NULL)
-
-
- clean-local :
-- rm -f *~ $(service_DATA)
-+ rm -f *~ $(service_DATA) $(systemdservice_DATA)
-diff --git a/data/org.freedesktop.PolicyKit1.service.in b/data/org.freedesktop.PolicyKit1.service.in
-index b6cd02b6e47c..fbceb3ffe31a 100644
---- a/data/org.freedesktop.PolicyKit1.service.in
-+++ b/data/org.freedesktop.PolicyKit1.service.in
-@@ -2,3 +2,4 @@
- Name=org.freedesktop.PolicyKit1
- Exec=@libexecdir@/polkitd --no-debug
- User=root
-+SystemdService=polkit.service
-diff --git a/data/polkit.service.in b/data/polkit.service.in
-new file mode 100644
-index 000000000000..efd29481d847
---- /dev/null
-+++ b/data/polkit.service.in
-@@ -0,0 +1,8 @@
-+[Unit]
-+Description=Authorization Manager
-+Documentation=man:polkit(8)
-+
-+[Service]
-+Type=dbus
-+BusName=org.freedesktop.PolicyKit1
-+ExecStart=@libexecdir@/polkitd --no-debug
diff --git a/patches/polkit-0.105/autogen.sh b/patches/polkit-0.105/autogen.sh
deleted file mode 120000
index 9f8a4cb7d..000000000
--- a/patches/polkit-0.105/autogen.sh
+++ /dev/null
@@ -1 +0,0 @@
-../autogen.sh \ No newline at end of file
diff --git a/patches/polkit-0.105/series b/patches/polkit-0.105/series
deleted file mode 100644
index 107495884..000000000
--- a/patches/polkit-0.105/series
+++ /dev/null
@@ -1,50 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-#tag:debian --start-number 1
-0001-0.106-agenthelper-pam-Fix-newline-trimming-code.patch
-0002-0.108-build-Fix-.gir-generation-for-parallel-make.patch
-0003-0.110-Set-XAUTHORITY-environment-variable-if-is-unse.patch
-0004-0.110-Fix-build-on-GNU-Hurd.patch
-0005-0.111-pkexec-Set-process-environment-from-pam_getenv.patch
-0006-0.111-Fix-a-memory-leak.patch
-0007-0.112-Use-GOnce-for-interface-type-registration.patch
-0008-0.112-polkitunixprocess-Deprecate-racy-APIs.patch
-0009-0.112-pkcheck-Support-process-pid-start-time-uid-syn.patch
-0010-0.113-Port-internals-non-deprecated-PolkitProcess-AP.patch
-0011-0.113-pkexec-Work-around-systemd-injecting-broken-XD.patch
-0012-0.113-PolkitAgentSession-fix-race-between-child-and-.patch
-0013-0.113-polkitd-Fix-problem-with-removing-non-existent.patch
-0014-0.113-PolkitSystemBusName-Add-public-API-to-retrieve.patch
-0015-0.113-Fixed-compilation-problem-in-the-backend.patch
-0016-0.113-Don-t-discard-error-data-returned-by-polkit_sy.patch
-0017-0.113-sessionmonitor-systemd-Deduplicate-code-paths.patch
-0018-0.113-sessionmonitor-systemd-prepare-for-D-Bus-user-.patch
-0019-0.113-Refuse-duplicate-user-arguments-to-pkexec.patch
-0020-0.113-authority-Fix-memory-leak-in-EnumerateActions-.patch
-0021-0.113-CVE-2015-3218-backend-Handle-invalid-object-pa.patch
-0022-0.113-sessionmonitor-systemd-Use-sd_uid_get_state-to.patch
-0023-0.113-Fix-a-possible-NULL-dereference.patch
-0024-0.113-Remove-a-redundant-assignment.patch
-0025-0.113-Fix-duplicate-GError-use-when-uid-is-missing.patch
-0026-0.113-Fix-a-crash-when-two-authentication-requests-a.patch
-0027-0.113-CVE-2015-4625-Use-unpredictable-cookie-values-.patch
-0028-0.113-CVE-2015-4625-Bind-use-of-cookies-to-specific-.patch
-0029-0.113-docs-Update-for-changes-to-uid-binding-Authent.patch
-0030-0.113-Fix-a-per-authorization-memory-leak.patch
-0031-0.113-Fix-a-memory-leak-when-registering-an-authenti.patch
-0032-0.113-CVE-2015-3255-Fix-GHashTable-usage.patch
-0033-0.113-Fix-use-after-free-in-polkitagentsession.c.patch
-0034-0.114-Fix-multi-line-pam-text-info.patch
-0035-0.114-Refactor-send_to_helper-usage.patch
-0036-0.114-Support-polkit-session-agent-running-outside-u.patch
-0037-0.115-Fix-CVE-2018-1116-Trusting-client-supplied-UID.patch
-0038-0.116-Allow-negative-uids-gids-in-PolkitUnixUser-and.patch
-0039-0.116-Allow-uid-of-1-for-a-PolkitUnixProcess.patch
-0040-Revert-Default-to-AdminIdentities-unix-group-wheel-f.patch
-0041-Build-against-libsystemd.patch
-0042-Move-D-Bus-policy-file-to-usr-share-dbus-1-system.d.patch
-0043-0.116-backend-Compare-PolkitUnixProcess-uids-for-tem.patch
-#tag:ptxdist --start-number 100
-0100-automake-add-missing-conditional-HAVE_INTROSPECTION.patch
-0101-Add-a-systemd-.service-file.patch
-# 6f0039b018c1c5a63bb80b750d1301dd - git-ptx-patches magic
diff --git a/patches/polkit-124/0001-build-install-polkit-agent-1-library-with-libs-only.patch b/patches/polkit-124/0001-build-install-polkit-agent-1-library-with-libs-only.patch
new file mode 100644
index 000000000..460128a19
--- /dev/null
+++ b/patches/polkit-124/0001-build-install-polkit-agent-1-library-with-libs-only.patch
@@ -0,0 +1,65 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Wed, 10 Apr 2024 16:53:02 +0200
+Subject: [PATCH] build: install polkit-agent-1 library with libs-only
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ src/meson.build | 2 +-
+ src/polkitagent/meson.build | 30 ++++++++++++++++--------------
+ 2 files changed, 17 insertions(+), 15 deletions(-)
+
+diff --git a/src/meson.build b/src/meson.build
+index 985d0b08a729..f584e9e0d074 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -4,9 +4,9 @@ symbol_map = meson.current_source_dir() / 'symbol.map'
+ ldflags = cc.get_supported_link_arguments('-Wl,--version-script,@0@'.format(symbol_map))
+
+ subdir('polkit')
++subdir('polkitagent')
+ if not get_option('libs-only')
+ subdir('polkitbackend')
+- subdir('polkitagent')
+ subdir('programs')
+ endif
+
+diff --git a/src/polkitagent/meson.build b/src/polkitagent/meson.build
+index bee38201d53e..a69e96b6c265 100644
+--- a/src/polkitagent/meson.build
++++ b/src/polkitagent/meson.build
+@@ -101,19 +101,21 @@ if enable_introspection
+ )
+ endif
+
+-sources = files(
+- 'polkitagenthelperprivate.c',
+- 'polkitagenthelper-@0@.c'.format(auth_fw),
+-)
++if not get_option('libs-only')
++ sources = files(
++ 'polkitagenthelperprivate.c',
++ 'polkitagenthelper-@0@.c'.format(auth_fw),
++ )
+
+-deps = auth_deps + [libpolkit_gobject_dep]
++ deps = auth_deps + [libpolkit_gobject_dep]
+
+-executable(
+- '@0@-agent-helper-@1@'.format(meson.project_name(), pk_api_version),
+- sources,
+- include_directories: top_inc,
+- dependencies: deps,
+- c_args: '-D_POLKIT_COMPILATION',
+- install: true,
+- install_dir: pk_libprivdir,
+-)
++ executable(
++ '@0@-agent-helper-@1@'.format(meson.project_name(), pk_api_version),
++ sources,
++ include_directories: top_inc,
++ dependencies: deps,
++ c_args: '-D_POLKIT_COMPILATION',
++ install: true,
++ install_dir: pk_libprivdir,
++ )
++endif
diff --git a/patches/polkit-124/0002-build-libpolkit-agent-1-does-not-use-expat.patch b/patches/polkit-124/0002-build-libpolkit-agent-1-does-not-use-expat.patch
new file mode 100644
index 000000000..ca97aad79
--- /dev/null
+++ b/patches/polkit-124/0002-build-libpolkit-agent-1-does-not-use-expat.patch
@@ -0,0 +1,21 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Wed, 10 Apr 2024 17:16:11 +0200
+Subject: [PATCH] build: libpolkit-agent-1 does not use expat
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ src/polkitagent/meson.build | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/polkitagent/meson.build b/src/polkitagent/meson.build
+index a69e96b6c265..c6f9758588da 100644
+--- a/src/polkitagent/meson.build
++++ b/src/polkitagent/meson.build
+@@ -36,7 +36,6 @@ sources = enum_sources + marshal_sources + files(
+ )
+
+ deps = [
+- expat_dep,
+ gio_unix_dep,
+ libpolkit_gobject_dep,
+ ]
diff --git a/patches/polkit-124/0003-build-libexpat-is-not-needed-with-libs-only.patch b/patches/polkit-124/0003-build-libexpat-is-not-needed-with-libs-only.patch
new file mode 100644
index 000000000..60abcc5a7
--- /dev/null
+++ b/patches/polkit-124/0003-build-libexpat-is-not-needed-with-libs-only.patch
@@ -0,0 +1,34 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Wed, 10 Apr 2024 17:20:16 +0200
+Subject: [PATCH] build: libexpat is not needed with libs-only
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ meson.build | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 2f81c907d81b..c1cff386bd2d 100644
+--- a/meson.build
++++ b/meson.build
+@@ -130,16 +130,16 @@ gio_unix_dep = dependency('gio-unix-2.0', version: glib_req_version)
+ glib_dep = dependency('glib-2.0', version: glib_req_version)
+ gobject_dep = dependency('gobject-2.0', version: glib_req_version)
+
+-expat_dep = dependency('expat')
+-assert(cc.has_header('expat.h', dependencies: expat_dep), 'Can\'t find expat.h. Please install expat.')
+-assert(cc.has_function('XML_ParserCreate', dependencies: expat_dep), 'Can\'t find expat library. Please install expat.')
+-
+ duktape_req_version = '>= 2.2.0'
+
+ js_engine = get_option('js_engine')
+ libs_only = get_option('libs-only')
+ if libs_only
+ js_engine = ''
++else
++ expat_dep = dependency('expat')
++ assert(cc.has_header('expat.h', dependencies: expat_dep), 'Can\'t find expat.h. Please install expat.')
++ assert(cc.has_function('XML_ParserCreate', dependencies: expat_dep), 'Can\'t find expat library. Please install expat.')
+ endif
+
+ if js_engine == 'duktape'
diff --git a/patches/polkit-124/series b/patches/polkit-124/series
new file mode 100644
index 000000000..a06955a11
--- /dev/null
+++ b/patches/polkit-124/series
@@ -0,0 +1,6 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-build-install-polkit-agent-1-library-with-libs-only.patch
+0002-build-libpolkit-agent-1-does-not-use-expat.patch
+0003-build-libexpat-is-not-needed-with-libs-only.patch
+# 7672d71e4f4da0138c96774538c6b704 - git-ptx-patches magic
diff --git a/patches/portmap_6.0/portmap_6.0-fix-disable-tcpwrapper.diff b/patches/portmap_6.0/portmap_6.0-fix-disable-tcpwrapper.diff
deleted file mode 100644
index d2aa99674..000000000
--- a/patches/portmap_6.0/portmap_6.0-fix-disable-tcpwrapper.diff
+++ /dev/null
@@ -1,22 +0,0 @@
-From: Robert Schwebel <r.schwebel@pengutronix.de>
-Subject: Include tcpd.h only if HOST_ACCESS is selected
-
-Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
----
- pmap_check.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-Index: b/pmap_check.c
-===================================================================
---- a/pmap_check.c
-+++ b/pmap_check.c
-@@ -44,7 +44,9 @@
- #include <netinet/in.h>
- #include <rpc/rpcent.h>
- #endif
-+#ifdef HOSTS_ACCESS
- #include <tcpd.h>
-+#endif
- #include <arpa/inet.h>
- #include <grp.h>
-
diff --git a/patches/portmap_6.0/series b/patches/portmap_6.0/series
deleted file mode 100644
index b26da3e09..000000000
--- a/patches/portmap_6.0/series
+++ /dev/null
@@ -1 +0,0 @@
-portmap_6.0-fix-disable-tcpwrapper.diff
diff --git a/patches/libpcap-1.8.1/autogen.sh b/patches/powertop-v2.15/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/libpcap-1.8.1/autogen.sh
+++ b/patches/powertop-v2.15/autogen.sh
diff --git a/patches/ppp-2.4.7/0001-abort-on-errors-in-subdir-builds.patch b/patches/ppp-2.4.7/0001-abort-on-errors-in-subdir-builds.patch
deleted file mode 100644
index c6a76ce65..000000000
--- a/patches/ppp-2.4.7/0001-abort-on-errors-in-subdir-builds.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From: Martin von Gagern <Martin.vGagern@gmx.net>
-Date: Sat, 9 Aug 2014 22:44:45 -0400
-Subject: [PATCH] abort on errors in subdir builds
-
-The current recursive loops do not check the exit status of make
-in subdirs which leads to `make` passing even when a subdir failed
-to compile or install.
-
-URL: https://bugs.gentoo.org/334727
-Signed-off-by: Martin von Gagern <Martin.vGagern@gmx.net>
-Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/plugins/Makefile.linux | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/pppd/plugins/Makefile.linux b/pppd/plugins/Makefile.linux
-index ab8cf50d9472..8a90e393a057 100644
---- a/pppd/plugins/Makefile.linux
-+++ b/pppd/plugins/Makefile.linux
-@@ -27,7 +27,7 @@ include .depend
- endif
-
- all: $(PLUGINS)
-- for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d all; done
-+ for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d all || exit $$?; done
-
- %.so: %.c
- $(CC) -o $@ $(LDFLAGS) $(CFLAGS) $^
-@@ -37,12 +37,12 @@ VERSION = $(shell awk -F '"' '/VERSION/ { print $$2; }' ../patchlevel.h)
- install: $(PLUGINS)
- $(INSTALL) -d $(LIBDIR)
- $(INSTALL) $? $(LIBDIR)
-- for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d install; done
-+ for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d install || exit $$?; done
-
- clean:
- rm -f *.o *.so *.a
-- for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d clean; done
-+ for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d clean || exit $$?; done
-
- depend:
- $(CPP) -M $(CFLAGS) *.c >.depend
-- for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d depend; done
-+ for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d depend || exit $$?; done
diff --git a/patches/ppp-2.4.7/0002-scripts-Avoid-killing-wrong-pppd.patch b/patches/ppp-2.4.7/0002-scripts-Avoid-killing-wrong-pppd.patch
deleted file mode 100644
index dc24c228e..000000000
--- a/patches/ppp-2.4.7/0002-scripts-Avoid-killing-wrong-pppd.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From: radaiming <radaiming@gmail.com>
-Date: Sat, 13 Dec 2014 14:42:34 +0800
-Subject: [PATCH] scripts: Avoid killing wrong pppd
-
- poff could kill other pppd processes when there are many pppd
- running on different serial port.
-
- Signed-off-by: Ming Dai <radaiming@gmail.com>
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- scripts/poff | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scripts/poff b/scripts/poff
-index 3f55a7f40010..5b45d98a2b6a 100644
---- a/scripts/poff
-+++ b/scripts/poff
-@@ -91,7 +91,7 @@ if test "$#" -eq 0 -o "$MODE" = "all" ; then
- fi
-
- # There is an argument, so kill the pppd started on that provider.
--PID=`ps axw | grep "[ /]pppd call $1" | awk '{print $1}'`
-+PID=`ps axw | grep "[ /]pppd call $1" | grep -w "$1" | awk '{print $1}'`
- if test -n "$PID" ; then
- $KILL -$SIG $PID || {
- echo "$0: $KILL failed. None ${DONE}."
diff --git a/patches/ppp-2.4.7/0003-pppd-Fix-sign-extension-when-displaying-bytes-in-oct.patch b/patches/ppp-2.4.7/0003-pppd-Fix-sign-extension-when-displaying-bytes-in-oct.patch
deleted file mode 100644
index 2bd23b921..000000000
--- a/patches/ppp-2.4.7/0003-pppd-Fix-sign-extension-when-displaying-bytes-in-oct.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: "Philip A. Prindeville" <philipp@redfish-solutions.com>
-Date: Fri, 19 Dec 2014 17:52:58 -0700
-Subject: [PATCH] pppd: Fix sign-extension when displaying bytes in octal
-
-print_string() displays characters as \\%.03o but without first
-casting it from "char" to "unsigned char" so it gets sign-extended
-to an int. This causes output like \37777777630 instead of \230.
-
-Signed-off-by: Philip A. Prindeville <philipp@redfish-solutions.com>
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/utils.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pppd/utils.c b/pppd/utils.c
-index 29bf970905d5..3ac1b60926d2 100644
---- a/pppd/utils.c
-+++ b/pppd/utils.c
-@@ -625,7 +625,7 @@ print_string(p, len, printer, arg)
- printer(arg, "\\t");
- break;
- default:
-- printer(arg, "\\%.3o", c);
-+ printer(arg, "\\%.3o", (unsigned char) c);
- }
- }
- }
diff --git a/patches/ppp-2.4.7/0004-Suppress-false-error-message-on-PPPoE-disconnect.patch b/patches/ppp-2.4.7/0004-Suppress-false-error-message-on-PPPoE-disconnect.patch
deleted file mode 100644
index 6d4bd5c10..000000000
--- a/patches/ppp-2.4.7/0004-Suppress-false-error-message-on-PPPoE-disconnect.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From: Simon Farnsworth <simon@farnz.org.uk>
-Date: Sun, 1 Mar 2015 11:49:06 +0000
-Subject: [PATCH] Suppress false error message on PPPoE disconnect
-
-Once the kernel handles PPPoE PADTs correctly[1], a PADT triggered
-disconnect will result in EALREADY when pppd tries to clear the session ID.
-
-Simply ignore the error if, and only if, the error is EALREADY
-
-[1] https://patchwork.ozlabs.org/patch/444717/
-
-Signed-off-by: Simon Farnsworth <simon@farnz.org.uk>
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/plugins/rp-pppoe/plugin.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pppd/plugins/rp-pppoe/plugin.c b/pppd/plugins/rp-pppoe/plugin.c
-index a8c2bb4f4a6a..da50cdf2b9d3 100644
---- a/pppd/plugins/rp-pppoe/plugin.c
-+++ b/pppd/plugins/rp-pppoe/plugin.c
-@@ -270,7 +270,7 @@ PPPOEDisconnectDevice(void)
- memcpy(sp.sa_addr.pppoe.dev, conn->ifName, IFNAMSIZ);
- memcpy(sp.sa_addr.pppoe.remote, conn->peerEth, ETH_ALEN);
- if (connect(conn->sessionSocket, (struct sockaddr *) &sp,
-- sizeof(struct sockaddr_pppox)) < 0)
-+ sizeof(struct sockaddr_pppox)) < 0 && errno != EALREADY)
- error("Failed to disconnect PPPoE socket: %d %m", errno);
- close(conn->sessionSocket);
- /* don't send PADT?? */
diff --git a/patches/ppp-2.4.7/0005-Send-PADT-on-PPPoE-disconnect.patch b/patches/ppp-2.4.7/0005-Send-PADT-on-PPPoE-disconnect.patch
deleted file mode 100644
index 28efdfc71..000000000
--- a/patches/ppp-2.4.7/0005-Send-PADT-on-PPPoE-disconnect.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From: Simon Farnsworth <simon@farnz.org.uk>
-Date: Sun, 1 Mar 2015 11:53:58 +0000
-Subject: [PATCH] Send PADT on PPPoE disconnect
-
-Once we've terminated the PPP session, there is no chance of a PPP layer
-disconnect. Some PPPoE relays don't detect the PPP session going down, and
-depend on a long timeout or a PPPoE PADT to terminate the session.
-
-Send a PADT on disconnect to work around these buggy relays.
-
-Signed-off-by: Simon Farnsworth <simon@farnz.org.uk>
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/plugins/rp-pppoe/plugin.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/pppd/plugins/rp-pppoe/plugin.c b/pppd/plugins/rp-pppoe/plugin.c
-index da50cdf2b9d3..c89be94250bc 100644
---- a/pppd/plugins/rp-pppoe/plugin.c
-+++ b/pppd/plugins/rp-pppoe/plugin.c
-@@ -273,9 +273,10 @@ PPPOEDisconnectDevice(void)
- sizeof(struct sockaddr_pppox)) < 0 && errno != EALREADY)
- error("Failed to disconnect PPPoE socket: %d %m", errno);
- close(conn->sessionSocket);
-- /* don't send PADT?? */
-- if (conn->discoverySocket >= 0)
-+ if (conn->discoverySocket >= 0) {
-+ sendPADT(conn, NULL);
- close(conn->discoverySocket);
-+ }
- }
-
- static void
diff --git a/patches/ppp-2.4.7/0006-pppd-ipxcp-Prevent-buffer-overrun-on-remote-router-n.patch b/patches/ppp-2.4.7/0006-pppd-ipxcp-Prevent-buffer-overrun-on-remote-router-n.patch
deleted file mode 100644
index 7d98127c2..000000000
--- a/patches/ppp-2.4.7/0006-pppd-ipxcp-Prevent-buffer-overrun-on-remote-router-n.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: Paul Mackerras <paulus@samba.org>
-Date: Fri, 14 Aug 2015 17:56:26 +1000
-Subject: [PATCH] pppd: ipxcp: Prevent buffer overrun on remote router name
-
-This fixes an if condition to prevent a possible 1-byte overrun
-on ipxcp_hisoptions[0].name.
-
-Reported-by: "Sabas Rosales, Blanca E" <blanca.e.sabas.rosales@intel.com>
-Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/ipxcp.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pppd/ipxcp.c b/pppd/ipxcp.c
-index 7b2343e15537..aaff10f76200 100644
---- a/pppd/ipxcp.c
-+++ b/pppd/ipxcp.c
-@@ -1194,7 +1194,7 @@ ipxcp_reqci(f, inp, len, reject_if_disagree)
- case IPX_ROUTER_NAME:
- if (cilen >= CILEN_NAME) {
- int name_size = cilen - CILEN_NAME;
-- if (name_size > sizeof (ho->name))
-+ if (name_size >= sizeof (ho->name))
- name_size = sizeof (ho->name) - 1;
- memset (ho->name, 0, sizeof (ho->name));
- memcpy (ho->name, p, name_size);
diff --git a/patches/ppp-2.4.7/0007-pppd-Fix-ccp_options.mppe-type.patch b/patches/ppp-2.4.7/0007-pppd-Fix-ccp_options.mppe-type.patch
deleted file mode 100644
index 475edae24..000000000
--- a/patches/ppp-2.4.7/0007-pppd-Fix-ccp_options.mppe-type.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: Sylvain Rochet <gradator@gradator.net>
-Date: Wed, 25 Mar 2015 00:25:18 +0100
-Subject: [PATCH] pppd: Fix ccp_options.mppe type
-
-This corrects the type of ccp_options.mppe; it is actually a bitfield of
-MPPE_OPT_* and not a boolean.
-
-Signed-off-by: Sylvain Rochet <gradator@gradator.net>
-Signed-off-by: Paul Mackerras <paulus@samba.org>
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/ccp.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pppd/ccp.h b/pppd/ccp.h
-index 6f4a2fee0a2c..76446db007c0 100644
---- a/pppd/ccp.h
-+++ b/pppd/ccp.h
-@@ -37,7 +37,7 @@ typedef struct ccp_options {
- bool predictor_2; /* do Predictor-2? */
- bool deflate_correct; /* use correct code for deflate? */
- bool deflate_draft; /* use draft RFC code for deflate? */
-- bool mppe; /* do MPPE? */
-+ u_char mppe; /* MPPE bitfield */
- u_short bsd_bits; /* # bits/code for BSD Compress */
- u_short deflate_size; /* lg(window size) for Deflate */
- short method; /* code for chosen compression method */
diff --git a/patches/ppp-2.4.7/0008-pppd-Fix-ccp_cilen-calculated-size-if-both-deflate_c.patch b/patches/ppp-2.4.7/0008-pppd-Fix-ccp_cilen-calculated-size-if-both-deflate_c.patch
deleted file mode 100644
index d73b4de32..000000000
--- a/patches/ppp-2.4.7/0008-pppd-Fix-ccp_cilen-calculated-size-if-both-deflate_c.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From: Sylvain Rochet <gradator@gradator.net>
-Date: Tue, 24 Mar 2015 21:21:40 +0100
-Subject: [PATCH] pppd: Fix ccp_cilen calculated size if both deflate_correct
- and deflate_draft are enabled
-
-This fixes a bug where ccp_cilen() will return 4 bytes less than
-necessary for the addci buffer if both deflate_correct and
-deflate_draft are enabled.
-
-Signed-off-by: Sylvain Rochet <gradator@gradator.net>
-Signed-off-by: Paul Mackerras <paulus@samba.org>
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/ccp.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/pppd/ccp.c b/pppd/ccp.c
-index 5814f358eb44..7d7922afcfc0 100644
---- a/pppd/ccp.c
-+++ b/pppd/ccp.c
-@@ -676,7 +676,8 @@ ccp_cilen(f)
- ccp_options *go = &ccp_gotoptions[f->unit];
-
- return (go->bsd_compress? CILEN_BSD_COMPRESS: 0)
-- + (go->deflate? CILEN_DEFLATE: 0)
-+ + (go->deflate && go->deflate_correct? CILEN_DEFLATE: 0)
-+ + (go->deflate && go->deflate_draft? CILEN_DEFLATE: 0)
- + (go->predictor_1? CILEN_PREDICTOR_1: 0)
- + (go->predictor_2? CILEN_PREDICTOR_2: 0)
- + (go->mppe? CILEN_MPPE: 0);
diff --git a/patches/ppp-2.4.7/0009-Fix-a-typo-in-comment.-Diff-from-Yuuichi-Someya.patch b/patches/ppp-2.4.7/0009-Fix-a-typo-in-comment.-Diff-from-Yuuichi-Someya.patch
deleted file mode 100644
index 39af8cf33..000000000
--- a/patches/ppp-2.4.7/0009-Fix-a-typo-in-comment.-Diff-from-Yuuichi-Someya.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From: YASUOKA Masahiko <yasuoka@yasuoka.net>
-Date: Wed, 16 Mar 2016 13:39:19 +0900
-Subject: [PATCH] Fix a typo in comment. Diff from Yuuichi Someya.
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/fsm.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pppd/fsm.c b/pppd/fsm.c
-index c200cc3a8438..e9bd34f0e8f4 100644
---- a/pppd/fsm.c
-+++ b/pppd/fsm.c
-@@ -468,7 +468,7 @@ fsm_rconfreq(f, id, inp, len)
- f->nakloops = 0;
-
- } else {
-- /* we sent CONFACK or CONFREJ */
-+ /* we sent CONFNAK or CONFREJ */
- if (f->state != ACKRCVD)
- f->state = REQSENT;
- if( code == CONFNAK )
diff --git a/patches/ppp-2.4.7/0010-plog-count-only-relevant-lines-from-syslog.patch b/patches/ppp-2.4.7/0010-plog-count-only-relevant-lines-from-syslog.patch
deleted file mode 100644
index c9d56cdbb..000000000
--- a/patches/ppp-2.4.7/0010-plog-count-only-relevant-lines-from-syslog.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From: Dmitry Deshevoy <mityada@gmail.com>
-Date: Thu, 31 Mar 2016 23:39:32 +0400
-Subject: [PATCH] plog: count only relevant lines from syslog
-
-Closes paulusmack/ppp#42
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- scripts/plog | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scripts/plog b/scripts/plog
-index 84d2c7340cc6..7cb53346413d 100644
---- a/scripts/plog
-+++ b/scripts/plog
-@@ -3,5 +3,5 @@
- if [ -s /var/log/ppp.log ]; then
- exec tail "$@" /var/log/ppp.log
- else
-- exec tail "$@" /var/log/syslog | grep ' \(pppd\|chat\)\['
-+ exec grep ' \(pppd\|chat\)\[' /var/log/syslog | tail "$@"
- fi
diff --git a/patches/ppp-2.4.7/0011-Change-include-from-sys-errno.h-to-errno.h.patch b/patches/ppp-2.4.7/0011-Change-include-from-sys-errno.h-to-errno.h.patch
deleted file mode 100644
index ed313eeaa..000000000
--- a/patches/ppp-2.4.7/0011-Change-include-from-sys-errno.h-to-errno.h.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From: Stefan Nickl <Stefan.Nickl@gmail.com>
-Date: Wed, 10 Aug 2016 21:32:21 +0200
-Subject: [PATCH] Change include from sys/errno.h to errno.h
-
-According to POSIX, the canonical location for errno.h is on the top level.
-
-Signed-off-by: Stefan Nickl <Stefan.Nickl@gmail.com>
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/sys-linux.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pppd/sys-linux.c b/pppd/sys-linux.c
-index e5e9baf8821f..908aa4f22297 100644
---- a/pppd/sys-linux.c
-+++ b/pppd/sys-linux.c
-@@ -73,12 +73,12 @@
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <sys/time.h>
--#include <sys/errno.h>
- #include <sys/file.h>
- #include <sys/stat.h>
- #include <sys/utsname.h>
- #include <sys/sysmacros.h>
-
-+#include <errno.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <syslog.h>
diff --git a/patches/ppp-2.4.7/0012-pppd-allow-use-of-arbitrary-interface-names.patch b/patches/ppp-2.4.7/0012-pppd-allow-use-of-arbitrary-interface-names.patch
deleted file mode 100644
index 26d56de1d..000000000
--- a/patches/ppp-2.4.7/0012-pppd-allow-use-of-arbitrary-interface-names.patch
+++ /dev/null
@@ -1,214 +0,0 @@
-From: Paul Mackerras <paulus@samba.org>
-Date: Tue, 23 Aug 2016 16:10:21 +1000
-Subject: [PATCH] pppd: allow use of arbitrary interface names
-
-This is a modified version of a patch from openSUSE that enables PPP interfaces
-to be called arbitrary names, rather than simply pppX where X is the unit
-number.
-
-The modifications from the stock openSUSE patch are:
- refresh patch on top of 018_ip up_option.diff
-- fix a printf format-string vulnerability in pppd/main.c:set_ifunit()
-- clarify the pppd.8 manpage additions
-- patch pppstats/pppstats.c to query renamed interfaces without complaint
-
-Origin: SUSE
-Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=458646
-Forwarded: no
-Reviewed-by: Chris Boot <bootc@debian.org>
-Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/main.c | 16 ++++++----------
- pppd/options.c | 5 +++++
- pppd/pppd.8 | 8 +++++++-
- pppd/pppd.h | 11 +++++++++++
- pppd/sys-linux.c | 15 +++++++++++++++
- pppstats/pppstats.c | 12 ++++++------
- 6 files changed, 50 insertions(+), 17 deletions(-)
-
-diff --git a/pppd/main.c b/pppd/main.c
-index 6d50d1bac1d9..f1986ed68d0b 100644
---- a/pppd/main.c
-+++ b/pppd/main.c
-@@ -124,7 +124,7 @@
- static const char rcsid[] = RCSID;
-
- /* interface vars */
--char ifname[32]; /* Interface name */
-+char ifname[MAXIFNAMELEN]; /* Interface name */
- int ifunit; /* Interface unit number */
-
- struct channel *the_channel;
-@@ -298,13 +298,6 @@ struct protent *protocols[] = {
- NULL
- };
-
--/*
-- * If PPP_DRV_NAME is not defined, use the default "ppp" as the device name.
-- */
--#if !defined(PPP_DRV_NAME)
--#define PPP_DRV_NAME "ppp"
--#endif /* !defined(PPP_DRV_NAME) */
--
- int
- main(argc, argv)
- int argc;
-@@ -737,8 +730,11 @@ void
- set_ifunit(iskey)
- int iskey;
- {
-- info("Using interface %s%d", PPP_DRV_NAME, ifunit);
-- slprintf(ifname, sizeof(ifname), "%s%d", PPP_DRV_NAME, ifunit);
-+ if (req_ifname[0] != '\0')
-+ slprintf(ifname, sizeof(ifname), "%s", req_ifname);
-+ else
-+ slprintf(ifname, sizeof(ifname), "%s%d", PPP_DRV_NAME, ifunit);
-+ info("Using interface %s", ifname);
- script_setenv("IFNAME", ifname, iskey);
- if (iskey) {
- create_pidfile(getpid()); /* write pid to file */
-diff --git a/pppd/options.c b/pppd/options.c
-index f66b7657bc31..91da515ac533 100644
---- a/pppd/options.c
-+++ b/pppd/options.c
-@@ -114,6 +114,7 @@ char linkname[MAXPATHLEN]; /* logical name for link */
- bool tune_kernel; /* may alter kernel settings */
- int connect_delay = 1000; /* wait this many ms after connect script */
- int req_unit = -1; /* requested interface unit */
-+char req_ifname[MAXIFNAMELEN]; /* requested interface name */
- bool multilink = 0; /* Enable multilink operation */
- char *bundle_name = NULL; /* bundle name for multilink */
- bool dump_options; /* print out option values */
-@@ -283,6 +284,10 @@ option_t general_options[] = {
- "PPP interface unit number to use if possible",
- OPT_PRIO | OPT_LLIMIT, 0, 0 },
-
-+ { "ifname", o_string, req_ifname,
-+ "Set PPP interface name",
-+ OPT_PRIO | OPT_PRIV | OPT_STATIC, NULL, MAXIFNAMELEN },
-+
- { "dump", o_bool, &dump_options,
- "Print out option values after parsing all options", 1 },
- { "dryrun", o_bool, &dryrun,
-diff --git a/pppd/pppd.8 b/pppd/pppd.8
-index e2768b135273..64659cf867b2 100644
---- a/pppd/pppd.8
-+++ b/pppd/pppd.8
-@@ -1073,7 +1073,13 @@ under Linux and FreeBSD 2.2.8 and later.
- .TP
- .B unit \fInum
- Sets the ppp unit number (for a ppp0 or ppp1 etc interface name) for outbound
--connections.
-+connections. If the unit is already in use a dynamically allocated number will
-+be used.
-+.TP
-+.B ifname \fIstring
-+Set the ppp interface name for outbound connections. If the interface name is
-+already in use, or if the name cannot be used for any other reason, pppd will
-+terminate.
- .TP
- .B unset \fIname
- Remove a variable from the environment variable for scripts that are
-diff --git a/pppd/pppd.h b/pppd/pppd.h
-index 247fa153739b..1a1bf0b99582 100644
---- a/pppd/pppd.h
-+++ b/pppd/pppd.h
-@@ -80,6 +80,16 @@
- #define MAXARGS 1 /* max # args to a command */
- #define MAXNAMELEN 256 /* max length of hostname or name for auth */
- #define MAXSECRETLEN 256 /* max length of password or secret */
-+#define MAXIFNAMELEN 32 /* max length of interface name; or use IFNAMSIZ, can we
-+ always include net/if.h? */
-+
-+/*
-+ * If PPP_DRV_NAME is not defined, use the default "ppp" as the device name.
-+ * Where should PPP_DRV_NAME come from? Do we include it here?
-+ */
-+#if !defined(PPP_DRV_NAME)
-+#define PPP_DRV_NAME "ppp"
-+#endif /* !defined(PPP_DRV_NAME) */
-
- /*
- * Option descriptor structure.
-@@ -318,6 +328,7 @@ extern bool tune_kernel; /* May alter kernel settings as necessary */
- extern int connect_delay; /* Time to delay after connect script */
- extern int max_data_rate; /* max bytes/sec through charshunt */
- extern int req_unit; /* interface unit number to use */
-+extern char req_ifname[MAXIFNAMELEN]; /* interface name to use */
- extern bool multilink; /* enable multilink operation */
- extern bool noendpoint; /* don't send or accept endpt. discrim. */
- extern char *bundle_name; /* bundle name for multilink */
-diff --git a/pppd/sys-linux.c b/pppd/sys-linux.c
-index 908aa4f22297..9b2f293024ac 100644
---- a/pppd/sys-linux.c
-+++ b/pppd/sys-linux.c
-@@ -641,6 +641,21 @@ static int make_ppp_unit()
- }
- if (x < 0)
- error("Couldn't create new ppp unit: %m");
-+
-+ if (x == 0 && req_ifname[0] != '\0') {
-+ struct ifreq ifr;
-+ char t[MAXIFNAMELEN];
-+ memset(&ifr, 0, sizeof(struct ifreq));
-+ slprintf(t, sizeof(t), "%s%d", PPP_DRV_NAME, ifunit);
-+ strncpy(ifr.ifr_name, t, IF_NAMESIZE);
-+ strncpy(ifr.ifr_newname, req_ifname, IF_NAMESIZE);
-+ x = ioctl(sock_fd, SIOCSIFNAME, &ifr);
-+ if (x < 0)
-+ error("Couldn't rename interface %s to %s: %m", t, req_ifname);
-+ else
-+ info("Renamed interface %s to %s", t, req_ifname);
-+ }
-+
- return x;
- }
-
-diff --git a/pppstats/pppstats.c b/pppstats/pppstats.c
-index 6367988eb96b..46cb9c24942b 100644
---- a/pppstats/pppstats.c
-+++ b/pppstats/pppstats.c
-@@ -88,7 +88,6 @@ int aflag; /* print absolute values, not deltas */
- int dflag; /* print data rates, not bytes */
- int interval, count;
- int infinite;
--int unit;
- int s; /* socket or /dev/ppp file descriptor */
- int signalled; /* set if alarm goes off "early" */
- char *progname;
-@@ -449,6 +448,7 @@ main(argc, argv)
- {
- int c;
- #ifdef STREAMS
-+ int unit;
- char *dev;
- #endif
-
-@@ -506,11 +506,6 @@ main(argc, argv)
- if (argc > 0)
- interface = argv[0];
-
-- if (sscanf(interface, PPP_DRV_NAME "%d", &unit) != 1) {
-- fprintf(stderr, "%s: invalid interface '%s' specified\n",
-- progname, interface);
-- }
--
- #ifndef STREAMS
- {
- struct ifreq ifr;
-@@ -535,6 +530,11 @@ main(argc, argv)
- }
-
- #else /* STREAMS */
-+ if (sscanf(interface, PPP_DRV_NAME "%d", &unit) != 1) {
-+ fprintf(stderr, "%s: invalid interface '%s' specified\n",
-+ progname, interface);
-+ }
-+
- #ifdef __osf__
- dev = "/dev/streams/ppp";
- #else
diff --git a/patches/ppp-2.4.7/0013-pppd-Remove-unused-declaration-of-ttyname.patch b/patches/ppp-2.4.7/0013-pppd-Remove-unused-declaration-of-ttyname.patch
deleted file mode 100644
index 2199e7f7d..000000000
--- a/patches/ppp-2.4.7/0013-pppd-Remove-unused-declaration-of-ttyname.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From: George Burgess IV <george@gbiv.net>
-Date: Fri, 9 Sep 2016 17:36:54 -0700
-Subject: [PATCH] pppd: Remove unused declaration of ttyname.
-
-Signed-off-by: George Burgess IV <george@gbiv.net>
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/main.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/pppd/main.c b/pppd/main.c
-index f1986ed68d0b..76b67d2485b7 100644
---- a/pppd/main.c
-+++ b/pppd/main.c
-@@ -257,7 +257,6 @@ static void cleanup_db __P((void));
- static void handle_events __P((void));
- void print_link_stats __P((void));
-
--extern char *ttyname __P((int));
- extern char *getlogin __P((void));
- int main __P((int, char *[]));
-
diff --git a/patches/ppp-2.4.7/0014-pppd-Provide-error-implementation-in-pppoe-discovery.patch b/patches/ppp-2.4.7/0014-pppd-Provide-error-implementation-in-pppoe-discovery.patch
deleted file mode 100644
index 39fc3d4f6..000000000
--- a/patches/ppp-2.4.7/0014-pppd-Provide-error-implementation-in-pppoe-discovery.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From: Stefan Nickl <Stefan.Nickl@gmail.com>
-Date: Wed, 10 Aug 2016 16:52:12 +0200
-Subject: [PATCH] pppd: Provide error() implementation in pppoe-discovery
-
-The pppoe-discovery program calls error() from the CHECK_ROOM macro
-defined in pppoe.h. Since pppoe-discovery is a standalone program not
-linked with the rest of pppd, the only way this could build is by
-linking to glibc's proprietary error(3) function instead of the function
-of the same name (but with different arguments) defined in pppd/utils.c.
-
-So with glibc this builds, but will probably crash when the assertion is
-triggered. As the assertion is unlikely to fail, nobody has noticed.
-
-The build however fails with musl libc or uClibc since they don't
-provide the doppelganger.
-
-Signed-off-by: Stefan Nickl <Stefan.Nickl@gmail.com>
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/plugins/rp-pppoe/pppoe-discovery.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/pppd/plugins/rp-pppoe/pppoe-discovery.c b/pppd/plugins/rp-pppoe/pppoe-discovery.c
-index 3d3bf4eecc81..55037dffb023 100644
---- a/pppd/plugins/rp-pppoe/pppoe-discovery.c
-+++ b/pppd/plugins/rp-pppoe/pppoe-discovery.c
-@@ -9,6 +9,7 @@
- *
- */
-
-+#include <stdarg.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
-@@ -55,6 +56,14 @@ void die(int status)
- exit(status);
- }
-
-+void error(char *fmt, ...)
-+{
-+ va_list pvar;
-+ va_start(pvar, fmt);
-+ vfprintf(stderr, fmt, pvar);
-+ va_end(pvar);
-+}
-+
- /* Initialize frame types to RFC 2516 values. Some broken peers apparently
- use different frame types... sigh... */
-
diff --git a/patches/ppp-2.4.7/0015-pppoe-include-netinet-in.h-before-linux-in.h.patch b/patches/ppp-2.4.7/0015-pppoe-include-netinet-in.h-before-linux-in.h.patch
deleted file mode 100644
index b24e5ef58..000000000
--- a/patches/ppp-2.4.7/0015-pppoe-include-netinet-in.h-before-linux-in.h.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From: Lubomir Rintel <lkundrak@v3.sk>
-Date: Mon, 9 Jan 2017 13:34:23 +0000
-Subject: [PATCH] pppoe: include netinet/in.h before linux/in.h
-
-This fixes builds with newer kernels. Basically, <netinet/in.h> needs to be
-included before <linux/in.h> otherwise the earlier, unaware of the latter,
-tries to redefine symbols and structures. Also, <linux/if_pppox.h> doesn't work
-alone anymore, since it pulls the headers in the wrong order, so we better
-include <netinet/in.h> early.
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/plugins/rp-pppoe/pppoe.h | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/pppd/plugins/rp-pppoe/pppoe.h b/pppd/plugins/rp-pppoe/pppoe.h
-index 9ab2eee3914c..c4aaa6e68856 100644
---- a/pppd/plugins/rp-pppoe/pppoe.h
-+++ b/pppd/plugins/rp-pppoe/pppoe.h
-@@ -47,6 +47,10 @@
- #include <sys/socket.h>
- #endif
-
-+/* This has to be included before Linux 4.8's linux/in.h
-+ * gets dragged in. */
-+#include <netinet/in.h>
-+
- /* Ugly header files on some Linux boxes... */
- #if defined(HAVE_LINUX_IF_H)
- #include <linux/if.h>
-@@ -84,8 +88,6 @@ typedef unsigned long UINT32_t;
- #include <linux/if_ether.h>
- #endif
-
--#include <netinet/in.h>
--
- #ifdef HAVE_NETINET_IF_ETHER_H
- #include <sys/types.h>
-
-@@ -98,7 +100,6 @@ typedef unsigned long UINT32_t;
- #endif
-
-
--
- /* Ethernet frame types according to RFC 2516 */
- #define ETH_PPPOE_DISCOVERY 0x8863
- #define ETH_PPPOE_SESSION 0x8864
diff --git a/patches/ppp-2.4.7/0016-adaptive_echos.patch b/patches/ppp-2.4.7/0016-adaptive_echos.patch
deleted file mode 100644
index c0f222824..000000000
--- a/patches/ppp-2.4.7/0016-adaptive_echos.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:49 +0200
-Subject: [PATCH] adaptive_echos
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/lcp.c | 19 +++++++++++++++++++
- pppd/pppd.8 | 5 +++++
- 2 files changed, 24 insertions(+)
-
-diff --git a/pppd/lcp.c b/pppd/lcp.c
-index 8ed2778bfb67..c97a64b7774f 100644
---- a/pppd/lcp.c
-+++ b/pppd/lcp.c
-@@ -73,6 +73,7 @@ static void lcp_delayed_up __P((void *));
- */
- int lcp_echo_interval = 0; /* Interval between LCP echo-requests */
- int lcp_echo_fails = 0; /* Tolerance to unanswered echo-requests */
-+bool lcp_echo_adaptive = 0; /* request echo only if the link was idle */
- bool lax_recv = 0; /* accept control chars in asyncmap */
- bool noendpoint = 0; /* don't send/accept endpoint discriminator */
-
-@@ -151,6 +152,8 @@ static option_t lcp_option_list[] = {
- OPT_PRIO },
- { "lcp-echo-interval", o_int, &lcp_echo_interval,
- "Set time in seconds between LCP echo requests", OPT_PRIO },
-+ { "lcp-echo-adaptive", o_bool, &lcp_echo_adaptive,
-+ "Suppress LCP echo requests if traffic was received", 1 },
- { "lcp-restart", o_int, &lcp_fsm[0].timeouttime,
- "Set time in seconds between LCP retransmissions", OPT_PRIO },
- { "lcp-max-terminate", o_int, &lcp_fsm[0].maxtermtransmits,
-@@ -2331,6 +2334,22 @@ LcpSendEchoRequest (f)
- }
- }
-
-+ /*
-+ * If adaptive echos have been enabled, only send the echo request if
-+ * no traffic was received since the last one.
-+ */
-+ if (lcp_echo_adaptive) {
-+ static unsigned int last_pkts_in = 0;
-+
-+ update_link_stats(f->unit);
-+ link_stats_valid = 0;
-+
-+ if (link_stats.pkts_in != last_pkts_in) {
-+ last_pkts_in = link_stats.pkts_in;
-+ return;
-+ }
-+ }
-+
- /*
- * Make and send the echo request frame.
- */
-diff --git a/pppd/pppd.8 b/pppd/pppd.8
-index 64659cf867b2..ec8bfd5c0617 100644
---- a/pppd/pppd.8
-+++ b/pppd/pppd.8
-@@ -558,6 +558,11 @@ to 1) if the \fIproxyarp\fR option is used, and will enable the
- dynamic IP address option (i.e. set /proc/sys/net/ipv4/ip_dynaddr to
- 1) in demand mode if the local address changes.
- .TP
-+.B lcp\-echo\-adaptive
-+If this option is used with the \fIlcp\-echo\-failure\fR option then
-+pppd will send LCP echo\-request frames only if no traffic was received
-+from the peer since the last echo\-request was sent.
-+.TP
- .B lcp\-echo\-failure \fIn
- If this option is given, pppd will presume the peer to be dead
- if \fIn\fR LCP echo\-requests are sent without receiving a valid LCP
diff --git a/patches/ppp-2.4.7/0017-Makefiles-cleanup.patch b/patches/ppp-2.4.7/0017-Makefiles-cleanup.patch
deleted file mode 100644
index ff9096f70..000000000
--- a/patches/ppp-2.4.7/0017-Makefiles-cleanup.patch
+++ /dev/null
@@ -1,296 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:49 +0200
-Subject: [PATCH] Makefiles cleanup
-
-Factor-out $COPTS and $LDOPTS to allow distributions to easily override
-them. Properly use $LDFLAGS when linking and $CFLAGS when compiling.
-Do not strip the installed binaries: this should be done by the
-packaging system if required.
-
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- chat/Makefile.linux | 5 +++--
- pppd/Makefile.linux | 7 ++++---
- pppd/plugins/Makefile.linux | 4 ++--
- pppd/plugins/pppoatm/Makefile.linux | 4 ++--
- pppd/plugins/pppol2tp/Makefile.linux | 4 ++--
- pppd/plugins/radius/Makefile.linux | 16 +++++++++-------
- pppd/plugins/rp-pppoe/Makefile.linux | 10 ++++++----
- pppdump/Makefile.linux | 9 ++++++---
- pppstats/Makefile.linux | 7 ++++---
- 9 files changed, 38 insertions(+), 28 deletions(-)
-
-diff --git a/chat/Makefile.linux b/chat/Makefile.linux
-index 1065ac519576..a41d485b4168 100644
---- a/chat/Makefile.linux
-+++ b/chat/Makefile.linux
-@@ -12,20 +12,21 @@ CDEFS= $(CDEF1) $(CDEF2) $(CDEF3) $(CDEF4)
-
- COPTS= -O2 -g -pipe
- CFLAGS= $(COPTS) $(CDEFS)
-+LDFLAGS=$(LDOPTS)
-
- INSTALL= install
-
- all: chat
-
- chat: chat.o
-- $(CC) -o chat chat.o
-+ $(CC) $(LDFLAGS) -o chat chat.o
-
- chat.o: chat.c
- $(CC) -c $(CFLAGS) -o chat.o chat.c
-
- install: chat
- mkdir -p $(BINDIR) $(MANDIR)
-- $(INSTALL) -s -c chat $(BINDIR)
-+ $(INSTALL) -c chat $(BINDIR)
- $(INSTALL) -c -m 644 chat.8 $(MANDIR)
-
- clean:
-diff --git a/pppd/Makefile.linux b/pppd/Makefile.linux
-index a74c914fd3ac..16b3ee879791 100644
---- a/pppd/Makefile.linux
-+++ b/pppd/Makefile.linux
-@@ -83,6 +83,7 @@ INCLUDE_DIRS= -I../include
- COMPILE_FLAGS= -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP
-
- CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS) '-DDESTDIR="@DESTDIR@"'
-+LDFLAGS=$(LDOPTS)
-
- ifdef CHAPMS
- CFLAGS += -DCHAPMS=1
-@@ -102,7 +103,7 @@ ifdef USE_SRP
- CFLAGS += -DUSE_SRP -DOPENSSL -I/usr/local/ssl/include
- LIBS += -lsrp -L/usr/local/ssl/lib -lcrypto
- TARGETS += srp-entry
--EXTRAINSTALL = $(INSTALL) -s -c -m 555 srp-entry $(BINDIR)/srp-entry
-+EXTRAINSTALL = $(INSTALL) -c -m 555 srp-entry $(BINDIR)/srp-entry
- MANPAGES += srp-entry.8
- EXTRACLEAN += srp-entry.o
- NEEDDES=y
-@@ -208,13 +209,13 @@ all: $(TARGETS)
- install: pppd
- mkdir -p $(BINDIR) $(MANDIR)
- $(EXTRAINSTALL)
-- $(INSTALL) -s -c -m 555 pppd $(BINDIR)/pppd
-+ $(INSTALL) -c -m 555 pppd $(BINDIR)/pppd
- if chgrp pppusers $(BINDIR)/pppd 2>/dev/null; then \
- chmod o-rx,u+s $(BINDIR)/pppd; fi
- $(INSTALL) -c -m 444 pppd.8 $(MANDIR)
-
- pppd: $(PPPDOBJS)
-- $(CC) $(CFLAGS) $(LDFLAGS) -o pppd $(PPPDOBJS) $(LIBS)
-+ $(CC) $(LDFLAGS) -o pppd $(PPPDOBJS) $(LIBS)
-
- srp-entry: srp-entry.c
- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ srp-entry.c $(LIBS)
-diff --git a/pppd/plugins/Makefile.linux b/pppd/plugins/Makefile.linux
-index 8a90e393a057..0f9d37d2953b 100644
---- a/pppd/plugins/Makefile.linux
-+++ b/pppd/plugins/Makefile.linux
-@@ -1,7 +1,7 @@
- #CC = gcc
- COPTS = -O2 -g
- CFLAGS = $(COPTS) -I.. -I../../include -fPIC
--LDFLAGS = -shared
-+LDFLAGS = $(LDOPTS)
- INSTALL = install
-
- DESTDIR = $(INSTROOT)@DESTDIR@
-@@ -30,7 +30,7 @@ all: $(PLUGINS)
- for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d all || exit $$?; done
-
- %.so: %.c
-- $(CC) -o $@ $(LDFLAGS) $(CFLAGS) $^
-+ $(CC) -o $@ $(LDFLAGS) -shared $(CFLAGS) $^
-
- VERSION = $(shell awk -F '"' '/VERSION/ { print $$2; }' ../patchlevel.h)
-
-diff --git a/pppd/plugins/pppoatm/Makefile.linux b/pppd/plugins/pppoatm/Makefile.linux
-index 20f62e631d23..002603c6cbef 100644
---- a/pppd/plugins/pppoatm/Makefile.linux
-+++ b/pppd/plugins/pppoatm/Makefile.linux
-@@ -1,7 +1,7 @@
- #CC = gcc
- COPTS = -O2 -g
- CFLAGS = $(COPTS) -I../.. -I../../../include -fPIC
--LDFLAGS = -shared
-+LDFLAGS = $(LDOPTS)
- INSTALL = install
-
- #***********************************************************************
-@@ -33,7 +33,7 @@ endif
- all: $(PLUGIN)
-
- $(PLUGIN): $(PLUGIN_OBJS)
-- $(CC) $(CFLAGS) -o $@ -shared $^ $(LIBS)
-+ $(CC) $(LDFLAGS) -o $@ -shared $^ $(LIBS)
-
- install: all
- $(INSTALL) -d -m 755 $(LIBDIR)
-diff --git a/pppd/plugins/pppol2tp/Makefile.linux b/pppd/plugins/pppol2tp/Makefile.linux
-index ea3538e22d56..de5cc12e79c3 100644
---- a/pppd/plugins/pppol2tp/Makefile.linux
-+++ b/pppd/plugins/pppol2tp/Makefile.linux
-@@ -1,7 +1,7 @@
- #CC = gcc
- COPTS = -O2 -g
- CFLAGS = $(COPTS) -I. -I../.. -I../../../include -fPIC
--LDFLAGS = -shared
-+LDFLAGS = $(LDOPTS)
- INSTALL = install
-
- #***********************************************************************
-@@ -16,7 +16,7 @@ PLUGINS := pppol2tp.so openl2tp.so
- all: $(PLUGINS)
-
- %.so: %.o
-- $(CC) $(CFLAGS) -o $@ -shared $^ $(LIBS)
-+ $(CC) $(LDFLAGS) -o $@ -shared $^ $(LIBS)
-
- install: all
- $(INSTALL) -d -m 755 $(LIBDIR)
-diff --git a/pppd/plugins/radius/Makefile.linux b/pppd/plugins/radius/Makefile.linux
-index 24ed3e580c4d..436ff2fd0c23 100644
---- a/pppd/plugins/radius/Makefile.linux
-+++ b/pppd/plugins/radius/Makefile.linux
-@@ -12,7 +12,9 @@ VERSION = $(shell awk -F '"' '/VERSION/ { print $$2; }' ../../patchlevel.h)
- INSTALL = install
-
- PLUGIN=radius.so radattr.so radrealms.so
--CFLAGS=-I. -I../.. -I../../../include -O2 -fPIC -DRC_LOG_FACILITY=LOG_DAEMON
-+COPTS=-g -O2
-+CFLAGS = $(COPTS) -I. -I../.. -I../../../include -fPIC -DRC_LOG_FACILITY=LOG_DAEMON
-+LDFLAGS= $(LDOPTS)
-
- # Uncomment the next line to include support for Microsoft's
- # MS-CHAP authentication protocol.
-@@ -36,20 +38,20 @@ all: $(PLUGIN)
-
- install: all
- $(INSTALL) -d -m 755 $(LIBDIR)
-- $(INSTALL) -s -c -m 755 radius.so $(LIBDIR)
-- $(INSTALL) -s -c -m 755 radattr.so $(LIBDIR)
-- $(INSTALL) -s -c -m 755 radrealms.so $(LIBDIR)
-+ $(INSTALL) -c -m 755 radius.so $(LIBDIR)
-+ $(INSTALL) -c -m 755 radattr.so $(LIBDIR)
-+ $(INSTALL) -c -m 755 radrealms.so $(LIBDIR)
- $(INSTALL) -c -m 444 pppd-radius.8 $(MANDIR)
- $(INSTALL) -c -m 444 pppd-radattr.8 $(MANDIR)
-
- radius.so: radius.o libradiusclient.a
-- $(CC) -o radius.so -shared radius.o libradiusclient.a
-+ $(CC) $(LDFLAGS) -o radius.so -shared radius.o libradiusclient.a
-
- radattr.so: radattr.o
-- $(CC) -o radattr.so -shared radattr.o
-+ $(CC) $(LDFLAGS) -o radattr.so -shared radattr.o
-
- radrealms.so: radrealms.o
-- $(CC) -o radrealms.so -shared radrealms.o
-+ $(CC) $(LDFLAGS) -o radrealms.so -shared radrealms.o
-
- CLIENTOBJS = avpair.o buildreq.o config.o dict.o ip_util.o \
- clientid.o sendserver.o lock.o util.o md5.o
-diff --git a/pppd/plugins/rp-pppoe/Makefile.linux b/pppd/plugins/rp-pppoe/Makefile.linux
-index 5d7a2719545d..00e0af6da20c 100644
---- a/pppd/plugins/rp-pppoe/Makefile.linux
-+++ b/pppd/plugins/rp-pppoe/Makefile.linux
-@@ -27,10 +27,12 @@ RP_VERSION=3.8p
-
- COPTS=-O2 -g
- CFLAGS=$(COPTS) -I../../../include '-DRP_VERSION="$(RP_VERSION)"'
-+LDFLAGS=$(LDOPTS)
-+
- all: rp-pppoe.so pppoe-discovery
-
- pppoe-discovery: pppoe-discovery.o debug.o
-- $(CC) -o pppoe-discovery pppoe-discovery.o debug.o
-+ $(CC) $(LDFLAGS) -o pppoe-discovery pppoe-discovery.o debug.o
-
- pppoe-discovery.o: pppoe-discovery.c
- $(CC) $(CFLAGS) -c -o pppoe-discovery.o pppoe-discovery.c
-@@ -39,13 +41,13 @@ debug.o: debug.c
- $(CC) $(CFLAGS) -c -o debug.o debug.c
-
- rp-pppoe.so: plugin.o discovery.o if.o common.o
-- $(CC) -o rp-pppoe.so -shared plugin.o discovery.o if.o common.o
-+ $(CC) $(LDFLAGS) -o rp-pppoe.so -shared $^
-
- install: all
- $(INSTALL) -d -m 755 $(LIBDIR)
-- $(INSTALL) -s -c -m 4550 rp-pppoe.so $(LIBDIR)
-+ $(INSTALL) -c -m 4550 rp-pppoe.so $(LIBDIR)
- $(INSTALL) -d -m 755 $(BINDIR)
-- $(INSTALL) -s -c -m 555 pppoe-discovery $(BINDIR)
-+ $(INSTALL) -c -m 555 pppoe-discovery $(BINDIR)
-
- clean:
- rm -f *.o *.so pppoe-discovery
-diff --git a/pppdump/Makefile.linux b/pppdump/Makefile.linux
-index ac028f6bf4f0..65e5c14914fb 100644
---- a/pppdump/Makefile.linux
-+++ b/pppdump/Makefile.linux
-@@ -2,7 +2,10 @@ DESTDIR = $(INSTROOT)@DESTDIR@
- BINDIR = $(DESTDIR)/sbin
- MANDIR = $(DESTDIR)/share/man/man8
-
--CFLAGS= -O -I../include/net
-+COPTS=-O2 -g
-+CFLAGS= $(COPTS) -I../include/net
-+LDFLAGS=$(LDOPTS)
-+
- OBJS = pppdump.o bsd-comp.o deflate.o zlib.o
-
- INSTALL= install
-@@ -10,12 +13,12 @@ INSTALL= install
- all: pppdump
-
- pppdump: $(OBJS)
-- $(CC) -o pppdump $(OBJS)
-+ $(CC) $(LDFLAGS) -o pppdump $(OBJS)
-
- clean:
- rm -f pppdump $(OBJS) *~
-
- install:
- mkdir -p $(BINDIR) $(MANDIR)
-- $(INSTALL) -s -c pppdump $(BINDIR)
-+ $(INSTALL) -c pppdump $(BINDIR)
- $(INSTALL) -c -m 444 pppdump.8 $(MANDIR)
-diff --git a/pppstats/Makefile.linux b/pppstats/Makefile.linux
-index cca6f0f61d87..9ec8e803665a 100644
---- a/pppstats/Makefile.linux
-+++ b/pppstats/Makefile.linux
-@@ -10,23 +10,24 @@ PPPSTATSRCS = pppstats.c
- PPPSTATOBJS = pppstats.o
-
- #CC = gcc
--COPTS = -O
-+COPTS = -O2 -g
- COMPILE_FLAGS = -I../include
- LIBS =
-
- INSTALL= install
-
- CFLAGS = $(COPTS) $(COMPILE_FLAGS)
-+LDFLAGS= $(LDOPTS)
-
- all: pppstats
-
- install: pppstats
- -mkdir -p $(MANDIR)
-- $(INSTALL) -s -c pppstats $(BINDIR)
-+ $(INSTALL) -c pppstats $(BINDIR)
- $(INSTALL) -c -m 444 pppstats.8 $(MANDIR)
-
- pppstats: $(PPPSTATSRCS)
-- $(CC) $(CFLAGS) -o pppstats pppstats.c $(LIBS)
-+ $(CC) $(LDFLAGS) $(CFLAGS) -o pppstats pppstats.c $(LIBS)
-
- clean:
- rm -f pppstats *~ #* core
diff --git a/patches/ppp-2.4.7/0018-Bug-306261-pppd-does-not-properly-close-dev-ppp-on-p.patch b/patches/ppp-2.4.7/0018-Bug-306261-pppd-does-not-properly-close-dev-ppp-on-p.patch
deleted file mode 100644
index 41669d12a..000000000
--- a/patches/ppp-2.4.7/0018-Bug-306261-pppd-does-not-properly-close-dev-ppp-on-p.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From: Simon Peter <dn.tlp@gmx.net>
-Date: Sat, 28 Sep 2019 08:11:49 +0200
-Subject: [PATCH] Bug#306261: pppd does not properly close /dev/ppp on persist
-
-When using the kernel PPPoE driver, pppd never
-closes /dev/ppp when the link has come down.
-
-It opens superfluous fds to the device each time it re-opens the
-connection, with the unclosed ones falsely reported always ready for
-data by select().
-
-This makes pppd eat up 100% CPU time after the first persist because of
-the always instantly returning select() on the unclosed fds.
-
-The problem also occurs with the upstream version, but does not occur
-when a pty/tty device is used for the ppp connection.
-
-
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/sys-linux.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/pppd/sys-linux.c b/pppd/sys-linux.c
-index 9b2f293024ac..6d29dc8e8594 100644
---- a/pppd/sys-linux.c
-+++ b/pppd/sys-linux.c
-@@ -458,6 +458,13 @@ int generic_establish_ppp (int fd)
- if (new_style_driver) {
- int flags;
-
-+ /* if a ppp_fd is already open, close it first */
-+ if(ppp_fd > 0) {
-+ close(ppp_fd);
-+ remove_fd(ppp_fd);
-+ ppp_fd = -1;
-+ }
-+
- /* Open an instance of /dev/ppp and connect the channel to it */
- if (ioctl(fd, PPPIOCGCHAN, &chindex) == -1) {
- error("Couldn't get channel number: %m");
diff --git a/patches/ppp-2.4.7/0019-Bug-284382-ppp-linkpidfile-is-not-created-upon-detac.patch b/patches/ppp-2.4.7/0019-Bug-284382-ppp-linkpidfile-is-not-created-upon-detac.patch
deleted file mode 100644
index f785c75d8..000000000
--- a/patches/ppp-2.4.7/0019-Bug-284382-ppp-linkpidfile-is-not-created-upon-detac.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From: "herbert@gondor.apana.org.au" <herbert@gondor.apana.org.au>
-Date: Sat, 28 Sep 2019 08:11:49 +0200
-Subject: [PATCH] Bug#284382: ppp: linkpidfile is not created upon detachment
-
-Package: ppp
-Version: 2.4.2+20040428-2
-Severity: wishlist
-
-When pppd detaches from the parent normally, that is, without nodetach
-or updetach set, the linkpidfile is not created even when linkname is
-set.
-
-This is because the create_linkpidfile call in detach() is only made
-if the linkpidfile is filled in. However, linkpidfile is never filled
-in until create_linkpidfile has been called.
-
-IMHO the call should be made uncondtionally in detach() since
-create_linkpidfile does its own check on linkname anyway.
-
-Please note that the version of pppd in woody always wrote the
-linkpidfile after detaching. It did so in main() however. That
-call has now been removed which is why I'm seeing this problem.
-
-[...]
-
---
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/main.c | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/pppd/main.c b/pppd/main.c
-index 76b67d2485b7..8e31365f0c58 100644
---- a/pppd/main.c
-+++ b/pppd/main.c
-@@ -765,8 +765,7 @@ detach()
- /* update pid files if they have been written already */
- if (pidfilename[0])
- create_pidfile(pid);
-- if (linkpidfile[0])
-- create_linkpidfile(pid);
-+ create_linkpidfile(pid);
- exit(0); /* parent dies */
- }
- setsid();
diff --git a/patches/ppp-2.4.7/0022-cosmetic-cleanup-of-the-pppoatm-plugin.patch b/patches/ppp-2.4.7/0022-cosmetic-cleanup-of-the-pppoatm-plugin.patch
deleted file mode 100644
index ee22c74b6..000000000
--- a/patches/ppp-2.4.7/0022-cosmetic-cleanup-of-the-pppoatm-plugin.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:49 +0200
-Subject: [PATCH] cosmetic cleanup of the pppoatm plugin
-
-Removed some debugging messages and generally cleaned up the source.
-
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/plugins/pppoatm/pppoatm.c | 23 +++++++++++++----------
- 1 file changed, 13 insertions(+), 10 deletions(-)
-
-diff --git a/pppd/plugins/pppoatm/pppoatm.c b/pppd/plugins/pppoatm/pppoatm.c
-index a7560e9fb0c6..90d0c9a85d9f 100644
---- a/pppd/plugins/pppoatm/pppoatm.c
-+++ b/pppd/plugins/pppoatm/pppoatm.c
-@@ -70,18 +70,20 @@ static int setdevname_pppoatm(const char *cp, const char **argv, int doit)
- {
- struct sockaddr_atmpvc addr;
- extern struct stat devstat;
-+
- if (device_got_set)
- return 0;
-- //info("PPPoATM setdevname_pppoatm: '%s'", cp);
-+
- memset(&addr, 0, sizeof addr);
- if (text2atm(cp, (struct sockaddr *) &addr, sizeof(addr),
-- T2A_PVC | T2A_NAME) < 0) {
-- if(doit)
-- info("atm does not recognize: %s", cp);
-+ T2A_PVC | T2A_NAME | T2A_WILDCARD) < 0) {
-+ if (doit)
-+ info("cannot parse the ATM address: %s", cp);
- return 0;
-- }
-- if (!doit) return 1;
-- //if (!dev_set_ok()) return -1;
-+ }
-+ if (!doit)
-+ return 1;
-+
- memcpy(&pvcaddr, &addr, sizeof pvcaddr);
- strlcpy(devnam, cp, sizeof devnam);
- devstat.st_mode = S_IFSOCK;
-@@ -93,7 +95,6 @@ static int setdevname_pppoatm(const char *cp, const char **argv, int doit)
- lcp_allowoptions[0].neg_asyncmap = 0;
- lcp_wantoptions[0].neg_pcompression = 0;
- }
-- info("PPPoATM setdevname_pppoatm - SUCCESS:%s", cp);
- device_got_set = 1;
- return 1;
- }
-@@ -108,6 +109,7 @@ static void no_device_given_pppoatm(void)
- static void set_line_discipline_pppoatm(int fd)
- {
- struct atm_backend_ppp be;
-+
- be.backend_num = ATM_BACKEND_PPP;
- if (!llc_encaps)
- be.encaps = PPPOATM_ENCAPS_VC;
-@@ -115,6 +117,7 @@ static void set_line_discipline_pppoatm(int fd)
- be.encaps = PPPOATM_ENCAPS_LLC;
- else
- be.encaps = PPPOATM_ENCAPS_AUTODETECT;
-+
- if (ioctl(fd, ATM_SETBACKEND, &be) < 0)
- fatal("ioctl(ATM_SETBACKEND): %m");
- }
-@@ -172,7 +175,7 @@ static void disconnect_pppoatm(void)
-
- void plugin_init(void)
- {
--#if defined(__linux__)
-+#ifdef linux
- extern int new_style_driver; /* From sys-linux.c */
- if (!ppp_available() && !new_style_driver)
- fatal("Kernel doesn't support ppp_generic - "
-@@ -180,9 +183,9 @@ void plugin_init(void)
- #else
- fatal("No PPPoATM support on this OS");
- #endif
-- info("PPPoATM plugin_init");
- add_options(pppoa_options);
- }
-+
- struct channel pppoa_channel = {
- options: pppoa_options,
- process_extra_options: NULL,
diff --git a/patches/ppp-2.4.7/0023-pppoe_noads.patch b/patches/ppp-2.4.7/0023-pppoe_noads.patch
deleted file mode 100644
index b4712de17..000000000
--- a/patches/ppp-2.4.7/0023-pppoe_noads.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:49 +0200
-Subject: [PATCH] pppoe_noads
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/plugins/rp-pppoe/plugin.c | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/pppd/plugins/rp-pppoe/plugin.c b/pppd/plugins/rp-pppoe/plugin.c
-index c89be94250bc..7804b184f0cb 100644
---- a/pppd/plugins/rp-pppoe/plugin.c
-+++ b/pppd/plugins/rp-pppoe/plugin.c
-@@ -377,9 +377,6 @@ plugin_init(void)
- }
-
- add_options(Options);
--
-- info("RP-PPPoE plugin version %s compiled against pppd %s",
-- RP_VERSION, VERSION);
- }
-
- void pppoe_check_options(void)
diff --git a/patches/ppp-2.4.7/0024-make-_PATH_CONNERRS-world-readable.patch b/patches/ppp-2.4.7/0024-make-_PATH_CONNERRS-world-readable.patch
deleted file mode 100644
index 557b16901..000000000
--- a/patches/ppp-2.4.7/0024-make-_PATH_CONNERRS-world-readable.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:49 +0200
-Subject: [PATCH] make _PATH_CONNERRS world readable
-
-There is nothing security-sensitive there.
-
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/main.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pppd/main.c b/pppd/main.c
-index 8e31365f0c58..ed544315c1df 100644
---- a/pppd/main.c
-+++ b/pppd/main.c
-@@ -1673,7 +1673,7 @@ device_script(program, in, out, dont_wait)
- if (log_to_fd >= 0)
- errfd = log_to_fd;
- else
-- errfd = open(_PATH_CONNERRS, O_WRONLY | O_APPEND | O_CREAT, 0600);
-+ errfd = open(_PATH_CONNERRS, O_WRONLY | O_APPEND | O_CREAT, 0644);
-
- ++conn_running;
- pid = safe_fork(in, out, errfd);
diff --git a/patches/ppp-2.4.7/0025-Correct-unkown-unknown-typo.patch b/patches/ppp-2.4.7/0025-Correct-unkown-unknown-typo.patch
deleted file mode 100644
index febfaf869..000000000
--- a/patches/ppp-2.4.7/0025-Correct-unkown-unknown-typo.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:49 +0200
-Subject: [PATCH] Correct unkown => unknown typo
-
-Author: Chris Boot <bootc@debian.org>
-Last-Update: 2013-09-09
-
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/plugins/radius/config.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/pppd/plugins/radius/config.c b/pppd/plugins/radius/config.c
-index a29e5e8da909..f892ca7b1bf5 100644
---- a/pppd/plugins/radius/config.c
-+++ b/pppd/plugins/radius/config.c
-@@ -271,7 +271,7 @@ char *rc_conf_str(char *optname)
- option = find_option(optname, OT_STR);
-
- if (option == NULL)
-- fatal("rc_conf_str: unkown config option requested: %s", optname);
-+ fatal("rc_conf_str: unknown config option requested: %s", optname);
- return (char *)option->val;
- }
-
-@@ -282,7 +282,7 @@ int rc_conf_int(char *optname)
- option = find_option(optname, OT_INT|OT_AUO);
-
- if (option == NULL)
-- fatal("rc_conf_int: unkown config option requested: %s", optname);
-+ fatal("rc_conf_int: unknown config option requested: %s", optname);
- return *((int *)option->val);
- }
-
-@@ -293,7 +293,7 @@ SERVER *rc_conf_srv(char *optname)
- option = find_option(optname, OT_SRV);
-
- if (option == NULL)
-- fatal("rc_conf_srv: unkown config option requested: %s", optname);
-+ fatal("rc_conf_srv: unknown config option requested: %s", optname);
- return (SERVER *)option->val;
- }
-
diff --git a/patches/ppp-2.4.7/0026-pppoe-custom-host-uniq-tag.patch b/patches/ppp-2.4.7/0026-pppoe-custom-host-uniq-tag.patch
deleted file mode 100644
index 5cf266d10..000000000
--- a/patches/ppp-2.4.7/0026-pppoe-custom-host-uniq-tag.patch
+++ /dev/null
@@ -1,302 +0,0 @@
-From: Matteo Croce <matteo@openwrt.org>
-Date: Sat, 21 Nov 2015 18:45:43 +0100
-Subject: [PATCH] pppoe: custom host-uniq tag
-
-Add pppoe 'host-uniq' option to set an arbitrary
-host-uniq tag instead of the pppd pid.
-Some ISPs use such tag to authenticate the CPE,
-so it must be set to a proper value to connect.
-
-Signed-off-by: Matteo Croce <matteo@openwrt.org>
-Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/plugins/rp-pppoe/common.c | 14 ++++-----
- pppd/plugins/rp-pppoe/discovery.c | 51 +++++++++++++--------------------
- pppd/plugins/rp-pppoe/plugin.c | 7 ++++-
- pppd/plugins/rp-pppoe/pppoe-discovery.c | 38 +++++++++++++++---------
- pppd/plugins/rp-pppoe/pppoe.h | 31 +++++++++++++++++++-
- 5 files changed, 86 insertions(+), 55 deletions(-)
-
-diff --git a/pppd/plugins/rp-pppoe/common.c b/pppd/plugins/rp-pppoe/common.c
-index 89c633c773f9..8f175ece345b 100644
---- a/pppd/plugins/rp-pppoe/common.c
-+++ b/pppd/plugins/rp-pppoe/common.c
-@@ -119,15 +119,11 @@ sendPADT(PPPoEConnection *conn, char const *msg)
- conn->session = 0;
-
- /* If we're using Host-Uniq, copy it over */
-- if (conn->useHostUniq) {
-- PPPoETag hostUniq;
-- pid_t pid = getpid();
-- hostUniq.type = htons(TAG_HOST_UNIQ);
-- hostUniq.length = htons(sizeof(pid));
-- memcpy(hostUniq.payload, &pid, sizeof(pid));
-- memcpy(cursor, &hostUniq, sizeof(pid) + TAG_HDR_SIZE);
-- cursor += sizeof(pid) + TAG_HDR_SIZE;
-- plen += sizeof(pid) + TAG_HDR_SIZE;
-+ if (conn->hostUniq.length) {
-+ int len = ntohs(conn->hostUniq.length);
-+ memcpy(cursor, &conn->hostUniq, len + TAG_HDR_SIZE);
-+ cursor += len + TAG_HDR_SIZE;
-+ plen += len + TAG_HDR_SIZE;
- }
-
- /* Copy error message */
-diff --git a/pppd/plugins/rp-pppoe/discovery.c b/pppd/plugins/rp-pppoe/discovery.c
-index 04877cb8295f..5db8d0defc37 100644
---- a/pppd/plugins/rp-pppoe/discovery.c
-+++ b/pppd/plugins/rp-pppoe/discovery.c
-@@ -80,13 +80,10 @@ static void
- parseForHostUniq(UINT16_t type, UINT16_t len, unsigned char *data,
- void *extra)
- {
-- int *val = (int *) extra;
-- if (type == TAG_HOST_UNIQ && len == sizeof(pid_t)) {
-- pid_t tmp;
-- memcpy(&tmp, data, len);
-- if (tmp == getpid()) {
-- *val = 1;
-- }
-+ PPPoETag *tag = extra;
-+
-+ if (type == TAG_HOST_UNIQ && len == ntohs(tag->length)) {
-+ tag->length = memcmp(data, tag->payload, len);
- }
- }
-
-@@ -104,16 +101,16 @@ parseForHostUniq(UINT16_t type, UINT16_t len, unsigned char *data,
- static int
- packetIsForMe(PPPoEConnection *conn, PPPoEPacket *packet)
- {
-- int forMe = 0;
-+ PPPoETag hostUniq = conn->hostUniq;
-
- /* If packet is not directed to our MAC address, forget it */
- if (memcmp(packet->ethHdr.h_dest, conn->myEth, ETH_ALEN)) return 0;
-
- /* If we're not using the Host-Unique tag, then accept the packet */
-- if (!conn->useHostUniq) return 1;
-+ if (!conn->hostUniq.length) return 1;
-
-- parsePacket(packet, parseForHostUniq, &forMe);
-- return forMe;
-+ parsePacket(packet, parseForHostUniq, &hostUniq);
-+ return !hostUniq.length;
- }
-
- /**********************************************************************
-@@ -301,16 +298,12 @@ sendPADI(PPPoEConnection *conn)
- }
-
- /* If we're using Host-Uniq, copy it over */
-- if (conn->useHostUniq) {
-- PPPoETag hostUniq;
-- pid_t pid = getpid();
-- hostUniq.type = htons(TAG_HOST_UNIQ);
-- hostUniq.length = htons(sizeof(pid));
-- memcpy(hostUniq.payload, &pid, sizeof(pid));
-- CHECK_ROOM(cursor, packet.payload, sizeof(pid) + TAG_HDR_SIZE);
-- memcpy(cursor, &hostUniq, sizeof(pid) + TAG_HDR_SIZE);
-- cursor += sizeof(pid) + TAG_HDR_SIZE;
-- plen += sizeof(pid) + TAG_HDR_SIZE;
-+ if (conn->hostUniq.length) {
-+ int len = ntohs(conn->hostUniq.length);
-+ CHECK_ROOM(cursor, packet.payload, len + TAG_HDR_SIZE);
-+ memcpy(cursor, &conn->hostUniq, len + TAG_HDR_SIZE);
-+ cursor += len + TAG_HDR_SIZE;
-+ plen += len + TAG_HDR_SIZE;
- }
-
- /* Add our maximum MTU/MRU */
-@@ -478,16 +471,12 @@ sendPADR(PPPoEConnection *conn)
- cursor += namelen + TAG_HDR_SIZE;
-
- /* If we're using Host-Uniq, copy it over */
-- if (conn->useHostUniq) {
-- PPPoETag hostUniq;
-- pid_t pid = getpid();
-- hostUniq.type = htons(TAG_HOST_UNIQ);
-- hostUniq.length = htons(sizeof(pid));
-- memcpy(hostUniq.payload, &pid, sizeof(pid));
-- CHECK_ROOM(cursor, packet.payload, sizeof(pid)+TAG_HDR_SIZE);
-- memcpy(cursor, &hostUniq, sizeof(pid) + TAG_HDR_SIZE);
-- cursor += sizeof(pid) + TAG_HDR_SIZE;
-- plen += sizeof(pid) + TAG_HDR_SIZE;
-+ if (conn->hostUniq.length) {
-+ int len = ntohs(conn->hostUniq.length);
-+ CHECK_ROOM(cursor, packet.payload, len+TAG_HDR_SIZE);
-+ memcpy(cursor, &conn->hostUniq, len + TAG_HDR_SIZE);
-+ cursor += len + TAG_HDR_SIZE;
-+ plen += len + TAG_HDR_SIZE;
- }
-
- /* Add our maximum MTU/MRU */
-diff --git a/pppd/plugins/rp-pppoe/plugin.c b/pppd/plugins/rp-pppoe/plugin.c
-index 7804b184f0cb..12778d0d9991 100644
---- a/pppd/plugins/rp-pppoe/plugin.c
-+++ b/pppd/plugins/rp-pppoe/plugin.c
-@@ -68,6 +68,7 @@ static char *existingSession = NULL;
- static int printACNames = 0;
- static char *pppoe_reqd_mac = NULL;
- unsigned char pppoe_reqd_mac_addr[6];
-+static char *host_uniq = NULL;
-
- static int PPPoEDevnameHook(char *cmd, char **argv, int doit);
- static option_t Options[] = {
-@@ -85,6 +86,8 @@ static option_t Options[] = {
- "Be verbose about discovered access concentrators"},
- { "pppoe-mac", o_string, &pppoe_reqd_mac,
- "Only connect to specified MAC address" },
-+ { "host-uniq", o_string, &host_uniq,
-+ "Specify custom Host-Uniq" },
- { NULL }
- };
- int (*OldDevnameHook)(char *cmd, char **argv, int doit) = NULL;
-@@ -110,7 +113,6 @@ PPPOEInitDevice(void)
- conn->ifName = devnam;
- conn->discoverySocket = -1;
- conn->sessionSocket = -1;
-- conn->useHostUniq = 1;
- conn->printACNames = printACNames;
- conn->discoveryTimeout = PADI_TIMEOUT;
- return 1;
-@@ -166,6 +168,9 @@ PPPOEConnectDevice(void)
- if (lcp_wantoptions[0].mru > ifr.ifr_mtu - TOTAL_OVERHEAD)
- lcp_wantoptions[0].mru = ifr.ifr_mtu - TOTAL_OVERHEAD;
-
-+ if (host_uniq && !parseHostUniq(host_uniq, &conn->hostUniq))
-+ fatal("Illegal value for host-uniq option");
-+
- conn->acName = acName;
- conn->serviceName = pppd_pppoe_service;
- strlcpy(ppp_devnam, devnam, sizeof(ppp_devnam));
-diff --git a/pppd/plugins/rp-pppoe/pppoe-discovery.c b/pppd/plugins/rp-pppoe/pppoe-discovery.c
-index 55037dffb023..ff4c487ffaa9 100644
---- a/pppd/plugins/rp-pppoe/pppoe-discovery.c
-+++ b/pppd/plugins/rp-pppoe/pppoe-discovery.c
-@@ -356,7 +356,7 @@ packetIsForMe(PPPoEConnection *conn, PPPoEPacket *packet)
- if (memcmp(packet->ethHdr.h_dest, conn->myEth, ETH_ALEN)) return 0;
-
- /* If we're not using the Host-Unique tag, then accept the packet */
-- if (!conn->useHostUniq) return 1;
-+ if (!conn->hostUniq.length) return 1;
-
- parsePacket(packet, parseForHostUniq, &forMe);
- return forMe;
-@@ -482,16 +482,12 @@ sendPADI(PPPoEConnection *conn)
- cursor += namelen + TAG_HDR_SIZE;
-
- /* If we're using Host-Uniq, copy it over */
-- if (conn->useHostUniq) {
-- PPPoETag hostUniq;
-- pid_t pid = getpid();
-- hostUniq.type = htons(TAG_HOST_UNIQ);
-- hostUniq.length = htons(sizeof(pid));
-- memcpy(hostUniq.payload, &pid, sizeof(pid));
-- CHECK_ROOM(cursor, packet.payload, sizeof(pid) + TAG_HDR_SIZE);
-- memcpy(cursor, &hostUniq, sizeof(pid) + TAG_HDR_SIZE);
-- cursor += sizeof(pid) + TAG_HDR_SIZE;
-- plen += sizeof(pid) + TAG_HDR_SIZE;
-+ if (conn->hostUniq.length) {
-+ int len = ntohs(conn->hostUniq.length);
-+ CHECK_ROOM(cursor, packet.payload, len + TAG_HDR_SIZE);
-+ memcpy(cursor, &conn->hostUniq, len + TAG_HDR_SIZE);
-+ cursor += len + TAG_HDR_SIZE;
-+ plen += len + TAG_HDR_SIZE;
- }
-
- packet.length = htons(plen);
-@@ -653,7 +649,7 @@ int main(int argc, char *argv[])
-
- memset(conn, 0, sizeof(PPPoEConnection));
-
-- while ((opt = getopt(argc, argv, "I:D:VUAS:C:h")) > 0) {
-+ while ((opt = getopt(argc, argv, "I:D:VUW:AS:C:h")) > 0) {
- switch(opt) {
- case 'S':
- conn->serviceName = xstrdup(optarg);
-@@ -662,7 +658,23 @@ int main(int argc, char *argv[])
- conn->acName = xstrdup(optarg);
- break;
- case 'U':
-- conn->useHostUniq = 1;
-+ if(conn->hostUniq.length) {
-+ fprintf(stderr, "-U and -W are mutually exclusive\n");
-+ exit(EXIT_FAILURE);
-+ }
-+ char pidbuf[5];
-+ snprintf(pidbuf, sizeof(pidbuf), "%04x", getpid());
-+ parseHostUniq(pidbuf, &conn->hostUniq);
-+ break;
-+ case 'W':
-+ if(conn->hostUniq.length) {
-+ fprintf(stderr, "-U and -W are mutually exclusive\n");
-+ exit(EXIT_FAILURE);
-+ }
-+ if (!parseHostUniq(optarg, &conn->hostUniq)) {
-+ fprintf(stderr, "Invalid host-uniq argument: %s\n", optarg);
-+ exit(EXIT_FAILURE);
-+ }
- break;
- case 'D':
- conn->debugFile = fopen(optarg, "w");
-diff --git a/pppd/plugins/rp-pppoe/pppoe.h b/pppd/plugins/rp-pppoe/pppoe.h
-index c4aaa6e68856..08026f577028 100644
---- a/pppd/plugins/rp-pppoe/pppoe.h
-+++ b/pppd/plugins/rp-pppoe/pppoe.h
-@@ -21,6 +21,8 @@
-
- #include <stdio.h> /* For FILE */
- #include <sys/types.h> /* For pid_t */
-+#include <ctype.h>
-+#include <string.h>
-
- /* How do we access raw Ethernet devices? */
- #undef USE_LINUX_PACKET
-@@ -236,7 +238,7 @@ typedef struct PPPoEConnectionStruct {
- char *serviceName; /* Desired service name, if any */
- char *acName; /* Desired AC name, if any */
- int synchronous; /* Use synchronous PPP */
-- int useHostUniq; /* Use Host-Uniq tag */
-+ PPPoETag hostUniq; /* Use Host-Uniq tag */
- int printACNames; /* Just print AC names */
- FILE *debugFile; /* Debug file for dumping packets */
- int numPADOs; /* Number of PADO packets received */
-@@ -292,6 +294,33 @@ void pppoe_printpkt(PPPoEPacket *packet,
- void (*printer)(void *, char *, ...), void *arg);
- void pppoe_log_packet(const char *prefix, PPPoEPacket *packet);
-
-+static inline int parseHostUniq(const char *uniq, PPPoETag *tag)
-+{
-+ int i, len = strlen(uniq);
-+
-+#define hex(x) \
-+ (((x) <= '9') ? ((x) - '0') : \
-+ (((x) <= 'F') ? ((x) - 'A' + 10) : \
-+ ((x) - 'a' + 10)))
-+
-+ if (len % 2)
-+ return 0;
-+
-+ for (i = 0; i < len; i += 2)
-+ {
-+ if (!isxdigit(uniq[i]) || !isxdigit(uniq[i+1]))
-+ return 0;
-+
-+ tag->payload[i / 2] = (char)(16 * hex(uniq[i]) + hex(uniq[i+1]));
-+ }
-+
-+#undef hex
-+
-+ tag->type = htons(TAG_HOST_UNIQ);
-+ tag->length = htons(len / 2);
-+ return 1;
-+}
-+
- #define SET_STRING(var, val) do { if (var) free(var); var = strDup(val); } while(0);
-
- #define CHECK_ROOM(cursor, start, len) \
diff --git a/patches/ppp-2.4.7/0027-Add-replacedefaultroute-option.patch b/patches/ppp-2.4.7/0027-Add-replacedefaultroute-option.patch
deleted file mode 100644
index 19f931b12..000000000
--- a/patches/ppp-2.4.7/0027-Add-replacedefaultroute-option.patch
+++ /dev/null
@@ -1,324 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:49 +0200
-Subject: [PATCH] Add replacedefaultroute option
-
-Adds an option to pppd to control whether to replace existing default routes
-when using the 'defaultroute' option.
-
-If defaultroute and replacedefaultroute are both set, pppd replaces an existing
-default route with the new default route. The old default route is restored when
-the connection is taken down.
-
-Origin: vendor, https://build.opensuse.org/source/network/ppp/ppp-2.4.2-cifdefroute.diff?rev=7a0fdeff0b29437dd7f4581c95c7255a
-Forwarded: no
-Reviewed-by: Chris Boot <bootc@debian.org>
-Last-Update: 2014-01-26
-
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/ipcp.c | 45 +++++++++++++++++++++++++++----
- pppd/ipcp.h | 1 +
- pppd/pppd.8 | 12 ++++++++-
- pppd/pppd.h | 4 +++
- pppd/sys-linux.c | 82 +++++++++++++++++++++++++++++++++++++++++++++-----------
- 5 files changed, 123 insertions(+), 21 deletions(-)
-
-diff --git a/pppd/ipcp.c b/pppd/ipcp.c
-index e9738fe4d894..c8fe279d4ede 100644
---- a/pppd/ipcp.c
-+++ b/pppd/ipcp.c
-@@ -198,6 +198,16 @@ static option_t ipcp_option_list[] = {
- "disable defaultroute option", OPT_ALIAS | OPT_A2CLR,
- &ipcp_wantoptions[0].default_route },
-
-+#ifdef __linux__
-+ { "replacedefaultroute", o_bool,
-+ &ipcp_wantoptions[0].replace_default_route,
-+ "Replace default route", 1
-+ },
-+ { "noreplacedefaultroute", o_bool,
-+ &ipcp_allowoptions[0].replace_default_route,
-+ "Never replace default route", OPT_A2COPY,
-+ &ipcp_wantoptions[0].replace_default_route },
-+#endif
- { "proxyarp", o_bool, &ipcp_wantoptions[0].proxy_arp,
- "Add proxy ARP entry", OPT_ENABLE|1, &ipcp_allowoptions[0].proxy_arp },
- { "noproxyarp", o_bool, &ipcp_allowoptions[0].proxy_arp,
-@@ -271,7 +281,7 @@ struct protent ipcp_protent = {
- ip_active_pkt
- };
-
--static void ipcp_clear_addrs __P((int, u_int32_t, u_int32_t));
-+static void ipcp_clear_addrs __P((int, u_int32_t, u_int32_t, bool));
- static void ipcp_script __P((char *, int)); /* Run an up/down script */
- static void ipcp_script_done __P((void *));
-
-@@ -1761,7 +1771,12 @@ ip_demand_conf(u)
- if (!sifnpmode(u, PPP_IP, NPMODE_QUEUE))
- return 0;
- if (wo->default_route)
-+#ifndef __linux__
- if (sifdefaultroute(u, wo->ouraddr, wo->hisaddr))
-+#else
-+ if (sifdefaultroute(u, wo->ouraddr, wo->hisaddr,
-+ wo->replace_default_route))
-+#endif
- default_route_set[u] = 1;
- if (wo->proxy_arp)
- if (sifproxyarp(u, wo->hisaddr))
-@@ -1849,7 +1864,8 @@ ipcp_up(f)
- */
- if (demand) {
- if (go->ouraddr != wo->ouraddr || ho->hisaddr != wo->hisaddr) {
-- ipcp_clear_addrs(f->unit, wo->ouraddr, wo->hisaddr);
-+ ipcp_clear_addrs(f->unit, wo->ouraddr, wo->hisaddr,
-+ wo->replace_default_route);
- if (go->ouraddr != wo->ouraddr) {
- warn("Local IP address changed to %I", go->ouraddr);
- script_setenv("OLDIPLOCAL", ip_ntoa(wo->ouraddr), 0);
-@@ -1874,7 +1890,12 @@ ipcp_up(f)
-
- /* assign a default route through the interface if required */
- if (ipcp_wantoptions[f->unit].default_route)
-+#ifndef __linux__
- if (sifdefaultroute(f->unit, go->ouraddr, ho->hisaddr))
-+#else
-+ if (sifdefaultroute(f->unit, go->ouraddr, ho->hisaddr,
-+ wo->replace_default_route))
-+#endif
- default_route_set[f->unit] = 1;
-
- /* Make a proxy ARP entry if requested. */
-@@ -1924,7 +1945,12 @@ ipcp_up(f)
-
- /* assign a default route through the interface if required */
- if (ipcp_wantoptions[f->unit].default_route)
-+#ifndef __linux__
- if (sifdefaultroute(f->unit, go->ouraddr, ho->hisaddr))
-+#else
-+ if (sifdefaultroute(f->unit, go->ouraddr, ho->hisaddr,
-+ wo->replace_default_route))
-+#endif
- default_route_set[f->unit] = 1;
-
- /* Make a proxy ARP entry if requested. */
-@@ -2002,7 +2028,7 @@ ipcp_down(f)
- sifnpmode(f->unit, PPP_IP, NPMODE_DROP);
- sifdown(f->unit);
- ipcp_clear_addrs(f->unit, ipcp_gotoptions[f->unit].ouraddr,
-- ipcp_hisoptions[f->unit].hisaddr);
-+ ipcp_hisoptions[f->unit].hisaddr, 0);
- }
-
- /* Execute the ip-down script */
-@@ -2018,16 +2044,25 @@ ipcp_down(f)
- * proxy arp entries, etc.
- */
- static void
--ipcp_clear_addrs(unit, ouraddr, hisaddr)
-+ipcp_clear_addrs(unit, ouraddr, hisaddr, replacedefaultroute)
- int unit;
- u_int32_t ouraddr; /* local address */
- u_int32_t hisaddr; /* remote address */
-+ bool replacedefaultroute;
- {
- if (proxy_arp_set[unit]) {
- cifproxyarp(unit, hisaddr);
- proxy_arp_set[unit] = 0;
- }
-- if (default_route_set[unit]) {
-+ /* If replacedefaultroute, sifdefaultroute will be called soon
-+ * with replacedefaultroute set and that will overwrite the current
-+ * default route. This is the case only when doing demand, otherwise
-+ * during demand, this cifdefaultroute would restore the old default
-+ * route which is not what we want in this case. In the non-demand
-+ * case, we'll delete the default route and restore the old if there
-+ * is one saved by an sifdefaultroute with replacedefaultroute.
-+ */
-+ if (!replacedefaultroute && default_route_set[unit]) {
- cifdefaultroute(unit, ouraddr, hisaddr);
- default_route_set[unit] = 0;
- }
-diff --git a/pppd/ipcp.h b/pppd/ipcp.h
-index 6cf14c990578..7ecfa79d8668 100644
---- a/pppd/ipcp.h
-+++ b/pppd/ipcp.h
-@@ -70,6 +70,7 @@ typedef struct ipcp_options {
- bool old_addrs; /* Use old (IP-Addresses) option? */
- bool req_addr; /* Ask peer to send IP address? */
- bool default_route; /* Assign default route through interface? */
-+ bool replace_default_route; /* Replace default route through interface? */
- bool proxy_arp; /* Make proxy ARP entry for peer? */
- bool neg_vj; /* Van Jacobson Compression? */
- bool old_vj; /* use old (short) form of VJ option? */
-diff --git a/pppd/pppd.8 b/pppd/pppd.8
-index ec8bfd5c0617..481aa8be672b 100644
---- a/pppd/pppd.8
-+++ b/pppd/pppd.8
-@@ -121,6 +121,11 @@ the gateway, when IPCP negotiation is successfully completed.
- This entry is removed when the PPP connection is broken. This option
- is privileged if the \fInodefaultroute\fR option has been specified.
- .TP
-+.B replacedefaultroute
-+This option is a flag to the defaultroute option. If defaultroute is
-+set and this flag is also set, pppd replaces an existing default route
-+with the new default route.
-+.TP
- .B disconnect \fIscript
- Execute the command specified by \fIscript\fR, by passing it to a
- shell, after
-@@ -739,7 +744,12 @@ disable both forms of hardware flow control.
- .TP
- .B nodefaultroute
- Disable the \fIdefaultroute\fR option. The system administrator who
--wishes to prevent users from creating default routes with pppd
-+wishes to prevent users from adding a default route with pppd
-+can do so by placing this option in the /etc/ppp/options file.
-+.TP
-+.B noreplacedefaultroute
-+Disable the \fIreplacedefaultroute\fR option. The system administrator who
-+wishes to prevent users from replacing a default route with pppd
- can do so by placing this option in the /etc/ppp/options file.
- .TP
- .B nodeflate
-diff --git a/pppd/pppd.h b/pppd/pppd.h
-index 1a1bf0b99582..7495df657fe9 100644
---- a/pppd/pppd.h
-+++ b/pppd/pppd.h
-@@ -676,7 +676,11 @@ int sif6addr __P((int, eui64_t, eui64_t));
- int cif6addr __P((int, eui64_t, eui64_t));
- /* Remove an IPv6 address from i/f */
- #endif
-+#ifndef __linux__
- int sifdefaultroute __P((int, u_int32_t, u_int32_t));
-+#else
-+int sifdefaultroute __P((int, u_int32_t, u_int32_t, bool replace_default_rt));
-+#endif
- /* Create default route through i/f */
- int cifdefaultroute __P((int, u_int32_t, u_int32_t));
- /* Delete default route through i/f */
-diff --git a/pppd/sys-linux.c b/pppd/sys-linux.c
-index 6d29dc8e8594..3f0bbc33c605 100644
---- a/pppd/sys-linux.c
-+++ b/pppd/sys-linux.c
-@@ -207,6 +207,8 @@ static unsigned char inbuf[512]; /* buffer for chars read from loopback */
- static int if_is_up; /* Interface has been marked up */
- static int if6_is_up; /* Interface has been marked up for IPv6, to help differentiate */
- static int have_default_route; /* Gateway for default route added */
-+static struct rtentry old_def_rt; /* Old default route */
-+static int default_rt_repl_rest; /* replace and restore old default rt */
- static u_int32_t proxy_arp_addr; /* Addr for proxy arp entry added */
- static char proxy_arp_dev[16]; /* Device for proxy arp entry */
- static u_int32_t our_old_addr; /* for detecting address changes */
-@@ -1567,6 +1569,9 @@ static int read_route_table(struct rtentry *rt)
- p = NULL;
- }
-
-+ SET_SA_FAMILY (rt->rt_dst, AF_INET);
-+ SET_SA_FAMILY (rt->rt_gateway, AF_INET);
-+
- SIN_ADDR(rt->rt_dst) = strtoul(cols[route_dest_col], NULL, 16);
- SIN_ADDR(rt->rt_gateway) = strtoul(cols[route_gw_col], NULL, 16);
- SIN_ADDR(rt->rt_genmask) = strtoul(cols[route_mask_col], NULL, 16);
-@@ -1636,22 +1641,53 @@ int have_route_to(u_int32_t addr)
- /********************************************************************
- *
- * sifdefaultroute - assign a default route through the address given.
-- */
--
--int sifdefaultroute (int unit, u_int32_t ouraddr, u_int32_t gateway)
--{
-- struct rtentry rt;
--
-- if (defaultroute_exists(&rt) && strcmp(rt.rt_dev, ifname) != 0) {
-- if (rt.rt_flags & RTF_GATEWAY)
-- error("not replacing existing default route via %I",
-- SIN_ADDR(rt.rt_gateway));
-- else
-- error("not replacing existing default route through %s",
-- rt.rt_dev);
-- return 0;
-+ *
-+ * If the global default_rt_repl_rest flag is set, then this function
-+ * already replaced the original system defaultroute with some other
-+ * route and it should just replace the current defaultroute with
-+ * another one, without saving the current route. Use: demand mode,
-+ * when pppd sets first a defaultroute it it's temporary ppp0 addresses
-+ * and then changes the temporary addresses to the addresses for the real
-+ * ppp connection when it has come up.
-+ */
-+
-+int sifdefaultroute (int unit, u_int32_t ouraddr, u_int32_t gateway, bool replace)
-+{
-+ struct rtentry rt, tmp_rt;
-+ struct rtentry *del_rt = NULL;
-+
-+ if (default_rt_repl_rest) {
-+ /* We have already reclaced the original defaultroute, if we
-+ * are called again, we will delete the current default route
-+ * and set the new default route in this function.
-+ * - this is normally only the case the doing demand: */
-+ if (defaultroute_exists( &tmp_rt ))
-+ del_rt = &tmp_rt;
-+ } else if ( defaultroute_exists( &old_def_rt ) &&
-+ strcmp( old_def_rt.rt_dev, ifname ) != 0) {
-+ /* We did not yet replace an existing default route, let's
-+ * check if we should save and replace a default route:
-+ */
-+ u_int32_t old_gateway = SIN_ADDR(old_def_rt.rt_gateway);
-+
-+ if (old_gateway != gateway) {
-+ if (!replace) {
-+ error("not replacing default route to %s [%I]",
-+ old_def_rt.rt_dev, old_gateway);
-+ return 0;
-+ } else {
-+ // we need to copy rt_dev because we need it permanent too:
-+ char * tmp_dev = malloc(strlen(old_def_rt.rt_dev)+1);
-+ strcpy(tmp_dev, old_def_rt.rt_dev);
-+ old_def_rt.rt_dev = tmp_dev;
-+
-+ notice("replacing old default route to %s [%I]",
-+ old_def_rt.rt_dev, old_gateway);
-+ default_rt_repl_rest = 1;
-+ del_rt = &old_def_rt;
-+ }
-+ }
- }
--
- memset (&rt, 0, sizeof (rt));
- SET_SA_FAMILY (rt.rt_dst, AF_INET);
-
-@@ -1668,6 +1704,12 @@ int sifdefaultroute (int unit, u_int32_t ouraddr, u_int32_t gateway)
- error("default route ioctl(SIOCADDRT): %m");
- return 0;
- }
-+ if (default_rt_repl_rest && del_rt)
-+ if (ioctl(sock_fd, SIOCDELRT, del_rt) < 0) {
-+ if ( ! ok_error ( errno ))
-+ error("del old default route ioctl(SIOCDELRT): %m(%d)", errno);
-+ return 0;
-+ }
-
- have_default_route = 1;
- return 1;
-@@ -1703,6 +1745,16 @@ int cifdefaultroute (int unit, u_int32_t ouraddr, u_int32_t gateway)
- return 0;
- }
- }
-+ if (default_rt_repl_rest) {
-+ notice("restoring old default route to %s [%I]",
-+ old_def_rt.rt_dev, SIN_ADDR(old_def_rt.rt_gateway));
-+ if (ioctl(sock_fd, SIOCADDRT, &old_def_rt) < 0) {
-+ if ( ! ok_error ( errno ))
-+ error("restore default route ioctl(SIOCADDRT): %m(%d)", errno);
-+ return 0;
-+ }
-+ default_rt_repl_rest = 0;
-+ }
-
- return 1;
- }
diff --git a/patches/ppp-2.4.7/0029-add-support-for-the-Framed-MTU-Radius-attribute.patch b/patches/ppp-2.4.7/0029-add-support-for-the-Framed-MTU-Radius-attribute.patch
deleted file mode 100644
index 3cd1b78e7..000000000
--- a/patches/ppp-2.4.7/0029-add-support-for-the-Framed-MTU-Radius-attribute.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:49 +0200
-Subject: [PATCH] add support for the Framed-MTU Radius attribute
-
-http://ppp.samba.org/cgi-bin/ppp-bugs/incoming?id=1532
-
-From: klepikov_a@up.ua
-To: ppp-bugs@ppp.samba.org
-Subject: Radius plugin does not set MTU on ppp interface
-Date: Mon, 22 Jan 2007 12:36:59 +0000 (GMT)
-
-Full_Name: Alexander Klepikov
-Version: 2.4.3
-OS: rhl 7.3 (2.4.20-28.7bigmem)
-Submission from: (NULL) (213.130.21.73)
-
-
-This patch allows radius plugin to deal with Framed-MTU Radius attribute and to
-set MTU on interface.
-
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/plugins/radius/radius.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/pppd/plugins/radius/radius.c b/pppd/plugins/radius/radius.c
-index 4ba5f523ea07..06e00590b635 100644
---- a/pppd/plugins/radius/radius.c
-+++ b/pppd/plugins/radius/radius.c
-@@ -651,6 +651,9 @@ radius_setparams(VALUE_PAIR *vp, char *msg, REQUEST_INFO *req_info,
- memcpy(rstate.class, vp->strvalue, rstate.class_len);
- } /* else too big for our buffer - ignore it */
- break;
-+ case PW_FRAMED_MTU:
-+ netif_set_mtu(rstate.client_port,MIN(netif_get_mtu(rstate.client_port),vp->lvalue));
-+ break;
- }
-
-
diff --git a/patches/ppp-2.4.7/0030-018_ip-up_option.patch b/patches/ppp-2.4.7/0030-018_ip-up_option.patch
deleted file mode 100644
index 06cb2e5bb..000000000
--- a/patches/ppp-2.4.7/0030-018_ip-up_option.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:49 +0200
-Subject: [PATCH] 018_ip up_option
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/ipcp.c | 8 ++++----
- pppd/main.c | 3 +++
- pppd/options.c | 9 +++++++++
- pppd/pppd.h | 2 ++
- 4 files changed, 18 insertions(+), 4 deletions(-)
-
-diff --git a/pppd/ipcp.c b/pppd/ipcp.c
-index dceca807542a..d6e0e2a699fe 100644
---- a/pppd/ipcp.c
-+++ b/pppd/ipcp.c
-@@ -1984,7 +1984,7 @@ ipcp_up(f)
- */
- if (ipcp_script_state == s_down && ipcp_script_pid == 0) {
- ipcp_script_state = s_up;
-- ipcp_script(_PATH_IPUP, 0);
-+ ipcp_script(path_ipup, 0);
- }
- }
-
-@@ -2034,7 +2034,7 @@ ipcp_down(f)
- /* Execute the ip-down script */
- if (ipcp_script_state == s_up && ipcp_script_pid == 0) {
- ipcp_script_state = s_down;
-- ipcp_script(_PATH_IPDOWN, 0);
-+ ipcp_script(path_ipdown, 0);
- }
- }
-
-@@ -2097,13 +2097,13 @@ ipcp_script_done(arg)
- case s_up:
- if (ipcp_fsm[0].state != OPENED) {
- ipcp_script_state = s_down;
-- ipcp_script(_PATH_IPDOWN, 0);
-+ ipcp_script(path_ipdown, 0);
- }
- break;
- case s_down:
- if (ipcp_fsm[0].state == OPENED) {
- ipcp_script_state = s_up;
-- ipcp_script(_PATH_IPUP, 0);
-+ ipcp_script(path_ipup, 0);
- }
- break;
- }
-diff --git a/pppd/main.c b/pppd/main.c
-index ed544315c1df..9164a1eb0f95 100644
---- a/pppd/main.c
-+++ b/pppd/main.c
-@@ -308,6 +308,9 @@ main(argc, argv)
- struct protent *protp;
- char numbuf[16];
-
-+ strlcpy(path_ipup, _PATH_IPUP, sizeof(path_ipup));
-+ strlcpy(path_ipdown, _PATH_IPDOWN, sizeof(path_ipdown));
-+
- link_stats_valid = 0;
- new_phase(PHASE_INITIALIZE);
-
-diff --git a/pppd/options.c b/pppd/options.c
-index 91da515ac533..a8f3aa4590a3 100644
---- a/pppd/options.c
-+++ b/pppd/options.c
-@@ -114,6 +114,8 @@ char linkname[MAXPATHLEN]; /* logical name for link */
- bool tune_kernel; /* may alter kernel settings */
- int connect_delay = 1000; /* wait this many ms after connect script */
- int req_unit = -1; /* requested interface unit */
-+char path_ipup[MAXPATHLEN]; /* pathname of ip-up script */
-+char path_ipdown[MAXPATHLEN];/* pathname of ip-down script */
- char req_ifname[MAXIFNAMELEN]; /* requested interface name */
- bool multilink = 0; /* Enable multilink operation */
- char *bundle_name = NULL; /* bundle name for multilink */
-@@ -304,6 +306,13 @@ option_t general_options[] = {
- "Unset user environment variable",
- OPT_A2PRINTER | OPT_NOPRINT, (void *)user_unsetprint },
-
-+ { "ip-up-script", o_string, path_ipup,
-+ "Set pathname of ip-up script",
-+ OPT_PRIV|OPT_STATIC, NULL, MAXPATHLEN },
-+ { "ip-down-script", o_string, path_ipdown,
-+ "Set pathname of ip-down script",
-+ OPT_PRIV|OPT_STATIC, NULL, MAXPATHLEN },
-+
- #ifdef HAVE_MULTILINK
- { "multilink", o_bool, &multilink,
- "Enable multilink operation", OPT_PRIO | 1 },
-diff --git a/pppd/pppd.h b/pppd/pppd.h
-index e65106d4c126..b11670586244 100644
---- a/pppd/pppd.h
-+++ b/pppd/pppd.h
-@@ -328,6 +328,8 @@ extern bool tune_kernel; /* May alter kernel settings as necessary */
- extern int connect_delay; /* Time to delay after connect script */
- extern int max_data_rate; /* max bytes/sec through charshunt */
- extern int req_unit; /* interface unit number to use */
-+extern char path_ipup[MAXPATHLEN]; /* pathname of ip-up script */
-+extern char path_ipdown[MAXPATHLEN]; /* pathname of ip-down script */
- extern char req_ifname[MAXIFNAMELEN]; /* interface name to use */
- extern bool multilink; /* enable multilink operation */
- extern bool noendpoint; /* don't send or accept endpt. discrim. */
diff --git a/patches/ppp-2.4.7/0031-ppp-2.4.2-stripMSdomain.patch b/patches/ppp-2.4.7/0031-ppp-2.4.2-stripMSdomain.patch
deleted file mode 100644
index 32629026c..000000000
--- a/patches/ppp-2.4.7/0031-ppp-2.4.2-stripMSdomain.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:49 +0200
-Subject: [PATCH] ppp-2.4.2-stripMSdomain
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/chap-new.c | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/pppd/chap-new.c b/pppd/chap-new.c
-index 2714bff64785..7fd7087a5e2c 100644
---- a/pppd/chap-new.c
-+++ b/pppd/chap-new.c
-@@ -58,6 +58,7 @@ int (*chap_verify_hook)(char *name, char *ourname, int id,
- int chap_timeout_time = 3;
- int chap_max_transmits = 10;
- int chap_rechallenge_time = 0;
-+int chapms_strip_domain = 0;
-
- /*
- * Command-line options.
-@@ -69,6 +70,8 @@ static option_t chap_option_list[] = {
- "Set max #xmits for challenge", OPT_PRIO },
- { "chap-interval", o_int, &chap_rechallenge_time,
- "Set interval for rechallenge", OPT_PRIO },
-+ { "chapms-strip-domain", o_bool, &chapms_strip_domain,
-+ "Strip the domain prefix before the Username", 1 },
- { NULL }
- };
-
-@@ -336,6 +339,14 @@ chap_handle_response(struct chap_server_state *ss, int id,
- /* Null terminate and clean remote name. */
- slprintf(rname, sizeof(rname), "%.*v", len, name);
- name = rname;
-+
-+ /* strip the MS domain name */
-+ if (chapms_strip_domain && strrchr(rname, '\\')) {
-+ char tmp[MAXNAMELEN+1];
-+
-+ strcpy(tmp, strrchr(rname, '\\') + 1);
-+ strcpy(rname, tmp);
-+ }
- }
-
- if (chap_verify_hook)
diff --git a/patches/ppp-2.4.7/0032-export-CALL_FILE-to-the-link-scripts.patch b/patches/ppp-2.4.7/0032-export-CALL_FILE-to-the-link-scripts.patch
deleted file mode 100644
index 6a2e17088..000000000
--- a/patches/ppp-2.4.7/0032-export-CALL_FILE-to-the-link-scripts.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:50 +0200
-Subject: [PATCH] export $CALL_FILE to the link scripts
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/options.c | 1 +
- pppd/pppd.8 | 3 +++
- 2 files changed, 4 insertions(+)
-
-diff --git a/pppd/options.c b/pppd/options.c
-index a8f3aa4590a3..340797386dd6 100644
---- a/pppd/options.c
-+++ b/pppd/options.c
-@@ -1482,6 +1482,7 @@ callfile(argv)
- if ((fname = (char *) malloc(l)) == NULL)
- novm("call file name");
- slprintf(fname, l, "%s%s", _PATH_PEERFILES, arg);
-+ script_setenv("CALL_FILE", arg, 0);
-
- ok = options_from_file(fname, 1, 1, 1);
-
-diff --git a/pppd/pppd.8 b/pppd/pppd.8
-index 481aa8be672b..848ca8a16b77 100644
---- a/pppd/pppd.8
-+++ b/pppd/pppd.8
-@@ -1662,6 +1662,9 @@ the connection.
- .B LINKNAME
- The logical name of the link, set with the \fIlinkname\fR option.
- .TP
-+.B CALL_FILE
-+The value of the \fIcall\fR option.
-+.TP
- .B DNS1
- If the peer supplies DNS server addresses, this variable is set to the
- first DNS server address supplied (whether or not the usepeerdns
diff --git a/patches/ppp-2.4.7/0033-ipv6-accept-remote.patch b/patches/ppp-2.4.7/0033-ipv6-accept-remote.patch
deleted file mode 100644
index 01376cf14..000000000
--- a/patches/ppp-2.4.7/0033-ipv6-accept-remote.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:50 +0200
-Subject: [PATCH] ipv6-accept-remote
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/ipv6cp.c | 5 ++++-
- pppd/ipv6cp.h | 3 ++-
- pppd/pppd.8 | 5 +++++
- 3 files changed, 11 insertions(+), 2 deletions(-)
-
-diff --git a/pppd/ipv6cp.c b/pppd/ipv6cp.c
-index c1602f41c206..432170462196 100644
---- a/pppd/ipv6cp.c
-+++ b/pppd/ipv6cp.c
-@@ -245,6 +245,8 @@ static option_t ipv6cp_option_list[] = {
-
- { "ipv6cp-accept-local", o_bool, &ipv6cp_allowoptions[0].accept_local,
- "Accept peer's interface identifier for us", 1 },
-+ { "ipv6cp-accept-remote", o_bool, &ipv6cp_allowoptions[0].accept_remote,
-+ "Accept peer's interface identifier for itself", 1 },
-
- { "ipv6cp-use-ipaddr", o_bool, &ipv6cp_allowoptions[0].use_ip,
- "Use (default) IPv4 address as interface identifier", 1 },
-@@ -435,6 +437,7 @@ ipv6cp_init(unit)
- memset(ao, 0, sizeof(*ao));
-
- wo->accept_local = 1;
-+ wo->accept_remote = 1;
- wo->neg_ifaceid = 1;
- ao->neg_ifaceid = 1;
-
-@@ -960,7 +963,7 @@ ipv6cp_reqci(f, inp, len, reject_if_disagree)
- orc = CONFREJ; /* Reject CI */
- break;
- }
-- if (!eui64_iszero(wo->hisid) &&
-+ if (!eui64_iszero(wo->hisid) && !wo->accept_remote &&
- !eui64_equals(ifaceid, wo->hisid) &&
- eui64_iszero(go->hisid)) {
-
-diff --git a/pppd/ipv6cp.h b/pppd/ipv6cp.h
-index 2f4c06ddc189..1617707ebbde 100644
---- a/pppd/ipv6cp.h
-+++ b/pppd/ipv6cp.h
-@@ -150,7 +150,8 @@
- typedef struct ipv6cp_options {
- int neg_ifaceid; /* Negotiate interface identifier? */
- int req_ifaceid; /* Ask peer to send interface identifier? */
-- int accept_local; /* accept peer's value for iface id? */
-+ int accept_local; /* accept peer's value for our iface id? */
-+ int accept_remote; /* accept peer's value for his iface id? */
- int opt_local; /* ourtoken set by option */
- int opt_remote; /* histoken set by option */
- int use_ip; /* use IP as interface identifier */
-diff --git a/pppd/pppd.8 b/pppd/pppd.8
-index 848ca8a16b77..65bbe721f761 100644
---- a/pppd/pppd.8
-+++ b/pppd/pppd.8
-@@ -463,6 +463,11 @@ With this option, pppd will accept the peer's idea of our local IPv6
- interface identifier, even if the local IPv6 interface identifier
- was specified in an option.
- .TP
-+.B ipv6cp\-accept\-remote
-+With this option, pppd will accept the peer's idea of its (remote)
-+IPv6 interface identifier, even if the remote IPv6 interface
-+identifier was specified in an option.
-+.TP
- .B ipv6cp\-max\-configure \fIn
- Set the maximum number of IPv6CP configure-request transmissions to
- \fIn\fR (default 10).
diff --git a/patches/ppp-2.4.7/0034-fix-a-potential-buffer-overflow-in-clientid.c-rc_map.patch b/patches/ppp-2.4.7/0034-fix-a-potential-buffer-overflow-in-clientid.c-rc_map.patch
deleted file mode 100644
index 2a8a029df..000000000
--- a/patches/ppp-2.4.7/0034-fix-a-potential-buffer-overflow-in-clientid.c-rc_map.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:50 +0200
-Subject: [PATCH] fix a potential buffer overflow in clientid.c:rc_map2id()
-
-This fixes the following compile-time warning when building with
--D_FORTIFY_SOURCE=2:
-
-In file included from /usr/include/string.h:638:0,
- from ./includes.h:26,
- from clientid.c:12:
-In function 'strncat',
- inlined from 'rc_map2id' at clientid.c:113:9:
-/usr/include/i386-linux-gnu/bits/string3.h:150:3: warning: call to
-__builtin___strncat_chk might overflow destination buffer [enabled by default]
- return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest));
- ^
-
-Origin: vendor, https://build.opensuse.org/source/network/ppp/ppp-2.4.4-strncatfix.patch?rev=7a0fdeff0b29437dd7f4581c95c7255a
-Forwarded: no
-Reviewed-by: Chris Boot <bootc@debian.org>
-Last-Update: 2014-01-12
-
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/plugins/radius/clientid.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pppd/plugins/radius/clientid.c b/pppd/plugins/radius/clientid.c
-index d49579c43cc3..7de021139b56 100644
---- a/pppd/plugins/radius/clientid.c
-+++ b/pppd/plugins/radius/clientid.c
-@@ -110,7 +110,7 @@ UINT4 rc_map2id(char *name)
- if (*name != '/')
- strcpy(ttyname, "/dev/");
-
-- strncat(ttyname, name, sizeof(ttyname));
-+ strncat(ttyname, name, sizeof(ttyname)-strlen(ttyname)-1);
-
- for(p = map2id_list; p; p = p->next)
- if (!strcmp(ttyname, p->name)) return p->id;
diff --git a/patches/ppp-2.4.7/0037-Fix-buffer-overflow-in-rc_mksid.patch b/patches/ppp-2.4.7/0037-Fix-buffer-overflow-in-rc_mksid.patch
deleted file mode 100644
index e21f129ad..000000000
--- a/patches/ppp-2.4.7/0037-Fix-buffer-overflow-in-rc_mksid.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:50 +0200
-Subject: [PATCH] Fix buffer overflow in rc_mksid()
-
- rc_mksid converts the PID of pppd to hex to generate a pseudo-unique string.
- .
- If the process id is bigger than 65535 (FFFF), its hex representation will be
- longer than 4 characters, resulting in a buffer overflow.
- .
- The bug can be exploited to cause a remote DoS.
- .
-Author: Emanuele Rocca <ema@debian.org>
-Bug-Debian: https://bugs.debian.org/782450
-Last-Update: <2015-04-14>
-
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/plugins/radius/util.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pppd/plugins/radius/util.c b/pppd/plugins/radius/util.c
-index 6f976a712951..166bd5f31d7a 100644
---- a/pppd/plugins/radius/util.c
-+++ b/pppd/plugins/radius/util.c
-@@ -77,7 +77,7 @@ rc_mksid (void)
- static unsigned short int cnt = 0;
- sprintf (buf, "%08lX%04X%02hX",
- (unsigned long int) time (NULL),
-- (unsigned int) getpid (),
-+ (unsigned int) getpid () % 65535,
- cnt & 0xFF);
- cnt++;
- return buf;
diff --git a/patches/ppp-2.4.7/0038-EAP-TLS-authentication-support-for-PPP.patch b/patches/ppp-2.4.7/0038-EAP-TLS-authentication-support-for-PPP.patch
deleted file mode 100644
index bd462d4f8..000000000
--- a/patches/ppp-2.4.7/0038-EAP-TLS-authentication-support-for-PPP.patch
+++ /dev/null
@@ -1,3383 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:50 +0200
-Subject: [PATCH] EAP-TLS authentication support for PPP
-
-Origin: https://www.nikhef.nl/~janjust/ppp/download.html
-Bug-Debian: https://bugs.debian.org/602503
-Bug-Ubuntu: https://launchpad.net/bugs/643417
-Forwarded: not-needed
-Author: Jan Just Keijser <janjust@nikhef.nl>
-Last-Update: 2018-11-04
-
-This patch is based on ppp-2.4.7-eaptls-mppe-1.102.patch, with the following
-changes:
-
- - Patch refreshed to remove fuzz.
- - Trailing spaces removed.
-
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- README.eap-tls | 291 +++++++++
- etc.ppp/eaptls-client | 10 +
- etc.ppp/eaptls-server | 11 +
- etc.ppp/openssl.cnf | 14 +
- linux/Makefile.top | 6 +-
- pppd/Makefile.linux | 12 +
- pppd/auth.c | 413 ++++++++++++-
- pppd/ccp.c | 20 +-
- pppd/chap-md5.c | 4 +
- pppd/eap-tls.c | 1383 +++++++++++++++++++++++++++++++++++++++++++
- pppd/eap-tls.h | 107 ++++
- pppd/eap.c | 463 ++++++++++++++-
- pppd/eap.h | 32 +-
- pppd/md5.c | 4 +
- pppd/md5.h | 3 +
- pppd/pathnames.h | 7 +
- pppd/plugins/Makefile.linux | 3 +
- pppd/plugins/passprompt.c | 3 +
- pppd/plugins/passwordfd.c | 4 +
- pppd/pppd.8 | 33 ++
- pppd/pppd.h | 9 +
- 21 files changed, 2825 insertions(+), 7 deletions(-)
- create mode 100644 README.eap-tls
- create mode 100644 etc.ppp/eaptls-client
- create mode 100644 etc.ppp/eaptls-server
- create mode 100644 etc.ppp/openssl.cnf
- create mode 100644 pppd/eap-tls.c
- create mode 100644 pppd/eap-tls.h
-
-diff --git a/README.eap-tls b/README.eap-tls
-new file mode 100644
-index 000000000000..107e84db5e81
---- /dev/null
-+++ b/README.eap-tls
-@@ -0,0 +1,291 @@
-+EAP-TLS authentication support for PPP
-+======================================
-+
-+1. Intro
-+
-+ The Extensible Authentication Protocol (EAP; RFC 3748) is a
-+ security protocol that can be used with PPP. It provides a means
-+ to plug in multiple optional authentication methods.
-+
-+ Transport Level Security (TLS; RFC 5216) provides for mutual
-+ authentication, integrity-protected ciphersuite negotiation and
-+ key exchange between two endpoints. It also provides for optional
-+ MPPE encryption.
-+
-+ EAP-TLS (RFC 2716) incapsulates the TLS messages in EAP packets,
-+ allowing TLS mutual authentication to be used as a generic EAP
-+ mechanism. It also provides optional encryption using the MPPE
-+ protocol.
-+
-+ This patch provide EAP-TLS support to pppd.
-+ This authentication method can be used in both client or server
-+ mode.
-+
-+2. Building
-+
-+ To build pppd with EAP-TLS support, OpenSSL (http://www.openssl.org)
-+ is required. Any version from 0.9.7 should work.
-+
-+ Configure, compile, and install as usual.
-+
-+3. Configuration
-+
-+ On the client side there are two ways to configure EAP-TLS:
-+
-+ 1. supply the appropriate 'ca', 'cert' and 'key' command-line parameters
-+
-+ 2. edit the /etc/ppp/eaptls-client file.
-+ Insert a line for each system with which you use EAP-TLS.
-+ The line is composed of this fields separated by tab:
-+
-+ - Client name
-+ The name used by the client for authentication, can be *
-+ - Server name
-+ The name of the server, can be *
-+ - Client certificate file
-+ The file containing the certificate chain for the
-+ client in PEM format
-+ - Server certificate file
-+ If you want to specify the certificate that the
-+ server is allowed to use, put the certificate file name.
-+ Else put a dash '-'.
-+ - CA certificate file
-+ The file containing the trusted CA certificates in PEM
-+ format.
-+ - Client private key file
-+ The file containing the client private key in PEM format.
-+
-+
-+ On the server side edit the /etc/ppp/eaptls-server file.
-+ Insert a line for each system with which you use EAP-TLS.
-+ The line is composed of this fields separated by tab:
-+
-+ - Client name
-+ The name used by the client for authentication, can be *
-+ - Server name
-+ The name of the server, can be *
-+ - Client certificate file
-+ If you want to specify the certificate that the
-+ client is allowed to use, put the certificate file name.
-+ Else put a dash '-'.
-+ - Server certificate file
-+ The file containing the certificate chain for the
-+ server in PEM format
-+ - CA certificate file
-+ The file containing the trusted CA certificates in PEM format.
-+ - Client private key file
-+ The file containing the server private key in PEM format.
-+ - addresses
-+ A list of IP addresses the client is allowed to use.
-+
-+
-+ OpenSSL engine support is included starting with v0.95 of this patch.
-+ Currently the only engine tested is the 'pkcs11' engine (hardware token
-+ support). To use the 'pksc11' engine:
-+ - Use a special private key fileiname in the /etc/ppp/eaptls-client file:
-+ <engine>:<identifier>
-+ e.g.
-+ pkcs11:123456
-+
-+ - The certificate can also be loaded from the 'pkcs11' engine using
-+ a special client certificate filename in the /etc/ppp/eaptls-client file:
-+ <engine>:<identifier>
-+ e.g.
-+ pkcs11:123456
-+
-+ - Create an /etc/ppp/openssl.cnf file to load the right OpenSSL engine prior
-+ to starting 'pppd'. A sample openssl.cnf file is
-+
-+ openssl_conf = openssl_def
-+
-+ [ openssl_def ]
-+ engines = engine_section
-+
-+ [ engine_section ]
-+ pkcs11 = pkcs11_section
-+
-+ [ pkcs11_section ]
-+ engine_id = pkcs11
-+ dynamic_path = /usr/lib64/openssl/engines/engine_pkcs11.so
-+ MODULE_PATH = /usr/lib64/libeTPkcs11.so
-+ init = 0
-+
-+ - There are two ways to specify a password/PIN for the PKCS11 engine:
-+ - inside the openssl.cnf file using
-+ PIN = your-secret-pin
-+ Note The keyword 'PIN' is case sensitive!
-+ - Using the 'password' in the ppp options file.
-+ From v0.97 of the eap-tls patch the password can also be supplied
-+ using the appropriate 'eaptls_passwd_hook' (see plugins/passprompt.c
-+ for an example).
-+
-+
-+4. Options
-+
-+ These pppd options are available:
-+
-+ ca <ca-file>
-+ Use the CA public certificate found in <ca-file> in PEM format
-+ cert <cert-file>
-+ Use the client public certificate found in <cert-file> in PEM format
-+ or in engine:engine_id format
-+ key <key-file>
-+ Use the client private key found in <key-file> in PEM format
-+ or in engine:engine_id format
-+ crl <crl-file>
-+ Use the Certificate Revocation List (CRL) file <crl-file> in PEM format.
-+ crl-dir <dir>
-+ Use CRL files from directory <dir>. It contains CRL files in PEM
-+ format and each file contains a CRL. The files are looked up
-+ by the issuer name hash value. Use the c_rehash utility
-+ to create necessary links.
-+ need-peer-eap
-+ If the peer doesn't ask us to authenticate or doesn't use eap
-+ to authenticate us, disconnect.
-+
-+ Note:
-+ password-encrypted certificates can be used as of v0.94 of this
-+ patch. The password for the eap-tls.key file is specified using
-+ the regular
-+ password ....
-+ statement in the ppp options file, or by using the appropriate
-+ plugin which supplies a 'eaptls_passwd_hook' routine.
-+
-+5. Connecting
-+
-+ If you're setting up a pppd server, edit the EAP-TLS configuration file
-+ as written above and then run pppd with the 'auth' option to authenticate
-+ the client. The EAP-TLS method will be used if the other eap methods can't
-+ be used (no secrets).
-+
-+ If you're setting up a client, edit the configuration file and then run
-+ pppd with 'remotename' option to specify the server name. Add the
-+ 'need-peer-eap' option if you want to be sure the peer ask you to
-+ authenticate (and to use eap) and to disconnect if it doesn't.
-+
-+6. Example
-+
-+ The following example can be used to connect a Linux client with the 'pptp'
-+ package to a Linux server running the 'pptpd' (PoPToP) package. The server
-+ was configured with a certificate with name (CN) 'pptp-server', the client
-+ was configured with a certificate with name (CN) 'pptp-client', both
-+ signed by the same Certificate Authority (CA).
-+
-+ Server side:
-+ - /etc/pptpd.conf file:
-+ option /etc/ppp/options-pptpd-eaptls
-+ localip 172.16.1.1
-+ remoteip 172.16.1.10-20
-+ - /etc/ppp/options-pptpd-eaptls file:
-+ name pptp-server
-+ lock
-+ mtu 1500
-+ mru 1450
-+ auth
-+ lcp-echo-failure 3
-+ lcp-echo-interval 5
-+ nodeflate
-+ nobsdcomp
-+ nopredictor1
-+ nopcomp
-+ noaccomp
-+
-+ require-eap
-+ require-mppe-128
-+
-+ crl /home/janjust/ppp/keys/crl.pem
-+
-+ debug
-+ logfile /tmp/pppd.log
-+
-+ - /etc/ppp/eaptls-server file:
-+ * pptp-server - /etc/ppp/pptp-server.crt /etc/ppp/ca.crt /etc/ppp/pptp-server.key *
-+
-+ - On the server, run
-+ pptdp --conf /etc/pptpd.conf
-+
-+ Client side:
-+ - Run
-+ pppd noauth require-eap require-mppe-128 \
-+ ipcp-accept-local ipcp-accept-remote noipdefault \
-+ cert /etc/ppp/keys/pptp-client.crt \
-+ key /etc/ppp/keys/pptp-client.key \
-+ ca /etc/ppp/keys/ca.crt \
-+ name pptp-client remotename pptp-server \
-+ debug logfile /tmp/pppd.log
-+ pty "pptp pptp-server.example.com --nolaunchpppd"
-+
-+ Check /var/log/messages and the files /tmp/pppd.log on both sides for debugging info.
-+
-+7. Notes
-+
-+ This is experimental code.
-+ Send suggestions and comments to Jan Just Keijser <janjust@nikhef.nl>
-+
-+8. Changelog of ppp-<>-eaptls-mppe-* patches
-+
-+v0.7 (22-Nov-2005)
-+ - First version of the patch to include MPPE support
-+ - ppp-2.4.3 only
-+v0.9 (25-Jul-2006)
-+ - Bug fixes
-+ - First version for ppp-2.4.4
-+v0.91 (03-Sep-2006)
-+ - Added missing #include for md5.h
-+ - Last version for ppp-2.4.3
-+v0.92 (22-Apr-2008)
-+ - Fix for openssl 0.9.8 issue with md5 function overload.
-+v0.93 (14-Aug-2008)
-+ - Make sure 'noauth' option can be used to bypass server certificate verification.
-+v0.94 (15-Oct-2008)
-+ - Added support for password-protected private keys by (ab)using the 'password' field.
-+v0.95 (23-Dec-2009)
-+ - First version with OpenSSL engine support.
-+v0.96 (27-Jan-2010)
-+ - Added fully functional support for OpenSSL engines (PKCS#11)
-+ - First version for ppp-2.4.5
-+v0.97 (20-Apr-2010)
-+ - Some bug fixes for v0.96
-+ - Added support for entering the password via a plugin. The sample plugin
-+ .../pppd/plugins/passprompt.c has been extended with EAP-TLS support.
-+ The "old" methods using the password option or the /etc/ppp/openssl.cnf file still work.
-+ - Added support for specifying the client CA, certificate and private key on the command-line
-+ or via the ppp config file.
-+v0.98 (20-Apr-2010)
-+ - Fix initialisation bug when using ca/cert/key command-line options.
-+ - Last version for ppp-2.4.4
-+v0.99 (05-Oct-2010)
-+ - Fix coredump when using multilink option.
-+v0.991 (08-Aug-2011)
-+ - Fix compilation issue with openssl 1.0.
-+v0.992 (01-Dec-2011)
-+ - Fix compilation issue with eaptls_check_hook and passwordfd plugin.
-+v0.993 (24-Apr-2012)
-+ - Fix compilation issue when EAP_TLS=n in pppd/Makefile.
-+v0.994 (11-Jun-2012)
-+ - Fix compilation issue on Ubuntu 11.10.
-+v0.995 (27-May-2014)
-+ - Add support for a CRL file using the command-line option 'crl'
-+ (prior only 'crl-dir' was supported).
-+ - Fix segfault when pkcs11 enginename was not specified correctly.
-+ - Fix segfault when client was misconfigured.
-+ - Disable SSL Session Ticket support as Windows 8 does not support this.
-+v0.996 (28-May-2014)
-+ - Fix minor bug where SessionTicket message was printed as 'Unknown SSL3 code 4'
-+ - Add EAP-TLS-specific options to pppd.8 manual page.
-+ - Updated README.eap-tls file with new options and provide an example.
-+v0.997 (19-Jun-2014)
-+ - Change SSL_OP_NO_TICKETS to SSL_OP_NO_TICKET
-+ - Fix bug in initialisation code with fragmented packets.
-+v0.998 (13-Mar-2015)
-+ - Add fix for https://bugzilla.redhat.com/show_bug.cgi?id=1023620
-+v0.999 (11-May-2017)
-+ - Add support for OpenSSL 1.1: the code will now compile against OpenSSL 1.0.x or 1.1.x.
-+v1.101 (1-Jun-2018)
-+ - Fix vulnerabilities CVE-2018-11574.
-+v1.102 (2-Nov-2018)
-+ - Add TLS 1.2 support. Windows 7/8 will connect using TLS 1.0, Windows 10 clients using TLS 1.2.
-+ This works both when compiling against OpenSSL 1.0.1+ and 1.1+.
-+ - Print warning when certificate is either not yet valid or has expired.
-+ - Perform better peer certificate checks.
-+ - Allow certificate chain files to be used.
-diff --git a/etc.ppp/eaptls-client b/etc.ppp/eaptls-client
-new file mode 100644
-index 000000000000..7782f0e2a065
---- /dev/null
-+++ b/etc.ppp/eaptls-client
-@@ -0,0 +1,10 @@
-+# Parameters for authentication using EAP-TLS (client)
-+
-+# client name (can be *)
-+# server name (can be *)
-+# client certificate file (required)
-+# server certificate file (optional, if unused put '-')
-+# CA certificate file (required)
-+# client private key file (required)
-+
-+#client server /root/cert/client.crt - /root/cert/ca.crt /root/cert/client.key
-diff --git a/etc.ppp/eaptls-server b/etc.ppp/eaptls-server
-new file mode 100644
-index 000000000000..fa53cbd197cf
---- /dev/null
-+++ b/etc.ppp/eaptls-server
-@@ -0,0 +1,11 @@
-+# Parameters for authentication using EAP-TLS (server)
-+
-+# client name (can be *)
-+# server name (can be *)
-+# client certificate file (optional, if unused put '-')
-+# server certificate file (required)
-+# CA certificate file (required)
-+# server private key file (required)
-+# allowed addresses (required, can be *)
-+
-+#client server - /root/cert/server.crt /root/cert/ca.crt /root/cert/server.key 192.168.1.0/24
-diff --git a/etc.ppp/openssl.cnf b/etc.ppp/openssl.cnf
-new file mode 100644
-index 000000000000..dd32f305d680
---- /dev/null
-+++ b/etc.ppp/openssl.cnf
-@@ -0,0 +1,14 @@
-+openssl_conf = openssl_def
-+
-+[ openssl_def ]
-+engines = engine_section
-+
-+[ engine_section ]
-+pkcs11 = pkcs11_section
-+
-+[ pkcs11_section ]
-+engine_id = pkcs11
-+dynamic_path = /usr/lib64/openssl/engines/engine_pkcs11.so
-+MODULE_PATH = /usr/lib64/libeTPkcs11.so
-+init = 0
-+
-diff --git a/linux/Makefile.top b/linux/Makefile.top
-index f63d45e58a78..894f8f32c9e4 100644
---- a/linux/Makefile.top
-+++ b/linux/Makefile.top
-@@ -26,7 +26,7 @@ install-progs:
- cd pppdump; $(MAKE) $(MFLAGS) install
-
- install-etcppp: $(ETCDIR) $(ETCDIR)/options $(ETCDIR)/pap-secrets \
-- $(ETCDIR)/chap-secrets
-+ $(ETCDIR)/chap-secrets $(ETCDIR)/eaptls-server $(ETCDIR)/eaptls-client
-
- install-devel:
- cd pppd; $(MAKE) $(MFLAGS) install-devel
-@@ -37,6 +37,10 @@ $(ETCDIR)/pap-secrets:
- $(INSTALL) -c -m 600 etc.ppp/pap-secrets $@
- $(ETCDIR)/chap-secrets:
- $(INSTALL) -c -m 600 etc.ppp/chap-secrets $@
-+$(ETCDIR)/eaptls-server:
-+ $(INSTALL) -c -m 600 etc.ppp/eaptls-server $@
-+$(ETCDIR)/eaptls-client:
-+ $(INSTALL) -c -m 600 etc.ppp/eaptls-client $@
-
- $(BINDIR):
- $(INSTALL) -d -m 755 $@
-diff --git a/pppd/Makefile.linux b/pppd/Makefile.linux
-index 5549145e5791..4a11d5fea748 100644
---- a/pppd/Makefile.linux
-+++ b/pppd/Makefile.linux
-@@ -76,6 +76,9 @@ CBCP=y
- # Use libutil
- USE_LIBUTIL=y
-
-+# Enable EAP-TLS authentication (requires libssl and libcrypto)
-+USE_EAPTLS=y
-+
- MAXOCTETS=y
-
- INCLUDE_DIRS= -I../include
-@@ -116,6 +119,15 @@ HEADERS += sha1.h
- PPPDOBJS += sha1.o
- endif
-
-+# EAP-TLS
-+ifdef USE_EAPTLS
-+CFLAGS += -DUSE_EAPTLS=1 -I/usr/kerberos/include
-+LIBS += -lssl -lcrypto
-+PPPDSRC += eap-tls.c
-+HEADERS += eap-tls.h
-+PPPDOBJS += eap-tls.o
-+endif
-+
- ifdef HAS_SHADOW
- CFLAGS += -DHAS_SHADOW
- #LIBS += -lshadow $(LIBS)
-diff --git a/pppd/auth.c b/pppd/auth.c
-index 4271af687102..45065c58bfcc 100644
---- a/pppd/auth.c
-+++ b/pppd/auth.c
-@@ -109,6 +109,9 @@
- #include "upap.h"
- #include "chap-new.h"
- #include "eap.h"
-+#ifdef USE_EAPTLS
-+#include "eap-tls.h"
-+#endif
- #ifdef CBCP_SUPPORT
- #include "cbcp.h"
- #endif
-@@ -183,6 +186,11 @@ int (*chap_check_hook) __P((void)) = NULL;
- /* Hook for a plugin to get the CHAP password for authenticating us */
- int (*chap_passwd_hook) __P((char *user, char *passwd)) = NULL;
-
-+#ifdef USE_EAPTLS
-+/* Hook for a plugin to get the EAP-TLS password for authenticating us */
-+int (*eaptls_passwd_hook) __P((char *user, char *passwd)) = NULL;
-+#endif
-+
- /* Hook for a plugin to say whether it is OK if the peer
- refuses to authenticate. */
- int (*null_auth_hook) __P((struct wordlist **paddrs,
-@@ -238,6 +246,14 @@ bool explicit_remote = 0; /* User specified explicit remote name */
- bool explicit_user = 0; /* Set if "user" option supplied */
- bool explicit_passwd = 0; /* Set if "password" option supplied */
- char remote_name[MAXNAMELEN]; /* Peer's name for authentication */
-+#ifdef USE_EAPTLS
-+char *cacert_file = NULL; /* CA certificate file (pem format) */
-+char *cert_file = NULL; /* client certificate file (pem format) */
-+char *privkey_file = NULL; /* client private key file (pem format) */
-+char *crl_dir = NULL; /* directory containing CRL files */
-+char *crl_file = NULL; /* Certificate Revocation List (CRL) file (pem format) */
-+bool need_peer_eap = 0; /* Require peer to authenticate us */
-+#endif
-
- static char *uafname; /* name of most recent +ua file */
-
-@@ -254,6 +270,19 @@ static int have_pap_secret __P((int *));
- static int have_chap_secret __P((char *, char *, int, int *));
- static int have_srp_secret __P((char *client, char *server, int need_ip,
- int *lacks_ipp));
-+
-+#ifdef USE_EAPTLS
-+static int have_eaptls_secret_server
-+__P((char *client, char *server, int need_ip, int *lacks_ipp));
-+static int have_eaptls_secret_client __P((char *client, char *server));
-+static int scan_authfile_eaptls __P((FILE * f, char *client, char *server,
-+ char *cli_cert, char *serv_cert,
-+ char *ca_cert, char *pk,
-+ struct wordlist ** addrs,
-+ struct wordlist ** opts,
-+ char *filename, int flags));
-+#endif
-+
- static int ip_addr_check __P((u_int32_t, struct permitted_ip *));
- static int scan_authfile __P((FILE *, char *, char *, char *,
- struct wordlist **, struct wordlist **,
-@@ -401,6 +430,15 @@ option_t auth_options[] = {
- "Set telephone number(s) which are allowed to connect",
- OPT_PRIV | OPT_A2LIST },
-
-+#ifdef USE_EAPTLS
-+ { "ca", o_string, &cacert_file, "EAP-TLS CA certificate in PEM format" },
-+ { "cert", o_string, &cert_file, "EAP-TLS client certificate in PEM format" },
-+ { "key", o_string, &privkey_file, "EAP-TLS client private key in PEM format" },
-+ { "crl-dir", o_string, &crl_dir, "Use CRLs in directory" },
-+ { "crl", o_string, &crl_file, "Use specific CRL file" },
-+ { "need-peer-eap", o_bool, &need_peer_eap,
-+ "Require the peer to authenticate us", 1 },
-+#endif /* USE_EAPTLS */
- { NULL }
- };
-
-@@ -730,6 +768,9 @@ link_established(unit)
- lcp_options *wo = &lcp_wantoptions[unit];
- lcp_options *go = &lcp_gotoptions[unit];
- lcp_options *ho = &lcp_hisoptions[unit];
-+#ifdef USE_EAPTLS
-+ lcp_options *ao = &lcp_allowoptions[unit];
-+#endif
- int i;
- struct protent *protp;
-
-@@ -764,6 +805,22 @@ link_established(unit)
- }
- }
-
-+#ifdef USE_EAPTLS
-+ if (need_peer_eap && !ao->neg_eap) {
-+ warn("eap required to authenticate us but no suitable secrets");
-+ lcp_close(unit, "couldn't negotiate eap");
-+ status = EXIT_AUTH_TOPEER_FAILED;
-+ return;
-+ }
-+
-+ if (need_peer_eap && !ho->neg_eap) {
-+ warn("peer doesn't want to authenticate us with eap");
-+ lcp_close(unit, "couldn't negotiate eap");
-+ status = EXIT_PEER_AUTH_FAILED;
-+ return;
-+ }
-+#endif
-+
- new_phase(PHASE_AUTHENTICATE);
- auth = 0;
- if (go->neg_eap) {
-@@ -1277,6 +1334,15 @@ auth_check_options()
- our_name, 1, &lacks_ip);
- }
-
-+#ifdef USE_EAPTLS
-+ if (!can_auth && wo->neg_eap) {
-+ can_auth =
-+ have_eaptls_secret_server((explicit_remote ? remote_name :
-+ NULL), our_name, 1, &lacks_ip);
-+
-+ }
-+#endif
-+
- if (auth_required && !can_auth && noauth_addrs == NULL) {
- if (default_auth) {
- option_error(
-@@ -1331,7 +1397,11 @@ auth_reset(unit)
- passwd[0] != 0 ||
- (hadchap == 1 || (hadchap == -1 && have_chap_secret(user,
- (explicit_remote? remote_name: NULL), 0, NULL))) ||
-- have_srp_secret(user, (explicit_remote? remote_name: NULL), 0, NULL));
-+ have_srp_secret(user, (explicit_remote? remote_name: NULL), 0, NULL)
-+#ifdef USE_EAPTLS
-+ || have_eaptls_secret_client(user, (explicit_remote? remote_name: NULL))
-+#endif
-+ );
-
- hadchap = -1;
- if (go->neg_upap && !uselogin && !have_pap_secret(NULL))
-@@ -1346,8 +1416,14 @@ auth_reset(unit)
- !have_chap_secret((explicit_remote? remote_name: NULL), our_name,
- 1, NULL))) &&
- !have_srp_secret((explicit_remote? remote_name: NULL), our_name, 1,
-- NULL))
-+ NULL)
-+#ifdef USE_EAPTLS
-+ && !have_eaptls_secret_server((explicit_remote? remote_name: NULL),
-+ our_name, 1, NULL)
-+#endif
-+ )
- go->neg_eap = 0;
-+
- }
-
-
-@@ -1707,6 +1783,7 @@ have_srp_secret(client, server, need_ip, lacks_ipp)
- }
-
-
-+
- /*
- * get_secret - open the CHAP secret file and return the secret
- * for authenticating the given client on the given server.
-@@ -2359,3 +2436,335 @@ auth_script(script)
-
- auth_script_pid = run_program(script, argv, 0, auth_script_done, NULL, 0);
- }
-+
-+
-+#ifdef USE_EAPTLS
-+static int
-+have_eaptls_secret_server(client, server, need_ip, lacks_ipp)
-+ char *client;
-+ char *server;
-+ int need_ip;
-+ int *lacks_ipp;
-+{
-+ FILE *f;
-+ int ret;
-+ char *filename;
-+ struct wordlist *addrs;
-+ char servcertfile[MAXWORDLEN];
-+ char clicertfile[MAXWORDLEN];
-+ char cacertfile[MAXWORDLEN];
-+ char pkfile[MAXWORDLEN];
-+
-+ filename = _PATH_EAPTLSSERVFILE;
-+ f = fopen(filename, "r");
-+ if (f == NULL)
-+ return 0;
-+
-+ if (client != NULL && client[0] == 0)
-+ client = NULL;
-+ else if (server != NULL && server[0] == 0)
-+ server = NULL;
-+
-+ ret =
-+ scan_authfile_eaptls(f, client, server, clicertfile, servcertfile,
-+ cacertfile, pkfile, &addrs, NULL, filename,
-+ 0);
-+
-+ fclose(f);
-+
-+/*
-+ if (ret >= 0 && !eaptls_init_ssl(1, cacertfile, servcertfile,
-+ clicertfile, pkfile))
-+ ret = -1;
-+*/
-+
-+ if (ret >= 0 && need_ip && !some_ip_ok(addrs)) {
-+ if (lacks_ipp != 0)
-+ *lacks_ipp = 1;
-+ ret = -1;
-+ }
-+ if (addrs != 0)
-+ free_wordlist(addrs);
-+
-+ return ret >= 0;
-+}
-+
-+
-+static int
-+have_eaptls_secret_client(client, server)
-+ char *client;
-+ char *server;
-+{
-+ FILE *f;
-+ int ret;
-+ char *filename;
-+ struct wordlist *addrs = NULL;
-+ char servcertfile[MAXWORDLEN];
-+ char clicertfile[MAXWORDLEN];
-+ char cacertfile[MAXWORDLEN];
-+ char pkfile[MAXWORDLEN];
-+
-+ if (client != NULL && client[0] == 0)
-+ client = NULL;
-+ else if (server != NULL && server[0] == 0)
-+ server = NULL;
-+
-+ if (cacert_file && cert_file && privkey_file)
-+ return 1;
-+
-+ filename = _PATH_EAPTLSCLIFILE;
-+ f = fopen(filename, "r");
-+ if (f == NULL)
-+ return 0;
-+
-+ ret =
-+ scan_authfile_eaptls(f, client, server, clicertfile, servcertfile,
-+ cacertfile, pkfile, &addrs, NULL, filename,
-+ 0);
-+ fclose(f);
-+
-+/*
-+ if (ret >= 0 && !eaptls_init_ssl(0, cacertfile, clicertfile,
-+ servcertfile, pkfile))
-+ ret = -1;
-+*/
-+
-+ if (addrs != 0)
-+ free_wordlist(addrs);
-+
-+ return ret >= 0;
-+}
-+
-+
-+static int
-+scan_authfile_eaptls(f, client, server, cli_cert, serv_cert, ca_cert, pk,
-+ addrs, opts, filename, flags)
-+ FILE *f;
-+ char *client;
-+ char *server;
-+ char *cli_cert;
-+ char *serv_cert;
-+ char *ca_cert;
-+ char *pk;
-+ struct wordlist **addrs;
-+ struct wordlist **opts;
-+ char *filename;
-+ int flags;
-+{
-+ int newline;
-+ int got_flag, best_flag;
-+ struct wordlist *ap, *addr_list, *alist, **app;
-+ char word[MAXWORDLEN];
-+
-+ if (addrs != NULL)
-+ *addrs = NULL;
-+ if (opts != NULL)
-+ *opts = NULL;
-+ addr_list = NULL;
-+ if (!getword(f, word, &newline, filename))
-+ return -1; /* file is empty??? */
-+ newline = 1;
-+ best_flag = -1;
-+ for (;;) {
-+ /*
-+ * Skip until we find a word at the start of a line.
-+ */
-+ while (!newline && getword(f, word, &newline, filename));
-+ if (!newline)
-+ break; /* got to end of file */
-+
-+ /*
-+ * Got a client - check if it's a match or a wildcard.
-+ */
-+ got_flag = 0;
-+ if (client != NULL && strcmp(word, client) != 0 && !ISWILD(word)) {
-+ newline = 0;
-+ continue;
-+ }
-+ if (!ISWILD(word))
-+ got_flag = NONWILD_CLIENT;
-+
-+ /*
-+ * Now get a server and check if it matches.
-+ */
-+ if (!getword(f, word, &newline, filename))
-+ break;
-+ if (newline)
-+ continue;
-+ if (!ISWILD(word)) {
-+ if (server != NULL && strcmp(word, server) != 0)
-+ continue;
-+ got_flag |= NONWILD_SERVER;
-+ }
-+
-+ /*
-+ * Got some sort of a match - see if it's better than what
-+ * we have already.
-+ */
-+ if (got_flag <= best_flag)
-+ continue;
-+
-+ /*
-+ * Get the cli_cert
-+ */
-+ if (!getword(f, word, &newline, filename))
-+ break;
-+ if (newline)
-+ continue;
-+ if (strcmp(word, "-") != 0) {
-+ strlcpy(cli_cert, word, MAXWORDLEN);
-+ } else
-+ cli_cert[0] = 0;
-+
-+ /*
-+ * Get serv_cert
-+ */
-+ if (!getword(f, word, &newline, filename))
-+ break;
-+ if (newline)
-+ continue;
-+ if (strcmp(word, "-") != 0) {
-+ strlcpy(serv_cert, word, MAXWORDLEN);
-+ } else
-+ serv_cert[0] = 0;
-+
-+ /*
-+ * Get ca_cert
-+ */
-+ if (!getword(f, word, &newline, filename))
-+ break;
-+ if (newline)
-+ continue;
-+ strlcpy(ca_cert, word, MAXWORDLEN);
-+
-+ /*
-+ * Get pk
-+ */
-+ if (!getword(f, word, &newline, filename))
-+ break;
-+ if (newline)
-+ continue;
-+ strlcpy(pk, word, MAXWORDLEN);
-+
-+
-+ /*
-+ * Now read address authorization info and make a wordlist.
-+ */
-+ app = &alist;
-+ for (;;) {
-+ if (!getword(f, word, &newline, filename) || newline)
-+ break;
-+ ap = (struct wordlist *)
-+ malloc(sizeof(struct wordlist) + strlen(word) + 1);
-+ if (ap == NULL)
-+ novm("authorized addresses");
-+ ap->word = (char *) (ap + 1);
-+ strcpy(ap->word, word);
-+ *app = ap;
-+ app = &ap->next;
-+ }
-+ *app = NULL;
-+ /*
-+ * This is the best so far; remember it.
-+ */
-+ best_flag = got_flag;
-+ if (addr_list)
-+ free_wordlist(addr_list);
-+ addr_list = alist;
-+
-+ if (!newline)
-+ break;
-+ }
-+
-+ /* scan for a -- word indicating the start of options */
-+ for (app = &addr_list; (ap = *app) != NULL; app = &ap->next)
-+ if (strcmp(ap->word, "--") == 0)
-+ break;
-+ /* ap = start of options */
-+ if (ap != NULL) {
-+ ap = ap->next; /* first option */
-+ free(*app); /* free the "--" word */
-+ *app = NULL; /* terminate addr list */
-+ }
-+ if (opts != NULL)
-+ *opts = ap;
-+ else if (ap != NULL)
-+ free_wordlist(ap);
-+ if (addrs != NULL)
-+ *addrs = addr_list;
-+ else if (addr_list != NULL)
-+ free_wordlist(addr_list);
-+
-+ return best_flag;
-+}
-+
-+
-+int
-+get_eaptls_secret(unit, client, server, clicertfile, servcertfile,
-+ cacertfile, pkfile, am_server)
-+ int unit;
-+ char *client;
-+ char *server;
-+ char *clicertfile;
-+ char *servcertfile;
-+ char *cacertfile;
-+ char *pkfile;
-+ int am_server;
-+{
-+ FILE *fp;
-+ int ret;
-+ char *filename = NULL;
-+ struct wordlist *addrs = NULL;
-+ struct wordlist *opts = NULL;
-+
-+ /* in client mode the ca+cert+privkey can also be specified as options */
-+ if (!am_server && cacert_file && cert_file && privkey_file )
-+ {
-+ strlcpy( clicertfile, cert_file, MAXWORDLEN );
-+ strlcpy( cacertfile, cacert_file, MAXWORDLEN );
-+ strlcpy( pkfile, privkey_file, MAXWORDLEN );
-+ servcertfile[0] = '\0';
-+ }
-+ else
-+ {
-+ filename = (am_server ? _PATH_EAPTLSSERVFILE : _PATH_EAPTLSCLIFILE);
-+ addrs = NULL;
-+
-+ fp = fopen(filename, "r");
-+ if (fp == NULL)
-+ {
-+ error("Can't open eap-tls secret file %s: %m", filename);
-+ return 0;
-+ }
-+
-+ check_access(fp, filename);
-+
-+ ret = scan_authfile_eaptls(fp, client, server, clicertfile, servcertfile,
-+ cacertfile, pkfile, &addrs, &opts, filename, 0);
-+
-+ fclose(fp);
-+
-+ if (ret < 0) return 0;
-+ }
-+
-+ if (eaptls_passwd_hook)
-+ {
-+ dbglog( "Calling eaptls password hook" );
-+ if ( (*eaptls_passwd_hook)(pkfile, passwd) < 0)
-+ {
-+ error("Unable to obtain EAP-TLS password for %s (%s) from plugin",
-+ client, pkfile);
-+ return 0;
-+ }
-+ }
-+ if (am_server)
-+ set_allowed_addrs(unit, addrs, opts);
-+ else if (opts != NULL)
-+ free_wordlist(opts);
-+ if (addrs != NULL)
-+ free_wordlist(addrs);
-+
-+ return 1;
-+}
-+#endif
-+
-diff --git a/pppd/ccp.c b/pppd/ccp.c
-index 7d7922afcfc0..0a93b15aeef3 100644
---- a/pppd/ccp.c
-+++ b/pppd/ccp.c
-@@ -540,6 +540,9 @@ ccp_resetci(f)
- if (go->mppe) {
- ccp_options *ao = &ccp_allowoptions[f->unit];
- int auth_mschap_bits = auth_done[f->unit];
-+#ifdef USE_EAPTLS
-+ int auth_eap_bits = auth_done[f->unit];
-+#endif
- int numbits;
-
- /*
-@@ -567,8 +570,23 @@ ccp_resetci(f)
- lcp_close(f->unit, "MPPE required but not available");
- return;
- }
-+
-+#ifdef USE_EAPTLS
-+ /*
-+ * MPPE is also possible in combination with EAP-TLS.
-+ * It is not possible to detect if we're doing EAP or EAP-TLS
-+ * at this stage, hence we accept all forms of EAP. If TLS is
-+ * not used then the MPPE keys will not be derived anyway.
-+ */
-+ /* Leave only the eap auth bits set */
-+ auth_eap_bits &= (EAP_WITHPEER | EAP_PEER );
-+
-+ if ((numbits == 0) && (auth_eap_bits == 0)) {
-+ error("MPPE required, but MS-CHAP[v2] nor EAP-TLS auth are performed.");
-+#else
- if (!numbits) {
-- error("MPPE required, but MS-CHAP[v2] auth not performed.");
-+ error("MPPE required, but MS-CHAP[v2] auth not performed.");
-+#endif
- lcp_close(f->unit, "MPPE required but not available");
- return;
- }
-diff --git a/pppd/chap-md5.c b/pppd/chap-md5.c
-index 77dd4ecc7059..269b52cb2041 100644
---- a/pppd/chap-md5.c
-+++ b/pppd/chap-md5.c
-@@ -36,7 +36,11 @@
- #include "chap-new.h"
- #include "chap-md5.h"
- #include "magic.h"
-+#ifdef USE_EAPTLS
-+#include "eap-tls.h"
-+#else
- #include "md5.h"
-+#endif /* USE_EAPTLS */
-
- #define MD5_HASH_SIZE 16
- #define MD5_MIN_CHALLENGE 16
-diff --git a/pppd/eap-tls.c b/pppd/eap-tls.c
-new file mode 100644
-index 000000000000..df4bc1b996c9
---- /dev/null
-+++ b/pppd/eap-tls.c
-@@ -0,0 +1,1383 @@
-+/* * eap-tls.c - EAP-TLS implementation for PPP
-+ *
-+ * Copyright (c) Beniamino Galvani 2005 All rights reserved.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ *
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in
-+ * the documentation and/or other materials provided with the
-+ * distribution.
-+ *
-+ * 3. The name(s) of the authors of this software must not be used to
-+ * endorse or promote products derived from this software without
-+ * prior written permission.
-+ *
-+ * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO
-+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-+ * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
-+ * SPECIAL, 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 <string.h>
-+#include <unistd.h>
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <fcntl.h>
-+
-+#include <openssl/conf.h>
-+#include <openssl/engine.h>
-+#include <openssl/hmac.h>
-+#include <openssl/err.h>
-+#include <openssl/x509v3.h>
-+
-+#include "pppd.h"
-+#include "eap.h"
-+#include "eap-tls.h"
-+#include "fsm.h"
-+#include "lcp.h"
-+#include "pathnames.h"
-+
-+/* The openssl configuration file and engines can be loaded only once */
-+static CONF *ssl_config = NULL;
-+static ENGINE *cert_engine = NULL;
-+static ENGINE *pkey_engine = NULL;
-+
-+#ifdef MPPE
-+
-+#define EAPTLS_MPPE_KEY_LEN 32
-+
-+/*
-+ * The following stuff is only needed if SSL_export_keying_material() is not available
-+ */
-+
-+#if OPENSSL_VERSION_NUMBER < 0x10001000L
-+
-+/*
-+ * https://wiki.openssl.org/index.php/1.1_API_Changes
-+ * tries to provide some guidance but ultimately falls short.
-+ *
-+ */
-+
-+static void HMAC_CTX_free(HMAC_CTX *ctx)
-+{
-+ if (ctx != NULL) {
-+ HMAC_CTX_cleanup(ctx);
-+ OPENSSL_free(ctx);
-+ }
-+}
-+
-+static HMAC_CTX *HMAC_CTX_new(void)
-+{
-+ HMAC_CTX *ctx = OPENSSL_malloc(sizeof(*ctx));
-+ if (ctx != NULL)
-+ HMAC_CTX_init(ctx);
-+ return ctx;
-+}
-+
-+static size_t SSL_get_client_random(const SSL *ssl, unsigned char *out,
-+ size_t outlen)
-+{
-+ if (outlen == 0)
-+ return sizeof(ssl->s3->client_random);
-+ if (outlen > sizeof(ssl->s3->client_random))
-+ outlen = sizeof(ssl->s3->client_random);
-+ memcpy(out, ssl->s3->client_random, outlen);
-+ return outlen;
-+}
-+
-+static size_t SSL_get_server_random(const SSL *ssl, unsigned char *out,
-+ size_t outlen)
-+{
-+ if (outlen == 0)
-+ return sizeof(ssl->s3->server_random);
-+ if (outlen > sizeof(ssl->s3->server_random))
-+ outlen = sizeof(ssl->s3->server_random);
-+ memcpy(out, ssl->s3->server_random, outlen);
-+ return outlen;
-+}
-+
-+static size_t SSL_SESSION_get_master_key(const SSL_SESSION *session,
-+ unsigned char *out, size_t outlen)
-+{
-+ if (outlen == 0)
-+ return session->master_key_length;
-+ if (outlen > session->master_key_length)
-+ outlen = session->master_key_length;
-+ memcpy(out, session->master_key, outlen);
-+ return outlen;
-+}
-+
-+
-+/*
-+ * TLS PRF from RFC 2246
-+ */
-+static void P_hash(const EVP_MD *evp_md,
-+ const unsigned char *secret, unsigned int secret_len,
-+ const unsigned char *seed, unsigned int seed_len,
-+ unsigned char *out, unsigned int out_len)
-+{
-+ HMAC_CTX *ctx_a, *ctx_out;
-+ unsigned char a[HMAC_MAX_MD_CBLOCK];
-+ unsigned int size;
-+
-+ ctx_a = HMAC_CTX_new();
-+ ctx_out = HMAC_CTX_new();
-+ HMAC_Init_ex(ctx_a, secret, secret_len, evp_md, NULL);
-+ HMAC_Init_ex(ctx_out, secret, secret_len, evp_md, NULL);
-+
-+ size = HMAC_size(ctx_out);
-+
-+ /* Calculate A(1) */
-+ HMAC_Update(ctx_a, seed, seed_len);
-+ HMAC_Final(ctx_a, a, NULL);
-+
-+ while (1) {
-+ /* Calculate next part of output */
-+ HMAC_Update(ctx_out, a, size);
-+ HMAC_Update(ctx_out, seed, seed_len);
-+
-+ /* Check if last part */
-+ if (out_len < size) {
-+ HMAC_Final(ctx_out, a, NULL);
-+ memcpy(out, a, out_len);
-+ break;
-+ }
-+
-+ /* Place digest in output buffer */
-+ HMAC_Final(ctx_out, out, NULL);
-+ HMAC_Init_ex(ctx_out, NULL, 0, NULL, NULL);
-+ out += size;
-+ out_len -= size;
-+
-+ /* Calculate next A(i) */
-+ HMAC_Init_ex(ctx_a, NULL, 0, NULL, NULL);
-+ HMAC_Update(ctx_a, a, size);
-+ HMAC_Final(ctx_a, a, NULL);
-+ }
-+
-+ HMAC_CTX_free(ctx_a);
-+ HMAC_CTX_free(ctx_out);
-+ memset(a, 0, sizeof(a));
-+}
-+
-+static void PRF(const unsigned char *secret, unsigned int secret_len,
-+ const unsigned char *seed, unsigned int seed_len,
-+ unsigned char *out, unsigned char *buf, unsigned int out_len)
-+{
-+ unsigned int i;
-+ unsigned int len = (secret_len + 1) / 2;
-+ const unsigned char *s1 = secret;
-+ const unsigned char *s2 = secret + (secret_len - len);
-+
-+ P_hash(EVP_md5(), s1, len, seed, seed_len, out, out_len);
-+ P_hash(EVP_sha1(), s2, len, seed, seed_len, buf, out_len);
-+
-+ for (i=0; i < out_len; i++) {
-+ out[i] ^= buf[i];
-+ }
-+}
-+
-+static int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen,
-+ const char *label, size_t llen,
-+ const unsigned char *p, size_t plen,
-+ int use_context)
-+{
-+ unsigned char seed[64 + 2*SSL3_RANDOM_SIZE];
-+ unsigned char buf[4*EAPTLS_MPPE_KEY_LEN];
-+ unsigned char master_key[SSL_MAX_MASTER_KEY_LENGTH];
-+ size_t master_key_length;
-+ unsigned char *pp;
-+
-+ pp = seed;
-+
-+ memcpy(pp, label, llen);
-+ pp += llen;
-+
-+ llen += SSL_get_client_random(s, pp, SSL3_RANDOM_SIZE);
-+ pp += SSL3_RANDOM_SIZE;
-+
-+ llen += SSL_get_server_random(s, pp, SSL3_RANDOM_SIZE);
-+
-+ master_key_length = SSL_SESSION_get_master_key(SSL_get_session(s), master_key,
-+ sizeof(master_key));
-+ PRF(master_key, master_key_length, seed, llen, out, buf, olen);
-+
-+ return 1;
-+}
-+
-+#endif /* OPENSSL_VERSION_NUMBER < 0x10001000L */
-+
-+
-+/*
-+ * OpenSSL 1.1+ introduced a generic TLS_method()
-+ * For older releases we substitute the appropriate method
-+ */
-+
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
-+
-+#define TLS_method SSLv23_method
-+
-+#define SSL3_RT_HEADER 0x100
-+
-+#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */
-+
-+
-+/*
-+ * Generate keys according to RFC 2716 and add to reply
-+ */
-+void eaptls_gen_mppe_keys(struct eaptls_session *ets, const char *prf_label,
-+ int client)
-+{
-+ unsigned char out[4*EAPTLS_MPPE_KEY_LEN];
-+ size_t prf_size = strlen(prf_label);
-+ unsigned char *p;
-+
-+ if (SSL_export_keying_material(ets->ssl, out, sizeof(out), prf_label, prf_size, NULL, 0, 0) != 1)
-+ {
-+ warn( "EAP-TLS: Failed generating keying material" );
-+ return;
-+ }
-+
-+ /*
-+ * We now have the master send and receive keys.
-+ * From these, generate the session send and receive keys.
-+ * (see RFC3079 / draft-ietf-pppext-mppe-keys-03.txt for details)
-+ */
-+ if (client)
-+ {
-+ p = out;
-+ BCOPY( p, mppe_send_key, sizeof(mppe_send_key) );
-+ p += EAPTLS_MPPE_KEY_LEN;
-+ BCOPY( p, mppe_recv_key, sizeof(mppe_recv_key) );
-+ }
-+ else
-+ {
-+ p = out;
-+ BCOPY( p, mppe_recv_key, sizeof(mppe_recv_key) );
-+ p += EAPTLS_MPPE_KEY_LEN;
-+ BCOPY( p, mppe_send_key, sizeof(mppe_send_key) );
-+ }
-+
-+ mppe_keys_set = 1;
-+}
-+
-+#endif
-+
-+void log_ssl_errors( void )
-+{
-+ unsigned long ssl_err = ERR_get_error();
-+
-+ if (ssl_err != 0)
-+ dbglog("EAP-TLS SSL error stack:");
-+ while (ssl_err != 0) {
-+ dbglog( ERR_error_string( ssl_err, NULL ) );
-+ ssl_err = ERR_get_error();
-+ }
-+}
-+
-+
-+int password_callback (char *buf, int size, int rwflag, void *u)
-+{
-+ if (buf)
-+ {
-+ strncpy (buf, passwd, size);
-+ return strlen (buf);
-+ }
-+ return 0;
-+}
-+
-+
-+CONF *eaptls_ssl_load_config( void )
-+{
-+ CONF *config;
-+ int ret_code;
-+ long error_line = 33;
-+
-+ config = NCONF_new( NULL );
-+ dbglog( "Loading OpenSSL config file" );
-+ ret_code = NCONF_load( config, _PATH_OPENSSLCONFFILE, &error_line );
-+ if (ret_code == 0)
-+ {
-+ warn( "EAP-TLS: Error in OpenSSL config file %s at line %d", _PATH_OPENSSLCONFFILE, error_line );
-+ NCONF_free( config );
-+ config = NULL;
-+ ERR_clear_error();
-+ }
-+
-+ dbglog( "Loading OpenSSL built-ins" );
-+ ENGINE_load_builtin_engines();
-+ OPENSSL_load_builtin_modules();
-+
-+ dbglog( "Loading OpenSSL configured modules" );
-+ if (CONF_modules_load( config, NULL, 0 ) <= 0 )
-+ {
-+ warn( "EAP-TLS: Error loading OpenSSL modules" );
-+ log_ssl_errors();
-+ config = NULL;
-+ }
-+
-+ return config;
-+}
-+
-+ENGINE *eaptls_ssl_load_engine( char *engine_name )
-+{
-+ ENGINE *e = NULL;
-+
-+ dbglog( "Enabling OpenSSL auto engines" );
-+ ENGINE_register_all_complete();
-+
-+ dbglog( "Loading OpenSSL '%s' engine support", engine_name );
-+ e = ENGINE_by_id( engine_name );
-+ if (!e)
-+ {
-+ dbglog( "EAP-TLS: Cannot load '%s' engine support, trying 'dynamic'", engine_name );
-+ e = ENGINE_by_id( "dynamic" );
-+ if (e)
-+ {
-+ if (!ENGINE_ctrl_cmd_string(e, "SO_PATH", engine_name, 0)
-+ || !ENGINE_ctrl_cmd_string(e, "LOAD", NULL, 0))
-+ {
-+ warn( "EAP-TLS: Error loading dynamic engine '%s'", engine_name );
-+ log_ssl_errors();
-+ ENGINE_free(e);
-+ e = NULL;
-+ }
-+ }
-+ else
-+ {
-+ warn( "EAP-TLS: Cannot load dynamic engine support" );
-+ }
-+ }
-+
-+ if (e)
-+ {
-+ dbglog( "Initialising engine" );
-+ if(!ENGINE_set_default(e, ENGINE_METHOD_ALL))
-+ {
-+ warn( "EAP-TLS: Cannot use that engine" );
-+ log_ssl_errors();
-+ ENGINE_free(e);
-+ e = NULL;
-+ }
-+ }
-+
-+ return e;
-+}
-+
-+/*
-+ * Initialize the SSL stacks and tests if certificates, key and crl
-+ * for client or server use can be loaded.
-+ */
-+SSL_CTX *eaptls_init_ssl(int init_server, char *cacertfile,
-+ char *certfile, char *peer_certfile, char *privkeyfile)
-+{
-+ char *cert_engine_name = NULL;
-+ char *cert_identifier = NULL;
-+ char *pkey_engine_name = NULL;
-+ char *pkey_identifier = NULL;
-+ SSL_CTX *ctx;
-+ SSL *ssl;
-+ X509_STORE *certstore;
-+ X509_LOOKUP *lookup;
-+ X509 *tmp;
-+ int ret;
-+
-+ /*
-+ * Without these can't continue
-+ */
-+ if (!cacertfile[0])
-+ {
-+ error("EAP-TLS: CA certificate missing");
-+ return NULL;
-+ }
-+
-+ if (!certfile[0])
-+ {
-+ error("EAP-TLS: User certificate missing");
-+ return NULL;
-+ }
-+
-+ if (!privkeyfile[0])
-+ {
-+ error("EAP-TLS: User private key missing");
-+ return NULL;
-+ }
-+
-+ SSL_library_init();
-+ SSL_load_error_strings();
-+
-+ ctx = SSL_CTX_new(TLS_method());
-+
-+ if (!ctx) {
-+ error("EAP-TLS: Cannot initialize SSL CTX context");
-+ goto fail;
-+ }
-+
-+ /* if the certificate filename is of the form engine:id. e.g.
-+ pkcs11:12345
-+ then we try to load and use this engine.
-+ If the certificate filename starts with a / or . then we
-+ ALWAYS assume it is a file and not an engine/pkcs11 identifier
-+ */
-+ if ( index( certfile, '/' ) == NULL && index( certfile, '.') == NULL )
-+ {
-+ cert_identifier = index( certfile, ':' );
-+
-+ if (cert_identifier)
-+ {
-+ cert_engine_name = certfile;
-+ *cert_identifier = '\0';
-+ cert_identifier++;
-+
-+ dbglog( "Found certificate engine '%s'", cert_engine_name );
-+ dbglog( "Found certificate identifier '%s'", cert_identifier );
-+ }
-+ }
-+
-+ /* if the privatekey filename is of the form engine:id. e.g.
-+ pkcs11:12345
-+ then we try to load and use this engine.
-+ If the privatekey filename starts with a / or . then we
-+ ALWAYS assume it is a file and not an engine/pkcs11 identifier
-+ */
-+ if ( index( privkeyfile, '/' ) == NULL && index( privkeyfile, '.') == NULL )
-+ {
-+ pkey_identifier = index( privkeyfile, ':' );
-+
-+ if (pkey_identifier)
-+ {
-+ pkey_engine_name = privkeyfile;
-+ *pkey_identifier = '\0';
-+ pkey_identifier++;
-+
-+ dbglog( "Found privatekey engine '%s'", pkey_engine_name );
-+ dbglog( "Found privatekey identifier '%s'", pkey_identifier );
-+ }
-+ }
-+
-+ if (cert_identifier && pkey_identifier)
-+ {
-+ if (strlen( cert_identifier ) == 0)
-+ {
-+ if (strlen( pkey_identifier ) == 0)
-+ error( "EAP-TLS: both the certificate and privatekey identifiers are missing!" );
-+ else
-+ {
-+ dbglog( "Substituting privatekey identifier for certificate identifier" );
-+ cert_identifier = pkey_identifier;
-+ }
-+ }
-+ else
-+ {
-+ if (strlen( pkey_identifier ) == 0)
-+ {
-+ dbglog( "Substituting certificate identifier for privatekey identifier" );
-+ pkey_identifier = cert_identifier;
-+ }
-+ }
-+
-+ }
-+
-+ /* load the openssl config file only once */
-+ if (!ssl_config)
-+ {
-+ if (cert_engine_name || pkey_engine_name)
-+ ssl_config = eaptls_ssl_load_config();
-+
-+ if (ssl_config && cert_engine_name)
-+ cert_engine = eaptls_ssl_load_engine( cert_engine_name );
-+
-+ if (ssl_config && pkey_engine_name)
-+ {
-+ /* don't load the same engine twice */
-+ if ( cert_engine && strcmp( cert_engine_name, pkey_engine_name) == 0 )
-+ pkey_engine = cert_engine;
-+ else
-+ pkey_engine = eaptls_ssl_load_engine( pkey_engine_name );
-+ }
-+ }
-+
-+ SSL_CTX_set_default_passwd_cb (ctx, password_callback);
-+
-+ if (!SSL_CTX_load_verify_locations(ctx, cacertfile, NULL))
-+ {
-+ error("EAP-TLS: Cannot load or verify CA file %s", cacertfile);
-+ goto fail;
-+ }
-+
-+ if (init_server)
-+ SSL_CTX_set_client_CA_list(ctx, SSL_load_client_CA_file(cacertfile));
-+
-+ if (cert_engine)
-+ {
-+ struct
-+ {
-+ const char *s_slot_cert_id;
-+ X509 *cert;
-+ } cert_info;
-+
-+ cert_info.s_slot_cert_id = cert_identifier;
-+ cert_info.cert = NULL;
-+
-+ if (!ENGINE_ctrl_cmd( cert_engine, "LOAD_CERT_CTRL", 0, &cert_info, NULL, 0 ) )
-+ {
-+ error( "EAP-TLS: Error loading certificate with id '%s' from engine", cert_identifier );
-+ goto fail;
-+ }
-+
-+ if (cert_info.cert)
-+ {
-+ dbglog( "Got the certificate, adding it to SSL context" );
-+ dbglog( "subject = %s", X509_NAME_oneline( X509_get_subject_name( cert_info.cert ), NULL, 0 ) );
-+ if (SSL_CTX_use_certificate(ctx, cert_info.cert) <= 0)
-+ {
-+ error("EAP-TLS: Cannot use PKCS11 certificate %s", cert_identifier);
-+ goto fail;
-+ }
-+ }
-+ else
-+ {
-+ warn("EAP-TLS: Cannot load PKCS11 key %s", cert_identifier);
-+ log_ssl_errors();
-+ }
-+ }
-+ else
-+ {
-+ if (!SSL_CTX_use_certificate_chain_file(ctx, certfile))
-+ {
-+ error( "EAP-TLS: Cannot use public certificate %s", certfile );
-+ goto fail;
-+ }
-+ }
-+
-+
-+ /*
-+ * Check the Before and After dates of the certificate
-+ */
-+ ssl = SSL_new(ctx);
-+ tmp = SSL_get_certificate(ssl);
-+
-+ ret = X509_cmp_time(X509_get_notBefore(tmp), NULL);
-+ if (ret == 0)
-+ {
-+ warn( "EAP-TLS: Failed to read certificate notBefore field.");
-+ }
-+ if (ret > 0)
-+ {
-+ warn( "EAP-TLS: Your certificate is not yet valid!");
-+ }
-+
-+ ret = X509_cmp_time(X509_get_notAfter(tmp), NULL);
-+ if (ret == 0)
-+ {
-+ warn( "EAP-TLS: Failed to read certificate notAfter field.");
-+ }
-+ if (ret < 0)
-+ {
-+ warn( "EAP-TLS: Your certificate has expired!");
-+ }
-+ SSL_free(ssl);
-+
-+ if (pkey_engine)
-+ {
-+ EVP_PKEY *pkey = NULL;
-+ PW_CB_DATA cb_data;
-+
-+ cb_data.password = passwd;
-+ cb_data.prompt_info = pkey_identifier;
-+
-+ dbglog( "Loading private key '%s' from engine", pkey_identifier );
-+ pkey = ENGINE_load_private_key(pkey_engine, pkey_identifier, NULL, &cb_data);
-+ if (pkey)
-+ {
-+ dbglog( "Got the private key, adding it to SSL context" );
-+ if (SSL_CTX_use_PrivateKey(ctx, pkey) <= 0)
-+ {
-+ error("EAP-TLS: Cannot use PKCS11 key %s", pkey_identifier);
-+ goto fail;
-+ }
-+ }
-+ else
-+ {
-+ warn("EAP-TLS: Cannot load PKCS11 key %s", pkey_identifier);
-+ log_ssl_errors();
-+ }
-+ }
-+ else
-+ {
-+ if (!SSL_CTX_use_PrivateKey_file(ctx, privkeyfile, SSL_FILETYPE_PEM))
-+ {
-+ error("EAP-TLS: Cannot use private key %s", privkeyfile);
-+ goto fail;
-+ }
-+ }
-+
-+ if (SSL_CTX_check_private_key(ctx) != 1) {
-+ error("EAP-TLS: Private key %s fails security check", privkeyfile);
-+ goto fail;
-+ }
-+
-+ /* Explicitly set the NO_TICKETS flag to support Win7/Win8 clients */
-+ SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3
-+#ifdef SSL_OP_NO_TICKET
-+ | SSL_OP_NO_TICKET
-+#endif
-+ );
-+
-+ SSL_CTX_set_verify_depth(ctx, 5);
-+ SSL_CTX_set_verify(ctx,
-+ SSL_VERIFY_PEER |
-+ SSL_VERIFY_FAIL_IF_NO_PEER_CERT,
-+ &ssl_verify_callback);
-+
-+ if (crl_dir) {
-+ if (!(certstore = SSL_CTX_get_cert_store(ctx))) {
-+ error("EAP-TLS: Failed to get certificate store");
-+ goto fail;
-+ }
-+
-+ if (!(lookup =
-+ X509_STORE_add_lookup(certstore, X509_LOOKUP_hash_dir()))) {
-+ error("EAP-TLS: Store lookup for CRL failed");
-+
-+ goto fail;
-+ }
-+
-+ X509_LOOKUP_add_dir(lookup, crl_dir, X509_FILETYPE_PEM);
-+ X509_STORE_set_flags(certstore, X509_V_FLAG_CRL_CHECK);
-+ }
-+
-+ if (crl_file) {
-+ FILE *fp = NULL;
-+ X509_CRL *crl = NULL;
-+
-+ fp = fopen(crl_file, "r");
-+ if (!fp) {
-+ error("EAP-TLS: Cannot open CRL file '%s'", crl_file);
-+ goto fail;
-+ }
-+
-+ crl = PEM_read_X509_CRL(fp, NULL, NULL, NULL);
-+ if (!crl) {
-+ error("EAP-TLS: Cannot read CRL file '%s'", crl_file);
-+ goto fail;
-+ }
-+
-+ if (!(certstore = SSL_CTX_get_cert_store(ctx))) {
-+ error("EAP-TLS: Failed to get certificate store");
-+ goto fail;
-+ }
-+ if (!X509_STORE_add_crl(certstore, crl)) {
-+ error("EAP-TLS: Cannot add CRL to certificate store");
-+ goto fail;
-+ }
-+ X509_STORE_set_flags(certstore, X509_V_FLAG_CRL_CHECK);
-+
-+ }
-+
-+ /*
-+ * If a peer certificate file was specified, it must be valid, else fail
-+ */
-+ if (peer_certfile[0]) {
-+ if (!(tmp = get_X509_from_file(peer_certfile))) {
-+ error("EAP-TLS: Error loading client certificate from file %s",
-+ peer_certfile);
-+ goto fail;
-+ }
-+ X509_free(tmp);
-+ }
-+
-+ return ctx;
-+
-+fail:
-+ log_ssl_errors();
-+ SSL_CTX_free(ctx);
-+ return NULL;
-+}
-+
-+/*
-+ * Determine the maximum packet size by looking at the LCP handshake
-+ */
-+
-+int eaptls_get_mtu(int unit)
-+{
-+ int mtu, mru;
-+
-+ lcp_options *wo = &lcp_wantoptions[unit];
-+ lcp_options *go = &lcp_gotoptions[unit];
-+ lcp_options *ho = &lcp_hisoptions[unit];
-+ lcp_options *ao = &lcp_allowoptions[unit];
-+
-+ mtu = ho->neg_mru? ho->mru: PPP_MRU;
-+ mru = go->neg_mru? MAX(wo->mru, go->mru): PPP_MRU;
-+ mtu = MIN(MIN(mtu, mru), ao->mru)- PPP_HDRLEN - 10;
-+
-+ dbglog("MTU = %d", mtu);
-+ return mtu;
-+}
-+
-+
-+/*
-+ * Init the ssl handshake (server mode)
-+ */
-+int eaptls_init_ssl_server(eap_state * esp)
-+{
-+ struct eaptls_session *ets;
-+ char servcertfile[MAXWORDLEN];
-+ char clicertfile[MAXWORDLEN];
-+ char cacertfile[MAXWORDLEN];
-+ char pkfile[MAXWORDLEN];
-+ /*
-+ * Allocate new eaptls session
-+ */
-+ esp->es_server.ea_session = malloc(sizeof(struct eaptls_session));
-+ if (!esp->es_server.ea_session)
-+ fatal("Allocation error");
-+ ets = esp->es_server.ea_session;
-+
-+ if (!esp->es_server.ea_peer) {
-+ error("EAP-TLS: Error: client name not set (BUG)");
-+ return 0;
-+ }
-+
-+ strncpy(ets->peer, esp->es_server.ea_peer, MAXWORDLEN);
-+
-+ dbglog( "getting eaptls secret" );
-+ if (!get_eaptls_secret(esp->es_unit, esp->es_server.ea_peer,
-+ esp->es_server.ea_name, clicertfile,
-+ servcertfile, cacertfile, pkfile, 1)) {
-+ error( "EAP-TLS: Cannot get secret/password for client \"%s\", server \"%s\"",
-+ esp->es_server.ea_peer, esp->es_server.ea_name );
-+ return 0;
-+ }
-+
-+ ets->mtu = eaptls_get_mtu(esp->es_unit);
-+
-+ ets->ctx = eaptls_init_ssl(1, cacertfile, servcertfile, clicertfile, pkfile);
-+ if (!ets->ctx)
-+ goto fail;
-+
-+ if (!(ets->ssl = SSL_new(ets->ctx)))
-+ goto fail;
-+
-+ /*
-+ * Set auto-retry to avoid timeouts on BIO_read
-+ */
-+ SSL_set_mode(ets->ssl, SSL_MODE_AUTO_RETRY);
-+
-+ /*
-+ * Initialize the BIOs we use to read/write to ssl engine
-+ */
-+ ets->into_ssl = BIO_new(BIO_s_mem());
-+ ets->from_ssl = BIO_new(BIO_s_mem());
-+ SSL_set_bio(ets->ssl, ets->into_ssl, ets->from_ssl);
-+
-+ SSL_set_msg_callback(ets->ssl, ssl_msg_callback);
-+ SSL_set_msg_callback_arg(ets->ssl, ets);
-+
-+ /*
-+ * Attach the session struct to the connection, so we can later
-+ * retrieve it when doing certificate verification
-+ */
-+ SSL_set_ex_data(ets->ssl, 0, ets);
-+
-+ SSL_set_accept_state(ets->ssl);
-+
-+ ets->data = NULL;
-+ ets->datalen = 0;
-+ ets->alert_sent = 0;
-+ ets->alert_recv = 0;
-+
-+ /*
-+ * If we specified the client certificate file, store it in ets->peercertfile,
-+ * so we can check it later in ssl_verify_callback()
-+ */
-+ if (clicertfile[0])
-+ strncpy(&ets->peercertfile[0], clicertfile, MAXWORDLEN);
-+ else
-+ ets->peercertfile[0] = 0;
-+
-+ return 1;
-+
-+fail:
-+ SSL_CTX_free(ets->ctx);
-+ return 0;
-+}
-+
-+/*
-+ * Init the ssl handshake (client mode)
-+ */
-+int eaptls_init_ssl_client(eap_state * esp)
-+{
-+ struct eaptls_session *ets;
-+ char servcertfile[MAXWORDLEN];
-+ char clicertfile[MAXWORDLEN];
-+ char cacertfile[MAXWORDLEN];
-+ char pkfile[MAXWORDLEN];
-+
-+ /*
-+ * Allocate new eaptls session
-+ */
-+ esp->es_client.ea_session = malloc(sizeof(struct eaptls_session));
-+ if (!esp->es_client.ea_session)
-+ fatal("Allocation error");
-+ ets = esp->es_client.ea_session;
-+
-+ /*
-+ * If available, copy server name in ets; it will be used in cert
-+ * verify
-+ */
-+ if (esp->es_client.ea_peer)
-+ strncpy(ets->peer, esp->es_client.ea_peer, MAXWORDLEN);
-+ else
-+ ets->peer[0] = 0;
-+
-+ ets->mtu = eaptls_get_mtu(esp->es_unit);
-+
-+ dbglog( "calling get_eaptls_secret" );
-+ if (!get_eaptls_secret(esp->es_unit, esp->es_client.ea_name,
-+ ets->peer, clicertfile,
-+ servcertfile, cacertfile, pkfile, 0)) {
-+ error( "EAP-TLS: Cannot get secret/password for client \"%s\", server \"%s\"",
-+ esp->es_client.ea_name, ets->peer );
-+ return 0;
-+ }
-+
-+ dbglog( "calling eaptls_init_ssl" );
-+ ets->ctx = eaptls_init_ssl(0, cacertfile, clicertfile, servcertfile, pkfile);
-+ if (!ets->ctx)
-+ goto fail;
-+
-+ ets->ssl = SSL_new(ets->ctx);
-+
-+ if (!ets->ssl)
-+ goto fail;
-+
-+ /*
-+ * Initialize the BIOs we use to read/write to ssl engine
-+ */
-+ dbglog( "Initializing SSL BIOs" );
-+ ets->into_ssl = BIO_new(BIO_s_mem());
-+ ets->from_ssl = BIO_new(BIO_s_mem());
-+ SSL_set_bio(ets->ssl, ets->into_ssl, ets->from_ssl);
-+
-+ SSL_set_msg_callback(ets->ssl, ssl_msg_callback);
-+ SSL_set_msg_callback_arg(ets->ssl, ets);
-+
-+ /*
-+ * Attach the session struct to the connection, so we can later
-+ * retrieve it when doing certificate verification
-+ */
-+ SSL_set_ex_data(ets->ssl, 0, ets);
-+
-+ SSL_set_connect_state(ets->ssl);
-+
-+ ets->data = NULL;
-+ ets->datalen = 0;
-+ ets->alert_sent = 0;
-+ ets->alert_recv = 0;
-+
-+ /*
-+ * If we specified the server certificate file, store it in
-+ * ets->peercertfile, so we can check it later in
-+ * ssl_verify_callback()
-+ */
-+ if (servcertfile[0])
-+ strncpy(ets->peercertfile, servcertfile, MAXWORDLEN);
-+ else
-+ ets->peercertfile[0] = 0;
-+
-+ return 1;
-+
-+fail:
-+ dbglog( "eaptls_init_ssl_client: fail" );
-+ SSL_CTX_free(ets->ctx);
-+ return 0;
-+
-+}
-+
-+void eaptls_free_session(struct eaptls_session *ets)
-+{
-+ if (ets->ssl)
-+ SSL_free(ets->ssl);
-+
-+ if (ets->ctx)
-+ SSL_CTX_free(ets->ctx);
-+
-+ free(ets);
-+}
-+
-+/*
-+ * Handle a received packet, reassembling fragmented messages and
-+ * passing them to the ssl engine
-+ */
-+int eaptls_receive(struct eaptls_session *ets, u_char * inp, int len)
-+{
-+ u_char flags;
-+ u_int tlslen = 0;
-+ u_char dummy[65536];
-+
-+ if (len < 1) {
-+ warn("EAP-TLS: received no or invalid data");
-+ return 1;
-+ }
-+
-+ GETCHAR(flags, inp);
-+ len--;
-+
-+ if (flags & EAP_TLS_FLAGS_LI && len > 4) {
-+ /*
-+ * LenghtIncluded flag set -> this is the first packet of a message
-+ */
-+
-+ /*
-+ * the first 4 octets are the length of the EAP-TLS message
-+ */
-+ GETLONG(tlslen, inp);
-+ len -= 4;
-+
-+ if (!ets->data) {
-+
-+ if (tlslen > EAP_TLS_MAX_LEN) {
-+ error("EAP-TLS: TLS message length > %d, truncated", EAP_TLS_MAX_LEN);
-+ tlslen = EAP_TLS_MAX_LEN;
-+ }
-+
-+ /*
-+ * Allocate memory for the whole message
-+ */
-+ ets->data = malloc(tlslen);
-+ if (!ets->data)
-+ fatal("EAP-TLS: allocation error\n");
-+
-+ ets->datalen = 0;
-+ ets->tlslen = tlslen;
-+ }
-+ else
-+ warn("EAP-TLS: non-first LI packet? that's odd...");
-+ }
-+ else if (!ets->data) {
-+ /*
-+ * A non fragmented message without LI flag
-+ */
-+
-+ ets->data = malloc(len);
-+ if (!ets->data)
-+ fatal("EAP-TLS: allocation error\n");
-+
-+ ets->datalen = 0;
-+ ets->tlslen = len;
-+ }
-+
-+ if (flags & EAP_TLS_FLAGS_MF)
-+ ets->frag = 1;
-+ else
-+ ets->frag = 0;
-+
-+ if (len < 0) {
-+ warn("EAP-TLS: received malformed data");
-+ return 1;
-+ }
-+
-+ if (len + ets->datalen > ets->tlslen) {
-+ warn("EAP-TLS: received data > TLS message length");
-+ return 1;
-+ }
-+
-+ BCOPY(inp, ets->data + ets->datalen, len);
-+ ets->datalen += len;
-+
-+ if (!ets->frag) {
-+
-+ /*
-+ * If we have the whole message, pass it to ssl
-+ */
-+
-+ if (ets->datalen != ets->tlslen) {
-+ warn("EAP-TLS: received data != TLS message length");
-+ return 1;
-+ }
-+
-+ if (BIO_write(ets->into_ssl, ets->data, ets->datalen) == -1)
-+ log_ssl_errors();
-+
-+ SSL_read(ets->ssl, dummy, 65536);
-+
-+ free(ets->data);
-+ ets->data = NULL;
-+ ets->datalen = 0;
-+ }
-+
-+ return 0;
-+}
-+
-+/*
-+ * Return an eap-tls packet in outp.
-+ * A TLS message read from the ssl engine is buffered in ets->data.
-+ * At each call we control if there is buffered data and send a
-+ * packet of mtu bytes.
-+ */
-+int eaptls_send(struct eaptls_session *ets, u_char ** outp)
-+{
-+ bool first = 0;
-+ int size;
-+ u_char fromtls[65536];
-+ int res;
-+ u_char *start;
-+
-+ start = *outp;
-+
-+ if (!ets->data) {
-+
-+ if(!ets->alert_sent)
-+ SSL_read(ets->ssl, fromtls, 65536);
-+
-+ /*
-+ * Read from ssl
-+ */
-+ if ((res = BIO_read(ets->from_ssl, fromtls, 65536)) == -1)
-+ {
-+ warn("EAP-TLS send: No data from BIO_read");
-+ return 1;
-+ }
-+
-+ ets->datalen = res;
-+
-+ ets->data = malloc(ets->datalen);
-+ BCOPY(fromtls, ets->data, ets->datalen);
-+
-+ ets->offset = 0;
-+ first = 1;
-+
-+ }
-+
-+ size = ets->datalen - ets->offset;
-+
-+ if (size > ets->mtu) {
-+ size = ets->mtu;
-+ ets->frag = 1;
-+ } else
-+ ets->frag = 0;
-+
-+ PUTCHAR(EAPT_TLS, *outp);
-+
-+ /*
-+ * Set right flags and length if necessary
-+ */
-+ if (ets->frag && first) {
-+ PUTCHAR(EAP_TLS_FLAGS_LI | EAP_TLS_FLAGS_MF, *outp);
-+ PUTLONG(ets->datalen, *outp);
-+ } else if (ets->frag) {
-+ PUTCHAR(EAP_TLS_FLAGS_MF, *outp);
-+ } else
-+ PUTCHAR(0, *outp);
-+
-+ /*
-+ * Copy the data in outp
-+ */
-+ BCOPY(ets->data + ets->offset, *outp, size);
-+ INCPTR(size, *outp);
-+
-+ /*
-+ * Copy the packet in retransmission buffer
-+ */
-+ BCOPY(start, &ets->rtx[0], *outp - start);
-+ ets->rtx_len = *outp - start;
-+
-+ ets->offset += size;
-+
-+ if (ets->offset >= ets->datalen) {
-+
-+ /*
-+ * The whole message has been sent
-+ */
-+
-+ free(ets->data);
-+ ets->data = NULL;
-+ ets->datalen = 0;
-+ ets->offset = 0;
-+ }
-+
-+ return 0;
-+}
-+
-+/*
-+ * Get the sent packet from the retransmission buffer
-+ */
-+void eaptls_retransmit(struct eaptls_session *ets, u_char ** outp)
-+{
-+ BCOPY(ets->rtx, *outp, ets->rtx_len);
-+ INCPTR(ets->rtx_len, *outp);
-+}
-+
-+/*
-+ * Verify a certificate.
-+ * Most of the work (signatures and issuer attributes checking)
-+ * is done by ssl; we check the CN in the peer certificate
-+ * against the peer name.
-+ */
-+int ssl_verify_callback(int ok, X509_STORE_CTX * ctx)
-+{
-+ char subject[256];
-+ char cn_str[256];
-+ X509 *peer_cert;
-+ int err, depth;
-+ SSL *ssl;
-+ struct eaptls_session *ets;
-+
-+ peer_cert = X509_STORE_CTX_get_current_cert(ctx);
-+ err = X509_STORE_CTX_get_error(ctx);
-+ depth = X509_STORE_CTX_get_error_depth(ctx);
-+
-+ dbglog("certificate verify depth: %d", depth);
-+
-+ if (auth_required && !ok) {
-+ X509_NAME_oneline(X509_get_subject_name(peer_cert),
-+ subject, 256);
-+
-+ X509_NAME_get_text_by_NID(X509_get_subject_name(peer_cert),
-+ NID_commonName, cn_str, 256);
-+
-+ dbglog("Certificate verification error:\n depth: %d CN: %s"
-+ "\n err: %d (%s)\n", depth, cn_str, err,
-+ X509_verify_cert_error_string(err));
-+
-+ return 0;
-+ }
-+
-+ ssl = X509_STORE_CTX_get_ex_data(ctx,
-+ SSL_get_ex_data_X509_STORE_CTX_idx());
-+
-+ ets = (struct eaptls_session *)SSL_get_ex_data(ssl, 0);
-+
-+ if (ets == NULL) {
-+ error("Error: SSL_get_ex_data returned NULL");
-+ return 0;
-+ }
-+
-+ log_ssl_errors();
-+
-+ if (!depth) { /* This is the peer certificate */
-+
-+ X509_NAME_oneline(X509_get_subject_name(peer_cert),
-+ subject, 256);
-+
-+ X509_NAME_get_text_by_NID(X509_get_subject_name(peer_cert),
-+ NID_commonName, cn_str, 256);
-+
-+ /*
-+ * If acting as client and the name of the server wasn't specified
-+ * explicitely, we can't verify the server authenticity
-+ */
-+ if (!ets->peer[0]) {
-+ warn("Peer name not specified: no check");
-+ return ok;
-+ }
-+
-+ /*
-+ * Check the CN
-+ */
-+ if (strcmp(cn_str, ets->peer)) {
-+ error
-+ ("Certificate verification error: CN (%s) != peer_name (%s)",
-+ cn_str, ets->peer);
-+ return 0;
-+ }
-+
-+ warn("Certificate CN: %s , peer name %s", cn_str, ets->peer);
-+
-+ /*
-+ * If a peer certificate file was specified, here we check it
-+ */
-+ if (ets->peercertfile[0]) {
-+ if (ssl_cmp_certs(&ets->peercertfile[0], peer_cert)
-+ != 0) {
-+ error
-+ ("Peer certificate doesn't match stored certificate");
-+ return 0;
-+ }
-+ }
-+ }
-+
-+ return ok;
-+}
-+
-+/*
-+ * Compare a certificate with the one stored in a file
-+ */
-+int ssl_cmp_certs(char *filename, X509 * a)
-+{
-+ X509 *b;
-+ int ret;
-+
-+ if (!(b = get_X509_from_file(filename)))
-+ return 1;
-+
-+ ret = X509_cmp(a, b);
-+ X509_free(b);
-+
-+ return ret;
-+
-+}
-+
-+X509 *get_X509_from_file(char *filename)
-+{
-+ FILE *fp;
-+ X509 *ret;
-+
-+ if (!(fp = fopen(filename, "r")))
-+ return NULL;
-+
-+ ret = PEM_read_X509(fp, NULL, NULL, NULL);
-+
-+ fclose(fp);
-+
-+ return ret;
-+}
-+
-+/*
-+ * Every sent & received message this callback function is invoked,
-+ * so we know when alert messages have arrived or are sent and
-+ * we can print debug information about TLS handshake.
-+ */
-+void
-+ssl_msg_callback(int write_p, int version, int content_type,
-+ const void *buf, size_t len, SSL * ssl, void *arg)
-+{
-+ char string[256];
-+ struct eaptls_session *ets = (struct eaptls_session *)arg;
-+ unsigned char code;
-+ const unsigned char*msg = buf;
-+ int hvers = msg[1] << 8 | msg[2];
-+
-+ if(write_p)
-+ strcpy(string, " -> ");
-+ else
-+ strcpy(string, " <- ");
-+
-+ switch(content_type) {
-+
-+ case SSL3_RT_HEADER:
-+ strcat(string, "SSL/TLS Header: ");
-+ switch(hvers) {
-+ case SSL3_VERSION:
-+ strcat(string, "SSL 3.0");
-+ break;
-+ case TLS1_VERSION:
-+ strcat(string, "TLS 1.0");
-+ break;
-+ case TLS1_1_VERSION:
-+ strcat(string, "TLS 1.1");
-+ break;
-+ case TLS1_2_VERSION:
-+ strcat(string, "TLS 1.2");
-+ break;
-+ default:
-+ strcat(string, "Unknown version");
-+ }
-+ break;
-+
-+ case SSL3_RT_ALERT:
-+ strcat(string, "Alert: ");
-+ code = msg[1];
-+
-+ if (write_p) {
-+ ets->alert_sent = 1;
-+ ets->alert_sent_desc = code;
-+ } else {
-+ ets->alert_recv = 1;
-+ ets->alert_recv_desc = code;
-+ }
-+
-+ strcat(string, SSL_alert_desc_string_long(code));
-+ break;
-+
-+ case SSL3_RT_CHANGE_CIPHER_SPEC:
-+ strcat(string, "ChangeCipherSpec");
-+ break;
-+
-+ case SSL3_RT_HANDSHAKE:
-+
-+ strcat(string, "Handshake: ");
-+ code = msg[0];
-+
-+ switch(code) {
-+ case SSL3_MT_HELLO_REQUEST:
-+ strcat(string,"Hello Request");
-+ break;
-+ case SSL3_MT_CLIENT_HELLO:
-+ strcat(string,"Client Hello");
-+ break;
-+ case SSL3_MT_SERVER_HELLO:
-+ strcat(string,"Server Hello");
-+ break;
-+#ifdef SSL3_MT_NEWSESSION_TICKET
-+ case SSL3_MT_NEWSESSION_TICKET:
-+ strcat(string,"New Session Ticket");
-+ break;
-+#endif
-+ case SSL3_MT_CERTIFICATE:
-+ strcat(string,"Certificate");
-+ break;
-+ case SSL3_MT_SERVER_KEY_EXCHANGE:
-+ strcat(string,"Server Key Exchange");
-+ break;
-+ case SSL3_MT_CERTIFICATE_REQUEST:
-+ strcat(string,"Certificate Request");
-+ break;
-+ case SSL3_MT_SERVER_DONE:
-+ strcat(string,"Server Hello Done");
-+ break;
-+ case SSL3_MT_CERTIFICATE_VERIFY:
-+ strcat(string,"Certificate Verify");
-+ break;
-+ case SSL3_MT_CLIENT_KEY_EXCHANGE:
-+ strcat(string,"Client Key Exchange");
-+ break;
-+ case SSL3_MT_FINISHED:
-+ strcat(string,"Finished: ");
-+ hvers = SSL_version(ssl);
-+ switch(hvers) {
-+ case SSL3_VERSION:
-+ strcat(string, "SSL 3.0");
-+ break;
-+ case TLS1_VERSION:
-+ strcat(string, "TLS 1.0");
-+ break;
-+ case TLS1_1_VERSION:
-+ strcat(string, "TLS 1.1");
-+ break;
-+ case TLS1_2_VERSION:
-+ strcat(string, "TLS 1.2");
-+ break;
-+ default:
-+ strcat(string, "Unknown version");
-+ }
-+ break;
-+ default:
-+ sprintf( string, "Handshake: Unknown SSL3 code received: %d", code );
-+ }
-+ break;
-+
-+ default:
-+ sprintf( string, "SSL message contains unknown content type: %d", content_type );
-+
-+ }
-+
-+ /* Alert messages must always be displayed */
-+ if(content_type == SSL3_RT_ALERT)
-+ error("%s", string);
-+ else
-+ dbglog("%s", string);
-+}
-+
-diff --git a/pppd/eap-tls.h b/pppd/eap-tls.h
-new file mode 100644
-index 000000000000..2d45a0b83a0c
---- /dev/null
-+++ b/pppd/eap-tls.h
-@@ -0,0 +1,107 @@
-+/*
-+ * eap-tls.h
-+ *
-+ * Copyright (c) Beniamino Galvani 2005 All rights reserved.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ *
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in
-+ * the documentation and/or other materials provided with the
-+ * distribution.
-+ *
-+ * 3. The name(s) of the authors of this software must not be used to
-+ * endorse or promote products derived from this software without
-+ * prior written permission.
-+ *
-+ * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO
-+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-+ * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
-+ * SPECIAL, 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.
-+ *
-+ */
-+
-+#ifndef __EAP_TLS_H__
-+#define __EAP_TLS_H__
-+
-+#include "eap.h"
-+
-+#include <openssl/ssl.h>
-+#include <openssl/bio.h>
-+#include <openssl/md5.h>
-+
-+#define EAP_TLS_FLAGS_LI 128 /* length included flag */
-+#define EAP_TLS_FLAGS_MF 64 /* more fragments flag */
-+#define EAP_TLS_FLAGS_START 32 /* start flag */
-+
-+#define EAP_TLS_MAX_LEN 65536 /* max eap tls packet size */
-+
-+struct eaptls_session
-+{
-+ u_char *data; /* buffered data */
-+ int datalen; /* buffered data len */
-+ int offset; /* from where to send */
-+ int tlslen; /* total length of tls data */
-+ bool frag; /* packet is fragmented */
-+ SSL_CTX *ctx;
-+ SSL *ssl; /* ssl connection */
-+ BIO *from_ssl;
-+ BIO *into_ssl;
-+ char peer[MAXWORDLEN]; /* peer name */
-+ char peercertfile[MAXWORDLEN];
-+ bool alert_sent;
-+ u_char alert_sent_desc;
-+ bool alert_recv;
-+ u_char alert_recv_desc;
-+ char rtx[65536]; /* retransmission buffer */
-+ int rtx_len;
-+ int mtu; /* unit mtu */
-+};
-+
-+typedef struct pw_cb_data
-+{
-+ const void *password;
-+ const char *prompt_info;
-+} PW_CB_DATA;
-+
-+
-+int ssl_verify_callback(int, X509_STORE_CTX *);
-+void ssl_msg_callback(int write_p, int version, int ct, const void *buf,
-+ size_t len, SSL * ssl, void *arg);
-+
-+X509 *get_X509_from_file(char *filename);
-+int ssl_cmp_certs(char *filename, X509 * a);
-+
-+SSL_CTX *eaptls_init_ssl(int init_server, char *cacertfile,
-+ char *certfile, char *peer_certfile, char *privkeyfile);
-+int eaptls_init_ssl_server(eap_state * esp);
-+int eaptls_init_ssl_client(eap_state * esp);
-+void eaptls_free_session(struct eaptls_session *ets);
-+
-+int eaptls_receive(struct eaptls_session *ets, u_char * inp, int len);
-+int eaptls_send(struct eaptls_session *ets, u_char ** outp);
-+void eaptls_retransmit(struct eaptls_session *ets, u_char ** outp);
-+
-+int get_eaptls_secret(int unit, char *client, char *server,
-+ char *clicertfile, char *servcertfile, char *cacertfile,
-+ char *pkfile, int am_server);
-+
-+#ifdef MPPE
-+#include "mppe.h" /* MPPE_MAX_KEY_LEN */
-+extern u_char mppe_send_key[MPPE_MAX_KEY_LEN];
-+extern u_char mppe_recv_key[MPPE_MAX_KEY_LEN];
-+extern int mppe_keys_set;
-+
-+void eaptls_gen_mppe_keys(struct eaptls_session *ets, const char *prf_label, int client);
-+
-+#endif
-+
-+#endif
-diff --git a/pppd/eap.c b/pppd/eap.c
-index 6ea6c1f8bff6..032407c3dbb2 100644
---- a/pppd/eap.c
-+++ b/pppd/eap.c
-@@ -43,6 +43,11 @@
- * Based on draft-ietf-pppext-eap-srp-03.txt.
- */
-
-+/*
-+ * Modification by Beniamino Galvani, Mar 2005
-+ * Implemented EAP-TLS authentication
-+ */
-+
- #define RCSID "$Id: eap.c,v 1.4 2004/11/09 22:39:25 paulus Exp $"
-
- /*
-@@ -62,8 +67,12 @@
-
- #include "pppd.h"
- #include "pathnames.h"
--#include "md5.h"
- #include "eap.h"
-+#ifdef USE_EAPTLS
-+#include "eap-tls.h"
-+#else
-+#include "md5.h"
-+#endif /* USE_EAPTLS */
-
- #ifdef USE_SRP
- #include <t_pwd.h>
-@@ -209,6 +218,9 @@ int unit;
- esp->es_server.ea_id = (u_char)(drand48() * 0x100);
- esp->es_client.ea_timeout = EAP_DEFREQTIME;
- esp->es_client.ea_maxrequests = EAP_DEFALLOWREQ;
-+#ifdef USE_EAPTLS
-+ esp->es_client.ea_using_eaptls = 0;
-+#endif /* USE_EAPTLS */
- }
-
- /*
-@@ -436,8 +448,16 @@ int status;
- u_char vals[2];
- struct b64state bs;
- #endif /* USE_SRP */
-+#ifdef USE_EAPTLS
-+ struct eaptls_session *ets;
-+ int secret_len;
-+ char secret[MAXWORDLEN];
-+#endif /* USE_EAPTLS */
-
- esp->es_server.ea_timeout = esp->es_savedtime;
-+#ifdef USE_EAPTLS
-+ esp->es_server.ea_prev_state = esp->es_server.ea_state;
-+#endif /* USE_EAPTLS */
- switch (esp->es_server.ea_state) {
- case eapBadAuth:
- return;
-@@ -562,9 +582,79 @@ int status;
- break;
- }
- #endif /* USE_SRP */
-+#ifdef USE_EAPTLS
-+ if (!get_secret(esp->es_unit, esp->es_server.ea_peer,
-+ esp->es_server.ea_name, secret, &secret_len, 1)) {
-+
-+ esp->es_server.ea_state = eapTlsStart;
-+ break;
-+ }
-+#endif /* USE_EAPTLS */
-+
- esp->es_server.ea_state = eapMD5Chall;
- break;
-
-+#ifdef USE_EAPTLS
-+ case eapTlsStart:
-+ /* Initialize ssl session */
-+ if(!eaptls_init_ssl_server(esp)) {
-+ esp->es_server.ea_state = eapBadAuth;
-+ break;
-+ }
-+
-+ esp->es_server.ea_state = eapTlsRecv;
-+ break;
-+
-+ case eapTlsRecv:
-+ ets = (struct eaptls_session *) esp->es_server.ea_session;
-+
-+ if(ets->alert_sent) {
-+ esp->es_server.ea_state = eapTlsSendAlert;
-+ break;
-+ }
-+
-+ if (status) {
-+ esp->es_server.ea_state = eapBadAuth;
-+ break;
-+ }
-+ ets = (struct eaptls_session *) esp->es_server.ea_session;
-+
-+ if(ets->frag)
-+ esp->es_server.ea_state = eapTlsSendAck;
-+ else
-+ esp->es_server.ea_state = eapTlsSend;
-+ break;
-+
-+ case eapTlsSend:
-+ ets = (struct eaptls_session *) esp->es_server.ea_session;
-+
-+ if(ets->frag)
-+ esp->es_server.ea_state = eapTlsRecvAck;
-+ else
-+ if(SSL_is_init_finished(ets->ssl))
-+ esp->es_server.ea_state = eapTlsRecvClient;
-+ else
-+ esp->es_server.ea_state = eapTlsRecv;
-+ break;
-+
-+ case eapTlsSendAck:
-+ esp->es_server.ea_state = eapTlsRecv;
-+ break;
-+
-+ case eapTlsRecvAck:
-+ if (status) {
-+ esp->es_server.ea_state = eapBadAuth;
-+ break;
-+ }
-+
-+ esp->es_server.ea_state = eapTlsSend;
-+ break;
-+
-+ case eapTlsSendAlert:
-+ esp->es_server.ea_state = eapTlsRecvAlertAck;
-+ break;
-+#endif /* USE_EAPTLS */
-+
- case eapSRP1:
- #ifdef USE_SRP
- ts = (struct t_server *)esp->es_server.ea_session;
-@@ -718,6 +808,30 @@ eap_state *esp;
- INCPTR(esp->es_server.ea_namelen, outp);
- break;
-
-+#ifdef USE_EAPTLS
-+ case eapTlsStart:
-+ PUTCHAR(EAPT_TLS, outp);
-+ PUTCHAR(EAP_TLS_FLAGS_START, outp);
-+ eap_figure_next_state(esp, 0);
-+ break;
-+
-+ case eapTlsSend:
-+ eaptls_send(esp->es_server.ea_session, &outp);
-+ eap_figure_next_state(esp, 0);
-+ break;
-+
-+ case eapTlsSendAck:
-+ PUTCHAR(EAPT_TLS, outp);
-+ PUTCHAR(0, outp);
-+ eap_figure_next_state(esp, 0);
-+ break;
-+
-+ case eapTlsSendAlert:
-+ eaptls_send(esp->es_server.ea_session, &outp);
-+ eap_figure_next_state(esp, 0);
-+ break;
-+#endif /* USE_EAPTLS */
-+
- #ifdef USE_SRP
- case eapSRP1:
- PUTCHAR(EAPT_SRP, outp);
-@@ -904,11 +1018,57 @@ static void
- eap_server_timeout(arg)
- void *arg;
- {
-+#ifdef USE_EAPTLS
-+ u_char *outp;
-+ u_char *lenloc;
-+ int outlen;
-+#endif /* USE_EAPTLS */
-+
- eap_state *esp = (eap_state *) arg;
-
- if (!eap_server_active(esp))
- return;
-
-+#ifdef USE_EAPTLS
-+ switch(esp->es_server.ea_prev_state) {
-+
-+ /*
-+ * In eap-tls the state changes after a request, so we return to
-+ * previous state ...
-+ */
-+ case(eapTlsStart):
-+ case(eapTlsSendAck):
-+ esp->es_server.ea_state = esp->es_server.ea_prev_state;
-+ break;
-+
-+ /*
-+ * ... or resend the stored data
-+ */
-+ case(eapTlsSend):
-+ case(eapTlsSendAlert):
-+ outp = outpacket_buf;
-+ MAKEHEADER(outp, PPP_EAP);
-+ PUTCHAR(EAP_REQUEST, outp);
-+ PUTCHAR(esp->es_server.ea_id, outp);
-+ lenloc = outp;
-+ INCPTR(2, outp);
-+
-+ eaptls_retransmit(esp->es_server.ea_session, &outp);
-+
-+ outlen = (outp - outpacket_buf) - PPP_HDRLEN;
-+ PUTSHORT(outlen, lenloc);
-+ output(esp->es_unit, outpacket_buf, outlen + PPP_HDRLEN);
-+ esp->es_server.ea_requests++;
-+
-+ if (esp->es_server.ea_timeout > 0)
-+ TIMEOUT(eap_server_timeout, esp, esp->es_server.ea_timeout);
-+
-+ return;
-+ default:
-+ break;
-+ }
-+#endif /* USE_EAPTLS */
-+
- /* EAP ID number must not change on timeout. */
- eap_send_request(esp);
- }
-@@ -1166,6 +1326,81 @@ u_char *str;
- }
- #endif /* USE_SRP */
-
-+#ifdef USE_EAPTLS
-+/*
-+ * Send an EAP-TLS response message with tls data
-+ */
-+static void
-+eap_tls_response(esp, id)
-+eap_state *esp;
-+u_char id;
-+{
-+ u_char *outp;
-+ int outlen;
-+ u_char *lenloc;
-+
-+ outp = outpacket_buf;
-+
-+ MAKEHEADER(outp, PPP_EAP);
-+
-+ PUTCHAR(EAP_RESPONSE, outp);
-+ PUTCHAR(id, outp);
-+
-+ lenloc = outp;
-+ INCPTR(2, outp);
-+
-+ /*
-+ If the id in the request is unchanged, we must retransmit
-+ the old data
-+ */
-+ if(id == esp->es_client.ea_id)
-+ eaptls_retransmit(esp->es_client.ea_session, &outp);
-+ else
-+ eaptls_send(esp->es_client.ea_session, &outp);
-+
-+ outlen = (outp - outpacket_buf) - PPP_HDRLEN;
-+ PUTSHORT(outlen, lenloc);
-+
-+ output(esp->es_unit, outpacket_buf, PPP_HDRLEN + outlen);
-+
-+ esp->es_client.ea_id = id;
-+
-+}
-+
-+/*
-+ * Send an EAP-TLS ack
-+ */
-+static void
-+eap_tls_sendack(esp, id)
-+eap_state *esp;
-+u_char id;
-+{
-+ u_char *outp;
-+ int outlen;
-+ u_char *lenloc;
-+
-+ outp = outpacket_buf;
-+
-+ MAKEHEADER(outp, PPP_EAP);
-+
-+ PUTCHAR(EAP_RESPONSE, outp);
-+ PUTCHAR(id, outp);
-+ esp->es_client.ea_id = id;
-+
-+ lenloc = outp;
-+ INCPTR(2, outp);
-+
-+ PUTCHAR(EAPT_TLS, outp);
-+ PUTCHAR(0, outp);
-+
-+ outlen = (outp - outpacket_buf) - PPP_HDRLEN;
-+ PUTSHORT(outlen, lenloc);
-+
-+ output(esp->es_unit, outpacket_buf, PPP_HDRLEN + outlen);
-+
-+}
-+#endif /* USE_EAPTLS */
-+
- static void
- eap_send_nak(esp, id, type)
- eap_state *esp;
-@@ -1320,6 +1555,11 @@ int len;
- char rhostname[256];
- MD5_CTX mdContext;
- u_char hash[MD5_SIGNATURE_SIZE];
-+#ifdef USE_EAPTLS
-+ u_char flags;
-+ struct eaptls_session *ets = esp->es_client.ea_session;
-+#endif /* USE_EAPTLS */
-+
- #ifdef USE_SRP
- struct t_client *tc;
- struct t_num sval, gval, Nval, *Ap, Bval;
-@@ -1456,6 +1696,100 @@ int len;
- esp->es_client.ea_namelen);
- break;
-
-+#ifdef USE_EAPTLS
-+ case EAPT_TLS:
-+
-+ switch(esp->es_client.ea_state) {
-+
-+ case eapListen:
-+
-+ if (len < 1) {
-+ error("EAP: received EAP-TLS Listen packet with no data");
-+ /* Bogus request; wait for something real. */
-+ return;
-+ }
-+ GETCHAR(flags, inp);
-+ if(flags & EAP_TLS_FLAGS_START){
-+
-+ esp->es_client.ea_using_eaptls = 1;
-+
-+ if (explicit_remote){
-+ esp->es_client.ea_peer = strdup(remote_name);
-+ esp->es_client.ea_peerlen = strlen(remote_name);
-+ } else
-+ esp->es_client.ea_peer = NULL;
-+
-+ /* Init ssl session */
-+ if(!eaptls_init_ssl_client(esp)) {
-+ dbglog("cannot init ssl");
-+ eap_send_nak(esp, id, EAPT_TLS);
-+ esp->es_client.ea_using_eaptls = 0;
-+ break;
-+ }
-+
-+ ets = esp->es_client.ea_session;
-+ eap_tls_response(esp, id);
-+ esp->es_client.ea_state = (ets->frag ? eapTlsRecvAck :
-+ eapTlsRecv);
-+ break;
-+ }
-+
-+ /* The server has sent a bad start packet. */
-+ eap_send_nak(esp, id, EAPT_TLS);
-+ break;
-+
-+ case eapTlsRecvAck:
-+ eap_tls_response(esp, id);
-+ esp->es_client.ea_state = (ets->frag ? eapTlsRecvAck :
-+ eapTlsRecv);
-+ break;
-+
-+ case eapTlsRecv:
-+ if (len < 1) {
-+ error("EAP: discarding EAP-TLS Receive packet with no data");
-+ /* Bogus request; wait for something real. */
-+ return;
-+ }
-+ eaptls_receive(ets, inp, len);
-+
-+ if(ets->frag) {
-+ eap_tls_sendack(esp, id);
-+ esp->es_client.ea_state = eapTlsRecv;
-+ break;
-+ }
-+
-+ if(ets->alert_recv) {
-+ eap_tls_sendack(esp, id);
-+ esp->es_client.ea_state = eapTlsRecvFailure;
-+ break;
-+ }
-+
-+ /* Check if TLS handshake is finished */
-+ if(SSL_is_init_finished(ets->ssl)){
-+#ifdef MPPE
-+ eaptls_gen_mppe_keys( ets, "client EAP encryption", 1 );
-+#endif
-+ eaptls_free_session(ets);
-+ eap_tls_sendack(esp, id);
-+ esp->es_client.ea_state = eapTlsRecvSuccess;
-+ break;
-+ }
-+
-+ eap_tls_response(esp,id);
-+ esp->es_client.ea_state = (ets->frag ? eapTlsRecvAck :
-+ eapTlsRecv);
-+
-+ break;
-+
-+ default:
-+ eap_send_nak(esp, id, EAPT_TLS);
-+ esp->es_client.ea_using_eaptls = 0;
-+ break;
-+ }
-+
-+ break;
-+#endif /* USE_EAPTLS */
-+
- #ifdef USE_SRP
- case EAPT_SRP:
- if (len < 1) {
-@@ -1737,6 +2071,11 @@ int len;
- u_char dig[SHA_DIGESTSIZE];
- #endif /* USE_SRP */
-
-+#ifdef USE_EAPTLS
-+ struct eaptls_session *ets;
-+ u_char flags;
-+#endif /* USE_EAPTLS */
-+
- if (esp->es_server.ea_id != id) {
- dbglog("EAP: discarding Response %d; expected ID %d", id,
- esp->es_server.ea_id);
-@@ -1776,6 +2115,64 @@ int len;
- eap_figure_next_state(esp, 0);
- break;
-
-+#ifdef USE_EAPTLS
-+ case EAPT_TLS:
-+ switch(esp->es_server.ea_state) {
-+
-+ case eapTlsRecv:
-+
-+ ets = (struct eaptls_session *) esp->es_server.ea_session;
-+ eap_figure_next_state(esp,
-+ eaptls_receive(esp->es_server.ea_session, inp, len));
-+
-+ if(ets->alert_recv) {
-+ eap_send_failure(esp);
-+ break;
-+ }
-+ break;
-+
-+ case eapTlsRecvAck:
-+ if(len > 1) {
-+ dbglog("EAP-TLS ACK with extra data");
-+ }
-+ eap_figure_next_state(esp, 0);
-+ break;
-+
-+ case eapTlsRecvClient:
-+ /* Receive authentication response from client */
-+
-+ if (len > 0) {
-+ GETCHAR(flags, inp);
-+
-+ if(len == 1 && !flags) { /* Ack = ok */
-+#ifdef MPPE
-+ eaptls_gen_mppe_keys( esp->es_server.ea_session, "client EAP encryption", 0 );
-+#endif
-+ eap_send_success(esp);
-+ }
-+ else { /* failure */
-+ warn("Server authentication failed");
-+ eap_send_failure(esp);
-+ }
-+ }
-+ else
-+ warn("Bogus EAP-TLS packet received from client");
-+
-+ eaptls_free_session(esp->es_server.ea_session);
-+
-+ break;
-+
-+ case eapTlsRecvAlertAck:
-+ eap_send_failure(esp);
-+ break;
-+
-+ default:
-+ eap_figure_next_state(esp, 1);
-+ break;
-+ }
-+ break;
-+#endif /* USE_EAPTLS */
-+
- case EAPT_NOTIFICATION:
- dbglog("EAP unexpected Notification; response discarded");
- break;
-@@ -1807,6 +2204,13 @@ int len;
- esp->es_server.ea_state = eapMD5Chall;
- break;
-
-+#ifdef USE_EAPTLS
-+ /* Send EAP-TLS start packet */
-+ case EAPT_TLS:
-+ esp->es_server.ea_state = eapTlsStart;
-+ break;
-+#endif /* USE_EAPTLS */
-+
- default:
- dbglog("EAP: peer requesting unknown Type %d", vallen);
- switch (esp->es_server.ea_state) {
-@@ -2018,13 +2422,27 @@ u_char *inp;
- int id;
- int len;
- {
-- if (esp->es_client.ea_state != eapOpen && !eap_client_active(esp)) {
-+ if (esp->es_client.ea_state != eapOpen && !eap_client_active(esp)
-+#ifdef USE_EAPTLS
-+ && esp->es_client.ea_state != eapTlsRecvSuccess
-+#endif /* USE_EAPTLS */
-+ ) {
- dbglog("EAP unexpected success message in state %s (%d)",
- eap_state_name(esp->es_client.ea_state),
- esp->es_client.ea_state);
- return;
- }
-
-+#ifdef USE_EAPTLS
-+ if(esp->es_client.ea_using_eaptls && esp->es_client.ea_state !=
-+ eapTlsRecvSuccess) {
-+ dbglog("EAP-TLS unexpected success message in state %s (%d)",
-+ eap_state_name(esp->es_client.ea_state),
-+ esp->es_client.ea_state);
-+ return;
-+ }
-+#endif /* USE_EAPTLS */
-+
- if (esp->es_client.ea_timeout > 0) {
- UNTIMEOUT(eap_client_timeout, (void *)esp);
- }
-@@ -2150,6 +2568,9 @@ void *arg;
- int code, id, len, rtype, vallen;
- u_char *pstart;
- u_int32_t uval;
-+#ifdef USE_EAPTLS
-+ u_char flags;
-+#endif /* USE_EAPTLS */
-
- if (inlen < EAP_HEADERLEN)
- return (0);
-@@ -2214,6 +2635,24 @@ void *arg;
- }
- break;
-
-+#ifdef USE_EAPTLS
-+ case EAPT_TLS:
-+ if (len < 1)
-+ break;
-+ GETCHAR(flags, inp);
-+ len--;
-+
-+ if(flags == 0 && len == 0){
-+ printer(arg, " Ack");
-+ break;
-+ }
-+
-+ printer(arg, flags & EAP_TLS_FLAGS_LI ? " L":" -");
-+ printer(arg, flags & EAP_TLS_FLAGS_MF ? "M":"-");
-+ printer(arg, flags & EAP_TLS_FLAGS_START ? "S":"- ");
-+ break;
-+#endif /* USE_EAPTLS */
-+
- case EAPT_SRP:
- if (len < 3)
- goto truncated;
-@@ -2325,6 +2764,25 @@ void *arg;
- }
- break;
-
-+#ifdef USE_EAPTLS
-+ case EAPT_TLS:
-+ if (len < 1)
-+ break;
-+ GETCHAR(flags, inp);
-+ len--;
-+
-+ if(flags == 0 && len == 0){
-+ printer(arg, " Ack");
-+ break;
-+ }
-+
-+ printer(arg, flags & EAP_TLS_FLAGS_LI ? " L":" -");
-+ printer(arg, flags & EAP_TLS_FLAGS_MF ? "M":"-");
-+ printer(arg, flags & EAP_TLS_FLAGS_START ? "S":"- ");
-+
-+ break;
-+#endif /* USE_EAPTLS */
-+
- case EAPT_NAK:
- if (len <= 0) {
- printer(arg, " <missing hint>");
-@@ -2426,3 +2884,4 @@ void *arg;
-
- return (inp - pstart);
- }
-+
-diff --git a/pppd/eap.h b/pppd/eap.h
-index 199d1849b826..087baad83eed 100644
---- a/pppd/eap.h
-+++ b/pppd/eap.h
-@@ -84,6 +84,16 @@ enum eap_state_code {
- eapClosed, /* Authentication not in use */
- eapListen, /* Client ready (and timer running) */
- eapIdentify, /* EAP Identify sent */
-+ eapTlsStart, /* Send EAP-TLS start packet */
-+ eapTlsRecv, /* Receive EAP-TLS tls data */
-+ eapTlsSendAck, /* Send EAP-TLS ack */
-+ eapTlsSend, /* Send EAP-TLS tls data */
-+ eapTlsRecvAck, /* Receive EAP-TLS ack */
-+ eapTlsRecvClient, /* Receive EAP-TLS auth response from client*/
-+ eapTlsSendAlert, /* Send EAP-TLS tls alert (server)*/
-+ eapTlsRecvAlertAck, /* Receive EAP-TLS ack after sending alert */
-+ eapTlsRecvSuccess, /* Receive EAP success */
-+ eapTlsRecvFailure, /* Receive EAP failure */
- eapSRP1, /* Sent EAP SRP-SHA1 Subtype 1 */
- eapSRP2, /* Sent EAP SRP-SHA1 Subtype 2 */
- eapSRP3, /* Sent EAP SRP-SHA1 Subtype 3 */
-@@ -95,9 +105,18 @@ enum eap_state_code {
-
- #define EAP_STATES \
- "Initial", "Pending", "Closed", "Listen", "Identify", \
-+ "TlsStart", "TlsRecv", "TlsSendAck", "TlsSend", "TlsRecvAck", "TlsRecvClient",\
-+ "TlsSendAlert", "TlsRecvAlertAck" , "TlsRecvSuccess", "TlsRecvFailure", \
- "SRP1", "SRP2", "SRP3", "MD5Chall", "Open", "SRP4", "BadAuth"
-
--#define eap_client_active(esp) ((esp)->es_client.ea_state == eapListen)
-+#ifdef USE_EAPTLS
-+#define eap_client_active(esp) ((esp)->es_client.ea_state != eapInitial &&\
-+ (esp)->es_client.ea_state != eapPending &&\
-+ (esp)->es_client.ea_state != eapClosed)
-+#else
-+#define eap_client_active(esp) ((esp)->es_client.ea_state == eapListen)
-+#endif /* USE_EAPTLS */
-+
- #define eap_server_active(esp) \
- ((esp)->es_server.ea_state >= eapIdentify && \
- (esp)->es_server.ea_state <= eapMD5Chall)
-@@ -112,11 +131,17 @@ struct eap_auth {
- u_short ea_namelen; /* Length of our name */
- u_short ea_peerlen; /* Length of peer's name */
- enum eap_state_code ea_state;
-+#ifdef USE_EAPTLS
-+ enum eap_state_code ea_prev_state;
-+#endif
- u_char ea_id; /* Current id */
- u_char ea_requests; /* Number of Requests sent/received */
- u_char ea_responses; /* Number of Responses */
- u_char ea_type; /* One of EAPT_* */
- u_int32_t ea_keyflags; /* SRP shared key usage flags */
-+#ifdef USE_EAPTLS
-+ bool ea_using_eaptls;
-+#endif
- };
-
- /*
-@@ -139,7 +164,12 @@ typedef struct eap_state {
- * Timeouts.
- */
- #define EAP_DEFTIMEOUT 3 /* Timeout (seconds) for rexmit */
-+#ifdef USE_EAPTLS
-+#define EAP_DEFTRANSMITS 30 /* max # times to transmit */
-+ /* certificates can be long ... */
-+#else
- #define EAP_DEFTRANSMITS 10 /* max # times to transmit */
-+#endif /* USE_EAPTLS */
- #define EAP_DEFREQTIME 20 /* Time to wait for peer request */
- #define EAP_DEFALLOWREQ 20 /* max # times to accept requests */
-
-diff --git a/pppd/md5.c b/pppd/md5.c
-index f1291ce1bd72..6f8f7207c592 100644
---- a/pppd/md5.c
-+++ b/pppd/md5.c
-@@ -33,6 +33,8 @@
- ***********************************************************************
- */
-
-+#ifndef USE_EAPTLS
-+
- #include <string.h>
- #include "md5.h"
-
-@@ -305,3 +307,5 @@ UINT4 *in;
- ** End of md5.c **
- ******************************** (cut) ********************************
- */
-+#endif /* USE_EAPTLS */
-+
-diff --git a/pppd/md5.h b/pppd/md5.h
-index 71e8b00e2dde..14d712171c5e 100644
---- a/pppd/md5.h
-+++ b/pppd/md5.h
-@@ -36,6 +36,7 @@
- ** documentation and/or software. **
- ***********************************************************************
- */
-+#ifndef USE_EAPTLS
-
- #ifndef __MD5_INCLUDE__
-
-@@ -63,3 +64,5 @@ void MD5_Final (unsigned char hash[], MD5_CTX *mdContext);
-
- #define __MD5_INCLUDE__
- #endif /* __MD5_INCLUDE__ */
-+
-+#endif /* USE_EAPTLS */
-diff --git a/pppd/pathnames.h b/pppd/pathnames.h
-index 46972601fc92..72c2f5b191ee 100644
---- a/pppd/pathnames.h
-+++ b/pppd/pathnames.h
-@@ -21,6 +21,13 @@
- #define _PATH_UPAPFILE _ROOT_PATH "/etc/ppp/pap-secrets"
- #define _PATH_CHAPFILE _ROOT_PATH "/etc/ppp/chap-secrets"
- #define _PATH_SRPFILE _ROOT_PATH "/etc/ppp/srp-secrets"
-+
-+#ifdef USE_EAPTLS
-+#define _PATH_EAPTLSCLIFILE _ROOT_PATH "/etc/ppp/eaptls-client"
-+#define _PATH_EAPTLSSERVFILE _ROOT_PATH "/etc/ppp/eaptls-server"
-+#define _PATH_OPENSSLCONFFILE _ROOT_PATH "/etc/ppp/openssl.cnf"
-+#endif /* USE_EAPTLS */
-+
- #define _PATH_SYSOPTIONS _ROOT_PATH "/etc/ppp/options"
- #define _PATH_IPUP _ROOT_PATH "/etc/ppp/ip-up"
- #define _PATH_IPDOWN _ROOT_PATH "/etc/ppp/ip-down"
-diff --git a/pppd/plugins/Makefile.linux b/pppd/plugins/Makefile.linux
-index 0f9d37d2953b..bc29968d44c9 100644
---- a/pppd/plugins/Makefile.linux
-+++ b/pppd/plugins/Makefile.linux
-@@ -4,6 +4,9 @@ CFLAGS = $(COPTS) -I.. -I../../include -fPIC
- LDFLAGS = $(LDOPTS)
- INSTALL = install
-
-+# EAP-TLS
-+CFLAGS += -DUSE_EAPTLS=1
-+
- DESTDIR = $(INSTROOT)@DESTDIR@
- BINDIR = $(DESTDIR)/sbin
- MANDIR = $(DESTDIR)/share/man/man8
-diff --git a/pppd/plugins/passprompt.c b/pppd/plugins/passprompt.c
-index babb6dc31bab..6ba73cae2795 100644
---- a/pppd/plugins/passprompt.c
-+++ b/pppd/plugins/passprompt.c
-@@ -107,4 +107,7 @@ void plugin_init(void)
- {
- add_options(options);
- pap_passwd_hook = promptpass;
-+#ifdef USE_EAPTLS
-+ eaptls_passwd_hook = promptpass;
-+#endif
- }
-diff --git a/pppd/plugins/passwordfd.c b/pppd/plugins/passwordfd.c
-index d718f3bdf81d..c3f9793e41a0 100644
---- a/pppd/plugins/passwordfd.c
-+++ b/pppd/plugins/passwordfd.c
-@@ -79,4 +79,8 @@ void plugin_init (void)
-
- chap_check_hook = pwfd_check;
- chap_passwd_hook = pwfd_passwd;
-+
-+#ifdef USE_EAPTLS
-+ eaptls_passwd_hook = pwfd_passwd;
-+#endif
- }
-diff --git a/pppd/pppd.8 b/pppd/pppd.8
-index 65bbe721f761..8afa2d1186e2 100644
---- a/pppd/pppd.8
-+++ b/pppd/pppd.8
-@@ -253,6 +253,12 @@ Alternatively, a value of 0 for \fInr\fR or \fInt\fR disables
- compression in the corresponding direction. Use \fInobsdcomp\fR or
- \fIbsdcomp 0\fR to disable BSD-Compress compression entirely.
- .TP
-+.B ca \fIca-file
-+(EAP-TLS) Use the file \fIca-file\fR as the X.509 Certificate Authority
-+(CA) file (in PEM format), needed for setting up an EAP-TLS connection.
-+This option is used on the client-side in conjunction with the \fBcert\fR
-+and \fBkey\fR options.
-+.TP
- .B cdtrcts
- Use a non-standard hardware flow control (i.e. DTR/CTS) to control
- the flow of data on the serial port. If neither the \fIcrtscts\fR,
-@@ -264,6 +270,12 @@ RTS output. Such serial ports use this mode to implement true
- bi-directional flow control. The sacrifice is that this flow
- control mode does not permit using DTR as a modem control line.
- .TP
-+.B cert \fIcertfile
-+(EAP-TLS) Use the file \fIcertfile\fR as the X.509 certificate (in PEM
-+format), needed for setting up an EAP-TLS connection. This option is
-+used on the client-side in conjunction with the \fBca\fR and
-+\fBkey\fR options.
-+.TP
- .B chap\-interval \fIn
- If this option is given, pppd will rechallenge the peer every \fIn\fR
- seconds.
-@@ -292,6 +304,18 @@ negotiation by sending its first LCP packet. The default value is
- 1000 (1 second). This wait period only applies if the \fBconnect\fR
- or \fBpty\fR option is used.
- .TP
-+.B crl \fIfilename
-+(EAP-TLS) Use the file \fIfilename\fR as the Certificate Revocation List
-+to check for the validity of the peer's certificate. This option is not
-+mandatory for setting up an EAP-TLS connection. Also see the \fBcrl-dir\fR
-+option.
-+.TP
-+.B crl-dir \fIdirectory
-+(EAP-TLS) Use the directory \fIdirectory\fR to scan for CRL files in
-+has format ($hash.r0) to check for the validity of the peer's certificate.
-+This option is not mandatory for setting up an EAP-TLS connection.
-+Also see the \fBcrl\fR option.
-+.TP
- .B debug
- Enables connection debugging facilities.
- If this option is given, pppd will log the contents of all
-@@ -561,6 +585,12 @@ transmitted packets be printed. On most systems, messages printed by
- the kernel are logged by syslog(1) to a file as directed in the
- /etc/syslog.conf configuration file.
- .TP
-+.B key \fIkeyfile
-+(EAP-TLS) Use the file \fIkeyfile\fR as the private key file (in PEM
-+format), needed for setting up an EAP-TLS connection. This option is
-+used on the client-side in conjunction with the \fBca\fR and
-+\fBcert\fR options.
-+.TP
- .B ktune
- Enables pppd to alter kernel settings as appropriate. Under Linux,
- pppd will enable IP forwarding (i.e. set /proc/sys/net/ipv4/ip_forward
-@@ -724,6 +754,9 @@ name to \fIname\fR.)
- Disable Address/Control compression in both directions (send and
- receive).
- .TP
-+.B need-peer-eap
-+(EAP-TLS) Require the peer to verify our authentication credentials.
-+.TP
- .B noauth
- Do not require the peer to authenticate itself. This option is
- privileged.
-diff --git a/pppd/pppd.h b/pppd/pppd.h
-index 567d702181ca..195cbe3c6ffb 100644
---- a/pppd/pppd.h
-+++ b/pppd/pppd.h
-@@ -338,6 +338,11 @@ extern bool dump_options; /* print out option values */
- extern bool dryrun; /* check everything, print options, exit */
- extern int child_wait; /* # seconds to wait for children at end */
-
-+#ifdef USE_EAPTLS
-+extern char *crl_dir;
-+extern char *crl_file;
-+#endif /* USE_EAPTLS */
-+
- #ifdef MAXOCTETS
- extern unsigned int maxoctets; /* Maximum octetes per session (in bytes) */
- extern int maxoctets_dir; /* Direction :
-@@ -758,6 +763,10 @@ extern int (*chap_check_hook) __P((void));
- extern int (*chap_passwd_hook) __P((char *user, char *passwd));
- extern void (*multilink_join_hook) __P((void));
-
-+#ifdef USE_EAPTLS
-+extern int (*eaptls_passwd_hook) __P((char *user, char *passwd));
-+#endif
-+
- /* Let a plugin snoop sent and received packets. Useful for L2TP */
- extern void (*snoop_recv_hook) __P((unsigned char *p, int len));
- extern void (*snoop_send_hook) __P((unsigned char *p, int len));
diff --git a/patches/ppp-2.4.7/0040-pppd-Use-openssl-for-the-DES-instead-of-the-libcrypt.patch b/patches/ppp-2.4.7/0040-pppd-Use-openssl-for-the-DES-instead-of-the-libcrypt.patch
deleted file mode 100644
index bf83278a9..000000000
--- a/patches/ppp-2.4.7/0040-pppd-Use-openssl-for-the-DES-instead-of-the-libcrypt.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= <jskarvad@redhat.com>
-Date: Fri, 6 Apr 2018 14:27:18 +0200
-Subject: [PATCH] pppd: Use openssl for the DES instead of the libcrypt / glibc
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-[https://github.com/paulusmack/ppp/commit/3c7b86229f7bd2600d74db14b1fe5b3896be3875]
-
-It seems the latest glibc (in Fedora glibc-2.27.9000-12.fc29) dropped
-libcrypt. The libxcrypt standalone package can be used instead, but
-it dropped the old setkey/encrypt API which ppp uses for DES. There
-is support for using openssl in pppcrypt.c, but it contains typos
-preventing it from compiling and seems to be written for an ancient
-openssl version.
-
-This updates the code to use current openssl.
-
-[paulus@ozlabs.org - wrote the commit description, fixed comment in
- Makefile.linux.]
-
-Signed-off-by: Jaroslav Å karvada <jskarvad@redhat.com>
-Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
-
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pppd/Makefile.linux | 7 ++++---
- pppd/pppcrypt.c | 18 +++++++++---------
- 2 files changed, 13 insertions(+), 12 deletions(-)
-
-diff --git a/pppd/Makefile.linux b/pppd/Makefile.linux
-index 58a634ce8c3b..cb9d4f9dcf22 100644
---- a/pppd/Makefile.linux
-+++ b/pppd/Makefile.linux
-@@ -35,10 +35,10 @@ endif
- COPTS = -O2 -pipe -Wall -g
- LIBS = -lcrypto
-
--# Uncomment the next 2 lines to include support for Microsoft's
-+# Uncomment the next line to include support for Microsoft's
- # MS-CHAP authentication protocol. Also, edit plugins/radius/Makefile.linux.
- CHAPMS=y
--USE_CRYPT=y
-+#USE_CRYPT=y
- # Don't use MSLANMAN unless you really know what you're doing.
- #MSLANMAN=y
- # Uncomment the next line to include support for MPPE. CHAPMS (above) must
-@@ -138,7 +138,8 @@ endif
-
- ifdef NEEDDES
- ifndef USE_CRYPT
--LIBS += -ldes $(LIBS)
-+CFLAGS += -I/usr/include/openssl
-+LIBS += -lcrypto
- else
- CFLAGS += -DUSE_CRYPT=1
- endif
-diff --git a/pppd/pppcrypt.c b/pppd/pppcrypt.c
-index 8b85b13276ab..6b35375edc5e 100644
---- a/pppd/pppcrypt.c
-+++ b/pppd/pppcrypt.c
-@@ -64,7 +64,7 @@ u_char *des_key; /* OUT 64 bit DES key with parity bits added */
- des_key[7] = Get7Bits(key, 49);
-
- #ifndef USE_CRYPT
-- des_set_odd_parity((des_cblock *)des_key);
-+ DES_set_odd_parity((DES_cblock *)des_key);
- #endif
- }
-
-@@ -158,25 +158,25 @@ u_char *clear; /* OUT 8 octets */
- }
-
- #else /* USE_CRYPT */
--static des_key_schedule key_schedule;
-+static DES_key_schedule key_schedule;
-
- bool
- DesSetkey(key)
- u_char *key;
- {
-- des_cblock des_key;
-+ DES_cblock des_key;
- MakeKey(key, des_key);
-- des_set_key(&des_key, key_schedule);
-+ DES_set_key(&des_key, &key_schedule);
- return (1);
- }
-
- bool
--DesEncrypt(clear, key, cipher)
-+DesEncrypt(clear, cipher)
- u_char *clear; /* IN 8 octets */
- u_char *cipher; /* OUT 8 octets */
- {
-- des_ecb_encrypt((des_cblock *)clear, (des_cblock *)cipher,
-- key_schedule, 1);
-+ DES_ecb_encrypt((DES_cblock *)clear, (DES_cblock *)cipher,
-+ &key_schedule, 1);
- return (1);
- }
-
-@@ -185,8 +185,8 @@ DesDecrypt(cipher, clear)
- u_char *cipher; /* IN 8 octets */
- u_char *clear; /* OUT 8 octets */
- {
-- des_ecb_encrypt((des_cblock *)cipher, (des_cblock *)clear,
-- key_schedule, 0);
-+ DES_ecb_encrypt((DES_cblock *)cipher, (DES_cblock *)clear,
-+ &key_schedule, 0);
- return (1);
- }
-
diff --git a/patches/ppp-2.4.7/series b/patches/ppp-2.4.7/series
deleted file mode 100644
index 6aeaf1984..000000000
--- a/patches/ppp-2.4.7/series
+++ /dev/null
@@ -1,46 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-abort-on-errors-in-subdir-builds.patch
-0002-scripts-Avoid-killing-wrong-pppd.patch
-0003-pppd-Fix-sign-extension-when-displaying-bytes-in-oct.patch
-0004-Suppress-false-error-message-on-PPPoE-disconnect.patch
-0005-Send-PADT-on-PPPoE-disconnect.patch
-0006-pppd-ipxcp-Prevent-buffer-overrun-on-remote-router-n.patch
-0007-pppd-Fix-ccp_options.mppe-type.patch
-0008-pppd-Fix-ccp_cilen-calculated-size-if-both-deflate_c.patch
-0009-Fix-a-typo-in-comment.-Diff-from-Yuuichi-Someya.patch
-0010-plog-count-only-relevant-lines-from-syslog.patch
-0011-Change-include-from-sys-errno.h-to-errno.h.patch
-0012-pppd-allow-use-of-arbitrary-interface-names.patch
-0013-pppd-Remove-unused-declaration-of-ttyname.patch
-0014-pppd-Provide-error-implementation-in-pppoe-discovery.patch
-0015-pppoe-include-netinet-in.h-before-linux-in.h.patch
-0016-adaptive_echos.patch
-0017-Makefiles-cleanup.patch
-0018-Bug-306261-pppd-does-not-properly-close-dev-ppp-on-p.patch
-0019-Bug-284382-ppp-linkpidfile-is-not-created-upon-detac.patch
-0020-support-building-pppdump-with-the-system-zlib.patch
-0021-disable-unneeded-code-in-the-pppoatm-plugin.patch
-0022-cosmetic-cleanup-of-the-pppoatm-plugin.patch
-0023-pppoe_noads.patch
-0024-make-_PATH_CONNERRS-world-readable.patch
-0025-Correct-unkown-unknown-typo.patch
-0026-pppoe-custom-host-uniq-tag.patch
-0027-Add-replacedefaultroute-option.patch
-0028-ppp-2.3.11-oedod.dif.patch
-0029-add-support-for-the-Framed-MTU-Radius-attribute.patch
-0030-018_ip-up_option.patch
-0031-ppp-2.4.2-stripMSdomain.patch
-0032-export-CALL_FILE-to-the-link-scripts.patch
-0033-ipv6-accept-remote.patch
-0034-fix-a-potential-buffer-overflow-in-clientid.c-rc_map.patch
-0035-resolv.conf_no_log.patch
-0036-Debian-specific-changes.patch
-0037-Fix-buffer-overflow-in-rc_mksid.patch
-0038-EAP-TLS-authentication-support-for-PPP.patch
-0039-Replace-vendored-hash-functions-with-libcrypto.patch
-0040-pppd-Use-openssl-for-the-DES-instead-of-the-libcrypt.patch
-#tag:ptx --start-number 100
-0100-pppd-make-makefile-sysroot-aware.patch
-0101-pppd-make-the-self-made-configure-cross-aware.patch
-# b0e349fd34b2aac1a9ba4ffb38f43be0 - git-ptx-patches magic
diff --git a/patches/ppp-2.4.9/0001-configure-Allow-commas-in-the-CFLAGS-220.patch b/patches/ppp-2.4.9/0001-configure-Allow-commas-in-the-CFLAGS-220.patch
new file mode 100644
index 000000000..c83b64b1c
--- /dev/null
+++ b/patches/ppp-2.4.9/0001-configure-Allow-commas-in-the-CFLAGS-220.patch
@@ -0,0 +1,28 @@
+From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= <jskarvad@redhat.com>
+Date: Fri, 8 Jan 2021 02:43:46 +0100
+Subject: [PATCH] configure: Allow commas in the CFLAGS (#220)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It allows e.g. the following:
+./configure --cflags='-Wp,-D_FORTIFY_SOURCE=2'
+
+Signed-off-by: Jaroslav Å karvada <jskarvad@redhat.com>
+---
+ configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure b/configure
+index f977663fd8db..b0c3d2b49122 100755
+--- a/configure
++++ b/configure
+@@ -123,7 +123,7 @@ mkmkf() {
+ echo " $2 <= $1"
+ sed -e "s,@DESTDIR@,$DESTDIR,g" -e "s,@SYSCONF@,$SYSCONF,g" \
+ -e "s,@CROSS_COMPILE@,$CROSS_COMPILE,g" -e "s,@CC@,$CC,g" \
+- -e "s,@CFLAGS@,$CFLAGS,g" $1 >$2
++ -e "s|@CFLAGS@|$CFLAGS|g" $1 >$2
+ fi
+ }
+
diff --git a/patches/ppp-2.4.9/0002-pppd-Fix-compilation-with-older-glibc-or-kernel-head.patch b/patches/ppp-2.4.9/0002-pppd-Fix-compilation-with-older-glibc-or-kernel-head.patch
new file mode 100644
index 000000000..33cf002db
--- /dev/null
+++ b/patches/ppp-2.4.9/0002-pppd-Fix-compilation-with-older-glibc-or-kernel-head.patch
@@ -0,0 +1,55 @@
+From: pali <7141871+pali@users.noreply.github.com>
+Date: Mon, 15 Feb 2021 07:54:01 +0100
+Subject: [PATCH] pppd: Fix compilation with older glibc or kernel headers
+ (#248)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+glibc versions prior to 2.24 do not define SOL_NETLINK and linux kernel
+versions prior to 4.3 do not define NETLINK_CAP_ACK. So add fallback
+definitions for these macros into pppd/sys-linux.c file.
+
+Also extend description why we call SOL_NETLINK/NETLINK_CAP_ACK option.
+
+Signed-off-by: Pali Rohár <pali@kernel.org>
+---
+ pppd/sys-linux.c | 18 +++++++++++++++++-
+ 1 file changed, 17 insertions(+), 1 deletion(-)
+
+diff --git a/pppd/sys-linux.c b/pppd/sys-linux.c
+index 85033d97124f..50c4f2dab403 100644
+--- a/pppd/sys-linux.c
++++ b/pppd/sys-linux.c
+@@ -125,6 +125,14 @@
+ #include <linux/netlink.h>
+ #include <linux/rtnetlink.h>
+ #include <linux/if_addr.h>
++/* glibc versions prior to 2.24 do not define SOL_NETLINK */
++#ifndef SOL_NETLINK
++#define SOL_NETLINK 270
++#endif
++/* linux kernel versions prior to 4.3 do not define/support NETLINK_CAP_ACK */
++#ifndef NETLINK_CAP_ACK
++#define NETLINK_CAP_ACK 10
++#endif
+ #endif
+
+ #include "pppd.h"
+@@ -2843,7 +2851,15 @@ static int append_peer_ipv6_address(unsigned int iface, struct in6_addr *local_a
+ if (fd < 0)
+ return 0;
+
+- /* do not ask for error message content */
++ /*
++ * Tell kernel to not send to us payload of acknowledgment error message.
++ * NETLINK_CAP_ACK option is supported since Linux kernel version 4.3 and
++ * older kernel versions always send full payload in acknowledgment netlink
++ * message. We ignore payload of this message as we need only error code,
++ * to check if our set remote peer address request succeeded or failed.
++ * So ignore return value from the following setsockopt() call as setting
++ * option NETLINK_CAP_ACK means for us just a kernel hint / optimization.
++ */
+ one = 1;
+ setsockopt(fd, SOL_NETLINK, NETLINK_CAP_ACK, &one, sizeof(one));
+
diff --git a/patches/ppp-2.4.7/0020-support-building-pppdump-with-the-system-zlib.patch b/patches/ppp-2.4.9/0100-support-building-pppdump-with-the-system-zlib.patch
index ef8265d43..383be9d60 100644
--- a/patches/ppp-2.4.7/0020-support-building-pppdump-with-the-system-zlib.patch
+++ b/patches/ppp-2.4.9/0100-support-building-pppdump-with-the-system-zlib.patch
@@ -1,19 +1,25 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:49 +0200
+From: Alexander Dahl <ada@thorsis.com>
+Date: Wed, 16 Jun 2021 18:22:48 +0200
Subject: [PATCH] support building pppdump with the system zlib
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
+Forwarded: https://github.com/paulusmack/ppp/pull/189
+but nacked: "it caused compile failures (on Fedora at least), which
+reminded me that the zlib.c here is not the same as upstream; it has
+extra functions that I added a long time ago."
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+
+Imported from ppp_2.4.9-1+1.debian.tar.xz
+
+Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
pppdump/Makefile.linux | 28 ++++++++++++++++++++++++++--
1 file changed, 26 insertions(+), 2 deletions(-)
diff --git a/pppdump/Makefile.linux b/pppdump/Makefile.linux
-index 65e5c14914fb..87777fab5e94 100644
+index a94187fa9e29..de7e574d10e1 100644
--- a/pppdump/Makefile.linux
+++ b/pppdump/Makefile.linux
-@@ -2,18 +2,42 @@ DESTDIR = $(INSTROOT)@DESTDIR@
+@@ -6,15 +6,39 @@ DESTDIR = $(INSTROOT)@DESTDIR@
BINDIR = $(DESTDIR)/sbin
MANDIR = $(DESTDIR)/share/man/man8
@@ -21,10 +27,7 @@ index 65e5c14914fb..87777fab5e94 100644
+DO_BSD_COMPRESS=y
+HAVE_ZLIB=n
+
- COPTS=-O2 -g
- CFLAGS= $(COPTS) -I../include/net
- LDFLAGS=$(LDOPTS)
-
+ CFLAGS = $(COPTS) -I../include/net
-OBJS = pppdump.o bsd-comp.o deflate.o zlib.o
+OBJS = pppdump.o
+LIBS =
@@ -40,14 +43,14 @@ index 65e5c14914fb..87777fab5e94 100644
+else
+CFLAGS += -DDO_DEFLATE=0
+endif
-+
+
+ifdef DO_BSD_COMPRESS
+CFLAGS += -DDO_BSD_COMPRESS=1
+OBJS += bsd-comp.o
+else
+CFLAGS += -DDO_BSD_COMPRESS=0
+endif
-
++
INSTALL= install
all: pppdump
diff --git a/patches/ppp-2.4.7/0021-disable-unneeded-code-in-the-pppoatm-plugin.patch b/patches/ppp-2.4.9/0101-disable-unneeded-code-in-the-pppoatm-plugin.patch
index 2fb9c5573..882c913aa 100644
--- a/patches/ppp-2.4.7/0021-disable-unneeded-code-in-the-pppoatm-plugin.patch
+++ b/patches/ppp-2.4.9/0101-disable-unneeded-code-in-the-pppoatm-plugin.patch
@@ -1,5 +1,5 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:49 +0200
+From: Alexander Dahl <ada@thorsis.com>
+Date: Wed, 16 Jun 2021 18:22:48 +0200
Subject: [PATCH] disable unneeded code in the pppoatm plugin
This patch halves the size of the PPPoA plugin by disabling features
@@ -13,9 +13,9 @@ plugin with the real libatm. I really doubt anybody cares, anyway.
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
+Imported from ppp_2.4.9-1+1.debian.tar.xz
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
pppd/plugins/pppoatm/Makefile.linux | 4 ++++
pppd/plugins/pppoatm/pppoatm.c | 4 ++++
@@ -23,10 +23,10 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
3 files changed, 12 insertions(+)
diff --git a/pppd/plugins/pppoatm/Makefile.linux b/pppd/plugins/pppoatm/Makefile.linux
-index 002603c6cbef..76d81aced70a 100644
+index d3a8086b69ea..036b193637df 100644
--- a/pppd/plugins/pppoatm/Makefile.linux
+++ b/pppd/plugins/pppoatm/Makefile.linux
-@@ -25,9 +25,13 @@ ifdef HAVE_LIBATM
+@@ -26,9 +26,13 @@ ifdef HAVE_LIBATM
LIBS := -latm
else
CFLAGS += -I.
@@ -41,10 +41,10 @@ index 002603c6cbef..76d81aced70a 100644
#*********
all: $(PLUGIN)
diff --git a/pppd/plugins/pppoatm/pppoatm.c b/pppd/plugins/pppoatm/pppoatm.c
-index d693350bc473..a7560e9fb0c6 100644
+index 5a3ecd61b6a2..90d0c9a85d9f 100644
--- a/pppd/plugins/pppoatm/pppoatm.c
+++ b/pppd/plugins/pppoatm/pppoatm.c
-@@ -142,8 +142,12 @@ static int connect_pppoatm(void)
+@@ -145,8 +145,12 @@ static int connect_pppoatm(void)
qos.txtp.traffic_class = qos.rxtp.traffic_class = ATM_UBR;
/* TODO: support simplified QoS setting */
if (qosstr != NULL)
diff --git a/patches/ppp-2.4.9/0102-pppoe_noads.patch b/patches/ppp-2.4.9/0102-pppoe_noads.patch
new file mode 100644
index 000000000..6629d4194
--- /dev/null
+++ b/patches/ppp-2.4.9/0102-pppoe_noads.patch
@@ -0,0 +1,24 @@
+From: Alexander Dahl <ada@thorsis.com>
+Date: Wed, 16 Jun 2021 18:22:48 +0200
+Subject: [PATCH] pppoe_noads
+
+Imported from ppp_2.4.9-1+1.debian.tar.xz
+
+Signed-off-by: Alexander Dahl <ada@thorsis.com>
+---
+ pppd/plugins/pppoe/plugin.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/pppd/plugins/pppoe/plugin.c b/pppd/plugins/pppoe/plugin.c
+index de9b8166ce7b..58fbdf95be3f 100644
+--- a/pppd/plugins/pppoe/plugin.c
++++ b/pppd/plugins/pppoe/plugin.c
+@@ -412,8 +412,6 @@ plugin_init(void)
+ }
+
+ add_options(Options);
+-
+- info("PPPoE plugin from pppd %s", VERSION);
+ }
+
+ void pppoe_check_options(void)
diff --git a/patches/ppp-2.4.7/0028-ppp-2.3.11-oedod.dif.patch b/patches/ppp-2.4.9/0103-Forwarded-https-github.com-paulusmack-ppp-issues-187.patch
index 8151c3be2..38eb5b791 100644
--- a/patches/ppp-2.4.7/0028-ppp-2.3.11-oedod.dif.patch
+++ b/patches/ppp-2.4.9/0103-Forwarded-https-github.com-paulusmack-ppp-issues-187.patch
@@ -1,10 +1,22 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:49 +0200
-Subject: [PATCH] ppp-2.3.11-oedod.dif
+From: Alexander Dahl <ada@thorsis.com>
+Date: Wed, 16 Jun 2021 18:22:48 +0200
+Subject: [PATCH] Forwarded: https://github.com/paulusmack/ppp/issues/187
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
+Upstream said:
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+"
+Hmmm, dial-on-demand was never tested with the sync option, and in fact I don't
+know what devices would use that option.
+
+To be accepted, the patch would need a sign-off and a description that
+explained the changes in the patch - in particular, what the large lump of code
+added to demand_rexmit() is doing.
+"
+
+
+Imported from ppp_2.4.9-1+1.debian.tar.xz
+
+Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
pppd/demand.c | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
pppd/ipcp.c | 2 +-
@@ -13,7 +25,7 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
4 files changed, 101 insertions(+), 4 deletions(-)
diff --git a/pppd/demand.c b/pppd/demand.c
-index 5e57658ea831..3eddf3016d98 100644
+index 289c9f8fdd57..4c61444d3968 100644
--- a/pppd/demand.c
+++ b/pppd/demand.c
@@ -36,6 +36,8 @@
@@ -34,7 +46,7 @@ index 5e57658ea831..3eddf3016d98 100644
#ifdef PPP_FILTER
#include <pcap-bpf.h>
#endif
-@@ -221,6 +225,14 @@ loop_chars(p, n)
+@@ -218,6 +222,14 @@ loop_chars(unsigned char *p, int n)
int c, rv;
rv = 0;
@@ -49,14 +61,12 @@ index 5e57658ea831..3eddf3016d98 100644
for (; n > 0; --n) {
c = *p++;
if (c == PPP_FLAG) {
-@@ -299,17 +311,102 @@ loop_frame(frame, len)
+@@ -294,16 +306,101 @@ loop_frame(unsigned char *frame, int len)
* loopback, now that the real serial link is up.
*/
void
--demand_rexmit(proto)
-+demand_rexmit(proto, newip)
- int proto;
-+ u_int32_t newip;
+-demand_rexmit(int proto)
++demand_rexmit(int proto, u_int32_t newip)
{
struct packet *pkt, *prev, *nextpkt;
+ unsigned short checksum;
@@ -69,9 +79,11 @@ index 5e57658ea831..3eddf3016d98 100644
prev = NULL;
pkt = pend_q;
pend_q = NULL;
++
+ tv.tv_sec = 1;
+ tv.tv_usec = 0;
-+ select(0,NULL,NULL,NULL,&tv); /* Sleep for 1 Seconds */
++ select(0,NULL,NULL,NULL,&tv); /* Sleep for 1 Second */
++
for (; pkt != NULL; pkt = nextpkt) {
nextpkt = pkt->next;
if (PPP_PROTOCOL(pkt->data) == proto) {
@@ -83,7 +95,6 @@ index 5e57658ea831..3eddf3016d98 100644
+ if (checksum == 0xFFFF) {
+ checksum = 0;
+ }
-+
+
+ if (pkt->data[13] == 17) {
+ pkt_checksum = *((unsigned short *) (pkt->data+10+iphdr));
@@ -154,10 +165,10 @@ index 5e57658ea831..3eddf3016d98 100644
free(pkt);
} else {
diff --git a/pppd/ipcp.c b/pppd/ipcp.c
-index c8fe279d4ede..dceca807542a 100644
+index 302ca40b4c83..3ac26a08032a 100644
--- a/pppd/ipcp.c
+++ b/pppd/ipcp.c
-@@ -1904,7 +1904,7 @@ ipcp_up(f)
+@@ -1850,7 +1850,7 @@ ipcp_up(fsm *f)
proxy_arp_set[f->unit] = 1;
}
@@ -167,12 +178,12 @@ index c8fe279d4ede..dceca807542a 100644
} else {
diff --git a/pppd/ipv6cp.c b/pppd/ipv6cp.c
-index 356ff84ead41..c1602f41c206 100644
+index 431cb62211bf..a32b0002e10d 100644
--- a/pppd/ipv6cp.c
+++ b/pppd/ipv6cp.c
-@@ -1232,7 +1232,7 @@ ipv6cp_up(f)
- }
-
+@@ -1253,7 +1253,7 @@ ipv6cp_up(fsm *f)
+ if (sif6defaultroute(f->unit, go->ourid, ho->hisid))
+ default_route_set[f->unit] = 1;
}
- demand_rexmit(PPP_IPV6);
+ demand_rexmit(PPP_IPV6,0);
@@ -180,15 +191,15 @@ index 356ff84ead41..c1602f41c206 100644
} else {
diff --git a/pppd/pppd.h b/pppd/pppd.h
-index 7495df657fe9..e65106d4c126 100644
+index 612902f55d0d..10a9977598aa 100644
--- a/pppd/pppd.h
+++ b/pppd/pppd.h
-@@ -594,7 +594,7 @@ void demand_conf __P((void)); /* config interface(s) for demand-dial */
- void demand_block __P((void)); /* set all NPs to queue up packets */
- void demand_unblock __P((void)); /* set all NPs to pass packets */
- void demand_discard __P((void)); /* set all NPs to discard packets */
--void demand_rexmit __P((int)); /* retransmit saved frames for an NP */
-+void demand_rexmit __P((int, u_int32_t)); /* retransmit saved frames for an NP*/
- int loop_chars __P((unsigned char *, int)); /* process chars from loopback */
- int loop_frame __P((unsigned char *, int)); /* should we bring link up? */
+@@ -598,7 +598,7 @@ void demand_conf(void); /* config interface(s) for demand-dial */
+ void demand_block(void); /* set all NPs to queue up packets */
+ void demand_unblock(void); /* set all NPs to pass packets */
+ void demand_discard(void); /* set all NPs to discard packets */
+-void demand_rexmit(int); /* retransmit saved frames for an NP */
++void demand_rexmit(int, u_int32_t); /* retransmit saved frames for an NP */
+ int loop_chars(unsigned char *, int); /* process chars from loopback */
+ int loop_frame(unsigned char *, int); /* should we bring link up? */
diff --git a/patches/ppp-2.4.7/0035-resolv.conf_no_log.patch b/patches/ppp-2.4.9/0104-resolv.conf_no_log.patch
index aea6b2082..66265aa6c 100644
--- a/patches/ppp-2.4.7/0035-resolv.conf_no_log.patch
+++ b/patches/ppp-2.4.9/0104-resolv.conf_no_log.patch
@@ -1,19 +1,19 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:50 +0200
+From: Alexander Dahl <ada@thorsis.com>
+Date: Wed, 16 Jun 2021 18:22:48 +0200
Subject: [PATCH] resolv.conf_no_log
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
+Imported from ppp_2.4.9-1+1.debian.tar.xz
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
pppd/ipcp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pppd/ipcp.c b/pppd/ipcp.c
-index d6e0e2a699fe..b81b2fd0a29f 100644
+index 3ac26a08032a..ce002262bb34 100644
--- a/pppd/ipcp.c
+++ b/pppd/ipcp.c
-@@ -2152,7 +2152,7 @@ create_resolv(peerdns1, peerdns2)
+@@ -2093,7 +2093,7 @@ create_resolv(u_int32_t peerdns1, u_int32_t peerdns2)
f = fopen(_PATH_RESOLV, "w");
if (f == NULL) {
diff --git a/patches/ppp-2.4.7/0036-Debian-specific-changes.patch b/patches/ppp-2.4.9/0105-Debian-specific-changes.patch
index 9576af118..86bba35f9 100644
--- a/patches/ppp-2.4.7/0036-Debian-specific-changes.patch
+++ b/patches/ppp-2.4.9/0105-Debian-specific-changes.patch
@@ -1,23 +1,27 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:50 +0200
+From: Alexander Dahl <ada@thorsis.com>
+Date: Wed, 16 Jun 2021 18:22:49 +0200
Subject: [PATCH] Debian-specific changes.
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
+Imported from ppp_2.4.9-1+1.debian.tar.xz
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
- pppd/Makefile.linux | 6 ++----
+ pppd/Makefile.linux | 6 +++---
pppd/pathnames.h | 2 +-
pppd/pppd.h | 2 +-
pppdump/Makefile.linux | 4 ++--
- 4 files changed, 6 insertions(+), 8 deletions(-)
+ 4 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/pppd/Makefile.linux b/pppd/Makefile.linux
-index 16b3ee879791..5549145e5791 100644
+index 22837c50415e..bbb476827cea 100644
--- a/pppd/Makefile.linux
+++ b/pppd/Makefile.linux
-@@ -61,14 +61,14 @@ HAVE_MULTILINK=y
- USE_TDB=y
+@@ -64,17 +64,17 @@ USE_TDB=y
+ # Uncomment the next line to enable Type=notify services in systemd
+ # If enabled, and the user sets the up_sdnotify option, then
+ # pppd will not detach and will notify systemd when up.
+-#SYSTEMD=y
++SYSTEMD=y
HAS_SHADOW=y
-#USE_PAM=y
@@ -33,23 +37,11 @@ index 16b3ee879791..5549145e5791 100644
# Enable EAP SRP-SHA1 authentication (requires libsrp)
#USE_SRP=y
-@@ -178,11 +178,9 @@ LIBS += -ldl
- endif
-
- ifdef FILTER
--ifneq ($(wildcard /usr/include/pcap-bpf.h),)
- LIBS += -lpcap
- CFLAGS += -DPPP_FILTER
- endif
--endif
-
- ifdef HAVE_INET6
- PPPDSRCS += ipv6cp.c eui64.c
diff --git a/pppd/pathnames.h b/pppd/pathnames.h
-index a33f0466c9d6..46972601fc92 100644
+index 524d608ce12c..2df61354f40e 100644
--- a/pppd/pathnames.h
+++ b/pppd/pathnames.h
-@@ -28,7 +28,7 @@
+@@ -33,7 +33,7 @@
#define _PATH_AUTHUP _ROOT_PATH "/etc/ppp/auth-up"
#define _PATH_AUTHDOWN _ROOT_PATH "/etc/ppp/auth-down"
#define _PATH_TTYOPT _ROOT_PATH "/etc/ppp/options."
@@ -59,10 +51,10 @@ index a33f0466c9d6..46972601fc92 100644
#define _PATH_RESOLV _ROOT_PATH "/etc/ppp/resolv.conf"
diff --git a/pppd/pppd.h b/pppd/pppd.h
-index b11670586244..567d702181ca 100644
+index 10a9977598aa..a14483b76acc 100644
--- a/pppd/pppd.h
+++ b/pppd/pppd.h
-@@ -870,7 +870,7 @@ extern void (*snoop_send_hook) __P((unsigned char *p, int len));
+@@ -879,7 +879,7 @@ extern void (*snoop_send_hook)(unsigned char *p, int len);
|| defined(DEBUGCHAP) || defined(DEBUG) || defined(DEBUGIPV6CP)
#define LOG_PPP LOG_LOCAL2
#else
@@ -72,10 +64,10 @@ index b11670586244..567d702181ca 100644
#endif /* LOG_PPP */
diff --git a/pppdump/Makefile.linux b/pppdump/Makefile.linux
-index 87777fab5e94..1eeeafe20111 100644
+index de7e574d10e1..04b1c10b34c7 100644
--- a/pppdump/Makefile.linux
+++ b/pppdump/Makefile.linux
-@@ -2,9 +2,9 @@ DESTDIR = $(INSTROOT)@DESTDIR@
+@@ -6,9 +6,9 @@ DESTDIR = $(INSTROOT)@DESTDIR@
BINDIR = $(DESTDIR)/sbin
MANDIR = $(DESTDIR)/share/man/man8
@@ -85,5 +77,5 @@ index 87777fab5e94..1eeeafe20111 100644
-HAVE_ZLIB=n
+HAVE_ZLIB=y
- COPTS=-O2 -g
- CFLAGS= $(COPTS) -I../include/net
+ CFLAGS = $(COPTS) -I../include/net
+ OBJS = pppdump.o
diff --git a/patches/ppp-2.4.7/0039-Replace-vendored-hash-functions-with-libcrypto.patch b/patches/ppp-2.4.9/0106-Replace-vendored-hash-functions-with-libcrypto.patch
index a08af544a..8597cf9a5 100644
--- a/patches/ppp-2.4.7/0039-Replace-vendored-hash-functions-with-libcrypto.patch
+++ b/patches/ppp-2.4.9/0106-Replace-vendored-hash-functions-with-libcrypto.patch
@@ -1,5 +1,5 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 28 Sep 2019 08:11:50 +0200
+From: Alexander Dahl <ada@thorsis.com>
+Date: Wed, 16 Jun 2021 18:22:49 +0200
Subject: [PATCH] Replace vendored hash functions with libcrypto
Bug-Debian: https://bugs.debian.org/826625
@@ -14,24 +14,24 @@ preferable both due to the patch being slightly less invasive and also because
of our use of the EAP-TLS patch which requires OpenSSL.
-Imported from ppp_2.4.7-2+4.1.debian.tar.xz
+Imported from ppp_2.4.9-1+1.debian.tar.xz
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+Signed-off-by: Alexander Dahl <ada@thorsis.com>
---
- pppd/Makefile.linux | 25 ++--
+ pppd/Makefile.linux | 28 +---
pppd/chap-md5.c | 2 +-
pppd/chap_ms.c | 40 ++----
- pppd/eap.c | 2 +-
- pppd/md4.c | 299 -----------------------------------------
- pppd/md4.h | 64 ---------
- pppd/md5.c | 311 -------------------------------------------
- pppd/md5.h | 68 ----------
+ pppd/eap.c | 3 +-
+ pppd/md4.c | 290 -----------------------------------------
+ pppd/md4.h | 55 --------
+ pppd/md5.c | 299 -------------------------------------------
+ pppd/md5.h | 65 ----------
pppd/plugins/radius/md5.c | 2 +-
pppd/plugins/radius/radius.c | 2 +-
pppd/plugins/winbind.c | 2 +-
- pppd/sha1.c | 170 -----------------------
+ pppd/sha1.c | 171 -------------------------
pppd/sha1.h | 31 -----
- 13 files changed, 28 insertions(+), 990 deletions(-)
+ 13 files changed, 27 insertions(+), 963 deletions(-)
delete mode 100644 pppd/md4.c
delete mode 100644 pppd/md4.h
delete mode 100644 pppd/md5.c
@@ -40,10 +40,10 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
delete mode 100644 pppd/sha1.h
diff --git a/pppd/Makefile.linux b/pppd/Makefile.linux
-index 4a11d5fea748..58a634ce8c3b 100644
+index bbb476827cea..bc01e3fd2a24 100644
--- a/pppd/Makefile.linux
+++ b/pppd/Makefile.linux
-@@ -11,16 +11,16 @@ INCDIR = $(DESTDIR)/include
+@@ -15,16 +15,16 @@ INCDIR = $(DESTDIR)/include
TARGETS = pppd
@@ -64,16 +64,16 @@ index 4a11d5fea748..58a634ce8c3b 100644
ecp.o auth.o options.o demand.o utils.o sys-linux.o ipxcp.o tty.o \
eap.o chap-md5.o session.o
-@@ -33,7 +33,7 @@ endif
- # CC = gcc
- #
- COPTS = -O2 -pipe -Wall -g
--LIBS =
-+LIBS = -lcrypto
+@@ -34,7 +34,7 @@ ifeq (.depend,$(wildcard .depend))
+ include .depend
+ endif
+
+-LIBS = -lrt
++LIBS = -lrt -lcrypto
- # Uncomment the next 2 lines to include support for Microsoft's
+ # Uncomment the next line to include support for Microsoft's
# MS-CHAP authentication protocol. Also, edit plugins/radius/Makefile.linux.
-@@ -91,8 +91,8 @@ LDFLAGS=$(LDOPTS)
+@@ -98,8 +98,8 @@ CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS) '-DDESTDIR="@DESTDIR@"'
ifdef CHAPMS
CFLAGS += -DCHAPMS=1
NEEDDES=y
@@ -84,12 +84,11 @@ index 4a11d5fea748..58a634ce8c3b 100644
ifdef MSLANMAN
CFLAGS += -DMSLANMAN=1
endif
-@@ -104,25 +104,18 @@ endif
- # EAP SRP-SHA1
+@@ -113,26 +113,17 @@ endif
ifdef USE_SRP
CFLAGS += -DUSE_SRP -DOPENSSL -I/usr/local/ssl/include
--LIBS += -lsrp -L/usr/local/ssl/lib -lcrypto
-+LIBS += -lsrp -L/usr/local/ssl/lib
+ LIBS += -lsrp -L/usr/local/ssl/lib
+-NEEDCRYPTOLIB = y
TARGETS += srp-entry
EXTRAINSTALL = $(INSTALL) -c -m 555 srp-entry $(BINDIR)/srp-entry
MANPAGES += srp-entry.8
@@ -106,27 +105,50 @@ index 4a11d5fea748..58a634ce8c3b 100644
# EAP-TLS
ifdef USE_EAPTLS
- CFLAGS += -DUSE_EAPTLS=1 -I/usr/kerberos/include
--LIBS += -lssl -lcrypto
-+LIBS += -lssl
+ CFLAGS += -DUSE_EAPTLS=1
+ LIBS += -lssl
+-NEEDCRYPTOLIB = y
PPPDSRC += eap-tls.c
HEADERS += eap-tls.h
PPPDOBJS += eap-tls.o
+@@ -156,7 +147,6 @@ endif
+ ifdef NEEDDES
+ ifndef USE_CRYPT
+ CFLAGS += -I$(shell $(CC) --print-sysroot)/usr/include/openssl
+-NEEDCRYPTOLIB = y
+ else
+ CFLAGS += -DUSE_CRYPT=1
+ endif
+@@ -164,10 +154,6 @@ PPPDOBJS += pppcrypt.o
+ HEADERS += pppcrypt.h
+ endif
+
+-ifdef NEEDCRYPTOLIB
+-LIBS += -lcrypto
+-endif
+-
+ # For "Pluggable Authentication Modules", see ftp.redhat.com:/pub/pam/.
+ ifdef USE_PAM
+ CFLAGS += -DUSE_PAM
diff --git a/pppd/chap-md5.c b/pppd/chap-md5.c
-index 269b52cb2041..7f7967a56842 100644
+index 77dd4ecc7059..d86564aa865a 100644
--- a/pppd/chap-md5.c
+++ b/pppd/chap-md5.c
-@@ -39,7 +39,7 @@
- #ifdef USE_EAPTLS
- #include "eap-tls.h"
- #else
--#include "md5.h"
+@@ -32,11 +32,11 @@
+
+ #include <stdlib.h>
+ #include <string.h>
+#include <openssl/md5.h>
- #endif /* USE_EAPTLS */
+ #include "pppd.h"
+ #include "chap-new.h"
+ #include "chap-md5.h"
+ #include "magic.h"
+-#include "md5.h"
#define MD5_HASH_SIZE 16
+ #define MD5_MIN_CHALLENGE 16
diff --git a/pppd/chap_ms.c b/pppd/chap_ms.c
-index c2bd00f9c6f7..19edb85d27a8 100644
+index e6b84f203fc3..64848f20f660 100644
--- a/pppd/chap_ms.c
+++ b/pppd/chap_ms.c
@@ -89,8 +89,8 @@
@@ -140,7 +162,7 @@ index c2bd00f9c6f7..19edb85d27a8 100644
#include "pppcrypt.h"
#include "magic.h"
-@@ -535,8 +535,8 @@ ChallengeHash(u_char PeerChallenge[16], u_char *rchallenge,
+@@ -536,8 +536,8 @@ ChallengeHash(u_char PeerChallenge[16], u_char *rchallenge,
char *username, u_char Challenge[8])
{
@@ -151,7 +173,7 @@ index c2bd00f9c6f7..19edb85d27a8 100644
char *user;
/* remove domain from "domain\username" */
-@@ -574,23 +574,11 @@ ascii2unicode(char ascii[], int ascii_len, u_char unicode[])
+@@ -575,23 +575,11 @@ ascii2unicode(char ascii[], int ascii_len, u_char unicode[])
static void
NTPasswordHash(u_char *secret, int secret_len, u_char hash[MD4_SIGNATURE_SIZE])
{
@@ -178,7 +200,7 @@ index c2bd00f9c6f7..19edb85d27a8 100644
}
-@@ -671,8 +659,8 @@ GenerateAuthenticatorResponse(u_char PasswordHashHash[MD4_SIGNATURE_SIZE],
+@@ -672,8 +660,8 @@ GenerateAuthenticatorResponse(u_char PasswordHashHash[MD4_SIGNATURE_SIZE],
0x6E };
int i;
@@ -189,7 +211,7 @@ index c2bd00f9c6f7..19edb85d27a8 100644
u_char Challenge[8];
SHA1_Init(&sha1Context);
-@@ -725,8 +713,8 @@ GenerateAuthenticatorResponsePlain
+@@ -726,8 +714,8 @@ GenerateAuthenticatorResponsePlain
void
mppe_set_keys(u_char *rchallenge, u_char PasswordHashHash[MD4_SIGNATURE_SIZE])
{
@@ -200,7 +222,7 @@ index c2bd00f9c6f7..19edb85d27a8 100644
SHA1_Init(&sha1Context);
SHA1_Update(&sha1Context, PasswordHashHash, MD4_SIGNATURE_SIZE);
-@@ -769,9 +757,9 @@ void
+@@ -770,9 +758,9 @@ void
mppe_set_keys2(u_char PasswordHashHash[MD4_SIGNATURE_SIZE],
u_char NTResponse[24], int IsServer)
{
@@ -214,24 +236,27 @@ index c2bd00f9c6f7..19edb85d27a8 100644
u_char SHApad1[40] =
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
diff --git a/pppd/eap.c b/pppd/eap.c
-index 032407c3dbb2..35d111015ff3 100644
+index 79146557bd32..d987888d9f20 100644
--- a/pppd/eap.c
+++ b/pppd/eap.c
-@@ -71,7 +71,7 @@
- #ifdef USE_EAPTLS
- #include "eap-tls.h"
- #else
--#include "md5.h"
+@@ -59,9 +59,10 @@
+ #include <assert.h>
+ #include <errno.h>
+
+#include <openssl/md5.h>
- #endif /* USE_EAPTLS */
++
+ #include "pppd.h"
+ #include "pathnames.h"
+-#include "md5.h"
+ #include "eap.h"
- #ifdef USE_SRP
+ #ifdef CHAPMS
diff --git a/pppd/md4.c b/pppd/md4.c
deleted file mode 100644
-index d943e8885f2d..000000000000
+index 42a9b2e75d6e..000000000000
--- a/pppd/md4.c
+++ /dev/null
-@@ -1,299 +0,0 @@
+@@ -1,290 +0,0 @@
-/*
-** ********************************************************************
-** md4.c -- Implementation of MD4 Message Digest Algorithm **
@@ -321,8 +346,7 @@ index d943e8885f2d..000000000000
-** This is a user-callable routine.
-*/
-void
--MD4Print(MDp)
--MD4_CTX *MDp;
+-MD4Print(MD4_CTX *MDp)
-{
- int i,j;
- for (i=0;i<4;i++)
@@ -335,8 +359,7 @@ index d943e8885f2d..000000000000
-** This is a user-callable routine.
-*/
-void
--MD4Init(MDp)
--MD4_CTX *MDp;
+-MD4Init(MD4_CTX *MDp)
-{
- int i;
- MDp->buffer[0] = I0;
@@ -354,9 +377,7 @@ index d943e8885f2d..000000000000
-** This routine is not user-callable.
-*/
-static void
--MDblock(MDp,Xb)
--MD4_CTX *MDp;
--unsigned char *Xb;
+-MDblock(MD4_CTX *MDp, unsigned char *Xb)
-{
- register unsigned int tmp, A, B, C, D;
- unsigned int X[16];
@@ -440,10 +461,7 @@ index d943e8885f2d..000000000000
-** if desired.
-*/
-void
--MD4Update(MDp,X,count)
--MD4_CTX *MDp;
--unsigned char *X;
--unsigned int count;
+-MD4Update(MD4_CTX *MDp, unsigned char *X, unsigned int count)
-{
- unsigned int i, tmp, bit, byte, mask;
- unsigned char XX[64];
@@ -511,9 +529,7 @@ index d943e8885f2d..000000000000
-** Finish up MD4 computation and return message digest.
-*/
-void
--MD4Final(buf, MD)
--unsigned char *buf;
--MD4_CTX *MD;
+-MD4Final(unsigned char *buf, MD4_CTX *MD)
-{
- int i, j;
- unsigned int w;
@@ -533,10 +549,10 @@ index d943e8885f2d..000000000000
-****************************(cut)***********************************/
diff --git a/pppd/md4.h b/pppd/md4.h
deleted file mode 100644
-index 80e8f9a2acca..000000000000
+index b6fc3f561faa..000000000000
--- a/pppd/md4.h
+++ /dev/null
-@@ -1,64 +0,0 @@
+@@ -1,55 +0,0 @@
-
-/*
-** ********************************************************************
@@ -547,15 +563,6 @@ index 80e8f9a2acca..000000000000
-** ********************************************************************
-*/
-
--#ifndef __P
--# if defined(__STDC__) || defined(__GNUC__)
--# define __P(x) x
--# else
--# define __P(x) ()
--# endif
--#endif
--
--
-/* MDstruct is the data structure for a message digest computation.
-*/
-typedef struct {
@@ -568,7 +575,7 @@ index 80e8f9a2acca..000000000000
-** Initialize the MD4_CTX prepatory to doing a message digest
-** computation.
-*/
--extern void MD4Init __P((MD4_CTX *MD));
+-extern void MD4Init(MD4_CTX *MD);
-
-/* MD4Update(MD,X,count)
-** Input: X -- a pointer to an array of unsigned characters.
@@ -582,7 +589,7 @@ index 80e8f9a2acca..000000000000
-** every MD computation should end with one call to MD4Update with a
-** count less than 512. Zero is OK for a count.
-*/
--extern void MD4Update __P((MD4_CTX *MD, unsigned char *X, unsigned int count));
+-extern void MD4Update(MD4_CTX *MD, unsigned char *X, unsigned int count);
-
-/* MD4Print(MD)
-** Prints message digest buffer MD as 32 hexadecimal digits.
@@ -590,23 +597,23 @@ index 80e8f9a2acca..000000000000
-** of buffer[3].
-** Each byte is printed with high-order hexadecimal digit first.
-*/
--extern void MD4Print __P((MD4_CTX *));
+-extern void MD4Print(MD4_CTX *);
-
-/* MD4Final(buf, MD)
-** Returns message digest from MD and terminates the message
-** digest computation.
-*/
--extern void MD4Final __P((unsigned char *, MD4_CTX *));
+-extern void MD4Final(unsigned char *, MD4_CTX *);
-
-/*
-** End of md4.h
-****************************(cut)***********************************/
diff --git a/pppd/md5.c b/pppd/md5.c
deleted file mode 100644
-index 6f8f7207c592..000000000000
+index f7988e64141a..000000000000
--- a/pppd/md5.c
+++ /dev/null
-@@ -1,311 +0,0 @@
+@@ -1,299 +0,0 @@
-
-
-/*
@@ -642,8 +649,6 @@ index 6f8f7207c592..000000000000
- ***********************************************************************
- */
-
--#ifndef USE_EAPTLS
--
-#include <string.h>
-#include "md5.h"
-
@@ -713,8 +718,7 @@ index 6f8f7207c592..000000000000
-/* The routine MD5_Init initializes the message-digest context
- mdContext. All fields are set to zero.
- */
--void MD5_Init (mdContext)
--MD5_CTX *mdContext;
+-void MD5_Init (MD5_CTX *mdContext)
-{
- mdContext->i[0] = mdContext->i[1] = (UINT4)0;
-
@@ -730,10 +734,7 @@ index 6f8f7207c592..000000000000
- account for the presence of each of the characters inBuf[0..inLen-1]
- in the message whose digest is being computed.
- */
--void MD5_Update (mdContext, inBuf, inLen)
--MD5_CTX *mdContext;
--unsigned char *inBuf;
--unsigned int inLen;
+-void MD5_Update (MD5_CTX *mdContext, unsigned char *inBuf, unsigned int inLen)
-{
- UINT4 in[16];
- int mdi;
@@ -768,9 +769,7 @@ index 6f8f7207c592..000000000000
-/* The routine MD5Final terminates the message-digest computation and
- ends with the desired message digest in mdContext->digest[0...15].
- */
--void MD5_Final (hash, mdContext)
--unsigned char hash[];
--MD5_CTX *mdContext;
+-void MD5_Final (unsigned char hash[], MD5_CTX *mdContext)
-{
- UINT4 in[16];
- int mdi;
@@ -811,9 +810,7 @@ index 6f8f7207c592..000000000000
-
-/* Basic MD5 step. Transforms buf based on in.
- */
--static void Transform (buf, in)
--UINT4 *buf;
--UINT4 *in;
+-static void Transform (UINT4 *buf, UINT4 *in)
-{
- UINT4 a = buf[0], b = buf[1], c = buf[2], d = buf[3];
-
@@ -916,14 +913,12 @@ index 6f8f7207c592..000000000000
- ** End of md5.c **
- ******************************** (cut) ********************************
- */
--#endif /* USE_EAPTLS */
--
diff --git a/pppd/md5.h b/pppd/md5.h
deleted file mode 100644
-index 14d712171c5e..000000000000
+index 71e8b00e2dde..000000000000
--- a/pppd/md5.h
+++ /dev/null
-@@ -1,68 +0,0 @@
+@@ -1,65 +0,0 @@
-/*
- ***********************************************************************
- ** md5.h -- header file for implementation of MD5 **
@@ -962,7 +957,6 @@ index 14d712171c5e..000000000000
- ** documentation and/or software. **
- ***********************************************************************
- */
--#ifndef USE_EAPTLS
-
-#ifndef __MD5_INCLUDE__
-
@@ -990,8 +984,6 @@ index 14d712171c5e..000000000000
-
-#define __MD5_INCLUDE__
-#endif /* __MD5_INCLUDE__ */
--
--#endif /* USE_EAPTLS */
diff --git a/pppd/plugins/radius/md5.c b/pppd/plugins/radius/md5.c
index 8af03aa3713e..90d9b025d211 100644
--- a/pppd/plugins/radius/md5.c
@@ -1006,7 +998,7 @@ index 8af03aa3713e..90d9b025d211 100644
void rc_md5_calc (unsigned char *output, unsigned char *input, unsigned int inlen)
{
diff --git a/pppd/plugins/radius/radius.c b/pppd/plugins/radius/radius.c
-index 06e00590b635..60282d9b2b9c 100644
+index c5798316719a..d5d63698a6dc 100644
--- a/pppd/plugins/radius/radius.c
+++ b/pppd/plugins/radius/radius.c
@@ -31,7 +31,7 @@ static char const RCSID[] =
@@ -1019,7 +1011,7 @@ index 06e00590b635..60282d9b2b9c 100644
#endif
#include "radiusclient.h"
diff --git a/pppd/plugins/winbind.c b/pppd/plugins/winbind.c
-index bb05acd87dce..5f87a317b677 100644
+index 0c395c34711a..6320645ac994 100644
--- a/pppd/plugins/winbind.c
+++ b/pppd/plugins/winbind.c
@@ -38,7 +38,7 @@
@@ -1033,10 +1025,10 @@ index bb05acd87dce..5f87a317b677 100644
#include "ipcp.h"
diff --git a/pppd/sha1.c b/pppd/sha1.c
deleted file mode 100644
-index f4f975cf516f..000000000000
+index 4e51cee506c2..000000000000
--- a/pppd/sha1.c
+++ /dev/null
-@@ -1,170 +0,0 @@
+@@ -1,171 +0,0 @@
-/*
- * ftp://ftp.funet.fi/pub/crypt/hash/sha/sha1.c
- *
@@ -1056,6 +1048,7 @@ index f4f975cf516f..000000000000
-/* #define SHA1HANDSOFF * Copies data before messing with it. */
-
-#include <string.h>
+-#include <time.h>
-#include <netinet/in.h> /* htonl() */
-#include <net/ppp_defs.h>
-#include "sha1.h"
diff --git a/patches/ppp-2.4.7/0100-pppd-make-makefile-sysroot-aware.patch b/patches/ppp-2.4.9/0200-pppd-make-makefile-sysroot-aware.patch
index c205b15ed..11020e0cc 100644
--- a/patches/ppp-2.4.7/0100-pppd-make-makefile-sysroot-aware.patch
+++ b/patches/ppp-2.4.9/0200-pppd-make-makefile-sysroot-aware.patch
@@ -13,14 +13,14 @@ Signed-off-by: Marc Kleine-Budde <m.kleine-budde@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
---
- pppd/Makefile.linux | 10 ++++------
- 1 file changed, 4 insertions(+), 6 deletions(-)
+ pppd/Makefile.linux | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/pppd/Makefile.linux b/pppd/Makefile.linux
-index cb9d4f9dcf22..ea0a7f02766b 100644
+index bc01e3fd2a24..9b0119463c1f 100644
--- a/pppd/Makefile.linux
+++ b/pppd/Makefile.linux
-@@ -103,8 +103,8 @@ endif
+@@ -111,8 +111,8 @@ endif
# EAP SRP-SHA1
ifdef USE_SRP
@@ -31,32 +31,12 @@ index cb9d4f9dcf22..ea0a7f02766b 100644
TARGETS += srp-entry
EXTRAINSTALL = $(INSTALL) -c -m 555 srp-entry $(BINDIR)/srp-entry
MANPAGES += srp-entry.8
-@@ -114,7 +114,7 @@ endif
-
- # EAP-TLS
- ifdef USE_EAPTLS
--CFLAGS += -DUSE_EAPTLS=1 -I/usr/kerberos/include
-+CFLAGS += -DUSE_EAPTLS=1
- LIBS += -lssl
- PPPDSRC += eap-tls.c
- HEADERS += eap-tls.h
-@@ -126,10 +126,8 @@ CFLAGS += -DHAS_SHADOW
- #LIBS += -lshadow $(LIBS)
- endif
-
--ifneq ($(wildcard /usr/include/crypt.h),)
- CFLAGS += -DHAVE_CRYPT_H=1
- LIBS += -lcrypt
--endif
-
- ifdef USE_LIBUTIL
- CFLAGS += -DHAVE_LOGWTMP=1
-@@ -138,7 +136,7 @@ endif
+@@ -146,7 +146,7 @@ endif
ifdef NEEDDES
ifndef USE_CRYPT
--CFLAGS += -I/usr/include/openssl
+-CFLAGS += -I$(shell $(CC) --print-sysroot)/usr/include/openssl
+CFLAGS += -I$(SYSROOT)/usr/include/openssl
- LIBS += -lcrypto
else
CFLAGS += -DUSE_CRYPT=1
+ endif
diff --git a/patches/ppp-2.4.7/0101-pppd-make-the-self-made-configure-cross-aware.patch b/patches/ppp-2.4.9/0201-pppd-make-the-self-made-configure-cross-aware.patch
index f57361a4c..590cf3ae4 100644
--- a/patches/ppp-2.4.7/0101-pppd-make-the-self-made-configure-cross-aware.patch
+++ b/patches/ppp-2.4.9/0201-pppd-make-the-self-made-configure-cross-aware.patch
@@ -11,11 +11,11 @@ Signed-off-by: Juergen Beisert <juergen@kreuzholzen.de>
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/configure b/configure
-index 6a55e0f08be4..3886564fa495 100755
+index b0c3d2b49122..4bc6a18fad32 100755
--- a/configure
+++ b/configure
-@@ -14,6 +14,16 @@ SYSCONF=/etc
- # fi
+@@ -15,6 +15,16 @@ release=`uname -r`
+ arch=`uname -m`
state="unknown"
+if [ -n $TARGET_OS ]; then
@@ -32,10 +32,10 @@ index 6a55e0f08be4..3886564fa495 100755
Linux)
makext="linux";
diff --git a/pppd/plugins/Makefile.linux b/pppd/plugins/Makefile.linux
-index bc29968d44c9..e010ad215981 100644
+index 6403e3d477e3..375be764e19a 100644
--- a/pppd/plugins/Makefile.linux
+++ b/pppd/plugins/Makefile.linux
-@@ -47,5 +47,5 @@ clean:
+@@ -49,5 +49,5 @@ clean:
for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d clean || exit $$?; done
depend:
diff --git a/patches/ppp-2.4.9/series b/patches/ppp-2.4.9/series
new file mode 100644
index 000000000..4028f0892
--- /dev/null
+++ b/patches/ppp-2.4.9/series
@@ -0,0 +1,17 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+#tag:upstream --start-number 1
+0001-configure-Allow-commas-in-the-CFLAGS-220.patch
+0002-pppd-Fix-compilation-with-older-glibc-or-kernel-head.patch
+#tag:debian --start-number 100
+0100-support-building-pppdump-with-the-system-zlib.patch
+0101-disable-unneeded-code-in-the-pppoatm-plugin.patch
+0102-pppoe_noads.patch
+0103-Forwarded-https-github.com-paulusmack-ppp-issues-187.patch
+0104-resolv.conf_no_log.patch
+0105-Debian-specific-changes.patch
+0106-Replace-vendored-hash-functions-with-libcrypto.patch
+#tag:ptx --start-number 200
+0200-pppd-make-makefile-sysroot-aware.patch
+0201-pppd-make-the-self-made-configure-cross-aware.patch
+# 9c9016a8956cf8c0dc84ee8dbe803cf3 - git-ptx-patches magic
diff --git a/patches/pps-tools-1.0.2/0001-Makefile-fix-installation-to-empty-DESTDIR.patch b/patches/pps-tools-1.0.2/0001-Makefile-fix-installation-to-empty-DESTDIR.patch
deleted file mode 100644
index 97498dc22..000000000
--- a/patches/pps-tools-1.0.2/0001-Makefile-fix-installation-to-empty-DESTDIR.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
-Date: Mon, 3 Dec 2018 13:55:02 +0100
-Subject: [PATCH] Makefile: fix installation to empty DESTDIR
-
-When DESTDIR is empty, or at least does not contain usr/bin or
-usr/include, the installation fails, because install does not create
-those intermediate directories:
-
-$ make DESTDIR=/tmp/koin install
-install -m 755 -t /tmp/koin/usr/bin ppsfind ppstest ppsctl ppswatch ppsldisc
-install: failed to access '/tmp/koin/usr/bin': No such file or directory
-
-Using the -D option of install fixes this:
-
-$ make DESTDIR=/tmp/koin install
-install -D -m 755 -t /tmp/koin/usr/bin ppsfind ppstest ppsctl ppswatch ppsldisc
-install -D -m 644 -t /tmp/koin/usr/include/sys timepps.h
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
-Origin: upstream; https://github.com/redlab-i/pps-tools/commit/b3eae485a8c759d1ce1727076b2c287deb5f24e1
-Signed-off-by: Roland Hieber <rhi@pengutronix.de>
----
- Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 939466885e9f..30672f79585c 100644
---- a/Makefile
-+++ b/Makefile
-@@ -19,8 +19,8 @@ include .depend
- endif
-
- install : all
-- install -m 755 -t $(DESTDIR)/usr/bin ppsfind $(TARGETS)
-- install -m 644 -t $(DESTDIR)/usr/include/sys timepps.h
-+ install -D -m 755 -t $(DESTDIR)/usr/bin ppsfind $(TARGETS)
-+ install -D -m 644 -t $(DESTDIR)/usr/include/sys timepps.h
-
- uninstall :
- for f in $(TARGETS); do rm $(DESTDIR)/usr/bin/$$f; done
diff --git a/patches/pps-tools-1.0.2/series b/patches/pps-tools-1.0.2/series
deleted file mode 100644
index 7b3c77623..000000000
--- a/patches/pps-tools-1.0.2/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Makefile-fix-installation-to-empty-DESTDIR.patch
-# eb24c32ce10c0f011f2d37488c8de58c - git-ptx-patches magic
diff --git a/patches/pps-tools-1.0.3/0001-Makefile-Remove-obstructive-use-of-SYSROOT-variable.patch b/patches/pps-tools-1.0.3/0001-Makefile-Remove-obstructive-use-of-SYSROOT-variable.patch
new file mode 100644
index 000000000..6bb31aff6
--- /dev/null
+++ b/patches/pps-tools-1.0.3/0001-Makefile-Remove-obstructive-use-of-SYSROOT-variable.patch
@@ -0,0 +1,29 @@
+From: Christian Melki <christian.melki@t2data.com>
+Date: Sat, 29 Jan 2022 19:22:44 +0100
+Subject: [PATCH] Makefile: Remove obstructive use of SYSROOT variable.
+
+Ptxdist declares a SYSROOT env variable which is picked up here.
+But it is used as a cc --sysroot variable.
+This offsets searches for std headers and causes breakage.
+Remove it. Not needed.
+
+Signed-off-by: Christian Melki <christian.melki@t2data.com>
+---
+ Makefile | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index a57a325bc133..30672f79585c 100644
+--- a/Makefile
++++ b/Makefile
+@@ -3,10 +3,6 @@ TARGETS = ppstest ppsctl ppswatch ppsldisc
+ CFLAGS += -Wall -O2 -D_GNU_SOURCE
+ CFLAGS += -ggdb
+ CFLAGS += -fPIC
+-ifdef SYSROOT
+-CFLAGS += --sysroot $(SYSROOT)
+-endif
+-
+ LDLIBS += -lm
+
+ # -- Actions section --
diff --git a/patches/pps-tools-1.0.3/series b/patches/pps-tools-1.0.3/series
new file mode 100644
index 000000000..8376d9c98
--- /dev/null
+++ b/patches/pps-tools-1.0.3/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-Makefile-Remove-obstructive-use-of-SYSROOT-variable.patch
+# 7d2c06910f16bd177a79768e6f4195f6 - git-ptx-patches magic
diff --git a/patches/procps-ng-4.0.4/0001-build-sys-Add-systemd-elogind-to-w.patch b/patches/procps-ng-4.0.4/0001-build-sys-Add-systemd-elogind-to-w.patch
new file mode 100644
index 000000000..6eb5de4e1
--- /dev/null
+++ b/patches/procps-ng-4.0.4/0001-build-sys-Add-systemd-elogind-to-w.patch
@@ -0,0 +1,42 @@
+From: Craig Small <csmall@dropbear.xyz>
+Date: Thu, 31 Aug 2023 22:24:23 +1000
+Subject: [PATCH] build-sys: Add systemd/elogind to w
+
+Depending on the compiler flags, w needs to be explictly linked
+to libsystemd or elogind even though libproc2 is linked to it.
+
+Signed-off-by: Craig Small <csmall@dropbear.xyz>
+---
+ Makefile.am | 7 +++++++
+ NEWS | 3 +++
+ 2 files changed, 10 insertions(+)
+
+diff --git a/Makefile.am b/Makefile.am
+index f70c8fb1eb49..ddfc0141d869 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -149,6 +149,13 @@ endif
+
+ dist_man_MANS += man/w.1
+ src_w_SOURCES = src/w.c local/fileutils.c
++src_w_LDADD = $(LDADD)
++if WITH_SYSTEMD
++src_w_LDADD += @SYSTEMD_LIBS@
++endif
++if WITH_ELOGIND
++src_w_LDADD += @ELOGIND_LIBS@
++endif
+ else
+ EXTRA_DIST += man/w.1
+ endif
+diff --git a/NEWS b/NEWS
+index 3f2158d40683..4ad9f74e8c2e 100644
+--- a/NEWS
++++ b/NEWS
+@@ -1,3 +1,6 @@
++procps-ng-NEXT
++---------------
++
+ procps-ng-4.0.4
+ ---------------
+ * library (API & ABI unchanged)
diff --git a/patches/libtremor-1.0.3/autogen.sh b/patches/procps-ng-4.0.4/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/libtremor-1.0.3/autogen.sh
+++ b/patches/procps-ng-4.0.4/autogen.sh
diff --git a/patches/procps-ng-4.0.4/series b/patches/procps-ng-4.0.4/series
new file mode 100644
index 000000000..fecb289bb
--- /dev/null
+++ b/patches/procps-ng-4.0.4/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-build-sys-Add-systemd-elogind-to-w.patch
+# c14bc921db0bebb737d88875f00cb44f - git-ptx-patches magic
diff --git a/patches/pyDataMatrixScanner/0001-load-lib-from-global-dir.patch b/patches/pyDataMatrixScanner/0001-load-lib-from-global-dir.patch
deleted file mode 100644
index a0b6f1172..000000000
--- a/patches/pyDataMatrixScanner/0001-load-lib-from-global-dir.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Thu, 26 May 2011 18:46:14 +0200
-Subject: [PATCH] load lib from global dir
-
-The relative path does only work when the library is built in the same
-directory as the application, which is not the case if we install
-everything.
-
-Forwarded: no
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- pyv4l2.py | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/pyv4l2.py b/pyv4l2.py
-index af0ccea..15b090a 100755
---- a/pyv4l2.py
-+++ b/pyv4l2.py
-@@ -10,7 +10,7 @@ import os
- import Image as PILImage
- from cStringIO import StringIO
-
--lib = cdll.LoadLibrary("./libpyv4l2.so")
-+lib = cdll.LoadLibrary("libpyv4l2.so")
- lib.Error.restype = c_char_p
- lib.MMap.restype = c_void_p
- lib.GetStandard.restype = c_longlong
---
-1.7.5.1
-
diff --git a/patches/pyDataMatrixScanner/series b/patches/pyDataMatrixScanner/series
deleted file mode 100644
index 39d8f8431..000000000
--- a/patches/pyDataMatrixScanner/series
+++ /dev/null
@@ -1,3 +0,0 @@
-# generated by git-ptx-patches
-0001-load-lib-from-global-dir.patch
-# c34c1f2acf1c5f61acbcdec0e33aadb8 - git-ptx-patches magic
diff --git a/patches/pyside-qt4.8+1.2.2/0001-only-add-qaccessibleevent_wrapper.cpp-if-accessible-.patch b/patches/pyside-qt4.8+1.2.2/0001-only-add-qaccessibleevent_wrapper.cpp-if-accessible-.patch
deleted file mode 100644
index d3575867c..000000000
--- a/patches/pyside-qt4.8+1.2.2/0001-only-add-qaccessibleevent_wrapper.cpp-if-accessible-.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Wed, 26 Jan 2011 01:20:31 +0100
-Subject: [PATCH] only add qaccessibleevent_wrapper.cpp if accessible is
- enabled
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- PySide/QtGui/CMakeLists.txt | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/PySide/QtGui/CMakeLists.txt b/PySide/QtGui/CMakeLists.txt
-index 6e147067f8aa..94d4787d57ff 100644
---- a/PySide/QtGui/CMakeLists.txt
-+++ b/PySide/QtGui/CMakeLists.txt
-@@ -86,6 +86,13 @@ check_qt_class(QtGui QMacStyle QtGui_OPTIONAL_SRC QtGui_DROPPED
-
- qt4_wrap_cpp(QPYTEXTOBJECT_MOC "${pyside_SOURCE_DIR}/qpytextobject.h")
-
-+if (QT_QCONFIG MATCHES "accessibility")
-+set(QtGui_accessible_SRC
-+${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qaccessibleevent_wrapper.cpp)
-+else()
-+set(QtGui_accessible_SRC )
-+endif ()
-+
- set(QtGui_SRC
- ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qabstractbutton_wrapper.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qabstractgraphicsshapeitem_wrapper.cpp
-@@ -98,7 +105,7 @@ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qabstractspinbox_wrapper.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qabstracttextdocumentlayout_paintcontext_wrapper.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qabstracttextdocumentlayout_selection_wrapper.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qabstracttextdocumentlayout_wrapper.cpp
--${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qaccessibleevent_wrapper.cpp
-+${QtGui_accessible_SRC}
- ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qactionevent_wrapper.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qactiongroup_wrapper.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qaction_wrapper.cpp
diff --git a/patches/pyside-qt4.8+1.2.2/0002-add-include-iostream.patch b/patches/pyside-qt4.8+1.2.2/0002-add-include-iostream.patch
deleted file mode 100644
index 48c6b6b1b..000000000
--- a/patches/pyside-qt4.8+1.2.2/0002-add-include-iostream.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Fri, 28 Jan 2011 16:03:10 +0100
-Subject: [PATCH] add "#include <iostream>"
-
-Without it std::copy() is undefined when Qt is build without stl.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- libpyside/dynamicqmetaobject.cpp | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/libpyside/dynamicqmetaobject.cpp b/libpyside/dynamicqmetaobject.cpp
-index e88e3dfdfcec..a2db462a0104 100644
---- a/libpyside/dynamicqmetaobject.cpp
-+++ b/libpyside/dynamicqmetaobject.cpp
-@@ -35,6 +35,7 @@
- #include <QLinkedList>
- #include <QObject>
- #include <cstring>
-+#include <iostream>
- #include <QDebug>
- #include <QMetaMethod>
- #include <shiboken.h>
diff --git a/patches/pyside-qt4.8+1.2.2/0003-add-qws-support.patch b/patches/pyside-qt4.8+1.2.2/0003-add-qws-support.patch
deleted file mode 100644
index ee13ed6e3..000000000
--- a/patches/pyside-qt4.8+1.2.2/0003-add-qws-support.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Mon, 20 Jun 2011 21:42:41 +0200
-Subject: [PATCH] add qws support
-
-based on a patch from OpenEmbedded:
-http://cgit.openembedded.net/cgit.cgi/openembedded/tree/recipes/pyside/python-pyside-embedded/support-qws.patch
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- CMakeLists.txt | 4 ++++
- PySide/QtCore/typesystem_core_qws.xml | 26 ++++++++++++++++++++++++++
- PySide/QtGui/typesystem_gui_common.xml | 2 ++
- PySide/QtGui/typesystem_gui_qws.xml | 26 ++++++++++++++++++++++++++
- 4 files changed, 58 insertions(+)
- create mode 100644 PySide/QtCore/typesystem_core_qws.xml
- create mode 100644 PySide/QtGui/typesystem_gui_qws.xml
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 9e0e3d07e2e3..0e7d85025376 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -88,6 +88,7 @@ set(ENABLE_X11 "0")
- set(ENABLE_MAC "0")
- set(ENABLE_WIN "0")
- set(ENABLE_SIMULATOR "0")
-+set(ENABLE_QWS "0")
- if(Q_WS_X11)
- set(ENABLE_X11 "1")
- if(Q_WS_MAEMO_5)
-@@ -104,6 +105,9 @@ elseif(Q_WS_WIN)
- elseif(Q_WS_SIMULATOR)
- set(ENABLE_SIMULATOR "1")
- set(AUTO_OS "simulator")
-+elseif(Q_WS_QWS)
-+ set(ENABLE_QWS "1")
-+ set(AUTO_OS "qws")
- else()
- message(FATAL_ERROR "OS not supported")
- endif()
-diff --git a/PySide/QtCore/typesystem_core_qws.xml b/PySide/QtCore/typesystem_core_qws.xml
-new file mode 100644
-index 000000000000..eba223c73097
---- /dev/null
-+++ b/PySide/QtCore/typesystem_core_qws.xml
-@@ -0,0 +1,26 @@
-+<?xml version="1.0"?>
-+<!--
-+ This file is part of PySide project.
-+ Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-+ Contact: PySide team <contact@pyside.org>
-+
-+ This 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.
-+
-+ This 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 this library; if not, write to the Free Software
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-+-->
-+<typesystem package="PySide.QtCore">
-+ <primitive-type name="Qt::HANDLE" target-lang-api-name="PyLong">
-+ <!-- FIXME APIExtractor or shiboken do not support multiple includes by primitive type -->
-+ <include file-name="QTextDocument" location="global"/>
-+ </primitive-type>
-+</typesystem>
-diff --git a/PySide/QtGui/typesystem_gui_common.xml b/PySide/QtGui/typesystem_gui_common.xml
-index 711d7cc3a352..e7d00eac6df8 100644
---- a/PySide/QtGui/typesystem_gui_common.xml
-+++ b/PySide/QtGui/typesystem_gui_common.xml
-@@ -5635,6 +5635,8 @@
- <modify-function signature="QApplication(int&amp;,char**,bool,int)" remove="all"/>
- <modify-function signature="QApplication(int&amp;,char**,QApplication::Type,int)" remove="all"/>
- <!-- ### -->
-+ <!-- QWS: FIXME: really fix this -->
-+ <modify-function signature="setArgs(int,char**)" remove="all"/>
-
- <!-- ownership control transfer to qApp -->
- <modify-function signature="setStyle(QStyle*)">
-diff --git a/PySide/QtGui/typesystem_gui_qws.xml b/PySide/QtGui/typesystem_gui_qws.xml
-new file mode 100644
-index 000000000000..d4a4793ad496
---- /dev/null
-+++ b/PySide/QtGui/typesystem_gui_qws.xml
-@@ -0,0 +1,26 @@
-+<?xml version="1.0"?>
-+<!--
-+ This file is part of PySide project.
-+ Copyright (C) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
-+ Contact: PySide team <contact@pyside.org>
-+
-+ This 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.
-+
-+ This 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 this library; if not, write to the Free Software
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-+-->
-+<typesystem package="PySide.QtGui">
-+ <value-type name="QCursor">
-+ <!-- Does not exist on QWS -->
-+ <modify-function signature="QCursor(Qt::HANDLE)" remove="all"/>
-+ </value-type>
-+</typesystem>
diff --git a/patches/pyside-qt4.8+1.2.2/series b/patches/pyside-qt4.8+1.2.2/series
deleted file mode 100644
index cce9c351b..000000000
--- a/patches/pyside-qt4.8+1.2.2/series
+++ /dev/null
@@ -1,6 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-only-add-qaccessibleevent_wrapper.cpp-if-accessible-.patch
-0002-add-include-iostream.patch
-0003-add-qws-support.patch
-# edb0310fe7e30ecdc0404f3b02598af7 - git-ptx-patches magic
diff --git a/patches/python_rplicmp-1.0/0001-build-files-correctly.patch b/patches/python_rplicmp-1.0/0001-build-files-correctly.patch
deleted file mode 100644
index 5f314751c..000000000
--- a/patches/python_rplicmp-1.0/0001-build-files-correctly.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Thu, 4 Jun 2015 22:04:44 +0200
-Subject: [PATCH] build files correctly
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- setup.py | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index c06dd85be917..b18627353ebd 100644
---- a/setup.py
-+++ b/setup.py
-@@ -4,8 +4,8 @@ from Cython.Distutils import build_ext
-
- ext_modules=[
- Extension("RplIcmp",
-- ["RplIcmp.pyx", "tinyICMPlib.pxd"],
-- extra_link_args=["caplib.o", "icmplib.o", "-lcap"],
-+ ["RplIcmp.pyx", "tinyICMPlib.pxd", "caplib.c", "icmplib.c"],
-+ extra_link_args=["-lcap"],
- )
- ]
-
diff --git a/patches/python_rplicmp-1.0/series b/patches/python_rplicmp-1.0/series
deleted file mode 100644
index 5f447e6ab..000000000
--- a/patches/python_rplicmp-1.0/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-build-files-correctly.patch
-# 6a48180e8222a7764da81c77cb9dd128 - git-ptx-patches magic
diff --git a/patches/pytz-2020.1/0001-use-system-timezone-data.patch b/patches/pytz-2023.3/0001-use-system-timezone-data.patch
index 113ff9ae9..113ff9ae9 100644
--- a/patches/pytz-2020.1/0001-use-system-timezone-data.patch
+++ b/patches/pytz-2023.3/0001-use-system-timezone-data.patch
diff --git a/patches/pytz-2020.1/series b/patches/pytz-2023.3/series
index 5e91bdc15..5e91bdc15 100644
--- a/patches/pytz-2020.1/series
+++ b/patches/pytz-2023.3/series
diff --git a/patches/pyyaml-3.12/0001-setup.py-remove-overcomplicated-setup-resulting-in-w.patch b/patches/pyyaml-3.12/0001-setup.py-remove-overcomplicated-setup-resulting-in-w.patch
deleted file mode 100644
index af96199ab..000000000
--- a/patches/pyyaml-3.12/0001-setup.py-remove-overcomplicated-setup-resulting-in-w.patch
+++ /dev/null
@@ -1,324 +0,0 @@
-From: Bastian Stender <bst@pengutronix.de>
-Date: Mon, 29 Jan 2018 16:18:38 +0100
-Subject: [PATCH] setup.py: remove overcomplicated setup resulting in wrong
- paths
-
-All these checks are unnecessary with ptxdist. These checks make
-wrong assumptions about install paths resulting in absolute paths
-concatenated to DistroKit/platform-qemu/packages/pyyaml-3.12/.
-
-Signed-off-by: Bastian Stender <bst@pengutronix.de>
----
- setup.py | 290 +++------------------------------------------------------------
- 1 file changed, 10 insertions(+), 280 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 9dc5e8d4855a..d65b5a7b46c2 100644
---- a/setup.py
-+++ b/setup.py
-@@ -35,281 +35,11 @@ CLASSIFIERS = [
- "Topic :: Text Processing :: Markup",
- ]
-
-+from distutils.core import setup
-+from distutils.extension import Extension
-+from Cython.Distutils import build_ext
-
--LIBYAML_CHECK = """
--#include <yaml.h>
--
--int main(void) {
-- yaml_parser_t parser;
-- yaml_emitter_t emitter;
--
-- yaml_parser_initialize(&parser);
-- yaml_parser_delete(&parser);
--
-- yaml_emitter_initialize(&emitter);
-- yaml_emitter_delete(&emitter);
--
-- return 0;
--}
--"""
--
--
--import sys, os.path, platform
--
--from distutils import log
--from distutils.core import setup, Command
--from distutils.core import Distribution as _Distribution
--from distutils.core import Extension as _Extension
--from distutils.dir_util import mkpath
--from distutils.command.build_ext import build_ext as _build_ext
--from distutils.command.bdist_rpm import bdist_rpm as _bdist_rpm
--from distutils.errors import DistutilsError, CompileError, LinkError, DistutilsPlatformError
--
--if 'setuptools.extension' in sys.modules:
-- _Extension = sys.modules['setuptools.extension']._Extension
-- sys.modules['distutils.core'].Extension = _Extension
-- sys.modules['distutils.extension'].Extension = _Extension
-- sys.modules['distutils.command.build_ext'].Extension = _Extension
--
--with_cython = False
--try:
-- from Cython.Distutils.extension import Extension as _Extension
-- from Cython.Distutils import build_ext as _build_ext
-- with_cython = True
--except ImportError:
-- pass
--
--try:
-- from wheel.bdist_wheel import bdist_wheel
--except ImportError:
-- bdist_wheel = None
--
--
--class Distribution(_Distribution):
--
-- def __init__(self, attrs=None):
-- _Distribution.__init__(self, attrs)
-- if not self.ext_modules:
-- return
-- for idx in range(len(self.ext_modules)-1, -1, -1):
-- ext = self.ext_modules[idx]
-- if not isinstance(ext, Extension):
-- continue
-- setattr(self, ext.attr_name, None)
-- self.global_options = [
-- (ext.option_name, None,
-- "include %s (default if %s is available)"
-- % (ext.feature_description, ext.feature_name)),
-- (ext.neg_option_name, None,
-- "exclude %s" % ext.feature_description),
-- ] + self.global_options
-- self.negative_opt = self.negative_opt.copy()
-- self.negative_opt[ext.neg_option_name] = ext.option_name
--
-- def has_ext_modules(self):
-- if not self.ext_modules:
-- return False
-- for ext in self.ext_modules:
-- with_ext = self.ext_status(ext)
-- if with_ext is None or with_ext:
-- return True
-- return False
--
-- def ext_status(self, ext):
-- implementation = platform.python_implementation()
-- if implementation != 'CPython':
-- return False
-- if isinstance(ext, Extension):
-- with_ext = getattr(self, ext.attr_name)
-- return with_ext
-- else:
-- return True
--
--
--class Extension(_Extension):
--
-- def __init__(self, name, sources, feature_name, feature_description,
-- feature_check, **kwds):
-- if not with_cython:
-- for filename in sources[:]:
-- base, ext = os.path.splitext(filename)
-- if ext == '.pyx':
-- sources.remove(filename)
-- sources.append('%s.c' % base)
-- _Extension.__init__(self, name, sources, **kwds)
-- self.feature_name = feature_name
-- self.feature_description = feature_description
-- self.feature_check = feature_check
-- self.attr_name = 'with_' + feature_name.replace('-', '_')
-- self.option_name = 'with-' + feature_name
-- self.neg_option_name = 'without-' + feature_name
--
--
--class build_ext(_build_ext):
--
-- def run(self):
-- optional = True
-- disabled = True
-- for ext in self.extensions:
-- with_ext = self.distribution.ext_status(ext)
-- if with_ext is None:
-- disabled = False
-- elif with_ext:
-- optional = False
-- disabled = False
-- break
-- if disabled:
-- return
-- try:
-- _build_ext.run(self)
-- except DistutilsPlatformError:
-- exc = sys.exc_info()[1]
-- if optional:
-- log.warn(str(exc))
-- log.warn("skipping build_ext")
-- else:
-- raise
--
-- def get_source_files(self):
-- self.check_extensions_list(self.extensions)
-- filenames = []
-- for ext in self.extensions:
-- if with_cython:
-- self.cython_sources(ext.sources, ext)
-- for filename in ext.sources:
-- filenames.append(filename)
-- base = os.path.splitext(filename)[0]
-- for ext in ['c', 'h', 'pyx', 'pxd']:
-- filename = '%s.%s' % (base, ext)
-- if filename not in filenames and os.path.isfile(filename):
-- filenames.append(filename)
-- return filenames
--
-- def get_outputs(self):
-- self.check_extensions_list(self.extensions)
-- outputs = []
-- for ext in self.extensions:
-- fullname = self.get_ext_fullname(ext.name)
-- filename = os.path.join(self.build_lib,
-- self.get_ext_filename(fullname))
-- if os.path.isfile(filename):
-- outputs.append(filename)
-- return outputs
--
-- def build_extensions(self):
-- self.check_extensions_list(self.extensions)
-- for ext in self.extensions:
-- with_ext = self.distribution.ext_status(ext)
-- if with_ext is None:
-- with_ext = self.check_extension_availability(ext)
-- if not with_ext:
-- continue
-- if with_cython:
-- ext.sources = self.cython_sources(ext.sources, ext)
-- self.build_extension(ext)
--
-- def check_extension_availability(self, ext):
-- cache = os.path.join(self.build_temp, 'check_%s.out' % ext.feature_name)
-- if not self.force and os.path.isfile(cache):
-- data = open(cache).read().strip()
-- if data == '1':
-- return True
-- elif data == '0':
-- return False
-- mkpath(self.build_temp)
-- src = os.path.join(self.build_temp, 'check_%s.c' % ext.feature_name)
-- open(src, 'w').write(ext.feature_check)
-- log.info("checking if %s is compilable" % ext.feature_name)
-- try:
-- [obj] = self.compiler.compile([src],
-- macros=ext.define_macros+[(undef,) for undef in ext.undef_macros],
-- include_dirs=ext.include_dirs,
-- extra_postargs=(ext.extra_compile_args or []),
-- depends=ext.depends)
-- except CompileError:
-- log.warn("")
-- log.warn("%s is not found or a compiler error: forcing --%s"
-- % (ext.feature_name, ext.neg_option_name))
-- log.warn("(if %s is installed correctly, you may need to"
-- % ext.feature_name)
-- log.warn(" specify the option --include-dirs or uncomment and")
-- log.warn(" modify the parameter include_dirs in setup.cfg)")
-- open(cache, 'w').write('0\n')
-- return False
-- prog = 'check_%s' % ext.feature_name
-- log.info("checking if %s is linkable" % ext.feature_name)
-- try:
-- self.compiler.link_executable([obj], prog,
-- output_dir=self.build_temp,
-- libraries=ext.libraries,
-- library_dirs=ext.library_dirs,
-- runtime_library_dirs=ext.runtime_library_dirs,
-- extra_postargs=(ext.extra_link_args or []))
-- except LinkError:
-- log.warn("")
-- log.warn("%s is not found or a linker error: forcing --%s"
-- % (ext.feature_name, ext.neg_option_name))
-- log.warn("(if %s is installed correctly, you may need to"
-- % ext.feature_name)
-- log.warn(" specify the option --library-dirs or uncomment and")
-- log.warn(" modify the parameter library_dirs in setup.cfg)")
-- open(cache, 'w').write('0\n')
-- return False
-- open(cache, 'w').write('1\n')
-- return True
--
--
--class bdist_rpm(_bdist_rpm):
--
-- def _make_spec_file(self):
-- argv0 = sys.argv[0]
-- features = []
-- for ext in self.distribution.ext_modules:
-- if not isinstance(ext, Extension):
-- continue
-- with_ext = getattr(self.distribution, ext.attr_name)
-- if with_ext is None:
-- continue
-- if with_ext:
-- features.append('--'+ext.option_name)
-- else:
-- features.append('--'+ext.neg_option_name)
-- sys.argv[0] = ' '.join([argv0]+features)
-- spec_file = _bdist_rpm._make_spec_file(self)
-- sys.argv[0] = argv0
-- return spec_file
--
--
--class test(Command):
--
-- user_options = []
--
-- def initialize_options(self):
-- pass
--
-- def finalize_options(self):
-- pass
--
-- def run(self):
-- build_cmd = self.get_finalized_command('build')
-- build_cmd.run()
-- sys.path.insert(0, build_cmd.build_lib)
-- if sys.version_info[0] < 3:
-- sys.path.insert(0, 'tests/lib')
-- else:
-- sys.path.insert(0, 'tests/lib3')
-- import test_all
-- if not test_all.main([]):
-- raise DistutilsError("Tests failed")
--
--
--cmdclass = {
-- 'build_ext': build_ext,
-- 'bdist_rpm': bdist_rpm,
-- 'test': test,
--}
--if bdist_wheel:
-- cmdclass['bdist_wheel'] = bdist_wheel
-+import sys, os.path
-
-
- if __name__ == '__main__':
-@@ -329,13 +59,13 @@ if __name__ == '__main__':
-
- package_dir={'': {2: 'lib', 3: 'lib3'}[sys.version_info[0]]},
- packages=['yaml'],
-- ext_modules=[
-- Extension('_yaml', ['ext/_yaml.pyx'],
-- 'libyaml', "LibYAML bindings", LIBYAML_CHECK,
-- libraries=['yaml']),
-+
-+ ext_modules = [
-+ Extension( "_yaml", ["ext/_yaml.pyx"], libraries = ["yaml"] )
- ],
-
-- distclass=Distribution,
-- cmdclass=cmdclass,
-+ cmdclass={
-+ 'build_ext': build_ext,
-+ },
- )
-
diff --git a/patches/pyyaml-3.12/series b/patches/pyyaml-3.12/series
deleted file mode 100644
index 03ecdd494..000000000
--- a/patches/pyyaml-3.12/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-setup.py-remove-overcomplicated-setup-resulting-in-w.patch
-# 0889f93d4365cb044851381b29479e78 - git-ptx-patches magic
diff --git a/patches/pyzmq-14.1.0/0001-HACK-setup.py-avoid-rpath-with-sysroot.patch b/patches/pyzmq-14.1.0/0001-HACK-setup.py-avoid-rpath-with-sysroot.patch
deleted file mode 100644
index 3df3af6d5..000000000
--- a/patches/pyzmq-14.1.0/0001-HACK-setup.py-avoid-rpath-with-sysroot.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 20 May 2017 19:05:18 +0200
-Subject: [PATCH] HACK: setup.py: avoid rpath with sysroot
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- setup.py | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 6cb58a3fedd9..ca348f89fd50 100755
---- a/setup.py
-+++ b/setup.py
-@@ -217,10 +217,6 @@ def settings_from_prefix(prefix=None, bundle_libzmq_dylib=False):
- # settings['extra_link_args'] = ['-Wl,-rpath','-Wl,$ORIGIN/..']
- else:
- settings['runtime_library_dirs'] += ['$ORIGIN/..']
-- elif sys.platform != 'darwin':
-- settings['runtime_library_dirs'] += [
-- os.path.abspath(x) for x in settings['library_dirs']
-- ]
-
- return settings
-
diff --git a/patches/pyzmq-14.1.0/series b/patches/pyzmq-14.1.0/series
deleted file mode 100644
index 6404f91be..000000000
--- a/patches/pyzmq-14.1.0/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-HACK-setup.py-avoid-rpath-with-sysroot.patch
-# 70c3d355f2a155d9a0207f0f2f054e39 - git-ptx-patches magic
diff --git a/patches/qemu-5.2.0/series b/patches/qemu-5.2.0/series
deleted file mode 100644
index 1391c59a3..000000000
--- a/patches/qemu-5.2.0/series
+++ /dev/null
@@ -1,5 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-9pfs-allow-real-symlinks-for-security_model-mapped-f.patch
-0002-let-ninja-use-the-jobserver.patch
-# 6589ce05416d41350e29bf44a65fb980 - git-ptx-patches magic
diff --git a/patches/qemu-8.2.2/0001-linux-user-x86_64-Handle-the-vsyscall-page-in-open_s.patch b/patches/qemu-8.2.2/0001-linux-user-x86_64-Handle-the-vsyscall-page-in-open_s.patch
new file mode 100644
index 000000000..a91a32996
--- /dev/null
+++ b/patches/qemu-8.2.2/0001-linux-user-x86_64-Handle-the-vsyscall-page-in-open_s.patch
@@ -0,0 +1,57 @@
+From 4ef1f559f270c66b3ffc23f6c845ff3d008c6356 Mon Sep 17 00:00:00 2001
+From: Richard Henderson <richard.henderson@linaro.org>
+Date: Sat, 24 Feb 2024 02:29:41 +0000
+Subject: [PATCH] linux-user/x86_64: Handle the vsyscall page in
+ open_self_maps_{2,4}
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This is the only case in which we expect to have no host memory backing
+for a guest memory page, because in general linux user processes cannot
+map any pages in the top half of the 64-bit address space.
+
+Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2170
+Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
+Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
+---
+ linux-user/syscall.c | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/linux-user/syscall.c b/linux-user/syscall.c
+index e384e1424890..bc8c06522f88 100644
+--- a/linux-user/syscall.c
++++ b/linux-user/syscall.c
+@@ -7994,6 +7994,10 @@ static void open_self_maps_4(const struct open_self_maps_data *d,
+ path = "[heap]";
+ } else if (start == info->vdso) {
+ path = "[vdso]";
++#ifdef TARGET_X86_64
++ } else if (start == TARGET_VSYSCALL_PAGE) {
++ path = "[vsyscall]";
++#endif
+ }
+
+ /* Except null device (MAP_ANON), adjust offset for this fragment. */
+@@ -8082,6 +8086,18 @@ static int open_self_maps_2(void *opaque, target_ulong guest_start,
+ uintptr_t host_start = (uintptr_t)g2h_untagged(guest_start);
+ uintptr_t host_last = (uintptr_t)g2h_untagged(guest_end - 1);
+
++#ifdef TARGET_X86_64
++ /*
++ * Because of the extremely high position of the page within the guest
++ * virtual address space, this is not backed by host memory at all.
++ * Therefore the loop below would fail. This is the only instance
++ * of not having host backing memory.
++ */
++ if (guest_start == TARGET_VSYSCALL_PAGE) {
++ return open_self_maps_3(opaque, guest_start, guest_end, flags);
++ }
++#endif
++
+ while (1) {
+ IntervalTreeNode *n =
+ interval_tree_iter_first(d->host_maps, host_start, host_start);
+--
+2.39.2
+
diff --git a/patches/qemu-5.2.0/0001-9pfs-allow-real-symlinks-for-security_model-mapped-f.patch b/patches/qemu-8.2.2/0100-9pfs-allow-real-symlinks-for-security_model-mapped-f.patch
index b4107d92a..46b75f8a9 100644
--- a/patches/qemu-5.2.0/0001-9pfs-allow-real-symlinks-for-security_model-mapped-f.patch
+++ b/patches/qemu-8.2.2/0100-9pfs-allow-real-symlinks-for-security_model-mapped-f.patch
@@ -7,14 +7,14 @@ same filesystem with security_model=mapped-file and security_model=none.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
---
- hw/9pfs/9p-local.c | 44 +++++++++++++++++++++++++++++---------------
- 1 file changed, 29 insertions(+), 15 deletions(-)
+ hw/9pfs/9p-local.c | 40 +++++++++++++++++++++++++++-------------
+ 1 file changed, 27 insertions(+), 13 deletions(-)
diff --git a/hw/9pfs/9p-local.c b/hw/9pfs/9p-local.c
-index af52c1daac85..94595b2009f8 100644
+index 1b1f3b9ec81e..d900dccaacb1 100644
--- a/hw/9pfs/9p-local.c
+++ b/hw/9pfs/9p-local.c
-@@ -455,8 +455,7 @@ static ssize_t local_readlink(FsContext *fs_ctx, V9fsPath *fs_path,
+@@ -462,8 +462,7 @@ static ssize_t local_readlink(FsContext *fs_ctx, V9fsPath *fs_path,
{
ssize_t tsize = -1;
@@ -24,15 +24,15 @@ index af52c1daac85..94595b2009f8 100644
int fd;
fd = local_open_nofollow(fs_ctx, fs_path->data, O_RDONLY, 0);
-@@ -468,6 +467,7 @@ static ssize_t local_readlink(FsContext *fs_ctx, V9fsPath *fs_path,
- } while (tsize == -1 && errno == EINTR);
+@@ -473,6 +472,7 @@ static ssize_t local_readlink(FsContext *fs_ctx, V9fsPath *fs_path,
+ tsize = RETRY_ON_EINTR(read(fd, (void *)buf, bufsz));
close_preserve_errno(fd);
} else if ((fs_ctx->export_flags & V9FS_SM_PASSTHROUGH) ||
+ (fs_ctx->export_flags & V9FS_SM_MAPPED_FILE) ||
(fs_ctx->export_flags & V9FS_SM_NONE)) {
char *dirpath = g_path_get_dirname(fs_path->data);
char *name = g_path_get_basename(fs_path->data);
-@@ -479,6 +479,17 @@ static ssize_t local_readlink(FsContext *fs_ctx, V9fsPath *fs_path,
+@@ -484,6 +484,17 @@ static ssize_t local_readlink(FsContext *fs_ctx, V9fsPath *fs_path,
}
tsize = readlinkat(dirfd, name, buf, bufsz);
@@ -50,7 +50,7 @@ index af52c1daac85..94595b2009f8 100644
close_preserve_errno(dirfd);
out:
g_free(name);
-@@ -881,20 +892,23 @@ static int local_symlink(FsContext *fs_ctx, const char *oldpath,
+@@ -899,18 +910,21 @@ static int local_symlink(FsContext *fs_ctx, const char *oldpath,
int fd;
ssize_t oldpath_size, write_size;
@@ -61,9 +61,7 @@ index af52c1daac85..94595b2009f8 100644
- }
- /* Write the oldpath (target) to the file. */
- oldpath_size = strlen(oldpath);
-- do {
-- write_size = write(fd, (void *)oldpath, oldpath_size);
-- } while (write_size == -1 && errno == EINTR);
+- write_size = RETRY_ON_EINTR(write(fd, (void *)oldpath, oldpath_size));
- close_preserve_errno(fd);
+ if (fs_ctx->export_flags & V9FS_SM_MAPPED ||
+ (symlinkat(oldpath, dirfd, name) != 0)) {
@@ -74,9 +72,7 @@ index af52c1daac85..94595b2009f8 100644
+ }
+ /* Write the oldpath (target) to the file. */
+ oldpath_size = strlen(oldpath);
-+ do {
-+ write_size = write(fd, (void *)oldpath, oldpath_size);
-+ } while (write_size == -1 && errno == EINTR);
++ write_size = RETRY_ON_EINTR(write(fd, (void *)oldpath, oldpath_size));
+ close_preserve_errno(fd);
- if (write_size != oldpath_size) {
@@ -85,5 +81,5 @@ index af52c1daac85..94595b2009f8 100644
+ goto err_end;
+ }
}
- /* Set cleint credentials in symlink's xattr */
+ /* Set client credentials in symlink's xattr */
credp->fc_mode = credp->fc_mode | S_IFLNK;
diff --git a/patches/qemu-5.2.0/0002-let-ninja-use-the-jobserver.patch b/patches/qemu-8.2.2/0101-let-ninja-use-the-jobserver.patch
index f6c77ce16..a1524c1d9 100644
--- a/patches/qemu-5.2.0/0002-let-ninja-use-the-jobserver.patch
+++ b/patches/qemu-8.2.2/0101-let-ninja-use-the-jobserver.patch
@@ -11,15 +11,15 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
-index 76dbb917f5cd..031d1781ab31 100644
+index 5d48dfac18a3..61a291a95903 100644
--- a/Makefile
+++ b/Makefile
-@@ -151,7 +151,7 @@ MAKE.k = $(findstring k,$(firstword $(MAKEFLAGS)))
- MAKE.q = $(findstring q,$(firstword $(MAKEFLAGS)))
+@@ -142,7 +142,7 @@ MAKE.k = $(findstring k,$(firstword $(filter-out --%,$(MAKEFLAGS))))
+ MAKE.q = $(findstring q,$(firstword $(filter-out --%,$(MAKEFLAGS))))
MAKE.nq = $(if $(word 2, $(MAKE.n) $(MAKE.q)),nq)
NINJAFLAGS = $(if $V,-v) $(if $(MAKE.n), -n) $(if $(MAKE.k), -k0) \
- $(filter-out -j, $(lastword -j1 $(filter -l% -j%, $(MAKEFLAGS)))) \
+ $(filter-out -j, $(lastword $(filter -l% -j%, $(MAKEFLAGS)))) \
-
+ -d keepdepfile
ninja-cmd-goals = $(or $(MAKECMDGOALS), all)
- ninja-cmd-goals += $(foreach t, $(.tests), $(.test.deps.$t))
+ ninja-cmd-goals += $(foreach g, $(MAKECMDGOALS), $(.ninja-goals.$g))
diff --git a/patches/qemu-8.2.2/series b/patches/qemu-8.2.2/series
new file mode 100644
index 000000000..8912ba0c6
--- /dev/null
+++ b/patches/qemu-8.2.2/series
@@ -0,0 +1,8 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+#tag:upstream --start-number 1
+0001-linux-user-x86_64-Handle-the-vsyscall-page-in-open_s.patch
+#tag:ptxdist --start-number 100
+0100-9pfs-allow-real-symlinks-for-security_model-mapped-f.patch
+0101-let-ninja-use-the-jobserver.patch
+# e07b440a88f02f8ec66d73afd7a82c61 - git-ptx-patches magic
diff --git a/patches/qt-everywhere-opensource-src-4.8.7/0001-mkspec-for-ptxdist.patch b/patches/qt-everywhere-opensource-src-4.8.7/0001-mkspec-for-ptxdist.patch
deleted file mode 100644
index de80ee2f0..000000000
--- a/patches/qt-everywhere-opensource-src-4.8.7/0001-mkspec-for-ptxdist.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Fri, 8 Oct 2010 20:13:39 +0200
-Subject: [PATCH] mkspec for ptxdist
-
-Add a mkspec for ptxdist:
-- qplatformdefs.h
- Include the generic qplatformdefs.h
-- qmake.conf.in
- Used to generate qmake.conf with the correct toolchain.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- mkspecs/linux-ptx-g++/qmake.conf.in | 41 +++++++++++++++++++++++++++++++
- mkspecs/linux-ptx-g++/qplatformdefs.h | 2 ++
- mkspecs/qws/linux-ptx-g++/qmake.conf.in | 32 ++++++++++++++++++++++++
- mkspecs/qws/linux-ptx-g++/qplatformdefs.h | 2 ++
- 4 files changed, 77 insertions(+)
- create mode 100644 mkspecs/linux-ptx-g++/qmake.conf.in
- create mode 100644 mkspecs/linux-ptx-g++/qplatformdefs.h
- create mode 100644 mkspecs/qws/linux-ptx-g++/qmake.conf.in
- create mode 100644 mkspecs/qws/linux-ptx-g++/qplatformdefs.h
-
-diff --git a/mkspecs/linux-ptx-g++/qmake.conf.in b/mkspecs/linux-ptx-g++/qmake.conf.in
-new file mode 100644
-index 000000000000..c3e015018a7d
---- /dev/null
-+++ b/mkspecs/linux-ptx-g++/qmake.conf.in
-@@ -0,0 +1,41 @@
-+#
-+# qmake configuration for linux-ptx-g++
-+#
-+
-+
-+include(../common/gcc-base-unix.conf)
-+include(../common/g++-unix.conf)
-+include(../common/linux.conf)
-+
-+MAKEFILE_GENERATOR = UNIX
-+TEMPLATE = app
-+CONFIG += qt warn_on release incremental link_prl
-+QT += core gui network
-+QMAKE_INCREMENTAL_STYLE = sublib
-+
-+# modifications to g++.conf
-+QMAKE_CC = @COMPILER_PREFIX@gcc
-+QMAKE_CFLAGS = -pipe @CPPFLAGS@ @CFLAGS@
-+QMAKE_CXX = @COMPILER_PREFIX@g++
-+QMAKE_CXXFLAGS = -pipe @CPPFLAGS@ @CXXFLAGS@
-+QMAKE_INCDIR = @INCDIR@
-+QMAKE_LIBDIR = @LIBDIR@
-+
-+QMAKE_LINK = @COMPILER_PREFIX@g++
-+QMAKE_LINK_SHLIB = @COMPILER_PREFIX@g++
-+QMAKE_LFLAGS = @LDFLAGS@
-+
-+QMAKE_INCDIR_X11 =
-+QMAKE_LIBDIR_X11 =
-+QMAKE_INCDIR_OPENGL =
-+QMAKE_LIBDIR_OPENGL =
-+QMAKE_LIBS_OPENGL_ES1CL = @QMAKE_LIBS_OPENGL_ES1CL@
-+QMAKE_LIBS_OPENGL_ES1 = @QMAKE_LIBS_OPENGL_ES1@
-+QMAKE_LIBS_OPENGL_ES2 = @QMAKE_LIBS_OPENGL_ES2@
-+
-+# modifications to linux.conf
-+QMAKE_AR = @COMPILER_PREFIX@ar cqs
-+QMAKE_OBJCOPY = @COMPILER_PREFIX@objcopy
-+QMAKE_STRIP = @COMPILER_PREFIX@strip
-+
-+load(qt_config)
-diff --git a/mkspecs/linux-ptx-g++/qplatformdefs.h b/mkspecs/linux-ptx-g++/qplatformdefs.h
-new file mode 100644
-index 000000000000..05c77d16fda6
---- /dev/null
-+++ b/mkspecs/linux-ptx-g++/qplatformdefs.h
-@@ -0,0 +1,2 @@
-+
-+#include "../linux-g++/qplatformdefs.h"
-diff --git a/mkspecs/qws/linux-ptx-g++/qmake.conf.in b/mkspecs/qws/linux-ptx-g++/qmake.conf.in
-new file mode 100644
-index 000000000000..b52d5e730904
---- /dev/null
-+++ b/mkspecs/qws/linux-ptx-g++/qmake.conf.in
-@@ -0,0 +1,32 @@
-+#
-+# qmake configuration for linux-ptx-g++
-+#
-+
-+
-+include(../../common/gcc-base-unix.conf)
-+include(../../common/g++-unix.conf)
-+include(../../common/linux.conf)
-+include(../../common/qws.conf)
-+
-+# modifications to g++.conf
-+QMAKE_CC = @COMPILER_PREFIX@gcc
-+QMAKE_CFLAGS = -pipe @CPPFLAGS@ @CFLAGS@
-+QMAKE_CXX = @COMPILER_PREFIX@g++
-+QMAKE_CXXFLAGS = -pipe @CPPFLAGS@ @CXXFLAGS@
-+QMAKE_INCDIR = @INCDIR@
-+QMAKE_LIBDIR = @LIBDIR@
-+
-+QMAKE_LINK = @COMPILER_PREFIX@g++
-+QMAKE_LINK_SHLIB = @COMPILER_PREFIX@g++
-+QMAKE_LFLAGS = @LDFLAGS@
-+
-+QMAKE_LIBS_OPENGL_ES1CL = @QMAKE_LIBS_OPENGL_ES1CL@
-+QMAKE_LIBS_OPENGL_ES1 = @QMAKE_LIBS_OPENGL_ES1@
-+QMAKE_LIBS_OPENGL_ES2 = @QMAKE_LIBS_OPENGL_ES2@
-+
-+# modifications to linux.conf
-+QMAKE_AR = @COMPILER_PREFIX@ar cqs
-+QMAKE_OBJCOPY = @COMPILER_PREFIX@objcopy
-+QMAKE_STRIP = @COMPILER_PREFIX@strip
-+
-+load(qt_config)
-diff --git a/mkspecs/qws/linux-ptx-g++/qplatformdefs.h b/mkspecs/qws/linux-ptx-g++/qplatformdefs.h
-new file mode 100644
-index 000000000000..e10ebcfcc3d9
---- /dev/null
-+++ b/mkspecs/qws/linux-ptx-g++/qplatformdefs.h
-@@ -0,0 +1,2 @@
-+
-+#include "../../linux-g++/qplatformdefs.h"
diff --git a/patches/qt-everywhere-opensource-src-4.8.7/0002-disable-ordered-compiling.patch b/patches/qt-everywhere-opensource-src-4.8.7/0002-disable-ordered-compiling.patch
deleted file mode 100644
index 6a0027530..000000000
--- a/patches/qt-everywhere-opensource-src-4.8.7/0002-disable-ordered-compiling.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Fri, 8 Oct 2010 20:13:40 +0200
-Subject: [PATCH] disable ordered compiling.
-
-By default all modules are compiled in a predefined order. This breaks when
-building not all modules. This patch disables ordered building. As a result
-qmake generates the correct dependancies.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- examples/examples.pro | 4 ++++
- projects.pro | 1 -
- src/src.pro | 8 ++++++--
- 3 files changed, 10 insertions(+), 3 deletions(-)
-
-diff --git a/examples/examples.pro b/examples/examples.pro
-index f7d5306f54e2..67b4cf826a7c 100644
---- a/examples/examples.pro
-+++ b/examples/examples.pro
-@@ -51,6 +51,10 @@ contains(DEFINES, QT_NO_GESTURES): SUBDIRS -= gestures
- SUBDIRS += multimedia
- }
-
-+contains(QT_CONFIG, webkit) {
-+ SUBDIRS += webkit
-+}
-+
- contains(QT_CONFIG, script): SUBDIRS += script
-
- contains(QT_CONFIG, phonon):!static: SUBDIRS += phonon
-diff --git a/projects.pro b/projects.pro
-index a2bc4b3be1b5..839670d029e9 100644
---- a/projects.pro
-+++ b/projects.pro
-@@ -2,7 +2,6 @@
- # Main projectfile
- #####################################################################
-
--CONFIG += ordered
- TEMPLATE = subdirs
-
- cross_compile: CONFIG += nostrip
-diff --git a/src/src.pro b/src/src.pro
-index b9e48f418d0c..4b1cf0db0e4d 100644
---- a/src/src.pro
-+++ b/src/src.pro
-@@ -100,12 +100,13 @@ src_declarative.target = sub-declarative
- src_qt3support.depends = src_gui src_xml src_network src_sql
- src_tools_idc.depends = src_corelib # target defined in tools.pro
- src_tools_uic3.depends = src_qt3support src_xml # target defined in tools.pro
-- src_phonon.depends = src_gui
-+ src_phonon.depends = src_gui src_network
- src_multimedia.depends = src_gui
- contains(QT_CONFIG, opengl):src_multimedia.depends += src_opengl
- src_activeqt.depends = src_tools_idc src_gui
- src_declarative.depends = src_gui src_script src_network
-- src_plugins.depends = src_gui src_sql src_svg
-+ src_plugins.depends = src_gui src_sql
-+ contains(QT_CONFIG, svg):src_plugins.depends += src_svg
- contains(QT_CONFIG, multimedia):src_plugins.depends += src_multimedia
- contains(QT_CONFIG, declarative):src_plugins.depends += src_declarative
- src_s60installs.depends = $$TOOLS_SUBDIRS $$SRC_SUBDIRS
-@@ -114,6 +115,7 @@ src_declarative.target = sub-declarative
- contains(QT_CONFIG, webkit) {
- src_webkit.depends = src_gui src_sql src_network
- contains(QT_CONFIG, xmlpatterns): src_webkit.depends += src_xmlpatterns
-+ contains(QT_CONFIG, phonon): src_webkit.depends += src_phonon
- src_imports.depends += src_webkit
- }
- contains(QT_CONFIG, qt3support): src_plugins.depends += src_qt3support
-@@ -133,6 +135,8 @@ src_declarative.target = sub-declarative
- contains(QT_CONFIG, svg) {
- src_declarative.depends += src_svg
- }
-+ contains(QT_CONFIG, declarative):src_plugins.depends += src_declarative
-+ contains(QT_CONFIG, phonon):src_plugins.depends += src_phonon
- }
-
-
diff --git a/patches/qt-everywhere-opensource-src-4.8.7/0003-Hack-hide-cursor-during-startup.patch b/patches/qt-everywhere-opensource-src-4.8.7/0003-Hack-hide-cursor-during-startup.patch
deleted file mode 100644
index 06772bcf0..000000000
--- a/patches/qt-everywhere-opensource-src-4.8.7/0003-Hack-hide-cursor-during-startup.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Fri, 8 Oct 2010 20:13:40 +0200
-Subject: [PATCH] Hack: hide cursor during startup
-
-This will hide the cursor during application startup.
-To keep it hidden the application must call
-QApplication::setOverrideCursor(Qt::BlankCursor);
-Otherwise the cursor returns when the mouse is moved.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/gui/embedded/qwscursor_qws.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/gui/embedded/qwscursor_qws.cpp b/src/gui/embedded/qwscursor_qws.cpp
-index 6b13076653cd..475ea26d8f8c 100644
---- a/src/gui/embedded/qwscursor_qws.cpp
-+++ b/src/gui/embedded/qwscursor_qws.cpp
-@@ -344,7 +344,7 @@ void QWSServerPrivate::initializeCursor()
-
- // default cursor
- cursor = 0;
-- setCursor(QWSCursor::systemCursor(Qt::ArrowCursor));
-+ setCursor(QWSCursor::systemCursor(Qt::BlankCursor));
- #endif
- q->sendMouseEvent(QPoint(swidth/2, sheight/2), 0);
- }
diff --git a/patches/qt-everywhere-opensource-src-4.8.7/0004-add-missing-subdirs.patch b/patches/qt-everywhere-opensource-src-4.8.7/0004-add-missing-subdirs.patch
deleted file mode 100644
index cf6024ee8..000000000
--- a/patches/qt-everywhere-opensource-src-4.8.7/0004-add-missing-subdirs.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Fri, 8 Oct 2010 20:13:40 +0200
-Subject: [PATCH] add missing subdirs
-
-SUBDIRS is not set correctly in several places in examples
-This patch fixes it.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- examples/declarative/modelviews/modelviews.pro | 1 +
- examples/examples.pro | 2 +-
- examples/itemviews/itemviews.pro | 4 +++-
- examples/tutorials/tutorials.pro | 1 +
- 4 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/examples/declarative/modelviews/modelviews.pro b/examples/declarative/modelviews/modelviews.pro
-index 00e07fec030e..7f7d673346f9 100644
---- a/examples/declarative/modelviews/modelviews.pro
-+++ b/examples/declarative/modelviews/modelviews.pro
-@@ -1,6 +1,7 @@
- TEMPLATE = subdirs
-
- SUBDIRS += \
-+ abstractitemmodel \
- objectlistmodel \
- stringlistmodel \
- abstractitemmodel \
-diff --git a/examples/examples.pro b/examples/examples.pro
-index 67b4cf826a7c..e67030a17357 100644
---- a/examples/examples.pro
-+++ b/examples/examples.pro
-@@ -72,7 +72,7 @@ contains(QT_CONFIG, declarative): SUBDIRS += declarative helper
- win32:!win32-g++*: SUBDIRS += activeqt
- contains(QT_CONFIG, xmlpatterns):!contains(QT_CONFIG, no-gui): SUBDIRS += xmlpatterns
- contains(DEFINES, QT_NO_CURSOR): SUBDIRS -= mainwindows
--contains(QT_CONFIG, concurrent): SUBDIRS += qtconcurrent
-+!contains(DEFINES, QT_NO_CONCURRENT): SUBDIRS += qtconcurrent
-
- # install
- sources.files = README *.pro
-diff --git a/examples/itemviews/itemviews.pro b/examples/itemviews/itemviews.pro
-index 137599ca6553..547694d9f50a 100644
---- a/examples/itemviews/itemviews.pro
-+++ b/examples/itemviews/itemviews.pro
-@@ -2,6 +2,7 @@ TEMPLATE = subdirs
- SUBDIRS = addressbook \
- basicsortfiltermodel \
- chart \
-+ coloreditorfactory \
- combowidgetmapper \
- customsortfiltermodel \
- dirview \
-@@ -13,7 +14,8 @@ SUBDIRS = addressbook \
- simpledommodel \
- simpletreemodel \
- simplewidgetmapper \
-- spinboxdelegate
-+ spinboxdelegate \
-+ stardelegate
-
- # install
- sources.files = README *.pro
-diff --git a/examples/tutorials/tutorials.pro b/examples/tutorials/tutorials.pro
-index ba1769deb459..cb1ca6ea382b 100644
---- a/examples/tutorials/tutorials.pro
-+++ b/examples/tutorials/tutorials.pro
-@@ -1,5 +1,6 @@
- TEMPLATE = subdirs
- SUBDIRS = \
-+ widgets \
- addressbook \
- modelview \
- threads
diff --git a/patches/qt-everywhere-opensource-src-4.8.7/0005-Fix-dnd-issue-on-QWS.patch b/patches/qt-everywhere-opensource-src-4.8.7/0005-Fix-dnd-issue-on-QWS.patch
deleted file mode 100644
index dbd4c3770..000000000
--- a/patches/qt-everywhere-opensource-src-4.8.7/0005-Fix-dnd-issue-on-QWS.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Fri, 8 Oct 2010 20:13:40 +0200
-Subject: [PATCH] Fix dnd issue on QWS
-
-An overrideCursor set in the application can be messed up by
-dnd stuff. As a result, the cursor gets stuck at Qt::ForbiddenCursor
-This patch seems to fix it, but I'm not sure if it breaks anything.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/gui/kernel/qdnd_qws.cpp | 9 +++------
- 1 file changed, 3 insertions(+), 6 deletions(-)
-
-diff --git a/src/gui/kernel/qdnd_qws.cpp b/src/gui/kernel/qdnd_qws.cpp
-index a925fdfe1b65..22dd43d31e80 100644
---- a/src/gui/kernel/qdnd_qws.cpp
-+++ b/src/gui/kernel/qdnd_qws.cpp
-@@ -162,10 +162,10 @@ void QDragManager::updateCursor()
- }
- } else {
- QCursor *overrideCursor = QApplication::overrideCursor();
-- if (!overrideCursor || overrideCursor->shape() != Qt::ForbiddenCursor) {
-+ if (restoreCursor && (!overrideCursor || overrideCursor->shape() != Qt::ForbiddenCursor)) {
- QApplication::changeOverrideCursor(QCursor(Qt::ForbiddenCursor));
-- currentActionForOverrideCursor = Qt::IgnoreAction;
- }
-+ currentActionForOverrideCursor = Qt::IgnoreAction;
- if (qt_qws_dnd_deco)
- qt_qws_dnd_deco->hide();
- }
-@@ -246,7 +246,6 @@ bool QDragManager::eventFilter(QObject *o, QEvent *e)
- willDrop = false;
- global_accepted_action = Qt::IgnoreAction;
- updateCursor();
-- restoreCursor = true;
- object->d_func()->target = 0;
- }
- if (cw && cw->acceptDrops()) {
-@@ -257,7 +256,6 @@ bool QDragManager::eventFilter(QObject *o, QEvent *e)
- willDrop = dee.isAccepted() && dee.dropAction() != Qt::IgnoreAction;
- global_accepted_action = willDrop ? dee.dropAction() : Qt::IgnoreAction;
- updateCursor();
-- restoreCursor = true;
- }
- } else if (cw) {
- QDragMoveEvent dme(cw->mapFromGlobal(me->globalPos()), possible_actions, dropData,
-@@ -281,8 +279,8 @@ bool QDragManager::eventFilter(QObject *o, QEvent *e)
- case QEvent::MouseButtonRelease:
- {
- qApp->removeEventFilter(this);
-+ willDrop = false;
- if (restoreCursor) {
-- willDrop = false;
- #ifndef QT_NO_CURSOR
- QApplication::restoreOverrideCursor();
- #endif
-@@ -336,7 +334,6 @@ Qt::DropAction QDragManager::drag(QDrag *o)
- willDrop = false;
- updatePixmap();
- updateCursor();
-- restoreCursor = true;
- object->d_func()->target = 0;
- qApp->installEventFilter(this);
-
diff --git a/patches/qt-everywhere-opensource-src-4.8.7/0006-qmake-make-sure-local-include-dirs-come-first.patch b/patches/qt-everywhere-opensource-src-4.8.7/0006-qmake-make-sure-local-include-dirs-come-first.patch
deleted file mode 100644
index 398c0ae51..000000000
--- a/patches/qt-everywhere-opensource-src-4.8.7/0006-qmake-make-sure-local-include-dirs-come-first.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Wed, 2 Feb 2011 18:00:51 +0100
-Subject: [PATCH] qmake: make sure local include dirs come first.
-
-This fixes the issue where a pcre.h from a include path from
-CXXFLAGS is used instead of the one in webkit.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- qmake/generators/unix/unixmake.cpp | 2 +-
- qmake/generators/unix/unixmake2.cpp | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/qmake/generators/unix/unixmake.cpp b/qmake/generators/unix/unixmake.cpp
-index 0f06b814e4d6..5f7556832c4e 100644
---- a/qmake/generators/unix/unixmake.cpp
-+++ b/qmake/generators/unix/unixmake.cpp
-@@ -246,7 +246,7 @@ UnixMakefileGenerator::init()
- cflags += " $(CFLAGS)";
- else
- cflags += " $(" + comps[i] + "FLAGS)";
-- compile_flag += cflags + " $(INCPATH)";
-+ compile_flag += " $(INCPATH)" + cflags;
-
- QString compiler = comps[i];
- if (compiler == "C")
-diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp
-index 50af9d23e1d7..aecd61d0ed18 100644
---- a/qmake/generators/unix/unixmake2.cpp
-+++ b/qmake/generators/unix/unixmake2.cpp
-@@ -999,7 +999,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
- compiler = "$(CXX)";
-
- // compile command
-- t << "\n\t" << compiler << cflags << " $(INCPATH) " << pchFlags << endl << endl;
-+ t << "\n\t" << compiler << " $(INCPATH) " << cflags << " " << pchFlags << endl << endl;
- }
- }
-
diff --git a/patches/qt-everywhere-opensource-src-4.8.7/0007-phonon-fix-colors-for-video-on-qgraphicsview.patch b/patches/qt-everywhere-opensource-src-4.8.7/0007-phonon-fix-colors-for-video-on-qgraphicsview.patch
deleted file mode 100644
index 6f834ad2b..000000000
--- a/patches/qt-everywhere-opensource-src-4.8.7/0007-phonon-fix-colors-for-video-on-qgraphicsview.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Thu, 3 Feb 2011 11:24:22 +0100
-Subject: [PATCH] phonon: fix colors for video on qgraphicsview
-
-patch from http://bugreports.qt.nokia.com/browse/QTBUG-8737
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/3rdparty/phonon/gstreamer/qwidgetvideosink.cpp | 7 ++-----
- 1 file changed, 2 insertions(+), 5 deletions(-)
-
-diff --git a/src/3rdparty/phonon/gstreamer/qwidgetvideosink.cpp b/src/3rdparty/phonon/gstreamer/qwidgetvideosink.cpp
-index 89d5a9db9e63..85080014b1e7 100644
---- a/src/3rdparty/phonon/gstreamer/qwidgetvideosink.cpp
-+++ b/src/3rdparty/phonon/gstreamer/qwidgetvideosink.cpp
-@@ -18,6 +18,7 @@
- #include <QApplication>
- #include "videowidget.h"
- #include "qwidgetvideosink.h"
-+#include <gst/video/video.h>
-
- QT_BEGIN_NAMESPACE
-
-@@ -106,11 +107,7 @@ static GstStaticPadTemplate template_factory_rgb =
- GST_STATIC_PAD_TEMPLATE("sink",
- GST_PAD_SINK,
- GST_PAD_ALWAYS,
-- GST_STATIC_CAPS("video/x-raw-rgb, "
-- "framerate = (fraction) [ 0, MAX ], "
-- "width = (int) [ 1, MAX ], "
-- "height = (int) [ 1, MAX ],"
-- "bpp = (int) 32"));
-+ GST_STATIC_CAPS(GST_VIDEO_CAPS_xRGB_HOST_ENDIAN));
-
- template <VideoFormat FMT>
- struct template_factory;
diff --git a/patches/qt-everywhere-opensource-src-4.8.7/0008-don-t-build-webkit-tests.patch b/patches/qt-everywhere-opensource-src-4.8.7/0008-don-t-build-webkit-tests.patch
deleted file mode 100644
index a45563d73..000000000
--- a/patches/qt-everywhere-opensource-src-4.8.7/0008-don-t-build-webkit-tests.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Mon, 17 Oct 2011 19:34:55 +0200
-Subject: [PATCH] don't build webkit tests
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/3rdparty/webkit/Source/WebKit.pro | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/src/3rdparty/webkit/Source/WebKit.pro b/src/3rdparty/webkit/Source/WebKit.pro
-index 9be0f4aff9c9..eee88fea1f1e 100644
---- a/src/3rdparty/webkit/Source/WebKit.pro
-+++ b/src/3rdparty/webkit/Source/WebKit.pro
-@@ -15,19 +15,15 @@ SUBDIRS += WebKit/qt/QtWebKit.pro
-
- webkit2 {
- exists($$PWD/WebKit2/WebProcess.pro): SUBDIRS += WebKit2/WebProcess.pro
-- exists($$PWD/WebKit2/UIProcess/API/qt/tests): SUBDIRS += WebKit2/UIProcess/API/qt/tests
- }
-
- contains(QT_CONFIG, declarative) {
- exists($$PWD/WebKit/qt/declarative): SUBDIRS += WebKit/qt/declarative
- }
-
--exists($$PWD/WebKit/qt/tests): SUBDIRS += WebKit/qt/tests
--
- build-qtscript {
- SUBDIRS += \
- JavaScriptCore/qt/api/QtScript.pro \
-- JavaScriptCore/qt/tests \
- JavaScriptCore/qt/benchmarks
- }
-
diff --git a/patches/qt-everywhere-opensource-src-4.8.7/0009-fix-build-issues-with-gcc6.patch b/patches/qt-everywhere-opensource-src-4.8.7/0009-fix-build-issues-with-gcc6.patch
deleted file mode 100644
index 1c40eb8b3..000000000
--- a/patches/qt-everywhere-opensource-src-4.8.7/0009-fix-build-issues-with-gcc6.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From: Than Ngo <than@redhat.com>
-Date: Thu, 20 Oct 2016 11:15:33 +0200
-Subject: [PATCH] fix build issues with gcc6
-
-This patch solves two issues:
- - Use the correct key for the compiler.
- - Avoid a shift overflow.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- configure | 4 ++--
- src/xmlpatterns/api/qcoloroutput_p.h | 4 ++--
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/configure b/configure
-index 10ad7ca0b0b7..a8e6dc141eda 100755
---- a/configure
-+++ b/configure
-@@ -7734,7 +7734,7 @@ case "$XPLATFORM" in
- *-g++*)
- # Check gcc's version
- case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
-- 5*|4*|3.4*)
-+ 8*|7*|6*|5*|4*|3.4*)
- ;;
- 3.3*)
- canBuildWebKit="no"
-@@ -8050,7 +8050,7 @@ g++*)
- 3.*)
- COMPILER_VERSION="3.*"
- ;;
-- 5*|4.*)
-+ 8*|7*|6*|5*|4.*)
- COMPILER_VERSION="4"
- ;;
- *)
-diff --git a/src/xmlpatterns/api/qcoloroutput_p.h b/src/xmlpatterns/api/qcoloroutput_p.h
-index 7911e8962501..be284d14096e 100644
---- a/src/xmlpatterns/api/qcoloroutput_p.h
-+++ b/src/xmlpatterns/api/qcoloroutput_p.h
-@@ -70,8 +70,8 @@ namespace QPatternist
- ForegroundShift = 10,
- BackgroundShift = 20,
- SpecialShift = 20,
-- ForegroundMask = ((1 << ForegroundShift) - 1) << ForegroundShift,
-- BackgroundMask = ((1 << BackgroundShift) - 1) << BackgroundShift
-+ ForegroundMask = 0x1f << ForegroundShift,
-+ BackgroundMask = 0x7 << BackgroundShift
- };
-
- public:
diff --git a/patches/qt-everywhere-opensource-src-4.8.7/0010-configure-handle-gcc-9.x.patch b/patches/qt-everywhere-opensource-src-4.8.7/0010-configure-handle-gcc-9.x.patch
deleted file mode 100644
index cebdfe002..000000000
--- a/patches/qt-everywhere-opensource-src-4.8.7/0010-configure-handle-gcc-9.x.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sat, 18 Apr 2020 10:52:34 +0200
-Subject: [PATCH] configure: handle gcc 9.x
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- configure | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure b/configure
-index a8e6dc141eda..39c895b091f3 100755
---- a/configure
-+++ b/configure
-@@ -7734,7 +7734,7 @@ case "$XPLATFORM" in
- *-g++*)
- # Check gcc's version
- case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
-- 8*|7*|6*|5*|4*|3.4*)
-+ 9*|8*|7*|6*|5*|4*|3.4*)
- ;;
- 3.3*)
- canBuildWebKit="no"
diff --git a/patches/qt-everywhere-opensource-src-4.8.7/0011-Redo-the-Q_FOREACH-loop-control-without-GCC-statemen.patch b/patches/qt-everywhere-opensource-src-4.8.7/0011-Redo-the-Q_FOREACH-loop-control-without-GCC-statemen.patch
deleted file mode 100644
index dadc0a6c5..000000000
--- a/patches/qt-everywhere-opensource-src-4.8.7/0011-Redo-the-Q_FOREACH-loop-control-without-GCC-statemen.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From: Thiago Macieira <thiago.macieira@intel.com>
-Date: Tue, 11 Feb 2014 16:17:46 -0800
-Subject: [PATCH] Redo the Q_FOREACH loop control without GCC statement
- expressions
-
-It's possible to do without them, which probably makes the number of
-supported compilers a lot bigger: they just need to support decltype()
-or __typeof__.
-
-That includes the Intel compiler. The old code was also apparently
-working, but no one had realized the old workaround for some old version
-was still in place.
-
-The loop overhead is more or less the same. I have not done benchmarks,
-but inspection of the generated assembly shows more or less the same
-number of instructions.
-
-Change-Id: I32d499c84a6ddd19d994b49f17a469acb5c3a3f1
-Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
-Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
-
-Backported to Qt 4
----
- src/corelib/global/qglobal.h | 20 +++++++++++++++-----
- 1 file changed, 15 insertions(+), 5 deletions(-)
-
-diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h
-index 20d88328cbcd..34ba4c2d99f3 100644
---- a/src/corelib/global/qglobal.h
-+++ b/src/corelib/global/qglobal.h
-@@ -2482,22 +2482,32 @@ typedef uint Flags;
-
- #endif /* Q_NO_TYPESAFE_FLAGS */
-
--#if defined(Q_CC_GNU) && !defined(Q_CC_INTEL) && !defined(Q_CC_RVCT)
-+#if (defined(Q_CC_GNU) && !defined(Q_CC_RVCT))
- /* make use of typeof-extension */
- template <typename T>
- class QForeachContainer {
- public:
-- inline QForeachContainer(const T& t) : c(t), brk(0), i(c.begin()), e(c.end()) { }
-+ inline QForeachContainer(const T& t) : c(t), i(c.begin()), e(c.end()), control(1) { }
- const T c;
- int brk;
- typename T::const_iterator i, e;
-+ int control;
- };
-
-+// Explanation of the control word:
-+// - it's initialized to 1
-+// - that means both the inner and outer loops start
-+// - if there were no breaks, at the end of the inner loop, it's set to 0, which
-+// causes it to exit (the inner loop is run exactly once)
-+// - at the end of the outer loop, it's inverted, so it becomes 1 again, allowing
-+// the outer loop to continue executing
-+// - if there was a break inside the inner loop, it will exit with control still
-+// set to 1; in that case, the outer loop will invert it to 0 and will exit too
- #define Q_FOREACH(variable, container) \
- for (QForeachContainer<__typeof__(container)> _container_(container); \
-- !_container_.brk && _container_.i != _container_.e; \
-- __extension__ ({ ++_container_.brk; ++_container_.i; })) \
-- for (variable = *_container_.i;; __extension__ ({--_container_.brk; break;}))
-+ _container_.control && _container_.i != _container_.e; \
-+ ++_container_.i, _container_.control ^= 1) \
-+ for (variable = *_container_.i; _container_.control; _container_.control = 0)
-
- #else
-
diff --git a/patches/qt-everywhere-opensource-src-4.8.7/series b/patches/qt-everywhere-opensource-src-4.8.7/series
deleted file mode 100644
index 132648d15..000000000
--- a/patches/qt-everywhere-opensource-src-4.8.7/series
+++ /dev/null
@@ -1,14 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-mkspec-for-ptxdist.patch
-0002-disable-ordered-compiling.patch
-0003-Hack-hide-cursor-during-startup.patch
-0004-add-missing-subdirs.patch
-0005-Fix-dnd-issue-on-QWS.patch
-0006-qmake-make-sure-local-include-dirs-come-first.patch
-0007-phonon-fix-colors-for-video-on-qgraphicsview.patch
-0008-don-t-build-webkit-tests.patch
-0009-fix-build-issues-with-gcc6.patch
-0010-configure-handle-gcc-9.x.patch
-0011-Redo-the-Q_FOREACH-loop-control-without-GCC-statemen.patch
-# cf4f9c7eb098ba6eecc69bcfa3b924aa - git-ptx-patches magic
diff --git a/patches/qt-everywhere-opensource-src-5.15.12/0001-CVE-2023-4863-5.15.patch b/patches/qt-everywhere-opensource-src-5.15.12/0001-CVE-2023-4863-5.15.patch
new file mode 100644
index 000000000..f4462608f
--- /dev/null
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0001-CVE-2023-4863-5.15.patch
@@ -0,0 +1,3767 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Mon, 16 Oct 2023 10:13:21 +0200
+Subject: [PATCH] CVE-2023-4863-5.15
+
+Imported from https://download.qt.io/archive/qt/5.15/
+---
+ qtimageformats/src/3rdparty/libwebp.pri | 3 +
+ qtimageformats/src/3rdparty/libwebp/AUTHORS | 4 +
+ qtimageformats/src/3rdparty/libwebp/ChangeLog | 220 ++++++++++++++++
+ qtimageformats/src/3rdparty/libwebp/NEWS | 27 ++
+ ...0001-Fix-Windows-build-for-clang-and-neon.patch | 20 +-
+ .../src/3rdparty/libwebp/qt_attribution.json | 3 +-
+ .../src/3rdparty/libwebp/sharpyuv/sharpyuv.c | 59 +++--
+ .../src/3rdparty/libwebp/sharpyuv/sharpyuv.h | 40 ++-
+ .../src/3rdparty/libwebp/sharpyuv/sharpyuv_cpu.c | 14 +
+ .../src/3rdparty/libwebp/sharpyuv/sharpyuv_cpu.h | 22 ++
+ .../src/3rdparty/libwebp/sharpyuv/sharpyuv_csp.c | 2 +-
+ .../src/3rdparty/libwebp/sharpyuv/sharpyuv_csp.h | 7 +-
+ .../src/3rdparty/libwebp/sharpyuv/sharpyuv_dsp.c | 18 +-
+ .../src/3rdparty/libwebp/sharpyuv/sharpyuv_dsp.h | 7 +-
+ .../src/3rdparty/libwebp/sharpyuv/sharpyuv_gamma.c | 1 -
+ .../src/3rdparty/libwebp/sharpyuv/sharpyuv_gamma.h | 2 +-
+ .../src/3rdparty/libwebp/sharpyuv/sharpyuv_neon.c | 9 +-
+ .../src/3rdparty/libwebp/sharpyuv/sharpyuv_sse2.c | 7 +-
+ .../src/3rdparty/libwebp/src/dec/tree_dec.c | 3 +-
+ .../src/3rdparty/libwebp/src/dec/vp8_dec.c | 2 +
+ .../src/3rdparty/libwebp/src/dec/vp8i_dec.h | 4 +-
+ .../src/3rdparty/libwebp/src/dec/vp8l_dec.c | 48 ++--
+ .../src/3rdparty/libwebp/src/dec/vp8li_dec.h | 2 +-
+ .../src/3rdparty/libwebp/src/dec/webp_dec.c | 35 ++-
+ .../src/3rdparty/libwebp/src/demux/demux.c | 4 +-
+ .../3rdparty/libwebp/src/dsp/alpha_processing.c | 1 +
+ .../libwebp/src/dsp/alpha_processing_sse2.c | 12 +-
+ .../libwebp/src/dsp/alpha_processing_sse41.c | 2 +-
+ qtimageformats/src/3rdparty/libwebp/src/dsp/cost.c | 1 +
+ .../src/3rdparty/libwebp/src/dsp/cost_neon.c | 4 +-
+ qtimageformats/src/3rdparty/libwebp/src/dsp/cpu.c | 8 +-
+ qtimageformats/src/3rdparty/libwebp/src/dsp/cpu.h | 40 ++-
+ qtimageformats/src/3rdparty/libwebp/src/dsp/dec.c | 1 +
+ .../src/3rdparty/libwebp/src/dsp/dec_neon.c | 4 +-
+ .../src/3rdparty/libwebp/src/dsp/dec_sse2.c | 93 +++----
+ .../src/3rdparty/libwebp/src/dsp/dec_sse41.c | 2 +-
+ qtimageformats/src/3rdparty/libwebp/src/dsp/enc.c | 1 +
+ .../src/3rdparty/libwebp/src/dsp/enc_neon.c | 11 +-
+ .../src/3rdparty/libwebp/src/dsp/enc_sse2.c | 293 +++++++++++++++------
+ .../src/3rdparty/libwebp/src/dsp/filters.c | 1 +
+ .../src/3rdparty/libwebp/src/dsp/lossless.c | 13 +-
+ .../src/3rdparty/libwebp/src/dsp/lossless_enc.c | 19 +-
+ .../3rdparty/libwebp/src/dsp/lossless_enc_neon.c | 2 +-
+ .../3rdparty/libwebp/src/dsp/lossless_enc_sse2.c | 8 +-
+ .../src/3rdparty/libwebp/src/dsp/lossless_neon.c | 2 +-
+ .../src/3rdparty/libwebp/src/dsp/lossless_sse2.c | 88 +++----
+ .../src/3rdparty/libwebp/src/dsp/lossless_sse41.c | 7 +-
+ qtimageformats/src/3rdparty/libwebp/src/dsp/neon.h | 4 +-
+ .../src/3rdparty/libwebp/src/dsp/quant.h | 13 +-
+ .../src/3rdparty/libwebp/src/dsp/rescaler.c | 1 +
+ .../src/3rdparty/libwebp/src/dsp/rescaler_sse2.c | 6 +-
+ qtimageformats/src/3rdparty/libwebp/src/dsp/ssim.c | 1 +
+ .../src/3rdparty/libwebp/src/dsp/upsampling.c | 1 +
+ .../src/3rdparty/libwebp/src/dsp/upsampling_neon.c | 2 +-
+ .../src/3rdparty/libwebp/src/dsp/upsampling_sse2.c | 2 +-
+ qtimageformats/src/3rdparty/libwebp/src/dsp/yuv.c | 1 +
+ .../src/3rdparty/libwebp/src/dsp/yuv_sse2.c | 13 +-
+ .../src/3rdparty/libwebp/src/dsp/yuv_sse41.c | 6 +-
+ .../src/3rdparty/libwebp/src/enc/alpha_enc.c | 20 +-
+ .../src/3rdparty/libwebp/src/enc/analysis_enc.c | 12 +-
+ .../libwebp/src/enc/backward_references_enc.c | 9 +-
+ .../src/3rdparty/libwebp/src/enc/frame_enc.c | 8 +-
+ .../src/3rdparty/libwebp/src/enc/picture_csp_enc.c | 34 +--
+ .../3rdparty/libwebp/src/enc/picture_rescale_enc.c | 20 +-
+ .../src/3rdparty/libwebp/src/enc/syntax_enc.c | 6 +-
+ .../src/3rdparty/libwebp/src/enc/vp8i_enc.h | 4 +-
+ .../src/3rdparty/libwebp/src/enc/vp8l_enc.c | 49 ++--
+ .../src/3rdparty/libwebp/src/enc/webp_enc.c | 10 +-
+ qtimageformats/src/3rdparty/libwebp/src/mux/muxi.h | 4 +-
+ .../src/3rdparty/libwebp/src/mux/muxread.c | 7 +-
+ .../libwebp/src/utils/bit_reader_inl_utils.h | 4 +-
+ .../3rdparty/libwebp/src/utils/bit_reader_utils.c | 3 +-
+ .../3rdparty/libwebp/src/utils/bit_reader_utils.h | 3 +-
+ .../src/3rdparty/libwebp/src/utils/huffman_utils.c | 99 +++++--
+ .../src/3rdparty/libwebp/src/utils/huffman_utils.h | 27 +-
+ .../src/3rdparty/libwebp/src/utils/utils.h | 12 +-
+ .../src/3rdparty/libwebp/src/webp/decode.h | 5 +-
+ .../3rdparty/libwebp/src/webp/format_constants.h | 2 +-
+ .../src/3rdparty/libwebp/src/webp/types.h | 6 +-
+ .../src/plugins/imageformats/webp/CMakeLists.txt | 1 +
+ 80 files changed, 1113 insertions(+), 458 deletions(-)
+ create mode 100644 qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_cpu.c
+ create mode 100644 qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_cpu.h
+
+diff --git a/qtimageformats/src/3rdparty/libwebp.pri b/qtimageformats/src/3rdparty/libwebp.pri
+index 7c41f8f7c56f..c91b2d061049 100644
+--- a/qtimageformats/src/3rdparty/libwebp.pri
++++ b/qtimageformats/src/3rdparty/libwebp.pri
+@@ -1,3 +1,5 @@
++CONFIG += compile_included_sources
++
+ INCLUDEPATH += \
+ $$PWD/libwebp \
+ $$PWD/libwebp/sharpyuv \
+@@ -11,6 +13,7 @@ INCLUDEPATH += \
+
+ SOURCES += \
+ $$PWD/libwebp/sharpyuv/sharpyuv.c \
++ $$PWD/libwebp/sharpyuv/sharpyuv_cpu.c \
+ $$PWD/libwebp/sharpyuv/sharpyuv_csp.c \
+ $$PWD/libwebp/sharpyuv/sharpyuv_dsp.c \
+ $$PWD/libwebp/sharpyuv/sharpyuv_gamma.c \
+diff --git a/qtimageformats/src/3rdparty/libwebp/AUTHORS b/qtimageformats/src/3rdparty/libwebp/AUTHORS
+index 3efcbe25b654..8359b20da9d5 100644
+--- a/qtimageformats/src/3rdparty/libwebp/AUTHORS
++++ b/qtimageformats/src/3rdparty/libwebp/AUTHORS
+@@ -11,11 +11,13 @@ Contributors:
+ - Djordje Pesut (djordje dot pesut at imgtec dot com)
+ - Frank Barchard (fbarchard at google dot com)
+ - Hui Su (huisu at google dot com)
++- H. Vetinari (h dot vetinari at gmx dot com)
+ - Ilya Kurdyukov (jpegqs at gmail dot com)
+ - Ingvar Stepanyan (rreverser at google dot com)
+ - James Zern (jzern at google dot com)
+ - Jan Engelhardt (jengelh at medozas dot de)
+ - Jehan (jehan at girinstud dot io)
++- Jeremy Maitin-Shepard (jbms at google dot com)
+ - Johann Koenig (johann dot koenig at duck dot com)
+ - Jovan Zelincevic (jovan dot zelincevic at imgtec dot com)
+ - Jyrki Alakuijala (jyrki at google dot com)
+@@ -30,6 +32,7 @@ Contributors:
+ - Mislav Bradac (mislavm at google dot com)
+ - Nico Weber (thakis at chromium dot org)
+ - Noel Chromium (noel at chromium dot org)
++- Nozomi Isozaki (nontan at pixiv dot co dot jp)
+ - Oliver Wolff (oliver dot wolff at qt dot io)
+ - Owen Rodley (orodley at google dot com)
+ - Parag Salasakar (img dot mips1 at gmail dot com)
+@@ -45,6 +48,7 @@ Contributors:
+ - Somnath Banerjee (somnath dot banerjee at gmail dot com)
+ - Sriraman Tallam (tmsriram at google dot com)
+ - Tamar Levy (tamar dot levy at intel dot com)
++- Thiago Perrotta (tperrotta at google dot com)
+ - Timothy Gu (timothygu99 at gmail dot com)
+ - Urvang Joshi (urvang at google dot com)
+ - Vikas Arora (vikasa at google dot com)
+diff --git a/qtimageformats/src/3rdparty/libwebp/ChangeLog b/qtimageformats/src/3rdparty/libwebp/ChangeLog
+index c7655f29d74a..33ec48633ce1 100644
+--- a/qtimageformats/src/3rdparty/libwebp/ChangeLog
++++ b/qtimageformats/src/3rdparty/libwebp/ChangeLog
+@@ -1,8 +1,228 @@
++1ace578c update NEWS
++63234c42 bump version to 1.3.2
++2af26267 Fix OOB write in BuildHuffmanTable.
++fd7bb21c update ChangeLog (tag: v1.3.1-rc2, tag: v1.3.1)
++e1adea50 update NEWS
++43393320 enc/*: normalize WebPEncodingSetError() calls
++287fdefe enc/*: add missing WebPEncodingSetError() calls
++c3bd7cff EncodeAlphaInternal: add missing error check
++d49cfbb3 vp8l_enc,WriteImage: add missing error check
++2e5a9ec3 muxread,MuxImageParse: add missing error checks
++ebb6f949 cmake,emscripten: explicitly set stack size
++59a2b1f9 WebPDecodeYUV: check u/v/stride/uv_stride ptrs
++8e965ccb Call png_get_channels() to see if image has alpha
++7f0a3419 update ChangeLog (tag: v1.3.1-rc1)
++bab7efbe update NEWS
++7138bf8f bump version to 1.3.1
++435b4ded update AUTHORS
++47351229 update .mailmap
++ff6c7f4e CONTRIBUTING.md: add C style / cmake-format notes
++dd530437 add .cmake-format.py
++adbe2cb1 cmake,cosmetics: apply cmake-format
++15b36508 doc/webp-container-spec: rm future codec comment
++c369c4bf doc/webp-lossless-bitstream-spec: improve link text
++1de35f47 doc/webp-container-spec: don't use 'currently'
++bb06a16e doc/webp-container-spec: prefer present tense
++9f38b71e doc/webp-lossless-bitstream-spec: prefer present tense
++7acb6b82 doc/webp-container-spec: avoid i.e. & e.g.
++4967e7cd doc/webp-lossless-bitstream-spec: avoid i.e. & e.g.
++e3366659 Merge "Do not find_package image libraries if not needed." into main
++428588ef clarify single leaf node trees and use of canonical prefix coding
++709ec152 Do not find_package image libraries if not needed.
++8dd80ef8 fuzz_utils.h: lower kFuzzPxLimit w/ASan
++8f187b9f Clean message calls in CMake
++cba30078 WebPConfig.cmake.in: use calculated include path
++6cf9a76a Merge "webp-lossless-bitstream-spec: remove use of 'dynamics'" into main
++740943b2 Merge "Specialize and optimize ITransform_SSE2 using do_two" into main
++2d547e24 Compare kFuzzPxLimit to max_num_operations
++ac42dde1 Specialize and optimize ITransform_SSE2 using do_two
++17e0ef1d webp-lossless-bitstream-spec: remove use of 'dynamics'
++ed274371 neon.h,cosmetics: clear a couple lint warnings
++3fb82947 cpu.h,cosmetics: segment defines
++0c496a4f cpu.h: add WEBP_AARCH64
++8151f388 move VP8GetCPUInfo declaration to cpu.c
++916548c2 Make kFuzzPxLimit sanitizer dependent
++4070b271 advanced_api_fuzzer: reduce scaling limit
++761f49c3 Merge "webp-lossless-bitstream-spec: add missing bits to ABNF" into main
++84d04c48 webp-lossless-bitstream-spec: add missing bits to ABNF
++0696e1a7 advanced_api_fuzzer: reduce scaling limit
++93d88aa2 Merge "deps.cmake: remove unneeded header checks" into main
++118e0035 deps.cmake: remove unneeded header checks
++4c3d7018 webp-lossless-bitstream-spec: condense normal-prefix-code
++a6a09b32 webp-lossless-bitstream-spec: fix 2 code typos
++50ac4f7c Merge "cpu.h: enable NEON w/_M_ARM64EC" into main
++4b7d7b4f Add contribution instructions
++0afbd97b cpu.h: enable NEON w/_M_ARM64EC
++349f4353 Merge changes Ibd89e56b,Ic57e7f84,I89096614 into main
++8f7513b7 upsampling_neon.c: fix WEBP_SWAP_16BIT_CSP check
++cbf624b5 advanced_api_fuzzer: reduce scaling limit
++89edfdd1 Skip slow scaling in libwebp advanced_api_fuzzer
++859f19f7 Reduce libwebp advanced_api_fuzzer threshold
++a4f04835 Merge changes Ic389aaa2,I329ccd79 into main
++1275fac8 Makefile.vc: fix img2webp link w/dynamic cfg
++2fe27bb9 img2webp: normalize help output
++24bed3d9 cwebp: reflow -near_lossless help text
++0825faa4 img2webp: add -sharp_yuv/-near_lossless
++d64e6d7d Merge "PaletteSortModifiedZeng: fix leak on error" into main
++0e12a22d Merge "EncodeAlphaInternal: clear result->bw on error" into main
++0edbb6ea PaletteSortModifiedZeng: fix leak on error
++41ffe04e Merge "Update yapf style from "chromium" to "yapf"" into main
++2d9d9265 Update yapf style from "chromium" to "yapf"
++a486d800 EncodeAlphaInternal: clear result->bw on error
++1347a32d Skip big scaled advanced_api_fuzzer
++52b6f067 Fix scaling limit in advanced_api_fuzzer.c
++73618428 Limit scaling in libwebp advanced_api_fuzzer.c
++b54d21a0 Merge "CMakeLists.txt: allow CMAKE_INSTALL_RPATH to be set empty" into main
++31c28db5 libwebp{,demux,mux}.pc.in: Requires -> Requires.private
++d9a505ff CMakeLists.txt: allow CMAKE_INSTALL_RPATH to be set empty
++bdf33d03 Merge tag 'v1.3.0'
++b5577769 update ChangeLog (tag: v1.3.0-rc1, tag: v1.3.0)
++0ba77244 update NEWS
++e763eb1e bump version to 1.3.0
++2a8686fc update AUTHORS
++106a57c1 Merge "*/Android.mk: add a check for NDK_ROOT" into main
++c5e841c4 Merge "extras: WebpToSDL -> WebPToSDL" into main
++dbc30715 Merge "xcframeworkbuild.sh: bump MACOSX_CATALYST_MIN_VERSION" into main
++6fc1a9f9 */Android.mk: add a check for NDK_ROOT
++d3e151fc doc/api.md,webp_js/README.md: Webp -> WebP
++ed92a626 extras: WebpToSDL -> WebPToSDL
++6eb0189b xcframeworkbuild.sh: bump MACOSX_CATALYST_MIN_VERSION
++1d58575b CMake: align .pc variables with autoconf
++e5fe2cfc webp-lossless-bitstream-spec,cosmetics: reflow paragraphs
++0ceeeab9 webp-lossless-bitstream-spec: add amendment note
++607611cd Merge "webp-container-spec: normalize section title case" into main
++f853685e lossless: SUBTRACT_GREEN -> SUBTRACT_GREEN_TRANSFORM
++786497e4 webp-lossless-bitstream-spec: fix inv color txfm description
++c6ac672d webp-lossless-bitstream-spec: fix num_code_lengths check
++b5700efb webp-lossless-bitstream-spec,cosmetics: grammar/capitalization
++d8ed8c11 webp-container-spec: normalize section title case
++52ec0b8f Merge changes Ie975dbb5,Ifc8c93af,I6ca7c5d6,I2e8d66f5,I152477b8 into main
++5097ef62 webp-container-spec,cosmetics: grammar/capitalization
++e3ba2b1f webp-lossless-bitstream-spec,cosmetics: reflow abstract
++1e8e3ded webp-lossless-bitstream-spec: reword abstract re alpha
++017cb6fa webp-container-spec,cosmetics: normalize range syntax
++f6a4684b webp-lossless-bitstream-spec,cosmetics: normalize range syntax
++54ebd5a3 webp-lossless-bitstream-spec: limit dist map lut to 69 cols
++44741f9c webp-lossless-bitstream-spec: fix dist mapping example
++fad0ece7 pnmdec.c: use snprintf instead of sprintf
++3f73e8f7 sharpyuv: add SharpYuvGetVersion()
++ce2f2d66 SharpYuvConvert: fix a race on SharpYuvGetCPUInfo
++a458e308 sharpyuv_dsp.h: restore sharpyuv_cpu.h include
++9ba800a7 Merge changes Id72fbf3b,Ic59d23a2 into main
++979c0ebb sharpyuv: add SharpYuvGetCPUInfo
++8bab09a4 Merge "*.pc.in: rename lib_prefix to webp_libname_prefix" into main
++769387c5 cpu.c,cosmetics: fix a typo
++a02978c2 sharpyuv/Makefile.am+cmake: add missing -lm
++28aedcb9 *.pc.in: rename lib_prefix to webp_libname_prefix
++c42e6d5a configure.ac: export an empty lib_prefix variable
++dfc843aa Merge "*.pc.in: add lib prefix to lib names w/MSVC" into main
++2498209b *.pc.in: add lib prefix to lib names w/MSVC
++ac252b61 Merge "analysis_enc.c: fix a dead store warning" into main
++56944762 analysis_enc.c: fix a dead store warning
++d34f9b99 Merge "webp-lossless-bitstream-spec: convert BNF to ABNF" into main
++dc05b4db Merge changes I96bc063c,I45880467,If9e18e5a,I6ee938e4,I0a410b28, ... into main
++83270c7f webp-container-spec: add prose for rendering process
++73b19b64 webp-container-spec: note reserved fields MUST be ignored
++57101d3f webp-lossless-bitstream-spec: improve 'small' color table stmt
++dfd32e45 webp-container-spec: remove redundant sentence
++8a6185dd doc/webp-*: fix some punctuation, grammar
++72776530 webp-lossless-bitstream-spec: convert BNF to ABNF
++d992bb08 cmake: rename cpufeatures target to cpufeatures-webp
++3ed2b275 webp-container-spec: clarify background color note
++951c292d webp-container-spec: come too late -> out of order
++902dd787 webp-container-spec: prefer hex literals
++a8f6b5ee webp-container-spec: change SHOULD to MUST w/ANIM chunk
++1dc59435 webp-container-spec: add unknown fields MUST be ignored
++280a810f webp-container-spec: make padding byte=0 a MUST
++41f0bf68 webp-container-spec: update note on trailing data
++6bdd36db webp-container-spec: clarify Chunk Size is in bytes
++87e36c48 Merge "webp_js/README.md,cosmetics: reflow some lines" into main
++5b01f321 Merge "Update Windows makefile to build libsharpyuv library." into main
++19b1a71c webp_js/README.md,cosmetics: reflow some lines
++780db756 Update Windows makefile to build libsharpyuv library.
++e407d4b3 CMakeLists.txt: replace GLUT_glut_LIBRARY w/GLUT::GLUT
++abf73d62 Merge "WebPConfig.cmake.in: add find_dependency(Threads)" into main
++25807fb4 Merge "cmake: restore compatibility with cmake < 3.12" into main
++5dbc4bfa WebPConfig.cmake.in: add find_dependency(Threads)
++b2a175dd Merge "Update wasm instructions." into main
++cb90f76b Update wasm instructions.
++02d15258 cmake: restore compatibility with cmake < 3.12
++5ba046e2 CMake: add_definitions -> add_compile_options
++e68765af dsp,neon: use vaddv in a few more places
++e8f83de2 Set libsharpyuv include dir to 'webp' subdirectory.
++15a91ab1 cmake,cosmetics: apply cmake-format
++0dd49d1a CMakeLists.txt: set @ONLY in configure_file() calls
++62b1bfe8 Merge changes I2877e7bb,I777cad70,I15af7d1a,I686e6740,If10538a9, ... into main
++95c8fe5f Merge changes Iecea3603,I9dc228ab into main
++e7c805cf picture_csp_enc.c: remove SafeInitSharpYuv
++6af8845a sharpyuv: prefer webp/types.h
++639619ce cmake: fix dll exports
++782ed48c sharpyuv,SharpYuvInit: add mutex protection when available
++cad0d5ad sharyuv_{neon,sse2}.c: merge WEBP_USE_* sections
++ef70ee06 add a few missing <stddef.h> includes for NULL
++f0f9eda4 sharpyuv.h: remove <inttypes.h>
++9b902cba Merge "picture_csp_enc.c,CheckNonOpaque: rm unneeded local" into main
++9c1d457c cmake/cpu.cmake: remove unused variable
++9ac25bcb CMakeLists.txt,win32: match naming convention used by nmake
++76c353ba picture_csp_enc.c,CheckNonOpaque: rm unneeded local
++5000de54 Merge "cwebp: fix WebPPictureHasTransparency call" into main
++e1729309 Merge "WebPPictureHasTransparency: add missing pointer check" into main
++00ff988a vp8l_enc,AddSingleSubGreen: clear int sanitizer warnings
++e2fecc22 dsp/lossless_enc.c: clear int sanitizer warnings
++129cf9e9 dsp/lossless.c: clear int sanitizer warnings
++ad7d1753 dsp/lossless_enc.c: clear int sanitizer warnings
++5037220e VP8LSubtractGreenFromBlueAndRed_C: clear int sanitizer warnings
++2ee786c7 upsampling_sse2.c: clear int sanitizer warnings
++4cc157d4 ParseOptionalChunks: clear int sanitizer warning
++892cf033 BuildHuffmanTable: clear int sanitizer warning
++3a9a4d45 VP8GetSigned: clear int sanitizer warnings
++704a3d0a dsp/lossless.c: quiet int sanitizer warnings
++1a6c109c WebPPictureHasTransparency: add missing pointer check
++c626e7d5 cwebp: fix WebPPictureHasTransparency call
++866e349c Merge tag 'v1.2.4'
++c170df38 Merge "Create libsharpyuv.a in makefile.unix." into main
++9d7ff74a Create libsharpyuv.a in makefile.unix.
++0d1f1254 update ChangeLog (tag: v1.2.4)
++fcbc2d78 Merge "doc/*.txt: restrict code to 69 columns" into main
++4ad0e189 Merge "webp-container-spec.txt: normalize fourcc spelling" into main
+ 980d2488 update NEWS
+ 9fde8127 bump version to 1.2.4
++7a0a9935 doc/*.txt: restrict code to 69 columns
++c040a615 webp-container-spec.txt: normalize fourcc spelling
++aff1c546 dsp,x86: normalize types w/_mm_cvtsi128_si32 calls
++ab540ae0 dsp,x86: normalize types w/_mm_cvtsi32_si128 calls
++8980362e dsp,x86: normalize types w/_mm_set* calls (2)
+ e626925c lossless: fix crunch mode w/WEBP_REDUCE_SIZE
++83539239 dsp,x86: normalize types w/_mm_set* calls
++8a4576ce webp-container-spec.txt: replace &amp; with &
++db870881 Merge "webp-container-spec.txt: make reserved 0 values a MUST" into main
++01d7d378 webp-lossless-bitstream-spec: number all sections
++337cf69f webp-lossless-bitstream-spec: mv Nomenclature after Intro
++79be856e Merge changes I7111d1f7,I872cd62c into main
++5b87983a webp-container-spec.txt: make reserved 0 values a MUST
++bd939123 Merge changes I7a25b1a6,I51b2c2a0,I87d0cbcf,I6ec60af6,I0a3fe9dc into main
++04764b56 libwebp.pc: add libsharpyuv to requires
++7deee810 libsharpyuv: add pkg-config file
++1a64a7e6 webp-container-spec.txt: clarify some SHOULDs
++bec2c88a webp-container-spec.txt: move ChunkHeader to terminology
++c9359332 webp-container-spec.txt: clarify 'VP8 '/'XMP ' fourccs
++70fe3063 webp-container-spec.txt: rightsize table entries
++ddbf3f3f webp-container-spec.txt: update 'key words' text
++c151e95b utils.h,WEBP_ALIGN: make bitmask unsigned
++748e92bb add WebPInt32ToMem
++3fe15b67 Merge "Build libsharpyuv as a full installable library." into main
++4f402f34 add WebPMemToInt32
++a3b68c19 Build libsharpyuv as a full installable library.
++b4994eaa CMake: set rpath for shared objects
++94cd7117 Merge "CMake: fix dylib versioning" into main
++e91451b6 Fix the lossless specs a bit more.
++231bdfb7 CMake: fix dylib versioning
+ bfad7ab5 CMakeLists.txt: correct libwebpmux name in WebPConfig.cmake
+ c2e3fd30 Revert "cmake: fix webpmux lib name for cmake linking"
++7366f7f3 Merge "lossless: fix crunch mode w/WEBP_REDUCE_SIZE" into main
++84163d9d lossless: fix crunch mode w/WEBP_REDUCE_SIZE
++d01c1eb3 webp-lossless-bitstream-spec,cosmetics: normalize capitalization
++8813ca8e Merge tag 'v1.2.3'
+ 3c4a0fbf update ChangeLog (tag: v1.2.3)
+ 56a480e8 dsp/cpu.h: add missing extern "C"
+ 62b45bdd update ChangeLog (tag: v1.2.3-rc1)
+diff --git a/qtimageformats/src/3rdparty/libwebp/NEWS b/qtimageformats/src/3rdparty/libwebp/NEWS
+index c2bf3899987a..47f8451482e0 100644
+--- a/qtimageformats/src/3rdparty/libwebp/NEWS
++++ b/qtimageformats/src/3rdparty/libwebp/NEWS
+@@ -1,3 +1,30 @@
++- 9/13/2023: version 1.3.2
++ This is a binary compatible release.
++ * security fix for lossless decoder (chromium: #1479274, CVE-2023-4863)
++
++- 6/23/2023: version 1.3.1
++ This is a binary compatible release.
++ * security fixes for lossless encoder (#603, chromium: #1420107, #1455619,
++ CVE-2023-1999)
++ * improve error reporting through WebPPicture error codes
++ * fix upsampling for RGB565 and RGBA4444 in NEON builds
++ * img2webp: add -sharp_yuv & -near_lossless
++ * Windows builds:
++ - fix compatibility with clang-cl (#607)
++ - improve Arm64 performance with cl.exe
++ - add Arm64EC support
++ * fix webp_js with emcc >= 3.1.27 (stack size change, #614)
++ * CMake fixes (#592, #610, #612)
++ * further updates to the container and lossless bitstream docs (#581, #611)
++
++- 12/16/2022: version 1.3.0
++ This is a binary compatible release.
++ * add libsharpyuv, which exposes -sharp_yuv/config.use_sharp_yuv
++ functionality to other libraries; libwebp now depends on this library
++ * major updates to the container and lossless bitstream docs (#448, #546,
++ #551)
++ * miscellaneous warning, bug & build fixes (#576, #583, #584)
++
+ - 8/4/2022: version 1.2.4
+ This is a binary compatible release.
+ * restore CMake libwebpmux target name for compatibility with 1.2.2 (#575)
+diff --git a/qtimageformats/src/3rdparty/libwebp/patches/0001-Fix-Windows-build-for-clang-and-neon.patch b/qtimageformats/src/3rdparty/libwebp/patches/0001-Fix-Windows-build-for-clang-and-neon.patch
+index 2b46f5bec641..d72147658721 100644
+--- a/qtimageformats/src/3rdparty/libwebp/patches/0001-Fix-Windows-build-for-clang-and-neon.patch
++++ b/qtimageformats/src/3rdparty/libwebp/patches/0001-Fix-Windows-build-for-clang-and-neon.patch
+@@ -1,5 +1,5 @@
+ diff --git a/src/3rdparty/libwebp/src/dsp/cpu.h b/src/3rdparty/libwebp/src/dsp/cpu.h
+-index 57a40d8..8cf3e92 100644
++index c86540f..581ecbd 100644
+ --- a/src/3rdparty/libwebp/src/dsp/cpu.h
+ +++ b/src/3rdparty/libwebp/src/dsp/cpu.h
+ @@ -14,6 +14,8 @@
+@@ -8,10 +8,10 @@ index 57a40d8..8cf3e92 100644
+
+ +#include <qglobal.h>
+ +
++ #include <stddef.h>
++
+ #ifdef HAVE_CONFIG_H
+- #include "src/webp/config.h"
+- #endif
+-@@ -43,12 +45,12 @@
++@@ -48,12 +50,12 @@
+
+ #if !defined(HAVE_CONFIG_H)
+ #if defined(_MSC_VER) && _MSC_VER > 1310 && \
+@@ -26,13 +26,13 @@ index 57a40d8..8cf3e92 100644
+ #define WEBP_MSC_SSE41 // Visual C++ SSE4.1 targets
+ #endif
+ #endif
+-@@ -97,7 +99,8 @@
+- // arm_neon.h. Compile errors were seen with Visual Studio 2019 16.4 with
++@@ -106,7 +108,8 @@
+ // vtbl4_u8(); a fix was made in 16.6.
+- #if defined(_MSC_VER) && ((_MSC_VER >= 1700 && defined(_M_ARM)) || \
+-- (_MSC_VER >= 1926 && defined(_M_ARM64)))
+-+ (_MSC_VER >= 1926 && defined(_M_ARM64))) && \
+-+ !defined(__clang__) && (QT_CONFIG_neon == 1)
++ #if defined(_MSC_VER) && \
++ ((_MSC_VER >= 1700 && defined(_M_ARM)) || \
++- (_MSC_VER >= 1926 && (defined(_M_ARM64) || defined(_M_ARM64EC))))
+++ (_MSC_VER >= 1926 && (defined(_M_ARM64) || defined(_M_ARM64EC)))) && \
+++ !defined(__clang__) && (QT_CONFIG_neon == 1)
+ #define WEBP_USE_NEON
+ #define WEBP_USE_INTRINSICS
+ #endif
+diff --git a/qtimageformats/src/3rdparty/libwebp/qt_attribution.json b/qtimageformats/src/3rdparty/libwebp/qt_attribution.json
+index 75ba3764c72f..f1ddc6e1ff90 100644
+--- a/qtimageformats/src/3rdparty/libwebp/qt_attribution.json
++++ b/qtimageformats/src/3rdparty/libwebp/qt_attribution.json
+@@ -6,7 +6,8 @@
+
+ "Description": "WebP is a new image format that provides lossless and lossy compression for images on the web.",
+ "Homepage": "https://developers.google.com/speed/webp/",
+- "Version": "1.2.4",
++ "Version": "1.3.2",
++ "DownloadLocation": "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.3.2.tar.gz",
+ "License": "BSD 3-clause \"New\" or \"Revised\" License",
+ "LicenseId": "BSD-3-Clause",
+ "LicenseFile": "COPYING",
+diff --git a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv.c b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv.c
+index 8b3ab7216b45..a07456488843 100644
+--- a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv.c
++++ b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv.c
+@@ -15,15 +15,21 @@
+
+ #include <assert.h>
+ #include <limits.h>
+-#include <math.h>
++#include <stddef.h>
+ #include <stdlib.h>
+ #include <string.h>
+
+ #include "src/webp/types.h"
+-#include "src/dsp/cpu.h"
++#include "sharpyuv/sharpyuv_cpu.h"
+ #include "sharpyuv/sharpyuv_dsp.h"
+ #include "sharpyuv/sharpyuv_gamma.h"
+
++//------------------------------------------------------------------------------
++
++int SharpYuvGetVersion(void) {
++ return SHARPYUV_VERSION;
++}
++
+ //------------------------------------------------------------------------------
+ // Sharp RGB->YUV conversion
+
+@@ -414,24 +420,46 @@ static int DoSharpArgbToYuv(const uint8_t* r_ptr, const uint8_t* g_ptr,
+ }
+ #undef SAFE_ALLOC
+
++#if defined(WEBP_USE_THREAD) && !defined(_WIN32)
++#include <pthread.h> // NOLINT
++
++#define LOCK_ACCESS \
++ static pthread_mutex_t sharpyuv_lock = PTHREAD_MUTEX_INITIALIZER; \
++ if (pthread_mutex_lock(&sharpyuv_lock)) return
++#define UNLOCK_ACCESS_AND_RETURN \
++ do { \
++ (void)pthread_mutex_unlock(&sharpyuv_lock); \
++ return; \
++ } while (0)
++#else // !(defined(WEBP_USE_THREAD) && !defined(_WIN32))
++#define LOCK_ACCESS do {} while (0)
++#define UNLOCK_ACCESS_AND_RETURN return
++#endif // defined(WEBP_USE_THREAD) && !defined(_WIN32)
++
+ // Hidden exported init function.
+-// By default SharpYuvConvert calls it with NULL. If needed, users can declare
+-// it as extern and call it with a VP8CPUInfo function.
+-extern void SharpYuvInit(VP8CPUInfo cpu_info_func);
++// By default SharpYuvConvert calls it with SharpYuvGetCPUInfo. If needed,
++// users can declare it as extern and call it with an alternate VP8CPUInfo
++// function.
++extern VP8CPUInfo SharpYuvGetCPUInfo;
++SHARPYUV_EXTERN void SharpYuvInit(VP8CPUInfo cpu_info_func);
+ void SharpYuvInit(VP8CPUInfo cpu_info_func) {
+ static volatile VP8CPUInfo sharpyuv_last_cpuinfo_used =
+ (VP8CPUInfo)&sharpyuv_last_cpuinfo_used;
+- const int initialized =
+- (sharpyuv_last_cpuinfo_used != (VP8CPUInfo)&sharpyuv_last_cpuinfo_used);
+- if (cpu_info_func == NULL && initialized) return;
+- if (sharpyuv_last_cpuinfo_used == cpu_info_func) return;
+-
+- SharpYuvInitDsp(cpu_info_func);
+- if (!initialized) {
+- SharpYuvInitGammaTables();
++ LOCK_ACCESS;
++ // Only update SharpYuvGetCPUInfo when called from external code to avoid a
++ // race on reading the value in SharpYuvConvert().
++ if (cpu_info_func != (VP8CPUInfo)&SharpYuvGetCPUInfo) {
++ SharpYuvGetCPUInfo = cpu_info_func;
++ }
++ if (sharpyuv_last_cpuinfo_used == SharpYuvGetCPUInfo) {
++ UNLOCK_ACCESS_AND_RETURN;
+ }
+
+- sharpyuv_last_cpuinfo_used = cpu_info_func;
++ SharpYuvInitDsp();
++ SharpYuvInitGammaTables();
++
++ sharpyuv_last_cpuinfo_used = SharpYuvGetCPUInfo;
++ UNLOCK_ACCESS_AND_RETURN;
+ }
+
+ int SharpYuvConvert(const void* r_ptr, const void* g_ptr,
+@@ -467,7 +495,8 @@ int SharpYuvConvert(const void* r_ptr, const void* g_ptr,
+ // Stride should be even for uint16_t buffers.
+ return 0;
+ }
+- SharpYuvInit(NULL);
++ // The address of the function pointer is used to avoid a read race.
++ SharpYuvInit((VP8CPUInfo)&SharpYuvGetCPUInfo);
+
+ // Add scaling factor to go from rgb_bit_depth to yuv_bit_depth, to the
+ // rgb->yuv conversion matrix.
+diff --git a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv.h b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv.h
+index 9386ea21850a..7b9904d6f956 100644
+--- a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv.h
++++ b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv.h
+@@ -12,16 +12,32 @@
+ #ifndef WEBP_SHARPYUV_SHARPYUV_H_
+ #define WEBP_SHARPYUV_SHARPYUV_H_
+
+-#include <inttypes.h>
+-
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
++#ifndef SHARPYUV_EXTERN
++#ifdef WEBP_EXTERN
++#define SHARPYUV_EXTERN WEBP_EXTERN
++#else
++// This explicitly marks library functions and allows for changing the
++// signature for e.g., Windows DLL builds.
++#if defined(__GNUC__) && __GNUC__ >= 4
++#define SHARPYUV_EXTERN extern __attribute__((visibility("default")))
++#else
++#if defined(_MSC_VER) && defined(WEBP_DLL)
++#define SHARPYUV_EXTERN __declspec(dllexport)
++#else
++#define SHARPYUV_EXTERN extern
++#endif /* _MSC_VER && WEBP_DLL */
++#endif /* __GNUC__ >= 4 */
++#endif /* WEBP_EXTERN */
++#endif /* SHARPYUV_EXTERN */
++
+ // SharpYUV API version following the convention from semver.org
+ #define SHARPYUV_VERSION_MAJOR 0
+-#define SHARPYUV_VERSION_MINOR 1
+-#define SHARPYUV_VERSION_PATCH 0
++#define SHARPYUV_VERSION_MINOR 2
++#define SHARPYUV_VERSION_PATCH 1
+ // Version as a uint32_t. The major number is the high 8 bits.
+ // The minor number is the middle 8 bits. The patch number is the low 16 bits.
+ #define SHARPYUV_MAKE_VERSION(MAJOR, MINOR, PATCH) \
+@@ -30,6 +46,10 @@ extern "C" {
+ SHARPYUV_MAKE_VERSION(SHARPYUV_VERSION_MAJOR, SHARPYUV_VERSION_MINOR, \
+ SHARPYUV_VERSION_PATCH)
+
++// Returns the library's version number, packed in hexadecimal. See
++// SHARPYUV_VERSION.
++SHARPYUV_EXTERN int SharpYuvGetVersion(void);
++
+ // RGB to YUV conversion matrix, in 16 bit fixed point.
+ // y = rgb_to_y[0] * r + rgb_to_y[1] * g + rgb_to_y[2] * b + rgb_to_y[3]
+ // u = rgb_to_u[0] * r + rgb_to_u[1] * g + rgb_to_u[2] * b + rgb_to_u[3]
+@@ -65,11 +85,13 @@ typedef struct {
+ // adjacent pixels on the y, u and v channels. If yuv_bit_depth > 8, they
+ // should be multiples of 2.
+ // width, height: width and height of the image in pixels
+-int SharpYuvConvert(const void* r_ptr, const void* g_ptr, const void* b_ptr,
+- int rgb_step, int rgb_stride, int rgb_bit_depth,
+- void* y_ptr, int y_stride, void* u_ptr, int u_stride,
+- void* v_ptr, int v_stride, int yuv_bit_depth, int width,
+- int height, const SharpYuvConversionMatrix* yuv_matrix);
++SHARPYUV_EXTERN int SharpYuvConvert(const void* r_ptr, const void* g_ptr,
++ const void* b_ptr, int rgb_step,
++ int rgb_stride, int rgb_bit_depth,
++ void* y_ptr, int y_stride, void* u_ptr,
++ int u_stride, void* v_ptr, int v_stride,
++ int yuv_bit_depth, int width, int height,
++ const SharpYuvConversionMatrix* yuv_matrix);
+
+ // TODO(b/194336375): Add YUV444 to YUV420 conversion. Maybe also add 422
+ // support (it's rarely used in practice, especially for images).
+diff --git a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_cpu.c b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_cpu.c
+new file mode 100644
+index 000000000000..29425a0c4918
+--- /dev/null
++++ b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_cpu.c
+@@ -0,0 +1,14 @@
++// Copyright 2022 Google Inc. All Rights Reserved.
++//
++// Use of this source code is governed by a BSD-style license
++// that can be found in the COPYING file in the root of the source
++// tree. An additional intellectual property rights grant can be found
++// in the file PATENTS. All contributing project authors may
++// be found in the AUTHORS file in the root of the source tree.
++// -----------------------------------------------------------------------------
++//
++#include "sharpyuv/sharpyuv_cpu.h"
++
++// Include src/dsp/cpu.c to create SharpYuvGetCPUInfo from VP8GetCPUInfo. The
++// function pointer is renamed in sharpyuv_cpu.h.
++#include "src/dsp/cpu.c"
+diff --git a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_cpu.h b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_cpu.h
+new file mode 100644
+index 000000000000..176ca3eb1682
+--- /dev/null
++++ b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_cpu.h
+@@ -0,0 +1,22 @@
++// Copyright 2022 Google Inc. All Rights Reserved.
++//
++// Use of this source code is governed by a BSD-style license
++// that can be found in the COPYING file in the root of the source
++// tree. An additional intellectual property rights grant can be found
++// in the file PATENTS. All contributing project authors may
++// be found in the AUTHORS file in the root of the source tree.
++// -----------------------------------------------------------------------------
++//
++#ifndef WEBP_SHARPYUV_SHARPYUV_CPU_H_
++#define WEBP_SHARPYUV_SHARPYUV_CPU_H_
++
++#include "sharpyuv/sharpyuv.h"
++
++// Avoid exporting SharpYuvGetCPUInfo in shared object / DLL builds.
++// SharpYuvInit() replaces the use of the function pointer.
++#undef WEBP_EXTERN
++#define WEBP_EXTERN extern
++#define VP8GetCPUInfo SharpYuvGetCPUInfo
++#include "src/dsp/cpu.h"
++
++#endif // WEBP_SHARPYUV_SHARPYUV_CPU_H_
+diff --git a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_csp.c b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_csp.c
+index 5334fa64fa93..0ad22be9458c 100644
+--- a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_csp.c
++++ b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_csp.c
+@@ -13,7 +13,7 @@
+
+ #include <assert.h>
+ #include <math.h>
+-#include <string.h>
++#include <stddef.h>
+
+ static int ToFixed16(float f) { return (int)floor(f * (1 << 16) + 0.5f); }
+
+diff --git a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_csp.h b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_csp.h
+index 63c99ef5cd5b..3214e3ac6075 100644
+--- a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_csp.h
++++ b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_csp.h
+@@ -35,8 +35,9 @@ typedef struct {
+ } SharpYuvColorSpace;
+
+ // Fills in 'matrix' for the given YUVColorSpace.
+-void SharpYuvComputeConversionMatrix(const SharpYuvColorSpace* yuv_color_space,
+- SharpYuvConversionMatrix* matrix);
++SHARPYUV_EXTERN void SharpYuvComputeConversionMatrix(
++ const SharpYuvColorSpace* yuv_color_space,
++ SharpYuvConversionMatrix* matrix);
+
+ // Enums for precomputed conversion matrices.
+ typedef enum {
+@@ -49,7 +50,7 @@ typedef enum {
+ } SharpYuvMatrixType;
+
+ // Returns a pointer to a matrix for one of the predefined colorspaces.
+-const SharpYuvConversionMatrix* SharpYuvGetConversionMatrix(
++SHARPYUV_EXTERN const SharpYuvConversionMatrix* SharpYuvGetConversionMatrix(
+ SharpYuvMatrixType matrix_type);
+
+ #ifdef __cplusplus
+diff --git a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_dsp.c b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_dsp.c
+index 956fa7ce5506..0da3efc0b813 100644
+--- a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_dsp.c
++++ b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_dsp.c
+@@ -16,7 +16,7 @@
+ #include <assert.h>
+ #include <stdlib.h>
+
+-#include "src/dsp/cpu.h"
++#include "sharpyuv/sharpyuv_cpu.h"
+
+ //-----------------------------------------------------------------------------
+
+@@ -72,26 +72,28 @@ void (*SharpYuvFilterRow)(const int16_t* A, const int16_t* B, int len,
+ const uint16_t* best_y, uint16_t* out,
+ int bit_depth);
+
++extern VP8CPUInfo SharpYuvGetCPUInfo;
+ extern void InitSharpYuvSSE2(void);
+ extern void InitSharpYuvNEON(void);
+
+-void SharpYuvInitDsp(VP8CPUInfo cpu_info_func) {
+- (void)cpu_info_func;
+-
++void SharpYuvInitDsp(void) {
+ #if !WEBP_NEON_OMIT_C_CODE
+ SharpYuvUpdateY = SharpYuvUpdateY_C;
+ SharpYuvUpdateRGB = SharpYuvUpdateRGB_C;
+ SharpYuvFilterRow = SharpYuvFilterRow_C;
+ #endif
+
++ if (SharpYuvGetCPUInfo != NULL) {
+ #if defined(WEBP_HAVE_SSE2)
+- if (cpu_info_func == NULL || cpu_info_func(kSSE2)) {
+- InitSharpYuvSSE2();
+- }
++ if (SharpYuvGetCPUInfo(kSSE2)) {
++ InitSharpYuvSSE2();
++ }
+ #endif // WEBP_HAVE_SSE2
++ }
+
+ #if defined(WEBP_HAVE_NEON)
+- if (WEBP_NEON_OMIT_C_CODE || cpu_info_func == NULL || cpu_info_func(kNEON)) {
++ if (WEBP_NEON_OMIT_C_CODE ||
++ (SharpYuvGetCPUInfo != NULL && SharpYuvGetCPUInfo(kNEON))) {
+ InitSharpYuvNEON();
+ }
+ #endif // WEBP_HAVE_NEON
+diff --git a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_dsp.h b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_dsp.h
+index e561d8d3d040..805fbadbf657 100644
+--- a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_dsp.h
++++ b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_dsp.h
+@@ -12,9 +12,8 @@
+ #ifndef WEBP_SHARPYUV_SHARPYUV_DSP_H_
+ #define WEBP_SHARPYUV_SHARPYUV_DSP_H_
+
+-#include <stdint.h>
+-
+-#include "src/dsp/cpu.h"
++#include "sharpyuv/sharpyuv_cpu.h"
++#include "src/webp/types.h"
+
+ extern uint64_t (*SharpYuvUpdateY)(const uint16_t* src, const uint16_t* ref,
+ uint16_t* dst, int len, int bit_depth);
+@@ -24,6 +23,6 @@ extern void (*SharpYuvFilterRow)(const int16_t* A, const int16_t* B, int len,
+ const uint16_t* best_y, uint16_t* out,
+ int bit_depth);
+
+-void SharpYuvInitDsp(VP8CPUInfo cpu_info_func);
++void SharpYuvInitDsp(void);
+
+ #endif // WEBP_SHARPYUV_SHARPYUV_DSP_H_
+diff --git a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_gamma.c b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_gamma.c
+index 05b5436f831b..20ab2da6bcbf 100644
+--- a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_gamma.c
++++ b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_gamma.c
+@@ -13,7 +13,6 @@
+
+ #include <assert.h>
+ #include <math.h>
+-#include <stdint.h>
+
+ #include "src/webp/types.h"
+
+diff --git a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_gamma.h b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_gamma.h
+index 2f1a3ff4a03e..d13aff59e185 100644
+--- a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_gamma.h
++++ b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_gamma.h
+@@ -12,7 +12,7 @@
+ #ifndef WEBP_SHARPYUV_SHARPYUV_GAMMA_H_
+ #define WEBP_SHARPYUV_SHARPYUV_GAMMA_H_
+
+-#include <stdint.h>
++#include "src/webp/types.h"
+
+ #ifdef __cplusplus
+ extern "C" {
+diff --git a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_neon.c b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_neon.c
+index 5cf6aaffb07d..5840914865e0 100644
+--- a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_neon.c
++++ b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_neon.c
+@@ -17,11 +17,6 @@
+ #include <assert.h>
+ #include <stdlib.h>
+ #include <arm_neon.h>
+-#endif
+-
+-extern void InitSharpYuvNEON(void);
+-
+-#if defined(WEBP_USE_NEON)
+
+ static uint16_t clip_NEON(int v, int max) {
+ return (v < 0) ? 0 : (v > max) ? max : (uint16_t)v;
+@@ -169,6 +164,8 @@ static void SharpYuvFilterRow_NEON(const int16_t* A, const int16_t* B, int len,
+
+ //------------------------------------------------------------------------------
+
++extern void InitSharpYuvNEON(void);
++
+ WEBP_TSAN_IGNORE_FUNCTION void InitSharpYuvNEON(void) {
+ SharpYuvUpdateY = SharpYuvUpdateY_NEON;
+ SharpYuvUpdateRGB = SharpYuvUpdateRGB_NEON;
+@@ -177,6 +174,8 @@ WEBP_TSAN_IGNORE_FUNCTION void InitSharpYuvNEON(void) {
+
+ #else // !WEBP_USE_NEON
+
++extern void InitSharpYuvNEON(void);
++
+ void InitSharpYuvNEON(void) {}
+
+ #endif // WEBP_USE_NEON
+diff --git a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_sse2.c b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_sse2.c
+index 19438737480a..9744d1bb6cfe 100644
+--- a/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_sse2.c
++++ b/qtimageformats/src/3rdparty/libwebp/sharpyuv/sharpyuv_sse2.c
+@@ -16,11 +16,6 @@
+ #if defined(WEBP_USE_SSE2)
+ #include <stdlib.h>
+ #include <emmintrin.h>
+-#endif
+-
+-extern void InitSharpYuvSSE2(void);
+-
+-#if defined(WEBP_USE_SSE2)
+
+ static uint16_t clip_SSE2(int v, int max) {
+ return (v < 0) ? 0 : (v > max) ? max : (uint16_t)v;
+@@ -199,6 +194,8 @@ WEBP_TSAN_IGNORE_FUNCTION void InitSharpYuvSSE2(void) {
+ }
+ #else // !WEBP_USE_SSE2
+
++extern void InitSharpYuvSSE2(void);
++
+ void InitSharpYuvSSE2(void) {}
+
+ #endif // WEBP_USE_SSE2
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dec/tree_dec.c b/qtimageformats/src/3rdparty/libwebp/src/dec/tree_dec.c
+index 1c6fdea27cc6..243460595329 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dec/tree_dec.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dec/tree_dec.c
+@@ -12,10 +12,11 @@
+ // Author: Skal (pascal.massimino@gmail.com)
+
+ #include "src/dec/vp8i_dec.h"
++#include "src/dsp/cpu.h"
+ #include "src/utils/bit_reader_inl_utils.h"
+
+ #if !defined(USE_GENERIC_TREE)
+-#if !defined(__arm__) && !defined(_M_ARM) && !defined(__aarch64__)
++#if !defined(__arm__) && !defined(_M_ARM) && !WEBP_AARCH64
+ // using a table is ~1-2% slower on ARM. Prefer the coded-tree approach then.
+ #define USE_GENERIC_TREE 1 // ALTERNATE_CODE
+ #else
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dec/vp8_dec.c b/qtimageformats/src/3rdparty/libwebp/src/dec/vp8_dec.c
+index 2003935ec464..20b92e84c4fc 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dec/vp8_dec.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dec/vp8_dec.c
+@@ -494,6 +494,8 @@ static int GetCoeffsAlt(VP8BitReader* const br,
+ return 16;
+ }
+
++extern VP8CPUInfo VP8GetCPUInfo;
++
+ WEBP_DSP_INIT_FUNC(InitGetCoeffs) {
+ if (VP8GetCPUInfo != NULL && VP8GetCPUInfo(kSlowSSSE3)) {
+ GetCoeffs = GetCoeffsAlt;
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dec/vp8i_dec.h b/qtimageformats/src/3rdparty/libwebp/src/dec/vp8i_dec.h
+index 30c1bd3ef9ba..7929fd7506a4 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dec/vp8i_dec.h
++++ b/qtimageformats/src/3rdparty/libwebp/src/dec/vp8i_dec.h
+@@ -31,8 +31,8 @@ extern "C" {
+
+ // version numbers
+ #define DEC_MAJ_VERSION 1
+-#define DEC_MIN_VERSION 2
+-#define DEC_REV_VERSION 4
++#define DEC_MIN_VERSION 3
++#define DEC_REV_VERSION 2
+
+ // YUV-cache parameters. Cache is 32-bytes wide (= one cacheline).
+ // Constraints are: We need to store one 16x16 block of luma samples (y),
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dec/vp8l_dec.c b/qtimageformats/src/3rdparty/libwebp/src/dec/vp8l_dec.c
+index 13480551282e..7995313fa19c 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dec/vp8l_dec.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dec/vp8l_dec.c
+@@ -253,11 +253,11 @@ static int ReadHuffmanCodeLengths(
+ int symbol;
+ int max_symbol;
+ int prev_code_len = DEFAULT_CODE_LENGTH;
+- HuffmanCode table[1 << LENGTHS_TABLE_BITS];
++ HuffmanTables tables;
+
+- if (!VP8LBuildHuffmanTable(table, LENGTHS_TABLE_BITS,
+- code_length_code_lengths,
+- NUM_CODE_LENGTH_CODES)) {
++ if (!VP8LHuffmanTablesAllocate(1 << LENGTHS_TABLE_BITS, &tables) ||
++ !VP8LBuildHuffmanTable(&tables, LENGTHS_TABLE_BITS,
++ code_length_code_lengths, NUM_CODE_LENGTH_CODES)) {
+ goto End;
+ }
+
+@@ -277,7 +277,7 @@ static int ReadHuffmanCodeLengths(
+ int code_len;
+ if (max_symbol-- == 0) break;
+ VP8LFillBitWindow(br);
+- p = &table[VP8LPrefetchBits(br) & LENGTHS_TABLE_MASK];
++ p = &tables.curr_segment->start[VP8LPrefetchBits(br) & LENGTHS_TABLE_MASK];
+ VP8LSetBitPos(br, br->bit_pos_ + p->bits);
+ code_len = p->value;
+ if (code_len < kCodeLengthLiterals) {
+@@ -300,6 +300,7 @@ static int ReadHuffmanCodeLengths(
+ ok = 1;
+
+ End:
++ VP8LHuffmanTablesDeallocate(&tables);
+ if (!ok) dec->status_ = VP8_STATUS_BITSTREAM_ERROR;
+ return ok;
+ }
+@@ -307,7 +308,8 @@ static int ReadHuffmanCodeLengths(
+ // 'code_lengths' is pre-allocated temporary buffer, used for creating Huffman
+ // tree.
+ static int ReadHuffmanCode(int alphabet_size, VP8LDecoder* const dec,
+- int* const code_lengths, HuffmanCode* const table) {
++ int* const code_lengths,
++ HuffmanTables* const table) {
+ int ok = 0;
+ int size = 0;
+ VP8LBitReader* const br = &dec->br_;
+@@ -362,8 +364,7 @@ static int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize,
+ VP8LMetadata* const hdr = &dec->hdr_;
+ uint32_t* huffman_image = NULL;
+ HTreeGroup* htree_groups = NULL;
+- HuffmanCode* huffman_tables = NULL;
+- HuffmanCode* huffman_table = NULL;
++ HuffmanTables* huffman_tables = &hdr->huffman_tables_;
+ int num_htree_groups = 1;
+ int num_htree_groups_max = 1;
+ int max_alphabet_size = 0;
+@@ -372,6 +373,10 @@ static int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize,
+ int* mapping = NULL;
+ int ok = 0;
+
++ // Check the table has been 0 initialized (through InitMetadata).
++ assert(huffman_tables->root.start == NULL);
++ assert(huffman_tables->curr_segment == NULL);
++
+ if (allow_recursion && VP8LReadBits(br, 1)) {
+ // use meta Huffman codes.
+ const int huffman_precision = VP8LReadBits(br, 3) + 2;
+@@ -434,16 +439,15 @@ static int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize,
+
+ code_lengths = (int*)WebPSafeCalloc((uint64_t)max_alphabet_size,
+ sizeof(*code_lengths));
+- huffman_tables = (HuffmanCode*)WebPSafeMalloc(num_htree_groups * table_size,
+- sizeof(*huffman_tables));
+ htree_groups = VP8LHtreeGroupsNew(num_htree_groups);
+
+- if (htree_groups == NULL || code_lengths == NULL || huffman_tables == NULL) {
++ if (htree_groups == NULL || code_lengths == NULL ||
++ !VP8LHuffmanTablesAllocate(num_htree_groups * table_size,
++ huffman_tables)) {
+ dec->status_ = VP8_STATUS_OUT_OF_MEMORY;
+ goto Error;
+ }
+
+- huffman_table = huffman_tables;
+ for (i = 0; i < num_htree_groups_max; ++i) {
+ // If the index "i" is unused in the Huffman image, just make sure the
+ // coefficients are valid but do not store them.
+@@ -468,19 +472,20 @@ static int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize,
+ int max_bits = 0;
+ for (j = 0; j < HUFFMAN_CODES_PER_META_CODE; ++j) {
+ int alphabet_size = kAlphabetSize[j];
+- htrees[j] = huffman_table;
+ if (j == 0 && color_cache_bits > 0) {
+ alphabet_size += (1 << color_cache_bits);
+ }
+- size = ReadHuffmanCode(alphabet_size, dec, code_lengths, huffman_table);
++ size =
++ ReadHuffmanCode(alphabet_size, dec, code_lengths, huffman_tables);
++ htrees[j] = huffman_tables->curr_segment->curr_table;
+ if (size == 0) {
+ goto Error;
+ }
+ if (is_trivial_literal && kLiteralMap[j] == 1) {
+- is_trivial_literal = (huffman_table->bits == 0);
++ is_trivial_literal = (htrees[j]->bits == 0);
+ }
+- total_size += huffman_table->bits;
+- huffman_table += size;
++ total_size += htrees[j]->bits;
++ huffman_tables->curr_segment->curr_table += size;
+ if (j <= ALPHA) {
+ int local_max_bits = code_lengths[0];
+ int k;
+@@ -515,14 +520,13 @@ static int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize,
+ hdr->huffman_image_ = huffman_image;
+ hdr->num_htree_groups_ = num_htree_groups;
+ hdr->htree_groups_ = htree_groups;
+- hdr->huffman_tables_ = huffman_tables;
+
+ Error:
+ WebPSafeFree(code_lengths);
+ WebPSafeFree(mapping);
+ if (!ok) {
+ WebPSafeFree(huffman_image);
+- WebPSafeFree(huffman_tables);
++ VP8LHuffmanTablesDeallocate(huffman_tables);
+ VP8LHtreeGroupsFree(htree_groups);
+ }
+ return ok;
+@@ -1336,7 +1340,7 @@ static int ReadTransform(int* const xsize, int const* ysize,
+ ok = ok && ExpandColorMap(num_colors, transform);
+ break;
+ }
+- case SUBTRACT_GREEN:
++ case SUBTRACT_GREEN_TRANSFORM:
+ break;
+ default:
+ assert(0); // can't happen
+@@ -1358,7 +1362,7 @@ static void ClearMetadata(VP8LMetadata* const hdr) {
+ assert(hdr != NULL);
+
+ WebPSafeFree(hdr->huffman_image_);
+- WebPSafeFree(hdr->huffman_tables_);
++ VP8LHuffmanTablesDeallocate(&hdr->huffman_tables_);
+ VP8LHtreeGroupsFree(hdr->htree_groups_);
+ VP8LColorCacheClear(&hdr->color_cache_);
+ VP8LColorCacheClear(&hdr->saved_color_cache_);
+@@ -1673,7 +1677,7 @@ int VP8LDecodeImage(VP8LDecoder* const dec) {
+
+ if (dec == NULL) return 0;
+
+- assert(dec->hdr_.huffman_tables_ != NULL);
++ assert(dec->hdr_.huffman_tables_.root.start != NULL);
+ assert(dec->hdr_.htree_groups_ != NULL);
+ assert(dec->hdr_.num_htree_groups_ > 0);
+
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dec/vp8li_dec.h b/qtimageformats/src/3rdparty/libwebp/src/dec/vp8li_dec.h
+index 72b2e8612084..32540a4b88a0 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dec/vp8li_dec.h
++++ b/qtimageformats/src/3rdparty/libwebp/src/dec/vp8li_dec.h
+@@ -51,7 +51,7 @@ typedef struct {
+ uint32_t* huffman_image_;
+ int num_htree_groups_;
+ HTreeGroup* htree_groups_;
+- HuffmanCode* huffman_tables_;
++ HuffmanTables huffman_tables_;
+ } VP8LMetadata;
+
+ typedef struct VP8LDecoder VP8LDecoder;
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dec/webp_dec.c b/qtimageformats/src/3rdparty/libwebp/src/dec/webp_dec.c
+index 77a54c55d287..f557868b9985 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dec/webp_dec.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dec/webp_dec.c
+@@ -179,7 +179,7 @@ static VP8StatusCode ParseOptionalChunks(const uint8_t** const data,
+ return VP8_STATUS_BITSTREAM_ERROR; // Not a valid chunk size.
+ }
+ // For odd-sized chunk-payload, there's one byte padding at the end.
+- disk_chunk_size = (CHUNK_HEADER_SIZE + chunk_size + 1) & ~1;
++ disk_chunk_size = (CHUNK_HEADER_SIZE + chunk_size + 1) & ~1u;
+ total_size += disk_chunk_size;
+
+ // Check that total bytes skipped so far does not exceed riff_size.
+@@ -658,19 +658,26 @@ uint8_t* WebPDecodeBGRA(const uint8_t* data, size_t data_size,
+ uint8_t* WebPDecodeYUV(const uint8_t* data, size_t data_size,
+ int* width, int* height, uint8_t** u, uint8_t** v,
+ int* stride, int* uv_stride) {
+- WebPDecBuffer output; // only to preserve the side-infos
+- uint8_t* const out = Decode(MODE_YUV, data, data_size,
+- width, height, &output);
+-
+- if (out != NULL) {
+- const WebPYUVABuffer* const buf = &output.u.YUVA;
+- *u = buf->u;
+- *v = buf->v;
+- *stride = buf->y_stride;
+- *uv_stride = buf->u_stride;
+- assert(buf->u_stride == buf->v_stride);
+- }
+- return out;
++ // data, width and height are checked by Decode().
++ if (u == NULL || v == NULL || stride == NULL || uv_stride == NULL) {
++ return NULL;
++ }
++
++ {
++ WebPDecBuffer output; // only to preserve the side-infos
++ uint8_t* const out = Decode(MODE_YUV, data, data_size,
++ width, height, &output);
++
++ if (out != NULL) {
++ const WebPYUVABuffer* const buf = &output.u.YUVA;
++ *u = buf->u;
++ *v = buf->v;
++ *stride = buf->y_stride;
++ *uv_stride = buf->u_stride;
++ assert(buf->u_stride == buf->v_stride);
++ }
++ return out;
++ }
+ }
+
+ static void DefaultFeatures(WebPBitstreamFeatures* const features) {
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/demux/demux.c b/qtimageformats/src/3rdparty/libwebp/src/demux/demux.c
+index 41387ec2d657..4b0d3f59e913 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/demux/demux.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/demux/demux.c
+@@ -24,8 +24,8 @@
+ #include "src/webp/format_constants.h"
+
+ #define DMUX_MAJ_VERSION 1
+-#define DMUX_MIN_VERSION 2
+-#define DMUX_REV_VERSION 4
++#define DMUX_MIN_VERSION 3
++#define DMUX_REV_VERSION 2
+
+ typedef struct {
+ size_t start_; // start location of the data
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/alpha_processing.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/alpha_processing.c
+index 1892929a431b..1d152f24dada 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/alpha_processing.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/alpha_processing.c
+@@ -425,6 +425,7 @@ void (*WebPAlphaReplace)(uint32_t* src, int length, uint32_t color);
+ //------------------------------------------------------------------------------
+ // Init function
+
++extern VP8CPUInfo VP8GetCPUInfo;
+ extern void WebPInitAlphaProcessingMIPSdspR2(void);
+ extern void WebPInitAlphaProcessingSSE2(void);
+ extern void WebPInitAlphaProcessingSSE41(void);
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/alpha_processing_sse2.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/alpha_processing_sse2.c
+index a5f8c9f7c766..f0843d0febcf 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/alpha_processing_sse2.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/alpha_processing_sse2.c
+@@ -26,8 +26,8 @@ static int DispatchAlpha_SSE2(const uint8_t* WEBP_RESTRICT alpha,
+ uint32_t alpha_and = 0xff;
+ int i, j;
+ const __m128i zero = _mm_setzero_si128();
+- const __m128i rgb_mask = _mm_set1_epi32(0xffffff00u); // to preserve RGB
+- const __m128i all_0xff = _mm_set_epi32(0, 0, ~0u, ~0u);
++ const __m128i rgb_mask = _mm_set1_epi32((int)0xffffff00); // to preserve RGB
++ const __m128i all_0xff = _mm_set_epi32(0, 0, ~0, ~0);
+ __m128i all_alphas = all_0xff;
+
+ // We must be able to access 3 extra bytes after the last written byte
+@@ -106,8 +106,8 @@ static int ExtractAlpha_SSE2(const uint8_t* WEBP_RESTRICT argb, int argb_stride,
+ // value is not 0xff if any of the alpha[] is not equal to 0xff.
+ uint32_t alpha_and = 0xff;
+ int i, j;
+- const __m128i a_mask = _mm_set1_epi32(0xffu); // to preserve alpha
+- const __m128i all_0xff = _mm_set_epi32(0, 0, ~0u, ~0u);
++ const __m128i a_mask = _mm_set1_epi32(0xff); // to preserve alpha
++ const __m128i all_0xff = _mm_set_epi32(0, 0, ~0, ~0);
+ __m128i all_alphas = all_0xff;
+
+ // We must be able to access 3 extra bytes after the last written byte
+@@ -178,7 +178,7 @@ static int ExtractAlpha_SSE2(const uint8_t* WEBP_RESTRICT argb, int argb_stride,
+ static void ApplyAlphaMultiply_SSE2(uint8_t* rgba, int alpha_first,
+ int w, int h, int stride) {
+ const __m128i zero = _mm_setzero_si128();
+- const __m128i kMult = _mm_set1_epi16(0x8081u);
++ const __m128i kMult = _mm_set1_epi16((short)0x8081);
+ const __m128i kMask = _mm_set_epi16(0, 0xff, 0xff, 0, 0, 0xff, 0xff, 0);
+ const int kSpan = 4;
+ while (h-- > 0) {
+@@ -267,7 +267,7 @@ static int HasAlpha32b_SSE2(const uint8_t* src, int length) {
+ }
+
+ static void AlphaReplace_SSE2(uint32_t* src, int length, uint32_t color) {
+- const __m128i m_color = _mm_set1_epi32(color);
++ const __m128i m_color = _mm_set1_epi32((int)color);
+ const __m128i zero = _mm_setzero_si128();
+ int i = 0;
+ for (; i + 8 <= length; i += 8) {
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/alpha_processing_sse41.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/alpha_processing_sse41.c
+index cdf877ce49ff..1156ac3417b2 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/alpha_processing_sse41.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/alpha_processing_sse41.c
+@@ -26,7 +26,7 @@ static int ExtractAlpha_SSE41(const uint8_t* WEBP_RESTRICT argb,
+ // value is not 0xff if any of the alpha[] is not equal to 0xff.
+ uint32_t alpha_and = 0xff;
+ int i, j;
+- const __m128i all_0xff = _mm_set1_epi32(~0u);
++ const __m128i all_0xff = _mm_set1_epi32(~0);
+ __m128i all_alphas = all_0xff;
+
+ // We must be able to access 3 extra bytes after the last written byte
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/cost.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/cost.c
+index 460ec4f2a764..73d2140177cb 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/cost.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/cost.c
+@@ -374,6 +374,7 @@ static void SetResidualCoeffs_C(const int16_t* const coeffs,
+ VP8GetResidualCostFunc VP8GetResidualCost;
+ VP8SetResidualCoeffsFunc VP8SetResidualCoeffs;
+
++extern VP8CPUInfo VP8GetCPUInfo;
+ extern void VP8EncDspCostInitMIPS32(void);
+ extern void VP8EncDspCostInitMIPSdspR2(void);
+ extern void VP8EncDspCostInitSSE2(void);
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/cost_neon.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/cost_neon.c
+index 8cc8ce58aa14..6582669cb3f9 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/cost_neon.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/cost_neon.c
+@@ -29,7 +29,7 @@ static void SetResidualCoeffs_NEON(const int16_t* const coeffs,
+ const uint8x16_t eob = vcombine_u8(vqmovn_u16(eob_0), vqmovn_u16(eob_1));
+ const uint8x16_t masked = vandq_u8(eob, vld1q_u8(position));
+
+-#ifdef __aarch64__
++#if WEBP_AARCH64
+ res->last = vmaxvq_u8(masked) - 1;
+ #else
+ const uint8x8_t eob_8x8 = vmax_u8(vget_low_u8(masked), vget_high_u8(masked));
+@@ -43,7 +43,7 @@ static void SetResidualCoeffs_NEON(const int16_t* const coeffs,
+
+ vst1_lane_s32(&res->last, vreinterpret_s32_u32(eob_32x2), 0);
+ --res->last;
+-#endif // __aarch64__
++#endif // WEBP_AARCH64
+
+ res->coeffs = coeffs;
+ }
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/cpu.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/cpu.c
+index a4ba7f2cb70e..2234c77b3568 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/cpu.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/cpu.c
+@@ -173,6 +173,7 @@ static int x86CPUInfo(CPUFeature feature) {
+ }
+ return 0;
+ }
++WEBP_EXTERN VP8CPUInfo VP8GetCPUInfo;
+ VP8CPUInfo VP8GetCPUInfo = x86CPUInfo;
+ #elif defined(WEBP_ANDROID_NEON) // NB: needs to be before generic NEON test.
+ static int AndroidCPUInfo(CPUFeature feature) {
+@@ -184,6 +185,7 @@ static int AndroidCPUInfo(CPUFeature feature) {
+ }
+ return 0;
+ }
++WEBP_EXTERN VP8CPUInfo VP8GetCPUInfo;
+ VP8CPUInfo VP8GetCPUInfo = AndroidCPUInfo;
+ #elif defined(EMSCRIPTEN) // also needs to be before generic NEON test
+ // Use compile flags as an indicator of SIMD support instead of a runtime check.
+@@ -208,11 +210,12 @@ static int wasmCPUInfo(CPUFeature feature) {
+ }
+ return 0;
+ }
++WEBP_EXTERN VP8CPUInfo VP8GetCPUInfo;
+ VP8CPUInfo VP8GetCPUInfo = wasmCPUInfo;
+ #elif defined(WEBP_HAVE_NEON)
+ // In most cases this function doesn't check for NEON support (it's assumed by
+ // the configuration), but enables turning off NEON at runtime, for testing
+-// purposes, by setting VP8DecGetCPUInfo = NULL.
++// purposes, by setting VP8GetCPUInfo = NULL.
+ static int armCPUInfo(CPUFeature feature) {
+ if (feature != kNEON) return 0;
+ #if defined(__linux__) && defined(WEBP_HAVE_NEON_RTCD)
+@@ -236,6 +239,7 @@ static int armCPUInfo(CPUFeature feature) {
+ return 1;
+ #endif
+ }
++WEBP_EXTERN VP8CPUInfo VP8GetCPUInfo;
+ VP8CPUInfo VP8GetCPUInfo = armCPUInfo;
+ #elif defined(WEBP_USE_MIPS32) || defined(WEBP_USE_MIPS_DSP_R2) || \
+ defined(WEBP_USE_MSA)
+@@ -247,7 +251,9 @@ static int mipsCPUInfo(CPUFeature feature) {
+ }
+
+ }
++WEBP_EXTERN VP8CPUInfo VP8GetCPUInfo;
+ VP8CPUInfo VP8GetCPUInfo = mipsCPUInfo;
+ #else
++WEBP_EXTERN VP8CPUInfo VP8GetCPUInfo;
+ VP8CPUInfo VP8GetCPUInfo = NULL;
+ #endif
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/cpu.h b/qtimageformats/src/3rdparty/libwebp/src/dsp/cpu.h
+index 8cf3e924a5d8..581ecbd76c2b 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/cpu.h
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/cpu.h
+@@ -16,6 +16,8 @@
+
+ #include <qglobal.h>
+
++#include <stddef.h>
++
+ #ifdef HAVE_CONFIG_H
+ #include "src/webp/config.h"
+ #endif
+@@ -43,6 +45,9 @@
+ #define __has_builtin(x) 0
+ #endif
+
++//------------------------------------------------------------------------------
++// x86 defines.
++
+ #if !defined(HAVE_CONFIG_H)
+ #if defined(_MSC_VER) && _MSC_VER > 1310 && \
+ (defined(_M_X64) || defined(_M_IX86)) && !defined(__clang__)
+@@ -80,6 +85,9 @@
+ #undef WEBP_MSC_SSE41
+ #undef WEBP_MSC_SSE2
+
++//------------------------------------------------------------------------------
++// Arm defines.
++
+ // The intrinsics currently cause compiler errors with arm-nacl-gcc and the
+ // inline assembly would need to be modified for use with Native Client.
+ #if ((defined(__ARM_NEON__) || defined(__aarch64__)) && \
+@@ -98,17 +106,27 @@
+ // inclusion of arm64_neon.h; Visual Studio 2019 includes this file in
+ // arm_neon.h. Compile errors were seen with Visual Studio 2019 16.4 with
+ // vtbl4_u8(); a fix was made in 16.6.
+-#if defined(_MSC_VER) && ((_MSC_VER >= 1700 && defined(_M_ARM)) || \
+- (_MSC_VER >= 1926 && defined(_M_ARM64))) && \
+- !defined(__clang__) && (QT_CONFIG_neon == 1)
++#if defined(_MSC_VER) && \
++ ((_MSC_VER >= 1700 && defined(_M_ARM)) || \
++ (_MSC_VER >= 1926 && (defined(_M_ARM64) || defined(_M_ARM64EC)))) && \
++ !defined(__clang__) && (QT_CONFIG_neon == 1)
+ #define WEBP_USE_NEON
+ #define WEBP_USE_INTRINSICS
+ #endif
+
++#if defined(__aarch64__) || defined(_M_ARM64) || defined(_M_ARM64EC)
++#define WEBP_AARCH64 1
++#else
++#define WEBP_AARCH64 0
++#endif
++
+ #if defined(WEBP_USE_NEON) && !defined(WEBP_HAVE_NEON)
+ #define WEBP_HAVE_NEON
+ #endif
+
++//------------------------------------------------------------------------------
++// MIPS defines.
++
+ #if defined(__mips__) && !defined(__mips64) && defined(__mips_isa_rev) && \
+ (__mips_isa_rev >= 1) && (__mips_isa_rev < 6)
+ #define WEBP_USE_MIPS32
+@@ -124,6 +142,8 @@
+ #define WEBP_USE_MSA
+ #endif
+
++//------------------------------------------------------------------------------
++
+ #ifndef WEBP_DSP_OMIT_C_CODE
+ #define WEBP_DSP_OMIT_C_CODE 1
+ #endif
+@@ -134,13 +154,14 @@
+ #define WEBP_NEON_OMIT_C_CODE 0
+ #endif
+
+-#if !(LOCAL_CLANG_PREREQ(3, 8) || LOCAL_GCC_PREREQ(4, 8) || \
+- defined(__aarch64__))
++#if !(LOCAL_CLANG_PREREQ(3, 8) || LOCAL_GCC_PREREQ(4, 8) || WEBP_AARCH64)
+ #define WEBP_NEON_WORK_AROUND_GCC 1
+ #else
+ #define WEBP_NEON_WORK_AROUND_GCC 0
+ #endif
+
++//------------------------------------------------------------------------------
++
+ // This macro prevents thread_sanitizer from reporting known concurrent writes.
+ #define WEBP_TSAN_IGNORE_FUNCTION
+ #if defined(__has_feature)
+@@ -242,16 +263,7 @@ typedef enum {
+ kMSA
+ } CPUFeature;
+
+-#ifdef __cplusplus
+-extern "C" {
+-#endif
+-
+ // returns true if the CPU supports the feature.
+ typedef int (*VP8CPUInfo)(CPUFeature feature);
+-WEBP_EXTERN VP8CPUInfo VP8GetCPUInfo;
+-
+-#ifdef __cplusplus
+-} // extern "C"
+-#endif
+
+ #endif // WEBP_DSP_CPU_H_
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/dec.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/dec.c
+index 537c70128246..33d8df8a621f 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/dec.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/dec.c
+@@ -734,6 +734,7 @@ VP8SimpleFilterFunc VP8SimpleHFilter16i;
+ void (*VP8DitherCombine8x8)(const uint8_t* dither, uint8_t* dst,
+ int dst_stride);
+
++extern VP8CPUInfo VP8GetCPUInfo;
+ extern void VP8DspInitSSE2(void);
+ extern void VP8DspInitSSE41(void);
+ extern void VP8DspInitNEON(void);
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/dec_neon.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/dec_neon.c
+index fa851707e265..22784cf15ae9 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/dec_neon.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/dec_neon.c
+@@ -1428,7 +1428,7 @@ static WEBP_INLINE void DC8_NEON(uint8_t* dst, int do_top, int do_left) {
+
+ if (do_top) {
+ const uint8x8_t A = vld1_u8(dst - BPS); // top row
+-#if defined(__aarch64__)
++#if WEBP_AARCH64
+ const uint16_t p2 = vaddlv_u8(A);
+ sum_top = vdupq_n_u16(p2);
+ #else
+@@ -1511,7 +1511,7 @@ static WEBP_INLINE void DC16_NEON(uint8_t* dst, int do_top, int do_left) {
+
+ if (do_top) {
+ const uint8x16_t A = vld1q_u8(dst - BPS); // top row
+-#if defined(__aarch64__)
++#if WEBP_AARCH64
+ const uint16_t p3 = vaddlvq_u8(A);
+ sum_top = vdupq_n_u16(p3);
+ #else
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/dec_sse2.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/dec_sse2.c
+index 873aa59e8a97..01e6bcb636f0 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/dec_sse2.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/dec_sse2.c
+@@ -158,10 +158,10 @@ static void Transform_SSE2(const int16_t* in, uint8_t* dst, int do_two) {
+ dst3 = _mm_loadl_epi64((__m128i*)(dst + 3 * BPS));
+ } else {
+ // Load four bytes/pixels per line.
+- dst0 = _mm_cvtsi32_si128(WebPMemToUint32(dst + 0 * BPS));
+- dst1 = _mm_cvtsi32_si128(WebPMemToUint32(dst + 1 * BPS));
+- dst2 = _mm_cvtsi32_si128(WebPMemToUint32(dst + 2 * BPS));
+- dst3 = _mm_cvtsi32_si128(WebPMemToUint32(dst + 3 * BPS));
++ dst0 = _mm_cvtsi32_si128(WebPMemToInt32(dst + 0 * BPS));
++ dst1 = _mm_cvtsi32_si128(WebPMemToInt32(dst + 1 * BPS));
++ dst2 = _mm_cvtsi32_si128(WebPMemToInt32(dst + 2 * BPS));
++ dst3 = _mm_cvtsi32_si128(WebPMemToInt32(dst + 3 * BPS));
+ }
+ // Convert to 16b.
+ dst0 = _mm_unpacklo_epi8(dst0, zero);
+@@ -187,10 +187,10 @@ static void Transform_SSE2(const int16_t* in, uint8_t* dst, int do_two) {
+ _mm_storel_epi64((__m128i*)(dst + 3 * BPS), dst3);
+ } else {
+ // Store four bytes/pixels per line.
+- WebPUint32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32(dst0));
+- WebPUint32ToMem(dst + 1 * BPS, _mm_cvtsi128_si32(dst1));
+- WebPUint32ToMem(dst + 2 * BPS, _mm_cvtsi128_si32(dst2));
+- WebPUint32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32(dst3));
++ WebPInt32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32(dst0));
++ WebPInt32ToMem(dst + 1 * BPS, _mm_cvtsi128_si32(dst1));
++ WebPInt32ToMem(dst + 2 * BPS, _mm_cvtsi128_si32(dst2));
++ WebPInt32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32(dst3));
+ }
+ }
+ }
+@@ -213,10 +213,10 @@ static void TransformAC3(const int16_t* in, uint8_t* dst) {
+ const __m128i m3 = _mm_subs_epi16(B, d4);
+ const __m128i zero = _mm_setzero_si128();
+ // Load the source pixels.
+- __m128i dst0 = _mm_cvtsi32_si128(WebPMemToUint32(dst + 0 * BPS));
+- __m128i dst1 = _mm_cvtsi32_si128(WebPMemToUint32(dst + 1 * BPS));
+- __m128i dst2 = _mm_cvtsi32_si128(WebPMemToUint32(dst + 2 * BPS));
+- __m128i dst3 = _mm_cvtsi32_si128(WebPMemToUint32(dst + 3 * BPS));
++ __m128i dst0 = _mm_cvtsi32_si128(WebPMemToInt32(dst + 0 * BPS));
++ __m128i dst1 = _mm_cvtsi32_si128(WebPMemToInt32(dst + 1 * BPS));
++ __m128i dst2 = _mm_cvtsi32_si128(WebPMemToInt32(dst + 2 * BPS));
++ __m128i dst3 = _mm_cvtsi32_si128(WebPMemToInt32(dst + 3 * BPS));
+ // Convert to 16b.
+ dst0 = _mm_unpacklo_epi8(dst0, zero);
+ dst1 = _mm_unpacklo_epi8(dst1, zero);
+@@ -233,10 +233,10 @@ static void TransformAC3(const int16_t* in, uint8_t* dst) {
+ dst2 = _mm_packus_epi16(dst2, dst2);
+ dst3 = _mm_packus_epi16(dst3, dst3);
+ // Store the results.
+- WebPUint32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32(dst0));
+- WebPUint32ToMem(dst + 1 * BPS, _mm_cvtsi128_si32(dst1));
+- WebPUint32ToMem(dst + 2 * BPS, _mm_cvtsi128_si32(dst2));
+- WebPUint32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32(dst3));
++ WebPInt32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32(dst0));
++ WebPInt32ToMem(dst + 1 * BPS, _mm_cvtsi128_si32(dst1));
++ WebPInt32ToMem(dst + 2 * BPS, _mm_cvtsi128_si32(dst2));
++ WebPInt32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32(dst3));
+ }
+ #undef MUL
+ #endif // USE_TRANSFORM_AC3
+@@ -477,11 +477,11 @@ static WEBP_INLINE void Load8x4_SSE2(const uint8_t* const b, int stride,
+ // A0 = 63 62 61 60 23 22 21 20 43 42 41 40 03 02 01 00
+ // A1 = 73 72 71 70 33 32 31 30 53 52 51 50 13 12 11 10
+ const __m128i A0 = _mm_set_epi32(
+- WebPMemToUint32(&b[6 * stride]), WebPMemToUint32(&b[2 * stride]),
+- WebPMemToUint32(&b[4 * stride]), WebPMemToUint32(&b[0 * stride]));
++ WebPMemToInt32(&b[6 * stride]), WebPMemToInt32(&b[2 * stride]),
++ WebPMemToInt32(&b[4 * stride]), WebPMemToInt32(&b[0 * stride]));
+ const __m128i A1 = _mm_set_epi32(
+- WebPMemToUint32(&b[7 * stride]), WebPMemToUint32(&b[3 * stride]),
+- WebPMemToUint32(&b[5 * stride]), WebPMemToUint32(&b[1 * stride]));
++ WebPMemToInt32(&b[7 * stride]), WebPMemToInt32(&b[3 * stride]),
++ WebPMemToInt32(&b[5 * stride]), WebPMemToInt32(&b[1 * stride]));
+
+ // B0 = 53 43 52 42 51 41 50 40 13 03 12 02 11 01 10 00
+ // B1 = 73 63 72 62 71 61 70 60 33 23 32 22 31 21 30 20
+@@ -540,7 +540,7 @@ static WEBP_INLINE void Store4x4_SSE2(__m128i* const x,
+ uint8_t* dst, int stride) {
+ int i;
+ for (i = 0; i < 4; ++i, dst += stride) {
+- WebPUint32ToMem(dst, _mm_cvtsi128_si32(*x));
++ WebPInt32ToMem(dst, _mm_cvtsi128_si32(*x));
+ *x = _mm_srli_si128(*x, 4);
+ }
+ }
+@@ -908,10 +908,10 @@ static void VE4_SSE2(uint8_t* dst) { // vertical
+ const __m128i lsb = _mm_and_si128(_mm_xor_si128(ABCDEFGH, CDEFGH00), one);
+ const __m128i b = _mm_subs_epu8(a, lsb);
+ const __m128i avg = _mm_avg_epu8(b, BCDEFGH0);
+- const uint32_t vals = _mm_cvtsi128_si32(avg);
++ const int vals = _mm_cvtsi128_si32(avg);
+ int i;
+ for (i = 0; i < 4; ++i) {
+- WebPUint32ToMem(dst + i * BPS, vals);
++ WebPInt32ToMem(dst + i * BPS, vals);
+ }
+ }
+
+@@ -925,10 +925,10 @@ static void LD4_SSE2(uint8_t* dst) { // Down-Left
+ const __m128i lsb = _mm_and_si128(_mm_xor_si128(ABCDEFGH, CDEFGHH0), one);
+ const __m128i avg2 = _mm_subs_epu8(avg1, lsb);
+ const __m128i abcdefg = _mm_avg_epu8(avg2, BCDEFGH0);
+- WebPUint32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32( abcdefg ));
+- WebPUint32ToMem(dst + 1 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 1)));
+- WebPUint32ToMem(dst + 2 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 2)));
+- WebPUint32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 3)));
++ WebPInt32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32( abcdefg ));
++ WebPInt32ToMem(dst + 1 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 1)));
++ WebPInt32ToMem(dst + 2 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 2)));
++ WebPInt32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 3)));
+ }
+
+ static void VR4_SSE2(uint8_t* dst) { // Vertical-Right
+@@ -946,10 +946,10 @@ static void VR4_SSE2(uint8_t* dst) { // Vertical-Right
+ const __m128i lsb = _mm_and_si128(_mm_xor_si128(IXABCD, ABCD0), one);
+ const __m128i avg2 = _mm_subs_epu8(avg1, lsb);
+ const __m128i efgh = _mm_avg_epu8(avg2, XABCD);
+- WebPUint32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32( abcd ));
+- WebPUint32ToMem(dst + 1 * BPS, _mm_cvtsi128_si32( efgh ));
+- WebPUint32ToMem(dst + 2 * BPS, _mm_cvtsi128_si32(_mm_slli_si128(abcd, 1)));
+- WebPUint32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32(_mm_slli_si128(efgh, 1)));
++ WebPInt32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32( abcd ));
++ WebPInt32ToMem(dst + 1 * BPS, _mm_cvtsi128_si32( efgh ));
++ WebPInt32ToMem(dst + 2 * BPS, _mm_cvtsi128_si32(_mm_slli_si128(abcd, 1)));
++ WebPInt32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32(_mm_slli_si128(efgh, 1)));
+
+ // these two are hard to implement in SSE2, so we keep the C-version:
+ DST(0, 2) = AVG3(J, I, X);
+@@ -970,11 +970,12 @@ static void VL4_SSE2(uint8_t* dst) { // Vertical-Left
+ const __m128i abbc = _mm_or_si128(ab, bc);
+ const __m128i lsb2 = _mm_and_si128(abbc, lsb1);
+ const __m128i avg4 = _mm_subs_epu8(avg3, lsb2);
+- const uint32_t extra_out = _mm_cvtsi128_si32(_mm_srli_si128(avg4, 4));
+- WebPUint32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32( avg1 ));
+- WebPUint32ToMem(dst + 1 * BPS, _mm_cvtsi128_si32( avg4 ));
+- WebPUint32ToMem(dst + 2 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(avg1, 1)));
+- WebPUint32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(avg4, 1)));
++ const uint32_t extra_out =
++ (uint32_t)_mm_cvtsi128_si32(_mm_srli_si128(avg4, 4));
++ WebPInt32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32( avg1 ));
++ WebPInt32ToMem(dst + 1 * BPS, _mm_cvtsi128_si32( avg4 ));
++ WebPInt32ToMem(dst + 2 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(avg1, 1)));
++ WebPInt32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(avg4, 1)));
+
+ // these two are hard to get and irregular
+ DST(3, 2) = (extra_out >> 0) & 0xff;
+@@ -990,7 +991,7 @@ static void RD4_SSE2(uint8_t* dst) { // Down-right
+ const uint32_t K = dst[-1 + 2 * BPS];
+ const uint32_t L = dst[-1 + 3 * BPS];
+ const __m128i LKJI_____ =
+- _mm_cvtsi32_si128(L | (K << 8) | (J << 16) | (I << 24));
++ _mm_cvtsi32_si128((int)(L | (K << 8) | (J << 16) | (I << 24)));
+ const __m128i LKJIXABCD = _mm_or_si128(LKJI_____, ____XABCD);
+ const __m128i KJIXABCD_ = _mm_srli_si128(LKJIXABCD, 1);
+ const __m128i JIXABCD__ = _mm_srli_si128(LKJIXABCD, 2);
+@@ -998,10 +999,10 @@ static void RD4_SSE2(uint8_t* dst) { // Down-right
+ const __m128i lsb = _mm_and_si128(_mm_xor_si128(JIXABCD__, LKJIXABCD), one);
+ const __m128i avg2 = _mm_subs_epu8(avg1, lsb);
+ const __m128i abcdefg = _mm_avg_epu8(avg2, KJIXABCD_);
+- WebPUint32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32( abcdefg ));
+- WebPUint32ToMem(dst + 2 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 1)));
+- WebPUint32ToMem(dst + 1 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 2)));
+- WebPUint32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 3)));
++ WebPInt32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32( abcdefg ));
++ WebPInt32ToMem(dst + 2 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 1)));
++ WebPInt32ToMem(dst + 1 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 2)));
++ WebPInt32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 3)));
+ }
+
+ #undef DST
+@@ -1015,13 +1016,13 @@ static WEBP_INLINE void TrueMotion_SSE2(uint8_t* dst, int size) {
+ const __m128i zero = _mm_setzero_si128();
+ int y;
+ if (size == 4) {
+- const __m128i top_values = _mm_cvtsi32_si128(WebPMemToUint32(top));
++ const __m128i top_values = _mm_cvtsi32_si128(WebPMemToInt32(top));
+ const __m128i top_base = _mm_unpacklo_epi8(top_values, zero);
+ for (y = 0; y < 4; ++y, dst += BPS) {
+ const int val = dst[-1] - top[-1];
+ const __m128i base = _mm_set1_epi16(val);
+ const __m128i out = _mm_packus_epi16(_mm_add_epi16(base, top_base), zero);
+- WebPUint32ToMem(dst, _mm_cvtsi128_si32(out));
++ WebPInt32ToMem(dst, _mm_cvtsi128_si32(out));
+ }
+ } else if (size == 8) {
+ const __m128i top_values = _mm_loadl_epi64((const __m128i*)top);
+@@ -1062,7 +1063,7 @@ static void VE16_SSE2(uint8_t* dst) {
+ static void HE16_SSE2(uint8_t* dst) { // horizontal
+ int j;
+ for (j = 16; j > 0; --j) {
+- const __m128i values = _mm_set1_epi8(dst[-1]);
++ const __m128i values = _mm_set1_epi8((char)dst[-1]);
+ _mm_storeu_si128((__m128i*)dst, values);
+ dst += BPS;
+ }
+@@ -1070,7 +1071,7 @@ static void HE16_SSE2(uint8_t* dst) { // horizontal
+
+ static WEBP_INLINE void Put16_SSE2(uint8_t v, uint8_t* dst) {
+ int j;
+- const __m128i values = _mm_set1_epi8(v);
++ const __m128i values = _mm_set1_epi8((char)v);
+ for (j = 0; j < 16; ++j) {
+ _mm_storeu_si128((__m128i*)(dst + j * BPS), values);
+ }
+@@ -1130,7 +1131,7 @@ static void VE8uv_SSE2(uint8_t* dst) { // vertical
+ // helper for chroma-DC predictions
+ static WEBP_INLINE void Put8x8uv_SSE2(uint8_t v, uint8_t* dst) {
+ int j;
+- const __m128i values = _mm_set1_epi8(v);
++ const __m128i values = _mm_set1_epi8((char)v);
+ for (j = 0; j < 8; ++j) {
+ _mm_storel_epi64((__m128i*)(dst + j * BPS), values);
+ }
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/dec_sse41.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/dec_sse41.c
+index 8f18506d54bf..08a363027226 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/dec_sse41.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/dec_sse41.c
+@@ -23,7 +23,7 @@ static void HE16_SSE41(uint8_t* dst) { // horizontal
+ int j;
+ const __m128i kShuffle3 = _mm_set1_epi8(3);
+ for (j = 16; j > 0; --j) {
+- const __m128i in = _mm_cvtsi32_si128(WebPMemToUint32(dst - 4));
++ const __m128i in = _mm_cvtsi32_si128(WebPMemToInt32(dst - 4));
+ const __m128i values = _mm_shuffle_epi8(in, kShuffle3);
+ _mm_storeu_si128((__m128i*)dst, values);
+ dst += BPS;
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/enc.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/enc.c
+index ea47a3fd9547..2ba97ba8d661 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/enc.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/enc.c
+@@ -732,6 +732,7 @@ VP8QuantizeBlockWHT VP8EncQuantizeBlockWHT;
+ VP8BlockCopy VP8Copy4x4;
+ VP8BlockCopy VP8Copy16x8;
+
++extern VP8CPUInfo VP8GetCPUInfo;
+ extern void VP8EncDspInitSSE2(void);
+ extern void VP8EncDspInitSSE41(void);
+ extern void VP8EncDspInitNEON(void);
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/enc_neon.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/enc_neon.c
+index 601962ba76b6..714800367ba7 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/enc_neon.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/enc_neon.c
+@@ -764,9 +764,14 @@ static WEBP_INLINE void AccumulateSSE16_NEON(const uint8_t* const a,
+
+ // Horizontal sum of all four uint32_t values in 'sum'.
+ static int SumToInt_NEON(uint32x4_t sum) {
++#if WEBP_AARCH64
++ return (int)vaddvq_u32(sum);
++#else
+ const uint64x2_t sum2 = vpaddlq_u32(sum);
+- const uint64_t sum3 = vgetq_lane_u64(sum2, 0) + vgetq_lane_u64(sum2, 1);
+- return (int)sum3;
++ const uint32x2_t sum3 = vadd_u32(vreinterpret_u32_u64(vget_low_u64(sum2)),
++ vreinterpret_u32_u64(vget_high_u64(sum2)));
++ return (int)vget_lane_u32(sum3, 0);
++#endif
+ }
+
+ static int SSE16x16_NEON(const uint8_t* a, const uint8_t* b) {
+@@ -860,7 +865,7 @@ static int QuantizeBlock_NEON(int16_t in[16], int16_t out[16],
+ uint8x8x4_t shuffles;
+ // vtbl?_u8 are marked unavailable for iOS arm64 with Xcode < 6.3, use
+ // non-standard versions there.
+-#if defined(__APPLE__) && defined(__aarch64__) && \
++#if defined(__APPLE__) && WEBP_AARCH64 && \
+ defined(__apple_build_version__) && (__apple_build_version__< 6020037)
+ uint8x16x2_t all_out;
+ INIT_VECTOR2(all_out, vreinterpretq_u8_s16(out0), vreinterpretq_u8_s16(out1));
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/enc_sse2.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/enc_sse2.c
+index b2e78ed9411f..010624a2f712 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/enc_sse2.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/enc_sse2.c
+@@ -25,9 +25,160 @@
+ //------------------------------------------------------------------------------
+ // Transforms (Paragraph 14.4)
+
+-// Does one or two inverse transforms.
+-static void ITransform_SSE2(const uint8_t* ref, const int16_t* in, uint8_t* dst,
+- int do_two) {
++// Does one inverse transform.
++static void ITransform_One_SSE2(const uint8_t* ref, const int16_t* in,
++ uint8_t* dst) {
++ // This implementation makes use of 16-bit fixed point versions of two
++ // multiply constants:
++ // K1 = sqrt(2) * cos (pi/8) ~= 85627 / 2^16
++ // K2 = sqrt(2) * sin (pi/8) ~= 35468 / 2^16
++ //
++ // To be able to use signed 16-bit integers, we use the following trick to
++ // have constants within range:
++ // - Associated constants are obtained by subtracting the 16-bit fixed point
++ // version of one:
++ // k = K - (1 << 16) => K = k + (1 << 16)
++ // K1 = 85267 => k1 = 20091
++ // K2 = 35468 => k2 = -30068
++ // - The multiplication of a variable by a constant become the sum of the
++ // variable and the multiplication of that variable by the associated
++ // constant:
++ // (x * K) >> 16 = (x * (k + (1 << 16))) >> 16 = ((x * k ) >> 16) + x
++ const __m128i k1k2 = _mm_set_epi16(-30068, -30068, -30068, -30068,
++ 20091, 20091, 20091, 20091);
++ const __m128i k2k1 = _mm_set_epi16(20091, 20091, 20091, 20091,
++ -30068, -30068, -30068, -30068);
++ const __m128i zero = _mm_setzero_si128();
++ const __m128i zero_four = _mm_set_epi16(0, 0, 0, 0, 4, 4, 4, 4);
++ __m128i T01, T23;
++
++ // Load and concatenate the transform coefficients.
++ const __m128i in01 = _mm_loadu_si128((const __m128i*)&in[0]);
++ const __m128i in23 = _mm_loadu_si128((const __m128i*)&in[8]);
++ // a00 a10 a20 a30 a01 a11 a21 a31
++ // a02 a12 a22 a32 a03 a13 a23 a33
++
++ // Vertical pass and subsequent transpose.
++ {
++ const __m128i in1 = _mm_unpackhi_epi64(in01, in01);
++ const __m128i in3 = _mm_unpackhi_epi64(in23, in23);
++
++ // First pass, c and d calculations are longer because of the "trick"
++ // multiplications.
++ // c = MUL(in1, K2) - MUL(in3, K1) = MUL(in1, k2) - MUL(in3, k1) + in1 - in3
++ // d = MUL(in1, K1) + MUL(in3, K2) = MUL(in1, k1) + MUL(in3, k2) + in1 + in3
++ const __m128i a_d3 = _mm_add_epi16(in01, in23);
++ const __m128i b_c3 = _mm_sub_epi16(in01, in23);
++ const __m128i c1d1 = _mm_mulhi_epi16(in1, k2k1);
++ const __m128i c2d2 = _mm_mulhi_epi16(in3, k1k2);
++ const __m128i c3 = _mm_unpackhi_epi64(b_c3, b_c3);
++ const __m128i c4 = _mm_sub_epi16(c1d1, c2d2);
++ const __m128i c = _mm_add_epi16(c3, c4);
++ const __m128i d4u = _mm_add_epi16(c1d1, c2d2);
++ const __m128i du = _mm_add_epi16(a_d3, d4u);
++ const __m128i d = _mm_unpackhi_epi64(du, du);
++
++ // Second pass.
++ const __m128i comb_ab = _mm_unpacklo_epi64(a_d3, b_c3);
++ const __m128i comb_dc = _mm_unpacklo_epi64(d, c);
++
++ const __m128i tmp01 = _mm_add_epi16(comb_ab, comb_dc);
++ const __m128i tmp32 = _mm_sub_epi16(comb_ab, comb_dc);
++ const __m128i tmp23 = _mm_shuffle_epi32(tmp32, _MM_SHUFFLE(1, 0, 3, 2));
++
++ const __m128i transpose_0 = _mm_unpacklo_epi16(tmp01, tmp23);
++ const __m128i transpose_1 = _mm_unpackhi_epi16(tmp01, tmp23);
++ // a00 a20 a01 a21 a02 a22 a03 a23
++ // a10 a30 a11 a31 a12 a32 a13 a33
++
++ T01 = _mm_unpacklo_epi16(transpose_0, transpose_1);
++ T23 = _mm_unpackhi_epi16(transpose_0, transpose_1);
++ // a00 a10 a20 a30 a01 a11 a21 a31
++ // a02 a12 a22 a32 a03 a13 a23 a33
++ }
++
++ // Horizontal pass and subsequent transpose.
++ {
++ const __m128i T1 = _mm_unpackhi_epi64(T01, T01);
++ const __m128i T3 = _mm_unpackhi_epi64(T23, T23);
++
++ // First pass, c and d calculations are longer because of the "trick"
++ // multiplications.
++ const __m128i dc = _mm_add_epi16(T01, zero_four);
++
++ // c = MUL(T1, K2) - MUL(T3, K1) = MUL(T1, k2) - MUL(T3, k1) + T1 - T3
++ // d = MUL(T1, K1) + MUL(T3, K2) = MUL(T1, k1) + MUL(T3, k2) + T1 + T3
++ const __m128i a_d3 = _mm_add_epi16(dc, T23);
++ const __m128i b_c3 = _mm_sub_epi16(dc, T23);
++ const __m128i c1d1 = _mm_mulhi_epi16(T1, k2k1);
++ const __m128i c2d2 = _mm_mulhi_epi16(T3, k1k2);
++ const __m128i c3 = _mm_unpackhi_epi64(b_c3, b_c3);
++ const __m128i c4 = _mm_sub_epi16(c1d1, c2d2);
++ const __m128i c = _mm_add_epi16(c3, c4);
++ const __m128i d4u = _mm_add_epi16(c1d1, c2d2);
++ const __m128i du = _mm_add_epi16(a_d3, d4u);
++ const __m128i d = _mm_unpackhi_epi64(du, du);
++
++ // Second pass.
++ const __m128i comb_ab = _mm_unpacklo_epi64(a_d3, b_c3);
++ const __m128i comb_dc = _mm_unpacklo_epi64(d, c);
++
++ const __m128i tmp01 = _mm_add_epi16(comb_ab, comb_dc);
++ const __m128i tmp32 = _mm_sub_epi16(comb_ab, comb_dc);
++ const __m128i tmp23 = _mm_shuffle_epi32(tmp32, _MM_SHUFFLE(1, 0, 3, 2));
++
++ const __m128i shifted01 = _mm_srai_epi16(tmp01, 3);
++ const __m128i shifted23 = _mm_srai_epi16(tmp23, 3);
++ // a00 a01 a02 a03 a10 a11 a12 a13
++ // a20 a21 a22 a23 a30 a31 a32 a33
++
++ const __m128i transpose_0 = _mm_unpacklo_epi16(shifted01, shifted23);
++ const __m128i transpose_1 = _mm_unpackhi_epi16(shifted01, shifted23);
++ // a00 a20 a01 a21 a02 a22 a03 a23
++ // a10 a30 a11 a31 a12 a32 a13 a33
++
++ T01 = _mm_unpacklo_epi16(transpose_0, transpose_1);
++ T23 = _mm_unpackhi_epi16(transpose_0, transpose_1);
++ // a00 a10 a20 a30 a01 a11 a21 a31
++ // a02 a12 a22 a32 a03 a13 a23 a33
++ }
++
++ // Add inverse transform to 'ref' and store.
++ {
++ // Load the reference(s).
++ __m128i ref01, ref23, ref0123;
++ int32_t buf[4];
++
++ // Load four bytes/pixels per line.
++ const __m128i ref0 = _mm_cvtsi32_si128(WebPMemToInt32(&ref[0 * BPS]));
++ const __m128i ref1 = _mm_cvtsi32_si128(WebPMemToInt32(&ref[1 * BPS]));
++ const __m128i ref2 = _mm_cvtsi32_si128(WebPMemToInt32(&ref[2 * BPS]));
++ const __m128i ref3 = _mm_cvtsi32_si128(WebPMemToInt32(&ref[3 * BPS]));
++ ref01 = _mm_unpacklo_epi32(ref0, ref1);
++ ref23 = _mm_unpacklo_epi32(ref2, ref3);
++
++ // Convert to 16b.
++ ref01 = _mm_unpacklo_epi8(ref01, zero);
++ ref23 = _mm_unpacklo_epi8(ref23, zero);
++ // Add the inverse transform(s).
++ ref01 = _mm_add_epi16(ref01, T01);
++ ref23 = _mm_add_epi16(ref23, T23);
++ // Unsigned saturate to 8b.
++ ref0123 = _mm_packus_epi16(ref01, ref23);
++
++ _mm_storeu_si128((__m128i *)buf, ref0123);
++
++ // Store four bytes/pixels per line.
++ WebPInt32ToMem(&dst[0 * BPS], buf[0]);
++ WebPInt32ToMem(&dst[1 * BPS], buf[1]);
++ WebPInt32ToMem(&dst[2 * BPS], buf[2]);
++ WebPInt32ToMem(&dst[3 * BPS], buf[3]);
++ }
++}
++
++// Does two inverse transforms.
++static void ITransform_Two_SSE2(const uint8_t* ref, const int16_t* in,
++ uint8_t* dst) {
+ // This implementation makes use of 16-bit fixed point versions of two
+ // multiply constants:
+ // K1 = sqrt(2) * cos (pi/8) ~= 85627 / 2^16
+@@ -49,33 +200,21 @@ static void ITransform_SSE2(const uint8_t* ref, const int16_t* in, uint8_t* dst,
+ __m128i T0, T1, T2, T3;
+
+ // Load and concatenate the transform coefficients (we'll do two inverse
+- // transforms in parallel). In the case of only one inverse transform, the
+- // second half of the vectors will just contain random value we'll never
+- // use nor store.
++ // transforms in parallel).
+ __m128i in0, in1, in2, in3;
+ {
+- in0 = _mm_loadl_epi64((const __m128i*)&in[0]);
+- in1 = _mm_loadl_epi64((const __m128i*)&in[4]);
+- in2 = _mm_loadl_epi64((const __m128i*)&in[8]);
+- in3 = _mm_loadl_epi64((const __m128i*)&in[12]);
+- // a00 a10 a20 a30 x x x x
+- // a01 a11 a21 a31 x x x x
+- // a02 a12 a22 a32 x x x x
+- // a03 a13 a23 a33 x x x x
+- if (do_two) {
+- const __m128i inB0 = _mm_loadl_epi64((const __m128i*)&in[16]);
+- const __m128i inB1 = _mm_loadl_epi64((const __m128i*)&in[20]);
+- const __m128i inB2 = _mm_loadl_epi64((const __m128i*)&in[24]);
+- const __m128i inB3 = _mm_loadl_epi64((const __m128i*)&in[28]);
+- in0 = _mm_unpacklo_epi64(in0, inB0);
+- in1 = _mm_unpacklo_epi64(in1, inB1);
+- in2 = _mm_unpacklo_epi64(in2, inB2);
+- in3 = _mm_unpacklo_epi64(in3, inB3);
+- // a00 a10 a20 a30 b00 b10 b20 b30
+- // a01 a11 a21 a31 b01 b11 b21 b31
+- // a02 a12 a22 a32 b02 b12 b22 b32
+- // a03 a13 a23 a33 b03 b13 b23 b33
+- }
++ const __m128i tmp0 = _mm_loadu_si128((const __m128i*)&in[0]);
++ const __m128i tmp1 = _mm_loadu_si128((const __m128i*)&in[8]);
++ const __m128i tmp2 = _mm_loadu_si128((const __m128i*)&in[16]);
++ const __m128i tmp3 = _mm_loadu_si128((const __m128i*)&in[24]);
++ in0 = _mm_unpacklo_epi64(tmp0, tmp2);
++ in1 = _mm_unpackhi_epi64(tmp0, tmp2);
++ in2 = _mm_unpacklo_epi64(tmp1, tmp3);
++ in3 = _mm_unpackhi_epi64(tmp1, tmp3);
++ // a00 a10 a20 a30 b00 b10 b20 b30
++ // a01 a11 a21 a31 b01 b11 b21 b31
++ // a02 a12 a22 a32 b02 b12 b22 b32
++ // a03 a13 a23 a33 b03 b13 b23 b33
+ }
+
+ // Vertical pass and subsequent transpose.
+@@ -148,19 +287,11 @@ static void ITransform_SSE2(const uint8_t* ref, const int16_t* in, uint8_t* dst,
+ const __m128i zero = _mm_setzero_si128();
+ // Load the reference(s).
+ __m128i ref0, ref1, ref2, ref3;
+- if (do_two) {
+- // Load eight bytes/pixels per line.
+- ref0 = _mm_loadl_epi64((const __m128i*)&ref[0 * BPS]);
+- ref1 = _mm_loadl_epi64((const __m128i*)&ref[1 * BPS]);
+- ref2 = _mm_loadl_epi64((const __m128i*)&ref[2 * BPS]);
+- ref3 = _mm_loadl_epi64((const __m128i*)&ref[3 * BPS]);
+- } else {
+- // Load four bytes/pixels per line.
+- ref0 = _mm_cvtsi32_si128(WebPMemToUint32(&ref[0 * BPS]));
+- ref1 = _mm_cvtsi32_si128(WebPMemToUint32(&ref[1 * BPS]));
+- ref2 = _mm_cvtsi32_si128(WebPMemToUint32(&ref[2 * BPS]));
+- ref3 = _mm_cvtsi32_si128(WebPMemToUint32(&ref[3 * BPS]));
+- }
++ // Load eight bytes/pixels per line.
++ ref0 = _mm_loadl_epi64((const __m128i*)&ref[0 * BPS]);
++ ref1 = _mm_loadl_epi64((const __m128i*)&ref[1 * BPS]);
++ ref2 = _mm_loadl_epi64((const __m128i*)&ref[2 * BPS]);
++ ref3 = _mm_loadl_epi64((const __m128i*)&ref[3 * BPS]);
+ // Convert to 16b.
+ ref0 = _mm_unpacklo_epi8(ref0, zero);
+ ref1 = _mm_unpacklo_epi8(ref1, zero);
+@@ -176,20 +307,21 @@ static void ITransform_SSE2(const uint8_t* ref, const int16_t* in, uint8_t* dst,
+ ref1 = _mm_packus_epi16(ref1, ref1);
+ ref2 = _mm_packus_epi16(ref2, ref2);
+ ref3 = _mm_packus_epi16(ref3, ref3);
+- // Store the results.
+- if (do_two) {
+- // Store eight bytes/pixels per line.
+- _mm_storel_epi64((__m128i*)&dst[0 * BPS], ref0);
+- _mm_storel_epi64((__m128i*)&dst[1 * BPS], ref1);
+- _mm_storel_epi64((__m128i*)&dst[2 * BPS], ref2);
+- _mm_storel_epi64((__m128i*)&dst[3 * BPS], ref3);
+- } else {
+- // Store four bytes/pixels per line.
+- WebPUint32ToMem(&dst[0 * BPS], _mm_cvtsi128_si32(ref0));
+- WebPUint32ToMem(&dst[1 * BPS], _mm_cvtsi128_si32(ref1));
+- WebPUint32ToMem(&dst[2 * BPS], _mm_cvtsi128_si32(ref2));
+- WebPUint32ToMem(&dst[3 * BPS], _mm_cvtsi128_si32(ref3));
+- }
++ // Store eight bytes/pixels per line.
++ _mm_storel_epi64((__m128i*)&dst[0 * BPS], ref0);
++ _mm_storel_epi64((__m128i*)&dst[1 * BPS], ref1);
++ _mm_storel_epi64((__m128i*)&dst[2 * BPS], ref2);
++ _mm_storel_epi64((__m128i*)&dst[3 * BPS], ref3);
++ }
++}
++
++// Does one or two inverse transforms.
++static void ITransform_SSE2(const uint8_t* ref, const int16_t* in, uint8_t* dst,
++ int do_two) {
++ if (do_two) {
++ ITransform_Two_SSE2(ref, in, dst);
++ } else {
++ ITransform_One_SSE2(ref, in, dst);
+ }
+ }
+
+@@ -481,7 +613,7 @@ static void CollectHistogram_SSE2(const uint8_t* ref, const uint8_t* pred,
+ // helper for chroma-DC predictions
+ static WEBP_INLINE void Put8x8uv_SSE2(uint8_t v, uint8_t* dst) {
+ int j;
+- const __m128i values = _mm_set1_epi8(v);
++ const __m128i values = _mm_set1_epi8((char)v);
+ for (j = 0; j < 8; ++j) {
+ _mm_storel_epi64((__m128i*)(dst + j * BPS), values);
+ }
+@@ -489,7 +621,7 @@ static WEBP_INLINE void Put8x8uv_SSE2(uint8_t v, uint8_t* dst) {
+
+ static WEBP_INLINE void Put16_SSE2(uint8_t v, uint8_t* dst) {
+ int j;
+- const __m128i values = _mm_set1_epi8(v);
++ const __m128i values = _mm_set1_epi8((char)v);
+ for (j = 0; j < 16; ++j) {
+ _mm_store_si128((__m128i*)(dst + j * BPS), values);
+ }
+@@ -540,7 +672,7 @@ static WEBP_INLINE void VerticalPred_SSE2(uint8_t* dst,
+ static WEBP_INLINE void HE8uv_SSE2(uint8_t* dst, const uint8_t* left) {
+ int j;
+ for (j = 0; j < 8; ++j) {
+- const __m128i values = _mm_set1_epi8(left[j]);
++ const __m128i values = _mm_set1_epi8((char)left[j]);
+ _mm_storel_epi64((__m128i*)dst, values);
+ dst += BPS;
+ }
+@@ -549,7 +681,7 @@ static WEBP_INLINE void HE8uv_SSE2(uint8_t* dst, const uint8_t* left) {
+ static WEBP_INLINE void HE16_SSE2(uint8_t* dst, const uint8_t* left) {
+ int j;
+ for (j = 0; j < 16; ++j) {
+- const __m128i values = _mm_set1_epi8(left[j]);
++ const __m128i values = _mm_set1_epi8((char)left[j]);
+ _mm_store_si128((__m128i*)dst, values);
+ dst += BPS;
+ }
+@@ -722,10 +854,10 @@ static WEBP_INLINE void VE4_SSE2(uint8_t* dst,
+ const __m128i lsb = _mm_and_si128(_mm_xor_si128(ABCDEFGH, CDEFGH00), one);
+ const __m128i b = _mm_subs_epu8(a, lsb);
+ const __m128i avg = _mm_avg_epu8(b, BCDEFGH0);
+- const uint32_t vals = _mm_cvtsi128_si32(avg);
++ const int vals = _mm_cvtsi128_si32(avg);
+ int i;
+ for (i = 0; i < 4; ++i) {
+- WebPUint32ToMem(dst + i * BPS, vals);
++ WebPInt32ToMem(dst + i * BPS, vals);
+ }
+ }
+
+@@ -760,10 +892,10 @@ static WEBP_INLINE void LD4_SSE2(uint8_t* dst,
+ const __m128i lsb = _mm_and_si128(_mm_xor_si128(ABCDEFGH, CDEFGHH0), one);
+ const __m128i avg2 = _mm_subs_epu8(avg1, lsb);
+ const __m128i abcdefg = _mm_avg_epu8(avg2, BCDEFGH0);
+- WebPUint32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32( abcdefg ));
+- WebPUint32ToMem(dst + 1 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 1)));
+- WebPUint32ToMem(dst + 2 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 2)));
+- WebPUint32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 3)));
++ WebPInt32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32( abcdefg ));
++ WebPInt32ToMem(dst + 1 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 1)));
++ WebPInt32ToMem(dst + 2 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 2)));
++ WebPInt32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 3)));
+ }
+
+ static WEBP_INLINE void VR4_SSE2(uint8_t* dst,
+@@ -782,10 +914,10 @@ static WEBP_INLINE void VR4_SSE2(uint8_t* dst,
+ const __m128i lsb = _mm_and_si128(_mm_xor_si128(IXABCD, ABCD0), one);
+ const __m128i avg2 = _mm_subs_epu8(avg1, lsb);
+ const __m128i efgh = _mm_avg_epu8(avg2, XABCD);
+- WebPUint32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32( abcd ));
+- WebPUint32ToMem(dst + 1 * BPS, _mm_cvtsi128_si32( efgh ));
+- WebPUint32ToMem(dst + 2 * BPS, _mm_cvtsi128_si32(_mm_slli_si128(abcd, 1)));
+- WebPUint32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32(_mm_slli_si128(efgh, 1)));
++ WebPInt32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32( abcd ));
++ WebPInt32ToMem(dst + 1 * BPS, _mm_cvtsi128_si32( efgh ));
++ WebPInt32ToMem(dst + 2 * BPS, _mm_cvtsi128_si32(_mm_slli_si128(abcd, 1)));
++ WebPInt32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32(_mm_slli_si128(efgh, 1)));
+
+ // these two are hard to implement in SSE2, so we keep the C-version:
+ DST(0, 2) = AVG3(J, I, X);
+@@ -807,11 +939,12 @@ static WEBP_INLINE void VL4_SSE2(uint8_t* dst,
+ const __m128i abbc = _mm_or_si128(ab, bc);
+ const __m128i lsb2 = _mm_and_si128(abbc, lsb1);
+ const __m128i avg4 = _mm_subs_epu8(avg3, lsb2);
+- const uint32_t extra_out = _mm_cvtsi128_si32(_mm_srli_si128(avg4, 4));
+- WebPUint32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32( avg1 ));
+- WebPUint32ToMem(dst + 1 * BPS, _mm_cvtsi128_si32( avg4 ));
+- WebPUint32ToMem(dst + 2 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(avg1, 1)));
+- WebPUint32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(avg4, 1)));
++ const uint32_t extra_out =
++ (uint32_t)_mm_cvtsi128_si32(_mm_srli_si128(avg4, 4));
++ WebPInt32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32( avg1 ));
++ WebPInt32ToMem(dst + 1 * BPS, _mm_cvtsi128_si32( avg4 ));
++ WebPInt32ToMem(dst + 2 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(avg1, 1)));
++ WebPInt32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(avg4, 1)));
+
+ // these two are hard to get and irregular
+ DST(3, 2) = (extra_out >> 0) & 0xff;
+@@ -829,10 +962,10 @@ static WEBP_INLINE void RD4_SSE2(uint8_t* dst,
+ const __m128i lsb = _mm_and_si128(_mm_xor_si128(JIXABCD__, LKJIXABCD), one);
+ const __m128i avg2 = _mm_subs_epu8(avg1, lsb);
+ const __m128i abcdefg = _mm_avg_epu8(avg2, KJIXABCD_);
+- WebPUint32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32( abcdefg ));
+- WebPUint32ToMem(dst + 2 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 1)));
+- WebPUint32ToMem(dst + 1 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 2)));
+- WebPUint32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 3)));
++ WebPInt32ToMem(dst + 3 * BPS, _mm_cvtsi128_si32( abcdefg ));
++ WebPInt32ToMem(dst + 2 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 1)));
++ WebPInt32ToMem(dst + 1 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 2)));
++ WebPInt32ToMem(dst + 0 * BPS, _mm_cvtsi128_si32(_mm_srli_si128(abcdefg, 3)));
+ }
+
+ static WEBP_INLINE void HU4_SSE2(uint8_t* dst, const uint8_t* top) {
+@@ -875,14 +1008,14 @@ static WEBP_INLINE void HD4_SSE2(uint8_t* dst, const uint8_t* top) {
+
+ static WEBP_INLINE void TM4_SSE2(uint8_t* dst, const uint8_t* top) {
+ const __m128i zero = _mm_setzero_si128();
+- const __m128i top_values = _mm_cvtsi32_si128(WebPMemToUint32(top));
++ const __m128i top_values = _mm_cvtsi32_si128(WebPMemToInt32(top));
+ const __m128i top_base = _mm_unpacklo_epi8(top_values, zero);
+ int y;
+ for (y = 0; y < 4; ++y, dst += BPS) {
+ const int val = top[-2 - y] - top[-1];
+ const __m128i base = _mm_set1_epi16(val);
+ const __m128i out = _mm_packus_epi16(_mm_add_epi16(base, top_base), zero);
+- WebPUint32ToMem(dst, _mm_cvtsi128_si32(out));
++ WebPInt32ToMem(dst, _mm_cvtsi128_si32(out));
+ }
+ }
+
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/filters.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/filters.c
+index 4506567ba363..85eee5098f00 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/filters.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/filters.c
+@@ -233,6 +233,7 @@ static void GradientUnfilter_C(const uint8_t* prev, const uint8_t* in,
+ WebPFilterFunc WebPFilters[WEBP_FILTER_LAST];
+ WebPUnfilterFunc WebPUnfilters[WEBP_FILTER_LAST];
+
++extern VP8CPUInfo VP8GetCPUInfo;
+ extern void VP8FiltersInitMIPSdspR2(void);
+ extern void VP8FiltersInitMSA(void);
+ extern void VP8FiltersInitNEON(void);
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless.c
+index 84a54296fd6a..9f8120945397 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless.c
+@@ -49,7 +49,7 @@ static WEBP_INLINE uint32_t Clip255(uint32_t a) {
+ }
+
+ static WEBP_INLINE int AddSubtractComponentFull(int a, int b, int c) {
+- return Clip255(a + b - c);
++ return Clip255((uint32_t)(a + b - c));
+ }
+
+ static WEBP_INLINE uint32_t ClampedAddSubtractFull(uint32_t c0, uint32_t c1,
+@@ -66,7 +66,7 @@ static WEBP_INLINE uint32_t ClampedAddSubtractFull(uint32_t c0, uint32_t c1,
+ }
+
+ static WEBP_INLINE int AddSubtractComponentHalf(int a, int b) {
+- return Clip255(a + (a - b) / 2);
++ return Clip255((uint32_t)(a + (a - b) / 2));
+ }
+
+ static WEBP_INLINE uint32_t ClampedAddSubtractHalf(uint32_t c0, uint32_t c1,
+@@ -293,10 +293,10 @@ void VP8LTransformColorInverse_C(const VP8LMultipliers* const m,
+ const uint32_t red = argb >> 16;
+ int new_red = red & 0xff;
+ int new_blue = argb & 0xff;
+- new_red += ColorTransformDelta(m->green_to_red_, green);
++ new_red += ColorTransformDelta((int8_t)m->green_to_red_, green);
+ new_red &= 0xff;
+- new_blue += ColorTransformDelta(m->green_to_blue_, green);
+- new_blue += ColorTransformDelta(m->red_to_blue_, (int8_t)new_red);
++ new_blue += ColorTransformDelta((int8_t)m->green_to_blue_, green);
++ new_blue += ColorTransformDelta((int8_t)m->red_to_blue_, (int8_t)new_red);
+ new_blue &= 0xff;
+ dst[i] = (argb & 0xff00ff00u) | (new_red << 16) | (new_blue);
+ }
+@@ -395,7 +395,7 @@ void VP8LInverseTransform(const VP8LTransform* const transform,
+ assert(row_start < row_end);
+ assert(row_end <= transform->ysize_);
+ switch (transform->type_) {
+- case SUBTRACT_GREEN:
++ case SUBTRACT_GREEN_TRANSFORM:
+ VP8LAddGreenToBlueAndRed(in, (row_end - row_start) * width, out);
+ break;
+ case PREDICTOR_TRANSFORM:
+@@ -588,6 +588,7 @@ VP8LConvertFunc VP8LConvertBGRAToBGR;
+ VP8LMapARGBFunc VP8LMapColor32b;
+ VP8LMapAlphaFunc VP8LMapColor8b;
+
++extern VP8CPUInfo VP8GetCPUInfo;
+ extern void VP8LDspInitSSE2(void);
+ extern void VP8LDspInitSSE41(void);
+ extern void VP8LDspInitNEON(void);
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_enc.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_enc.c
+index de6c4ace5f0d..cde1280617b0 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_enc.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_enc.c
+@@ -522,11 +522,11 @@ static void GetCombinedEntropyUnrefined_C(const uint32_t X[],
+ void VP8LSubtractGreenFromBlueAndRed_C(uint32_t* argb_data, int num_pixels) {
+ int i;
+ for (i = 0; i < num_pixels; ++i) {
+- const int argb = argb_data[i];
++ const int argb = (int)argb_data[i];
+ const int green = (argb >> 8) & 0xff;
+ const uint32_t new_r = (((argb >> 16) & 0xff) - green) & 0xff;
+ const uint32_t new_b = (((argb >> 0) & 0xff) - green) & 0xff;
+- argb_data[i] = (argb & 0xff00ff00u) | (new_r << 16) | new_b;
++ argb_data[i] = ((uint32_t)argb & 0xff00ff00u) | (new_r << 16) | new_b;
+ }
+ }
+
+@@ -547,10 +547,10 @@ void VP8LTransformColor_C(const VP8LMultipliers* const m, uint32_t* data,
+ const int8_t red = U32ToS8(argb >> 16);
+ int new_red = red & 0xff;
+ int new_blue = argb & 0xff;
+- new_red -= ColorTransformDelta(m->green_to_red_, green);
++ new_red -= ColorTransformDelta((int8_t)m->green_to_red_, green);
+ new_red &= 0xff;
+- new_blue -= ColorTransformDelta(m->green_to_blue_, green);
+- new_blue -= ColorTransformDelta(m->red_to_blue_, red);
++ new_blue -= ColorTransformDelta((int8_t)m->green_to_blue_, green);
++ new_blue -= ColorTransformDelta((int8_t)m->red_to_blue_, red);
+ new_blue &= 0xff;
+ data[i] = (argb & 0xff00ff00u) | (new_red << 16) | (new_blue);
+ }
+@@ -560,7 +560,7 @@ static WEBP_INLINE uint8_t TransformColorRed(uint8_t green_to_red,
+ uint32_t argb) {
+ const int8_t green = U32ToS8(argb >> 8);
+ int new_red = argb >> 16;
+- new_red -= ColorTransformDelta(green_to_red, green);
++ new_red -= ColorTransformDelta((int8_t)green_to_red, green);
+ return (new_red & 0xff);
+ }
+
+@@ -569,9 +569,9 @@ static WEBP_INLINE uint8_t TransformColorBlue(uint8_t green_to_blue,
+ uint32_t argb) {
+ const int8_t green = U32ToS8(argb >> 8);
+ const int8_t red = U32ToS8(argb >> 16);
+- uint8_t new_blue = argb & 0xff;
+- new_blue -= ColorTransformDelta(green_to_blue, green);
+- new_blue -= ColorTransformDelta(red_to_blue, red);
++ int new_blue = argb & 0xff;
++ new_blue -= ColorTransformDelta((int8_t)green_to_blue, green);
++ new_blue -= ColorTransformDelta((int8_t)red_to_blue, red);
+ return (new_blue & 0xff);
+ }
+
+@@ -791,6 +791,7 @@ VP8LBundleColorMapFunc VP8LBundleColorMap;
+ VP8LPredictorAddSubFunc VP8LPredictorsSub[16];
+ VP8LPredictorAddSubFunc VP8LPredictorsSub_C[16];
+
++extern VP8CPUInfo VP8GetCPUInfo;
+ extern void VP8LEncDspInitSSE2(void);
+ extern void VP8LEncDspInitSSE41(void);
+ extern void VP8LEncDspInitNEON(void);
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_enc_neon.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_enc_neon.c
+index 7c7b73f8b692..e32c7961a239 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_enc_neon.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_enc_neon.c
+@@ -25,7 +25,7 @@
+
+ // vtbl?_u8 are marked unavailable for iOS arm64 with Xcode < 6.3, use
+ // non-standard versions there.
+-#if defined(__APPLE__) && defined(__aarch64__) && \
++#if defined(__APPLE__) && WEBP_AARCH64 && \
+ defined(__apple_build_version__) && (__apple_build_version__< 6020037)
+ #define USE_VTBLQ
+ #endif
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_enc_sse2.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_enc_sse2.c
+index 948001a3d556..66cbaab7720a 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_enc_sse2.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_enc_sse2.c
+@@ -54,8 +54,8 @@ static void TransformColor_SSE2(const VP8LMultipliers* const m,
+ const __m128i mults_rb = MK_CST_16(CST_5b(m->green_to_red_),
+ CST_5b(m->green_to_blue_));
+ const __m128i mults_b2 = MK_CST_16(CST_5b(m->red_to_blue_), 0);
+- const __m128i mask_ag = _mm_set1_epi32(0xff00ff00); // alpha-green masks
+- const __m128i mask_rb = _mm_set1_epi32(0x00ff00ff); // red-blue masks
++ const __m128i mask_ag = _mm_set1_epi32((int)0xff00ff00); // alpha-green masks
++ const __m128i mask_rb = _mm_set1_epi32(0x00ff00ff); // red-blue masks
+ int i;
+ for (i = 0; i + 4 <= num_pixels; i += 4) {
+ const __m128i in = _mm_loadu_si128((__m128i*)&argb_data[i]); // argb
+@@ -376,7 +376,7 @@ static void BundleColorMap_SSE2(const uint8_t* const row, int width, int xbits,
+ break;
+ }
+ case 2: {
+- const __m128i mask_or = _mm_set1_epi32(0xff000000);
++ const __m128i mask_or = _mm_set1_epi32((int)0xff000000);
+ const __m128i mul_cst = _mm_set1_epi16(0x0104);
+ const __m128i mask_mul = _mm_set1_epi16(0x0f00);
+ for (x = 0; x + 16 <= width; x += 16, dst += 4) {
+@@ -427,7 +427,7 @@ static WEBP_INLINE void Average2_m128i(const __m128i* const a0,
+ static void PredictorSub0_SSE2(const uint32_t* in, const uint32_t* upper,
+ int num_pixels, uint32_t* out) {
+ int i;
+- const __m128i black = _mm_set1_epi32(ARGB_BLACK);
++ const __m128i black = _mm_set1_epi32((int)ARGB_BLACK);
+ for (i = 0; i + 4 <= num_pixels; i += 4) {
+ const __m128i src = _mm_loadu_si128((const __m128i*)&in[i]);
+ const __m128i res = _mm_sub_epi8(src, black);
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_neon.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_neon.c
+index 89e3e013a081..ddc9b61711e3 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_neon.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_neon.c
+@@ -498,7 +498,7 @@ static void PredictorAdd13_NEON(const uint32_t* in, const uint32_t* upper,
+
+ // vtbl?_u8 are marked unavailable for iOS arm64 with Xcode < 6.3, use
+ // non-standard versions there.
+-#if defined(__APPLE__) && defined(__aarch64__) && \
++#if defined(__APPLE__) && WEBP_AARCH64 && \
+ defined(__apple_build_version__) && (__apple_build_version__< 6020037)
+ #define USE_VTBLQ
+ #endif
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_sse2.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_sse2.c
+index 396cb0bdfcc3..4b6a532c239c 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_sse2.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_sse2.c
+@@ -27,23 +27,22 @@ static WEBP_INLINE uint32_t ClampedAddSubtractFull_SSE2(uint32_t c0,
+ uint32_t c1,
+ uint32_t c2) {
+ const __m128i zero = _mm_setzero_si128();
+- const __m128i C0 = _mm_unpacklo_epi8(_mm_cvtsi32_si128(c0), zero);
+- const __m128i C1 = _mm_unpacklo_epi8(_mm_cvtsi32_si128(c1), zero);
+- const __m128i C2 = _mm_unpacklo_epi8(_mm_cvtsi32_si128(c2), zero);
++ const __m128i C0 = _mm_unpacklo_epi8(_mm_cvtsi32_si128((int)c0), zero);
++ const __m128i C1 = _mm_unpacklo_epi8(_mm_cvtsi32_si128((int)c1), zero);
++ const __m128i C2 = _mm_unpacklo_epi8(_mm_cvtsi32_si128((int)c2), zero);
+ const __m128i V1 = _mm_add_epi16(C0, C1);
+ const __m128i V2 = _mm_sub_epi16(V1, C2);
+ const __m128i b = _mm_packus_epi16(V2, V2);
+- const uint32_t output = _mm_cvtsi128_si32(b);
+- return output;
++ return (uint32_t)_mm_cvtsi128_si32(b);
+ }
+
+ static WEBP_INLINE uint32_t ClampedAddSubtractHalf_SSE2(uint32_t c0,
+ uint32_t c1,
+ uint32_t c2) {
+ const __m128i zero = _mm_setzero_si128();
+- const __m128i C0 = _mm_unpacklo_epi8(_mm_cvtsi32_si128(c0), zero);
+- const __m128i C1 = _mm_unpacklo_epi8(_mm_cvtsi32_si128(c1), zero);
+- const __m128i B0 = _mm_unpacklo_epi8(_mm_cvtsi32_si128(c2), zero);
++ const __m128i C0 = _mm_unpacklo_epi8(_mm_cvtsi32_si128((int)c0), zero);
++ const __m128i C1 = _mm_unpacklo_epi8(_mm_cvtsi32_si128((int)c1), zero);
++ const __m128i B0 = _mm_unpacklo_epi8(_mm_cvtsi32_si128((int)c2), zero);
+ const __m128i avg = _mm_add_epi16(C1, C0);
+ const __m128i A0 = _mm_srli_epi16(avg, 1);
+ const __m128i A1 = _mm_sub_epi16(A0, B0);
+@@ -52,16 +51,15 @@ static WEBP_INLINE uint32_t ClampedAddSubtractHalf_SSE2(uint32_t c0,
+ const __m128i A3 = _mm_srai_epi16(A2, 1);
+ const __m128i A4 = _mm_add_epi16(A0, A3);
+ const __m128i A5 = _mm_packus_epi16(A4, A4);
+- const uint32_t output = _mm_cvtsi128_si32(A5);
+- return output;
++ return (uint32_t)_mm_cvtsi128_si32(A5);
+ }
+
+ static WEBP_INLINE uint32_t Select_SSE2(uint32_t a, uint32_t b, uint32_t c) {
+ int pa_minus_pb;
+ const __m128i zero = _mm_setzero_si128();
+- const __m128i A0 = _mm_cvtsi32_si128(a);
+- const __m128i B0 = _mm_cvtsi32_si128(b);
+- const __m128i C0 = _mm_cvtsi32_si128(c);
++ const __m128i A0 = _mm_cvtsi32_si128((int)a);
++ const __m128i B0 = _mm_cvtsi32_si128((int)b);
++ const __m128i C0 = _mm_cvtsi32_si128((int)c);
+ const __m128i AC0 = _mm_subs_epu8(A0, C0);
+ const __m128i CA0 = _mm_subs_epu8(C0, A0);
+ const __m128i BC0 = _mm_subs_epu8(B0, C0);
+@@ -94,8 +92,8 @@ static WEBP_INLINE void Average2_uint32_SSE2(const uint32_t a0,
+ __m128i* const avg) {
+ // (a + b) >> 1 = ((a + b + 1) >> 1) - ((a ^ b) & 1)
+ const __m128i ones = _mm_set1_epi8(1);
+- const __m128i A0 = _mm_cvtsi32_si128(a0);
+- const __m128i A1 = _mm_cvtsi32_si128(a1);
++ const __m128i A0 = _mm_cvtsi32_si128((int)a0);
++ const __m128i A1 = _mm_cvtsi32_si128((int)a1);
+ const __m128i avg1 = _mm_avg_epu8(A0, A1);
+ const __m128i one = _mm_and_si128(_mm_xor_si128(A0, A1), ones);
+ *avg = _mm_sub_epi8(avg1, one);
+@@ -103,8 +101,8 @@ static WEBP_INLINE void Average2_uint32_SSE2(const uint32_t a0,
+
+ static WEBP_INLINE __m128i Average2_uint32_16_SSE2(uint32_t a0, uint32_t a1) {
+ const __m128i zero = _mm_setzero_si128();
+- const __m128i A0 = _mm_unpacklo_epi8(_mm_cvtsi32_si128(a0), zero);
+- const __m128i A1 = _mm_unpacklo_epi8(_mm_cvtsi32_si128(a1), zero);
++ const __m128i A0 = _mm_unpacklo_epi8(_mm_cvtsi32_si128((int)a0), zero);
++ const __m128i A1 = _mm_unpacklo_epi8(_mm_cvtsi32_si128((int)a1), zero);
+ const __m128i sum = _mm_add_epi16(A1, A0);
+ return _mm_srli_epi16(sum, 1);
+ }
+@@ -112,19 +110,18 @@ static WEBP_INLINE __m128i Average2_uint32_16_SSE2(uint32_t a0, uint32_t a1) {
+ static WEBP_INLINE uint32_t Average2_SSE2(uint32_t a0, uint32_t a1) {
+ __m128i output;
+ Average2_uint32_SSE2(a0, a1, &output);
+- return _mm_cvtsi128_si32(output);
++ return (uint32_t)_mm_cvtsi128_si32(output);
+ }
+
+ static WEBP_INLINE uint32_t Average3_SSE2(uint32_t a0, uint32_t a1,
+ uint32_t a2) {
+ const __m128i zero = _mm_setzero_si128();
+ const __m128i avg1 = Average2_uint32_16_SSE2(a0, a2);
+- const __m128i A1 = _mm_unpacklo_epi8(_mm_cvtsi32_si128(a1), zero);
++ const __m128i A1 = _mm_unpacklo_epi8(_mm_cvtsi32_si128((int)a1), zero);
+ const __m128i sum = _mm_add_epi16(avg1, A1);
+ const __m128i avg2 = _mm_srli_epi16(sum, 1);
+ const __m128i A2 = _mm_packus_epi16(avg2, avg2);
+- const uint32_t output = _mm_cvtsi128_si32(A2);
+- return output;
++ return (uint32_t)_mm_cvtsi128_si32(A2);
+ }
+
+ static WEBP_INLINE uint32_t Average4_SSE2(uint32_t a0, uint32_t a1,
+@@ -134,8 +131,7 @@ static WEBP_INLINE uint32_t Average4_SSE2(uint32_t a0, uint32_t a1,
+ const __m128i sum = _mm_add_epi16(avg2, avg1);
+ const __m128i avg3 = _mm_srli_epi16(sum, 1);
+ const __m128i A0 = _mm_packus_epi16(avg3, avg3);
+- const uint32_t output = _mm_cvtsi128_si32(A0);
+- return output;
++ return (uint32_t)_mm_cvtsi128_si32(A0);
+ }
+
+ static uint32_t Predictor5_SSE2(const uint32_t* const left,
+@@ -192,7 +188,7 @@ static uint32_t Predictor13_SSE2(const uint32_t* const left,
+ static void PredictorAdd0_SSE2(const uint32_t* in, const uint32_t* upper,
+ int num_pixels, uint32_t* out) {
+ int i;
+- const __m128i black = _mm_set1_epi32(ARGB_BLACK);
++ const __m128i black = _mm_set1_epi32((int)ARGB_BLACK);
+ for (i = 0; i + 4 <= num_pixels; i += 4) {
+ const __m128i src = _mm_loadu_si128((const __m128i*)&in[i]);
+ const __m128i res = _mm_add_epi8(src, black);
+@@ -208,7 +204,7 @@ static void PredictorAdd0_SSE2(const uint32_t* in, const uint32_t* upper,
+ static void PredictorAdd1_SSE2(const uint32_t* in, const uint32_t* upper,
+ int num_pixels, uint32_t* out) {
+ int i;
+- __m128i prev = _mm_set1_epi32(out[-1]);
++ __m128i prev = _mm_set1_epi32((int)out[-1]);
+ for (i = 0; i + 4 <= num_pixels; i += 4) {
+ // a | b | c | d
+ const __m128i src = _mm_loadu_si128((const __m128i*)&in[i]);
+@@ -285,12 +281,12 @@ GENERATE_PREDICTOR_2(9, upper[i + 1])
+ #undef GENERATE_PREDICTOR_2
+
+ // Predictor10: average of (average of (L,TL), average of (T, TR)).
+-#define DO_PRED10(OUT) do { \
+- __m128i avgLTL, avg; \
+- Average2_m128i(&L, &TL, &avgLTL); \
+- Average2_m128i(&avgTTR, &avgLTL, &avg); \
+- L = _mm_add_epi8(avg, src); \
+- out[i + (OUT)] = _mm_cvtsi128_si32(L); \
++#define DO_PRED10(OUT) do { \
++ __m128i avgLTL, avg; \
++ Average2_m128i(&L, &TL, &avgLTL); \
++ Average2_m128i(&avgTTR, &avgLTL, &avg); \
++ L = _mm_add_epi8(avg, src); \
++ out[i + (OUT)] = (uint32_t)_mm_cvtsi128_si32(L); \
+ } while (0)
+
+ #define DO_PRED10_SHIFT do { \
+@@ -303,7 +299,7 @@ GENERATE_PREDICTOR_2(9, upper[i + 1])
+ static void PredictorAdd10_SSE2(const uint32_t* in, const uint32_t* upper,
+ int num_pixels, uint32_t* out) {
+ int i;
+- __m128i L = _mm_cvtsi32_si128(out[-1]);
++ __m128i L = _mm_cvtsi32_si128((int)out[-1]);
+ for (i = 0; i + 4 <= num_pixels; i += 4) {
+ __m128i src = _mm_loadu_si128((const __m128i*)&in[i]);
+ __m128i TL = _mm_loadu_si128((const __m128i*)&upper[i - 1]);
+@@ -336,7 +332,7 @@ static void PredictorAdd10_SSE2(const uint32_t* in, const uint32_t* upper,
+ const __m128i B = _mm_andnot_si128(mask, T); \
+ const __m128i pred = _mm_or_si128(A, B); /* pred = (pa > b)? L : T*/ \
+ L = _mm_add_epi8(src, pred); \
+- out[i + (OUT)] = _mm_cvtsi128_si32(L); \
++ out[i + (OUT)] = (uint32_t)_mm_cvtsi128_si32(L); \
+ } while (0)
+
+ #define DO_PRED11_SHIFT do { \
+@@ -351,7 +347,7 @@ static void PredictorAdd11_SSE2(const uint32_t* in, const uint32_t* upper,
+ int num_pixels, uint32_t* out) {
+ int i;
+ __m128i pa;
+- __m128i L = _mm_cvtsi32_si128(out[-1]);
++ __m128i L = _mm_cvtsi32_si128((int)out[-1]);
+ for (i = 0; i + 4 <= num_pixels; i += 4) {
+ __m128i T = _mm_loadu_si128((const __m128i*)&upper[i]);
+ __m128i TL = _mm_loadu_si128((const __m128i*)&upper[i - 1]);
+@@ -384,12 +380,12 @@ static void PredictorAdd11_SSE2(const uint32_t* in, const uint32_t* upper,
+ #undef DO_PRED11_SHIFT
+
+ // Predictor12: ClampedAddSubtractFull.
+-#define DO_PRED12(DIFF, LANE, OUT) do { \
+- const __m128i all = _mm_add_epi16(L, (DIFF)); \
+- const __m128i alls = _mm_packus_epi16(all, all); \
+- const __m128i res = _mm_add_epi8(src, alls); \
+- out[i + (OUT)] = _mm_cvtsi128_si32(res); \
+- L = _mm_unpacklo_epi8(res, zero); \
++#define DO_PRED12(DIFF, LANE, OUT) do { \
++ const __m128i all = _mm_add_epi16(L, (DIFF)); \
++ const __m128i alls = _mm_packus_epi16(all, all); \
++ const __m128i res = _mm_add_epi8(src, alls); \
++ out[i + (OUT)] = (uint32_t)_mm_cvtsi128_si32(res); \
++ L = _mm_unpacklo_epi8(res, zero); \
+ } while (0)
+
+ #define DO_PRED12_SHIFT(DIFF, LANE) do { \
+@@ -402,7 +398,7 @@ static void PredictorAdd12_SSE2(const uint32_t* in, const uint32_t* upper,
+ int num_pixels, uint32_t* out) {
+ int i;
+ const __m128i zero = _mm_setzero_si128();
+- const __m128i L8 = _mm_cvtsi32_si128(out[-1]);
++ const __m128i L8 = _mm_cvtsi32_si128((int)out[-1]);
+ __m128i L = _mm_unpacklo_epi8(L8, zero);
+ for (i = 0; i + 4 <= num_pixels; i += 4) {
+ // Load 4 pixels at a time.
+@@ -468,7 +464,7 @@ static void TransformColorInverse_SSE2(const VP8LMultipliers* const m,
+ const __m128i mults_b2 = MK_CST_16(CST(red_to_blue_), 0);
+ #undef MK_CST_16
+ #undef CST
+- const __m128i mask_ag = _mm_set1_epi32(0xff00ff00); // alpha-green masks
++ const __m128i mask_ag = _mm_set1_epi32((int)0xff00ff00); // alpha-green masks
+ int i;
+ for (i = 0; i + 4 <= num_pixels; i += 4) {
+ const __m128i in = _mm_loadu_si128((const __m128i*)&src[i]); // argb
+@@ -532,7 +528,7 @@ static void ConvertBGRAToRGB_SSE2(const uint32_t* src, int num_pixels,
+
+ static void ConvertBGRAToRGBA_SSE2(const uint32_t* src,
+ int num_pixels, uint8_t* dst) {
+- const __m128i red_blue_mask = _mm_set1_epi32(0x00ff00ffu);
++ const __m128i red_blue_mask = _mm_set1_epi32(0x00ff00ff);
+ const __m128i* in = (const __m128i*)src;
+ __m128i* out = (__m128i*)dst;
+ while (num_pixels >= 8) {
+@@ -561,7 +557,7 @@ static void ConvertBGRAToRGBA_SSE2(const uint32_t* src,
+ static void ConvertBGRAToRGBA4444_SSE2(const uint32_t* src,
+ int num_pixels, uint8_t* dst) {
+ const __m128i mask_0x0f = _mm_set1_epi8(0x0f);
+- const __m128i mask_0xf0 = _mm_set1_epi8(0xf0);
++ const __m128i mask_0xf0 = _mm_set1_epi8((char)0xf0);
+ const __m128i* in = (const __m128i*)src;
+ __m128i* out = (__m128i*)dst;
+ while (num_pixels >= 8) {
+@@ -596,8 +592,8 @@ static void ConvertBGRAToRGBA4444_SSE2(const uint32_t* src,
+
+ static void ConvertBGRAToRGB565_SSE2(const uint32_t* src,
+ int num_pixels, uint8_t* dst) {
+- const __m128i mask_0xe0 = _mm_set1_epi8(0xe0);
+- const __m128i mask_0xf8 = _mm_set1_epi8(0xf8);
++ const __m128i mask_0xe0 = _mm_set1_epi8((char)0xe0);
++ const __m128i mask_0xf8 = _mm_set1_epi8((char)0xf8);
+ const __m128i mask_0x07 = _mm_set1_epi8(0x07);
+ const __m128i* in = (const __m128i*)src;
+ __m128i* out = (__m128i*)dst;
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_sse41.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_sse41.c
+index b0d6daa7fed3..bb7ce7611fa9 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_sse41.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless_sse41.c
+@@ -25,11 +25,12 @@ static void TransformColorInverse_SSE41(const VP8LMultipliers* const m,
+ int num_pixels, uint32_t* dst) {
+ // sign-extended multiplying constants, pre-shifted by 5.
+ #define CST(X) (((int16_t)(m->X << 8)) >> 5) // sign-extend
+- const __m128i mults_rb = _mm_set1_epi32((uint32_t)CST(green_to_red_) << 16 |
+- (CST(green_to_blue_) & 0xffff));
++ const __m128i mults_rb =
++ _mm_set1_epi32((int)((uint32_t)CST(green_to_red_) << 16 |
++ (CST(green_to_blue_) & 0xffff)));
+ const __m128i mults_b2 = _mm_set1_epi32(CST(red_to_blue_));
+ #undef CST
+- const __m128i mask_ag = _mm_set1_epi32(0xff00ff00);
++ const __m128i mask_ag = _mm_set1_epi32((int)0xff00ff00);
+ const __m128i perm1 = _mm_setr_epi8(-1, 1, -1, 1, -1, 5, -1, 5,
+ -1, 9, -1, 9, -1, 13, -1, 13);
+ const __m128i perm2 = _mm_setr_epi8(-1, 2, -1, -1, -1, 6, -1, -1,
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/neon.h b/qtimageformats/src/3rdparty/libwebp/src/dsp/neon.h
+index c591f9b9a78e..14acb4044ba6 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/neon.h
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/neon.h
+@@ -21,7 +21,7 @@
+ // Right now, some intrinsics functions seem slower, so we disable them
+ // everywhere except newer clang/gcc or aarch64 where the inline assembly is
+ // incompatible.
+-#if LOCAL_CLANG_PREREQ(3,8) || LOCAL_GCC_PREREQ(4,9) || defined(__aarch64__)
++#if LOCAL_CLANG_PREREQ(3, 8) || LOCAL_GCC_PREREQ(4, 9) || WEBP_AARCH64
+ #define WEBP_USE_INTRINSICS // use intrinsics when possible
+ #endif
+
+@@ -46,7 +46,7 @@
+ // if using intrinsics, this flag avoids some functions that make gcc-4.6.3
+ // crash ("internal compiler error: in immed_double_const, at emit-rtl.").
+ // (probably similar to gcc.gnu.org/bugzilla/show_bug.cgi?id=48183)
+-#if !(LOCAL_CLANG_PREREQ(3,8) || LOCAL_GCC_PREREQ(4,8) || defined(__aarch64__))
++#if !(LOCAL_CLANG_PREREQ(3, 8) || LOCAL_GCC_PREREQ(4, 8) || WEBP_AARCH64)
+ #define WORK_AROUND_GCC
+ #endif
+
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/quant.h b/qtimageformats/src/3rdparty/libwebp/src/dsp/quant.h
+index 5e8dba8d19e8..bf7734cb11d5 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/quant.h
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/quant.h
+@@ -21,10 +21,15 @@
+
+ #define IsFlat IsFlat_NEON
+
+-static uint32x2_t horizontal_add_uint32x4(const uint32x4_t a) {
++static uint32_t horizontal_add_uint32x4(const uint32x4_t a) {
++#if WEBP_AARCH64
++ return vaddvq_u32(a);
++#else
+ const uint64x2_t b = vpaddlq_u32(a);
+- return vadd_u32(vreinterpret_u32_u64(vget_low_u64(b)),
+- vreinterpret_u32_u64(vget_high_u64(b)));
++ const uint32x2_t c = vadd_u32(vreinterpret_u32_u64(vget_low_u64(b)),
++ vreinterpret_u32_u64(vget_high_u64(b)));
++ return vget_lane_u32(c, 0);
++#endif
+ }
+
+ static WEBP_INLINE int IsFlat(const int16_t* levels, int num_blocks,
+@@ -45,7 +50,7 @@ static WEBP_INLINE int IsFlat(const int16_t* levels, int num_blocks,
+
+ levels += 16;
+ }
+- return thresh >= (int32_t)vget_lane_u32(horizontal_add_uint32x4(sum), 0);
++ return thresh >= (int)horizontal_add_uint32x4(sum);
+ }
+
+ #else
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/rescaler.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/rescaler.c
+index 14620ce4f1e5..325d8be1808b 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/rescaler.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/rescaler.c
+@@ -197,6 +197,7 @@ WebPRescalerImportRowFunc WebPRescalerImportRowShrink;
+ WebPRescalerExportRowFunc WebPRescalerExportRowExpand;
+ WebPRescalerExportRowFunc WebPRescalerExportRowShrink;
+
++extern VP8CPUInfo VP8GetCPUInfo;
+ extern void WebPRescalerDspInitSSE2(void);
+ extern void WebPRescalerDspInitMIPS32(void);
+ extern void WebPRescalerDspInitMIPSdspR2(void);
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/rescaler_sse2.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/rescaler_sse2.c
+index d7effea16ea2..3f18e94e9359 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/rescaler_sse2.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/rescaler_sse2.c
+@@ -85,7 +85,7 @@ static void RescalerImportRowExpand_SSE2(WebPRescaler* const wrk,
+ const __m128i mult = _mm_cvtsi32_si128(((x_add - accum) << 16) | accum);
+ const __m128i out = _mm_madd_epi16(cur_pixels, mult);
+ assert(sizeof(*frow) == sizeof(uint32_t));
+- WebPUint32ToMem((uint8_t*)frow, _mm_cvtsi128_si32(out));
++ WebPInt32ToMem((uint8_t*)frow, _mm_cvtsi128_si32(out));
+ frow += 1;
+ if (frow >= frow_end) break;
+ accum -= wrk->x_sub;
+@@ -132,7 +132,7 @@ static void RescalerImportRowShrink_SSE2(WebPRescaler* const wrk,
+ __m128i base = zero;
+ accum += wrk->x_add;
+ while (accum > 0) {
+- const __m128i A = _mm_cvtsi32_si128(WebPMemToUint32(src));
++ const __m128i A = _mm_cvtsi32_si128(WebPMemToInt32(src));
+ src += 4;
+ base = _mm_unpacklo_epi8(A, zero);
+ // To avoid overflow, we need: base * x_add / x_sub < 32768
+@@ -198,7 +198,7 @@ static WEBP_INLINE void ProcessRow_SSE2(const __m128i* const A0,
+ const __m128i* const mult,
+ uint8_t* const dst) {
+ const __m128i rounder = _mm_set_epi32(0, ROUNDER, 0, ROUNDER);
+- const __m128i mask = _mm_set_epi32(0xffffffffu, 0, 0xffffffffu, 0);
++ const __m128i mask = _mm_set_epi32(~0, 0, ~0, 0);
+ const __m128i B0 = _mm_mul_epu32(*A0, *mult);
+ const __m128i B1 = _mm_mul_epu32(*A1, *mult);
+ const __m128i B2 = _mm_mul_epu32(*A2, *mult);
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/ssim.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/ssim.c
+index f85c2e6e5b54..9a1341ed9585 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/ssim.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/ssim.c
+@@ -137,6 +137,7 @@ VP8SSIMGetClippedFunc VP8SSIMGetClipped;
+ VP8AccumulateSSEFunc VP8AccumulateSSE;
+ #endif
+
++extern VP8CPUInfo VP8GetCPUInfo;
+ extern void VP8SSIMDspInitSSE2(void);
+
+ WEBP_DSP_INIT_FUNC(VP8SSIMDspInit) {
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/upsampling.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/upsampling.c
+index 87f771f3eb51..983b9c42d36c 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/upsampling.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/upsampling.c
+@@ -215,6 +215,7 @@ static void EmptyYuv444Func(const uint8_t* y,
+
+ WebPYUV444Converter WebPYUV444Converters[MODE_LAST];
+
++extern VP8CPUInfo VP8GetCPUInfo;
+ extern void WebPInitYUV444ConvertersMIPSdspR2(void);
+ extern void WebPInitYUV444ConvertersSSE2(void);
+ extern void WebPInitYUV444ConvertersSSE41(void);
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/upsampling_neon.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/upsampling_neon.c
+index 6ba71a7de537..bbc000ca2d38 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/upsampling_neon.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/upsampling_neon.c
+@@ -111,7 +111,7 @@ static const int16_t kCoeffs1[4] = { 19077, 26149, 6419, 13320 };
+ vst4_u8(out, v255_r_g_b); \
+ } while (0)
+
+-#if !defined(WEBP_SWAP_16BIT_CSP)
++#if (WEBP_SWAP_16BIT_CSP == 0)
+ #define ZIP_U8(lo, hi) vzip_u8((lo), (hi))
+ #else
+ #define ZIP_U8(lo, hi) vzip_u8((hi), (lo))
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/upsampling_sse2.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/upsampling_sse2.c
+index 340f1e2ac238..08b6d0b1cfb8 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/upsampling_sse2.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/upsampling_sse2.c
+@@ -121,7 +121,7 @@ static void FUNC_NAME(const uint8_t* top_y, const uint8_t* bottom_y, \
+ int uv_pos, pos; \
+ /* 16byte-aligned array to cache reconstructed u and v */ \
+ uint8_t uv_buf[14 * 32 + 15] = { 0 }; \
+- uint8_t* const r_u = (uint8_t*)((uintptr_t)(uv_buf + 15) & ~15); \
++ uint8_t* const r_u = (uint8_t*)((uintptr_t)(uv_buf + 15) & ~(uintptr_t)15); \
+ uint8_t* const r_v = r_u + 32; \
+ \
+ assert(top_y != NULL); \
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/yuv.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/yuv.c
+index d16c13d3ca3c..8a04b85d82dd 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/yuv.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/yuv.c
+@@ -70,6 +70,7 @@ void WebPSamplerProcessPlane(const uint8_t* y, int y_stride,
+
+ WebPSamplerRowFunc WebPSamplers[MODE_LAST];
+
++extern VP8CPUInfo VP8GetCPUInfo;
+ extern void WebPInitSamplersSSE2(void);
+ extern void WebPInitSamplersSSE41(void);
+ extern void WebPInitSamplersMIPS32(void);
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/yuv_sse2.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/yuv_sse2.c
+index 970bbb788407..01a48f9af2c6 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/yuv_sse2.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/yuv_sse2.c
+@@ -15,10 +15,12 @@
+
+ #if defined(WEBP_USE_SSE2)
+
+-#include "src/dsp/common_sse2.h"
+ #include <stdlib.h>
+ #include <emmintrin.h>
+
++#include "src/dsp/common_sse2.h"
++#include "src/utils/utils.h"
++
+ //-----------------------------------------------------------------------------
+ // Convert spans of 32 pixels to various RGB formats for the fancy upsampler.
+
+@@ -74,7 +76,7 @@ static WEBP_INLINE __m128i Load_HI_16_SSE2(const uint8_t* src) {
+ // Load and replicate the U/V samples
+ static WEBP_INLINE __m128i Load_UV_HI_8_SSE2(const uint8_t* src) {
+ const __m128i zero = _mm_setzero_si128();
+- const __m128i tmp0 = _mm_cvtsi32_si128(*(const uint32_t*)src);
++ const __m128i tmp0 = _mm_cvtsi32_si128(WebPMemToInt32(src));
+ const __m128i tmp1 = _mm_unpacklo_epi8(zero, tmp0);
+ return _mm_unpacklo_epi16(tmp1, tmp1); // replicate samples
+ }
+@@ -130,7 +132,7 @@ static WEBP_INLINE void PackAndStore4444_SSE2(const __m128i* const R,
+ const __m128i rg0 = _mm_packus_epi16(*B, *A);
+ const __m128i ba0 = _mm_packus_epi16(*R, *G);
+ #endif
+- const __m128i mask_0xf0 = _mm_set1_epi8(0xf0);
++ const __m128i mask_0xf0 = _mm_set1_epi8((char)0xf0);
+ const __m128i rb1 = _mm_unpacklo_epi8(rg0, ba0); // rbrbrbrbrb...
+ const __m128i ga1 = _mm_unpackhi_epi8(rg0, ba0); // gagagagaga...
+ const __m128i rb2 = _mm_and_si128(rb1, mask_0xf0);
+@@ -147,9 +149,10 @@ static WEBP_INLINE void PackAndStore565_SSE2(const __m128i* const R,
+ const __m128i r0 = _mm_packus_epi16(*R, *R);
+ const __m128i g0 = _mm_packus_epi16(*G, *G);
+ const __m128i b0 = _mm_packus_epi16(*B, *B);
+- const __m128i r1 = _mm_and_si128(r0, _mm_set1_epi8(0xf8));
++ const __m128i r1 = _mm_and_si128(r0, _mm_set1_epi8((char)0xf8));
+ const __m128i b1 = _mm_and_si128(_mm_srli_epi16(b0, 3), _mm_set1_epi8(0x1f));
+- const __m128i g1 = _mm_srli_epi16(_mm_and_si128(g0, _mm_set1_epi8(0xe0)), 5);
++ const __m128i g1 =
++ _mm_srli_epi16(_mm_and_si128(g0, _mm_set1_epi8((char)0xe0)), 5);
+ const __m128i g2 = _mm_slli_epi16(_mm_and_si128(g0, _mm_set1_epi8(0x1c)), 3);
+ const __m128i rg = _mm_or_si128(r1, g1);
+ const __m128i gb = _mm_or_si128(g2, b1);
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/dsp/yuv_sse41.c b/qtimageformats/src/3rdparty/libwebp/src/dsp/yuv_sse41.c
+index 579d1f7402c2..f79b802e4712 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/dsp/yuv_sse41.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/dsp/yuv_sse41.c
+@@ -15,10 +15,12 @@
+
+ #if defined(WEBP_USE_SSE41)
+
+-#include "src/dsp/common_sse41.h"
+ #include <stdlib.h>
+ #include <smmintrin.h>
+
++#include "src/dsp/common_sse41.h"
++#include "src/utils/utils.h"
++
+ //-----------------------------------------------------------------------------
+ // Convert spans of 32 pixels to various RGB formats for the fancy upsampler.
+
+@@ -74,7 +76,7 @@ static WEBP_INLINE __m128i Load_HI_16_SSE41(const uint8_t* src) {
+ // Load and replicate the U/V samples
+ static WEBP_INLINE __m128i Load_UV_HI_8_SSE41(const uint8_t* src) {
+ const __m128i zero = _mm_setzero_si128();
+- const __m128i tmp0 = _mm_cvtsi32_si128(*(const uint32_t*)src);
++ const __m128i tmp0 = _mm_cvtsi32_si128(WebPMemToInt32(src));
+ const __m128i tmp1 = _mm_unpacklo_epi8(zero, tmp0);
+ return _mm_unpacklo_epi16(tmp1, tmp1); // replicate samples
+ }
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/enc/alpha_enc.c b/qtimageformats/src/3rdparty/libwebp/src/enc/alpha_enc.c
+index f7c02690e3cf..26f003485aa2 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/enc/alpha_enc.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/enc/alpha_enc.c
+@@ -13,6 +13,7 @@
+
+ #include <assert.h>
+ #include <stdlib.h>
++#include <string.h>
+
+ #include "src/enc/vp8i_enc.h"
+ #include "src/dsp/dsp.h"
+@@ -140,6 +141,11 @@ static int EncodeAlphaInternal(const uint8_t* const data, int width, int height,
+ !reduce_levels, &tmp_bw, &result->stats);
+ if (ok) {
+ output = VP8LBitWriterFinish(&tmp_bw);
++ if (tmp_bw.error_) {
++ VP8LBitWriterWipeOut(&tmp_bw);
++ memset(&result->bw, 0, sizeof(result->bw));
++ return 0;
++ }
+ output_size = VP8LBitWriterNumBytes(&tmp_bw);
+ if (output_size > data_size) {
+ // compressed size is larger than source! Revert to uncompressed mode.
+@@ -148,6 +154,7 @@ static int EncodeAlphaInternal(const uint8_t* const data, int width, int height,
+ }
+ } else {
+ VP8LBitWriterWipeOut(&tmp_bw);
++ memset(&result->bw, 0, sizeof(result->bw));
+ return 0;
+ }
+ }
+@@ -162,7 +169,7 @@ static int EncodeAlphaInternal(const uint8_t* const data, int width, int height,
+ header = method | (filter << 2);
+ if (reduce_levels) header |= ALPHA_PREPROCESSED_LEVELS << 4;
+
+- VP8BitWriterInit(&result->bw, ALPHA_HEADER_LEN + output_size);
++ if (!VP8BitWriterInit(&result->bw, ALPHA_HEADER_LEN + output_size)) ok = 0;
+ ok = ok && VP8BitWriterAppend(&result->bw, &header, ALPHA_HEADER_LEN);
+ ok = ok && VP8BitWriterAppend(&result->bw, output, output_size);
+
+@@ -312,11 +319,11 @@ static int EncodeAlpha(VP8Encoder* const enc,
+ assert(filter >= WEBP_FILTER_NONE && filter <= WEBP_FILTER_FAST);
+
+ if (quality < 0 || quality > 100) {
+- return 0;
++ return WebPEncodingSetError(pic, VP8_ENC_ERROR_INVALID_CONFIGURATION);
+ }
+
+ if (method < ALPHA_NO_COMPRESSION || method > ALPHA_LOSSLESS_COMPRESSION) {
+- return 0;
++ return WebPEncodingSetError(pic, VP8_ENC_ERROR_INVALID_CONFIGURATION);
+ }
+
+ if (method == ALPHA_NO_COMPRESSION) {
+@@ -326,7 +333,7 @@ static int EncodeAlpha(VP8Encoder* const enc,
+
+ quant_alpha = (uint8_t*)WebPSafeMalloc(1ULL, data_size);
+ if (quant_alpha == NULL) {
+- return 0;
++ return WebPEncodingSetError(pic, VP8_ENC_ERROR_OUT_OF_MEMORY);
+ }
+
+ // Extract alpha data (width x height) from raw_data (stride x height).
+@@ -346,6 +353,9 @@ static int EncodeAlpha(VP8Encoder* const enc,
+ ok = ApplyFiltersAndEncode(quant_alpha, width, height, data_size, method,
+ filter, reduce_levels, effort_level, output,
+ output_size, pic->stats);
++ if (!ok) {
++ WebPEncodingSetError(pic, VP8_ENC_ERROR_OUT_OF_MEMORY); // imprecise
++ }
+ #if !defined(WEBP_DISABLE_STATS)
+ if (pic->stats != NULL) { // need stats?
+ pic->stats->coded_size += (int)(*output_size);
+@@ -405,7 +415,7 @@ int VP8EncStartAlpha(VP8Encoder* const enc) {
+ WebPWorker* const worker = &enc->alpha_worker_;
+ // Makes sure worker is good to go.
+ if (!WebPGetWorkerInterface()->Reset(worker)) {
+- return 0;
++ return WebPEncodingSetError(enc->pic_, VP8_ENC_ERROR_OUT_OF_MEMORY);
+ }
+ WebPGetWorkerInterface()->Launch(worker);
+ return 1;
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/enc/analysis_enc.c b/qtimageformats/src/3rdparty/libwebp/src/enc/analysis_enc.c
+index ebb784261c63..962eaa998f87 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/enc/analysis_enc.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/enc/analysis_enc.c
+@@ -391,12 +391,14 @@ static int DoSegmentsJob(void* arg1, void* arg2) {
+ return ok;
+ }
+
++#ifdef WEBP_USE_THREAD
+ static void MergeJobs(const SegmentJob* const src, SegmentJob* const dst) {
+ int i;
+ for (i = 0; i <= MAX_ALPHA; ++i) dst->alphas[i] += src->alphas[i];
+ dst->alpha += src->alpha;
+ dst->uv_alpha += src->uv_alpha;
+ }
++#endif
+
+ // initialize the job struct with some tasks to perform
+ static void InitSegmentJob(VP8Encoder* const enc, SegmentJob* const job,
+@@ -425,10 +427,10 @@ int VP8EncAnalyze(VP8Encoder* const enc) {
+ (enc->method_ <= 1); // for method 0 - 1, we need preds_[] to be filled.
+ if (do_segments) {
+ const int last_row = enc->mb_h_;
+- // We give a little more than a half work to the main thread.
+- const int split_row = (9 * last_row + 15) >> 4;
+ const int total_mb = last_row * enc->mb_w_;
+ #ifdef WEBP_USE_THREAD
++ // We give a little more than a half work to the main thread.
++ const int split_row = (9 * last_row + 15) >> 4;
+ const int kMinSplitRow = 2; // minimal rows needed for mt to be worth it
+ const int do_mt = (enc->thread_level_ > 0) && (split_row >= kMinSplitRow);
+ #else
+@@ -438,6 +440,7 @@ int VP8EncAnalyze(VP8Encoder* const enc) {
+ WebPGetWorkerInterface();
+ SegmentJob main_job;
+ if (do_mt) {
++#ifdef WEBP_USE_THREAD
+ SegmentJob side_job;
+ // Note the use of '&' instead of '&&' because we must call the functions
+ // no matter what.
+@@ -455,6 +458,7 @@ int VP8EncAnalyze(VP8Encoder* const enc) {
+ }
+ worker_interface->End(&side_job.worker);
+ if (ok) MergeJobs(&side_job, &main_job); // merge results together
++#endif // WEBP_USE_THREAD
+ } else {
+ // Even for single-thread case, we use the generic Worker tools.
+ InitSegmentJob(enc, &main_job, 0, last_row);
+@@ -470,6 +474,10 @@ int VP8EncAnalyze(VP8Encoder* const enc) {
+ } else { // Use only one default segment.
+ ResetAllMBInfo(enc);
+ }
++ if (!ok) {
++ return WebPEncodingSetError(enc->pic_,
++ VP8_ENC_ERROR_OUT_OF_MEMORY); // imprecise
++ }
+ return ok;
+ }
+
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/enc/backward_references_enc.c b/qtimageformats/src/3rdparty/libwebp/src/enc/backward_references_enc.c
+index 49a0fac0345b..dc98bf171943 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/enc/backward_references_enc.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/enc/backward_references_enc.c
+@@ -283,8 +283,7 @@ int VP8LHashChainFill(VP8LHashChain* const p, int quality,
+ hash_to_first_index =
+ (int32_t*)WebPSafeMalloc(HASH_SIZE, sizeof(*hash_to_first_index));
+ if (hash_to_first_index == NULL) {
+- WebPEncodingSetError(pic, VP8_ENC_ERROR_OUT_OF_MEMORY);
+- return 0;
++ return WebPEncodingSetError(pic, VP8_ENC_ERROR_OUT_OF_MEMORY);
+ }
+
+ percent_range = remaining_percent / 2;
+@@ -1050,8 +1049,7 @@ int VP8LGetBackwardReferences(
+ refs_best = GetBackwardReferencesLowEffort(
+ width, height, argb, cache_bits_best, hash_chain, refs);
+ if (refs_best == NULL) {
+- WebPEncodingSetError(pic, VP8_ENC_ERROR_OUT_OF_MEMORY);
+- return 0;
++ return WebPEncodingSetError(pic, VP8_ENC_ERROR_OUT_OF_MEMORY);
+ }
+ // Set it in first position.
+ BackwardRefsSwap(refs_best, &refs[0]);
+@@ -1059,8 +1057,7 @@ int VP8LGetBackwardReferences(
+ if (!GetBackwardReferences(width, height, argb, quality, lz77_types_to_try,
+ cache_bits_max, do_no_cache, hash_chain, refs,
+ cache_bits_best)) {
+- WebPEncodingSetError(pic, VP8_ENC_ERROR_OUT_OF_MEMORY);
+- return 0;
++ return WebPEncodingSetError(pic, VP8_ENC_ERROR_OUT_OF_MEMORY);
+ }
+ }
+
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/enc/frame_enc.c b/qtimageformats/src/3rdparty/libwebp/src/enc/frame_enc.c
+index b93d9e5b9914..9a98dc1f3ee3 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/enc/frame_enc.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/enc/frame_enc.c
+@@ -689,7 +689,7 @@ static int PreLoopInitialize(VP8Encoder* const enc) {
+ }
+ if (!ok) {
+ VP8EncFreeBitWriters(enc); // malloc error occurred
+- WebPEncodingSetError(enc->pic_, VP8_ENC_ERROR_OUT_OF_MEMORY);
++ return WebPEncodingSetError(enc->pic_, VP8_ENC_ERROR_OUT_OF_MEMORY);
+ }
+ return ok;
+ }
+@@ -719,6 +719,7 @@ static int PostLoopFinalize(VP8EncIterator* const it, int ok) {
+ } else {
+ // Something bad happened -> need to do some memory cleanup.
+ VP8EncFreeBitWriters(enc);
++ return WebPEncodingSetError(enc->pic_, VP8_ENC_ERROR_OUT_OF_MEMORY);
+ }
+ return ok;
+ }
+@@ -754,6 +755,11 @@ int VP8EncLoop(VP8Encoder* const enc) {
+ // *then* decide how to code the skip decision if there's one.
+ if (!VP8Decimate(&it, &info, rd_opt) || dont_use_skip) {
+ CodeResiduals(it.bw_, &it, &info);
++ if (it.bw_->error_) {
++ // enc->pic_->error_code is set in PostLoopFinalize().
++ ok = 0;
++ break;
++ }
+ } else { // reset predictors after a skip
+ ResetAfterSkip(&it);
+ }
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/enc/picture_csp_enc.c b/qtimageformats/src/3rdparty/libwebp/src/enc/picture_csp_enc.c
+index fabebcf2026b..a9280e6c3050 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/enc/picture_csp_enc.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/enc/picture_csp_enc.c
+@@ -69,10 +69,12 @@ static int CheckNonOpaque(const uint8_t* alpha, int width, int height,
+ int WebPPictureHasTransparency(const WebPPicture* picture) {
+ if (picture == NULL) return 0;
+ if (picture->use_argb) {
+- const int alpha_offset = ALPHA_OFFSET;
+- return CheckNonOpaque((const uint8_t*)picture->argb + alpha_offset,
+- picture->width, picture->height,
+- 4, picture->argb_stride * sizeof(*picture->argb));
++ if (picture->argb != NULL) {
++ return CheckNonOpaque((const uint8_t*)picture->argb + ALPHA_OFFSET,
++ picture->width, picture->height,
++ 4, picture->argb_stride * sizeof(*picture->argb));
++ }
++ return 0;
+ }
+ return CheckNonOpaque(picture->a, picture->width, picture->height,
+ 1, picture->a_stride);
+@@ -96,6 +98,7 @@ static int kLinearToGammaTab[GAMMA_TAB_SIZE + 1];
+ static uint16_t kGammaToLinearTab[256];
+ static volatile int kGammaTablesOk = 0;
+ static void InitGammaTables(void);
++extern VP8CPUInfo VP8GetCPUInfo;
+
+ WEBP_DSP_INIT_FUNC(InitGammaTables) {
+ if (!kGammaTablesOk) {
+@@ -170,21 +173,6 @@ static const int kMinDimensionIterativeConversion = 4;
+ //------------------------------------------------------------------------------
+ // Main function
+
+-extern void SharpYuvInit(VP8CPUInfo cpu_info_func);
+-
+-static void SafeInitSharpYuv(void) {
+-#if defined(WEBP_USE_THREAD) && !defined(_WIN32)
+- static pthread_mutex_t initsharpyuv_lock = PTHREAD_MUTEX_INITIALIZER;
+- if (pthread_mutex_lock(&initsharpyuv_lock)) return;
+-#endif
+-
+- SharpYuvInit(VP8GetCPUInfo);
+-
+-#if defined(WEBP_USE_THREAD) && !defined(_WIN32)
+- (void)pthread_mutex_unlock(&initsharpyuv_lock);
+-#endif
+-}
+-
+ static int PreprocessARGB(const uint8_t* r_ptr,
+ const uint8_t* g_ptr,
+ const uint8_t* b_ptr,
+@@ -481,6 +469,8 @@ static WEBP_INLINE void ConvertRowsToUV(const uint16_t* rgb,
+ }
+ }
+
++extern void SharpYuvInit(VP8CPUInfo cpu_info_func);
++
+ static int ImportYUVAFromRGBA(const uint8_t* r_ptr,
+ const uint8_t* g_ptr,
+ const uint8_t* b_ptr,
+@@ -516,7 +506,7 @@ static int ImportYUVAFromRGBA(const uint8_t* r_ptr,
+ }
+
+ if (use_iterative_conversion) {
+- SafeInitSharpYuv();
++ SharpYuvInit(VP8GetCPUInfo);
+ if (!PreprocessARGB(r_ptr, g_ptr, b_ptr, step, rgb_stride, picture)) {
+ return 0;
+ }
+@@ -545,7 +535,9 @@ static int ImportYUVAFromRGBA(const uint8_t* r_ptr,
+ WebPInitConvertARGBToYUV();
+ InitGammaTables();
+
+- if (tmp_rgb == NULL) return 0; // malloc error
++ if (tmp_rgb == NULL) {
++ return WebPEncodingSetError(picture, VP8_ENC_ERROR_OUT_OF_MEMORY);
++ }
+
+ // Downsample Y/U/V planes, two rows at a time
+ for (y = 0; y < (height >> 1); ++y) {
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/enc/picture_rescale_enc.c b/qtimageformats/src/3rdparty/libwebp/src/enc/picture_rescale_enc.c
+index 839f91cacc03..ea90d825484e 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/enc/picture_rescale_enc.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/enc/picture_rescale_enc.c
+@@ -137,7 +137,9 @@ int WebPPictureCrop(WebPPicture* pic,
+ PictureGrabSpecs(pic, &tmp);
+ tmp.width = width;
+ tmp.height = height;
+- if (!WebPPictureAlloc(&tmp)) return 0;
++ if (!WebPPictureAlloc(&tmp)) {
++ return WebPEncodingSetError(pic, tmp.error_code);
++ }
+
+ if (!pic->use_argb) {
+ const int y_offset = top * pic->y_stride + left;
+@@ -212,26 +214,28 @@ int WebPPictureRescale(WebPPicture* picture, int width, int height) {
+ prev_height = picture->height;
+ if (!WebPRescalerGetScaledDimensions(
+ prev_width, prev_height, &width, &height)) {
+- return 0;
++ return WebPEncodingSetError(picture, VP8_ENC_ERROR_BAD_DIMENSION);
+ }
+
+ PictureGrabSpecs(picture, &tmp);
+ tmp.width = width;
+ tmp.height = height;
+- if (!WebPPictureAlloc(&tmp)) return 0;
++ if (!WebPPictureAlloc(&tmp)) {
++ return WebPEncodingSetError(picture, tmp.error_code);
++ }
+
+ if (!picture->use_argb) {
+ work = (rescaler_t*)WebPSafeMalloc(2ULL * width, sizeof(*work));
+ if (work == NULL) {
+ WebPPictureFree(&tmp);
+- return 0;
++ return WebPEncodingSetError(picture, VP8_ENC_ERROR_OUT_OF_MEMORY);
+ }
+ // If present, we need to rescale alpha first (for AlphaMultiplyY).
+ if (picture->a != NULL) {
+ WebPInitAlphaProcessing();
+ if (!RescalePlane(picture->a, prev_width, prev_height, picture->a_stride,
+ tmp.a, width, height, tmp.a_stride, work, 1)) {
+- return 0;
++ return WebPEncodingSetError(picture, VP8_ENC_ERROR_BAD_DIMENSION);
+ }
+ }
+
+@@ -246,14 +250,14 @@ int WebPPictureRescale(WebPPicture* picture, int width, int height) {
+ !RescalePlane(picture->v, HALVE(prev_width), HALVE(prev_height),
+ picture->uv_stride, tmp.v, HALVE(width), HALVE(height),
+ tmp.uv_stride, work, 1)) {
+- return 0;
++ return WebPEncodingSetError(picture, VP8_ENC_ERROR_BAD_DIMENSION);
+ }
+ AlphaMultiplyY(&tmp, 1);
+ } else {
+ work = (rescaler_t*)WebPSafeMalloc(2ULL * width * 4, sizeof(*work));
+ if (work == NULL) {
+ WebPPictureFree(&tmp);
+- return 0;
++ return WebPEncodingSetError(picture, VP8_ENC_ERROR_OUT_OF_MEMORY);
+ }
+ // In order to correctly interpolate colors, we need to apply the alpha
+ // weighting first (black-matting), scale the RGB values, and remove
+@@ -263,7 +267,7 @@ int WebPPictureRescale(WebPPicture* picture, int width, int height) {
+ if (!RescalePlane((const uint8_t*)picture->argb, prev_width, prev_height,
+ picture->argb_stride * 4, (uint8_t*)tmp.argb, width,
+ height, tmp.argb_stride * 4, work, 4)) {
+- return 0;
++ return WebPEncodingSetError(picture, VP8_ENC_ERROR_BAD_DIMENSION);
+ }
+ AlphaMultiplyARGB(&tmp, 1);
+ }
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/enc/syntax_enc.c b/qtimageformats/src/3rdparty/libwebp/src/enc/syntax_enc.c
+index e18cf650cab2..9b8f524d6981 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/enc/syntax_enc.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/enc/syntax_enc.c
+@@ -258,7 +258,10 @@ static int EmitPartitionsSize(const VP8Encoder* const enc,
+ buf[3 * p + 1] = (part_size >> 8) & 0xff;
+ buf[3 * p + 2] = (part_size >> 16) & 0xff;
+ }
+- return p ? pic->writer(buf, 3 * p, pic) : 1;
++ if (p && !pic->writer(buf, 3 * p, pic)) {
++ return WebPEncodingSetError(pic, VP8_ENC_ERROR_BAD_WRITE);
++ }
++ return 1;
+ }
+
+ //------------------------------------------------------------------------------
+@@ -381,6 +384,7 @@ int VP8EncWrite(VP8Encoder* const enc) {
+
+ enc->coded_size_ = (int)(CHUNK_HEADER_SIZE + riff_size);
+ ok = ok && WebPReportProgress(pic, final_percent, &enc->percent_);
++ if (!ok) WebPEncodingSetError(pic, VP8_ENC_ERROR_BAD_WRITE);
+ return ok;
+ }
+
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/enc/vp8i_enc.h b/qtimageformats/src/3rdparty/libwebp/src/enc/vp8i_enc.h
+index 71f76702ae2e..0864fbf1f51f 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/enc/vp8i_enc.h
++++ b/qtimageformats/src/3rdparty/libwebp/src/enc/vp8i_enc.h
+@@ -31,8 +31,8 @@ extern "C" {
+
+ // version numbers
+ #define ENC_MAJ_VERSION 1
+-#define ENC_MIN_VERSION 2
+-#define ENC_REV_VERSION 4
++#define ENC_MIN_VERSION 3
++#define ENC_REV_VERSION 2
+
+ enum { MAX_LF_LEVELS = 64, // Maximum loop filter level
+ MAX_VARIABLE_LEVEL = 67, // last (inclusive) level with variable cost
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/enc/vp8l_enc.c b/qtimageformats/src/3rdparty/libwebp/src/enc/vp8l_enc.c
+index 2b345df6105c..3a8ec3dd1ec5 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/enc/vp8l_enc.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/enc/vp8l_enc.c
+@@ -196,8 +196,7 @@ static int CoOccurrenceBuild(const WebPPicture* const pic,
+ uint32_t palette_sorted[MAX_PALETTE_SIZE];
+ lines = (uint32_t*)WebPSafeMalloc(2 * pic->width, sizeof(*lines));
+ if (lines == NULL) {
+- WebPEncodingSetError(pic, VP8_ENC_ERROR_OUT_OF_MEMORY);
+- return 0;
++ return WebPEncodingSetError(pic, VP8_ENC_ERROR_OUT_OF_MEMORY);
+ }
+ line_top = &lines[0];
+ line_current = &lines[pic->width];
+@@ -255,10 +254,10 @@ static int PaletteSortModifiedZeng(
+ cooccurrence =
+ (uint32_t*)WebPSafeCalloc(num_colors * num_colors, sizeof(*cooccurrence));
+ if (cooccurrence == NULL) {
+- WebPEncodingSetError(pic, VP8_ENC_ERROR_OUT_OF_MEMORY);
+- return 0;
++ return WebPEncodingSetError(pic, VP8_ENC_ERROR_OUT_OF_MEMORY);
+ }
+ if (!CoOccurrenceBuild(pic, palette_sorted, num_colors, cooccurrence)) {
++ WebPSafeFree(cooccurrence);
+ return 0;
+ }
+
+@@ -361,10 +360,11 @@ typedef enum {
+ kHistoTotal // Must be last.
+ } HistoIx;
+
+-static void AddSingleSubGreen(int p, uint32_t* const r, uint32_t* const b) {
+- const int green = p >> 8; // The upper bits are masked away later.
+- ++r[((p >> 16) - green) & 0xff];
+- ++b[((p >> 0) - green) & 0xff];
++static void AddSingleSubGreen(uint32_t p,
++ uint32_t* const r, uint32_t* const b) {
++ const int green = (int)p >> 8; // The upper bits are masked away later.
++ ++r[(((int)p >> 16) - green) & 0xff];
++ ++b[(((int)p >> 0) - green) & 0xff];
+ }
+
+ static void AddSingle(uint32_t p,
+@@ -1011,8 +1011,7 @@ static int StoreImageToBitMask(
+ VP8LRefsCursorNext(&c);
+ }
+ if (bw->error_) {
+- WebPEncodingSetError(pic, VP8_ENC_ERROR_OUT_OF_MEMORY);
+- return 0;
++ return WebPEncodingSetError(pic, VP8_ENC_ERROR_OUT_OF_MEMORY);
+ }
+ return 1;
+ }
+@@ -1296,7 +1295,10 @@ static int EncodeImageInternal(
+ }
+ }
+ tokens = (HuffmanTreeToken*)WebPSafeMalloc(max_tokens, sizeof(*tokens));
+- if (tokens == NULL) goto Error;
++ if (tokens == NULL) {
++ WebPEncodingSetError(pic, VP8_ENC_ERROR_OUT_OF_MEMORY);
++ goto Error;
++ }
+ for (i = 0; i < 5 * histogram_image_size; ++i) {
+ HuffmanTreeCode* const codes = &huffman_codes[i];
+ StoreHuffmanCode(bw, huff_tree, tokens, codes);
+@@ -1354,7 +1356,7 @@ static int EncodeImageInternal(
+ static void ApplySubtractGreen(VP8LEncoder* const enc, int width, int height,
+ VP8LBitWriter* const bw) {
+ VP8LPutBits(bw, TRANSFORM_PRESENT, 1);
+- VP8LPutBits(bw, SUBTRACT_GREEN, 2);
++ VP8LPutBits(bw, SUBTRACT_GREEN_TRANSFORM, 2);
+ VP8LSubtractGreenFromBlueAndRed(enc->argb_, width * height);
+ }
+
+@@ -1447,18 +1449,21 @@ static int WriteImage(const WebPPicture* const pic, VP8LBitWriter* const bw,
+ const size_t vp8l_size = VP8L_SIGNATURE_SIZE + webpll_size;
+ const size_t pad = vp8l_size & 1;
+ const size_t riff_size = TAG_SIZE + CHUNK_HEADER_SIZE + vp8l_size + pad;
++ *coded_size = 0;
++
++ if (bw->error_) {
++ return WebPEncodingSetError(pic, VP8_ENC_ERROR_OUT_OF_MEMORY);
++ }
+
+ if (!WriteRiffHeader(pic, riff_size, vp8l_size) ||
+ !pic->writer(webpll_data, webpll_size, pic)) {
+- WebPEncodingSetError(pic, VP8_ENC_ERROR_BAD_WRITE);
+- return 0;
++ return WebPEncodingSetError(pic, VP8_ENC_ERROR_BAD_WRITE);
+ }
+
+ if (pad) {
+ const uint8_t pad_byte[1] = { 0 };
+ if (!pic->writer(pad_byte, 1, pic)) {
+- WebPEncodingSetError(pic, VP8_ENC_ERROR_BAD_WRITE);
+- return 0;
++ return WebPEncodingSetError(pic, VP8_ENC_ERROR_BAD_WRITE);
+ }
+ }
+ *coded_size = CHUNK_HEADER_SIZE + riff_size;
+@@ -1503,8 +1508,7 @@ static int AllocateTransformBuffer(VP8LEncoder* const enc, int width,
+ ClearTransformBuffer(enc);
+ mem = (uint32_t*)WebPSafeMalloc(mem_size, sizeof(*mem));
+ if (mem == NULL) {
+- WebPEncodingSetError(enc->pic_, VP8_ENC_ERROR_OUT_OF_MEMORY);
+- return 0;
++ return WebPEncodingSetError(enc->pic_, VP8_ENC_ERROR_OUT_OF_MEMORY);
+ }
+ enc->transform_mem_ = mem;
+ enc->transform_mem_size_ = (size_t)mem_size;
+@@ -1612,8 +1616,7 @@ static int ApplyPalette(const uint32_t* src, uint32_t src_stride, uint32_t* dst,
+ int x, y;
+
+ if (tmp_row == NULL) {
+- WebPEncodingSetError(pic, VP8_ENC_ERROR_OUT_OF_MEMORY);
+- return 0;
++ return WebPEncodingSetError(pic, VP8_ENC_ERROR_OUT_OF_MEMORY);
+ }
+
+ if (palette_size < APPLY_PALETTE_GREEDY_MAX) {
+@@ -1967,9 +1970,8 @@ int VP8LEncodeStream(const WebPConfig* const config,
+ int ok_main;
+
+ if (enc_main == NULL || !VP8LBitWriterInit(&bw_side, 0)) {
+- WebPEncodingSetError(picture, VP8_ENC_ERROR_OUT_OF_MEMORY);
+ VP8LEncoderDelete(enc_main);
+- return 0;
++ return WebPEncodingSetError(picture, VP8_ENC_ERROR_OUT_OF_MEMORY);
+ }
+
+ // Avoid "garbage value" error from Clang's static analysis tool.
+@@ -2116,8 +2118,7 @@ int VP8LEncodeImage(const WebPConfig* const config,
+ if (picture == NULL) return 0;
+
+ if (config == NULL || picture->argb == NULL) {
+- WebPEncodingSetError(picture, VP8_ENC_ERROR_NULL_PARAMETER);
+- return 0;
++ return WebPEncodingSetError(picture, VP8_ENC_ERROR_NULL_PARAMETER);
+ }
+
+ width = picture->width;
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/enc/webp_enc.c b/qtimageformats/src/3rdparty/libwebp/src/enc/webp_enc.c
+index 9620e0507066..583fe6a8bbd6 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/enc/webp_enc.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/enc/webp_enc.c
+@@ -307,7 +307,10 @@ int WebPEncodingSetError(const WebPPicture* const pic,
+ WebPEncodingError error) {
+ assert((int)error < VP8_ENC_ERROR_LAST);
+ assert((int)error >= VP8_ENC_OK);
+- ((WebPPicture*)pic)->error_code = error;
++ // The oldest error reported takes precedence over the new one.
++ if (pic->error_code == VP8_ENC_OK) {
++ ((WebPPicture*)pic)->error_code = error;
++ }
+ return 0;
+ }
+
+@@ -317,8 +320,7 @@ int WebPReportProgress(const WebPPicture* const pic,
+ *percent_store = percent;
+ if (pic->progress_hook && !pic->progress_hook(percent, pic)) {
+ // user abort requested
+- WebPEncodingSetError(pic, VP8_ENC_ERROR_USER_ABORT);
+- return 0;
++ return WebPEncodingSetError(pic, VP8_ENC_ERROR_USER_ABORT);
+ }
+ }
+ return 1; // ok
+@@ -329,7 +331,7 @@ int WebPEncode(const WebPConfig* config, WebPPicture* pic) {
+ int ok = 0;
+ if (pic == NULL) return 0;
+
+- WebPEncodingSetError(pic, VP8_ENC_OK); // all ok so far
++ pic->error_code = VP8_ENC_OK; // all ok so far
+ if (config == NULL) { // bad params
+ return WebPEncodingSetError(pic, VP8_ENC_ERROR_NULL_PARAMETER);
+ }
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/mux/muxi.h b/qtimageformats/src/3rdparty/libwebp/src/mux/muxi.h
+index 0f4af1784d77..afc59543533b 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/mux/muxi.h
++++ b/qtimageformats/src/3rdparty/libwebp/src/mux/muxi.h
+@@ -28,8 +28,8 @@ extern "C" {
+ // Defines and constants.
+
+ #define MUX_MAJ_VERSION 1
+-#define MUX_MIN_VERSION 2
+-#define MUX_REV_VERSION 4
++#define MUX_MIN_VERSION 3
++#define MUX_REV_VERSION 2
+
+ // Chunk object.
+ typedef struct WebPChunk WebPChunk;
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/mux/muxread.c b/qtimageformats/src/3rdparty/libwebp/src/mux/muxread.c
+index 80050396e1fe..9862ec68eea6 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/mux/muxread.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/mux/muxread.c
+@@ -116,9 +116,12 @@ static int MuxImageParse(const WebPChunk* const chunk, int copy_data,
+ // Each of ANMF chunk contain a header at the beginning. So, its size should
+ // be at least 'hdr_size'.
+ if (size < hdr_size) goto Fail;
+- ChunkAssignData(&subchunk, &temp, copy_data, chunk->tag_);
++ if (ChunkAssignData(&subchunk, &temp, copy_data,
++ chunk->tag_) != WEBP_MUX_OK) {
++ goto Fail;
++ }
+ }
+- ChunkSetHead(&subchunk, &wpi->header_);
++ if (ChunkSetHead(&subchunk, &wpi->header_) != WEBP_MUX_OK) goto Fail;
+ wpi->is_partial_ = 1; // Waiting for ALPH and/or VP8/VP8L chunks.
+
+ // Rest of the chunks.
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/utils/bit_reader_inl_utils.h b/qtimageformats/src/3rdparty/libwebp/src/utils/bit_reader_inl_utils.h
+index 404b9a6d8c93..24f3af7b5454 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/utils/bit_reader_inl_utils.h
++++ b/qtimageformats/src/3rdparty/libwebp/src/utils/bit_reader_inl_utils.h
+@@ -148,9 +148,9 @@ int VP8GetSigned(VP8BitReader* WEBP_RESTRICT const br, int v,
+ const range_t value = (range_t)(br->value_ >> pos);
+ const int32_t mask = (int32_t)(split - value) >> 31; // -1 or 0
+ br->bits_ -= 1;
+- br->range_ += mask;
++ br->range_ += (range_t)mask;
+ br->range_ |= 1;
+- br->value_ -= (bit_t)((split + 1) & mask) << pos;
++ br->value_ -= (bit_t)((split + 1) & (uint32_t)mask) << pos;
+ BT_TRACK(br);
+ return (v ^ mask) - mask;
+ }
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/utils/bit_reader_utils.c b/qtimageformats/src/3rdparty/libwebp/src/utils/bit_reader_utils.c
+index 857cd6098882..a26557aa49f9 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/utils/bit_reader_utils.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/utils/bit_reader_utils.c
+@@ -15,6 +15,7 @@
+ #include "src/webp/config.h"
+ #endif
+
++#include "src/dsp/cpu.h"
+ #include "src/utils/bit_reader_inl_utils.h"
+ #include "src/utils/utils.h"
+
+@@ -121,7 +122,7 @@ int32_t VP8GetSignedValue(VP8BitReader* const br, int bits,
+
+ #define VP8L_LOG8_WBITS 4 // Number of bytes needed to store VP8L_WBITS bits.
+
+-#if defined(__arm__) || defined(_M_ARM) || defined(__aarch64__) || \
++#if defined(__arm__) || defined(_M_ARM) || WEBP_AARCH64 || \
+ defined(__i386__) || defined(_M_IX86) || \
+ defined(__x86_64__) || defined(_M_X64)
+ #define VP8L_USE_FAST_LOAD
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/utils/bit_reader_utils.h b/qtimageformats/src/3rdparty/libwebp/src/utils/bit_reader_utils.h
+index e64156e31817..25ff31e5d97a 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/utils/bit_reader_utils.h
++++ b/qtimageformats/src/3rdparty/libwebp/src/utils/bit_reader_utils.h
+@@ -19,6 +19,7 @@
+ #ifdef _MSC_VER
+ #include <stdlib.h> // _byteswap_ulong
+ #endif
++#include "src/dsp/cpu.h"
+ #include "src/webp/types.h"
+
+ // Warning! This macro triggers quite some MACRO wizardry around func signature!
+@@ -64,7 +65,7 @@ extern "C" {
+ #define BITS 56
+ #elif defined(__arm__) || defined(_M_ARM) // ARM
+ #define BITS 24
+-#elif defined(__aarch64__) // ARM 64bit
++#elif WEBP_AARCH64 // ARM 64bit
+ #define BITS 56
+ #elif defined(__mips__) // MIPS
+ #define BITS 24
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/utils/huffman_utils.c b/qtimageformats/src/3rdparty/libwebp/src/utils/huffman_utils.c
+index 0cba0fbb7d4f..cf73abd437d0 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/utils/huffman_utils.c
++++ b/qtimageformats/src/3rdparty/libwebp/src/utils/huffman_utils.c
+@@ -142,7 +142,7 @@ static int BuildHuffmanTable(HuffmanCode* const root_table, int root_bits,
+
+ {
+ int step; // step size to replicate values in current table
+- uint32_t low = -1; // low bits for current root entry
++ uint32_t low = 0xffffffffu; // low bits for current root entry
+ uint32_t mask = total_size - 1; // mask for low bits
+ uint32_t key = 0; // reversed prefix code
+ int num_nodes = 1; // number of Huffman tree nodes
+@@ -177,21 +177,24 @@ static int BuildHuffmanTable(HuffmanCode* const root_table, int root_bits,
+ if (num_open < 0) {
+ return 0;
+ }
+- if (root_table == NULL) continue;
+ for (; count[len] > 0; --count[len]) {
+ HuffmanCode code;
+ if ((key & mask) != low) {
+- table += table_size;
++ if (root_table != NULL) table += table_size;
+ table_bits = NextTableBitSize(count, len, root_bits);
+ table_size = 1 << table_bits;
+ total_size += table_size;
+ low = key & mask;
+- root_table[low].bits = (uint8_t)(table_bits + root_bits);
+- root_table[low].value = (uint16_t)((table - root_table) - low);
++ if (root_table != NULL) {
++ root_table[low].bits = (uint8_t)(table_bits + root_bits);
++ root_table[low].value = (uint16_t)((table - root_table) - low);
++ }
++ }
++ if (root_table != NULL) {
++ code.bits = (uint8_t)(len - root_bits);
++ code.value = (uint16_t)sorted[symbol++];
++ ReplicateValue(&table[key >> root_bits], step, table_size, code);
+ }
+- code.bits = (uint8_t)(len - root_bits);
+- code.value = (uint16_t)sorted[symbol++];
+- ReplicateValue(&table[key >> root_bits], step, table_size, code);
+ key = GetNextKey(key, len);
+ }
+ }
+@@ -211,25 +214,83 @@ static int BuildHuffmanTable(HuffmanCode* const root_table, int root_bits,
+ ((1 << MAX_CACHE_BITS) + NUM_LITERAL_CODES + NUM_LENGTH_CODES)
+ // Cut-off value for switching between heap and stack allocation.
+ #define SORTED_SIZE_CUTOFF 512
+-int VP8LBuildHuffmanTable(HuffmanCode* const root_table, int root_bits,
++int VP8LBuildHuffmanTable(HuffmanTables* const root_table, int root_bits,
+ const int code_lengths[], int code_lengths_size) {
+- int total_size;
++ const int total_size =
++ BuildHuffmanTable(NULL, root_bits, code_lengths, code_lengths_size, NULL);
+ assert(code_lengths_size <= MAX_CODE_LENGTHS_SIZE);
+- if (root_table == NULL) {
+- total_size = BuildHuffmanTable(NULL, root_bits,
+- code_lengths, code_lengths_size, NULL);
+- } else if (code_lengths_size <= SORTED_SIZE_CUTOFF) {
++ if (total_size == 0 || root_table == NULL) return total_size;
++
++ if (root_table->curr_segment->curr_table + total_size >=
++ root_table->curr_segment->start + root_table->curr_segment->size) {
++ // If 'root_table' does not have enough memory, allocate a new segment.
++ // The available part of root_table->curr_segment is left unused because we
++ // need a contiguous buffer.
++ const int segment_size = root_table->curr_segment->size;
++ struct HuffmanTablesSegment* next =
++ (HuffmanTablesSegment*)WebPSafeMalloc(1, sizeof(*next));
++ if (next == NULL) return 0;
++ // Fill the new segment.
++ // We need at least 'total_size' but if that value is small, it is better to
++ // allocate a big chunk to prevent more allocations later. 'segment_size' is
++ // therefore chosen (any other arbitrary value could be chosen).
++ next->size = total_size > segment_size ? total_size : segment_size;
++ next->start =
++ (HuffmanCode*)WebPSafeMalloc(next->size, sizeof(*next->start));
++ if (next->start == NULL) {
++ WebPSafeFree(next);
++ return 0;
++ }
++ next->curr_table = next->start;
++ next->next = NULL;
++ // Point to the new segment.
++ root_table->curr_segment->next = next;
++ root_table->curr_segment = next;
++ }
++ if (code_lengths_size <= SORTED_SIZE_CUTOFF) {
+ // use local stack-allocated array.
+ uint16_t sorted[SORTED_SIZE_CUTOFF];
+- total_size = BuildHuffmanTable(root_table, root_bits,
+- code_lengths, code_lengths_size, sorted);
+- } else { // rare case. Use heap allocation.
++ BuildHuffmanTable(root_table->curr_segment->curr_table, root_bits,
++ code_lengths, code_lengths_size, sorted);
++ } else { // rare case. Use heap allocation.
+ uint16_t* const sorted =
+ (uint16_t*)WebPSafeMalloc(code_lengths_size, sizeof(*sorted));
+ if (sorted == NULL) return 0;
+- total_size = BuildHuffmanTable(root_table, root_bits,
+- code_lengths, code_lengths_size, sorted);
++ BuildHuffmanTable(root_table->curr_segment->curr_table, root_bits,
++ code_lengths, code_lengths_size, sorted);
+ WebPSafeFree(sorted);
+ }
+ return total_size;
+ }
++
++int VP8LHuffmanTablesAllocate(int size, HuffmanTables* huffman_tables) {
++ // Have 'segment' point to the first segment for now, 'root'.
++ HuffmanTablesSegment* const root = &huffman_tables->root;
++ huffman_tables->curr_segment = root;
++ // Allocate root.
++ root->start = (HuffmanCode*)WebPSafeMalloc(size, sizeof(*root->start));
++ if (root->start == NULL) return 0;
++ root->curr_table = root->start;
++ root->next = NULL;
++ root->size = size;
++ return 1;
++}
++
++void VP8LHuffmanTablesDeallocate(HuffmanTables* const huffman_tables) {
++ HuffmanTablesSegment *current, *next;
++ if (huffman_tables == NULL) return;
++ // Free the root node.
++ current = &huffman_tables->root;
++ next = current->next;
++ WebPSafeFree(current->start);
++ current->start = NULL;
++ current->next = NULL;
++ current = next;
++ // Free the following nodes.
++ while (current != NULL) {
++ next = current->next;
++ WebPSafeFree(current->start);
++ WebPSafeFree(current);
++ current = next;
++ }
++}
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/utils/huffman_utils.h b/qtimageformats/src/3rdparty/libwebp/src/utils/huffman_utils.h
+index 13b7ad1ac40c..98415c532895 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/utils/huffman_utils.h
++++ b/qtimageformats/src/3rdparty/libwebp/src/utils/huffman_utils.h
+@@ -43,6 +43,29 @@ typedef struct {
+ // or non-literal symbol otherwise
+ } HuffmanCode32;
+
++// Contiguous memory segment of HuffmanCodes.
++typedef struct HuffmanTablesSegment {
++ HuffmanCode* start;
++ // Pointer to where we are writing into the segment. Starts at 'start' and
++ // cannot go beyond 'start' + 'size'.
++ HuffmanCode* curr_table;
++ // Pointer to the next segment in the chain.
++ struct HuffmanTablesSegment* next;
++ int size;
++} HuffmanTablesSegment;
++
++// Chained memory segments of HuffmanCodes.
++typedef struct HuffmanTables {
++ HuffmanTablesSegment root;
++ // Currently processed segment. At first, this is 'root'.
++ HuffmanTablesSegment* curr_segment;
++} HuffmanTables;
++
++// Allocates a HuffmanTables with 'size' contiguous HuffmanCodes. Returns 0 on
++// memory allocation error, 1 otherwise.
++int VP8LHuffmanTablesAllocate(int size, HuffmanTables* huffman_tables);
++void VP8LHuffmanTablesDeallocate(HuffmanTables* const huffman_tables);
++
+ #define HUFFMAN_PACKED_BITS 6
+ #define HUFFMAN_PACKED_TABLE_SIZE (1u << HUFFMAN_PACKED_BITS)
+
+@@ -78,9 +101,7 @@ void VP8LHtreeGroupsFree(HTreeGroup* const htree_groups);
+ // the huffman table.
+ // Returns built table size or 0 in case of error (invalid tree or
+ // memory error).
+-// If root_table is NULL, it returns 0 if a lookup cannot be built, something
+-// > 0 otherwise (but not the table size).
+-int VP8LBuildHuffmanTable(HuffmanCode* const root_table, int root_bits,
++int VP8LBuildHuffmanTable(HuffmanTables* const root_table, int root_bits,
+ const int code_lengths[], int code_lengths_size);
+
+ #ifdef __cplusplus
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/utils/utils.h b/qtimageformats/src/3rdparty/libwebp/src/utils/utils.h
+index ef04f108fec1..c5ee87335717 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/utils/utils.h
++++ b/qtimageformats/src/3rdparty/libwebp/src/utils/utils.h
+@@ -64,7 +64,8 @@ WEBP_EXTERN void WebPSafeFree(void* const ptr);
+ // Alignment
+
+ #define WEBP_ALIGN_CST 31
+-#define WEBP_ALIGN(PTR) (((uintptr_t)(PTR) + WEBP_ALIGN_CST) & ~WEBP_ALIGN_CST)
++#define WEBP_ALIGN(PTR) (((uintptr_t)(PTR) + WEBP_ALIGN_CST) & \
++ ~(uintptr_t)WEBP_ALIGN_CST)
+
+ #include <string.h>
+ // memcpy() is the safe way of moving potentially unaligned 32b memory.
+@@ -73,10 +74,19 @@ static WEBP_INLINE uint32_t WebPMemToUint32(const uint8_t* const ptr) {
+ memcpy(&A, ptr, sizeof(A));
+ return A;
+ }
++
++static WEBP_INLINE int32_t WebPMemToInt32(const uint8_t* const ptr) {
++ return (int32_t)WebPMemToUint32(ptr);
++}
++
+ static WEBP_INLINE void WebPUint32ToMem(uint8_t* const ptr, uint32_t val) {
+ memcpy(ptr, &val, sizeof(val));
+ }
+
++static WEBP_INLINE void WebPInt32ToMem(uint8_t* const ptr, int val) {
++ WebPUint32ToMem(ptr, (uint32_t)val);
++}
++
+ //------------------------------------------------------------------------------
+ // Reading/writing data.
+
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/webp/decode.h b/qtimageformats/src/3rdparty/libwebp/src/webp/decode.h
+index d98247509a8c..0177b1208975 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/webp/decode.h
++++ b/qtimageformats/src/3rdparty/libwebp/src/webp/decode.h
+@@ -81,10 +81,11 @@ WEBP_EXTERN uint8_t* WebPDecodeBGR(const uint8_t* data, size_t data_size,
+ // returned is the Y samples buffer. Upon return, *u and *v will point to
+ // the U and V chroma data. These U and V buffers need NOT be passed to
+ // WebPFree(), unlike the returned Y luma one. The dimension of the U and V
+-// planes are both (*width + 1) / 2 and (*height + 1)/ 2.
++// planes are both (*width + 1) / 2 and (*height + 1) / 2.
+ // Upon return, the Y buffer has a stride returned as '*stride', while U and V
+ // have a common stride returned as '*uv_stride'.
+-// Return NULL in case of error.
++// 'width' and 'height' may be NULL, the other pointers must not be.
++// Returns NULL in case of error.
+ // (*) Also named Y'CbCr. See: https://en.wikipedia.org/wiki/YCbCr
+ WEBP_EXTERN uint8_t* WebPDecodeYUV(const uint8_t* data, size_t data_size,
+ int* width, int* height,
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/webp/format_constants.h b/qtimageformats/src/3rdparty/libwebp/src/webp/format_constants.h
+index eca6981a47d0..999035c5d265 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/webp/format_constants.h
++++ b/qtimageformats/src/3rdparty/libwebp/src/webp/format_constants.h
+@@ -55,7 +55,7 @@
+ typedef enum {
+ PREDICTOR_TRANSFORM = 0,
+ CROSS_COLOR_TRANSFORM = 1,
+- SUBTRACT_GREEN = 2,
++ SUBTRACT_GREEN_TRANSFORM = 2,
+ COLOR_INDEXING_TRANSFORM = 3
+ } VP8LImageTransformType;
+
+diff --git a/qtimageformats/src/3rdparty/libwebp/src/webp/types.h b/qtimageformats/src/3rdparty/libwebp/src/webp/types.h
+index 47f7f2b00706..f255432e413c 100644
+--- a/qtimageformats/src/3rdparty/libwebp/src/webp/types.h
++++ b/qtimageformats/src/3rdparty/libwebp/src/webp/types.h
+@@ -42,7 +42,11 @@ typedef long long int int64_t;
+ # if defined(__GNUC__) && __GNUC__ >= 4
+ # define WEBP_EXTERN extern __attribute__ ((visibility ("default")))
+ # else
+-# define WEBP_EXTERN extern
++# if defined(_MSC_VER) && defined(WEBP_DLL)
++# define WEBP_EXTERN __declspec(dllexport)
++# else
++# define WEBP_EXTERN extern
++# endif
+ # endif /* __GNUC__ >= 4 */
+ #endif /* WEBP_EXTERN */
+
+diff --git a/qtimageformats/src/plugins/imageformats/webp/CMakeLists.txt b/qtimageformats/src/plugins/imageformats/webp/CMakeLists.txt
+index 25aa0c9650a4..fbbcc1c1bf2b 100644
+--- a/qtimageformats/src/plugins/imageformats/webp/CMakeLists.txt
++++ b/qtimageformats/src/plugins/imageformats/webp/CMakeLists.txt
+@@ -30,6 +30,7 @@ qt_internal_extend_target(QWebpPlugin CONDITION QT_FEATURE_system_webp
+ qt_internal_extend_target(QWebpPlugin CONDITION NOT QT_FEATURE_system_webp
+ SOURCES
+ ../../../3rdparty/libwebp/sharpyuv/sharpyuv.c
++ ../../../3rdparty/libwebp/sharpyuv/sharpyuv_cpu.c
+ ../../../3rdparty/libwebp/sharpyuv/sharpyuv_csp.c
+ ../../../3rdparty/libwebp/sharpyuv/sharpyuv_dsp.c
+ ../../../3rdparty/libwebp/sharpyuv/sharpyuv_gamma.c
diff --git a/patches/qt-everywhere-opensource-src-5.15.12/0002-CVE-2023-24607-qtbase-5.15.diff.patch b/patches/qt-everywhere-opensource-src-5.15.12/0002-CVE-2023-24607-qtbase-5.15.diff.patch
new file mode 100644
index 000000000..55fd1e198
--- /dev/null
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0002-CVE-2023-24607-qtbase-5.15.diff.patch
@@ -0,0 +1,337 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Mon, 16 Oct 2023 10:13:21 +0200
+Subject: [PATCH] CVE-2023-24607-qtbase-5.15.diff
+
+Imported from https://download.qt.io/archive/qt/5.15/
+---
+ qtbase/src/plugins/sqldrivers/odbc/qsql_odbc.cpp | 206 +++++++++++++----------
+ 1 file changed, 118 insertions(+), 88 deletions(-)
+
+diff --git a/qtbase/src/plugins/sqldrivers/odbc/qsql_odbc.cpp b/qtbase/src/plugins/sqldrivers/odbc/qsql_odbc.cpp
+index 5f51de384348..6cac60d03d2a 100644
+--- a/qtbase/src/plugins/sqldrivers/odbc/qsql_odbc.cpp
++++ b/qtbase/src/plugins/sqldrivers/odbc/qsql_odbc.cpp
+@@ -92,23 +92,39 @@ inline static QString fromSQLTCHAR(const QVarLengthArray<SQLTCHAR>& input, int s
+ return result;
+ }
+
++template <size_t SizeOfChar = sizeof(SQLTCHAR)>
++void toSQLTCHARImpl(QVarLengthArray<SQLTCHAR> &result, const QString &input); // primary template undefined
++
++template <typename Container>
++void do_append(QVarLengthArray<SQLTCHAR> &result, const Container &c)
++{
++ result.append(reinterpret_cast<const SQLTCHAR *>(c.data()), c.size());
++}
++
++template <>
++void toSQLTCHARImpl<1>(QVarLengthArray<SQLTCHAR> &result, const QString &input)
++{
++ const auto u8 = input.toUtf8();
++ do_append(result, u8);
++}
++
++template <>
++void toSQLTCHARImpl<2>(QVarLengthArray<SQLTCHAR> &result, const QString &input)
++{
++ do_append(result, input);
++}
++
++template <>
++void toSQLTCHARImpl<4>(QVarLengthArray<SQLTCHAR> &result, const QString &input)
++{
++ const auto u32 = input.toUcs4();
++ do_append(result, u32);
++}
++
+ inline static QVarLengthArray<SQLTCHAR> toSQLTCHAR(const QString &input)
+ {
+ QVarLengthArray<SQLTCHAR> result;
+- result.resize(input.size());
+- switch(sizeof(SQLTCHAR)) {
+- case 1:
+- memcpy(result.data(), input.toUtf8().data(), input.size());
+- break;
+- case 2:
+- memcpy(result.data(), input.unicode(), input.size() * 2);
+- break;
+- case 4:
+- memcpy(result.data(), input.toUcs4().data(), input.size() * 4);
+- break;
+- default:
+- qCritical("sizeof(SQLTCHAR) is %d. Don't know how to handle this.", int(sizeof(SQLTCHAR)));
+- }
++ toSQLTCHARImpl(result, input);
+ result.append(0); // make sure it's null terminated, doesn't matter if it already is, it does if it isn't.
+ return result;
+ }
+@@ -763,6 +779,14 @@ QChar QODBCDriverPrivate::quoteChar()
+ return quote;
+ }
+
++static SQLRETURN qt_string_SQLSetConnectAttr(SQLHDBC handle, SQLINTEGER attr, const QString &val)
++{
++ auto encoded = toSQLTCHAR(val);
++ return SQLSetConnectAttr(handle, attr,
++ encoded.data(),
++ SQLINTEGER(encoded.size() * sizeof(SQLTCHAR))); // size in bytes
++}
++
+
+ bool QODBCDriverPrivate::setConnectionOptions(const QString& connOpts)
+ {
+@@ -798,10 +822,7 @@ bool QODBCDriverPrivate::setConnectionOptions(const QString& connOpts)
+ v = val.toUInt();
+ r = SQLSetConnectAttr(hDbc, SQL_ATTR_LOGIN_TIMEOUT, (SQLPOINTER) size_t(v), 0);
+ } else if (opt.toUpper() == QLatin1String("SQL_ATTR_CURRENT_CATALOG")) {
+- val.utf16(); // 0 terminate
+- r = SQLSetConnectAttr(hDbc, SQL_ATTR_CURRENT_CATALOG,
+- toSQLTCHAR(val).data(),
+- val.length()*sizeof(SQLTCHAR));
++ r = qt_string_SQLSetConnectAttr(hDbc, SQL_ATTR_CURRENT_CATALOG, val);
+ } else if (opt.toUpper() == QLatin1String("SQL_ATTR_METADATA_ID")) {
+ if (val.toUpper() == QLatin1String("SQL_TRUE")) {
+ v = SQL_TRUE;
+@@ -816,10 +837,7 @@ bool QODBCDriverPrivate::setConnectionOptions(const QString& connOpts)
+ v = val.toUInt();
+ r = SQLSetConnectAttr(hDbc, SQL_ATTR_PACKET_SIZE, (SQLPOINTER) size_t(v), 0);
+ } else if (opt.toUpper() == QLatin1String("SQL_ATTR_TRACEFILE")) {
+- val.utf16(); // 0 terminate
+- r = SQLSetConnectAttr(hDbc, SQL_ATTR_TRACEFILE,
+- toSQLTCHAR(val).data(),
+- val.length()*sizeof(SQLTCHAR));
++ r = qt_string_SQLSetConnectAttr(hDbc, SQL_ATTR_TRACEFILE, val);
+ } else if (opt.toUpper() == QLatin1String("SQL_ATTR_TRACE")) {
+ if (val.toUpper() == QLatin1String("SQL_OPT_TRACE_OFF")) {
+ v = SQL_OPT_TRACE_OFF;
+@@ -1022,9 +1040,12 @@ bool QODBCResult::reset (const QString& query)
+ return false;
+ }
+
+- r = SQLExecDirect(d->hStmt,
+- toSQLTCHAR(query).data(),
+- (SQLINTEGER) query.length());
++ {
++ auto encoded = toSQLTCHAR(query);
++ r = SQLExecDirect(d->hStmt,
++ encoded.data(),
++ SQLINTEGER(encoded.size()));
++ }
+ if (r != SQL_SUCCESS && r != SQL_SUCCESS_WITH_INFO && r!= SQL_NO_DATA) {
+ setLastError(qMakeError(QCoreApplication::translate("QODBCResult",
+ "Unable to execute statement"), QSqlError::StatementError, d));
+@@ -1371,9 +1392,12 @@ bool QODBCResult::prepare(const QString& query)
+ return false;
+ }
+
+- r = SQLPrepare(d->hStmt,
+- toSQLTCHAR(query).data(),
+- (SQLINTEGER) query.length());
++ {
++ auto encoded = toSQLTCHAR(query);
++ r = SQLPrepare(d->hStmt,
++ encoded.data(),
++ SQLINTEGER(encoded.size()));
++ }
+
+ if (r != SQL_SUCCESS) {
+ setLastError(qMakeError(QCoreApplication::translate("QODBCResult",
+@@ -1401,7 +1425,7 @@ bool QODBCResult::exec()
+ SQLCloseCursor(d->hStmt);
+
+ QVector<QVariant>& values = boundValues();
+- QVector<QByteArray> tmpStorage(values.count(), QByteArray()); // holds temporary buffers
++ QVector<QByteArray> tmpStorage(values.count(), QByteArray()); // targets for SQLBindParameter()
+ QVarLengthArray<SQLLEN, 32> indicators(values.count());
+ memset(indicators.data(), 0, indicators.size() * sizeof(SQLLEN));
+
+@@ -1580,35 +1604,36 @@ bool QODBCResult::exec()
+ case QVariant::String:
+ if (d->unicode) {
+ QByteArray &ba = tmpStorage[i];
+- QString str = val.toString();
++ {
++ const auto encoded = toSQLTCHAR(val.toString());
++ ba = QByteArray(reinterpret_cast<const char *>(encoded.data()),
++ encoded.size() * sizeof(SQLTCHAR));
++ }
++
+ if (*ind != SQL_NULL_DATA)
+- *ind = str.length() * sizeof(SQLTCHAR);
+- int strSize = str.length() * sizeof(SQLTCHAR);
++ *ind = ba.size();
+
+ if (bindValueType(i) & QSql::Out) {
+- const QVarLengthArray<SQLTCHAR> a(toSQLTCHAR(str));
+- ba = QByteArray((const char *)a.constData(), a.size() * sizeof(SQLTCHAR));
+ r = SQLBindParameter(d->hStmt,
+ i + 1,
+ qParamType[bindValueType(i) & QSql::InOut],
+ SQL_C_TCHAR,
+- strSize > 254 ? SQL_WLONGVARCHAR : SQL_WVARCHAR,
++ ba.size() > 254 ? SQL_WLONGVARCHAR : SQL_WVARCHAR,
+ 0, // god knows... don't change this!
+ 0,
+- ba.data(),
++ const_cast<char *>(ba.constData()), // don't detach
+ ba.size(),
+ ind);
+ break;
+ }
+- ba = QByteArray ((const char *)toSQLTCHAR(str).constData(), str.size()*sizeof(SQLTCHAR));
+ r = SQLBindParameter(d->hStmt,
+ i + 1,
+ qParamType[bindValueType(i) & QSql::InOut],
+ SQL_C_TCHAR,
+- strSize > 254 ? SQL_WLONGVARCHAR : SQL_WVARCHAR,
+- strSize,
++ ba.size() > 254 ? SQL_WLONGVARCHAR : SQL_WVARCHAR,
++ ba.size(),
+ 0,
+- const_cast<char *>(ba.constData()),
++ const_cast<char *>(ba.constData()), // don't detach
+ ba.size(),
+ ind);
+ break;
+@@ -1716,10 +1741,11 @@ bool QODBCResult::exec()
+ case QVariant::String:
+ if (d->unicode) {
+ if (bindValueType(i) & QSql::Out) {
+- const QByteArray &first = tmpStorage.at(i);
+- QVarLengthArray<SQLTCHAR> array;
+- array.append((const SQLTCHAR *)first.constData(), first.size());
+- values[i] = fromSQLTCHAR(array, first.size()/sizeof(SQLTCHAR));
++ const QByteArray &bytes = tmpStorage.at(i);
++ const auto strSize = bytes.size() / int(sizeof(SQLTCHAR));
++ QVarLengthArray<SQLTCHAR> string(strSize);
++ memcpy(string.data(), bytes.data(), strSize * sizeof(SQLTCHAR));
++ values[i] = fromSQLTCHAR(string);
+ }
+ break;
+ }
+@@ -1966,14 +1992,16 @@ bool QODBCDriver::open(const QString & db,
+ SQLSMALLINT cb;
+ QVarLengthArray<SQLTCHAR> connOut(1024);
+ memset(connOut.data(), 0, connOut.size() * sizeof(SQLTCHAR));
+- r = SQLDriverConnect(d->hDbc,
+- NULL,
+- toSQLTCHAR(connQStr).data(),
+- (SQLSMALLINT)connQStr.length(),
+- connOut.data(),
+- 1024,
+- &cb,
+- /*SQL_DRIVER_NOPROMPT*/0);
++ {
++ auto encoded = toSQLTCHAR(connQStr);
++ r = SQLDriverConnect(d->hDbc,
++ nullptr,
++ encoded.data(), SQLSMALLINT(encoded.size()),
++ connOut.data(),
++ 1024,
++ &cb,
++ /*SQL_DRIVER_NOPROMPT*/0);
++ }
+
+ if (r != SQL_SUCCESS && r != SQL_SUCCESS_WITH_INFO) {
+ setLastError(qMakeError(tr("Unable to connect"), QSqlError::ConnectionError, d));
+@@ -2352,17 +2380,15 @@ QStringList QODBCDriver::tables(QSql::TableType type) const
+ if (tableType.isEmpty())
+ return tl;
+
+- QString joinedTableTypeString = tableType.join(QLatin1Char(','));
++ {
++ auto joinedTableTypeString = toSQLTCHAR(tableType.join(u','));
+
+- r = SQLTables(hStmt,
+- NULL,
+- 0,
+- NULL,
+- 0,
+- NULL,
+- 0,
+- toSQLTCHAR(joinedTableTypeString).data(),
+- joinedTableTypeString.length() /* characters, not bytes */);
++ r = SQLTables(hStmt,
++ nullptr, 0,
++ nullptr, 0,
++ nullptr, 0,
++ joinedTableTypeString.data(), joinedTableTypeString.size());
++ }
+
+ if (r != SQL_SUCCESS)
+ qSqlWarning(QLatin1String("QODBCDriver::tables Unable to execute table list"), d);
+@@ -2436,28 +2462,30 @@ QSqlIndex QODBCDriver::primaryIndex(const QString& tablename) const
+ SQL_ATTR_CURSOR_TYPE,
+ (SQLPOINTER)SQL_CURSOR_FORWARD_ONLY,
+ SQL_IS_UINTEGER);
+- r = SQLPrimaryKeys(hStmt,
+- catalog.length() == 0 ? NULL : toSQLTCHAR(catalog).data(),
+- catalog.length(),
+- schema.length() == 0 ? NULL : toSQLTCHAR(schema).data(),
+- schema.length(),
+- toSQLTCHAR(table).data(),
+- table.length() /* in characters, not in bytes */);
++ {
++ auto c = toSQLTCHAR(catalog);
++ auto s = toSQLTCHAR(schema);
++ auto t = toSQLTCHAR(table);
++ r = SQLPrimaryKeys(hStmt,
++ catalog.isEmpty() ? nullptr : c.data(), c.size(),
++ schema.isEmpty() ? nullptr : s.data(), s.size(),
++ t.data(), t.size());
++ }
+
+ // if the SQLPrimaryKeys() call does not succeed (e.g the driver
+ // does not support it) - try an alternative method to get hold of
+ // the primary index (e.g MS Access and FoxPro)
+ if (r != SQL_SUCCESS) {
+- r = SQLSpecialColumns(hStmt,
+- SQL_BEST_ROWID,
+- catalog.length() == 0 ? NULL : toSQLTCHAR(catalog).data(),
+- catalog.length(),
+- schema.length() == 0 ? NULL : toSQLTCHAR(schema).data(),
+- schema.length(),
+- toSQLTCHAR(table).data(),
+- table.length(),
+- SQL_SCOPE_CURROW,
+- SQL_NULLABLE);
++ auto c = toSQLTCHAR(catalog);
++ auto s = toSQLTCHAR(schema);
++ auto t = toSQLTCHAR(table);
++ r = SQLSpecialColumns(hStmt,
++ SQL_BEST_ROWID,
++ catalog.isEmpty() ? nullptr : c.data(), c.size(),
++ schema.isEmpty() ? nullptr : s.data(), s.size(),
++ t.data(), t.size(),
++ SQL_SCOPE_CURROW,
++ SQL_NULLABLE);
+
+ if (r != SQL_SUCCESS) {
+ qSqlWarning(QLatin1String("QODBCDriver::primaryIndex: Unable to execute primary key list"), d);
+@@ -2538,15 +2566,17 @@ QSqlRecord QODBCDriver::record(const QString& tablename) const
+ SQL_ATTR_CURSOR_TYPE,
+ (SQLPOINTER)SQL_CURSOR_FORWARD_ONLY,
+ SQL_IS_UINTEGER);
+- r = SQLColumns(hStmt,
+- catalog.length() == 0 ? NULL : toSQLTCHAR(catalog).data(),
+- catalog.length(),
+- schema.length() == 0 ? NULL : toSQLTCHAR(schema).data(),
+- schema.length(),
+- toSQLTCHAR(table).data(),
+- table.length(),
+- NULL,
+- 0);
++ {
++ auto c = toSQLTCHAR(catalog);
++ auto s = toSQLTCHAR(schema);
++ auto t = toSQLTCHAR(table);
++ r = SQLColumns(hStmt,
++ catalog.isEmpty() ? nullptr : c.data(), c.size(),
++ schema.isEmpty() ? nullptr : s.data(), s.size(),
++ t.data(), t.size(),
++ nullptr,
++ 0);
++ }
+ if (r != SQL_SUCCESS)
+ qSqlWarning(QLatin1String("QODBCDriver::record: Unable to execute column list"), d);
+
diff --git a/patches/qt-everywhere-opensource-src-5.15.12/0003-CVE-2023-32573-qtsvg-5.15.diff.patch b/patches/qt-everywhere-opensource-src-5.15.12/0003-CVE-2023-32573-qtsvg-5.15.diff.patch
new file mode 100644
index 000000000..b96825c16
--- /dev/null
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0003-CVE-2023-32573-qtsvg-5.15.diff.patch
@@ -0,0 +1,46 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Mon, 16 Oct 2023 10:13:22 +0200
+Subject: [PATCH] CVE-2023-32573-qtsvg-5.15.diff
+
+Imported from https://download.qt.io/archive/qt/5.15/
+---
+ qtsvg/src/svg/qsvgfont_p.h | 5 ++---
+ qtsvg/src/svg/qsvghandler.cpp | 2 +-
+ 2 files changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/qtsvg/src/svg/qsvgfont_p.h b/qtsvg/src/svg/qsvgfont_p.h
+index fd0a3fab8f17..fcffbe85b5e5 100644
+--- a/qtsvg/src/svg/qsvgfont_p.h
++++ b/qtsvg/src/svg/qsvgfont_p.h
+@@ -74,6 +74,7 @@ public:
+ class Q_SVG_PRIVATE_EXPORT QSvgFont : public QSvgRefCounted
+ {
+ public:
++ static constexpr qreal DEFAULT_UNITS_PER_EM = 1000;
+ QSvgFont(qreal horizAdvX);
+
+ void setFamilyName(const QString &name);
+@@ -86,9 +87,7 @@ public:
+ void draw(QPainter *p, const QPointF &point, const QString &str, qreal pixelSize, Qt::Alignment alignment) const;
+ public:
+ QString m_familyName;
+- qreal m_unitsPerEm;
+- qreal m_ascent;
+- qreal m_descent;
++ qreal m_unitsPerEm = DEFAULT_UNITS_PER_EM;
+ qreal m_horizAdvX;
+ QHash<QChar, QSvgGlyph> m_glyphs;
+ };
+diff --git a/qtsvg/src/svg/qsvghandler.cpp b/qtsvg/src/svg/qsvghandler.cpp
+index c229c3b5dc1f..dd9b7164030d 100644
+--- a/qtsvg/src/svg/qsvghandler.cpp
++++ b/qtsvg/src/svg/qsvghandler.cpp
+@@ -2668,7 +2668,7 @@ static bool parseFontFaceNode(QSvgStyleProperty *parent,
+
+ qreal unitsPerEm = toDouble(unitsPerEmStr);
+ if (!unitsPerEm)
+- unitsPerEm = 1000;
++ unitsPerEm = QSvgFont::DEFAULT_UNITS_PER_EM;
+
+ if (!name.isEmpty())
+ font->setFamilyName(name);
diff --git a/patches/qt-everywhere-opensource-src-5.15.12/0004-CVE-2023-32762-qtbase-5.15.diff.patch b/patches/qt-everywhere-opensource-src-5.15.12/0004-CVE-2023-32762-qtbase-5.15.diff.patch
new file mode 100644
index 000000000..903db17a3
--- /dev/null
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0004-CVE-2023-32762-qtbase-5.15.diff.patch
@@ -0,0 +1,24 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Mon, 16 Oct 2023 10:13:22 +0200
+Subject: [PATCH] CVE-2023-32762-qtbase-5.15.diff
+
+Imported from https://download.qt.io/archive/qt/5.15/
+---
+ qtbase/src/network/access/qhsts.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/qtbase/src/network/access/qhsts.cpp b/qtbase/src/network/access/qhsts.cpp
+index 0cef0ad3dc01..be7ef7ff58f5 100644
+--- a/qtbase/src/network/access/qhsts.cpp
++++ b/qtbase/src/network/access/qhsts.cpp
+@@ -364,8 +364,8 @@ quoted-pair = "\" CHAR
+ bool QHstsHeaderParser::parse(const QList<QPair<QByteArray, QByteArray>> &headers)
+ {
+ for (const auto &h : headers) {
+- // We use '==' since header name was already 'trimmed' for us:
+- if (h.first == "Strict-Transport-Security") {
++ // We compare directly because header name was already 'trimmed' for us:
++ if (h.first.compare("Strict-Transport-Security", Qt::CaseInsensitive) == 0) {
+ header = h.second;
+ // RFC6797, 8.1:
+ //
diff --git a/patches/qt-everywhere-opensource-src-5.15.12/0005-CVE-2023-32763-qtbase-5.15.diff.patch b/patches/qt-everywhere-opensource-src-5.15.12/0005-CVE-2023-32763-qtbase-5.15.diff.patch
new file mode 100644
index 000000000..3cbc6c256
--- /dev/null
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0005-CVE-2023-32763-qtbase-5.15.diff.patch
@@ -0,0 +1,59 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Mon, 16 Oct 2023 10:13:23 +0200
+Subject: [PATCH] CVE-2023-32763-qtbase-5.15.diff
+
+Imported from https://download.qt.io/archive/qt/5.15/
+---
+ qtbase/src/gui/painting/qfixed_p.h | 9 +++++++++
+ qtbase/src/gui/text/qtextlayout.cpp | 9 ++++++---
+ 2 files changed, 15 insertions(+), 3 deletions(-)
+
+diff --git a/qtbase/src/gui/painting/qfixed_p.h b/qtbase/src/gui/painting/qfixed_p.h
+index 846592881c20..57d750a4b3c8 100644
+--- a/qtbase/src/gui/painting/qfixed_p.h
++++ b/qtbase/src/gui/painting/qfixed_p.h
+@@ -54,6 +54,7 @@
+ #include <QtGui/private/qtguiglobal_p.h>
+ #include "QtCore/qdebug.h"
+ #include "QtCore/qpoint.h"
++#include <QtCore/private/qnumeric_p.h>
+ #include "QtCore/qsize.h"
+
+ QT_BEGIN_NAMESPACE
+@@ -182,6 +183,14 @@ Q_DECL_CONSTEXPR inline bool operator<(int i, const QFixed &f) { return i * 64 <
+ Q_DECL_CONSTEXPR inline bool operator>(const QFixed &f, int i) { return f.value() > i * 64; }
+ Q_DECL_CONSTEXPR inline bool operator>(int i, const QFixed &f) { return i * 64 > f.value(); }
+
++inline bool qAddOverflow(QFixed v1, QFixed v2, QFixed *r)
++{
++ int val;
++ bool result = add_overflow(v1.value(), v2.value(), &val);
++ r->setValue(val);
++ return result;
++}
++
+ #ifndef QT_NO_DEBUG_STREAM
+ inline QDebug &operator<<(QDebug &dbg, const QFixed &f)
+ { return dbg << f.toReal(); }
+diff --git a/qtbase/src/gui/text/qtextlayout.cpp b/qtbase/src/gui/text/qtextlayout.cpp
+index 30f07ba69b5a..627b4662b3d9 100644
+--- a/qtbase/src/gui/text/qtextlayout.cpp
++++ b/qtbase/src/gui/text/qtextlayout.cpp
+@@ -2163,11 +2163,14 @@ found:
+ eng->maxWidth = qMax(eng->maxWidth, line.textWidth);
+ } else {
+ eng->minWidth = qMax(eng->minWidth, lbh.minw);
+- eng->maxWidth += line.textWidth;
++ if (qAddOverflow(eng->maxWidth, line.textWidth, &eng->maxWidth))
++ eng->maxWidth = QFIXED_MAX;
+ }
+
+- if (line.textWidth > 0 && item < eng->layoutData->items.size())
+- eng->maxWidth += lbh.spaceData.textWidth;
++ if (line.textWidth > 0 && item < eng->layoutData->items.size()) {
++ if (qAddOverflow(eng->maxWidth, lbh.spaceData.textWidth, &eng->maxWidth))
++ eng->maxWidth = QFIXED_MAX;
++ }
+
+ line.textWidth += trailingSpace;
+ if (lbh.spaceData.length) {
diff --git a/patches/qt-everywhere-opensource-src-5.15.12/0006-CVE-2023-33285-qtbase-5.15.diff.patch b/patches/qt-everywhere-opensource-src-5.15.12/0006-CVE-2023-33285-qtbase-5.15.diff.patch
new file mode 100644
index 000000000..975a8a14c
--- /dev/null
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0006-CVE-2023-33285-qtbase-5.15.diff.patch
@@ -0,0 +1,79 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Mon, 16 Oct 2023 10:13:23 +0200
+Subject: [PATCH] CVE-2023-33285-qtbase-5.15.diff
+
+Imported from https://download.qt.io/archive/qt/5.15/
+---
+ qtbase/src/network/kernel/qdnslookup_unix.cpp | 31 +++++++++++++++++++++------
+ 1 file changed, 25 insertions(+), 6 deletions(-)
+
+diff --git a/qtbase/src/network/kernel/qdnslookup_unix.cpp b/qtbase/src/network/kernel/qdnslookup_unix.cpp
+index 12b40fc35dda..99e999d436c9 100644
+--- a/qtbase/src/network/kernel/qdnslookup_unix.cpp
++++ b/qtbase/src/network/kernel/qdnslookup_unix.cpp
+@@ -227,7 +227,6 @@ void QDnsLookupRunnable::query(const int requestType, const QByteArray &requestN
+ // responseLength in case of error, we still can extract the
+ // exact error code from the response.
+ HEADER *header = (HEADER*)response;
+- const int answerCount = ntohs(header->ancount);
+ switch (header->rcode) {
+ case NOERROR:
+ break;
+@@ -260,18 +259,31 @@ void QDnsLookupRunnable::query(const int requestType, const QByteArray &requestN
+ return;
+ }
+
+- // Skip the query host, type (2 bytes) and class (2 bytes).
+ char host[PACKETSZ], answer[PACKETSZ];
+ unsigned char *p = response + sizeof(HEADER);
+- int status = local_dn_expand(response, response + responseLength, p, host, sizeof(host));
+- if (status < 0) {
++ int status;
++
++ if (ntohs(header->qdcount) == 1) {
++ // Skip the query host, type (2 bytes) and class (2 bytes).
++ status = local_dn_expand(response, response + responseLength, p, host, sizeof(host));
++ if (status < 0) {
++ reply->error = QDnsLookup::InvalidReplyError;
++ reply->errorString = tr("Could not expand domain name");
++ return;
++ }
++ if ((p - response) + status + 4 >= responseLength)
++ header->qdcount = 0xffff; // invalid reply below
++ else
++ p += status + 4;
++ }
++ if (ntohs(header->qdcount) > 1) {
+ reply->error = QDnsLookup::InvalidReplyError;
+- reply->errorString = tr("Could not expand domain name");
++ reply->errorString = tr("Invalid reply received");
+ return;
+ }
+- p += status + 4;
+
+ // Extract results.
++ const int answerCount = ntohs(header->ancount);
+ int answerIndex = 0;
+ while ((p < response + responseLength) && (answerIndex < answerCount)) {
+ status = local_dn_expand(response, response + responseLength, p, host, sizeof(host));
+@@ -283,6 +295,11 @@ void QDnsLookupRunnable::query(const int requestType, const QByteArray &requestN
+ const QString name = QUrl::fromAce(host);
+
+ p += status;
++
++ if ((p - response) + 10 > responseLength) {
++ // probably just a truncated reply, return what we have
++ return;
++ }
+ const quint16 type = (p[0] << 8) | p[1];
+ p += 2; // RR type
+ p += 2; // RR class
+@@ -290,6 +307,8 @@ void QDnsLookupRunnable::query(const int requestType, const QByteArray &requestN
+ p += 4;
+ const quint16 size = (p[0] << 8) | p[1];
+ p += 2;
++ if ((p - response) + size > responseLength)
++ return; // truncated
+
+ if (type == QDnsLookup::A) {
+ if (size != 4) {
diff --git a/patches/qt-everywhere-opensource-src-5.15.12/0007-CVE-2023-34410-qtbase-5.15.diff.patch b/patches/qt-everywhere-opensource-src-5.15.12/0007-CVE-2023-34410-qtbase-5.15.diff.patch
new file mode 100644
index 000000000..9c57607da
--- /dev/null
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0007-CVE-2023-34410-qtbase-5.15.diff.patch
@@ -0,0 +1,66 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Mon, 16 Oct 2023 10:13:24 +0200
+Subject: [PATCH] CVE-2023-34410-qtbase-5.15.diff
+
+Imported from https://download.qt.io/archive/qt/5.15/
+---
+ qtbase/src/network/ssl/qsslsocket.cpp | 5 +++++
+ qtbase/src/network/ssl/qsslsocket_schannel.cpp | 22 ++++++++++++++++++++++
+ 2 files changed, 27 insertions(+)
+
+diff --git a/qtbase/src/network/ssl/qsslsocket.cpp b/qtbase/src/network/ssl/qsslsocket.cpp
+index 5bb6e7ee4aed..2a0b3a4f1d13 100644
+--- a/qtbase/src/network/ssl/qsslsocket.cpp
++++ b/qtbase/src/network/ssl/qsslsocket.cpp
+@@ -2221,6 +2221,10 @@ QSslSocketPrivate::QSslSocketPrivate()
+ , flushTriggered(false)
+ {
+ QSslConfigurationPrivate::deepCopyDefaultConfiguration(&configuration);
++ // If the global configuration doesn't allow root certificates to be loaded
++ // on demand then we have to disable it for this socket as well.
++ if (!configuration.allowRootCertOnDemandLoading)
++ allowRootCertOnDemandLoading = false;
+ }
+
+ /*!
+@@ -2470,6 +2474,7 @@ void QSslConfigurationPrivate::deepCopyDefaultConfiguration(QSslConfigurationPri
+ ptr->sessionProtocol = global->sessionProtocol;
+ ptr->ciphers = global->ciphers;
+ ptr->caCertificates = global->caCertificates;
++ ptr->allowRootCertOnDemandLoading = global->allowRootCertOnDemandLoading;
+ ptr->protocol = global->protocol;
+ ptr->peerVerifyMode = global->peerVerifyMode;
+ ptr->peerVerifyDepth = global->peerVerifyDepth;
+diff --git a/qtbase/src/network/ssl/qsslsocket_schannel.cpp b/qtbase/src/network/ssl/qsslsocket_schannel.cpp
+index c956ce3c2bfe..d1b23af29b83 100644
+--- a/qtbase/src/network/ssl/qsslsocket_schannel.cpp
++++ b/qtbase/src/network/ssl/qsslsocket_schannel.cpp
+@@ -1880,6 +1880,28 @@ bool QSslSocketBackendPrivate::verifyCertContext(CERT_CONTEXT *certContext)
+ if (configuration.peerVerifyDepth > 0 && DWORD(configuration.peerVerifyDepth) < verifyDepth)
+ verifyDepth = DWORD(configuration.peerVerifyDepth);
+
++ const auto &caCertificates = q->sslConfiguration().caCertificates();
++
++ if (!rootCertOnDemandLoadingAllowed()
++ && !(chain->TrustStatus.dwErrorStatus & CERT_TRUST_IS_PARTIAL_CHAIN)
++ && (q->peerVerifyMode() == QSslSocket::VerifyPeer
++ || (isClient && q->peerVerifyMode() == QSslSocket::AutoVerifyPeer))) {
++ // When verifying a peer Windows "helpfully" builds a chain that
++ // may include roots from the system store. But we don't want that if
++ // the user has set their own CA certificates.
++ // Since Windows claims this is not a partial chain the root is included
++ // and we have to check that it is one of our configured CAs.
++ CERT_CHAIN_ELEMENT *element = chain->rgpElement[chain->cElement - 1];
++ QSslCertificate certificate = getCertificateFromChainElement(element);
++ if (!caCertificates.contains(certificate)) {
++ auto error = QSslError(QSslError::CertificateUntrusted, certificate);
++ sslErrors += error;
++ emit q->peerVerifyError(error);
++ if (q->state() != QAbstractSocket::ConnectedState)
++ return false;
++ }
++ }
++
+ for (DWORD i = 0; i < verifyDepth; i++) {
+ CERT_CHAIN_ELEMENT *element = chain->rgpElement[i];
+ QSslCertificate certificate = getCertificateFromChainElement(element);
diff --git a/patches/qt-everywhere-opensource-src-5.15.12/0008-CVE-2023-37369-qtbase-5.15.diff.patch b/patches/qt-everywhere-opensource-src-5.15.12/0008-CVE-2023-37369-qtbase-5.15.diff.patch
new file mode 100644
index 000000000..f80d4e2f8
--- /dev/null
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0008-CVE-2023-37369-qtbase-5.15.diff.patch
@@ -0,0 +1,214 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Mon, 16 Oct 2023 10:13:24 +0200
+Subject: [PATCH] CVE-2023-37369-qtbase-5.15.diff
+
+Imported from https://download.qt.io/archive/qt/5.15/
+---
+ qtbase/src/corelib/serialization/qxmlstream.cpp | 39 ++++++++++++++++---------
+ qtbase/src/corelib/serialization/qxmlstream.g | 25 ++++++++++++++--
+ qtbase/src/corelib/serialization/qxmlstream_p.h | 25 ++++++++++++++--
+ 3 files changed, 69 insertions(+), 20 deletions(-)
+
+diff --git a/qtbase/src/corelib/serialization/qxmlstream.cpp b/qtbase/src/corelib/serialization/qxmlstream.cpp
+index 0ac554817879..561f3107a95e 100644
+--- a/qtbase/src/corelib/serialization/qxmlstream.cpp
++++ b/qtbase/src/corelib/serialization/qxmlstream.cpp
+@@ -1302,15 +1302,18 @@ inline int QXmlStreamReaderPrivate::fastScanContentCharList()
+ return n;
+ }
+
+-inline int QXmlStreamReaderPrivate::fastScanName(int *prefix)
++// Fast scan an XML attribute name (e.g. "xml:lang").
++inline QXmlStreamReaderPrivate::FastScanNameResult
++QXmlStreamReaderPrivate::fastScanName(Value *val)
+ {
+ int n = 0;
+ uint c;
+ while ((c = getChar()) != StreamEOF) {
+ if (n >= 4096) {
+ // This is too long to be a sensible name, and
+- // can exhaust memory
+- return 0;
++ // can exhaust memory, or the range of decltype(*prefix)
++ raiseNamePrefixTooLongError();
++ return {};
+ }
+ switch (c) {
+ case '\n':
+@@ -1339,23 +1342,23 @@ inline int QXmlStreamReaderPrivate::fastScanName(int *prefix)
+ case '+':
+ case '*':
+ putChar(c);
+- if (prefix && *prefix == n+1) {
+- *prefix = 0;
++ if (val && val->prefix == n + 1) {
++ val->prefix = 0;
+ putChar(':');
+ --n;
+ }
+- return n;
++ return FastScanNameResult(n);
+ case ':':
+- if (prefix) {
+- if (*prefix == 0) {
+- *prefix = n+2;
++ if (val) {
++ if (val->prefix == 0) {
++ val->prefix = n + 2;
+ } else { // only one colon allowed according to the namespace spec.
+ putChar(c);
+- return n;
++ return FastScanNameResult(n);
+ }
+ } else {
+ putChar(c);
+- return n;
++ return FastScanNameResult(n);
+ }
+ Q_FALLTHROUGH();
+ default:
+@@ -1364,12 +1367,12 @@ inline int QXmlStreamReaderPrivate::fastScanName(int *prefix)
+ }
+ }
+
+- if (prefix)
+- *prefix = 0;
++ if (val)
++ val->prefix = 0;
+ int pos = textBuffer.size() - n;
+ putString(textBuffer, pos);
+ textBuffer.resize(pos);
+- return 0;
++ return FastScanNameResult(0);
+ }
+
+ enum NameChar { NameBeginning, NameNotBeginning, NotName };
+@@ -1878,6 +1881,14 @@ void QXmlStreamReaderPrivate::raiseWellFormedError(const QString &message)
+ raiseError(QXmlStreamReader::NotWellFormedError, message);
+ }
+
++void QXmlStreamReaderPrivate::raiseNamePrefixTooLongError()
++{
++ // TODO: add a ImplementationLimitsExceededError and use it instead
++ raiseError(QXmlStreamReader::NotWellFormedError,
++ QXmlStream::tr("Length of XML attribute name exceeds implemnetation limits (4KiB "
++ "characters)."));
++}
++
+ void QXmlStreamReaderPrivate::parseError()
+ {
+
+diff --git a/qtbase/src/corelib/serialization/qxmlstream.g b/qtbase/src/corelib/serialization/qxmlstream.g
+index 4321fed68a47..8c6a1a588706 100644
+--- a/qtbase/src/corelib/serialization/qxmlstream.g
++++ b/qtbase/src/corelib/serialization/qxmlstream.g
+@@ -516,7 +516,16 @@ public:
+ int fastScanLiteralContent();
+ int fastScanSpace();
+ int fastScanContentCharList();
+- int fastScanName(int *prefix = nullptr);
++
++ struct FastScanNameResult {
++ FastScanNameResult() : ok(false) {}
++ explicit FastScanNameResult(int len) : addToLen(len), ok(true) { }
++ operator bool() { return ok; }
++ int operator*() { Q_ASSERT(ok); return addToLen; }
++ int addToLen;
++ bool ok;
++ };
++ FastScanNameResult fastScanName(Value *val = nullptr);
+ inline int fastScanNMTOKEN();
+
+
+@@ -525,6 +534,7 @@ public:
+
+ void raiseError(QXmlStreamReader::Error error, const QString& message = QString());
+ void raiseWellFormedError(const QString &message);
++ void raiseNamePrefixTooLongError();
+
+ QXmlStreamEntityResolver *entityResolver;
+
+@@ -1811,7 +1821,12 @@ space_opt ::= space;
+ qname ::= LETTER;
+ /.
+ case $rule_number: {
+- sym(1).len += fastScanName(&sym(1).prefix);
++ Value &val = sym(1);
++ if (auto res = fastScanName(&val))
++ val.len += *res;
++ else
++ return false;
++
+ if (atEnd) {
+ resume($rule_number);
+ return false;
+@@ -1822,7 +1837,11 @@ qname ::= LETTER;
+ name ::= LETTER;
+ /.
+ case $rule_number:
+- sym(1).len += fastScanName();
++ if (auto res = fastScanName())
++ sym(1).len += *res;
++ else
++ return false;
++
+ if (atEnd) {
+ resume($rule_number);
+ return false;
+diff --git a/qtbase/src/corelib/serialization/qxmlstream_p.h b/qtbase/src/corelib/serialization/qxmlstream_p.h
+index e5bde7b98e6d..b01484cac3c6 100644
+--- a/qtbase/src/corelib/serialization/qxmlstream_p.h
++++ b/qtbase/src/corelib/serialization/qxmlstream_p.h
+@@ -1005,7 +1005,16 @@ public:
+ int fastScanLiteralContent();
+ int fastScanSpace();
+ int fastScanContentCharList();
+- int fastScanName(int *prefix = nullptr);
++
++ struct FastScanNameResult {
++ FastScanNameResult() : ok(false) {}
++ explicit FastScanNameResult(int len) : addToLen(len), ok(true) { }
++ operator bool() { return ok; }
++ int operator*() { Q_ASSERT(ok); return addToLen; }
++ int addToLen;
++ bool ok;
++ };
++ FastScanNameResult fastScanName(Value *val = nullptr);
+ inline int fastScanNMTOKEN();
+
+
+@@ -1014,6 +1023,7 @@ public:
+
+ void raiseError(QXmlStreamReader::Error error, const QString& message = QString());
+ void raiseWellFormedError(const QString &message);
++ void raiseNamePrefixTooLongError();
+
+ QXmlStreamEntityResolver *entityResolver;
+
+@@ -1939,7 +1949,12 @@ bool QXmlStreamReaderPrivate::parse()
+ break;
+
+ case 262: {
+- sym(1).len += fastScanName(&sym(1).prefix);
++ Value &val = sym(1);
++ if (auto res = fastScanName(&val))
++ val.len += *res;
++ else
++ return false;
++
+ if (atEnd) {
+ resume(262);
+ return false;
+@@ -1947,7 +1962,11 @@ bool QXmlStreamReaderPrivate::parse()
+ } break;
+
+ case 263:
+- sym(1).len += fastScanName();
++ if (auto res = fastScanName())
++ sym(1).len += *res;
++ else
++ return false;
++
+ if (atEnd) {
+ resume(263);
+ return false;
diff --git a/patches/qt-everywhere-opensource-src-5.15.12/0009-CVE-2023-38197-qtbase-5.15.diff.patch b/patches/qt-everywhere-opensource-src-5.15.12/0009-CVE-2023-38197-qtbase-5.15.diff.patch
new file mode 100644
index 000000000..182593dd5
--- /dev/null
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0009-CVE-2023-38197-qtbase-5.15.diff.patch
@@ -0,0 +1,229 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Mon, 16 Oct 2023 10:13:25 +0200
+Subject: [PATCH] CVE-2023-38197-qtbase-5.15.diff
+
+Imported from https://download.qt.io/archive/qt/5.15/
+---
+ qtbase/src/corelib/serialization/qxmlstream.cpp | 144 ++++++++++++++++++++++--
+ qtbase/src/corelib/serialization/qxmlstream_p.h | 11 ++
+ 2 files changed, 147 insertions(+), 8 deletions(-)
+
+diff --git a/qtbase/src/corelib/serialization/qxmlstream.cpp b/qtbase/src/corelib/serialization/qxmlstream.cpp
+index 561f3107a95e..fdca35529777 100644
+--- a/qtbase/src/corelib/serialization/qxmlstream.cpp
++++ b/qtbase/src/corelib/serialization/qxmlstream.cpp
+@@ -160,7 +160,7 @@ enum { StreamEOF = ~0U };
+ addData() or by waiting for it to arrive on the device().
+
+ \value UnexpectedElementError The parser encountered an element
+- that was different to those it expected.
++ or token that was different to those it expected.
+
+ */
+
+@@ -295,13 +295,34 @@ QXmlStreamEntityResolver *QXmlStreamReader::entityResolver() const
+
+ QXmlStreamReader is a well-formed XML 1.0 parser that does \e not
+ include external parsed entities. As long as no error occurs, the
+- application code can thus be assured that the data provided by the
+- stream reader satisfies the W3C's criteria for well-formed XML. For
+- example, you can be certain that all tags are indeed nested and
+- closed properly, that references to internal entities have been
+- replaced with the correct replacement text, and that attributes have
+- been normalized or added according to the internal subset of the
+- DTD.
++ application code can thus be assured, that
++ \list
++ \li the data provided by the stream reader satisfies the W3C's
++ criteria for well-formed XML,
++ \li tokens are provided in a valid order.
++ \endlist
++
++ Unless QXmlStreamReader raises an error, it guarantees the following:
++ \list
++ \li All tags are nested and closed properly.
++ \li References to internal entities have been replaced with the
++ correct replacement text.
++ \li Attributes have been normalized or added according to the
++ internal subset of the \l DTD.
++ \li Tokens of type \l StartDocument happen before all others,
++ aside from comments and processing instructions.
++ \li At most one DOCTYPE element (a token of type \l DTD) is present.
++ \li If present, the DOCTYPE appears before all other elements,
++ aside from StartDocument, comments and processing instructions.
++ \endlist
++
++ In particular, once any token of type \l StartElement, \l EndElement,
++ \l Characters, \l EntityReference or \l EndDocument is seen, no
++ tokens of type StartDocument or DTD will be seen. If one is present in
++ the input stream, out of order, an error is raised.
++
++ \note The token types \l Comment and \l ProcessingInstruction may appear
++ anywhere in the stream.
+
+ If an error occurs while parsing, atEnd() and hasError() return
+ true, and error() returns the error that occurred. The functions
+@@ -620,6 +641,7 @@ QXmlStreamReader::TokenType QXmlStreamReader::readNext()
+ d->token = -1;
+ return readNext();
+ }
++ d->checkToken();
+ return d->type;
+ }
+
+@@ -740,6 +762,14 @@ static const short QXmlStreamReader_tokenTypeString_indices[] = {
+ };
+
+
++static const char QXmlStreamReader_XmlContextString[] =
++ "Prolog\0"
++ "Body\0";
++
++static const short QXmlStreamReader_XmlContextString_indices[] = {
++ 0, 7
++};
++
+ /*!
+ \property QXmlStreamReader::namespaceProcessing
+ The namespace-processing flag of the stream reader
+@@ -775,6 +805,16 @@ QString QXmlStreamReader::tokenString() const
+ QXmlStreamReader_tokenTypeString_indices[d->type]);
+ }
+
++/*!
++ \internal
++ \return \param ctxt (Prolog/Body) as a string.
++ */
++QString contextString(QXmlStreamReaderPrivate::XmlContext ctxt)
++{
++ return QLatin1String(QXmlStreamReader_XmlContextString +
++ QXmlStreamReader_XmlContextString_indices[static_cast<int>(ctxt)]);
++}
++
+ #endif // QT_NO_XMLSTREAMREADER
+
+ QXmlStreamPrivateTagStack::QXmlStreamPrivateTagStack()
+@@ -866,6 +906,8 @@ void QXmlStreamReaderPrivate::init()
+
+ type = QXmlStreamReader::NoToken;
+ error = QXmlStreamReader::NoError;
++ currentContext = XmlContext::Prolog;
++ foundDTD = false;
+ }
+
+ /*
+@@ -4061,6 +4103,92 @@ void QXmlStreamWriter::writeCurrentToken(const QXmlStreamReader &reader)
+ }
+ }
+
++static bool isTokenAllowedInContext(QXmlStreamReader::TokenType type,
++ QXmlStreamReaderPrivate::XmlContext loc)
++{
++ switch (type) {
++ case QXmlStreamReader::StartDocument:
++ case QXmlStreamReader::DTD:
++ return loc == QXmlStreamReaderPrivate::XmlContext::Prolog;
++
++ case QXmlStreamReader::StartElement:
++ case QXmlStreamReader::EndElement:
++ case QXmlStreamReader::Characters:
++ case QXmlStreamReader::EntityReference:
++ case QXmlStreamReader::EndDocument:
++ return loc == QXmlStreamReaderPrivate::XmlContext::Body;
++
++ case QXmlStreamReader::Comment:
++ case QXmlStreamReader::ProcessingInstruction:
++ return true;
++
++ case QXmlStreamReader::NoToken:
++ case QXmlStreamReader::Invalid:
++ return false;
++ default:
++ return false;
++ }
++}
++
++/*!
++ \internal
++ \brief QXmlStreamReader::isValidToken
++ \return \c true if \param type is a valid token type.
++ \return \c false if \param type is an unexpected token,
++ which indicates a non-well-formed or invalid XML stream.
++ */
++bool QXmlStreamReaderPrivate::isValidToken(QXmlStreamReader::TokenType type)
++{
++ // Don't change currentContext, if Invalid or NoToken occur in the prolog
++ if (type == QXmlStreamReader::Invalid || type == QXmlStreamReader::NoToken)
++ return false;
++
++ // If a token type gets rejected in the body, there is no recovery
++ const bool result = isTokenAllowedInContext(type, currentContext);
++ if (result || currentContext == XmlContext::Body)
++ return result;
++
++ // First non-Prolog token observed => switch context to body and check again.
++ currentContext = XmlContext::Body;
++ return isTokenAllowedInContext(type, currentContext);
++}
++
++/*!
++ \internal
++ Checks token type and raises an error, if it is invalid
++ in the current context (prolog/body).
++ */
++void QXmlStreamReaderPrivate::checkToken()
++{
++ Q_Q(QXmlStreamReader);
++
++ // The token type must be consumed, to keep track if the body has been reached.
++ const XmlContext context = currentContext;
++ const bool ok = isValidToken(type);
++
++ // Do nothing if an error has been raised already (going along with an unexpected token)
++ if (error != QXmlStreamReader::Error::NoError)
++ return;
++
++ if (!ok) {
++ raiseError(QXmlStreamReader::UnexpectedElementError,
++ QLatin1String("Unexpected token type %1 in %2.")
++ .arg(q->tokenString(), contextString(context)));
++ return;
++ }
++
++ if (type != QXmlStreamReader::DTD)
++ return;
++
++ // Raise error on multiple DTD tokens
++ if (foundDTD) {
++ raiseError(QXmlStreamReader::UnexpectedElementError,
++ QLatin1String("Found second DTD token in %1.").arg(contextString(context)));
++ } else {
++ foundDTD = true;
++ }
++}
++
+ /*!
+ \fn bool QXmlStreamAttributes::hasAttribute(const QString &qualifiedName) const
+ \since 4.5
+diff --git a/qtbase/src/corelib/serialization/qxmlstream_p.h b/qtbase/src/corelib/serialization/qxmlstream_p.h
+index b01484cac3c6..be7b1fe66555 100644
+--- a/qtbase/src/corelib/serialization/qxmlstream_p.h
++++ b/qtbase/src/corelib/serialization/qxmlstream_p.h
+@@ -804,6 +804,17 @@ public:
+ #endif
+ bool atEnd;
+
++ enum class XmlContext
++ {
++ Prolog,
++ Body,
++ };
++
++ XmlContext currentContext = XmlContext::Prolog;
++ bool foundDTD = false;
++ bool isValidToken(QXmlStreamReader::TokenType type);
++ void checkToken();
++
+ /*!
+ \sa setType()
+ */
diff --git a/patches/qt-everywhere-opensource-src-5.15.12/0010-CVE-2023-43114-5.15.patch b/patches/qt-everywhere-opensource-src-5.15.12/0010-CVE-2023-43114-5.15.patch
new file mode 100644
index 000000000..333832e27
--- /dev/null
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0010-CVE-2023-43114-5.15.patch
@@ -0,0 +1,126 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Mon, 16 Oct 2023 10:13:25 +0200
+Subject: [PATCH] CVE-2023-43114-5.15
+
+Imported from https://download.qt.io/archive/qt/5.15/
+---
+ .../fontdatabases/windows/qwindowsfontdatabase.cpp | 67 ++++++++++++++++------
+ 1 file changed, 51 insertions(+), 16 deletions(-)
+
+diff --git a/qtbase/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp b/qtbase/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp
+index 09d2d916fe47..0e6fe5eb847a 100644
+--- a/qtbase/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp
++++ b/qtbase/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp
+@@ -1471,36 +1471,70 @@ QT_WARNING_POP
+ return fontEngine;
+ }
+
+-static QList<quint32> getTrueTypeFontOffsets(const uchar *fontData)
++static QList<quint32> getTrueTypeFontOffsets(const uchar *fontData, const uchar *fileEndSentinel)
+ {
+ QList<quint32> offsets;
+- const quint32 headerTag = *reinterpret_cast<const quint32 *>(fontData);
++ if (fileEndSentinel - fontData < 12) {
++ qCWarning(lcQpaFonts) << "Corrupted font data detected";
++ return offsets;
++ }
++
++ const quint32 headerTag = qFromUnaligned<quint32>(fontData);
+ if (headerTag != MAKE_TAG('t', 't', 'c', 'f')) {
+ if (headerTag != MAKE_TAG(0, 1, 0, 0)
+ && headerTag != MAKE_TAG('O', 'T', 'T', 'O')
+ && headerTag != MAKE_TAG('t', 'r', 'u', 'e')
+- && headerTag != MAKE_TAG('t', 'y', 'p', '1'))
++ && headerTag != MAKE_TAG('t', 'y', 'p', '1')) {
+ return offsets;
++ }
+ offsets << 0;
+ return offsets;
+ }
++
++ const quint32 maximumNumFonts = 0xffff;
+ const quint32 numFonts = qFromBigEndian<quint32>(fontData + 8);
+- for (uint i = 0; i < numFonts; ++i) {
+- offsets << qFromBigEndian<quint32>(fontData + 12 + i * 4);
++ if (numFonts > maximumNumFonts) {
++ qCWarning(lcQpaFonts) << "Font collection of" << numFonts << "fonts is too large. Aborting.";
++ return offsets;
+ }
++
++ if (quintptr(fileEndSentinel - fontData) > 12 + (numFonts - 1) * 4) {
++ for (quint32 i = 0; i < numFonts; ++i)
++ offsets << qFromBigEndian<quint32>(fontData + 12 + i * 4);
++ } else {
++ qCWarning(lcQpaFonts) << "Corrupted font data detected";
++ }
++
+ return offsets;
+ }
+
+-static void getFontTable(const uchar *fileBegin, const uchar *data, quint32 tag, const uchar **table, quint32 *length)
++static void getFontTable(const uchar *fileBegin, const uchar *fileEndSentinel, const uchar *data, quint32 tag, const uchar **table, quint32 *length)
+ {
+- const quint16 numTables = qFromBigEndian<quint16>(data + 4);
+- for (uint i = 0; i < numTables; ++i) {
+- const quint32 offset = 12 + 16 * i;
+- if (*reinterpret_cast<const quint32 *>(data + offset) == tag) {
+- *table = fileBegin + qFromBigEndian<quint32>(data + offset + 8);
+- *length = qFromBigEndian<quint32>(data + offset + 12);
+- return;
++ if (fileEndSentinel - data >= 6) {
++ const quint16 numTables = qFromBigEndian<quint16>(data + 4);
++ if (fileEndSentinel - data >= 28 + 16 * (numTables - 1)) {
++ for (quint32 i = 0; i < numTables; ++i) {
++ const quint32 offset = 12 + 16 * i;
++ if (qFromUnaligned<quint32>(data + offset) == tag) {
++ const quint32 tableOffset = qFromBigEndian<quint32>(data + offset + 8);
++ if (quintptr(fileEndSentinel - fileBegin) <= tableOffset) {
++ qCWarning(lcQpaFonts) << "Corrupted font data detected";
++ break;
++ }
++ *table = fileBegin + tableOffset;
++ *length = qFromBigEndian<quint32>(data + offset + 12);
++ if (quintptr(fileEndSentinel - *table) < *length) {
++ qCWarning(lcQpaFonts) << "Corrupted font data detected";
++ break;
++ }
++ return;
++ }
++ }
++ } else {
++ qCWarning(lcQpaFonts) << "Corrupted font data detected";
+ }
++ } else {
++ qCWarning(lcQpaFonts) << "Corrupted font data detected";
+ }
+ *table = 0;
+ *length = 0;
+@@ -1513,8 +1547,9 @@ static void getFamiliesAndSignatures(const QByteArray &fontData,
+ QVector<QFontValues> *values)
+ {
+ const uchar *data = reinterpret_cast<const uchar *>(fontData.constData());
++ const uchar *dataEndSentinel = data + fontData.size();
+
+- QList<quint32> offsets = getTrueTypeFontOffsets(data);
++ QList<quint32> offsets = getTrueTypeFontOffsets(data, dataEndSentinel);
+ if (offsets.isEmpty())
+ return;
+
+@@ -1522,7 +1557,7 @@ static void getFamiliesAndSignatures(const QByteArray &fontData,
+ const uchar *font = data + offsets.at(i);
+ const uchar *table;
+ quint32 length;
+- getFontTable(data, font, MAKE_TAG('n', 'a', 'm', 'e'), &table, &length);
++ getFontTable(data, dataEndSentinel, font, MAKE_TAG('n', 'a', 'm', 'e'), &table, &length);
+ if (!table)
+ continue;
+ QFontNames names = qt_getCanonicalFontNames(table, length);
+@@ -1532,7 +1567,7 @@ static void getFamiliesAndSignatures(const QByteArray &fontData,
+ families->append(std::move(names));
+
+ if (values || signatures)
+- getFontTable(data, font, MAKE_TAG('O', 'S', '/', '2'), &table, &length);
++ getFontTable(data, dataEndSentinel, font, MAKE_TAG('O', 'S', '/', '2'), &table, &length);
+
+ if (values) {
+ QFontValues fontValues;
diff --git a/patches/qt-everywhere-opensource-src-5.15.12/0011-xkb-fix-build-with-libxkbcommon-1.6.0-and-later.patch b/patches/qt-everywhere-opensource-src-5.15.12/0011-xkb-fix-build-with-libxkbcommon-1.6.0-and-later.patch
new file mode 100644
index 000000000..169fccf6f
--- /dev/null
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0011-xkb-fix-build-with-libxkbcommon-1.6.0-and-later.patch
@@ -0,0 +1,38 @@
+From: Liang Qi <liang.qi@qt.io>
+Date: Tue, 10 Oct 2023 14:08:48 +0200
+Subject: [PATCH] xkb: fix build with libxkbcommon 1.6.0 and later
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+A few XKB_KEY_dead_* defines got removed from 1.6.0. See also
+https://github.com/xkbcommon/libxkbcommon/blob/6073565903488cb5b9a8d37fdc4a7c2f9d7ad04d/NEWS#L9-L14
+https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/merge_requests/70/diffs?commit_id=cb44799b72f611eb4c9d7cc185bc3b09e070be08
+
+Pick-to: 6.6 6.5 6.2 5.15
+Fixes: QTBUG-117950
+Change-Id: I55861868f2bb29c553d68365fa9b9b6ed01c9aea
+Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
+---
+ qtbase/src/platformsupport/input/xkbcommon/qxkbcommon.cpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/qtbase/src/platformsupport/input/xkbcommon/qxkbcommon.cpp b/qtbase/src/platformsupport/input/xkbcommon/qxkbcommon.cpp
+index 7bfacf4abe16..cc46275dce39 100644
+--- a/qtbase/src/platformsupport/input/xkbcommon/qxkbcommon.cpp
++++ b/qtbase/src/platformsupport/input/xkbcommon/qxkbcommon.cpp
+@@ -273,10 +273,14 @@ static constexpr const auto KeyTbl = qMakeArray(
+ Xkb2Qt<XKB_KEY_dead_small_schwa, Qt::Key_Dead_Small_Schwa>,
+ Xkb2Qt<XKB_KEY_dead_capital_schwa, Qt::Key_Dead_Capital_Schwa>,
+ Xkb2Qt<XKB_KEY_dead_greek, Qt::Key_Dead_Greek>,
++/* The following four XKB_KEY_dead keys got removed in libxkbcommon 1.6.0
++ The define check is kind of version check here. */
++#ifdef XKB_KEY_dead_lowline
+ Xkb2Qt<XKB_KEY_dead_lowline, Qt::Key_Dead_Lowline>,
+ Xkb2Qt<XKB_KEY_dead_aboveverticalline, Qt::Key_Dead_Aboveverticalline>,
+ Xkb2Qt<XKB_KEY_dead_belowverticalline, Qt::Key_Dead_Belowverticalline>,
+ Xkb2Qt<XKB_KEY_dead_longsolidusoverlay, Qt::Key_Dead_Longsolidusoverlay>,
++#endif
+
+ // Special keys from X.org - This include multimedia keys,
+ // wireless/bluetooth/uwb keys, special launcher keys, etc.
diff --git a/patches/qt-everywhere-opensource-src-5.15.12/0100-qtwebengine-chromium-skia-Fix-build-with-gcc-12.patch b/patches/qt-everywhere-opensource-src-5.15.12/0100-qtwebengine-chromium-skia-Fix-build-with-gcc-12.patch
new file mode 100644
index 000000000..659027a4d
--- /dev/null
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0100-qtwebengine-chromium-skia-Fix-build-with-gcc-12.patch
@@ -0,0 +1,61 @@
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Mon, 16 May 2022 20:01:49 +0000
+Subject: [PATCH] qtwebengine: chromium: skia: Fix build with gcc-12
+
+* fixes:
+/OE/build/test-oe-build-time/poky/build/tmp/work/core2-64-poky-linux/qtwebengine/5.15.8+gitAUTOINC+73e76f9e86_48a205f9e0-r0/recipe-sysroot-native/usr/bin/x86_64-poky-linux/x86_64-poky-linux-g++ -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 --sysroot=/OE/build/test-oe-build-time/poky/build/tmp/work/core2-64-poky-linux/qtwebengine/5.15.8+gitAUTOINC+73e76f9e86_48a205f9e0-r0/recipe-sysroot -MMD -MF obj/skia/skia/SkParseColor.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -DTOOLKIT_QT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -DCR_SYSROOT_HASH=5f64b417e1018dcf8fcc81dc2714e0f264b9b911 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DSK_CODEC_DECODES_PNG -DSK_CODEC_DECODES_WEBP -DSK_ENCODE_PNG -DSK_ENCODE_WEBP -DSK_USER_CONFIG_HEADER=\"../../skia/config/SkUserConfig.h\" -DSK_GL -DSK_CODEC_DECODES_JPEG -DSK_ENCODE_JPEG -DSK_USE_LIBGIFCODEC -DSK_VULKAN_HEADER=\"../../skia/config/SkVulkanConfig.h\" -DSK_VULKAN=1 -DSK_SUPPORT_GPU=1 -DSK_GPU_WORKAROUNDS_HEADER=\"gpu/config/gpu_driver_bug_workaround_autogen.h\" -DSKIA_IMPLEMENTATION=1 -DSK_GAMMA_EXPONENT=1.2 -DSK_GAMMA_CONTRAST=0.2 -DSK_DEFAULT_FONT_CACHE_LIMIT=20971520 -DWEBP_EXTERN=extern -DUSE_SYSTEM_LIBJPEG -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1 -DU_ENABLE_TRACING=1 -DU_ENABLE_RESOURCE_TRACING=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DUCHAR_TYPE=uint16_t -Igen -I../../../../git/src/3rdparty/chromium -I../../../../git/src/3rdparty/chromium/third_party/skia -I../../../../git/src/3rdparty/chromium/third_party/libgifcodec -I../../../../git/src/3rdparty/chromium/third_party/vulkan/include -I../../../../git/src/3rdparty/chromium/third_party/vulkan_headers/include -I../../../../git/src/3rdparty/chromium/third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -Igen -Igen -I../../../../git/src/3rdparty/chromium/third_party/libwebp/src -Igen -I../../../../git/src/3rdparty/chromium/third_party/abseil-cpp -I../../../../git/src/3rdparty/chromium/third_party/boringssl/src/include -I../../../../git/src/3rdparty/chromium/third_party/protobuf/src -Igen/protoc_out -I../../../../git/src/3rdparty/chromium/third_party/icu/source/common -I../../../../git/src/3rdparty/chromium/third_party/icu/source/i18n -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pipe -pthread -m64 -fno-omit-frame-pointer -g1 -fvisibility=hidden -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-comments -Wno-packed-not-aligned -Wno-dangling-else -Wno-missing-field-initializers -Wno-unused-parameter -O2 -fno-ident -fdata-sections -ffunction-sections -I/OE/build/test-oe-build-time/poky/build/tmp/work/core2-64-poky-linux/qtwebengine/5.15.8+gitAUTOINC+73e76f9e86_48a205f9e0-r0/recipe-sysroot/usr/include/libpng16 -I/OE/build/test-oe-build-time/poky/build/tmp/work/core2-64-poky-linux/qtwebengine/5.15.8+gitAUTOINC+73e76f9e86_48a205f9e0-r0/recipe-sysroot/usr/include/freetype2 -I/OE/build/test-oe-build-time/poky/build/tmp/work/core2-64-poky-linux/qtwebengine/5.15.8+gitAUTOINC+73e76f9e86_48a205f9e0-r0/recipe-sysroot/usr/include/libpng16 -std=gnu++14 -fno-exceptions -fno-rtti --sysroot=../../../../recipe-sysroot -fvisibility-inlines-hidden -std=c++17 -Wno-narrowing -Wno-class-memaccess -Wno-attributes -Wno-class-memaccess -Wno-subobject-linkage -Wno-invalid-offsetof -Wno-return-type -Wno-deprecated-copy -c ../../../../git/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp -o obj/skia/skia/SkParseColor.o
+../../../../git/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp: In static member function 'static const char* SkParse::FindNamedColor(const char*, size_t, SkColor*)':
+../../../../git/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp:300:49: error: no matching function for call to 'begin(const char* const [140])'
+ 300 | const auto rec = std::lower_bound(std::begin(gColorNames),
+ | ~~~~~~~~~~^~~~~~~~~~~~~
+In file included from ../../../../recipe-sysroot/usr/include/c++/12.1.0/utility:73,
+ from ../../../../git/src/3rdparty/chromium/third_party/skia/include/core/SkImageInfo.h:11,
+ from ../../../../git/src/3rdparty/chromium/third_party/skia/include/core/SkColor.h:11,
+ from ../../../../git/src/3rdparty/chromium/third_party/skia/include/utils/SkParse.h:13,
+ from ../../../../git/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp:9:
+../../../../recipe-sysroot/usr/include/c++/12.1.0/initializer_list:90:5: note: candidate: 'template<class _Tp> constexpr const _Tp* std::begin(initializer_list<_Tp>)'
+ 90 | begin(initializer_list<_Tp> __ils) noexcept
+ | ^~~~~
+../../../../recipe-sysroot/usr/include/c++/12.1.0/initializer_list:90:5: note: template argument deduction/substitution failed:
+../../../../git/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp:300:49: note: mismatched types 'std::initializer_list<_Tp>' and 'const char* const*'
+ 300 | const auto rec = std::lower_bound(std::begin(gColorNames),
+ | ~~~~~~~~~~^~~~~~~~~~~~~
+../../../../git/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp:301:49: error: no matching function for call to 'end(const char* const [140])'
+ 301 | std::end (gColorNames),
+ | ~~~~~~~~~~^~~~~~~~~~~~~
+../../../../recipe-sysroot/usr/include/c++/12.1.0/initializer_list:101:5: note: candidate: 'template<class _Tp> constexpr const _Tp* std::end(initializer_list<_Tp>)'
+ 101 | end(initializer_list<_Tp> __ils) noexcept
+ | ^~~
+../../../../recipe-sysroot/usr/include/c++/12.1.0/initializer_list:101:5: note: template argument deduction/substitution failed:
+../../../../git/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp:301:49: note: mismatched types 'std::initializer_list<_Tp>' and 'const char* const*'
+ 301 | std::end (gColorNames),
+ | ~~~~~~~~~~^~~~~~~~~~~~~
+../../../../git/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp:307:24: error: no matching function for call to 'end(const char* const [140])'
+ 307 | if (rec == std::end(gColorNames) || 0 != strcmp(name, *rec)) {
+ | ~~~~~~~~^~~~~~~~~~~~~
+../../../../recipe-sysroot/usr/include/c++/12.1.0/initializer_list:101:5: note: candidate: 'template<class _Tp> constexpr const _Tp* std::end(initializer_list<_Tp>)'
+ 101 | end(initializer_list<_Tp> __ils) noexcept
+ | ^~~
+../../../../recipe-sysroot/usr/include/c++/12.1.0/initializer_list:101:5: note: template argument deduction/substitution failed:
+../../../../git/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp:307:24: note: mismatched types 'std::initializer_list<_Tp>' and 'const char* const*'
+ 307 | if (rec == std::end(gColorNames) || 0 != strcmp(name, *rec)) {
+ | ~~~~~~~~^~~~~~~~~~~~~
+[67/9144] CXX obj/skia/skia/GrClipStack.o
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ .../src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp b/qtwebengine/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp
+index 7260365b2c67..cd07eb486501 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp
++++ b/qtwebengine/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp
+@@ -7,6 +7,7 @@
+
+
+ #include "include/utils/SkParse.h"
++#include <vector>
+
+ static constexpr const char* gColorNames[] = {
+ "aliceblue",
diff --git a/patches/qt-everywhere-src-5.15.2/0003-qt3d-link-with-latomic-if-necessary.patch b/patches/qt-everywhere-opensource-src-5.15.12/0101-qt3d-link-with-latomic-if-necessary.patch
index 6445dc4f4..6445dc4f4 100644
--- a/patches/qt-everywhere-src-5.15.2/0003-qt3d-link-with-latomic-if-necessary.patch
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0101-qt3d-link-with-latomic-if-necessary.patch
diff --git a/patches/qt-everywhere-opensource-src-5.15.12/0102-qt5-qtwebengine-fix-gcc13-errors.patch b/patches/qt-everywhere-opensource-src-5.15.12/0102-qt5-qtwebengine-fix-gcc13-errors.patch
new file mode 100644
index 000000000..1df3c0d89
--- /dev/null
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0102-qt5-qtwebengine-fix-gcc13-errors.patch
@@ -0,0 +1,268 @@
+From: Fabian Pfitzner <f.pfitzner@pengutronix.de>
+Date: Tue, 7 Nov 2023 15:22:29 +0100
+Subject: [PATCH] qt5 qtwebengine: fix gcc13 errors
+
+newer toolchains based on gcc13 will throw errors like
+
+../../../../../qt-everywhere-opensource-src-5.15.11/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h:34:33: error: found ':' in nested-name-specifier, expected '::'
+ 34 | enum class FormatConversionChar : uint8_t;
+ | ^
+ | ::
+
+which is due to a missing include. the file cstdint.h defines the types
+necessary by qtwebengine and therefore this patch includes the file
+where needed.
+
+Signed-off-by: Fabian Pfitzner <f.pfitzner@pengutronix.de>
+---
+ qtwebengine/src/3rdparty/chromium/base/debug/profiler.h | 1 +
+ .../chromium/content/public/browser/browsing_data_remover_delegate.h | 1 +
+ .../3rdparty/chromium/device/base/synchronization/one_writer_seqlock.cc | 2 ++
+ .../src/3rdparty/chromium/device/bluetooth/public/cpp/bluetooth_uuid.h | 1 +
+ .../src/3rdparty/chromium/gpu/command_buffer/common/webgpu_cmd_enums.h | 2 ++
+ qtwebengine/src/3rdparty/chromium/gpu/config/device_perf_info.h | 1 +
+ qtwebengine/src/3rdparty/chromium/gpu/config/gpu_feature_info.h | 1 +
+ qtwebengine/src/3rdparty/chromium/gpu/config/gpu_preferences.h | 1 +
+ qtwebengine/src/3rdparty/chromium/net/cookies/cookie_inclusion_status.h | 1 +
+ .../third_party/abseil-cpp/absl/strings/internal/str_format/extension.h | 1 +
+ .../3rdparty/chromium/third_party/angle/include/GLSLANG/ShaderVars.h | 1 +
+ .../src/3rdparty/chromium/third_party/angle/src/common/angleutils.h | 1 +
+ .../breakpad/breakpad/src/client/linux/handler/minidump_descriptor.h | 1 +
+ .../chromium/third_party/perfetto/include/perfetto/ext/base/uuid.h | 1 +
+ qtwebengine/src/3rdparty/chromium/third_party/webrtc/call/rtp_demuxer.h | 1 +
+ .../chromium/third_party/webrtc/rtc_base/third_party/base64/base64.h | 1 +
+ qtwebengine/src/3rdparty/chromium/v8/src/base/logging.h | 1 +
+ qtwebengine/src/3rdparty/chromium/v8/src/base/macros.h | 1 +
+ .../src/3rdparty/chromium/v8/src/inspector/v8-string-conversions.h | 1 +
+ 19 files changed, 21 insertions(+)
+
+diff --git a/qtwebengine/src/3rdparty/chromium/base/debug/profiler.h b/qtwebengine/src/3rdparty/chromium/base/debug/profiler.h
+index 1229e06234c5..c7ed55e70f7a 100644
+--- a/qtwebengine/src/3rdparty/chromium/base/debug/profiler.h
++++ b/qtwebengine/src/3rdparty/chromium/base/debug/profiler.h
+@@ -5,6 +5,7 @@
+ #ifndef BASE_DEBUG_PROFILER_H_
+ #define BASE_DEBUG_PROFILER_H_
+
++#include <cstdint>
+ #include <stddef.h>
+
+ #include <string>
+diff --git a/qtwebengine/src/3rdparty/chromium/content/public/browser/browsing_data_remover_delegate.h b/qtwebengine/src/3rdparty/chromium/content/public/browser/browsing_data_remover_delegate.h
+index 3896bc6e786e..b93843dc16bf 100644
+--- a/qtwebengine/src/3rdparty/chromium/content/public/browser/browsing_data_remover_delegate.h
++++ b/qtwebengine/src/3rdparty/chromium/content/public/browser/browsing_data_remover_delegate.h
+@@ -5,6 +5,7 @@
+ #ifndef CONTENT_PUBLIC_BROWSER_BROWSING_DATA_REMOVER_DELEGATE_H_
+ #define CONTENT_PUBLIC_BROWSER_BROWSING_DATA_REMOVER_DELEGATE_H_
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+ #include "base/callback_forward.h"
+diff --git a/qtwebengine/src/3rdparty/chromium/device/base/synchronization/one_writer_seqlock.cc b/qtwebengine/src/3rdparty/chromium/device/base/synchronization/one_writer_seqlock.cc
+index 213b6301c052..98266a16c613 100644
+--- a/qtwebengine/src/3rdparty/chromium/device/base/synchronization/one_writer_seqlock.cc
++++ b/qtwebengine/src/3rdparty/chromium/device/base/synchronization/one_writer_seqlock.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 "device/base/synchronization/one_writer_seqlock.h"
+
+ namespace device {
+diff --git a/qtwebengine/src/3rdparty/chromium/device/bluetooth/public/cpp/bluetooth_uuid.h b/qtwebengine/src/3rdparty/chromium/device/bluetooth/public/cpp/bluetooth_uuid.h
+index 0c27ae710596..b64f82f75484 100644
+--- a/qtwebengine/src/3rdparty/chromium/device/bluetooth/public/cpp/bluetooth_uuid.h
++++ b/qtwebengine/src/3rdparty/chromium/device/bluetooth/public/cpp/bluetooth_uuid.h
+@@ -5,6 +5,7 @@
+ #ifndef DEVICE_BLUETOOTH_PUBLIC_CPP_BLUETOOTH_UUID_H_
+ #define DEVICE_BLUETOOTH_PUBLIC_CPP_BLUETOOTH_UUID_H_
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+
+diff --git a/qtwebengine/src/3rdparty/chromium/gpu/command_buffer/common/webgpu_cmd_enums.h b/qtwebengine/src/3rdparty/chromium/gpu/command_buffer/common/webgpu_cmd_enums.h
+index 83615b30c8ab..8fa9fb1f6d57 100644
+--- a/qtwebengine/src/3rdparty/chromium/gpu/command_buffer/common/webgpu_cmd_enums.h
++++ b/qtwebengine/src/3rdparty/chromium/gpu/command_buffer/common/webgpu_cmd_enums.h
+@@ -5,6 +5,8 @@
+ #ifndef GPU_COMMAND_BUFFER_COMMON_WEBGPU_CMD_ENUMS_H_
+ #define GPU_COMMAND_BUFFER_COMMON_WEBGPU_CMD_ENUMS_H_
+
++#include <cstdint>
++
+ namespace gpu {
+ namespace webgpu {
+
+diff --git a/qtwebengine/src/3rdparty/chromium/gpu/config/device_perf_info.h b/qtwebengine/src/3rdparty/chromium/gpu/config/device_perf_info.h
+index e33874ba3bd0..824a207a2243 100644
+--- a/qtwebengine/src/3rdparty/chromium/gpu/config/device_perf_info.h
++++ b/qtwebengine/src/3rdparty/chromium/gpu/config/device_perf_info.h
+@@ -5,6 +5,7 @@
+ #ifndef GPU_CONFIG_DEVICE_PERF_INFO_H_
+ #define GPU_CONFIG_DEVICE_PERF_INFO_H_
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+
+diff --git a/qtwebengine/src/3rdparty/chromium/gpu/config/gpu_feature_info.h b/qtwebengine/src/3rdparty/chromium/gpu/config/gpu_feature_info.h
+index 027f1a5af3e0..70759b2ae47c 100644
+--- a/qtwebengine/src/3rdparty/chromium/gpu/config/gpu_feature_info.h
++++ b/qtwebengine/src/3rdparty/chromium/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>
+
+diff --git a/qtwebengine/src/3rdparty/chromium/gpu/config/gpu_preferences.h b/qtwebengine/src/3rdparty/chromium/gpu/config/gpu_preferences.h
+index 6b8587151d61..e2bc6b90f2fd 100644
+--- a/qtwebengine/src/3rdparty/chromium/gpu/config/gpu_preferences.h
++++ b/qtwebengine/src/3rdparty/chromium/gpu/config/gpu_preferences.h
+@@ -5,6 +5,7 @@
+ #ifndef GPU_CONFIG_GPU_PREFERENCES_H_
+ #define GPU_CONFIG_GPU_PREFERENCES_H_
+
++#include <cstdint>
+ #include <stddef.h>
+ #include <string>
+ #include <vector>
+diff --git a/qtwebengine/src/3rdparty/chromium/net/cookies/cookie_inclusion_status.h b/qtwebengine/src/3rdparty/chromium/net/cookies/cookie_inclusion_status.h
+index 9e506b555012..cfb03bfe2b30 100644
+--- a/qtwebengine/src/3rdparty/chromium/net/cookies/cookie_inclusion_status.h
++++ b/qtwebengine/src/3rdparty/chromium/net/cookies/cookie_inclusion_status.h
+@@ -5,6 +5,7 @@
+ #ifndef NET_COOKIES_COOKIE_INCLUSION_STATUS_H_
+ #define NET_COOKIES_COOKIE_INCLUSION_STATUS_H_
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h b/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h
+index a9b9e137deb2..562327f1c401 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h
++++ b/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h
+@@ -18,6 +18,7 @@
+
+ #include <limits.h>
+
++#include <cstdint>
+ #include <cstddef>
+ #include <cstring>
+ #include <ostream>
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/angle/include/GLSLANG/ShaderVars.h b/qtwebengine/src/3rdparty/chromium/third_party/angle/include/GLSLANG/ShaderVars.h
+index 9911546b90d0..0178796c46d8 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/angle/include/GLSLANG/ShaderVars.h
++++ b/qtwebengine/src/3rdparty/chromium/third_party/angle/include/GLSLANG/ShaderVars.h
+@@ -10,6 +10,7 @@
+ #ifndef GLSLANG_SHADERVARS_H_
+ #define GLSLANG_SHADERVARS_H_
+
++#include <cstdint>
+ #include <algorithm>
+ #include <array>
+ #include <string>
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/angle/src/common/angleutils.h b/qtwebengine/src/3rdparty/chromium/third_party/angle/src/common/angleutils.h
+index f669d7df3082..8f391fdd72cb 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/angle/src/common/angleutils.h
++++ b/qtwebengine/src/3rdparty/chromium/third_party/angle/src/common/angleutils.h
+@@ -15,6 +15,7 @@
+ # include "absl/container/flat_hash_map.h"
+ #endif // defined(ANGLE_USE_ABSEIL)
+
++#include <cstdint>
+ #include <climits>
+ #include <cstdarg>
+ #include <cstddef>
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/minidump_descriptor.h b/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/minidump_descriptor.h
+index c7e4f2b3787f..85e8c4b04b95 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/minidump_descriptor.h
++++ b/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/minidump_descriptor.h
+@@ -30,6 +30,7 @@
+ #ifndef CLIENT_LINUX_HANDLER_MINIDUMP_DESCRIPTOR_H_
+ #define CLIENT_LINUX_HANDLER_MINIDUMP_DESCRIPTOR_H_
+
++#include <cstdint>
+ #include <assert.h>
+ #include <sys/types.h>
+
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/uuid.h b/qtwebengine/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/uuid.h
+index 1b4c53815bc4..359d5ebdd24d 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/uuid.h
++++ b/qtwebengine/src/3rdparty/chromium/third_party/perfetto/include/perfetto/ext/base/uuid.h
+@@ -17,6 +17,7 @@
+ #ifndef INCLUDE_PERFETTO_EXT_BASE_UUID_H_
+ #define INCLUDE_PERFETTO_EXT_BASE_UUID_H_
+
++#include <cstdint>
+ #include <array>
+ #include <string>
+
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/webrtc/call/rtp_demuxer.h b/qtwebengine/src/3rdparty/chromium/third_party/webrtc/call/rtp_demuxer.h
+index 3aa7e9df2681..3cfc8d6a3e9d 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/webrtc/call/rtp_demuxer.h
++++ b/qtwebengine/src/3rdparty/chromium/third_party/webrtc/call/rtp_demuxer.h
+@@ -11,6 +11,7 @@
+ #ifndef CALL_RTP_DEMUXER_H_
+ #define CALL_RTP_DEMUXER_H_
+
++#include <cstdint>
+ #include <map>
+ #include <set>
+ #include <string>
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/webrtc/rtc_base/third_party/base64/base64.h b/qtwebengine/src/3rdparty/chromium/third_party/webrtc/rtc_base/third_party/base64/base64.h
+index 7a936f23e782..21951a1d2401 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/webrtc/rtc_base/third_party/base64/base64.h
++++ b/qtwebengine/src/3rdparty/chromium/third_party/webrtc/rtc_base/third_party/base64/base64.h
+@@ -12,6 +12,7 @@
+ #ifndef RTC_BASE_THIRD_PARTY_BASE64_BASE64_H_
+ #define RTC_BASE_THIRD_PARTY_BASE64_BASE64_H_
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+
+diff --git a/qtwebengine/src/3rdparty/chromium/v8/src/base/logging.h b/qtwebengine/src/3rdparty/chromium/v8/src/base/logging.h
+index fe39f988225e..dbe130581cb1 100644
+--- a/qtwebengine/src/3rdparty/chromium/v8/src/base/logging.h
++++ b/qtwebengine/src/3rdparty/chromium/v8/src/base/logging.h
+@@ -5,6 +5,7 @@
+ #ifndef V8_BASE_LOGGING_H_
+ #define V8_BASE_LOGGING_H_
+
++#include <cstdint>
+ #include <cstring>
+ #include <sstream>
+ #include <string>
+diff --git a/qtwebengine/src/3rdparty/chromium/v8/src/base/macros.h b/qtwebengine/src/3rdparty/chromium/v8/src/base/macros.h
+index 37cab78f08fc..4220eacbbbfc 100644
+--- a/qtwebengine/src/3rdparty/chromium/v8/src/base/macros.h
++++ b/qtwebengine/src/3rdparty/chromium/v8/src/base/macros.h
+@@ -5,6 +5,7 @@
+ #ifndef V8_BASE_MACROS_H_
+ #define V8_BASE_MACROS_H_
+
++#include <cstdint>
+ #include <limits>
+ #include <type_traits>
+
+diff --git a/qtwebengine/src/3rdparty/chromium/v8/src/inspector/v8-string-conversions.h b/qtwebengine/src/3rdparty/chromium/v8/src/inspector/v8-string-conversions.h
+index c1d69c18f0a8..eb33c6816a58 100644
+--- a/qtwebengine/src/3rdparty/chromium/v8/src/inspector/v8-string-conversions.h
++++ b/qtwebengine/src/3rdparty/chromium/v8/src/inspector/v8-string-conversions.h
+@@ -5,6 +5,7 @@
+ #ifndef V8_INSPECTOR_V8_STRING_CONVERSIONS_H_
+ #define V8_INSPECTOR_V8_STRING_CONVERSIONS_H_
+
++#include <cstdint>
+ #include <string>
+
+ // Conversion routines between UT8 and UTF16, used by string-16.{h,cc}. You may
diff --git a/patches/qt-everywhere-opensource-src-5.15.12/0103-Rename-x11-Present-Pixmap-to-x11-Present-PresentPixm.patch b/patches/qt-everywhere-opensource-src-5.15.12/0103-Rename-x11-Present-Pixmap-to-x11-Present-PresentPixm.patch
new file mode 100644
index 000000000..bb1020324
--- /dev/null
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0103-Rename-x11-Present-Pixmap-to-x11-Present-PresentPixm.patch
@@ -0,0 +1,31 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Sun, 3 Mar 2024 22:45:12 +0100
+Subject: [PATCH] Rename x11::Present::Pixmap to x11::Present::PresentPixmap to
+ work around a name conflict
+
+Taken from Chromium upstream commit
+d930397e823acc642ab532f490fe17a7a0099554 ("[XProto] Add simplified
+request syntax").
+
+Without this, building may fail with:
+
+gen/ui/gfx/x/present.h:223:16: error: declaration of 'x11::Future<void> x11::Present::Pixmap(const PixmapRequest&)' changes meaning of 'Pixmap' [-Wchanges-meaning] gen/ui/gfx/x/present.h:205:5: note: used here to mean 'enum class x11::Pixmap'
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ .../src/3rdparty/chromium/third_party/xcbproto/src/src/present.xml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/xcbproto/src/src/present.xml b/qtwebengine/src/3rdparty/chromium/third_party/xcbproto/src/src/present.xml
+index fb06e73f02fc..f20c11eb2c02 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/xcbproto/src/src/present.xml
++++ b/qtwebengine/src/3rdparty/chromium/third_party/xcbproto/src/src/present.xml
+@@ -89,7 +89,7 @@ OF THIS SOFTWARE.
+ </reply>
+ </request>
+
+- <request name="Pixmap" opcode="1">
++ <request name="PresentPixmap" opcode="1">
+ <required_start_align align="8" />
+ <field type="WINDOW" name="window" />
+ <field type="PIXMAP" name="pixmap" />
diff --git a/patches/qt-everywhere-opensource-src-5.15.12/0200-replace-Python-2-with-Python-3-in-the-build-system.patch b/patches/qt-everywhere-opensource-src-5.15.12/0200-replace-Python-2-with-Python-3-in-the-build-system.patch
new file mode 100644
index 000000000..fd4c799ea
--- /dev/null
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0200-replace-Python-2-with-Python-3-in-the-build-system.patch
@@ -0,0 +1,176 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Fri, 17 Nov 2023 15:11:30 +0100
+Subject: [PATCH] replace Python 2 with Python 3 in the build system
+
+Imported from Debian.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ qtwebengine/configure.pri | 29 ++++-----------------------
+ qtwebengine/mkspecs/features/functions.prf | 6 +++---
+ qtwebengine/src/buildtools/config/support.pri | 10 ++++-----
+ qtwebengine/src/buildtools/configure.json | 18 ++++++++---------
+ 4 files changed, 21 insertions(+), 42 deletions(-)
+
+diff --git a/qtwebengine/configure.pri b/qtwebengine/configure.pri
+index e072961f0574..b5d6902a91d5 100644
+--- a/qtwebengine/configure.pri
++++ b/qtwebengine/configure.pri
+@@ -6,23 +6,6 @@ QTWEBENGINE_SOURCE_TREE = $$PWD
+
+ equals(QMAKE_HOST.os, Windows): EXE_SUFFIX = .exe
+
+-defineTest(isPythonVersionSupported) {
+- python = $$system_quote($$system_path($$1))
+- python_version = $$system('$$python -c "import sys; print(sys.version_info[0:3])"')
+- python_version ~= s/[()]//g
+- python_version = $$split(python_version, ',')
+- python_major_version = $$first(python_version)
+- greaterThan(python_major_version, 2) {
+- qtLog("Python version 3 is not supported by Chromium.")
+- return(false)
+- }
+- python_minor_version = $$member(python_version, 1)
+- python_patch_version = $$member(python_version, 2)
+- greaterThan(python_major_version, 1): greaterThan(python_minor_version, 6): greaterThan(python_patch_version, 4): return(true)
+- qtLog("Unsupported python version: $${python_major_version}.$${python_minor_version}.$${python_patch_version}.")
+- return(false)
+-}
+-
+ defineTest(qtConfTest_detectJumboBuild) {
+ mergeLimit = $$eval(config.input.merge_limit)
+ mergeLimit = $$find(mergeLimit, "\\d")
+@@ -52,22 +35,18 @@ defineTest(qtConfReport_jumboBuild) {
+ qtConfReportPadded($${1}, $$mergeLimit)
+ }
+
+-defineTest(qtConfTest_detectPython2) {
+- python = $$qtConfFindInPath("python2$$EXE_SUFFIX")
++defineTest(qtConfTest_detectPython3) {
++ python = $$qtConfFindInPath("python3$$EXE_SUFFIX")
+ isEmpty(python) {
+- qtLog("'python2$$EXE_SUFFIX' not found in PATH. Checking for 'python$$EXE_SUFFIX'.")
++ qtLog("'python3$$EXE_SUFFIX' not found in PATH. Checking for 'python$$EXE_SUFFIX'.")
+ python = $$qtConfFindInPath("python$$EXE_SUFFIX")
+ }
+ isEmpty(python) {
+ qtLog("'python$$EXE_SUFFIX' not found in PATH. Giving up.")
+ return(false)
+ }
+- !isPythonVersionSupported($$python) {
+- qtLog("A suitable Python 2 executable could not be located.")
+- return(false)
+- }
+
+- # Make tests.python2.location available in configure.json.
++ # Make tests.python3.location available in configure.json.
+ $${1}.location = $$clean_path($$python)
+ export($${1}.location)
+ $${1}.cache += location
+diff --git a/qtwebengine/mkspecs/features/functions.prf b/qtwebengine/mkspecs/features/functions.prf
+index 7f630588a10c..951f4d277d16 100644
+--- a/qtwebengine/mkspecs/features/functions.prf
++++ b/qtwebengine/mkspecs/features/functions.prf
+@@ -44,11 +44,11 @@ defineReplace(which) {
+
+ # Returns the unquoted path to the python executable.
+ defineReplace(pythonPath) {
+- isEmpty(QMAKE_PYTHON2) {
++ isEmpty(QMAKE_PYTHON3) {
+ # Fallback for building QtWebEngine with Qt < 5.8
+- QMAKE_PYTHON2 = python
++ QMAKE_PYTHON3 = python
+ }
+- return($$QMAKE_PYTHON2)
++ return($$QMAKE_PYTHON3)
+ }
+
+ # Returns the python executable for use with shell / make targets.
+diff --git a/qtwebengine/src/buildtools/config/support.pri b/qtwebengine/src/buildtools/config/support.pri
+index e7f869a15f9f..3a5743c9d164 100644
+--- a/qtwebengine/src/buildtools/config/support.pri
++++ b/qtwebengine/src/buildtools/config/support.pri
+@@ -21,7 +21,7 @@ defineReplace(qtwebengine_checkWebEngineCoreError) {
+ !qtwebengine_checkForGperf(QtWebEngine):return(false)
+ !qtwebengine_checkForBison(QtWebEngine):return(false)
+ !qtwebengine_checkForFlex(QtWebEngine):return(false)
+- !qtwebengine_checkForPython2(QtWebEngine):return(false)
++ !qtwebengine_checkForPython3(QtWebEngine):return(false)
+ !qtwebengine_checkForNodejs(QtWebEngine):return(false)
+ !qtwebengine_checkForSanitizer(QtWebEngine):return(false)
+ linux:!qtwebengine_checkForPkgCfg(QtWebEngine):return(false)
+@@ -51,7 +51,7 @@ defineReplace(qtwebengine_checkPdfError) {
+ !qtwebengine_checkForGperf(QtPdf):return(false)
+ !qtwebengine_checkForBison(QtPdf):return(false)
+ !qtwebengine_checkForFlex(QtPdf):return(false)
+- !qtwebengine_checkForPython2(QtPdf):return(false)
++ !qtwebengine_checkForPython3(QtPdf):return(false)
+ !qtwebengine_checkForSanitizer(QtPdf):return(false)
+ linux:!qtwebengine_checkForPkgCfg(QtPdf):return(false)
+ linux:!qtwebengine_checkForHostPkgCfg(QtPdf):return(false)
+@@ -143,10 +143,10 @@ defineTest(qtwebengine_checkForFlex) {
+ return(true)
+ }
+
+-defineTest(qtwebengine_checkForPython2) {
++defineTest(qtwebengine_checkForPython3) {
+ module = $$1
+- !qtConfig(webengine-python2) {
+- qtwebengine_skipBuild("Python version 2 (2.7.5 or later) is required to build $${module}.")
++ !qtConfig(webengine-python3) {
++ qtwebengine_skipBuild("Python version 3 is required to build $${module}.")
+ return(false)
+ }
+ return(true)
+diff --git a/qtwebengine/src/buildtools/configure.json b/qtwebengine/src/buildtools/configure.json
+index 88d1790c17c4..c9cf1b4b0aaf 100644
+--- a/qtwebengine/src/buildtools/configure.json
++++ b/qtwebengine/src/buildtools/configure.json
+@@ -295,9 +295,9 @@
+ "label": "system ninja",
+ "type": "detectNinja"
+ },
+- "webengine-python2": {
+- "label": "python2",
+- "type": "detectPython2",
++ "webengine-python3": {
++ "label": "python3",
++ "type": "detectPython3",
+ "log": "location"
+ },
+ "webengine-winversion": {
+@@ -374,7 +374,7 @@
+ && features.webengine-gperf
+ && features.webengine-bison
+ && features.webengine-flex
+- && features.webengine-python2
++ && features.webengine-python3
+ && features.webengine-nodejs
+ && (!config.sanitizer || features.webengine-sanitizer)
+ && (!config.linux || features.pkg-config)
+@@ -400,7 +400,7 @@
+ && features.webengine-gperf
+ && features.webengine-bison
+ && features.webengine-flex
+- && features.webengine-python2
++ && features.webengine-python3
+ && (!config.sanitizer || features.webengine-sanitizer)
+ && (!config.linux || features.pkg-config)
+ && (!config.linux || features.webengine-host-pkg-config)
+@@ -423,12 +423,12 @@
+ "autoDetect": "features.private_tests",
+ "output": [ "privateFeature" ]
+ },
+- "webengine-python2": {
+- "label": "python2",
+- "condition": "tests.webengine-python2",
++ "webengine-python3": {
++ "label": "python3",
++ "condition": "tests.webengine-python3",
+ "output": [
+ "privateFeature",
+- { "type": "varAssign", "name": "QMAKE_PYTHON2", "value": "tests.webengine-python2.location" }
++ { "type": "varAssign", "name": "QMAKE_PYTHON3", "value": "tests.webengine-python3.location" }
+ ]
+ },
+ "webengine-gperf": {
diff --git a/patches/qt-everywhere-opensource-src-5.15.12/0201-update-Chromium-code-for-compatibility-with-Python-3.patch b/patches/qt-everywhere-opensource-src-5.15.12/0201-update-Chromium-code-for-compatibility-with-Python-3.patch
new file mode 100644
index 000000000..977d336d9
--- /dev/null
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0201-update-Chromium-code-for-compatibility-with-Python-3.patch
@@ -0,0 +1,1874 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Fri, 17 Nov 2023 15:12:45 +0100
+Subject: [PATCH] update Chromium code for compatibility with Python 3
+
+Imported from Debian. Originally from:
+https://github.com/archlinux/svntogit-packages/blob/packages/qt5-webengine/trunk/qt5-webengine-chromium-python3.patch
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ .../3rdparty/chromium/build/print_python_deps.py | 4 +-
+ .../resources/protobufs/binary_proto_generator.py | 8 +--
+ .../browser/tracing/generate_trace_viewer_grd.py | 2 +-
+ .../chromium/mojo/public/tools/bindings/BUILD.gn | 2 +
+ .../public/tools/bindings/gen_data_files_list.py | 8 +--
+ .../bindings/generators/mojom_java_generator.py | 4 ++
+ .../public/tools/mojom/mojom/generate/generator.py | 14 ++--
+ .../public/tools/mojom/mojom/generate/module.py | 3 +-
+ .../mojom/mojom/generate/template_expander.py | 12 ++--
+ .../bindings/scripts/bind_gen/blink_v8_bridge.py | 6 +-
+ .../scripts/bind_gen/callback_interface.py | 2 +-
+ .../bindings/scripts/bind_gen/code_node.py | 10 +--
+ .../bindings/scripts/bind_gen/codegen_expr.py | 15 ++--
+ .../bindings/scripts/bind_gen/codegen_format.py | 2 +-
+ .../bindings/scripts/bind_gen/codegen_utils.py | 2 +-
+ .../bindings/scripts/bind_gen/dictionary.py | 2 +-
+ .../bindings/scripts/bind_gen/interface.py | 82 ++++++++++++----------
+ .../bindings/scripts/bind_gen/mako_renderer.py | 2 +-
+ .../bindings/scripts/bind_gen/style_format.py | 9 ++-
+ .../bindings/scripts/bind_gen/task_queue.py | 5 +-
+ .../renderer/bindings/scripts/code_generator.py | 10 +++
+ .../scripts/generate_origin_trial_features.py | 4 +-
+ .../renderer/bindings/scripts/idl_definitions.py | 8 ++-
+ .../blink/renderer/bindings/scripts/idl_reader.py | 4 +-
+ .../blink/renderer/bindings/scripts/idl_types.py | 2 +-
+ .../blink/renderer/bindings/scripts/utilities.py | 28 ++++----
+ .../renderer/bindings/scripts/v8_interface.py | 9 +--
+ .../blink/renderer/bindings/scripts/v8_methods.py | 4 ++
+ .../renderer/bindings/scripts/v8_utilities.py | 2 +-
+ .../bindings/scripts/web_idl/callback_interface.py | 12 ++--
+ .../renderer/bindings/scripts/web_idl/database.py | 2 +-
+ .../renderer/bindings/scripts/web_idl/exposure.py | 5 +-
+ .../bindings/scripts/web_idl/function_like.py | 28 ++++----
+ .../bindings/scripts/web_idl/idl_compiler.py | 21 +++---
+ .../renderer/bindings/scripts/web_idl/interface.py | 45 +++++++-----
+ .../bindings/scripts/web_idl/ir_builder.py | 29 +++++---
+ .../renderer/bindings/scripts/web_idl/make_copy.py | 7 ++
+ .../renderer/bindings/scripts/web_idl/namespace.py | 12 ++--
+ .../bindings/templates/dictionary_v8.cc.tmpl | 8 +--
+ .../scripts/core/css/make_style_shorthands.py | 23 +++---
+ .../css/properties/make_css_property_instances.py | 4 +-
+ .../blink/renderer/build/scripts/gperf.py | 2 +-
+ .../blink/renderer/build/scripts/in_file.py | 2 +-
+ .../blink/renderer/build/scripts/in_generator.py | 5 ++
+ .../build/scripts/make_runtime_features.py | 2 +-
+ .../scripts/templates/element_factory.cc.tmpl | 4 +-
+ .../scripts/templates/element_type_helpers.cc.tmpl | 4 +-
+ .../scripts/templates/element_type_helpers.h.tmpl | 2 +-
+ .../renderer/build/scripts/templates/macros.tmpl | 4 +-
+ .../scripts/templates/make_qualified_names.h.tmpl | 4 +-
+ .../third_party/dawn/generator/generator_lib.py | 4 ++
+ .../third_party/devtools-frontend/src/BUILD.gn | 2 +
+ .../src/scripts/build/build_inspector_overlay.py | 3 +-
+ .../scripts/build/build_release_applications.py | 9 +--
+ .../src/scripts/build/generate_devtools_grd.py | 4 +-
+ .../src/scripts/build/modular_build.py | 6 +-
+ .../3rdparty/chromium/third_party/jinja2/tests.py | 2 +-
+ .../chromium/tools/metrics/ukm/gen_builders.py | 5 +-
+ .../chromium/ui/ozone/generate_constructor_list.py | 13 ++--
+ .../ui/ozone/generate_ozone_platform_list.py | 26 ++++---
+ 60 files changed, 333 insertions(+), 231 deletions(-)
+
+diff --git a/qtwebengine/src/3rdparty/chromium/build/print_python_deps.py b/qtwebengine/src/3rdparty/chromium/build/print_python_deps.py
+index fd29c0972c9a..2a0118563e50 100755
+--- a/qtwebengine/src/3rdparty/chromium/build/print_python_deps.py
++++ b/qtwebengine/src/3rdparty/chromium/build/print_python_deps.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python2.7
++#!/usr/bin/python3
+ # Copyright 2016 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.
+@@ -152,7 +152,7 @@ def main():
+
+ # Trybots run with vpython as default Python, but with a different config
+ # from //.vpython. To make the is_vpython test work, and to match the behavior
+- # of dev machines, the shebang line must be run with python2.7.
++ # of dev machines, the shebang line must be run with python3.
+ #
+ # E.g. $HOME/.vpython-root/dd50d3/bin/python
+ # E.g. /b/s/w/ir/cache/vpython/ab5c79/bin/python
+diff --git a/qtwebengine/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py b/qtwebengine/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
+index 7422ead96971..16365515f26b 100755
+--- a/qtwebengine/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
++++ b/qtwebengine/src/3rdparty/chromium/components/resources/protobufs/binary_proto_generator.py
+@@ -7,7 +7,7 @@
+ Converts a given ASCII proto into a binary resource.
+
+ """
+-
++from __future__ import print_function
+ import abc
+ import imp
+ import optparse
+@@ -196,12 +196,12 @@ class BinaryProtoGenerator:
+ self._ImportProtoModules(opts.path)
+
+ if not self.VerifyArgs(opts):
+- print "Wrong arguments"
++ print("Wrong arguments")
+ return 1
+
+ try:
+ self._GenerateBinaryProtos(opts)
+ except Exception as e:
+- print "ERROR: Failed to render binary version of %s:\n %s\n%s" % (
+- opts.infile, str(e), traceback.format_exc())
++ print("ERROR: Failed to render binary version of %s:\n %s\n%s" %
++ (opts.infile, str(e), traceback.format_exc()))
+ return 1
+diff --git a/qtwebengine/src/3rdparty/chromium/content/browser/tracing/generate_trace_viewer_grd.py b/qtwebengine/src/3rdparty/chromium/content/browser/tracing/generate_trace_viewer_grd.py
+index 037f9497dc26..be393d21f901 100755
+--- a/qtwebengine/src/3rdparty/chromium/content/browser/tracing/generate_trace_viewer_grd.py
++++ b/qtwebengine/src/3rdparty/chromium/content/browser/tracing/generate_trace_viewer_grd.py
+@@ -74,7 +74,7 @@ def main(argv):
+ for filename in parsed_args.source_files:
+ add_file_to_grd(doc, os.path.basename(filename))
+
+- with open(parsed_args.output_filename, 'w') as output_file:
++ with open(parsed_args.output_filename, 'wb') as output_file:
+ output_file.write(doc.toxml(encoding='UTF-8'))
+
+
+diff --git a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/bindings/BUILD.gn b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/bindings/BUILD.gn
+index fc04b5dd0b1f..708958e438ba 100644
+--- a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/bindings/BUILD.gn
++++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/bindings/BUILD.gn
+@@ -2,9 +2,11 @@
+ # Use of this source code is governed by a BSD-style license that can be
+ # found in the LICENSE file.
+
++import("//build/config/python.gni")
+ import("//mojo/public/tools/bindings/mojom.gni")
+ import("//third_party/jinja2/jinja2.gni")
+
++# TODO(crbug.com/1194274): Investigate nondeterminism in Py3 builds.
+ action("precompile_templates") {
+ sources = mojom_generator_sources
+ sources += [
+diff --git a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/bindings/gen_data_files_list.py b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/bindings/gen_data_files_list.py
+index 79c9e50efcee..8b78d0924185 100644
+--- a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/bindings/gen_data_files_list.py
++++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/bindings/gen_data_files_list.py
+@@ -18,7 +18,6 @@ import os
+ import re
+ import sys
+
+-from cStringIO import StringIO
+ from optparse import OptionParser
+
+ sys.path.insert(
+@@ -41,12 +40,9 @@ def main():
+ pattern = re.compile(options.pattern)
+ files = [f for f in os.listdir(options.directory) if pattern.match(f)]
+
+- stream = StringIO()
+- for f in files:
+- print(f, file=stream)
++ contents = '\n'.join(f for f in files) + '\n'
++ WriteFile(contents, options.output)
+
+- WriteFile(stream.getvalue(), options.output)
+- stream.close()
+
+ if __name__ == '__main__':
+ sys.exit(main())
+diff --git a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/bindings/generators/mojom_java_generator.py b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/bindings/generators/mojom_java_generator.py
+index 96b2fdfae0c5..00b9dccd00c3 100644
+--- a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/bindings/generators/mojom_java_generator.py
++++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/bindings/generators/mojom_java_generator.py
+@@ -25,6 +25,10 @@ sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir,
+ 'build', 'android', 'gyp'))
+ from util import build_utils
+
++# TODO(crbug.com/1174969): Remove this once Python2 is obsoleted.
++if sys.version_info.major != 2:
++ basestring = str
++ long = int
+
+ GENERATOR_PREFIX = 'java'
+
+diff --git a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/generator.py b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/generator.py
+index de62260a5c9d..4a1c73fcf82f 100644
+--- a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/generator.py
++++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/generator.py
+@@ -136,9 +136,14 @@ class Stylizer(object):
+
+ def WriteFile(contents, full_path):
+ # If |contents| is same with the file content, we skip updating.
++ if not isinstance(contents, bytes):
++ data = contents.encode('utf8')
++ else:
++ data = contents
++
+ if os.path.isfile(full_path):
+ with open(full_path, 'rb') as destination_file:
+- if destination_file.read() == contents:
++ if destination_file.read() == data:
+ return
+
+ # Make sure the containing directory exists.
+@@ -146,11 +151,8 @@ def WriteFile(contents, full_path):
+ fileutil.EnsureDirectoryExists(full_dir)
+
+ # Dump the data to disk.
+- with open(full_path, "wb") as f:
+- if not isinstance(contents, bytes):
+- f.write(contents.encode('utf-8'))
+- else:
+- f.write(contents)
++ with open(full_path, 'wb') as f:
++ f.write(data)
+
+
+ def AddComputedData(module):
+diff --git a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/module.py b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/module.py
+index ebbc9b322eae..3d026429bbc1 100644
+--- a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/module.py
++++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/module.py
+@@ -398,7 +398,8 @@ class Field(object):
+
+
+ class StructField(Field):
+- pass
++ def __hash__(self):
++ return super(Field, self).__hash__()
+
+
+ class UnionField(Field):
+diff --git a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/template_expander.py b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/template_expander.py
+index 7a3005602465..8d9e26fb7f61 100644
+--- a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/template_expander.py
++++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/mojom/mojom/generate/template_expander.py
+@@ -75,9 +75,9 @@ def PrecompileTemplates(generator_modules, output_dir):
+ os.path.dirname(module.__file__), generator.GetTemplatePrefix())
+ ]))
+ jinja_env.filters.update(generator.GetFilters())
+- jinja_env.compile_templates(
+- os.path.join(output_dir, "%s.zip" % generator.GetTemplatePrefix()),
+- extensions=["tmpl"],
+- zip="stored",
+- py_compile=True,
+- ignore_errors=False)
++ jinja_env.compile_templates(os.path.join(
++ output_dir, "%s.zip" % generator.GetTemplatePrefix()),
++ extensions=["tmpl"],
++ zip="stored",
++ py_compile=sys.version_info.major < 3,
++ ignore_errors=False)
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py
+index 3225ecca6e40..fc078d31b552 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py
+@@ -344,7 +344,7 @@ def make_default_value_expr(idl_type, default_value):
+ """
+ assert default_value.is_type_compatible_with(idl_type)
+
+- class DefaultValueExpr:
++ class DefaultValueExpr(object):
+ _ALLOWED_SYMBOLS_IN_DEPS = ("isolate")
+
+ def __init__(self, initializer_expr, initializer_deps,
+@@ -502,7 +502,7 @@ def make_v8_to_blink_value(blink_var_name,
+ assert isinstance(blink_var_name, str)
+ assert isinstance(v8_value_expr, str)
+ assert isinstance(idl_type, web_idl.IdlType)
+- assert (argument_index is None or isinstance(argument_index, (int, long)))
++ assert (argument_index is None or isinstance(argument_index, int))
+ assert (default_value is None
+ or isinstance(default_value, web_idl.LiteralConstant))
+
+@@ -622,7 +622,7 @@ def make_v8_to_blink_value_variadic(blink_var_name, v8_array,
+ """
+ assert isinstance(blink_var_name, str)
+ assert isinstance(v8_array, str)
+- assert isinstance(v8_array_start_index, (int, long))
++ assert isinstance(v8_array_start_index, int)
+ assert isinstance(idl_type, web_idl.IdlType)
+
+ pattern = ("auto&& ${{{_1}}} = "
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/callback_interface.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/callback_interface.py
+index 4a6df5130687..8b51f23a4093 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/callback_interface.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/callback_interface.py
+@@ -177,7 +177,7 @@ def generate_callback_interface(callback_interface_identifier):
+ prop_install_mode=PropInstallMode.UNCONDITIONAL,
+ trampoline_var_name=None,
+ attribute_entries=[],
+- constant_entries=filter(is_unconditional, constant_entries),
++ constant_entries=list(filter(is_unconditional, constant_entries)),
+ exposed_construct_entries=[],
+ operation_entries=[])
+ (install_interface_template_decl, install_interface_template_def,
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node.py
+index 52972fefe206..e5ae9d9629e2 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node.py
+@@ -503,13 +503,13 @@ class CompositeNode(CodeNode):
+ gensym_kwargs = {}
+ template_vars = {}
+ for arg in args:
+- assert isinstance(arg, (CodeNode, int, long, str))
++ assert isinstance(arg, (CodeNode, int, str))
+ gensym = CodeNode.gensym()
+ gensym_args.append("${{{}}}".format(gensym))
+ template_vars[gensym] = arg
+ for key, value in kwargs.items():
+- assert isinstance(key, (int, long, str))
+- assert isinstance(value, (CodeNode, int, long, str))
++ assert isinstance(key, (int, str))
++ assert isinstance(value, (CodeNode, int, str))
+ gensym = CodeNode.gensym()
+ gensym_kwargs[key] = "${{{}}}".format(gensym)
+ template_vars[gensym] = value
+@@ -602,7 +602,7 @@ class ListNode(CodeNode):
+ def insert(self, index, node):
+ if node is None:
+ return
+- assert isinstance(index, (int, long))
++ assert isinstance(index, int)
+ assert isinstance(node, CodeNode)
+ assert node.outer is None and node.prev is None
+
+@@ -721,7 +721,7 @@ class SymbolScopeNode(SequenceNode):
+ if not scope_chains:
+ return counts
+
+- self_index = iter(scope_chains).next().index(self)
++ self_index = next(iter(scope_chains)).index(self)
+ scope_chains = map(
+ lambda scope_chain: scope_chain[self_index + 1:], scope_chains)
+ scope_to_likeliness = {}
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_expr.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_expr.py
+index a229a6c71c91..5fa288dabf2a 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_expr.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_expr.py
+@@ -109,7 +109,7 @@ def expr_and(terms):
+
+ if any(term.is_always_false for term in terms):
+ return _Expr(False)
+- terms = filter(lambda x: not x.is_always_true, terms)
++ terms = list(filter(lambda x: not x.is_always_true, terms))
+ if not terms:
+ return _Expr(True)
+ if len(terms) == 1:
+@@ -124,7 +124,7 @@ def expr_or(terms):
+
+ if any(term.is_always_true for term in terms):
+ return _Expr(True)
+- terms = filter(lambda x: not x.is_always_false, terms)
++ terms = list(filter(lambda x: not x.is_always_false, terms))
+ if not terms:
+ return _Expr(False)
+ if len(terms) == 1:
+@@ -222,7 +222,7 @@ def expr_from_exposure(exposure,
+ elif exposure.only_in_secure_contexts is False:
+ secure_context_term = _Expr(True)
+ else:
+- terms = map(ref_enabled, exposure.only_in_secure_contexts)
++ terms = list(map(ref_enabled, exposure.only_in_secure_contexts))
+ secure_context_term = expr_or(
+ [_Expr("${is_in_secure_context}"),
+ expr_not(expr_and(terms))])
+@@ -275,10 +275,11 @@ def expr_from_exposure(exposure,
+
+ # [ContextEnabled]
+ if exposure.context_enabled_features:
+- terms = map(
+- lambda feature: _Expr(
+- "${{context_feature_settings}}->is{}Enabled()".format(
+- feature)), exposure.context_enabled_features)
++ terms = list(
++ map(
++ lambda feature: _Expr(
++ "${{context_feature_settings}}->is{}Enabled()".format(
++ feature)), exposure.context_enabled_features))
+ context_enabled_terms.append(
+ expr_and([_Expr("${context_feature_settings}"),
+ expr_or(terms)]))
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_format.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_format.py
+index 87d26eec3ca9..f3e9d38247e0 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_format.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_format.py
+@@ -23,7 +23,7 @@ class _TemplateFormatter(string.Formatter):
+ self._template_formatter_indexing_count_ = 0
+
+ def get_value(self, key, args, kwargs):
+- if isinstance(key, (int, long)):
++ if isinstance(key, int):
+ return args[key]
+ assert isinstance(key, str)
+ if not key:
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
+index 2bcc4fed49a7..e72282aa6963 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_utils.py
+@@ -116,4 +116,4 @@ def write_code_node_to_file(code_node, filepath):
+ # stderr=format_result.error_message))
+ #
+ # web_idl.file_io.write_to_file_if_changed(filepath, format_result.contents)
+- web_idl.file_io.write_to_file_if_changed(filepath, rendered_text)
++ web_idl.file_io.write_to_file_if_changed(filepath, rendered_text.encode('utf-8'))
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py
+index b39f01004100..4d68202296b5 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/dictionary.py
+@@ -993,7 +993,7 @@ def make_dict_trace_func(cg_context):
+ _2 = _blink_member_name(member).value_var
+ return TextNode(_format(pattern, _1=_1, _2=_2))
+
+- body.extend(map(make_trace_member_node, own_members))
++ body.extend(list(map(make_trace_member_node, own_members)))
+ body.append(TextNode("BaseClass::Trace(visitor);"))
+
+ return func_decl, func_def
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py
+index 10ff30656ad6..bfdf7128aace 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py
+@@ -582,7 +582,7 @@ def _make_blink_api_call(code_node,
+ overriding_args=None):
+ assert isinstance(code_node, SymbolScopeNode)
+ assert isinstance(cg_context, CodeGenContext)
+- assert num_of_args is None or isinstance(num_of_args, (int, long))
++ assert num_of_args is None or isinstance(num_of_args, int)
+ assert (overriding_args is None
+ or (isinstance(overriding_args, (list, tuple))
+ and all(isinstance(arg, str) for arg in overriding_args)))
+@@ -1196,8 +1196,10 @@ def make_overload_dispatcher(cg_context):
+ did_use_break = did_use_break or can_fail
+
+ conditional = expr_or(
+- map(lambda item: expr_from_exposure(item.function_like.exposure),
+- items))
++ list(
++ map(
++ lambda item: expr_from_exposure(item.function_like.exposure
++ ), items)))
+ if not conditional.is_always_true:
+ node = CxxUnlikelyIfNode(cond=conditional, body=node)
+
+@@ -4642,7 +4644,7 @@ class _PropEntryConstructorGroup(_PropEntryBase):
+ def __init__(self, is_context_dependent, exposure_conditional, world,
+ constructor_group, ctor_callback_name, ctor_func_length):
+ assert isinstance(ctor_callback_name, str)
+- assert isinstance(ctor_func_length, (int, long))
++ assert isinstance(ctor_func_length, int)
+
+ _PropEntryBase.__init__(self, is_context_dependent,
+ exposure_conditional, world, constructor_group)
+@@ -4670,7 +4672,7 @@ class _PropEntryOperationGroup(_PropEntryBase):
+ op_func_length,
+ no_alloc_direct_callback_name=None):
+ assert isinstance(op_callback_name, str)
+- assert isinstance(op_func_length, (int, long))
++ assert isinstance(op_func_length, int)
+
+ _PropEntryBase.__init__(self, is_context_dependent,
+ exposure_conditional, world, operation_group)
+@@ -5175,9 +5177,9 @@ def make_install_interface_template(cg_context, function_name, class_name, api_c
+ ])
+
+ if class_like.identifier == "CSSStyleDeclaration":
+- css_properties = filter(
+- lambda attr: "CSSProperty" in attr.extended_attributes,
+- class_like.attributes)
++ css_properties = list(
++ filter(lambda attr: "CSSProperty" in attr.extended_attributes,
++ class_like.attributes))
+ if css_properties:
+ prop_name_list = "".join(
+ map(lambda attr: "\"{}\", ".format(attr.identifier),
+@@ -5567,8 +5569,8 @@ ${instance_object} = ${v8_context}->Global()->GetPrototype().As<v8::Object>();\
+ "V8DOMConfiguration::InstallConstants(${isolate}, "
+ "${interface_template}, ${prototype_template}, "
+ "kConstantCallbackTable, base::size(kConstantCallbackTable));")
+- constant_callback_entries = filter(lambda entry: entry.const_callback_name,
+- constant_entries)
++ constant_callback_entries = list(filter(lambda entry: entry.const_callback_name,
++ constant_entries))
+ install_properties(table_name, constant_callback_entries,
+ _make_constant_callback_registration_table,
+ installer_call_text)
+@@ -5584,8 +5586,8 @@ ${instance_object} = ${v8_context}->Global()->GetPrototype().As<v8::Object>();\
+ "V8DOMConfiguration::InstallConstants(${isolate}, "
+ "${interface_template}, ${prototype_template}, "
+ "kConstantValueTable, base::size(kConstantValueTable));")
+- constant_value_entries = filter(
+- lambda entry: not entry.const_callback_name, constant_entries)
++ constant_value_entries = list(filter(
++ lambda entry: not entry.const_callback_name, constant_entries))
+ install_properties(table_name, constant_value_entries,
+ _make_constant_value_registration_table,
+ installer_call_text)
+@@ -6336,8 +6338,8 @@ def make_v8_context_snapshot_api(cg_context, component, attribute_entries,
+ assert isinstance(component, web_idl.Component)
+
+ derived_interfaces = cg_context.interface.deriveds
+- derived_names = map(lambda interface: interface.identifier,
+- derived_interfaces)
++ derived_names = list(
++ map(lambda interface: interface.identifier, derived_interfaces))
+ derived_names.append(cg_context.interface.identifier)
+ if not ("Window" in derived_names or "HTMLDocument" in derived_names):
+ return None, None
+@@ -6411,9 +6413,11 @@ def _make_v8_context_snapshot_get_reference_table_function(
+ collect_callbacks(named_properties_object_callback_defs)
+ collect_callbacks(cross_origin_property_callback_defs)
+
+- entry_nodes = map(
+- lambda name: TextNode("reinterpret_cast<intptr_t>({}),".format(name)),
+- filter(None, callback_names))
++ entry_nodes = list(
++ map(
++ lambda name: TextNode("reinterpret_cast<intptr_t>({}),".format(name
++ )),
++ filter(None, callback_names)))
+ table_node = ListNode([
+ TextNode("using namespace ${class_name}Callbacks;"),
+ TextNode("static const intptr_t kReferenceTable[] = {"),
+@@ -6451,10 +6455,11 @@ def _make_v8_context_snapshot_install_props_per_context_function(
+ class_name=None,
+ prop_install_mode=PropInstallMode.V8_CONTEXT_SNAPSHOT,
+ trampoline_var_name=None,
+- attribute_entries=filter(selector, attribute_entries),
+- constant_entries=filter(selector, constant_entries),
+- exposed_construct_entries=filter(selector, exposed_construct_entries),
+- operation_entries=filter(selector, operation_entries))
++ attribute_entries=list(filter(selector, attribute_entries)),
++ constant_entries=list(filter(selector, constant_entries)),
++ exposed_construct_entries=list(
++ filter(selector, exposed_construct_entries)),
++ operation_entries=list(filter(selector, operation_entries)))
+
+ return func_decl, func_def
+
+@@ -6810,11 +6815,11 @@ def generate_interface(interface_identifier):
+ class_name=impl_class_name,
+ prop_install_mode=PropInstallMode.UNCONDITIONAL,
+ trampoline_var_name=tp_install_unconditional_props,
+- attribute_entries=filter(is_unconditional, attribute_entries),
+- constant_entries=filter(is_unconditional, constant_entries),
+- exposed_construct_entries=filter(is_unconditional,
+- exposed_construct_entries),
+- operation_entries=filter(is_unconditional, operation_entries))
++ attribute_entries=list(filter(is_unconditional, attribute_entries)),
++ constant_entries=list(filter(is_unconditional, constant_entries)),
++ exposed_construct_entries=list(
++ filter(is_unconditional, exposed_construct_entries)),
++ operation_entries=list(filter(is_unconditional, operation_entries)))
+ (install_context_independent_props_decl,
+ install_context_independent_props_def,
+ install_context_independent_props_trampoline) = make_install_properties(
+@@ -6823,11 +6828,14 @@ def generate_interface(interface_identifier):
+ class_name=impl_class_name,
+ prop_install_mode=PropInstallMode.CONTEXT_INDEPENDENT,
+ trampoline_var_name=tp_install_context_independent_props,
+- attribute_entries=filter(is_context_independent, attribute_entries),
+- constant_entries=filter(is_context_independent, constant_entries),
+- exposed_construct_entries=filter(is_context_independent,
+- exposed_construct_entries),
+- operation_entries=filter(is_context_independent, operation_entries))
++ attribute_entries=list(
++ filter(is_context_independent, attribute_entries)),
++ constant_entries=list(filter(is_context_independent,
++ constant_entries)),
++ exposed_construct_entries=list(
++ filter(is_context_independent, exposed_construct_entries)),
++ operation_entries=list(
++ filter(is_context_independent, operation_entries)))
+ (install_context_dependent_props_decl, install_context_dependent_props_def,
+ install_context_dependent_props_trampoline) = make_install_properties(
+ cg_context,
+@@ -6835,11 +6843,13 @@ def generate_interface(interface_identifier):
+ class_name=impl_class_name,
+ prop_install_mode=PropInstallMode.CONTEXT_DEPENDENT,
+ trampoline_var_name=tp_install_context_dependent_props,
+- attribute_entries=filter(is_context_dependent, attribute_entries),
+- constant_entries=filter(is_context_dependent, constant_entries),
+- exposed_construct_entries=filter(is_context_dependent,
+- exposed_construct_entries),
+- operation_entries=filter(is_context_dependent, operation_entries))
++ attribute_entries=list(filter(is_context_dependent,
++ attribute_entries)),
++ constant_entries=list(filter(is_context_dependent, constant_entries)),
++ exposed_construct_entries=list(
++ filter(is_context_dependent, exposed_construct_entries)),
++ operation_entries=list(filter(is_context_dependent,
++ operation_entries)))
+ (install_interface_template_decl, install_interface_template_def,
+ install_interface_template_trampoline) = make_install_interface_template(
+ cg_context,
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/mako_renderer.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/mako_renderer.py
+index b4c705538632..f3a2fcd772d0 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/mako_renderer.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/mako_renderer.py
+@@ -105,7 +105,7 @@ class MakoRenderer(object):
+ on_error = self._caller_stack_on_error
+ if (len(current) <= len(on_error)
+ and all(current[i] == on_error[i]
+- for i in xrange(len(current)))):
++ for i in range(len(current)))):
+ pass # Error happened in a deeper caller.
+ else:
+ self._caller_stack_on_error = list(self._caller_stack)
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py
+index dc3493cc394b..017d3d47bb37 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/style_format.py
+@@ -70,8 +70,13 @@ def gn_format(contents, filename=None):
+
+
+ def _invoke_format_command(command_line, filename, contents):
+- proc = subprocess.Popen(
+- command_line, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
++ kwargs = {}
++ if sys.version_info.major != 2:
++ kwargs['encoding'] = 'utf-8'
++ proc = subprocess.Popen(command_line,
++ stdin=subprocess.PIPE,
++ stdout=subprocess.PIPE,
++ **kwargs)
+ stdout_output, stderr_output = proc.communicate(input=contents)
+ exit_code = proc.wait()
+
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py
+index 0d8f4c0f3037..e666a9b668ec 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py
+@@ -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 functools
+ import multiprocessing
+
+ from .package_initializer import package_initializer
+@@ -76,7 +77,7 @@ class TaskQueue(object):
+ if not report_progress:
+ return
+
+- done_count = reduce(
++ done_count = functools.reduce(
+ lambda count, worker_task: count + bool(worker_task.ready()),
+ self._worker_tasks, 0)
+ report_progress(len(self._worker_tasks), done_count)
+@@ -85,4 +86,4 @@ class TaskQueue(object):
+ def _task_queue_run_tasks(tasks):
+ for task in tasks:
+ func, args, kwargs = task
+- apply(func, args, kwargs)
++ func(*args, **kwargs)
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/code_generator.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/code_generator.py
+index e8280be72130..e49e6eb965e5 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/code_generator.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/code_generator.py
+@@ -13,6 +13,7 @@ import re
+ import sys
+
+ from idl_types import set_ancestors, IdlType
++from itertools import groupby
+ from v8_globals import includes
+ from v8_interface import constant_filters
+ from v8_types import set_component_dirs
+@@ -43,6 +44,7 @@ TEMPLATES_DIR = os.path.normpath(
+ # after path[0] == invoking script dir
+ sys.path.insert(1, THIRD_PARTY_DIR)
+ import jinja2
++from jinja2.filters import make_attrgetter, environmentfilter
+
+
+ def generate_indented_conditional(code, conditional):
+@@ -88,6 +90,13 @@ def runtime_enabled_if(code, name):
+ return generate_indented_conditional(code, function)
+
+
++@environmentfilter
++def do_stringify_key_group_by(environment, value, attribute):
++ expr = make_attrgetter(environment, attribute)
++ key = lambda item: '' if expr(item) is None else str(expr(item))
++ return groupby(sorted(value, key=key), expr)
++
++
+ def initialize_jinja_env(cache_dir):
+ jinja_env = jinja2.Environment(
+ loader=jinja2.FileSystemLoader(TEMPLATES_DIR),
+@@ -117,6 +126,7 @@ def initialize_jinja_env(cache_dir):
+ })
+ jinja_env.filters.update(constant_filters())
+ jinja_env.filters.update(method_filters())
++ jinja_env.filters["stringifykeygroupby"] = do_stringify_key_group_by
+ return jinja_env
+
+
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/generate_origin_trial_features.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/generate_origin_trial_features.py
+index 130004eae837..04c0fabcef2c 100755
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/generate_origin_trial_features.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/generate_origin_trial_features.py
+@@ -80,7 +80,7 @@ def read_idl_file(reader, idl_filename):
+ assert len(interfaces) == 1, (
+ "Expected one interface in file %r, found %d" %
+ (idl_filename, len(interfaces)))
+- return (interfaces.values()[0], includes)
++ return (list(interfaces.values())[0], includes)
+
+
+ def interface_is_global(interface):
+@@ -281,7 +281,7 @@ def main():
+
+ info_provider = create_component_info_provider(
+ os.path.normpath(options.info_dir), options.target_component)
+- idl_filenames = map(str.strip, open(options.idl_files_list))
++ idl_filenames = list(map(str.strip, open(options.idl_files_list)))
+
+ generate_origin_trial_features(info_provider, options, idl_filenames)
+ return 0
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/idl_definitions.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/idl_definitions.py
+index 14e6e9d3f87b..b027818aef2d 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/idl_definitions.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/idl_definitions.py
+@@ -394,7 +394,8 @@ class IdlInterface(object):
+ else:
+ raise ValueError('Unrecognized node class: %s' % child_class)
+
+- if len(filter(None, [self.iterable, self.maplike, self.setlike])) > 1:
++ if len(list(filter(None,
++ [self.iterable, self.maplike, self.setlike]))) > 1:
+ raise ValueError(
+ 'Interface can only have one of iterable<>, maplike<> and setlike<>.'
+ )
+@@ -512,6 +513,9 @@ class IdlAttribute(TypedObject):
+ def accept(self, visitor):
+ visitor.visit_attribute(self)
+
++ def __lt__(self, other):
++ return self.name < other.name
++
+
+ ################################################################################
+ # Constants
+@@ -852,7 +856,7 @@ class IdlIncludes(object):
+ ################################################################################
+
+
+-class Exposure:
++class Exposure(object):
+ """An Exposure holds one Exposed or RuntimeEnabled condition.
+ Each exposure has two properties: exposed and runtime_enabled.
+ Exposure(e, r) corresponds to [Exposed(e r)]. Exposure(e) corresponds to
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/idl_reader.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/idl_reader.py
+index 8d72865a6cab..b80eebdcd61e 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/idl_reader.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/idl_reader.py
+@@ -55,8 +55,8 @@ def validate_blink_idl_definitions(idl_filename, idl_file_basename,
+ definitions. There is no filename convention in this case.
+ - Otherwise, an IDL file is invalid.
+ """
+- targets = (
+- definitions.interfaces.values() + definitions.dictionaries.values())
++ targets = (list(definitions.interfaces.values()) +
++ list(definitions.dictionaries.values()))
+ number_of_targets = len(targets)
+ if number_of_targets > 1:
+ raise Exception(
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/idl_types.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/idl_types.py
+index cd4f0c3513b2..ab95e9c0b082 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/idl_types.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/idl_types.py
+@@ -349,7 +349,7 @@ class IdlUnionType(IdlTypeBase):
+ return True
+
+ def single_matching_member_type(self, predicate):
+- matching_types = filter(predicate, self.flattened_member_types)
++ matching_types = list(filter(predicate, self.flattened_member_types))
+ if len(matching_types) > 1:
+ raise ValueError('%s is ambiguous.' % self.name)
+ return matching_types[0] if matching_types else None
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/utilities.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/utilities.py
+index e1677ee7bd6e..3c5006f064f3 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/utilities.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/utilities.py
+@@ -196,8 +196,9 @@ class ComponentInfoProviderModules(ComponentInfoProvider):
+
+ @property
+ def callback_functions(self):
+- return dict(self._component_info_core['callback_functions'].items() +
+- self._component_info_modules['callback_functions'].items())
++ return dict(
++ list(self._component_info_core['callback_functions'].items()) +
++ list(self._component_info_modules['callback_functions'].items()))
+
+ @property
+ def specifier_for_export(self):
+@@ -209,8 +210,8 @@ class ComponentInfoProviderModules(ComponentInfoProvider):
+
+
+ def load_interfaces_info_overall_pickle(info_dir):
+- with open(os.path.join(info_dir,
+- 'interfaces_info.pickle')) as interface_info_file:
++ with open(os.path.join(info_dir, 'interfaces_info.pickle'),
++ mode='rb') as interface_info_file:
+ return pickle.load(interface_info_file)
+
+
+@@ -236,23 +237,20 @@ def merge_dict_recursively(target, diff):
+
+ def create_component_info_provider_core(info_dir):
+ interfaces_info = load_interfaces_info_overall_pickle(info_dir)
+- with open(
+- os.path.join(info_dir, 'core',
+- 'component_info_core.pickle')) as component_info_file:
++ with open(os.path.join(info_dir, 'core', 'component_info_core.pickle'),
++ mode='rb') as component_info_file:
+ component_info = pickle.load(component_info_file)
+ return ComponentInfoProviderCore(interfaces_info, component_info)
+
+
+ def create_component_info_provider_modules(info_dir):
+ interfaces_info = load_interfaces_info_overall_pickle(info_dir)
+- with open(
+- os.path.join(info_dir, 'core',
+- 'component_info_core.pickle')) as component_info_file:
++ with open(os.path.join(info_dir, 'core', 'component_info_core.pickle'),
++ mode='rb') as component_info_file:
+ component_info_core = pickle.load(component_info_file)
+- with open(
+- os.path.join(
+- info_dir, 'modules',
+- 'component_info_modules.pickle')) as component_info_file:
++ with open(os.path.join(info_dir, 'modules',
++ 'component_info_modules.pickle'),
++ mode='rb') as component_info_file:
+ component_info_modules = pickle.load(component_info_file)
+ return ComponentInfoProviderModules(interfaces_info, component_info_core,
+ component_info_modules)
+@@ -356,7 +354,7 @@ def write_pickle_file(pickle_filename, data):
+ pickle_filename = abs(pickle_filename)
+ # If |data| is same with the file content, we skip updating.
+ if os.path.isfile(pickle_filename):
+- with open(pickle_filename) as pickle_file:
++ with open(pickle_filename, 'rb') as pickle_file:
+ try:
+ if pickle.load(pickle_file) == data:
+ return
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/v8_interface.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/v8_interface.py
+index a43260414db6..a85b03abe750 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/v8_interface.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/v8_interface.py
+@@ -189,7 +189,7 @@ def context_enabled_features(attributes):
+ return sorted([
+ member for member in members
+ if member.get(KEY) and not member.get('exposed_test')
+- ])
++ ], key=lambda item: item['name'])
+
+ def member_filter_by_name(members, name):
+ return [member for member in members if member[KEY] == name]
+@@ -612,7 +612,8 @@ def interface_context(interface, interfaces, component_info):
+ sorted(
+ origin_trial_features(interface, context['constants'],
+ context['attributes'], context['methods']) +
+- context_enabled_features(context['attributes'])),
++ context_enabled_features(context['attributes']),
++ key=lambda item: item['name']),
+ })
+ if context['optional_features']:
+ includes.add('platform/bindings/v8_per_context_data.h')
+@@ -1356,9 +1357,9 @@ def resolution_tests_methods(effective_overloads):
+
+ # Extract argument and IDL type to simplify accessing these in each loop.
+ arguments = [method['arguments'][index] for method in methods]
+- arguments_methods = zip(arguments, methods)
++ arguments_methods = list(zip(arguments, methods))
+ idl_types = [argument['idl_type_object'] for argument in arguments]
+- idl_types_methods = zip(idl_types, methods)
++ idl_types_methods = list(zip(idl_types, methods))
+
+ # We can’t do a single loop through all methods or simply sort them, because
+ # a method may be listed in multiple steps of the resolution algorithm, and
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/v8_methods.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/v8_methods.py
+index 5f1f89a3defd..6ee8a4077987 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/v8_methods.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/v8_methods.py
+@@ -46,6 +46,10 @@ import v8_types
+ import v8_utilities
+ from v8_utilities import (has_extended_attribute_value, is_unforgeable)
+
++# TODO: Remove this once Python2 is obsoleted.
++if sys.version_info.major != 2:
++ basestring = str
++
+
+ def method_is_visible(method, interface_is_partial):
+ if 'overloads' in method:
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/v8_utilities.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/v8_utilities.py
+index 2ecd69233208..fcfc48371b1d 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/v8_utilities.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/v8_utilities.py
+@@ -271,7 +271,7 @@ EXPOSED_WORKERS = set([
+ ])
+
+
+-class ExposureSet:
++class ExposureSet(object):
+ """An ExposureSet is a collection of Exposure instructions."""
+
+ def __init__(self, exposures=None):
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/callback_interface.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/callback_interface.py
+index 13fb7c7068d8..b73b7710687e 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/callback_interface.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/callback_interface.py
+@@ -91,11 +91,13 @@ class CallbackInterface(UserDefinedType, WithExtendedAttributes,
+ for operation_ir in ir.operations
+ ])
+ self._operation_groups = tuple([
+- OperationGroup(
+- operation_group_ir,
+- filter(lambda x: x.identifier == operation_group_ir.identifier,
+- self._operations),
+- owner=self) for operation_group_ir in ir.operation_groups
++ OperationGroup(operation_group_ir,
++ list(
++ filter(
++ lambda x: x.identifier == operation_group_ir
++ .identifier, self._operations)),
++ owner=self)
++ for operation_group_ir in ir.operation_groups
+ ])
+
+ @property
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/database.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/database.py
+index c92cf48eb2ab..f5d591294495 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/database.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/database.py
+@@ -156,4 +156,4 @@ class Database(object):
+ return self._view_by_kind(Database._Kind.UNION)
+
+ def _view_by_kind(self, kind):
+- return self._impl.find_by_kind(kind).values()
++ return list(self._impl.find_by_kind(kind).values())
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/exposure.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/exposure.py
+index abaeef39c306..e36cf7439ae5 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/exposure.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/exposure.py
+@@ -8,8 +8,11 @@ from .runtime_enabled_features import RuntimeEnabledFeatures
+ class _Feature(str):
+ """Represents a runtime-enabled feature."""
+
++ def __new__(cls, value):
++ return str.__new__(cls, value)
++
+ def __init__(self, value):
+- str.__init__(self, value)
++ str.__init__(self)
+ self._is_context_dependent = (
+ RuntimeEnabledFeatures.is_context_dependent(self))
+
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/function_like.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/function_like.py
+index 648c70d803da..1712f19c6727 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/function_like.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/function_like.py
+@@ -71,8 +71,9 @@ class FunctionLike(WithIdentifier):
+ def num_of_required_arguments(self):
+ """Returns the number of required arguments."""
+ return len(
+- filter(lambda arg: not (arg.is_optional or arg.is_variadic),
+- self.arguments))
++ list(
++ filter(lambda arg: not (arg.is_optional or arg.is_variadic),
++ self.arguments)))
+
+
+ class OverloadGroup(WithIdentifier):
+@@ -171,8 +172,7 @@ class OverloadGroup(WithIdentifier):
+ Returns the effective overload set.
+ https://heycam.github.io/webidl/#compute-the-effective-overload-set
+ """
+- assert argument_count is None or isinstance(argument_count,
+- (int, long))
++ assert argument_count is None or isinstance(argument_count, int)
+
+ N = argument_count
+ S = []
+@@ -188,21 +188,21 @@ class OverloadGroup(WithIdentifier):
+
+ S.append(
+ OverloadGroup.EffectiveOverloadItem(
+- X, map(lambda arg: arg.idl_type, X.arguments),
+- map(lambda arg: arg.optionality, X.arguments)))
++ X, list(map(lambda arg: arg.idl_type, X.arguments)),
++ list(map(lambda arg: arg.optionality, X.arguments))))
+
+ if X.is_variadic:
+- for i in xrange(n, max(maxarg, N)):
+- t = map(lambda arg: arg.idl_type, X.arguments)
+- o = map(lambda arg: arg.optionality, X.arguments)
+- for _ in xrange(n, i + 1):
++ for i in range(n, max(maxarg, N)):
++ t = list(map(lambda arg: arg.idl_type, X.arguments))
++ o = list(map(lambda arg: arg.optionality, X.arguments))
++ for _ in range(n, i + 1):
+ t.append(X.arguments[-1].idl_type)
+ o.append(X.arguments[-1].optionality)
+ S.append(OverloadGroup.EffectiveOverloadItem(X, t, o))
+
+- t = map(lambda arg: arg.idl_type, X.arguments)
+- o = map(lambda arg: arg.optionality, X.arguments)
+- for i in xrange(n - 1, -1, -1):
++ t = list(map(lambda arg: arg.idl_type, X.arguments))
++ o = list(map(lambda arg: arg.optionality, X.arguments))
++ for i in range(n - 1, -1, -1):
+ if X.arguments[i].optionality == IdlType.Optionality.REQUIRED:
+ break
+ S.append(OverloadGroup.EffectiveOverloadItem(X, t[:i], o[:i]))
+@@ -222,7 +222,7 @@ class OverloadGroup(WithIdentifier):
+ for item in items)
+ assert len(items) > 1
+
+- for index in xrange(len(items[0].type_list)):
++ for index in range(len(items[0].type_list)):
+ # Assume that the given items are valid, and we only need to test
+ # the two types.
+ if OverloadGroup.are_distinguishable_types(
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/idl_compiler.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/idl_compiler.py
+index c5ee2bd8a3d6..58315072480d 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/idl_compiler.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/idl_compiler.py
+@@ -149,8 +149,8 @@ class IdlCompiler(object):
+ for old_ir in old_irs:
+ new_ir = make_copy(old_ir)
+ self._ir_map.add(new_ir)
+- new_ir.attributes = filter(not_disabled, new_ir.attributes)
+- new_ir.operations = filter(not_disabled, new_ir.operations)
++ new_ir.attributes = list(filter(not_disabled, new_ir.attributes))
++ new_ir.operations = list(filter(not_disabled, new_ir.operations))
+
+ def _record_defined_in_partial_and_mixin(self):
+ old_irs = self._ir_map.irs_of_kinds(
+@@ -231,7 +231,7 @@ class IdlCompiler(object):
+ only_to_members_of_partial_or_mixin=False)
+ propagate_to_exposure(propagate)
+
+- map(process_member_like, ir.iter_all_members())
++ list(map(process_member_like, ir.iter_all_members()))
+
+ def process_member_like(ir):
+ propagate = functools.partial(propagate_extattr, ir=ir)
+@@ -257,7 +257,7 @@ class IdlCompiler(object):
+
+ self._ir_map.move_to_new_phase()
+
+- map(process_interface_like, old_irs)
++ list(map(process_interface_like, old_irs))
+
+ def _determine_blink_headers(self):
+ irs = self._ir_map.irs_of_kinds(
+@@ -422,9 +422,9 @@ class IdlCompiler(object):
+ assert not new_interface.deriveds
+ derived_set = identifier_to_derived_set.get(
+ new_interface.identifier, set())
+- new_interface.deriveds = map(
+- lambda id_: self._ref_to_idl_def_factory.create(id_),
+- sorted(derived_set))
++ new_interface.deriveds = list(
++ map(lambda id_: self._ref_to_idl_def_factory.create(id_),
++ sorted(derived_set)))
+
+ def _supplement_missing_html_constructor_operation(self):
+ # Temporary mitigation of misuse of [HTMLConstructor]
+@@ -553,7 +553,8 @@ class IdlCompiler(object):
+ self._ir_map.add(new_ir)
+
+ for group in new_ir.iter_all_overload_groups():
+- exposures = map(lambda overload: overload.exposure, group)
++ exposures = list(map(lambda overload: overload.exposure,
++ group))
+
+ # [Exposed]
+ if any(not exposure.global_names_and_features
+@@ -653,8 +654,8 @@ class IdlCompiler(object):
+ constructs = set()
+ for global_name in global_names:
+ constructs.update(exposed_map.get(global_name, []))
+- new_ir.exposed_constructs = map(
+- self._ref_to_idl_def_factory.create, sorted(constructs))
++ new_ir.exposed_constructs = list(
++ map(self._ref_to_idl_def_factory.create, sorted(constructs)))
+
+ assert not new_ir.legacy_window_aliases
+ if new_ir.identifier != 'Window':
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/interface.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/interface.py
+index 65d24e529d10..067ef2eb0b2a 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/interface.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/interface.py
+@@ -180,8 +180,9 @@ class Interface(UserDefinedType, WithExtendedAttributes, WithCodeGeneratorInfo,
+ self._constructor_groups = tuple([
+ ConstructorGroup(
+ group_ir,
+- filter(lambda x: x.identifier == group_ir.identifier,
+- self._constructors),
++ list(
++ filter(lambda x: x.identifier == group_ir.identifier,
++ self._constructors)),
+ owner=self) for group_ir in ir.constructor_groups
+ ])
+ assert len(self._constructor_groups) <= 1
+@@ -192,8 +193,9 @@ class Interface(UserDefinedType, WithExtendedAttributes, WithCodeGeneratorInfo,
+ self._named_constructor_groups = tuple([
+ ConstructorGroup(
+ group_ir,
+- filter(lambda x: x.identifier == group_ir.identifier,
+- self._named_constructors),
++ list(
++ filter(lambda x: x.identifier == group_ir.identifier,
++ self._named_constructors)),
+ owner=self) for group_ir in ir.named_constructor_groups
+ ])
+ self._operations = tuple([
+@@ -203,22 +205,23 @@ class Interface(UserDefinedType, WithExtendedAttributes, WithCodeGeneratorInfo,
+ self._operation_groups = tuple([
+ OperationGroup(
+ group_ir,
+- filter(lambda x: x.identifier == group_ir.identifier,
+- self._operations),
++ list(
++ filter(lambda x: x.identifier == group_ir.identifier,
++ self._operations)),
+ owner=self) for group_ir in ir.operation_groups
+ ])
+ self._exposed_constructs = tuple(ir.exposed_constructs)
+ self._legacy_window_aliases = tuple(ir.legacy_window_aliases)
+ self._indexed_and_named_properties = None
+- indexed_and_named_property_operations = filter(
+- lambda x: x.is_indexed_or_named_property_operation,
+- self._operations)
++ indexed_and_named_property_operations = list(
++ filter(lambda x: x.is_indexed_or_named_property_operation,
++ self._operations))
+ if indexed_and_named_property_operations:
+ self._indexed_and_named_properties = IndexedAndNamedProperties(
+ indexed_and_named_property_operations, owner=self)
+ self._stringifier = None
+- stringifier_operation_irs = filter(lambda x: x.is_stringifier,
+- ir.operations)
++ stringifier_operation_irs = list(
++ filter(lambda x: x.is_stringifier, ir.operations))
+ if stringifier_operation_irs:
+ assert len(stringifier_operation_irs) == 1
+ op_ir = make_copy(stringifier_operation_irs[0])
+@@ -231,8 +234,9 @@ class Interface(UserDefinedType, WithExtendedAttributes, WithCodeGeneratorInfo,
+ attribute = None
+ if operation.stringifier_attribute:
+ attr_id = operation.stringifier_attribute
+- attributes = filter(lambda x: x.identifier == attr_id,
+- self._attributes)
++ attributes = list(
++ filter(lambda x: x.identifier == attr_id,
++ self._attributes))
+ assert len(attributes) == 1
+ attribute = attributes[0]
+ self._stringifier = Stringifier(operation, attribute, owner=self)
+@@ -578,8 +582,9 @@ class Iterable(WithDebugInfo):
+ self._operation_groups = tuple([
+ OperationGroup(
+ group_ir,
+- filter(lambda x: x.identifier == group_ir.identifier,
+- self._operations),
++ list(
++ filter(lambda x: x.identifier == group_ir.identifier,
++ self._operations)),
+ owner=owner) for group_ir in ir.operation_groups
+ ])
+
+@@ -666,8 +671,9 @@ class Maplike(WithDebugInfo):
+ self._operation_groups = tuple([
+ OperationGroup(
+ group_ir,
+- filter(lambda x: x.identifier == group_ir.identifier,
+- self._operations),
++ list(
++ filter(lambda x: x.identifier == group_ir.identifier,
++ self._operations)),
+ owner=owner) for group_ir in ir.operation_groups
+ ])
+
+@@ -755,8 +761,9 @@ class Setlike(WithDebugInfo):
+ self._operation_groups = tuple([
+ OperationGroup(
+ group_ir,
+- filter(lambda x: x.identifier == group_ir.identifier,
+- self._operations),
++ list(
++ filter(lambda x: x.identifier == group_ir.identifier,
++ self._operations)),
+ owner=owner) for group_ir in ir.operation_groups
+ ])
+
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/ir_builder.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/ir_builder.py
+index e9aeff4ab822..d80554d603ed 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/ir_builder.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/ir_builder.py
+@@ -2,6 +2,8 @@
+ # Use of this source code is governed by a BSD-style license that can be
+ # found in the LICENSE file.
+
++import sys
++
+ from .argument import Argument
+ from .ast_group import AstGroup
+ from .attribute import Attribute
+@@ -30,6 +32,11 @@ from .operation import Operation
+ from .typedef import Typedef
+
+
++# TODO: Remove this once Python2 is obsoleted.
++if sys.version_info.major != 2:
++ long = int
++
++
+ def load_and_register_idl_definitions(filepaths, register_ir,
+ create_ref_to_idl_def, idl_type_factory):
+ """
+@@ -160,7 +167,7 @@ class _IRBuilder(object):
+ child_nodes = list(node.GetChildren())
+ extended_attributes = self._take_extended_attributes(child_nodes)
+
+- members = map(self._build_interface_member, child_nodes)
++ members = list(map(self._build_interface_member, child_nodes))
+ attributes = []
+ constants = []
+ operations = []
+@@ -302,7 +309,7 @@ class _IRBuilder(object):
+ child_nodes = list(node.GetChildren())
+ inherited = self._take_inheritance(child_nodes)
+ extended_attributes = self._take_extended_attributes(child_nodes)
+- own_members = map(self._build_dictionary_member, child_nodes)
++ own_members = list(map(self._build_dictionary_member, child_nodes))
+
+ return Dictionary.IR(
+ identifier=Identifier(node.GetName()),
+@@ -336,7 +343,7 @@ class _IRBuilder(object):
+
+ child_nodes = list(node.GetChildren())
+ extended_attributes = self._take_extended_attributes(child_nodes)
+- members = map(self._build_interface_member, child_nodes)
++ members = list(map(self._build_interface_member, child_nodes))
+ constants = []
+ operations = []
+ for member in members:
+@@ -456,8 +463,8 @@ class _IRBuilder(object):
+ assert len(child_nodes) == 1
+ child = child_nodes[0]
+ if child.GetClass() == 'Arguments':
+- arguments = map(build_extattr_argument,
+- child.GetChildren())
++ arguments = list(
++ map(build_extattr_argument, child.GetChildren()))
+ elif child.GetClass() == 'Call':
+ assert len(child.GetChildren()) == 1
+ grand_child = child.GetChildren()[0]
+@@ -486,7 +493,9 @@ class _IRBuilder(object):
+
+ assert node.GetClass() == 'ExtAttributes'
+ return ExtendedAttributes(
+- filter(None, map(build_extended_attribute, node.GetChildren())))
++ list(
++ filter(None, map(build_extended_attribute,
++ node.GetChildren()))))
+
+ def _build_inheritance(self, node):
+ assert node.GetClass() == 'Inherit'
+@@ -506,7 +515,7 @@ class _IRBuilder(object):
+
+ def _build_iterable(self, node):
+ assert node.GetClass() == 'Iterable'
+- types = map(self._build_type, node.GetChildren())
++ types = list(map(self._build_type, node.GetChildren()))
+ assert len(types) == 1 or len(types) == 2
+ if len(types) == 1: # value iterator
+ key_type, value_type = (None, types[0])
+@@ -584,7 +593,7 @@ class _IRBuilder(object):
+ def _build_maplike(self, node, interface_identifier):
+ assert node.GetClass() == 'Maplike'
+ assert isinstance(interface_identifier, Identifier)
+- types = map(self._build_type, node.GetChildren())
++ types = list(map(self._build_type, node.GetChildren()))
+ assert len(types) == 2
+ key_type, value_type = types
+ is_readonly = bool(node.GetProperty('READONLY'))
+@@ -676,7 +685,7 @@ class _IRBuilder(object):
+ def _build_setlike(self, node, interface_identifier):
+ assert node.GetClass() == 'Setlike'
+ assert isinstance(interface_identifier, Identifier)
+- types = map(self._build_type, node.GetChildren())
++ types = list(map(self._build_type, node.GetChildren()))
+ assert len(types) == 1
+ value_type = types[0]
+ is_readonly = bool(node.GetProperty('READONLY'))
+@@ -838,7 +847,7 @@ class _IRBuilder(object):
+
+ def build_union_type(node, extended_attributes):
+ return self._idl_type_factory.union_type(
+- member_types=map(self._build_type, node.GetChildren()),
++ member_types=list(map(self._build_type, node.GetChildren())),
+ is_optional=is_optional,
+ extended_attributes=extended_attributes,
+ debug_info=self._build_debug_info(node))
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/make_copy.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/make_copy.py
+index a7a2b11f3f01..2f6b61300ffb 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/make_copy.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/make_copy.py
+@@ -3,6 +3,13 @@
+ # found in the LICENSE file.
+
+
++import sys
++
++# TODO: Remove this once Python2 is obsoleted.
++if sys.version_info.major != 2:
++ long = int
++ basestring = str
++
+ def make_copy(obj, memo=None):
+ """
+ Creates a copy of the given object, which should be an IR or part of IR.
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/namespace.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/namespace.py
+index eeabef97cbe3..bd7e98907f3b 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/namespace.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/scripts/web_idl/namespace.py
+@@ -107,11 +107,13 @@ class Namespace(UserDefinedType, WithExtendedAttributes, WithCodeGeneratorInfo,
+ for operation_ir in ir.operations
+ ])
+ self._operation_groups = tuple([
+- OperationGroup(
+- operation_group_ir,
+- filter(lambda x: x.identifier == operation_group_ir.identifier,
+- self._operations),
+- owner=self) for operation_group_ir in ir.operation_groups
++ OperationGroup(operation_group_ir,
++ list(
++ filter(
++ lambda x: x.identifier == operation_group_ir
++ .identifier, self._operations)),
++ owner=self)
++ for operation_group_ir in ir.operation_groups
+ ])
+
+ @property
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/templates/dictionary_v8.cc.tmpl b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/templates/dictionary_v8.cc.tmpl
+index 0add9c45a382..dc910f6d227c 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/templates/dictionary_v8.cc.tmpl
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/bindings/templates/dictionary_v8.cc.tmpl
+@@ -59,9 +59,9 @@ void {{v8_class}}::ToImpl(v8::Isolate* isolate, v8::Local<v8::Value> v8_value, {
+ DCHECK(executionContext);
+ {% endif %}{# has_origin_trial_members #}
+ {% endif %}{# members #}
+- {% for origin_trial_test, origin_trial_member_list in members | groupby('origin_trial_feature_name') %}
++ {% for origin_trial_test, origin_trial_member_list in members | stringifykeygroupby('origin_trial_feature_name') %}
+ {% filter origin_trial_enabled(origin_trial_test, "executionContext") %}
+- {% for feature_name, member_list in origin_trial_member_list | groupby('runtime_enabled_feature_name') %}
++ {% for feature_name, member_list in origin_trial_member_list | stringifykeygroupby('runtime_enabled_feature_name') %}
+ {% filter runtime_enabled(feature_name) %}
+ {% for member in member_list %}
+ v8::Local<v8::Value> {{member.v8_value}};
+@@ -147,9 +147,9 @@ bool toV8{{cpp_class}}(const {{cpp_class}}* impl, v8::Local<v8::Object> dictiona
+ DCHECK(executionContext);
+ {% endif %}{# has_origin_trial_members #}
+ {% endif %}{# members #}
+- {% for origin_trial_test, origin_trial_member_list in members | groupby('origin_trial_feature_name') %}
++ {% for origin_trial_test, origin_trial_member_list in members | stringifykeygroupby('origin_trial_feature_name') %}
+ {% filter origin_trial_enabled(origin_trial_test, "executionContext") %}
+- {% for feature_name, member_list in origin_trial_member_list | groupby('runtime_enabled_feature_name') %}
++ {% for feature_name, member_list in origin_trial_member_list | stringifykeygroupby('runtime_enabled_feature_name') %}
+ {% filter runtime_enabled(feature_name) %}
+ {% for member in member_list %}
+ v8::Local<v8::Value> {{member.v8_value}};
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/core/css/make_style_shorthands.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/core/css/make_style_shorthands.py
+index 1799cd5a153b..5f43ffabc26c 100755
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/core/css/make_style_shorthands.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/core/css/make_style_shorthands.py
+@@ -71,7 +71,7 @@ class Expansion(object):
+ def enabled_longhands(self):
+ include = lambda longhand: not longhand[
+ 'runtime_flag'] or self.is_enabled(longhand['runtime_flag'])
+- return filter(include, self._longhands)
++ return list(filter(include, self._longhands))
+
+ @property
+ def index(self):
+@@ -87,8 +87,9 @@ class Expansion(object):
+
+ def create_expansions(longhands):
+ flags = collect_runtime_flags(longhands)
+- expansions = map(lambda mask: Expansion(longhands, flags, mask),
+- range(1 << len(flags)))
++ expansions = list(
++ map(lambda mask: Expansion(longhands, flags, mask),
++ range(1 << len(flags))))
+ assert len(expansions) > 0
+ # We generate 2^N expansions for N flags, so enforce some limit.
+ assert len(flags) <= 4, 'Too many runtime flags for a single shorthand'
+@@ -114,14 +115,14 @@ class StylePropertyShorthandWriter(json5_generator.Writer):
+
+ self._longhand_dictionary = defaultdict(list)
+ for property_ in json5_properties.shorthands:
+- property_['longhand_enum_keys'] = map(enum_key_for_css_property,
+- property_['longhands'])
+- property_['longhand_property_ids'] = map(id_for_css_property,
+- property_['longhands'])
+-
+- longhands = map(
+- lambda name: json5_properties.properties_by_name[name],
+- property_['longhands'])
++ property_['longhand_enum_keys'] = list(
++ map(enum_key_for_css_property, property_['longhands']))
++ property_['longhand_property_ids'] = list(
++ map(id_for_css_property, property_['longhands']))
++
++ longhands = list(
++ map(lambda name: json5_properties.properties_by_name[name],
++ property_['longhands']))
+ property_['expansions'] = create_expansions(longhands)
+ for longhand_enum_key in property_['longhand_enum_keys']:
+ self._longhand_dictionary[longhand_enum_key].append(property_)
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/core/css/properties/make_css_property_instances.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/core/css/properties/make_css_property_instances.py
+index 75030ac577eb..f72aadee17de 100755
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/core/css/properties/make_css_property_instances.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/core/css/properties/make_css_property_instances.py
+@@ -42,8 +42,8 @@ class CSSPropertyInstancesWriter(json5_generator.Writer):
+ aliases = self._css_properties.aliases
+
+ # Lists of PropertyClassData.
+- self._property_classes_by_id = map(self.get_class, properties)
+- self._alias_classes_by_id = map(self.get_class, aliases)
++ self._property_classes_by_id = list(map(self.get_class, properties))
++ self._alias_classes_by_id = list(map(self.get_class, aliases))
+
+ # Sort by enum value.
+ self._property_classes_by_id.sort(key=lambda t: t.enum_value)
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/gperf.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/gperf.py
+index 5ee49056be41..db72660d4718 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/gperf.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/gperf.py
+@@ -95,7 +95,7 @@ def main():
+
+ open(args.output_file, 'wb').write(
+ generate_gperf(gperf_path,
+- open(infile).read(), gperf_args))
++ open(infile).read(), gperf_args).encode('utf-8'))
+
+
+ if __name__ == '__main__':
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/in_file.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/in_file.py
+index 28adc050f1ed..58113483e572 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/in_file.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/in_file.py
+@@ -66,7 +66,7 @@ class InFile(object):
+ self._defaults = defaults
+ self._valid_values = copy.deepcopy(
+ valid_values if valid_values else {})
+- self._parse(map(str.strip, lines))
++ self._parse(list(map(str.strip, lines)))
+
+ @classmethod
+ def load_from_files(self, file_paths, defaults, valid_values,
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/in_generator.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/in_generator.py
+index e46740a2e85c..ab1981ad1e38 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/in_generator.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/in_generator.py
+@@ -32,10 +32,15 @@ import os
+ import os.path
+ import shlex
+ import shutil
++import sys
+ import optparse
+
+ from in_file import InFile
+
++# TODO: Remove this once Python2 is obsoleted.
++if sys.version_info.major != 2:
++ basestring = str
++
+
+ #########################################################
+ # This is now deprecated - use json5_generator.py instead
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/make_runtime_features.py b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/make_runtime_features.py
+index cafe8d94a8e9..6925a4fa580a 100755
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/make_runtime_features.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/make_runtime_features.py
+@@ -138,7 +138,7 @@ class RuntimeFeatureWriter(BaseRuntimeFeatureWriter):
+ except Exception:
+ # If trouble unpickling, overwrite
+ pass
+- with open(os.path.abspath(file_name), 'w') as pickle_file:
++ with open(os.path.abspath(file_name), 'wb') as pickle_file:
+ pickle.dump(features_map, pickle_file)
+
+ def _template_inputs(self):
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/element_factory.cc.tmpl b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/element_factory.cc.tmpl
+index dc3f44c5b103..3eefcf9f0ee4 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/element_factory.cc.tmpl
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/element_factory.cc.tmpl
+@@ -26,7 +26,7 @@ using {{namespace}}FunctionMap = HashMap<AtomicString, {{namespace}}ConstructorF
+
+ static {{namespace}}FunctionMap* g_{{namespace|lower}}_constructors = nullptr;
+
+-{% for tag in tags|sort if not tag.noConstructor %}
++{% for tag in tags|sort(attribute='name') if not tag.noConstructor %}
+ static {{namespace}}Element* {{namespace}}{{tag.name.to_upper_camel_case()}}Constructor(
+ Document& document, const CreateElementFlags flags) {
+ {% if tag.runtimeEnabled %}
+@@ -52,7 +52,7 @@ static void Create{{namespace}}FunctionMap() {
+ // Empty array initializer lists are illegal [dcl.init.aggr] and will not
+ // compile in MSVC. If tags list is empty, add check to skip this.
+ static const Create{{namespace}}FunctionMapData data[] = {
+- {% for tag in tags|sort if not tag.noConstructor %}
++ {% for tag in tags|sort(attribute='name') if not tag.noConstructor %}
+ { {{cpp_namespace}}::{{tag|symbol}}Tag, {{namespace}}{{tag.name.to_upper_camel_case()}}Constructor },
+ {% endfor %}
+ };
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.cc.tmpl b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.cc.tmpl
+index 9bfc489e048b..5f86184e8790 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.cc.tmpl
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.cc.tmpl
+@@ -22,7 +22,7 @@ HTMLTypeMap CreateHTMLTypeMap() {
+ const char* name;
+ HTMLElementType type;
+ } kTags[] = {
+- {% for tag in tags|sort %}
++ {% for tag in tags|sort(attribute='name') %}
+ { "{{tag.name}}", HTMLElementType::k{{tag.js_interface}} },
+ {% endfor %}
+ };
+@@ -42,7 +42,7 @@ HTMLElementType htmlElementTypeForTag(const AtomicString& tagName, const Documen
+ if (it == html_type_map.end())
+ return HTMLElementType::kHTMLUnknownElement;
+
+- {% for tag in tags|sort %}
++ {% for tag in tags|sort(attribute='name') %}
+ {% if tag.runtimeEnabled %}
+ if (tagName == "{{tag.name}}") {
+ if (!RuntimeEnabledFeatures::{{tag.runtimeEnabled}}Enabled(document->GetExecutionContext())) {
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.h.tmpl b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.h.tmpl
+index 1b5297d52dc0..edecc81d9d48 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.h.tmpl
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/element_type_helpers.h.tmpl
+@@ -15,7 +15,7 @@ namespace blink {
+ class Document;
+
+ // Type checking.
+-{% for tag in tags|sort if not tag.multipleTagNames and not tag.noTypeHelpers %}
++{% for tag in tags|sort(attribute='name') if not tag.multipleTagNames and not tag.noTypeHelpers %}
+ class {{tag.interface}};
+ template <>
+ inline bool IsElementOfType<const {{tag.interface}}>(const Node& node) {
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/macros.tmpl b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/macros.tmpl
+index 0244433af2e8..dcdbb02a56c3 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/macros.tmpl
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/macros.tmpl
+@@ -25,7 +25,7 @@
+
+
+ {% macro trie_leaf(index, object, return_macro, lowercase_data) %}
+-{% set name, value = object.items()[0] %}
++{% set name, value = (object.items()|list)[0] %}
+ {% if name|length %}
+ if (
+ {%- for c in name -%}
+@@ -45,7 +45,7 @@ return {{ return_macro(value) }};
+
+
+ {% macro trie_switch(trie, index, return_macro, lowercase_data) %}
+-{% if trie|length == 1 and trie.values()[0] is string %}
++{% if trie|length == 1 and (trie.values()|list)[0] is string %}
+ {{ trie_leaf(index, trie, return_macro, lowercase_data) -}}
+ {% else %}
+ {% if lowercase_data %}
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/make_qualified_names.h.tmpl b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/make_qualified_names.h.tmpl
+index cb05c6c43157..bd5566b03e7e 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/make_qualified_names.h.tmpl
++++ b/qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/templates/make_qualified_names.h.tmpl
+@@ -24,12 +24,12 @@ namespace {{cpp_namespace}} {
+ {{symbol_export}}extern const WTF::AtomicString& {{namespace_prefix}}NamespaceURI;
+
+ // Tags
+-{% for tag in tags|sort %}
++{% for tag in tags|sort(attribute='name') %}
+ {{symbol_export}}extern const blink::{{namespace}}QualifiedName& {{tag|symbol}}Tag;
+ {% endfor %}
+
+ // Attributes
+-{% for attr in attrs|sort %}
++{% for attr in attrs|sort(attribute='name') %}
+ {{symbol_export}}extern const blink::QualifiedName& {{attr|symbol}}Attr;
+ {% endfor %}
+
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/dawn/generator/generator_lib.py b/qtwebengine/src/3rdparty/chromium/third_party/dawn/generator/generator_lib.py
+index 5e3734d78336..e3d46bd194f2 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/dawn/generator/generator_lib.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/dawn/generator/generator_lib.py
+@@ -201,6 +201,10 @@ def _compute_python_dependencies(root_dir=None):
+
+ paths = set()
+ for path in module_paths:
++ # Builtin/namespaced modules may return None for the file path.
++ if not path:
++ continue
++
+ path = os.path.abspath(path)
+
+ if not path.startswith(root_dir):
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/BUILD.gn b/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/BUILD.gn
+index cd488e88b60f..ea1dc3d9a793 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/BUILD.gn
++++ b/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/BUILD.gn
+@@ -2,6 +2,8 @@
+ # Use of this source code is governed by a BSD-style license that can be
+ # found in the LICENSE file.
+
++import("//build/config/python.gni")
++
+ import("//third_party/blink/public/public_features.gni")
+ import("./all_devtools_files.gni")
+ import("./all_devtools_modules.gni")
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/build_inspector_overlay.py b/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/build_inspector_overlay.py
+index d6666e8b74fa..0f7a661e6325 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/build_inspector_overlay.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/build_inspector_overlay.py
+@@ -45,7 +45,8 @@ def rollup(input_path, output_path, filename, max_size, rollup_plugin):
+ ['--format', 'iife', '-n', 'InspectorOverlay'] + ['--input', target] +
+ ['--plugin', rollup_plugin],
+ stdout=subprocess.PIPE,
+- stderr=subprocess.PIPE)
++ stderr=subprocess.PIPE,
++ text=True)
+ out, error = rollup_process.communicate()
+ if not out:
+ raise Exception("rollup failed: " + error)
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/build_release_applications.py b/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/build_release_applications.py
+index fa8e73d34af2..7d0b84b21717 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/build_release_applications.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/build_release_applications.py
+@@ -10,7 +10,7 @@ Builds applications in release mode:
+ and the application loader into a single script.
+ """
+
+-from cStringIO import StringIO
++from io import StringIO
+ from os import path
+ from os.path import join
+ import copy
+@@ -145,8 +145,7 @@ class ReleaseBuilder(object):
+ resource_content = read_file(path.join(self.application_dir, resource_name))
+ if not (resource_name.endswith('.html')
+ or resource_name.endswith('md')):
+- resource_content += resource_source_url(resource_name).encode(
+- 'utf-8')
++ resource_content += resource_source_url(resource_name)
+ resource_content = resource_content.replace('\\', '\\\\')
+ resource_content = resource_content.replace('\n', '\\n')
+ resource_content = resource_content.replace('"', '\\"')
+@@ -173,7 +172,9 @@ class ReleaseBuilder(object):
+ def _concatenate_application_script(self, output):
+ output.write('Root.allDescriptors.push(...%s);' % self._release_module_descriptors())
+ if self.descriptors.extends:
+- output.write('Root.applicationDescriptor.modules.push(...%s);' % json.dumps(self.descriptors.application.values()))
++ output.write(
++ 'Root.applicationDescriptor.modules.push(...%s);' %
++ json.dumps(list(self.descriptors.application.values())))
+ else:
+ output.write('Root.applicationDescriptor = %s;' % self.descriptors.application_json())
+
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/generate_devtools_grd.py b/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/generate_devtools_grd.py
+index be510c48d76c..c6a59c902982 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/generate_devtools_grd.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/generate_devtools_grd.py
+@@ -123,7 +123,7 @@ def main(argv):
+
+ try:
+ os.makedirs(path.join(output_directory, 'Images'))
+- except OSError, e:
++ except OSError as e:
+ if e.errno != errno.EEXIST:
+ raise e
+
+@@ -147,7 +147,7 @@ def main(argv):
+ shutil.copy(path.join(dirname, filename), path.join(output_directory, 'Images'))
+ add_file_to_grd(doc, path.join('Images', filename))
+
+- with open(parsed_args.output_filename, 'w') as output_file:
++ with open(parsed_args.output_filename, 'wb') as output_file:
+ output_file.write(doc.toxml(encoding='UTF-8'))
+
+
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/modular_build.py b/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/modular_build.py
+index 0ba695d3810c..bb1da2f9f8da 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/modular_build.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/devtools-frontend/src/scripts/build/modular_build.py
+@@ -7,6 +7,8 @@
+ Utilities for the modular DevTools build.
+ """
+
++from __future__ import print_function
++
+ import collections
+ from os import path
+ import os
+@@ -40,7 +42,7 @@ def load_and_parse_json(filename):
+ try:
+ return json.loads(read_file(filename))
+ except:
+- print 'ERROR: Failed to parse %s' % filename
++ print('ERROR: Failed to parse %s' % filename)
+ raise
+
+ class Descriptors:
+@@ -57,7 +59,7 @@ class Descriptors:
+
+ def application_json(self):
+ result = dict()
+- result['modules'] = self.application.values()
++ result['modules'] = list(self.application.values())
+ return json.dumps(result)
+
+ def all_compiled_files(self):
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/jinja2/tests.py b/qtwebengine/src/3rdparty/chromium/third_party/jinja2/tests.py
+index 0adc3d4dbcbb..b14f85ff148c 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/jinja2/tests.py
++++ b/qtwebengine/src/3rdparty/chromium/third_party/jinja2/tests.py
+@@ -10,7 +10,7 @@
+ """
+ import operator
+ import re
+-from collections import Mapping
++from collections.abc import Mapping
+ from jinja2.runtime import Undefined
+ from jinja2._compat import text_type, string_types, integer_types
+ import decimal
+diff --git a/qtwebengine/src/3rdparty/chromium/tools/metrics/ukm/gen_builders.py b/qtwebengine/src/3rdparty/chromium/tools/metrics/ukm/gen_builders.py
+index f9f61d90a561..44e46fae8cca 100755
+--- a/qtwebengine/src/3rdparty/chromium/tools/metrics/ukm/gen_builders.py
++++ b/qtwebengine/src/3rdparty/chromium/tools/metrics/ukm/gen_builders.py
+@@ -48,9 +48,10 @@ def ReadFilteredData(path):
+ data = ukm_model.UKM_XML_TYPE.Parse(ukm_file.read())
+ event_tag = ukm_model._EVENT_TYPE.tag
+ metric_tag = ukm_model._METRIC_TYPE.tag
+- data[event_tag] = filter(ukm_model.IsNotObsolete, data[event_tag])
++ data[event_tag] = list(filter(ukm_model.IsNotObsolete, data[event_tag]))
+ for event in data[event_tag]:
+- event[metric_tag] = filter(ukm_model.IsNotObsolete, event[metric_tag])
++ event[metric_tag] = list(
++ filter(ukm_model.IsNotObsolete, event[metric_tag]))
+ return data
+
+
+diff --git a/qtwebengine/src/3rdparty/chromium/ui/ozone/generate_constructor_list.py b/qtwebengine/src/3rdparty/chromium/ui/ozone/generate_constructor_list.py
+index 8d800636c979..04fa18e93dfd 100755
+--- a/qtwebengine/src/3rdparty/chromium/ui/ozone/generate_constructor_list.py
++++ b/qtwebengine/src/3rdparty/chromium/ui/ozone/generate_constructor_list.py
+@@ -45,12 +45,15 @@ Example Output: ./ui/ozone/generate_constructor_list.py \
+ } // namespace ui
+ """
+
++try:
++ from StringIO import StringIO # for Python 2
++except ImportError:
++ from io import StringIO # for Python 3
+ import optparse
+ import os
+ import collections
+ import re
+ import sys
+-import string
+
+
+ def GetTypedefName(typename):
+@@ -68,7 +71,7 @@ def GetConstructorName(typename, platform):
+ This is just "Create" + typename + platform.
+ """
+
+- return 'Create' + typename + string.capitalize(platform)
++ return 'Create' + typename + platform.capitalize()
+
+
+ def GenerateConstructorList(out, namespace, export, typenames, platforms,
+@@ -163,12 +166,14 @@ def main(argv):
+ sys.exit(1)
+
+ # Write to standard output or file specified by --output_cc.
+- out_cc = sys.stdout
++ out_cc = getattr(sys.stdout, 'buffer', sys.stdout)
+ if options.output_cc:
+ out_cc = open(options.output_cc, 'wb')
+
+- GenerateConstructorList(out_cc, options.namespace, options.export,
++ out_cc_str = StringIO()
++ GenerateConstructorList(out_cc_str, options.namespace, options.export,
+ typenames, platforms, includes, usings)
++ out_cc.write(out_cc_str.getvalue().encode('utf-8'))
+
+ if options.output_cc:
+ out_cc.close()
+diff --git a/qtwebengine/src/3rdparty/chromium/ui/ozone/generate_ozone_platform_list.py b/qtwebengine/src/3rdparty/chromium/ui/ozone/generate_ozone_platform_list.py
+index d47c398259b9..2702b68b9bdd 100755
+--- a/qtwebengine/src/3rdparty/chromium/ui/ozone/generate_ozone_platform_list.py
++++ b/qtwebengine/src/3rdparty/chromium/ui/ozone/generate_ozone_platform_list.py
+@@ -49,12 +49,15 @@ Example Output: ./generate_ozone_platform_list.py --default wayland dri wayland
+
+ """
+
++try:
++ from StringIO import StringIO # for Python 2
++except ImportError:
++ from io import StringIO # for Python 3
+ import optparse
+ import os
+ import collections
+ import re
+ import sys
+-import string
+
+
+ def GetConstantName(name):
+@@ -63,7 +66,7 @@ def GetConstantName(name):
+ We just capitalize the platform name and prepend "CreateOzonePlatform".
+ """
+
+- return 'kPlatform' + string.capitalize(name)
++ return 'kPlatform' + name.capitalize()
+
+
+ def GeneratePlatformListText(out, platforms):
+@@ -149,9 +152,9 @@ def main(argv):
+ platforms.insert(0, options.default)
+
+ # Write to standard output or file specified by --output_{cc,h}.
+- out_cc = sys.stdout
+- out_h = sys.stdout
+- out_txt = sys.stdout
++ out_cc = getattr(sys.stdout, 'buffer', sys.stdout)
++ out_h = getattr(sys.stdout, 'buffer', sys.stdout)
++ out_txt = getattr(sys.stdout, 'buffer', sys.stdout)
+ if options.output_cc:
+ out_cc = open(options.output_cc, 'wb')
+ if options.output_h:
+@@ -159,9 +162,16 @@ def main(argv):
+ if options.output_txt:
+ out_txt = open(options.output_txt, 'wb')
+
+- GeneratePlatformListText(out_txt, platforms)
+- GeneratePlatformListHeader(out_h, platforms)
+- GeneratePlatformListSource(out_cc, platforms)
++ out_txt_str = StringIO()
++ out_h_str = StringIO()
++ out_cc_str = StringIO()
++
++ GeneratePlatformListText(out_txt_str, platforms)
++ out_txt.write(out_txt_str.getvalue().encode('utf-8'))
++ GeneratePlatformListHeader(out_h_str, platforms)
++ out_h.write(out_h_str.getvalue().encode('utf-8'))
++ GeneratePlatformListSource(out_cc_str, platforms)
++ out_cc.write(out_cc_str.getvalue().encode('utf-8'))
+
+ if options.output_cc:
+ out_cc.close()
diff --git a/patches/qt-everywhere-opensource-src-5.15.12/0202-fix-build-with-Python-3.11.patch b/patches/qt-everywhere-opensource-src-5.15.12/0202-fix-build-with-Python-3.11.patch
new file mode 100644
index 000000000..0cc64cb6a
--- /dev/null
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0202-fix-build-with-Python-3.11.patch
@@ -0,0 +1,61 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Fri, 17 Nov 2023 15:13:50 +0100
+Subject: [PATCH] fix build with Python 3.11
+
+Imported from Debian.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ qtwebengine/src/3rdparty/chromium/tools/grit/grit/util.py | 2 +-
+ qtwebengine/src/3rdparty/chromium/tools/metrics/structured/model.py | 2 +-
+ qtwebengine/src/3rdparty/chromium/tools/metrics/ukm/ukm_model.py | 4 ++--
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/qtwebengine/src/3rdparty/chromium/tools/grit/grit/util.py b/qtwebengine/src/3rdparty/chromium/tools/grit/grit/util.py
+index 528d766ad6b3..6e8cdb0ebfa6 100644
+--- a/qtwebengine/src/3rdparty/chromium/tools/grit/grit/util.py
++++ b/qtwebengine/src/3rdparty/chromium/tools/grit/grit/util.py
+@@ -211,7 +211,7 @@ def ReadFile(filename, encoding):
+ mode = 'rb'
+ encoding = None
+ else:
+- mode = 'rU'
++ mode = 'r'
+
+ with io.open(abs(filename), mode, encoding=encoding) as f:
+ return f.read()
+diff --git a/qtwebengine/src/3rdparty/chromium/tools/metrics/structured/model.py b/qtwebengine/src/3rdparty/chromium/tools/metrics/structured/model.py
+index 2d90bf20c677..befea2eda7ce 100644
+--- a/qtwebengine/src/3rdparty/chromium/tools/metrics/structured/model.py
++++ b/qtwebengine/src/3rdparty/chromium/tools/metrics/structured/model.py
+@@ -26,7 +26,7 @@ _METRIC_TYPE = models.ObjectNodeType(
+ 'metric',
+ attributes=[
+ ('name', unicode, r'^[A-Za-z0-9_.]+$'),
+- ('kind', unicode, r'^(?i)(|hashed-string|int)$'),
++ ('kind', unicode, r'(?i)^(|hashed-string|int)$'),
+ ],
+ alphabetization=[
+ (_OBSOLETE_TYPE.tag, lambda _: 1),
+diff --git a/qtwebengine/src/3rdparty/chromium/tools/metrics/ukm/ukm_model.py b/qtwebengine/src/3rdparty/chromium/tools/metrics/ukm/ukm_model.py
+index ec24dd57360f..57decab3ccce 100644
+--- a/qtwebengine/src/3rdparty/chromium/tools/metrics/ukm/ukm_model.py
++++ b/qtwebengine/src/3rdparty/chromium/tools/metrics/ukm/ukm_model.py
+@@ -42,7 +42,7 @@ _INDEX_TYPE = models.ObjectNodeType(
+ _STATISTICS_TYPE = models.ObjectNodeType(
+ 'statistics',
+ attributes=[
+- ('export', str, r'^(?i)(|true|false)$'),
++ ('export', str, r'(?i)^(|true|false)$'),
+ ],
+ children=[
+ models.ChildType(_QUANTILES_TYPE.tag, _QUANTILES_TYPE, multiple=False),
+@@ -94,7 +94,7 @@ _EVENT_TYPE = models.ObjectNodeType(
+ 'event',
+ attributes=[
+ ('name', str, r'^[A-Za-z0-9.]+$'),
+- ('singular', str, r'^(?i)(|true|false)$'),
++ ('singular', str, r'(?i)^(|true|false)$'),
+ ],
+ alphabetization=[
+ (_OBSOLETE_TYPE.tag, _KEEP_ORDER),
diff --git a/patches/qt-everywhere-opensource-src-5.15.12/0203-remove-dependencies-on-third_party-catapult.patch b/patches/qt-everywhere-opensource-src-5.15.12/0203-remove-dependencies-on-third_party-catapult.patch
new file mode 100644
index 000000000..2d6e6992b
--- /dev/null
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0203-remove-dependencies-on-third_party-catapult.patch
@@ -0,0 +1,9973 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Fri, 17 Nov 2023 15:35:49 +0100
+Subject: [PATCH] remove dependencies on third_party catapult
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ qtwebengine/src/3rdparty/chromium/BUILD.gn | 11 -
+ .../src/3rdparty/chromium/chrome/chrome_paks.gni | 2 -
+ .../chrome/common/extensions/docs/server2/BUILD.gn | 2 -
+ .../src/3rdparty/chromium/chrome/test/BUILD.gn | 6 -
+ .../src/3rdparty/chromium/content/browser/BUILD.gn | 1 -
+ .../chromium/content/browser/tracing/tracing_ui.cc | 3 -
+ .../src/3rdparty/chromium/content/shell/BUILD.gn | 2 -
+ .../src/3rdparty/chromium/fuchsia/engine/BUILD.gn | 2 -
+ .../src/3rdparty/chromium/headless/BUILD.gn | 2 -
+ .../3rdparty/chromium/mojo/public/tools/BUILD.gn | 1 -
+ qtwebengine/src/3rdparty/chromium/testing/BUILD.gn | 1 -
+ .../breakpad/breakpad/autotools/config.sub | 2678 ++++++++++----------
+ .../breakpad/breakpad/autotools/ltmain.sh | 2 +-
+ .../chromium/third_party/icu/source/config.sub | 2666 +++++++++----------
+ .../third_party/nasm/autoconf/helpers/config.sub | 729 +++---
+ .../chromium/third_party/sqlite/src/config.sub | 689 ++---
+ .../chromium/third_party/sqlite/src/configure | 18 +-
+ .../chromium/third_party/sqlite/src/ltmain.sh | 2 +-
+ .../chromium/third_party/webrtc/test/BUILD.gn | 5 -
+ .../3rdparty/chromium/tools/binary_size/BUILD.gn | 1 -
+ .../src/3rdparty/chromium/tools/grit/BUILD.gn | 1 -
+ .../chromium/tools/gritsettings/resource_ids.spec | 6 -
+ .../src/3rdparty/chromium/tools/metrics/BUILD.gn | 1 -
+ .../tools/perf/chrome_telemetry_build/BUILD.gn | 3 -
+ .../perf/core/perfetto_binary_roller/BUILD.gn | 1 -
+ .../src/3rdparty/chromium/tools/polymer/BUILD.gn | 1 -
+ .../src/3rdparty/chromium/v8/tools/BUILD.gn | 4 -
+ .../src/3rdparty/chromium/weblayer/shell/BUILD.gn | 2 -
+ qtwebengine/src/core/qtwebengine_resources.gni | 2 -
+ 29 files changed, 3579 insertions(+), 3265 deletions(-)
+
+diff --git a/qtwebengine/src/3rdparty/chromium/BUILD.gn b/qtwebengine/src/3rdparty/chromium/BUILD.gn
+index 8d9657d545c4..59e9447f4560 100644
+--- a/qtwebengine/src/3rdparty/chromium/BUILD.gn
++++ b/qtwebengine/src/3rdparty/chromium/BUILD.gn
+@@ -239,7 +239,6 @@ group("gn_all") {
+ "//media/capture:capture_unittests",
+ "//media/cast:cast_unittests",
+ "//third_party/angle/src/tests:angle_white_box_tests",
+- "//third_party/catapult/telemetry:bitmaptools($host_toolchain)",
+ ]
+ } else if (is_ios && !use_qt) {
+ deps += [
+@@ -354,7 +353,6 @@ group("gn_all") {
+ "//net/android:net_junit_tests",
+ "//services:services_junit_tests",
+ "//testing/android/junit:junit_unit_tests",
+- "//third_party/catapult/devil",
+ "//third_party/smhasher:murmurhash3",
+ "//tools/android:android_tools",
+ "//tools/android:memconsumer",
+@@ -959,7 +957,6 @@ if (is_chromeos) {
+ "//third_party/dawn/src/tests:dawn_unittests",
+
+ # Blocked on https://github.com/catapult-project/catapult/issues/2297
+- #"//third_party/catapult/telemetry:bitmaptools",
+ "//tools/perf/clear_system_cache",
+ "//ui/ozone/gl:ozone_gl_unittests",
+ ]
+@@ -1037,7 +1034,6 @@ if (!is_ios && !use_qt) {
+ data_deps = [
+ "//chrome:chrome",
+ "//chrome/test/chromedriver",
+- "//third_party/catapult/third_party/typ",
+ ]
+ if (is_win) {
+ data_deps += [ "//build/win:copy_cdb_to_output" ]
+@@ -1084,7 +1080,6 @@ if (!is_ios && !use_qt) {
+ "//third_party/blink/public:blink_devtools_inspector_resources",
+ "//third_party/blink/public/mojom:mojom_platform_js_data_deps",
+ "//third_party/blink/renderer/core/html:js_files_for_form_controls_web_tests",
+- "//third_party/catapult/third_party/typ",
+ "//third_party/mesa_headers",
+ "//tools/imagediff",
+ ]
+@@ -1152,7 +1147,6 @@ if (!is_ios && !use_qt) {
+
+ if (is_android) {
+ data += [
+- "//third_party/catapult/",
+ "//build/android/",
+ ]
+ }
+@@ -1259,11 +1253,6 @@ if (!is_ios && !use_qt) {
+ "//third_party/blink/web_tests/StaleTestExpectations",
+ "//third_party/blink/web_tests/TestExpectations",
+ "//third_party/blink/web_tests/VirtualTestSuites",
+- "//third_party/catapult/common/py_utils/",
+- "//third_party/catapult/devil/",
+- "//third_party/catapult/dependency_manager/",
+- "//third_party/catapult/third_party/zipfile/",
+- "//third_party/catapult/third_party/typ/",
+ "//third_party/depot_tools/pylint",
+ "//third_party/depot_tools/pylint-1.5",
+ "//third_party/depot_tools/pylint_main.py",
+diff --git a/qtwebengine/src/3rdparty/chromium/chrome/chrome_paks.gni b/qtwebengine/src/3rdparty/chromium/chrome/chrome_paks.gni
+index 9323a774a565..0362b6501aaf 100644
+--- a/qtwebengine/src/3rdparty/chromium/chrome/chrome_paks.gni
++++ b/qtwebengine/src/3rdparty/chromium/chrome/chrome_paks.gni
+@@ -94,7 +94,6 @@ template("chrome_extra_paks") {
+ "$root_gen_dir/chrome/common_resources.pak",
+ "$root_gen_dir/components/autofill/core/browser/autofill_address_rewriter_resources.pak",
+ "$root_gen_dir/components/components_resources.pak",
+- "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
+ "$root_gen_dir/content/content_resources.pak",
+ "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
+ "$root_gen_dir/net/net_resources.pak",
+@@ -110,7 +109,6 @@ template("chrome_extra_paks") {
+ "//components/autofill/core/browser:autofill_address_rewriter_resources",
+ "//components/resources",
+ "//content:content_resources",
+- "//content/browser/tracing:resources",
+ "//mojo/public/js:resources",
+ "//net:net_resources",
+ "//skia:skia_resources",
+diff --git a/qtwebengine/src/3rdparty/chromium/chrome/common/extensions/docs/server2/BUILD.gn b/qtwebengine/src/3rdparty/chromium/chrome/common/extensions/docs/server2/BUILD.gn
+index 9da6184763ff..2f2203ab590a 100644
+--- a/qtwebengine/src/3rdparty/chromium/chrome/common/extensions/docs/server2/BUILD.gn
++++ b/qtwebengine/src/3rdparty/chromium/chrome/common/extensions/docs/server2/BUILD.gn
+@@ -38,6 +38,4 @@ group("extension_docserver_python_unittests") {
+ "//tools/json_comment_eater/json_comment_eater.py",
+ "//tools/json_schema_compiler/",
+ ]
+-
+- data_deps = [ "//third_party/catapult/third_party/typ" ]
+ }
+diff --git a/qtwebengine/src/3rdparty/chromium/chrome/test/BUILD.gn b/qtwebengine/src/3rdparty/chromium/chrome/test/BUILD.gn
+index 1a369fa56d2e..eb5bc9676fb9 100644
+--- a/qtwebengine/src/3rdparty/chromium/chrome/test/BUILD.gn
++++ b/qtwebengine/src/3rdparty/chromium/chrome/test/BUILD.gn
+@@ -7103,8 +7103,6 @@ if (!is_fuchsia && !is_android) {
+ "//chrome/test/data/password/captured_sites/",
+ "//chrome/test/data/web_page_replay_go_helper_scripts/automation_helper.js",
+ "//components/test/data/autofill/web_page_replay_support_files/",
+- "//third_party/catapult/telemetry/telemetry/bin/",
+- "//third_party/catapult/web_page_replay_go/deterministic.js",
+ ]
+
+ if (is_linux || is_chromeos || is_win) {
+@@ -7141,7 +7139,6 @@ if (!is_fuchsia && !is_android) {
+
+ # TODO(uwyiming@chromium.org) create a gn target for Web Page Replay Go (WPR Go) and only WPR Go.
+ # So that test targets requiring WPR Go does not pull down the whole telemetry tool chain.
+- "//third_party/catapult:telemetry_chrome_test_support",
+ "//third_party/hunspell",
+ "//third_party/icu",
+ "//third_party/libpng",
+@@ -7171,7 +7168,6 @@ if (!is_fuchsia && !is_android) {
+ deps = [ "//tools/perf/chrome_telemetry_build:telemetry_chrome_test" ]
+
+ data = [
+- "//third_party/catapult/telemetry/telemetry/internal/bin/",
+ "//tools/perf/run_telemetry_tests",
+
+ # For isolate contract.
+@@ -7189,7 +7185,6 @@ if (!is_fuchsia && !is_android) {
+ group("telemetry_gpu_unittests") {
+ testonly = true
+ deps = [
+- "//third_party/catapult:telemetry_chrome_test_support",
+ "//tools/metrics:metrics_python_tests",
+ ]
+ data = [
+@@ -7313,7 +7308,6 @@ if (is_mac || is_win || is_android) {
+ "//testing/scripts",
+ "//testing/test_env.py",
+ "//testing/xvfb.py",
+- "//third_party/catapult",
+ "//tools",
+ ]
+ }
+diff --git a/qtwebengine/src/3rdparty/chromium/content/browser/BUILD.gn b/qtwebengine/src/3rdparty/chromium/content/browser/BUILD.gn
+index 1466f33d462d..51039e0da19e 100644
+--- a/qtwebengine/src/3rdparty/chromium/content/browser/BUILD.gn
++++ b/qtwebengine/src/3rdparty/chromium/content/browser/BUILD.gn
+@@ -2169,7 +2169,6 @@ jumbo_static_library("browser") {
+ if (!is_android) {
+ deps += [
+ "//components/vector_icons",
+- "//content/browser/tracing:resources",
+ ]
+ }
+
+diff --git a/qtwebengine/src/3rdparty/chromium/content/browser/tracing/tracing_ui.cc b/qtwebengine/src/3rdparty/chromium/content/browser/tracing/tracing_ui.cc
+index 2bffb5eb3b02..8965922dfba3 100644
+--- a/qtwebengine/src/3rdparty/chromium/content/browser/tracing/tracing_ui.cc
++++ b/qtwebengine/src/3rdparty/chromium/content/browser/tracing/tracing_ui.cc
+@@ -27,7 +27,6 @@
+ #include "base/strings/stringprintf.h"
+ #include "base/trace_event/trace_event.h"
+ #include "base/values.h"
+-#include "content/browser/tracing/grit/tracing_resources.h"
+ #include "content/browser/tracing/tracing_controller_impl.h"
+ #include "content/public/browser/browser_context.h"
+ #include "content/public/browser/browser_thread.h"
+@@ -242,8 +241,6 @@ TracingUI::TracingUI(WebUI* web_ui)
+ WebUIDataSource* source = WebUIDataSource::Create(kChromeUITracingHost);
+ source->DisableTrustedTypesCSP();
+ source->UseStringsJs();
+- source->SetDefaultResource(IDR_TRACING_HTML);
+- source->AddResourcePath("tracing.js", IDR_TRACING_JS);
+ source->SetRequestFilter(base::BindRepeating(OnShouldHandleRequest),
+ base::BindRepeating(OnTracingRequest));
+ WebUIDataSource::Add(browser_context, source);
+diff --git a/qtwebengine/src/3rdparty/chromium/content/shell/BUILD.gn b/qtwebengine/src/3rdparty/chromium/content/shell/BUILD.gn
+index 56c0e8b48e38..6e4ffbe962dc 100644
+--- a/qtwebengine/src/3rdparty/chromium/content/shell/BUILD.gn
++++ b/qtwebengine/src/3rdparty/chromium/content/shell/BUILD.gn
+@@ -390,7 +390,6 @@ repack("pak") {
+ sources = [
+ "$root_gen_dir/content/app/resources/content_resources_100_percent.pak",
+ "$root_gen_dir/content/browser/resources/media/media_internals_resources.pak",
+- "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
+ "$root_gen_dir/content/browser/webrtc/resources/webrtc_internals_resources.pak",
+ "$root_gen_dir/content/content_resources.pak",
+ "$root_gen_dir/content/dev_ui_content_resources.pak",
+@@ -413,7 +412,6 @@ repack("pak") {
+ "//content:dev_ui_content_resources",
+ "//content/app/resources",
+ "//content/browser/resources/media:media_internals_resources",
+- "//content/browser/tracing:resources",
+ "//content/browser/webrtc/resources",
+ "//mojo/public/js:resources",
+ "//net:net_resources",
+diff --git a/qtwebengine/src/3rdparty/chromium/fuchsia/engine/BUILD.gn b/qtwebengine/src/3rdparty/chromium/fuchsia/engine/BUILD.gn
+index a502b7fc2732..39df2a7028ad 100644
+--- a/qtwebengine/src/3rdparty/chromium/fuchsia/engine/BUILD.gn
++++ b/qtwebengine/src/3rdparty/chromium/fuchsia/engine/BUILD.gn
+@@ -43,7 +43,6 @@ repack("web_engine_pak") {
+ "$root_gen_dir/components/components_resources.pak",
+ "$root_gen_dir/components/strings/components_strings_en-US.pak",
+ "$root_gen_dir/content/app/resources/content_resources_100_percent.pak",
+- "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
+ "$root_gen_dir/content/content_resources.pak",
+ "$root_gen_dir/content/dev_ui_content_resources.pak",
+ "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
+@@ -66,7 +65,6 @@ repack("web_engine_pak") {
+ "//content:content_resources",
+ "//content:dev_ui_content_resources",
+ "//content/app/resources",
+- "//content/browser/tracing:resources",
+ "//gpu/command_buffer/service",
+ "//mojo/public/js:resources",
+ "//net:net_resources",
+diff --git a/qtwebengine/src/3rdparty/chromium/headless/BUILD.gn b/qtwebengine/src/3rdparty/chromium/headless/BUILD.gn
+index d2ab76aed326..15e4b78009d9 100644
+--- a/qtwebengine/src/3rdparty/chromium/headless/BUILD.gn
++++ b/qtwebengine/src/3rdparty/chromium/headless/BUILD.gn
+@@ -37,7 +37,6 @@ repack("pak") {
+ "$root_gen_dir/components/components_resources.pak",
+ "$root_gen_dir/components/strings/components_strings_en-US.pak",
+ "$root_gen_dir/content/app/resources/content_resources_100_percent.pak",
+- "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
+ "$root_gen_dir/content/content_resources.pak",
+ "$root_gen_dir/content/dev_ui_content_resources.pak",
+ "$root_gen_dir/headless/headless_lib_resources.pak",
+@@ -65,7 +64,6 @@ repack("pak") {
+ "//content:content_resources",
+ "//content:dev_ui_content_resources",
+ "//content/app/resources",
+- "//content/browser/tracing:resources",
+ "//mojo/public/js:resources",
+ "//net:net_resources",
+ "//third_party/blink/public:resources",
+diff --git a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/BUILD.gn b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/BUILD.gn
+index 4c68350b3996..1cc01256f002 100644
+--- a/qtwebengine/src/3rdparty/chromium/mojo/public/tools/BUILD.gn
++++ b/qtwebengine/src/3rdparty/chromium/mojo/public/tools/BUILD.gn
+@@ -14,5 +14,4 @@ group("mojo_python_unittests") {
+ "//testing/xvfb.py",
+ ]
+ deps = [ "//mojo/public/tools/mojom/mojom:tests" ]
+- data_deps = [ "//third_party/catapult/third_party/typ/" ]
+ }
+diff --git a/qtwebengine/src/3rdparty/chromium/testing/BUILD.gn b/qtwebengine/src/3rdparty/chromium/testing/BUILD.gn
+index 56ebf8d46c9f..7d51bc0ccf74 100644
+--- a/qtwebengine/src/3rdparty/chromium/testing/BUILD.gn
++++ b/qtwebengine/src/3rdparty/chromium/testing/BUILD.gn
+@@ -27,7 +27,6 @@ group("run_perf_test") {
+
+ data_deps = [
+ ":test_scripts_shared",
+- "//third_party/catapult/tracing:convert_chart_json",
+ ]
+
+ if (is_android) {
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/autotools/config.sub b/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/autotools/config.sub
+index 87abeab6cdfc..de4259e40479 100755
+--- a/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/autotools/config.sub
++++ b/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/autotools/config.sub
+@@ -1,12 +1,14 @@
+ #! /bin/sh
+ # Configuration validation subroutine script.
+-# Copyright 1992-2017 Free Software Foundation, Inc.
++# Copyright 1992-2023 Free Software Foundation, Inc.
+
+-timestamp='2017-02-07'
++# shellcheck disable=SC2006,SC2268 # see below for rationale
++
++timestamp='2023-01-21'
+
+ # This file 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
++# 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
+@@ -15,7 +17,7 @@ timestamp='2017-02-07'
+ # 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/>.
++# along with this program; if not, see <https://www.gnu.org/licenses/>.
+ #
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+@@ -33,7 +35,7 @@ timestamp='2017-02-07'
+ # Otherwise, we print the canonical config type on stdout and succeed.
+
+ # You can get the latest version of this script from:
+-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
++# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
+
+ # This file is supposed to be the same for all GNU packages
+ # and recognize all the CPU types, system types and aliases
+@@ -50,6 +52,13 @@ timestamp='2017-02-07'
+ # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+ # It is wrong to echo any other type of specification.
+
++# The "shellcheck disable" line above the timestamp inhibits complaints
++# about features and limitations of the classic Bourne shell that were
++# superseded or lifted in POSIX. However, this script identifies a wide
++# variety of pre-POSIX systems that do not have POSIX shells at all, and
++# even some reasonably current systems (Solaris 10 as case-in-point) still
++# have a pre-POSIX /bin/sh.
++
+ me=`echo "$0" | sed -e 's,.*/,,'`
+
+ usage="\
+@@ -57,7 +66,7 @@ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
+
+ Canonicalize a configuration name.
+
+-Operation modes:
++Options:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+@@ -67,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>."
+ version="\
+ GNU config.sub ($timestamp)
+
+-Copyright 1992-2017 Free Software Foundation, Inc.
++Copyright 1992-2023 Free Software Foundation, Inc.
+
+ This is free software; see the source for copying conditions. There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -89,12 +98,12 @@ while test $# -gt 0 ; do
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+- echo "$me: invalid option $1$help"
++ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+
+ *local*)
+ # First pass through any local machine types.
+- echo $1
++ echo "$1"
+ exit ;;
+
+ * )
+@@ -110,1247 +119,1186 @@ case $# in
+ exit 1;;
+ esac
+
+-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+-# Here we must recognize all the valid KERNEL-OS combinations.
+-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+-case $maybe_os in
+- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+- linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+- knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
+- kopensolaris*-gnu* | cloudabi*-eabi* | \
+- storm-chaos* | os2-emx* | rtmk-nova*)
+- os=-$maybe_os
+- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+- ;;
+- android-linux)
+- os=-linux-android
+- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+- ;;
+- *)
+- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+- if [ $basic_machine != $1 ]
+- then os=`echo $1 | sed 's/.*-/-/'`
+- else os=; fi
+- ;;
+-esac
++# Split fields of configuration type
++# shellcheck disable=SC2162
++saved_IFS=$IFS
++IFS="-" read field1 field2 field3 field4 <<EOF
++$1
++EOF
++IFS=$saved_IFS
+
+-### Let's recognize common machines as not being operating systems so
+-### that things like config.sub decstation-3100 work. We also
+-### recognize some manufacturers as not being operating systems, so we
+-### can provide default operating systems below.
+-case $os in
+- -sun*os*)
+- # Prevent following clause from handling this invalid input.
+- ;;
+- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+- -apple | -axis | -knuth | -cray | -microblaze*)
+- os=
+- basic_machine=$1
+- ;;
+- -bluegene*)
+- os=-cnk
+- ;;
+- -sim | -cisco | -oki | -wec | -winbond)
+- os=
+- basic_machine=$1
+- ;;
+- -scout)
+- ;;
+- -wrs)
+- os=-vxworks
+- basic_machine=$1
+- ;;
+- -chorusos*)
+- os=-chorusos
+- basic_machine=$1
+- ;;
+- -chorusrdb)
+- os=-chorusrdb
+- basic_machine=$1
+- ;;
+- -hiux*)
+- os=-hiuxwe2
+- ;;
+- -sco6)
+- os=-sco5v6
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+- ;;
+- -sco5)
+- os=-sco3.2v5
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+- ;;
+- -sco4)
+- os=-sco3.2v4
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+- ;;
+- -sco3.2.[4-9]*)
+- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+- ;;
+- -sco3.2v[4-9]*)
+- # Don't forget version if it is 3.2v4 or newer.
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+- ;;
+- -sco5v6*)
+- # Don't forget version if it is 3.2v4 or newer.
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+- ;;
+- -sco*)
+- os=-sco3.2v2
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+- ;;
+- -udk*)
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+- ;;
+- -isc)
+- os=-isc2.2
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+- ;;
+- -clix*)
+- basic_machine=clipper-intergraph
+- ;;
+- -isc*)
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+- ;;
+- -lynx*178)
+- os=-lynxos178
+- ;;
+- -lynx*5)
+- os=-lynxos5
+- ;;
+- -lynx*)
+- os=-lynxos
++# Separate into logical components for further validation
++case $1 in
++ *-*-*-*-*)
++ echo Invalid configuration \`"$1"\': more than four components >&2
++ exit 1
+ ;;
+- -ptx*)
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
++ *-*-*-*)
++ basic_machine=$field1-$field2
++ basic_os=$field3-$field4
+ ;;
+- -windowsnt*)
+- os=`echo $os | sed -e 's/windowsnt/winnt/'`
++ *-*-*)
++ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
++ # parts
++ maybe_os=$field2-$field3
++ case $maybe_os in
++ nto-qnx* | linux-* | uclinux-uclibc* \
++ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
++ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
++ | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
++ basic_machine=$field1
++ basic_os=$maybe_os
++ ;;
++ android-linux)
++ basic_machine=$field1-unknown
++ basic_os=linux-android
++ ;;
++ *)
++ basic_machine=$field1-$field2
++ basic_os=$field3
++ ;;
++ esac
+ ;;
+- -psos*)
+- os=-psos
++ *-*)
++ # A lone config we happen to match not fitting any pattern
++ case $field1-$field2 in
++ decstation-3100)
++ basic_machine=mips-dec
++ basic_os=
++ ;;
++ *-*)
++ # Second component is usually, but not always the OS
++ case $field2 in
++ # Prevent following clause from handling this valid os
++ sun*os*)
++ basic_machine=$field1
++ basic_os=$field2
++ ;;
++ zephyr*)
++ basic_machine=$field1-unknown
++ basic_os=$field2
++ ;;
++ # Manufacturers
++ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
++ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
++ | unicom* | ibm* | next | hp | isi* | apollo | altos* \
++ | convergent* | ncr* | news | 32* | 3600* | 3100* \
++ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
++ | ultra | tti* | harris | dolphin | highlevel | gould \
++ | cbm | ns | masscomp | apple | axis | knuth | cray \
++ | microblaze* | sim | cisco \
++ | oki | wec | wrs | winbond)
++ basic_machine=$field1-$field2
++ basic_os=
++ ;;
++ *)
++ basic_machine=$field1
++ basic_os=$field2
++ ;;
++ esac
++ ;;
++ esac
+ ;;
+- -mint | -mint[0-9]*)
+- basic_machine=m68k-atari
+- os=-mint
++ *)
++ # Convert single-component short-hands not valid as part of
++ # multi-component configurations.
++ case $field1 in
++ 386bsd)
++ basic_machine=i386-pc
++ basic_os=bsd
++ ;;
++ a29khif)
++ basic_machine=a29k-amd
++ basic_os=udi
++ ;;
++ adobe68k)
++ basic_machine=m68010-adobe
++ basic_os=scout
++ ;;
++ alliant)
++ basic_machine=fx80-alliant
++ basic_os=
++ ;;
++ altos | altos3068)
++ basic_machine=m68k-altos
++ basic_os=
++ ;;
++ am29k)
++ basic_machine=a29k-none
++ basic_os=bsd
++ ;;
++ amdahl)
++ basic_machine=580-amdahl
++ basic_os=sysv
++ ;;
++ amiga)
++ basic_machine=m68k-unknown
++ basic_os=
++ ;;
++ amigaos | amigados)
++ basic_machine=m68k-unknown
++ basic_os=amigaos
++ ;;
++ amigaunix | amix)
++ basic_machine=m68k-unknown
++ basic_os=sysv4
++ ;;
++ apollo68)
++ basic_machine=m68k-apollo
++ basic_os=sysv
++ ;;
++ apollo68bsd)
++ basic_machine=m68k-apollo
++ basic_os=bsd
++ ;;
++ aros)
++ basic_machine=i386-pc
++ basic_os=aros
++ ;;
++ aux)
++ basic_machine=m68k-apple
++ basic_os=aux
++ ;;
++ balance)
++ basic_machine=ns32k-sequent
++ basic_os=dynix
++ ;;
++ blackfin)
++ basic_machine=bfin-unknown
++ basic_os=linux
++ ;;
++ cegcc)
++ basic_machine=arm-unknown
++ basic_os=cegcc
++ ;;
++ convex-c1)
++ basic_machine=c1-convex
++ basic_os=bsd
++ ;;
++ convex-c2)
++ basic_machine=c2-convex
++ basic_os=bsd
++ ;;
++ convex-c32)
++ basic_machine=c32-convex
++ basic_os=bsd
++ ;;
++ convex-c34)
++ basic_machine=c34-convex
++ basic_os=bsd
++ ;;
++ convex-c38)
++ basic_machine=c38-convex
++ basic_os=bsd
++ ;;
++ cray)
++ basic_machine=j90-cray
++ basic_os=unicos
++ ;;
++ crds | unos)
++ basic_machine=m68k-crds
++ basic_os=
++ ;;
++ da30)
++ basic_machine=m68k-da30
++ basic_os=
++ ;;
++ decstation | pmax | pmin | dec3100 | decstatn)
++ basic_machine=mips-dec
++ basic_os=
++ ;;
++ delta88)
++ basic_machine=m88k-motorola
++ basic_os=sysv3
++ ;;
++ dicos)
++ basic_machine=i686-pc
++ basic_os=dicos
++ ;;
++ djgpp)
++ basic_machine=i586-pc
++ basic_os=msdosdjgpp
++ ;;
++ ebmon29k)
++ basic_machine=a29k-amd
++ basic_os=ebmon
++ ;;
++ es1800 | OSE68k | ose68k | ose | OSE)
++ basic_machine=m68k-ericsson
++ basic_os=ose
++ ;;
++ gmicro)
++ basic_machine=tron-gmicro
++ basic_os=sysv
++ ;;
++ go32)
++ basic_machine=i386-pc
++ basic_os=go32
++ ;;
++ h8300hms)
++ basic_machine=h8300-hitachi
++ basic_os=hms
++ ;;
++ h8300xray)
++ basic_machine=h8300-hitachi
++ basic_os=xray
++ ;;
++ h8500hms)
++ basic_machine=h8500-hitachi
++ basic_os=hms
++ ;;
++ harris)
++ basic_machine=m88k-harris
++ basic_os=sysv3
++ ;;
++ hp300 | hp300hpux)
++ basic_machine=m68k-hp
++ basic_os=hpux
++ ;;
++ hp300bsd)
++ basic_machine=m68k-hp
++ basic_os=bsd
++ ;;
++ hppaosf)
++ basic_machine=hppa1.1-hp
++ basic_os=osf
++ ;;
++ hppro)
++ basic_machine=hppa1.1-hp
++ basic_os=proelf
++ ;;
++ i386mach)
++ basic_machine=i386-mach
++ basic_os=mach
++ ;;
++ isi68 | isi)
++ basic_machine=m68k-isi
++ basic_os=sysv
++ ;;
++ m68knommu)
++ basic_machine=m68k-unknown
++ basic_os=linux
++ ;;
++ magnum | m3230)
++ basic_machine=mips-mips
++ basic_os=sysv
++ ;;
++ merlin)
++ basic_machine=ns32k-utek
++ basic_os=sysv
++ ;;
++ mingw64)
++ basic_machine=x86_64-pc
++ basic_os=mingw64
++ ;;
++ mingw32)
++ basic_machine=i686-pc
++ basic_os=mingw32
++ ;;
++ mingw32ce)
++ basic_machine=arm-unknown
++ basic_os=mingw32ce
++ ;;
++ monitor)
++ basic_machine=m68k-rom68k
++ basic_os=coff
++ ;;
++ morphos)
++ basic_machine=powerpc-unknown
++ basic_os=morphos
++ ;;
++ moxiebox)
++ basic_machine=moxie-unknown
++ basic_os=moxiebox
++ ;;
++ msdos)
++ basic_machine=i386-pc
++ basic_os=msdos
++ ;;
++ msys)
++ basic_machine=i686-pc
++ basic_os=msys
++ ;;
++ mvs)
++ basic_machine=i370-ibm
++ basic_os=mvs
++ ;;
++ nacl)
++ basic_machine=le32-unknown
++ basic_os=nacl
++ ;;
++ ncr3000)
++ basic_machine=i486-ncr
++ basic_os=sysv4
++ ;;
++ netbsd386)
++ basic_machine=i386-pc
++ basic_os=netbsd
++ ;;
++ netwinder)
++ basic_machine=armv4l-rebel
++ basic_os=linux
++ ;;
++ news | news700 | news800 | news900)
++ basic_machine=m68k-sony
++ basic_os=newsos
++ ;;
++ news1000)
++ basic_machine=m68030-sony
++ basic_os=newsos
++ ;;
++ necv70)
++ basic_machine=v70-nec
++ basic_os=sysv
++ ;;
++ nh3000)
++ basic_machine=m68k-harris
++ basic_os=cxux
++ ;;
++ nh[45]000)
++ basic_machine=m88k-harris
++ basic_os=cxux
++ ;;
++ nindy960)
++ basic_machine=i960-intel
++ basic_os=nindy
++ ;;
++ mon960)
++ basic_machine=i960-intel
++ basic_os=mon960
++ ;;
++ nonstopux)
++ basic_machine=mips-compaq
++ basic_os=nonstopux
++ ;;
++ os400)
++ basic_machine=powerpc-ibm
++ basic_os=os400
++ ;;
++ OSE68000 | ose68000)
++ basic_machine=m68000-ericsson
++ basic_os=ose
++ ;;
++ os68k)
++ basic_machine=m68k-none
++ basic_os=os68k
++ ;;
++ paragon)
++ basic_machine=i860-intel
++ basic_os=osf
++ ;;
++ parisc)
++ basic_machine=hppa-unknown
++ basic_os=linux
++ ;;
++ psp)
++ basic_machine=mipsallegrexel-sony
++ basic_os=psp
++ ;;
++ pw32)
++ basic_machine=i586-unknown
++ basic_os=pw32
++ ;;
++ rdos | rdos64)
++ basic_machine=x86_64-pc
++ basic_os=rdos
++ ;;
++ rdos32)
++ basic_machine=i386-pc
++ basic_os=rdos
++ ;;
++ rom68k)
++ basic_machine=m68k-rom68k
++ basic_os=coff
++ ;;
++ sa29200)
++ basic_machine=a29k-amd
++ basic_os=udi
++ ;;
++ sei)
++ basic_machine=mips-sei
++ basic_os=seiux
++ ;;
++ sequent)
++ basic_machine=i386-sequent
++ basic_os=
++ ;;
++ sps7)
++ basic_machine=m68k-bull
++ basic_os=sysv2
++ ;;
++ st2000)
++ basic_machine=m68k-tandem
++ basic_os=
++ ;;
++ stratus)
++ basic_machine=i860-stratus
++ basic_os=sysv4
++ ;;
++ sun2)
++ basic_machine=m68000-sun
++ basic_os=
++ ;;
++ sun2os3)
++ basic_machine=m68000-sun
++ basic_os=sunos3
++ ;;
++ sun2os4)
++ basic_machine=m68000-sun
++ basic_os=sunos4
++ ;;
++ sun3)
++ basic_machine=m68k-sun
++ basic_os=
++ ;;
++ sun3os3)
++ basic_machine=m68k-sun
++ basic_os=sunos3
++ ;;
++ sun3os4)
++ basic_machine=m68k-sun
++ basic_os=sunos4
++ ;;
++ sun4)
++ basic_machine=sparc-sun
++ basic_os=
++ ;;
++ sun4os3)
++ basic_machine=sparc-sun
++ basic_os=sunos3
++ ;;
++ sun4os4)
++ basic_machine=sparc-sun
++ basic_os=sunos4
++ ;;
++ sun4sol2)
++ basic_machine=sparc-sun
++ basic_os=solaris2
++ ;;
++ sun386 | sun386i | roadrunner)
++ basic_machine=i386-sun
++ basic_os=
++ ;;
++ sv1)
++ basic_machine=sv1-cray
++ basic_os=unicos
++ ;;
++ symmetry)
++ basic_machine=i386-sequent
++ basic_os=dynix
++ ;;
++ t3e)
++ basic_machine=alphaev5-cray
++ basic_os=unicos
++ ;;
++ t90)
++ basic_machine=t90-cray
++ basic_os=unicos
++ ;;
++ toad1)
++ basic_machine=pdp10-xkl
++ basic_os=tops20
++ ;;
++ tpf)
++ basic_machine=s390x-ibm
++ basic_os=tpf
++ ;;
++ udi29k)
++ basic_machine=a29k-amd
++ basic_os=udi
++ ;;
++ ultra3)
++ basic_machine=a29k-nyu
++ basic_os=sym1
++ ;;
++ v810 | necv810)
++ basic_machine=v810-nec
++ basic_os=none
++ ;;
++ vaxv)
++ basic_machine=vax-dec
++ basic_os=sysv
++ ;;
++ vms)
++ basic_machine=vax-dec
++ basic_os=vms
++ ;;
++ vsta)
++ basic_machine=i386-pc
++ basic_os=vsta
++ ;;
++ vxworks960)
++ basic_machine=i960-wrs
++ basic_os=vxworks
++ ;;
++ vxworks68)
++ basic_machine=m68k-wrs
++ basic_os=vxworks
++ ;;
++ vxworks29k)
++ basic_machine=a29k-wrs
++ basic_os=vxworks
++ ;;
++ xbox)
++ basic_machine=i686-pc
++ basic_os=mingw32
++ ;;
++ ymp)
++ basic_machine=ymp-cray
++ basic_os=unicos
++ ;;
++ *)
++ basic_machine=$1
++ basic_os=
++ ;;
++ esac
+ ;;
+ esac
+
+-# Decode aliases for certain CPU-COMPANY combinations.
++# Decode 1-component or ad-hoc basic machines
+ case $basic_machine in
+- # Recognize the basic CPU types without company name.
+- # Some are omitted here because they have special meanings below.
+- 1750a | 580 \
+- | a29k \
+- | aarch64 | aarch64_be \
+- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+- | am33_2.0 \
+- | arc | arceb \
+- | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+- | avr | avr32 \
+- | ba \
+- | be32 | be64 \
+- | bfin \
+- | c4x | c8051 | clipper \
+- | d10v | d30v | dlx | dsp16xx \
+- | e2k | epiphany \
+- | fido | fr30 | frv | ft32 \
+- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+- | hexagon \
+- | i370 | i860 | i960 | ia64 \
+- | ip2k | iq2000 \
+- | k1om \
+- | le32 | le64 \
+- | lm32 \
+- | m32c | m32r | m32rle | m68000 | m68k | m88k \
+- | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
+- | mips | mipsbe | mipseb | mipsel | mipsle \
+- | mips16 \
+- | mips64 | mips64el \
+- | mips64octeon | mips64octeonel \
+- | mips64orion | mips64orionel \
+- | mips64r5900 | mips64r5900el \
+- | mips64vr | mips64vrel \
+- | mips64vr4100 | mips64vr4100el \
+- | mips64vr4300 | mips64vr4300el \
+- | mips64vr5000 | mips64vr5000el \
+- | mips64vr5900 | mips64vr5900el \
+- | mipsisa32 | mipsisa32el \
+- | mipsisa32r2 | mipsisa32r2el \
+- | mipsisa32r6 | mipsisa32r6el \
+- | mipsisa64 | mipsisa64el \
+- | mipsisa64r2 | mipsisa64r2el \
+- | mipsisa64r6 | mipsisa64r6el \
+- | mipsisa64sb1 | mipsisa64sb1el \
+- | mipsisa64sr71k | mipsisa64sr71kel \
+- | mipsr5900 | mipsr5900el \
+- | mipstx39 | mipstx39el \
+- | mn10200 | mn10300 \
+- | moxie \
+- | mt \
+- | msp430 \
+- | nds32 | nds32le | nds32be \
+- | nios | nios2 | nios2eb | nios2el \
+- | ns16k | ns32k \
+- | open8 | or1k | or1knd | or32 \
+- | pdp10 | pdp11 | pj | pjl \
+- | powerpc | powerpc64 | powerpc64le | powerpcle \
+- | pru \
+- | pyramid \
+- | riscv32 | riscv64 \
+- | rl78 | rx \
+- | score \
+- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+- | sh64 | sh64le \
+- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+- | spu \
+- | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+- | ubicom32 \
+- | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+- | visium \
+- | we32k \
+- | x86 | xc16x | xstormy16 | xtensa \
+- | z8k | z80)
+- basic_machine=$basic_machine-unknown
+- ;;
+- c54x)
+- basic_machine=tic54x-unknown
+- ;;
+- c55x)
+- basic_machine=tic55x-unknown
+- ;;
+- c6x)
+- basic_machine=tic6x-unknown
+- ;;
+- leon|leon[3-9])
+- basic_machine=sparc-$basic_machine
+- ;;
+- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
+- basic_machine=$basic_machine-unknown
+- os=-none
++ # Here we handle the default manufacturer of certain CPU types. It is in
++ # some cases the only manufacturer, in others, it is the most popular.
++ w89k)
++ cpu=hppa1.1
++ vendor=winbond
+ ;;
+- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
++ op50n)
++ cpu=hppa1.1
++ vendor=oki
+ ;;
+- ms1)
+- basic_machine=mt-unknown
++ op60c)
++ cpu=hppa1.1
++ vendor=oki
+ ;;
+-
+- strongarm | thumb | xscale)
+- basic_machine=arm-unknown
++ ibm*)
++ cpu=i370
++ vendor=ibm
+ ;;
+- xgate)
+- basic_machine=$basic_machine-unknown
+- os=-none
++ orion105)
++ cpu=clipper
++ vendor=highlevel
+ ;;
+- xscaleeb)
+- basic_machine=armeb-unknown
++ mac | mpw | mac-mpw)
++ cpu=m68k
++ vendor=apple
+ ;;
+-
+- xscaleel)
+- basic_machine=armel-unknown
++ pmac | pmac-mpw)
++ cpu=powerpc
++ vendor=apple
+ ;;
+
+- # We use `pc' rather than `unknown'
+- # because (1) that's what they normally are, and
+- # (2) the word "unknown" tends to confuse beginning users.
+- i*86 | x86_64)
+- basic_machine=$basic_machine-pc
+- ;;
+- # Object if more than one company name word.
+- *-*-*)
+- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+- exit 1
+- ;;
+- # Recognize the basic CPU types with company name.
+- 580-* \
+- | a29k-* \
+- | aarch64-* | aarch64_be-* \
+- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
+- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+- | avr-* | avr32-* \
+- | ba-* \
+- | be32-* | be64-* \
+- | bfin-* | bs2000-* \
+- | c[123]* | c30-* | [cjt]90-* | c4x-* \
+- | c8051-* | clipper-* | craynv-* | cydra-* \
+- | d10v-* | d30v-* | dlx-* \
+- | e2k-* | elxsi-* \
+- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+- | h8300-* | h8500-* \
+- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+- | hexagon-* \
+- | i*86-* | i860-* | i960-* | ia64-* \
+- | ip2k-* | iq2000-* \
+- | k1om-* \
+- | le32-* | le64-* \
+- | lm32-* \
+- | m32c-* | m32r-* | m32rle-* \
+- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+- | microblaze-* | microblazeel-* \
+- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+- | mips16-* \
+- | mips64-* | mips64el-* \
+- | mips64octeon-* | mips64octeonel-* \
+- | mips64orion-* | mips64orionel-* \
+- | mips64r5900-* | mips64r5900el-* \
+- | mips64vr-* | mips64vrel-* \
+- | mips64vr4100-* | mips64vr4100el-* \
+- | mips64vr4300-* | mips64vr4300el-* \
+- | mips64vr5000-* | mips64vr5000el-* \
+- | mips64vr5900-* | mips64vr5900el-* \
+- | mipsisa32-* | mipsisa32el-* \
+- | mipsisa32r2-* | mipsisa32r2el-* \
+- | mipsisa32r6-* | mipsisa32r6el-* \
+- | mipsisa64-* | mipsisa64el-* \
+- | mipsisa64r2-* | mipsisa64r2el-* \
+- | mipsisa64r6-* | mipsisa64r6el-* \
+- | mipsisa64sb1-* | mipsisa64sb1el-* \
+- | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+- | mipsr5900-* | mipsr5900el-* \
+- | mipstx39-* | mipstx39el-* \
+- | mmix-* \
+- | mt-* \
+- | msp430-* \
+- | nds32-* | nds32le-* | nds32be-* \
+- | nios-* | nios2-* | nios2eb-* | nios2el-* \
+- | none-* | np1-* | ns16k-* | ns32k-* \
+- | open8-* \
+- | or1k*-* \
+- | orion-* \
+- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+- | pru-* \
+- | pyramid-* \
+- | riscv32-* | riscv64-* \
+- | rl78-* | romp-* | rs6000-* | rx-* \
+- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+- | sparclite-* \
+- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
+- | tahoe-* \
+- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+- | tile*-* \
+- | tron-* \
+- | ubicom32-* \
+- | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+- | vax-* \
+- | visium-* \
+- | we32k-* \
+- | x86-* | x86_64-* | xc16x-* | xps100-* \
+- | xstormy16-* | xtensa*-* \
+- | ymp-* \
+- | z8k-* | z80-*)
+- ;;
+- # Recognize the basic CPU types without company name, with glob match.
+- xtensa*)
+- basic_machine=$basic_machine-unknown
+- ;;
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+- 386bsd)
+- basic_machine=i386-unknown
+- os=-bsd
+- ;;
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+- basic_machine=m68000-att
++ cpu=m68000
++ vendor=att
+ ;;
+ 3b*)
+- basic_machine=we32k-att
+- ;;
+- a29khif)
+- basic_machine=a29k-amd
+- os=-udi
+- ;;
+- abacus)
+- basic_machine=abacus-unknown
+- ;;
+- adobe68k)
+- basic_machine=m68010-adobe
+- os=-scout
+- ;;
+- alliant | fx80)
+- basic_machine=fx80-alliant
+- ;;
+- altos | altos3068)
+- basic_machine=m68k-altos
+- ;;
+- am29k)
+- basic_machine=a29k-none
+- os=-bsd
+- ;;
+- amd64)
+- basic_machine=x86_64-pc
+- ;;
+- amd64-*)
+- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+- ;;
+- amdahl)
+- basic_machine=580-amdahl
+- os=-sysv
+- ;;
+- amiga | amiga-*)
+- basic_machine=m68k-unknown
+- ;;
+- amigaos | amigados)
+- basic_machine=m68k-unknown
+- os=-amigaos
+- ;;
+- amigaunix | amix)
+- basic_machine=m68k-unknown
+- os=-sysv4
+- ;;
+- apollo68)
+- basic_machine=m68k-apollo
+- os=-sysv
+- ;;
+- apollo68bsd)
+- basic_machine=m68k-apollo
+- os=-bsd
+- ;;
+- aros)
+- basic_machine=i386-pc
+- os=-aros
+- ;;
+- asmjs)
+- basic_machine=asmjs-unknown
+- ;;
+- aux)
+- basic_machine=m68k-apple
+- os=-aux
+- ;;
+- balance)
+- basic_machine=ns32k-sequent
+- os=-dynix
+- ;;
+- blackfin)
+- basic_machine=bfin-unknown
+- os=-linux
+- ;;
+- blackfin-*)
+- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+- os=-linux
++ cpu=we32k
++ vendor=att
+ ;;
+ bluegene*)
+- basic_machine=powerpc-ibm
+- os=-cnk
+- ;;
+- c54x-*)
+- basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+- ;;
+- c55x-*)
+- basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+- ;;
+- c6x-*)
+- basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+- ;;
+- c90)
+- basic_machine=c90-cray
+- os=-unicos
+- ;;
+- cegcc)
+- basic_machine=arm-unknown
+- os=-cegcc
+- ;;
+- convex-c1)
+- basic_machine=c1-convex
+- os=-bsd
+- ;;
+- convex-c2)
+- basic_machine=c2-convex
+- os=-bsd
+- ;;
+- convex-c32)
+- basic_machine=c32-convex
+- os=-bsd
+- ;;
+- convex-c34)
+- basic_machine=c34-convex
+- os=-bsd
+- ;;
+- convex-c38)
+- basic_machine=c38-convex
+- os=-bsd
+- ;;
+- cray | j90)
+- basic_machine=j90-cray
+- os=-unicos
+- ;;
+- craynv)
+- basic_machine=craynv-cray
+- os=-unicosmp
+- ;;
+- cr16 | cr16-*)
+- basic_machine=cr16-unknown
+- os=-elf
+- ;;
+- crds | unos)
+- basic_machine=m68k-crds
+- ;;
+- crisv32 | crisv32-* | etraxfs*)
+- basic_machine=crisv32-axis
+- ;;
+- cris | cris-* | etrax*)
+- basic_machine=cris-axis
+- ;;
+- crx)
+- basic_machine=crx-unknown
+- os=-elf
+- ;;
+- da30 | da30-*)
+- basic_machine=m68k-da30
+- ;;
+- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+- basic_machine=mips-dec
++ cpu=powerpc
++ vendor=ibm
++ basic_os=cnk
+ ;;
+ decsystem10* | dec10*)
+- basic_machine=pdp10-dec
+- os=-tops10
++ cpu=pdp10
++ vendor=dec
++ basic_os=tops10
+ ;;
+ decsystem20* | dec20*)
+- basic_machine=pdp10-dec
+- os=-tops20
++ cpu=pdp10
++ vendor=dec
++ basic_os=tops20
+ ;;
+ delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+- basic_machine=m68k-motorola
++ cpu=m68k
++ vendor=motorola
+ ;;
+- delta88)
+- basic_machine=m88k-motorola
+- os=-sysv3
+- ;;
+- dicos)
+- basic_machine=i686-pc
+- os=-dicos
+- ;;
+- djgpp)
+- basic_machine=i586-pc
+- os=-msdosdjgpp
+- ;;
+- dpx20 | dpx20-*)
+- basic_machine=rs6000-bull
+- os=-bosx
+- ;;
+- dpx2* | dpx2*-bull)
+- basic_machine=m68k-bull
+- os=-sysv3
+- ;;
+- e500v[12])
+- basic_machine=powerpc-unknown
+- os=$os"spe"
+- ;;
+- e500v[12]-*)
+- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+- os=$os"spe"
+- ;;
+- ebmon29k)
+- basic_machine=a29k-amd
+- os=-ebmon
+- ;;
+- elxsi)
+- basic_machine=elxsi-elxsi
+- os=-bsd
++ dpx2*)
++ cpu=m68k
++ vendor=bull
++ basic_os=sysv3
+ ;;
+ encore | umax | mmax)
+- basic_machine=ns32k-encore
++ cpu=ns32k
++ vendor=encore
+ ;;
+- es1800 | OSE68k | ose68k | ose | OSE)
+- basic_machine=m68k-ericsson
+- os=-ose
++ elxsi)
++ cpu=elxsi
++ vendor=elxsi
++ basic_os=${basic_os:-bsd}
+ ;;
+ fx2800)
+- basic_machine=i860-alliant
++ cpu=i860
++ vendor=alliant
+ ;;
+ genix)
+- basic_machine=ns32k-ns
+- ;;
+- gmicro)
+- basic_machine=tron-gmicro
+- os=-sysv
+- ;;
+- go32)
+- basic_machine=i386-pc
+- os=-go32
++ cpu=ns32k
++ vendor=ns
+ ;;
+ h3050r* | hiux*)
+- basic_machine=hppa1.1-hitachi
+- os=-hiuxwe2
+- ;;
+- h8300hms)
+- basic_machine=h8300-hitachi
+- os=-hms
+- ;;
+- h8300xray)
+- basic_machine=h8300-hitachi
+- os=-xray
+- ;;
+- h8500hms)
+- basic_machine=h8500-hitachi
+- os=-hms
+- ;;
+- harris)
+- basic_machine=m88k-harris
+- os=-sysv3
+- ;;
+- hp300-*)
+- basic_machine=m68k-hp
+- ;;
+- hp300bsd)
+- basic_machine=m68k-hp
+- os=-bsd
+- ;;
+- hp300hpux)
+- basic_machine=m68k-hp
+- os=-hpux
++ cpu=hppa1.1
++ vendor=hitachi
++ basic_os=hiuxwe2
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+- basic_machine=hppa1.0-hp
++ cpu=hppa1.0
++ vendor=hp
+ ;;
+ hp9k2[0-9][0-9] | hp9k31[0-9])
+- basic_machine=m68000-hp
++ cpu=m68000
++ vendor=hp
+ ;;
+ hp9k3[2-9][0-9])
+- basic_machine=m68k-hp
++ cpu=m68k
++ vendor=hp
+ ;;
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
+- basic_machine=hppa1.0-hp
++ cpu=hppa1.0
++ vendor=hp
+ ;;
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
+- basic_machine=hppa1.1-hp
++ cpu=hppa1.1
++ vendor=hp
+ ;;
+ hp9k78[0-9] | hp78[0-9])
+ # FIXME: really hppa2.0-hp
+- basic_machine=hppa1.1-hp
++ cpu=hppa1.1
++ vendor=hp
+ ;;
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+ # FIXME: really hppa2.0-hp
+- basic_machine=hppa1.1-hp
++ cpu=hppa1.1
++ vendor=hp
+ ;;
+ hp9k8[0-9][13679] | hp8[0-9][13679])
+- basic_machine=hppa1.1-hp
++ cpu=hppa1.1
++ vendor=hp
+ ;;
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
+- basic_machine=hppa1.0-hp
+- ;;
+- hppa-next)
+- os=-nextstep3
+- ;;
+- hppaosf)
+- basic_machine=hppa1.1-hp
+- os=-osf
+- ;;
+- hppro)
+- basic_machine=hppa1.1-hp
+- os=-proelf
+- ;;
+- i370-ibm* | ibm*)
+- basic_machine=i370-ibm
++ cpu=hppa1.0
++ vendor=hp
+ ;;
+ i*86v32)
+- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+- os=-sysv32
++ cpu=`echo "$1" | sed -e 's/86.*/86/'`
++ vendor=pc
++ basic_os=sysv32
+ ;;
+ i*86v4*)
+- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+- os=-sysv4
++ cpu=`echo "$1" | sed -e 's/86.*/86/'`
++ vendor=pc
++ basic_os=sysv4
+ ;;
+ i*86v)
+- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+- os=-sysv
++ cpu=`echo "$1" | sed -e 's/86.*/86/'`
++ vendor=pc
++ basic_os=sysv
+ ;;
+ i*86sol2)
+- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+- os=-solaris2
++ cpu=`echo "$1" | sed -e 's/86.*/86/'`
++ vendor=pc
++ basic_os=solaris2
+ ;;
+- i386mach)
+- basic_machine=i386-mach
+- os=-mach
+- ;;
+- i386-vsta | vsta)
+- basic_machine=i386-unknown
+- os=-vsta
++ j90 | j90-cray)
++ cpu=j90
++ vendor=cray
++ basic_os=${basic_os:-unicos}
+ ;;
+ iris | iris4d)
+- basic_machine=mips-sgi
+- case $os in
+- -irix*)
++ cpu=mips
++ vendor=sgi
++ case $basic_os in
++ irix*)
+ ;;
+ *)
+- os=-irix4
++ basic_os=irix4
+ ;;
+ esac
+ ;;
+- isi68 | isi)
+- basic_machine=m68k-isi
+- os=-sysv
+- ;;
+- leon-*|leon[3-9]-*)
+- basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
+- ;;
+- m68knommu)
+- basic_machine=m68k-unknown
+- os=-linux
+- ;;
+- m68knommu-*)
+- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+- os=-linux
+- ;;
+- m88k-omron*)
+- basic_machine=m88k-omron
+- ;;
+- magnum | m3230)
+- basic_machine=mips-mips
+- os=-sysv
+- ;;
+- merlin)
+- basic_machine=ns32k-utek
+- os=-sysv
+- ;;
+- microblaze*)
+- basic_machine=microblaze-xilinx
+- ;;
+- mingw64)
+- basic_machine=x86_64-pc
+- os=-mingw64
+- ;;
+- mingw32)
+- basic_machine=i686-pc
+- os=-mingw32
+- ;;
+- mingw32ce)
+- basic_machine=arm-unknown
+- os=-mingw32ce
+- ;;
+ miniframe)
+- basic_machine=m68000-convergent
+- ;;
+- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+- basic_machine=m68k-atari
+- os=-mint
+- ;;
+- mips3*-*)
+- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+- ;;
+- mips3*)
+- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
++ cpu=m68000
++ vendor=convergent
+ ;;
+- monitor)
+- basic_machine=m68k-rom68k
+- os=-coff
+- ;;
+- morphos)
+- basic_machine=powerpc-unknown
+- os=-morphos
+- ;;
+- moxiebox)
+- basic_machine=moxie-unknown
+- os=-moxiebox
+- ;;
+- msdos)
+- basic_machine=i386-pc
+- os=-msdos
+- ;;
+- ms1-*)
+- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+- ;;
+- msys)
+- basic_machine=i686-pc
+- os=-msys
+- ;;
+- mvs)
+- basic_machine=i370-ibm
+- os=-mvs
+- ;;
+- nacl)
+- basic_machine=le32-unknown
+- os=-nacl
+- ;;
+- ncr3000)
+- basic_machine=i486-ncr
+- os=-sysv4
+- ;;
+- netbsd386)
+- basic_machine=i386-unknown
+- os=-netbsd
+- ;;
+- netwinder)
+- basic_machine=armv4l-rebel
+- os=-linux
+- ;;
+- news | news700 | news800 | news900)
+- basic_machine=m68k-sony
+- os=-newsos
+- ;;
+- news1000)
+- basic_machine=m68030-sony
+- os=-newsos
++ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
++ cpu=m68k
++ vendor=atari
++ basic_os=mint
+ ;;
+ news-3600 | risc-news)
+- basic_machine=mips-sony
+- os=-newsos
+- ;;
+- necv70)
+- basic_machine=v70-nec
+- os=-sysv
+- ;;
+- next | m*-next )
+- basic_machine=m68k-next
+- case $os in
+- -nextstep* )
++ cpu=mips
++ vendor=sony
++ basic_os=newsos
++ ;;
++ next | m*-next)
++ cpu=m68k
++ vendor=next
++ case $basic_os in
++ openstep*)
++ ;;
++ nextstep*)
+ ;;
+- -ns2*)
+- os=-nextstep2
++ ns2*)
++ basic_os=nextstep2
+ ;;
+ *)
+- os=-nextstep3
++ basic_os=nextstep3
+ ;;
+ esac
+ ;;
+- nh3000)
+- basic_machine=m68k-harris
+- os=-cxux
+- ;;
+- nh[45]000)
+- basic_machine=m88k-harris
+- os=-cxux
+- ;;
+- nindy960)
+- basic_machine=i960-intel
+- os=-nindy
+- ;;
+- mon960)
+- basic_machine=i960-intel
+- os=-mon960
+- ;;
+- nonstopux)
+- basic_machine=mips-compaq
+- os=-nonstopux
+- ;;
+ np1)
+- basic_machine=np1-gould
+- ;;
+- neo-tandem)
+- basic_machine=neo-tandem
+- ;;
+- nse-tandem)
+- basic_machine=nse-tandem
+- ;;
+- nsr-tandem)
+- basic_machine=nsr-tandem
+- ;;
+- nsx-tandem)
+- basic_machine=nsx-tandem
++ cpu=np1
++ vendor=gould
+ ;;
+ op50n-* | op60c-*)
+- basic_machine=hppa1.1-oki
+- os=-proelf
+- ;;
+- openrisc | openrisc-*)
+- basic_machine=or32-unknown
+- ;;
+- os400)
+- basic_machine=powerpc-ibm
+- os=-os400
+- ;;
+- OSE68000 | ose68000)
+- basic_machine=m68000-ericsson
+- os=-ose
+- ;;
+- os68k)
+- basic_machine=m68k-none
+- os=-os68k
++ cpu=hppa1.1
++ vendor=oki
++ basic_os=proelf
+ ;;
+ pa-hitachi)
+- basic_machine=hppa1.1-hitachi
+- os=-hiuxwe2
+- ;;
+- paragon)
+- basic_machine=i860-intel
+- os=-osf
+- ;;
+- parisc)
+- basic_machine=hppa-unknown
+- os=-linux
+- ;;
+- parisc-*)
+- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+- os=-linux
++ cpu=hppa1.1
++ vendor=hitachi
++ basic_os=hiuxwe2
+ ;;
+ pbd)
+- basic_machine=sparc-tti
++ cpu=sparc
++ vendor=tti
+ ;;
+ pbb)
+- basic_machine=m68k-tti
+- ;;
+- pc532 | pc532-*)
+- basic_machine=ns32k-pc532
+- ;;
+- pc98)
+- basic_machine=i386-pc
+- ;;
+- pc98-*)
+- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+- ;;
+- pentium | p5 | k5 | k6 | nexgen | viac3)
+- basic_machine=i586-pc
+- ;;
+- pentiumpro | p6 | 6x86 | athlon | athlon_*)
+- basic_machine=i686-pc
+- ;;
+- pentiumii | pentium2 | pentiumiii | pentium3)
+- basic_machine=i686-pc
++ cpu=m68k
++ vendor=tti
+ ;;
+- pentium4)
+- basic_machine=i786-pc
+- ;;
+- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+- ;;
+- pentiumpro-* | p6-* | 6x86-* | athlon-*)
+- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+- ;;
+- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+- ;;
+- pentium4-*)
+- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
++ pc532)
++ cpu=ns32k
++ vendor=pc532
+ ;;
+ pn)
+- basic_machine=pn-gould
+- ;;
+- power) basic_machine=power-ibm
+- ;;
+- ppc | ppcbe) basic_machine=powerpc-unknown
+- ;;
+- ppc-* | ppcbe-*)
+- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+- ;;
+- ppcle | powerpclittle)
+- basic_machine=powerpcle-unknown
+- ;;
+- ppcle-* | powerpclittle-*)
+- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
++ cpu=pn
++ vendor=gould
+ ;;
+- ppc64) basic_machine=powerpc64-unknown
+- ;;
+- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+- ;;
+- ppc64le | powerpc64little)
+- basic_machine=powerpc64le-unknown
+- ;;
+- ppc64le-* | powerpc64little-*)
+- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
++ power)
++ cpu=power
++ vendor=ibm
+ ;;
+ ps2)
+- basic_machine=i386-ibm
+- ;;
+- pw32)
+- basic_machine=i586-unknown
+- os=-pw32
+- ;;
+- rdos | rdos64)
+- basic_machine=x86_64-pc
+- os=-rdos
+- ;;
+- rdos32)
+- basic_machine=i386-pc
+- os=-rdos
+- ;;
+- rom68k)
+- basic_machine=m68k-rom68k
+- os=-coff
++ cpu=i386
++ vendor=ibm
+ ;;
+ rm[46]00)
+- basic_machine=mips-siemens
++ cpu=mips
++ vendor=siemens
+ ;;
+ rtpc | rtpc-*)
+- basic_machine=romp-ibm
+- ;;
+- s390 | s390-*)
+- basic_machine=s390-ibm
++ cpu=romp
++ vendor=ibm
+ ;;
+- s390x | s390x-*)
+- basic_machine=s390x-ibm
+- ;;
+- sa29200)
+- basic_machine=a29k-amd
+- os=-udi
++ sde)
++ cpu=mipsisa32
++ vendor=sde
++ basic_os=${basic_os:-elf}
+ ;;
+- sb1)
+- basic_machine=mipsisa64sb1-unknown
++ simso-wrs)
++ cpu=sparclite
++ vendor=wrs
++ basic_os=vxworks
+ ;;
+- sb1el)
+- basic_machine=mipsisa64sb1el-unknown
++ tower | tower-32)
++ cpu=m68k
++ vendor=ncr
+ ;;
+- sde)
+- basic_machine=mipsisa32-sde
+- os=-elf
++ vpp*|vx|vx-*)
++ cpu=f301
++ vendor=fujitsu
+ ;;
+- sei)
+- basic_machine=mips-sei
+- os=-seiux
++ w65)
++ cpu=w65
++ vendor=wdc
+ ;;
+- sequent)
+- basic_machine=i386-sequent
++ w89k-*)
++ cpu=hppa1.1
++ vendor=winbond
++ basic_os=proelf
+ ;;
+- sh)
+- basic_machine=sh-hitachi
+- os=-hms
++ none)
++ cpu=none
++ vendor=none
+ ;;
+- sh5el)
+- basic_machine=sh5le-unknown
++ leon|leon[3-9])
++ cpu=sparc
++ vendor=$basic_machine
+ ;;
+- sh64)
+- basic_machine=sh64-unknown
++ leon-*|leon[3-9]-*)
++ cpu=sparc
++ vendor=`echo "$basic_machine" | sed 's/-.*//'`
+ ;;
+- sparclite-wrs | simso-wrs)
+- basic_machine=sparclite-wrs
+- os=-vxworks
++
++ *-*)
++ # shellcheck disable=SC2162
++ saved_IFS=$IFS
++ IFS="-" read cpu vendor <<EOF
++$basic_machine
++EOF
++ IFS=$saved_IFS
+ ;;
+- sps7)
+- basic_machine=m68k-bull
+- os=-sysv2
++ # We use `pc' rather than `unknown'
++ # because (1) that's what they normally are, and
++ # (2) the word "unknown" tends to confuse beginning users.
++ i*86 | x86_64)
++ cpu=$basic_machine
++ vendor=pc
+ ;;
+- spur)
+- basic_machine=spur-unknown
++ # These rules are duplicated from below for sake of the special case above;
++ # i.e. things that normalized to x86 arches should also default to "pc"
++ pc98)
++ cpu=i386
++ vendor=pc
+ ;;
+- st2000)
+- basic_machine=m68k-tandem
++ x64 | amd64)
++ cpu=x86_64
++ vendor=pc
+ ;;
+- stratus)
+- basic_machine=i860-stratus
+- os=-sysv4
++ # Recognize the basic CPU types without company name.
++ *)
++ cpu=$basic_machine
++ vendor=unknown
+ ;;
+- strongarm-* | thumb-*)
+- basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
++esac
++
++unset -v basic_machine
++
++# Decode basic machines in the full and proper CPU-Company form.
++case $cpu-$vendor in
++ # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
++ # some cases the only manufacturer, in others, it is the most popular.
++ craynv-unknown)
++ vendor=cray
++ basic_os=${basic_os:-unicosmp}
+ ;;
+- sun2)
+- basic_machine=m68000-sun
++ c90-unknown | c90-cray)
++ vendor=cray
++ basic_os=${Basic_os:-unicos}
+ ;;
+- sun2os3)
+- basic_machine=m68000-sun
+- os=-sunos3
++ fx80-unknown)
++ vendor=alliant
+ ;;
+- sun2os4)
+- basic_machine=m68000-sun
+- os=-sunos4
++ romp-unknown)
++ vendor=ibm
+ ;;
+- sun3os3)
+- basic_machine=m68k-sun
+- os=-sunos3
++ mmix-unknown)
++ vendor=knuth
+ ;;
+- sun3os4)
+- basic_machine=m68k-sun
+- os=-sunos4
++ microblaze-unknown | microblazeel-unknown)
++ vendor=xilinx
+ ;;
+- sun4os3)
+- basic_machine=sparc-sun
+- os=-sunos3
++ rs6000-unknown)
++ vendor=ibm
+ ;;
+- sun4os4)
+- basic_machine=sparc-sun
+- os=-sunos4
++ vax-unknown)
++ vendor=dec
+ ;;
+- sun4sol2)
+- basic_machine=sparc-sun
+- os=-solaris2
++ pdp11-unknown)
++ vendor=dec
+ ;;
+- sun3 | sun3-*)
+- basic_machine=m68k-sun
++ we32k-unknown)
++ vendor=att
+ ;;
+- sun4)
+- basic_machine=sparc-sun
++ cydra-unknown)
++ vendor=cydrome
+ ;;
+- sun386 | sun386i | roadrunner)
+- basic_machine=i386-sun
++ i370-ibm*)
++ vendor=ibm
+ ;;
+- sv1)
+- basic_machine=sv1-cray
+- os=-unicos
++ orion-unknown)
++ vendor=highlevel
+ ;;
+- symmetry)
+- basic_machine=i386-sequent
+- os=-dynix
++ xps-unknown | xps100-unknown)
++ cpu=xps100
++ vendor=honeywell
+ ;;
+- t3e)
+- basic_machine=alphaev5-cray
+- os=-unicos
++
++ # Here we normalize CPU types with a missing or matching vendor
++ armh-unknown | armh-alt)
++ cpu=armv7l
++ vendor=alt
++ basic_os=${basic_os:-linux-gnueabihf}
+ ;;
+- t90)
+- basic_machine=t90-cray
+- os=-unicos
++ dpx20-unknown | dpx20-bull)
++ cpu=rs6000
++ vendor=bull
++ basic_os=${basic_os:-bosx}
+ ;;
+- tile*)
+- basic_machine=$basic_machine-unknown
+- os=-linux-gnu
++
++ # Here we normalize CPU types irrespective of the vendor
++ amd64-*)
++ cpu=x86_64
+ ;;
+- tx39)
+- basic_machine=mipstx39-unknown
++ blackfin-*)
++ cpu=bfin
++ basic_os=linux
+ ;;
+- tx39el)
+- basic_machine=mipstx39el-unknown
++ c54x-*)
++ cpu=tic54x
+ ;;
+- toad1)
+- basic_machine=pdp10-xkl
+- os=-tops20
++ c55x-*)
++ cpu=tic55x
+ ;;
+- tower | tower-32)
+- basic_machine=m68k-ncr
++ c6x-*)
++ cpu=tic6x
+ ;;
+- tpf)
+- basic_machine=s390x-ibm
+- os=-tpf
++ e500v[12]-*)
++ cpu=powerpc
++ basic_os=${basic_os}"spe"
+ ;;
+- udi29k)
+- basic_machine=a29k-amd
+- os=-udi
++ mips3*-*)
++ cpu=mips64
+ ;;
+- ultra3)
+- basic_machine=a29k-nyu
+- os=-sym1
++ ms1-*)
++ cpu=mt
+ ;;
+- v810 | necv810)
+- basic_machine=v810-nec
+- os=-none
++ m68knommu-*)
++ cpu=m68k
++ basic_os=linux
+ ;;
+- vaxv)
+- basic_machine=vax-dec
+- os=-sysv
++ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
++ cpu=s12z
+ ;;
+- vms)
+- basic_machine=vax-dec
+- os=-vms
++ openrisc-*)
++ cpu=or32
+ ;;
+- vpp*|vx|vx-*)
+- basic_machine=f301-fujitsu
++ parisc-*)
++ cpu=hppa
++ basic_os=linux
+ ;;
+- vxworks960)
+- basic_machine=i960-wrs
+- os=-vxworks
++ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
++ cpu=i586
+ ;;
+- vxworks68)
+- basic_machine=m68k-wrs
+- os=-vxworks
++ pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
++ cpu=i686
+ ;;
+- vxworks29k)
+- basic_machine=a29k-wrs
+- os=-vxworks
++ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
++ cpu=i686
+ ;;
+- w65*)
+- basic_machine=w65-wdc
+- os=-none
++ pentium4-*)
++ cpu=i786
+ ;;
+- w89k-*)
+- basic_machine=hppa1.1-winbond
+- os=-proelf
++ pc98-*)
++ cpu=i386
+ ;;
+- xbox)
+- basic_machine=i686-pc
+- os=-mingw32
++ ppc-* | ppcbe-*)
++ cpu=powerpc
+ ;;
+- xps | xps100)
+- basic_machine=xps100-honeywell
++ ppcle-* | powerpclittle-*)
++ cpu=powerpcle
+ ;;
+- xscale-* | xscalee[bl]-*)
+- basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
++ ppc64-*)
++ cpu=powerpc64
+ ;;
+- ymp)
+- basic_machine=ymp-cray
+- os=-unicos
++ ppc64le-* | powerpc64little-*)
++ cpu=powerpc64le
+ ;;
+- z8k-*-coff)
+- basic_machine=z8k-unknown
+- os=-sim
++ sb1-*)
++ cpu=mipsisa64sb1
+ ;;
+- z80-*-coff)
+- basic_machine=z80-unknown
+- os=-sim
++ sb1el-*)
++ cpu=mipsisa64sb1el
+ ;;
+- none)
+- basic_machine=none-none
+- os=-none
++ sh5e[lb]-*)
++ cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
+ ;;
+-
+-# Here we handle the default manufacturer of certain CPU types. It is in
+-# some cases the only manufacturer, in others, it is the most popular.
+- w89k)
+- basic_machine=hppa1.1-winbond
++ spur-*)
++ cpu=spur
+ ;;
+- op50n)
+- basic_machine=hppa1.1-oki
++ strongarm-* | thumb-*)
++ cpu=arm
+ ;;
+- op60c)
+- basic_machine=hppa1.1-oki
++ tx39-*)
++ cpu=mipstx39
+ ;;
+- romp)
+- basic_machine=romp-ibm
++ tx39el-*)
++ cpu=mipstx39el
+ ;;
+- mmix)
+- basic_machine=mmix-knuth
++ x64-*)
++ cpu=x86_64
+ ;;
+- rs6000)
+- basic_machine=rs6000-ibm
++ xscale-* | xscalee[bl]-*)
++ cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
+ ;;
+- vax)
+- basic_machine=vax-dec
++ arm64-* | aarch64le-*)
++ cpu=aarch64
+ ;;
+- pdp10)
+- # there are many clones, so DEC is not a safe bet
+- basic_machine=pdp10-unknown
++
++ # Recognize the canonical CPU Types that limit and/or modify the
++ # company names they are paired with.
++ cr16-*)
++ basic_os=${basic_os:-elf}
+ ;;
+- pdp11)
+- basic_machine=pdp11-dec
++ crisv32-* | etraxfs*-*)
++ cpu=crisv32
++ vendor=axis
+ ;;
+- we32k)
+- basic_machine=we32k-att
++ cris-* | etrax*-*)
++ cpu=cris
++ vendor=axis
+ ;;
+- sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+- basic_machine=sh-unknown
++ crx-*)
++ basic_os=${basic_os:-elf}
+ ;;
+- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+- basic_machine=sparc-sun
++ neo-tandem)
++ cpu=neo
++ vendor=tandem
+ ;;
+- cydra)
+- basic_machine=cydra-cydrome
++ nse-tandem)
++ cpu=nse
++ vendor=tandem
+ ;;
+- orion)
+- basic_machine=orion-highlevel
++ nsr-tandem)
++ cpu=nsr
++ vendor=tandem
+ ;;
+- orion105)
+- basic_machine=clipper-highlevel
++ nsv-tandem)
++ cpu=nsv
++ vendor=tandem
+ ;;
+- mac | mpw | mac-mpw)
+- basic_machine=m68k-apple
++ nsx-tandem)
++ cpu=nsx
++ vendor=tandem
+ ;;
+- pmac | pmac-mpw)
+- basic_machine=powerpc-apple
++ mipsallegrexel-sony)
++ cpu=mipsallegrexel
++ vendor=sony
+ ;;
+- *-unknown)
+- # Make sure to match an already-canonicalized machine name.
++ tile*-*)
++ basic_os=${basic_os:-linux-gnu}
+ ;;
++
+ *)
+- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+- exit 1
++ # Recognize the canonical CPU types that are allowed with any
++ # company name.
++ case $cpu in
++ 1750a | 580 \
++ | a29k \
++ | aarch64 | aarch64_be \
++ | abacus \
++ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
++ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
++ | alphapca5[67] | alpha64pca5[67] \
++ | am33_2.0 \
++ | amdgcn \
++ | arc | arceb | arc32 | arc64 \
++ | arm | arm[lb]e | arme[lb] | armv* \
++ | avr | avr32 \
++ | asmjs \
++ | ba \
++ | be32 | be64 \
++ | bfin | bpf | bs2000 \
++ | c[123]* | c30 | [cjt]90 | c4x \
++ | c8051 | clipper | craynv | csky | cydra \
++ | d10v | d30v | dlx | dsp16xx \
++ | e2k | elxsi | epiphany \
++ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
++ | h8300 | h8500 \
++ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
++ | hexagon \
++ | i370 | i*86 | i860 | i960 | ia16 | ia64 \
++ | ip2k | iq2000 \
++ | k1om \
++ | le32 | le64 \
++ | lm32 \
++ | loongarch32 | loongarch64 \
++ | m32c | m32r | m32rle \
++ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
++ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
++ | m88110 | m88k | maxq | mb | mcore | mep | metag \
++ | microblaze | microblazeel \
++ | mips | mipsbe | mipseb | mipsel | mipsle \
++ | mips16 \
++ | mips64 | mips64eb | mips64el \
++ | mips64octeon | mips64octeonel \
++ | mips64orion | mips64orionel \
++ | mips64r5900 | mips64r5900el \
++ | mips64vr | mips64vrel \
++ | mips64vr4100 | mips64vr4100el \
++ | mips64vr4300 | mips64vr4300el \
++ | mips64vr5000 | mips64vr5000el \
++ | mips64vr5900 | mips64vr5900el \
++ | mipsisa32 | mipsisa32el \
++ | mipsisa32r2 | mipsisa32r2el \
++ | mipsisa32r3 | mipsisa32r3el \
++ | mipsisa32r5 | mipsisa32r5el \
++ | mipsisa32r6 | mipsisa32r6el \
++ | mipsisa64 | mipsisa64el \
++ | mipsisa64r2 | mipsisa64r2el \
++ | mipsisa64r3 | mipsisa64r3el \
++ | mipsisa64r5 | mipsisa64r5el \
++ | mipsisa64r6 | mipsisa64r6el \
++ | mipsisa64sb1 | mipsisa64sb1el \
++ | mipsisa64sr71k | mipsisa64sr71kel \
++ | mipsr5900 | mipsr5900el \
++ | mipstx39 | mipstx39el \
++ | mmix \
++ | mn10200 | mn10300 \
++ | moxie \
++ | mt \
++ | msp430 \
++ | nds32 | nds32le | nds32be \
++ | nfp \
++ | nios | nios2 | nios2eb | nios2el \
++ | none | np1 | ns16k | ns32k | nvptx \
++ | open8 \
++ | or1k* \
++ | or32 \
++ | orion \
++ | picochip \
++ | pdp10 | pdp11 | pj | pjl | pn | power \
++ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
++ | pru \
++ | pyramid \
++ | riscv | riscv32 | riscv32be | riscv64 | riscv64be \
++ | rl78 | romp | rs6000 | rx \
++ | s390 | s390x \
++ | score \
++ | sh | shl \
++ | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
++ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
++ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
++ | sparclite \
++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
++ | spu \
++ | tahoe \
++ | thumbv7* \
++ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
++ | tron \
++ | ubicom32 \
++ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
++ | vax \
++ | visium \
++ | w65 \
++ | wasm32 | wasm64 \
++ | we32k \
++ | x86 | x86_64 | xc16x | xgate | xps100 \
++ | xstormy16 | xtensa* \
++ | ymp \
++ | z8k | z80)
++ ;;
++
++ *)
++ echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
++ exit 1
++ ;;
++ esac
+ ;;
+ esac
+
+ # Here we canonicalize certain aliases for manufacturers.
+-case $basic_machine in
+- *-digital*)
+- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
++case $vendor in
++ digital*)
++ vendor=dec
+ ;;
+- *-commodore*)
+- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
++ commodore*)
++ vendor=cbm
+ ;;
+ *)
+ ;;
+@@ -1358,203 +1306,219 @@ esac
+
+ # Decode manufacturer-specific aliases for certain operating systems.
+
+-if [ x"$os" != x"" ]
++if test x$basic_os != x
+ then
+-case $os in
+- # First match some system type aliases
+- # that might get confused with valid system types.
+- # -solaris* is a basic system type, with this one exception.
+- -auroraux)
+- os=-auroraux
++
++# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
++# set os.
++case $basic_os in
++ gnu/linux*)
++ kernel=linux
++ os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
++ ;;
++ os2-emx)
++ kernel=os2
++ os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
++ ;;
++ nto-qnx*)
++ kernel=nto
++ os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
++ ;;
++ *-*)
++ # shellcheck disable=SC2162
++ saved_IFS=$IFS
++ IFS="-" read kernel os <<EOF
++$basic_os
++EOF
++ IFS=$saved_IFS
++ ;;
++ # Default OS when just kernel was specified
++ nto*)
++ kernel=nto
++ os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
++ ;;
++ linux*)
++ kernel=linux
++ os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
++ ;;
++ managarm*)
++ kernel=managarm
++ os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
+ ;;
+- -solaris1 | -solaris1.*)
+- os=`echo $os | sed -e 's|solaris1|sunos4|'`
++ *)
++ kernel=
++ os=$basic_os
+ ;;
+- -solaris)
+- os=-solaris2
++esac
++
++# Now, normalize the OS (knowing we just have one component, it's not a kernel,
++# etc.)
++case $os in
++ # First match some system type aliases that might get confused
++ # with valid system types.
++ # solaris* is a basic system type, with this one exception.
++ auroraux)
++ os=auroraux
+ ;;
+- -svr4*)
+- os=-sysv4
++ bluegene*)
++ os=cnk
+ ;;
+- -unixware*)
+- os=-sysv4.2uw
++ solaris1 | solaris1.*)
++ os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
+ ;;
+- -gnu/linux*)
+- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
++ solaris)
++ os=solaris2
+ ;;
+- # First accept the basic system types.
+- # The portable systems comes first.
+- # Each alternative MUST END IN A *, to match a version number.
+- # -sysv* is not here because it comes later, after sysvr4.
+- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+- | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+- | -sym* | -kopensolaris* | -plan9* \
+- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+- | -aos* | -aros* | -cloudabi* | -sortix* \
+- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+- | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
+- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+- | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
+- | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+- | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+- | -linux-newlib* | -linux-musl* | -linux-uclibc* \
+- | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
+- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
+- | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
+- # Remember, each alternative MUST END IN *, to match a version number.
+- ;;
+- -qnx*)
+- case $basic_machine in
+- x86-* | i*86-*)
+- ;;
+- *)
+- os=-nto$os
+- ;;
+- esac
++ unixware*)
++ os=sysv4.2uw
+ ;;
+- -nto-qnx*)
++ # es1800 is here to avoid being matched by es* (a different OS)
++ es1800*)
++ os=ose
+ ;;
+- -nto*)
+- os=`echo $os | sed -e 's|nto|nto-qnx|'`
++ # Some version numbers need modification
++ chorusos*)
++ os=chorusos
+ ;;
+- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+- | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
++ isc)
++ os=isc2.2
+ ;;
+- -mac*)
+- os=`echo $os | sed -e 's|mac|macos|'`
++ sco6)
++ os=sco5v6
+ ;;
+- -linux-dietlibc)
+- os=-linux-dietlibc
++ sco5)
++ os=sco3.2v5
+ ;;
+- -linux*)
+- os=`echo $os | sed -e 's|linux|linux-gnu|'`
++ sco4)
++ os=sco3.2v4
+ ;;
+- -sunos5*)
+- os=`echo $os | sed -e 's|sunos5|solaris2|'`
++ sco3.2.[4-9]*)
++ os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
+ ;;
+- -sunos6*)
+- os=`echo $os | sed -e 's|sunos6|solaris3|'`
++ sco*v* | scout)
++ # Don't match below
+ ;;
+- -opened*)
+- os=-openedition
++ sco*)
++ os=sco3.2v2
+ ;;
+- -os400*)
+- os=-os400
++ psos*)
++ os=psos
+ ;;
+- -wince*)
+- os=-wince
++ qnx*)
++ os=qnx
+ ;;
+- -osfrose*)
+- os=-osfrose
++ hiux*)
++ os=hiuxwe2
+ ;;
+- -osf*)
+- os=-osf
++ lynx*178)
++ os=lynxos178
+ ;;
+- -utek*)
+- os=-bsd
++ lynx*5)
++ os=lynxos5
+ ;;
+- -dynix*)
+- os=-bsd
++ lynxos*)
++ # don't get caught up in next wildcard
+ ;;
+- -acis*)
+- os=-aos
++ lynx*)
++ os=lynxos
+ ;;
+- -atheos*)
+- os=-atheos
++ mac[0-9]*)
++ os=`echo "$os" | sed -e 's|mac|macos|'`
+ ;;
+- -syllable*)
+- os=-syllable
++ opened*)
++ os=openedition
+ ;;
+- -386bsd)
+- os=-bsd
++ os400*)
++ os=os400
+ ;;
+- -ctix* | -uts*)
+- os=-sysv
++ sunos5*)
++ os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
+ ;;
+- -nova*)
+- os=-rtmk-nova
++ sunos6*)
++ os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
+ ;;
+- -ns2 )
+- os=-nextstep2
++ wince*)
++ os=wince
+ ;;
+- -nsk*)
+- os=-nsk
++ utek*)
++ os=bsd
+ ;;
+- # Preserve the version number of sinix5.
+- -sinix5.*)
+- os=`echo $os | sed -e 's|sinix|sysv|'`
++ dynix*)
++ os=bsd
+ ;;
+- -sinix*)
+- os=-sysv4
++ acis*)
++ os=aos
+ ;;
+- -tpf*)
+- os=-tpf
++ atheos*)
++ os=atheos
+ ;;
+- -triton*)
+- os=-sysv3
++ syllable*)
++ os=syllable
+ ;;
+- -oss*)
+- os=-sysv3
++ 386bsd)
++ os=bsd
+ ;;
+- -svr4)
+- os=-sysv4
++ ctix* | uts*)
++ os=sysv
+ ;;
+- -svr3)
+- os=-sysv3
++ nova*)
++ os=rtmk-nova
+ ;;
+- -sysvr4)
+- os=-sysv4
++ ns2)
++ os=nextstep2
+ ;;
+- # This must come after -sysvr4.
+- -sysv*)
++ # Preserve the version number of sinix5.
++ sinix5.*)
++ os=`echo "$os" | sed -e 's|sinix|sysv|'`
+ ;;
+- -ose*)
+- os=-ose
++ sinix*)
++ os=sysv4
+ ;;
+- -es1800*)
+- os=-ose
++ tpf*)
++ os=tpf
+ ;;
+- -xenix)
+- os=-xenix
++ triton*)
++ os=sysv3
+ ;;
+- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+- os=-mint
++ oss*)
++ os=sysv3
+ ;;
+- -aros*)
+- os=-aros
++ svr4*)
++ os=sysv4
+ ;;
+- -zvmoe)
+- os=-zvmoe
++ svr3)
++ os=sysv3
+ ;;
+- -dicos*)
+- os=-dicos
++ sysvr4)
++ os=sysv4
+ ;;
+- -nacl*)
++ ose*)
++ os=ose
+ ;;
+- -ios)
++ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
++ os=mint
+ ;;
+- -none)
++ dicos*)
++ os=dicos
++ ;;
++ pikeos*)
++ # Until real need of OS specific support for
++ # particular features comes up, bare metal
++ # configurations are quite functional.
++ case $cpu in
++ arm*)
++ os=eabi
++ ;;
++ *)
++ os=elf
++ ;;
++ esac
+ ;;
+ *)
+- # Get rid of the `-' at the beginning of $os.
+- os=`echo $os | sed 's/[^-]*-//'`
+- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+- exit 1
++ # No normalization, but not necessarily accepted, that comes below.
+ ;;
+ esac
++
+ else
+
+ # Here we handle the default operating systems that come with various machines.
+@@ -1567,264 +1531,376 @@ else
+ # will signal an error saying that MANUFACTURER isn't an operating
+ # system, and we'll never get to this point.
+
+-case $basic_machine in
++kernel=
++case $cpu-$vendor in
+ score-*)
+- os=-elf
++ os=elf
+ ;;
+ spu-*)
+- os=-elf
++ os=elf
+ ;;
+ *-acorn)
+- os=-riscix1.2
++ os=riscix1.2
+ ;;
+ arm*-rebel)
+- os=-linux
++ kernel=linux
++ os=gnu
+ ;;
+ arm*-semi)
+- os=-aout
++ os=aout
+ ;;
+ c4x-* | tic4x-*)
+- os=-coff
++ os=coff
+ ;;
+ c8051-*)
+- os=-elf
++ os=elf
++ ;;
++ clipper-intergraph)
++ os=clix
+ ;;
+ hexagon-*)
+- os=-elf
++ os=elf
+ ;;
+ tic54x-*)
+- os=-coff
++ os=coff
+ ;;
+ tic55x-*)
+- os=-coff
++ os=coff
+ ;;
+ tic6x-*)
+- os=-coff
++ os=coff
+ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+- os=-tops20
++ os=tops20
+ ;;
+ pdp11-*)
+- os=-none
++ os=none
+ ;;
+ *-dec | vax-*)
+- os=-ultrix4.2
++ os=ultrix4.2
+ ;;
+ m68*-apollo)
+- os=-domain
++ os=domain
+ ;;
+ i386-sun)
+- os=-sunos4.0.2
++ os=sunos4.0.2
+ ;;
+ m68000-sun)
+- os=-sunos3
++ os=sunos3
+ ;;
+ m68*-cisco)
+- os=-aout
++ os=aout
+ ;;
+ mep-*)
+- os=-elf
++ os=elf
+ ;;
+ mips*-cisco)
+- os=-elf
++ os=elf
+ ;;
+ mips*-*)
+- os=-elf
++ os=elf
+ ;;
+ or32-*)
+- os=-coff
++ os=coff
+ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+- os=-sysv3
++ os=sysv3
+ ;;
+ sparc-* | *-sun)
+- os=-sunos4.1.1
++ os=sunos4.1.1
+ ;;
+ pru-*)
+- os=-elf
++ os=elf
+ ;;
+ *-be)
+- os=-beos
+- ;;
+- *-haiku)
+- os=-haiku
++ os=beos
+ ;;
+ *-ibm)
+- os=-aix
++ os=aix
+ ;;
+ *-knuth)
+- os=-mmixware
++ os=mmixware
+ ;;
+ *-wec)
+- os=-proelf
++ os=proelf
+ ;;
+ *-winbond)
+- os=-proelf
++ os=proelf
+ ;;
+ *-oki)
+- os=-proelf
++ os=proelf
+ ;;
+ *-hp)
+- os=-hpux
++ os=hpux
+ ;;
+ *-hitachi)
+- os=-hiux
++ os=hiux
+ ;;
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+- os=-sysv
++ os=sysv
+ ;;
+ *-cbm)
+- os=-amigaos
++ os=amigaos
+ ;;
+ *-dg)
+- os=-dgux
++ os=dgux
+ ;;
+ *-dolphin)
+- os=-sysv3
++ os=sysv3
+ ;;
+ m68k-ccur)
+- os=-rtu
++ os=rtu
+ ;;
+ m88k-omron*)
+- os=-luna
++ os=luna
+ ;;
+- *-next )
+- os=-nextstep
++ *-next)
++ os=nextstep
+ ;;
+ *-sequent)
+- os=-ptx
++ os=ptx
+ ;;
+ *-crds)
+- os=-unos
++ os=unos
+ ;;
+ *-ns)
+- os=-genix
++ os=genix
+ ;;
+ i370-*)
+- os=-mvs
+- ;;
+- *-next)
+- os=-nextstep3
++ os=mvs
+ ;;
+ *-gould)
+- os=-sysv
++ os=sysv
+ ;;
+ *-highlevel)
+- os=-bsd
++ os=bsd
+ ;;
+ *-encore)
+- os=-bsd
++ os=bsd
+ ;;
+ *-sgi)
+- os=-irix
++ os=irix
+ ;;
+ *-siemens)
+- os=-sysv4
++ os=sysv4
+ ;;
+ *-masscomp)
+- os=-rtu
++ os=rtu
+ ;;
+ f30[01]-fujitsu | f700-fujitsu)
+- os=-uxpv
++ os=uxpv
+ ;;
+ *-rom68k)
+- os=-coff
++ os=coff
+ ;;
+ *-*bug)
+- os=-coff
++ os=coff
+ ;;
+ *-apple)
+- os=-macos
++ os=macos
+ ;;
+ *-atari*)
+- os=-mint
++ os=mint
++ ;;
++ *-wrs)
++ os=vxworks
+ ;;
+ *)
+- os=-none
++ os=none
+ ;;
+ esac
++
+ fi
+
++# Now, validate our (potentially fixed-up) OS.
++case $os in
++ # Sometimes we do "kernel-libc", so those need to count as OSes.
++ musl* | newlib* | relibc* | uclibc*)
++ ;;
++ # Likewise for "kernel-abi"
++ eabi* | gnueabi*)
++ ;;
++ # VxWorks passes extra cpu info in the 4th filed.
++ simlinux | simwindows | spe)
++ ;;
++ # Now accept the basic system types.
++ # The portable systems comes first.
++ # Each alternative MUST end in a * to match a version number.
++ gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
++ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
++ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
++ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
++ | hiux* | abug | nacl* | netware* | windows* \
++ | os9* | macos* | osx* | ios* \
++ | mpw* | magic* | mmixware* | mon960* | lnews* \
++ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
++ | aos* | aros* | cloudabi* | sortix* | twizzler* \
++ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
++ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
++ | mirbsd* | netbsd* | dicos* | openedition* | ose* \
++ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
++ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
++ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
++ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
++ | udi* | lites* | ieee* | go32* | aux* | hcos* \
++ | chorusrdb* | cegcc* | glidix* | serenity* \
++ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
++ | midipix* | mingw32* | mingw64* | mint* \
++ | uxpv* | beos* | mpeix* | udk* | moxiebox* \
++ | interix* | uwin* | mks* | rhapsody* | darwin* \
++ | openstep* | oskit* | conix* | pw32* | nonstopux* \
++ | storm-chaos* | tops10* | tenex* | tops20* | its* \
++ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
++ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
++ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
++ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
++ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
++ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
++ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
++ | fiwix* | mlibc* )
++ ;;
++ # This one is extra strict with allowed versions
++ sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
++ # Don't forget version if it is 3.2v4 or newer.
++ ;;
++ none)
++ ;;
++ kernel* )
++ # Restricted further below
++ ;;
++ *)
++ echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
++ exit 1
++ ;;
++esac
++
++# As a final step for OS-related things, validate the OS-kernel combination
++# (given a valid OS), if there is a kernel.
++case $kernel-$os in
++ linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
++ | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
++ ;;
++ uclinux-uclibc* )
++ ;;
++ managarm-mlibc* | managarm-kernel* )
++ ;;
++ -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
++ # These are just libc implementations, not actual OSes, and thus
++ # require a kernel.
++ echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
++ exit 1
++ ;;
++ -kernel* )
++ echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2
++ exit 1
++ ;;
++ *-kernel* )
++ echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2
++ exit 1
++ ;;
++ kfreebsd*-gnu* | kopensolaris*-gnu*)
++ ;;
++ vxworks-simlinux | vxworks-simwindows | vxworks-spe)
++ ;;
++ nto-qnx*)
++ ;;
++ os2-emx)
++ ;;
++ *-eabi* | *-gnueabi*)
++ ;;
++ -*)
++ # Blank kernel with real OS is always fine.
++ ;;
++ *-*)
++ echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
++ exit 1
++ ;;
++esac
++
+ # Here we handle the case where we know the os, and the CPU type, but not the
+ # manufacturer. We pick the logical manufacturer.
+-vendor=unknown
+-case $basic_machine in
+- *-unknown)
+- case $os in
+- -riscix*)
++case $vendor in
++ unknown)
++ case $cpu-$os in
++ *-riscix*)
+ vendor=acorn
+ ;;
+- -sunos*)
++ *-sunos*)
+ vendor=sun
+ ;;
+- -cnk*|-aix*)
++ *-cnk* | *-aix*)
+ vendor=ibm
+ ;;
+- -beos*)
++ *-beos*)
+ vendor=be
+ ;;
+- -hpux*)
++ *-hpux*)
+ vendor=hp
+ ;;
+- -mpeix*)
++ *-mpeix*)
+ vendor=hp
+ ;;
+- -hiux*)
++ *-hiux*)
+ vendor=hitachi
+ ;;
+- -unos*)
++ *-unos*)
+ vendor=crds
+ ;;
+- -dgux*)
++ *-dgux*)
+ vendor=dg
+ ;;
+- -luna*)
++ *-luna*)
+ vendor=omron
+ ;;
+- -genix*)
++ *-genix*)
+ vendor=ns
+ ;;
+- -mvs* | -opened*)
++ *-clix*)
++ vendor=intergraph
++ ;;
++ *-mvs* | *-opened*)
++ vendor=ibm
++ ;;
++ *-os400*)
+ vendor=ibm
+ ;;
+- -os400*)
++ s390-* | s390x-*)
+ vendor=ibm
+ ;;
+- -ptx*)
++ *-ptx*)
+ vendor=sequent
+ ;;
+- -tpf*)
++ *-tpf*)
+ vendor=ibm
+ ;;
+- -vxsim* | -vxworks* | -windiss*)
++ *-vxsim* | *-vxworks* | *-windiss*)
+ vendor=wrs
+ ;;
+- -aux*)
++ *-aux*)
+ vendor=apple
+ ;;
+- -hms*)
++ *-hms*)
+ vendor=hitachi
+ ;;
+- -mpw* | -macos*)
++ *-mpw* | *-macos*)
+ vendor=apple
+ ;;
+- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
++ *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
+ vendor=atari
+ ;;
+- -vos*)
++ *-vos*)
+ vendor=stratus
+ ;;
+ esac
+- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ ;;
+ esac
+
+-echo $basic_machine$os
++echo "$cpu-$vendor-${kernel:+$kernel-}$os"
+ exit
+
+ # Local variables:
+-# eval: (add-hook 'write-file-hooks 'time-stamp)
++# eval: (add-hook 'before-save-hook 'time-stamp)
+ # time-stamp-start: "timestamp='"
+ # time-stamp-format: "%:y-%02m-%02d"
+ # time-stamp-end: "'"
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/autotools/ltmain.sh b/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/autotools/ltmain.sh
+index a72f2fd78bfc..84776e95f5dc 100755
+--- a/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/autotools/ltmain.sh
++++ b/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/autotools/ltmain.sh
+@@ -5564,7 +5564,7 @@ func_mode_link ()
+ *)
+ if test "$installed" = no; then
+ notinst_deplibs="$notinst_deplibs $lib"
+- need_relink=yes
++ need_relink="no"
+ fi
+ ;;
+ esac
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/icu/source/config.sub b/qtwebengine/src/3rdparty/chromium/third_party/icu/source/config.sub
+index fb5794786954..de4259e40479 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/icu/source/config.sub
++++ b/qtwebengine/src/3rdparty/chromium/third_party/icu/source/config.sub
+@@ -1,12 +1,14 @@
+ #! /bin/sh
+ # Configuration validation subroutine script.
+-# Copyright 1992-2017 Free Software Foundation, Inc.
++# Copyright 1992-2023 Free Software Foundation, Inc.
+
+-timestamp='2017-11-04'
++# shellcheck disable=SC2006,SC2268 # see below for rationale
++
++timestamp='2023-01-21'
+
+ # This file 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
++# 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
+@@ -33,7 +35,7 @@ timestamp='2017-11-04'
+ # Otherwise, we print the canonical config type on stdout and succeed.
+
+ # You can get the latest version of this script from:
+-# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
++# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
+
+ # This file is supposed to be the same for all GNU packages
+ # and recognize all the CPU types, system types and aliases
+@@ -50,6 +52,13 @@ timestamp='2017-11-04'
+ # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+ # It is wrong to echo any other type of specification.
+
++# The "shellcheck disable" line above the timestamp inhibits complaints
++# about features and limitations of the classic Bourne shell that were
++# superseded or lifted in POSIX. However, this script identifies a wide
++# variety of pre-POSIX systems that do not have POSIX shells at all, and
++# even some reasonably current systems (Solaris 10 as case-in-point) still
++# have a pre-POSIX /bin/sh.
++
+ me=`echo "$0" | sed -e 's,.*/,,'`
+
+ usage="\
+@@ -67,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>."
+ version="\
+ GNU config.sub ($timestamp)
+
+-Copyright 1992-2017 Free Software Foundation, Inc.
++Copyright 1992-2023 Free Software Foundation, Inc.
+
+ This is free software; see the source for copying conditions. There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -89,12 +98,12 @@ while test $# -gt 0 ; do
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+- echo "$me: invalid option $1$help"
++ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+
+ *local*)
+ # First pass through any local machine types.
+- echo $1
++ echo "$1"
+ exit ;;
+
+ * )
+@@ -110,1251 +119,1186 @@ case $# in
+ exit 1;;
+ esac
+
+-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+-# Here we must recognize all the valid KERNEL-OS combinations.
+-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+-case $maybe_os in
+- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+- linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+- knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
+- kopensolaris*-gnu* | cloudabi*-eabi* | \
+- storm-chaos* | os2-emx* | rtmk-nova*)
+- os=-$maybe_os
+- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+- ;;
+- android-linux)
+- os=-linux-android
+- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+- ;;
+- *)
+- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+- if [ $basic_machine != $1 ]
+- then os=`echo $1 | sed 's/.*-/-/'`
+- else os=; fi
+- ;;
+-esac
++# Split fields of configuration type
++# shellcheck disable=SC2162
++saved_IFS=$IFS
++IFS="-" read field1 field2 field3 field4 <<EOF
++$1
++EOF
++IFS=$saved_IFS
+
+-### Let's recognize common machines as not being operating systems so
+-### that things like config.sub decstation-3100 work. We also
+-### recognize some manufacturers as not being operating systems, so we
+-### can provide default operating systems below.
+-case $os in
+- -sun*os*)
+- # Prevent following clause from handling this invalid input.
+- ;;
+- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+- -apple | -axis | -knuth | -cray | -microblaze*)
+- os=
+- basic_machine=$1
+- ;;
+- -bluegene*)
+- os=-cnk
+- ;;
+- -sim | -cisco | -oki | -wec | -winbond)
+- os=
+- basic_machine=$1
+- ;;
+- -scout)
+- ;;
+- -wrs)
+- os=-vxworks
+- basic_machine=$1
+- ;;
+- -chorusos*)
+- os=-chorusos
+- basic_machine=$1
+- ;;
+- -chorusrdb)
+- os=-chorusrdb
+- basic_machine=$1
+- ;;
+- -hiux*)
+- os=-hiuxwe2
+- ;;
+- -sco6)
+- os=-sco5v6
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+- ;;
+- -sco5)
+- os=-sco3.2v5
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+- ;;
+- -sco4)
+- os=-sco3.2v4
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+- ;;
+- -sco3.2.[4-9]*)
+- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+- ;;
+- -sco3.2v[4-9]*)
+- # Don't forget version if it is 3.2v4 or newer.
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+- ;;
+- -sco5v6*)
+- # Don't forget version if it is 3.2v4 or newer.
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+- ;;
+- -sco*)
+- os=-sco3.2v2
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+- ;;
+- -udk*)
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+- ;;
+- -isc)
+- os=-isc2.2
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+- ;;
+- -clix*)
+- basic_machine=clipper-intergraph
+- ;;
+- -isc*)
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+- ;;
+- -lynx*178)
+- os=-lynxos178
+- ;;
+- -lynx*5)
+- os=-lynxos5
++# Separate into logical components for further validation
++case $1 in
++ *-*-*-*-*)
++ echo Invalid configuration \`"$1"\': more than four components >&2
++ exit 1
+ ;;
+- -lynx*)
+- os=-lynxos
++ *-*-*-*)
++ basic_machine=$field1-$field2
++ basic_os=$field3-$field4
+ ;;
+- -ptx*)
+- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
++ *-*-*)
++ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
++ # parts
++ maybe_os=$field2-$field3
++ case $maybe_os in
++ nto-qnx* | linux-* | uclinux-uclibc* \
++ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
++ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
++ | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
++ basic_machine=$field1
++ basic_os=$maybe_os
++ ;;
++ android-linux)
++ basic_machine=$field1-unknown
++ basic_os=linux-android
++ ;;
++ *)
++ basic_machine=$field1-$field2
++ basic_os=$field3
++ ;;
++ esac
+ ;;
+- -psos*)
+- os=-psos
++ *-*)
++ # A lone config we happen to match not fitting any pattern
++ case $field1-$field2 in
++ decstation-3100)
++ basic_machine=mips-dec
++ basic_os=
++ ;;
++ *-*)
++ # Second component is usually, but not always the OS
++ case $field2 in
++ # Prevent following clause from handling this valid os
++ sun*os*)
++ basic_machine=$field1
++ basic_os=$field2
++ ;;
++ zephyr*)
++ basic_machine=$field1-unknown
++ basic_os=$field2
++ ;;
++ # Manufacturers
++ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
++ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
++ | unicom* | ibm* | next | hp | isi* | apollo | altos* \
++ | convergent* | ncr* | news | 32* | 3600* | 3100* \
++ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
++ | ultra | tti* | harris | dolphin | highlevel | gould \
++ | cbm | ns | masscomp | apple | axis | knuth | cray \
++ | microblaze* | sim | cisco \
++ | oki | wec | wrs | winbond)
++ basic_machine=$field1-$field2
++ basic_os=
++ ;;
++ *)
++ basic_machine=$field1
++ basic_os=$field2
++ ;;
++ esac
++ ;;
++ esac
+ ;;
+- -mint | -mint[0-9]*)
+- basic_machine=m68k-atari
+- os=-mint
++ *)
++ # Convert single-component short-hands not valid as part of
++ # multi-component configurations.
++ case $field1 in
++ 386bsd)
++ basic_machine=i386-pc
++ basic_os=bsd
++ ;;
++ a29khif)
++ basic_machine=a29k-amd
++ basic_os=udi
++ ;;
++ adobe68k)
++ basic_machine=m68010-adobe
++ basic_os=scout
++ ;;
++ alliant)
++ basic_machine=fx80-alliant
++ basic_os=
++ ;;
++ altos | altos3068)
++ basic_machine=m68k-altos
++ basic_os=
++ ;;
++ am29k)
++ basic_machine=a29k-none
++ basic_os=bsd
++ ;;
++ amdahl)
++ basic_machine=580-amdahl
++ basic_os=sysv
++ ;;
++ amiga)
++ basic_machine=m68k-unknown
++ basic_os=
++ ;;
++ amigaos | amigados)
++ basic_machine=m68k-unknown
++ basic_os=amigaos
++ ;;
++ amigaunix | amix)
++ basic_machine=m68k-unknown
++ basic_os=sysv4
++ ;;
++ apollo68)
++ basic_machine=m68k-apollo
++ basic_os=sysv
++ ;;
++ apollo68bsd)
++ basic_machine=m68k-apollo
++ basic_os=bsd
++ ;;
++ aros)
++ basic_machine=i386-pc
++ basic_os=aros
++ ;;
++ aux)
++ basic_machine=m68k-apple
++ basic_os=aux
++ ;;
++ balance)
++ basic_machine=ns32k-sequent
++ basic_os=dynix
++ ;;
++ blackfin)
++ basic_machine=bfin-unknown
++ basic_os=linux
++ ;;
++ cegcc)
++ basic_machine=arm-unknown
++ basic_os=cegcc
++ ;;
++ convex-c1)
++ basic_machine=c1-convex
++ basic_os=bsd
++ ;;
++ convex-c2)
++ basic_machine=c2-convex
++ basic_os=bsd
++ ;;
++ convex-c32)
++ basic_machine=c32-convex
++ basic_os=bsd
++ ;;
++ convex-c34)
++ basic_machine=c34-convex
++ basic_os=bsd
++ ;;
++ convex-c38)
++ basic_machine=c38-convex
++ basic_os=bsd
++ ;;
++ cray)
++ basic_machine=j90-cray
++ basic_os=unicos
++ ;;
++ crds | unos)
++ basic_machine=m68k-crds
++ basic_os=
++ ;;
++ da30)
++ basic_machine=m68k-da30
++ basic_os=
++ ;;
++ decstation | pmax | pmin | dec3100 | decstatn)
++ basic_machine=mips-dec
++ basic_os=
++ ;;
++ delta88)
++ basic_machine=m88k-motorola
++ basic_os=sysv3
++ ;;
++ dicos)
++ basic_machine=i686-pc
++ basic_os=dicos
++ ;;
++ djgpp)
++ basic_machine=i586-pc
++ basic_os=msdosdjgpp
++ ;;
++ ebmon29k)
++ basic_machine=a29k-amd
++ basic_os=ebmon
++ ;;
++ es1800 | OSE68k | ose68k | ose | OSE)
++ basic_machine=m68k-ericsson
++ basic_os=ose
++ ;;
++ gmicro)
++ basic_machine=tron-gmicro
++ basic_os=sysv
++ ;;
++ go32)
++ basic_machine=i386-pc
++ basic_os=go32
++ ;;
++ h8300hms)
++ basic_machine=h8300-hitachi
++ basic_os=hms
++ ;;
++ h8300xray)
++ basic_machine=h8300-hitachi
++ basic_os=xray
++ ;;
++ h8500hms)
++ basic_machine=h8500-hitachi
++ basic_os=hms
++ ;;
++ harris)
++ basic_machine=m88k-harris
++ basic_os=sysv3
++ ;;
++ hp300 | hp300hpux)
++ basic_machine=m68k-hp
++ basic_os=hpux
++ ;;
++ hp300bsd)
++ basic_machine=m68k-hp
++ basic_os=bsd
++ ;;
++ hppaosf)
++ basic_machine=hppa1.1-hp
++ basic_os=osf
++ ;;
++ hppro)
++ basic_machine=hppa1.1-hp
++ basic_os=proelf
++ ;;
++ i386mach)
++ basic_machine=i386-mach
++ basic_os=mach
++ ;;
++ isi68 | isi)
++ basic_machine=m68k-isi
++ basic_os=sysv
++ ;;
++ m68knommu)
++ basic_machine=m68k-unknown
++ basic_os=linux
++ ;;
++ magnum | m3230)
++ basic_machine=mips-mips
++ basic_os=sysv
++ ;;
++ merlin)
++ basic_machine=ns32k-utek
++ basic_os=sysv
++ ;;
++ mingw64)
++ basic_machine=x86_64-pc
++ basic_os=mingw64
++ ;;
++ mingw32)
++ basic_machine=i686-pc
++ basic_os=mingw32
++ ;;
++ mingw32ce)
++ basic_machine=arm-unknown
++ basic_os=mingw32ce
++ ;;
++ monitor)
++ basic_machine=m68k-rom68k
++ basic_os=coff
++ ;;
++ morphos)
++ basic_machine=powerpc-unknown
++ basic_os=morphos
++ ;;
++ moxiebox)
++ basic_machine=moxie-unknown
++ basic_os=moxiebox
++ ;;
++ msdos)
++ basic_machine=i386-pc
++ basic_os=msdos
++ ;;
++ msys)
++ basic_machine=i686-pc
++ basic_os=msys
++ ;;
++ mvs)
++ basic_machine=i370-ibm
++ basic_os=mvs
++ ;;
++ nacl)
++ basic_machine=le32-unknown
++ basic_os=nacl
++ ;;
++ ncr3000)
++ basic_machine=i486-ncr
++ basic_os=sysv4
++ ;;
++ netbsd386)
++ basic_machine=i386-pc
++ basic_os=netbsd
++ ;;
++ netwinder)
++ basic_machine=armv4l-rebel
++ basic_os=linux
++ ;;
++ news | news700 | news800 | news900)
++ basic_machine=m68k-sony
++ basic_os=newsos
++ ;;
++ news1000)
++ basic_machine=m68030-sony
++ basic_os=newsos
++ ;;
++ necv70)
++ basic_machine=v70-nec
++ basic_os=sysv
++ ;;
++ nh3000)
++ basic_machine=m68k-harris
++ basic_os=cxux
++ ;;
++ nh[45]000)
++ basic_machine=m88k-harris
++ basic_os=cxux
++ ;;
++ nindy960)
++ basic_machine=i960-intel
++ basic_os=nindy
++ ;;
++ mon960)
++ basic_machine=i960-intel
++ basic_os=mon960
++ ;;
++ nonstopux)
++ basic_machine=mips-compaq
++ basic_os=nonstopux
++ ;;
++ os400)
++ basic_machine=powerpc-ibm
++ basic_os=os400
++ ;;
++ OSE68000 | ose68000)
++ basic_machine=m68000-ericsson
++ basic_os=ose
++ ;;
++ os68k)
++ basic_machine=m68k-none
++ basic_os=os68k
++ ;;
++ paragon)
++ basic_machine=i860-intel
++ basic_os=osf
++ ;;
++ parisc)
++ basic_machine=hppa-unknown
++ basic_os=linux
++ ;;
++ psp)
++ basic_machine=mipsallegrexel-sony
++ basic_os=psp
++ ;;
++ pw32)
++ basic_machine=i586-unknown
++ basic_os=pw32
++ ;;
++ rdos | rdos64)
++ basic_machine=x86_64-pc
++ basic_os=rdos
++ ;;
++ rdos32)
++ basic_machine=i386-pc
++ basic_os=rdos
++ ;;
++ rom68k)
++ basic_machine=m68k-rom68k
++ basic_os=coff
++ ;;
++ sa29200)
++ basic_machine=a29k-amd
++ basic_os=udi
++ ;;
++ sei)
++ basic_machine=mips-sei
++ basic_os=seiux
++ ;;
++ sequent)
++ basic_machine=i386-sequent
++ basic_os=
++ ;;
++ sps7)
++ basic_machine=m68k-bull
++ basic_os=sysv2
++ ;;
++ st2000)
++ basic_machine=m68k-tandem
++ basic_os=
++ ;;
++ stratus)
++ basic_machine=i860-stratus
++ basic_os=sysv4
++ ;;
++ sun2)
++ basic_machine=m68000-sun
++ basic_os=
++ ;;
++ sun2os3)
++ basic_machine=m68000-sun
++ basic_os=sunos3
++ ;;
++ sun2os4)
++ basic_machine=m68000-sun
++ basic_os=sunos4
++ ;;
++ sun3)
++ basic_machine=m68k-sun
++ basic_os=
++ ;;
++ sun3os3)
++ basic_machine=m68k-sun
++ basic_os=sunos3
++ ;;
++ sun3os4)
++ basic_machine=m68k-sun
++ basic_os=sunos4
++ ;;
++ sun4)
++ basic_machine=sparc-sun
++ basic_os=
++ ;;
++ sun4os3)
++ basic_machine=sparc-sun
++ basic_os=sunos3
++ ;;
++ sun4os4)
++ basic_machine=sparc-sun
++ basic_os=sunos4
++ ;;
++ sun4sol2)
++ basic_machine=sparc-sun
++ basic_os=solaris2
++ ;;
++ sun386 | sun386i | roadrunner)
++ basic_machine=i386-sun
++ basic_os=
++ ;;
++ sv1)
++ basic_machine=sv1-cray
++ basic_os=unicos
++ ;;
++ symmetry)
++ basic_machine=i386-sequent
++ basic_os=dynix
++ ;;
++ t3e)
++ basic_machine=alphaev5-cray
++ basic_os=unicos
++ ;;
++ t90)
++ basic_machine=t90-cray
++ basic_os=unicos
++ ;;
++ toad1)
++ basic_machine=pdp10-xkl
++ basic_os=tops20
++ ;;
++ tpf)
++ basic_machine=s390x-ibm
++ basic_os=tpf
++ ;;
++ udi29k)
++ basic_machine=a29k-amd
++ basic_os=udi
++ ;;
++ ultra3)
++ basic_machine=a29k-nyu
++ basic_os=sym1
++ ;;
++ v810 | necv810)
++ basic_machine=v810-nec
++ basic_os=none
++ ;;
++ vaxv)
++ basic_machine=vax-dec
++ basic_os=sysv
++ ;;
++ vms)
++ basic_machine=vax-dec
++ basic_os=vms
++ ;;
++ vsta)
++ basic_machine=i386-pc
++ basic_os=vsta
++ ;;
++ vxworks960)
++ basic_machine=i960-wrs
++ basic_os=vxworks
++ ;;
++ vxworks68)
++ basic_machine=m68k-wrs
++ basic_os=vxworks
++ ;;
++ vxworks29k)
++ basic_machine=a29k-wrs
++ basic_os=vxworks
++ ;;
++ xbox)
++ basic_machine=i686-pc
++ basic_os=mingw32
++ ;;
++ ymp)
++ basic_machine=ymp-cray
++ basic_os=unicos
++ ;;
++ *)
++ basic_machine=$1
++ basic_os=
++ ;;
++ esac
+ ;;
+ esac
+
+-# Decode aliases for certain CPU-COMPANY combinations.
++# Decode 1-component or ad-hoc basic machines
+ case $basic_machine in
+- # Recognize the basic CPU types without company name.
+- # Some are omitted here because they have special meanings below.
+- 1750a | 580 \
+- | a29k \
+- | aarch64 | aarch64_be \
+- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+- | am33_2.0 \
+- | arc | arceb \
+- | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+- | avr | avr32 \
+- | ba \
+- | be32 | be64 \
+- | bfin \
+- | c4x | c8051 | clipper \
+- | d10v | d30v | dlx | dsp16xx \
+- | e2k | epiphany \
+- | fido | fr30 | frv | ft32 \
+- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+- | hexagon \
+- | i370 | i860 | i960 | ia16 | ia64 \
+- | ip2k | iq2000 \
+- | k1om \
+- | le32 | le64 \
+- | lm32 \
+- | m32c | m32r | m32rle | m68000 | m68k | m88k \
+- | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
+- | mips | mipsbe | mipseb | mipsel | mipsle \
+- | mips16 \
+- | mips64 | mips64el \
+- | mips64octeon | mips64octeonel \
+- | mips64orion | mips64orionel \
+- | mips64r5900 | mips64r5900el \
+- | mips64vr | mips64vrel \
+- | mips64vr4100 | mips64vr4100el \
+- | mips64vr4300 | mips64vr4300el \
+- | mips64vr5000 | mips64vr5000el \
+- | mips64vr5900 | mips64vr5900el \
+- | mipsisa32 | mipsisa32el \
+- | mipsisa32r2 | mipsisa32r2el \
+- | mipsisa32r6 | mipsisa32r6el \
+- | mipsisa64 | mipsisa64el \
+- | mipsisa64r2 | mipsisa64r2el \
+- | mipsisa64r6 | mipsisa64r6el \
+- | mipsisa64sb1 | mipsisa64sb1el \
+- | mipsisa64sr71k | mipsisa64sr71kel \
+- | mipsr5900 | mipsr5900el \
+- | mipstx39 | mipstx39el \
+- | mn10200 | mn10300 \
+- | moxie \
+- | mt \
+- | msp430 \
+- | nds32 | nds32le | nds32be \
+- | nios | nios2 | nios2eb | nios2el \
+- | ns16k | ns32k \
+- | open8 | or1k | or1knd | or32 \
+- | pdp10 | pdp11 | pj | pjl \
+- | powerpc | powerpc64 | powerpc64le | powerpcle \
+- | pru \
+- | pyramid \
+- | riscv32 | riscv64 \
+- | rl78 | rx \
+- | score \
+- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+- | sh64 | sh64le \
+- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+- | spu \
+- | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+- | ubicom32 \
+- | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+- | visium \
+- | wasm32 \
+- | x86 | xc16x | xstormy16 | xtensa \
+- | z8k | z80)
+- basic_machine=$basic_machine-unknown
+- ;;
+- c54x)
+- basic_machine=tic54x-unknown
+- ;;
+- c55x)
+- basic_machine=tic55x-unknown
+- ;;
+- c6x)
+- basic_machine=tic6x-unknown
+- ;;
+- leon|leon[3-9])
+- basic_machine=sparc-$basic_machine
++ # Here we handle the default manufacturer of certain CPU types. It is in
++ # some cases the only manufacturer, in others, it is the most popular.
++ w89k)
++ cpu=hppa1.1
++ vendor=winbond
+ ;;
+- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
+- basic_machine=$basic_machine-unknown
+- os=-none
++ op50n)
++ cpu=hppa1.1
++ vendor=oki
+ ;;
+- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
++ op60c)
++ cpu=hppa1.1
++ vendor=oki
+ ;;
+- ms1)
+- basic_machine=mt-unknown
++ ibm*)
++ cpu=i370
++ vendor=ibm
+ ;;
+-
+- strongarm | thumb | xscale)
+- basic_machine=arm-unknown
+- ;;
+- xgate)
+- basic_machine=$basic_machine-unknown
+- os=-none
++ orion105)
++ cpu=clipper
++ vendor=highlevel
+ ;;
+- xscaleeb)
+- basic_machine=armeb-unknown
++ mac | mpw | mac-mpw)
++ cpu=m68k
++ vendor=apple
+ ;;
+-
+- xscaleel)
+- basic_machine=armel-unknown
++ pmac | pmac-mpw)
++ cpu=powerpc
++ vendor=apple
+ ;;
+
+- # We use `pc' rather than `unknown'
+- # because (1) that's what they normally are, and
+- # (2) the word "unknown" tends to confuse beginning users.
+- i*86 | x86_64)
+- basic_machine=$basic_machine-pc
+- ;;
+- # Object if more than one company name word.
+- *-*-*)
+- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+- exit 1
+- ;;
+- # Recognize the basic CPU types with company name.
+- 580-* \
+- | a29k-* \
+- | aarch64-* | aarch64_be-* \
+- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
+- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+- | avr-* | avr32-* \
+- | ba-* \
+- | be32-* | be64-* \
+- | bfin-* | bs2000-* \
+- | c[123]* | c30-* | [cjt]90-* | c4x-* \
+- | c8051-* | clipper-* | craynv-* | cydra-* \
+- | d10v-* | d30v-* | dlx-* \
+- | e2k-* | elxsi-* \
+- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+- | h8300-* | h8500-* \
+- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+- | hexagon-* \
+- | i*86-* | i860-* | i960-* | ia16-* | ia64-* \
+- | ip2k-* | iq2000-* \
+- | k1om-* \
+- | le32-* | le64-* \
+- | lm32-* \
+- | m32c-* | m32r-* | m32rle-* \
+- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+- | microblaze-* | microblazeel-* \
+- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+- | mips16-* \
+- | mips64-* | mips64el-* \
+- | mips64octeon-* | mips64octeonel-* \
+- | mips64orion-* | mips64orionel-* \
+- | mips64r5900-* | mips64r5900el-* \
+- | mips64vr-* | mips64vrel-* \
+- | mips64vr4100-* | mips64vr4100el-* \
+- | mips64vr4300-* | mips64vr4300el-* \
+- | mips64vr5000-* | mips64vr5000el-* \
+- | mips64vr5900-* | mips64vr5900el-* \
+- | mipsisa32-* | mipsisa32el-* \
+- | mipsisa32r2-* | mipsisa32r2el-* \
+- | mipsisa32r6-* | mipsisa32r6el-* \
+- | mipsisa64-* | mipsisa64el-* \
+- | mipsisa64r2-* | mipsisa64r2el-* \
+- | mipsisa64r6-* | mipsisa64r6el-* \
+- | mipsisa64sb1-* | mipsisa64sb1el-* \
+- | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+- | mipsr5900-* | mipsr5900el-* \
+- | mipstx39-* | mipstx39el-* \
+- | mmix-* \
+- | mt-* \
+- | msp430-* \
+- | nds32-* | nds32le-* | nds32be-* \
+- | nios-* | nios2-* | nios2eb-* | nios2el-* \
+- | none-* | np1-* | ns16k-* | ns32k-* \
+- | open8-* \
+- | or1k*-* \
+- | orion-* \
+- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+- | pru-* \
+- | pyramid-* \
+- | riscv32-* | riscv64-* \
+- | rl78-* | romp-* | rs6000-* | rx-* \
+- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+- | sparclite-* \
+- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
+- | tahoe-* \
+- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+- | tile*-* \
+- | tron-* \
+- | ubicom32-* \
+- | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+- | vax-* \
+- | visium-* \
+- | wasm32-* \
+- | we32k-* \
+- | x86-* | x86_64-* | xc16x-* | xps100-* \
+- | xstormy16-* | xtensa*-* \
+- | ymp-* \
+- | z8k-* | z80-*)
+- ;;
+- # Recognize the basic CPU types without company name, with glob match.
+- xtensa*)
+- basic_machine=$basic_machine-unknown
+- ;;
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+- 386bsd)
+- basic_machine=i386-unknown
+- os=-bsd
+- ;;
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+- basic_machine=m68000-att
++ cpu=m68000
++ vendor=att
+ ;;
+ 3b*)
+- basic_machine=we32k-att
+- ;;
+- a29khif)
+- basic_machine=a29k-amd
+- os=-udi
+- ;;
+- abacus)
+- basic_machine=abacus-unknown
+- ;;
+- adobe68k)
+- basic_machine=m68010-adobe
+- os=-scout
+- ;;
+- alliant | fx80)
+- basic_machine=fx80-alliant
+- ;;
+- altos | altos3068)
+- basic_machine=m68k-altos
+- ;;
+- am29k)
+- basic_machine=a29k-none
+- os=-bsd
+- ;;
+- amd64)
+- basic_machine=x86_64-pc
+- ;;
+- amd64-*)
+- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+- ;;
+- amdahl)
+- basic_machine=580-amdahl
+- os=-sysv
+- ;;
+- amiga | amiga-*)
+- basic_machine=m68k-unknown
+- ;;
+- amigaos | amigados)
+- basic_machine=m68k-unknown
+- os=-amigaos
+- ;;
+- amigaunix | amix)
+- basic_machine=m68k-unknown
+- os=-sysv4
+- ;;
+- apollo68)
+- basic_machine=m68k-apollo
+- os=-sysv
+- ;;
+- apollo68bsd)
+- basic_machine=m68k-apollo
+- os=-bsd
+- ;;
+- aros)
+- basic_machine=i386-pc
+- os=-aros
+- ;;
+- asmjs)
+- basic_machine=asmjs-unknown
+- ;;
+- aux)
+- basic_machine=m68k-apple
+- os=-aux
+- ;;
+- balance)
+- basic_machine=ns32k-sequent
+- os=-dynix
+- ;;
+- blackfin)
+- basic_machine=bfin-unknown
+- os=-linux
+- ;;
+- blackfin-*)
+- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+- os=-linux
++ cpu=we32k
++ vendor=att
+ ;;
+ bluegene*)
+- basic_machine=powerpc-ibm
+- os=-cnk
+- ;;
+- c54x-*)
+- basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+- ;;
+- c55x-*)
+- basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+- ;;
+- c6x-*)
+- basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+- ;;
+- c90)
+- basic_machine=c90-cray
+- os=-unicos
+- ;;
+- cegcc)
+- basic_machine=arm-unknown
+- os=-cegcc
+- ;;
+- convex-c1)
+- basic_machine=c1-convex
+- os=-bsd
+- ;;
+- convex-c2)
+- basic_machine=c2-convex
+- os=-bsd
+- ;;
+- convex-c32)
+- basic_machine=c32-convex
+- os=-bsd
+- ;;
+- convex-c34)
+- basic_machine=c34-convex
+- os=-bsd
+- ;;
+- convex-c38)
+- basic_machine=c38-convex
+- os=-bsd
+- ;;
+- cray | j90)
+- basic_machine=j90-cray
+- os=-unicos
+- ;;
+- craynv)
+- basic_machine=craynv-cray
+- os=-unicosmp
+- ;;
+- cr16 | cr16-*)
+- basic_machine=cr16-unknown
+- os=-elf
+- ;;
+- crds | unos)
+- basic_machine=m68k-crds
+- ;;
+- crisv32 | crisv32-* | etraxfs*)
+- basic_machine=crisv32-axis
+- ;;
+- cris | cris-* | etrax*)
+- basic_machine=cris-axis
+- ;;
+- crx)
+- basic_machine=crx-unknown
+- os=-elf
+- ;;
+- da30 | da30-*)
+- basic_machine=m68k-da30
+- ;;
+- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+- basic_machine=mips-dec
++ cpu=powerpc
++ vendor=ibm
++ basic_os=cnk
+ ;;
+ decsystem10* | dec10*)
+- basic_machine=pdp10-dec
+- os=-tops10
++ cpu=pdp10
++ vendor=dec
++ basic_os=tops10
+ ;;
+ decsystem20* | dec20*)
+- basic_machine=pdp10-dec
+- os=-tops20
++ cpu=pdp10
++ vendor=dec
++ basic_os=tops20
+ ;;
+ delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+- basic_machine=m68k-motorola
+- ;;
+- delta88)
+- basic_machine=m88k-motorola
+- os=-sysv3
+- ;;
+- dicos)
+- basic_machine=i686-pc
+- os=-dicos
+- ;;
+- djgpp)
+- basic_machine=i586-pc
+- os=-msdosdjgpp
+- ;;
+- dpx20 | dpx20-*)
+- basic_machine=rs6000-bull
+- os=-bosx
++ cpu=m68k
++ vendor=motorola
+ ;;
+ dpx2*)
+- basic_machine=m68k-bull
+- os=-sysv3
+- ;;
+- e500v[12])
+- basic_machine=powerpc-unknown
+- os=$os"spe"
+- ;;
+- e500v[12]-*)
+- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+- os=$os"spe"
+- ;;
+- ebmon29k)
+- basic_machine=a29k-amd
+- os=-ebmon
+- ;;
+- elxsi)
+- basic_machine=elxsi-elxsi
+- os=-bsd
++ cpu=m68k
++ vendor=bull
++ basic_os=sysv3
+ ;;
+ encore | umax | mmax)
+- basic_machine=ns32k-encore
++ cpu=ns32k
++ vendor=encore
+ ;;
+- es1800 | OSE68k | ose68k | ose | OSE)
+- basic_machine=m68k-ericsson
+- os=-ose
++ elxsi)
++ cpu=elxsi
++ vendor=elxsi
++ basic_os=${basic_os:-bsd}
+ ;;
+ fx2800)
+- basic_machine=i860-alliant
++ cpu=i860
++ vendor=alliant
+ ;;
+ genix)
+- basic_machine=ns32k-ns
+- ;;
+- gmicro)
+- basic_machine=tron-gmicro
+- os=-sysv
+- ;;
+- go32)
+- basic_machine=i386-pc
+- os=-go32
++ cpu=ns32k
++ vendor=ns
+ ;;
+ h3050r* | hiux*)
+- basic_machine=hppa1.1-hitachi
+- os=-hiuxwe2
+- ;;
+- h8300hms)
+- basic_machine=h8300-hitachi
+- os=-hms
+- ;;
+- h8300xray)
+- basic_machine=h8300-hitachi
+- os=-xray
+- ;;
+- h8500hms)
+- basic_machine=h8500-hitachi
+- os=-hms
+- ;;
+- harris)
+- basic_machine=m88k-harris
+- os=-sysv3
+- ;;
+- hp300-*)
+- basic_machine=m68k-hp
+- ;;
+- hp300bsd)
+- basic_machine=m68k-hp
+- os=-bsd
+- ;;
+- hp300hpux)
+- basic_machine=m68k-hp
+- os=-hpux
++ cpu=hppa1.1
++ vendor=hitachi
++ basic_os=hiuxwe2
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+- basic_machine=hppa1.0-hp
++ cpu=hppa1.0
++ vendor=hp
+ ;;
+ hp9k2[0-9][0-9] | hp9k31[0-9])
+- basic_machine=m68000-hp
++ cpu=m68000
++ vendor=hp
+ ;;
+ hp9k3[2-9][0-9])
+- basic_machine=m68k-hp
++ cpu=m68k
++ vendor=hp
+ ;;
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
+- basic_machine=hppa1.0-hp
++ cpu=hppa1.0
++ vendor=hp
+ ;;
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
+- basic_machine=hppa1.1-hp
++ cpu=hppa1.1
++ vendor=hp
+ ;;
+ hp9k78[0-9] | hp78[0-9])
+ # FIXME: really hppa2.0-hp
+- basic_machine=hppa1.1-hp
++ cpu=hppa1.1
++ vendor=hp
+ ;;
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+ # FIXME: really hppa2.0-hp
+- basic_machine=hppa1.1-hp
++ cpu=hppa1.1
++ vendor=hp
+ ;;
+ hp9k8[0-9][13679] | hp8[0-9][13679])
+- basic_machine=hppa1.1-hp
++ cpu=hppa1.1
++ vendor=hp
+ ;;
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
+- basic_machine=hppa1.0-hp
+- ;;
+- hppa-next)
+- os=-nextstep3
+- ;;
+- hppaosf)
+- basic_machine=hppa1.1-hp
+- os=-osf
+- ;;
+- hppro)
+- basic_machine=hppa1.1-hp
+- os=-proelf
+- ;;
+- i370-ibm* | ibm*)
+- basic_machine=i370-ibm
++ cpu=hppa1.0
++ vendor=hp
+ ;;
+ i*86v32)
+- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+- os=-sysv32
++ cpu=`echo "$1" | sed -e 's/86.*/86/'`
++ vendor=pc
++ basic_os=sysv32
+ ;;
+ i*86v4*)
+- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+- os=-sysv4
++ cpu=`echo "$1" | sed -e 's/86.*/86/'`
++ vendor=pc
++ basic_os=sysv4
+ ;;
+ i*86v)
+- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+- os=-sysv
++ cpu=`echo "$1" | sed -e 's/86.*/86/'`
++ vendor=pc
++ basic_os=sysv
+ ;;
+ i*86sol2)
+- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+- os=-solaris2
++ cpu=`echo "$1" | sed -e 's/86.*/86/'`
++ vendor=pc
++ basic_os=solaris2
+ ;;
+- i386mach)
+- basic_machine=i386-mach
+- os=-mach
+- ;;
+- i386-vsta | vsta)
+- basic_machine=i386-unknown
+- os=-vsta
++ j90 | j90-cray)
++ cpu=j90
++ vendor=cray
++ basic_os=${basic_os:-unicos}
+ ;;
+ iris | iris4d)
+- basic_machine=mips-sgi
+- case $os in
+- -irix*)
++ cpu=mips
++ vendor=sgi
++ case $basic_os in
++ irix*)
+ ;;
+ *)
+- os=-irix4
++ basic_os=irix4
+ ;;
+ esac
+ ;;
+- isi68 | isi)
+- basic_machine=m68k-isi
+- os=-sysv
+- ;;
+- leon-*|leon[3-9]-*)
+- basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
+- ;;
+- m68knommu)
+- basic_machine=m68k-unknown
+- os=-linux
+- ;;
+- m68knommu-*)
+- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+- os=-linux
+- ;;
+- m88k-omron*)
+- basic_machine=m88k-omron
+- ;;
+- magnum | m3230)
+- basic_machine=mips-mips
+- os=-sysv
+- ;;
+- merlin)
+- basic_machine=ns32k-utek
+- os=-sysv
+- ;;
+- microblaze*)
+- basic_machine=microblaze-xilinx
+- ;;
+- mingw64)
+- basic_machine=x86_64-pc
+- os=-mingw64
+- ;;
+- mingw32)
+- basic_machine=i686-pc
+- os=-mingw32
+- ;;
+- mingw32ce)
+- basic_machine=arm-unknown
+- os=-mingw32ce
+- ;;
+ miniframe)
+- basic_machine=m68000-convergent
+- ;;
+- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+- basic_machine=m68k-atari
+- os=-mint
+- ;;
+- mips3*-*)
+- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+- ;;
+- mips3*)
+- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+- ;;
+- monitor)
+- basic_machine=m68k-rom68k
+- os=-coff
+- ;;
+- morphos)
+- basic_machine=powerpc-unknown
+- os=-morphos
++ cpu=m68000
++ vendor=convergent
+ ;;
+- moxiebox)
+- basic_machine=moxie-unknown
+- os=-moxiebox
+- ;;
+- msdos)
+- basic_machine=i386-pc
+- os=-msdos
+- ;;
+- ms1-*)
+- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+- ;;
+- msys)
+- basic_machine=i686-pc
+- os=-msys
+- ;;
+- mvs)
+- basic_machine=i370-ibm
+- os=-mvs
+- ;;
+- nacl)
+- basic_machine=le32-unknown
+- os=-nacl
+- ;;
+- ncr3000)
+- basic_machine=i486-ncr
+- os=-sysv4
+- ;;
+- netbsd386)
+- basic_machine=i386-unknown
+- os=-netbsd
+- ;;
+- netwinder)
+- basic_machine=armv4l-rebel
+- os=-linux
+- ;;
+- news | news700 | news800 | news900)
+- basic_machine=m68k-sony
+- os=-newsos
+- ;;
+- news1000)
+- basic_machine=m68030-sony
+- os=-newsos
++ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
++ cpu=m68k
++ vendor=atari
++ basic_os=mint
+ ;;
+ news-3600 | risc-news)
+- basic_machine=mips-sony
+- os=-newsos
+- ;;
+- necv70)
+- basic_machine=v70-nec
+- os=-sysv
++ cpu=mips
++ vendor=sony
++ basic_os=newsos
+ ;;
+ next | m*-next)
+- basic_machine=m68k-next
+- case $os in
+- -nextstep* )
++ cpu=m68k
++ vendor=next
++ case $basic_os in
++ openstep*)
++ ;;
++ nextstep*)
+ ;;
+- -ns2*)
+- os=-nextstep2
++ ns2*)
++ basic_os=nextstep2
+ ;;
+ *)
+- os=-nextstep3
++ basic_os=nextstep3
+ ;;
+ esac
+ ;;
+- nh3000)
+- basic_machine=m68k-harris
+- os=-cxux
+- ;;
+- nh[45]000)
+- basic_machine=m88k-harris
+- os=-cxux
+- ;;
+- nindy960)
+- basic_machine=i960-intel
+- os=-nindy
+- ;;
+- mon960)
+- basic_machine=i960-intel
+- os=-mon960
+- ;;
+- nonstopux)
+- basic_machine=mips-compaq
+- os=-nonstopux
+- ;;
+ np1)
+- basic_machine=np1-gould
+- ;;
+- neo-tandem)
+- basic_machine=neo-tandem
+- ;;
+- nse-tandem)
+- basic_machine=nse-tandem
+- ;;
+- nsr-tandem)
+- basic_machine=nsr-tandem
+- ;;
+- nsx-tandem)
+- basic_machine=nsx-tandem
++ cpu=np1
++ vendor=gould
+ ;;
+ op50n-* | op60c-*)
+- basic_machine=hppa1.1-oki
+- os=-proelf
+- ;;
+- openrisc | openrisc-*)
+- basic_machine=or32-unknown
+- ;;
+- os400)
+- basic_machine=powerpc-ibm
+- os=-os400
+- ;;
+- OSE68000 | ose68000)
+- basic_machine=m68000-ericsson
+- os=-ose
+- ;;
+- os68k)
+- basic_machine=m68k-none
+- os=-os68k
++ cpu=hppa1.1
++ vendor=oki
++ basic_os=proelf
+ ;;
+ pa-hitachi)
+- basic_machine=hppa1.1-hitachi
+- os=-hiuxwe2
+- ;;
+- paragon)
+- basic_machine=i860-intel
+- os=-osf
+- ;;
+- parisc)
+- basic_machine=hppa-unknown
+- os=-linux
+- ;;
+- parisc-*)
+- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+- os=-linux
++ cpu=hppa1.1
++ vendor=hitachi
++ basic_os=hiuxwe2
+ ;;
+ pbd)
+- basic_machine=sparc-tti
++ cpu=sparc
++ vendor=tti
+ ;;
+ pbb)
+- basic_machine=m68k-tti
+- ;;
+- pc532 | pc532-*)
+- basic_machine=ns32k-pc532
+- ;;
+- pc98)
+- basic_machine=i386-pc
+- ;;
+- pc98-*)
+- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+- ;;
+- pentium | p5 | k5 | k6 | nexgen | viac3)
+- basic_machine=i586-pc
+- ;;
+- pentiumpro | p6 | 6x86 | athlon | athlon_*)
+- basic_machine=i686-pc
+- ;;
+- pentiumii | pentium2 | pentiumiii | pentium3)
+- basic_machine=i686-pc
+- ;;
+- pentium4)
+- basic_machine=i786-pc
+- ;;
+- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
++ cpu=m68k
++ vendor=tti
+ ;;
+- pentiumpro-* | p6-* | 6x86-* | athlon-*)
+- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+- ;;
+- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+- ;;
+- pentium4-*)
+- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
++ pc532)
++ cpu=ns32k
++ vendor=pc532
+ ;;
+ pn)
+- basic_machine=pn-gould
+- ;;
+- power) basic_machine=power-ibm
+- ;;
+- ppc | ppcbe) basic_machine=powerpc-unknown
+- ;;
+- ppc-* | ppcbe-*)
+- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+- ;;
+- ppcle | powerpclittle)
+- basic_machine=powerpcle-unknown
+- ;;
+- ppcle-* | powerpclittle-*)
+- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+- ;;
+- ppc64) basic_machine=powerpc64-unknown
+- ;;
+- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+- ;;
+- ppc64le | powerpc64little)
+- basic_machine=powerpc64le-unknown
++ cpu=pn
++ vendor=gould
+ ;;
+- ppc64le-* | powerpc64little-*)
+- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
++ power)
++ cpu=power
++ vendor=ibm
+ ;;
+ ps2)
+- basic_machine=i386-ibm
+- ;;
+- pw32)
+- basic_machine=i586-unknown
+- os=-pw32
+- ;;
+- rdos | rdos64)
+- basic_machine=x86_64-pc
+- os=-rdos
+- ;;
+- rdos32)
+- basic_machine=i386-pc
+- os=-rdos
+- ;;
+- rom68k)
+- basic_machine=m68k-rom68k
+- os=-coff
++ cpu=i386
++ vendor=ibm
+ ;;
+ rm[46]00)
+- basic_machine=mips-siemens
++ cpu=mips
++ vendor=siemens
+ ;;
+ rtpc | rtpc-*)
+- basic_machine=romp-ibm
+- ;;
+- s390 | s390-*)
+- basic_machine=s390-ibm
+- ;;
+- s390x | s390x-*)
+- basic_machine=s390x-ibm
+- ;;
+- sa29200)
+- basic_machine=a29k-amd
+- os=-udi
+- ;;
+- sb1)
+- basic_machine=mipsisa64sb1-unknown
+- ;;
+- sb1el)
+- basic_machine=mipsisa64sb1el-unknown
++ cpu=romp
++ vendor=ibm
+ ;;
+ sde)
+- basic_machine=mipsisa32-sde
+- os=-elf
++ cpu=mipsisa32
++ vendor=sde
++ basic_os=${basic_os:-elf}
+ ;;
+- sei)
+- basic_machine=mips-sei
+- os=-seiux
++ simso-wrs)
++ cpu=sparclite
++ vendor=wrs
++ basic_os=vxworks
+ ;;
+- sequent)
+- basic_machine=i386-sequent
++ tower | tower-32)
++ cpu=m68k
++ vendor=ncr
+ ;;
+- sh)
+- basic_machine=sh-hitachi
+- os=-hms
++ vpp*|vx|vx-*)
++ cpu=f301
++ vendor=fujitsu
+ ;;
+- sh5el)
+- basic_machine=sh5le-unknown
++ w65)
++ cpu=w65
++ vendor=wdc
+ ;;
+- sh64)
+- basic_machine=sh64-unknown
++ w89k-*)
++ cpu=hppa1.1
++ vendor=winbond
++ basic_os=proelf
+ ;;
+- sparclite-wrs | simso-wrs)
+- basic_machine=sparclite-wrs
+- os=-vxworks
++ none)
++ cpu=none
++ vendor=none
+ ;;
+- sps7)
+- basic_machine=m68k-bull
+- os=-sysv2
++ leon|leon[3-9])
++ cpu=sparc
++ vendor=$basic_machine
+ ;;
+- spur)
+- basic_machine=spur-unknown
++ leon-*|leon[3-9]-*)
++ cpu=sparc
++ vendor=`echo "$basic_machine" | sed 's/-.*//'`
+ ;;
+- st2000)
+- basic_machine=m68k-tandem
++
++ *-*)
++ # shellcheck disable=SC2162
++ saved_IFS=$IFS
++ IFS="-" read cpu vendor <<EOF
++$basic_machine
++EOF
++ IFS=$saved_IFS
+ ;;
+- stratus)
+- basic_machine=i860-stratus
+- os=-sysv4
++ # We use `pc' rather than `unknown'
++ # because (1) that's what they normally are, and
++ # (2) the word "unknown" tends to confuse beginning users.
++ i*86 | x86_64)
++ cpu=$basic_machine
++ vendor=pc
+ ;;
+- strongarm-* | thumb-*)
+- basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
++ # These rules are duplicated from below for sake of the special case above;
++ # i.e. things that normalized to x86 arches should also default to "pc"
++ pc98)
++ cpu=i386
++ vendor=pc
++ ;;
++ x64 | amd64)
++ cpu=x86_64
++ vendor=pc
+ ;;
+- sun2)
+- basic_machine=m68000-sun
++ # Recognize the basic CPU types without company name.
++ *)
++ cpu=$basic_machine
++ vendor=unknown
+ ;;
+- sun2os3)
+- basic_machine=m68000-sun
+- os=-sunos3
++esac
++
++unset -v basic_machine
++
++# Decode basic machines in the full and proper CPU-Company form.
++case $cpu-$vendor in
++ # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
++ # some cases the only manufacturer, in others, it is the most popular.
++ craynv-unknown)
++ vendor=cray
++ basic_os=${basic_os:-unicosmp}
+ ;;
+- sun2os4)
+- basic_machine=m68000-sun
+- os=-sunos4
++ c90-unknown | c90-cray)
++ vendor=cray
++ basic_os=${Basic_os:-unicos}
+ ;;
+- sun3os3)
+- basic_machine=m68k-sun
+- os=-sunos3
++ fx80-unknown)
++ vendor=alliant
+ ;;
+- sun3os4)
+- basic_machine=m68k-sun
+- os=-sunos4
++ romp-unknown)
++ vendor=ibm
+ ;;
+- sun4os3)
+- basic_machine=sparc-sun
+- os=-sunos3
++ mmix-unknown)
++ vendor=knuth
+ ;;
+- sun4os4)
+- basic_machine=sparc-sun
+- os=-sunos4
++ microblaze-unknown | microblazeel-unknown)
++ vendor=xilinx
+ ;;
+- sun4sol2)
+- basic_machine=sparc-sun
+- os=-solaris2
++ rs6000-unknown)
++ vendor=ibm
+ ;;
+- sun3 | sun3-*)
+- basic_machine=m68k-sun
++ vax-unknown)
++ vendor=dec
+ ;;
+- sun4)
+- basic_machine=sparc-sun
++ pdp11-unknown)
++ vendor=dec
+ ;;
+- sun386 | sun386i | roadrunner)
+- basic_machine=i386-sun
++ we32k-unknown)
++ vendor=att
+ ;;
+- sv1)
+- basic_machine=sv1-cray
+- os=-unicos
++ cydra-unknown)
++ vendor=cydrome
+ ;;
+- symmetry)
+- basic_machine=i386-sequent
+- os=-dynix
++ i370-ibm*)
++ vendor=ibm
+ ;;
+- t3e)
+- basic_machine=alphaev5-cray
+- os=-unicos
++ orion-unknown)
++ vendor=highlevel
+ ;;
+- t90)
+- basic_machine=t90-cray
+- os=-unicos
++ xps-unknown | xps100-unknown)
++ cpu=xps100
++ vendor=honeywell
+ ;;
+- tile*)
+- basic_machine=$basic_machine-unknown
+- os=-linux-gnu
++
++ # Here we normalize CPU types with a missing or matching vendor
++ armh-unknown | armh-alt)
++ cpu=armv7l
++ vendor=alt
++ basic_os=${basic_os:-linux-gnueabihf}
+ ;;
+- tx39)
+- basic_machine=mipstx39-unknown
++ dpx20-unknown | dpx20-bull)
++ cpu=rs6000
++ vendor=bull
++ basic_os=${basic_os:-bosx}
+ ;;
+- tx39el)
+- basic_machine=mipstx39el-unknown
++
++ # Here we normalize CPU types irrespective of the vendor
++ amd64-*)
++ cpu=x86_64
+ ;;
+- toad1)
+- basic_machine=pdp10-xkl
+- os=-tops20
++ blackfin-*)
++ cpu=bfin
++ basic_os=linux
+ ;;
+- tower | tower-32)
+- basic_machine=m68k-ncr
++ c54x-*)
++ cpu=tic54x
+ ;;
+- tpf)
+- basic_machine=s390x-ibm
+- os=-tpf
++ c55x-*)
++ cpu=tic55x
+ ;;
+- udi29k)
+- basic_machine=a29k-amd
+- os=-udi
++ c6x-*)
++ cpu=tic6x
+ ;;
+- ultra3)
+- basic_machine=a29k-nyu
+- os=-sym1
++ e500v[12]-*)
++ cpu=powerpc
++ basic_os=${basic_os}"spe"
+ ;;
+- v810 | necv810)
+- basic_machine=v810-nec
+- os=-none
++ mips3*-*)
++ cpu=mips64
+ ;;
+- vaxv)
+- basic_machine=vax-dec
+- os=-sysv
++ ms1-*)
++ cpu=mt
+ ;;
+- vms)
+- basic_machine=vax-dec
+- os=-vms
++ m68knommu-*)
++ cpu=m68k
++ basic_os=linux
+ ;;
+- vpp*|vx|vx-*)
+- basic_machine=f301-fujitsu
++ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
++ cpu=s12z
+ ;;
+- vxworks960)
+- basic_machine=i960-wrs
+- os=-vxworks
++ openrisc-*)
++ cpu=or32
+ ;;
+- vxworks68)
+- basic_machine=m68k-wrs
+- os=-vxworks
++ parisc-*)
++ cpu=hppa
++ basic_os=linux
+ ;;
+- vxworks29k)
+- basic_machine=a29k-wrs
+- os=-vxworks
++ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
++ cpu=i586
+ ;;
+- wasm32)
+- basic_machine=wasm32-unknown
++ pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
++ cpu=i686
+ ;;
+- w65*)
+- basic_machine=w65-wdc
+- os=-none
++ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
++ cpu=i686
+ ;;
+- w89k-*)
+- basic_machine=hppa1.1-winbond
+- os=-proelf
++ pentium4-*)
++ cpu=i786
+ ;;
+- x64)
+- basic_machine=x86_64-pc
++ pc98-*)
++ cpu=i386
+ ;;
+- xbox)
+- basic_machine=i686-pc
+- os=-mingw32
++ ppc-* | ppcbe-*)
++ cpu=powerpc
+ ;;
+- xps | xps100)
+- basic_machine=xps100-honeywell
++ ppcle-* | powerpclittle-*)
++ cpu=powerpcle
+ ;;
+- xscale-* | xscalee[bl]-*)
+- basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
++ ppc64-*)
++ cpu=powerpc64
+ ;;
+- ymp)
+- basic_machine=ymp-cray
+- os=-unicos
++ ppc64le-* | powerpc64little-*)
++ cpu=powerpc64le
+ ;;
+- z8k-*-coff)
+- basic_machine=z8k-unknown
+- os=-sim
++ sb1-*)
++ cpu=mipsisa64sb1
+ ;;
+- z80-*-coff)
+- basic_machine=z80-unknown
+- os=-sim
++ sb1el-*)
++ cpu=mipsisa64sb1el
+ ;;
+- none)
+- basic_machine=none-none
+- os=-none
++ sh5e[lb]-*)
++ cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
+ ;;
+-
+-# Here we handle the default manufacturer of certain CPU types. It is in
+-# some cases the only manufacturer, in others, it is the most popular.
+- w89k)
+- basic_machine=hppa1.1-winbond
++ spur-*)
++ cpu=spur
+ ;;
+- op50n)
+- basic_machine=hppa1.1-oki
++ strongarm-* | thumb-*)
++ cpu=arm
+ ;;
+- op60c)
+- basic_machine=hppa1.1-oki
++ tx39-*)
++ cpu=mipstx39
+ ;;
+- romp)
+- basic_machine=romp-ibm
++ tx39el-*)
++ cpu=mipstx39el
+ ;;
+- mmix)
+- basic_machine=mmix-knuth
++ x64-*)
++ cpu=x86_64
+ ;;
+- rs6000)
+- basic_machine=rs6000-ibm
++ xscale-* | xscalee[bl]-*)
++ cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
+ ;;
+- vax)
+- basic_machine=vax-dec
++ arm64-* | aarch64le-*)
++ cpu=aarch64
+ ;;
+- pdp10)
+- # there are many clones, so DEC is not a safe bet
+- basic_machine=pdp10-unknown
++
++ # Recognize the canonical CPU Types that limit and/or modify the
++ # company names they are paired with.
++ cr16-*)
++ basic_os=${basic_os:-elf}
+ ;;
+- pdp11)
+- basic_machine=pdp11-dec
++ crisv32-* | etraxfs*-*)
++ cpu=crisv32
++ vendor=axis
+ ;;
+- we32k)
+- basic_machine=we32k-att
++ cris-* | etrax*-*)
++ cpu=cris
++ vendor=axis
+ ;;
+- sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+- basic_machine=sh-unknown
++ crx-*)
++ basic_os=${basic_os:-elf}
+ ;;
+- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+- basic_machine=sparc-sun
++ neo-tandem)
++ cpu=neo
++ vendor=tandem
+ ;;
+- cydra)
+- basic_machine=cydra-cydrome
++ nse-tandem)
++ cpu=nse
++ vendor=tandem
+ ;;
+- orion)
+- basic_machine=orion-highlevel
++ nsr-tandem)
++ cpu=nsr
++ vendor=tandem
+ ;;
+- orion105)
+- basic_machine=clipper-highlevel
++ nsv-tandem)
++ cpu=nsv
++ vendor=tandem
+ ;;
+- mac | mpw | mac-mpw)
+- basic_machine=m68k-apple
++ nsx-tandem)
++ cpu=nsx
++ vendor=tandem
+ ;;
+- pmac | pmac-mpw)
+- basic_machine=powerpc-apple
++ mipsallegrexel-sony)
++ cpu=mipsallegrexel
++ vendor=sony
+ ;;
+- *-unknown)
+- # Make sure to match an already-canonicalized machine name.
++ tile*-*)
++ basic_os=${basic_os:-linux-gnu}
+ ;;
++
+ *)
+- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+- exit 1
++ # Recognize the canonical CPU types that are allowed with any
++ # company name.
++ case $cpu in
++ 1750a | 580 \
++ | a29k \
++ | aarch64 | aarch64_be \
++ | abacus \
++ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
++ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
++ | alphapca5[67] | alpha64pca5[67] \
++ | am33_2.0 \
++ | amdgcn \
++ | arc | arceb | arc32 | arc64 \
++ | arm | arm[lb]e | arme[lb] | armv* \
++ | avr | avr32 \
++ | asmjs \
++ | ba \
++ | be32 | be64 \
++ | bfin | bpf | bs2000 \
++ | c[123]* | c30 | [cjt]90 | c4x \
++ | c8051 | clipper | craynv | csky | cydra \
++ | d10v | d30v | dlx | dsp16xx \
++ | e2k | elxsi | epiphany \
++ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
++ | h8300 | h8500 \
++ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
++ | hexagon \
++ | i370 | i*86 | i860 | i960 | ia16 | ia64 \
++ | ip2k | iq2000 \
++ | k1om \
++ | le32 | le64 \
++ | lm32 \
++ | loongarch32 | loongarch64 \
++ | m32c | m32r | m32rle \
++ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
++ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
++ | m88110 | m88k | maxq | mb | mcore | mep | metag \
++ | microblaze | microblazeel \
++ | mips | mipsbe | mipseb | mipsel | mipsle \
++ | mips16 \
++ | mips64 | mips64eb | mips64el \
++ | mips64octeon | mips64octeonel \
++ | mips64orion | mips64orionel \
++ | mips64r5900 | mips64r5900el \
++ | mips64vr | mips64vrel \
++ | mips64vr4100 | mips64vr4100el \
++ | mips64vr4300 | mips64vr4300el \
++ | mips64vr5000 | mips64vr5000el \
++ | mips64vr5900 | mips64vr5900el \
++ | mipsisa32 | mipsisa32el \
++ | mipsisa32r2 | mipsisa32r2el \
++ | mipsisa32r3 | mipsisa32r3el \
++ | mipsisa32r5 | mipsisa32r5el \
++ | mipsisa32r6 | mipsisa32r6el \
++ | mipsisa64 | mipsisa64el \
++ | mipsisa64r2 | mipsisa64r2el \
++ | mipsisa64r3 | mipsisa64r3el \
++ | mipsisa64r5 | mipsisa64r5el \
++ | mipsisa64r6 | mipsisa64r6el \
++ | mipsisa64sb1 | mipsisa64sb1el \
++ | mipsisa64sr71k | mipsisa64sr71kel \
++ | mipsr5900 | mipsr5900el \
++ | mipstx39 | mipstx39el \
++ | mmix \
++ | mn10200 | mn10300 \
++ | moxie \
++ | mt \
++ | msp430 \
++ | nds32 | nds32le | nds32be \
++ | nfp \
++ | nios | nios2 | nios2eb | nios2el \
++ | none | np1 | ns16k | ns32k | nvptx \
++ | open8 \
++ | or1k* \
++ | or32 \
++ | orion \
++ | picochip \
++ | pdp10 | pdp11 | pj | pjl | pn | power \
++ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
++ | pru \
++ | pyramid \
++ | riscv | riscv32 | riscv32be | riscv64 | riscv64be \
++ | rl78 | romp | rs6000 | rx \
++ | s390 | s390x \
++ | score \
++ | sh | shl \
++ | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
++ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
++ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
++ | sparclite \
++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
++ | spu \
++ | tahoe \
++ | thumbv7* \
++ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
++ | tron \
++ | ubicom32 \
++ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
++ | vax \
++ | visium \
++ | w65 \
++ | wasm32 | wasm64 \
++ | we32k \
++ | x86 | x86_64 | xc16x | xgate | xps100 \
++ | xstormy16 | xtensa* \
++ | ymp \
++ | z8k | z80)
++ ;;
++
++ *)
++ echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
++ exit 1
++ ;;
++ esac
+ ;;
+ esac
+
+ # Here we canonicalize certain aliases for manufacturers.
+-case $basic_machine in
+- *-digital*)
+- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
++case $vendor in
++ digital*)
++ vendor=dec
+ ;;
+- *-commodore*)
+- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
++ commodore*)
++ vendor=cbm
+ ;;
+ *)
+ ;;
+@@ -1362,203 +1306,219 @@ esac
+
+ # Decode manufacturer-specific aliases for certain operating systems.
+
+-if [ x"$os" != x"" ]
++if test x$basic_os != x
+ then
++
++# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
++# set os.
++case $basic_os in
++ gnu/linux*)
++ kernel=linux
++ os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
++ ;;
++ os2-emx)
++ kernel=os2
++ os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
++ ;;
++ nto-qnx*)
++ kernel=nto
++ os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
++ ;;
++ *-*)
++ # shellcheck disable=SC2162
++ saved_IFS=$IFS
++ IFS="-" read kernel os <<EOF
++$basic_os
++EOF
++ IFS=$saved_IFS
++ ;;
++ # Default OS when just kernel was specified
++ nto*)
++ kernel=nto
++ os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
++ ;;
++ linux*)
++ kernel=linux
++ os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
++ ;;
++ managarm*)
++ kernel=managarm
++ os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
++ ;;
++ *)
++ kernel=
++ os=$basic_os
++ ;;
++esac
++
++# Now, normalize the OS (knowing we just have one component, it's not a kernel,
++# etc.)
+ case $os in
+ # First match some system type aliases that might get confused
+ # with valid system types.
+- # -solaris* is a basic system type, with this one exception.
+- -auroraux)
+- os=-auroraux
++ # solaris* is a basic system type, with this one exception.
++ auroraux)
++ os=auroraux
+ ;;
+- -solaris1 | -solaris1.*)
+- os=`echo $os | sed -e 's|solaris1|sunos4|'`
+- ;;
+- -solaris)
+- os=-solaris2
++ bluegene*)
++ os=cnk
+ ;;
+- -svr4*)
+- os=-sysv4
++ solaris1 | solaris1.*)
++ os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
+ ;;
+- -unixware*)
+- os=-sysv4.2uw
++ solaris)
++ os=solaris2
+ ;;
+- -gnu/linux*)
+- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
++ unixware*)
++ os=sysv4.2uw
+ ;;
+- # Now accept the basic system types.
+- # The portable systems comes first.
+- # Each alternative MUST end in a * to match a version number.
+- # -sysv* is not here because it comes later, after sysvr4.
+- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+- | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+- | -sym* | -kopensolaris* | -plan9* \
+- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+- | -aos* | -aros* | -cloudabi* | -sortix* \
+- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+- | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
+- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+- | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
+- | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+- | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+- | -linux-newlib* | -linux-musl* | -linux-uclibc* \
+- | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
+- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
+- | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
+- # Remember, each alternative MUST END IN *, to match a version number.
+- ;;
+- -qnx*)
+- case $basic_machine in
+- x86-* | i*86-*)
+- ;;
+- *)
+- os=-nto$os
+- ;;
+- esac
++ # es1800 is here to avoid being matched by es* (a different OS)
++ es1800*)
++ os=ose
+ ;;
+- -nto-qnx*)
++ # Some version numbers need modification
++ chorusos*)
++ os=chorusos
+ ;;
+- -nto*)
+- os=`echo $os | sed -e 's|nto|nto-qnx|'`
++ isc)
++ os=isc2.2
+ ;;
+- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+- | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
++ sco6)
++ os=sco5v6
+ ;;
+- -mac*)
+- os=`echo $os | sed -e 's|mac|macos|'`
++ sco5)
++ os=sco3.2v5
+ ;;
+- -linux-dietlibc)
+- os=-linux-dietlibc
++ sco4)
++ os=sco3.2v4
+ ;;
+- -linux*)
+- os=`echo $os | sed -e 's|linux|linux-gnu|'`
++ sco3.2.[4-9]*)
++ os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
+ ;;
+- -sunos5*)
+- os=`echo $os | sed -e 's|sunos5|solaris2|'`
++ sco*v* | scout)
++ # Don't match below
+ ;;
+- -sunos6*)
+- os=`echo $os | sed -e 's|sunos6|solaris3|'`
++ sco*)
++ os=sco3.2v2
+ ;;
+- -opened*)
+- os=-openedition
++ psos*)
++ os=psos
+ ;;
+- -os400*)
+- os=-os400
++ qnx*)
++ os=qnx
+ ;;
+- -wince*)
+- os=-wince
++ hiux*)
++ os=hiuxwe2
+ ;;
+- -osfrose*)
+- os=-osfrose
++ lynx*178)
++ os=lynxos178
+ ;;
+- -osf*)
+- os=-osf
++ lynx*5)
++ os=lynxos5
+ ;;
+- -utek*)
+- os=-bsd
++ lynxos*)
++ # don't get caught up in next wildcard
+ ;;
+- -dynix*)
+- os=-bsd
++ lynx*)
++ os=lynxos
+ ;;
+- -acis*)
+- os=-aos
++ mac[0-9]*)
++ os=`echo "$os" | sed -e 's|mac|macos|'`
+ ;;
+- -atheos*)
+- os=-atheos
++ opened*)
++ os=openedition
+ ;;
+- -syllable*)
+- os=-syllable
++ os400*)
++ os=os400
+ ;;
+- -386bsd)
+- os=-bsd
++ sunos5*)
++ os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
+ ;;
+- -ctix* | -uts*)
+- os=-sysv
++ sunos6*)
++ os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
+ ;;
+- -nova*)
+- os=-rtmk-nova
++ wince*)
++ os=wince
+ ;;
+- -ns2)
+- os=-nextstep2
++ utek*)
++ os=bsd
+ ;;
+- -nsk*)
+- os=-nsk
++ dynix*)
++ os=bsd
+ ;;
+- # Preserve the version number of sinix5.
+- -sinix5.*)
+- os=`echo $os | sed -e 's|sinix|sysv|'`
++ acis*)
++ os=aos
+ ;;
+- -sinix*)
+- os=-sysv4
++ atheos*)
++ os=atheos
+ ;;
+- -tpf*)
+- os=-tpf
++ syllable*)
++ os=syllable
+ ;;
+- -triton*)
+- os=-sysv3
++ 386bsd)
++ os=bsd
+ ;;
+- -oss*)
+- os=-sysv3
++ ctix* | uts*)
++ os=sysv
+ ;;
+- -svr4)
+- os=-sysv4
++ nova*)
++ os=rtmk-nova
+ ;;
+- -svr3)
+- os=-sysv3
++ ns2)
++ os=nextstep2
+ ;;
+- -sysvr4)
+- os=-sysv4
++ # Preserve the version number of sinix5.
++ sinix5.*)
++ os=`echo "$os" | sed -e 's|sinix|sysv|'`
+ ;;
+- # This must come after -sysvr4.
+- -sysv*)
++ sinix*)
++ os=sysv4
+ ;;
+- -ose*)
+- os=-ose
++ tpf*)
++ os=tpf
+ ;;
+- -es1800*)
+- os=-ose
++ triton*)
++ os=sysv3
+ ;;
+- -xenix)
+- os=-xenix
++ oss*)
++ os=sysv3
+ ;;
+- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+- os=-mint
++ svr4*)
++ os=sysv4
+ ;;
+- -aros*)
+- os=-aros
++ svr3)
++ os=sysv3
+ ;;
+- -zvmoe)
+- os=-zvmoe
++ sysvr4)
++ os=sysv4
+ ;;
+- -dicos*)
+- os=-dicos
++ ose*)
++ os=ose
+ ;;
+- -nacl*)
++ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
++ os=mint
+ ;;
+- -ios)
++ dicos*)
++ os=dicos
+ ;;
+- -none)
++ pikeos*)
++ # Until real need of OS specific support for
++ # particular features comes up, bare metal
++ # configurations are quite functional.
++ case $cpu in
++ arm*)
++ os=eabi
++ ;;
++ *)
++ os=elf
++ ;;
++ esac
+ ;;
+ *)
+- # Get rid of the `-' at the beginning of $os.
+- os=`echo $os | sed 's/[^-]*-//'`
+- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+- exit 1
++ # No normalization, but not necessarily accepted, that comes below.
+ ;;
+ esac
++
+ else
+
+ # Here we handle the default operating systems that come with various machines.
+@@ -1571,264 +1531,376 @@ else
+ # will signal an error saying that MANUFACTURER isn't an operating
+ # system, and we'll never get to this point.
+
+-case $basic_machine in
++kernel=
++case $cpu-$vendor in
+ score-*)
+- os=-elf
++ os=elf
+ ;;
+ spu-*)
+- os=-elf
++ os=elf
+ ;;
+ *-acorn)
+- os=-riscix1.2
++ os=riscix1.2
+ ;;
+ arm*-rebel)
+- os=-linux
++ kernel=linux
++ os=gnu
+ ;;
+ arm*-semi)
+- os=-aout
++ os=aout
+ ;;
+ c4x-* | tic4x-*)
+- os=-coff
++ os=coff
+ ;;
+ c8051-*)
+- os=-elf
++ os=elf
++ ;;
++ clipper-intergraph)
++ os=clix
+ ;;
+ hexagon-*)
+- os=-elf
++ os=elf
+ ;;
+ tic54x-*)
+- os=-coff
++ os=coff
+ ;;
+ tic55x-*)
+- os=-coff
++ os=coff
+ ;;
+ tic6x-*)
+- os=-coff
++ os=coff
+ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+- os=-tops20
++ os=tops20
+ ;;
+ pdp11-*)
+- os=-none
++ os=none
+ ;;
+ *-dec | vax-*)
+- os=-ultrix4.2
++ os=ultrix4.2
+ ;;
+ m68*-apollo)
+- os=-domain
++ os=domain
+ ;;
+ i386-sun)
+- os=-sunos4.0.2
++ os=sunos4.0.2
+ ;;
+ m68000-sun)
+- os=-sunos3
++ os=sunos3
+ ;;
+ m68*-cisco)
+- os=-aout
++ os=aout
+ ;;
+ mep-*)
+- os=-elf
++ os=elf
+ ;;
+ mips*-cisco)
+- os=-elf
++ os=elf
+ ;;
+ mips*-*)
+- os=-elf
++ os=elf
+ ;;
+ or32-*)
+- os=-coff
++ os=coff
+ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+- os=-sysv3
++ os=sysv3
+ ;;
+ sparc-* | *-sun)
+- os=-sunos4.1.1
++ os=sunos4.1.1
+ ;;
+ pru-*)
+- os=-elf
++ os=elf
+ ;;
+ *-be)
+- os=-beos
+- ;;
+- *-haiku)
+- os=-haiku
++ os=beos
+ ;;
+ *-ibm)
+- os=-aix
++ os=aix
+ ;;
+ *-knuth)
+- os=-mmixware
++ os=mmixware
+ ;;
+ *-wec)
+- os=-proelf
++ os=proelf
+ ;;
+ *-winbond)
+- os=-proelf
++ os=proelf
+ ;;
+ *-oki)
+- os=-proelf
++ os=proelf
+ ;;
+ *-hp)
+- os=-hpux
++ os=hpux
+ ;;
+ *-hitachi)
+- os=-hiux
++ os=hiux
+ ;;
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+- os=-sysv
++ os=sysv
+ ;;
+ *-cbm)
+- os=-amigaos
++ os=amigaos
+ ;;
+ *-dg)
+- os=-dgux
++ os=dgux
+ ;;
+ *-dolphin)
+- os=-sysv3
++ os=sysv3
+ ;;
+ m68k-ccur)
+- os=-rtu
++ os=rtu
+ ;;
+ m88k-omron*)
+- os=-luna
++ os=luna
+ ;;
+ *-next)
+- os=-nextstep
++ os=nextstep
+ ;;
+ *-sequent)
+- os=-ptx
++ os=ptx
+ ;;
+ *-crds)
+- os=-unos
++ os=unos
+ ;;
+ *-ns)
+- os=-genix
++ os=genix
+ ;;
+ i370-*)
+- os=-mvs
+- ;;
+- *-next)
+- os=-nextstep3
++ os=mvs
+ ;;
+ *-gould)
+- os=-sysv
++ os=sysv
+ ;;
+ *-highlevel)
+- os=-bsd
++ os=bsd
+ ;;
+ *-encore)
+- os=-bsd
++ os=bsd
+ ;;
+ *-sgi)
+- os=-irix
++ os=irix
+ ;;
+ *-siemens)
+- os=-sysv4
++ os=sysv4
+ ;;
+ *-masscomp)
+- os=-rtu
++ os=rtu
+ ;;
+ f30[01]-fujitsu | f700-fujitsu)
+- os=-uxpv
++ os=uxpv
+ ;;
+ *-rom68k)
+- os=-coff
++ os=coff
+ ;;
+ *-*bug)
+- os=-coff
++ os=coff
+ ;;
+ *-apple)
+- os=-macos
++ os=macos
+ ;;
+ *-atari*)
+- os=-mint
++ os=mint
++ ;;
++ *-wrs)
++ os=vxworks
+ ;;
+ *)
+- os=-none
++ os=none
+ ;;
+ esac
++
+ fi
+
++# Now, validate our (potentially fixed-up) OS.
++case $os in
++ # Sometimes we do "kernel-libc", so those need to count as OSes.
++ musl* | newlib* | relibc* | uclibc*)
++ ;;
++ # Likewise for "kernel-abi"
++ eabi* | gnueabi*)
++ ;;
++ # VxWorks passes extra cpu info in the 4th filed.
++ simlinux | simwindows | spe)
++ ;;
++ # Now accept the basic system types.
++ # The portable systems comes first.
++ # Each alternative MUST end in a * to match a version number.
++ gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
++ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
++ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
++ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
++ | hiux* | abug | nacl* | netware* | windows* \
++ | os9* | macos* | osx* | ios* \
++ | mpw* | magic* | mmixware* | mon960* | lnews* \
++ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
++ | aos* | aros* | cloudabi* | sortix* | twizzler* \
++ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
++ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
++ | mirbsd* | netbsd* | dicos* | openedition* | ose* \
++ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
++ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
++ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
++ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
++ | udi* | lites* | ieee* | go32* | aux* | hcos* \
++ | chorusrdb* | cegcc* | glidix* | serenity* \
++ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
++ | midipix* | mingw32* | mingw64* | mint* \
++ | uxpv* | beos* | mpeix* | udk* | moxiebox* \
++ | interix* | uwin* | mks* | rhapsody* | darwin* \
++ | openstep* | oskit* | conix* | pw32* | nonstopux* \
++ | storm-chaos* | tops10* | tenex* | tops20* | its* \
++ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
++ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
++ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
++ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
++ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
++ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
++ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
++ | fiwix* | mlibc* )
++ ;;
++ # This one is extra strict with allowed versions
++ sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
++ # Don't forget version if it is 3.2v4 or newer.
++ ;;
++ none)
++ ;;
++ kernel* )
++ # Restricted further below
++ ;;
++ *)
++ echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
++ exit 1
++ ;;
++esac
++
++# As a final step for OS-related things, validate the OS-kernel combination
++# (given a valid OS), if there is a kernel.
++case $kernel-$os in
++ linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
++ | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
++ ;;
++ uclinux-uclibc* )
++ ;;
++ managarm-mlibc* | managarm-kernel* )
++ ;;
++ -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
++ # These are just libc implementations, not actual OSes, and thus
++ # require a kernel.
++ echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
++ exit 1
++ ;;
++ -kernel* )
++ echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2
++ exit 1
++ ;;
++ *-kernel* )
++ echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2
++ exit 1
++ ;;
++ kfreebsd*-gnu* | kopensolaris*-gnu*)
++ ;;
++ vxworks-simlinux | vxworks-simwindows | vxworks-spe)
++ ;;
++ nto-qnx*)
++ ;;
++ os2-emx)
++ ;;
++ *-eabi* | *-gnueabi*)
++ ;;
++ -*)
++ # Blank kernel with real OS is always fine.
++ ;;
++ *-*)
++ echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
++ exit 1
++ ;;
++esac
++
+ # Here we handle the case where we know the os, and the CPU type, but not the
+ # manufacturer. We pick the logical manufacturer.
+-vendor=unknown
+-case $basic_machine in
+- *-unknown)
+- case $os in
+- -riscix*)
++case $vendor in
++ unknown)
++ case $cpu-$os in
++ *-riscix*)
+ vendor=acorn
+ ;;
+- -sunos*)
++ *-sunos*)
+ vendor=sun
+ ;;
+- -cnk*|-aix*)
++ *-cnk* | *-aix*)
+ vendor=ibm
+ ;;
+- -beos*)
++ *-beos*)
+ vendor=be
+ ;;
+- -hpux*)
++ *-hpux*)
+ vendor=hp
+ ;;
+- -mpeix*)
++ *-mpeix*)
+ vendor=hp
+ ;;
+- -hiux*)
++ *-hiux*)
+ vendor=hitachi
+ ;;
+- -unos*)
++ *-unos*)
+ vendor=crds
+ ;;
+- -dgux*)
++ *-dgux*)
+ vendor=dg
+ ;;
+- -luna*)
++ *-luna*)
+ vendor=omron
+ ;;
+- -genix*)
++ *-genix*)
+ vendor=ns
+ ;;
+- -mvs* | -opened*)
++ *-clix*)
++ vendor=intergraph
++ ;;
++ *-mvs* | *-opened*)
++ vendor=ibm
++ ;;
++ *-os400*)
+ vendor=ibm
+ ;;
+- -os400*)
++ s390-* | s390x-*)
+ vendor=ibm
+ ;;
+- -ptx*)
++ *-ptx*)
+ vendor=sequent
+ ;;
+- -tpf*)
++ *-tpf*)
+ vendor=ibm
+ ;;
+- -vxsim* | -vxworks* | -windiss*)
++ *-vxsim* | *-vxworks* | *-windiss*)
+ vendor=wrs
+ ;;
+- -aux*)
++ *-aux*)
+ vendor=apple
+ ;;
+- -hms*)
++ *-hms*)
+ vendor=hitachi
+ ;;
+- -mpw* | -macos*)
++ *-mpw* | *-macos*)
+ vendor=apple
+ ;;
+- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
++ *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
+ vendor=atari
+ ;;
+- -vos*)
++ *-vos*)
+ vendor=stratus
+ ;;
+ esac
+- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ ;;
+ esac
+
+-echo $basic_machine$os
++echo "$cpu-$vendor-${kernel:+$kernel-}$os"
+ exit
+
+ # Local variables:
+-# eval: (add-hook 'write-file-functions 'time-stamp)
++# eval: (add-hook 'before-save-hook 'time-stamp)
+ # time-stamp-start: "timestamp='"
+ # time-stamp-format: "%:y-%02m-%02d"
+ # time-stamp-end: "'"
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/nasm/autoconf/helpers/config.sub b/qtwebengine/src/3rdparty/chromium/third_party/nasm/autoconf/helpers/config.sub
+index b51fb8cdb69e..de4259e40479 100755
+--- a/qtwebengine/src/3rdparty/chromium/third_party/nasm/autoconf/helpers/config.sub
++++ b/qtwebengine/src/3rdparty/chromium/third_party/nasm/autoconf/helpers/config.sub
+@@ -1,12 +1,14 @@
+ #! /bin/sh
+ # Configuration validation subroutine script.
+-# Copyright 1992-2018 Free Software Foundation, Inc.
++# Copyright 1992-2023 Free Software Foundation, Inc.
+
+-timestamp='2018-08-29'
++# shellcheck disable=SC2006,SC2268 # see below for rationale
++
++timestamp='2023-01-21'
+
+ # This file 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
++# 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
+@@ -33,7 +35,7 @@ timestamp='2018-08-29'
+ # Otherwise, we print the canonical config type on stdout and succeed.
+
+ # You can get the latest version of this script from:
+-# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
++# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
+
+ # This file is supposed to be the same for all GNU packages
+ # and recognize all the CPU types, system types and aliases
+@@ -50,6 +52,13 @@ timestamp='2018-08-29'
+ # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+ # It is wrong to echo any other type of specification.
+
++# The "shellcheck disable" line above the timestamp inhibits complaints
++# about features and limitations of the classic Bourne shell that were
++# superseded or lifted in POSIX. However, this script identifies a wide
++# variety of pre-POSIX systems that do not have POSIX shells at all, and
++# even some reasonably current systems (Solaris 10 as case-in-point) still
++# have a pre-POSIX /bin/sh.
++
+ me=`echo "$0" | sed -e 's,.*/,,'`
+
+ usage="\
+@@ -67,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>."
+ version="\
+ GNU config.sub ($timestamp)
+
+-Copyright 1992-2018 Free Software Foundation, Inc.
++Copyright 1992-2023 Free Software Foundation, Inc.
+
+ This is free software; see the source for copying conditions. There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -89,7 +98,7 @@ while test $# -gt 0 ; do
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+- echo "$me: invalid option $1$help"
++ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+
+ *local*)
+@@ -111,9 +120,12 @@ case $# in
+ esac
+
+ # Split fields of configuration type
+-IFS="-" read -r field1 field2 field3 field4 <<EOF
++# shellcheck disable=SC2162
++saved_IFS=$IFS
++IFS="-" read field1 field2 field3 field4 <<EOF
+ $1
+ EOF
++IFS=$saved_IFS
+
+ # Separate into logical components for further validation
+ case $1 in
+@@ -123,37 +135,36 @@ case $1 in
+ ;;
+ *-*-*-*)
+ basic_machine=$field1-$field2
+- os=$field3-$field4
++ basic_os=$field3-$field4
+ ;;
+ *-*-*)
+ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
+ # parts
+ maybe_os=$field2-$field3
+ case $maybe_os in
+- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
+- | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
++ nto-qnx* | linux-* | uclinux-uclibc* \
+ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
+ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
+- | storm-chaos* | os2-emx* | rtmk-nova*)
++ | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
+ basic_machine=$field1
+- os=$maybe_os
++ basic_os=$maybe_os
+ ;;
+ android-linux)
+ basic_machine=$field1-unknown
+- os=linux-android
++ basic_os=linux-android
+ ;;
+ *)
+ basic_machine=$field1-$field2
+- os=$field3
++ basic_os=$field3
+ ;;
+ esac
+ ;;
+ *-*)
+- # A lone config we happen to match not fitting any patern
++ # A lone config we happen to match not fitting any pattern
+ case $field1-$field2 in
+ decstation-3100)
+ basic_machine=mips-dec
+- os=
++ basic_os=
+ ;;
+ *-*)
+ # Second component is usually, but not always the OS
+@@ -161,7 +172,11 @@ case $1 in
+ # Prevent following clause from handling this valid os
+ sun*os*)
+ basic_machine=$field1
+- os=$field2
++ basic_os=$field2
++ ;;
++ zephyr*)
++ basic_machine=$field1-unknown
++ basic_os=$field2
+ ;;
+ # Manufacturers
+ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
+@@ -174,11 +189,11 @@ case $1 in
+ | microblaze* | sim | cisco \
+ | oki | wec | wrs | winbond)
+ basic_machine=$field1-$field2
+- os=
++ basic_os=
+ ;;
+ *)
+ basic_machine=$field1
+- os=$field2
++ basic_os=$field2
+ ;;
+ esac
+ ;;
+@@ -190,450 +205,451 @@ case $1 in
+ case $field1 in
+ 386bsd)
+ basic_machine=i386-pc
+- os=bsd
++ basic_os=bsd
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+- os=udi
++ basic_os=udi
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+- os=scout
++ basic_os=scout
+ ;;
+ alliant)
+ basic_machine=fx80-alliant
+- os=
++ basic_os=
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+- os=
++ basic_os=
+ ;;
+ am29k)
+ basic_machine=a29k-none
+- os=bsd
++ basic_os=bsd
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+- os=sysv
++ basic_os=sysv
+ ;;
+ amiga)
+ basic_machine=m68k-unknown
+- os=
++ basic_os=
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+- os=amigaos
++ basic_os=amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+- os=sysv4
++ basic_os=sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+- os=sysv
++ basic_os=sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+- os=bsd
++ basic_os=bsd
+ ;;
+ aros)
+ basic_machine=i386-pc
+- os=aros
++ basic_os=aros
+ ;;
+ aux)
+ basic_machine=m68k-apple
+- os=aux
++ basic_os=aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+- os=dynix
++ basic_os=dynix
+ ;;
+ blackfin)
+ basic_machine=bfin-unknown
+- os=linux
++ basic_os=linux
+ ;;
+ cegcc)
+ basic_machine=arm-unknown
+- os=cegcc
++ basic_os=cegcc
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+- os=bsd
++ basic_os=bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+- os=bsd
++ basic_os=bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+- os=bsd
++ basic_os=bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+- os=bsd
++ basic_os=bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+- os=bsd
++ basic_os=bsd
+ ;;
+ cray)
+ basic_machine=j90-cray
+- os=unicos
++ basic_os=unicos
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+- os=
++ basic_os=
+ ;;
+ da30)
+ basic_machine=m68k-da30
+- os=
++ basic_os=
+ ;;
+ decstation | pmax | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+- os=
++ basic_os=
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+- os=sysv3
++ basic_os=sysv3
+ ;;
+ dicos)
+ basic_machine=i686-pc
+- os=dicos
++ basic_os=dicos
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+- os=msdosdjgpp
++ basic_os=msdosdjgpp
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+- os=ebmon
++ basic_os=ebmon
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+- os=ose
++ basic_os=ose
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+- os=sysv
++ basic_os=sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+- os=go32
++ basic_os=go32
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+- os=hms
++ basic_os=hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+- os=xray
++ basic_os=xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+- os=hms
++ basic_os=hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+- os=sysv3
++ basic_os=sysv3
+ ;;
+- hp300)
++ hp300 | hp300hpux)
+ basic_machine=m68k-hp
++ basic_os=hpux
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+- os=bsd
+- ;;
+- hp300hpux)
+- basic_machine=m68k-hp
+- os=hpux
++ basic_os=bsd
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+- os=osf
++ basic_os=osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+- os=proelf
++ basic_os=proelf
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+- os=mach
+- ;;
+- vsta)
+- basic_machine=i386-pc
+- os=vsta
++ basic_os=mach
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+- os=sysv
++ basic_os=sysv
+ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+- os=linux
++ basic_os=linux
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+- os=sysv
++ basic_os=sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+- os=sysv
++ basic_os=sysv
+ ;;
+ mingw64)
+ basic_machine=x86_64-pc
+- os=mingw64
++ basic_os=mingw64
+ ;;
+ mingw32)
+ basic_machine=i686-pc
+- os=mingw32
++ basic_os=mingw32
+ ;;
+ mingw32ce)
+ basic_machine=arm-unknown
+- os=mingw32ce
++ basic_os=mingw32ce
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+- os=coff
++ basic_os=coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+- os=morphos
++ basic_os=morphos
+ ;;
+ moxiebox)
+ basic_machine=moxie-unknown
+- os=moxiebox
++ basic_os=moxiebox
+ ;;
+ msdos)
+ basic_machine=i386-pc
+- os=msdos
++ basic_os=msdos
+ ;;
+ msys)
+ basic_machine=i686-pc
+- os=msys
++ basic_os=msys
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+- os=mvs
++ basic_os=mvs
+ ;;
+ nacl)
+ basic_machine=le32-unknown
+- os=nacl
++ basic_os=nacl
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+- os=sysv4
++ basic_os=sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-pc
+- os=netbsd
++ basic_os=netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+- os=linux
++ basic_os=linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+- os=newsos
++ basic_os=newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+- os=newsos
++ basic_os=newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+- os=sysv
++ basic_os=sysv
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+- os=cxux
++ basic_os=cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+- os=cxux
++ basic_os=cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+- os=nindy
++ basic_os=nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+- os=mon960
++ basic_os=mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+- os=nonstopux
++ basic_os=nonstopux
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+- os=os400
++ basic_os=os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+- os=ose
++ basic_os=ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+- os=os68k
++ basic_os=os68k
+ ;;
+ paragon)
+ basic_machine=i860-intel
+- os=osf
++ basic_os=osf
+ ;;
+ parisc)
+ basic_machine=hppa-unknown
+- os=linux
++ basic_os=linux
++ ;;
++ psp)
++ basic_machine=mipsallegrexel-sony
++ basic_os=psp
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+- os=pw32
++ basic_os=pw32
+ ;;
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+- os=rdos
++ basic_os=rdos
+ ;;
+ rdos32)
+ basic_machine=i386-pc
+- os=rdos
++ basic_os=rdos
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+- os=coff
++ basic_os=coff
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+- os=udi
++ basic_os=udi
+ ;;
+ sei)
+ basic_machine=mips-sei
+- os=seiux
++ basic_os=seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+- os=
++ basic_os=
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+- os=sysv2
++ basic_os=sysv2
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+- os=
++ basic_os=
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+- os=sysv4
++ basic_os=sysv4
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+- os=
++ basic_os=
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+- os=sunos3
++ basic_os=sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+- os=sunos4
++ basic_os=sunos4
+ ;;
+ sun3)
+ basic_machine=m68k-sun
+- os=
++ basic_os=
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+- os=sunos3
++ basic_os=sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+- os=sunos4
++ basic_os=sunos4
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+- os=
++ basic_os=
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+- os=sunos3
++ basic_os=sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+- os=sunos4
++ basic_os=sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+- os=solaris2
++ basic_os=solaris2
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+- os=
++ basic_os=
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+- os=unicos
++ basic_os=unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+- os=dynix
++ basic_os=dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+- os=unicos
++ basic_os=unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+- os=unicos
++ basic_os=unicos
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+- os=tops20
++ basic_os=tops20
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+- os=tpf
++ basic_os=tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+- os=udi
++ basic_os=udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+- os=sym1
++ basic_os=sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+- os=none
++ basic_os=none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+- os=sysv
++ basic_os=sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+- os=vms
++ basic_os=vms
++ ;;
++ vsta)
++ basic_machine=i386-pc
++ basic_os=vsta
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+- os=vxworks
++ basic_os=vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+- os=vxworks
++ basic_os=vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+- os=vxworks
++ basic_os=vxworks
+ ;;
+ xbox)
+ basic_machine=i686-pc
+- os=mingw32
++ basic_os=mingw32
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+- os=unicos
++ basic_os=unicos
+ ;;
+ *)
+ basic_machine=$1
+- os=
++ basic_os=
+ ;;
+ esac
+ ;;
+@@ -685,17 +701,17 @@ case $basic_machine in
+ bluegene*)
+ cpu=powerpc
+ vendor=ibm
+- os=cnk
++ basic_os=cnk
+ ;;
+ decsystem10* | dec10*)
+ cpu=pdp10
+ vendor=dec
+- os=tops10
++ basic_os=tops10
+ ;;
+ decsystem20* | dec20*)
+ cpu=pdp10
+ vendor=dec
+- os=tops20
++ basic_os=tops20
+ ;;
+ delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+@@ -705,7 +721,7 @@ case $basic_machine in
+ dpx2*)
+ cpu=m68k
+ vendor=bull
+- os=sysv3
++ basic_os=sysv3
+ ;;
+ encore | umax | mmax)
+ cpu=ns32k
+@@ -714,7 +730,7 @@ case $basic_machine in
+ elxsi)
+ cpu=elxsi
+ vendor=elxsi
+- os=${os:-bsd}
++ basic_os=${basic_os:-bsd}
+ ;;
+ fx2800)
+ cpu=i860
+@@ -727,7 +743,7 @@ case $basic_machine in
+ h3050r* | hiux*)
+ cpu=hppa1.1
+ vendor=hitachi
+- os=hiuxwe2
++ basic_os=hiuxwe2
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ cpu=hppa1.0
+@@ -770,36 +786,36 @@ case $basic_machine in
+ i*86v32)
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+- os=sysv32
++ basic_os=sysv32
+ ;;
+ i*86v4*)
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+- os=sysv4
++ basic_os=sysv4
+ ;;
+ i*86v)
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+- os=sysv
++ basic_os=sysv
+ ;;
+ i*86sol2)
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+- os=solaris2
++ basic_os=solaris2
+ ;;
+ j90 | j90-cray)
+ cpu=j90
+ vendor=cray
+- os=${os:-unicos}
++ basic_os=${basic_os:-unicos}
+ ;;
+ iris | iris4d)
+ cpu=mips
+ vendor=sgi
+- case $os in
++ case $basic_os in
+ irix*)
+ ;;
+ *)
+- os=irix4
++ basic_os=irix4
+ ;;
+ esac
+ ;;
+@@ -810,24 +826,26 @@ case $basic_machine in
+ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ cpu=m68k
+ vendor=atari
+- os=mint
++ basic_os=mint
+ ;;
+ news-3600 | risc-news)
+ cpu=mips
+ vendor=sony
+- os=newsos
++ basic_os=newsos
+ ;;
+ next | m*-next)
+ cpu=m68k
+ vendor=next
+- case $os in
+- nextstep* )
++ case $basic_os in
++ openstep*)
++ ;;
++ nextstep*)
+ ;;
+ ns2*)
+- os=nextstep2
++ basic_os=nextstep2
+ ;;
+ *)
+- os=nextstep3
++ basic_os=nextstep3
+ ;;
+ esac
+ ;;
+@@ -838,12 +856,12 @@ case $basic_machine in
+ op50n-* | op60c-*)
+ cpu=hppa1.1
+ vendor=oki
+- os=proelf
++ basic_os=proelf
+ ;;
+ pa-hitachi)
+ cpu=hppa1.1
+ vendor=hitachi
+- os=hiuxwe2
++ basic_os=hiuxwe2
+ ;;
+ pbd)
+ cpu=sparc
+@@ -880,12 +898,12 @@ case $basic_machine in
+ sde)
+ cpu=mipsisa32
+ vendor=sde
+- os=${os:-elf}
++ basic_os=${basic_os:-elf}
+ ;;
+ simso-wrs)
+ cpu=sparclite
+ vendor=wrs
+- os=vxworks
++ basic_os=vxworks
+ ;;
+ tower | tower-32)
+ cpu=m68k
+@@ -902,7 +920,7 @@ case $basic_machine in
+ w89k-*)
+ cpu=hppa1.1
+ vendor=winbond
+- os=proelf
++ basic_os=proelf
+ ;;
+ none)
+ cpu=none
+@@ -918,9 +936,12 @@ case $basic_machine in
+ ;;
+
+ *-*)
+- IFS="-" read -r cpu vendor <<EOF
++ # shellcheck disable=SC2162
++ saved_IFS=$IFS
++ IFS="-" read cpu vendor <<EOF
+ $basic_machine
+ EOF
++ IFS=$saved_IFS
+ ;;
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+@@ -950,15 +971,15 @@ unset -v basic_machine
+
+ # Decode basic machines in the full and proper CPU-Company form.
+ case $cpu-$vendor in
+- # Here we handle the default manufacturer of certain CPU types in cannonical form. It is in
++ # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+ craynv-unknown)
+ vendor=cray
+- os=${os:-unicosmp}
++ basic_os=${basic_os:-unicosmp}
+ ;;
+ c90-unknown | c90-cray)
+ vendor=cray
+- os=${os:-unicos}
++ basic_os=${Basic_os:-unicos}
+ ;;
+ fx80-unknown)
+ vendor=alliant
+@@ -999,10 +1020,15 @@ case $cpu-$vendor in
+ ;;
+
+ # Here we normalize CPU types with a missing or matching vendor
++ armh-unknown | armh-alt)
++ cpu=armv7l
++ vendor=alt
++ basic_os=${basic_os:-linux-gnueabihf}
++ ;;
+ dpx20-unknown | dpx20-bull)
+ cpu=rs6000
+ vendor=bull
+- os=${os:-bosx}
++ basic_os=${basic_os:-bosx}
+ ;;
+
+ # Here we normalize CPU types irrespective of the vendor
+@@ -1011,7 +1037,7 @@ case $cpu-$vendor in
+ ;;
+ blackfin-*)
+ cpu=bfin
+- os=linux
++ basic_os=linux
+ ;;
+ c54x-*)
+ cpu=tic54x
+@@ -1024,7 +1050,7 @@ case $cpu-$vendor in
+ ;;
+ e500v[12]-*)
+ cpu=powerpc
+- os=$os"spe"
++ basic_os=${basic_os}"spe"
+ ;;
+ mips3*-*)
+ cpu=mips64
+@@ -1034,7 +1060,7 @@ case $cpu-$vendor in
+ ;;
+ m68knommu-*)
+ cpu=m68k
+- os=linux
++ basic_os=linux
+ ;;
+ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
+ cpu=s12z
+@@ -1044,12 +1070,12 @@ case $cpu-$vendor in
+ ;;
+ parisc-*)
+ cpu=hppa
+- os=linux
++ basic_os=linux
+ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ cpu=i586
+ ;;
+- pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
++ pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
+ cpu=i686
+ ;;
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+@@ -1100,11 +1126,14 @@ case $cpu-$vendor in
+ xscale-* | xscalee[bl]-*)
+ cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
+ ;;
++ arm64-* | aarch64le-*)
++ cpu=aarch64
++ ;;
+
+- # Recognize the cannonical CPU Types that limit and/or modify the
++ # Recognize the canonical CPU Types that limit and/or modify the
+ # company names they are paired with.
+ cr16-*)
+- os=${os:-elf}
++ basic_os=${basic_os:-elf}
+ ;;
+ crisv32-* | etraxfs*-*)
+ cpu=crisv32
+@@ -1115,7 +1144,7 @@ case $cpu-$vendor in
+ vendor=axis
+ ;;
+ crx-*)
+- os=${os:-elf}
++ basic_os=${basic_os:-elf}
+ ;;
+ neo-tandem)
+ cpu=neo
+@@ -1137,20 +1166,16 @@ case $cpu-$vendor in
+ cpu=nsx
+ vendor=tandem
+ ;;
+- s390-*)
+- cpu=s390
+- vendor=ibm
+- ;;
+- s390x-*)
+- cpu=s390x
+- vendor=ibm
++ mipsallegrexel-sony)
++ cpu=mipsallegrexel
++ vendor=sony
+ ;;
+ tile*-*)
+- os=${os:-linux-gnu}
++ basic_os=${basic_os:-linux-gnu}
+ ;;
+
+ *)
+- # Recognize the cannonical CPU types that are allowed with any
++ # Recognize the canonical CPU types that are allowed with any
+ # company name.
+ case $cpu in
+ 1750a | 580 \
+@@ -1161,13 +1186,14 @@ case $cpu-$vendor in
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
+ | alphapca5[67] | alpha64pca5[67] \
+ | am33_2.0 \
+- | arc | arceb \
+- | arm | arm[lb]e | arme[lb] | armv* \
++ | amdgcn \
++ | arc | arceb | arc32 | arc64 \
++ | arm | arm[lb]e | arme[lb] | armv* \
+ | avr | avr32 \
+ | asmjs \
+ | ba \
+ | be32 | be64 \
+- | bfin | bs2000 \
++ | bfin | bpf | bs2000 \
+ | c[123]* | c30 | [cjt]90 | c4x \
+ | c8051 | clipper | craynv | csky | cydra \
+ | d10v | d30v | dlx | dsp16xx \
+@@ -1181,14 +1207,15 @@ case $cpu-$vendor in
+ | k1om \
+ | le32 | le64 \
+ | lm32 \
++ | loongarch32 | loongarch64 \
+ | m32c | m32r | m32rle \
+- | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \
+- | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \
++ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
++ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
+ | m88110 | m88k | maxq | mb | mcore | mep | metag \
+ | microblaze | microblazeel \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+- | mips64 | mips64el \
++ | mips64 | mips64eb | mips64el \
+ | mips64octeon | mips64octeonel \
+ | mips64orion | mips64orionel \
+ | mips64r5900 | mips64r5900el \
+@@ -1199,9 +1226,13 @@ case $cpu-$vendor in
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
++ | mipsisa32r3 | mipsisa32r3el \
++ | mipsisa32r5 | mipsisa32r5el \
+ | mipsisa32r6 | mipsisa32r6el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
++ | mipsisa64r3 | mipsisa64r3el \
++ | mipsisa64r5 | mipsisa64r5el \
+ | mipsisa64r6 | mipsisa64r6el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+@@ -1215,32 +1246,37 @@ case $cpu-$vendor in
+ | nds32 | nds32le | nds32be \
+ | nfp \
+ | nios | nios2 | nios2eb | nios2el \
+- | none | np1 | ns16k | ns32k \
++ | none | np1 | ns16k | ns32k | nvptx \
+ | open8 \
+ | or1k* \
+ | or32 \
+ | orion \
++ | picochip \
+ | pdp10 | pdp11 | pj | pjl | pn | power \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
+ | pru \
+ | pyramid \
+- | riscv | riscv32 | riscv64 \
++ | riscv | riscv32 | riscv32be | riscv64 | riscv64be \
+ | rl78 | romp | rs6000 | rx \
++ | s390 | s390x \
+ | score \
+- | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
++ | sh | shl \
++ | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
+ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
+ | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
+ | spu \
+ | tahoe \
++ | thumbv7* \
+ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
+ | tron \
+ | ubicom32 \
+- | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
++ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+ | vax \
+ | visium \
+- | wasm32 \
++ | w65 \
++ | wasm32 | wasm64 \
+ | we32k \
+ | x86 | x86_64 | xc16x | xgate | xps100 \
+ | xstormy16 | xtensa* \
+@@ -1270,8 +1306,53 @@ esac
+
+ # Decode manufacturer-specific aliases for certain operating systems.
+
+-if [ x$os != x ]
++if test x$basic_os != x
+ then
++
++# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
++# set os.
++case $basic_os in
++ gnu/linux*)
++ kernel=linux
++ os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
++ ;;
++ os2-emx)
++ kernel=os2
++ os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
++ ;;
++ nto-qnx*)
++ kernel=nto
++ os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
++ ;;
++ *-*)
++ # shellcheck disable=SC2162
++ saved_IFS=$IFS
++ IFS="-" read kernel os <<EOF
++$basic_os
++EOF
++ IFS=$saved_IFS
++ ;;
++ # Default OS when just kernel was specified
++ nto*)
++ kernel=nto
++ os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
++ ;;
++ linux*)
++ kernel=linux
++ os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
++ ;;
++ managarm*)
++ kernel=managarm
++ os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
++ ;;
++ *)
++ kernel=
++ os=$basic_os
++ ;;
++esac
++
++# Now, normalize the OS (knowing we just have one component, it's not a kernel,
++# etc.)
+ case $os in
+ # First match some system type aliases that might get confused
+ # with valid system types.
+@@ -1283,7 +1364,7 @@ case $os in
+ os=cnk
+ ;;
+ solaris1 | solaris1.*)
+- os=`echo $os | sed -e 's|solaris1|sunos4|'`
++ os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
+ ;;
+ solaris)
+ os=solaris2
+@@ -1291,9 +1372,6 @@ case $os in
+ unixware*)
+ os=sysv4.2uw
+ ;;
+- gnu/linux*)
+- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+- ;;
+ # es1800 is here to avoid being matched by es* (a different OS)
+ es1800*)
+ os=ose
+@@ -1315,12 +1393,9 @@ case $os in
+ os=sco3.2v4
+ ;;
+ sco3.2.[4-9]*)
+- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
++ os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
+ ;;
+- sco3.2v[4-9]* | sco5v6*)
+- # Don't forget version if it is 3.2v4 or newer.
+- ;;
+- scout)
++ sco*v* | scout)
+ # Don't match below
+ ;;
+ sco*)
+@@ -1329,77 +1404,25 @@ case $os in
+ psos*)
+ os=psos
+ ;;
+- # Now accept the basic system types.
+- # The portable systems comes first.
+- # Each alternative MUST end in a * to match a version number.
+- # sysv* is not here because it comes later, after sysvr4.
+- gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+- | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
+- | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+- | sym* | kopensolaris* | plan9* \
+- | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+- | aos* | aros* | cloudabi* | sortix* \
+- | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+- | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+- | knetbsd* | mirbsd* | netbsd* \
+- | bitrig* | openbsd* | solidbsd* | libertybsd* \
+- | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
+- | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+- | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+- | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
+- | chorusrdb* | cegcc* | glidix* \
+- | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+- | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
+- | linux-newlib* | linux-musl* | linux-uclibc* \
+- | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+- | interix* | uwin* | mks* | rhapsody* | darwin* \
+- | openstep* | oskit* | conix* | pw32* | nonstopux* \
+- | storm-chaos* | tops10* | tenex* | tops20* | its* \
+- | os2* | vos* | palmos* | uclinux* | nucleus* \
+- | morphos* | superux* | rtmk* | windiss* \
+- | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+- | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+- | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+- | midnightbsd*)
+- # Remember, each alternative MUST END IN *, to match a version number.
+- ;;
+ qnx*)
+- case $cpu in
+- x86 | i*86)
+- ;;
+- *)
+- os=nto-$os
+- ;;
+- esac
++ os=qnx
+ ;;
+ hiux*)
+ os=hiuxwe2
+ ;;
+- nto-qnx*)
+- ;;
+- nto*)
+- os=`echo $os | sed -e 's|nto|nto-qnx|'`
+- ;;
+- sim | xray | os68k* | v88r* \
+- | windows* | osx | abug | netware* | os9* \
+- | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
+- ;;
+- linux-dietlibc)
+- os=linux-dietlibc
+- ;;
+- linux*)
+- os=`echo $os | sed -e 's|linux|linux-gnu|'`
+- ;;
+ lynx*178)
+ os=lynxos178
+ ;;
+ lynx*5)
+ os=lynxos5
+ ;;
++ lynxos*)
++ # don't get caught up in next wildcard
++ ;;
+ lynx*)
+ os=lynxos
+ ;;
+- mac*)
++ mac[0-9]*)
+ os=`echo "$os" | sed -e 's|mac|macos|'`
+ ;;
+ opened*)
+@@ -1444,12 +1467,9 @@ case $os in
+ ns2)
+ os=nextstep2
+ ;;
+- nsk*)
+- os=nsk
+- ;;
+ # Preserve the version number of sinix5.
+ sinix5.*)
+- os=`echo $os | sed -e 's|sinix|sysv|'`
++ os=`echo "$os" | sed -e 's|sinix|sysv|'`
+ ;;
+ sinix*)
+ os=sysv4
+@@ -1472,18 +1492,12 @@ case $os in
+ sysvr4)
+ os=sysv4
+ ;;
+- # This must come after sysvr4.
+- sysv*)
+- ;;
+ ose*)
+ os=ose
+ ;;
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+ os=mint
+ ;;
+- zvmoe)
+- os=zvmoe
+- ;;
+ dicos*)
+ os=dicos
+ ;;
+@@ -1500,19 +1514,11 @@ case $os in
+ ;;
+ esac
+ ;;
+- nacl*)
+- ;;
+- ios)
+- ;;
+- none)
+- ;;
+- *-eabi)
+- ;;
+ *)
+- echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
+- exit 1
++ # No normalization, but not necessarily accepted, that comes below.
+ ;;
+ esac
++
+ else
+
+ # Here we handle the default operating systems that come with various machines.
+@@ -1525,6 +1531,7 @@ else
+ # will signal an error saying that MANUFACTURER isn't an operating
+ # system, and we'll never get to this point.
+
++kernel=
+ case $cpu-$vendor in
+ score-*)
+ os=elf
+@@ -1536,7 +1543,8 @@ case $cpu-$vendor in
+ os=riscix1.2
+ ;;
+ arm*-rebel)
+- os=linux
++ kernel=linux
++ os=gnu
+ ;;
+ arm*-semi)
+ os=aout
+@@ -1702,84 +1710,193 @@ case $cpu-$vendor in
+ os=none
+ ;;
+ esac
++
+ fi
+
++# Now, validate our (potentially fixed-up) OS.
++case $os in
++ # Sometimes we do "kernel-libc", so those need to count as OSes.
++ musl* | newlib* | relibc* | uclibc*)
++ ;;
++ # Likewise for "kernel-abi"
++ eabi* | gnueabi*)
++ ;;
++ # VxWorks passes extra cpu info in the 4th filed.
++ simlinux | simwindows | spe)
++ ;;
++ # Now accept the basic system types.
++ # The portable systems comes first.
++ # Each alternative MUST end in a * to match a version number.
++ gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
++ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
++ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
++ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
++ | hiux* | abug | nacl* | netware* | windows* \
++ | os9* | macos* | osx* | ios* \
++ | mpw* | magic* | mmixware* | mon960* | lnews* \
++ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
++ | aos* | aros* | cloudabi* | sortix* | twizzler* \
++ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
++ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
++ | mirbsd* | netbsd* | dicos* | openedition* | ose* \
++ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
++ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
++ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
++ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
++ | udi* | lites* | ieee* | go32* | aux* | hcos* \
++ | chorusrdb* | cegcc* | glidix* | serenity* \
++ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
++ | midipix* | mingw32* | mingw64* | mint* \
++ | uxpv* | beos* | mpeix* | udk* | moxiebox* \
++ | interix* | uwin* | mks* | rhapsody* | darwin* \
++ | openstep* | oskit* | conix* | pw32* | nonstopux* \
++ | storm-chaos* | tops10* | tenex* | tops20* | its* \
++ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
++ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
++ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
++ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
++ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
++ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
++ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
++ | fiwix* | mlibc* )
++ ;;
++ # This one is extra strict with allowed versions
++ sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
++ # Don't forget version if it is 3.2v4 or newer.
++ ;;
++ none)
++ ;;
++ kernel* )
++ # Restricted further below
++ ;;
++ *)
++ echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
++ exit 1
++ ;;
++esac
++
++# As a final step for OS-related things, validate the OS-kernel combination
++# (given a valid OS), if there is a kernel.
++case $kernel-$os in
++ linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
++ | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
++ ;;
++ uclinux-uclibc* )
++ ;;
++ managarm-mlibc* | managarm-kernel* )
++ ;;
++ -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
++ # These are just libc implementations, not actual OSes, and thus
++ # require a kernel.
++ echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
++ exit 1
++ ;;
++ -kernel* )
++ echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2
++ exit 1
++ ;;
++ *-kernel* )
++ echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2
++ exit 1
++ ;;
++ kfreebsd*-gnu* | kopensolaris*-gnu*)
++ ;;
++ vxworks-simlinux | vxworks-simwindows | vxworks-spe)
++ ;;
++ nto-qnx*)
++ ;;
++ os2-emx)
++ ;;
++ *-eabi* | *-gnueabi*)
++ ;;
++ -*)
++ # Blank kernel with real OS is always fine.
++ ;;
++ *-*)
++ echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
++ exit 1
++ ;;
++esac
++
+ # Here we handle the case where we know the os, and the CPU type, but not the
+ # manufacturer. We pick the logical manufacturer.
+ case $vendor in
+ unknown)
+- case $os in
+- riscix*)
++ case $cpu-$os in
++ *-riscix*)
+ vendor=acorn
+ ;;
+- sunos*)
++ *-sunos*)
+ vendor=sun
+ ;;
+- cnk*|-aix*)
++ *-cnk* | *-aix*)
+ vendor=ibm
+ ;;
+- beos*)
++ *-beos*)
+ vendor=be
+ ;;
+- hpux*)
++ *-hpux*)
+ vendor=hp
+ ;;
+- mpeix*)
++ *-mpeix*)
+ vendor=hp
+ ;;
+- hiux*)
++ *-hiux*)
+ vendor=hitachi
+ ;;
+- unos*)
++ *-unos*)
+ vendor=crds
+ ;;
+- dgux*)
++ *-dgux*)
+ vendor=dg
+ ;;
+- luna*)
++ *-luna*)
+ vendor=omron
+ ;;
+- genix*)
++ *-genix*)
+ vendor=ns
+ ;;
+- clix*)
++ *-clix*)
+ vendor=intergraph
+ ;;
+- mvs* | opened*)
++ *-mvs* | *-opened*)
++ vendor=ibm
++ ;;
++ *-os400*)
+ vendor=ibm
+ ;;
+- os400*)
++ s390-* | s390x-*)
+ vendor=ibm
+ ;;
+- ptx*)
++ *-ptx*)
+ vendor=sequent
+ ;;
+- tpf*)
++ *-tpf*)
+ vendor=ibm
+ ;;
+- vxsim* | vxworks* | windiss*)
++ *-vxsim* | *-vxworks* | *-windiss*)
+ vendor=wrs
+ ;;
+- aux*)
++ *-aux*)
+ vendor=apple
+ ;;
+- hms*)
++ *-hms*)
+ vendor=hitachi
+ ;;
+- mpw* | macos*)
++ *-mpw* | *-macos*)
+ vendor=apple
+ ;;
+- *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
++ *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
+ vendor=atari
+ ;;
+- vos*)
++ *-vos*)
+ vendor=stratus
+ ;;
+ esac
+ ;;
+ esac
+
+-echo "$cpu-$vendor-$os"
++echo "$cpu-$vendor-${kernel:+$kernel-}$os"
+ exit
+
+ # Local variables:
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/sqlite/src/config.sub b/qtwebengine/src/3rdparty/chromium/third_party/sqlite/src/config.sub
+index 5b158ac41c9a..de4259e40479 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/sqlite/src/config.sub
++++ b/qtwebengine/src/3rdparty/chromium/third_party/sqlite/src/config.sub
+@@ -1,12 +1,14 @@
+ #! /bin/sh
+ # Configuration validation subroutine script.
+-# Copyright 1992-2019 Free Software Foundation, Inc.
++# Copyright 1992-2023 Free Software Foundation, Inc.
+
+-timestamp='2019-05-23'
++# shellcheck disable=SC2006,SC2268 # see below for rationale
++
++timestamp='2023-01-21'
+
+ # This file 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
++# 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
+@@ -33,7 +35,7 @@ timestamp='2019-05-23'
+ # Otherwise, we print the canonical config type on stdout and succeed.
+
+ # You can get the latest version of this script from:
+-# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
++# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
+
+ # This file is supposed to be the same for all GNU packages
+ # and recognize all the CPU types, system types and aliases
+@@ -50,6 +52,13 @@ timestamp='2019-05-23'
+ # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+ # It is wrong to echo any other type of specification.
+
++# The "shellcheck disable" line above the timestamp inhibits complaints
++# about features and limitations of the classic Bourne shell that were
++# superseded or lifted in POSIX. However, this script identifies a wide
++# variety of pre-POSIX systems that do not have POSIX shells at all, and
++# even some reasonably current systems (Solaris 10 as case-in-point) still
++# have a pre-POSIX /bin/sh.
++
+ me=`echo "$0" | sed -e 's,.*/,,'`
+
+ usage="\
+@@ -67,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>."
+ version="\
+ GNU config.sub ($timestamp)
+
+-Copyright 1992-2019 Free Software Foundation, Inc.
++Copyright 1992-2023 Free Software Foundation, Inc.
+
+ This is free software; see the source for copying conditions. There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -112,9 +121,11 @@ esac
+
+ # Split fields of configuration type
+ # shellcheck disable=SC2162
++saved_IFS=$IFS
+ IFS="-" read field1 field2 field3 field4 <<EOF
+ $1
+ EOF
++IFS=$saved_IFS
+
+ # Separate into logical components for further validation
+ case $1 in
+@@ -124,28 +135,27 @@ case $1 in
+ ;;
+ *-*-*-*)
+ basic_machine=$field1-$field2
+- os=$field3-$field4
++ basic_os=$field3-$field4
+ ;;
+ *-*-*)
+ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
+ # parts
+ maybe_os=$field2-$field3
+ case $maybe_os in
+- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
+- | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
++ nto-qnx* | linux-* | uclinux-uclibc* \
+ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
+ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
+- | storm-chaos* | os2-emx* | rtmk-nova*)
++ | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
+ basic_machine=$field1
+- os=$maybe_os
++ basic_os=$maybe_os
+ ;;
+ android-linux)
+ basic_machine=$field1-unknown
+- os=linux-android
++ basic_os=linux-android
+ ;;
+ *)
+ basic_machine=$field1-$field2
+- os=$field3
++ basic_os=$field3
+ ;;
+ esac
+ ;;
+@@ -154,7 +164,7 @@ case $1 in
+ case $field1-$field2 in
+ decstation-3100)
+ basic_machine=mips-dec
+- os=
++ basic_os=
+ ;;
+ *-*)
+ # Second component is usually, but not always the OS
+@@ -162,7 +172,11 @@ case $1 in
+ # Prevent following clause from handling this valid os
+ sun*os*)
+ basic_machine=$field1
+- os=$field2
++ basic_os=$field2
++ ;;
++ zephyr*)
++ basic_machine=$field1-unknown
++ basic_os=$field2
+ ;;
+ # Manufacturers
+ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
+@@ -175,11 +189,11 @@ case $1 in
+ | microblaze* | sim | cisco \
+ | oki | wec | wrs | winbond)
+ basic_machine=$field1-$field2
+- os=
++ basic_os=
+ ;;
+ *)
+ basic_machine=$field1
+- os=$field2
++ basic_os=$field2
+ ;;
+ esac
+ ;;
+@@ -191,450 +205,451 @@ case $1 in
+ case $field1 in
+ 386bsd)
+ basic_machine=i386-pc
+- os=bsd
++ basic_os=bsd
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+- os=udi
++ basic_os=udi
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+- os=scout
++ basic_os=scout
+ ;;
+ alliant)
+ basic_machine=fx80-alliant
+- os=
++ basic_os=
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+- os=
++ basic_os=
+ ;;
+ am29k)
+ basic_machine=a29k-none
+- os=bsd
++ basic_os=bsd
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+- os=sysv
++ basic_os=sysv
+ ;;
+ amiga)
+ basic_machine=m68k-unknown
+- os=
++ basic_os=
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+- os=amigaos
++ basic_os=amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+- os=sysv4
++ basic_os=sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+- os=sysv
++ basic_os=sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+- os=bsd
++ basic_os=bsd
+ ;;
+ aros)
+ basic_machine=i386-pc
+- os=aros
++ basic_os=aros
+ ;;
+ aux)
+ basic_machine=m68k-apple
+- os=aux
++ basic_os=aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+- os=dynix
++ basic_os=dynix
+ ;;
+ blackfin)
+ basic_machine=bfin-unknown
+- os=linux
++ basic_os=linux
+ ;;
+ cegcc)
+ basic_machine=arm-unknown
+- os=cegcc
++ basic_os=cegcc
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+- os=bsd
++ basic_os=bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+- os=bsd
++ basic_os=bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+- os=bsd
++ basic_os=bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+- os=bsd
++ basic_os=bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+- os=bsd
++ basic_os=bsd
+ ;;
+ cray)
+ basic_machine=j90-cray
+- os=unicos
++ basic_os=unicos
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+- os=
++ basic_os=
+ ;;
+ da30)
+ basic_machine=m68k-da30
+- os=
++ basic_os=
+ ;;
+ decstation | pmax | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+- os=
++ basic_os=
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+- os=sysv3
++ basic_os=sysv3
+ ;;
+ dicos)
+ basic_machine=i686-pc
+- os=dicos
++ basic_os=dicos
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+- os=msdosdjgpp
++ basic_os=msdosdjgpp
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+- os=ebmon
++ basic_os=ebmon
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+- os=ose
++ basic_os=ose
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+- os=sysv
++ basic_os=sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+- os=go32
++ basic_os=go32
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+- os=hms
++ basic_os=hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+- os=xray
++ basic_os=xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+- os=hms
++ basic_os=hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+- os=sysv3
++ basic_os=sysv3
+ ;;
+- hp300)
++ hp300 | hp300hpux)
+ basic_machine=m68k-hp
++ basic_os=hpux
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+- os=bsd
+- ;;
+- hp300hpux)
+- basic_machine=m68k-hp
+- os=hpux
++ basic_os=bsd
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+- os=osf
++ basic_os=osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+- os=proelf
++ basic_os=proelf
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+- os=mach
+- ;;
+- vsta)
+- basic_machine=i386-pc
+- os=vsta
++ basic_os=mach
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+- os=sysv
++ basic_os=sysv
+ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+- os=linux
++ basic_os=linux
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+- os=sysv
++ basic_os=sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+- os=sysv
++ basic_os=sysv
+ ;;
+ mingw64)
+ basic_machine=x86_64-pc
+- os=mingw64
++ basic_os=mingw64
+ ;;
+ mingw32)
+ basic_machine=i686-pc
+- os=mingw32
++ basic_os=mingw32
+ ;;
+ mingw32ce)
+ basic_machine=arm-unknown
+- os=mingw32ce
++ basic_os=mingw32ce
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+- os=coff
++ basic_os=coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+- os=morphos
++ basic_os=morphos
+ ;;
+ moxiebox)
+ basic_machine=moxie-unknown
+- os=moxiebox
++ basic_os=moxiebox
+ ;;
+ msdos)
+ basic_machine=i386-pc
+- os=msdos
++ basic_os=msdos
+ ;;
+ msys)
+ basic_machine=i686-pc
+- os=msys
++ basic_os=msys
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+- os=mvs
++ basic_os=mvs
+ ;;
+ nacl)
+ basic_machine=le32-unknown
+- os=nacl
++ basic_os=nacl
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+- os=sysv4
++ basic_os=sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-pc
+- os=netbsd
++ basic_os=netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+- os=linux
++ basic_os=linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+- os=newsos
++ basic_os=newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+- os=newsos
++ basic_os=newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+- os=sysv
++ basic_os=sysv
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+- os=cxux
++ basic_os=cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+- os=cxux
++ basic_os=cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+- os=nindy
++ basic_os=nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+- os=mon960
++ basic_os=mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+- os=nonstopux
++ basic_os=nonstopux
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+- os=os400
++ basic_os=os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+- os=ose
++ basic_os=ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+- os=os68k
++ basic_os=os68k
+ ;;
+ paragon)
+ basic_machine=i860-intel
+- os=osf
++ basic_os=osf
+ ;;
+ parisc)
+ basic_machine=hppa-unknown
+- os=linux
++ basic_os=linux
++ ;;
++ psp)
++ basic_machine=mipsallegrexel-sony
++ basic_os=psp
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+- os=pw32
++ basic_os=pw32
+ ;;
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+- os=rdos
++ basic_os=rdos
+ ;;
+ rdos32)
+ basic_machine=i386-pc
+- os=rdos
++ basic_os=rdos
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+- os=coff
++ basic_os=coff
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+- os=udi
++ basic_os=udi
+ ;;
+ sei)
+ basic_machine=mips-sei
+- os=seiux
++ basic_os=seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+- os=
++ basic_os=
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+- os=sysv2
++ basic_os=sysv2
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+- os=
++ basic_os=
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+- os=sysv4
++ basic_os=sysv4
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+- os=
++ basic_os=
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+- os=sunos3
++ basic_os=sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+- os=sunos4
++ basic_os=sunos4
+ ;;
+ sun3)
+ basic_machine=m68k-sun
+- os=
++ basic_os=
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+- os=sunos3
++ basic_os=sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+- os=sunos4
++ basic_os=sunos4
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+- os=
++ basic_os=
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+- os=sunos3
++ basic_os=sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+- os=sunos4
++ basic_os=sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+- os=solaris2
++ basic_os=solaris2
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+- os=
++ basic_os=
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+- os=unicos
++ basic_os=unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+- os=dynix
++ basic_os=dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+- os=unicos
++ basic_os=unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+- os=unicos
++ basic_os=unicos
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+- os=tops20
++ basic_os=tops20
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+- os=tpf
++ basic_os=tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+- os=udi
++ basic_os=udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+- os=sym1
++ basic_os=sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+- os=none
++ basic_os=none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+- os=sysv
++ basic_os=sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+- os=vms
++ basic_os=vms
++ ;;
++ vsta)
++ basic_machine=i386-pc
++ basic_os=vsta
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+- os=vxworks
++ basic_os=vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+- os=vxworks
++ basic_os=vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+- os=vxworks
++ basic_os=vxworks
+ ;;
+ xbox)
+ basic_machine=i686-pc
+- os=mingw32
++ basic_os=mingw32
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+- os=unicos
++ basic_os=unicos
+ ;;
+ *)
+ basic_machine=$1
+- os=
++ basic_os=
+ ;;
+ esac
+ ;;
+@@ -686,17 +701,17 @@ case $basic_machine in
+ bluegene*)
+ cpu=powerpc
+ vendor=ibm
+- os=cnk
++ basic_os=cnk
+ ;;
+ decsystem10* | dec10*)
+ cpu=pdp10
+ vendor=dec
+- os=tops10
++ basic_os=tops10
+ ;;
+ decsystem20* | dec20*)
+ cpu=pdp10
+ vendor=dec
+- os=tops20
++ basic_os=tops20
+ ;;
+ delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+@@ -706,7 +721,7 @@ case $basic_machine in
+ dpx2*)
+ cpu=m68k
+ vendor=bull
+- os=sysv3
++ basic_os=sysv3
+ ;;
+ encore | umax | mmax)
+ cpu=ns32k
+@@ -715,7 +730,7 @@ case $basic_machine in
+ elxsi)
+ cpu=elxsi
+ vendor=elxsi
+- os=${os:-bsd}
++ basic_os=${basic_os:-bsd}
+ ;;
+ fx2800)
+ cpu=i860
+@@ -728,7 +743,7 @@ case $basic_machine in
+ h3050r* | hiux*)
+ cpu=hppa1.1
+ vendor=hitachi
+- os=hiuxwe2
++ basic_os=hiuxwe2
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ cpu=hppa1.0
+@@ -771,36 +786,36 @@ case $basic_machine in
+ i*86v32)
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+- os=sysv32
++ basic_os=sysv32
+ ;;
+ i*86v4*)
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+- os=sysv4
++ basic_os=sysv4
+ ;;
+ i*86v)
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+- os=sysv
++ basic_os=sysv
+ ;;
+ i*86sol2)
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+- os=solaris2
++ basic_os=solaris2
+ ;;
+ j90 | j90-cray)
+ cpu=j90
+ vendor=cray
+- os=${os:-unicos}
++ basic_os=${basic_os:-unicos}
+ ;;
+ iris | iris4d)
+ cpu=mips
+ vendor=sgi
+- case $os in
++ case $basic_os in
+ irix*)
+ ;;
+ *)
+- os=irix4
++ basic_os=irix4
+ ;;
+ esac
+ ;;
+@@ -811,26 +826,26 @@ case $basic_machine in
+ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ cpu=m68k
+ vendor=atari
+- os=mint
++ basic_os=mint
+ ;;
+ news-3600 | risc-news)
+ cpu=mips
+ vendor=sony
+- os=newsos
++ basic_os=newsos
+ ;;
+ next | m*-next)
+ cpu=m68k
+ vendor=next
+- case $os in
++ case $basic_os in
+ openstep*)
+ ;;
+ nextstep*)
+ ;;
+ ns2*)
+- os=nextstep2
++ basic_os=nextstep2
+ ;;
+ *)
+- os=nextstep3
++ basic_os=nextstep3
+ ;;
+ esac
+ ;;
+@@ -841,12 +856,12 @@ case $basic_machine in
+ op50n-* | op60c-*)
+ cpu=hppa1.1
+ vendor=oki
+- os=proelf
++ basic_os=proelf
+ ;;
+ pa-hitachi)
+ cpu=hppa1.1
+ vendor=hitachi
+- os=hiuxwe2
++ basic_os=hiuxwe2
+ ;;
+ pbd)
+ cpu=sparc
+@@ -883,12 +898,12 @@ case $basic_machine in
+ sde)
+ cpu=mipsisa32
+ vendor=sde
+- os=${os:-elf}
++ basic_os=${basic_os:-elf}
+ ;;
+ simso-wrs)
+ cpu=sparclite
+ vendor=wrs
+- os=vxworks
++ basic_os=vxworks
+ ;;
+ tower | tower-32)
+ cpu=m68k
+@@ -905,7 +920,7 @@ case $basic_machine in
+ w89k-*)
+ cpu=hppa1.1
+ vendor=winbond
+- os=proelf
++ basic_os=proelf
+ ;;
+ none)
+ cpu=none
+@@ -922,9 +937,11 @@ case $basic_machine in
+
+ *-*)
+ # shellcheck disable=SC2162
++ saved_IFS=$IFS
+ IFS="-" read cpu vendor <<EOF
+ $basic_machine
+ EOF
++ IFS=$saved_IFS
+ ;;
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+@@ -958,11 +975,11 @@ case $cpu-$vendor in
+ # some cases the only manufacturer, in others, it is the most popular.
+ craynv-unknown)
+ vendor=cray
+- os=${os:-unicosmp}
++ basic_os=${basic_os:-unicosmp}
+ ;;
+ c90-unknown | c90-cray)
+ vendor=cray
+- os=${os:-unicos}
++ basic_os=${Basic_os:-unicos}
+ ;;
+ fx80-unknown)
+ vendor=alliant
+@@ -1003,10 +1020,15 @@ case $cpu-$vendor in
+ ;;
+
+ # Here we normalize CPU types with a missing or matching vendor
++ armh-unknown | armh-alt)
++ cpu=armv7l
++ vendor=alt
++ basic_os=${basic_os:-linux-gnueabihf}
++ ;;
+ dpx20-unknown | dpx20-bull)
+ cpu=rs6000
+ vendor=bull
+- os=${os:-bosx}
++ basic_os=${basic_os:-bosx}
+ ;;
+
+ # Here we normalize CPU types irrespective of the vendor
+@@ -1015,7 +1037,7 @@ case $cpu-$vendor in
+ ;;
+ blackfin-*)
+ cpu=bfin
+- os=linux
++ basic_os=linux
+ ;;
+ c54x-*)
+ cpu=tic54x
+@@ -1028,7 +1050,7 @@ case $cpu-$vendor in
+ ;;
+ e500v[12]-*)
+ cpu=powerpc
+- os=$os"spe"
++ basic_os=${basic_os}"spe"
+ ;;
+ mips3*-*)
+ cpu=mips64
+@@ -1038,7 +1060,7 @@ case $cpu-$vendor in
+ ;;
+ m68knommu-*)
+ cpu=m68k
+- os=linux
++ basic_os=linux
+ ;;
+ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
+ cpu=s12z
+@@ -1048,12 +1070,12 @@ case $cpu-$vendor in
+ ;;
+ parisc-*)
+ cpu=hppa
+- os=linux
++ basic_os=linux
+ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ cpu=i586
+ ;;
+- pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
++ pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
+ cpu=i686
+ ;;
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+@@ -1104,11 +1126,14 @@ case $cpu-$vendor in
+ xscale-* | xscalee[bl]-*)
+ cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
+ ;;
++ arm64-* | aarch64le-*)
++ cpu=aarch64
++ ;;
+
+ # Recognize the canonical CPU Types that limit and/or modify the
+ # company names they are paired with.
+ cr16-*)
+- os=${os:-elf}
++ basic_os=${basic_os:-elf}
+ ;;
+ crisv32-* | etraxfs*-*)
+ cpu=crisv32
+@@ -1119,7 +1144,7 @@ case $cpu-$vendor in
+ vendor=axis
+ ;;
+ crx-*)
+- os=${os:-elf}
++ basic_os=${basic_os:-elf}
+ ;;
+ neo-tandem)
+ cpu=neo
+@@ -1141,16 +1166,12 @@ case $cpu-$vendor in
+ cpu=nsx
+ vendor=tandem
+ ;;
+- s390-*)
+- cpu=s390
+- vendor=ibm
+- ;;
+- s390x-*)
+- cpu=s390x
+- vendor=ibm
++ mipsallegrexel-sony)
++ cpu=mipsallegrexel
++ vendor=sony
+ ;;
+ tile*-*)
+- os=${os:-linux-gnu}
++ basic_os=${basic_os:-linux-gnu}
+ ;;
+
+ *)
+@@ -1166,8 +1187,8 @@ case $cpu-$vendor in
+ | alphapca5[67] | alpha64pca5[67] \
+ | am33_2.0 \
+ | amdgcn \
+- | arc | arceb \
+- | arm | arm[lb]e | arme[lb] | armv* \
++ | arc | arceb | arc32 | arc64 \
++ | arm | arm[lb]e | arme[lb] | armv* \
+ | avr | avr32 \
+ | asmjs \
+ | ba \
+@@ -1186,6 +1207,7 @@ case $cpu-$vendor in
+ | k1om \
+ | le32 | le64 \
+ | lm32 \
++ | loongarch32 | loongarch64 \
+ | m32c | m32r | m32rle \
+ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
+ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
+@@ -1204,9 +1226,13 @@ case $cpu-$vendor in
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
++ | mipsisa32r3 | mipsisa32r3el \
++ | mipsisa32r5 | mipsisa32r5el \
+ | mipsisa32r6 | mipsisa32r6el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
++ | mipsisa64r3 | mipsisa64r3el \
++ | mipsisa64r5 | mipsisa64r5el \
+ | mipsisa64r6 | mipsisa64r6el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+@@ -1230,8 +1256,9 @@ case $cpu-$vendor in
+ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
+ | pru \
+ | pyramid \
+- | riscv | riscv32 | riscv64 \
++ | riscv | riscv32 | riscv32be | riscv64 | riscv64be \
+ | rl78 | romp | rs6000 | rx \
++ | s390 | s390x \
+ | score \
+ | sh | shl \
+ | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
+@@ -1241,6 +1268,7 @@ case $cpu-$vendor in
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
+ | spu \
+ | tahoe \
++ | thumbv7* \
+ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
+ | tron \
+ | ubicom32 \
+@@ -1278,8 +1306,53 @@ esac
+
+ # Decode manufacturer-specific aliases for certain operating systems.
+
+-if [ x$os != x ]
++if test x$basic_os != x
+ then
++
++# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
++# set os.
++case $basic_os in
++ gnu/linux*)
++ kernel=linux
++ os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
++ ;;
++ os2-emx)
++ kernel=os2
++ os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
++ ;;
++ nto-qnx*)
++ kernel=nto
++ os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
++ ;;
++ *-*)
++ # shellcheck disable=SC2162
++ saved_IFS=$IFS
++ IFS="-" read kernel os <<EOF
++$basic_os
++EOF
++ IFS=$saved_IFS
++ ;;
++ # Default OS when just kernel was specified
++ nto*)
++ kernel=nto
++ os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
++ ;;
++ linux*)
++ kernel=linux
++ os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
++ ;;
++ managarm*)
++ kernel=managarm
++ os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
++ ;;
++ *)
++ kernel=
++ os=$basic_os
++ ;;
++esac
++
++# Now, normalize the OS (knowing we just have one component, it's not a kernel,
++# etc.)
+ case $os in
+ # First match some system type aliases that might get confused
+ # with valid system types.
+@@ -1291,7 +1364,7 @@ case $os in
+ os=cnk
+ ;;
+ solaris1 | solaris1.*)
+- os=`echo $os | sed -e 's|solaris1|sunos4|'`
++ os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
+ ;;
+ solaris)
+ os=solaris2
+@@ -1299,9 +1372,6 @@ case $os in
+ unixware*)
+ os=sysv4.2uw
+ ;;
+- gnu/linux*)
+- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+- ;;
+ # es1800 is here to avoid being matched by es* (a different OS)
+ es1800*)
+ os=ose
+@@ -1323,12 +1393,9 @@ case $os in
+ os=sco3.2v4
+ ;;
+ sco3.2.[4-9]*)
+- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+- ;;
+- sco3.2v[4-9]* | sco5v6*)
+- # Don't forget version if it is 3.2v4 or newer.
++ os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
+ ;;
+- scout)
++ sco*v* | scout)
+ # Don't match below
+ ;;
+ sco*)
+@@ -1337,77 +1404,25 @@ case $os in
+ psos*)
+ os=psos
+ ;;
+- # Now accept the basic system types.
+- # The portable systems comes first.
+- # Each alternative MUST end in a * to match a version number.
+- # sysv* is not here because it comes later, after sysvr4.
+- gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+- | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
+- | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+- | sym* | kopensolaris* | plan9* \
+- | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+- | aos* | aros* | cloudabi* | sortix* \
+- | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+- | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+- | knetbsd* | mirbsd* | netbsd* \
+- | bitrig* | openbsd* | solidbsd* | libertybsd* \
+- | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
+- | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+- | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+- | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
+- | chorusrdb* | cegcc* | glidix* \
+- | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+- | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
+- | linux-newlib* | linux-musl* | linux-uclibc* \
+- | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+- | interix* | uwin* | mks* | rhapsody* | darwin* \
+- | openstep* | oskit* | conix* | pw32* | nonstopux* \
+- | storm-chaos* | tops10* | tenex* | tops20* | its* \
+- | os2* | vos* | palmos* | uclinux* | nucleus* \
+- | morphos* | superux* | rtmk* | windiss* \
+- | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+- | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+- | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+- | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi*)
+- # Remember, each alternative MUST END IN *, to match a version number.
+- ;;
+ qnx*)
+- case $cpu in
+- x86 | i*86)
+- ;;
+- *)
+- os=nto-$os
+- ;;
+- esac
++ os=qnx
+ ;;
+ hiux*)
+ os=hiuxwe2
+ ;;
+- nto-qnx*)
+- ;;
+- nto*)
+- os=`echo $os | sed -e 's|nto|nto-qnx|'`
+- ;;
+- sim | xray | os68k* | v88r* \
+- | windows* | osx | abug | netware* | os9* \
+- | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
+- ;;
+- linux-dietlibc)
+- os=linux-dietlibc
+- ;;
+- linux*)
+- os=`echo $os | sed -e 's|linux|linux-gnu|'`
+- ;;
+ lynx*178)
+ os=lynxos178
+ ;;
+ lynx*5)
+ os=lynxos5
+ ;;
++ lynxos*)
++ # don't get caught up in next wildcard
++ ;;
+ lynx*)
+ os=lynxos
+ ;;
+- mac*)
++ mac[0-9]*)
+ os=`echo "$os" | sed -e 's|mac|macos|'`
+ ;;
+ opened*)
+@@ -1452,12 +1467,9 @@ case $os in
+ ns2)
+ os=nextstep2
+ ;;
+- nsk*)
+- os=nsk
+- ;;
+ # Preserve the version number of sinix5.
+ sinix5.*)
+- os=`echo $os | sed -e 's|sinix|sysv|'`
++ os=`echo "$os" | sed -e 's|sinix|sysv|'`
+ ;;
+ sinix*)
+ os=sysv4
+@@ -1480,18 +1492,12 @@ case $os in
+ sysvr4)
+ os=sysv4
+ ;;
+- # This must come after sysvr4.
+- sysv*)
+- ;;
+ ose*)
+ os=ose
+ ;;
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+ os=mint
+ ;;
+- zvmoe)
+- os=zvmoe
+- ;;
+ dicos*)
+ os=dicos
+ ;;
+@@ -1508,19 +1514,11 @@ case $os in
+ ;;
+ esac
+ ;;
+- nacl*)
+- ;;
+- ios)
+- ;;
+- none)
+- ;;
+- *-eabi)
+- ;;
+ *)
+- echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
+- exit 1
++ # No normalization, but not necessarily accepted, that comes below.
+ ;;
+ esac
++
+ else
+
+ # Here we handle the default operating systems that come with various machines.
+@@ -1533,6 +1531,7 @@ else
+ # will signal an error saying that MANUFACTURER isn't an operating
+ # system, and we'll never get to this point.
+
++kernel=
+ case $cpu-$vendor in
+ score-*)
+ os=elf
+@@ -1544,7 +1543,8 @@ case $cpu-$vendor in
+ os=riscix1.2
+ ;;
+ arm*-rebel)
+- os=linux
++ kernel=linux
++ os=gnu
+ ;;
+ arm*-semi)
+ os=aout
+@@ -1710,84 +1710,193 @@ case $cpu-$vendor in
+ os=none
+ ;;
+ esac
++
+ fi
+
++# Now, validate our (potentially fixed-up) OS.
++case $os in
++ # Sometimes we do "kernel-libc", so those need to count as OSes.
++ musl* | newlib* | relibc* | uclibc*)
++ ;;
++ # Likewise for "kernel-abi"
++ eabi* | gnueabi*)
++ ;;
++ # VxWorks passes extra cpu info in the 4th filed.
++ simlinux | simwindows | spe)
++ ;;
++ # Now accept the basic system types.
++ # The portable systems comes first.
++ # Each alternative MUST end in a * to match a version number.
++ gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
++ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
++ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
++ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
++ | hiux* | abug | nacl* | netware* | windows* \
++ | os9* | macos* | osx* | ios* \
++ | mpw* | magic* | mmixware* | mon960* | lnews* \
++ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
++ | aos* | aros* | cloudabi* | sortix* | twizzler* \
++ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
++ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
++ | mirbsd* | netbsd* | dicos* | openedition* | ose* \
++ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
++ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
++ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
++ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
++ | udi* | lites* | ieee* | go32* | aux* | hcos* \
++ | chorusrdb* | cegcc* | glidix* | serenity* \
++ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
++ | midipix* | mingw32* | mingw64* | mint* \
++ | uxpv* | beos* | mpeix* | udk* | moxiebox* \
++ | interix* | uwin* | mks* | rhapsody* | darwin* \
++ | openstep* | oskit* | conix* | pw32* | nonstopux* \
++ | storm-chaos* | tops10* | tenex* | tops20* | its* \
++ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
++ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
++ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
++ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
++ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
++ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
++ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
++ | fiwix* | mlibc* )
++ ;;
++ # This one is extra strict with allowed versions
++ sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
++ # Don't forget version if it is 3.2v4 or newer.
++ ;;
++ none)
++ ;;
++ kernel* )
++ # Restricted further below
++ ;;
++ *)
++ echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
++ exit 1
++ ;;
++esac
++
++# As a final step for OS-related things, validate the OS-kernel combination
++# (given a valid OS), if there is a kernel.
++case $kernel-$os in
++ linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
++ | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
++ ;;
++ uclinux-uclibc* )
++ ;;
++ managarm-mlibc* | managarm-kernel* )
++ ;;
++ -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
++ # These are just libc implementations, not actual OSes, and thus
++ # require a kernel.
++ echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
++ exit 1
++ ;;
++ -kernel* )
++ echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2
++ exit 1
++ ;;
++ *-kernel* )
++ echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2
++ exit 1
++ ;;
++ kfreebsd*-gnu* | kopensolaris*-gnu*)
++ ;;
++ vxworks-simlinux | vxworks-simwindows | vxworks-spe)
++ ;;
++ nto-qnx*)
++ ;;
++ os2-emx)
++ ;;
++ *-eabi* | *-gnueabi*)
++ ;;
++ -*)
++ # Blank kernel with real OS is always fine.
++ ;;
++ *-*)
++ echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
++ exit 1
++ ;;
++esac
++
+ # Here we handle the case where we know the os, and the CPU type, but not the
+ # manufacturer. We pick the logical manufacturer.
+ case $vendor in
+ unknown)
+- case $os in
+- riscix*)
++ case $cpu-$os in
++ *-riscix*)
+ vendor=acorn
+ ;;
+- sunos*)
++ *-sunos*)
+ vendor=sun
+ ;;
+- cnk*|-aix*)
++ *-cnk* | *-aix*)
+ vendor=ibm
+ ;;
+- beos*)
++ *-beos*)
+ vendor=be
+ ;;
+- hpux*)
++ *-hpux*)
+ vendor=hp
+ ;;
+- mpeix*)
++ *-mpeix*)
+ vendor=hp
+ ;;
+- hiux*)
++ *-hiux*)
+ vendor=hitachi
+ ;;
+- unos*)
++ *-unos*)
+ vendor=crds
+ ;;
+- dgux*)
++ *-dgux*)
+ vendor=dg
+ ;;
+- luna*)
++ *-luna*)
+ vendor=omron
+ ;;
+- genix*)
++ *-genix*)
+ vendor=ns
+ ;;
+- clix*)
++ *-clix*)
+ vendor=intergraph
+ ;;
+- mvs* | opened*)
++ *-mvs* | *-opened*)
++ vendor=ibm
++ ;;
++ *-os400*)
+ vendor=ibm
+ ;;
+- os400*)
++ s390-* | s390x-*)
+ vendor=ibm
+ ;;
+- ptx*)
++ *-ptx*)
+ vendor=sequent
+ ;;
+- tpf*)
++ *-tpf*)
+ vendor=ibm
+ ;;
+- vxsim* | vxworks* | windiss*)
++ *-vxsim* | *-vxworks* | *-windiss*)
+ vendor=wrs
+ ;;
+- aux*)
++ *-aux*)
+ vendor=apple
+ ;;
+- hms*)
++ *-hms*)
+ vendor=hitachi
+ ;;
+- mpw* | macos*)
++ *-mpw* | *-macos*)
+ vendor=apple
+ ;;
+- *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
++ *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
+ vendor=atari
+ ;;
+- vos*)
++ *-vos*)
+ vendor=stratus
+ ;;
+ esac
+ ;;
+ esac
+
+-echo "$cpu-$vendor-$os"
++echo "$cpu-$vendor-${kernel:+$kernel-}$os"
+ exit
+
+ # Local variables:
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/sqlite/src/configure b/qtwebengine/src/3rdparty/chromium/third_party/sqlite/src/configure
+index 367b1485f20a..4665b719dfa8 100755
+--- a/qtwebengine/src/3rdparty/chromium/third_party/sqlite/src/configure
++++ b/qtwebengine/src/3rdparty/chromium/third_party/sqlite/src/configure
+@@ -7450,7 +7450,7 @@ _LT_EOF
+
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
++ cat $export_symbols | sed -e "s/\(.*\)/'"$ac_symprfx"'\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+@@ -7464,7 +7464,7 @@ _LT_EOF
+ archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
++ cat $export_symbols | sed -e "s/\(.*\)/'"$ac_symprfx"'\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+@@ -8526,7 +8526,7 @@ version_type=none
+ dynamic_linker="$host_os ld.so"
+ sys_lib_dlsearch_path_spec="/lib /usr/lib"
+ need_lib_prefix=unknown
+-hardcode_into_libs=no
++hardcode_into_libs="no"
+
+ # when you set need_version to no, make sure it does not cause -set_version
+ # flags to be left without arguments
+@@ -12660,8 +12660,8 @@ module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quot
+ with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`'
+ allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
+ no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
+-hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
+-hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`'
++hardcode_libdir_flag_spec=""
++hardcode_libdir_flag_spec_ld=""
+ hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`'
+ hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`'
+ hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`'
+@@ -12691,7 +12691,7 @@ postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_su
+ postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+ finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`'
+ finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`'
+-hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`'
++hardcode_into_libs="no"
+ sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
+ sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
+ hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`'
+@@ -13642,7 +13642,7 @@ finish_cmds=$lt_finish_cmds
+ finish_eval=$lt_finish_eval
+
+ # Whether we should hardcode library paths into libraries.
+-hardcode_into_libs=$hardcode_into_libs
++hardcode_into_libs="no"
+
+ # Compile-time system search path for libraries.
+ sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+@@ -13732,11 +13732,11 @@ no_undefined_flag=$lt_no_undefined_flag
+
+ # Flag to hardcode \$libdir into a binary during linking.
+ # This must work even if \$libdir does not exist
+-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
++hardcode_libdir_flag_spec=""
+
+ # If ld is used when linking, flag to hardcode \$libdir into a binary
+ # during linking. This must work even if \$libdir does not exist.
+-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
++hardcode_libdir_flag_spec_ld=""
+
+ # Whether we need a single "-rpath" flag with a separated argument.
+ hardcode_libdir_separator=$lt_hardcode_libdir_separator
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/sqlite/src/ltmain.sh b/qtwebengine/src/3rdparty/chromium/third_party/sqlite/src/ltmain.sh
+index 0634c4bccce1..d3ad4932fa96 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/sqlite/src/ltmain.sh
++++ b/qtwebengine/src/3rdparty/chromium/third_party/sqlite/src/ltmain.sh
+@@ -5571,7 +5571,7 @@ func_mode_link ()
+ *)
+ if test "$installed" = no; then
+ notinst_deplibs="$notinst_deplibs $lib"
+- need_relink=yes
++ need_relink="no"
+ fi
+ ;;
+ esac
+diff --git a/qtwebengine/src/3rdparty/chromium/third_party/webrtc/test/BUILD.gn b/qtwebengine/src/3rdparty/chromium/third_party/webrtc/test/BUILD.gn
+index 58d3dab5219d..48328298d2ea 100644
+--- a/qtwebengine/src/3rdparty/chromium/third_party/webrtc/test/BUILD.gn
++++ b/qtwebengine/src/3rdparty/chromium/third_party/webrtc/test/BUILD.gn
+@@ -258,10 +258,6 @@ rtc_library("perf_test") {
+ absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
+ if (rtc_enable_protobuf) {
+ sources += [ "testsupport/perf_test_histogram_writer.cc" ]
+- deps += [
+- "//third_party/catapult/tracing/tracing:histogram",
+- "//third_party/catapult/tracing/tracing:reserved_infos",
+- ]
+ } else {
+ sources += [ "testsupport/perf_test_histogram_writer_no_protobuf.cc" ]
+ }
+@@ -566,7 +562,6 @@ if (rtc_include_tests) {
+
+ if (rtc_enable_protobuf) {
+ sources += [ "testsupport/perf_test_histogram_writer_unittest.cc" ]
+- deps += [ "//third_party/catapult/tracing/tracing:histogram" ]
+ }
+
+ data = test_support_unittests_resources
+diff --git a/qtwebengine/src/3rdparty/chromium/tools/binary_size/BUILD.gn b/qtwebengine/src/3rdparty/chromium/tools/binary_size/BUILD.gn
+index e6806bf77544..2c985d15fab4 100644
+--- a/qtwebengine/src/3rdparty/chromium/tools/binary_size/BUILD.gn
++++ b/qtwebengine/src/3rdparty/chromium/tools/binary_size/BUILD.gn
+@@ -18,7 +18,6 @@ python_library("binary_size_trybot_py") {
+ python_library("sizes_py") {
+ testonly = true
+ pydeps_file = "sizes.pydeps"
+- data_deps = [ "//third_party/catapult/tracing:convert_chart_json" ]
+ }
+
+ if (is_linux || is_chromeos) {
+diff --git a/qtwebengine/src/3rdparty/chromium/tools/grit/BUILD.gn b/qtwebengine/src/3rdparty/chromium/tools/grit/BUILD.gn
+index 1cd3c75b553f..60c4cf2f77ac 100644
+--- a/qtwebengine/src/3rdparty/chromium/tools/grit/BUILD.gn
++++ b/qtwebengine/src/3rdparty/chromium/tools/grit/BUILD.gn
+@@ -33,7 +33,6 @@ group("grit_python_unittests") {
+ "//testing/scripts/run_isolated_script_test.py",
+ "//testing/xvfb.py",
+ "//tools/grit/",
+- "//third_party/catapult/third_party/typ/",
+ ]
+ }
+
+diff --git a/qtwebengine/src/3rdparty/chromium/tools/gritsettings/resource_ids.spec b/qtwebengine/src/3rdparty/chromium/tools/gritsettings/resource_ids.spec
+index d0a4545514c9..80b0bf1737bd 100644
+--- a/qtwebengine/src/3rdparty/chromium/tools/gritsettings/resource_ids.spec
++++ b/qtwebengine/src/3rdparty/chromium/tools/gritsettings/resource_ids.spec
+@@ -499,12 +499,6 @@
+ "content/shell/shell_resources.grd": {
+ "includes": [2940],
+ },
+-
+- # This file is generated during the build.
+- "<(SHARED_INTERMEDIATE_DIR)/content/browser/tracing/tracing_resources.grd": {
+- "META": {"sizes": {"includes": [20],}},
+- "includes": [2960],
+- },
+ # END content/ section.
+
+ # START ios/web/ section.
+diff --git a/qtwebengine/src/3rdparty/chromium/tools/metrics/BUILD.gn b/qtwebengine/src/3rdparty/chromium/tools/metrics/BUILD.gn
+index 846d5248bfae..cb57d2bdae17 100644
+--- a/qtwebengine/src/3rdparty/chromium/tools/metrics/BUILD.gn
++++ b/qtwebengine/src/3rdparty/chromium/tools/metrics/BUILD.gn
+@@ -56,7 +56,6 @@ group("metrics_python_tests") {
+ "//testing/scripts/common.py",
+ "//testing/xvfb.py",
+ "//testing/test_env.py",
+- "//third_party/catapult/third_party/typ/",
+
+ # Scripts we depend on. Their unit tests are also included.
+ "//tools/json_comment_eater/json_comment_eater.py",
+diff --git a/qtwebengine/src/3rdparty/chromium/tools/perf/chrome_telemetry_build/BUILD.gn b/qtwebengine/src/3rdparty/chromium/tools/perf/chrome_telemetry_build/BUILD.gn
+index 280bb754c2c7..c287fdcebb36 100644
+--- a/qtwebengine/src/3rdparty/chromium/tools/perf/chrome_telemetry_build/BUILD.gn
++++ b/qtwebengine/src/3rdparty/chromium/tools/perf/chrome_telemetry_build/BUILD.gn
+@@ -107,7 +107,6 @@ group("telemetry_chrome_test_without_chrome") {
+ "//tools/perf/core/", # chrome_telemetry_build/ depends on core/
+ ]
+ data_deps = [
+- "//third_party/catapult:telemetry_chrome_test_support",
+ "//tools/metrics:metrics_python_tests",
+ ]
+
+@@ -151,7 +150,5 @@ group("telemetry_chrome_test_without_chrome") {
+ "//build/android:devil_chromium_py",
+ "//build/android:stack_tools",
+ ]
+- } else if (!is_fuchsia) {
+- data_deps += [ "//third_party/catapult/telemetry:bitmaptools" ]
+ }
+ }
+diff --git a/qtwebengine/src/3rdparty/chromium/tools/perf/core/perfetto_binary_roller/BUILD.gn b/qtwebengine/src/3rdparty/chromium/tools/perf/core/perfetto_binary_roller/BUILD.gn
+index 7fe48cba1438..e9c7f0261a5e 100644
+--- a/qtwebengine/src/3rdparty/chromium/tools/perf/core/perfetto_binary_roller/BUILD.gn
++++ b/qtwebengine/src/3rdparty/chromium/tools/perf/core/perfetto_binary_roller/BUILD.gn
+@@ -7,7 +7,6 @@ import("//build/util/generate_wrapper.gni")
+ generate_wrapper("upload_trace_processor") {
+ testonly = true
+ data_deps = [
+- "//third_party/catapult:telemetry_chrome_test_support",
+ "//third_party/perfetto/src/trace_processor:trace_processor_shell",
+ ]
+ data = [
+diff --git a/qtwebengine/src/3rdparty/chromium/tools/polymer/BUILD.gn b/qtwebengine/src/3rdparty/chromium/tools/polymer/BUILD.gn
+index 092066b7c045..d115144cd61f 100644
+--- a/qtwebengine/src/3rdparty/chromium/tools/polymer/BUILD.gn
++++ b/qtwebengine/src/3rdparty/chromium/tools/polymer/BUILD.gn
+@@ -10,6 +10,5 @@ group("polymer_tools_python_unittests") {
+ "//testing/scripts/run_isolated_script_test.py",
+ "//testing/xvfb.py",
+ "//tools/polymer/",
+- "//third_party/catapult/third_party/typ/",
+ ]
+ }
+diff --git a/qtwebengine/src/3rdparty/chromium/v8/tools/BUILD.gn b/qtwebengine/src/3rdparty/chromium/v8/tools/BUILD.gn
+index 2f8197dd3697..83304b6342b8 100644
+--- a/qtwebengine/src/3rdparty/chromium/v8/tools/BUILD.gn
++++ b/qtwebengine/src/3rdparty/chromium/v8/tools/BUILD.gn
+@@ -31,10 +31,6 @@ group("v8_android_test_runner_deps") {
+
+ if (is_android && !build_with_chromium) {
+ data_deps = [ "//build/android:test_runner_py" ]
+- data = [
+- # This is used by android.py, but not included by test_runner_py above.
+- "//third_party/catapult/devil/devil/android/perf/",
+- ]
+ }
+ }
+
+diff --git a/qtwebengine/src/3rdparty/chromium/weblayer/shell/BUILD.gn b/qtwebengine/src/3rdparty/chromium/weblayer/shell/BUILD.gn
+index 66984a7da54f..1815fad623df 100644
+--- a/qtwebengine/src/3rdparty/chromium/weblayer/shell/BUILD.gn
++++ b/qtwebengine/src/3rdparty/chromium/weblayer/shell/BUILD.gn
+@@ -161,7 +161,6 @@ repack("support_pak") {
+ "$root_gen_dir/components/strings/components_locale_settings_en-US.pak",
+ "$root_gen_dir/components/strings/components_strings_en-US.pak",
+ "$root_gen_dir/content/app/resources/content_resources_100_percent.pak",
+- "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
+ "$root_gen_dir/content/content_resources.pak",
+ "$root_gen_dir/content/dev_ui_content_resources.pak",
+ "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
+@@ -182,7 +181,6 @@ repack("support_pak") {
+ "//content:content_resources",
+ "//content:dev_ui_content_resources",
+ "//content/app/resources",
+- "//content/browser/tracing:resources",
+ "//mojo/public/js:resources",
+ "//net:net_resources",
+ "//third_party/blink/public:resources",
+diff --git a/qtwebengine/src/core/qtwebengine_resources.gni b/qtwebengine/src/core/qtwebengine_resources.gni
+index 3bf1a5d572c1..29fd2603cd3c 100644
+--- a/qtwebengine/src/core/qtwebengine_resources.gni
++++ b/qtwebengine/src/core/qtwebengine_resources.gni
+@@ -27,7 +27,6 @@ repack("qtwebengine_repack_resources") {
+ "$root_gen_dir/components/components_resources.pak",
+ "$root_gen_dir/components/dev_ui_components_resources.pak",
+ "$root_gen_dir/content/browser/resources/media/media_internals_resources.pak",
+- "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
+ "$root_gen_dir/content/content_resources.pak",
+ "$root_gen_dir/content/dev_ui_content_resources.pak",
+ "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
+@@ -44,7 +43,6 @@ repack("qtwebengine_repack_resources") {
+ "//components/resources:components_resources_grit",
+ "//components/resources:dev_ui_components_resources_grit",
+ "//content/browser/resources/media:media_internals_resources",
+- "//content/browser/tracing:resources",
+ "//content:content_resources_grit",
+ "//content:dev_ui_content_resources_grit",
+ "//mojo/public/js:resources",
diff --git a/patches/qt-everywhere-src-5.15.2/0001-qtwayland-use-QT_EGL_NO_X11-and-qt_egl_p.h-everywher.patch b/patches/qt-everywhere-opensource-src-5.15.12/0300-qtwayland-use-QT_EGL_NO_X11-and-qt_egl_p.h-everywher.patch
index 218dc7e79..218dc7e79 100644
--- a/patches/qt-everywhere-src-5.15.2/0001-qtwayland-use-QT_EGL_NO_X11-and-qt_egl_p.h-everywher.patch
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0300-qtwayland-use-QT_EGL_NO_X11-and-qt_egl_p.h-everywher.patch
diff --git a/patches/qt-everywhere-src-5.15.2/0002-videonode-egl-use-QT_EGL_NO_X11-and-qt_egl_p.h.patch b/patches/qt-everywhere-opensource-src-5.15.12/0301-videonode-egl-use-QT_EGL_NO_X11-and-qt_egl_p.h.patch
index f17db71aa..f17db71aa 100644
--- a/patches/qt-everywhere-src-5.15.2/0002-videonode-egl-use-QT_EGL_NO_X11-and-qt_egl_p.h.patch
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0301-videonode-egl-use-QT_EGL_NO_X11-and-qt_egl_p.h.patch
diff --git a/patches/qt-everywhere-opensource-src-5.15.12/0302-qtbase-fix-building-with-mesa-22.3.0.patch b/patches/qt-everywhere-opensource-src-5.15.12/0302-qtbase-fix-building-with-mesa-22.3.0.patch
new file mode 100644
index 000000000..b875de868
--- /dev/null
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0302-qtbase-fix-building-with-mesa-22.3.0.patch
@@ -0,0 +1,40 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Sun, 4 Dec 2022 13:18:18 +0100
+Subject: [PATCH] qtbase: fix building with mesa 22.3.0
+
+X11 support is now disabled by default in the EGL headers.
+So explicitly enable it when QT_EGL_NO_X11 is not defined.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ qtbase/src/gui/configure.json | 3 ++-
+ qtbase/src/platformsupport/eglconvenience/qt_egl_p.h | 2 ++
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/qtbase/src/gui/configure.json b/qtbase/src/gui/configure.json
+index 1f08795c57b4..12c95742d2da 100644
+--- a/qtbase/src/gui/configure.json
++++ b/qtbase/src/gui/configure.json
+@@ -834,7 +834,8 @@
+ "// embedded devices, are not intended to be used together with X. EGL support",
+ "// has to be disabled in plugins like xcb in this case since the native display,",
+ "// window and pixmap types will be different than what an X-based platform",
+- "// plugin would expect."
++ "// plugin would expect.",
++ "#define USE_X11"
+ ],
+ "include": [ "EGL/egl.h", "X11/Xlib.h" ],
+ "main": [
+diff --git a/qtbase/src/platformsupport/eglconvenience/qt_egl_p.h b/qtbase/src/platformsupport/eglconvenience/qt_egl_p.h
+index bf37d07fd805..1dff731e7f78 100644
+--- a/qtbase/src/platformsupport/eglconvenience/qt_egl_p.h
++++ b/qtbase/src/platformsupport/eglconvenience/qt_egl_p.h
+@@ -61,6 +61,8 @@
+ # if !defined(Q_OS_INTEGRITY)
+ # define WIN_INTERFACE_CUSTOM // NV
+ # endif // Q_OS_INTEGRITY
++#else // QT_EGL_NO_X11
++# define USE_X11
+ #endif // QT_EGL_NO_X11
+
+ #ifdef QT_EGL_WAYLAND
diff --git a/patches/qt-everywhere-src-5.15.2/0005-ptxdist-qtwebengine-allow-building-with-ptxdist.patch b/patches/qt-everywhere-opensource-src-5.15.12/0400-ptxdist-qtwebengine-allow-building-with-ptxdist.patch
index ce0652dc7..ce0652dc7 100644
--- a/patches/qt-everywhere-src-5.15.2/0005-ptxdist-qtwebengine-allow-building-with-ptxdist.patch
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0400-ptxdist-qtwebengine-allow-building-with-ptxdist.patch
diff --git a/patches/qt-everywhere-src-5.15.2/0006-ptxdist-qtwebengine-let-ninja-use-the-jobserver.patch b/patches/qt-everywhere-opensource-src-5.15.12/0401-ptxdist-qtwebengine-let-ninja-use-the-jobserver.patch
index ebbb05a24..0476d8117 100644
--- a/patches/qt-everywhere-src-5.15.2/0006-ptxdist-qtwebengine-let-ninja-use-the-jobserver.patch
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0401-ptxdist-qtwebengine-let-ninja-use-the-jobserver.patch
@@ -10,15 +10,15 @@ Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/qtwebengine/src/core/gn_run.pro b/qtwebengine/src/core/gn_run.pro
-index 3d6fda80eaa3..73b15dd15731 100644
+index 9f6e64504ef1..b7e082ebd193 100644
--- a/qtwebengine/src/core/gn_run.pro
+++ b/qtwebengine/src/core/gn_run.pro
-@@ -51,7 +51,7 @@ build_pass|!debug_and_release {
- ninjaflags = $$(NINJAFLAGS)
- isEmpty(ninjaflags):!silent: ninjaflags = "-v"
+@@ -75,7 +75,7 @@ build_pass|!debug_and_release {
+ !system($$gn_run) {
+ error("GN run error!")
+ }
+- runninja.commands = $$NINJA $$ninjaflags \$\(NINJAJOBS\) -C $$gn_build_root QtWebEngineCore
++ runninja.commands = +$$NINJA $$ninjaflags \$\(NINJAJOBS\) -C $$gn_build_root QtWebEngineCore
+ }
+ }
-- runninja.commands = $$NINJA $$ninjaflags \$\(NINJAJOBS\) -C $$gn_build_root QtWebEngineCore
-+ runninja.commands = +$$NINJA $$ninjaflags \$\(NINJAJOBS\) -C $$gn_build_root QtWebEngineCore
- QMAKE_EXTRA_TARGETS += runninja
-
- build_pass:build_all: default_target.target = all
diff --git a/patches/qt-everywhere-src-5.15.2/0007-HACK-qtwebengine-workaround-for-too-long-file-names.patch b/patches/qt-everywhere-opensource-src-5.15.12/0402-HACK-qtwebengine-workaround-for-too-long-file-names.patch
index be6f6378d..be6f6378d 100644
--- a/patches/qt-everywhere-src-5.15.2/0007-HACK-qtwebengine-workaround-for-too-long-file-names.patch
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0402-HACK-qtwebengine-workaround-for-too-long-file-names.patch
diff --git a/patches/qt-everywhere-src-5.15.2/0004-eglfs_kms-device-ordering-robustness.patch b/patches/qt-everywhere-opensource-src-5.15.12/0500-eglfs_kms-device-ordering-robustness.patch
index 0532aa660..0532aa660 100644
--- a/patches/qt-everywhere-src-5.15.2/0004-eglfs_kms-device-ordering-robustness.patch
+++ b/patches/qt-everywhere-opensource-src-5.15.12/0500-eglfs_kms-device-ordering-robustness.patch
diff --git a/patches/qt-everywhere-opensource-src-5.15.12/series b/patches/qt-everywhere-opensource-src-5.15.12/series
new file mode 100644
index 000000000..fd3773d21
--- /dev/null
+++ b/patches/qt-everywhere-opensource-src-5.15.12/series
@@ -0,0 +1,35 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+#tag:upstream --start-number 1
+0001-CVE-2023-4863-5.15.patch
+0002-CVE-2023-24607-qtbase-5.15.diff.patch
+0003-CVE-2023-32573-qtsvg-5.15.diff.patch
+0004-CVE-2023-32762-qtbase-5.15.diff.patch
+0005-CVE-2023-32763-qtbase-5.15.diff.patch
+0006-CVE-2023-33285-qtbase-5.15.diff.patch
+0007-CVE-2023-34410-qtbase-5.15.diff.patch
+0008-CVE-2023-37369-qtbase-5.15.diff.patch
+0009-CVE-2023-38197-qtbase-5.15.diff.patch
+0010-CVE-2023-43114-5.15.patch
+0011-xkb-fix-build-with-libxkbcommon-1.6.0-and-later.patch
+#tag:build --start-number 100
+0100-qtwebengine-chromium-skia-Fix-build-with-gcc-12.patch
+0101-qt3d-link-with-latomic-if-necessary.patch
+0102-qt5-qtwebengine-fix-gcc13-errors.patch
+0103-Rename-x11-Present-Pixmap-to-x11-Present-PresentPixm.patch
+#tag:python3 --start-number 200
+0200-replace-Python-2-with-Python-3-in-the-build-system.patch
+0201-update-Chromium-code-for-compatibility-with-Python-3.patch
+0202-fix-build-with-Python-3.11.patch
+0203-remove-dependencies-on-third_party-catapult.patch
+#tag:no-x11 --start-number 300
+0300-qtwayland-use-QT_EGL_NO_X11-and-qt_egl_p.h-everywher.patch
+0301-videonode-egl-use-QT_EGL_NO_X11-and-qt_egl_p.h.patch
+0302-qtbase-fix-building-with-mesa-22.3.0.patch
+#tag:ptxdist --start-number 400
+0400-ptxdist-qtwebengine-allow-building-with-ptxdist.patch
+0401-ptxdist-qtwebengine-let-ninja-use-the-jobserver.patch
+0402-HACK-qtwebengine-workaround-for-too-long-file-names.patch
+#tag:kms --start-number 500
+0500-eglfs_kms-device-ordering-robustness.patch
+# 8476be8c0300ddf6ed6fd7e18b43decb - git-ptx-patches magic
diff --git a/patches/qt-everywhere-src-5.15.2/0008-qtbase-include-limits-where-necessary.patch b/patches/qt-everywhere-src-5.15.2/0008-qtbase-include-limits-where-necessary.patch
deleted file mode 100644
index 33138cc36..000000000
--- a/patches/qt-everywhere-src-5.15.2/0008-qtbase-include-limits-where-necessary.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From: Lucas Stach <l.stach@pengutronix.de>
-Date: Sat, 1 May 2021 00:57:24 +0200
-Subject: [PATCH] qtbase: include limits where necessary
-
-Upstream fixes:
-https://code.qt.io/cgit/qt/qtbase.git/commit/?id=813a928c7c3cf986
-https://code.qt.io/cgit/qt/qtbase.git/commit/?id=9c56d4da2ff631a8
-
-Fixes build with GCC11, which changed internal includes so that
-limits isn't implicitly pulled in some cases.
-
-Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
----
- qtbase/src/corelib/global/qendian.h | 2 ++
- qtbase/src/corelib/global/qfloat16.h | 1 +
- qtbase/src/corelib/text/qbytearraymatcher.h | 2 ++
- qtbase/src/corelib/tools/qoffsetstringarray_p.h | 1 +
- 4 files changed, 6 insertions(+)
-
-diff --git a/qtbase/src/corelib/global/qendian.h b/qtbase/src/corelib/global/qendian.h
-index 257efbbdbecf..a97776c761b7 100644
---- a/qtbase/src/corelib/global/qendian.h
-+++ b/qtbase/src/corelib/global/qendian.h
-@@ -44,6 +44,8 @@
- #include <QtCore/qfloat16.h>
- #include <QtCore/qglobal.h>
-
-+#include <limits>
-+
- // include stdlib.h and hope that it defines __GLIBC__ for glibc-based systems
- #include <stdlib.h>
- #include <string.h>
-diff --git a/qtbase/src/corelib/global/qfloat16.h b/qtbase/src/corelib/global/qfloat16.h
-index c7a9c87af322..5302be072ed8 100644
---- a/qtbase/src/corelib/global/qfloat16.h
-+++ b/qtbase/src/corelib/global/qfloat16.h
-@@ -43,6 +43,7 @@
-
- #include <QtCore/qglobal.h>
- #include <QtCore/qmetatype.h>
-+#include <limits>
- #include <string.h>
-
- #if defined(QT_COMPILER_SUPPORTS_F16C) && defined(__AVX2__) && !defined(__F16C__)
-diff --git a/qtbase/src/corelib/text/qbytearraymatcher.h b/qtbase/src/corelib/text/qbytearraymatcher.h
-index 0eedfc1d2035..f5f9bef7b87c 100644
---- a/qtbase/src/corelib/text/qbytearraymatcher.h
-+++ b/qtbase/src/corelib/text/qbytearraymatcher.h
-@@ -42,6 +42,8 @@
-
- #include <QtCore/qbytearray.h>
-
-+#include <limits>
-+
- QT_BEGIN_NAMESPACE
-
-
-diff --git a/qtbase/src/corelib/tools/qoffsetstringarray_p.h b/qtbase/src/corelib/tools/qoffsetstringarray_p.h
-index 4dd9e9603bc1..8b3fbfe55985 100644
---- a/qtbase/src/corelib/tools/qoffsetstringarray_p.h
-+++ b/qtbase/src/corelib/tools/qoffsetstringarray_p.h
-@@ -53,6 +53,7 @@
-
- #include "private/qglobal_p.h"
-
-+#include <limits>
- #include <tuple>
- #include <array>
-
diff --git a/patches/qt-everywhere-src-5.15.2/series b/patches/qt-everywhere-src-5.15.2/series
deleted file mode 100644
index 226529352..000000000
--- a/patches/qt-everywhere-src-5.15.2/series
+++ /dev/null
@@ -1,11 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-qtwayland-use-QT_EGL_NO_X11-and-qt_egl_p.h-everywher.patch
-0002-videonode-egl-use-QT_EGL_NO_X11-and-qt_egl_p.h.patch
-0003-qt3d-link-with-latomic-if-necessary.patch
-0004-eglfs_kms-device-ordering-robustness.patch
-0005-ptxdist-qtwebengine-allow-building-with-ptxdist.patch
-0006-ptxdist-qtwebengine-let-ninja-use-the-jobserver.patch
-0007-HACK-qtwebengine-workaround-for-too-long-file-names.patch
-0008-qtbase-include-limits-where-necessary.patch
-# 0339a08cc8ad82af4c6542508057d7e7 - git-ptx-patches magic
diff --git a/patches/qt-everywhere-src-6.6.2/0100-qtwebengine-gn-fix-building-with-newer-compilers.patch b/patches/qt-everywhere-src-6.6.2/0100-qtwebengine-gn-fix-building-with-newer-compilers.patch
new file mode 100644
index 000000000..ea988d57e
--- /dev/null
+++ b/patches/qt-everywhere-src-6.6.2/0100-qtwebengine-gn-fix-building-with-newer-compilers.patch
@@ -0,0 +1,47 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Sat, 9 Mar 2024 10:03:58 +0100
+Subject: [PATCH] qtwebengine: gn: fix building with newer compilers
+
+Without this, uint8_t is not defined with newer compilers and building
+fails with:
+
+.../gn/src/base/containers/span.h:393:12: error: ISO C++ forbids declaration of 'type name' with no type [-fpermissive]
+.../gn/src/base/containers/span.h:393:75: error: template argument 1 is invalid
+.../gn/src/base/containers/span.h: In function 'int base::as_bytes(span<T, Extent>)':
+.../gn/src/base/containers/span.h:395:34: error: ISO C++ forbids declaration of 'type name' with no type [-fpermissive]
+.../gn/src/base/containers/span.h:395:34: error: expected '>' before 'uint8_t'
+.../gn/src/base/containers/span.h:395:34: error: expected '(' before 'uint8_t'
+.../gn/src/base/containers/span.h:395:34: error: 'uint8_t' was not declared in this scope
+.../gn/src/base/containers/span.h:395:34: note: 'uint8_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
+.../gn/src/base/containers/span.h:395:42: error: expected primary-expression before '>' token
+.../gn/src/base/containers/span.h:395:69: error: expected ')' before '}' token
+.../gn/src/base/containers/span.h: At global scope:
+.../gn/src/base/containers/span.h:401:6: error: 'uint8_t' was not declared in this scope
+.../gn/src/base/containers/span.h:401:6: note: 'uint8_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
+.../gn/src/base/containers/span.h:401:69: error: template argument 1 is invalid
+.../gn/src/base/containers/span.h: In function 'int base::as_writable_bytes(span<T, Extent>)':
+.../gn/src/base/containers/span.h:403:28: error: 'uint8_t' does not name a type
+.../gn/src/base/containers/span.h:403:28: note: 'uint8_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
+.../gn/src/base/containers/span.h:403:35: error: expected '>' before '*' token
+.../gn/src/base/containers/span.h:403:35: error: expected '(' before '*' token
+.../gn/src/base/containers/span.h:403:36: error: expected primary-expression before '>' token
+.../gn/src/base/containers/span.h:403:63: error: expected ')' before '}' token
+.../gn/src/base/containers/span.h:403:63: error: cannot convert '<brace-enclosed initializer list>' to 'int' in return
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ qtwebengine/src/3rdparty/gn/src/base/containers/span.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/qtwebengine/src/3rdparty/gn/src/base/containers/span.h b/qtwebengine/src/3rdparty/gn/src/base/containers/span.h
+index 4af83b44bcb4..8fc90e189709 100644
+--- a/qtwebengine/src/3rdparty/gn/src/base/containers/span.h
++++ b/qtwebengine/src/3rdparty/gn/src/base/containers/span.h
+@@ -9,6 +9,7 @@
+
+ #include <algorithm>
+ #include <array>
++#include <cstdint>
+ #include <iterator>
+ #include <string_view>
+ #include <type_traits>
diff --git a/patches/qt-everywhere-src-6.6.2/0200-HACK-qtwebengine-workaround-for-too-long-file-names.patch b/patches/qt-everywhere-src-6.6.2/0200-HACK-qtwebengine-workaround-for-too-long-file-names.patch
new file mode 100644
index 000000000..944709e1f
--- /dev/null
+++ b/patches/qt-everywhere-src-6.6.2/0200-HACK-qtwebengine-workaround-for-too-long-file-names.patch
@@ -0,0 +1,39 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Tue, 7 Nov 2017 10:20:09 +0100
+Subject: [PATCH] HACK: qtwebengine: workaround for too long file names
+
+Without this building fails with:
+ninja: error: WriteFile(__third_party_WebKit_Source_bindings_modules_v8_bindings_modules_v8_generated_init_partial__XXX_path_to_the_bsp_platform_XX_build-target_qt-everywhere-opensource-src-5.9.2-build_qtwebengine_src_toolchain_target__rule.rsp): Unable to create file. File name too long
+
+Hack taken from the upstream bugreport:
+https://bugreports.qt.io/browse/QTBUG-59769
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
+---
+ qtwebengine/src/3rdparty/gn/src/gn/ninja_action_target_writer.cc | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/qtwebengine/src/3rdparty/gn/src/gn/ninja_action_target_writer.cc b/qtwebengine/src/3rdparty/gn/src/gn/ninja_action_target_writer.cc
+index 6e1d2abf1dc1..5cb59e841f38 100644
+--- a/qtwebengine/src/3rdparty/gn/src/gn/ninja_action_target_writer.cc
++++ b/qtwebengine/src/3rdparty/gn/src/gn/ninja_action_target_writer.cc
+@@ -125,9 +125,18 @@ std::string NinjaActionTargetWriter::WriteRuleDefinition() {
+ // strictly necessary for regular one-shot actions, but it's easier to
+ // just always define unique_name.
+ std::string rspfile = custom_rule_name;
++
++ //quick workaround if filename length > 255 - ".rsp", just cut the dirs starting from the end
++ //please note ".$unique_name" is not used at the moment
++ int pos = 0;
++ std::string delimiter("_");
++ while (rspfile.length() > 250 && (pos = rspfile.find_last_of(delimiter)) != std::string::npos)
++ rspfile = rspfile.substr(0,pos);
++
+ if (!target_->sources().empty())
+ rspfile += ".$unique_name";
+ rspfile += ".rsp";
++
+ out_ << " rspfile = " << rspfile << std::endl;
+
+ // Response file contents.
diff --git a/patches/qt-everywhere-src-6.6.2/0201-HACK-don-t-complain-about-unnecessary-host-tools.patch b/patches/qt-everywhere-src-6.6.2/0201-HACK-don-t-complain-about-unnecessary-host-tools.patch
new file mode 100644
index 000000000..3d7069104
--- /dev/null
+++ b/patches/qt-everywhere-src-6.6.2/0201-HACK-don-t-complain-about-unnecessary-host-tools.patch
@@ -0,0 +1,59 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Fri, 8 Jul 2022 16:59:49 +0200
+Subject: [PATCH] HACK: don't complain about unnecessary host-tools
+
+The cross build will fail if those tools are not available, but they are
+not actually needed at buildtime.
+
+This avoids building unnecessary stuff in host-qt6.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ qtdeclarative/tools/CMakeLists.txt | 7 +++++--
+ qtquick3d/tools/CMakeLists.txt | 2 ++
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/qtdeclarative/tools/CMakeLists.txt b/qtdeclarative/tools/CMakeLists.txt
+index b86d3251a3ad..2dbbdc1e0caf 100644
+--- a/qtdeclarative/tools/CMakeLists.txt
++++ b/qtdeclarative/tools/CMakeLists.txt
+@@ -38,9 +38,12 @@ if(QT_FEATURE_qml_preview AND QT_FEATURE_thread AND NOT ANDROID AND NOT WASM AND
+ endif()
+ if(QT_BUILD_SHARED_LIBS AND QT_FEATURE_thread AND TARGET Qt::Quick AND NOT ANDROID AND NOT WASM AND NOT IOS AND NOT rtems)
+ add_subdirectory(qmlscene)
+- add_subdirectory(qmltime)
++ if (NOT CMAKE_CROSSCOMPILING)
++ add_subdirectory(qmltime)
++ endif()
+ endif()
+ if(QT_BUILD_SHARED_LIBS
++ AND NOT CMAKE_CROSSCOMPILING
+ AND QT_FEATURE_process
+ AND QT_FEATURE_regularexpression
+ AND QT_FEATURE_thread
+@@ -68,7 +71,7 @@ if(TARGET Qt::Quick
+ AND NOT rtems)
+ add_subdirectory(qmleasing)
+ endif()
+-if(QT_FEATURE_thread AND TARGET Qt::QuickTest AND NOT ANDROID AND NOT WASM AND NOT rtems)
++if(QT_FEATURE_thread AND TARGET Qt::QuickTest AND NOT ANDROID AND NOT WASM AND NOT rtems AND NOT CMAKE_CROSSCOMPILING)
+ add_subdirectory(qmltestrunner)
+ endif()
+ if(QT_FEATURE_private_tests AND QT_FEATURE_thread AND NOT ANDROID AND NOT WASM AND NOT IOS AND NOT rtems)
+diff --git a/qtquick3d/tools/CMakeLists.txt b/qtquick3d/tools/CMakeLists.txt
+index 144af64c1095..6a40010a4330 100644
+--- a/qtquick3d/tools/CMakeLists.txt
++++ b/qtquick3d/tools/CMakeLists.txt
+@@ -1,6 +1,7 @@
+ # Copyright (C) 2022 The Qt Company Ltd.
+ # SPDX-License-Identifier: BSD-3-Clause
+
++if (NOT CMAKE_CROSSCOMPILING)
+ add_subdirectory(balsam)
+ if(TARGET Qt::Widgets)
+ if(TARGET Qt::Concurrent)
+@@ -18,3 +19,4 @@ endif()
+ add_subdirectory(instancer)
+ add_subdirectory(shapegen)
+ add_subdirectory(materialeditor)
++endif()
diff --git a/patches/qt-everywhere-src-6.6.2/0202-ptxdist-qtwebengine-allow-building-with-ptxdist.patch b/patches/qt-everywhere-src-6.6.2/0202-ptxdist-qtwebengine-allow-building-with-ptxdist.patch
new file mode 100644
index 000000000..9136996d6
--- /dev/null
+++ b/patches/qt-everywhere-src-6.6.2/0202-ptxdist-qtwebengine-allow-building-with-ptxdist.patch
@@ -0,0 +1,26 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Fri, 8 Jul 2022 17:01:15 +0200
+Subject: [PATCH] ptxdist: qtwebengine: allow building with ptxdist
+
+The buildsystem detects some hardware features from CXXFLAGS.
+With ptxdist the relevant flags are hidden in the toolchain defaults, so
+inject them via environment variable.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ qtwebengine/cmake/Functions.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/qtwebengine/cmake/Functions.cmake b/qtwebengine/cmake/Functions.cmake
+index 923f78dbdfcb..33aefea614fd 100644
+--- a/qtwebengine/cmake/Functions.cmake
++++ b/qtwebengine/cmake/Functions.cmake
+@@ -725,7 +725,7 @@ function(extract_cflag result cflag)
+ list(APPEND cflags ${CMAKE_CXX_COMPILER_ARG${i}})
+ math(EXPR i "${i} + 1")
+ endwhile()
+- list(APPEND cflags ${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS})
++ list(APPEND cflags ${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS} $ENV{PTX_CMAKE_CFLAGS})
+ string(REPLACE ";" " " cflags "${cflags}")
+ message(DEBUG "Found cflags: ${cflags}")
+ if(cflags MATCHES "-${cflag}=([^ ]+)")
diff --git a/patches/qt-everywhere-src-6.6.2/0203-fix-building-with-QT_FEATURE_qml_devtools-disabled.patch b/patches/qt-everywhere-src-6.6.2/0203-fix-building-with-QT_FEATURE_qml_devtools-disabled.patch
new file mode 100644
index 000000000..7f9925a5c
--- /dev/null
+++ b/patches/qt-everywhere-src-6.6.2/0203-fix-building-with-QT_FEATURE_qml_devtools-disabled.patch
@@ -0,0 +1,29 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Tue, 22 Nov 2022 20:05:57 +0100
+Subject: [PATCH] fix building with QT_FEATURE_qml_devtools disabled
+
+Without this, building fails with:
+
+CMake Error at qtbase/cmake/QtPluginHelpers.cmake:496 (message):
+ The plug-in 'QmlLintQuickPlugin' does not belong to any Qt module.
+Call Stack (most recent call first):
+ qtbase/cmake/QtPluginHelpers.cmake:189 (qt_internal_get_module_for_plugin)
+ qtdeclarative/src/plugins/qmllint/quick/CMakeLists.txt:1 (qt_internal_add_plugin)
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ qtdeclarative/src/plugins/CMakeLists.txt | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/qtdeclarative/src/plugins/CMakeLists.txt b/qtdeclarative/src/plugins/CMakeLists.txt
+index 548ef486f014..54058d431934 100644
+--- a/qtdeclarative/src/plugins/CMakeLists.txt
++++ b/qtdeclarative/src/plugins/CMakeLists.txt
+@@ -10,4 +10,6 @@ if(TARGET Qt::Quick)
+ add_subdirectory(scenegraph)
+ endif()
+
+-add_subdirectory(qmllint)
++if(QT_FEATURE_qml_devtools)
++ add_subdirectory(qmllint)
++endif()
diff --git a/patches/qt-everywhere-src-6.6.2/series b/patches/qt-everywhere-src-6.6.2/series
new file mode 100644
index 000000000..ca0365f45
--- /dev/null
+++ b/patches/qt-everywhere-src-6.6.2/series
@@ -0,0 +1,11 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+#tag:upstream --start-number 1
+#tag:build --start-number 100
+0100-qtwebengine-gn-fix-building-with-newer-compilers.patch
+#tag:ptxdist --start-number 200
+0200-HACK-qtwebengine-workaround-for-too-long-file-names.patch
+0201-HACK-don-t-complain-about-unnecessary-host-tools.patch
+0202-ptxdist-qtwebengine-allow-building-with-ptxdist.patch
+0203-fix-building-with-QT_FEATURE_qml_devtools-disabled.patch
+# e03d0404bad7decacab58c834de428aa - git-ptx-patches magic
diff --git a/patches/qwt-6.0.1/0001-fix-prefix.patch b/patches/qwt-6.0.1/0001-fix-prefix.patch
deleted file mode 100644
index 970114863..000000000
--- a/patches/qwt-6.0.1/0001-fix-prefix.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Wed, 3 Aug 2011 16:09:23 +0200
-Subject: [PATCH] fix prefix
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- qwtconfig.pri | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/qwtconfig.pri b/qwtconfig.pri
-index b0d2110..86265e1 100644
---- a/qwtconfig.pri
-+++ b/qwtconfig.pri
-@@ -19,7 +19,7 @@ QWT_VERSION = $${QWT_VER_MAJ}.$${QWT_VER_MIN}.$${QWT_VER_PAT}
- QWT_INSTALL_PREFIX = $$[QT_INSTALL_PREFIX]
-
- unix {
-- QWT_INSTALL_PREFIX = /usr/local/qwt-$$QWT_VERSION
-+ QWT_INSTALL_PREFIX = /usr
- }
-
- win32 {
diff --git a/patches/qwt-6.0.1/0002-disable-designer-plugins.patch b/patches/qwt-6.0.1/0002-disable-designer-plugins.patch
deleted file mode 100644
index a919b9473..000000000
--- a/patches/qwt-6.0.1/0002-disable-designer-plugins.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Wed, 3 Aug 2011 16:09:42 +0200
-Subject: [PATCH] disable designer plugins
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- qwtconfig.pri | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/qwtconfig.pri b/qwtconfig.pri
-index 86265e1..54f8059 100644
---- a/qwtconfig.pri
-+++ b/qwtconfig.pri
-@@ -98,7 +98,7 @@ QWT_CONFIG += QwtMathML
- # Otherwise you have to build it from the designer directory.
- ######################################################################
-
--QWT_CONFIG += QwtDesigner
-+# QWT_CONFIG += QwtDesigner
-
- ######################################################################
- # If you want to auto build the examples, enable the line below
diff --git a/patches/qwt-6.0.1/0003-disable-svg-by-default.patch b/patches/qwt-6.0.1/0003-disable-svg-by-default.patch
deleted file mode 100644
index 74d42fafb..000000000
--- a/patches/qwt-6.0.1/0003-disable-svg-by-default.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Wed, 3 Aug 2011 15:08:05 +0200
-Subject: [PATCH] disable svg by default
-
-it can be enabled with QWT_CONFIG+=QwtSvg as qmake option.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- qwtconfig.pri | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/qwtconfig.pri b/qwtconfig.pri
-index 54f8059..32117ee 100644
---- a/qwtconfig.pri
-+++ b/qwtconfig.pri
-@@ -79,7 +79,7 @@ QWT_CONFIG += QwtWidgets
- # export a plot to a SVG document
- ######################################################################
-
--QWT_CONFIG += QwtSvg
-+# QWT_CONFIG += QwtSvg
-
- ######################################################################
- # You can use the MathML renderer of the Qt solutions package to
diff --git a/patches/qwt-6.0.1/0004-Disable-the-textengines-to-be-less-depended-on-the-Q.patch b/patches/qwt-6.0.1/0004-Disable-the-textengines-to-be-less-depended-on-the-Q.patch
deleted file mode 100644
index f14d312e7..000000000
--- a/patches/qwt-6.0.1/0004-Disable-the-textengines-to-be-less-depended-on-the-Q.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From: Juergen Beisert <jbe@pengutronix.de>
-Date: Fri, 26 Aug 2011 12:19:33 +0200
-Subject: [PATCH] Disable the textengines to be less depended on the Qt
- config.
-
-If the textengines are built, it ends with an error message:
-
-make[3]: Entering directory `[...]/platform/build-target/qwt-6.0.1/textengines/mathml'
-compiling qwt_mml_document.cpp
-qwt_mml_document.cpp:5:20: fatal error: QDomNode: No such file or directory
-compilation terminated.
-make[3]: *** [obj/qwt_mml_document.o] Error 1
-
-As the PTXdist rule file only installs the library and not the tools, they can
-be disabled.
-
-Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
----
- qwt.pro | 3 +--
- 1 files changed, 1 insertions(+), 2 deletions(-)
-
-diff --git a/qwt.pro b/qwt.pro
-index 4ab4c08..950c182 100644
---- a/qwt.pro
-+++ b/qwt.pro
-@@ -13,8 +13,7 @@ TEMPLATE = subdirs
- CONFIG += ordered
-
- SUBDIRS = \
-- src \
-- textengines
-+ src
-
- contains(QWT_CONFIG, QwtDesigner ) {
- SUBDIRS += designer
diff --git a/patches/qwt-6.0.1/series b/patches/qwt-6.0.1/series
deleted file mode 100644
index cf545f65a..000000000
--- a/patches/qwt-6.0.1/series
+++ /dev/null
@@ -1,7 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-fix-prefix.patch
-0002-disable-designer-plugins.patch
-0003-disable-svg-by-default.patch
-0004-Disable-the-textengines-to-be-less-depended-on-the-Q.patch
-# 8284e163940123ec689fea7298eb4cb1 - git-ptx-patches magic
diff --git a/patches/readline-8.0/0001-rl-attribute.patch b/patches/readline-8.2/0001-rl-attribute.patch
index 7f8f9ec3f..f7b2f150f 100644
--- a/patches/readline-8.0/0001-rl-attribute.patch
+++ b/patches/readline-8.2/0001-rl-attribute.patch
@@ -14,11 +14,11 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/readline.h b/readline.h
-index da782716af2a..5858147b2e8d 100644
+index cac269f0b433..ec50816f8d39 100644
--- a/readline.h
+++ b/readline.h
-@@ -393,7 +393,7 @@ extern int rl_reset_line_state PARAMS((void));
- extern int rl_crlf PARAMS((void));
+@@ -405,7 +405,7 @@ extern void rl_deactivate_mark (void);
+ extern int rl_mark_active_p (void);
#if defined (USE_VARARGS) && defined (PREFER_STDARG)
-extern int rl_message (const char *, ...) __attribute__((__format__ (printf, 1, 2)));
diff --git a/patches/readline-8.0/0002-rl-header.patch b/patches/readline-8.2/0002-rl-header.patch
index 108957d3d..ad5cd2f93 100644
--- a/patches/readline-8.0/0002-rl-header.patch
+++ b/patches/readline-8.2/0002-rl-header.patch
@@ -14,7 +14,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2 files changed, 2 insertions(+)
diff --git a/history.h b/history.h
-index cc3de29a6423..24cd63ce111c 100644
+index 5208f9a463b2..ed4e4f7b24f2 100644
--- a/history.h
+++ b/history.h
@@ -32,6 +32,7 @@ extern "C" {
@@ -26,7 +26,7 @@ index cc3de29a6423..24cd63ce111c 100644
# include <readline/rltypedefs.h>
#endif
diff --git a/readline.h b/readline.h
-index 5858147b2e8d..7d4ecd2346fa 100644
+index ec50816f8d39..fd9bf5d81d5f 100644
--- a/readline.h
+++ b/readline.h
@@ -32,6 +32,7 @@ extern "C" {
diff --git a/patches/readline-8.0/0003-rl-no-rpath.patch b/patches/readline-8.2/0003-rl-no-rpath.patch
index 0f49199e5..f503f3830 100644
--- a/patches/readline-8.0/0003-rl-no-rpath.patch
+++ b/patches/readline-8.2/0003-rl-no-rpath.patch
@@ -13,10 +13,10 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/support/shobj-conf b/support/shobj-conf
-index 7920f1b5cb90..7ac9c9fb311d 100644
+index cd7634dfa624..029123a64c64 100644
--- a/support/shobj-conf
+++ b/support/shobj-conf
-@@ -128,7 +128,7 @@ linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*-gentoo)
+@@ -128,7 +128,7 @@ linux*-*|gnu*-*|k*bsd*-gnu-*|midnightbsd*|freebsd*|dragonfly*)
SHOBJ_LD='${CC}'
SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
diff --git a/patches/readline-8.0/0004-rlfe-history.patch b/patches/readline-8.2/0004-rlfe-history.patch
index 1bd44d33f..1bd44d33f 100644
--- a/patches/readline-8.0/0004-rlfe-history.patch
+++ b/patches/readline-8.2/0004-rlfe-history.patch
diff --git a/patches/readline-8.0/0005-always-link-against-our-termcap-libraries.patch b/patches/readline-8.2/0005-always-link-against-our-termcap-libraries.patch
index 20cac9fe5..afaa67648 100644
--- a/patches/readline-8.0/0005-always-link-against-our-termcap-libraries.patch
+++ b/patches/readline-8.2/0005-always-link-against-our-termcap-libraries.patch
@@ -14,7 +14,7 @@ Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/shlib/Makefile.in b/shlib/Makefile.in
-index f2ec3e46b7ba..3298008abec4 100644
+index d138524ce9ee..ee46f9806332 100644
--- a/shlib/Makefile.in
+++ b/shlib/Makefile.in
@@ -174,11 +174,11 @@ unsupported:
diff --git a/patches/readline-8.0/series b/patches/readline-8.2/series
index 5b5cd2fea..5b5cd2fea 100644
--- a/patches/readline-8.0/series
+++ b/patches/readline-8.2/series
diff --git a/patches/redis-7.2.2/0001-Support-systemd-and-set-a-data-directory.patch b/patches/redis-7.2.2/0001-Support-systemd-and-set-a-data-directory.patch
new file mode 100644
index 000000000..dde2a41a6
--- /dev/null
+++ b/patches/redis-7.2.2/0001-Support-systemd-and-set-a-data-directory.patch
@@ -0,0 +1,30 @@
+From: Clemens Gruber <clemens.gruber@pqgruber.com>
+Date: Mon, 15 Nov 2021 16:21:31 +0100
+Subject: [PATCH] Support systemd and set a data directory
+
+---
+ redis.conf | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/redis.conf b/redis.conf
+index 97f077b0d0aa..abc03980de3e 100644
+--- a/redis.conf
++++ b/redis.conf
+@@ -324,7 +324,7 @@ daemonize no
+ # The default is "no". To run under upstart/systemd, you can simply uncomment
+ # the line below:
+ #
+-# supervised auto
++supervised auto
+
+ # If a pid file is specified, Redis writes it where specified at startup
+ # and removes it at exit.
+@@ -507,7 +507,7 @@ rdb-del-sync-files no
+ # 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/redis/
+
+ ################################# REPLICATION #################################
+
diff --git a/patches/redis-7.2.2/series b/patches/redis-7.2.2/series
new file mode 100644
index 000000000..1a299f8b7
--- /dev/null
+++ b/patches/redis-7.2.2/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-Support-systemd-and-set-a-data-directory.patch
+# a122637ab2789578ffe3ff7cc6f22faf - git-ptx-patches magic
diff --git a/patches/libxslt-1.1.34/autogen.sh b/patches/rng-tools-6.14/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/libxslt-1.1.34/autogen.sh
+++ b/patches/rng-tools-6.14/autogen.sh
diff --git a/patches/rng-tools-6.5/0001-Buildsystem-fix-autotools-setup.patch b/patches/rng-tools-6.5/0001-Buildsystem-fix-autotools-setup.patch
deleted file mode 100644
index 9f03d86a0..000000000
--- a/patches/rng-tools-6.5/0001-Buildsystem-fix-autotools-setup.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From: Juergen Borleis <jbe@pengutronix.de>
-Date: Mon, 15 Oct 2018 12:51:16 +0200
-Subject: [PATCH] Buildsystem: fix autotools setup
-
-Using 'gnu' forces the existence of various files, which are not present
-in this repository ('README' for example).
-
-Signed-off-by: Juergen Borleis <jbe@pengutronix.de>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index b1544d9aefcb..6eaed1071869 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -21,7 +21,7 @@ AC_INIT(rng-tools, 6.5, [Neil Horman <nhorman@tuxdriver.com>])
- AC_PREREQ(2.52)
- AC_CONFIG_SRCDIR([rngd.c])
- AC_CANONICAL_TARGET
--AM_INIT_AUTOMAKE([gnu])
-+AM_INIT_AUTOMAKE([foreign])
- AC_CONFIG_HEADERS([rng-tools-config.h])
- AC_CONFIG_MACRO_DIRS([m4])
-
diff --git a/patches/rng-tools-6.5/autogen.sh b/patches/rng-tools-6.5/autogen.sh
deleted file mode 120000
index 9f8a4cb7d..000000000
--- a/patches/rng-tools-6.5/autogen.sh
+++ /dev/null
@@ -1 +0,0 @@
-../autogen.sh \ No newline at end of file
diff --git a/patches/rng-tools-6.5/series b/patches/rng-tools-6.5/series
deleted file mode 100644
index 48616bf45..000000000
--- a/patches/rng-tools-6.5/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-Buildsystem-fix-autotools-setup.patch
-# 05372db98be6dd445f49fca3ec398a6f - git-ptx-patches magic
diff --git a/patches/samba-4.14.6/0001-HACK-never-use-libunwind.patch b/patches/samba-4.14.6/0001-HACK-never-use-libunwind.patch
new file mode 100644
index 000000000..d3f04556a
--- /dev/null
+++ b/patches/samba-4.14.6/0001-HACK-never-use-libunwind.patch
@@ -0,0 +1,46 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Thu, 15 Jul 2021 13:30:48 +0200
+Subject: [PATCH] HACK: never use libunwind
+
+The check is broken. libunwind is found by pkg-config, but the cflags are
+not used so libunwind.h is not found. This breaks building:
+
+../../lib/util/fault.c: In function 'log_stack_trace':
+../../lib/util/fault.c:228:2: error: unknown type name 'unw_cursor_t'
+../../lib/util/fault.c:229:2: error: unknown type name 'unw_context_t'; did you mean 'ucontext_t'?
+../../lib/util/fault.c:233:2: error: unknown type name 'unw_word_t'
+../../lib/util/fault.c:237:6: warning: implicit declaration of function 'unw_getcontext' [-Wimplicit-function-declaration]
+../../lib/util/fault.c:241:6: warning: implicit declaration of function 'unw_init_local' [-Wimplicit-function-declaration]
+../../lib/util/fault.c:249:6: warning: implicit declaration of function 'unw_get_reg' [-Wimplicit-function-declaration]
+../../lib/util/fault.c:249:27: error: 'UNW_REG_IP' undeclared (first use in this function)
+../../lib/util/fault.c:249:27: note: each undeclared identifier is reported only once for each function it appears in
+../../lib/util/fault.c:250:27: error: 'UNW_REG_SP' undeclared (first use in this function)
+../../lib/util/fault.c:252:14: warning: implicit declaration of function 'unw_get_proc_name'; did you mean 'rep_getprogname'? [-Wimplicit-function-declaration]
+../../lib/util/fault.c:256:12: error: 'UNW_ENOMEM' undeclared (first use in this function); did you mean 'ENOMEM'?
+../../lib/util/fault.c:271:11: warning: implicit declaration of function 'unw_step' [-Wimplicit-function-declaration]
+
+So just don't try to use libunwind at all.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ lib/util/wscript_configure | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/lib/util/wscript_configure b/lib/util/wscript_configure
+index d4450d25b985..389c70d1b3ac 100644
+--- a/lib/util/wscript_configure
++++ b/lib/util/wscript_configure
+@@ -11,13 +11,6 @@ conf.CHECK_FUNCS_IN('backtrace backtrace_symbols', 'execinfo', checklibc=True, h
+ conf.CHECK_HEADERS('execinfo.h')
+
+ conf.SET_TARGET_TYPE('LIBUNWIND', 'EMPTY')
+-if conf.check_cfg(package='libunwind-generic',
+- args='--cflags --libs',
+- msg='Checking for libunwind',
+- uselib_store='LIBUNWIND',
+- mandatory=False):
+- if conf.CHECK_HEADERS('libunwind.h'):
+- conf.SET_TARGET_TYPE('LIBUNWIND', 'SYSLIB')
+
+ conf.CHECK_STRUCTURE_MEMBER('struct statvfs', 'f_frsize', define='HAVE_FRSIZE', headers='sys/statvfs.h')
+
diff --git a/patches/samba-4.14.6/series b/patches/samba-4.14.6/series
new file mode 100644
index 000000000..7955d1a40
--- /dev/null
+++ b/patches/samba-4.14.6/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-HACK-never-use-libunwind.patch
+# 5db8dc2bd592ed4522a243e73a29125b - git-ptx-patches magic
diff --git a/patches/scikit-learn-1.3.1/0001-setup.py-don-t-try-to-import-numpy-scipy-at-build-ti.patch b/patches/scikit-learn-1.3.1/0001-setup.py-don-t-try-to-import-numpy-scipy-at-build-ti.patch
new file mode 100644
index 000000000..3638cdef5
--- /dev/null
+++ b/patches/scikit-learn-1.3.1/0001-setup.py-don-t-try-to-import-numpy-scipy-at-build-ti.patch
@@ -0,0 +1,28 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Mon, 20 Nov 2023 12:58:14 +0100
+Subject: [PATCH] setup.py: don't try to import numpy & scipy at build time
+ when cross-compiling
+
+It will fail because of binary plugins that are built for the target.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ setup.py | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index f78b7ec3545a..2b8a20ae4013 100755
+--- a/setup.py
++++ b/setup.py
+@@ -619,8 +619,9 @@ def setup_package():
+ % (required_version, platform.python_version(), sys.executable)
+ )
+
+- check_package_status("numpy", min_deps.NUMPY_MIN_VERSION)
+- check_package_status("scipy", min_deps.SCIPY_MIN_VERSION)
++ if "PYTHON_CROSSENV" not in os.environ:
++ check_package_status("numpy", min_deps.NUMPY_MIN_VERSION)
++ check_package_status("scipy", min_deps.SCIPY_MIN_VERSION)
+
+ _check_cython_version()
+ metadata["ext_modules"] = configure_extension_modules()
diff --git a/patches/scikit-learn-1.3.1/series b/patches/scikit-learn-1.3.1/series
new file mode 100644
index 000000000..cefec29ec
--- /dev/null
+++ b/patches/scikit-learn-1.3.1/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-setup.py-don-t-try-to-import-numpy-scipy-at-build-ti.patch
+# d83a3e58ead61a9fd1984f1baaed7a71 - git-ptx-patches magic
diff --git a/patches/scipy-1.11.3/0001-BLD-special-fix-dependencies-for-_ellip_harm_2-19168.patch b/patches/scipy-1.11.3/0001-BLD-special-fix-dependencies-for-_ellip_harm_2-19168.patch
new file mode 100644
index 000000000..7bd240437
--- /dev/null
+++ b/patches/scipy-1.11.3/0001-BLD-special-fix-dependencies-for-_ellip_harm_2-19168.patch
@@ -0,0 +1,34 @@
+From: Ben Boeckel <mathstuf@users.noreply.github.com>
+Date: Fri, 1 Sep 2023 08:38:28 +0000
+Subject: [PATCH] BLD: special: fix dependencies for `_ellip_harm_2` (#19168)
+
+Generating the source for `_ellip_harm_2` requires the
+`cython_special.pxd` header to be generated. So add a dependency for
+this.
+
+Closes gh-19167
+
+Co-authored-by: Ralf Gommers <ralf.gommers@gmail.com>
+---
+ scipy/special/meson.build | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/scipy/special/meson.build b/scipy/special/meson.build
+index e7e25aa54e83..900064410381 100644
+--- a/scipy/special/meson.build
++++ b/scipy/special/meson.build
+@@ -318,12 +318,12 @@ cython_special_pxd = custom_target('_dummy_cython_special.pxd',
+ uf_cython_gen = generator(cython,
+ arguments : cython_args,
+ output : '@BASENAME@.c',
+- depends : [_cython_tree, _ufuncs_pxi_pxd_sources])
++ depends : [_cython_tree, _ufuncs_pxi_pxd_sources, cython_special_pxd])
+
+ uf_cython_gen_cpp = generator(cython,
+ arguments : cython_cplus_args,
+ output : '@BASENAME@.cpp',
+- depends : [_cython_tree, _ufuncs_pxi_pxd_sources])
++ depends : [_cython_tree, _ufuncs_pxi_pxd_sources, cython_special_pxd])
+
+ py3.extension_module('_ufuncs',
+ [
diff --git a/patches/scipy-1.11.3/0100-add-option-to-specify-python-binary-for-code-generat.patch b/patches/scipy-1.11.3/0100-add-option-to-specify-python-binary-for-code-generat.patch
new file mode 100644
index 000000000..7fca92e29
--- /dev/null
+++ b/patches/scipy-1.11.3/0100-add-option-to-specify-python-binary-for-code-generat.patch
@@ -0,0 +1,43 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Mon, 20 Nov 2023 12:48:45 +0100
+Subject: [PATCH] add option to specify python binary for code generators
+
+The code generators need Cython and that is only available with
+cross-python3.
+By default find_installation() returns the Python that is used to run
+meson. In PTXdist that is the system Python, so add an option to allow
+another Python to be used.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ meson.build | 7 ++++++-
+ meson_options.txt | 1 +
+ 2 files changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index e2b5672b7cc3..14f2ec3c919b 100644
+--- a/meson.build
++++ b/meson.build
+@@ -20,7 +20,12 @@ project(
+
+ # https://mesonbuild.com/Python-module.html
+ py_mod = import('python')
+-py3 = py_mod.find_installation(pure: false)
++python = get_option('python3')
++if python != ''
++ py3 = py_mod.find_installation(python, pure: false)
++else
++ py3 = py_mod.find_installation(pure: false)
++endif
+ py3_dep = py3.dependency()
+
+ # Emit a warning for 32-bit Python installs on Windows; users are getting
+diff --git a/meson_options.txt b/meson_options.txt
+index 3257cb8a8ff5..ba1dc5a2b5d9 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -10,3 +10,4 @@ option('use-pythran', type: 'boolean', value: true,
+ description: 'If set to false, disables using Pythran (it falls back ' +
+ 'to either pure Python code or Cython code, depending on ' +
+ 'the implementation).')
++option('python3', type: 'string', description: 'Python binary for code generators')
diff --git a/patches/scipy-1.11.3/series b/patches/scipy-1.11.3/series
new file mode 100644
index 000000000..149ab30a9
--- /dev/null
+++ b/patches/scipy-1.11.3/series
@@ -0,0 +1,6 @@
+# generated by git-ptx-patches
+#tag:upstream --start-number 1
+0001-BLD-special-fix-dependencies-for-_ellip_harm_2-19168.patch
+#tag:ptxdist --start-number 100
+0100-add-option-to-specify-python-binary-for-code-generat.patch
+# 820a884dcdeae43ba806fbe91783cd05 - git-ptx-patches magic
diff --git a/patches/screen-4.5.0/0001-don-t-link-against-libelf.patch b/patches/screen-4.5.0/0001-don-t-link-against-libelf.patch
deleted file mode 100644
index 3ca43101f..000000000
--- a/patches/screen-4.5.0/0001-don-t-link-against-libelf.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sun, 27 Mar 2011 15:19:15 +0200
-Subject: [PATCH] don't link against libelf
-
-libelf is not used. It's just some broken configure check.
-Patch from gentoo.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-[osterlad: Update locations for version 4.5.0]
-Signed-off-by: Denis Osterland <Denis.Osterland@diehl.com>
----
- configure.ac | 8 --------
- 1 file changed, 8 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ffe2e372426c..d88af75af665 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -202,14 +202,6 @@ AC_EGREP_CPP(yes,
- #endif
- ], LIBS="$LIBS -lsocket -linet";seqptx=1)
-
--oldlibs="$LIBS"
--LIBS="$LIBS -lelf"
--AC_CHECKING(SVR4)
--AC_TRY_LINK([#include <utmpx.h>
--],,
--[AC_CHECK_HEADER(dwarf.h, AC_DEFINE(SVR4) AC_DEFINE(BUGGYGETLOGIN),
--[AC_CHECK_HEADER(elf.h, AC_DEFINE(SVR4) AC_DEFINE(BUGGYGETLOGIN))])]
--,LIBS="$oldlibs")
- AC_CHECK_HEADERS([stropts.h string.h strings.h])
-
- AC_CHECKING(for Solaris 2.x)
diff --git a/patches/screen-4.5.0/0002-remove-configure-AC_TRY_RUN-tests.patch b/patches/screen-4.5.0/0002-remove-configure-AC_TRY_RUN-tests.patch
deleted file mode 100644
index 4efbde11f..000000000
--- a/patches/screen-4.5.0/0002-remove-configure-AC_TRY_RUN-tests.patch
+++ /dev/null
@@ -1,727 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sun, 27 Mar 2011 15:22:02 +0200
-Subject: [PATCH] remove configure AC_TRY_RUN tests
-
-AC_TRY_RUN fails when cross-compiling.
-
-Not for upstream.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-[osterlad: Update locations for version 4.5.0]
-Signed-off-by: Denis Osterland <Denis.Osterland@diehl.com>
----
- configure.ac | 651 +----------------------------------------------------------
- 1 file changed, 9 insertions(+), 642 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index d88af75af665..155b34c7ecce 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -48,31 +48,6 @@ AC_PROG_GCC_TRADITIONAL
- AC_ISC_POSIX
- AC_USE_SYSTEM_EXTENSIONS
-
--AC_TRY_RUN(main(){exit(0);},,[
--if test $CC != cc ; then
--AC_NOTE(Your $CC failed - restarting with CC=cc)
--AC_NOTE()
--CC=cc
--export CC
--exec $0 $configure_args
--fi
--])
--
--AC_TRY_RUN(main(){exit(0);},,
--exec 5>&2
--eval $ac_link
--AC_NOTE(CC=$CC; CFLAGS=$CFLAGS; LIBS=$LIBS;)
--AC_NOTE($ac_compile)
--AC_MSG_ERROR(Can't run the compiler - sorry))
--
--AC_TRY_RUN([
--main()
--{
-- int __something_strange_();
-- __something_strange_(0);
--}
--],AC_MSG_ERROR(Your compiler does not set the exit status - sorry))
--
- AC_PROG_AWK
-
- AC_PROG_INSTALL
-@@ -295,353 +270,6 @@ AC_CHECKING(select with $LIBS)
- AC_TRY_LINK(,[select(0, 0, 0, 0, 0);],,
- AC_MSG_ERROR(!!! no select - no screen))
- )
--dnl
--dnl **** FIFO tests ****
--dnl
--
--AC_CHECKING(fifos)
--AC_TRY_RUN([
--/* For select - According to POSIX 1003.1-2001 */
--#include <sys/select.h>
--
--/* For select - According to earlier standards */
--#include <sys/time.h>
--#include <sys/types.h>
--#include <unistd.h>
--
--#include <sys/stat.h>
--#include <fcntl.h>
--
--#ifndef O_NONBLOCK
--#define O_NONBLOCK O_NDELAY
--#endif
--#ifndef S_IFIFO
--#define S_IFIFO 0010000
--#endif
--
--char *fin = "/tmp/conftest$$";
--
--main()
--{
-- struct stat stb;
-- fd_set f;
--
-- (void)alarm(5);
-- unlink(fin);
--#ifdef POSIX
-- if (mkfifo(fin, 0777))
--#else
-- if (mknod(fin, S_IFIFO|0777, 0))
--#endif
-- exit(1);
-- if (stat(fin, &stb) || (stb.st_mode & S_IFIFO) != S_IFIFO)
-- exit(1);
-- close(0);
--#ifdef __386BSD__
-- /*
-- * The next test fails under 386BSD, but screen works using fifos.
-- * Fifos in O_RDWR mode are only used for the BROKEN_PIPE case and for
-- * the select() configuration test.
-- */
-- exit(0);
--#endif
-- if (open(fin, O_RDONLY | O_NONBLOCK))
-- exit(1);
-- if (fork() == 0)
-- {
-- close(0);
-- if (open(fin, O_WRONLY | O_NONBLOCK))
-- exit(1);
-- close(0);
-- if (open(fin, O_WRONLY | O_NONBLOCK))
-- exit(1);
-- if (write(0, "TEST", 4) == -1)
-- exit(1);
-- exit(0);
-- }
-- FD_SET(0, &f);
-- if (select(1, &f, 0, 0, 0) == -1)
-- exit(1);
-- exit(0);
--}
--], AC_NOTE(- your fifos are usable) fifo=1,
--AC_NOTE(- your fifos are not usable))
--rm -f /tmp/conftest*
--
--if test -n "$fifo"; then
--AC_CHECKING(for broken fifo implementation)
--AC_TRY_RUN([
--/* For select - According to POSIX 1003.1-2001 */
--#include <sys/select.h>
--
--/* For select - According to earlier standards */
--#include <sys/time.h>
--#include <sys/types.h>
--#include <unistd.h>
--
--#include <sys/stat.h>
--#include <fcntl.h>
--
--#ifndef O_NONBLOCK
--#define O_NONBLOCK O_NDELAY
--#endif
--#ifndef S_IFIFO
--#define S_IFIFO 0010000
--#endif
--
--char *fin = "/tmp/conftest$$";
--
--main()
--{
-- struct timeval tv;
-- fd_set f;
--
--#ifdef POSIX
-- if (mkfifo(fin, 0600))
--#else
-- if (mknod(fin, S_IFIFO|0600, 0))
--#endif
-- exit(1);
-- close(0);
-- if (open(fin, O_RDONLY|O_NONBLOCK))
-- exit(1);
-- FD_SET(0, &f);
-- tv.tv_sec = 1;
-- tv.tv_usec = 0;
-- if (select(1, &f, 0, 0, &tv))
-- exit(1);
-- exit(0);
--}
--], AC_NOTE(- your implementation is ok),
--AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1)
--rm -f /tmp/conftest*
--fi
--
--dnl
--dnl **** SOCKET tests ****
--dnl
--dnl may need LIBS="$LIBS -lsocket" here
--dnl
--
--AC_CHECKING(sockets)
--AC_TRY_RUN([
--/* For select - According to POSIX 1003.1-2001 */
--#include <sys/select.h>
--
--/* For select - According to earlier standards */
--#include <sys/time.h>
--#include <sys/types.h>
--#include <unistd.h>
--
--#include <sys/stat.h>
--#include <fcntl.h>
--#include <sys/socket.h>
--#include <sys/un.h>
--
--char *son = "/tmp/conftest$$";
--
--main()
--{
-- int s1, s2, l;
-- struct sockaddr_un a;
-- fd_set f;
--
-- (void)alarm(5);
-- if ((s1 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
-- exit(1);
-- a.sun_family = AF_UNIX;
-- strcpy(a.sun_path, son);
-- (void) unlink(son);
-- if (bind(s1, (struct sockaddr *) &a, strlen(son)+2) == -1)
-- exit(1);
-- if (listen(s1, 2))
-- exit(1);
-- if (fork() == 0)
-- {
-- if ((s2 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
-- kill(getppid(), 3);
-- (void)connect(s2, (struct sockaddr *)&a, strlen(son) + 2);
-- if (write(s2, "HELLO", 5) == -1)
-- kill(getppid(), 3);
-- exit(0);
-- }
-- l = sizeof(a);
-- close(0);
-- if (accept(s1, &a, &l))
-- exit(1);
-- FD_SET(0, &f);
-- if (select(1, &f, 0, 0, 0) == -1)
-- exit(1);
-- exit(0);
--}
--], AC_NOTE(- your sockets are usable) sock=1,
--AC_NOTE(- your sockets are not usable))
--rm -f /tmp/conftest*
--
--if test -n "$sock"; then
--AC_CHECKING(socket implementation)
--AC_TRY_RUN([
--/* For select - According to POSIX 1003.1-2001 */
--#include <sys/select.h>
--
--/* For select - According to earlier standards */
--#include <sys/time.h>
--#include <sys/types.h>
--#include <unistd.h>
--
--#include <sys/stat.h>
--#include <sys/socket.h>
--#include <sys/un.h>
--
--char *son = "/tmp/conftest$$";
--
--main()
--{
-- int s;
-- struct stat stb;
-- struct sockaddr_un a;
-- if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
-- exit(0);
-- a.sun_family = AF_UNIX;
-- strcpy(a.sun_path, son);
-- (void) unlink(son);
-- if (bind(s, (struct sockaddr *) &a, strlen(son)+2) == -1)
-- exit(0);
-- if (stat(son, &stb))
-- exit(1);
-- close(s);
-- exit(0);
--}
--],AC_NOTE(- you are normal),
--AC_NOTE(- unix domain sockets are not kept in the filesystem)
--AC_DEFINE(SOCK_NOT_IN_FS) socknofs=1)
--rm -f /tmp/conftest*
--fi
--
--
--dnl
--dnl **** choose sockets or fifos ****
--dnl
--if test -n "$fifo"; then
-- if test -n "$sock"; then
-- if test -n "$nore"; then
-- AC_NOTE(- hmmm... better take the fifos)
-- AC_DEFINE(NAMEDPIPE)
-- elif test -n "$fifobr"; then
-- AC_NOTE(- as your fifos are broken lets use the sockets.)
-- else
-- AC_NOTE(- both sockets and fifos usable. let's take sockets.)
-- fi
-- else
-- AC_NOTE(- using named pipes, of course)
-- AC_DEFINE(NAMEDPIPE)
-- fi
--elif test -n "$sock"; then
-- AC_NOTE(- using unix-domain sockets, of course)
--else
-- AC_MSG_ERROR(you have neither usable sockets nor usable pipes -> no screen)
--fi
--
--dnl
--dnl **** check the select implementation ****
--dnl
--
--AC_CHECKING(select return value)
--AC_TRY_RUN([
--/* For select - According to POSIX 1003.1-2001 */
--#include <sys/select.h>
--
--/* For select - According to earlier standards */
--#include <sys/time.h>
--#include <sys/types.h>
--#include <unistd.h>
--
--#include <sys/stat.h>
--#include <fcntl.h>
--
--char *nam = "/tmp/conftest$$";
--
--#ifdef NAMEDPIPE
--
--#ifndef O_NONBLOCK
--#define O_NONBLOCK O_NDELAY
--#endif
--#ifndef S_IFIFO
--#define S_IFIFO 0010000
--#endif
--
--
--main()
--{
-- fd_set f;
--
--#ifdef __FreeBSD__
--/* From Andrew A. Chernov (ache@astral.msk.su):
-- * opening RDWR fifo fails in BSD 4.4, but select return values are
-- * right.
-- */
-- exit(0);
--#endif
-- (void)alarm(5);
--#ifdef POSIX
-- if (mkfifo(nam, 0777))
--#else
-- if (mknod(nam, S_IFIFO|0777, 0))
--#endif
-- exit(1);
-- close(0);
-- if (open(nam, O_RDWR | O_NONBLOCK))
-- exit(1);
-- if (write(0, "TEST", 4) == -1)
-- exit(1);
--
--#else
--
--#include <sys/types.h>
--#include <sys/socket.h>
--#include <sys/un.h>
--
--main()
--{
-- int s1, s2, l;
-- struct sockaddr_un a;
-- fd_set f;
--
-- (void)alarm(5);
-- if ((s1 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
-- exit(1);
-- a.sun_family = AF_UNIX;
-- strcpy(a.sun_path, nam);
-- (void) unlink(nam);
-- if (bind(s1, (struct sockaddr *) &a, strlen(nam)+2) == -1)
-- exit(1);
-- if (listen(s1, 2))
-- exit(1);
-- if (fork() == 0)
-- {
-- if ((s2 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
-- kill(getppid(), 3);
-- (void)connect(s2, (struct sockaddr *)&a, strlen(nam) + 2);
-- if (write(s2, "HELLO", 5) == -1)
-- kill(getppid(), 3);
-- exit(0);
-- }
-- l = sizeof(a);
-- close(0);
-- if (accept(s1, (struct sockaddr *)&a, &l))
-- exit(1);
--#endif
--
--
-- FD_SET(0, &f);
-- if (select(1, &f, 0, 0, 0) == -1)
-- exit(1);
-- if (select(1, &f, &f, 0, 0) != 2)
-- exit(1);
-- exit(0);
--}
--],AC_NOTE(- select is ok),
--AC_NOTE(- select can't count) AC_DEFINE(SELECT_BROKEN))
-
- dnl
- dnl **** termcap or terminfo ****
-@@ -678,12 +306,8 @@ AC_CHECKING(libtinfo)
- AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
- AC_MSG_ERROR(!!! no tgetent - no screen)))))))))
-
--AC_TRY_RUN([
--main()
--{
-- exit(strcmp(tgoto("%p1%d", 0, 1), "1") ? 0 : 1);
--}], AC_NOTE(- you use the termcap database),
--AC_NOTE(- you use the terminfo database) AC_DEFINE(TERMINFO))
-+AC_DEFINE(TERMINFO))
-+
- AC_CHECKING(ospeed)
- AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED))
-
-@@ -734,95 +358,6 @@ AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
- AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
- fi
-
--dnl **** pty mode/group handling ****
--dnl
--dnl support provided by Luke Mewburn <lm@rmit.edu.au>, 931222
--AC_ARG_WITH(pty-mode, [ --with-pty-mode=mode default mode for ptys], [ ptymode="${withval}" ])
--AC_ARG_WITH(pty-group, [ --with-pty-group=group default group for ptys], [ ptygrp="${withval}" ])
--test -n "$ptymode" || ptymode=0620
--if test -n "$ptygrp" ; then
--AC_DEFINE_UNQUOTED(PTYMODE, $ptymode)
--AC_DEFINE_UNQUOTED(PTYGROUP,$ptygrp)
--else
--
--AC_CHECKING(default tty permissions/group)
--rm -f conftest_grp
--AC_TRY_RUN([
--#include <sys/types.h>
--#include <sys/stat.h>
--#include <stdio.h>
--main()
--{
-- struct stat sb;
-- char *x,*ttyname();
-- int om, m;
-- FILE *fp;
--
-- if (!(x = ttyname(0))) exit(1);
-- if (stat(x, &sb)) exit(1);
-- om = sb.st_mode;
-- if (om & 002) exit(0);
-- m = system("mesg y");
-- if (m == -1 || m == 127) exit(1);
-- if (stat(x, &sb)) exit(1);
-- m = sb.st_mode;
-- if (chmod(x, om)) exit(1);
-- if (m & 002) exit(0);
-- if (sb.st_gid == getgid()) exit(1);
-- if (!(fp=fopen("conftest_grp", "w")))
-- exit(1);
-- fprintf(fp, "%d\n", sb.st_gid);
-- fclose(fp);
-- exit(0);
--}
--],[
-- if test -f conftest_grp; then
-- ptygrp=`cat conftest_grp`
-- AC_NOTE([- pty mode: $ptymode, group: $ptygrp])
-- AC_DEFINE_UNQUOTED(PTYMODE, $ptymode)
-- AC_DEFINE_UNQUOTED(PTYGROUP,$ptygrp)
-- else
-- AC_NOTE(- ptys are world accessable)
-- fi
--],[
-- WRITEPATH=''
-- XTERMPATH=''
-- AC_PATH_PROG(WRITEPATH, write)
-- AC_PATH_PROG(XTERMPATH, xterm)
-- found=
-- if test -n "$WRITEPATH$XTERMPATH"; then
-- findfollow=
-- lsfollow=
-- found=`find $WRITEPATH $XTERMPATH -follow -print 2>/dev/null`
-- if test -n "$found"; then
-- findfollow=-follow
-- lsfollow=L
-- fi
-- if test -n "$XTERMPATH"; then
-- ptygrpn=`ls -l$lsfollow $XTERMPATH | sed -n -e 1p | $AWK '{print $4}'`
-- if test tty != "$ptygrpn"; then
-- XTERMPATH=
-- fi
-- fi
-- fi
-- if test -n "$WRITEPATH$XTERMPATH"; then
-- found=`find $WRITEPATH $XTERMPATH $findfollow -perm -2000 -print`
-- if test -n "$found"; then
-- ptygrp=`ls -ln$lsfollow $found | sed -n -e 1p | $AWK '{print $4}'`
-- AC_NOTE([- pty mode: $ptymode, group: $ptygrp])
-- AC_DEFINE_UNQUOTED(PTYMODE, $ptymode)
-- AC_DEFINE_UNQUOTED(PTYGROUP,$ptygrp)
-- else
-- AC_NOTE(- ptys are world accessable)
-- fi
-- else
-- AC_NOTE(- can't determine - assume ptys are world accessable)
-- fi
-- ]
--)
--rm -f conftest_grp
--fi
--
- dnl
- dnl **** utmp handling ****
- dnl
-@@ -895,101 +430,6 @@ AC_DEFINE(LOADAV_GETLOADAVG) load=1, LIBS="$olibs")
- fi
- )
-
--if test -z "$load" ; then
--AC_EGREP_CPP(yes,
--[#if defined(NeXT) || defined(apollo) || defined(linux)
-- yes;
--#endif
--], load=1)
--fi
--if test -z "$load" ; then
--AC_CHECKING(for kernelfile)
--for core in /unix /vmunix /dynix /hp-ux /xelos /dev/ksyms /kernel/unix /kernel/genunix /unicos /mach /netbsd /386bsd /dgux /bsd /stand/vmunix; do
-- if test -f $core || test -c $core; then
-- break
-- fi
--done
--if test ! -f $core && test ! -c $core ; then
-- AC_NOTE(- no kernelfile found)
--else
-- AC_NOTE(- using kernelfile '$core')
-- if test -r $core ; then
-- AC_DEFINE_UNQUOTED(LOADAV_UNIX,"$core")
-- AC_CHECK_HEADER(nlist.h,
-- [AC_DEFINE(NLIST_STRUCT)
-- AC_CHECKING(n_un in struct nlist)
-- AC_TRY_COMPILE([#include <nlist.h>],
-- [struct nlist n; n.n_un.n_name = 0;],
-- AC_DEFINE(NLIST_NAME_UNION))])
--
-- AC_CHECKING(for nlist declaration)
-- AC_EGREP_CPP([nlist(( | )( | )*.*\(|\()],[
--#ifdef NLIST_STRUCT
--# include <nlist.h>
--#else
--# include <a.out.h>
--#endif
--],AC_DEFINE(NLIST_DECLARED))
--
-- AC_CHECKING(for avenrun symbol)
-- nlist64=
-- for av in avenrun _avenrun _Loadavg avenrun _avenrun _Loadavg; do
-- AC_TRY_RUN([
--#include <sys/types.h>
--#ifdef NLIST_STRUCT
--#include <nlist.h>
--#else
--#include <a.out.h>
--#endif
--
--$nlist64
--
--struct nlist nl[2];
--
--main()
--{
--#if !defined(_AUX_SOURCE) && !defined(AUX)
--# ifdef NLIST_NAME_UNION
-- nl[0].n_un.n_name = "$av";
--# else
-- nl[0].n_name = "$av";
--# endif
--#else
-- strncpy(nl[0].n_name, "$av", sizeof(nl[0].n_name));
--#endif
-- nlist(LOADAV_UNIX, nl);
-- if (nl[0].n_value == 0)
-- exit(1);
-- exit(0);
--}
-- ],avensym=$av;break)
-- if test "$av" = _Loadavg; then
-- nlist64='#define nlist nlist64'
-- fi
-- done
-- if test -z "$avensym" ; then
-- AC_NOTE(- no avenrun symbol found)
-- else
-- AC_NOTE(- using avenrun symbol '$avensym')
-- AC_DEFINE_UNQUOTED(LOADAV_AVENRUN,"$avensym")
-- if test -n "$nlist64"; then
-- AC_NOTE(- used nlist64 to find it)
-- AC_DEFINE(LOADAV_USE_NLIST64)
-- fi
-- load=1
-- fi
-- else
-- AC_NOTE( Can't configure the load average display feature)
-- AC_NOTE( because $core is not readable by you.)
-- AC_NOTE( To configure the load average display feature,)
-- AC_NOTE( re-run configure as root if possible.)
-- AC_NOTE( If you are not the system administrator then disregard)
-- AC_NOTE( this warning. You can still use screen without)
-- AC_NOTE( the load average display feature.)
-- fi
--fi
--fi
--
- AC_PROGRAM_SOURCE([
- #include <sys/types.h>
- #include <sys/param.h>
-@@ -1061,41 +501,8 @@ sigset(0, (void (*)())0);
- sigset(0, (int (*)())0);
- #endif
- ], AC_DEFINE(USESIGSET))
--AC_CHECKING(signal implementation)
--AC_TRY_RUN([
--#include <sys/types.h>
--#include <signal.h>
--
--#ifndef SIGCLD
--#define SIGCLD SIGCHLD
--#endif
--#ifdef USESIGSET
--#define signal sigset
--#endif
--
--int got;
-
--#ifdef SIGVOID
--void
--#endif
--hand()
--{
-- got++;
--}
--
--main()
--{
-- /* on hpux we use sigvec to get bsd signals */
--#ifdef __hpux
-- (void)signal(SIGCLD, hand);
-- kill(getpid(), SIGCLD);
-- kill(getpid(), SIGCLD);
-- if (got < 2)
-- exit(1);
--#endif
-- exit(0);
--}
--],,AC_DEFINE(SYSVSIGS))
-+AC_DEFINE(SYSVSIGS)
-
- fi
-
-@@ -1163,50 +570,12 @@ AC_CHECKING(fdwalk)
- AC_TRY_LINK([#include <stdlib.h>], [fdwalk(NULL, NULL);],AC_DEFINE(HAVE_FDWALK))
-
- AC_CHECKING(whether memcpy/memmove/bcopy handles overlapping arguments)
--AC_TRY_RUN([
--main() {
-- char buf[10];
-- strcpy(buf, "abcdefghi");
-- bcopy(buf, buf + 2, 3);
-- if (strncmp(buf, "ababcf", 6))
-- exit(1);
-- strcpy(buf, "abcdefghi");
-- bcopy(buf + 2, buf, 3);
-- if (strncmp(buf, "cdedef", 6))
-- exit(1);
-- exit(0); /* libc version works properly. */
--}], AC_DEFINE(USEBCOPY))
--
--AC_TRY_RUN([
--#define bcopy(s,d,l) memmove(d,s,l)
--main() {
-- char buf[10];
-- strcpy(buf, "abcdefghi");
-- bcopy(buf, buf + 2, 3);
-- if (strncmp(buf, "ababcf", 6))
-- exit(1);
-- strcpy(buf, "abcdefghi");
-- bcopy(buf + 2, buf, 3);
-- if (strncmp(buf, "cdedef", 6))
-- exit(1);
-- exit(0); /* libc version works properly. */
--}], AC_DEFINE(USEMEMMOVE))
--
--
--AC_TRY_RUN([
--#define bcopy(s,d,l) memcpy(d,s,l)
--main() {
-- char buf[10];
-- strcpy(buf, "abcdefghi");
-- bcopy(buf, buf + 2, 3);
-- if (strncmp(buf, "ababcf", 6))
-- exit(1);
-- strcpy(buf, "abcdefghi");
-- bcopy(buf + 2, buf, 3);
-- if (strncmp(buf, "cdedef", 6))
-- exit(1);
-- exit(0); /* libc version works properly. */
--}], AC_DEFINE(USEMEMCPY))
-+AC_DEFINE(USEBCOPY)
-+
-+AC_DEFINE(USEMEMMOVE)
-+
-+
-+AC_DEFINE(USEMEMCPY)
-
- AC_SYS_LONG_FILE_NAMES
-
-@@ -1292,8 +661,6 @@ fi
- dnl Ptx bug workaround -- insert -lc after -ltermcap
- test -n "$seqptx" && LIBS="-ltermcap -lc -lsocket -linet -lnsl -lsec -lseq"
-
--AC_TRY_RUN(main(){exit(0);},,AC_MSG_ERROR(Can't run the compiler - internal error. Sorry.))
--
- ETCSCREENRC=
- AC_MSG_CHECKING(for the global screenrc file)
- AC_ARG_WITH(sys-screenrc, [ --with-sys-screenrc=path to the global screenrc file], [ ETCSCREENRC="${withval}" ])
diff --git a/patches/screen-4.5.0/0003-autoconf-cleanup.patch b/patches/screen-4.5.0/0003-autoconf-cleanup.patch
deleted file mode 100644
index fda6c9423..000000000
--- a/patches/screen-4.5.0/0003-autoconf-cleanup.patch
+++ /dev/null
@@ -1,397 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sun, 27 Mar 2011 15:23:55 +0200
-Subject: [PATCH] autoconf cleanup
-
-update to latest autoconf syntax
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-[osterlad: update locations for version 4.5.0]
-Signed-off-by: Denis Osterland <Denis.Osterland@diehl.com>
----
- configure.ac | 116 +++++++++++++++++++++++++++++------------------------------
- 1 file changed, 58 insertions(+), 58 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 155b34c7ecce..b87a9a44eb20 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -77,7 +77,7 @@ AC_ARG_ENABLE(socket-dir,
- esac
- ])
- AC_MSG_RESULT(${SOCKDIR})
-- AC_DEFINE_UNQUOTED(SOCKDIR, $SOCKDIR)
-+ AC_DEFINE_UNQUOTED(SOCKDIR, $SOCKDIR,[SOCKDIR])
- ]
- )
-
-@@ -86,18 +86,18 @@ dnl
- dnl **** special unix variants ****
- dnl
- if test -n "$ISC"; then
-- AC_DEFINE(ISC) LIBS="$LIBS -linet"
-+ AC_DEFINE([ISC],[1],[ISC]) LIBS="$LIBS -linet"
- fi
-
- dnl AC_CHECKING(for OSF1)
- dnl if test -f /bin/uname ; then
- dnl if test `/bin/uname` = OSF1 || test -f /osf_boot; then
--dnl AC_DEFINE(OSF1) # this disables MIPS again....
-+dnl AC_DEFINE([OSF1],[1],[OSF1]) # this disables MIPS again....
- dnl fi
- dnl fi
-
- if test -f /sysV68 ; then
--AC_DEFINE(sysV68)
-+AC_DEFINE([sysV68],[1],[sysV68])
- fi
-
- AC_CHECKING(for MIPS)
-@@ -110,7 +110,7 @@ AC_TRY_LINK(,,,LIBS="$oldlibs")
- dnl
- dnl
- if test -r /dev/ptc; then
--AC_DEFINE(MIPS)
-+AC_DEFINE([MIPS],[1],[MIPS])
- AC_CHECKING(wait3)
- AC_TRY_LINK(,[wait3();], ,
- AC_CHECKING(wait2)
-@@ -119,7 +119,7 @@ dnl John Rouillard (rouilj@sni-usa.com):
- dnl need -I/usr/include/bsd in RISCOS otherwise sockets are broken, no
- dnl job control etc.
- dnl Detect RISCOS if wait2 is present, but not wait3.
--AC_DEFINE(USE_WAIT2) LIBS="$LIBS -lbsd" ; CC="$CC -I/usr/include/bsd"
-+AC_DEFINE([USE_WAIT2],[1],[USE_WAIT2]) LIBS="$LIBS -lbsd" ; CC="$CC -I/usr/include/bsd"
- ))
- fi
- fi
-@@ -136,7 +136,7 @@ if test -f /usr/lib/libpyr.a ; then
- oldlibs="$LIBS"
- LIBS="$LIBS -lpyr"
- AC_CHECKING(Pyramid OSX)
--AC_TRY_LINK(,[open_controlling_pty("")], AC_DEFINE(OSX), LIBS="$oldlibs")
-+AC_TRY_LINK(,[open_controlling_pty("")], AC_DEFINE([OSX],[1],[OSX]), LIBS="$oldlibs")
- fi
-
- dnl ghazi@caip.rutgers.edu (Kaveh R. Ghazi):
-@@ -161,14 +161,14 @@ main () {
- #ifdef _POSIX_VERSION
- yes;
- #endif
--], AC_NOTE(- you have a POSIX system) AC_DEFINE(POSIX) posix=1)
-+], AC_NOTE(- you have a POSIX system) AC_DEFINE([POSIX],[1],[POSIX]) posix=1)
- fi
-
- AC_CHECKING(for System V)
- AC_TRY_COMPILE(
- [#include <sys/types.h>
- #include <signal.h>
--#include <fcntl.h>], [int x = SIGCHLD | FNDELAY;], , AC_DEFINE(SYSV))
-+#include <fcntl.h>], [int x = SIGCHLD | FNDELAY;], , AC_DEFINE([SYSV],[1],[SYSV]))
-
- AC_CHECKING(for sequent/ptx)
- AC_EGREP_CPP(yes,
-@@ -193,16 +193,16 @@ dnl (currently not used)
- dnl
- dnl AC_CHECKING(for pid_t)
- dnl AC_EGREP_CPP(pid_t,[#include <sys/types.h>
--dnl ],AC_DEFINE(PID_T_DEFINED))
-+dnl ],AC_DEFINE([PID_T_DEFINED],[1],[PID_T_DEFINED]))
- dnl
- dnl AC_CHECKING(for sig_t)
- dnl AC_EGREP_CPP(sig_t,[#include <sys/types.h>
- dnl #include <signal.h>
--dnl ],AC_DEFINE(SIG_T_DEFINED))
-+dnl ],AC_DEFINE([SIG_T_DEFINED],[1],[SIG_T_DEFINED]))
- dnl
- dnl AC_CHECKING(for uid_t)
- dnl AC_EGREP_CPP(uid_t,[#include <sys/types.h>
--dnl ],AC_DEFINE(UID_T_DEFINED))
-+dnl ],AC_DEFINE([UID_T_DEFINED],[1],[UID_T_DEFINED]))
- dnl
-
- dnl
-@@ -224,7 +224,7 @@ setpgrp();
- int y = TIOCNOTTY;
- #endif
- #endif
--], AC_NOTE(- you have jobcontrol) AC_DEFINE(BSDJOBS), AC_NOTE(- you don't have jobcontrol))
-+], AC_NOTE(- you have jobcontrol) AC_DEFINE([BSDJOBS],[1],[BSDJOBS]), AC_NOTE(- you don't have jobcontrol))
-
- dnl
- dnl **** setresuid(), setreuid(), seteuid() ****
-@@ -236,7 +236,7 @@ setresuid(0, 0, 0);
- AC_CHECKING(setreuid)
- AC_TRY_LINK(,[
- setreuid(0, 0);
--], AC_DEFINE(HAVE_SETREUID))
-+], AC_DEFINE(HAVE_SETREUID,[1],[HAVE_SETREUID]))
- dnl
- dnl seteuid() check:
- dnl linux seteuid was broken before V1.1.11
-@@ -250,7 +250,7 @@ seteuid_is_broken(0);
- #else
- seteuid(0);
- #endif
--], AC_DEFINE(HAVE_SETEUID))
-+], AC_DEFINE([HAVE_SETEUID],[1],[HAVE_SETEUID]))
-
- dnl execvpe
- AC_CHECKING(execvpe)
-@@ -306,23 +306,23 @@ AC_CHECKING(libtinfo)
- AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
- AC_MSG_ERROR(!!! no tgetent - no screen)))))))))
-
--AC_DEFINE(TERMINFO))
-+AC_DEFINE([TERMINFO],[1],[TERMINFO])
-
- AC_CHECKING(ospeed)
--AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED))
-+AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE([NEED_OSPEED],[1],[NEED_OSPEED]))
-
- dnl
- dnl **** PTY specific things ****
- dnl
- AC_CHECKING(for /dev/ptc)
- if test -r /dev/ptc; then
--AC_DEFINE(HAVE_DEV_PTC)
-+AC_DEFINE([HAVE_DEV_PTC],[1],[HAVE_DEV_PTC])
- fi
-
- AC_CHECKING(for SVR4 ptys)
- sysvr4ptys=
- if test -c /dev/ptmx ; then
--AC_TRY_LINK([],[ptsname(0);grantpt(0);unlockpt(0);],[AC_DEFINE(HAVE_SVR4_PTYS)
-+AC_TRY_LINK([],[ptsname(0);grantpt(0);unlockpt(0);],[AC_DEFINE([HAVE_SVR4_PTYS],[1],[HAVE_SVR4_PTYS])
- sysvr4ptys=1])
- fi
-
-@@ -331,7 +331,7 @@ AC_CHECK_FUNCS(getpt)
- dnl check for openpty()
- if test -z "$sysvr4ptys"; then
- AC_CHECK_FUNCS(openpty,,
--[AC_CHECK_LIB(util,openpty, [AC_DEFINE(HAVE_OPENPTY)] [LIBS="$LIBS -lutil"])])
-+[AC_CHECK_LIB(util,openpty, [AC_DEFINE([HAVE_OPENPTY],[1],[HAVE_OPENPTY])] [LIBS="$LIBS -lutil"])])
- fi
-
- AC_CHECKING(for ptyranges)
-@@ -354,8 +354,8 @@ dnl fi
- if test "$ptys" != "$pdir/pty??" ; then
- p0=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
- p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
--AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
--AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
-+AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0",[PTYRANGE0])
-+AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1",[PTYRANGE1])
- fi
-
- dnl
-@@ -375,7 +375,7 @@ AC_TRY_LINK([
- #define pututline _pututline
- #endif
- ],
--[int x = DEAD_PROCESS; pututline((struct utmp *)0); getutent();], AC_DEFINE(GETUTENT),
-+[int x = DEAD_PROCESS; pututline((struct utmp *)0); getutent();], AC_DEFINE([GETUTENT],[1],[GETUTENT]),
- olibs="$LIBS"
- LIBS="$LIBS -lgen"
- AC_CHECKING(getutent with -lgen)
-@@ -392,7 +392,7 @@ AC_TRY_LINK([
- #define pututline _pututline
- #endif
- ],
--[int x = DEAD_PROCESS; pututline((struct utmp *)0); getutent();], AC_DEFINE(GETUTENT), LIBS="$olibs")
-+[int x = DEAD_PROCESS; pututline((struct utmp *)0); getutent();], AC_DEFINE([GETUTENT],[1],[GETUTENT]), LIBS="$olibs")
- )
- AC_CHECKING(ut_host)
- AC_TRY_COMPILE([
-@@ -404,10 +404,10 @@ AC_TRY_COMPILE([
- #else
- #include <utmp.h>
- #endif
--],[struct utmp u; u.ut_host[0] = 0;], AC_DEFINE(UTHOST))
-+],[struct utmp u; u.ut_host[0] = 0;], AC_DEFINE([UTHOST],[1],[UTHOST]))
- AC_CHECK_HEADER(utempter.h, have_utempter=yes, have_utempter=no)
- if test "$have_utempter" = yes; then
-- AC_DEFINE(HAVE_UTEMPTER)
-+ AC_DEFINE([HAVE_UTEMPTER],[1],[HAVE_UTEMPTER])
- LIBS="$LIBS -lutempter"
- fi
-
-@@ -420,13 +420,13 @@ test -f /usr/lib/libutil.a && LIBS="$LIBS -lutil"
-
- AC_CHECKING(getloadavg)
- AC_TRY_LINK(,[getloadavg((double *)0, 0);],
--AC_DEFINE(LOADAV_GETLOADAVG) load=1,
-+AC_DEFINE([LOADAV_GETLOADAVG],[1],[LOADAV_GETLOADAVG]) load=1,
- if test -f /usr/lib/libkvm.a ; then
- olibs="$LIBS"
- LIBS="$LIBS -lkvm"
- AC_CHECKING(getloadavg with -lkvm)
- AC_TRY_LINK(,[getloadavg((double *)0, 0);],
--AC_DEFINE(LOADAV_GETLOADAVG) load=1, LIBS="$olibs")
-+AC_DEFINE([LOADAV_GETLOADAVG],[1],[LOADAV_GETLOADAVG]) load=1, LIBS="$olibs")
- fi
- )
-
-@@ -466,10 +466,10 @@ loadnum=3
- #endif
- ])
-
--if test -n "$load" ; then AC_DEFINE(LOADAV) fi
--if test -n "$loadtype" ; then AC_DEFINE_UNQUOTED(LOADAV_TYPE,$loadtype) fi
--if test -n "$loadnum" ; then AC_DEFINE_UNQUOTED(LOADAV_NUM,$loadnum) fi
--if test -n "$loadscale" ; then AC_DEFINE_UNQUOTED(LOADAV_SCALE,$loadscale) fi
-+if test -n "$load" ; then AC_DEFINE([LOADAV],[1],[LOADAV]) fi
-+if test -n "$loadtype" ; then AC_DEFINE_UNQUOTED(LOADAV_TYPE,$loadtype,[LOADAV_TYPE]) fi
-+if test -n "$loadnum" ; then AC_DEFINE_UNQUOTED(LOADAV_NUM,$loadnum,[LOADAV_NUM]) fi
-+if test -n "$loadscale" ; then AC_DEFINE_UNQUOTED(LOADAV_SCALE,$loadscale,[LOADAV_SCALE]) fi
-
- dnl
- dnl **** signal handling ****
-@@ -478,7 +478,7 @@ if test -n "$posix" ; then
-
- dnl POSIX has reliable signals with void return type.
- AC_NOTE(assuming posix signal definition)
--AC_DEFINE(SIGVOID)
-+AC_DEFINE([SIGVOID],[1],[SIGVOID])
-
- else
-
-@@ -489,7 +489,7 @@ AC_TRY_COMPILE(
- #ifdef signal
- #undef signal
- #endif
--extern void (*signal ()) ();], [int i;], AC_DEFINE(SIGVOID))
-+extern void (*signal ()) ();], [int i;], AC_DEFINE([SIGVOID],[1],[SIGVOID]))
- AC_CHECKING(sigset)
- AC_TRY_LINK([
- #include <sys/types.h>
-@@ -500,9 +500,9 @@ sigset(0, (void (*)())0);
- #else
- sigset(0, (int (*)())0);
- #endif
--], AC_DEFINE(USESIGSET))
-+], AC_DEFINE([USESIGSET],[1],[USESIGSET]))
-
--AC_DEFINE(SYSVSIGS)
-+AC_DEFINE([SYSVSIGS],[1],[SYSVSIGS])
-
- fi
-
-@@ -528,7 +528,7 @@ AC_TRY_LINK(,[closelog();], , [oldlibs="$LIBS"
- LIBS="$LIBS -lbsd"
- AC_CHECKING(syslog in libbsd.a)
- AC_TRY_LINK(, [closelog();], AC_NOTE(- found.), [LIBS="$oldlibs"
--AC_NOTE(- bad news: syslog missing.) AC_DEFINE(NOSYSLOG)])])
-+AC_NOTE(- bad news: syslog missing.) AC_DEFINE([NOSYSLOG],[1],[NOSYSLOG])])])
-
- AC_EGREP_CPP(yes,
- [#ifdef M_UNIX
-@@ -548,39 +548,39 @@ AC_TRY_COMPILE([#include <sys/types.h>
- #ifdef WEXITSTATUS
- y = WEXITSTATUS(x);
- #endif
--],AC_DEFINE(BSDWAIT))
-+],AC_DEFINE([BSDWAIT],[1],[BSDWAIT]))
-
- if test -z "$butterfly"; then
- AC_CHECKING(for termio or termios)
--AC_TRY_CPP([#include <termio.h>], AC_DEFINE(TERMIO),
-+AC_TRY_CPP([#include <termio.h>], AC_DEFINE([TERMIO],[1],[TERMIO]),
- if test -n "$posix"; then
--AC_TRY_CPP([#include <termios.h>], AC_DEFINE(TERMIO))
-+AC_TRY_CPP([#include <termios.h>], AC_DEFINE([TERMIO],[1],[TERMIO]))
- fi
- )
- fi
-
--dnl AC_CHECK_HEADER(shadow.h, AC_DEFINE(SHADOWPW))
-+dnl AC_CHECK_HEADER(shadow.h, AC_DEFINE([SHADOWPW],[1],[SHADOWPW]))
- AC_CHECKING(getspnam)
--AC_TRY_LINK([#include <shadow.h>], [getspnam("x");],AC_DEFINE(SHADOWPW))
-+AC_TRY_LINK([#include <shadow.h>], [getspnam("x");],AC_DEFINE([SHADOWPW],[1],[SHADOWPW]))
-
- AC_CHECKING(getttyent)
--AC_TRY_LINK(,[getttyent();], AC_DEFINE(GETTTYENT))
-+AC_TRY_LINK(,[getttyent();], AC_DEFINE([GETTTYENT],[1],[GETTTYENT]))
-
- AC_CHECKING(fdwalk)
--AC_TRY_LINK([#include <stdlib.h>], [fdwalk(NULL, NULL);],AC_DEFINE(HAVE_FDWALK))
-+AC_TRY_LINK([#include <stdlib.h>], [fdwalk(NULL, NULL);],AC_DEFINE([HAVE_FDWALK],[1],[HAVE_FDWALK]))
-
- AC_CHECKING(whether memcpy/memmove/bcopy handles overlapping arguments)
--AC_DEFINE(USEBCOPY)
-+AC_DEFINE([USEBCOPY],[1],[USEBCOPY])
-
--AC_DEFINE(USEMEMMOVE)
-+AC_DEFINE([USEMEMMOVE],[1],[USEMEMMOVE])
-
-
--AC_DEFINE(USEMEMCPY)
-+AC_DEFINE([USEMEMCPY],[1],[USEMEMCPY])
-
- AC_SYS_LONG_FILE_NAMES
-
- AC_MSG_CHECKING(for vsprintf)
--AC_TRY_LINK([#include <stdarg.h>],[va_list valist; vsprintf(0,0,valist);], AC_MSG_RESULT(yes);AC_DEFINE(USEVARARGS), AC_MSG_RESULT(no))
-+AC_TRY_LINK([#include <stdarg.h>],[va_list valist; vsprintf(0,0,valist);], AC_MSG_RESULT(yes);AC_DEFINE([USEVARARGS],[1],[USEVARARGS]), AC_MSG_RESULT(no))
-
- AC_HEADER_DIRENT
-
-@@ -600,21 +600,21 @@ if test -z "$ac_setenv_args"; then
- ], ac_setenv_args=2)
- fi
- if test -n "$ac_setenv_args"; then
-- AC_DEFINE(USESETENV)
-+ AC_DEFINE([USESETENV],[1],[USESETENV])
- if test "$ac_setenv_args" = 3; then
-- AC_DEFINE(HAVE_SETENV_3)
-+ AC_DEFINE([HAVE_SETENV_3],[1],[HAVE_SETENV_3])
- elif test "$ac_setenv_args" = 2; then
-- AC_DEFINE(HAVE_SETENV_2)
-+ AC_DEFINE([HAVE_SETENV_2],[1],[HAVE_SETENV_2])
- fi
- else
- AC_MSG_RESULT(no)
- AC_MSG_CHECKING(for putenv)
-- AC_TRY_LINK(,[putenv((char *)0);unsetenv((char *)0);], AC_MSG_RESULT(yes) , AC_MSG_RESULT(no);AC_DEFINE(NEEDPUTENV))
-+ AC_TRY_LINK(,[putenv((char *)0);unsetenv((char *)0);], AC_MSG_RESULT(yes) , AC_MSG_RESULT(no);AC_DEFINE([NEEDPUTENV],[1],[NEEDPUTENV]))
- fi
- AC_MSG_CHECKING([for nl_langinfo(CODESET)])
- AC_TRY_LINK([
- #include <langinfo.h>
--],[nl_langinfo(CODESET);], AC_MSG_RESULT(yes);AC_DEFINE(HAVE_NL_LANGINFO), AC_MSG_RESULT(no))
-+],[nl_langinfo(CODESET);], AC_MSG_RESULT(yes);AC_DEFINE([HAVE_NL_LANGINFO],[1],[HAVE_NL_LANGINFO]), AC_MSG_RESULT(no))
-
- AC_SEARCH_LIBS(gethostname, nsl)
-
-@@ -629,25 +629,25 @@ if test "$enable_pam" = "yes"; then
- pam_start(0, 0, 0, 0);
- pam_authenticate(0, 0);
- pam_end(0,0);
-- ], AC_MSG_RESULT(yes);AC_DEFINE(USE_PAM),
-+ ], AC_MSG_RESULT(yes);AC_DEFINE([USE_PAM],[1],[USE_PAM]),
- AC_MSG_RESULT(no);LIBS="$oldlibs")
- fi
-
- AC_ARG_ENABLE(use_locale, [ --enable-use-locale use localized month/day names])
- if test "$enable_use_locale" = "yes"; then
-- AC_DEFINE(USE_LOCALE)
-+ AC_DEFINE([USE_LOCALE],[1],[USE_LOCALE])
- fi
- AC_ARG_ENABLE(telnet, [ --enable-telnet enable builtin telnet])
- if test "$enable_telnet" = "yes"; then
-- AC_DEFINE(BUILTIN_TELNET)
-+ AC_DEFINE([BUILTIN_TELNET],[1],[BUILTIN_TELNET])
- fi
- AC_ARG_ENABLE(colors256, [ --enable-colors256 enable support for 256 colors])
- if test "$enable_colors256" = "yes"; then
-- AC_DEFINE(COLORS256)
-+ AC_DEFINE([COLORS256],[1],[COLORS256])
- fi
- AC_ARG_ENABLE(rxvt_osc, [ --enable-rxvt_osc enable support for rxvt OSC codes])
- if test "$enable_rxvt_osc" = "yes"; then
-- AC_DEFINE(RXVT_OSC)
-+ AC_DEFINE([RXVT_OSC],[1],[RXVT_OSC])
- fi
-
- dnl
diff --git a/patches/screen-4.5.0/0004-Fix-some-typos-found-by-Lintian.patch b/patches/screen-4.5.0/0004-Fix-some-typos-found-by-Lintian.patch
deleted file mode 100644
index b368f44ec..000000000
--- a/patches/screen-4.5.0/0004-Fix-some-typos-found-by-Lintian.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From: Axel Beckert <abe@debian.org>
-Date: Mon, 3 Jul 2017 10:41:19 +0200
-Subject: [PATCH] Fix some typos found by Lintian
-
-Forwarded: no
-Bug-Debian: https://bugs.debian.org/741141
----
- acls.c | 4 ++--
- doc/screen.1 | 4 ++--
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/acls.c b/acls.c
-index 3b1669cf4a93..514e0fc4716d 100644
---- a/acls.c
-+++ b/acls.c
-@@ -578,7 +578,7 @@ char *name, *pw1, *pw2;
- }
-
- debug2("syslog(LOG_NOTICE, \"screen %s: \"su %s\" ", SockPath, name);
-- debug2("%s for \"%s\"\n", sorry ? "failed" : "succeded", (*up)->u_name);
-+ debug2("%s for \"%s\"\n", sorry ? "failed" : "succeeded", (*up)->u_name);
- #ifndef NOSYSLOG
- # ifdef BSD_42
- openlog("screen", LOG_PID);
-@@ -586,7 +586,7 @@ char *name, *pw1, *pw2;
- openlog("screen", LOG_PID, LOG_AUTH);
- # endif /* BSD_42 */
- syslog(LOG_NOTICE, "%s: \"su %s\" %s for \"%s\"", SockPath, name,
-- sorry ? "failed" : "succeded", (*up)->u_name);
-+ sorry ? "failed" : "succeeded", (*up)->u_name);
- closelog();
- #else
- debug("NOT LOGGED.\n");
-diff --git a/doc/screen.1 b/doc/screen.1
-index 23b4d7b1202a..0fe8d0e533c2 100644
---- a/doc/screen.1
-+++ b/doc/screen.1
-@@ -1356,8 +1356,8 @@ non-whitespace character on the line.
- \fBB\fP, \fBE\fP move the cursor WORD by WORD (as in vi).
- .br
- .ti -2n
--.\"\fBf\fP,\fBt\fP, \fBF\fP, \fBT\fP move the cursor forward/backward to the next occurence of the target.
--\fBf/F\fP, \fBt/T\fP move the cursor forward/backward to the next occurence of the target. (eg, '3fy' will
-+.\"\fBf\fP,\fBt\fP, \fBF\fP, \fBT\fP move the cursor forward/backward to the next occurrence of the target.
-+\fBf/F\fP, \fBt/T\fP move the cursor forward/backward to the next occurrence of the target. (eg, '3fy' will
- move the cursor to the 3rd 'y' to the right.)
- .br
- .ti -2n
diff --git a/patches/screen-4.5.0/0005-show-encoding-in-hardstatus.patch b/patches/screen-4.5.0/0005-show-encoding-in-hardstatus.patch
deleted file mode 100644
index 123c37cce..000000000
--- a/patches/screen-4.5.0/0005-show-encoding-in-hardstatus.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From: Yi-Jheng Lin <yzlin@cs.nctu.edu.tw>
-Date: Mon, 3 Jul 2017 10:42:52 +0200
-Subject: [PATCH] show encoding in hardstatus
-
-Origin: https://svnweb.freebsd.org/ports/head/sysutils/screen/files/opt-showencoding?view=markup
-Reviewed-By: rascov <rascov@rascov.tw>
-Reviewed-By: Dustin Kirkland <kirkland@ubuntu.com>
-Last-Update: Wed Feb 11 05:51:31 CST 2009
-Bug-FreeBSD: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=124492
-Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/screen/+bug/286810
-Bug-Debian: https://bugs.debian.org/533498
----
- process.c | 1 +
- screen.c | 13 +++++++++++++
- 2 files changed, 14 insertions(+)
-
-diff --git a/process.c b/process.c
-index 63c85b1a0a65..304ce0e691de 100644
---- a/process.c
-+++ b/process.c
-@@ -3783,6 +3783,7 @@ int key;
- {
- WinSwitchEncoding(fore, n);
- ResetCharsets(fore);
-+ RedisplayDisplays(0);
- }
- else if (i && display)
- D_encoding = n;
-diff --git a/screen.c b/screen.c
-index 64650e9b2edc..7cad20626f2b 100644
---- a/screen.c
-+++ b/screen.c
-@@ -2761,6 +2761,19 @@ char *MakeWinMsgEv(char *str, struct win *win, int esc, int padlen, struct event
- p += strlen(p) - 1;
- break;
-
-+ #ifdef ENCODINGS
-+ case 'e':
-+ *p = 0;
-+ D_encoding = nwin_options.encoding > 0 ? nwin_options.encoding : 0;
-+ if (win && win->w_encoding)
-+ {
-+ *p++ = ' ';
-+ strcpy(p, EncodingName(win->w_encoding));
-+ }
-+ p += strlen(p) - 1;
-+ break;
-+ #endif
-+
- case '{':
- {
- char rbuf[128];
diff --git a/patches/screen-4.5.0/0006-Unbreak-several-useful-keybindings.patch b/patches/screen-4.5.0/0006-Unbreak-several-useful-keybindings.patch
deleted file mode 100644
index 830f2a78d..000000000
--- a/patches/screen-4.5.0/0006-Unbreak-several-useful-keybindings.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From: Loic Minier <lool@dooz.org>
-Date: Mon, 3 Jul 2017 10:44:57 +0200
-Subject: [PATCH] Unbreak several useful keybindings.
-
-Bugs-Debian: https://bugs.debian.org/484647
----
- termcap.c | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/termcap.c b/termcap.c
-index ae89d175bc2c..57ed43a6d096 100644
---- a/termcap.c
-+++ b/termcap.c
-@@ -552,8 +552,6 @@ int map;
- else
- break;
- }
-- if (n < KMAP_KEYS)
-- domap = 1;
- if (map == 0 && domap)
- return 0;
- if (map && !domap)
diff --git a/patches/screen-4.5.0/0007-Fix-privilege-escalation-by-reverting-upstream-commi.patch b/patches/screen-4.5.0/0007-Fix-privilege-escalation-by-reverting-upstream-commi.patch
deleted file mode 100644
index 134934f3d..000000000
--- a/patches/screen-4.5.0/0007-Fix-privilege-escalation-by-reverting-upstream-commi.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: Axel Beckert <abe@debian.org>
-Date: Mon, 3 Jul 2017 10:46:08 +0200
-Subject: [PATCH] Fix privilege escalation by reverting upstream commit
- 5460f5d2
-
-Bug-Debian: https://bugs.debian.org/852484
-Bug-CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5618
-Bug: https://savannah.gnu.org/bugs/?50142
- https://lists.gnu.org/archive/html/screen-devel/2017-01/msg00025.html
----
- screen.c | 6 ------
- 1 file changed, 6 deletions(-)
-
-diff --git a/screen.c b/screen.c
-index 7cad20626f2b..e60d0a712fb5 100644
---- a/screen.c
-+++ b/screen.c
-@@ -673,12 +673,6 @@ int main(int ac, char** av)
- Panic(0, "-L: logfile name can not start with \"-\" symbol");
- if (strlen(screenlogfile) > PATH_MAX)
- Panic(0, "-L: logfile name too long. (max. %d char)", PATH_MAX);
--
-- FILE *w_check;
-- if ((w_check = fopen(screenlogfile, "w")) == NULL)
-- Panic(0, "-L: logfile name access problem");
-- else
-- fclose(w_check);
- }
- nwin_options.Lflag = 1;
- break;
diff --git a/patches/screen-4.5.0/0008-Fix-terminal-garbage-in-Debian-Installer-over-serial.patch b/patches/screen-4.5.0/0008-Fix-terminal-garbage-in-Debian-Installer-over-serial.patch
deleted file mode 100644
index a174ea10c..000000000
--- a/patches/screen-4.5.0/0008-Fix-terminal-garbage-in-Debian-Installer-over-serial.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From: Samuel Thibault <sthibault@debian.org>
-Date: Mon, 3 Jul 2017 10:47:14 +0200
-Subject: [PATCH] Fix terminal garbage in Debian Installer over serial line
-
-Reviewed-By: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
-Bug-Debian: https://bugs.debian.org/857808
-Bug: https://savannah.gnu.org/bugs/?50588
----
- termcap.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/termcap.c b/termcap.c
-index 57ed43a6d096..1b15e63a3192 100644
---- a/termcap.c
-+++ b/termcap.c
-@@ -486,6 +486,8 @@ int he;
-
- D_tcinited = 1;
- MakeTermcap(0);
-+ /* Make sure libterm uses external term properties for our tputs() calls. */
-+ e_tgetent(tbuf, D_termname);
- #ifdef MAPKEYS
- CheckEscape();
- #endif
diff --git a/patches/screen-4.5.0/0009-Ignore-logfile-s-name-that-begins-with-the-symbol.patch b/patches/screen-4.5.0/0009-Ignore-logfile-s-name-that-begins-with-the-symbol.patch
deleted file mode 100644
index d789f56db..000000000
--- a/patches/screen-4.5.0/0009-Ignore-logfile-s-name-that-begins-with-the-symbol.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From: Alexander Naumov <alexander_naumov@opensuse.org>
-Date: Mon, 3 Jul 2017 10:48:05 +0200
-Subject: [PATCH] Ignore logfile's name that begins with the "-" symbol
-
- This fixes the API:
- .
- To enable logging we use -L option. But in case of
- default logfile name (screenlog.0) we will need to
- define it anyway. Because screen will try to interpret
- next option as a parameter for -L option (which is
- logfile name). It will fails ALWAYS, because next
- parameter will always start with "-" symbol...
- what is not permited for logfile name of course.
- .
- For example:
- .
- $ screen -L -D -m ./configure
- .
- In this case logfile name is screenlog.0, because "-D"
- will not be interpreted by screen as a name of logfile.
-Bug-Debian: https://bugs.debian.org/863095
-Bug: https://savannah.gnu.org/bugs/?50440
-Reviewd-By: Axel Beckert <abe@debian.org>
----
- doc/screen.1 | 4 ++--
- doc/screen.texinfo | 4 +++-
- screen.c | 7 +++++--
- 3 files changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/doc/screen.1 b/doc/screen.1
-index 0fe8d0e533c2..ee210346dab8 100644
---- a/doc/screen.1
-+++ b/doc/screen.1
-@@ -262,8 +262,8 @@ Ask your system administrator if you are not sure. Remove sessions with the
- tells
- .I screen
- to turn on automatic output logging for the windows. By default, logfile's name
--is screenlog.1. You can sets new name: add it right after -L option e.g. "screen
---L my_logfile".
-+is screenlog.0. You can set new name: add it right after -L option e.g. "screen
-+-L my_logfile". Keep in mind that name can not start with "-" symbol.
- .TP 5
- .B \-m
- causes
-diff --git a/doc/screen.texinfo b/doc/screen.texinfo
-index 2ff39b08a79c..c94993edd2ed 100644
---- a/doc/screen.texinfo
-+++ b/doc/screen.texinfo
-@@ -334,7 +334,9 @@ Remove sessions with the @samp{-wipe} option.
-
- @item -L
- Tell @code{screen} to turn on automatic output logging for the
--windows.
-+windows. By default, logfile's name is screenlog.0. You can set new name:
-+add it right after -L option e.g. "screen -L my_logfile". Keep in mind
-+that name can not start with "-" symbol.
-
- @item -m
- Tell @code{screen} to ignore the @code{$STY} environment variable. When
-diff --git a/screen.c b/screen.c
-index e60d0a712fb5..07f0c1387e32 100644
---- a/screen.c
-+++ b/screen.c
-@@ -669,8 +669,11 @@ int main(int ac, char** av)
- case 'L':
- if (--ac != 0) {
- screenlogfile = SaveStr(*++av);
-- if (screenlogfile[0] == '-')
-- Panic(0, "-L: logfile name can not start with \"-\" symbol");
-+ if (screenlogfile[0] == '-') {
-+ screenlogfile = SaveStr("screenlog.%n");
-+ av--;
-+ ac++;
-+ }
- if (strlen(screenlogfile) > PATH_MAX)
- Panic(0, "-L: logfile name too long. (max. %d char)", PATH_MAX);
- }
diff --git a/patches/screen-4.5.0/autogen.sh b/patches/screen-4.5.0/autogen.sh
deleted file mode 100755
index 9e73c8d20..000000000
--- a/patches/screen-4.5.0/autogen.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-autoconf \
- --force \
- --warnings=cross \
- --warnings=syntax \
- --warnings=obsolete \
- --warnings=unsupported
-
diff --git a/patches/screen-4.5.0/series b/patches/screen-4.5.0/series
deleted file mode 100644
index b2f09ec5b..000000000
--- a/patches/screen-4.5.0/series
+++ /dev/null
@@ -1,12 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-don-t-link-against-libelf.patch
-0002-remove-configure-AC_TRY_RUN-tests.patch
-0003-autoconf-cleanup.patch
-0004-Fix-some-typos-found-by-Lintian.patch
-0005-show-encoding-in-hardstatus.patch
-0006-Unbreak-several-useful-keybindings.patch
-0007-Fix-privilege-escalation-by-reverting-upstream-commi.patch
-0008-Fix-terminal-garbage-in-Debian-Installer-over-serial.patch
-0009-Ignore-logfile-s-name-that-begins-with-the-symbol.patch
-# ccc52b9b8b2bf27ae19c5efb5999fc70 - git-ptx-patches magic
diff --git a/patches/screen-4.9.1/0001-comm.h-now-depends-on-term.h.patch b/patches/screen-4.9.1/0001-comm.h-now-depends-on-term.h.patch
new file mode 100644
index 000000000..6b364c26d
--- /dev/null
+++ b/patches/screen-4.9.1/0001-comm.h-now-depends-on-term.h.patch
@@ -0,0 +1,24 @@
+From: Mike Gerwitz <mike@mikegerwitz.com>
+Date: Tue, 24 Dec 2013 22:16:31 -0500
+Subject: [PATCH] comm.h now depends on term.h
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+[Patch retrieved and updated from:
+http://git.savannah.gnu.org/cgit/screen.git/commit/?id=39c5f1c]
+---
+ Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 26ec40450bdb..4bc364671904 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -133,7 +133,7 @@ kmapdef.c: term.h
+ tty.c: tty.sh
+ sh $(srcdir)/tty.sh tty.c
+
+-comm.h: comm.c comm.sh config.h
++comm.h: comm.c comm.sh config.h term.h
+ AWK=$(AWK) CC="$(CC) $(CFLAGS)" srcdir=${srcdir} sh $(srcdir)/comm.sh
+
+ osdef.h: osdef.sh config.h osdef.h.in
diff --git a/patches/screen-4.9.1/0002-comm.h-needed-for-list_-display-generic-.o.patch b/patches/screen-4.9.1/0002-comm.h-needed-for-list_-display-generic-.o.patch
new file mode 100644
index 000000000..f51639ef1
--- /dev/null
+++ b/patches/screen-4.9.1/0002-comm.h-needed-for-list_-display-generic-.o.patch
@@ -0,0 +1,31 @@
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Wed, 3 Oct 2018 22:29:32 +0200
+Subject: [PATCH] comm.h needed for list_{display,generic}.o
+
+comm.h is needed to build list_display.o and list_generic.o otherwise
+parallel builds will sometimes fail
+
+Fixes:
+ - http://autobuild.buildroot.org/results/43105f14857dbe72d8878fc7b3db67f7bdca93cc
+ - http://autobuild.buildroot.org/results/47f4ecbec1355285633df287fc9c4e7cccde9378
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+[Upstream status: https://savannah.gnu.org/bugs/index.php?54776]
+---
+ Makefile.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 4bc364671904..8bfcac6f8412 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -350,7 +350,7 @@ layout.o: layout.h viewport.h canvas.h layout.c config.h screen.h os.h osdef.h a
+ viewport.o: layout.h viewport.h canvas.h viewport.c config.h screen.h os.h osdef.h ansi.h acls.h \
+ comm.h layer.h term.h image.h display.h window.h extern.h \
+ braille.h
+-list_generic.o: list_generic.h list_generic.c layer.h screen.h osdef.h
+-list_display.o: list_generic.h list_display.c layer.h screen.h osdef.h
++list_generic.o: list_generic.h list_generic.c layer.h screen.h osdef.h comm.h
++list_display.o: list_generic.h list_display.c layer.h screen.h osdef.h comm.h
+ list_window.o: list_generic.h list_window.c window.h layer.h screen.h osdef.h comm.h
+
diff --git a/patches/screen-4.9.1/0003-suppress_remap.patch b/patches/screen-4.9.1/0003-suppress_remap.patch
new file mode 100644
index 000000000..fda63e90c
--- /dev/null
+++ b/patches/screen-4.9.1/0003-suppress_remap.patch
@@ -0,0 +1,24 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Fri, 7 Jan 2022 12:53:57 +0100
+Subject: [PATCH] suppress_remap
+
+Imported from screen_4.8.0-7.debian.tar.xz
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ termcap.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/termcap.c b/termcap.c
+index 26c8f5a96589..29684cf974f7 100644
+--- a/termcap.c
++++ b/termcap.c
+@@ -553,8 +553,6 @@ int map;
+ else
+ break;
+ }
+- if (n < KMAP_KEYS)
+- domap = 1;
+ if (map == 0 && domap)
+ return 0;
+ if (map && !domap)
diff --git a/patches/libyaml-0.1.7/autogen.sh b/patches/screen-4.9.1/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/libyaml-0.1.7/autogen.sh
+++ b/patches/screen-4.9.1/autogen.sh
diff --git a/patches/screen-4.9.1/series b/patches/screen-4.9.1/series
new file mode 100644
index 000000000..bf7060df3
--- /dev/null
+++ b/patches/screen-4.9.1/series
@@ -0,0 +1,6 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-comm.h-now-depends-on-term.h.patch
+0002-comm.h-needed-for-list_-display-generic-.o.patch
+0003-suppress_remap.patch
+# 086ac9b43abed5bb61eef564f1ac00d9 - git-ptx-patches magic
diff --git a/patches/setuptools-rust-1.5.2/series b/patches/setuptools-rust-1.5.2/series
new file mode 100644
index 000000000..b69a0d2bb
--- /dev/null
+++ b/patches/setuptools-rust-1.5.2/series
@@ -0,0 +1 @@
+use-Literal-from-typing.patch
diff --git a/patches/setuptools-rust-1.5.2/use-Literal-from-typing.patch b/patches/setuptools-rust-1.5.2/use-Literal-from-typing.patch
new file mode 100644
index 000000000..186a0279e
--- /dev/null
+++ b/patches/setuptools-rust-1.5.2/use-Literal-from-typing.patch
@@ -0,0 +1,53 @@
+From b3ac96d620caae2834770f5a744db507846868c6 Mon Sep 17 00:00:00 2001
+From: Artur Wiebe <artur@4wiebe.de>
+Date: Mon, 27 Mar 2023 14:49:44 +0200
+Subject: [PATCH] use Literal from typing
+
+---
+ setuptools_rust/build.py | 2 +-
+ setuptools_rust/extension.py | 2 +-
+ setuptools_rust/setuptools_ext.py | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/setuptools_rust/build.py b/setuptools_rust/build.py
+index 21c1975..ff94cb0 100644
+--- a/setuptools_rust/build.py
++++ b/setuptools_rust/build.py
+@@ -23,7 +23,7 @@ import pkg_resources
+ from setuptools.command.build import build as CommandBuild # type: ignore[import]
+ from setuptools.command.build_ext import build_ext as CommandBuildExt
+ from setuptools.command.build_ext import get_abi3_suffix
+-from typing_extensions import Literal
++from typing import Literal
+
+ from ._utils import format_called_process_error
+ from .command import RustCommand
+diff --git a/setuptools_rust/extension.py b/setuptools_rust/extension.py
+index f7a09d1..537a8db 100644
+--- a/setuptools_rust/extension.py
++++ b/setuptools_rust/extension.py
+@@ -9,7 +9,7 @@ from functools import lru_cache
+ from typing import Any, Dict, List, NewType, Optional, Sequence, Union, cast
+
+ from semantic_version import SimpleSpec
+-from typing_extensions import Literal
++from typing import Literal
+
+ from ._utils import format_called_process_error
+
+diff --git a/setuptools_rust/setuptools_ext.py b/setuptools_rust/setuptools_ext.py
+index 8ce281e..943b2e9 100644
+--- a/setuptools_rust/setuptools_ext.py
++++ b/setuptools_rust/setuptools_ext.py
+@@ -11,7 +11,7 @@ from setuptools.command.install_lib import install_lib
+ from setuptools.command.install_scripts import install_scripts
+ from setuptools.command.sdist import sdist
+ from setuptools.dist import Distribution
+-from typing_extensions import Literal
++from typing import Literal
+
+ from .extension import RustBin, RustExtension
+
+--
+2.39.2
+
diff --git a/patches/shiboken-1.2.2/0001-cmake-allow-specifying-the-preferred-Python2-version.patch b/patches/shiboken-1.2.2/0001-cmake-allow-specifying-the-preferred-Python2-version.patch
deleted file mode 100644
index 2a7dd2232..000000000
--- a/patches/shiboken-1.2.2/0001-cmake-allow-specifying-the-preferred-Python2-version.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Thu, 15 Mar 2012 08:55:26 +0100
-Subject: [PATCH] cmake: allow specifying the preferred Python2 version
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- cmake/Modules/FindPythonInterpWithDebug.cmake | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cmake/Modules/FindPythonInterpWithDebug.cmake b/cmake/Modules/FindPythonInterpWithDebug.cmake
-index 7722d956917e..06c5aff02580 100644
---- a/cmake/Modules/FindPythonInterpWithDebug.cmake
-+++ b/cmake/Modules/FindPythonInterpWithDebug.cmake
-@@ -1,4 +1,4 @@
--find_program(PYTHON_EXECUTABLE NAMES python2.7 python2.6 python2.5)
-+find_program(PYTHON_EXECUTABLE NAMES ${Python_PREFERRED_VERSION} python2.7 python2.6 python2.5)
-
- if (NOT PYTHON_EXECUTABLE)
- find_package(PythonInterp REQUIRED)
diff --git a/patches/shiboken-1.2.2/0002-cmake-allow-specifying-the-preferred-Python3-version.patch b/patches/shiboken-1.2.2/0002-cmake-allow-specifying-the-preferred-Python3-version.patch
deleted file mode 100644
index 2d985e42d..000000000
--- a/patches/shiboken-1.2.2/0002-cmake-allow-specifying-the-preferred-Python3-version.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From: Bastian Stender <bst@pengutronix.de>
-Date: Fri, 26 Jan 2018 14:27:23 +0100
-Subject: [PATCH] cmake: allow specifying the preferred Python3 version
-
-Signed-off-by: Bastian Stender <bst@pengutronix.de>
----
- cmake/Modules/FindPython3Interp.cmake | 4 ++--
- cmake/Modules/FindPython3Libs.cmake | 4 +++-
- 2 files changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/cmake/Modules/FindPython3Interp.cmake b/cmake/Modules/FindPython3Interp.cmake
-index 373982e210a3..ad38c6697bc8 100644
---- a/cmake/Modules/FindPython3Interp.cmake
-+++ b/cmake/Modules/FindPython3Interp.cmake
-@@ -20,7 +20,7 @@
- # License text for the above reference.)
-
- FIND_PROGRAM(PYTHON3_EXECUTABLE
-- NAMES python3.2mu python3.2m python3.2u python3.2 python3.1 python3.0 python3
-+ NAMES ${Python3_PREFERRED_VERSION} python3.2mu python3.2m python3.2u python3.2 python3.1 python3.0 python3
- PATHS
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\3.2\\InstallPath]
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\3.1\\InstallPath]
-@@ -28,7 +28,7 @@ FIND_PROGRAM(PYTHON3_EXECUTABLE
- )
-
- FIND_PROGRAM(PYTHON3_DBG_EXECUTABLE
-- NAMES python3.2dmu python3.2dm python3.2du python3.2d python3.1-dbg python3.0-dbg python3-dbg
-+ NAMES ${Python3_PREFERRED_VERSION} python3.2dmu python3.2dm python3.2du python3.2d python3.1-dbg python3.0-dbg python3-dbg
- PATHS
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\3.2\\InstallPath]
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\3.1\\InstallPath]
-diff --git a/cmake/Modules/FindPython3Libs.cmake b/cmake/Modules/FindPython3Libs.cmake
-index 20a82ba07d59..e1789438a4b9 100644
---- a/cmake/Modules/FindPython3Libs.cmake
-+++ b/cmake/Modules/FindPython3Libs.cmake
-@@ -27,7 +27,9 @@ INCLUDE(CMakeFindFrameworks)
- # Search for the python framework on Apple.
- # CMAKE_FIND_FRAMEWORKS(Python)
-
--FOREACH(_CURRENT_VERSION 3.4 3.3 3.2 3.1 3.0)
-+STRING(REPLACE "python" "" Python3_PREFERRED_VERSION_NUMBER ${Python3_PREFERRED_VERSION})
-+
-+FOREACH(_CURRENT_VERSION ${Python3_PREFERRED_VERSION_NUMBER} 3.4 3.3 3.2 3.1 3.0)
- IF(_CURRENT_VERSION GREATER 3.1)
- SET(_32FLAGS "m" "u" "mu" "dm" "du" "dmu" "")
- ELSE()
diff --git a/patches/shiboken-1.2.2/series b/patches/shiboken-1.2.2/series
deleted file mode 100644
index 35630db2b..000000000
--- a/patches/shiboken-1.2.2/series
+++ /dev/null
@@ -1,5 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-cmake-allow-specifying-the-preferred-Python2-version.patch
-0002-cmake-allow-specifying-the-preferred-Python3-version.patch
-# 51481bffa6f992fb0f955bd13139b6db - git-ptx-patches magic
diff --git a/patches/sockperf-3.10/0001-Fixed-AArch32-compilation.patch b/patches/sockperf-3.10/0001-Fixed-AArch32-compilation.patch
new file mode 100644
index 000000000..5d15e2787
--- /dev/null
+++ b/patches/sockperf-3.10/0001-Fixed-AArch32-compilation.patch
@@ -0,0 +1,69 @@
+From: =?UTF-8?q?Sven=20P=C3=BCschel?= <s.pueschel@pengutronix.de>
+Date: Mon, 13 Feb 2023 10:16:51 +0100
+Subject: [PATCH] Fixed AArch32 compilation
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+sockperf added support for AArch64, but at the same time it broke AArch32 support,
+as this wasn't catched by a compiler macro anymore and resulted in trying to assemble a rdtsc instruction.
+
+See https://github.com/Mellanox/sockperf/commit/d84e8179f8ab007c7a19dfe263691b0429df7565
+and https://github.com/Mellanox/sockperf/pull/187
+
+Signed-off-by: Sven Püschel <s.pueschel@pengutronix.de>
+---
+ src/sockperf.cpp | 9 +++++++++
+ src/ticks_os.h | 5 +++++
+ 2 files changed, 14 insertions(+)
+
+diff --git a/src/sockperf.cpp b/src/sockperf.cpp
+index 293d21747592..5d6ee4141b35 100644
+--- a/src/sockperf.cpp
++++ b/src/sockperf.cpp
+@@ -2205,6 +2205,13 @@ static int parse_common_opt(const AOPT_OBJECT *common_obj) {
+ #endif /* DEFINED_TLS */
+ }
+
++#if defined(__arm__) && !defined(__aarch64__)
++ if (!s_user_params.b_no_rdtsc) {
++ log_msg("AArch32 target build does not support rdtsc, use --no-rdtsc");
++ rc = SOCKPERF_ERR_BAD_ARGUMENT;
++ }
++#endif
++
+ // resolve address: -i, -p and --tcp options must be processed before
+ if (!rc) {
+ int res = resolve_sockaddr(host_str, port_str, s_user_params.sock_type,
+@@ -3868,6 +3875,7 @@ packet pace limit = %d",
+ log_dbg("+INFO: taking time, using the given settings, consumes %.3lf nsec",
+ (double)(end - start).toNsec() / SIZE);
+
++#if !defined(__arm__) || defined(__aarch64__)
+ ticks_t tstart = 0, tend = 0;
+ tstart = os_gettimeoftsc();
+
+@@ -3878,6 +3886,7 @@ packet pace limit = %d",
+ double ticks_per_second = (double)get_tsc_rate_per_second();
+ log_dbg("+INFO: taking rdtsc directly consumes %.3lf nsec",
+ tdelta / SIZE * 1000 * 1000 * 1000 / ticks_per_second);
++#endif
+
+ // step #5: check is user defined a specific SEED value to be used in all rand() calls
+ // if no seed value is provided, the rand() function is automatically seeded with a value of
+diff --git a/src/ticks_os.h b/src/ticks_os.h
+index 0f23b2c6f6f5..8750e0374245 100644
+--- a/src/ticks_os.h
++++ b/src/ticks_os.h
+@@ -99,6 +99,11 @@ inline ticks_t os_gettimeoftsc() {
+ asm volatile("isb" : : : "memory");
+ asm volatile("mrs %0, cntvct_el0" : "=r" (ret));
+ return ret;
++#elif defined(__arm__)
++ // so the compiler will not complain. for
++ // AArch32 compile, this inline is not used
++ // since rdtsc is only supported in an optional timer extension
++ upper_32 = lower_32 = 0;
+ #else
+ // ReaD Time Stamp Counter (RDTCS)
+ __asm__ __volatile__("rdtsc" : "=a"(lower_32), "=d"(upper_32));
diff --git a/patches/sockperf-3.10/series b/patches/sockperf-3.10/series
new file mode 100644
index 000000000..5f59ae930
--- /dev/null
+++ b/patches/sockperf-3.10/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-Fixed-AArch32-compilation.patch
+# 84265c4b5947716cec9ccf808fa7f92e - git-ptx-patches magic
diff --git a/patches/softhsm-2.6.1/0001-Prevent-accessing-of-global-c-objects-once-they-are-.patch b/patches/softhsm-2.6.1/0001-Prevent-accessing-of-global-c-objects-once-they-are-.patch
new file mode 100644
index 000000000..51ac0b36a
--- /dev/null
+++ b/patches/softhsm-2.6.1/0001-Prevent-accessing-of-global-c-objects-once-they-are-.patch
@@ -0,0 +1,673 @@
+From: Neil Horman <nhorman@openssl.org>
+Date: Fri, 27 Oct 2023 14:57:37 -0400
+Subject: [PATCH] Prevent accessing of global c++ objects once they are deleted
+
+Use the global integer objects_deleted to detect when SoftHSM instance is gone.
+The destruction of the std::unique_ptr object cannot be modified directly
+so use the SoftHSM destructor instead.
+
+The destructor is also called in C_Finalize() when the global object is
+reset, so clear objects_deleted in this case. Otherwice C_Initialize()
+after C_Finalize() will fail.
+
+Fixes (Maybe) #729.
+---
+ src/lib/SoftHSM.cpp | 5 ++
+ src/lib/main.cpp | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 143 insertions(+)
+
+diff --git a/src/lib/SoftHSM.cpp b/src/lib/SoftHSM.cpp
+index 0a0c32cc68dc..384bd4336b44 100644
+--- a/src/lib/SoftHSM.cpp
++++ b/src/lib/SoftHSM.cpp
+@@ -88,6 +88,8 @@
+
+ // Initialise the one-and-only instance
+
++int objects_deleted = 0;
++
+ #ifdef HAVE_CXX11
+
+ std::unique_ptr<MutexFactory> MutexFactory::instance(nullptr);
+@@ -367,6 +369,8 @@ void SoftHSM::reset()
+ {
+ if (instance.get())
+ instance.reset();
++
++ objects_deleted = 0;
+ }
+
+ // Constructor
+@@ -406,6 +410,7 @@ SoftHSM::~SoftHSM()
+
+ isInitialised = false;
+
++ objects_deleted = 1;
+ resetMutexFactoryCallbacks();
+ }
+
+diff --git a/src/lib/main.cpp b/src/lib/main.cpp
+index 2dfd0eb87164..e89f18c1096e 100644
+--- a/src/lib/main.cpp
++++ b/src/lib/main.cpp
+@@ -49,6 +49,8 @@
+ #define PKCS_API
+ #endif
+
++extern int objects_deleted;
++
+ // PKCS #11 function list
+ static CK_FUNCTION_LIST functionList =
+ {
+@@ -130,6 +132,8 @@ PKCS_API CK_RV C_Initialize(CK_VOID_PTR pInitArgs)
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_Initialize(pInitArgs);
+ }
+ catch (...)
+@@ -145,6 +149,8 @@ PKCS_API CK_RV C_Finalize(CK_VOID_PTR pReserved)
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_Finalize(pReserved);
+ }
+ catch (...)
+@@ -160,6 +166,8 @@ PKCS_API CK_RV C_GetInfo(CK_INFO_PTR pInfo)
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_GetInfo(pInfo);
+ }
+ catch (...)
+@@ -175,6 +183,8 @@ PKCS_API CK_RV C_GetFunctionList(CK_FUNCTION_LIST_PTR_PTR ppFunctionList)
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ if (ppFunctionList == NULL_PTR) return CKR_ARGUMENTS_BAD;
+
+ *ppFunctionList = &functionList;
+@@ -194,6 +204,8 @@ PKCS_API CK_RV C_GetSlotList(CK_BBOOL tokenPresent, CK_SLOT_ID_PTR pSlotList, CK
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_GetSlotList(tokenPresent, pSlotList, pulCount);
+ }
+ catch (...)
+@@ -209,6 +221,8 @@ PKCS_API CK_RV C_GetSlotInfo(CK_SLOT_ID slotID, CK_SLOT_INFO_PTR pInfo)
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_GetSlotInfo(slotID, pInfo);
+ }
+ catch (...)
+@@ -224,6 +238,8 @@ PKCS_API CK_RV C_GetTokenInfo(CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR pInfo)
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_GetTokenInfo(slotID, pInfo);
+ }
+ catch (...)
+@@ -239,6 +255,8 @@ PKCS_API CK_RV C_GetMechanismList(CK_SLOT_ID slotID, CK_MECHANISM_TYPE_PTR pMech
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_GetMechanismList(slotID, pMechanismList, pulCount);
+ }
+ catch (...)
+@@ -254,6 +272,8 @@ PKCS_API CK_RV C_GetMechanismInfo(CK_SLOT_ID slotID, CK_MECHANISM_TYPE type, CK_
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_GetMechanismInfo(slotID, type, pInfo);
+ }
+ catch (...)
+@@ -269,6 +289,8 @@ PKCS_API CK_RV C_InitToken(CK_SLOT_ID slotID, CK_UTF8CHAR_PTR pPin, CK_ULONG ulP
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_InitToken(slotID, pPin, ulPinLen, pLabel);
+ }
+ catch (...)
+@@ -284,6 +306,8 @@ PKCS_API CK_RV C_InitPIN(CK_SESSION_HANDLE hSession, CK_UTF8CHAR_PTR pPin, CK_UL
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_InitPIN(hSession, pPin, ulPinLen);
+ }
+ catch (...)
+@@ -299,6 +323,8 @@ PKCS_API CK_RV C_SetPIN(CK_SESSION_HANDLE hSession, CK_UTF8CHAR_PTR pOldPin, CK_
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_SetPIN(hSession, pOldPin, ulOldLen, pNewPin, ulNewLen);
+ }
+ catch (...)
+@@ -314,6 +340,8 @@ PKCS_API CK_RV C_OpenSession(CK_SLOT_ID slotID, CK_FLAGS flags, CK_VOID_PTR pApp
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_OpenSession(slotID, flags, pApplication, notify, phSession);
+ }
+ catch (...)
+@@ -329,6 +357,8 @@ PKCS_API CK_RV C_CloseSession(CK_SESSION_HANDLE hSession)
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_CloseSession(hSession);
+ }
+ catch (...)
+@@ -344,6 +374,8 @@ PKCS_API CK_RV C_CloseAllSessions(CK_SLOT_ID slotID)
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_CloseAllSessions(slotID);
+ }
+ catch (...)
+@@ -359,6 +391,8 @@ PKCS_API CK_RV C_GetSessionInfo(CK_SESSION_HANDLE hSession, CK_SESSION_INFO_PTR
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_GetSessionInfo(hSession, pInfo);
+ }
+ catch (...)
+@@ -374,6 +408,8 @@ PKCS_API CK_RV C_GetOperationState(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOper
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_GetOperationState(hSession, pOperationState, pulOperationStateLen);
+ }
+ catch (...)
+@@ -389,6 +425,8 @@ PKCS_API CK_RV C_SetOperationState(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOper
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_SetOperationState(hSession, pOperationState, ulOperationStateLen, hEncryptionKey, hAuthenticationKey);
+ }
+ catch (...)
+@@ -404,6 +442,8 @@ PKCS_API CK_RV C_Login(CK_SESSION_HANDLE hSession, CK_USER_TYPE userType, CK_UTF
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_Login(hSession, userType, pPin, ulPinLen);
+ }
+ catch (...)
+@@ -419,6 +459,8 @@ PKCS_API CK_RV C_Logout(CK_SESSION_HANDLE hSession)
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_Logout(hSession);
+ }
+ catch (...)
+@@ -434,6 +476,8 @@ PKCS_API CK_RV C_CreateObject(CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemp
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_CreateObject(hSession, pTemplate, ulCount, phObject);
+ }
+ catch (...)
+@@ -449,6 +493,8 @@ PKCS_API CK_RV C_CopyObject(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_CopyObject(hSession, hObject, pTemplate, ulCount, phNewObject);
+ }
+ catch (...)
+@@ -464,6 +510,8 @@ PKCS_API CK_RV C_DestroyObject(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObj
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_DestroyObject(hSession, hObject);
+ }
+ catch (...)
+@@ -479,6 +527,8 @@ PKCS_API CK_RV C_GetObjectSize(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObj
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_GetObjectSize(hSession, hObject, pulSize);
+ }
+ catch (...)
+@@ -494,6 +544,8 @@ PKCS_API CK_RV C_GetAttributeValue(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_GetAttributeValue(hSession, hObject, pTemplate, ulCount);
+ }
+ catch (...)
+@@ -509,6 +561,8 @@ PKCS_API CK_RV C_SetAttributeValue(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_SetAttributeValue(hSession, hObject, pTemplate, ulCount);
+ }
+ catch (...)
+@@ -524,6 +578,8 @@ PKCS_API CK_RV C_FindObjectsInit(CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pT
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_FindObjectsInit(hSession, pTemplate, ulCount);
+ }
+ catch (...)
+@@ -539,6 +595,8 @@ PKCS_API CK_RV C_FindObjects(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE_PTR ph
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_FindObjects(hSession, phObject, ulMaxObjectCount, pulObjectCount);
+ }
+ catch (...)
+@@ -554,6 +612,8 @@ PKCS_API CK_RV C_FindObjectsFinal(CK_SESSION_HANDLE hSession)
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_FindObjectsFinal(hSession);
+ }
+ catch (...)
+@@ -569,6 +629,8 @@ PKCS_API CK_RV C_EncryptInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMecha
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_EncryptInit(hSession, pMechanism, hObject);
+ }
+ catch (...)
+@@ -584,6 +646,8 @@ PKCS_API CK_RV C_Encrypt(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_Encrypt(hSession, pData, ulDataLen, pEncryptedData, pulEncryptedDataLen);
+ }
+ catch (...)
+@@ -599,6 +663,8 @@ PKCS_API CK_RV C_EncryptUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_EncryptUpdate(hSession, pData, ulDataLen, pEncryptedData, pulEncryptedDataLen);
+ }
+ catch (...)
+@@ -614,6 +680,8 @@ PKCS_API CK_RV C_EncryptFinal(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncrypted
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_EncryptFinal(hSession, pEncryptedData, pulEncryptedDataLen);
+ }
+ catch (...)
+@@ -629,6 +697,8 @@ PKCS_API CK_RV C_DecryptInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMecha
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_DecryptInit(hSession, pMechanism, hObject);
+ }
+ catch (...)
+@@ -644,6 +714,8 @@ PKCS_API CK_RV C_Decrypt(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedData,
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_Decrypt(hSession, pEncryptedData, ulEncryptedDataLen, pData, pulDataLen);
+ }
+ catch (...)
+@@ -659,6 +731,8 @@ PKCS_API CK_RV C_DecryptUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncrypte
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_DecryptUpdate(hSession, pEncryptedData, ulEncryptedDataLen, pData, pDataLen);
+ }
+ catch (...)
+@@ -674,6 +748,8 @@ PKCS_API CK_RV C_DecryptFinal(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_DecryptFinal(hSession, pData, pDataLen);
+ }
+ catch (...)
+@@ -689,6 +765,8 @@ PKCS_API CK_RV C_DigestInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechan
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_DigestInit(hSession, pMechanism);
+ }
+ catch (...)
+@@ -704,6 +782,8 @@ PKCS_API CK_RV C_Digest(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_Digest(hSession, pData, ulDataLen, pDigest, pulDigestLen);
+ }
+ catch (...)
+@@ -719,6 +799,8 @@ PKCS_API CK_RV C_DigestUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_DigestUpdate(hSession, pPart, ulPartLen);
+ }
+ catch (...)
+@@ -734,6 +816,8 @@ PKCS_API CK_RV C_DigestKey(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject)
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_DigestKey(hSession, hObject);
+ }
+ catch (...)
+@@ -749,6 +833,8 @@ PKCS_API CK_RV C_DigestFinal(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pDigest, CK
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_DigestFinal(hSession, pDigest, pulDigestLen);
+ }
+ catch (...)
+@@ -764,6 +850,8 @@ PKCS_API CK_RV C_SignInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanis
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_SignInit(hSession, pMechanism, hKey);
+ }
+ catch (...)
+@@ -779,6 +867,8 @@ PKCS_API CK_RV C_Sign(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ul
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_Sign(hSession, pData, ulDataLen, pSignature, pulSignatureLen);
+ }
+ catch (...)
+@@ -794,6 +884,8 @@ PKCS_API CK_RV C_SignUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_UL
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_SignUpdate(hSession, pPart, ulPartLen);
+ }
+ catch (...)
+@@ -809,6 +901,8 @@ PKCS_API CK_RV C_SignFinal(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, C
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_SignFinal(hSession, pSignature, pulSignatureLen);
+ }
+ catch (...)
+@@ -824,6 +918,8 @@ PKCS_API CK_RV C_SignRecoverInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pM
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_SignRecoverInit(hSession, pMechanism, hKey);
+ }
+ catch (...)
+@@ -839,6 +935,8 @@ PKCS_API CK_RV C_SignRecover(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_U
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_SignRecover(hSession, pData, ulDataLen, pSignature, pulSignatureLen);
+ }
+ catch (...)
+@@ -854,6 +952,8 @@ PKCS_API CK_RV C_VerifyInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechan
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_VerifyInit(hSession, pMechanism, hKey);
+ }
+ catch (...)
+@@ -869,6 +969,8 @@ PKCS_API CK_RV C_Verify(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_Verify(hSession, pData, ulDataLen, pSignature, ulSignatureLen);
+ }
+ catch (...)
+@@ -884,6 +986,8 @@ PKCS_API CK_RV C_VerifyUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_VerifyUpdate(hSession, pPart, ulPartLen);
+ }
+ catch (...)
+@@ -899,6 +1003,8 @@ PKCS_API CK_RV C_VerifyFinal(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature,
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_VerifyFinal(hSession, pSignature, ulSignatureLen);
+ }
+ catch (...)
+@@ -914,6 +1020,8 @@ PKCS_API CK_RV C_VerifyRecoverInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_VerifyRecoverInit(hSession, pMechanism, hKey);
+ }
+ catch (...)
+@@ -929,6 +1037,8 @@ PKCS_API CK_RV C_VerifyRecover(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignatur
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_VerifyRecover(hSession, pSignature, ulSignatureLen, pData, pulDataLen);
+ }
+ catch (...)
+@@ -944,6 +1054,8 @@ PKCS_API CK_RV C_DigestEncryptUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPa
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_DigestEncryptUpdate(hSession, pPart, ulPartLen, pEncryptedPart, pulEncryptedPartLen);
+ }
+ catch (...)
+@@ -959,6 +1071,8 @@ PKCS_API CK_RV C_DecryptDigestUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPa
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_DecryptDigestUpdate(hSession, pPart, ulPartLen, pDecryptedPart, pulDecryptedPartLen);
+ }
+ catch (...)
+@@ -974,6 +1088,8 @@ PKCS_API CK_RV C_SignEncryptUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_SignEncryptUpdate(hSession, pPart, ulPartLen, pEncryptedPart, pulEncryptedPartLen);
+ }
+ catch (...)
+@@ -989,6 +1105,8 @@ PKCS_API CK_RV C_DecryptVerifyUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEn
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_DecryptVerifyUpdate(hSession, pEncryptedPart, ulEncryptedPartLen, pPart, pulPartLen);
+ }
+ catch (...)
+@@ -1004,6 +1122,8 @@ PKCS_API CK_RV C_GenerateKey(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMecha
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_GenerateKey(hSession, pMechanism, pTemplate, ulCount, phKey);
+ }
+ catch (...)
+@@ -1029,6 +1149,8 @@ PKCS_API CK_RV C_GenerateKeyPair
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_GenerateKeyPair(hSession, pMechanism, pPublicKeyTemplate, ulPublicKeyAttributeCount, pPrivateKeyTemplate, ulPrivateKeyAttributeCount, phPublicKey, phPrivateKey);
+ }
+ catch (...)
+@@ -1052,6 +1174,8 @@ PKCS_API CK_RV C_WrapKey
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_WrapKey(hSession, pMechanism, hWrappingKey, hKey, pWrappedKey, pulWrappedKeyLen);
+ }
+ catch (...)
+@@ -1077,6 +1201,8 @@ PKCS_API CK_RV C_UnwrapKey
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_UnwrapKey(hSession, pMechanism, hUnwrappingKey, pWrappedKey, ulWrappedKeyLen, pTemplate, ulCount, phKey);
+ }
+ catch (...)
+@@ -1100,6 +1226,8 @@ PKCS_API CK_RV C_DeriveKey
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_DeriveKey(hSession, pMechanism, hBaseKey, pTemplate, ulCount, phKey);
+ }
+ catch (...)
+@@ -1115,6 +1243,8 @@ PKCS_API CK_RV C_SeedRandom(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSeed, CK_UL
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_SeedRandom(hSession, pSeed, ulSeedLen);
+ }
+ catch (...)
+@@ -1130,6 +1260,8 @@ PKCS_API CK_RV C_GenerateRandom(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pRandomD
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_GenerateRandom(hSession, pRandomData, ulRandomLen);
+ }
+ catch (...)
+@@ -1145,6 +1277,8 @@ PKCS_API CK_RV C_GetFunctionStatus(CK_SESSION_HANDLE hSession)
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_GetFunctionStatus(hSession);
+ }
+ catch (...)
+@@ -1160,6 +1294,8 @@ PKCS_API CK_RV C_CancelFunction(CK_SESSION_HANDLE hSession)
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_CancelFunction(hSession);
+ }
+ catch (...)
+@@ -1175,6 +1311,8 @@ PKCS_API CK_RV C_WaitForSlotEvent(CK_FLAGS flags, CK_SLOT_ID_PTR pSlot, CK_VOID_
+ {
+ try
+ {
++ if (objects_deleted == 1)
++ return CKR_FUNCTION_FAILED;
+ return SoftHSM::i()->C_WaitForSlotEvent(flags, pSlot, pReserved);
+ }
+ catch (...)
diff --git a/patches/softhsm-2.6.1/series b/patches/softhsm-2.6.1/series
new file mode 100644
index 000000000..01fa21a99
--- /dev/null
+++ b/patches/softhsm-2.6.1/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-Prevent-accessing-of-global-c-objects-once-they-are-.patch
+# 4e7b13f384378f31b3cf250e0be9d4c0 - git-ptx-patches magic
diff --git a/patches/squashfs4.4/0001-squashfs-tools-fix-build-failure-against-gcc-10.patch b/patches/squashfs4.4/0001-squashfs-tools-fix-build-failure-against-gcc-10.patch
deleted file mode 100644
index 3c6db8fff..000000000
--- a/patches/squashfs4.4/0001-squashfs-tools-fix-build-failure-against-gcc-10.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Sun, 26 Jan 2020 18:35:13 +0000
-Subject: [PATCH] squashfs-tools: fix build failure against gcc-10
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-On gcc-10 (and gcc-9 -fno-common) build fails as:
-
-```
-cc ... -o mksquashfs
-ld: read_fs.o:(.bss+0x0):
- multiple definition of `fwriter_buffer'; mksquashfs.o:(.bss+0x400c90): first defined here
-ld: read_fs.o:(.bss+0x8):
- multiple definition of `bwriter_buffer'; mksquashfs.o:(.bss+0x400c98): first defined here
-```
-
-gcc-10 will change the default from -fcommon to fno-common:
-https://gcc.gnu.org/PR85678.
-
-The error also happens if CFLAGS=-fno-common passed explicitly.
-
-Reported-by: Toralf Förster
-Bug: https://bugs.gentoo.org/706456
-Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
----
- squashfs-tools/mksquashfs.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/squashfs-tools/mksquashfs.h b/squashfs-tools/mksquashfs.h
-index 1beefef70495..b650306360fb 100644
---- a/squashfs-tools/mksquashfs.h
-+++ b/squashfs-tools/mksquashfs.h
-@@ -143,7 +143,7 @@ struct append_file {
- #endif
-
- extern struct cache *reader_buffer, *fragment_buffer, *reserve_cache;
--struct cache *bwriter_buffer, *fwriter_buffer;
-+extern struct cache *bwriter_buffer, *fwriter_buffer;
- extern struct queue *to_reader, *to_deflate, *to_writer, *from_writer,
- *to_frag, *locked_fragment, *to_process_frag;
- extern struct append_file **file_mapping;
diff --git a/patches/squashfs4.4/series b/patches/squashfs4.4/series
deleted file mode 100644
index 32a7a8465..000000000
--- a/patches/squashfs4.4/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-squashfs-tools-fix-build-failure-against-gcc-10.patch
-# a4fb95a1d871f88525f2f224d1306058 - git-ptx-patches magic
diff --git a/patches/squashfs4.5.1/0001-don-t-try-to-generate-manpages.patch b/patches/squashfs4.5.1/0001-don-t-try-to-generate-manpages.patch
new file mode 100644
index 000000000..1dd1d6c43
--- /dev/null
+++ b/patches/squashfs4.5.1/0001-don-t-try-to-generate-manpages.patch
@@ -0,0 +1,21 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Thu, 15 Dec 2022 12:19:04 +0100
+Subject: [PATCH] don't try to generate manpages
+
+The script tries to execute mksquashfs which does not work for
+cross-compiling.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ squashfs-tools/Makefile | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/squashfs-tools/Makefile b/squashfs-tools/Makefile
+index 8b80b8a68c1b..3d147735f506 100755
+--- a/squashfs-tools/Makefile
++++ b/squashfs-tools/Makefile
+@@ -422,4 +422,3 @@ install: mksquashfs unsquashfs
+ cp unsquashfs $(INSTALL_DIR)
+ ln -fs unsquashfs $(INSTALL_DIR)/sqfscat
+ ln -fs mksquashfs $(INSTALL_DIR)/sqfstar
+- ../generate-manpages/install-manpages.sh $(shell pwd)/.. "$(INSTALL_MANPAGES_DIR)"
diff --git a/patches/squashfs4.5.1/series b/patches/squashfs4.5.1/series
new file mode 100644
index 000000000..107a293f5
--- /dev/null
+++ b/patches/squashfs4.5.1/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-don-t-try-to-generate-manpages.patch
+# 44bb5fb8b1cd672d1996e5c3879b55b2 - git-ptx-patches magic
diff --git a/patches/svgalib-1.9.25/0001-svgalib-disable-obsolete-drivers.patch b/patches/svgalib-1.9.25/0001-svgalib-disable-obsolete-drivers.patch
index dd628f4cc..9cf838e0c 100644
--- a/patches/svgalib-1.9.25/0001-svgalib-disable-obsolete-drivers.patch
+++ b/patches/svgalib-1.9.25/0001-svgalib-disable-obsolete-drivers.patch
@@ -1,17 +1,16 @@
-From 60de25f20cfe9516a1cf77e717c463f4668bc264 Mon Sep 17 00:00:00 2001
From: Robert Schwebel <r.schwebel@pengutronix.de>
Date: Thu, 16 Jun 2011 15:52:02 +0200
-Subject: [PATCH 1/3] svgalib: disable obsolete drivers
+Subject: [PATCH] svgalib: disable obsolete drivers
We only use fbdev and svga drivers in ptxdist.
Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
---
- Makefile.cfg | 116 +++++++++++++++++++++++++++++-----------------------------
- 1 files changed, 58 insertions(+), 58 deletions(-)
+ Makefile.cfg | 116 +++++++++++++++++++++++++++++------------------------------
+ 1 file changed, 58 insertions(+), 58 deletions(-)
diff --git a/Makefile.cfg b/Makefile.cfg
-index 6bc93d1..46c409c 100644
+index 6bc93d161a68..46c409c08ea5 100644
--- a/Makefile.cfg
+++ b/Makefile.cfg
@@ -151,78 +151,78 @@ INSTALLMODULE = installmodule
@@ -151,6 +150,3 @@ index 6bc93d1..46c409c 100644
#INCLUDE_FBDEV_DRIVER_TEST = y
---
-1.7.5.3
-
diff --git a/patches/svgalib-1.9.25/0002-svgalib-patch-taken-from-open-embedded.patch b/patches/svgalib-1.9.25/0002-svgalib-patch-taken-from-open-embedded.patch
index ae41680cd..098e81fd7 100644
--- a/patches/svgalib-1.9.25/0002-svgalib-patch-taken-from-open-embedded.patch
+++ b/patches/svgalib-1.9.25/0002-svgalib-patch-taken-from-open-embedded.patch
@@ -1,7 +1,6 @@
-From 0f014aa5cfea99e48365a7c9c83b192f34faf114 Mon Sep 17 00:00:00 2001
From: Robert Schwebel <r.schwebel@pengutronix.de>
Date: Thu, 16 Jun 2011 16:30:29 +0200
-Subject: [PATCH 2/3] svgalib: patch taken from open embedded
+Subject: [PATCH] svgalib: patch taken from open embedded
... with the usual bad patch quality. Needs to be cleaned up.
@@ -16,20 +15,20 @@ Subject: [PATCH 2/3] svgalib: patch taken from open embedded
Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
---
- kernel/svgalib_helper/Makefile | 2 +-
- kernel/svgalib_helper/Makefile.alt | 9 ++--
- kernel/svgalib_helper/Makefile.alt.orig | 84 +++++++++++++++++++++++++++++++
- kernel/svgalib_helper/kernel26compat.h | 42 ++++++++++++++--
- kernel/svgalib_helper/main.c | 30 ++++++++---
- lrmi-0.6m/lrmi.c | 8 +++
- lrmi-0.9/lrmi.c | 7 +++
- src/lrmi.6.c | 7 +++
- src/lrmi.9.c | 7 +++
+ kernel/svgalib_helper/Makefile | 2 +-
+ kernel/svgalib_helper/Makefile.alt | 9 ++--
+ kernel/svgalib_helper/Makefile.alt.orig | 84 +++++++++++++++++++++++++++++++++
+ kernel/svgalib_helper/kernel26compat.h | 42 +++++++++++++++--
+ kernel/svgalib_helper/main.c | 30 ++++++++----
+ lrmi-0.6m/lrmi.c | 8 ++++
+ lrmi-0.9/lrmi.c | 7 +++
+ src/lrmi.6.c | 7 +++
+ src/lrmi.9.c | 7 +++
9 files changed, 179 insertions(+), 17 deletions(-)
create mode 100644 kernel/svgalib_helper/Makefile.alt.orig
diff --git a/kernel/svgalib_helper/Makefile b/kernel/svgalib_helper/Makefile
-index f81511e..f9f4b4c 100644
+index f81511e16b11..f9f4b4c1ab05 100644
--- a/kernel/svgalib_helper/Makefile
+++ b/kernel/svgalib_helper/Makefile
@@ -25,7 +25,7 @@ else
@@ -42,7 +41,7 @@ index f81511e..f9f4b4c 100644
ifneq ($(CLASS_SIMPLE),)
CLASS_CFLAGS = -DCLASS_SIMPLE=1
diff --git a/kernel/svgalib_helper/Makefile.alt b/kernel/svgalib_helper/Makefile.alt
-index c78c169..778a35d 100644
+index c78c1693852b..778a35dfd03e 100644
--- a/kernel/svgalib_helper/Makefile.alt
+++ b/kernel/svgalib_helper/Makefile.alt
@@ -37,7 +37,7 @@ CFLAGS += $(INCLUDES)
@@ -77,7 +76,7 @@ index c78c169..778a35d 100644
rm -f /dev/svgalib_helper* /dev/svga_helper* /dev/svga /dev/svga?
diff --git a/kernel/svgalib_helper/Makefile.alt.orig b/kernel/svgalib_helper/Makefile.alt.orig
new file mode 100644
-index 0000000..c78c169
+index 000000000000..c78c1693852b
--- /dev/null
+++ b/kernel/svgalib_helper/Makefile.alt.orig
@@ -0,0 +1,84 @@
@@ -166,7 +165,7 @@ index 0000000..c78c169
+include .depend
+endif
diff --git a/kernel/svgalib_helper/kernel26compat.h b/kernel/svgalib_helper/kernel26compat.h
-index 01c3ab7..d671e12 100644
+index 01c3ab76339f..d671e1287570 100644
--- a/kernel/svgalib_helper/kernel26compat.h
+++ b/kernel/svgalib_helper/kernel26compat.h
@@ -10,7 +10,7 @@
@@ -251,7 +250,7 @@ index 01c3ab7..d671e12 100644
+# define IRQF_SHARED SA_SHIRQ
+#endif
diff --git a/kernel/svgalib_helper/main.c b/kernel/svgalib_helper/main.c
-index 1a7cdf1..36a4e56 100644
+index 1a7cdf18363f..36a4e56341d8 100644
--- a/kernel/svgalib_helper/main.c
+++ b/kernel/svgalib_helper/main.c
@@ -1,5 +1,3 @@
@@ -342,7 +341,7 @@ index 1a7cdf1..36a4e56 100644
diff --git a/lrmi-0.6m/lrmi.c b/lrmi-0.6m/lrmi.c
-index 8ed72f6..1a48045 100644
+index 8ed72f601cb7..1a4804556fc6 100644
--- a/lrmi-0.6m/lrmi.c
+++ b/lrmi-0.6m/lrmi.c
@@ -170,6 +170,14 @@ LRMI_free_real(void *m)
@@ -361,7 +360,7 @@ index 8ed72f6..1a48045 100644
#define DEFAULT_STACK_SIZE 0x1000
#define RETURN_TO_32_INT 255
diff --git a/lrmi-0.9/lrmi.c b/lrmi-0.9/lrmi.c
-index 892a63a..a299d69 100644
+index 892a63a9b39b..a299d69fff45 100644
--- a/lrmi-0.9/lrmi.c
+++ b/lrmi-0.9/lrmi.c
@@ -203,6 +203,13 @@ LRMI_free_real(void *m)
@@ -379,7 +378,7 @@ index 892a63a..a299d69 100644
#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
#define DEFAULT_VM86_FLAGS (PSL_I | PSL_IOPL)
diff --git a/src/lrmi.6.c b/src/lrmi.6.c
-index 75df7df..f713172 100644
+index 75df7df6a3d7..f7131724d177 100644
--- a/src/lrmi.6.c
+++ b/src/lrmi.6.c
@@ -169,6 +169,13 @@ LRMI_free_real(void *m)
@@ -397,7 +396,7 @@ index 75df7df..f713172 100644
#define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK)
#define DEFAULT_STACK_SIZE 0x1000
diff --git a/src/lrmi.9.c b/src/lrmi.9.c
-index 09cc6ae..3a83c5b 100644
+index 09cc6ae98805..3a83c5bb97dd 100644
--- a/src/lrmi.9.c
+++ b/src/lrmi.9.c
@@ -206,6 +206,13 @@ LRMI_free_real(void *m)
@@ -414,6 +413,3 @@ index 09cc6ae..3a83c5b 100644
#define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK)
#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
#define DEFAULT_VM86_FLAGS (PSL_I | PSL_IOPL)
---
-1.7.5.3
-
diff --git a/patches/svgalib-1.9.25/0003-svgalib-search-also-in-local-sharedlib-dir.patch b/patches/svgalib-1.9.25/0003-svgalib-search-also-in-local-sharedlib-dir.patch
index 76e495ed2..fa5211517 100644
--- a/patches/svgalib-1.9.25/0003-svgalib-search-also-in-local-sharedlib-dir.patch
+++ b/patches/svgalib-1.9.25/0003-svgalib-search-also-in-local-sharedlib-dir.patch
@@ -1,14 +1,13 @@
-From 57639dc85bf498e6ba147f274f5608c2ab715dc8 Mon Sep 17 00:00:00 2001
From: Robert Schwebel <r.schwebel@pengutronix.de>
Date: Thu, 16 Jun 2011 16:49:07 +0200
-Subject: [PATCH 3/3] svgalib: search also in local sharedlib dir
+Subject: [PATCH] svgalib: search also in local sharedlib dir
---
- demos/Makefile | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
+ demos/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/demos/Makefile b/demos/Makefile
-index f7052f3..37ef13b 100644
+index f7052f399bdd..37ef13be9faa 100644
--- a/demos/Makefile
+++ b/demos/Makefile
@@ -29,7 +29,7 @@ PROGS = fun testgl speedtest mousetest vgatest scrolltest testlinear \
@@ -20,6 +19,3 @@ index f7052f3..37ef13b 100644
endif
ifndef LIBS
LIBS = ../staticlib/libvgagl.a ../staticlib/libvga.a -lm
---
-1.7.5.3
-
diff --git a/patches/svgalib-1.9.25/0004-don-t-try-to-change-ld.so.conf-or-run-ldconfig.patch b/patches/svgalib-1.9.25/0004-don-t-try-to-change-ld.so.conf-or-run-ldconfig.patch
new file mode 100644
index 000000000..f80b8ab84
--- /dev/null
+++ b/patches/svgalib-1.9.25/0004-don-t-try-to-change-ld.so.conf-or-run-ldconfig.patch
@@ -0,0 +1,24 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Fri, 27 Jan 2023 10:02:38 +0100
+Subject: [PATCH] don't try to change ld.so.conf or run ldconfig
+
+It's unnecessary and doesn't work.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ Makefile | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 38a324445c9b..4c32b5046cc5 100644
+--- a/Makefile
++++ b/Makefile
+@@ -99,8 +99,6 @@ installsharedlib: $(SHAREDLIBS) $(SVGALIBSHAREDSTUBS)
+ (cd $(sharedlibdir); \
+ ln -sf $$foo `echo $$foo | sed 's/\.so\..*/.so/'` ); \
+ done
+- @./fixldsoconf
+- -ldconfig
+
+ installstaticlib: static
+ @echo Installing static libraries in $(libdir).
diff --git a/patches/svgalib-1.9.25/series b/patches/svgalib-1.9.25/series
index 793c9dfbb..3b89a3204 100644
--- a/patches/svgalib-1.9.25/series
+++ b/patches/svgalib-1.9.25/series
@@ -1,3 +1,7 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
0001-svgalib-disable-obsolete-drivers.patch
0002-svgalib-patch-taken-from-open-embedded.patch
0003-svgalib-search-also-in-local-sharedlib-dir.patch
+0004-don-t-try-to-change-ld.so.conf-or-run-ldconfig.patch
+# 4c02c504583d93a41790c1d6e226b2b6 - git-ptx-patches magic
diff --git a/patches/tcp_wrappers_7.6/series b/patches/tcp_wrappers_7.6/series
deleted file mode 100644
index a1196b028..000000000
--- a/patches/tcp_wrappers_7.6/series
+++ /dev/null
@@ -1,2 +0,0 @@
-tcp_wrappers_7.6-ptx1.diff
-tcp_wrappers-7.6-gcc34-1.patch
diff --git a/patches/tcp_wrappers_7.6/tcp_wrappers-7.6-gcc34-1.patch b/patches/tcp_wrappers_7.6/tcp_wrappers-7.6-gcc34-1.patch
deleted file mode 100644
index 52b1e1777..000000000
--- a/patches/tcp_wrappers_7.6/tcp_wrappers-7.6-gcc34-1.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Subject: [patch] fix 'conflicting types' bug
-From: Robert Schwebel <r.schwebel@pengutronix.de>
-
-Fix this:
-
-scaffold.c:28: error: conflicting types for 'malloc'
-scaffold.c:28: error: conflicting types for 'malloc'
-
-This patch was taken from LFS:
-http://www.linuxfromscratch.org/patches/downloads/tcp_wrappers/tcp_wrappers-7.6-gcc34-1.patch
-
-Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
-
----
-
----
- scaffold.c | 1 -
- 1 file changed, 1 deletion(-)
-
-Index: tcp_wrappers_7.6/scaffold.c
-===================================================================
---- tcp_wrappers_7.6.orig/scaffold.c
-+++ tcp_wrappers_7.6/scaffold.c
-@@ -25,7 +25,6 @@ static char sccs_id[] = "@(#) scaffold.c
- #define INADDR_NONE (-1) /* XXX should be 0xffffffff */
- #endif
-
--extern char *malloc();
-
- /* Application-specific. */
-
diff --git a/patches/tcp_wrappers_7.6/tcp_wrappers_7.6-ptx1.diff b/patches/tcp_wrappers_7.6/tcp_wrappers_7.6-ptx1.diff
deleted file mode 100644
index 41b499990..000000000
--- a/patches/tcp_wrappers_7.6/tcp_wrappers_7.6-ptx1.diff
+++ /dev/null
@@ -1,31 +0,0 @@
----
- Makefile | 2 +-
- percent_m.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-Index: tcp_wrappers_7.6/Makefile
-===================================================================
---- tcp_wrappers_7.6.orig/Makefile
-+++ tcp_wrappers_7.6/Makefile
-@@ -44,7 +44,7 @@ what:
- #REAL_DAEMON_DIR=/usr/etc
- #
- # SysV.4 Solaris 2.x OSF AIX
--#REAL_DAEMON_DIR=/usr/sbin
-+REAL_DAEMON_DIR=/usr/sbin
- #
- # BSD 4.4
- #REAL_DAEMON_DIR=/usr/libexec
-Index: tcp_wrappers_7.6/percent_m.c
-===================================================================
---- tcp_wrappers_7.6.orig/percent_m.c
-+++ tcp_wrappers_7.6/percent_m.c
-@@ -14,7 +14,7 @@ static char sccsid[] = "@(#) percent_m.c
-
- extern int errno;
- #ifndef SYS_ERRLIST_DEFINED
--extern char *sys_errlist[];
-+extern __const char *__const sys_errlist[];
- extern int sys_nerr;
- #endif
-
diff --git a/patches/thttpd-2.25b/0001-rename-getline-local_getline.patch b/patches/thttpd-2.25b/0001-rename-getline-local_getline.patch
deleted file mode 100644
index 46eff186e..000000000
--- a/patches/thttpd-2.25b/0001-rename-getline-local_getline.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Sun, 13 Feb 2011 22:47:34 +0100
-Subject: [PATCH] rename getline -> local_getline
-
-fixes a compile error with new toolchain:
-
-htpasswd.c:52:12: error: conflicting types for 'getline'
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- extras/htpasswd.c | 4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/extras/htpasswd.c b/extras/htpasswd.c
-index e01ea1d..9bcae4b 100644
---- a/extras/htpasswd.c
-+++ b/extras/htpasswd.c
-@@ -49,7 +49,7 @@ static void getword(char *word, char *line, char stop) {
- while((line[y++] = line[x++]));
- }
-
--static int getline(char *s, int n, FILE *f) {
-+static int local_getline(char *s, int n, FILE *f) {
- register int i=0;
-
- while(1) {
-@@ -189,7 +189,7 @@ int main(int argc, char *argv[]) {
- strcpy(user,argv[2]);
-
- found = 0;
-- while(!(getline(line,MAX_STRING_LEN,f))) {
-+ while(!(local_getline(line,MAX_STRING_LEN,f))) {
- if(found || (line[0] == '#') || (!line[0])) {
- putline(tfp,line);
- continue;
---
-1.7.2.3
-
diff --git a/patches/thttpd-2.25b/series b/patches/thttpd-2.25b/series
deleted file mode 100644
index b24d4dd40..000000000
--- a/patches/thttpd-2.25b/series
+++ /dev/null
@@ -1,3 +0,0 @@
-# generated by git-ptx-patches
-0001-rename-getline-local_getline.patch
-# 50452dc3179ed951c75a375716e84c73 - git-ptx-patches magic
diff --git a/patches/tree-2.1.0/0100-Makefile-Correct-prefix-handling-and-installation.patch b/patches/tree-2.1.0/0100-Makefile-Correct-prefix-handling-and-installation.patch
new file mode 100644
index 000000000..60fe88f94
--- /dev/null
+++ b/patches/tree-2.1.0/0100-Makefile-Correct-prefix-handling-and-installation.patch
@@ -0,0 +1,76 @@
+From: Christian Melki <christian.melki@t2data.com>
+Date: Wed, 4 Jan 2023 11:22:17 +0100
+Subject: [PATCH] Makefile: Correct prefix handling and installation
+
+Curly braces won't work.
+Just minimal effort variable handling cleaning.
+
+Signed-off-by: Christian Melki <christian.melki@t2data.com>
+---
+ Makefile | 19 ++++++++-----------
+ 1 file changed, 8 insertions(+), 11 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 752e55002c59..2a8e2a62b068 100644
+--- a/Makefile
++++ b/Makefile
+@@ -23,10 +23,9 @@ INSTALL=install
+
+ VERSION=2.1.0
+ TREE_DEST=tree
+-DESTDIR=${PREFIX}/bin
+ MAN=tree.1
+-# Probably needs to be ${PREFIX}/share/man for most systems now
+-MANDIR=${PREFIX}/man
++BINDIR=$(PREFIX)/bin
++MANDIR=$(PREFIX)/man/man1
+ OBJS=tree.o list.o hash.o color.o file.o filter.o info.o unix.o xml.o json.o html.o strverscmp.o
+
+ # Uncomment options below for your particular OS:
+@@ -51,7 +50,6 @@ CFLAGS+=-O3 -std=c11 -pedantic -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=6
+ #CC=cc
+ #CFLAGS+=-xO0 -v
+ #LDFLAGS+=
+-#MANDIR=${prefix}/share/man
+
+ # Uncomment for Cygwin:
+ #CFLAGS+=-O2 -Wall -fomit-frame-pointer
+@@ -63,22 +61,20 @@ CFLAGS+=-O3 -std=c11 -pedantic -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=6
+ #CC=cc
+ #CFLAGS+=-O2 -Wall -fomit-frame-pointer -no-cpp-precomp
+ #LDFLAGS+=
+-#MANDIR=${PREFIX}/share/man
+
+ # Uncomment for HP/UX:
+-#prefix=/opt
++#PREFIX=/opt
+ #CC=cc
+ # manpage of mbsrtowcs() requires C99 and the two defines
+ #CFLAGS+=+w -D_XOPEN_SOURCE=500 -D_POSIX_C_SOURCE=200112 -AC99
+ #LDFLAGS+=
+-#MANDIR=${PREFIX}/share/man
+
+ # Uncomment for OS/2:
+ #CFLAGS+=-02 -Wall -fomit-frame-pointer -Zomf -Zsmall-conv
+ #LDFLAGS+=-s -Zomf -Zsmall-conv
+
+ # Uncomment for HP NonStop:
+-#prefix = /opt
++#PREFIX=/opt
+ #CC=c89
+ #CFLAGS+=-Wextensions -WIEEE_float -g -Wnowarn=1506 -D_XOPEN_SOURCE_EXTENDED=1 \
+ # -Wallow_cplusplus_comments
+@@ -104,9 +100,10 @@ clean:
+
+ install: tree
+ $(INSTALL) -d $(DESTDIR)
+- $(INSTALL) -d $(MANDIR)/man1
+- $(INSTALL) $(TREE_DEST) $(DESTDIR)/$(TREE_DEST); \
+- $(INSTALL) -m 644 doc/$(MAN) $(MANDIR)/man1/$(MAN)
++ $(INSTALL) -d $(DESTDIR)$(BINDIR)
++ $(INSTALL) -d $(DESTDIR)$(MANDIR)
++ $(INSTALL) $(TREE_DEST) $(DESTDIR)$(BINDIR)/$(TREE_DEST)
++ $(INSTALL) -m 644 doc/$(MAN) $(DESTDIR)$(MANDIR)/$(MAN)
+
+ distclean:
+ rm -f *.o *~
diff --git a/patches/tree-2.1.0/series b/patches/tree-2.1.0/series
new file mode 100644
index 000000000..4096d016c
--- /dev/null
+++ b/patches/tree-2.1.0/series
@@ -0,0 +1,5 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+#tag:ptx --start-number 100
+0100-Makefile-Correct-prefix-handling-and-installation.patch
+# c6afa65ff4fa8096eb1f7c44d7fc7341 - git-ptx-patches magic
diff --git a/patches/unstrung-1.11.0/0001-main-interface-needs-argument.patch b/patches/unstrung-1.11.0/0001-main-interface-needs-argument.patch
deleted file mode 100644
index 33022ead6..000000000
--- a/patches/unstrung-1.11.0/0001-main-interface-needs-argument.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From: Alexander Aring <aar@pengutronix.de>
-Date: Tue, 26 Apr 2016 11:25:24 +0200
-Subject: [PATCH] main: interface needs argument
-
-The interface argument needs an argument otherwise optarg is NULL.
-
-Signed-off-by: Alexander Aring <aar@pengutronix.de>
----
- programs/sunshine/main.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/programs/sunshine/main.cpp b/programs/sunshine/main.cpp
-index 2128eb616fac..b005ccf42fd9 100644
---- a/programs/sunshine/main.cpp
-+++ b/programs/sunshine/main.cpp
-@@ -34,7 +34,7 @@ char *progname;
- static struct option const longopts[] =
- {
- { "help", 0, 0, '?'},
-- { "interface", 0, 0, 'i'},
-+ { "interface", 1, 0, 'i'},
- { "daemon", 0, 0, 'D'},
- { "prefix", 1, NULL, 'p'},
- { "ignore-pio",0, NULL, 'P'},
diff --git a/patches/unstrung-1.11.0/0002-main-remove-double-dagid-entry.patch b/patches/unstrung-1.11.0/0002-main-remove-double-dagid-entry.patch
deleted file mode 100644
index 802b7ea85..000000000
--- a/patches/unstrung-1.11.0/0002-main-remove-double-dagid-entry.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From: Alexander Aring <aar@pengutronix.de>
-Date: Tue, 26 Apr 2016 11:25:44 +0200
-Subject: [PATCH] main: remove double dagid entry
-
-Signed-off-by: Alexander Aring <aar@pengutronix.de>
----
- programs/sunshine/main.cpp | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/programs/sunshine/main.cpp b/programs/sunshine/main.cpp
-index b005ccf42fd9..98911c888ade 100644
---- a/programs/sunshine/main.cpp
-+++ b/programs/sunshine/main.cpp
-@@ -47,7 +47,6 @@ static struct option const longopts[] =
- { "sleep", 1, NULL, OPTION_SLEEP},
- { "interval", 1, NULL, 'W'},
- { "dagid", 1, NULL, 'G'},
-- { "dagid", 1, NULL, 'G'},
- { "rank", 1, NULL, 'R'},
- { "kill", 0, 0, 'K'},
- { "verbose", 0, 0, 'v'},
diff --git a/patches/unstrung-1.11.0/series b/patches/unstrung-1.11.0/series
deleted file mode 100644
index 21a45d9af..000000000
--- a/patches/unstrung-1.11.0/series
+++ /dev/null
@@ -1,5 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-main-interface-needs-argument.patch
-0002-main-remove-double-dagid-entry.patch
-# 248ced0a83ec2ee376156e1599d6779f - git-ptx-patches magic
diff --git a/patches/ustr-1.0.4/0001-makefile-make-it-possible-to-overwrite-binary-checks.patch b/patches/ustr-1.0.4/0001-makefile-make-it-possible-to-overwrite-binary-checks.patch
deleted file mode 100644
index 0f0b51891..000000000
--- a/patches/ustr-1.0.4/0001-makefile-make-it-possible-to-overwrite-binary-checks.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From: Wolfram Sang <w.sang@pengutronix.de>
-Date: Mon, 14 Jan 2013 13:20:11 +0100
-Subject: [PATCH] makefile: make it possible to overwrite binary checks
-
-ustr tries to determine 64bit and vsnprintf features by compiling and running
-test programs. Use value defined in ptxdist. Assume stdint.h as always there,
-as we are on linux.
-
-Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
-Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
----
- Makefile | 16 ++++++++++++++--
- 1 file changed, 14 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 7a0f31795067..9eab99bbe19b 100644
---- a/Makefile
-+++ b/Makefile
-@@ -457,12 +457,24 @@ ustr-import: ustr-import.in autoconf_64b autoconf_vsnprintf
-
- # Use CFLAGS so that CFLAGS="... -m32" does the right thing
- autoconf_64b: autoconf_64b.c
-+ifdef SZ64
-+ $(HIDE)echo "Faking: auto configuration test: 64bit=$(SZ64)"
-+ $(HIDE)echo "echo $(SZ64)" > $@
-+ $(HIDE)chmod +x $@
-+else
- $(HIDE)echo Compiling: auto configuration test: 64bit
- $(HIDE)$(CC) $(CFLAGS) -o $@ $<
-+endif
-
- autoconf_vsnprintf: autoconf_vsnprintf.c
-+ifdef VSNP
-+ $(HIDE)echo "Faking: auto configuration test: vsnprintf=$(VSNP)"
-+ $(HIDE)echo "echo $(VSNP)" > $@
-+ $(HIDE)chmod +x $@
-+else
- $(HIDE)echo Compiling: auto configuration test: vsnprintf
- $(HIDE)$(CC) -o $@ $<
-+endif
-
- # Use LDFLAGS for LDFLAGS="-m32"
- $(OPT_LIB_SHARED): $(LIB_SHARED_OPT)
-@@ -484,7 +496,7 @@ libustr-debug.a: $(LIB_STATIC_DBG)
-
- ustr-conf.h: ustr-conf.h.in autoconf_64b autoconf_vsnprintf
- $(HIDE)echo Creating $@
-- $(HIDE)have_stdint_h=0; dbg1=0; dbg2=0; \
-+ $(HIDE)have_stdint_h=1; dbg1=0; dbg2=0; \
- sz64=`./autoconf_64b`; vsnp=`./autoconf_vsnprintf`; \
- if test -f "/usr/include/stdint.h"; then have_stdint_h=1; fi; \
- if test -f "$(prefix)/include/stdint.h"; then have_stdint_h=1; fi; \
-@@ -493,7 +505,7 @@ ustr-conf.h: ustr-conf.h.in autoconf_64b autoconf_vsnprintf
-
- ustr-conf-debug.h: ustr-conf.h.in autoconf_64b autoconf_vsnprintf
- $(HIDE)echo Creating $@
-- $(HIDE)have_stdint_h=0; dbg1=1; dbg2=1; \
-+ $(HIDE)have_stdint_h=1; dbg1=1; dbg2=1; \
- sz64=`./autoconf_64b`; vsnp=`./autoconf_vsnprintf`; \
- if test -f "/usr/include/stdint.h"; then have_stdint_h=1; fi; \
- if test -f "$(prefix)/include/stdint.h"; then have_stdint_h=1; fi; \
diff --git a/patches/ustr-1.0.4/0002-fixes-gnu-inline.patch b/patches/ustr-1.0.4/0002-fixes-gnu-inline.patch
deleted file mode 100644
index 6f5c7d9f5..000000000
--- a/patches/ustr-1.0.4/0002-fixes-gnu-inline.patch
+++ /dev/null
@@ -1,875 +0,0 @@
-From: =?UTF-8?q?V=C3=A1clav=20Ovs=C3=ADk?= <vaclav.ovsik@gmail.com>
-Date: Wed, 2 Dec 2015 10:00:56 +0100
-Subject: [PATCH] fixes/gnu-inline
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch adds `__attribute__ ((gnu_inline))' into prototype macros
-before `inline' to force GNU89 behaviour of inline functions
-in C99 mode.
-See http://www.gnu.org/software/gcc/gcc-5/porting_to.html
-
-Signed-off-by: Václav Ovsík <vaclav.ovsik@gmail.com>
----
- ustr-b-dbg-code.c | 8 ++++----
- ustr-b-opt-code.c | 8 ++++----
- ustr-cmp-dbg-code.c | 8 ++++----
- ustr-cmp-opt-code.c | 8 ++++----
- ustr-compiler.h | 4 ++--
- ustr-fmt-dbg-code.c | 8 ++++----
- ustr-fmt-opt-code.c | 8 ++++----
- ustr-ins-dbg-code.c | 8 ++++----
- ustr-ins-opt-code.c | 8 ++++----
- ustr-io-dbg-code.c | 8 ++++----
- ustr-io-opt-code.c | 8 ++++----
- ustr-main-dbg-code.c | 2 +-
- ustr-main-opt-code.c | 2 +-
- ustr-parse-dbg-code.c | 8 ++++----
- ustr-parse-opt-code.c | 8 ++++----
- ustr-pool-dbg-code.c | 8 ++++----
- ustr-pool-opt-code.c | 8 ++++----
- ustr-replace-dbg-code.c | 8 ++++----
- ustr-replace-opt-code.c | 8 ++++----
- ustr-sc-dbg-code.c | 8 ++++----
- ustr-sc-opt-code.c | 8 ++++----
- ustr-set-dbg-code.c | 8 ++++----
- ustr-set-opt-code.c | 8 ++++----
- ustr-split-dbg-code.c | 8 ++++----
- ustr-split-opt-code.c | 8 ++++----
- ustr-spn-dbg-code.c | 8 ++++----
- ustr-spn-opt-code.c | 8 ++++----
- ustr-srch-dbg-code.c | 8 ++++----
- ustr-srch-opt-code.c | 8 ++++----
- ustr-sub-dbg-code.c | 8 ++++----
- ustr-sub-opt-code.c | 8 ++++----
- ustr-utf8-dbg-code.c | 8 ++++----
- ustr-utf8-opt-code.c | 8 ++++----
- 33 files changed, 124 insertions(+), 124 deletions(-)
-
-diff --git a/ustr-b-dbg-code.c b/ustr-b-dbg-code.c
-index 4a7fdac3f68b..60e383e7db36 100644
---- a/ustr-b-dbg-code.c
-+++ b/ustr-b-dbg-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf-debug.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS
- #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1
-@@ -16,5 +16,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-b.h"
-diff --git a/ustr-b-opt-code.c b/ustr-b-opt-code.c
-index 45e9e87c522f..4011898e341e 100644
---- a/ustr-b-opt-code.c
-+++ b/ustr-b-opt-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS
- #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1
-@@ -16,5 +16,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-b.h"
-diff --git a/ustr-cmp-dbg-code.c b/ustr-cmp-dbg-code.c
-index 7b8af33c0c3b..4c3adc241566 100644
---- a/ustr-cmp-dbg-code.c
-+++ b/ustr-cmp-dbg-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf-debug.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS
- #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1
-@@ -16,5 +16,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-cmp.h"
-diff --git a/ustr-cmp-opt-code.c b/ustr-cmp-opt-code.c
-index 2076d1cd9831..ff5d02c09b17 100644
---- a/ustr-cmp-opt-code.c
-+++ b/ustr-cmp-opt-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS
- #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1
-@@ -16,5 +16,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-cmp.h"
-diff --git a/ustr-compiler.h b/ustr-compiler.h
-index 9e7127697db3..38ae0268c631 100644
---- a/ustr-compiler.h
-+++ b/ustr-compiler.h
-@@ -92,7 +92,7 @@
- #endif
-
- #if USTR_CONF_COMPILE_USE_INLINE
--#define USTR__INLINE inline
-+#define USTR__INLINE __attribute__ ((gnu_inline)) inline
- #else
- #define USTR__INLINE /* no inline */
- #endif
-@@ -123,7 +123,7 @@
- # if USTR_CONF_INCLUDE_CODEONLY_HEADERS
- # define USTR_CONF_II_PROTO static USTR__INLINE
- # else
--# define USTR_CONF_II_PROTO extern inline
-+# define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- # endif
- #endif
-
-diff --git a/ustr-fmt-dbg-code.c b/ustr-fmt-dbg-code.c
-index 4249bb127ee3..1f147a0e3afa 100644
---- a/ustr-fmt-dbg-code.c
-+++ b/ustr-fmt-dbg-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf-debug.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS
- #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1
-@@ -16,5 +16,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-fmt.h"
-diff --git a/ustr-fmt-opt-code.c b/ustr-fmt-opt-code.c
-index c73e3752ac03..989b29f24827 100644
---- a/ustr-fmt-opt-code.c
-+++ b/ustr-fmt-opt-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS
- #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1
-@@ -16,5 +16,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-fmt.h"
-diff --git a/ustr-ins-dbg-code.c b/ustr-ins-dbg-code.c
-index 39f9bba6561d..4c6d5ea0dd8a 100644
---- a/ustr-ins-dbg-code.c
-+++ b/ustr-ins-dbg-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf-debug.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #include "ustr-fmt.h"
- #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS
-@@ -17,5 +17,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-ins.h"
-diff --git a/ustr-ins-opt-code.c b/ustr-ins-opt-code.c
-index 1aca8276e1e7..859b44d638ac 100644
---- a/ustr-ins-opt-code.c
-+++ b/ustr-ins-opt-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #include "ustr-fmt.h"
- #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS
-@@ -17,5 +17,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-ins.h"
-diff --git a/ustr-io-dbg-code.c b/ustr-io-dbg-code.c
-index c361c936da01..d42e43f0286d 100644
---- a/ustr-io-dbg-code.c
-+++ b/ustr-io-dbg-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf-debug.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS
- #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1
-@@ -16,5 +16,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-io.h"
-diff --git a/ustr-io-opt-code.c b/ustr-io-opt-code.c
-index b1b452564237..ae8de8774eeb 100644
---- a/ustr-io-opt-code.c
-+++ b/ustr-io-opt-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS
- #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1
-@@ -16,5 +16,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-io.h"
-diff --git a/ustr-main-dbg-code.c b/ustr-main-dbg-code.c
-index 4b821ce96788..abaa53a814cb 100644
---- a/ustr-main-dbg-code.c
-+++ b/ustr-main-dbg-code.c
-@@ -7,5 +7,5 @@
- #define USTR_CONF_E_PROTO extern
- #define USTR_CONF_I_PROTO
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
-diff --git a/ustr-main-opt-code.c b/ustr-main-opt-code.c
-index 233fb60d05c8..7ef6e988cb45 100644
---- a/ustr-main-opt-code.c
-+++ b/ustr-main-opt-code.c
-@@ -7,5 +7,5 @@
- #define USTR_CONF_E_PROTO extern
- #define USTR_CONF_I_PROTO
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
-diff --git a/ustr-parse-dbg-code.c b/ustr-parse-dbg-code.c
-index c9653afc35fa..6e1707d1082a 100644
---- a/ustr-parse-dbg-code.c
-+++ b/ustr-parse-dbg-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf-debug.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS
- #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1
-@@ -16,5 +16,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-parse.h"
-diff --git a/ustr-parse-opt-code.c b/ustr-parse-opt-code.c
-index 0c8df4db34ae..fc96db23d3a0 100644
---- a/ustr-parse-opt-code.c
-+++ b/ustr-parse-opt-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS
- #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1
-@@ -16,5 +16,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-parse.h"
-diff --git a/ustr-pool-dbg-code.c b/ustr-pool-dbg-code.c
-index adf751990a8d..957f9ca65b43 100644
---- a/ustr-pool-dbg-code.c
-+++ b/ustr-pool-dbg-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf-debug.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS
- #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1
-@@ -16,5 +16,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-pool.h"
-diff --git a/ustr-pool-opt-code.c b/ustr-pool-opt-code.c
-index 2b0367c13022..c1b24131e03d 100644
---- a/ustr-pool-opt-code.c
-+++ b/ustr-pool-opt-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS
- #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1
-@@ -16,5 +16,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-pool.h"
-diff --git a/ustr-replace-dbg-code.c b/ustr-replace-dbg-code.c
-index fe0218730dfc..90531ac4ad51 100644
---- a/ustr-replace-dbg-code.c
-+++ b/ustr-replace-dbg-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf-debug.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #include "ustr-set.h"
- #include "ustr-srch.h"
-@@ -19,5 +19,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-replace.h"
-diff --git a/ustr-replace-opt-code.c b/ustr-replace-opt-code.c
-index e76b3bbf0468..6232753831a4 100644
---- a/ustr-replace-opt-code.c
-+++ b/ustr-replace-opt-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #include "ustr-set.h"
- #include "ustr-srch.h"
-@@ -19,5 +19,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-replace.h"
-diff --git a/ustr-sc-dbg-code.c b/ustr-sc-dbg-code.c
-index 0011c63b3074..d7ce3174d79c 100644
---- a/ustr-sc-dbg-code.c
-+++ b/ustr-sc-dbg-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf-debug.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #include "ustr-spn.h"
- #include "ustr-utf8.h"
-@@ -18,5 +18,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-sc.h"
-diff --git a/ustr-sc-opt-code.c b/ustr-sc-opt-code.c
-index 7cb81ba5d8be..4a97ed9109c9 100644
---- a/ustr-sc-opt-code.c
-+++ b/ustr-sc-opt-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #include "ustr-spn.h"
- #include "ustr-utf8.h"
-@@ -18,5 +18,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-sc.h"
-diff --git a/ustr-set-dbg-code.c b/ustr-set-dbg-code.c
-index 023875ac5058..cf7707140b5a 100644
---- a/ustr-set-dbg-code.c
-+++ b/ustr-set-dbg-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf-debug.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #include "ustr-fmt.h"
- #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS
-@@ -17,5 +17,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-set.h"
-diff --git a/ustr-set-opt-code.c b/ustr-set-opt-code.c
-index e72688898885..34dcaf6849d0 100644
---- a/ustr-set-opt-code.c
-+++ b/ustr-set-opt-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #include "ustr-fmt.h"
- #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS
-@@ -17,5 +17,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-set.h"
-diff --git a/ustr-split-dbg-code.c b/ustr-split-dbg-code.c
-index 03e5ca51cbfb..e40d2a599740 100644
---- a/ustr-split-dbg-code.c
-+++ b/ustr-split-dbg-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf-debug.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #include "ustr-set.h"
- #include "ustr-spn.h"
-@@ -19,5 +19,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-split.h"
-diff --git a/ustr-split-opt-code.c b/ustr-split-opt-code.c
-index d64e3003e61a..74f4b1c46327 100644
---- a/ustr-split-opt-code.c
-+++ b/ustr-split-opt-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #include "ustr-set.h"
- #include "ustr-spn.h"
-@@ -19,5 +19,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-split.h"
-diff --git a/ustr-spn-dbg-code.c b/ustr-spn-dbg-code.c
-index ff97432885c7..b0b09d4dee5d 100644
---- a/ustr-spn-dbg-code.c
-+++ b/ustr-spn-dbg-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf-debug.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #include "ustr-srch.h"
- #include "ustr-utf8.h"
-@@ -18,5 +18,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-spn.h"
-diff --git a/ustr-spn-opt-code.c b/ustr-spn-opt-code.c
-index 3ff0a079bb5f..92c5ccc40a8d 100644
---- a/ustr-spn-opt-code.c
-+++ b/ustr-spn-opt-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #include "ustr-srch.h"
- #include "ustr-utf8.h"
-@@ -18,5 +18,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-spn.h"
-diff --git a/ustr-srch-dbg-code.c b/ustr-srch-dbg-code.c
-index 40e4dbfb230f..0f4da216dd7f 100644
---- a/ustr-srch-dbg-code.c
-+++ b/ustr-srch-dbg-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf-debug.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #include "ustr-cmp-internal.h"
- #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS
-@@ -17,6 +17,6 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-srch.h"
-
-diff --git a/ustr-srch-opt-code.c b/ustr-srch-opt-code.c
-index 635464d1ab82..8dde13dde4ae 100644
---- a/ustr-srch-opt-code.c
-+++ b/ustr-srch-opt-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #include "ustr-cmp-internal.h"
- #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS
-@@ -17,6 +17,6 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-srch.h"
-
-diff --git a/ustr-sub-dbg-code.c b/ustr-sub-dbg-code.c
-index f994716564d2..b1712e6b40e7 100644
---- a/ustr-sub-dbg-code.c
-+++ b/ustr-sub-dbg-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf-debug.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #include "ustr-fmt.h"
- #include "ustr-ins.h"
-@@ -19,5 +19,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-sub.h"
-diff --git a/ustr-sub-opt-code.c b/ustr-sub-opt-code.c
-index 8cdb4ebe741b..91780c790450 100644
---- a/ustr-sub-opt-code.c
-+++ b/ustr-sub-opt-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #include "ustr-fmt.h"
- #include "ustr-ins.h"
-@@ -19,5 +19,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-sub.h"
-diff --git a/ustr-utf8-dbg-code.c b/ustr-utf8-dbg-code.c
-index 2666fc26f7b8..30786e991055 100644
---- a/ustr-utf8-dbg-code.c
-+++ b/ustr-utf8-dbg-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf-debug.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS
- #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1
-@@ -16,5 +16,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-utf8.h"
-diff --git a/ustr-utf8-opt-code.c b/ustr-utf8-opt-code.c
-index 91fa75401178..abdf4c0727f2 100644
---- a/ustr-utf8-opt-code.c
-+++ b/ustr-utf8-opt-code.c
-@@ -3,11 +3,11 @@
- #include "ustr-conf.h"
- #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
- #define USTR_CONF_e_PROTO extern
--#define USTR_CONF_i_PROTO extern inline
-+#define USTR_CONF_i_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_E_PROTO extern
--#define USTR_CONF_I_PROTO extern inline
-+#define USTR_CONF_I_PROTO extern __attribute__ ((gnu_inline)) inline
- #define USTR_CONF_EI_PROTO extern
--#define USTR_CONF_II_PROTO extern inline
-+#define USTR_CONF_II_PROTO extern __attribute__ ((gnu_inline)) inline
- #include "ustr-main.h"
- #undef USTR_CONF_INCLUDE_CODEONLY_HEADERS
- #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1
-@@ -16,5 +16,5 @@
- #undef USTR_CONF_I_PROTO
- #define USTR_CONF_I_PROTO
- #undef USTR_CONF_II_PROTO
--#define USTR_CONF_II_PROTO inline
-+#define USTR_CONF_II_PROTO __attribute__ ((gnu_inline)) inline
- #include "ustr-utf8.h"
diff --git a/patches/ustr-1.0.4/series b/patches/ustr-1.0.4/series
deleted file mode 100644
index b4cf0691b..000000000
--- a/patches/ustr-1.0.4/series
+++ /dev/null
@@ -1,5 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-makefile-make-it-possible-to-overwrite-binary-checks.patch
-0002-fixes-gnu-inline.patch
-# a5d3b61715d72e5bada7c2b16481b1b7 - git-ptx-patches magic
diff --git a/patches/valgrind-3.16.1/autogen.sh b/patches/valgrind-3.16.1/autogen.sh
deleted file mode 120000
index 9f8a4cb7d..000000000
--- a/patches/valgrind-3.16.1/autogen.sh
+++ /dev/null
@@ -1 +0,0 @@
-../autogen.sh \ No newline at end of file
diff --git a/patches/valgrind-3.16.1/0001-configure.ac-allow-all-arm-don-t-restrict-to-armv7.patch b/patches/valgrind-3.22.0/0001-configure.ac-allow-all-arm-don-t-restrict-to-armv7.patch
index 454fc3512..74722f044 100644
--- a/patches/valgrind-3.16.1/0001-configure.ac-allow-all-arm-don-t-restrict-to-armv7.patch
+++ b/patches/valgrind-3.22.0/0001-configure.ac-allow-all-arm-don-t-restrict-to-armv7.patch
@@ -10,10 +10,10 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
-index b86e802204ee..c5c1eccfe3b4 100755
+index bf024aca7374..2944d81213ae 100755
--- a/configure.ac
+++ b/configure.ac
-@@ -252,7 +252,7 @@ case "${host_cpu}" in
+@@ -271,7 +271,7 @@ case "${host_cpu}" in
ARCH_MAX="s390x"
;;
diff --git a/patches/valgrind-3.16.1/0002-make-kernel-version-a-autoconf-cache-variable.patch b/patches/valgrind-3.22.0/0002-make-kernel-version-a-autoconf-cache-variable.patch
index d1fc29d46..996320e74 100644
--- a/patches/valgrind-3.16.1/0002-make-kernel-version-a-autoconf-cache-variable.patch
+++ b/patches/valgrind-3.22.0/0002-make-kernel-version-a-autoconf-cache-variable.patch
@@ -8,10 +8,10 @@ Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/configure.ac b/configure.ac
-index c5c1eccfe3b4..54518bfa0cc5 100755
+index 2944d81213ae..baa13198cecf 100755
--- a/configure.ac
+++ b/configure.ac
-@@ -345,16 +345,17 @@ case "${host_os}" in
+@@ -364,16 +364,17 @@ case "${host_os}" in
# Ok, this is linux. Check the kernel version
AC_MSG_CHECKING([for the kernel version])
diff --git a/patches/mobile-broadband-provider-info-20190618/autogen.sh b/patches/valgrind-3.22.0/autogen.sh
index 9f8a4cb7d..9f8a4cb7d 120000
--- a/patches/mobile-broadband-provider-info-20190618/autogen.sh
+++ b/patches/valgrind-3.22.0/autogen.sh
diff --git a/patches/valgrind-3.16.1/series b/patches/valgrind-3.22.0/series
index ce22fcaa7..ce22fcaa7 100644
--- a/patches/valgrind-3.16.1/series
+++ b/patches/valgrind-3.22.0/series
diff --git a/patches/vkrunner-2023-10-29-g93cbb7b1cca7/0001-Add-Cargo.lock.patch b/patches/vkrunner-2023-10-29-g93cbb7b1cca7/0001-Add-Cargo.lock.patch
new file mode 100644
index 000000000..5258acb97
--- /dev/null
+++ b/patches/vkrunner-2023-10-29-g93cbb7b1cca7/0001-Add-Cargo.lock.patch
@@ -0,0 +1,460 @@
+From: Philipp Zabel <p.zabel@pengutronix.de>
+Date: Fri, 8 Mar 2024 11:08:17 +0100
+Subject: [PATCH] Add Cargo.lock
+
+Add missing Cargo.lock.
+---
+ Cargo.lock | 444 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 444 insertions(+)
+ create mode 100644 Cargo.lock
+
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 000000000000..cfa55bc79c86
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,444 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++version = 3
++
++[[package]]
++name = "aho-corasick"
++version = "1.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
++dependencies = [
++ "memchr",
++]
++
++[[package]]
++name = "bindgen"
++version = "0.66.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7"
++dependencies = [
++ "bitflags",
++ "cexpr",
++ "clang-sys",
++ "lazy_static",
++ "lazycell",
++ "log",
++ "peeking_take_while",
++ "prettyplease",
++ "proc-macro2",
++ "quote",
++ "regex",
++ "rustc-hash",
++ "shlex",
++ "syn",
++ "which",
++]
++
++[[package]]
++name = "bitflags"
++version = "2.4.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
++
++[[package]]
++name = "cexpr"
++version = "0.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
++dependencies = [
++ "nom",
++]
++
++[[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 = "1.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
++dependencies = [
++ "glob",
++ "libc",
++ "libloading",
++]
++
++[[package]]
++name = "either"
++version = "1.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
++
++[[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 = "glob"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
++
++[[package]]
++name = "home"
++version = "0.5.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
++dependencies = [
++ "windows-sys 0.48.0",
++]
++
++[[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.150"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
++
++[[package]]
++name = "libloading"
++version = "0.7.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
++dependencies = [
++ "cfg-if",
++ "winapi",
++]
++
++[[package]]
++name = "linux-raw-sys"
++version = "0.4.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829"
++
++[[package]]
++name = "log"
++version = "0.4.20"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
++
++[[package]]
++name = "memchr"
++version = "2.6.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
++
++[[package]]
++name = "minimal-lexical"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
++
++[[package]]
++name = "nom"
++version = "7.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
++dependencies = [
++ "memchr",
++ "minimal-lexical",
++]
++
++[[package]]
++name = "once_cell"
++version = "1.18.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
++
++[[package]]
++name = "peeking_take_while"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
++
++[[package]]
++name = "prettyplease"
++version = "0.2.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d"
++dependencies = [
++ "proc-macro2",
++ "syn",
++]
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.70"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
++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 = "regex"
++version = "1.10.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
++dependencies = [
++ "aho-corasick",
++ "memchr",
++ "regex-automata",
++ "regex-syntax",
++]
++
++[[package]]
++name = "regex-automata"
++version = "0.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
++dependencies = [
++ "aho-corasick",
++ "memchr",
++ "regex-syntax",
++]
++
++[[package]]
++name = "regex-syntax"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
++
++[[package]]
++name = "rustc-hash"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
++
++[[package]]
++name = "rustix"
++version = "0.38.25"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e"
++dependencies = [
++ "bitflags",
++ "errno",
++ "libc",
++ "linux-raw-sys",
++ "windows-sys 0.48.0",
++]
++
++[[package]]
++name = "shlex"
++version = "1.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
++
++[[package]]
++name = "syn"
++version = "2.0.39"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-ident",
++]
++
++[[package]]
++name = "unicode-ident"
++version = "1.0.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
++
++[[package]]
++name = "vkrunner"
++version = "0.1.0"
++dependencies = [
++ "bindgen",
++]
++
++[[package]]
++name = "which"
++version = "4.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
++dependencies = [
++ "either",
++ "home",
++ "once_cell",
++ "rustix",
++]
++
++[[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-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.48.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
++dependencies = [
++ "windows-targets 0.48.5",
++]
++
++[[package]]
++name = "windows-sys"
++version = "0.52.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
++dependencies = [
++ "windows-targets 0.52.0",
++]
++
++[[package]]
++name = "windows-targets"
++version = "0.48.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
++dependencies = [
++ "windows_aarch64_gnullvm 0.48.5",
++ "windows_aarch64_msvc 0.48.5",
++ "windows_i686_gnu 0.48.5",
++ "windows_i686_msvc 0.48.5",
++ "windows_x86_64_gnu 0.48.5",
++ "windows_x86_64_gnullvm 0.48.5",
++ "windows_x86_64_msvc 0.48.5",
++]
++
++[[package]]
++name = "windows-targets"
++version = "0.52.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
++dependencies = [
++ "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]]
++name = "windows_aarch64_gnullvm"
++version = "0.48.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
++
++[[package]]
++name = "windows_aarch64_gnullvm"
++version = "0.52.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
++
++[[package]]
++name = "windows_aarch64_msvc"
++version = "0.48.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
++
++[[package]]
++name = "windows_aarch64_msvc"
++version = "0.52.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
++
++[[package]]
++name = "windows_i686_gnu"
++version = "0.48.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
++
++[[package]]
++name = "windows_i686_gnu"
++version = "0.52.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
++
++[[package]]
++name = "windows_i686_msvc"
++version = "0.48.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
++
++[[package]]
++name = "windows_i686_msvc"
++version = "0.52.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
++
++[[package]]
++name = "windows_x86_64_gnu"
++version = "0.48.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
++
++[[package]]
++name = "windows_x86_64_gnu"
++version = "0.52.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
++
++[[package]]
++name = "windows_x86_64_gnullvm"
++version = "0.48.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
++
++[[package]]
++name = "windows_x86_64_gnullvm"
++version = "0.52.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
++
++[[package]]
++name = "windows_x86_64_msvc"
++version = "0.48.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
++
++[[package]]
++name = "windows_x86_64_msvc"
++version = "0.52.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
diff --git a/patches/vkrunner-2023-10-29-g93cbb7b1cca7/series b/patches/vkrunner-2023-10-29-g93cbb7b1cca7/series
new file mode 100644
index 000000000..3b863cc9f
--- /dev/null
+++ b/patches/vkrunner-2023-10-29-g93cbb7b1cca7/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-Add-Cargo.lock.patch
+# 7f2fb2f3edeebbcf0cc685b2b48b1f36 - git-ptx-patches magic
diff --git a/patches/weston-13.0.0/0001-HACK-don-t-build-tests.patch b/patches/weston-13.0.0/0001-HACK-don-t-build-tests.patch
new file mode 100644
index 000000000..5a24e11b1
--- /dev/null
+++ b/patches/weston-13.0.0/0001-HACK-don-t-build-tests.patch
@@ -0,0 +1,23 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Fri, 26 May 2023 11:41:19 +0200
+Subject: [PATCH] HACK: don't build tests
+
+The tests can introduce additional dependencies (e.g. xcb-cursor for xwayland)
+that are not otherwise needed. The tests are not used in ptxdist anyways, so
+just don't build them.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ tests/meson.build | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/tests/meson.build b/tests/meson.build
+index 1d59a93e121c..b7c4412bfdf8 100644
+--- a/tests/meson.build
++++ b/tests/meson.build
+@@ -1,3 +1,5 @@
++subdir_done()
++
+ plugin_test_shell_desktop = shared_library(
+ 'weston-test-desktop-shell',
+ 'weston-test-desktop-shell.c',
diff --git a/patches/weston-13.0.0/series b/patches/weston-13.0.0/series
new file mode 100644
index 000000000..a5dc0b485
--- /dev/null
+++ b/patches/weston-13.0.0/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-HACK-don-t-build-tests.patch
+# 4082f10e9dae6df168955b4fa61a61b3 - git-ptx-patches magic
diff --git a/patches/xf86-input-tslib-0.0.6/0001-fix-segfault.patch b/patches/xf86-input-tslib-0.0.6/0001-fix-segfault.patch
deleted file mode 100644
index aa2b747c5..000000000
--- a/patches/xf86-input-tslib-0.0.6/0001-fix-segfault.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Thu, 14 Jun 2012 23:27:04 +0200
-Subject: [PATCH] fix segfault
-
-Based on a patch from Debian.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/tslib.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/tslib.c b/src/tslib.c
-index 08923b2..065e6cf 100644
---- a/src/tslib.c
-+++ b/src/tslib.c
-@@ -103,8 +103,6 @@ KeyControlProc(DeviceIntPtr pDev, KeybdCtrl * ctrl)
- static void
- PointerControlProc(DeviceIntPtr dev, PtrCtrl * ctrl)
- {
-- ErrorF("%s\n", __FUNCTION__);
-- return;
- }
-
- static Bool
-@@ -406,6 +404,8 @@ xf86TslibControlProc(DeviceIntPtr device, int what)
- xf86MotionHistoryAllocate(pInfo);
- #endif
-
-+ if (!InitPtrFeedbackClassDeviceStruct(device, PointerControlProc))
-+ return !Success;
- break;
-
- case DEVICE_ON:
-@@ -435,6 +435,7 @@ xf86TslibUninit(InputDriverPtr drv, InputInfoPtr pInfo, int flags)
- xf86TslibControlProc(pInfo->dev, DEVICE_OFF);
- ts_close(priv->ts);
- xfree(pInfo->private);
-+ pInfo->private = NULL;
- xf86DeleteInput(pInfo, 0);
- }
-
diff --git a/patches/xf86-input-tslib-0.0.6/0002-add-support-for-ABI-12.patch b/patches/xf86-input-tslib-0.0.6/0002-add-support-for-ABI-12.patch
deleted file mode 100644
index 9275daea3..000000000
--- a/patches/xf86-input-tslib-0.0.6/0002-add-support-for-ABI-12.patch
+++ /dev/null
@@ -1,213 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Thu, 14 Jun 2012 23:27:43 +0200
-Subject: [PATCH] add support for ABI 12
-
-Based on the patch from Debian.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/tslib.c | 83 +++++++++++++++++++++++++++++++++++++++++++++++------------
- 1 file changed, 67 insertions(+), 16 deletions(-)
-
-diff --git a/src/tslib.c b/src/tslib.c
-index 065e6cf..0446148 100644
---- a/src/tslib.c
-+++ b/src/tslib.c
-@@ -69,6 +69,13 @@
- #define DEFAULT_HEIGHT 240
- #define DEFAULT_WIDTH 320
-
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
-+#define COLLECT_INPUT_OPTIONS(pInfo, options) xf86CollectInputOptions((pInfo), (options), NULL)
-+#else
-+#define COLLECT_INPUT_OPTIONS(pInfo, options) xf86CollectInputOptions((pInfo), (options))
-+#endif
-+
-+
- enum { TSLIB_ROTATE_NONE=0, TSLIB_ROTATE_CW=270, TSLIB_ROTATE_UD=180, TSLIB_ROTATE_CCW=90 };
-
- enum button_state { BUTTON_NOT_PRESSED = 0, BUTTON_1_PRESSED = 1, BUTTON_3_CLICK = 3, BUTTON_3_CLICKED=4, BUTTON_EMULATION_OFF=-1 };
-@@ -106,7 +113,7 @@ PointerControlProc(DeviceIntPtr dev, PtrCtrl * ctrl)
- }
-
- static Bool
--ConvertProc( LocalDevicePtr local,
-+ConvertProc( InputInfoPtr local,
- int first,
- int num,
- int v0,
-@@ -135,7 +142,7 @@ struct timeval TimevalDiff(struct timeval a, struct timeval b)
- return t;
- }
-
--static void ReadInput (LocalDevicePtr local)
-+static void ReadInput (InputInfoPtr local)
- {
- struct ts_priv *priv = (struct ts_priv *) (local->private);
- struct ts_sample samp;
-@@ -382,7 +389,11 @@ xf86TslibControlProc(DeviceIntPtr device, int what)
- axiswidth - 1, /* max val */
- axiswidth, /* resolution */
- 0, /* min_res */
-- axiswidth); /* max_res */
-+ axiswidth /* max_res */
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
-+ ,Absolute
-+#endif
-+ );
-
- InitValuatorAxisStruct(device, 1,
- #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
-@@ -392,7 +403,11 @@ xf86TslibControlProc(DeviceIntPtr device, int what)
- axisheight - 1, /* max val */
- axisheight, /* resolution */
- 0, /* min_res */
-- axisheight); /* max_res */
-+ axisheight /* max_res */
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
-+ ,Absolute
-+#endif
-+ );
-
- if (InitProximityClassDeviceStruct (device) == FALSE) {
- ErrorF ("Unable to allocate EVTouch touchscreen ProximityClassDeviceStruct\n");
-@@ -434,7 +449,7 @@ xf86TslibUninit(InputDriverPtr drv, InputInfoPtr pInfo, int flags)
- ErrorF("%s\n", __FUNCTION__);
- xf86TslibControlProc(pInfo->dev, DEVICE_OFF);
- ts_close(priv->ts);
-- xfree(pInfo->private);
-+ free(pInfo->private);
- pInfo->private = NULL;
- xf86DeleteInput(pInfo, 0);
- }
-@@ -444,47 +459,61 @@ xf86TslibUninit(InputDriverPtr drv, InputInfoPtr pInfo, int flags)
- *
- * called when the module subsection is found in XF86Config
- */
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
-+static int
-+xf86TslibInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags)
-+#else
- static InputInfoPtr
- xf86TslibInit(InputDriverPtr drv, IDevPtr dev, int flags)
-+#endif
- {
- struct ts_priv *priv;
- char *s;
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
- InputInfoPtr pInfo;
-+#endif
-
-- priv = xcalloc (1, sizeof (struct ts_priv));
-+ priv = calloc (1, sizeof (struct ts_priv));
- if (!priv)
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
- return NULL;
-+#else
-+ return BadValue;
-+#endif
-
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
- if (!(pInfo = xf86AllocateInput(drv, 0))) {
-- xfree(priv);
-+ free(priv);
- return NULL;
- }
-
- /* Initialise the InputInfoRec. */
- pInfo->name = dev->identifier;
-- pInfo->type_name = XI_TOUCHSCREEN;
- pInfo->flags =
- XI86_KEYBOARD_CAPABLE | XI86_POINTER_CAPABLE |
- XI86_SEND_DRAG_EVENTS;
-- pInfo->device_control = xf86TslibControlProc;
-- pInfo->read_input = ReadInput;
- #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) == 0
- pInfo->motion_history_proc = xf86GetMotionEvents;
- pInfo->history_size = 0;
- #endif
-- pInfo->control_proc = NULL;
-+ pInfo->conf_idev = dev;
- pInfo->close_proc = NULL;
-- pInfo->switch_mode = NULL;
- pInfo->conversion_proc = ConvertProc;
- pInfo->reverse_conversion_proc = NULL;
-- pInfo->dev = NULL;
- pInfo->private_flags = 0;
- pInfo->always_core_feedback = 0;
-- pInfo->conf_idev = dev;
-+#endif
-+
-+ pInfo->type_name = XI_TOUCHSCREEN;
-+ pInfo->control_proc = NULL;
-+ pInfo->read_input = ReadInput;
-+ pInfo->device_control = xf86TslibControlProc;
-+ pInfo->switch_mode = NULL;
- pInfo->private = priv;
-+ pInfo->dev = NULL;
-
- /* Collect the options, and process the common options. */
-- xf86CollectInputOptions(pInfo, NULL, NULL);
-+ COLLECT_INPUT_OPTIONS(pInfo, NULL);
- xf86ProcessCommonOptions(pInfo, pInfo->options);
-
- priv->screen_num = xf86SetIntOption(pInfo->options, "ScreenNumber", 0 );
-@@ -510,23 +539,39 @@ xf86TslibInit(InputDriverPtr drv, IDevPtr dev, int flags)
- priv->rotate = TSLIB_ROTATE_NONE;
- }
-
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
- s = xf86CheckStrOption(dev->commonOptions, "path", NULL);
-+#else
-+ s = xf86CheckStrOption(pInfo->options, "path", NULL);
-+#endif
- if (!s)
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
- s = xf86CheckStrOption(dev->commonOptions, "Device", NULL);
-+#else
-+ s = xf86CheckStrOption(pInfo->options, "Device", NULL);
-+#endif
-
- priv->ts = ts_open(s, 1);
-- xfree(s);
-+ free(s);
-
- if (!priv->ts) {
- ErrorF("ts_open failed (device=%s)\n",s);
- xf86DeleteInput(pInfo, 0);
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
- return NULL;
-+#else
-+ return BadValue;
-+#endif
- }
-
- if (ts_config(priv->ts)) {
- ErrorF("ts_config failed\n");
- xf86DeleteInput(pInfo, 0);
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
- return NULL;
-+#else
-+ return BadValue;
-+#endif
- }
-
- pInfo->fd = ts_fd(priv->ts);
-@@ -536,11 +581,17 @@ xf86TslibInit(InputDriverPtr drv, IDevPtr dev, int flags)
- priv->state = BUTTON_EMULATION_OFF;
- }
-
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
- /* Mark the device configured */
- pInfo->flags |= XI86_CONFIGURED;
-+#endif
-
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
- /* Return the configured device */
- return (pInfo);
-+#else
-+ return Success;
-+#endif
- }
-
- _X_EXPORT InputDriverRec TSLIB = {
diff --git a/patches/xf86-input-tslib-0.0.6/0003-fix-name-collision-with-Xorg-macro.patch b/patches/xf86-input-tslib-0.0.6/0003-fix-name-collision-with-Xorg-macro.patch
deleted file mode 100644
index 0795ac398..000000000
--- a/patches/xf86-input-tslib-0.0.6/0003-fix-name-collision-with-Xorg-macro.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Mon, 18 Jun 2012 09:25:09 +0200
-Subject: [PATCH] fix name collision with Xorg macro
-
-If xorg-server is compiled with --enable-tslib (for kdrive) then
-xorg-server.h contains '#define TSLIB 1'.
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- src/tslib.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/tslib.c b/src/tslib.c
-index 0446148..4824fc4 100644
---- a/src/tslib.c
-+++ b/src/tslib.c
-@@ -594,7 +594,7 @@ xf86TslibInit(InputDriverPtr drv, IDevPtr dev, int flags)
- #endif
- }
-
--_X_EXPORT InputDriverRec TSLIB = {
-+_X_EXPORT InputDriverRec TSLIB_REC = {
- 1, /* driver version */
- "tslib", /* driver name */
- NULL, /* identify */
-@@ -631,7 +631,7 @@ static pointer xf86TslibPlug(pointer module, pointer options, int *errmaj, int *
- {
- static Bool Initialised = FALSE;
-
-- xf86AddInputDriver(&TSLIB, module, 0);
-+ xf86AddInputDriver(&TSLIB_REC, module, 0);
-
- return module;
- }
diff --git a/patches/xf86-input-tslib-0.0.6/series b/patches/xf86-input-tslib-0.0.6/series
deleted file mode 100644
index 18216ee47..000000000
--- a/patches/xf86-input-tslib-0.0.6/series
+++ /dev/null
@@ -1,6 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-fix-segfault.patch
-0002-add-support-for-ABI-12.patch
-0003-fix-name-collision-with-Xorg-macro.patch
-# fd8f57a2d8b01331dcdfb70b7bf274a4 - git-ptx-patches magic
diff --git a/patches/xf86-video-fbdev-0.5.0/0001-xf86-video-fbdev-add-option-to-leave-timings-alone.patch b/patches/xf86-video-fbdev-0.5.0/0001-xf86-video-fbdev-add-option-to-leave-timings-alone.patch
deleted file mode 100644
index 58e97918f..000000000
--- a/patches/xf86-video-fbdev-0.5.0/0001-xf86-video-fbdev-add-option-to-leave-timings-alone.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From: Sascha Hauer <s.hauer@pengutronix.de>
-Date: Fri, 8 Aug 2014 14:47:18 +0200
-Subject: [PATCH] xf86-video-fbdev: add option to leave timings alone
-
-Xorg tries to set the timing values in the framebuffer device. Add an
-option to tell X to leave the timing values untouched.
-
-Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
----
- src/fbdev.c | 10 +++++++---
- 1 file changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/src/fbdev.c b/src/fbdev.c
-index f25ef72204f0..35a3c60f7835 100644
---- a/src/fbdev.c
-+++ b/src/fbdev.c
-@@ -125,6 +125,7 @@ typedef enum {
- OPTION_SHADOW_FB,
- OPTION_ROTATE,
- OPTION_FBDEV,
-+ OPTION_DONT_SET_TIMING,
- OPTION_DEBUG
- } FBDevOpts;
-
-@@ -132,6 +133,7 @@ static const OptionInfoRec FBDevOptions[] = {
- { OPTION_SHADOW_FB, "ShadowFB", OPTV_BOOLEAN, {0}, FALSE },
- { OPTION_ROTATE, "Rotate", OPTV_STRING, {0}, FALSE },
- { OPTION_FBDEV, "fbdev", OPTV_STRING, {0}, FALSE },
-+ { OPTION_DONT_SET_TIMING, "DontSetTiming", OPTV_BOOLEAN, {0}, FALSE },
- { OPTION_DEBUG, "debug", OPTV_BOOLEAN, {0}, FALSE },
- { -1, NULL, OPTV_NONE, {0}, FALSE }
- };
-@@ -589,9 +591,11 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
- }
-
- /* select video modes */
--
-- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "checking modes against framebuffer device...\n");
-- fbdevHWSetVideoModes(pScrn);
-+ if( xf86ReturnOptValBool(fPtr->Options, OPTION_DONT_SET_TIMING, FALSE) == FALSE ) {
-+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "checking modes against framebuffer device...\n");
-+ fbdevHWSetVideoModes(pScrn);
-+ } else
-+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "ignoring fb timing settings.");
-
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "checking modes against monitor...\n");
- {
diff --git a/patches/xf86-video-fbdev-0.5.0/0002-Fix-build-error-when-building-with-xserver-built-usi.patch b/patches/xf86-video-fbdev-0.5.0/0002-Fix-build-error-when-building-with-xserver-built-usi.patch
deleted file mode 100644
index 570cef6ca..000000000
--- a/patches/xf86-video-fbdev-0.5.0/0002-Fix-build-error-when-building-with-xserver-built-usi.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From: Tuomo Rinne <tuomo.rinne@pm.me>
-Date: Mon, 14 Jan 2019 22:33:42 +0000
-Subject: [PATCH] Fix build error when building with xserver built using meson
-
----
- src/fbdev.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/fbdev.c b/src/fbdev.c
-index 35a3c60f7835..78c27f92f777 100644
---- a/src/fbdev.c
-+++ b/src/fbdev.c
-@@ -1014,7 +1014,7 @@ FBDevScreenInit(SCREEN_INIT_ARGS_DECL)
- fPtr->CloseScreen = pScreen->CloseScreen;
- pScreen->CloseScreen = FBDevCloseScreen;
-
--#if XV
-+#ifdef XV
- {
- XF86VideoAdaptorPtr *ptr;
-
diff --git a/patches/xf86-video-fbdev-0.5.0/series b/patches/xf86-video-fbdev-0.5.0/series
deleted file mode 100644
index e73c99134..000000000
--- a/patches/xf86-video-fbdev-0.5.0/series
+++ /dev/null
@@ -1,5 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-xf86-video-fbdev-add-option-to-leave-timings-alone.patch
-0002-Fix-build-error-when-building-with-xserver-built-usi.patch
-# bc6c6b007eeb8b7f989816469a5faa45 - git-ptx-patches magic
diff --git a/patches/xf86-video-intel-2.99.917-892-gc6cb1b199598/autogen.sh b/patches/xf86-video-intel-2.99.917-892-gc6cb1b199598/autogen.sh
deleted file mode 120000
index 9f8a4cb7d..000000000
--- a/patches/xf86-video-intel-2.99.917-892-gc6cb1b199598/autogen.sh
+++ /dev/null
@@ -1 +0,0 @@
-../autogen.sh \ No newline at end of file
diff --git a/patches/xorg-server-1.20.10/0001-xf86bigfont-always-include-unistd.h.patch b/patches/xorg-server-1.20.10/0001-xf86bigfont-always-include-unistd.h.patch
deleted file mode 100644
index f34b1eb18..000000000
--- a/patches/xorg-server-1.20.10/0001-xf86bigfont-always-include-unistd.h.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From: Michael Olbrich <m.olbrich@pengutronix.de>
-Date: Thu, 28 May 2015 23:47:37 +0200
-Subject: [PATCH] xf86bigfont: always include unistd.h
-
-Otherwise compiling can fail with:
-
-xf86bigfont.c: In function 'ProcXF86BigfontQueryVersion':
-xf86bigfont.c:287:9: error: implicit declaration of function 'geteuid' [-Werror=implicit-function-declaration]
-xf86bigfont.c:287:9: warning: nested extern declaration of 'geteuid' [-Wnested-externs]
-xf86bigfont.c:288:9: error: implicit declaration of function 'getegid' [-Werror=implicit-function-declaration]
-xf86bigfont.c:288:9: warning: nested extern declaration of 'getegid' [-Wnested-externs]
-
-Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
----
- Xext/xf86bigfont.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Xext/xf86bigfont.c b/Xext/xf86bigfont.c
-index 529595bb7544..91c733c86fcd 100644
---- a/Xext/xf86bigfont.c
-+++ b/Xext/xf86bigfont.c
-@@ -39,6 +39,7 @@
- #endif
-
- #include <sys/types.h>
-+#include <unistd.h>
- #ifdef HAS_SHM
- #ifdef SVR4
- #include <sys/sysmacros.h>
-@@ -51,7 +52,6 @@
- #include <sys/shm.h>
- #include <sys/stat.h>
- #include <stdlib.h>
--#include <unistd.h>
- #include <time.h>
- #include <errno.h>
- #endif
diff --git a/patches/xorg-server-1.20.10/series b/patches/xorg-server-1.20.10/series
deleted file mode 100644
index 47238ab69..000000000
--- a/patches/xorg-server-1.20.10/series
+++ /dev/null
@@ -1,4 +0,0 @@
-# generated by git-ptx-patches
-#tag:base --start-number 1
-0001-xf86bigfont-always-include-unistd.h.patch
-# 25545eb055796221183d2418bb8d79dc - git-ptx-patches magic
diff --git a/platforms/Kconfig b/platforms/Kconfig
index 0bfe34cdc..93a36bcfe 100644
--- a/platforms/Kconfig
+++ b/platforms/Kconfig
@@ -14,7 +14,6 @@ menu "architecture "
source "generated/architecture_options.in"
endmenu
source "generated/base_kernel.in"
-source "generated/devicetree.in"
source "platforms/console.in"
menu "extra kernel "
@@ -40,3 +39,7 @@ source "generated/hosttools_noprompt.in"
source "generated/hosttools_platform.in"
source "generated/platform_project_specific.in"
+
+menu "non-free firmware blobs "
+source "generated/non_free_firmware.in"
+endmenu
diff --git a/platforms/architecture.in b/platforms/architecture.in
index 5cb27908a..1cdbde2ec 100644
--- a/platforms/architecture.in
+++ b/platforms/architecture.in
@@ -134,6 +134,14 @@ choice
help
This is support for the RISC-V architecture.
+ config ARCH_LOONGARCH
+ bool "loongarch "
+ select HAS_MMU
+ select ARCH_LP64
+ select ARCH_SUPPORTS_ENDIAN_LITTLE
+ help
+ This is support for the LoongArch architecture.
+
endchoice
#
@@ -189,7 +197,7 @@ choice
The compiler will generate code for Pentium II CPUs as default.
This code will run on Pentium II and above CPUs.
- config ARCH_X86_P3M
+ config ARCH_X86_P3M
bool "PIII/M "
help
The compiler will generate code for Pentium III and Pentium M CPUs as default.
@@ -216,10 +224,10 @@ config ARCH_LP64
# endianness
#
config ARCH_SUPPORTS_ENDIAN_BIG
- bool
+ bool
config ARCH_SUPPORTS_ENDIAN_LITTLE
- bool
+ bool
choice
prompt "endianness "
@@ -249,6 +257,17 @@ config ARCH_ARM_V6
architecture version of ARMv6 or newer. Which is the case
for the ARM11 and Cortex A Cores.
+config ARCH_ARM_V7
+ bool "arm architecture version >= ARMv7"
+ depends on ARCH_ARM
+ select ARCH_ARM_V6
+ help
+ This options enables optimisation for ARMv6 cores.
+
+ Select this if you have an arm processor with an
+ architecture version of ARMv7. Which is the case
+ for the Cortex A8 and later Cores.
+
config ARCH_ARM_IWMMXT
bool "support iwmmxt extension"
depends on ARCH_ARM
@@ -267,9 +286,22 @@ config ARCH_ARM_NEON
config ARCH_ARMV7_NEON
bool
+ select ARCH_ARM_V7
default ARCH_ARM_NEON if ARCH_ARM
#
+# PPC vector instructions
+#
+config ARCH_PPC_ALTIVEC
+ bool
+ prompt "AltiVec/VMX/Velocity Engine"
+ depends on ARCH_PPC
+ help
+ This enables optimizations corresponding to single precision
+ floating point and integer SIMD instructions on PPC processors.
+ This is present on more modern CPUs.
+
+#
# hardware / software floating point
#
config HAS_HARDFLOAT
@@ -280,7 +312,7 @@ config HAS_HARDFLOAT
default y if ARCH_SPARC
default y if ARCH_ARM64
default y if ARCH_RISCV
- default n
+ default y if ARCH_LOONGARCH
#
# memory management unit
@@ -293,7 +325,7 @@ config HAS_MMU
#
config SIZEOF_LONG_DOUBLE
string
- default "16" if ARCH_X86_64 || ARCH_ARM64
+ default "16" if ARCH_X86_64 || ARCH_ARM64 || ARCH_LOONGARCH
default "12" if ARCH_X86
default "8"
# FIXME: add more values
@@ -321,3 +353,4 @@ config ARCH_STRING
default "parisc" if ARCH_PARISC
default "sh" if ARCH_SH
default "riscv" if ARCH_RISCV
+ default "loongarch" if ARCH_LOONGARCH
diff --git a/platforms/at91bootstrap.in b/platforms/at91bootstrap.in
index 1e7c7901d..427970c11 100644
--- a/platforms/at91bootstrap.in
+++ b/platforms/at91bootstrap.in
@@ -18,7 +18,7 @@ menuconfig AT91BOOTSTRAP
then jumps to it.
It is required for these microcontrollers, because the bootROM of some
- of these cores can only handle a miximum of 4kB of the 1st stage
+ of these cores can only handle a maximum of 4kB of the 1st stage
bootloader (e.g. SRAM limits). U-boot is usually much larger
than this.
diff --git a/platforms/at91bootstrap2.in b/platforms/at91bootstrap2.in
index 0182912e5..0821f70a8 100644
--- a/platforms/at91bootstrap2.in
+++ b/platforms/at91bootstrap2.in
@@ -1,6 +1,8 @@
## SECTION=bootloader
menuconfig AT91BOOTSTRAP2
+ select BOOTLOADER
+ select HOST_SYSTEM_PYTHON3
tristate
prompt "AT91 bootstrap 3.x "
help
@@ -19,7 +21,7 @@ menuconfig AT91BOOTSTRAP2
then jumps to it.
It is required for these microcontrollers, because the bootROM of some
- of these cores can only handle a miximum of 4kB of the 1st stage
+ of these cores can only handle a maximum of 4kB of the 1st stage
bootloader (e.g. SRAM limits). U-boot is usually much larger
than this.
@@ -35,7 +37,7 @@ if AT91BOOTSTRAP2
config AT91BOOTSTRAP2_VERSION
string
- default "3.8.5"
+ default "3.9.3"
prompt "AT91 Bootstrap version"
help
Enter the AT91 Bootstrap version you want to build. Usually something like "3.8.5"
diff --git a/platforms/barebox.firmware.in b/platforms/barebox.firmware.in
new file mode 100644
index 000000000..c7275e6d3
--- /dev/null
+++ b/platforms/barebox.firmware.in
@@ -0,0 +1,7 @@
+## SECTION=barebox_firmware
+
+#
+# This file does only exist to create a defined entry in the "barebox_firmware"
+# section, so that the toplevel Kconfig can include generated/barebox_firmware.in
+# even if no package is in that category.
+#
diff --git a/platforms/barebox.in b/platforms/barebox.in
index d35d16501..8297f13a8 100644
--- a/platforms/barebox.in
+++ b/platforms/barebox.in
@@ -8,12 +8,18 @@ config BAREBOX_ARCH_STRING
default "ppc" if ARCH_PPC
default "x86" if ARCH_X86
+config BAREBOX_DEPENDENCIES
+ tristate
+ select VIRTUAL
+
menuconfig BAREBOX
+ select BAREBOX_DEPENDENCIES
select BOOTLOADER
select HOST_LIBUSB if BAREBOX_NEEDS_HOST_LIBUSB
select HOST_OPENSSL if BAREBOX_NEEDS_HOST_OPENSSL
select HOST_IMX_CST if BAREBOX_NEEDS_HOST_IMX_CST
select HOST_LZOP if BAREBOX_NEEDS_HOST_LZOP
+ select HOST_LZ4 if BAREBOX_NEEDS_HOST_LZ4
select CODE_SIGNING if BAREBOX_NEEDS_KEYS
prompt "barebox "
bool
@@ -28,17 +34,17 @@ config BAREBOX_VERSION
default "2016.08.0"
config BAREBOX_CONFIG_BUILDSYSTEM_VERSION
- prompt "add a buildsystem version to the barebox binary"
- bool
- help
- When this option is enabled, the nv variable "nv.buildsystem_version"
- in barebox is set to PTXCONF_BAREBOX_BUILDSYSTEM_VERSION.
+ prompt "add a buildsystem version to the barebox binary"
+ bool
+ help
+ When this option is enabled, the nv variable "nv.buildsystem_version"
+ in barebox is set to PTXCONF_BAREBOX_BUILDSYSTEM_VERSION.
config BAREBOX_BUILDSYSTEM_VERSION
- prompt "barebox buildsystem version"
- depends on BAREBOX_CONFIG_BUILDSYSTEM_VERSION
- string
- default "${PTXDIST_VCS_VERSION}"
+ prompt "barebox buildsystem version"
+ depends on BAREBOX_CONFIG_BUILDSYSTEM_VERSION
+ string
+ default "${PTXDIST_VCS_VERSION}"
config BAREBOX_MD5
prompt "barebox source md5sum"
@@ -55,6 +61,14 @@ config BAREBOX_CONFIG
This entry specifies the .config file used to compile
barebox.
+menuconfig BAREBOX_FIRMWARE
+ bool
+ prompt "integrate firmware blobs "
+
+if BAREBOX_FIRMWARE
+source "generated/barebox_firmware.in"
+endif
+
config BAREBOX_EXTRA_ENV
prompt "extend the builtin barebox environment"
bool
@@ -76,6 +90,14 @@ config BAREBOX_BAREBOXENV
environment. Enable this option to access the barebox environment
from the target Linux system.
+config BAREBOX_INSTALL_DTBS
+ prompt "install dtbs"
+ bool
+ help
+ Install barebox generated dtbs into the image directory.
+ These dtbs can, for example, be used when constructing a
+ FIP image for TF-A boot.
+
config BAREBOX_BAREBOXCRC32
prompt "install 'bareboxcrc32'"
bool
@@ -99,6 +121,8 @@ config BAREBOX_BAREBOXIMD
The tool 'bareboximd' can be used to extract metadata from
the (flashed) barebox image.
+comment "build dependencies"
+
config BAREBOX_NEEDS_HOST_LIBUSB
prompt "barebox needs libusb"
bool
@@ -111,16 +135,17 @@ config BAREBOX_NEEDS_HOST_IMX_CST
prompt "barebox needs imx-cst"
bool
help
- The imx "CST" is the propretary "Code Signing Tool" by
+ The imx "CST" is the proprietary "Code Signing Tool" by
freescale, that is needed to sign the bootloader with a
- cryptographic signature. This part of freescale's high
+ cryptographic signature. This is part of freescale's high
assurance boot (HAB) scenario where only correctly signed
images can be started.
- Barebox currently supports HABv4 for i.MX6 only.
+ Barebox currently supports HABv4 for i.MX6, i.MX8MM, 8MN,
+ 8MQ & 8MP.
- This options does not do the signing, it just creates the
- correct dependencies so that the proprieraty "cst" program
- is installed before barebox is compiled. THe signing is done
+ This option does not do the signing, it just creates the
+ correct dependencies so that the proprietary "cst" program
+ is installed before barebox is compiled. The signing is done
in barebox and needs special configuration for your board.
config BAREBOX_NEEDS_KEYS
@@ -146,4 +171,12 @@ config BAREBOX_NEEDS_HOST_LZOP
lzop is used in order to compile lzop for your development
host.
+config BAREBOX_NEEDS_HOST_LZ4
+ prompt "barebox needs lz4"
+ bool
+ help
+ The barebox executable can be compressed. Select this if
+ lz4 is used in order to compile lz4 for your development
+ host.
+
endif
diff --git a/platforms/blspec-entry.in b/platforms/blspec-entry.in
index e97d56b0c..c2aea36dc 100644
--- a/platforms/blspec-entry.in
+++ b/platforms/blspec-entry.in
@@ -4,17 +4,24 @@ menuconfig BLSPEC_ENTRY
tristate
select KERNEL
select KERNEL_INSTALL if !KERNEL_FIT
- select DTC_INSTALL_OFTREE if DTC
prompt "default bootloader spec entry "
if BLSPEC_ENTRY
config BLSPEC_ENTRY_DEVICETREE
bool
- default DTC && !KERNEL_FIT
+ default KERNEL_DTB && !KERNEL_FIT
config BLSPEC_ENTRY_CMDLINE
string
prompt "kernel command-line"
+config BLSPEC_ENTRY_APPENDROOT
+ bool
+ prompt "Add 'linux-appendroot true'"
+ help
+ If enabled this options adds 'linux-appendroot true' to the blspec
+ entry. This is a barebox specific blspec option which tells barebox
+ to add the 'root=' kernel command line automatically if set.
+
endif
diff --git a/platforms/dtc.in b/platforms/dtc.in
deleted file mode 100644
index 5e8b35291..000000000
--- a/platforms/dtc.in
+++ /dev/null
@@ -1,40 +0,0 @@
-## SECTION=devicetree
-
-menuconfig DTC
- bool
- select HOST_DTC
- select KERNEL
- prompt "Build device tree "
- help
- Select this to build a device tree for your board.
- You will find the device tree binary blob under
- platform-nnn/images/ in your workspace.
-
-if DTC
-
-config DTC_INSTALL_OFTREE
- bool "install oftree to /boot"
- help
- Creates a package to install the 'oftree' file to /boot
- of your target system.
-
-config DTC_OFTREE_DTS_PATH
- string "path to source dts file"
- default "${PTXDIST_PLATFORMCONFIG_SUBDIR}/dts:${KERNEL_DIR}/arch/${GENERIC_KERNEL_ARCH}/boot/dts"
- help
- Define path to the dts source file. Multiple directories can be
- specified separated by ':'.
-
-config DTC_OFTREE_DTS
- string "source dts file"
- default "<yourboard>.dts"
- help
- Select the dts file to use for the device tree binary
- blob generation. For relative file names DTC_OFTREE_DTS_PATH
- is used as a search path for the device tree files specified
- here. Multiple dts files can be specified, separated by spaces.
-
-config DTC_EXTRA_ARGS
- string "extra options passed to dtc"
-
-endif
diff --git a/platforms/grub.in b/platforms/grub.in
index 41e79b4ac..45e776667 100644
--- a/platforms/grub.in
+++ b/platforms/grub.in
@@ -170,7 +170,7 @@ config GRUB_3C503_SHMEM
config GRUB_3C503_AUI
bool
- prompt "use AUI by deault"
+ prompt "use AUI by default"
depends on GRUB_3C503
help
use AUI by default on 3c503 cards
@@ -185,25 +185,25 @@ config GRUB_3C509
bool
prompt "3c509 network driver"
help
- enable 3Com509 driver
+ enable 3Com509 driver
config GRUB_3C529
bool
prompt "3c529 network driver"
help
- enable 3Com529 driver
+ enable 3Com529 driver
config GRUB_3C595
bool
prompt "3c595 network driver"
help
- enable 3Com595 driver
+ enable 3Com595 driver
config GRUB_3C90X
bool
prompt "3c90x network driver"
help
- enable 3Com90x driver
+ enable 3Com90x driver
menuconfig GRUB_CS89X0
bool
diff --git a/platforms/host-dtc.in b/platforms/host-dtc.in
deleted file mode 100644
index 4567464c3..000000000
--- a/platforms/host-dtc.in
+++ /dev/null
@@ -1,23 +0,0 @@
-## SECTION=devicetree
-
-menuconfig HOST_DTC
- tristate "dtc "
- select HOST_FLEX
- help
- Select this if the HOST_DTC tool is required without
- building a device tree. (It is also used for building
- U-boot FIT images)
-
-if HOST_DTC
-
-config HOST_DTC_VERSION
- string "Device tree compiler version"
- default "1.6.0"
- help
- Specify the DTC version number to be used
-
-config HOST_DTC_MD5
- string "dtc source md5sum"
- default "cd36ac756290597f3cf1c5b6cfe12e77"
-
-endif
diff --git a/platforms/host-tf-a.in b/platforms/host-tf-a.in
new file mode 100644
index 000000000..f8fd15c48
--- /dev/null
+++ b/platforms/host-tf-a.in
@@ -0,0 +1,8 @@
+## SECTION=hosttools_platform
+
+config HOST_TF_A
+ tristate
+ default y if ALLYES && TF_A
+ select HOST_OPENSSL
+ help
+ This provides fiptool
diff --git a/platforms/image-hdimg.in b/platforms/image-hdimg.in
index be37ba60f..b0b164230 100644
--- a/platforms/image-hdimg.in
+++ b/platforms/image-hdimg.in
@@ -46,4 +46,18 @@ config IMAGE_HDIMG_VFAT
endchoice
+if IMAGE_HDIMG_BAREBOX
+
+config IMAGE_HDIMG_BAREBOX_IMAGE
+ string
+ prompt "barebox image name"
+ default "barebox-image"
+ help
+ If barebox creates multiple images, configure the file name of the
+ image (relative to $IMAGEDIR) which should be written into hd.img.
+
+ The default is 'barebox-image', which is a symlink to the last image
+ installed by the barebox recipe.
+endif
+
endif
diff --git a/platforms/image-rauc.in b/platforms/image-rauc.in
index 1f9427b40..2faa8ff7e 100644
--- a/platforms/image-rauc.in
+++ b/platforms/image-rauc.in
@@ -8,22 +8,70 @@ menuconfig IMAGE_RAUC
select IMAGE_ROOT_TGZ
select CODE_SIGNING
help
- This generates a RAUC update Bundle for the selected platform using
+ This generates a RAUC update bundle for the selected platform using
genimage.
- By default, this will create a simple Bundle for updating a 'rootfs'
+ By default, this will create a simple bundle for updating a 'rootfs'
slot with the content from PTXdist's root file system .tgz image.
To customize the bundle, copy and adapt the genimage configuration
- file rauc.config.
+ in configs/images/rauc.config.
if IMAGE_RAUC
+config IMAGE_RAUC_BUNDLE_VERSION
+ string
+ prompt "RAUC Bundle Version"
+ default "${PTXDIST_BSP_AUTOVERSION}"
+ help
+ Version that will be placed in the bundle's metadata.
+
config IMAGE_RAUC_DESCRIPTION
prompt "RAUC Bundle Description"
string
default ""
help
- Optional description that will be placed in the Bundles metadata.
+ Optional description that will be placed in the bundle's metadata.
+
+choice
+ prompt "Bundle format"
+ default IMAGE_RAUC_BUNDLE_FORMAT_VERITY
+
+config IMAGE_RAUC_BUNDLE_FORMAT_PLAIN
+ bool "plain"
+ help
+ The old bundle format, which since rauc 1.5 is now known as 'plain'.
+
+config IMAGE_RAUC_BUNDLE_FORMAT_VERITY
+ bool "verity"
+ help
+ The improved 'verity' bundle format
+
+config IMAGE_RAUC_BUNDLE_FORMAT_CRYPT
+ bool "crypt"
+ help
+ The 'crypt' bundle format for fully encryptable bundles
+
+ Note that you must run 'rauc encrypt' on a crypt bundle to generate a
+ fully encrypted bundle.
+
+endchoice
+
+config IMAGE_RAUC_INTERMEDIATE
+ bool "include intermediate certificates"
+ help
+ Include intermediate certificates in the bundle signature that
+ can be used to close the trust chain during bundle signature
+ verification. The certificates must be stored in the CA of the
+ "update-intermediate" role of the code signing provider.
+
+config IMAGE_RAUC_HOOK
+ bool "include hook script"
+ help
+ If you enable this option and create a file named
+ config/images/rauc-hooks.sh in any PTXDIST_PATH component, it will be
+ included in the bundle and declared as a hook script in the manifest.
+ Note that you still need to define the respective install or slot
+ hooks in the manifest so that RAUC calls them.
endif
diff --git a/platforms/image-root-cpio-gz.in b/platforms/image-root-cpio-gz.in
deleted file mode 100644
index e1feb5f9b..000000000
--- a/platforms/image-root-cpio-gz.in
+++ /dev/null
@@ -1,10 +0,0 @@
-## SECTION=image
-
-config IMAGE_ROOT_CPIO_GZ
- tristate
- select HOST_GENIMAGE
- select IMAGE_ROOT_TGZ
- prompt "Generate images/root.cpio.gz"
- help
- Build the traditionally initrd RAM disk to be used
- as initramfs by the kernel.
diff --git a/platforms/image-root-cpio.in b/platforms/image-root-cpio.in
index f5ee4c1d8..0338175a0 100644
--- a/platforms/image-root-cpio.in
+++ b/platforms/image-root-cpio.in
@@ -1,10 +1,90 @@
## SECTION=image
-config IMAGE_ROOT_CPIO
+menuconfig IMAGE_ROOT_CPIO
tristate
select HOST_GENIMAGE
select IMAGE_ROOT_TGZ
- prompt "Generate images/root.cpio"
+ select HOST_ZSTD if IMAGE_ROOT_CPIO_COMPRESSION_MODE_ZSTD
+ select HOST_XZ if IMAGE_ROOT_CPIO_COMPRESSION_MODE_XZ
+ select HOST_LZOP if IMAGE_ROOT_CPIO_COMPRESSION_MODE_LZOP
+ prompt "Generate images/root.cpio "
help
- Build the traditionally initrd RAM disk to be used
- as initramfs by the kernel.
+ Build the traditional rootfs to be used as initramfs
+ by the kernel.
+ The compression choices are for external initramfs use.
+ When including a cpio archive inside the kernel blob,
+ the kernel build system can manage compressing the cpio
+ archive itself.
+ Beware, not all compressors are inherently deterministic
+ when using them in a multithreaded fashion.
+
+if IMAGE_ROOT_CPIO
+
+choice
+ prompt "CPIO compression mode"
+ default IMAGE_ROOT_CPIO_COMPRESSION_MODE_NONE
+
+config IMAGE_ROOT_CPIO_COMPRESSION_MODE_NONE
+ bool
+ prompt "no compression"
+ help
+ No compression.
+
+config IMAGE_ROOT_CPIO_COMPRESSION_MODE_GZ
+ bool
+ prompt "gz"
+ help
+ Compress root.cpio with gz.
+ Uses default compression level.
+
+config IMAGE_ROOT_CPIO_COMPRESSION_MODE_ZSTD
+ bool
+ prompt "zstd"
+ help
+ Compress root.cpio with zstd.
+ Uses multithreaded, compression level 19.
+
+config IMAGE_ROOT_CPIO_COMPRESSION_MODE_XZ
+ bool
+ prompt "xz"
+ help
+ Compress root.cpio with xz.
+ Uses default compression level and
+ crc32 checksum for kernel cpio compatibility.
+
+config IMAGE_ROOT_CPIO_COMPRESSION_MODE_LZOP
+ bool
+ prompt "lzop"
+ help
+ Compress root.cpio with lzop.
+ Uses default compression level.
+
+endchoice
+
+config IMAGE_ROOT_CPIO_CUSTOM_COMPRESSION
+ bool
+ prompt "customize compression command"
+ help
+ This allows specifying additional arguments to the compressor
+ command. Note that the command itself should not be changed.
+ Otherwise ptxdist cannot ensure that the tool is available.
+
+config IMAGE_ROOT_CPIO_COMPRESSION_SUFFIX
+ string
+ prompt "compression suffix" if IMAGE_ROOT_CPIO_CUSTOM_COMPRESSION
+ default "" if IMAGE_ROOT_CPIO_COMPRESSION_MODE_NONE
+ default ".gz" if IMAGE_ROOT_CPIO_COMPRESSION_MODE_GZ
+ default ".zst" if IMAGE_ROOT_CPIO_COMPRESSION_MODE_ZSTD
+ default ".xz" if IMAGE_ROOT_CPIO_COMPRESSION_MODE_XZ
+ default ".lzo" if IMAGE_ROOT_CPIO_COMPRESSION_MODE_LZOP
+
+config IMAGE_ROOT_CPIO_COMPRESSION_UTIL
+ string
+ prompt "compression tool" if IMAGE_ROOT_CPIO_CUSTOM_COMPRESSION
+ default "" if IMAGE_ROOT_CPIO_COMPRESSION_MODE_NONE
+ default "gzip" if IMAGE_ROOT_CPIO_COMPRESSION_MODE_GZ
+ default "zstd -T0 -19" if IMAGE_ROOT_CPIO_COMPRESSION_MODE_ZSTD
+ default "xz --check=crc32" if IMAGE_ROOT_CPIO_COMPRESSION_MODE_XZ
+ default "lzop" if IMAGE_ROOT_CPIO_COMPRESSION_MODE_LZOP
+
+endif
diff --git a/platforms/image-root-squashfs.in b/platforms/image-root-squashfs.in
index 4e5a75701..5fa94e34e 100644
--- a/platforms/image-root-squashfs.in
+++ b/platforms/image-root-squashfs.in
@@ -57,13 +57,13 @@ choice
endchoice
config IMAGE_ROOT_SQUASHFS_COMPRESSION_MODE
- string
- default "gzip" if IMAGE_ROOT_SQUASHFS_COMPRESSION_MODE_GZIP
- default "lzma" if IMAGE_ROOT_SQUASHFS_COMPRESSION_MODE_LZMA
- default "lzo" if IMAGE_ROOT_SQUASHFS_COMPRESSION_MODE_LZO
- default "lz4" if IMAGE_ROOT_SQUASHFS_COMPRESSION_MODE_LZ4
- default "xz" if IMAGE_ROOT_SQUASHFS_COMPRESSION_MODE_XZ
- default "zstd" if IMAGE_ROOT_SQUASHFS_COMPRESSION_MODE_ZSTD
+ string
+ default "gzip" if IMAGE_ROOT_SQUASHFS_COMPRESSION_MODE_GZIP
+ default "lzma" if IMAGE_ROOT_SQUASHFS_COMPRESSION_MODE_LZMA
+ default "lzo" if IMAGE_ROOT_SQUASHFS_COMPRESSION_MODE_LZO
+ default "lz4" if IMAGE_ROOT_SQUASHFS_COMPRESSION_MODE_LZ4
+ default "xz" if IMAGE_ROOT_SQUASHFS_COMPRESSION_MODE_XZ
+ default "zstd" if IMAGE_ROOT_SQUASHFS_COMPRESSION_MODE_ZSTD
config IMAGE_ROOT_SQUASHFS_BLOCK_SIZE
string
diff --git a/platforms/image_ipkg.in b/platforms/image_ipkg.in
index dae4fe5b7..11ddaa9d1 100644
--- a/platforms/image_ipkg.in
+++ b/platforms/image_ipkg.in
@@ -8,9 +8,9 @@ config IMAGE_IPKG_PUSH_TO_REPOSITORY
help
If this option is checked the packet files are pushed to
the ipkg-repository (to be specified in .ptxdistrc).
-
+
Please note, that the ipkg-repository is currently a
- local directory on your machine.
+ local directory on your machine.
config IMAGE_IPKG_FORCED_PUSH
depends on IMAGE_IPKG_PUSH_TO_REPOSITORY
@@ -20,7 +20,7 @@ config IMAGE_IPKG_FORCED_PUSH
Usually the script checks for some previous ipkg-push to
a 'dist' release and requires you to delete a previous
dist directory
-
+
If this option is checked, this is done by default. This
is most useful for development purposes.
@@ -30,7 +30,7 @@ menuconfig IMAGE_IPKG_SIGN_OPENSSL
select HOST_OPENSSL
prompt "sign ipkg-repository with openssl"
help
- Use openssl to to sign the Packages file in the package
+ Use openssl to sign the Packages file in the package
repository.
@@ -58,7 +58,7 @@ config IMAGE_INSTALL_FROM_IPKG_REPOSITORY
help
If this option is checked the packet files from the
ipkg-repository are used to create the images
-
+
Please note, that the ipkg-repository is currently a
local directory on your machine.
diff --git a/platforms/kernel-fit.in b/platforms/kernel-fit.in
index 9585ce64a..5b160c57d 100644
--- a/platforms/kernel-fit.in
+++ b/platforms/kernel-fit.in
@@ -5,26 +5,43 @@ menuconfig KERNEL_FIT
select KERNEL
select HOST_DTC
select HOST_U_BOOT_TOOLS
- select DTC
select CODE_SIGNING if KERNEL_FIT_SIGNED
select IMAGE_ROOT_CPIO if KERNEL_FIT_INITRAMFS
prompt "Generate images/linuximage.fit"
help
- Generate a FIT image from the kernel image. This will contain
- the Kernel image and all device trees in PTXCONF_DTC_OFTREE_DTS.
- Configurations are provided for each device tree together witt
- the Kernel image.
+ Generate a FIT image from the kernel image.
+ This will contain the kernel image and all device trees in
+ PTXCONF_KERNEL_DTS.
+ Configurations are provided for each device tree together with
+ the kernel image.
if KERNEL_FIT
+config KERNEL_FIT_NOLOAD
+ bool
+ prompt "Sub-image type 'kernel_noload'"
+ help
+ Use 'kernel_noload' as sub-image type for the kernel, setting
+ the load address and entry address to dummy values as required
+ by the FIT image specification.
+ Useful for booting kernels supporting multiple boards with
+ U-Boot, e.g. the platform-v7a kernel of DistroKit.
+ U-Boot supports this since release v2011.12.
+
+ Note: barebox added support with release v2024.01.0.
+ You can leave this option disabled if you only use barebox.
+ You should not enable this if you use older barebox versions.
+
config KERNEL_FIT_LOAD
string
+ depends on !KERNEL_FIT_NOLOAD
prompt "Kernel load address (optional)"
help
Required by most bootloaders. Optional for Barebox.
config KERNEL_FIT_ENTRY
string
+ depends on !KERNEL_FIT_NOLOAD
prompt "Kernel entry address (optional)"
help
Required by most bootloaders. Optional for Barebox.
diff --git a/platforms/kernel.in b/platforms/kernel.in
index 68899c0f7..7afda4026 100644
--- a/platforms/kernel.in
+++ b/platforms/kernel.in
@@ -3,6 +3,7 @@
menuconfig KERNEL
bool
default y
+ select CODE_SIGNING if KERNEL_CODE_SIGNING
select HOST_U_BOOT_TOOLS if KERNEL_IMAGE_U || (KERNEL_IMAGE_SIMPLE && ARCH_MICROBLAZE)
select HOST_ZSTD if KERNEL_ZSTD
select HOST_XZ if KERNEL_XZ
@@ -38,6 +39,21 @@ config KERNEL_MODULES_INSTALL
prompt "Install modules into /lib/modules"
depends on KERNEL_MODULES
+config KERNEL_MODULES_SIGN
+ bool
+ depends on KERNEL_MODULES
+ select KERNEL_CODE_SIGNING
+ select KERNEL_MODULES_INSTALL
+ prompt "sign modules"
+ help
+ If enabled, kernel modules are signed during the install stage with
+ the key specified by the code signing provider in the "kernel-modules"
+ role.
+
+ See the section "Kernel module signing" in the "Daily Work" chapter in
+ the PTXdist manual for use cases and more infos about what needs to be
+ enabled in the kernel config file.
+
config KERNEL_VERSION
prompt "kernel version"
string
@@ -113,6 +129,7 @@ choice
help
This is the target to get the kernel image as an raw uncompressed
binary file.
+
config KERNEL_IMAGE_SIMPLE
bool
prompt "simpleImage"
@@ -148,7 +165,7 @@ endif
config KERNEL_IMAGE
string
default "bzImage" if KERNEL_IMAGE_BZ
- default "Image.gz" if KERNEL_IMAGE_Z && ARCH_ARM64
+ default "Image.gz" if KERNEL_IMAGE_Z && (ARCH_ARM64 || ARCH_RISCV)
default "zImage" if KERNEL_IMAGE_Z
default "xipImage" if KERNEL_IMAGE_XIP
default "uImage" if KERNEL_IMAGE_U
@@ -158,6 +175,75 @@ config KERNEL_IMAGE
default "Image" if KERNEL_IMAGE_RAW
default "simpleImage.${PTXCONF_KERNEL_IMAGE_SIMPLE_TARGET}.elf" if KERNEL_IMAGE_SIMPLE
+menuconfig KERNEL_DTB
+ bool
+ prompt "Build device trees "
+
+if KERNEL_DTB
+
+config KERNEL_DTS_PATH
+ string "path to source dts file"
+ default "${PTXDIST_PLATFORMCONFIG_SUBDIR}/dts:${KERNEL_DIR}/arch/${GENERIC_KERNEL_ARCH}/boot/dts"
+ help
+ Define path to the dts source file. Multiple directories can be
+ specified separated by ':'. A relative path will be expanded relative
+ to the workspace and all other layers. Only one of the specified paths
+ can be a relative path.
+
+config KERNEL_DTS
+ string "source dts file"
+ default "<yourboard>.dts"
+ help
+ Select the dts file to use for the device tree binary
+ blob generation. For relative file names KERNEL_DTS_PATH
+ is used as a search path for the device tree files specified
+ here. Multiple dts files can be specified, separated by spaces.
+
+config KERNEL_DTS_SUPPORT_OVERLAYS
+ bool
+
+endif
+
+menuconfig KERNEL_DTBO
+ bool
+ select KERNEL_DTS_SUPPORT_OVERLAYS
+ prompt "Build device tree overlays "
+
+if KERNEL_DTBO
+
+config KERNEL_DTSO_PATH
+ string "path to overlay file(s)"
+ default "${PTXDIST_PLATFORMCONFIG_SUBDIR}/dts/overlays:${KERNEL_DIR}/arch/${GENERIC_KERNEL_ARCH}/boot/dts"
+ help
+ Define path to the dts(o) source file(s). Multiple directories can be
+ specified separated by ':'. A relative path will be expanded relative
+ to the workspace and all other layers. Only one of the specified paths
+ can be a relative path.
+
+config KERNEL_DTSO
+ string "overlay file(s)"
+ default "<youroverlay>.dtso"
+ help
+ Select the dts(o) file(s) to be compiled. For relative file
+ names KERNEL_DTSO_PATH is used as a search path for the device
+ tree files specified here.
+ Multiple dts(o) files can be specified, separated by spaces.
+
+endif
+
+config KERNEL_CODE_SIGNING
+ prompt "use code signing infrastructure"
+ select KERNEL_OPENSSL
+ bool
+ help
+ Enable this option if you want the kernel to make use of the code
+ signing infrastructure, e.g. to supply trust roots from the
+ 'kernel-trusted' code signing role.
+
+ See the section "Using the Code Signing Infrastructure with the Kernel
+ Recipe" in the "Daily Use" chapter in the PTXdist manual for use
+ cases and more information.
+
config KERNEL_ZSTD
prompt "build zstd hosttool"
bool
diff --git a/platforms/non_free_firmware.in b/platforms/non_free_firmware.in
new file mode 100644
index 000000000..c0635859a
--- /dev/null
+++ b/platforms/non_free_firmware.in
@@ -0,0 +1,7 @@
+## SECTION=non_free_firmware
+
+#
+# This file does only exist to create a defined entry in the "non_free_firmware"
+# section, so that the toplevel Kconfig can include generated/non_free_firmware.in
+# even if no package is in that category.
+#
diff --git a/platforms/optee.in b/platforms/optee.in
index dc31f66c6..371f5b237 100644
--- a/platforms/optee.in
+++ b/platforms/optee.in
@@ -3,6 +3,10 @@
menuconfig OPTEE
prompt "OP-TEE "
bool
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_PYELFTOOLS
+ select HOST_SYSTEM_PYTHON3_CRYPTOGRAPHY
+ select HOST_DTC
depends on ARCH_ARM || ARCH_ARM64
depends on !ARCH_ARM64 || BROKEN
help
diff --git a/platforms/platform.in b/platforms/platform.in
index afae05732..e58735c94 100644
--- a/platforms/platform.in
+++ b/platforms/platform.in
@@ -1,8 +1,8 @@
## SECTION=platform_version
config _platformconfig_MAGIC__
- bool
- default y
+ bool
+ default y
comment "------------------------------------"
diff --git a/platforms/tf-a.in b/platforms/tf-a.in
index 0936319f1..0a14bd8c4 100644
--- a/platforms/tf-a.in
+++ b/platforms/tf-a.in
@@ -9,6 +9,13 @@ menuconfig TF_A
if TF_A
+config TF_A_URL
+ string
+ default "https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/snapshot"
+ prompt "TF-A URL"
+ help
+ Enter the TF-A URL you want to use.
+
config TF_A_VERSION
string
default "v2.2"
@@ -23,9 +30,9 @@ config TF_A_MD5
prompt "TF-A source md5"
config TF_A_ARCH_STRING
- string
- default "aarch32" if ARCH_ARM
- default "aarch64" if ARCH_ARM64
+ string
+ default "aarch32" if ARCH_ARM
+ default "aarch64" if ARCH_ARM64
choice
prompt "TF-A Architecture"
@@ -52,10 +59,10 @@ choice
endchoice
config TF_A_ARM_ARCH_MAJOR
- int
- default 7 if TF_A_ARM_ARCH_MAJOR_7
- default 8 if TF_A_ARM_ARCH_MAJOR_8_32_BIT
- default 8 if TF_A_ARM_ARCH_MAJOR_8
+ int
+ default 7 if TF_A_ARM_ARCH_MAJOR_7
+ default 8 if TF_A_ARM_ARCH_MAJOR_8_32_BIT
+ default 8 if TF_A_ARM_ARCH_MAJOR_8
config TF_A_PLATFORMS
@@ -131,10 +138,10 @@ choice TF_A_BL32_TSP_RAM_LOCATION
endchoice
config TF_A_BL32_TSP_RAM_LOCATION_STRING
- string
- default "tsram" if TF_A_BL32_TSP_RAM_LOCATION_TSRAM
- default "tdram" if TF_A_BL32_TSP_RAM_LOCATION_TDRAM
- default "dram" if TF_A_BL32_TSP_RAM_LOCATION_DRAM
+ string
+ default "tsram" if TF_A_BL32_TSP_RAM_LOCATION_TSRAM
+ default "tdram" if TF_A_BL32_TSP_RAM_LOCATION_TDRAM
+ default "dram" if TF_A_BL32_TSP_RAM_LOCATION_DRAM
endif
diff --git a/platforms/toolchain.in b/platforms/toolchain.in
index 86e624329..49c9fddef 100644
--- a/platforms/toolchain.in
+++ b/platforms/toolchain.in
@@ -100,4 +100,13 @@ config COMPILER_PREFIX_BOOTLOADER
name used to compile the bootloader. If the prefix equals
the normal compiler you can use "${PTXCONF_COMPILER_PREFIX}".
+config RUST_TARGET
+ string
+ prompt "rust target"
+ default "${PTXCONF_GNU_TARGET}"
+ help
+ This is the target used for rustc. It can be the same as the
+ gnu target, but not always. It depends on the toolchain and
+ architecture.
+
endmenu
diff --git a/platforms/toolchain_options.in b/platforms/toolchain_options.in
index 0361bf6e7..c409dd947 100644
--- a/platforms/toolchain_options.in
+++ b/platforms/toolchain_options.in
@@ -70,6 +70,18 @@ choice
command-line.
endchoice
+config TARGET_MINI_DEBUGINFO
+ bool
+ prompt "add .gnu_debugdata section to the binaries"
+ help
+ Enable this to create and add the .gnu_debugdata section to all
+ binaries. It allows resolving function names when no other debug
+ symbols are available.
+ In combination with some stack unwinding support, it can be used
+ to create readable backtraces, e.g. with systemd-coredump.
+ On x86_64 and AArch64 the stack unwinding can be done with the
+ .eh_frame sections.
+
config TARGET_COMPILER_RECORD_SWITCHES
bool
prompt "store compiler flags (-frecord-gcc-switches)"
@@ -85,6 +97,14 @@ config TARGET_COMPILER_RECORD_SWITCHES
enabled, the final binary will likely be different each time a
package is rebuilt.
+config TARGET_NO_SEMANTIC_INTERPOSITION
+ bool
+ prompt "build with -fno-semantic-interposition"
+ help
+ Compile with -fno-semantic-interposition. This can improve
+ performance because allows for better optimization The downside
+ is that this makes LD_PRELOAD impossible.
+
config TARGET_BUILD_ID
bool
default y
diff --git a/platforms/u-boot.in b/platforms/u-boot.in
index 4ddf3b3fb..000ca491a 100644
--- a/platforms/u-boot.in
+++ b/platforms/u-boot.in
@@ -2,6 +2,10 @@
menuconfig U_BOOT
select BOOTLOADER
+ select HOST_SYSTEM_PYTHON3
+ select HOST_OPENSSL if U_BOOT_NEEDS_HOST_OPENSSL
+ select HOST_GNUTLS if U_BOOT_NEEDS_HOST_GNUTLS
+ select HOST_LIBUUID if U_BOOT_NEEDS_HOST_LIBUUID
prompt "U-Boot "
bool
@@ -19,6 +23,16 @@ config U_BOOT_MD5
string
prompt "U-Boot source md5"
+config U_BOOT_BUILD_OOT
+ prompt "Out of tree build"
+ default y
+ bool
+ help
+ U-Boot is usually built out of tree.
+ But for some builds, f.ex. with firmware blobs, out of tree builds
+ can break because of vendors using source paths to files.
+ Disable OOT build if you need a workaround for those type of builds.
+
choice
prompt "config system"
default U_BOOT_CONFIGSYSTEM_LEGACY
@@ -30,7 +44,7 @@ config U_BOOT_CONFIGSYSTEM_KCONFIG
U-Boot from version 2014.10 uses Kconfig for configuring a target.
Use this if you want to configure U-Boot inside the BSP, e.g.
with menuconfig.
-
+
NOTE: if you just want to use a defconfig, you can still use the
legacy config system by using the name of a defconfig file from
the "configs" folder as config target.
@@ -159,6 +173,13 @@ endif
comment "target install"
+config U_BOOT_INSTALL_U_BOOT_BIN
+ prompt "install u-boot.bin"
+ bool
+ default y
+ help
+ Installing the U-Boot default binary target.
+
config U_BOOT_INSTALL_SREC
prompt "install u-boot.srec"
bool
@@ -213,17 +234,17 @@ config U_BOOT_INSTALL_U_BOOT_IMX
prompt "install u-boot.imx"
bool
help
- Installing the U-Boot image with imx header (u-boot.imx) into platform
+ Installing the U-Boot image with imx header (u-boot.imx) into platform
image directory. Say yes if you are building for freescale i.MX SOCs
and are not using SPL.
config U_BOOT_INSTALL_U_BOOT_DTB_IMX
- prompt "install u-boot-dtb.imx"
- bool
- help
- Installing the U-Boot image with device tree support and imx header (u-boot-dtb.imx)
- into platform image directory. Say yes if you are building for freescale i.MX SOCs
- and are not using SPL.
+ prompt "install u-boot-dtb.imx"
+ bool
+ help
+ Installing the U-Boot image with device tree support and imx header (u-boot-dtb.imx)
+ into platform image directory. Say yes if you are building for freescale i.MX SOCs
+ and are not using SPL.
config U_BOOT_INSTALL_U_BOOT_DTB
prompt "install u-boot-dtb.bin"
@@ -247,5 +268,43 @@ config U_BOOT_INSTALL_U_BOOT_STM32
platform image directory. Say yes if you are building for STM32MP1
SOCs.
-endif
+config U_BOOT_INSTALL_U_BOOT_FLASH_BIN
+ prompt "install flash.bin"
+ bool
+ help
+ Installing the U-Boot image to Gateworks.
+
+comment "build dependencies"
+config U_BOOT_NEEDS_HOST_OPENSSL
+ prompt "needs host OpenSSL"
+ bool
+ help
+ Newer host U-Boot tools can sign images and use OpenSSL for that.
+ It is most probably needed if your board config does not disable
+ CONFIG_TOOLS_LIBCRYPTO.
+
+ Select this if you're unsure, as it won't hurt.
+ It might just increase the build time, if no other package has
+ host openssl selected.
+
+config U_BOOT_NEEDS_HOST_GNUTLS
+ prompt "needs host GnuTLS"
+ bool
+ help
+ U-Boot from version 2022.04 includes host tools using GnuTLS for
+ image signing.
+
+ Select this if your board config enables such tools, e.g. with
+ CONFIG_TOOLS_MKEFICAPSULE.
+
+config U_BOOT_NEEDS_HOST_LIBUUID
+ prompt "needs host libuuid"
+ bool
+ help
+ U-Boot from version 2022.04 includes host tools using libuuid.
+
+ Select this if your board config enables such tools, e.g. with
+ CONFIG_TOOLS_MKEFICAPSULE or CONFIG_TOOLS_MKFWUMDATA.
+
+endif
diff --git a/projectroot/etc/dhclient.conf b/projectroot/etc/dhclient.conf
index 6a994e6ed..1adf4dd7c 100644
--- a/projectroot/etc/dhclient.conf
+++ b/projectroot/etc/dhclient.conf
@@ -1,10 +1,10 @@
-#send host-name "andare.fugue.com";
+#send host-name = pick-first-value(gethostname(), "ISC-dhclient");
#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
#send dhcp-lease-time 3600;
-#supersede domain-name "fugue.com home.vix.com";
+#supersede domain-search "example.com", "isc.org";
#prepend domain-name-servers 127.0.0.1;
-request subnet-mask, broadcast-address, time-offset, routers,
- domain-name, domain-name-servers, host-name;
+#request subnet-mask, broadcast-address, time-offset, routers,
+# domain-name, domain-name-servers, host-name;
#require subnet-mask, domain-name-servers;
#timeout 60;
#retry 60;
@@ -14,18 +14,18 @@ request subnet-mask, broadcast-address, time-offset, routers,
#script "/etc/dhclient-script";
#media "-link0 -link1 -link2", "link0 link1";
#reject 192.33.137.209;
-
+#
#alias {
# interface "ep0";
# fixed-address 192.5.5.213;
# option subnet-mask 255.255.255.255;
#}
-
+#
#lease {
# interface "ep0";
# fixed-address 192.33.137.200;
# medium "link0 link1";
-# option host-name "andare.swiftmedia.com";
+# option host-name "andare.example.com";
# option subnet-mask 255.255.255.0;
# option broadcast-address 192.33.137.255;
# option routers 192.33.137.250;
diff --git a/projectroot/etc/dhcpd.conf b/projectroot/etc/dhcpd.conf
index 5eab9516d..7fc12882c 100644
--- a/projectroot/etc/dhcpd.conf
+++ b/projectroot/etc/dhcpd.conf
@@ -3,102 +3,102 @@
# Sample configuration file for ISC dhcpd
#
-# option definitions common to all supported networks...
-option domain-name "example.org";
-option domain-name-servers ns1.example.org, ns2.example.org;
-
-default-lease-time 600;
-max-lease-time 7200;
-
-# Use this to enble / disable dynamic dns updates globally.
-#ddns-update-style none;
-
-# If this DHCP server is the official DHCP server for the local
-# network, the authoritative directive should be uncommented.
-#authoritative;
-
-# Use this to send dhcp log messages to a different log file (you also
-# have to hack syslog.conf to complete the redirection).
-log-facility local7;
-
-# No service will be given on this subnet, but declaring it helps the
-# DHCP server to understand the network topology.
-
-subnet 10.152.187.0 netmask 255.255.255.0 {
-}
-
-# This is a very basic subnet declaration.
-
-subnet 10.254.239.0 netmask 255.255.255.224 {
- range 10.254.239.10 10.254.239.20;
- option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
-}
-
-# This declaration allows BOOTP clients to get dynamic addresses,
-# which we don't really recommend.
-
-subnet 10.254.239.32 netmask 255.255.255.224 {
- range dynamic-bootp 10.254.239.40 10.254.239.60;
- option broadcast-address 10.254.239.31;
- option routers rtr-239-32-1.example.org;
-}
-
-# A slightly different configuration for an internal subnet.
-subnet 10.5.5.0 netmask 255.255.255.224 {
- range 10.5.5.26 10.5.5.30;
- option domain-name-servers ns1.internal.example.org;
- option domain-name "internal.example.org";
- option routers 10.5.5.1;
- option broadcast-address 10.5.5.31;
- default-lease-time 600;
- max-lease-time 7200;
-}
-
-# Hosts which require special configuration options can be listed in
-# host statements. If no address is specified, the address will be
-# allocated dynamically (if possible), but the host-specific information
-# will still come from the host declaration.
-
-host passacaglia {
- hardware ethernet 0:0:c0:5d:bd:95;
- filename "vmunix.passacaglia";
- server-name "toccata.fugue.com";
-}
-
-# Fixed IP addresses can also be specified for hosts. These addresses
-# should not also be listed as being available for dynamic assignment.
-# Hosts for which fixed IP addresses have been specified can boot using
-# BOOTP or DHCP. Hosts for which no fixed address is specified can only
-# be booted with DHCP, unless there is an address range on the subnet
-# to which a BOOTP client is connected which has the dynamic-bootp flag
-# set.
-host fantasia {
- hardware ethernet 08:00:07:26:c0:a5;
- fixed-address fantasia.fugue.com;
-}
-
-# You can declare a class of clients and then do address allocation
-# based on that. The example below shows a case where all clients
-# in a certain class get addresses on the 10.17.224/24 subnet, and all
-# other clients get addresses on the 10.0.29/24 subnet.
-
-class "foo" {
- match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
-}
-
-shared-network 224-29 {
- subnet 10.17.224.0 netmask 255.255.255.0 {
- option routers rtr-224.example.org;
- }
- subnet 10.0.29.0 netmask 255.255.255.0 {
- option routers rtr-29.example.org;
- }
- pool {
- allow members of "foo";
- range 10.17.224.10 10.17.224.250;
- }
- pool {
- deny members of "foo";
- range 10.0.29.10 10.0.29.230;
- }
-}
+## option definitions common to all supported networks...
+#option domain-name "example.org";
+#option domain-name-servers ns1.example.org, ns2.example.org;
+#
+#default-lease-time 600;
+#max-lease-time 7200;
+#
+## Use this to enble / disable dynamic dns updates globally.
+##ddns-update-style none;
+#
+## If this DHCP server is the official DHCP server for the local
+## network, the authoritative directive should be uncommented.
+##authoritative;
+#
+## Use this to send dhcp log messages to a different log file (you also
+## have to hack syslog.conf to complete the redirection).
+#log-facility local7;
+#
+## No service will be given on this subnet, but declaring it helps the
+## DHCP server to understand the network topology.
+#
+#subnet 10.152.187.0 netmask 255.255.255.0 {
+#}
+#
+## This is a very basic subnet declaration.
+#
+#subnet 10.254.239.0 netmask 255.255.255.224 {
+# range 10.254.239.10 10.254.239.20;
+# option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
+#}
+#
+## This declaration allows BOOTP clients to get dynamic addresses,
+## which we don't really recommend.
+#
+#subnet 10.254.239.32 netmask 255.255.255.224 {
+# range dynamic-bootp 10.254.239.40 10.254.239.60;
+# option broadcast-address 10.254.239.31;
+# option routers rtr-239-32-1.example.org;
+#}
+#
+## A slightly different configuration for an internal subnet.
+#subnet 10.5.5.0 netmask 255.255.255.224 {
+# range 10.5.5.26 10.5.5.30;
+# option domain-name-servers ns1.internal.example.org;
+# option domain-name "internal.example.org";
+# option routers 10.5.5.1;
+# option broadcast-address 10.5.5.31;
+# default-lease-time 600;
+# max-lease-time 7200;
+#}
+#
+## Hosts which require special configuration options can be listed in
+## host statements. If no address is specified, the address will be
+## allocated dynamically (if possible), but the host-specific information
+## will still come from the host declaration.
+#
+#host passacaglia {
+# hardware ethernet 0:0:c0:5d:bd:95;
+# filename "vmunix.passacaglia";
+# server-name "toccata.example.com";
+#}
+#
+## Fixed IP addresses can also be specified for hosts. These addresses
+## should not also be listed as being available for dynamic assignment.
+## Hosts for which fixed IP addresses have been specified can boot using
+## BOOTP or DHCP. Hosts for which no fixed address is specified can only
+## be booted with DHCP, unless there is an address range on the subnet
+## to which a BOOTP client is connected which has the dynamic-bootp flag
+## set.
+#host fantasia {
+# hardware ethernet 08:00:07:26:c0:a5;
+# fixed-address fantasia.example.com;
+#}
+#
+## You can declare a class of clients and then do address allocation
+## based on that. The example below shows a case where all clients
+## in a certain class get addresses on the 10.17.224/24 subnet, and all
+## other clients get addresses on the 10.0.29/24 subnet.
+#
+#class "foo" {
+# match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
+#}
+#
+#shared-network 224-29 {
+# subnet 10.17.224.0 netmask 255.255.255.0 {
+# option routers rtr-224.example.org;
+# }
+# subnet 10.0.29.0 netmask 255.255.255.0 {
+# option routers rtr-29.example.org;
+# }
+# pool {
+# allow members of "foo";
+# range 10.17.224.10 10.17.224.250;
+# }
+# pool {
+# deny members of "foo";
+# range 10.0.29.10 10.0.29.230;
+# }
+#}
diff --git a/projectroot/etc/fonts/conf.d/30-0-google-crosextra-caladea-fontconfig.conf b/projectroot/etc/fonts/conf.d/30-0-google-crosextra-caladea-fontconfig.conf
deleted file mode 100644
index 96696a481..000000000
--- a/projectroot/etc/fonts/conf.d/30-0-google-crosextra-caladea-fontconfig.conf
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
-<fontconfig>
- <!-- Microsoft -->
- <alias binding="same">
- <family>Cambria</family>
- <accept>
- <family>Caladea</family>
- </accept>
- </alias>
- <alias binding="same">
- <family>Caladea</family>
- <default>
- <family>Cambria</family>
- </default>
- </alias>
-</fontconfig>
diff --git a/projectroot/etc/fonts/conf.d/30-0-google-crosextra-carlito-fontconfig.conf b/projectroot/etc/fonts/conf.d/30-0-google-crosextra-carlito-fontconfig.conf
deleted file mode 100644
index a613cd8d7..000000000
--- a/projectroot/etc/fonts/conf.d/30-0-google-crosextra-carlito-fontconfig.conf
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
-<fontconfig>
- <!-- Microsoft -->
- <alias binding="same">
- <family>Calibri</family>
- <accept>
- <family>Carlito</family>
- </accept>
- </alias>
- <alias binding="same">
- <family>Carlito</family>
- <default>
- <family>Calibri</family>
- </default>
- </alias>
-</fontconfig>
diff --git a/projectroot/etc/fonts/conf.d/62-google-crosextra-caladea-fontconfig.conf b/projectroot/etc/fonts/conf.d/62-google-crosextra-caladea-fontconfig.conf
deleted file mode 100644
index 8ae2f2a65..000000000
--- a/projectroot/etc/fonts/conf.d/62-google-crosextra-caladea-fontconfig.conf
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
-<fontconfig>
- <alias>
- <family>serif</family>
- <prefer>
- <family>Caladea</family>
- </prefer>
- </alias>
- <alias>
- <family>Caladea</family>
- <default>
- <family>serif</family>
- </default>
- </alias>
-</fontconfig>
-
diff --git a/projectroot/etc/fonts/conf.d/62-google-crosextra-carlito-fontconfig.conf b/projectroot/etc/fonts/conf.d/62-google-crosextra-carlito-fontconfig.conf
deleted file mode 100644
index dd57ff4e7..000000000
--- a/projectroot/etc/fonts/conf.d/62-google-crosextra-carlito-fontconfig.conf
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
-<fontconfig>
- <alias>
- <family>sans-serif</family>
- <prefer>
- <family>Carlito</family>
- </prefer>
- </alias>
- <alias>
- <family>Carlito</family>
- <default>
- <family>sans-serif</family>
- </default>
- </alias>
-</fontconfig>
-
diff --git a/projectroot/etc/group b/projectroot/etc/group
index 09df73ba0..1a8e2eeb2 100644
--- a/projectroot/etc/group
+++ b/projectroot/etc/group
@@ -18,9 +18,9 @@ kmem:x:109:
lp:x:110:
tape:x:111:
tty:x:112:
-video:x:113:
+video:x:113:pipewire
lock:x:114:
-audio:x:115:
+audio:x:115:pipewire
input:x:116:
mysql:x:117:
mosquitto:x:118:
@@ -33,4 +33,10 @@ render:x:209:
pulse:x:210:
chrony:x:211:
rauc-hawkbit:x:212:
+redis:x:213:
+sgx:x:214:
+seat:x:215:
+pipewire:x:216:
+mongodb:x:217:
+polkitd:x:218:
nogroup:x:65534:
diff --git a/projectroot/etc/init.d/NetworkManager b/projectroot/etc/init.d/NetworkManager
index 50a5467ad..67256feae 100644
--- a/projectroot/etc/init.d/NetworkManager
+++ b/projectroot/etc/init.d/NetworkManager
@@ -19,7 +19,7 @@ exec_prefix=/usr
sbindir=${exec_prefix}/sbin
localstatedir=/var
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
DESC="network connection manager"
NAME="NetworkManager"
@@ -43,7 +43,7 @@ test -f /etc/default/NetworkManager && . /etc/default/NetworkManager
# Function that starts the daemon/service.
#
d_start() {
- /lib/init/nm-unmanage.sh
+ /usr/lib/init/nm-unmanage.sh
start-stop-daemon --start --quiet --pidfile $PIDFILE \
--oknodo --user $USER --exec $DAEMON -- $DAEMON_OPTS --pid-file $PIDFILE
diff --git a/projectroot/etc/init.d/apache2 b/projectroot/etc/init.d/apache2
deleted file mode 100644
index a8cf04f7e..000000000
--- a/projectroot/etc/init.d/apache2
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/sh
-#
-# /etc/init.d/apache2
-#
-NAME=apache2
-
-#
-# This is an workaround, if the path targets into a ramfs
-#
-mkdir -p @LOGPATH@
-
-case "$1" in
- start)
- echo -n "Starting $NAME: "
- if /usr/sbin/apache2 -f @APACHECONFIG@ -k start; then
- echo "Done"
- else
- echo "Failed"
- fi
- ;;
-
- stop)
- echo -n "Stopping $NAME: "
- if /usr/sbin/apache2 -f @APACHECONFIG@ -k stop; then
- echo "Done"
- else
- echo "Failed"
- fi
- ;;
-
- restart)
- echo -n "Restarting $NAME: "
- if /usr/sbin/apache2 -f @APACHECONFIG@ -k restart; then
- echo "Done"
- else
- echo "Failed"
- fi
- ;;
-
- *)
- echo "Usage: /etc/init.d/$NAME {start|stop|restart}"
- exit 1
- ;;
-esac
diff --git a/projectroot/etc/init.d/atd b/projectroot/etc/init.d/atd
index 7253f646c..62bfef811 100644
--- a/projectroot/etc/init.d/atd
+++ b/projectroot/etc/init.d/atd
@@ -3,7 +3,7 @@
#
# atd
#
-PATH=/usr/bin:/usr/sbin:/bin:/sbin
+PATH=/usr/bin:/usr/sbin
PREFIX="atd: "
ATD="/usr/sbin/atd"
diff --git a/projectroot/etc/init.d/avahi-daemon b/projectroot/etc/init.d/avahi-daemon
index 27c22cc52..7aadb7525 100644
--- a/projectroot/etc/init.d/avahi-daemon
+++ b/projectroot/etc/init.d/avahi-daemon
@@ -4,7 +4,7 @@
# Mi 22. Jul 21:46:28 CEST 2009
#set -e
-PATH=/sbin:/bin:/usr/bin
+PATH=/usr/sbin:/usr/bin
BINARY=/usr/sbin/avahi-daemon
OPTIONS="-D"
diff --git a/projectroot/etc/init.d/chrony b/projectroot/etc/init.d/chrony
index d112927f8..a40e2e621 100644
--- a/projectroot/etc/init.d/chrony
+++ b/projectroot/etc/init.d/chrony
@@ -7,7 +7,7 @@
# Last change: Bjørn Bürger <b.buerger@pengutronix.de>
# Date: Tue Mar 6 16:00:30 UTC 2007
-PATH=/sbin:/bin:/usr/bin:/usr/sbin
+PATH=/usr/sbin:/usr/bin
BINARY="/usr/sbin/chronyd"
CONFIG="/etc/chrony/chrony.conf"
PREFIX="chrony: "
diff --git a/projectroot/etc/init.d/dropbear b/projectroot/etc/init.d/dropbear
index 8f7438462..bec330ab2 100644
--- a/projectroot/etc/init.d/dropbear
+++ b/projectroot/etc/init.d/dropbear
@@ -1,33 +1,38 @@
#!/bin/sh
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/dropbear
NAME=dropbear
DROPBEAR_PORT=22
DROPBEAR_EXTRA_ARGS=
-. /lib/init/initmethod-bbinit-functions.sh
+. /usr/lib/init/dropbear.sh
# test ! -h /var/service/dropbear || exit 0
-DROPBEAR_RSAKEY_DEFAULT="@KEYDIR@/dropbear_rsa_host_key"
-DROPBEAR_DSSKEY_DEFAULT="@KEYDIR@/dropbear_dss_host_key"
-
test -z "$DROPBEAR_BANNER" || \
DROPBEAR_EXTRA_ARGS="$DROPBEAR_EXTRA_ARGS -b $DROPBEAR_BANNER"
-test -n "$DROPBEAR_RSAKEY" || \
- DROPBEAR_RSAKEY=$DROPBEAR_RSAKEY_DEFAULT
-test -n "$DROPBEAR_DSSKEY" || \
- DROPBEAR_DSSKEY=$DROPBEAR_DSSKEY_DEFAULT
-test -n "$DROPBEAR_KEYTYPES" || \
- DROPBEAR_KEYTYPES="rsa dss"
dropbear_start() {
-
KEY_ARGS=""
- test -f $DROPBEAR_DSSKEY && KEY_ARGS="$KEY_ARGS -d $DROPBEAR_DSSKEY"
- test -f $DROPBEAR_RSAKEY && KEY_ARGS="$KEY_ARGS -r $DROPBEAR_RSAKEY"
+ for keytype in $DROPBEAR_KEYTYPES
+ do
+ case "$keytype" in
+ rsa)
+ test -f "$DROPBEAR_RSAKEY" && KEY_ARGS="$KEY_ARGS -r $DROPBEAR_RSAKEY"
+ ;;
+ ecdsa)
+ test -f "$DROPBEAR_ECDSAKEY" && KEY_ARGS="$KEY_ARGS -r $DROPBEAR_ECDSAKEY"
+ ;;
+ ed25519)
+ test -f "$DROPBEAR_ED25519KEY" && KEY_ARGS="$KEY_ARGS -r $DROPBEAR_ED25519KEY"
+ ;;
+ *)
+ echo "Key type '$keytype' not supported"
+ ;;
+ esac
+ done
echo -n "starting dropbear..."
diff --git a/projectroot/etc/init.d/haveged b/projectroot/etc/init.d/haveged
index 1a4fc62a2..14e391320 100755
--- a/projectroot/etc/init.d/haveged
+++ b/projectroot/etc/init.d/haveged
@@ -1,6 +1,6 @@
#!/bin/sh
-PATH='/sbin:/usr/sbin:/bin:/usr/bin'
+PATH='/usr/sbin:/usr/bin'
DESC='haveged entropy daemon'
NAME='haveged'
DAEMON="/usr/sbin/$NAME"
diff --git a/projectroot/etc/init.d/inetd b/projectroot/etc/init.d/inetd
index 128d41a82..8fb10d994 100644
--- a/projectroot/etc/init.d/inetd
+++ b/projectroot/etc/init.d/inetd
@@ -3,7 +3,7 @@
# This is an inetd init.d script which ist called by init(1) with [start|stop] as argument
#
-PATH=/sbin:/bin:/usr/bin
+PATH=/usr/sbin:/usr/bin
BINARY=/usr/sbin/inetd
# --- nothing to change after this line ---
diff --git a/projectroot/etc/init.d/lighttpd b/projectroot/etc/init.d/lighttpd
index 24a17e2a0..e1b17c984 100644
--- a/projectroot/etc/init.d/lighttpd
+++ b/projectroot/etc/init.d/lighttpd
@@ -3,7 +3,7 @@
#
# lighttpd
#
-PATH=/usr/bin:/usr/sbin:/bin:/sbin
+PATH=/usr/bin:/usr/sbin
PREFIX="lighttpd: "
LIGHTTPD="/usr/sbin/lighttpd"
diff --git a/projectroot/etc/init.d/lldpd b/projectroot/etc/init.d/lldpd
index 00c8240f5..a592730fb 100755
--- a/projectroot/etc/init.d/lldpd
+++ b/projectroot/etc/init.d/lldpd
@@ -1,6 +1,6 @@
#!/bin/sh
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
+PATH=/usr/sbin:/usr/bin
DESC="LLDP daemon"
NAME=lldpd
DAEMON=/usr/sbin/$NAME
diff --git a/projectroot/etc/init.d/monit b/projectroot/etc/init.d/monit
index 96ec86ab9..c27543204 100644
--- a/projectroot/etc/init.d/monit
+++ b/projectroot/etc/init.d/monit
@@ -1,6 +1,6 @@
#!/bin/sh
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
+PATH=/usr/sbin:/usr/bin
DESC="daemon monitor"
NAME=monit
DAEMON=/usr/bin/$NAME
diff --git a/projectroot/etc/init.d/nftables b/projectroot/etc/init.d/nftables
index c10db5d90..27a5d707e 100644
--- a/projectroot/etc/init.d/nftables
+++ b/projectroot/etc/init.d/nftables
@@ -7,7 +7,7 @@
CONF=/etc/nftables.conf
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
+PATH=/usr/sbin:/usr/bin
DESC="firewall service"
NAME=nftables
BIN=/usr/sbin/nft
diff --git a/projectroot/etc/init.d/ntp-client b/projectroot/etc/init.d/ntp-client
index edca3f297..d3748c5e5 100644
--- a/projectroot/etc/init.d/ntp-client
+++ b/projectroot/etc/init.d/ntp-client
@@ -3,7 +3,7 @@
# This is a ntp-client init.d script which ist called by init(1) with
# [start|stop] as argument
-PATH=/sbin:/bin:/usr/bin
+PATH=/usr/sbin:/usr/bin
BINARY=/usr/sbin/ntpdc
PIDFILE="/var/run/ntpdc.pid"
CONFIG="/etc/ntp-client.conf"
diff --git a/projectroot/etc/init.d/ntp-server b/projectroot/etc/init.d/ntp-server
index bda35616e..550cd7bfa 100644
--- a/projectroot/etc/init.d/ntp-server
+++ b/projectroot/etc/init.d/ntp-server
@@ -3,7 +3,7 @@
# This is a ntp init.d script which ist called by init(1) with [start|stop] as argument
#
-PATH=/sbin:/bin:/usr/bin
+PATH=/usr/sbin:/usr/bin
BINARY=/usr/sbin/ntpd
PIDFILE="/var/run/ntpd.pid"
CONFIG="/etc/ntp-server.conf"
diff --git a/projectroot/etc/init.d/openssh b/projectroot/etc/init.d/openssh
index b65880e5d..ad760ddda 100644
--- a/projectroot/etc/init.d/openssh
+++ b/projectroot/etc/init.d/openssh
@@ -1,6 +1,6 @@
#!/bin/sh
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/sshd
NAME=sshd
PIDFILE=/var/run/sshd.pid
diff --git a/projectroot/etc/init.d/proftpd b/projectroot/etc/init.d/proftpd
index ae69bb814..4ebd008e1 100644
--- a/projectroot/etc/init.d/proftpd
+++ b/projectroot/etc/init.d/proftpd
@@ -4,7 +4,7 @@
# Start the proftpd FTP daemon.
#
-PATH=/bin:/usr/bin:/sbin:/usr/sbin
+PATH=/usr/bin:/usr/sbin
DAEMON=/usr/sbin/proftpd
NAME=proftpd
diff --git a/projectroot/etc/init.d/pureftpd b/projectroot/etc/init.d/pureftpd
index 4d23aec2c..a89f62a82 100644
--- a/projectroot/etc/init.d/pureftpd
+++ b/projectroot/etc/init.d/pureftpd
@@ -3,7 +3,7 @@
# /etc/init.d/pure-ftpd
#
-PATH=/bin:/usr/bin:/sbin:/usr/sbin
+PATH=/usr/bin:/usr/sbin
# defaults
DAEMON="pure-ftpd"
diff --git a/projectroot/etc/init.d/rc-once b/projectroot/etc/init.d/rc-once
index 2387c3157..657dd047f 100644
--- a/projectroot/etc/init.d/rc-once
+++ b/projectroot/etc/init.d/rc-once
@@ -1,9 +1,9 @@
#!/bin/sh
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
-. /lib/init/initmethod-bbinit-functions.sh
-. /lib/init/rc-once.sh
+. /usr/lib/init/initmethod-bbinit-functions.sh
+. /usr/lib/init/rc-once.sh
do_start() {
test -e "$STAMP" && return
diff --git a/projectroot/etc/init.d/samba b/projectroot/etc/init.d/samba
index a85bdc5db..04761ecfb 100644
--- a/projectroot/etc/init.d/samba
+++ b/projectroot/etc/init.d/samba
@@ -1,7 +1,7 @@
#!/bin/sh
#
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
DAEMON_SMB=/usr/sbin/smbd
DAEMON_NMB=/usr/sbin/nmbd
NAME=samba
diff --git a/projectroot/etc/init.d/sysctl b/projectroot/etc/init.d/sysctl
index d23f9d5b2..5be2fad9d 100644
--- a/projectroot/etc/init.d/sysctl
+++ b/projectroot/etc/init.d/sysctl
@@ -2,7 +2,7 @@
# /etc/init.d/sysctl: Set kernel variables from /etc/sysctl.conf
#
-PATH=/sbin:$PATH
+PATH=/usr/sbin:$PATH
which sysctl > /dev/null || exit 0
case "$1" in
diff --git a/projectroot/etc/init.d/ubihealthd b/projectroot/etc/init.d/ubihealthd
new file mode 100755
index 000000000..62608cdff
--- /dev/null
+++ b/projectroot/etc/init.d/ubihealthd
@@ -0,0 +1,111 @@
+#!/bin/sh
+
+PATH='/usr/sbin:/usr/bin'
+DESC='ubihealthd UBI device PEB scan daemon'
+NAME='ubihealthd'
+DAEMON="/usr/sbin/$NAME"
+DAEMON_ARGS=''
+SCRIPTNAME="/etc/init.d/$NAME"
+
+# exit if binary is missing
+[ -x "$DAEMON" ] || exit 0
+
+is_running() {
+ start-stop-daemon -K --quiet --test --exec $DAEMON
+}
+
+do_start() {
+ is_running && return 1
+ start-stop-daemon -S --quiet --exec $DAEMON -- $DAEMON_ARGS || return 2
+}
+
+do_stop() {
+ is_running || return 0
+ start-stop-daemon -K --quiet --exec $DAEMON
+ RETVAL="$?"
+
+ # wait up to 30 seconds until daemon stopped
+ for i in $(seq 30)
+ do
+ sleep 1
+ echo -n '.'
+ if ! is_running
+ then
+ break
+ fi
+ done
+
+ # see if it's still running
+ if is_running
+ then
+ start-stop-daemon -K --quiet --signal KILL --exec $DAEMON
+
+ for i in $(seq 5)
+ do
+ sleep 1
+ echo -n '.'
+ if ! is_running
+ then
+ break
+ fi
+ done
+
+ if is_running
+ then
+ return 2
+ fi
+ fi
+
+ rm -f $PIDFILE
+ return "$RETVAL"
+}
+
+case "$1" in
+ start)
+ echo -n "Starting $DESC ..."
+ do_start
+ case "$?" in
+ 0|1) echo " Done." ;;
+ 2) echo " Failed." ;;
+ esac
+ ;;
+ stop)
+ echo -n "Stopping $DESC ."
+ do_stop
+ case "$?" in
+ 0|1) echo " Done." ;;
+ 2) echo " Failed." ;;
+ esac
+ ;;
+ restart)
+ echo -n "Restarting $DESC .."
+ do_stop
+ case "$?" in
+ 0|1)
+ do_start
+ case "$?" in
+ 0) echo " Done." ;;
+ 1) echo " Failed." ;; # Old process still running
+ *) echo " Failed." ;; # Failed to start
+ esac
+ ;;
+ *)
+ echo " Failed." # Failed to stop
+ ;;
+ esac
+ ;;
+ status)
+ if is_running
+ then
+ echo "$NAME is running"
+ else
+ echo "$NAME is not running"
+ fi
+ ;;
+ *)
+ echo "Usage: $SCRIPTNAME {start|stop|restart|status}" >&2
+ exit 3
+ ;;
+esac
+
+:
diff --git a/projectroot/etc/init.d/udev b/projectroot/etc/init.d/udev
index 0e4a880bb..8992ffe29 100644
--- a/projectroot/etc/init.d/udev
+++ b/projectroot/etc/init.d/udev
@@ -1,7 +1,7 @@
#!/bin/sh
udev_root="/dev"
-udev_rules="/lib/udev/rules.d"
+udev_rules="/usr/lib/udev/rules.d"
udev_log="err"
# for new udevd
diff --git a/projectroot/etc/init.d/zeroconf b/projectroot/etc/init.d/zeroconf
index ad4ebc135..6fc0f98fe 100644
--- a/projectroot/etc/init.d/zeroconf
+++ b/projectroot/etc/init.d/zeroconf
@@ -3,7 +3,7 @@
# This is a zeroconf init.d script which ist called by init(1) with [start|stop] as argument
# Mi 22. Jul 21:46:28 CEST 2009
-PATH=/sbin:/bin:/usr/bin
+PATH=/usr/sbin:/usr/bin
BINARY=/usr/sbin/avahi-autoipd
OPTIONS="--force-bind -D"
INTERFACES="eth0"
diff --git a/projectroot/etc/lighttpd/lighttpd.conf b/projectroot/etc/lighttpd/lighttpd.conf
index fa2f60e13..abd4bb66e 100644
--- a/projectroot/etc/lighttpd/lighttpd.conf
+++ b/projectroot/etc/lighttpd/lighttpd.conf
@@ -13,6 +13,8 @@ server.modules = (
@MODULES@
)
+@NOH2@server.feature-flags += ( "server.h2proto" => "disable" )
+
index-file.names = ( "index.html" )
include "conf.d/*.conf"
diff --git a/projectroot/etc/opkg/opkg.conf b/projectroot/etc/opkg/opkg.conf
index 67a64838f..dd1de5f4e 100644
--- a/projectroot/etc/opkg/opkg.conf
+++ b/projectroot/etc/opkg/opkg.conf
@@ -16,7 +16,3 @@ option info_dir /usr/share/opkg/info
arch @ARCH@ 10
arch all 1
arch noarch 1
-
-@CHECKSIG@
-@CAPATH@
-@CAFILE@
diff --git a/projectroot/etc/passwd b/projectroot/etc/passwd
index 529f49a77..89763295a 100644
--- a/projectroot/etc/passwd
+++ b/projectroot/etc/passwd
@@ -17,5 +17,9 @@ systemd-journal-upload:x:208:208:systemd-journal-upload:/dev/null:/bin/false
pulse:x:209:210:pulse:/dev/null:/bin/false
chrony:x:210:211:chrony:/dev/null:/bin/false
rauc-hawkbit:x:211:212:rauc-hawkbit:/dev/null:/bin/false
+redis:x:212:213:redis:/dev/null:/bin/false
+pipewire:x:213:216:pipewire:/dev/null:/bin/false
+mongodb:x:214:217:mongodb:/dev/null:/bin/false
+polkitd:x:215:218:polkitd:/dev/null:/bin/false
rpcuser:x:65533:65534:RPC user:/dev/null:/bin/false
nobody:x:65534:65534:Unprivileged Nobody:/dev/null:/bin/false
diff --git a/projectroot/etc/php5/php.ini b/projectroot/etc/php5/php.ini
deleted file mode 100644
index 5a63f43b9..000000000
--- a/projectroot/etc/php5/php.ini
+++ /dev/null
@@ -1,1337 +0,0 @@
-[PHP]
-
-;;;;;;;;;;;;;;;;;;;
-; About php.ini ;
-;;;;;;;;;;;;;;;;;;;
-; This file controls many aspects of PHP's behavior. In order for PHP to
-; read it, it must be named 'php.ini'. PHP looks for it in the current
-; working directory, in the path designated by the environment variable
-; PHPRC, and in the path that was defined in compile time (in that order).
-; Under Windows, the compile-time path is the Windows directory. The
-; path in which the php.ini file is looked for can be overridden using
-; the -c argument in command line mode.
-;
-; The syntax of the file is extremely simple. Whitespace and Lines
-; beginning with a semicolon are silently ignored (as you probably guessed).
-; Section headers (e.g. [Foo]) are also silently ignored, even though
-; they might mean something in the future.
-;
-; Directives are specified using the following syntax:
-; directive = value
-; Directive names are *case sensitive* - foo=bar is different from FOO=bar.
-;
-; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one
-; of the INI constants (On, Off, True, False, Yes, No and None) or an expression
-; (e.g. E_ALL & ~E_NOTICE), or a quoted string ("foo").
-;
-; Expressions in the INI file are limited to bitwise operators and parentheses:
-; | bitwise OR
-; & bitwise AND
-; ~ bitwise NOT
-; ! boolean NOT
-;
-; Boolean flags can be turned on using the values 1, On, True or Yes.
-; They can be turned off using the values 0, Off, False or No.
-;
-; An empty string can be denoted by simply not writing anything after the equal
-; sign, or by using the None keyword:
-;
-; foo = ; sets foo to an empty string
-; foo = none ; sets foo to an empty string
-; foo = "none" ; sets foo to the string 'none'
-;
-; If you use constants in your value, and these constants belong to a
-; dynamically loaded extension (either a PHP extension or a Zend extension),
-; you may only use these constants *after* the line that loads the extension.
-;
-;
-;;;;;;;;;;;;;;;;;;;
-; About this file ;
-;;;;;;;;;;;;;;;;;;;
-; This is the recommended, PHP 5-style version of the php.ini-dist file. It
-; sets some non standard settings, that make PHP more efficient, more secure,
-; and encourage cleaner coding.
-;
-; The price is that with these settings, PHP may be incompatible with some
-; applications, and sometimes, more difficult to develop with. Using this
-; file is warmly recommended for production sites. As all of the changes from
-; the standard settings are thoroughly documented, you can go over each one,
-; and decide whether you want to use it or not.
-;
-; For general information about the php.ini file, please consult the php.ini-dist
-; file, included in your PHP distribution.
-;
-; This file is different from the php.ini-dist file in the fact that it features
-; different values for several directives, in order to improve performance, while
-; possibly breaking compatibility with the standard out-of-the-box behavior of
-; PHP. Please make sure you read what's different, and modify your scripts
-; accordingly, if you decide to use this file instead.
-;
-; - register_long_arrays = Off [Performance]
-; Disables registration of the older (and deprecated) long predefined array
-; variables ($HTTP_*_VARS). Instead, use the superglobals that were
-; introduced in PHP 4.1.0
-; - display_errors = Off [Security]
-; With this directive set to off, errors that occur during the execution of
-; scripts will no longer be displayed as a part of the script output, and thus,
-; will no longer be exposed to remote users. With some errors, the error message
-; content may expose information about your script, web server, or database
-; server that may be exploitable for hacking. Production sites should have this
-; directive set to off.
-; - log_errors = On [Security]
-; This directive complements the above one. Any errors that occur during the
-; execution of your script will be logged (typically, to your server's error log,
-; but can be configured in several ways). Along with setting display_errors to off,
-; this setup gives you the ability to fully understand what may have gone wrong,
-; without exposing any sensitive information to remote users.
-; - output_buffering = 4096 [Performance]
-; Set a 4KB output buffer. Enabling output buffering typically results in less
-; writes, and sometimes less packets sent on the wire, which can often lead to
-; better performance. The gain this directive actually yields greatly depends
-; on which Web server you're working with, and what kind of scripts you're using.
-; - register_argc_argv = Off [Performance]
-; Disables registration of the somewhat redundant $argv and $argc global
-; variables.
-; - magic_quotes_gpc = Off [Performance]
-; Input data is no longer escaped with slashes so that it can be sent into
-; SQL databases without further manipulation. Instead, you should use the
-; database vendor specific escape string function on each input element you
-; wish to send to a database.
-; - variables_order = "GPCS" [Performance]
-; The environment variables are not hashed into the $_ENV. To access
-; environment variables, you can use getenv() instead.
-; - error_reporting = E_ALL [Code Cleanliness, Security(?)]
-; By default, PHP suppresses errors of type E_NOTICE. These error messages
-; are emitted for non-critical errors, but that could be a symptom of a bigger
-; problem. Most notably, this will cause error messages about the use
-; of uninitialized variables to be displayed.
-; - allow_call_time_pass_reference = Off [Code cleanliness]
-; It's not possible to decide to force a variable to be passed by reference
-; when calling a function. The PHP 4 style to do this is by making the
-; function require the relevant argument by reference.
-; - short_open_tag = Off [Portability]
-; Using short tags is discouraged when developing code meant for redistribution
-; since short tags may not be supported on the target server.
-
-;;;;;;;;;;;;;;;;;;;;
-; Language Options ;
-;;;;;;;;;;;;;;;;;;;;
-
-; Enable the PHP scripting language engine under Apache.
-engine = On
-
-; Enable compatibility mode with Zend Engine 1 (PHP 4.x)
-zend.ze1_compatibility_mode = Off
-
-; Allow the <? tag. Otherwise, only <?php and <script> tags are recognized.
-; NOTE: Using short tags should be avoided when developing applications or
-; libraries that are meant for redistribution, or deployment on PHP
-; servers which are not under your control, because short tags may not
-; be supported on the target server. For portable, redistributable code,
-; be sure not to use short tags.
-short_open_tag = Off
-
-; Allow ASP-style <% %> tags.
-asp_tags = Off
-
-; The number of significant digits displayed in floating point numbers.
-precision = 14
-
-; Enforce year 2000 compliance (will cause problems with non-compliant browsers)
-y2k_compliance = On
-
-; Output buffering allows you to send header lines (including cookies) even
-; after you send body content, at the price of slowing PHP's output layer a
-; bit. You can enable output buffering during runtime by calling the output
-; buffering functions. You can also enable output buffering for all files by
-; setting this directive to On. If you wish to limit the size of the buffer
-; to a certain size - you can use a maximum number of bytes instead of 'On', as
-; a value for this directive (e.g., output_buffering=4096).
-output_buffering = 4096
-
-; You can redirect all of the output of your scripts to a function. For
-; example, if you set output_handler to "mb_output_handler", character
-; encoding will be transparently converted to the specified encoding.
-; Setting any output handler automatically turns on output buffering.
-; Note: People who wrote portable scripts should not depend on this ini
-; directive. Instead, explicitly set the output handler using ob_start().
-; Using this ini directive may cause problems unless you know what script
-; is doing.
-; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler"
-; and you cannot use both "ob_gzhandler" and "zlib.output_compression".
-; Note: output_handler must be empty if this is set 'On' !!!!
-; Instead you must use zlib.output_handler.
-;output_handler =
-
-; Transparent output compression using the zlib library
-; Valid values for this option are 'off', 'on', or a specific buffer size
-; to be used for compression (default is 4KB)
-; Note: Resulting chunk size may vary due to nature of compression. PHP
-; outputs chunks that are few hundreds bytes each as a result of
-; compression. If you prefer a larger chunk size for better
-; performance, enable output_buffering in addition.
-; Note: You need to use zlib.output_handler instead of the standard
-; output_handler, or otherwise the output will be corrupted.
-zlib.output_compression = Off
-;zlib.output_compression_level = -1
-
-; You cannot specify additional output handlers if zlib.output_compression
-; is activated here. This setting does the same as output_handler but in
-; a different order.
-;zlib.output_handler =
-
-; Implicit flush tells PHP to tell the output layer to flush itself
-; automatically after every output block. This is equivalent to calling the
-; PHP function flush() after each and every call to print() or echo() and each
-; and every HTML block. Turning this option on has serious performance
-; implications and is generally recommended for debugging purposes only.
-implicit_flush = Off
-
-; The unserialize callback function will be called (with the undefined class'
-; name as parameter), if the unserializer finds an undefined class
-; which should be instantiated.
-; A warning appears if the specified function is not defined, or if the
-; function doesn't include/implement the missing class.
-; So only set this entry, if you really want to implement such a
-; callback-function.
-unserialize_callback_func=
-
-; When floats & doubles are serialized store serialize_precision significant
-; digits after the floating point. The default value ensures that when floats
-; are decoded with unserialize, the data will remain the same.
-serialize_precision = 100
-
-; Whether to enable the ability to force arguments to be passed by reference
-; at function call time. This method is deprecated and is likely to be
-; unsupported in future versions of PHP/Zend. The encouraged method of
-; specifying which arguments should be passed by reference is in the function
-; declaration. You're encouraged to try and turn this option Off and make
-; sure your scripts work properly with it in order to ensure they will work
-; with future versions of the language (you will receive a warning each time
-; you use this feature, and the argument will be passed by value instead of by
-; reference).
-allow_call_time_pass_reference = Off
-
-;
-; Safe Mode
-;
-safe_mode = Off
-
-; By default, Safe Mode does a UID compare check when
-; opening files. If you want to relax this to a GID compare,
-; then turn on safe_mode_gid.
-safe_mode_gid = Off
-
-; When safe_mode is on, UID/GID checks are bypassed when
-; including files from this directory and its subdirectories.
-; (directory must also be in include_path or full path must
-; be used when including)
-safe_mode_include_dir =
-
-; When safe_mode is on, only executables located in the safe_mode_exec_dir
-; will be allowed to be executed via the exec family of functions.
-safe_mode_exec_dir =
-
-; Setting certain environment variables may be a potential security breach.
-; This directive contains a comma-delimited list of prefixes. In Safe Mode,
-; the user may only alter environment variables whose names begin with the
-; prefixes supplied here. By default, users will only be able to set
-; environment variables that begin with PHP_ (e.g. PHP_FOO=BAR).
-;
-; Note: If this directive is empty, PHP will let the user modify ANY
-; environment variable!
-safe_mode_allowed_env_vars = PHP_
-
-; This directive contains a comma-delimited list of environment variables that
-; the end user won't be able to change using putenv(). These variables will be
-; protected even if safe_mode_allowed_env_vars is set to allow to change them.
-safe_mode_protected_env_vars = LD_LIBRARY_PATH
-
-; open_basedir, if set, limits all file operations to the defined directory
-; and below. This directive makes most sense if used in a per-directory
-; or per-virtualhost web server configuration file. This directive is
-; *NOT* affected by whether Safe Mode is turned On or Off.
-;open_basedir =
-
-; This directive allows you to disable certain functions for security reasons.
-; It receives a comma-delimited list of function names. This directive is
-; *NOT* affected by whether Safe Mode is turned On or Off.
-disable_functions =
-
-; This directive allows you to disable certain classes for security reasons.
-; It receives a comma-delimited list of class names. This directive is
-; *NOT* affected by whether Safe Mode is turned On or Off.
-disable_classes =
-
-; Colors for Syntax Highlighting mode. Anything that's acceptable in
-; <span style="color: ???????"> would work.
-;highlight.string = #DD0000
-;highlight.comment = #FF9900
-;highlight.keyword = #007700
-;highlight.bg = #FFFFFF
-;highlight.default = #0000BB
-;highlight.html = #000000
-
-; If enabled, the request will be allowed to complete even if the user aborts
-; the request. Consider enabling it if executing long request, which may end up
-; being interrupted by the user or a browser timing out.
-; ignore_user_abort = On
-
-; Determines the size of the realpath cache to be used by PHP. This value should
-; be increased on systems where PHP opens many files to reflect the quantity of
-; the file operations performed.
-; realpath_cache_size=16k
-
-; Duration of time, in seconds for which to cache realpath information for a given
-; file or directory. For systems with rarely changing files, consider increasing this
-; value.
-; realpath_cache_ttl=120
-
-;
-; Misc
-;
-; Decides whether PHP may expose the fact that it is installed on the server
-; (e.g. by adding its signature to the Web server header). It is no security
-; threat in any way, but it makes it possible to determine whether you use PHP
-; on your server or not.
-expose_php = On
-
-
-;;;;;;;;;;;;;;;;;;;
-; Resource Limits ;
-;;;;;;;;;;;;;;;;;;;
-
-max_execution_time = 30 ; Maximum execution time of each script, in seconds
-max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
-;max_input_nesting_level = 64 ; Maximum input variable nesting level
-memory_limit = 128M ; Maximum amount of memory a script may consume (128MB)
-
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; Error handling and logging ;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-; error_reporting is a bit-field. Or each number up to get desired error
-; reporting level
-; E_ALL - All errors and warnings (doesn't include E_STRICT)
-; E_ERROR - fatal run-time errors
-; E_RECOVERABLE_ERROR - almost fatal run-time errors
-; E_WARNING - run-time warnings (non-fatal errors)
-; E_PARSE - compile-time parse errors
-; E_NOTICE - run-time notices (these are warnings which often result
-; from a bug in your code, but it's possible that it was
-; intentional (e.g., using an uninitialized variable and
-; relying on the fact it's automatically initialized to an
-; empty string)
-; E_STRICT - run-time notices, enable to have PHP suggest changes
-; to your code which will ensure the best interoperability
-; and forward compatibility of your code
-; E_CORE_ERROR - fatal errors that occur during PHP's initial startup
-; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's
-; initial startup
-; E_COMPILE_ERROR - fatal compile-time errors
-; E_COMPILE_WARNING - compile-time warnings (non-fatal errors)
-; E_USER_ERROR - user-generated error message
-; E_USER_WARNING - user-generated warning message
-; E_USER_NOTICE - user-generated notice message
-;
-; Examples:
-;
-; - Show all errors, except for notices and coding standards warnings
-;
-;error_reporting = E_ALL & ~E_NOTICE
-;
-; - Show all errors, except for notices
-;
-;error_reporting = E_ALL & ~E_NOTICE | E_STRICT
-;
-; - Show only errors
-;
-;error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
-;
-; - Show all errors, except coding standards warnings
-;
-error_reporting = E_ALL
-
-; Print out errors (as a part of the output). For production web sites,
-; you're strongly encouraged to turn this feature off, and use error logging
-; instead (see below). Keeping display_errors enabled on a production web site
-; may reveal security information to end users, such as file paths on your Web
-; server, your database schema or other information.
-;
-; possible values for display_errors:
-;
-; Off - Do not display any errors
-; stderr - Display errors to STDERR (affects only CGI/CLI binaries!)
-; On or stdout - Display errors to STDOUT (default)
-;
-; To output errors to STDERR with CGI/CLI:
-;display_errors = "stderr"
-;
-; Default
-;
-display_errors = Off
-
-; Even when display_errors is on, errors that occur during PHP's startup
-; sequence are not displayed. It's strongly recommended to keep
-; display_startup_errors off, except for when debugging.
-display_startup_errors = Off
-
-; Log errors into a log file (server-specific log, stderr, or error_log (below))
-; As stated above, you're strongly advised to use error logging in place of
-; error displaying on production web sites.
-log_errors = On
-
-; Set maximum length of log_errors. In error_log information about the source is
-; added. The default is 1024 and 0 allows to not apply any maximum length at all.
-log_errors_max_len = 1024
-
-; Do not log repeated messages. Repeated errors must occur in same file on same
-; line unless ignore_repeated_source is set true.
-ignore_repeated_errors = Off
-
-; Ignore source of message when ignoring repeated messages. When this setting
-; is On you will not log errors with repeated messages from different files or
-; source lines.
-ignore_repeated_source = Off
-
-; If this parameter is set to Off, then memory leaks will not be shown (on
-; stdout or in the log). This has only effect in a debug compile, and if
-; error reporting includes E_WARNING in the allowed list
-report_memleaks = On
-
-;report_zend_debug = 0
-
-; Store the last error/warning message in $php_errormsg (boolean).
-track_errors = Off
-
-; Turn off normal error reporting and emit XML-RPC error XML
-;xmlrpc_errors = 0
-; An XML-RPC faultCode
-;xmlrpc_error_number = 0
-
-; Disable the inclusion of HTML tags in error messages.
-; Note: Never use this feature for production boxes.
-;html_errors = Off
-
-; If html_errors is set On PHP produces clickable error messages that direct
-; to a page describing the error or function causing the error in detail.
-; You can download a copy of the PHP manual from http://www.php.net/docs.php
-; and change docref_root to the base URL of your local copy including the
-; leading '/'. You must also specify the file extension being used including
-; the dot.
-; Note: Never use this feature for production boxes.
-;docref_root = "/phpmanual/"
-;docref_ext = .html
-
-; String to output before an error message.
-;error_prepend_string = "<font color=#ff0000>"
-
-; String to output after an error message.
-;error_append_string = "</font>"
-
-; Log errors to specified file.
-;error_log = filename
-
-; Log errors to syslog (Event Log on NT, not valid in Windows 95).
-;error_log = syslog
-
-
-;;;;;;;;;;;;;;;;;
-; Data Handling ;
-;;;;;;;;;;;;;;;;;
-;
-; Note - track_vars is ALWAYS enabled as of PHP 4.0.3
-
-; The separator used in PHP generated URLs to separate arguments.
-; Default is "&".
-;arg_separator.output = "&amp;"
-
-; List of separator(s) used by PHP to parse input URLs into variables.
-; Default is "&".
-; NOTE: Every character in this directive is considered as separator!
-;arg_separator.input = ";&"
-
-; This directive describes the order in which PHP registers GET, POST, Cookie,
-; Environment and Built-in variables (G, P, C, E & S respectively, often
-; referred to as EGPCS or GPC). Registration is done from left to right, newer
-; values override older values.
-variables_order = "GPCS"
-
-; Whether or not to register the EGPCS variables as global variables. You may
-; want to turn this off if you don't want to clutter your scripts' global scope
-; with user data. This makes most sense when coupled with track_vars - in which
-; case you can access all of the GPC variables through the $HTTP_*_VARS[],
-; variables.
-;
-; You should do your best to write your scripts so that they do not require
-; register_globals to be on; Using form variables as globals can easily lead
-; to possible security problems, if the code is not very well thought of.
-register_globals = Off
-
-; Whether or not to register the old-style input arrays, HTTP_GET_VARS
-; and friends. If you're not using them, it's recommended to turn them off,
-; for performance reasons.
-register_long_arrays = Off
-
-; This directive tells PHP whether to declare the argv&argc variables (that
-; would contain the GET information). If you don't use these variables, you
-; should turn it off for increased performance.
-register_argc_argv = Off
-
-; When enabled, the SERVER and ENV variables are created when they're first
-; used (Just In Time) instead of when the script starts. If these variables
-; are not used within a script, having this directive on will result in a
-; performance gain. The PHP directives register_globals, register_long_arrays,
-; and register_argc_argv must be disabled for this directive to have any affect.
-auto_globals_jit = On
-
-; Maximum size of POST data that PHP will accept.
-post_max_size = 8M
-
-; Magic quotes
-;
-
-; Magic quotes for incoming GET/POST/Cookie data.
-magic_quotes_gpc = Off
-
-; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
-magic_quotes_runtime = Off
-
-; Use Sybase-style magic quotes (escape ' with '' instead of \').
-magic_quotes_sybase = Off
-
-; Automatically add files before or after any PHP document.
-auto_prepend_file =
-auto_append_file =
-
-; As of 4.0b4, PHP always outputs a character encoding by default in
-; the Content-type: header. To disable sending of the charset, simply
-; set it to be empty.
-;
-; PHP's built-in default is text/html
-default_mimetype = "text/html"
-;default_charset = "iso-8859-1"
-
-; Always populate the $HTTP_RAW_POST_DATA variable.
-;always_populate_raw_post_data = On
-
-
-;;;;;;;;;;;;;;;;;;;;;;;;;
-; Paths and Directories ;
-;;;;;;;;;;;;;;;;;;;;;;;;;
-
-; UNIX: "/path1:/path2"
-;include_path = ".:/php/includes"
-;
-; Windows: "\path1;\path2"
-;include_path = ".;c:\php\includes"
-
-; The root of the PHP pages, used only if nonempty.
-; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root
-; if you are running php as a CGI under any web server (other than IIS)
-; see documentation for security issues. The alternate is to use the
-; cgi.force_redirect configuration below
-doc_root =
-
-; The directory under which PHP opens the script using /~username used only
-; if nonempty.
-user_dir =
-
-; Directory in which the loadable extensions (modules) reside.
-extension_dir = "./"
-
-; Whether or not to enable the dl() function. The dl() function does NOT work
-; properly in multithreaded servers, such as IIS or Zeus, and is automatically
-; disabled on them.
-enable_dl = On
-
-; cgi.force_redirect is necessary to provide security running PHP as a CGI under
-; most web servers. Left undefined, PHP turns this on by default. You can
-; turn it off here AT YOUR OWN RISK
-; **You CAN safely turn this off for IIS, in fact, you MUST.**
-; cgi.force_redirect = 1
-
-; if cgi.nph is enabled it will force cgi to always sent Status: 200 with
-; every request.
-; cgi.nph = 1
-
-; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape
-; (iPlanet) web servers, you MAY need to set an environment variable name that PHP
-; will look for to know it is OK to continue execution. Setting this variable MAY
-; cause security issues, KNOW WHAT YOU ARE DOING FIRST.
-; cgi.redirect_status_env = ;
-
-; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's
-; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
-; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting
-; this to 1 will cause PHP CGI to fix it's paths to conform to the spec. A setting
-; of zero causes PHP to behave as before. Default is 1. You should fix your scripts
-; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
-; cgi.fix_pathinfo=1
-
-; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate
-; security tokens of the calling client. This allows IIS to define the
-; security context that the request runs under. mod_fastcgi under Apache
-; does not currently support this feature (03/17/2002)
-; Set to 1 if running under IIS. Default is zero.
-; fastcgi.impersonate = 1;
-
-; Disable logging through FastCGI connection
-; fastcgi.logging = 0
-
-; cgi.rfc2616_headers configuration option tells PHP what type of headers to
-; use when sending HTTP response code. If it's set 0 PHP sends Status: header that
-; is supported by Apache. When this option is set to 1 PHP will send
-; RFC2616 compliant header.
-; Default is zero.
-;cgi.rfc2616_headers = 0
-
-
-;;;;;;;;;;;;;;;;
-; File Uploads ;
-;;;;;;;;;;;;;;;;
-
-; Whether to allow HTTP file uploads.
-file_uploads = On
-
-; Temporary directory for HTTP uploaded files (will use system default if not
-; specified).
-;upload_tmp_dir =
-
-; Maximum allowed size for uploaded files.
-upload_max_filesize = 2M
-
-
-;;;;;;;;;;;;;;;;;;
-; Fopen wrappers ;
-;;;;;;;;;;;;;;;;;;
-
-; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
-allow_url_fopen = On
-
-; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
-allow_url_include = Off
-
-; Define the anonymous ftp password (your email address)
-;from="john@doe.com"
-
-; Define the User-Agent string
-; user_agent="PHP"
-
-; Default timeout for socket based streams (seconds)
-default_socket_timeout = 60
-
-; If your scripts have to deal with files from Macintosh systems,
-; or you are running on a Mac and need to deal with files from
-; unix or win32 systems, setting this flag will cause PHP to
-; automatically detect the EOL character in those files so that
-; fgets() and file() will work regardless of the source of the file.
-; auto_detect_line_endings = Off
-
-
-;;;;;;;;;;;;;;;;;;;;;;
-; Dynamic Extensions ;
-;;;;;;;;;;;;;;;;;;;;;;
-;
-; If you wish to have an extension loaded automatically, use the following
-; syntax:
-;
-; extension=modulename.extension
-;
-; For example, on Windows:
-;
-; extension=msql.dll
-;
-; ... or under UNIX:
-;
-; extension=msql.so
-;
-; Note that it should be the name of the module only; no directory information
-; needs to go here. Specify the location of the extension with the
-; extension_dir directive above.
-
-
-; Windows Extensions
-; Note that ODBC support is built in, so no dll is needed for it.
-; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
-; extension folders as well as the separate PECL DLL download (PHP 5).
-; Be sure to appropriately set the extension_dir directive.
-
-;extension=php_bz2.dll
-;extension=php_curl.dll
-;extension=php_dba.dll
-;extension=php_dbase.dll
-;extension=php_exif.dll
-;extension=php_fdf.dll
-;extension=php_gd2.dll
-;extension=php_gettext.dll
-;extension=php_gmp.dll
-;extension=php_ifx.dll
-;extension=php_imap.dll
-;extension=php_interbase.dll
-;extension=php_ldap.dll
-;extension=php_mbstring.dll
-;extension=php_mcrypt.dll
-;extension=php_mhash.dll
-;extension=php_mime_magic.dll
-;extension=php_ming.dll
-;extension=php_msql.dll
-;extension=php_mssql.dll
-;extension=php_mysql.dll
-;extension=php_mysqli.dll
-;extension=php_oci8.dll
-;extension=php_openssl.dll
-;extension=php_pdo.dll
-;extension=php_pdo_firebird.dll
-;extension=php_pdo_mssql.dll
-;extension=php_pdo_mysql.dll
-;extension=php_pdo_oci.dll
-;extension=php_pdo_oci8.dll
-;extension=php_pdo_odbc.dll
-;extension=php_pdo_pgsql.dll
-;extension=php_pdo_sqlite.dll
-;extension=php_pgsql.dll
-;extension=php_pspell.dll
-;extension=php_shmop.dll
-;extension=php_snmp.dll
-;extension=php_soap.dll
-;extension=php_sockets.dll
-;extension=php_sqlite.dll
-;extension=php_sybase_ct.dll
-;extension=php_tidy.dll
-;extension=php_xmlrpc.dll
-;extension=php_xsl.dll
-;extension=php_zip.dll
-
-;;;;;;;;;;;;;;;;;;;
-; Module Settings ;
-;;;;;;;;;;;;;;;;;;;
-
-[Date]
-; Defines the default timezone used by the date functions
-;date.timezone =
-
-;date.default_latitude = 31.7667
-;date.default_longitude = 35.2333
-
-;date.sunrise_zenith = 90.583333
-;date.sunset_zenith = 90.583333
-
-[filter]
-;filter.default = unsafe_raw
-;filter.default_flags =
-
-[iconv]
-;iconv.input_encoding = ISO-8859-1
-;iconv.internal_encoding = ISO-8859-1
-;iconv.output_encoding = ISO-8859-1
-
-[sqlite]
-;sqlite.assoc_case = 0
-
-[Pcre]
-;PCRE library backtracking limit.
-;pcre.backtrack_limit=100000
-
-;PCRE library recursion limit.
-;Please note that if you set this value to a high number you may consume all
-;the available process stack and eventually crash PHP (due to reaching the
-;stack size limit imposed by the Operating System).
-;pcre.recursion_limit=100000
-
-[Syslog]
-; Whether or not to define the various syslog variables (e.g. $LOG_PID,
-; $LOG_CRON, etc.). Turning it off is a good idea performance-wise. In
-; runtime, you can define these variables by calling define_syslog_variables().
-define_syslog_variables = Off
-
-[mail function]
-; For Win32 only.
-SMTP = localhost
-smtp_port = 25
-
-; For Win32 only.
-;sendmail_from = me@example.com
-
-; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
-;sendmail_path =
-
-; Force the addition of the specified parameters to be passed as extra parameters
-; to the sendmail binary. These parameters will always replace the value of
-; the 5th parameter to mail(), even in safe mode.
-;mail.force_extra_parameters =
-
-[SQL]
-sql.safe_mode = Off
-
-[ODBC]
-;odbc.default_db = Not yet implemented
-;odbc.default_user = Not yet implemented
-;odbc.default_pw = Not yet implemented
-
-; Allow or prevent persistent links.
-odbc.allow_persistent = On
-
-; Check that a connection is still valid before reuse.
-odbc.check_persistent = On
-
-; Maximum number of persistent links. -1 means no limit.
-odbc.max_persistent = -1
-
-; Maximum number of links (persistent + non-persistent). -1 means no limit.
-odbc.max_links = -1
-
-; Handling of LONG fields. Returns number of bytes to variables. 0 means
-; passthru.
-odbc.defaultlrl = 4096
-
-; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char.
-; See the documentation on odbc_binmode and odbc_longreadlen for an explanation
-; of uodbc.defaultlrl and uodbc.defaultbinmode
-odbc.defaultbinmode = 1
-
-[MySQL]
-; Allow or prevent persistent links.
-mysql.allow_persistent = On
-
-; Maximum number of persistent links. -1 means no limit.
-mysql.max_persistent = -1
-
-; Maximum number of links (persistent + non-persistent). -1 means no limit.
-mysql.max_links = -1
-
-; Default port number for mysql_connect(). If unset, mysql_connect() will use
-; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
-; compile-time value defined MYSQL_PORT (in that order). Win32 will only look
-; at MYSQL_PORT.
-mysql.default_port =
-
-; Default socket name for local MySQL connects. If empty, uses the built-in
-; MySQL defaults.
-mysql.default_socket =
-
-; Default host for mysql_connect() (doesn't apply in safe mode).
-mysql.default_host =
-
-; Default user for mysql_connect() (doesn't apply in safe mode).
-mysql.default_user =
-
-; Default password for mysql_connect() (doesn't apply in safe mode).
-; Note that this is generally a *bad* idea to store passwords in this file.
-; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password")
-; and reveal this password! And of course, any users with read access to this
-; file will be able to reveal the password as well.
-mysql.default_password =
-
-; Maximum time (in seconds) for connect timeout. -1 means no limit
-mysql.connect_timeout = 60
-
-; Trace mode. When trace_mode is active (=On), warnings for table/index scans and
-; SQL-Errors will be displayed.
-mysql.trace_mode = Off
-
-[MySQLi]
-
-; Maximum number of links. -1 means no limit.
-mysqli.max_links = -1
-
-; Default port number for mysqli_connect(). If unset, mysqli_connect() will use
-; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
-; compile-time value defined MYSQL_PORT (in that order). Win32 will only look
-; at MYSQL_PORT.
-mysqli.default_port = 3306
-
-; Default socket name for local MySQL connects. If empty, uses the built-in
-; MySQL defaults.
-mysqli.default_socket =
-
-; Default host for mysql_connect() (doesn't apply in safe mode).
-mysqli.default_host =
-
-; Default user for mysql_connect() (doesn't apply in safe mode).
-mysqli.default_user =
-
-; Default password for mysqli_connect() (doesn't apply in safe mode).
-; Note that this is generally a *bad* idea to store passwords in this file.
-; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")
-; and reveal this password! And of course, any users with read access to this
-; file will be able to reveal the password as well.
-mysqli.default_pw =
-
-; Allow or prevent reconnect
-mysqli.reconnect = Off
-
-[mSQL]
-; Allow or prevent persistent links.
-msql.allow_persistent = On
-
-; Maximum number of persistent links. -1 means no limit.
-msql.max_persistent = -1
-
-; Maximum number of links (persistent+non persistent). -1 means no limit.
-msql.max_links = -1
-
-[OCI8]
-; enables privileged connections using external credentials (OCI_SYSOPER, OCI_SYSDBA)
-;oci8.privileged_connect = Off
-
-; Connection: The maximum number of persistent OCI8 connections per
-; process. Using -1 means no limit.
-;oci8.max_persistent = -1
-
-; Connection: The maximum number of seconds a process is allowed to
-; maintain an idle persistent connection. Using -1 means idle
-; persistent connections will be maintained forever.
-;oci8.persistent_timeout = -1
-
-; Connection: The number of seconds that must pass before issuing a
-; ping during oci_pconnect() to check the connection validity. When
-; set to 0, each oci_pconnect() will cause a ping. Using -1 disables
-; pings completely.
-;oci8.ping_interval = 60
-
-; Tuning: This option enables statement caching, and specifies how
-; many statements to cache. Using 0 disables statement caching.
-;oci8.statement_cache_size = 20
-
-; Tuning: Enables statement prefetching and sets the default number of
-; rows that will be fetched automatically after statement execution.
-;oci8.default_prefetch = 10
-
-; Compatibility. Using On means oci_close() will not close
-; oci_connect() and oci_new_connect() connections.
-;oci8.old_oci_close_semantics = Off
-
-[PostgresSQL]
-; Allow or prevent persistent links.
-pgsql.allow_persistent = On
-
-; Detect broken persistent links always with pg_pconnect().
-; Auto reset feature requires a little overheads.
-pgsql.auto_reset_persistent = Off
-
-; Maximum number of persistent links. -1 means no limit.
-pgsql.max_persistent = -1
-
-; Maximum number of links (persistent+non persistent). -1 means no limit.
-pgsql.max_links = -1
-
-; Ignore PostgreSQL backends Notice message or not.
-; Notice message logging require a little overheads.
-pgsql.ignore_notice = 0
-
-; Log PostgreSQL backends Notice message or not.
-; Unless pgsql.ignore_notice=0, module cannot log notice message.
-pgsql.log_notice = 0
-
-[Sybase]
-; Allow or prevent persistent links.
-sybase.allow_persistent = On
-
-; Maximum number of persistent links. -1 means no limit.
-sybase.max_persistent = -1
-
-; Maximum number of links (persistent + non-persistent). -1 means no limit.
-sybase.max_links = -1
-
-;sybase.interface_file = "/usr/sybase/interfaces"
-
-; Minimum error severity to display.
-sybase.min_error_severity = 10
-
-; Minimum message severity to display.
-sybase.min_message_severity = 10
-
-; Compatibility mode with old versions of PHP 3.0.
-; If on, this will cause PHP to automatically assign types to results according
-; to their Sybase type, instead of treating them all as strings. This
-; compatibility mode will probably not stay around forever, so try applying
-; whatever necessary changes to your code, and turn it off.
-sybase.compatability_mode = Off
-
-[Sybase-CT]
-; Allow or prevent persistent links.
-sybct.allow_persistent = On
-
-; Maximum number of persistent links. -1 means no limit.
-sybct.max_persistent = -1
-
-; Maximum number of links (persistent + non-persistent). -1 means no limit.
-sybct.max_links = -1
-
-; Minimum server message severity to display.
-sybct.min_server_severity = 10
-
-; Minimum client message severity to display.
-sybct.min_client_severity = 10
-
-[bcmath]
-; Number of decimal digits for all bcmath functions.
-bcmath.scale = 0
-
-[browscap]
-;browscap = extra/browscap.ini
-
-[Informix]
-; Default host for ifx_connect() (doesn't apply in safe mode).
-ifx.default_host =
-
-; Default user for ifx_connect() (doesn't apply in safe mode).
-ifx.default_user =
-
-; Default password for ifx_connect() (doesn't apply in safe mode).
-ifx.default_password =
-
-; Allow or prevent persistent links.
-ifx.allow_persistent = On
-
-; Maximum number of persistent links. -1 means no limit.
-ifx.max_persistent = -1
-
-; Maximum number of links (persistent + non-persistent). -1 means no limit.
-ifx.max_links = -1
-
-; If on, select statements return the contents of a text blob instead of its id.
-ifx.textasvarchar = 0
-
-; If on, select statements return the contents of a byte blob instead of its id.
-ifx.byteasvarchar = 0
-
-; Trailing blanks are stripped from fixed-length char columns. May help the
-; life of Informix SE users.
-ifx.charasvarchar = 0
-
-; If on, the contents of text and byte blobs are dumped to a file instead of
-; keeping them in memory.
-ifx.blobinfile = 0
-
-; NULL's are returned as empty strings, unless this is set to 1. In that case,
-; NULL's are returned as string 'NULL'.
-ifx.nullformat = 0
-
-[Session]
-; Handler used to store/retrieve data.
-session.save_handler = files
-
-; Argument passed to save_handler. In the case of files, this is the path
-; where data files are stored. Note: Windows users have to change this
-; variable in order to use PHP's session functions.
-;
-; As of PHP 4.0.1, you can define the path as:
-;
-; session.save_path = "N;/path"
-;
-; where N is an integer. Instead of storing all the session files in
-; /path, what this will do is use subdirectories N-levels deep, and
-; store the session data in those directories. This is useful if you
-; or your OS have problems with lots of files in one directory, and is
-; a more efficient layout for servers that handle lots of sessions.
-;
-; NOTE 1: PHP will not create this directory structure automatically.
-; You can use the script in the ext/session dir for that purpose.
-; NOTE 2: See the section on garbage collection below if you choose to
-; use subdirectories for session storage
-;
-; The file storage module creates files using mode 600 by default.
-; You can change that by using
-;
-; session.save_path = "N;MODE;/path"
-;
-; where MODE is the octal representation of the mode. Note that this
-; does not overwrite the process's umask.
-;session.save_path = "/tmp"
-
-; Whether to use cookies.
-session.use_cookies = 1
-
-;session.cookie_secure =
-
-; This option enables administrators to make their users invulnerable to
-; attacks which involve passing session ids in URLs; defaults to 0.
-; session.use_only_cookies = 1
-
-; Name of the session (used as cookie name).
-session.name = PHPSESSID
-
-; Initialize session on request startup.
-session.auto_start = 0
-
-; Lifetime in seconds of cookie or, if 0, until browser is restarted.
-session.cookie_lifetime = 0
-
-; The path for which the cookie is valid.
-session.cookie_path = /
-
-; The domain for which the cookie is valid.
-session.cookie_domain =
-
-; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript.
-session.cookie_httponly =
-
-; Handler used to serialize data. php is the standard serializer of PHP.
-session.serialize_handler = php
-
-; Define the probability that the 'garbage collection' process is started
-; on every session initialization.
-; The probability is calculated by using gc_probability/gc_divisor,
-; e.g. 1/100 means there is a 1% chance that the GC process starts
-; on each request.
-
-session.gc_probability = 1
-session.gc_divisor = 1000
-
-; After this number of seconds, stored data will be seen as 'garbage' and
-; cleaned up by the garbage collection process.
-session.gc_maxlifetime = 1440
-
-; NOTE: If you are using the subdirectory option for storing session files
-; (see session.save_path above), then garbage collection does *not*
-; happen automatically. You will need to do your own garbage
-; collection through a shell script, cron entry, or some other method.
-; For example, the following script would is the equivalent of
-; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
-; cd /path/to/sessions; find -cmin +24 | xargs rm
-
-; PHP 4.2 and less have an undocumented feature/bug that allows you to
-; to initialize a session variable in the global scope, albeit register_globals
-; is disabled. PHP 4.3 and later will warn you, if this feature is used.
-; You can disable the feature and the warning separately. At this time,
-; the warning is only displayed, if bug_compat_42 is enabled.
-
-session.bug_compat_42 = 0
-session.bug_compat_warn = 1
-
-; Check HTTP Referer to invalidate externally stored URLs containing ids.
-; HTTP_REFERER has to contain this substring for the session to be
-; considered as valid.
-session.referer_check =
-
-; How many bytes to read from the file.
-session.entropy_length = 0
-
-; Specified here to create the session id.
-session.entropy_file =
-
-;session.entropy_length = 16
-
-;session.entropy_file = /dev/urandom
-
-; Set to {nocache,private,public,} to determine HTTP caching aspects
-; or leave this empty to avoid sending anti-caching headers.
-session.cache_limiter = nocache
-
-; Document expires after n minutes.
-session.cache_expire = 180
-
-; trans sid support is disabled by default.
-; Use of trans sid may risk your users security.
-; Use this option with caution.
-; - User may send URL contains active session ID
-; to other person via. email/irc/etc.
-; - URL that contains active session ID may be stored
-; in publically accessible computer.
-; - User may access your site with the same session ID
-; always using URL stored in browser's history or bookmarks.
-session.use_trans_sid = 0
-
-; Select a hash function
-; 0: MD5 (128 bits)
-; 1: SHA-1 (160 bits)
-session.hash_function = 0
-
-; Define how many bits are stored in each character when converting
-; the binary hash data to something readable.
-;
-; 4 bits: 0-9, a-f
-; 5 bits: 0-9, a-v
-; 6 bits: 0-9, a-z, A-Z, "-", ","
-session.hash_bits_per_character = 5
-
-; The URL rewriter will look for URLs in a defined set of HTML tags.
-; form/fieldset are special; if you include them here, the rewriter will
-; add a hidden <input> field with the info which is otherwise appended
-; to URLs. If you want XHTML conformity, remove the form entry.
-; Note that all valid entries require a "=", even if no value follows.
-url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
-
-[MSSQL]
-; Allow or prevent persistent links.
-mssql.allow_persistent = On
-
-; Maximum number of persistent links. -1 means no limit.
-mssql.max_persistent = -1
-
-; Maximum number of links (persistent+non persistent). -1 means no limit.
-mssql.max_links = -1
-
-; Minimum error severity to display.
-mssql.min_error_severity = 10
-
-; Minimum message severity to display.
-mssql.min_message_severity = 10
-
-; Compatibility mode with old versions of PHP 3.0.
-mssql.compatability_mode = Off
-
-; Connect timeout
-;mssql.connect_timeout = 5
-
-; Query timeout
-;mssql.timeout = 60
-
-; Valid range 0 - 2147483647. Default = 4096.
-;mssql.textlimit = 4096
-
-; Valid range 0 - 2147483647. Default = 4096.
-;mssql.textsize = 4096
-
-; Limits the number of records in each batch. 0 = all records in one batch.
-;mssql.batchsize = 0
-
-; Specify how datetime and datetim4 columns are returned
-; On => Returns data converted to SQL server settings
-; Off => Returns values as YYYY-MM-DD hh:mm:ss
-;mssql.datetimeconvert = On
-
-; Use NT authentication when connecting to the server
-mssql.secure_connection = Off
-
-; Specify max number of processes. -1 = library default
-; msdlib defaults to 25
-; FreeTDS defaults to 4096
-;mssql.max_procs = -1
-
-; Specify client character set.
-; If empty or not set the client charset from freetds.comf is used
-; This is only used when compiled with FreeTDS
-;mssql.charset = "ISO-8859-1"
-
-[Assertion]
-; Assert(expr); active by default.
-;assert.active = On
-
-; Issue a PHP warning for each failed assertion.
-;assert.warning = On
-
-; Don't bail out by default.
-;assert.bail = Off
-
-; User-function to be called if an assertion fails.
-;assert.callback = 0
-
-; Eval the expression with current error_reporting(). Set to true if you want
-; error_reporting(0) around the eval().
-;assert.quiet_eval = 0
-
-[COM]
-; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs
-;com.typelib_file =
-; allow Distributed-COM calls
-;com.allow_dcom = true
-; autoregister constants of a components typlib on com_load()
-;com.autoregister_typelib = true
-; register constants casesensitive
-;com.autoregister_casesensitive = false
-; show warnings on duplicate constant registrations
-;com.autoregister_verbose = true
-
-[mbstring]
-; language for internal character representation.
-;mbstring.language = Japanese
-
-; internal/script encoding.
-; Some encoding cannot work as internal encoding.
-; (e.g. SJIS, BIG5, ISO-2022-*)
-;mbstring.internal_encoding = EUC-JP
-
-; http input encoding.
-;mbstring.http_input = auto
-
-; http output encoding. mb_output_handler must be
-; registered as output buffer to function
-;mbstring.http_output = SJIS
-
-; enable automatic encoding translation according to
-; mbstring.internal_encoding setting. Input chars are
-; converted to internal encoding by setting this to On.
-; Note: Do _not_ use automatic encoding translation for
-; portable libs/applications.
-;mbstring.encoding_translation = Off
-
-; automatic encoding detection order.
-; auto means
-;mbstring.detect_order = auto
-
-; substitute_character used when character cannot be converted
-; one from another
-;mbstring.substitute_character = none;
-
-; overload(replace) single byte functions by mbstring functions.
-; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
-; etc. Possible values are 0,1,2,4 or combination of them.
-; For example, 7 for overload everything.
-; 0: No overload
-; 1: Overload mail() function
-; 2: Overload str*() functions
-; 4: Overload ereg*() functions
-;mbstring.func_overload = 0
-
-; enable strict encoding detection.
-;mbstring.strict_encoding = Off
-
-[FrontBase]
-;fbsql.allow_persistent = On
-;fbsql.autocommit = On
-;fbsql.show_timestamp_decimals = Off
-;fbsql.default_database =
-;fbsql.default_database_password =
-;fbsql.default_host =
-;fbsql.default_password =
-;fbsql.default_user = "_SYSTEM"
-;fbsql.generate_warnings = Off
-;fbsql.max_connections = 128
-;fbsql.max_links = 128
-;fbsql.max_persistent = -1
-;fbsql.max_results = 128
-
-[gd]
-; Tell the jpeg decode to libjpeg warnings and try to create
-; a gd image. The warning will then be displayed as notices
-; disabled by default
-;gd.jpeg_ignore_warning = 0
-
-[exif]
-; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS.
-; With mbstring support this will automatically be converted into the encoding
-; given by corresponding encode setting. When empty mbstring.internal_encoding
-; is used. For the decode settings you can distinguish between motorola and
-; intel byte order. A decode setting cannot be empty.
-;exif.encode_unicode = ISO-8859-15
-;exif.decode_unicode_motorola = UCS-2BE
-;exif.decode_unicode_intel = UCS-2LE
-;exif.encode_jis =
-;exif.decode_jis_motorola = JIS
-;exif.decode_jis_intel = JIS
-
-[Tidy]
-; The path to a default tidy configuration file to use when using tidy
-;tidy.default_config = /usr/local/lib/php/default.tcfg
-
-; Should tidy clean and repair output automatically?
-; WARNING: Do not use this option if you are generating non-html content
-; such as dynamic images
-tidy.clean_output = Off
-
-[soap]
-; Enables or disables WSDL caching feature.
-soap.wsdl_cache_enabled=1
-; Sets the directory name where SOAP extension will put cache files.
-soap.wsdl_cache_dir="/tmp"
-; (time to live) Sets the number of second while cached file will be used
-; instead of original one.
-soap.wsdl_cache_ttl=86400
-
-; Local Variables:
-; tab-width: 4
-; End:
diff --git a/projectroot/etc/profile b/projectroot/etc/profile
index 259113d33..833791497 100644
--- a/projectroot/etc/profile
+++ b/projectroot/etc/profile
@@ -2,11 +2,6 @@
#
export HISTFILE=/tmp/.ash_history.$USER.$PPID
-# This fixes the backspace when telnetting in.
-if [ "$TERM" != "linux" ]; then
- stty erase ^H
-fi
-
# source this file for subsequent shells, too
# (will also be sourced for init-shell)
export ENV=/etc/profile.environment
diff --git a/projectroot/etc/profile.environment b/projectroot/etc/profile.environment
index 25186e224..0a03a0e40 100644
--- a/projectroot/etc/profile.environment
+++ b/projectroot/etc/profile.environment
@@ -3,7 +3,9 @@ PS1="\\u@\\h:\\w "
PS2=" >"
PS4="+ "
-alias vim='vi'
+if ! type -P vim >& /dev/null && type -P vi >& /dev/null; then
+ alias vim='vi'
+fi
alias l='ls -l'
alias ll='ls -al'
alias ..='cd ..'
diff --git a/projectroot/etc/rc.once.d/dropbear b/projectroot/etc/rc.once.d/dropbear
index a126b26db..191f6c61b 100644
--- a/projectroot/etc/rc.once.d/dropbear
+++ b/projectroot/etc/rc.once.d/dropbear
@@ -2,32 +2,44 @@
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
-DROPBEAR_RSAKEY_DEFAULT="@KEYDIR@/dropbear_rsa_host_key"
-DROPBEAR_DSSKEY_DEFAULT="@KEYDIR@/dropbear_dss_host_key"
-
-test -n "$DROPBEAR_RSAKEY" || \
- DROPBEAR_RSAKEY=$DROPBEAR_RSAKEY_DEFAULT
-test -n "$DROPBEAR_DSSKEY" || \
- DROPBEAR_DSSKEY=$DROPBEAR_DSSKEY_DEFAULT
+. /usr/lib/init/dropbear.sh
gen_key() {
-
key_type=$1
key_file=$2
- rm -f $key_file > /dev/null 2>&1
+ # do not overwrite valid key files
+ [ -s "$key_file" ] && dropbearkey -y -f "$key_file" > /dev/null 2>&1 && return
- echo -n "generating $key_type key..."
- dropbearkey -t $key_type -f $key_file > /dev/null 2>&1
+ rm -f $key_file > /dev/null 2>&1
- if [ "$?" = "0" ]; then
- echo "done"
- else
- echo "failed"
- exit 1
- fi
+ echo "Create $key_type key; this may take some time ..."
+ dropbearkey -t $key_type -f $key_file > /dev/null 2>&1 || return
+ echo "Created $key_type key."
}
-[ -e "$DROPBEAR_RSAKEY" ] || gen_key rsa "$DROPBEAR_RSAKEY"
-[ -e "$DROPBEAR_DSSKEY" ] || gen_key dss "$DROPBEAR_DSSKEY"
+gen_keys() {
+ for keytype in $DROPBEAR_KEYTYPES
+ do
+ case "$keytype" in
+ rsa)
+ gen_key rsa "$DROPBEAR_RSAKEY" || return
+ ;;
+ ecdsa)
+ gen_key ecdsa "$DROPBEAR_ECDSAKEY" || return
+ ;;
+ ed25519)
+ gen_key ed25519 "$DROPBEAR_ED25519KEY" || return
+ ;;
+ *)
+ echo "Key type '$keytype' not supported"
+ ;;
+ esac
+ done
+}
+if ! gen_keys
+then
+ echo "Generating SSH keys failed!"
+ exit 1
+fi
diff --git a/projectroot/etc/rc.once.d/openssh b/projectroot/etc/rc.once.d/openssh
index 545586f07..717d6457e 100644
--- a/projectroot/etc/rc.once.d/openssh
+++ b/projectroot/etc/rc.once.d/openssh
@@ -27,6 +27,7 @@ create_keys() {
hostkeys="$(get_hostkeys)" || return
for keyfile in $hostkeys; do
+ [ -s "$keyfile" ] && ssh-keygen -l -f "${keyfile}.pub" > /dev/null && continue
create_key "$keyfile" || return
done
}
diff --git a/projectroot/etc/udhcpc.script b/projectroot/etc/udhcpc.script
index 130c37e0c..f079ec8b8 100644
--- a/projectroot/etc/udhcpc.script
+++ b/projectroot/etc/udhcpc.script
@@ -1,38 +1,74 @@
#!/bin/sh
+# udhcpc script edited by Tim Riker <Tim@Rikers.org>
-# $Id$
+RESOLV_CONF="/etc/resolv.conf"
-[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
+[ -n "$1" ] || { echo "Error: should be called from udhcpc"; exit 1; }
-RESOLV_CONF="/etc/resolv.conf"
+NETMASK=""
+if command -v ip >/dev/null; then
+ [ -n "$subnet" ] && NETMASK="/$subnet"
+else
+ [ -n "$subnet" ] && NETMASK="netmask $subnet"
+fi
+BROADCAST="broadcast +"
[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
-[ -n "$subnet" ] && NETMASK="netmask $subnet"
case "$1" in
deconfig)
- /sbin/ifconfig $interface 0.0.0.0
+ echo "Clearing IP addresses on $interface, upping it"
+ if command -v ip >/dev/null; then
+ ip -4 addr flush dev $interface
+ ip link set dev $interface up
+ else
+ ifconfig $interface 0.0.0.0
+ fi
;;
renew|bound)
- /sbin/ifconfig $interface $ip $BROADCAST $NETMASK
+ echo "Setting IP address $ip on $interface"
+ if command -v ip >/dev/null; then
+ ip addr add $ip$NETMASK $BROADCAST dev $interface
+ else
+ ifconfig $interface $ip $NETMASK $BROADCAST
+ fi
if [ -n "$router" ] ; then
- echo "deleting routers"
+ echo "Deleting routers"
while route del default gw 0.0.0.0 dev $interface ; do
:
done
+ metric=0
for i in $router ; do
- route add default gw $i dev $interface
+ echo "Adding router $i"
+ if [ "$subnet" = "255.255.255.255" ]; then
+ # special case for /32 subnets:
+ # /32 instructs kernel to always use routing for all outgoing packets
+ # (they can never be sent to local subnet - there is no local subnet for /32).
+ # Used in datacenters, avoids the need for private ip-addresses between two hops.
+ ip route add $i dev $interface
+ fi
+ route add default gw $i dev $interface metric $((metric++))
done
fi
- echo -n > $RESOLV_CONF
- [ -n "$domain" ] && echo search $domain >> $RESOLV_CONF
+ # If the file is a symlink somewhere (like /etc/resolv.conf
+ # pointing to /run/resolv.conf), make sure things work.
+ if test -L "$RESOLV_CONF"; then
+ # If it's a dangling symlink, try to create the target.
+ test -e "$RESOLV_CONF" || touch "$RESOLV_CONF"
+ fi
+ realconf=$(readlink -f "$RESOLV_CONF" 2>/dev/null || echo "$RESOLV_CONF")
+ echo "Recreating $realconf"
+ tmpfile="$realconf-$$"
+ > "$tmpfile"
+ [ -n "$domain" ] && echo "search $domain" >> "$tmpfile"
for i in $dns ; do
- echo adding dns $i
- echo nameserver $i >> $RESOLV_CONF
+ echo " Adding DNS server $i"
+ echo "nameserver $i" >> "$tmpfile"
done
+ mv "$tmpfile" "$realconf"
;;
esac
diff --git a/projectroot/etc/udhcpd.conf b/projectroot/etc/udhcpd.conf
index eca44c0ab..6eb10852e 100644
--- a/projectroot/etc/udhcpd.conf
+++ b/projectroot/etc/udhcpd.conf
@@ -44,7 +44,7 @@ interface eth0
#notify_file # default: no script
#notify_file dumpleases # useful for debugging
-# The following are bootp specific options
+# The following are BOOTP specific options
# next server to use in bootstrap
#siaddr 192.168.0.22 # default: 0.0.0.0 (none)
# tftp server name
@@ -52,9 +52,14 @@ interface eth0
# tftp file to download (e.g. kernel image)
#boot_file /var/nfs_root # default: none
+# NOTE: "boot_file FILE" and "opt bootfile FILE" are conceptually the same,
+# but "boot_file" goes into BOOTP-defined fixed-size field in the packet,
+# whereas "opt bootfile" goes into DHCP option 0x43.
+# Same for "sname HOST" and "opt tftp HOST".
+
# Static leases map
#static_lease 00:60:08:11:CE:4E 192.168.0.54
-#static_lease 00:60:08:11:CE:3E 192.168.0.44
+#static_lease 00:60:08:11:CE:3E 192.168.0.44 optional_hostname
# The remainder of options are DHCP options and can be specified with the
# keyword 'opt' or 'option'. If an option can take multiple items, such
@@ -70,46 +75,56 @@ option domain local
option lease 864000 # default: 10 days
option msstaticroutes 10.0.0.0/8 10.127.0.1 # single static route
option staticroutes 10.0.0.0/8 10.127.0.1, 10.11.12.0/24 10.11.12.1
-# Arbitrary option in hex form:
+# Arbitrary option in hex or string form:
option 0x08 01020304 # option 8: "cookie server IP addr: 1.2.3.4"
+option 14 "dumpfile"
-# Currently supported options (for more info, see options.c):
-#opt lease NUM
-#opt subnet IP
-#opt broadcast IP
-#opt router IP_LIST
-#opt ipttl NUM
-#opt mtu NUM
-#opt hostname STRING # client's hostname
-#opt domain STRING # client's domain suffix
-#opt search STRING_LIST # search domains
-#opt nisdomain STRING
-#opt timezone NUM # (localtime - UTC_time) in seconds. signed
-#opt tftp STRING # tftp server name
-#opt bootfile STRING # tftp file to download (e.g. kernel image)
-#opt bootsize NUM # size of that file
-#opt rootpath STRING # (NFS) path to mount as root fs
-#opt wpad STRING
-#opt serverid IP # default: server's IP
-#opt message STRING # error message (udhcpd sends it on success too)
-#opt vlanid NUM # 802.1P VLAN ID
-#opt vlanpriority NUM # 802.1Q VLAN priority
+# Currently supported options [hex option value] (for more info, see common.c):
+#opt lease NUM # [0x33]
+#opt subnet IP # [0x01]
+#opt broadcast IP # [0x1c]
+#opt router IP_LIST # [0x03]
+#opt ipttl NUM # [0x17]
+#opt mtu NUM # [0x1a]
+#opt hostname STRING # [0x0c] client's hostname
+#opt domain STRING # [0x0f] client's domain suffix
+#opt search STRING_LIST # [0x77] search domains
+#opt nisdomain STRING # [0x28]
+#opt timezone NUM # [0x02] (localtime - UTC_time) in seconds. signed
+#opt tzstr STRING # [0x64] RFC 4833. IEEE 1003.1 TZ string
+#opt tzdbstr STRING # [0x65] RFC 4833. Reference to the TZ database string
+#opt tftp STRING # [0x42] tftp server name
+#opt bootfile STRING # [0x43] tftp file to download (e.g. kernel image)
+#opt bootsize NUM # [0x0d] size of that file
+#opt rootpath STRING # [0x11] (NFS) path to mount as root fs
+#opt wpad STRING # [0xfc] Web Proxy Auto Discovery Protocol
+#opt serverid IP # [0x36] default: server's IP
+#opt message STRING # [0x38] error message (if set, udhcpd would send it on success too)
+#opt vlanid NUM # [0x84] 802.1P VLAN ID
+#opt vlanpriority NUM # [0x85] 802.1Q VLAN priority
+#opt vendor STRING # [0x3c] client's vendor string, not intended to be sent by DHCP servers
+# RFC 5071: PXELINUX Options
+#opt 0xd0 F100747E # [0xd0] magic needed for other options to be recognized by clients
+#opt pxeconffile STRING # [0xd1]
+#opt pxepathprefix STRING # [0xd2]
+#opt reboottime NUM # [0xd3] bootstrap timeout
# Options specifying server(s)
-#opt dns IP_LIST
-#opt wins IP_LIST
-#opt nissrv IP_LIST
-#opt ntpsrv IP_LIST
-#opt lprsrv IP_LIST
-#opt swapsrv IP
+#opt dns IP_LIST # [0x06]
+#opt wins IP_LIST # [0x2c]
+#opt nissrv IP_LIST # [0x29]
+#opt ntpsrv IP_LIST # [0x2a]
+#opt lprsrv IP_LIST # [0x09]
+#opt swapsrv IP # [0x10]
# Options specifying routes
-#opt routes IP_PAIR_LIST
-#opt staticroutes STATIC_ROUTES # RFC 3442 classless static route option
-#opt msstaticroutes STATIC_ROUTES # same, using MS option number
+#opt routes IP_PAIR_LIST # [0x21]
+#opt staticroutes STATIC_ROUTES # [0x79] RFC 3442 classless static route option
+#opt msstaticroutes STATIC_ROUTES # [0xf9] same, using MS option number
# Obsolete options, no longer supported
-#opt logsrv IP_LIST # 704/UDP log server (not syslog!)
-#opt namesrv IP_LIST # IEN 116 name server, obsolete (August 1979!!!)
-#opt cookiesrv IP_LIST # RFC 865 "quote of the day" server, rarely (never?) used
-#opt timesrv IP_LIST # RFC 868 time server, rarely (never?) used
+#opt logsrv IP_LIST # [0x07] 704/UDP log server (not syslog!)
+#opt namesrv IP_LIST # [0x05] IEN 116 name server, obsolete (August 1979!!!)
+#opt cookiesrv IP_LIST # [0x08] RFC 865 "quote of the day" server, rarely (never?) used
+#opt timesrv IP_LIST # [0x04] RFC 868 time server, rarely (never?) used
# TODO: in development
-#opt userclass STRING # RFC 3004. set of LASCII strings. "I am a printer" etc
-#opt sipserv STRING LIST # RFC 3361. flag byte, then: 0: domain names, 1: IP addrs
+#opt userclass STRING # [0x4d] RFC 3004. set of LASCII strings. "I am a printer" etc
+#opt sipsrv STRING LIST # [0x78] RFC 3361. flag byte, then: 0: domain names, 1: IP addrs
+#opt ip6rd .... # [0xd4] IPv6 rapid deployment
diff --git a/projectroot/loader/entries/default.conf b/projectroot/loader/entries/default.conf
index 5650907ab..d28156975 100644
--- a/projectroot/loader/entries/default.conf
+++ b/projectroot/loader/entries/default.conf
@@ -3,3 +3,4 @@ version @VERSION@
options @CMDLINE@
linux @KERNEL@
@DEVICETREE@
+@LINUXAPPENDROOT@
diff --git a/projectroot/usr/lib/init/dropbear.sh b/projectroot/usr/lib/init/dropbear.sh
new file mode 100644
index 000000000..aa375fe3c
--- /dev/null
+++ b/projectroot/usr/lib/init/dropbear.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+DROPBEAR_RSAKEY='@KEYDIR@/dropbear_rsa_host_key'
+DROPBEAR_ECDSAKEY='@KEYDIR@/dropbear_ecdsa_host_key'
+DROPBEAR_ED25519KEY='@KEYDIR@/dropbear_ed25519_host_key'
+DROPBEAR_KEYTYPES='@KEYTYPES@'
diff --git a/projectroot/usr/lib/systemd/network/eth0.network b/projectroot/usr/lib/systemd/network/default.network
index 818a6bd5b..350dbf4a2 100644
--- a/projectroot/usr/lib/systemd/network/eth0.network
+++ b/projectroot/usr/lib/systemd/network/default.network
@@ -1,5 +1,5 @@
[Match]
-Name=eth0
+Name=eth0 end0
KernelCommandLine=!root=/dev/nfs
[Network]
diff --git a/projectroot/usr/lib/systemd/system/ip6tables.service b/projectroot/usr/lib/systemd/system/ip6tables.service
index 7cf9ab88b..52e3096ed 100644
--- a/projectroot/usr/lib/systemd/system/ip6tables.service
+++ b/projectroot/usr/lib/systemd/system/ip6tables.service
@@ -10,7 +10,7 @@ ConditionFileNotEmpty=/etc/iptables/rules.v6
Type=oneshot
ExecStart=/usr/sbin/ip6tables-restore /etc/iptables/rules.v6
ExecReload=/usr/sbin/ip6tables-restore /etc/iptables/rules.v6
-ExecStop=/usr/sbin/iptables/ip6tables-flush
+ExecStop=/usr/sbin/ip6tables-flush
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
diff --git a/projectroot/usr/lib/systemd/system/mongod.service b/projectroot/usr/lib/systemd/system/mongod.service
new file mode 100644
index 000000000..bf9ba2418
--- /dev/null
+++ b/projectroot/usr/lib/systemd/system/mongod.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=MongoDB Database Server
+Documentation=https://docs.mongodb.org/manual
+
+[Service]
+User=mongodb
+Group=mongodb
+RuntimeDirectory=mongodb
+StateDirectory=mongodb
+Environment="MONGODB_CONFIG_OVERRIDE_NOFORK=1"
+ExecStart=/usr/bin/mongod --syslog --unixSocketPrefix=/run/mongodb --dbpath /var/lib/mongodb
+Restart=on-abort
+
+[Install]
+WantedBy=multi-user.target
diff --git a/projectroot/usr/lib/systemd/system/nginx.service b/projectroot/usr/lib/systemd/system/nginx.service
index a6a1a4d70..2d592c0b2 100644
--- a/projectroot/usr/lib/systemd/system/nginx.service
+++ b/projectroot/usr/lib/systemd/system/nginx.service
@@ -1,14 +1,17 @@
[Unit]
Description=NGINX HTTP and reverse proxy server
-After=syslog.target network.target nss-lookup.target
+After=network-online.target remote-fs.target nss-lookup.target
+Wants=network-online.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
+ExecStartPre=/usr/bin/mkdir /var/tmp/nginx
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
+PrivateTmp=true
[Install]
WantedBy=multi-user.target
diff --git a/projectroot/usr/lib/systemd/system/rauc-mark-good.service b/projectroot/usr/lib/systemd/system/rauc-mark-good.service
index af4daab9f..06f9fa8fd 100644
--- a/projectroot/usr/lib/systemd/system/rauc-mark-good.service
+++ b/projectroot/usr/lib/systemd/system/rauc-mark-good.service
@@ -2,8 +2,12 @@
Description=RAUC Good-marking Service
ConditionKernelCommandLine=|bootchooser.active
ConditionKernelCommandLine=|rauc.slot
+After=boot-complete.target
+Requires=boot-complete.target
[Service]
+Type=oneshot
+RemainAfterExit=yes
ExecStart=/usr/bin/rauc status mark-good
[Install]
diff --git a/projectroot/usr/lib/systemd/system/rc-once.service b/projectroot/usr/lib/systemd/system/rc-once.service
index dde5d7210..a2a337587 100644
--- a/projectroot/usr/lib/systemd/system/rc-once.service
+++ b/projectroot/usr/lib/systemd/system/rc-once.service
@@ -9,5 +9,5 @@ Before=system-update.target
[Service]
Type=oneshot
RemainAfterExit=no
-ExecStart=/lib/systemd/systemd-rc-once
+ExecStart=/usr/lib/systemd/systemd-rc-once
StandardOutput=journal+console
diff --git a/projectroot/usr/lib/systemd/system/redis.service b/projectroot/usr/lib/systemd/system/redis.service
new file mode 100644
index 000000000..715e64d69
--- /dev/null
+++ b/projectroot/usr/lib/systemd/system/redis.service
@@ -0,0 +1,23 @@
+[Unit]
+Description=Advanced key-value store
+After=network.target
+
+[Service]
+Type=notify
+User=redis
+Group=redis
+ExecStart=/usr/bin/redis-server /etc/redis.conf
+TimeoutStartSec=60
+TimeoutStopSec=60
+CapabilityBoundingSet=
+PrivateTmp=true
+PrivateDevices=true
+ProtectSystem=full
+ProtectHome=true
+NoNewPrivileges=true
+RuntimeDirectory=redis
+RuntimeDirectoryMode=755
+LimitNOFILE=10032
+
+[Install]
+WantedBy=multi-user.target
diff --git a/projectroot/usr/lib/systemd/system/seatd.service b/projectroot/usr/lib/systemd/system/seatd.service
new file mode 100644
index 000000000..4ffb5d114
--- /dev/null
+++ b/projectroot/usr/lib/systemd/system/seatd.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Seat management daemon
+
+[Service]
+Restart=always
+# Do not require a VT
+Environment=SEATD_VTBOUND=0
+ExecStart=/usr/bin/seatd -g seat
diff --git a/projectroot/usr/lib/systemd/system/systemd-timesyncd.service.d/volatile.conf b/projectroot/usr/lib/systemd/system/systemd-timesyncd.service.d/volatile.conf
new file mode 100644
index 000000000..4e9e21aef
--- /dev/null
+++ b/projectroot/usr/lib/systemd/system/systemd-timesyncd.service.d/volatile.conf
@@ -0,0 +1,2 @@
+[Service]
+StateDirectory=
diff --git a/projectroot/usr/lib/systemd/system/ubihealthd@.service b/projectroot/usr/lib/systemd/system/ubihealthd@.service
new file mode 100644
index 000000000..f3f0ba25f
--- /dev/null
+++ b/projectroot/usr/lib/systemd/system/ubihealthd@.service
@@ -0,0 +1,13 @@
+# enable with `systemctl enable ubihealthd@ubi0.service`
+
+[Unit]
+Description=ubihealthd UBI device PEB scan daemon for %I
+BindsTo=dev-%i.device
+After=dev-%i.device
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/ubihealthd -d /dev/%I -i 120
+
+[Install]
+WantedBy=multi-user.target
diff --git a/projectroot/usr/lib/systemd/systemd-rc-once b/projectroot/usr/lib/systemd/systemd-rc-once
index db3d84e3c..7dc9bf6f4 100644
--- a/projectroot/usr/lib/systemd/systemd-rc-once
+++ b/projectroot/usr/lib/systemd/systemd-rc-once
@@ -1,7 +1,7 @@
#!/bin/sh
-. /lib/init/initmethod-bbinit-functions.sh
-. /lib/init/rc-once.sh
+. /usr/lib/init/initmethod-bbinit-functions.sh
+. /usr/lib/init/rc-once.sh
start() {
if ! mount_root_rw; then
diff --git a/projectroot/usr/lib/tmpfiles.d/nginx.conf b/projectroot/usr/lib/tmpfiles.d/nginx.conf
index 138b675f9..c4401d5d0 100644
--- a/projectroot/usr/lib/tmpfiles.d/nginx.conf
+++ b/projectroot/usr/lib/tmpfiles.d/nginx.conf
@@ -2,9 +2,3 @@
# See tmpfiles.d(5) for details
d /var/log/nginx 0755 root root -
-d /var/tmp/nginx 0755 www www
-d /var/tmp/nginx/client 0755 www www
-d /var/tmp/nginx/proxy 0755 www www
-d /var/tmp/nginx/fastcgi 0755 www www
-d /var/tmp/nginx/scgi 0755 www www
-d /var/tmp/nginx/uwsgi 0755 www www
diff --git a/projectroot/usr/lib/tmpfiles.d/redis.conf b/projectroot/usr/lib/tmpfiles.d/redis.conf
new file mode 100644
index 000000000..d9283eab5
--- /dev/null
+++ b/projectroot/usr/lib/tmpfiles.d/redis.conf
@@ -0,0 +1 @@
+d /var/lib/redis 0700 redis redis
diff --git a/projectroot/usr/sbin/bootchartd b/projectroot/usr/sbin/bootchartd
index 41b868510..6cbd0c9de 100644
--- a/projectroot/usr/sbin/bootchartd
+++ b/projectroot/usr/sbin/bootchartd
@@ -32,8 +32,8 @@ mount proc /proc -t proc
{
mount -n -t tmpfs -o size=8M none "$LOG_DIR"
- /lib/bootchart/collector ${HZ} "${LOG_DIR}"
- /lib/bootchart/gather "${OUT_DIR}/bootchart.tgz" "${LOG_DIR}"
+ /usr/lib/bootchart/collector ${HZ} "${LOG_DIR}"
+ /usr/lib/bootchart/gather "${OUT_DIR}/bootchart.tgz" "${LOG_DIR}"
} &
# from kernel:/init/main.c
diff --git a/projectroot/usr/sbin/mysqlinit b/projectroot/usr/sbin/mysqlinit
index 72b6d1f10..c98946025 100644
--- a/projectroot/usr/sbin/mysqlinit
+++ b/projectroot/usr/sbin/mysqlinit
@@ -5,7 +5,7 @@ MYSQLD_OPTS=
# since mySQL runs as a regular user, we need to give its working directory
# to it.
-chown mysql.mysql "$1"
+chown mysql:mysql "$1"
chmod 0755 "$1"
# now let mySQL do its initializing job
diff --git a/projectroot/usr/share/polkit-1/rules.d/50-default.rules b/projectroot/usr/share/polkit-1/rules.d/50-default.rules
new file mode 100644
index 000000000..bece60744
--- /dev/null
+++ b/projectroot/usr/share/polkit-1/rules.d/50-default.rules
@@ -0,0 +1,7 @@
+/* -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- */
+
+// only root is admin by default in PTXdist
+
+polkit.addAdminRule(function(action, subject) {
+ return ["unix-user:root"];
+});
diff --git a/rules/abseil-cpp.in b/rules/abseil-cpp.in
new file mode 100644
index 000000000..00fe201ec
--- /dev/null
+++ b/rules/abseil-cpp.in
@@ -0,0 +1,10 @@
+## SECTION=system_libraries
+
+config ABSEIL_CPP
+ tristate
+ select HOST_CMAKE
+ select HOST_NINJA
+ prompt "abseil-cpp"
+ help
+ Abseil is an open-source collection of C++ library code designed
+ to augment the C++ standard library.
diff --git a/rules/abseil-cpp.make b/rules/abseil-cpp.make
new file mode 100644
index 000000000..b70c6b283
--- /dev/null
+++ b/rules/abseil-cpp.make
@@ -0,0 +1,46 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_ABSEIL_CPP) += abseil-cpp
+
+#
+# Paths and names
+#
+ABSEIL_CPP_VERSION := 20230802.1
+ABSEIL_CPP_MD5 := 84665b6daa5dda7c9082b1a00057457a
+ABSEIL_CPP := abseil-cpp-$(ABSEIL_CPP_VERSION)
+ABSEIL_CPP_SUFFIX := tar.gz
+ABSEIL_CPP_URL := https://github.com/abseil/abseil-cpp/archive/refs/tags/$(ABSEIL_CPP_VERSION).$(ABSEIL_CPP_SUFFIX)
+ABSEIL_CPP_SOURCE := $(SRCDIR)/$(ABSEIL_CPP).$(ABSEIL_CPP_SUFFIX)
+ABSEIL_CPP_DIR := $(BUILDDIR)/$(ABSEIL_CPP)
+ABSEIL_CPP_LICENSE := Apache-2.0
+ABSEIL_CPP_LICENSE_FILES := \
+ file://LICENSE;md5=df52c6edb7adc22e533b2bacc3bd3915
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# cmake
+#
+ABSEIL_CPP_CONF_TOOL := cmake
+ABSEIL_CPP_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -G Ninja \
+ -DABSL_BUILD_TESTING=OFF \
+ -DABSL_BUILD_TEST_HELPERS=OFF \
+ -DABSL_ENABLE_INSTALL=ON \
+ -DABSL_PROPAGATE_CXX_STD=OFF \
+ -DABSL_USE_SYSTEM_INCLUDES=OFF \
+ -DBUILD_TESTING=OFF
+
+# vim: syntax=make
diff --git a/rules/acl.make b/rules/acl.make
index daa5837c9..265a8790c 100644
--- a/rules/acl.make
+++ b/rules/acl.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_ACL) += acl
#
# Paths and names
#
-ACL_VERSION := 2.2.53
-ACL_MD5 := 007aabf1dbb550bcddde52a244cd1070
+ACL_VERSION := 2.3.1
+ACL_MD5 := 3cecb80cb0a52a0b273e6698ba642263
ACL := acl-$(ACL_VERSION)
ACL_SUFFIX := tar.gz
ACL_URL := http://download.savannah.gnu.org/releases/acl/$(ACL).$(ACL_SUFFIX)
diff --git a/rules/alsa-lib.in b/rules/alsa-lib.in
index 23c6c9b1c..87d363f19 100644
--- a/rules/alsa-lib.in
+++ b/rules/alsa-lib.in
@@ -18,7 +18,7 @@ config ALSA_LIB_ASOUND_CONF
bool
prompt "install /etc/asound.conf from projectroot"
help
- install a asound.conf file from the projectroot
+ install an asound.conf file from the projectroot
config ALSA_LIB_RESMGR
bool
diff --git a/rules/alsa-lib.make b/rules/alsa-lib.make
index df7d73cba..ffc75b3ae 100644
--- a/rules/alsa-lib.make
+++ b/rules/alsa-lib.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_ALSA_LIB) += alsa-lib
#
# Paths and names
#
-ALSA_LIB_VERSION := 1.2.1.2
-ALSA_LIB_MD5 := 82ddd3698469beec147e4f4a67134ea0
+ALSA_LIB_VERSION := 1.2.11
+ALSA_LIB_MD5 := 1c5870770047b6a520d18a43f49e42ea
ALSA_LIB := alsa-lib-$(ALSA_LIB_VERSION)
ALSA_LIB_SUFFIX := tar.bz2
ALSA_LIB_URL := \
@@ -25,6 +25,9 @@ ALSA_LIB_URL := \
ALSA_LIB_SOURCE := $(SRCDIR)/$(ALSA_LIB).$(ALSA_LIB_SUFFIX)
ALSA_LIB_DIR := $(BUILDDIR)/$(ALSA_LIB)
ALSA_LIB_LICENSE := LGPL-2.1-or-later
+ALSA_LIB_LICENSE_FILES := \
+ file://src/async.c;startline=7;endline=25;md5=dcff7cc43cebd5f1816961f1016b162f \
+ file://COPYING;md5=a916467b91076e631dd8edb7424769c7
# ----------------------------------------------------------------------------
# Prepare
@@ -55,6 +58,7 @@ ALSA_LIB_CONF_OPT := \
--disable-mixer-pymods \
--disable-python \
--disable-python2 \
+ --disable-lockless-dmix \
--enable-thread-safety \
--with-versioned \
--with-tmpdir=/tmp \
diff --git a/rules/alsa-utils.in b/rules/alsa-utils.in
index 6143e1281..95c27c5ba 100644
--- a/rules/alsa-utils.in
+++ b/rules/alsa-utils.in
@@ -5,16 +5,18 @@ menuconfig ALSA_UTILS
prompt "alsa utils "
select ALSA_LIB
select ALSA_LIB_UCM if ALSA_UTILS_USE_CASE_MANAGER
- select ALSA_LIB_RAWMIDI if ALSA_UTILS_RAW_MIDI
+ select ALSA_LIB_RAWMIDI if ALSA_UTILS_RAW_MIDI || ALSA_UTILS_MIDI
select ALSA_LIB_MIXER if ALSA_UTILS_AMIXER || ALSA_UTILS_ALSAMIXER
select ALSA_LIB_PCM if ALSA_UTILS_APLAYRECORD || ALSA_UTILS_IECSET || ALSA_UTILS_MIDI || ALSA_UTILS_ALSALOOP
select ALSA_LIB_SEQ if ALSA_UTILS_SEQTOOLS || ALSA_UTILS_ACONNECT || ALSA_UTILS_MIDI
select LIBC_M if ALSA_UTILS_ALSALOOP
select LIBC_PTHREAD
select NCURSES if ALSA_UTILS_ALSAMIXER
+ select NCURSES_FORM if ALSA_UTILS_ALSAMIXER
+ select NCURSES_MENU if ALSA_UTILS_ALSAMIXER
+ select NCURSES_PANEL if ALSA_UTILS_ALSAMIXER
+ # needed for minimum systemd version check
select SYSTEMD if ALSA_UTILS_SYSTEMD_UNIT
- # to detect where to install its udev rules
- select UDEV
help
Some utils to handle the Advanced Linux Sound Architecture.
With these utils you can control your sound device, for
@@ -43,9 +45,6 @@ config ALSA_UTILS_ASOUND_STATE
config ALSA_UTILS_ALSAMIXER
bool
prompt "alsamixer"
- select NCURSES_FORM
- select NCURSES_MENU
- select NCURSES_PANEL
help
Build the console and ncurses based 'alsamixer' tool.
diff --git a/rules/alsa-utils.make b/rules/alsa-utils.make
index c7ff80984..c5d06853b 100644
--- a/rules/alsa-utils.make
+++ b/rules/alsa-utils.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_ALSA_UTILS) += alsa-utils
#
# Paths and names
#
-ALSA_UTILS_VERSION := 1.2.1
-ALSA_UTILS_MD5 := c4628bae7632937eac2de4cf2a3de82e
+ALSA_UTILS_VERSION := 1.2.11
+ALSA_UTILS_MD5 := 36676025301315789306e99e39154732
ALSA_UTILS := alsa-utils-$(ALSA_UTILS_VERSION)
ALSA_UTILS_SUFFIX := tar.bz2
ALSA_UTILS_URL := \
@@ -25,11 +25,21 @@ ALSA_UTILS_URL := \
ALSA_UTILS_SOURCE := $(SRCDIR)/$(ALSA_UTILS).$(ALSA_UTILS_SUFFIX)
ALSA_UTILS_DIR := $(BUILDDIR)/$(ALSA_UTILS)
ALSA_UTILS_LICENSE := GPL-2.0-or-later
+ALSA_UTILS_LICENSE_FILES := \
+ file://alsactl/alsactl.c;startline=1;endline=21;md5=9c69f9af8d230fd294d7340e2db094f6 \
+ file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
+
+ALSA_UTILS_CONF_ENV := \
+ $(CROSS_ENV) \
+ ac_cv_header_alsa_mixer_h=$(call ptx/yesno, PTXCONF_ALSA_UTILS_ALSAMIXER) \
+ ac_cv_header_alsa_rawmidi_h=$(call ptx/yesno, PTXCONF_ALSA_UTILS_RAW_MIDI) \
+ ac_cv_lib_asound_snd_seq_client_info_get_midi_version=$(call ptx/yesno, PTXCONF_ALSA_UTILS_MIDI)
+
#
# autoconf
#
@@ -38,13 +48,19 @@ ALSA_UTILS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-nls \
--disable-rpath \
+ --enable-alsa-topology \
--disable-alsatest \
+ --disable-alsabat-backend-tiny \
--disable-bat \
--$(call ptx/endis, PTXCONF_ALSA_UTILS_ALSAMIXER)-alsamixer \
+ --enable-alsaconf \
--$(call ptx/endis, PTXCONF_ALSA_UTILS_ALSALOOP)-alsaloop \
+ --disable-nhlt \
--disable-xmlto \
--disable-rst2man \
$(GLOBAL_LARGE_FILE_OPTION) \
+ --without-librt \
+ --with-udev-rules-dir=/usr/lib/udev/rules.d \
--with-curses=$(call ptx/ifdef,PTXCONF_ALSA_UTILS_ALSAMIXER,$(call ptx/ifdef,PTXCONF_NCURSES_WIDE_CHAR,ncursesw,ncurses),no) \
--with-systemdsystemunitdir=$(call ptx/ifdef,PTXCONF_ALSA_UTILS_SYSTEMD_UNIT,/usr/lib/systemd/system,no) \
--with-asound-state-dir=/etc
diff --git a/rules/aml.in b/rules/aml.in
new file mode 100644
index 000000000..897028c61
--- /dev/null
+++ b/rules/aml.in
@@ -0,0 +1,8 @@
+## SECTION=system_libraries
+
+config AML
+ tristate
+ select HOST_MESON
+ prompt "aml"
+ help
+ Andri's Main Loop
diff --git a/rules/aml.make b/rules/aml.make
new file mode 100644
index 000000000..233536587
--- /dev/null
+++ b/rules/aml.make
@@ -0,0 +1,57 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2020 by Marian Cichy <m.cichy@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_AML) += aml
+
+#
+# Paths and names
+#
+AML_VERSION := 0.3.0
+AML_MD5 := 72fad42e1b5efc3055055df6a7b5f1d8
+AML := aml-$(AML_VERSION)
+AML_SUFFIX := tar.gz
+AML_URL := https://github.com/any1/aml/archive/refs/tags/v$(AML_VERSION).$(AML_SUFFIX)
+AML_SOURCE := $(SRCDIR)/$(AML).$(AML_SUFFIX)
+AML_DIR := $(BUILDDIR)/$(AML)
+AML_LICENSE := ISC
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# meson
+#
+AML_CONF_TOOL := meson
+AML_CONF_OPT := \
+ $(CROSS_MESON_USR) \
+ -Dexamples=false
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/aml.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, aml)
+ @$(call install_fixup, aml,PRIORITY,optional)
+ @$(call install_fixup, aml,SECTION,base)
+ @$(call install_fixup, aml,AUTHOR,"Marian Cichy <m.cichy@pengutronix.de>")
+ @$(call install_fixup, aml,DESCRIPTION,missing)
+
+ @$(call install_lib, aml, 0, 0, 0644, libaml)
+
+ @$(call install_finish, aml)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/apitrace.in b/rules/apitrace.in
index 2bac254d0..581517a17 100644
--- a/rules/apitrace.in
+++ b/rules/apitrace.in
@@ -6,6 +6,8 @@ config APITRACE
select HOST_SYSTEM_PYTHON3
select ZLIB
select LIBPNG
+ select BROTLI
+ select GOOGLETEST
prompt "apitrace"
help
Tools for tracing OpenGL, Direct3D, and other graphics APIs.
diff --git a/rules/apitrace.make b/rules/apitrace.make
index d98771d4b..197413fbb 100644
--- a/rules/apitrace.make
+++ b/rules/apitrace.make
@@ -14,16 +14,38 @@ PACKAGES-$(PTXCONF_APITRACE) += apitrace
#
# Paths and names
#
-APITRACE_VERSION := 9.0
-APITRACE_MD5 := 83bacfb35f4f339571702099d283f571
+APITRACE_VERSION := 11.1
+APITRACE_MD5 := 28a1eb4a7b69dd7c419378cd00d73e2b
APITRACE := apitrace-$(APITRACE_VERSION)
APITRACE_SUFFIX := tar.gz
APITRACE_URL := https://github.com/apitrace/apitrace/archive/$(APITRACE_VERSION).$(APITRACE_SUFFIX)
APITRACE_SOURCE := $(SRCDIR)/$(APITRACE).$(APITRACE_SUFFIX)
APITRACE_DIR := $(BUILDDIR)/$(APITRACE)
-APITRACE_LICENSE := MIT AND BSD-3-CLAUSE
-APITRACE_LICENSE_FILES := file://LICENSE;md5=aeb969185a143c3c25130bc2c3ef9a50 \
- file://thirdparty/snappy/COPYING;md5=f62f3080324a97b3159a7a7e61812d0c
+APITRACE_LICENSE := MIT AND BSD-3-Clause
+APITRACE_LICENSE_FILES := \
+ file://LICENSE;md5=aeb969185a143c3c25130bc2c3ef9a50
+
+APITRACE_BACKTRACE_VERSION := 2021-01-18-gdedbe13fda00
+APITRACE_BACKTRACE_MD5 := d3fa1299e74dba1c129d9fcee235c5d3
+APITRACE_BACKTRACE := apitrace-backtrace-$(APITRACE_BACKTRACE_VERSION)
+APITRACE_BACKTRACE_SUFFIX := tar.gz
+APITRACE_BACKTRACE_URL := https://github.com/ianlancetaylor/libbacktrace/archive/$(APITRACE_BACKTRACE_VERSION).$(APITRACE_BACKTRACE_SUFFIX)
+APITRACE_BACKTRACE_SOURCE := $(SRCDIR)/$(APITRACE_BACKTRACE).$(APITRACE_BACKTRACE_SUFFIX)
+APITRACE_BACKTRACE_DIR := $(APITRACE_DIR)/thirdparty/libbacktrace
+APITRACE_LICENSE_FILES += \
+ file://thirdparty/libbacktrace/LICENSE;md5=24b5b3feec63c4be0975e1fea5100440
+
+APITRACE_SNAPPY_VERSION := 2020-01-14-g537f4ad6240e
+APITRACE_SNAPPY_MD5 := ac7cc4b35483ae055b6396ebcc34af01
+APITRACE_SNAPPY := apitrace-snappy-$(APITRACE_SNAPPY_VERSION)
+APITRACE_SNAPPY_SUFFIX := tar.gz
+APITRACE_SNAPPY_URL := https://github.com/google/snappy/archive/$(APITRACE_SNAPPY_VERSION).$(APITRACE_SNAPPY_SUFFIX)
+APITRACE_SNAPPY_SOURCE := $(SRCDIR)/$(APITRACE_SNAPPY).$(APITRACE_SNAPPY_SUFFIX)
+APITRACE_SNAPPY_DIR := $(APITRACE_DIR)/thirdparty/snappy
+APITRACE_LICENSE_FILES += \
+ file://thirdparty/snappy/COPYING;md5=f62f3080324a97b3159a7a7e61812d0c
+
+APITRACE_PARTS += APITRACE_BACKTRACE APITRACE_SNAPPY
# ----------------------------------------------------------------------------
# Prepare
@@ -32,12 +54,13 @@ APITRACE_LICENSE_FILES := file://LICENSE;md5=aeb969185a143c3c25130bc2c3ef9a50 \
APITRACE_CONF_TOOL := cmake
APITRACE_CONF_OPT := \
$(CROSS_CMAKE_USR) \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_LIBDIR=/usr/lib \
+ -DWRAPPER_INSTALL_DIR=/usr/lib/apitrace/wrappers \
+ -DBUILD_TESTING=ON \
-DENABLE_ASAN=OFF \
-DENABLE_CLI=ON \
-DENABLE_EGL=ON \
-DENABLE_FRAME_POINTER=ON \
+ -DENABLE_GLTRIM_TESTS=OFF \
-DENABLE_GUI=OFF \
-DENABLE_SSE42=OFF \
-DENABLE_STATIC_EXE=OFF \
diff --git a/rules/argtable2.in b/rules/argtable2.in
index 71d40e8df..f66f1625e 100644
--- a/rules/argtable2.in
+++ b/rules/argtable2.in
@@ -4,12 +4,12 @@ config ARGTABLE2
tristate
prompt "argtable2"
help
- Argtable is an ANSI C library for parsing GNU style command line
- arguments with a minimum of fuss. It enables the programmer to define
- their program's argument syntax directly in the source code as an
- array of structs. The command line is then parsed according to that
- specification and the resulting values stored directly into
- user-defined program variables where they are accessible to the main
- program.
+ Argtable is an ANSI C library for parsing GNU style command line
+ arguments with a minimum of fuss. It enables the programmer to define
+ their program's argument syntax directly in the source code as an
+ array of structs. The command line is then parsed according to that
+ specification and the resulting values stored directly into
+ user-defined program variables where they are accessible to the main
+ program.
# vim: syntax=kconfig
diff --git a/rules/argtable2.make b/rules/argtable2.make
index 9e1c6fd1e..79630e275 100644
--- a/rules/argtable2.make
+++ b/rules/argtable2.make
@@ -22,18 +22,20 @@ ARGTABLE2_SUFFIX := tar.gz
ARGTABLE2_URL := $(call ptx/mirror, SF, argtable/$(ARGTABLE2).$(ARGTABLE2_SUFFIX))
ARGTABLE2_SOURCE := $(SRCDIR)/$(ARGTABLE2).$(ARGTABLE2_SUFFIX)
ARGTABLE2_DIR := $(BUILDDIR)/$(ARGTABLE2)
+ARGTABLE2_LICENSE := LGPL-2.0-or-later
+ARGTABLE2_LICENSE_FILES := \
+ file://COPYING;md5=f30a9716ef3762e3467a2f62bf790f0a \
+ file://src/argtable2.c;startline=6;endline=14;md5=955d1d74393b5b5850210927b08a069a
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-ARGTABLE2_PATH := PATH=$(CROSS_PATH)
-ARGTABLE2_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-ARGTABLE2_AUTOCONF := \
+ARGTABLE2_CONF_TOOL := autoconf
+ARGTABLE2_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-debug
diff --git a/rules/armadillo.in b/rules/armadillo.in
new file mode 100644
index 000000000..797d69ae6
--- /dev/null
+++ b/rules/armadillo.in
@@ -0,0 +1,10 @@
+## SECTION=system_libraries
+
+config ARMADILLO
+ tristate
+ select HOST_CMAKE
+ select GCCLIBS_CXX
+ select OPENBLAS
+ prompt "armadillo"
+ help
+ streamlined C++ linear algebra library
diff --git a/rules/armadillo.make b/rules/armadillo.make
new file mode 100644
index 000000000..bc8a63e0a
--- /dev/null
+++ b/rules/armadillo.make
@@ -0,0 +1,62 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_ARMADILLO) += armadillo
+
+#
+# Paths and names
+#
+ARMADILLO_VERSION := 12.6.6
+ARMADILLO_MD5 := 79925f9cf0c7276fd4f120b978a3ef3c
+ARMADILLO := armadillo-$(ARMADILLO_VERSION)
+ARMADILLO_SUFFIX := tar.xz
+ARMADILLO_URL := https://sourceforge.net/projects/arma/files/$(ARMADILLO).$(ARMADILLO_SUFFIX)
+ARMADILLO_SOURCE := $(SRCDIR)/$(ARMADILLO).$(ARMADILLO_SUFFIX)
+ARMADILLO_DIR := $(BUILDDIR)/$(ARMADILLO)
+ARMADILLO_LICENSE := Apache-2.0
+ARMADILLO_LICENSE_FILES := \
+ file://LICENSE.txt;md5=d273d63619c9aeaf15cdaf76422c4f87
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# cmake
+#
+ARMADILLO_CONF_TOOL := cmake
+ARMADILLO_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -DALLOW_FLEXIBLAS_LINUX=OFF \
+ -DBUILD_SHARED_LIBS=ON \
+ -DBUILD_SMOKE_TEST=OFF \
+ -DOPENBLAS_PROVIDES_LAPACK=ON
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/armadillo.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, armadillo)
+ @$(call install_fixup, armadillo,PRIORITY,optional)
+ @$(call install_fixup, armadillo,SECTION,base)
+ @$(call install_fixup, armadillo,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, armadillo,DESCRIPTION,missing)
+
+ @$(call install_lib, armadillo, 0, 0, 0644, libarmadillo)
+
+ @$(call install_finish, armadillo)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/at.in b/rules/at.in
index ef3bda324..13a1916c6 100644
--- a/rules/at.in
+++ b/rules/at.in
@@ -58,7 +58,7 @@ config AT_ATQ
default y
help
lists the user's pending jobs, unless the user is the
- superuser; in that case, everybody's jobs are listed.
+ superuser; in that case, everybody's jobs are listed.
config AT_ATRM
bool "install atrm"
@@ -72,7 +72,7 @@ config AT_BATCH
select AT_AT
help
executes commands when system load levels permit; in other
- words, when the load average drops below 1.5, or the value
- specified in the invocation of atd.
+ words, when the load average drops below 1.5, or the value
+ specified in the invocation of atd.
endif
diff --git a/rules/at.make b/rules/at.make
index 5a105e271..c7089d156 100644
--- a/rules/at.make
+++ b/rules/at.make
@@ -14,24 +14,24 @@ PACKAGES-$(PTXCONF_AT) += at
#
# Paths and names
#
-AT_VERSION := 3.1.12
-AT_MD5 := 1e67991776148fb319fd77a2e599a765
+AT_VERSION := 3.2.5
+AT_MD5 := ca3657a1c90d7c3d252e0bc17feddc6e
AT_SUFFIX := tar.gz
AT := at-$(AT_VERSION)
AT_TARBALL := at_$(AT_VERSION).orig.$(AT_SUFFIX)
-AT_URL := http://snapshot.debian.org/archive/debian/20091130T214753Z/pool/main/a/at/$(AT_TARBALL)
+AT_URL := http://software.calhariz.com/at/$(AT_TARBALL)
AT_SOURCE := $(SRCDIR)/$(AT_TARBALL)
AT_DIR := $(BUILDDIR)/$(AT)
AT_LICENSE := GPL-2.0-or-later AND GPL-3.0-or-later AND ISC
AT_LICENSE_FILES := \
file://COPYING;md5=4325afd396febcb659c36b49533135d4 \
- file://Copyright;md5=dffa11c636884752fbf0b2a159b2883a
+ file://Copyright;md5=7532282502653b5282e013ffe944d993
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-AT_ENV := \
+AT_CONF_ENV := \
$(CROSS_ENV) \
ac_cv_header_security_pam_appl_h=$(call ptx/yesno, PTXCONF_GLOBAL_PAM)
@@ -47,10 +47,11 @@ endif
AT_CONF_TOOL := autoconf
AT_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
- --with-loadavg_mx=1.5 \
--with-jobdir=/var/spool/cron/atjobs \
--with-atspool=/var/spool/cron/atspool \
+ --with-loadavg_mx=1.5 \
--with-daemon_username=root \
+ --$(call ptx/wwo, PTXCONF_GLOBAL_SELINUX)-selinux \
--with-daemon_groupname=root \
SENDMAIL=$(AT_SENDMAIL)
diff --git a/rules/at91bootstrap2.make b/rules/at91bootstrap2.make
index dcb1157b1..c36e30305 100644
--- a/rules/at91bootstrap2.make
+++ b/rules/at91bootstrap2.make
@@ -35,7 +35,7 @@ AT91BOOTSTRAP2_WRAPPER_BLACKLIST := \
AT91BOOTSTRAP2_MAKE_ENV := \
CROSS_COMPILE=$(BOOTLOADER_CROSS_COMPILE) \
HOSTCC=$(HOSTCC)
-AT91BOOTSTRAP2_MAKE_OPT := V=$(PTXDIST_VERBOSE)
+AT91BOOTSTRAP2_MAKE_OPT := V=$(PTXDIST_VERBOSE) BUILDDIR=.
ifdef PTXCONF_AT91BOOTSTRAP2
$(AT91BOOTSTRAP2_CONFIG):
diff --git a/rules/atk.in b/rules/atk.in
index ee7b0cfbd..3ddd3c4ff 100644
--- a/rules/atk.in
+++ b/rules/atk.in
@@ -3,6 +3,7 @@
config ATK
tristate
prompt "atk"
+ select HOST_MESON
select GLIB
select GOBJECT_INTROSPECTION if ATK_INTROSPECTION
help
diff --git a/rules/atk.make b/rules/atk.make
index ce41caec1..1183faf95 100644
--- a/rules/atk.make
+++ b/rules/atk.make
@@ -16,33 +16,30 @@ PACKAGES-$(PTXCONF_ATK) += atk
#
# Paths and names
#
-ATK_VERSION := 2.28.1
-ATK_MD5 := dfb5e7474220afa3f4ca7e45af9f3a11
+ATK_VERSION := 2.38.0
+ATK_MD5 := 4dcea15cbf166706c166fc4fee05e3f8
ATK := atk-$(ATK_VERSION)
ATK_SUFFIX := tar.xz
ATK_URL := $(call ptx/mirror, GNOME, atk/$(basename $(ATK_VERSION))/$(ATK).$(ATK_SUFFIX))
ATK_SOURCE := $(SRCDIR)/$(ATK).$(ATK_SUFFIX)
ATK_DIR := $(BUILDDIR)/$(ATK)
-ATK_LICENSE := LGPL-2.0-only
+ATK_LICENSE := LGPL-2.0-or-later
+ATK_LICENSE_FILES := \
+ file://atk/atkaction.c;startline=1;endline=18;md5=6fd31cd2fdc9b30f619ca8d819bc12d3 \
+ file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
#
-# autoconf
+# meson
#
-ATK_CONF_TOOL := autoconf
+ATK_CONF_TOOL := meson
ATK_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --enable-static \
- --disable-rebuilds \
- --disable-nls \
- --disable-rpath \
- --$(call ptx/endis, PTXCONF_ATK_INTROSPECTION)-introspection \
- --disable-gtk-doc \
- --disable-gtk-doc-html \
- --disable-gtk-doc-pdf
+ $(CROSS_MESON_USR) \
+ -Ddocs=false \
+ -Dintrospection=$(call ptx/truefalse, PTXCONF_ATK_INTROSPECTION)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/atkmm.in b/rules/atkmm.in
deleted file mode 100644
index 1c17c69e3..000000000
--- a/rules/atkmm.in
+++ /dev/null
@@ -1,11 +0,0 @@
-## SECTION=multimedia_gtk
-
-config ATKMM
- tristate
- prompt "atkmm"
- select GLIBMM
- select ATK
- help
- atkmm is the official C++ interface for the ATK accessibility
- toolkit library. It may be used, for instance, by user interfaces
- implemented with gtkmm.
diff --git a/rules/atkmm.make b/rules/atkmm.make
deleted file mode 100644
index 6ece656f7..000000000
--- a/rules/atkmm.make
+++ /dev/null
@@ -1,57 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2011 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_ATKMM) += atkmm
-
-#
-# Paths and names
-#
-ATKMM_VERSION := 2.22.6
-ATKMM_MD5 := 7c35324dd3c081a385deb7523ed6f287
-ATKMM := atkmm-$(ATKMM_VERSION)
-ATKMM_SUFFIX := tar.bz2
-ATKMM_URL := $(call ptx/mirror, GNOME, atkmm/$(basename $(ATKMM_VERSION))/$(ATKMM).$(ATKMM_SUFFIX))
-ATKMM_SOURCE := $(SRCDIR)/$(ATKMM).$(ATKMM_SUFFIX)
-ATKMM_DIR := $(BUILDDIR)/$(ATKMM)
-ATKMM_LICENSE := unknown
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-ATKMM_CONF_TOOL := autoconf
-ATKMM_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --disable-documentation
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/atkmm.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, atkmm)
- @$(call install_fixup, atkmm,PRIORITY,optional)
- @$(call install_fixup, atkmm,SECTION,base)
- @$(call install_fixup, atkmm,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
- @$(call install_fixup, atkmm,DESCRIPTION,missing)
-
- @$(call install_lib, atkmm, 0, 0, 0644, libatkmm-1.6)
-
- @$(call install_finish, atkmm)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/attr.make b/rules/attr.make
index 03e1bccab..42e89afe7 100644
--- a/rules/attr.make
+++ b/rules/attr.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_ATTR) += attr
#
# Paths and names
#
-ATTR_VERSION := 2.4.48
-ATTR_MD5 := bc1e5cb5c96d99b24886f1f527d3bb3d
+ATTR_VERSION := 2.5.1
+ATTR_MD5 := ac1c5a7a084f0f83b8cace34211f64d8
ATTR := attr-$(ATTR_VERSION)
ATTR_SUFFIX := tar.gz
ATTR_SOURCE := $(SRCDIR)/$(ATTR).$(ATTR_SUFFIX)
@@ -39,6 +39,7 @@ ATTR_URL := \
ATTR_CONF_TOOL := autoconf
ATTR_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
+ $(GLOBAL_LARGE_FILE_OPTION) \
--disable-nls \
--disable-rpath \
--disable-debug
diff --git a/rules/aumix.in b/rules/aumix.in
deleted file mode 100644
index a3df52201..000000000
--- a/rules/aumix.in
+++ /dev/null
@@ -1,17 +0,0 @@
-## SECTION=multimedia_sound
-
-config AUMIX
- tristate
- prompt "aumix"
- select NCURSES
- # autopint is needed for autogen.sh
- select HOST_GETTEXT
- help
- Simple text-based mixer control program
-
- aumix is a small, easy-to-use program to control the mixer
- of your sound card. It runs in text mode using the ncurses
- library, or from the command line (non-interactively). It
- can read default settings from a file, and it can also
- automatically save and restore the mixer settings at
- shutdown and boot.
diff --git a/rules/aumix.make b/rules/aumix.make
deleted file mode 100644
index a428aa29d..000000000
--- a/rules/aumix.make
+++ /dev/null
@@ -1,65 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2013 by Marc Kleine-Budde <mkl@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_AUMIX) += aumix
-
-#
-# Paths and names
-#
-AUMIX_VERSION := 2.9.1
-AUMIX_MD5 := 34f28ae1c94fc5298e8bb2688c4b3a20
-AUMIX := aumix-$(AUMIX_VERSION)
-AUMIX_SUFFIX := tar.bz2
-AUMIX_URL := $(call ptx/mirror, SF, aumix/$(AUMIX).$(AUMIX_SUFFIX))
-AUMIX_SOURCE := $(SRCDIR)/$(AUMIX).$(AUMIX_SUFFIX)
-AUMIX_DIR := $(BUILDDIR)/$(AUMIX)
-AUMIX_LICENSE := GPL-2.0-only
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-AUMIX_CONF_ENV := \
- $(CROSS_ENV) \
- ac_cv_path_MSGMERGE=:
-
-#
-# autoconf
-#
-AUMIX_CONF_TOOL := autoconf
-AUMIX_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --disable-dummy-mixer \
- --without-gtk \
- --without-gpm \
- --without-sysmouse
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/aumix.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, aumix)
- @$(call install_fixup, aumix,PRIORITY,optional)
- @$(call install_fixup, aumix,SECTION,base)
- @$(call install_fixup, aumix,AUTHOR,"Marc Kleine-Budde <mkl@pengutronix.de>")
- @$(call install_fixup, aumix,DESCRIPTION,missing)
-
- @$(call install_copy, aumix, 0, 0, 0755, -, /usr/bin/aumix)
- @$(call install_tree, aumix, 0, 0, -, /usr/share/aumix)
-
- @$(call install_finish, aumix)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/autossh.make b/rules/autossh.make
index ef8240bcb..86dae4db7 100644
--- a/rules/autossh.make
+++ b/rules/autossh.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_AUTOSSH) += autossh
#
# Paths and names
#
-AUTOSSH_VERSION := 1.4c
-AUTOSSH_MD5 := 26520eea934f296be0783dabe7fcfd28
-AUTOSSH := autossh-$(AUTOSSH_VERSION)
-AUTOSSH_SUFFIX := tgz
-AUTOSSH_URL := http://www.harding.motd.ca/autossh/$(AUTOSSH).$(AUTOSSH_SUFFIX)
-AUTOSSH_SOURCE := $(SRCDIR)/$(AUTOSSH).$(AUTOSSH_SUFFIX)
-AUTOSSH_DIR := $(BUILDDIR)/$(AUTOSSH)
-AUTOSSH_LICENSE := unknown
+AUTOSSH_VERSION := 1.4g
+AUTOSSH_MD5 := 2b804bc1bf6d2f2afaa526d02df7c0a2
+AUTOSSH := autossh-$(AUTOSSH_VERSION)
+AUTOSSH_SUFFIX := tgz
+AUTOSSH_URL := https://www.harding.motd.ca/autossh/$(AUTOSSH).$(AUTOSSH_SUFFIX)
+AUTOSSH_SOURCE := $(SRCDIR)/$(AUTOSSH).$(AUTOSSH_SUFFIX)
+AUTOSSH_DIR := $(BUILDDIR)/$(AUTOSSH)
+AUTOSSH_LICENSE := custom
+AUTOSSH_LICENSE_FILES := \
+ file://autossh.c;startline=7;endline=22;md5=9ae0c9b04856148d77984ef58536732b
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/avahi.in b/rules/avahi.in
index 5a44819ff..a038a1efe 100644
--- a/rules/avahi.in
+++ b/rules/avahi.in
@@ -7,7 +7,7 @@ menuconfig AVAHI
select EXPAT
select LIBCAP
select GLIB if AVAHI_GLIB
- select QT4 if AVAHI_QT4
+ select QT5 if AVAHI_QT5
select DBUS if AVAHI_DBUS
select GTK if AVAHI_GTK
prompt "avahi "
@@ -35,12 +35,11 @@ config AVAHI_GOBJECT
help
--enable-gobject
-config AVAHI_QT4
+config AVAHI_QT5
bool
- depends on STAGING
- prompt "enable qt4 support"
+ prompt "enable qt5 support"
help
- --enable-qt4
+ --enable-qt5
config AVAHI_GTK
bool
diff --git a/rules/avahi.make b/rules/avahi.make
index 5e7ea2e66..57192cbf1 100644
--- a/rules/avahi.make
+++ b/rules/avahi.make
@@ -14,22 +14,22 @@ PACKAGES-$(PTXCONF_AVAHI) += avahi
#
# Paths and names
#
-AVAHI_VERSION := 0.7
-AVAHI_MD5 := d76c59d0882ac6c256d70a2a585362a6
+AVAHI_VERSION := 0.8
+AVAHI_MD5 := 229c6aa30674fc43c202b22c5f8c2be7
AVAHI := avahi-$(AVAHI_VERSION)
AVAHI_SUFFIX := tar.gz
AVAHI_URL := http://avahi.org/download/$(AVAHI).$(AVAHI_SUFFIX)
AVAHI_SOURCE := $(SRCDIR)/$(AVAHI).$(AVAHI_SUFFIX)
AVAHI_DIR := $(BUILDDIR)/$(AVAHI)
AVAHI_LICENSE := LGPL-2.1-or-later
+AVAHI_LICENSE_FILES := \
+ file://avahi-core/announce.c;startline=1;endline=18;md5=1f85ea0f4d74ffb2d21a12c931196ced \
+ file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-AVAHI_PATH := PATH=$(CROSS_PATH)
-AVAHI_ENV := $(CROSS_ENV)
-
#
# autoconf
#
@@ -38,11 +38,14 @@ AVAHI_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-stack-protector \
--disable-nls \
+ --disable-rpath \
--$(call ptx/endis, PTXCONF_AVAHI_GLIB)-glib \
--$(call ptx/endis, PTXCONF_AVAHI_GOBJECT)-gobject \
--disable-introspection \
+ --disable-libevent \
--disable-qt3 \
- --$(call ptx/endis, PTXCONF_AVAHI_QT4)-qt4 \
+ --disable-qt4 \
+ --$(call ptx/endis, PTXCONF_AVAHI_QT5)-qt5 \
--disable-gtk \
--$(call ptx/endis, PTXCONF_AVAHI_GTK)-gtk3 \
--$(call ptx/endis, PTXCONF_AVAHI_DBUS)-dbus \
@@ -85,7 +88,13 @@ AVAHI_CONF_OPT := \
# warning: libavahi-glib.so.1, needed by ./.libs/libavahi-ui-gtk3.so, not found (try using -rpath or -rpath-link)
AVAHI_LDFLAGS := -Wl,-rpath-link,$(AVAHI_DIR)/avahi-glib/.libs/
-AVAHI_CFLAGS:= -D_FILE_OFFSET_BITS=64
+ifdef PTXCONF_AVAHI_QT5
+AVAHI_MAKE_ENV := \
+ ICECC_REMOTE_CPP=0
+endif
+
+AVAHI_CFLAGS := -D_FILE_OFFSET_BITS=64
+AVAHI_CXXFLAGS := -D_FILE_OFFSET_BITS=64 -std=c++11
# ----------------------------------------------------------------------------
# Target-Install
@@ -112,8 +121,8 @@ ifdef PTXCONF_AVAHI_DBUS
/usr/share/dbus-1/system.d/avahi-dbus.conf)
endif
-ifdef PTXCONF_AVAHI_QT4
- @$(call install_lib, avahi, 0, 0, 0644, libavahi-qt4)
+ifdef PTXCONF_AVAHI_QT5
+ @$(call install_lib, avahi, 0, 0, 0644, libavahi-qt5)
endif
ifdef PTXCONF_AVAHI_LIBAVAHI_CLIENT
@@ -184,9 +193,9 @@ endif
ifdef PTXCONF_AVAHI_AUTOIP
# avahi autoip daemon (avahi IPv4LL Implementation)
-# this component is needed for rfc3927 style link local adressing
+# this component is needed for rfc3927 style link local addressing
# depends on libdaemon
-# be shure to set CONFIG_FILE_LOCKING=y in your Kernel Config
+# be sure to set CONFIG_FILE_LOCKING=y in your Kernel Config
@$(call install_copy, avahi, 0, 0, 0755, -, /usr/sbin/avahi-autoipd)
@$(call install_copy, avahi, 0, 0, 0755, -, \
/etc/avahi/avahi-autoipd.action)
diff --git a/rules/barebox.make b/rules/barebox.make
index bea9f3adc..c0d9c5744 100644
--- a/rules/barebox.make
+++ b/rules/barebox.make
@@ -34,6 +34,8 @@ BAREBOX_CONFIG := $(call ptx/in-platformconfigdir, \
# Prepare
# ----------------------------------------------------------------------------
+BAREBOX_INJECT_PATH := ${PTXDIST_SYSROOT_TARGET}/usr/lib/firmware
+
# use host pkg-config for host tools
BAREBOX_PATH := PATH=$(HOST_PATH)
@@ -78,6 +80,9 @@ endif
$(STATEDIR)/barebox.prepare:
@$(call targetinfo)
+ifdef PTXCONF_BAREBOX_FIRMWARE
+ @$(call world/inject, BAREBOX)
+endif
@$(call world/prepare, BAREBOX)
ifdef PTXCONF_BAREBOX_EXTRA_ENV
@@ -93,7 +98,6 @@ ifdef PTXCONF_BAREBOX_EXTRA_ENV
fi;)
@rm -rf $(BAREBOX_BUILD_DIR)/defaultenv/barebox_default_env
endif
-
@$(call touch)
# ----------------------------------------------------------------------------
@@ -128,7 +132,8 @@ BAREBOX_PROGS_HOST := \
bareboxcrc32 \
bareboximd \
setupmbr/setupmbr \
- imx/imx-usb-loader
+ imx/imx-usb-loader \
+ rk-usb-loader
BAREBOX_PROGS_TARGET_y :=
BAREBOX_PROGS_TARGET_$(PTXCONF_BAREBOX_BAREBOXENV) += bareboxenv
@@ -142,7 +147,7 @@ $(STATEDIR)/barebox.install:
@$(foreach prog, $(BAREBOX_PROGS_HOST), \
if [ -e $(BAREBOX_BUILD_DIR)/scripts/$(prog) ]; then \
install -v -D -m755 $(BAREBOX_BUILD_DIR)/scripts/$(prog) \
- $(PTXDIST_SYSROOT_HOST)/bin/$(notdir $(prog)) || exit; \
+ $(PTXDIST_SYSROOT_HOST)/usr/bin/$(notdir $(prog)) || exit; \
fi;)
@$(foreach prog, $(BAREBOX_PROGS_TARGET_y), \
@@ -167,34 +172,27 @@ ifneq ($(strip $(BAREBOX_PROGS_TARGET_y)),)
@$(foreach prog, $(BAREBOX_PROGS_TARGET_y), \
$(call install_copy, barebox, 0, 0, 0755, -, \
- /usr/bin/$(prog));)
+ /usr/bin/$(prog))$(ptx/nl))
@$(call install_finish, barebox)
endif
- @rm -f $(IMAGEDIR)/barebox-image
- @if [ -d $(BAREBOX_BUILD_DIR)/images ]; then \
- find $(BAREBOX_BUILD_DIR)/images/ -name "barebox-*.img" | sort | while read image; do \
- install -D -m644 $$image $(IMAGEDIR)/`basename $$image`; \
- if [ ! -e $(IMAGEDIR)/barebox-image ]; then \
- ln -sf `basename $$image` $(IMAGEDIR)/barebox-image; \
- fi; \
- done; \
- fi
- @if [ -e $(IMAGEDIR)/barebox-image ]; then \
- :; \
- elif [ -e $(BAREBOX_BUILD_DIR)/barebox-flash-image ]; then \
- install -D -m644 $(BAREBOX_BUILD_DIR)/barebox-flash-image $(IMAGEDIR)/barebox-image; \
- else \
- install -D -m644 $(BAREBOX_BUILD_DIR)/barebox.bin $(IMAGEDIR)/barebox-image; \
- fi
- @if [ -e $(BAREBOX_BUILD_DIR)/defaultenv/barebox_zero_env ]; then \
- install -D -m644 $(BAREBOX_BUILD_DIR)/defaultenv/barebox_zero_env $(IMAGEDIR)/barebox-default-environment; \
- elif [ -e $(BAREBOX_BUILD_DIR)/common/barebox_default_env ]; then \
- install -D -m644 $(BAREBOX_BUILD_DIR)/common/barebox_default_env $(IMAGEDIR)/barebox-default-environment; \
- elif [ -e $(BAREBOX_BUILD_DIR)/barebox_default_env ]; then \
- install -D -m644 $(BAREBOX_BUILD_DIR)/barebox_default_env $(IMAGEDIR)/barebox-default-environment; \
- fi
+ @$(call world/image-clean, BAREBOX)
+
+ifdef PTXCONF_BAREBOX_INSTALL_DTBS
+ @$(foreach dtb, $(shell find $(BAREBOX_BUILD_DIR) -name "*.dtb"), \
+ $(call ptx/image-install, BAREBOX, $(dtb), barebox-$(notdir $(dtb)))$(ptx/nl))
+endif
+
+ @$(foreach image, $(shell cat $(BAREBOX_BUILD_DIR)/barebox-flash-images), \
+ $(call ptx/image-install, BAREBOX, $(BAREBOX_BUILD_DIR)/$(image))$(ptx/nl) \
+ if [ ! -e $(IMAGEDIR)/barebox-image ]; then \
+ $(call ptx/image-install-link, BAREBOX, $(notdir $(image)), barebox-image); \
+ fi$(ptx/nl))
+
+ @$(call ptx/image-install, BAREBOX, $(BAREBOX_BUILD_DIR)/defaultenv/barebox_zero_env, \
+ barebox-default-environment)
+
@$(call touch)
# ----------------------------------------------------------------------------
@@ -205,8 +203,7 @@ $(STATEDIR)/barebox.clean:
@$(call targetinfo)
@$(call clean_pkg, BAREBOX)
@$(foreach prog, $(BAREBOX_PROGS_HOST), \
- rm -vf $(PTXDIST_SYSROOT_HOST)/bin/$(notdir $(prog))$(ptx/nl))
- @rm -vf $(IMAGEDIR)/barebox-image $(IMAGEDIR)/barebox-default-environment
+ rm -vf $(PTXDIST_SYSROOT_HOST)/usr/bin/$(notdir $(prog))$(ptx/nl))
# ----------------------------------------------------------------------------
# oldconfig / menuconfig
diff --git a/rules/barebox_mlo.make b/rules/barebox_mlo.make
index 83e01ef0b..a3ee4a3ba 100644
--- a/rules/barebox_mlo.make
+++ b/rules/barebox_mlo.make
@@ -68,18 +68,18 @@ $(STATEDIR)/barebox_mlo.install:
$(STATEDIR)/barebox_mlo.targetinstall:
@$(call targetinfo)
+ @$(call world/image-clean, BAREBOX_MLO)
# #barebox renamed barebox.bin.ift to MLO, so fall back to barebox.bin.ift
- @rm -f $(IMAGEDIR)/MLO
@for image in `ls $(BAREBOX_MLO_DIR)/images/barebox-*.img`; do \
- install -D -m644 $$image $(IMAGEDIR)/`basename $$image`; \
+ $(call ptx/image-install, BAREBOX_MLO, $$image); \
if [ ! -e "$(IMAGEDIR)/MLO" ]; then \
- ln -sf `basename $$image` $(IMAGEDIR)/MLO; \
+ $(call ptx/image-install-link, BAREBOX_MLO, `basename $$image`, MLO); \
fi; \
done
@if [ ! -e "$(IMAGEDIR)/MLO" ]; then \
ptxd_get_path "$(BAREBOX_MLO_DIR)/MLO" \
"$(BAREBOX_MLO_DIR)/barebox.bin.ift" && \
- install -D -m644 "$${ptxd_reply}" "$(IMAGEDIR)/MLO"; \
+ $(call ptx/image-install, BAREBOX_MLO, "$${ptxd_reply}", MLO); \
fi
@$(call touch)
@@ -91,7 +91,6 @@ $(STATEDIR)/barebox_mlo.targetinstall:
$(STATEDIR)/barebox_mlo.clean:
@$(call targetinfo)
@$(call clean_pkg, BAREBOX_MLO)
- rm -rf $(IMAGEDIR)/MLO
# ----------------------------------------------------------------------------
# oldconfig / menuconfig
diff --git a/rules/bash.in b/rules/bash.in
index 183c7517a..3b3dd845d 100644
--- a/rules/bash.in
+++ b/rules/bash.in
@@ -8,11 +8,11 @@ menuconfig BASH
help
The GNU Bourne Again SHell
Bash is an sh-compatible command language interpreter that executes
- commands read from the standard input or from a file. Bash also
- incorporates useful features from the Korn and C shells (ksh and csh).
+ commands read from the standard input or from a file. Bash also
+ incorporates useful features from the Korn and C shells (ksh and csh).
Bash is ultimately intended to be a conformant implementation of the
- IEEE POSIX Shell and Tools specification (IEEE Working Group 1003.2).
+ IEEE POSIX Shell and Tools specification (IEEE Working Group 1003.2).
Included in the bash package is the Programmable Completion Code,
by Ian Macdonald.
diff --git a/rules/bash.make b/rules/bash.make
index bed121586..fd6370887 100644
--- a/rules/bash.make
+++ b/rules/bash.make
@@ -13,30 +13,29 @@ PACKAGES-$(PTXCONF_BASH) += bash
#
# Paths and names
#
-BASH_VERSION := 4.3.30
-BASH_MD5 := a27b3ee9be83bd3ba448c0ff52b28447
+BASH_VERSION := 5.2.21
+BASH_MD5 := ad5b38410e3bf0e9bcc20e2765f5e3f9
BASH := bash-$(BASH_VERSION)
BASH_SUFFIX := tar.gz
BASH_URL := $(call ptx/mirror, GNU, bash/$(BASH).$(BASH_SUFFIX))
BASH_SOURCE := $(SRCDIR)/$(BASH).$(BASH_SUFFIX)
BASH_DIR := $(BUILDDIR)/$(BASH)
-BASH_MAKE_PAR := NO
BASH_LICENSE := GPL-3.0-or-later
BASH_LICENSE_FILES := \
file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://general.c;startline=1;endline=19;md5=c018785d21f8c206ca7a13fa7d027568
+ file://general.c;startline=1;endline=19;md5=e33b255b2fde7a27805a07a2a59d571e
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-BASH_PATH := PATH=$(CROSS_PATH)
-BASH_ENV := \
+BASH_CONF_ENV := \
$(CROSS_ENV) \
bash_cv_job_control_missing=$(call ptx/ifdef, PTXCONF_BASH_JOBS, present, missing) \
bash_cv_termcap_lib=$(call ptx/ifdef, PTXCONF_BASH_CURSES, libncurses, libtermcap)
-BASH_AUTOCONF := \
+BASH_CONF_TOOL := autoconf
+BASH_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
$(GLOBAL_LARGE_FILE_OPTION) \
--without-bash-malloc \
diff --git a/rules/batctl.make b/rules/batctl.make
index 841355501..035fa42b1 100644
--- a/rules/batctl.make
+++ b/rules/batctl.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_BATCTL) += batctl
#
# Paths and names
#
-BATCTL_VERSION := 2017.1
-BATCTL_MD5 := e152ad369f57a3c9f9a7de5c430790fe
+BATCTL_VERSION := 2024.0
+BATCTL_MD5 := be148ec3f668bcf23837035c31bcc3ed
BATCTL := batctl-$(BATCTL_VERSION)
BATCTL_SUFFIX := tar.gz
BATCTL_URL := http://downloads.open-mesh.org/batman/stable/sources/batctl/$(BATCTL).$(BATCTL_SUFFIX)
diff --git a/rules/bayer2rgb3.make b/rules/bayer2rgb3.make
index 9a0d9b9b5..f7d45f654 100644
--- a/rules/bayer2rgb3.make
+++ b/rules/bayer2rgb3.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_BAYER2RGB3) += bayer2rgb3
#
# Paths and names
#
-BAYER2RGB3_VERSION := 0.4.1
-BAYER2RGB3_MD5 := 5362a93d4251eb012d38c1409af0182e
+BAYER2RGB3_VERSION := v0.6.0
+BAYER2RGB3_MD5 := e71f76727583a77302a86bdddefc9be1
BAYER2RGB3 := bayer2rgb3-$(BAYER2RGB3_VERSION)
-BAYER2RGB3_SUFFIX := zip
-BAYER2RGB3_URL := https://gitlab-ext.sigma-chemnitz.de/ensc/bayer2rgb/-/archive/master/bayer2rgb-master.zip
+BAYER2RGB3_SUFFIX := tar.bz2
+BAYER2RGB3_URL := https://gitlab-ext.sigma-chemnitz.de/ensc/bayer2rgb/-/archive/$(BAYER2RGB3_VERSION)/$(BAYER2RGB3).$(BAYER2RGB3_SUFFIX)
BAYER2RGB3_SOURCE := $(SRCDIR)/$(BAYER2RGB3).$(BAYER2RGB3_SUFFIX)
BAYER2RGB3_DIR := $(BUILDDIR)/$(BAYER2RGB3)
BAYER2RGB3_LICENSE := GPL-3.0-only
diff --git a/rules/bc.make b/rules/bc.make
index af8a0b1a4..c23cf0707 100644
--- a/rules/bc.make
+++ b/rules/bc.make
@@ -31,13 +31,11 @@ BC_LICENSE_FILES := \
# Prepare
# ----------------------------------------------------------------------------
-BC_PATH := PATH=$(CROSS_PATH)
-BC_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-BC_AUTOCONF := $(CROSS_AUTOCONF_USR)
+BC_CONF_TOOL := autoconf
+BC_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/bdwgc.in b/rules/bdwgc.in
new file mode 100644
index 000000000..b0fee1c49
--- /dev/null
+++ b/rules/bdwgc.in
@@ -0,0 +1,11 @@
+## SECTION=system_libraries
+
+config BDWGC
+ tristate
+ prompt "bdwgc"
+ select LIBATOMIC_OPS
+ help
+ A garbage collector for C and C++.
+ https://www.hboehm.info/gc/
+
+# vim: ft=kconfig noet tw=72 ts=8 sw=8
diff --git a/rules/bdwgc.make b/rules/bdwgc.make
new file mode 100644
index 000000000..021e4b5cc
--- /dev/null
+++ b/rules/bdwgc.make
@@ -0,0 +1,85 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Alexander Dahl <ada@thorsis.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_BDWGC) += bdwgc
+
+#
+# Paths and names
+#
+BDWGC_VERSION := 8.2.4
+BDWGC_MD5 := 8901a6ed29ac35842420054772ea3441
+BDWGC := gc-$(BDWGC_VERSION)
+BDWGC_SUFFIX := tar.gz
+BDWGC_URL := https://github.com/ivmai/bdwgc/releases/download/v$(BDWGC_VERSION)/$(BDWGC).$(BDWGC_SUFFIX)
+BDWGC_SOURCE := $(SRCDIR)/$(BDWGC).$(BDWGC_SUFFIX)
+BDWGC_DIR := $(BUILDDIR)/$(BDWGC)
+BDWGC_LICENSE := Boehm-GC
+BDWGC_LICENSE_FILES := \
+ file://README.QUICK;startline=1;endline=24;md5=798a33a333c0e8636ddeab552ac6090b \
+ file://README.md;startline=526;endline=575;md5=71aaf0a0f29b504d185ff4e9fc1d5858
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+BDWGC_CONF_TOOL := autoconf
+BDWGC_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --disable-emscripten-asyncify \
+ --enable-threads=posix \
+ --enable-parallel-mark \
+ --enable-thread-local-alloc \
+ --enable-threads-discovery \
+ --disable-cplusplus \
+ --enable-throw-bad-alloc-library \
+ --enable-gcj-support \
+ --disable-sigrt-signals \
+ --disable-gc-debug \
+ --enable-java-finalization \
+ --enable-atomic-uncollectable \
+ --disable-redirect-malloc \
+ --enable-disclaim \
+ --disable-large-config \
+ --disable-gc-assertions \
+ --disable-mmap \
+ --disable-munmap \
+ --enable-dynamic-loading \
+ --enable-register-main-static-data \
+ --disable-checksums \
+ --disable-werror \
+ --disable-single-obj-compilation \
+ --disable-gcov \
+ --disable-docs \
+ --enable-handle-fork \
+ --without-ecos \
+ --with-libatomic-ops=yes
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/bdwgc.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, bdwgc)
+ @$(call install_fixup, bdwgc,PRIORITY,optional)
+ @$(call install_fixup, bdwgc,SECTION,base)
+ @$(call install_fixup, bdwgc,AUTHOR,"Alexander Dahl <ada@thorsis.com>")
+ @$(call install_fixup, bdwgc,DESCRIPTION,missing)
+
+ @$(call install_lib, bdwgc, 0, 0, 0644, libcord)
+ @$(call install_lib, bdwgc, 0, 0, 0644, libgc)
+
+ @$(call install_finish, bdwgc)
+
+ @$(call touch)
+
+# vim: ft=make noet tw=72 ts=8 sw=8
diff --git a/rules/beep.in b/rules/beep.in
index 52abcd11e..6c9ea8532 100644
--- a/rules/beep.in
+++ b/rules/beep.in
@@ -1,7 +1,12 @@
-## SECTION=multimedia_sound
+## SECTION=staging
+## old section:
+### SECTION=multimedia_sound
config BEEP
tristate
prompt "beep"
help
Extended beep utility
+
+ STAGING: remove in PTXdist 2025.05.0
+ Unmaintained in PTXdist. Original upstream and URL are dead.
diff --git a/rules/berlios-can-utils.in b/rules/berlios-can-utils.in
index fa15c3636..b1ec974b7 100644
--- a/rules/berlios-can-utils.in
+++ b/rules/berlios-can-utils.in
@@ -49,6 +49,10 @@ config BERLIOS_CAN_UTILS_CANSEND
bool
prompt "cansend"
+config BERLIOS_CAN_UTILS_CANSEQUENCE
+ bool
+ prompt "cansequence"
+
config BERLIOS_CAN_UTILS_CANSNIFFER
bool
prompt "cansniffer"
@@ -97,21 +101,21 @@ config BERLIOS_CAN_UTILS_SLCANPTY
bool
prompt "slcanpty"
-config BERLIOS_CAN_UTILS_JSPY
+config BERLIOS_CAN_UTILS_J1939SPY
bool
- prompt "jspy"
+ prompt "j1939spy"
-config BERLIOS_CAN_UTILS_JSR
+config BERLIOS_CAN_UTILS_J1939SR
bool
- prompt "jsr"
+ prompt "j1939sr"
-config BERLIOS_CAN_UTILS_JACD
+config BERLIOS_CAN_UTILS_J1939ACD
bool
- prompt "jacd"
+ prompt "j1939acd"
-config BERLIOS_CAN_UTILS_JCAT
+config BERLIOS_CAN_UTILS_J1939CAT
bool
- prompt "jcat"
+ prompt "j1939cat"
config BERLIOS_CAN_UTILS_TESTJ1939
bool
diff --git a/rules/berlios-can-utils.make b/rules/berlios-can-utils.make
index 8cc51a40d..464166fea 100644
--- a/rules/berlios-can-utils.make
+++ b/rules/berlios-can-utils.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_BERLIOS_CAN_UTILS) += berlios-can-utils
#
# Paths and names
#
-BERLIOS_CAN_UTILS_VERSION := v2020.02.04
-BERLIOS_CAN_UTILS_MD5 := 5ca2e7b840bb5fbe8a30967e076dc16e
+BERLIOS_CAN_UTILS_VERSION := v2021.06.0
+BERLIOS_CAN_UTILS_MD5 := 6f4eb3739fb9179588fa2824889213bb
BERLIOS_CAN_UTILS := canutils-$(BERLIOS_CAN_UTILS_VERSION)
BERLIOS_CAN_UTILS_SUFFIX := tar.gz
BERLIOS_CAN_UTILS_URL := https://github.com/linux-can/can-utils/archive/$(BERLIOS_CAN_UTILS_VERSION).$(BERLIOS_CAN_UTILS_SUFFIX)
@@ -45,6 +45,7 @@ BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_CANGW) += /usr/bin/cangw
BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_CANLOGSERVER) += /usr/bin/canlogserver
BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_CANPLAYER) += /usr/bin/canplayer
BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_CANSEND) += /usr/bin/cansend
+BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_CANSEQUENCE) += /usr/bin/cansequence
BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_CANSNIFFER) += /usr/bin/cansniffer
BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_ISOTPDUMP) += /usr/bin/isotpdump
BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_ISOTPRECV) += /usr/bin/isotprecv
@@ -57,10 +58,10 @@ BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_LOG2LONG) += /usr/bin/log2lon
BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_SLCAN_ATTACH) += /usr/bin/slcan_attach
BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_SLCAND) += /usr/bin/slcand
BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_SLCANPTY) += /usr/bin/slcanpty
-BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_JSPY) += /usr/bin/jspy
-BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_JSR) += /usr/bin/jsr
-BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_JACD) += /usr/bin/jacd
-BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_JCAT) += /usr/bin/jcat
+BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_J1939SPY) += /usr/bin/j1939spy
+BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_J1939SR) += /usr/bin/j1939sr
+BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_J1939ACD) += /usr/bin/j1939acd
+BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_J1939CAT) += /usr/bin/j1939cat
BERLIOS_CAN_UTILS_INST-$(PTXCONF_BERLIOS_CAN_UTILS_TESTJ1939) += /usr/bin/testj1939
$(STATEDIR)/berlios-can-utils.targetinstall:
diff --git a/rules/bind.make b/rules/bind.make
index b547eeff0..18eac0eae 100644
--- a/rules/bind.make
+++ b/rules/bind.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_BIND) += bind
#
# Paths and names
#
-BIND_VERSION := 9.11.31
-BIND_MD5 := 40732ca6e4fcc9d022ab0f17b3e55b71
+BIND_VERSION := 9.11.37
+BIND_MD5 := 0a11e9596c46d6728fa3b0989ee75197
BIND := bind-$(BIND_VERSION)
BIND_SUFFIX := tar.gz
BIND_URL := https://ftp.isc.org/isc/bind9/$(BIND_VERSION)/$(BIND).$(BIND_SUFFIX)
@@ -25,7 +25,7 @@ BIND_LICENSE := MPL-2.0 AND ISC AND BSD-3-Clause AND BSD-2-Clause \
AND unknown AND JPNIC AND RSA-MD AND OpenSSL AND Apache-2.0
BIND_LICENSE_FILES := \
file://LICENSE;md5=f27a50d2e878867827842f2c60e30bfc \
- file://COPYRIGHT;md5=b88e7ca5f21908e1b2720169f6807cf6
+ file://COPYRIGHT;md5=89a97ebbf713f7125fe5c02223d3ae95
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/bing.in b/rules/bing.in
index 78327c537..8bda18561 100644
--- a/rules/bing.in
+++ b/rules/bing.in
@@ -9,11 +9,11 @@ config BING
Bing is a point-to-point bandwidth measurement
tool (hence the 'b'), based on ping.
- Bing determines the real (raw, as opposed to
+ Bing determines the real (raw, as opposed to
available or average) throughput on a link by
measuring ICMP echo requests' round trip times
- for different packet sizes at each end of the
+ for different packet sizes at each end of the
link.
See also:
- http://fgouget.free.fr/bing/bing_src-readme-1st.shtml
+ http://fgouget.free.fr/bing/bing_src-readme-1st.shtml
diff --git a/rules/binutils.make b/rules/binutils.make
index ca1080bc8..d38ab51c3 100644
--- a/rules/binutils.make
+++ b/rules/binutils.make
@@ -29,6 +29,7 @@ BINUTILS_DIR := $(BUILDDIR)/$(BINUTILS)
BINUTILS_CONF_ENV := \
$(CROSS_ENV) \
+ enable_gprofng=no \
host_configargs='$(strip \
--enable-targets=$(PTXCONF_GNU_TARGET) \
--disable-nls \
@@ -38,14 +39,21 @@ BINUTILS_CONF_ENV := \
#
# autoconf
#
-BINUTILS_AUTOCONF := \
+BINUTILS_CONF_TOOL := autoconf
+BINUTILS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--target=$(PTXCONF_GNU_TARGET) \
+ --with-system-zlib \
--disable-werror
BINUTILS_CFLAGS := \
-fPIC
+# overwrite install dir for libiberty when MULTIOSDIR evaluates to ../lib64
+BINUTILS_INSTALL_OPT := \
+ MAKE="make MULTIOSDIR=." \
+ install
+
# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
diff --git a/rules/blspec-entry.make b/rules/blspec-entry.make
index 1a222dff9..442159401 100644
--- a/rules/blspec-entry.make
+++ b/rules/blspec-entry.make
@@ -19,7 +19,7 @@ BLSPEC_ENTRY_VERSION := $(KERNEL_VERSION)
BLSPEC_ENTRY_TITLE := PTXdist - $(call remove_quotes,$(PTXCONF_PROJECT_VENDOR)-$(PTXCONF_PROJECT))
ifdef PTXCONF_BLSPEC_ENTRY_DEVICETREE
-BLSPEC_ENTRY_NAMES = $(basename $(notdir $(DTC_DTB)))
+BLSPEC_ENTRY_NAMES = $(basename $(notdir $(KERNEL_DTS)))
blspec/title = $(BLSPEC_ENTRY_TITLE) $(strip $(1))
blspec/devicetree = devicetree\t/boot/$(strip $(1)).dtb
else
@@ -30,11 +30,17 @@ endif
BLSPEC_ENTRY_LICENSE = ignore
ifdef PTXCONF_KERNEL_FIT
-BLSPEC_KERNEL_IMAGE = /boot/linux.fit
+BLSPEC_KERNEL_IMAGE = linux.fit
else
BLSPEC_KERNEL_IMAGE = $(KERNEL_IMAGE)
endif
+ifdef PTXCONF_BLSPEC_ENTRY_APPENDROOT
+BLSPEC_APPENDROOT = linux-appendroot\ttrue
+else
+BLSPEC_APPENDROOT =
+endif
+
$(STATEDIR)/blspec-entry.targetinstall:
@$(call targetinfo)
@@ -56,7 +62,9 @@ $(STATEDIR)/blspec-entry.targetinstall:
$(call install_replace, blspec-entry, /loader/entries/$(name).conf, \
@KERNEL@,'/boot/$(BLSPEC_KERNEL_IMAGE)')$(ptx/nl) \
$(call install_replace, blspec-entry, /loader/entries/$(name).conf, \
- @DEVICETREE@,'$(call blspec/devicetree,$(name))')$(ptx/nl))
+ @DEVICETREE@,'$(call blspec/devicetree,$(name))')$(ptx/nl) \
+ $(call install_replace, blspec-entry, /loader/entries/$(name).conf, \
+ @LINUXAPPENDROOT@,'$(BLSPEC_APPENDROOT)')$(ptx/nl))
@$(call install_finish,blspec-entry)
diff --git a/rules/bluez-qt.make b/rules/bluez-qt.make
index af65c2dbc..dc18a33bd 100644
--- a/rules/bluez-qt.make
+++ b/rules/bluez-qt.make
@@ -18,7 +18,9 @@ BLUEZ_QT_VERSION := 5.56.0
BLUEZ_QT_MD5 := 2e2a7b4b5a2efbb2acc9c48f9111291f
BLUEZ_QT := bluez-qt-$(BLUEZ_QT_VERSION)
BLUEZ_QT_SUFFIX := tar.xz
-BLUEZ_QT_URL := https://download.kde.org/stable/frameworks/$(basename $(BLUEZ_QT_VERSION))/$(BLUEZ_QT).$(BLUEZ_QT_SUFFIX)
+BLUEZ_QT_URL := \
+ https://download.kde.org/stable/frameworks/$(basename $(BLUEZ_QT_VERSION))/$(BLUEZ_QT).$(BLUEZ_QT_SUFFIX) \
+ https://download.kde.org/Attic/frameworks/$(basename $(BLUEZ_QT_VERSION))/$(BLUEZ_QT).$(BLUEZ_QT_SUFFIX)
BLUEZ_QT_SOURCE := $(SRCDIR)/$(BLUEZ_QT).$(BLUEZ_QT_SUFFIX)
BLUEZ_QT_DIR := $(BUILDDIR)/$(BLUEZ_QT)
BLUEZ_QT_LICENSE := LGPL-2.1-or-later
@@ -34,7 +36,7 @@ BLUEZ_QT_CONF_OPT := \
-DBUILD_QCH=OFF \
-DBUILD_TESTING=OFF \
-DECM_MKSPECS_INSTALL_DIR=/usr/lib/qt5/mkspecs \
- -DECM_DIR=$(PTXDIST_SYSROOT_HOST)/share/ECM/cmake/
+ -DECM_DIR=$(PTXDIST_SYSROOT_HOST)/usr/share/ECM/cmake/
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/bluez.in b/rules/bluez.in
index ec41835fc..03039be53 100644
--- a/rules/bluez.in
+++ b/rules/bluez.in
@@ -10,8 +10,6 @@ menuconfig BLUEZ
select UDEV
select LIBICAL # needed for --enable-obex
select READLINE if BLUEZ_CLIENT
- select PYGOBJECT if BLUEZ_INSTALL_TESTSCRIPTS
- select DBUS_PYTHON if BLUEZ_INSTALL_TESTSCRIPTS
help
Official Linux Bluetooth protocol stack.
For more information refer to <http://www.bluez.org>.
@@ -37,7 +35,7 @@ config BLUEZ_TOOLS
bool "install tools"
help
Install the following tools:
-
+
bccmd bluemoon btattach btmon hex2hcd l2ping l2test mpris-proxy
rctest
@@ -46,7 +44,7 @@ config BLUEZ_TOOLS_DEPRECATED
bool "install deprecated tools"
help
Install the following tools, which have been deprecated by upstream:
-
+
ciptool hciattach hciconfig hcidump hcitool rfcomm sdptool
config BLUEZ_CLIENT
@@ -56,7 +54,8 @@ config BLUEZ_CLIENT
config BLUEZ_INSTALL_TESTSCRIPTS
bool "install testscripts"
- depends on STAGING
+ # needs D-Bus python bindings
+ depends on BROKEN
help
Install test scripts that allow to set up bluetooth connections.
These scripts are installed to /usr/lib/bluez/test/.
diff --git a/rules/bluez.make b/rules/bluez.make
index 2378ec245..01f8075e9 100644
--- a/rules/bluez.make
+++ b/rules/bluez.make
@@ -16,8 +16,8 @@ PACKAGES-$(PTXCONF_BLUEZ) += bluez
#
# Paths and names
#
-BLUEZ_VERSION := 5.58
-BLUEZ_MD5 := cee47c57675be451dc37af73caa9fbe6
+BLUEZ_VERSION := 5.66
+BLUEZ_MD5 := 077aa6f2ffd5b44e830199d54d71338c
BLUEZ := bluez-$(BLUEZ_VERSION)
BLUEZ_SUFFIX := tar.gz
BLUEZ_URL := $(call ptx/mirror, KERNEL, bluetooth/$(BLUEZ).$(BLUEZ_SUFFIX))
diff --git a/rules/bonniexx.in b/rules/bonniexx.in
deleted file mode 100644
index 36928fece..000000000
--- a/rules/bonniexx.in
+++ /dev/null
@@ -1,12 +0,0 @@
-## SECTION=test_suites
-config BONNIEXX
- tristate
- prompt "bonnie++"
- select GCCLIBS_CXX
- help
- Hard drive bottleneck testing benchmark suite
-
- It is called Bonnie++ because it was based on the Bonnie program.
- This program also tests performance by creating large numbers
- of files.
-
diff --git a/rules/bonniexx.make b/rules/bonniexx.make
deleted file mode 100644
index b0c69be8b..000000000
--- a/rules/bonniexx.make
+++ /dev/null
@@ -1,64 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2004 by Robert Schwebel
-# 2009 by Marc Kleine-Budde <mkl@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_BONNIEXX) += bonniexx
-
-#
-# Paths and names
-#
-BONNIEXX_VERSION := 1.97.3
-BONNIEXX_MD5 := e4be8977e8f7e6d4375a8d1dadda8d9e
-BONNIEXX := bonnie++-$(BONNIEXX_VERSION)
-BONNIEXX_SUFFIX := tgz
-BONNIEXX_URL := http://www.coker.com.au/bonnie++/$(BONNIEXX).$(BONNIEXX_SUFFIX)
-BONNIEXX_SOURCE := $(SRCDIR)/$(BONNIEXX).$(BONNIEXX_SUFFIX)
-BONNIEXX_DIR := $(BUILDDIR)/$(BONNIEXX)
-BONNIEXX_LICENSE := GPL-2.0-only
-BONNIEXX_LICENSE_FILES := \
- file://copyright.txt;md5=cd4dde95a6b9d122f0a9150ae9cc3ee0
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-BONNIEXX_ENV := \
- $(CROSS_ENV) \
- bonnie_cv_sys_largefile=$(call ptx/yesno, PTXCONF_GLOBAL_LARGE_FILE)
-
-#
-# autoconf
-#
-BONNIEXX_CONF_TOOL := autoconf
-BONNIEXX_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --disable-stripping
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/bonniexx.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, bonniexx)
- @$(call install_fixup, bonniexx,PRIORITY,optional)
- @$(call install_fixup, bonniexx,SECTION,base)
- @$(call install_fixup, bonniexx,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, bonniexx,DESCRIPTION,missing)
-
- @$(call install_copy, bonniexx, 0, 0, 0755, -, /usr/sbin/bonnie++)
-
- @$(call install_finish, bonniexx)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/boost.in b/rules/boost.in
index eeef58615..095d22caf 100644
--- a/rules/boost.in
+++ b/rules/boost.in
@@ -12,7 +12,7 @@ menuconfig BOOST
select BZIP2 if BOOST_IOSTREAMS
select BZIP2_LIBBZ2 if BOOST_IOSTREAMS
select XZ if BOOST_IOSTREAMS
- select PYTHON if BOOST_PYTHON2
+ select ZSTD if BOOST_IOSTREAMS
select PYTHON3 if BOOST_PYTHON3
prompt "boost "
help
@@ -26,8 +26,8 @@ menuconfig BOOST
The boost team aims to establish "existing practice" and provide
reference implementations so that Boost libraries are suitable for
eventual standardization. Ten Boost libraries are already included in
- the C++ Standards Committee`s Library Technical Report ( TR1) and in
- the new C++11 Standard. C++11 also includes several more Boost libraries
+ the C++ Standards Committee`s Library Technical Report ( TR1) and in
+ the new C++11 Standard. C++11 also includes several more Boost libraries
in addition to those from TR1. More Boost libraries are proposed for TR2.
For details see the project homepage:
@@ -114,7 +114,6 @@ config BOOST_FIBER
config BOOST_FILESYSTEM
bool
select BOOST_LIBS
- select BOOST_SYSTEM
prompt "filesystem"
help
Boost filesystem library
@@ -138,6 +137,12 @@ config BOOST_GRAPH_PARALLEL
help
Boost graph_parallel library
+config BOOST_HEADERS
+ bool
+ prompt "headers"
+ help
+ boost headers library
+
config BOOST_IOSTREAMS
bool
select BOOST_LIBS
@@ -145,10 +150,15 @@ config BOOST_IOSTREAMS
help
Boost iostream library
+config BOOST_JSON
+ bool
+ prompt "json"
+ help
+ boost json library
+
config BOOST_LOCALE
bool
select BOOST_LIBS
- select BOOST_SYSTEM
prompt "locale"
help
Boost locale library
@@ -184,6 +194,12 @@ config BOOST_MPI
help
Boost MPI library
+config BOOST_NOWIDE
+ bool
+ prompt "nowide"
+ help
+ boost nowide library
+
config BOOST_PROGRAM_OPTIONS
bool
select BOOST_LIBS
@@ -213,13 +229,6 @@ config BOOST_SERIALIZATION
help
Boost serialization library
-config BOOST_SIGNALS
- bool
- select BOOST_LIBS
- prompt "signals"
- help
- Boost signals library
-
config BOOST_STACKTRACE
bool
select BOOST_LIBS
@@ -267,6 +276,14 @@ config BOOST_TYPE_ERASURE
select BOOST_SYSTEM
select BOOST_THREAD
prompt "type_erasure"
+ help
+ boost type_erasure library
+
+config BOOST_URL
+ bool
+ prompt "url"
+ help
+ boost url library
config BOOST_WAVE
bool
@@ -294,16 +311,10 @@ choice
help
Select this option if you don't want to build boost.python.
- config BOOST_PYTHON2
- bool
- prompt "python2"
- depends on STAGING
- select BOOST_PYTHON
- help
- Select this option if you want to use boost.python in combination with python2.
-
config BOOST_PYTHON3
bool
+ # fails to build with Python 3.11
+ depends on BROKEN
prompt "python3"
select BOOST_PYTHON
help
diff --git a/rules/boost.make b/rules/boost.make
index c18c290e8..3f4199e4b 100644
--- a/rules/boost.make
+++ b/rules/boost.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_BOOST) += boost
#
# Paths and names
#
-BOOST_VERSION := 1_67_0
-BOOST_MD5 := ced776cb19428ab8488774e1415535ab
+BOOST_VERSION := 1_83_0
+BOOST_MD5 := 406f0b870182b4eb17a23a9d8fce967d
BOOST := boost_$(BOOST_VERSION)
BOOST_SUFFIX := tar.bz2
BOOST_URL := $(call ptx/mirror, SF, boost/$(BOOST).$(BOOST_SUFFIX))
@@ -46,29 +46,32 @@ BOOST_LIBRARIES-$(PTXCONF_BOOST_FIBER) += fiber
BOOST_LIBRARIES-$(PTXCONF_BOOST_FILESYSTEM) += filesystem
BOOST_LIBRARIES-$(PTXCONF_BOOST_GRAPH) += graph
BOOST_LIBRARIES-$(PTXCONF_BOOST_GRAPH_PARALLEL) += graph_parallel
+BOOST_LIBRARIES-$(PTXCONF_BOOST_HEADERS) += headers
BOOST_LIBRARIES-$(PTXCONF_BOOST_IOSTREAMS) += iostreams
+BOOST_LIBRARIES-$(PTXCONF_BOOST_JSON) += json
BOOST_LIBRARIES-$(PTXCONF_BOOST_LOCALE) += locale
BOOST_LIBRARIES-$(PTXCONF_BOOST_LOG) += log
BOOST_LIBRARIES-$(PTXCONF_BOOST_MATH) += math
BOOST_LIBRARIES-$(PTXCONF_BOOST_MPI) += mpi
+BOOST_LIBRARIES-$(PTXCONF_BOOST_NOWIDE) += nowide
BOOST_LIBRARIES-$(PTXCONF_BOOST_PROGRAM_OPTIONS)+= program_options
BOOST_LIBRARIES-$(PTXCONF_BOOST_PYTHON) += python
BOOST_LIBRARIES-$(PTXCONF_BOOST_RANDOM) += random
BOOST_LIBRARIES-$(PTXCONF_BOOST_REGEX) += regex
BOOST_LIBRARIES-$(PTXCONF_BOOST_SERIALIZATION) += serialization
-BOOST_LIBRARIES-$(PTXCONF_BOOST_SIGNALS) += signals
BOOST_LIBRARIES-$(PTXCONF_BOOST_STACKTRACE) += stacktrace
BOOST_LIBRARIES-$(PTXCONF_BOOST_SYSTEM) += system
BOOST_LIBRARIES-$(PTXCONF_BOOST_TEST) += test
BOOST_LIBRARIES-$(PTXCONF_BOOST_THREAD) += thread
BOOST_LIBRARIES-$(PTXCONF_BOOST_TIMER) += timer
BOOST_LIBRARIES-$(PTXCONF_BOOST_TYPE_ERASURE) += type_erasure
+BOOST_LIBRARIES-$(PTXCONF_BOOST_URL) += url
BOOST_LIBRARIES-$(PTXCONF_BOOST_WAVE) += wave
-BOOST_PATH := PATH=$(CROSS_PATH)
BOOST_CONF_TOOL := NO
BOOST_CONF_OPT := \
--with-toolset=gcc \
+ --without-icu \
--prefix="$(PKGDIR)/$(BOOST)/usr"
BOOST_ABI := sysv
@@ -90,8 +93,9 @@ BOOST_JAM := \
$(BOOST_DIR)/b2 \
--ignore-site-config \
--user-config=user-config.jam \
+ --disable-icu \
-q \
- $$(if $$(filter 0,$$(PTXDIST_VERBOSE)),-d0) \
+ $(if $(filter 0,$(PTXDIST_VERBOSE)),-d0) \
--layout=system \
-sNO_BZIP2=0 \
-sZLIB_INCLUDE=$(SYSROOT)/usr/include \
@@ -129,16 +133,26 @@ ifdef PTXCONF_BOOST_MPI
endif
ifdef PTXCONF_BOOST_PYTHON3
- @echo "using python : $(PYTHON3_MAJORMINOR) : $(PTXDIST_SYSROOT_CROSS)/bin/python : $(SYSROOT)/usr/include/python$(PYTHON3_MAJORMINOR)m : $(SYSROOT)/usr/lib/python$(PYTHON3_MAJORMINOR) ;" >> $(BOOST_DIR)/user-config.jam
-endif
-ifdef PTXCONF_BOOST_PYTHON2
- @echo "using python : $(PYTHON_MAJORMINOR) : $(PTXDIST_SYSROOT_CROSS)/bin/python : $(SYSROOT)/usr/include/python$(PYTHON_MAJORMINOR)m : $(SYSROOT)/usr/lib/python$(PYTHON_MAJORMINOR) ;" >> $(BOOST_DIR)/user-config.jam
+ @echo "using python : $(PYTHON3_MAJORMINOR) : $(PTXDIST_SYSROOT_CROSS)/usr/bin/python : $(SYSROOT)/usr/include/python$(PYTHON3_MAJORMINOR) : $(SYSROOT)/usr/lib/python$(PYTHON3_MAJORMINOR) ;" >> $(BOOST_DIR)/user-config.jam
endif
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/boost.compile:
+ @$(call targetinfo)
+ @$(call world/execute, BOOST, $(BOOST_JAM) $(JAM_MAKE_OPT))
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
- @echo "all:" > $(BOOST_DIR)/Makefile
- @echo ' @$(BOOST_JAM) $(JAM_MAKE_OPT)' >> $(BOOST_DIR)/Makefile
- @echo "install:" >> $(BOOST_DIR)/Makefile
- @echo ' @$(BOOST_JAM) $(JAM_INSTALL_OPT)' >> $(BOOST_DIR)/Makefile
+$(STATEDIR)/boost.install:
+ @$(call targetinfo)
+ @$(call world/execute, BOOST, $(BOOST_JAM) $(JAM_INSTALL_OPT))
@$(call touch)
# ----------------------------------------------------------------------------
@@ -152,6 +166,7 @@ BOOST_INST_LIBRARIES := $(filter-out date_time,$(BOOST_LIBRARIES-y))
else
BOOST_INST_LIBRARIES := $(BOOST_LIBRARIES-y)
endif
+BOOST_INST_LIBRARIES := $(addsuffix *.so*,$(addprefix */libboost_,$(BOOST_INST_LIBRARIES)))
$(STATEDIR)/boost.targetinstall:
@$(call targetinfo)
@@ -163,7 +178,7 @@ ifdef PTXCONF_BOOST_LIBS
@$(call install_fixup, boost,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
@$(call install_fixup, boost,DESCRIPTION,missing)
- @$(call install_glob, boost, 0, 0, -, /usr/lib, */libboost*.so*)
+ @$(call install_glob, boost, 0, 0, -, /usr/lib, $(BOOST_INST_LIBRARIES))
@$(call install_finish, boost)
endif
diff --git a/rules/bridge-utils.make b/rules/bridge-utils.make
index c0721759d..3ba5ce191 100644
--- a/rules/bridge-utils.make
+++ b/rules/bridge-utils.make
@@ -15,10 +15,10 @@ PACKAGES-$(PTXCONF_BRIDGE_UTILS) += bridge-utils
#
# Paths and names
#
-BRIDGE_UTILS_VERSION := 1.6
-BRIDGE_UTILS_MD5 := f369e90e85e4bb46baa26a7b9d66b578
+BRIDGE_UTILS_VERSION := 1.7.1
+BRIDGE_UTILS_MD5 := 3e1fee4dc22cac5457c2f6ffb990a518
BRIDGE_UTILS := bridge-utils-$(BRIDGE_UTILS_VERSION)
-BRIDGE_UTILS_SUFFIX := tar.gz
+BRIDGE_UTILS_SUFFIX := tar.xz
BRIDGE_UTILS_URL := https://www.kernel.org/pub/linux/utils/net/bridge-utils/$(BRIDGE_UTILS).$(BRIDGE_UTILS_SUFFIX)
BRIDGE_UTILS_SOURCE := $(SRCDIR)/$(BRIDGE_UTILS).$(BRIDGE_UTILS_SUFFIX)
BRIDGE_UTILS_DIR := $(BUILDDIR)/$(BRIDGE_UTILS)
@@ -36,7 +36,7 @@ BRIDGE_UTILS_CONF_TOOL := autoconf
# Set with-linux-headers to something that doesn't exist to avoid the default
# path picking up a path from the build host.
-BRIDGE_UTILS_AUTOCONF := \
+BRIDGE_UTILS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-linux-headers=/this/path/must/not/exist
diff --git a/rules/brotli.in b/rules/brotli.in
new file mode 100644
index 000000000..a6b86905d
--- /dev/null
+++ b/rules/brotli.in
@@ -0,0 +1,8 @@
+## SECTION=system_libraries
+
+config BROTLI
+ tristate
+ select HOST_CMAKE
+ prompt "brotli"
+ help
+ library implementing brotli encoder and decoder
diff --git a/rules/brotli.make b/rules/brotli.make
new file mode 100644
index 000000000..e1da4fbc8
--- /dev/null
+++ b/rules/brotli.make
@@ -0,0 +1,62 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_BROTLI) += brotli
+
+#
+# Paths and names
+#
+BROTLI_VERSION := 1.1.0
+BROTLI_MD5 := 3a6a3dba82a3604792d3cb0bd41bca60
+BROTLI := brotli-$(BROTLI_VERSION)
+BROTLI_SUFFIX := tar.gz
+BROTLI_URL := https://github.com/google/brotli/archive/refs/tags/v$(BROTLI_VERSION).$(BROTLI_SUFFIX)
+BROTLI_SOURCE := $(SRCDIR)/$(BROTLI).$(BROTLI_SUFFIX)
+BROTLI_DIR := $(BUILDDIR)/$(BROTLI)
+BROTLI_LICENSE := MIT
+BROTLI_LICENSE_FILES := \
+ file://LICENSE;md5=941ee9cd1609382f946352712a319b4b
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# cmake
+#
+BROTLI_CONF_TOOL := cmake
+BROTLI_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -DBUILD_SHARED_LIBS=ON \
+ -DBUILD_TESTING=OFF
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/brotli.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, brotli)
+ @$(call install_fixup, brotli,PRIORITY,optional)
+ @$(call install_fixup, brotli,SECTION,base)
+ @$(call install_fixup, brotli,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, brotli,DESCRIPTION,missing)
+
+ @$(call install_lib, brotli, 0, 0, 0644, libbrotlicommon)
+ @$(call install_lib, brotli, 0, 0, 0644, libbrotlidec)
+ @$(call install_lib, brotli, 0, 0, 0644, libbrotlienc)
+
+ @$(call install_finish, brotli)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/bsdiff.make b/rules/bsdiff.make
index 22cd97c44..f561bc816 100644
--- a/rules/bsdiff.make
+++ b/rules/bsdiff.make
@@ -30,7 +30,7 @@ BSDIFF_LICENSE := BSD-2-Clause
#
# autoconf
#
-BSDIFF_AUTOCONF_CONF_TOOL := NO
+BSDIFF_CONF_TOOL := NO
BSDIFF_MAKE_ENV := $(CROSS_ENV) PREFIX=/usr
# ----------------------------------------------------------------------------
diff --git a/rules/bustle.make b/rules/bustle.make
index b5dd33560..d3e098891 100644
--- a/rules/bustle.make
+++ b/rules/bustle.make
@@ -27,7 +27,6 @@ BUSTLE_LICENSE := GPL-2.0-or-later AND LGPL-2.1-or-later
# Prepare
# ----------------------------------------------------------------------------
-BUSTLE_PATH := PATH=$(CROSS_PATH)
BUSTLE_MAKE_ENV := $(CROSS_ENV)
$(STATEDIR)/bustle.prepare:
diff --git a/rules/busybox.in b/rules/busybox.in
index 3f2116d4e..6bb60145d 100644
--- a/rules/busybox.in
+++ b/rules/busybox.in
@@ -11,7 +11,6 @@ menuconfig BUSYBOX
select PAM if GLOBAL_PAM
select BUSYBOX_PAM if GLOBAL_PAM
select LIBTIRPC if BUSYBOX_NEED_LIBTIRPC
- select BUSYBOX_PLATFORM_LINUX
select BUSYBOX_INSTALL_NO_USR
help
BusyBox is the Swiss Army Knife of embedded Linux. It is a
diff --git a/rules/busybox.make b/rules/busybox.make
index 46486dfe3..929f721c7 100644
--- a/rules/busybox.make
+++ b/rules/busybox.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_BUSYBOX) += busybox
#
# Paths and names
#
-BUSYBOX_VERSION := 1.31.1
-BUSYBOX_MD5 := 70913edaf2263a157393af07565c17f0
+BUSYBOX_VERSION := 1.36.1
+BUSYBOX_MD5 := 0fc591bc9f4e365dfd9ade0014f32561
BUSYBOX := busybox-$(BUSYBOX_VERSION)
BUSYBOX_SUFFIX := tar.bz2
BUSYBOX_URL := https://www.busybox.net/downloads/$(BUSYBOX).$(BUSYBOX_SUFFIX)
diff --git a/rules/c-ares.make b/rules/c-ares.make
index 2d2f55a61..9b9e6f6ed 100644
--- a/rules/c-ares.make
+++ b/rules/c-ares.make
@@ -14,15 +14,15 @@ PACKAGES-$(PTXCONF_C_ARES) += c-ares
#
# Paths and names
#
-C_ARES_VERSION := 1.15.0
-C_ARES_MD5 := d2391da274653f7643270623e822dff7
+C_ARES_VERSION := 1.19.0
+C_ARES_MD5 := 2668790bc92603e292d0fbcb25ded39c
C_ARES := c-ares-$(C_ARES_VERSION)
C_ARES_SUFFIX := tar.gz
-C_ARES_URL := http://c-ares.haxx.se/download/$(C_ARES).$(C_ARES_SUFFIX)
+C_ARES_URL := https://c-ares.org/download/$(C_ARES).$(C_ARES_SUFFIX)
C_ARES_SOURCE := $(SRCDIR)/$(C_ARES).$(C_ARES_SUFFIX)
C_ARES_DIR := $(BUILDDIR)/$(C_ARES)
C_ARES_LICENSE := MIT
-C_ARES_LICENSE_MD5 := file://LICENSE.md;md5=fb997454c8d62aa6a47f07a8cd48b006
+C_ARES_LICENSE_FILES := file://LICENSE.md;md5=fb997454c8d62aa6a47f07a8cd48b006
# ----------------------------------------------------------------------------
@@ -39,7 +39,6 @@ C_ARES_CONF_OPT := \
--enable-optimize \
--enable-warnings \
--disable-werror \
- --disable-curldebug \
--enable-symbol-hiding \
--disable-expose-statics \
--disable-code-coverage \
diff --git a/rules/ca-certificates.make b/rules/ca-certificates.make
index 4199b94d6..c55559a3b 100644
--- a/rules/ca-certificates.make
+++ b/rules/ca-certificates.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_CA_CERTIFICATES) += ca-certificates
#
# Paths and names
#
-CA_CERTIFICATES_VERSION := NSS_3_60_1_RTM
-CA_CERTIFICATES_MD5 := e754eded722beba13b7ea6573d0f3801
+CA_CERTIFICATES_VERSION := NSS_3_98_RTM
+CA_CERTIFICATES_MD5 := c5dc443a649e31ebdb26243bbb5855ad
CA_CERTIFICATES := ca-certificates-$(CA_CERTIFICATES_VERSION)
CA_CERTIFICATES_SUFFIX := txt
CA_CERTIFICATES_URL := https://hg.mozilla.org/projects/nss/raw-file/$(CA_CERTIFICATES_VERSION)/lib/ckfw/builtins/certdata.$(CA_CERTIFICATES_SUFFIX)
diff --git a/rules/cairo.in b/rules/cairo.in
index 7089dec7b..a2c678a43 100644
--- a/rules/cairo.in
+++ b/rules/cairo.in
@@ -2,19 +2,15 @@
menuconfig CAIRO
tristate
+ select HOST_MESON
select GCCLIBS_GCC_S
select XORG_LIB_XEXT if CAIRO_XLIB
select XORG_LIB_XRENDER if CAIRO_XLIB
- select ZLIB if CAIRO_PS || CAIRO_PDF
+ select ZLIB if CAIRO_ZLIB
select GLIB if CAIRO_GOBJECT
select FREETYPE if CAIRO_FREETYPE
select FONTCONFIG if CAIRO_FREETYPE
select LIBPNG if CAIRO_PNG
- select MESALIB if CAIRO_GL || CAIRO_GLES2
- select MESALIB_OPENGL if CAIRO_GL
- select MESALIB_GLES2 if CAIRO_GLES2
- select MESALIB_GLX if CAIRO_GLX
- select MESALIB_EGL if CAIRO_EGL
select LIBXCB if CAIRO_XCB
select PIXMAN
@@ -30,6 +26,9 @@ if CAIRO
config CAIRO_GOBJECT
bool
+config CAIRO_ZLIB
+ bool
+
comment "surface backends"
config CAIRO_XLIB
@@ -40,21 +39,14 @@ config CAIRO_XCB
bool
prompt "xcb"
-config CAIRO_GL
- bool
- depends on !CAIRO_GLES2
- prompt "OpenGL"
-
-config CAIRO_GLES2
- bool
- prompt "OpenGLESv2"
-
config CAIRO_PS
bool
+ select CAIRO_ZLIB
prompt "PostScript"
config CAIRO_PDF
bool
+ select CAIRO_ZLIB
prompt "PDF"
config CAIRO_SVG
@@ -72,18 +64,9 @@ config CAIRO_PNG
bool
prompt "PNG support"
-if CAIRO_GL || CAIRO_GLES2
-
-config CAIRO_GLX
- bool
- depends on !CAIRO_EGL && CAIRO_GL
- prompt "GLX support"
-
-config CAIRO_EGL
+config CAIRO_SCRIPT
bool
- depends on CAIRO_GL || CAIRO_GLES2
- prompt "EGL support"
-
-endif
+ select CAIRO_ZLIB
+ prompt "script surface"
endif
diff --git a/rules/cairo.make b/rules/cairo.make
index cfaa74518..5cdfb2807 100644
--- a/rules/cairo.make
+++ b/rules/cairo.make
@@ -14,76 +14,49 @@ PACKAGES-$(PTXCONF_CAIRO) += cairo
#
# Paths and names
#
-CAIRO_VERSION := 1.16.0
-CAIRO_MD5 := f19e0353828269c22bd72e271243a552
+CAIRO_VERSION := 1.18.0
+CAIRO_MD5 := 3f0685fbadc530606f965b9645bb51d9
CAIRO := cairo-$(CAIRO_VERSION)
CAIRO_SUFFIX := tar.xz
CAIRO_URL := http://cairographics.org/releases/cairo-$(CAIRO_VERSION).$(CAIRO_SUFFIX)
CAIRO_SOURCE := $(SRCDIR)/$(CAIRO).$(CAIRO_SUFFIX)
CAIRO_DIR := $(BUILDDIR)/$(CAIRO)
-CAIRO_LICENSE := LGPL-2.1-only AND MPL-1.1
+CAIRO_LICENSE := LGPL-2.1-only OR MPL-1.1
+CAIRO_LICENSE_FILES := \
+ file://COPYING;md5=e73e999e0c72b5ac9012424fa157ad77 \
+ file://COPYING-LGPL-2.1;md5=c9bb0ee6dbe833915b94063d594c4bfc \
+ file://COPYING-MPL-1.1;md5=bfe1f75d606912a4111c90743d6c7325
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
+CAIRO_MESON_CROSS_FILE := $(call ptx/get-alternative, config/meson, cairo-cross-file.meson)
+
#
-# autoconf
+# meson
#
-CAIRO_CONF_TOOL := autoconf
+CAIRO_CONF_TOOL := meson
CAIRO_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --enable-shared \
- --disable-static \
- --disable-gtk-doc \
- --disable-gtk-doc-html \
- --disable-gtk-doc-pdf \
- $(GLOBAL_LARGE_FILE_OPTION) \
- --enable-atomic \
- --disable-gcov \
- --disable-valgrind \
- --$(call ptx/endis, PTXCONF_CAIRO_XLIB)-xlib \
- --$(call ptx/endis, PTXCONF_CAIRO_XLIB)-xlib-xrender \
- --$(call ptx/endis, PTXCONF_CAIRO_XCB)-xcb \
- --disable-xlib-xcb \
- --$(call ptx/endis, PTXCONF_CAIRO_XCB)-xcb-shm \
- --disable-qt \
- --disable-quartz \
- --disable-quartz-font \
- --disable-quartz-image \
- --disable-win32 \
- --disable-win32-font \
- --disable-os2 \
- --disable-beos \
- --disable-drm \
- --disable-gallium \
- --$(call ptx/endis, PTXCONF_CAIRO_PNG)-png \
- --$(call ptx/endis, PTXCONF_CAIRO_GL)-gl \
- --$(call ptx/endis, PTXCONF_CAIRO_GLES2)-glesv2 \
- --disable-glesv3 \
- --disable-cogl \
- --disable-directfb \
- --disable-vg \
- --$(call ptx/endis, PTXCONF_CAIRO_EGL)-egl \
- --$(call ptx/endis, PTXCONF_CAIRO_GLX)-glx \
- --disable-wgl \
- --disable-script \
- --$(call ptx/endis, PTXCONF_CAIRO_FREETYPE)-ft \
- --$(call ptx/endis, PTXCONF_CAIRO_FREETYPE)-fc \
- --$(call ptx/endis, PTXCONF_CAIRO_PS)-ps \
- --$(call ptx/endis, PTXCONF_CAIRO_PDF)-pdf \
- --$(call ptx/endis, PTXCONF_CAIRO_SVG)-svg \
- --disable-test-surfaces \
- --disable-tee \
- --disable-xml \
- --enable-pthread \
- --$(call ptx/endis, PTXCONF_CAIRO_GOBJECT)-gobject \
- --disable-full-testing \
- --disable-trace \
- --disable-interpreter \
- --disable-symbol-lookup \
- --$(call ptx/endis, PTXCONF_HAS_HARDFLOAT)-some-floating-point \
- --$(call ptx/wwo, PTXCONF_CAIRO_XLIB)-x
+ $(CROSS_MESON_USR) \
+ -Ddwrite=disabled \
+ -Dfontconfig=$(call ptx/endis, PTXCONF_CAIRO_FREETYPE)d \
+ -Dfreetype=$(call ptx/endis, PTXCONF_CAIRO_FREETYPE)d \
+ -Dglib=$(call ptx/endis, PTXCONF_CAIRO_GOBJECT)d \
+ -Dgtk2-utils=disabled \
+ -Dgtk_doc=false \
+ -Dpng=$(call ptx/endis, PTXCONF_CAIRO_PNG)d \
+ -Dquartz=disabled \
+ -Dspectre=disabled \
+ -Dsymbol-lookup=disabled \
+ -Dtee=disabled \
+ -Dtests=disabled \
+ -Dxcb=$(call ptx/endis, PTXCONF_CAIRO_XCB)d \
+ -Dxlib=$(call ptx/endis, PTXCONF_CAIRO_XLIB)d \
+ -Dxlib-xcb=disabled \
+ -Dzlib=$(call ptx/endis, PTXCONF_CAIRO_ZLIB)d \
+ \
+ --cross-file $(CAIRO_MESON_CROSS_FILE)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/cairomm.make b/rules/cairomm.make
index 4575f005f..6d73ab0b5 100644
--- a/rules/cairomm.make
+++ b/rules/cairomm.make
@@ -27,13 +27,11 @@ CAIROMM_DIR := $(BUILDDIR)/$(CAIROMM)
# Prepare
# ----------------------------------------------------------------------------
-CAIROMM_PATH := PATH=$(CROSS_PATH)
-CAIROMM_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-CAIROMM_AUTOCONF := \
+CAIROMM_CONF_TOOL := autoconf
+CAIROMM_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-documentation \
--disable-tests
diff --git a/rules/calibrator.make b/rules/calibrator.make
index a7ac35645..67b858588 100644
--- a/rules/calibrator.make
+++ b/rules/calibrator.make
@@ -21,12 +21,13 @@ CALIBRATOR_SUFFIX := tar.bz2
CALIBRATOR_URL := http://www.pengutronix.de/software/ptxdist/temporary-src/$(CALIBRATOR).$(CALIBRATOR_SUFFIX)
CALIBRATOR_SOURCE := $(SRCDIR)/$(CALIBRATOR).$(CALIBRATOR_SUFFIX)
CALIBRATOR_DIR := $(BUILDDIR)/$(CALIBRATOR)
+CALIBRATOR_LICENSE := custom
+CALIBRATOR_LICENSE_FILES := file://calibrator.c;md5=8f7790f3cb58345fcb862c4ceab869ce;startline=6;endline=37
# ----------------------------------------------------------------------------
# Compile
# ----------------------------------------------------------------------------
-CALIBRATOR_PATH := PATH=$(CROSS_PATH)
CALIBRATOR_MAKE_ENV := $(CROSS_ENV) LDLIBS=-lm
CALIBRATOR_MAKE_OPT := calibrator
diff --git a/rules/canfestival.in b/rules/canfestival.in
index bbb104794..1716c209c 100644
--- a/rules/canfestival.in
+++ b/rules/canfestival.in
@@ -2,11 +2,10 @@
config CANFESTIVAL
tristate
- select HOST_SYSTEM_PYTHON
+ select HOST_SYSTEM_PYTHON3
prompt "canfestival"
help
CanFestival is an OpenSource CANOpen framework, licensed with GPLv2 and
LGPLv2. For details, see the project web page:
http://www.canfestival.org/
-
diff --git a/rules/canfestival.make b/rules/canfestival.make
index 9dc97a989..320303c64 100644
--- a/rules/canfestival.make
+++ b/rules/canfestival.make
@@ -17,12 +17,11 @@ endif
#
# Paths and names
#
-# Taken from https://hg.beremiz.org/CanFestival-3/rev/8bfe0ac00cdb
CANFESTIVAL_VERSION := 3+hg20180126.794
-CANFESTIVAL_MD5 := c97bca1c4a81a17b1a75a1f8d068b2b3
+CANFESTIVAL_MD5 := c97bca1c4a81a17b1a75a1f8d068b2b3 00042e5396db4403b3feb43acc2aa1e5
CANFESTIVAL := canfestival-$(CANFESTIVAL_VERSION)
CANFESTIVAL_SUFFIX := tar.gz
-CANFESTIVAL_URL := https://hg.beremiz.org/CanFestival-3/archive/8bfe0ac00cdb.$(CANFESTIVAL_SUFFIX)
+CANFESTIVAL_URL := https://hg.beremiz.org/canfestival/archive/8bfe0ac00cdb.$(CANFESTIVAL_SUFFIX)
CANFESTIVAL_SOURCE := $(SRCDIR)/$(CANFESTIVAL).$(CANFESTIVAL_SUFFIX)
CANFESTIVAL_DIR := $(BUILDDIR)/$(CANFESTIVAL)
CANFESTIVAL_LICENSE := LGPL-2.1-or-later
@@ -30,6 +29,13 @@ CANFESTIVAL_LICENSE_FILES := \
file://LICENCE;md5=085e7fb76fb3fa8ba9e9ed0ce95a43f9 \
file://COPYING;startline=17;endline=25;md5=2964e968dd34832b27b656f9a0ca2dbf
+CANFESTIVAL_GNOSIS_SOURCE := $(CANFESTIVAL_DIR)/objdictgen/Gnosis_Utils-current.tar.gz
+CANFESTIVAL_GNOSIS_DIR := $(CANFESTIVAL_DIR)/objdictgen/gnosis
+CANFESTIVAL_GNOSIS_STRIP_LEVEL := 2
+CANFESTIVAL_GNOSIS_SRC_FILTER := */gnosis
+
+CANFESTIVAL_PARTS += CANFESTIVAL_GNOSIS
+
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
@@ -61,7 +67,7 @@ $(STATEDIR)/canfestival.install.post:
@$(call targetinfo)
@$(call world/install.post, CANFESTIVAL)
@for file in objdictedit objdictgen; do \
- ln -sf $(PTXDIST_SYSROOT_TARGET)/usr/bin/"$${file}" $(PTXDIST_SYSROOT_HOST)/bin; \
+ ln -sf $(PTXDIST_SYSROOT_TARGET)/usr/bin/"$${file}" $(PTXDIST_SYSROOT_HOST)/usr/bin; \
done
@$(call touch)
diff --git a/rules/casync.make b/rules/casync.make
index 7989f78dc..61d7ff361 100644
--- a/rules/casync.make
+++ b/rules/casync.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_CASYNC) += casync
#
# Paths and names
#
-CASYNC_VERSION := a8f6c841ccfe59ca8c68aad64df170b64042dce8
-CASYNC_MD5 := 38cf3c9e1be9ac60243031538024aa01
+CASYNC_VERSION := 0efa7abffe5fffbde8c457d3c8fafbdde0bb6e4f
+CASYNC_MD5 := 9b28d76355acfb56ba6ddfcb95951c13
CASYNC := casync-$(CASYNC_VERSION)
CASYNC_SUFFIX := tar.gz
CASYNC_URL := https://github.com/systemd/casync/archive/$(CASYNC_VERSION).$(CASYNC_SUFFIX)
@@ -33,16 +33,15 @@ CASYNC_CONF_TOOL := meson
CASYNC_CONF_OPT := \
$(CROSS_MESON_USR) \
-Dfuse=$(call ptx/truefalse,PTXCONF_CASYNC_FUSE) \
- -Dselinux=$(call ptx/truefalse,PTXCONF_GLOBAL_SELINUX) \
- -Dudev=$(call ptx/truefalse,PTXCONF_CASYNC_UDEV) \
- -Dudevrulesdir=/usr/lib/udev/rules.d \
- -Dman=false \
- -Dlibzstd=disabled \
-Dliblzma=$(call ptx/endis,PTXCONF_CASYNC_LZMA)d \
-Dlibz=$(call ptx/endis,PTXCONF_CASYNC_ZLIB)d \
- -Doss-fuzz=false \
+ -Dlibzstd=disabled \
-Dllvm-fuzz=false \
- -Dbashcompletiondir=no
+ -Dman=false \
+ -Doss-fuzz=false \
+ -Dselinux=$(call ptx/truefalse,PTXCONF_GLOBAL_SELINUX) \
+ -Dudev=$(call ptx/truefalse,PTXCONF_CASYNC_UDEV) \
+ -Dudevrulesdir=/usr/lib/udev/rules.d
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/catch2.make b/rules/catch2.make
index c195b3d13..17020f587 100644
--- a/rules/catch2.make
+++ b/rules/catch2.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_CATCH2) += catch2
#
# Paths and names
#
-CATCH2_VERSION := 2.13.4
-CATCH2_MD5 := bd2deea6e8580c2f55feb325419ee107
+CATCH2_VERSION := 2.13.10
+CATCH2_MD5 := 7a4dd2fd14fb9f46198eb670ac7834b7
CATCH2 := Catch2-$(CATCH2_VERSION)
CATCH2_SUFFIX := tar.gz
CATCH2_URL := https://github.com/catchorg/Catch2/archive/v$(CATCH2_VERSION).$(CATCH2_SUFFIX)
diff --git a/rules/cbmbasic.in b/rules/cbmbasic.in
deleted file mode 100644
index 3714afed0..000000000
--- a/rules/cbmbasic.in
+++ /dev/null
@@ -1,9 +0,0 @@
-## SECTION=scripting_languages
-
-config CBMBASIC
- tristate
- prompt "cbmbasic"
- help
- This application is a recompiled version of the original
- Commodore 64 binary.
-
diff --git a/rules/cbmbasic.make b/rules/cbmbasic.make
deleted file mode 100644
index a83a23128..000000000
--- a/rules/cbmbasic.make
+++ /dev/null
@@ -1,65 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2008 by Robert Schwebel <r.schwebel@pengutronix.de>
-# 2011 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_CBMBASIC) += cbmbasic
-
-#
-# Paths and names
-#
-CBMBASIC_VERSION := 1.0
-CBMBASIC_MD5 := ecd8cd832470ea85368c11d609274c31
-CBMBASIC := cbmbasic
-CBMBASIC_SUFFIX := zip
-CBMBASIC_URL := http://www.weihenstephan.org/~michaste/pagetable/recompiler/$(CBMBASIC).$(CBMBASIC_SUFFIX)
-CBMBASIC_SOURCE := $(SRCDIR)/$(CBMBASIC).$(CBMBASIC_SUFFIX)
-CBMBASIC_DIR := $(BUILDDIR)/$(CBMBASIC)-$(CBMBASIC_VERSION)
-CBMBASIC_STRIP_LEVEL := 0
-CBMBASIC_LICENSE := BSD-2-Clause
-CBMBASIC_LICENSE_FILES := file://cbmbasic.c;md5=14cd8a3b22d4aed06eac3c5b1f965a95;startline=1;endline=25
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-CBMBASIC_CONF_TOOL := NO
-CBMBASIC_MAKE_OPT := $(CROSS_ENV_PROGS)
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/cbmbasic.install:
- @$(call targetinfo)
- install -D -m755 $(CBMBASIC_DIR)/cbmbasic \
- $(CBMBASIC_PKGDIR)/usr/bin/cbmbasic
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/cbmbasic.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, cbmbasic)
- @$(call install_fixup, cbmbasic,PRIORITY,optional)
- @$(call install_fixup, cbmbasic,SECTION,base)
- @$(call install_fixup, cbmbasic,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, cbmbasic,DESCRIPTION,missing)
-
- @$(call install_copy, cbmbasic, 0, 0, 0755, -, /usr/bin/cbmbasic)
-
- @$(call install_finish, cbmbasic)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/cereal.in b/rules/cereal.in
new file mode 100644
index 000000000..b33f2e4cc
--- /dev/null
+++ b/rules/cereal.in
@@ -0,0 +1,8 @@
+## SECTION=system_libraries
+
+config CEREAL
+ tristate
+ select HOST_CMAKE
+ prompt "cereal"
+ help
+ C++11 library for serialization
diff --git a/rules/cereal.make b/rules/cereal.make
new file mode 100644
index 000000000..ed73dffc5
--- /dev/null
+++ b/rules/cereal.make
@@ -0,0 +1,45 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_CEREAL) += cereal
+
+#
+# Paths and names
+#
+CEREAL_VERSION := 1.3.0
+CEREAL_MD5 := 4342e811f245403646c4175258f413f1
+CEREAL := cereal-$(CEREAL_VERSION)
+CEREAL_SUFFIX := tar.gz
+CEREAL_URL := https://github.com/USCiLab/cereal/archive/refs/tags/v$(CEREAL_VERSION).$(CEREAL_SUFFIX)
+CEREAL_SOURCE := $(SRCDIR)/$(CEREAL).$(CEREAL_SUFFIX)
+CEREAL_DIR := $(BUILDDIR)/$(CEREAL)
+CEREAL_LICENSE := BSD-3-Clause
+CEREAL_LICENSE_FILES := \
+ file://LICENSE;md5=e612690af2f575dfd02e2e91443cea23
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# cmake
+#
+CEREAL_CONF_TOOL := cmake
+CEREAL_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -DCLANG_USE_LIBCPP=OFF \
+ -DJUST_INSTALL_CEREAL=ON \
+ -DSKIP_PERFORMANCE_COMPARISON=ON \
+ -DSKIP_PORTABILITY_TEST=ON \
+ -DTHREAD_SAFE=OFF \
+ -DWITH_WERROR=OFF
+
+# vim: syntax=make
diff --git a/rules/chrony.make b/rules/chrony.make
index 4435b8e97..5b320d4a4 100644
--- a/rules/chrony.make
+++ b/rules/chrony.make
@@ -15,11 +15,11 @@ PACKAGES-$(PTXCONF_CHRONY) += chrony
#
# Paths and names
#
-CHRONY_VERSION := 3.5
-CHRONY_MD5 := 5f66338bc940a9b51eede8f391e7bed3
+CHRONY_VERSION := 4.5
+CHRONY_MD5 := fa50d026df54f9919e6a37fae1258c61
CHRONY := chrony-$(CHRONY_VERSION)
CHRONY_SUFFIX := tar.gz
-CHRONY_URL := http://download.tuxfamily.org/chrony/$(CHRONY).$(CHRONY_SUFFIX)
+CHRONY_URL := https://chrony-project.org/releases/$(CHRONY).$(CHRONY_SUFFIX)
CHRONY_SOURCE := $(SRCDIR)/$(CHRONY).$(CHRONY_SUFFIX)
CHRONY_DIR := $(BUILDDIR)/$(CHRONY)
CHRONY_LICENSE := GPL-2.0-only AND RSA-MD
@@ -54,7 +54,7 @@ CHRONY_CONF_OPT := \
--disable-phc \
$(call ptx/ifdef, PTXCONF_CHRONY_PPS_REFCLK,,--disable-pps) \
$(call ptx/ifdef, PTXCONF_GLOBAL_IPV6,,--disable-ipv6) \
- --with-user=chrony \
+ --with-user=$(call ptx/ifdef, PTXCONF_INITMETHOD_SYSTEMD,chrony,root) \
$(call ptx/ifdef, PTXCONF_CHRONY_SECCOMP,--enable-scfilter,) \
$(call ptx/ifdef, PTXCONF_CHRONY_SECCOMP,,--without-seccomp)
diff --git a/rules/cifs-utils.make b/rules/cifs-utils.make
index 6bac34a83..20556391e 100644
--- a/rules/cifs-utils.make
+++ b/rules/cifs-utils.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_CIFS_UTILS) += cifs-utils
#
# Paths and names
#
-CIFS_UTILS_VERSION := 6.12
-CIFS_UTILS_MD5 := b49b10692bcae7f28669173a472077dd
+CIFS_UTILS_VERSION := 7.0
+CIFS_UTILS_MD5 := 518431bf43f23e6aacd97e80e2060df7
CIFS_UTILS := cifs-utils-$(CIFS_UTILS_VERSION)
CIFS_UTILS_SUFFIX := tar.bz2
CIFS_UTILS_URL := https://ftp.samba.org/pub/linux-cifs/cifs-utils/$(CIFS_UTILS).$(CIFS_UTILS_SUFFIX)
@@ -41,6 +41,7 @@ CIFS_UTILS_CONF_OPT := \
--disable-cifsidmap \
--disable-cifsacl \
--disable-smbinfo \
+ --disable-pythontools \
--disable-pam \
--disable-systemd \
--disable-man \
diff --git a/rules/ckermit.in b/rules/ckermit.in
index 56d75080f..43efbae2f 100644
--- a/rules/ckermit.in
+++ b/rules/ckermit.in
@@ -10,4 +10,4 @@ config CKERMIT
select HOST_CKERMIT
help
Columbia Univ 'kermit' terminal program: Basic file transfer &
- terminal control.
+ terminal control.
diff --git a/rules/ckermit.make b/rules/ckermit.make
index e983803c1..ecf1df5a7 100644
--- a/rules/ckermit.make
+++ b/rules/ckermit.make
@@ -35,18 +35,26 @@ CKERMIT_CONF_TOOL := NO
# Compile
# ----------------------------------------------------------------------------
-CKERMIT_MAKEVARS := \
+CKERMIT_MAKE_OPT := \
xermit \
KTARGET=linuxa \
prefix=/usr \
CC=$(CROSS_CC) \
CC2=$(CROSS_CC) \
- WART=$(PTXDIST_SYSROOT_HOST)/bin/wart \
+ WART=$(PTXDIST_SYSROOT_HOST)/usr/bin/wart \
CFLAGS='$(CROSS_CPPFLAGS) $(CROSS_CFLAGS) -O2 -g -DLINUX -DFNFLOAT -DCK_POSIX_SIG -DCK_NEWTERM -DTCPSOCKET -DLINUXFSSTND -DNOCOTFMC -DPOSIX -DUSE_STRERROR -DCK_NCURSES -DHAVE_PTMX' \
LNKFLAGS='$(CROSS_LDFLAGS)' \
LIBS='-lncurses -lutil -lresolv -lcrypt -lm'
# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+CKERMIT_INSTALL_OPT := \
+ prefix=/usr \
+ install
+
+# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
diff --git a/rules/classpath.in b/rules/classpath.in
deleted file mode 100644
index 271a91728..000000000
--- a/rules/classpath.in
+++ /dev/null
@@ -1,13 +0,0 @@
-## SECTION=bytecode_engines
-
-config CLASSPATH
- tristate
- prompt "classpath"
- select GCCLIBS_GCC_S
- select HOST_SYSTEM_JDK
- select HOST_GETTEXT
- help
- GNU Classpath, Essential Libraries for Java, is a GNU project to create
- free core class libraries for use with virtual machines and compilers
- for the java programming language.
-
diff --git a/rules/classpath.make b/rules/classpath.make
deleted file mode 100644
index 188bb3c59..000000000
--- a/rules/classpath.make
+++ /dev/null
@@ -1,171 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2009 by Robert Schwebel <r.schwebel@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-ifndef PTXCONF_ARCH_ARM64
-PACKAGES-$(PTXCONF_CLASSPATH) += classpath
-endif
-
-#
-# Paths and names
-#
-CLASSPATH_VERSION := 0.99
-CLASSPATH_MD5 := 0ae1571249172acd82488724a3b8acb4
-CLASSPATH := classpath-$(CLASSPATH_VERSION)
-CLASSPATH_SUFFIX := tar.gz
-CLASSPATH_URL := $(call ptx/mirror, GNU, classpath/$(CLASSPATH).$(CLASSPATH_SUFFIX))
-CLASSPATH_SOURCE := $(SRCDIR)/$(CLASSPATH).$(CLASSPATH_SUFFIX)
-CLASSPATH_DIR := $(BUILDDIR)/$(CLASSPATH)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-CLASSPATH_PATH := PATH=$(CROSS_PATH)
-CLASSPATH_ENV := \
- $(CROSS_ENV) \
- JAVAC=$(PTXCONF_SETUP_JAVA_SDK)/bin/javac \
- JAVA=jamvm \
- CLASSPATH=$(PTXCONF_SETUP_JAVA_SDK)/jre/lib \
- ac_cv_lib_magic_magic_open=no \
- ac_cv_prog_java_works=yes \
- ac_cv_prog_javac_is_gcj=no
-
-# JAVA must point to the java binary on the target, not on the host
-# This is used by the scripts in tools/*
-
-#
-# autoconf
-#
-CLASSPATH_AUTOCONF := \
- $(CROSS_AUTOCONF_USR) \
- --enable-option-checking \
- --disable-collections \
- --enable-jni \
- --enable-default-preferences-peer=file \
- --disable-gconf-peer \
- --disable-gstreamer-peer \
- --disable-Werror \
- --disable-xmlj \
- --disable-alsa \
- --disable-dssi \
- --disable-gtk-peer \
- --disable-qt-peer \
- --disable-plugin \
- --disable-gmp \
- --disable-gjdoc \
- --enable-regen-headers \
- --enable-regen-gjdoc-parser \
- --disable-tool-wrappers \
- --enable-static \
- --enable-shared \
- --disable-fast-install \
- --enable-libtool-lock \
- --disable-rpath \
- --disable-maintainer-mode \
- --disable-debug \
- --enable-load-library \
- --disable-java-lang-system-explicit-initialization \
- --disable-examples \
- --enable-tools \
- --enable-portable-native-sync \
- --disable-local-sockets \
- --with-gnu-ld \
- --with-pic \
- --without-x \
- --with-glibj=zip \
- --with-gjdoc=no \
- --without-libiconv-prefix
-
-#
-# FIXME:
-#
-# --enable-default-preferences-peer=<gconf|file|memory|FQCN>
-# --enable-default-toolkit (?)
-# --with-native-libdir sets the installation directory for native libraries
-# default='${libdir}/${PACKAGE}'
-# --with-glibj-dir sets the installation directory for glibj.zip
-# default='${libdir}/${PACKAGE}'
-# --with-antlr-jar=file Use ANTLR from the specified jar file
-# --with-tags[=TAGS] include additional configurations [automatic]
-# --with-javah specify path or name of a javah-like program
-# --with-vm-classes specify path to VM override source files
-# --with-ecj-jar=ABS.PATH specify jar file containing the Eclipse Java
-# Compiler
-# --with-jar=PATH define to use a jar style tool
-# --with-jay=DIR|PATH Regenerate the parsers with jay
-# --with-glibj-zip=ABS.PATH
-# use prebuilt glibj.zip class library
-# --with-escher=ABS.PATH specify path to escher dir or JAR for X peers
-#
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/classpath.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, classpath)
- @$(call install_fixup, classpath,PRIORITY,optional)
- @$(call install_fixup, classpath,SECTION,base)
- @$(call install_fixup, classpath,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, classpath,DESCRIPTION,missing)
-
-
- @for i in \
- /usr/bin/grmid \
- /usr/bin/gjavah \
- /usr/bin/gtnameserv \
- /usr/bin/grmiregistry \
- /usr/bin/gjar \
- /usr/bin/gjarsigner \
- /usr/bin/grmic \
- /usr/bin/gnative2ascii \
- /usr/bin/gappletviewer \
- /usr/bin/gkeytool \
- /usr/bin/gserialver \
- /usr/bin/gorbd \
- ;do \
- $(call install_copy, classpath, 0, 0, 0755, -, $$i); \
- done
-
- @$(call install_copy, classpath, 0, 0, 0644, -, /usr/share/classpath/glibj.zip)
- @$(call install_copy, classpath, 0, 0, 0644, -, /usr/share/classpath/tools.zip)
-
- @$(call install_lib, classpath, 0, 0, 0644, classpath/libjavautil)
- @$(call install_lib, classpath, 0, 0, 0644, classpath/libjavalangmanagement)
- @$(call install_lib, classpath, 0, 0, 0644, classpath/libjavaio)
- @$(call install_lib, classpath, 0, 0, 0644, classpath/libjavalang)
- @$(call install_lib, classpath, 0, 0, 0644, classpath/libjavanet)
- @$(call install_lib, classpath, 0, 0, 0644, classpath/libjavalangreflect)
- @$(call install_lib, classpath, 0, 0, 0644, classpath/libjavanio)
-
- @$(call install_link, classpath, libjavautil.so.0.0.0, /usr/lib/classpath/libjavautil.so)
- @$(call install_link, classpath, libjavalangmanagement.so.0.0.0, /usr/lib/classpath/libjavalangmanagement.so)
- @$(call install_link, classpath, libjavaio.so.0.0.0, /usr/lib/classpath/libjavaio.so)
- @$(call install_link, classpath, libjavalang.so.0.0.0, /usr/lib/classpath/libjavalang.so)
- @$(call install_link, classpath, libjavanet.so.0.0.0, /usr/lib/classpath/libjavanet.so)
- @$(call install_link, classpath, libjavalangreflect.so.0.0.0, /usr/lib/classpath/libjavalangreflect.so)
- @$(call install_link, classpath, libjavanio.so.0.0.0, /usr/lib/classpath/libjavanio.so)
-
- @$(call install_copy, classpath, 0, 0, 0644, -, /usr/lib/security/classpath.security)
- @$(call install_copy, classpath, 0, 0, 0644, -, /usr/lib/logging.properties)
-
-ifdef PTXCONF_PRELINK
- @$(call install_alternative, classpath, 0, 0, 0644, \
- /etc/prelink.conf.d/classpath)
-endif
-
- @$(call install_finish, classpath)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/cog.in b/rules/cog.in
index 81313c636..47651073b 100644
--- a/rules/cog.in
+++ b/rules/cog.in
@@ -3,12 +3,11 @@
menuconfig COG
tristate
prompt "cog "
- select HOST_CMAKE
- select HOST_NINJA
+ select HOST_MESON
+ select DBUS
select WAYLAND_PROTOCOLS
select WPEWEBKIT
select WPEBACKEND_FDO
- select DBUS if COG_REMOTE_DBUS_SYSTEM_BUS
help
Cog launcher and webapp container.
@@ -20,7 +19,6 @@ config COG_REMOTE_DBUS_SYSTEM_BUS
config COG_COGCTL
bool
- select COG_REMOTE_DBUS_SYSTEM_BUS
prompt "Install cogctl"
endif
diff --git a/rules/cog.make b/rules/cog.make
index 3fd9f929a..da6560d82 100644
--- a/rules/cog.make
+++ b/rules/cog.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_COG) += cog
#
# Paths and names
#
-COG_VERSION := 0.8.1
-COG_MD5 := 21664fb04c9149dea6d68e13e6074276
+COG_VERSION := 0.18.3
+COG_MD5 := e457de5b5ac8994ae9971c0a5a22b8a2
COG := cog-$(COG_VERSION)
COG_SUFFIX := tar.xz
COG_URL := https://wpewebkit.org/releases/$(COG).$(COG_SUFFIX)
@@ -31,21 +31,21 @@ COG_LICENSE_FILES := file://COPYING;md5=bf1229cd7425b302d60cdb641b0ce5fb
#
# cmake
#
-COG_CONF_TOOL := cmake
+COG_CONF_TOOL := meson
COG_CONF_OPT := \
- $(CROSS_CMAKE_USR) \
- -G Ninja \
- -DCOG_APPID= \
- -DCOG_BUILD_PROGRAMS=ON \
- -DCOG_DBUS_OWN_USER= \
- -DCOG_DBUS_SYSTEM_BUS=$(call ptx/onoff,PTXCONF_COG_REMOTE_DBUS_SYSTEM_BUS) \
- -DCOG_HOME_URI=https://ptxdist.org/ \
- -DCOG_PLATFORM_DRM=OFF \
- -DCOG_PLATFORM_FDO=ON \
- -DCOG_USE_WEBKITGTK=OFF \
- -DCOG_WESTON_DIRECT_DISPLAY=OFF \
- -DINSTALL_MAN_PAGES=OFF \
- -DWAYLAND_PROTOCOLS=$(PTXDIST_SYSROOT_TARGET)/usr/share/wayland-protocols
+ $(CROSS_MESON_USR) \
+ -Dcog_appid=com.igalia.Cog \
+ -Dcog_dbus_control=$(call ptx/ifdef, PTXCONF_COG_REMOTE_DBUS_SYSTEM_BUS,system,user) \
+ -Dcog_dbus_system_owner= \
+ -Dcog_home_uri=https://ptxdist.org/ \
+ -Ddocumentation=false \
+ -Dmanpages=false \
+ -Dplatforms=wayland \
+ -Dplugin_path=/usr/lib/cog/modules \
+ -Dprograms=true \
+ -Dwayland_weston_content_protection=false \
+ -Dwayland_weston_direct_display=false \
+ -Dwpe_api=2.0
# ----------------------------------------------------------------------------
# Target-Install
@@ -61,7 +61,7 @@ $(STATEDIR)/cog.targetinstall:
@$(call install_fixup, cog,DESCRIPTION,"WPE launcher and webapp container")
@$(call install_copy, cog, 0, 0, 0755, -, /usr/bin/cog)
- @$(call install_lib, cog, 0, 0, 0644, libcogplatform-fdo)
+ @$(call install_lib, cog, 0, 0, 0644, cog/modules/libcogplatform-wl)
@$(call install_lib, cog, 0, 0, 0644, libcogcore)
ifdef PTXCONF_COG_REMOTE_DBUS_SYSTEM_BUS
diff --git a/rules/collectd.make b/rules/collectd.make
index b3e72bf8a..f67a8f47f 100644
--- a/rules/collectd.make
+++ b/rules/collectd.make
@@ -18,7 +18,7 @@ PACKAGES-$(PTXCONF_COLLECTD) += collectd
COLLECTD_VERSION := 5.8.1
COLLECTD := collectd-$(COLLECTD_VERSION)
COLLECTD_SUFFIX := tar.bz2
-COLLECTD_URL := https://collectd.org/files/${COLLECTD}.${COLLECTD_SUFFIX}
+COLLECTD_URL := https://storage.googleapis.com/collectd-tarballs/${COLLECTD}.${COLLECTD_SUFFIX}
COLLECTD_MD5 := bfce96c42cede5243028510bcc57c1e6
COLLECTD_DIR := $(BUILDDIR)/$(COLLECTD)
COLLECTD_SOURCE := $(SRCDIR)/$(COLLECTD).$(COLLECTD_SUFFIX)
diff --git a/rules/connman.in b/rules/connman.in
index 93d867a4b..a051e66f7 100644
--- a/rules/connman.in
+++ b/rules/connman.in
@@ -10,7 +10,6 @@ menuconfig CONNMAN
select IPTABLES
select READLINE if CONNMAN_CLIENT
select POLKIT if CONNMAN_POLKIT
- select DBUS_PYTHON if CONNMAN_TESTS && RUNTIME
select WPA_SUPPLICANT if CONNMAN_WIFI && RUNTIME
select WPA_SUPPLICANT_CTRL_IFACE_DBUS if CONNMAN_WIFI
select BUSYBOX_START_STOP_DAEMON if CONNMAN_STARTSCRIPT && RUNTIME
@@ -66,7 +65,8 @@ config CONNMAN_CLIENT
config CONNMAN_TESTS
bool
- depends on STAGING
+ # needs D-Bus python bindings
+ depends on BROKEN
prompt "install test programs"
config CONNMAN_STARTSCRIPT
diff --git a/rules/connman.make b/rules/connman.make
index d6eed8aa8..54131c539 100644
--- a/rules/connman.make
+++ b/rules/connman.make
@@ -112,7 +112,7 @@ CONNMAN_TESTS := \
$(STATEDIR)/connman.install:
@$(call targetinfo)
- @$(call install, CONNMAN)
+ @$(call world/install, CONNMAN)
ifdef PTXCONF_CONNMAN_TESTS
@$(foreach test, $(CONNMAN_TESTS), \
install -D -m 755 "$(CONNMAN_DIR)/test/$(test)" \
@@ -179,7 +179,7 @@ endif
ifdef PTXCONF_CONNMAN_TESTS
@$(foreach test, $(CONNMAN_TESTS), \
$(call install_copy, connman, 0, 0, 0755, -, \
- /usr/sbin/cm-$(test));)
+ /usr/sbin/cm-$(test))$(ptx/nl))
endif
@$(call install_finish, connman)
diff --git a/rules/coreutils.in b/rules/coreutils.in
index d24bbb949..8be872056 100644
--- a/rules/coreutils.in
+++ b/rules/coreutils.in
@@ -302,6 +302,10 @@ comment "busybox' mknod is selected!"
config COREUTILS_TSORT
bool
prompt "tsort"
+ depends on !BUSYBOX_TSORT || ALLYES
+
+comment "busybox' tsort is selected!"
+ depends on BUSYBOX_TSORT
config COREUTILS_MKTEMP
bool
diff --git a/rules/coreutils.make b/rules/coreutils.make
index e34c39d74..17495b41a 100644
--- a/rules/coreutils.make
+++ b/rules/coreutils.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_COREUTILS) += coreutils
#
# Paths and names
#
-COREUTILS_VERSION := 8.32
-COREUTILS_MD5 := 022042695b7d5bcf1a93559a9735e668
+COREUTILS_VERSION := 9.4
+COREUTILS_MD5 := 459e9546074db2834eefe5421f250025
COREUTILS := coreutils-$(COREUTILS_VERSION)
COREUTILS_SUFFIX := tar.xz
COREUTILS_URL := $(call ptx/mirror, GNU, coreutils/$(COREUTILS).$(COREUTILS_SUFFIX))
@@ -28,29 +28,6 @@ COREUTILS_LICENSE_FILES := file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464
# Prepare
# ----------------------------------------------------------------------------
-# --enable-install-program=PROG_LIST
-# install the programs in PROG_LIST (comma-separated,
-# default: none)
-# --enable-no-install-program=PROG_LIST
-# do NOT install the programs in PROG_LIST
-# (comma-separated, default: arch,hostname,su)
-# --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib
-# --without-libiconv-prefix don't search for libiconv in includedir and libdir
-# --with-libpth-prefix[=DIR] search for libpth in DIR/include and DIR/lib
-# --without-libpth-prefix don't search for libpth in includedir and libdir
-# --without-included-regex
-# don't compile regex; this is the default on systems
-# with recent-enough versions of the GNU C Library
-# (use with caution on other systems).
-# --with-packager String identifying the packager of this software
-# --with-packager-version Packager-specific version information
-# --with-packager-bug-reports
-# Packager info for bug reports (URL/e-mail/...)
-# --without-gmp do not use the GNU MP library for arbitrary
-# precision calculation (default: use it if available)
-# --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib
-# --without-libintl-prefix don't search for libintl in includedir and libdir
-
COREUTILS_INST- =
COREUTILS_INST-y =
COREUTILS_INST-$(PTXCONF_COREUTILS_BASE64) += base64
@@ -166,19 +143,21 @@ COREUTILS_CONF_OPT := \
--disable-acl \
--disable-assert \
--disable-rpath \
- --disable-libsmack \
--disable-xattr \
+ --$(call ptx/endis, PTXCONF_INITMETHOD_SYSTEMD)-systemd \
+ --disable-libsmack \
--disable-libcap \
- --disable-gcc-warnings \
--disable-single-binary \
--disable-single-binary-exceptions \
+ --disable-gcc-warnings \
--enable-no-install-program=$(subst $(space),$(comma),$(strip $(COREUTILS_INST-))) \
--disable-nls \
+ --$(call ptx/endis, PTXCONF_GLIBC_Y2038)-year2038 \
--without-linux-crypto \
--without-openssl \
+ --without-libgmp \
--$(call ptx/wwo, PTXCONF_GLOBAL_SELINUX)-selinux \
- --with-tty-group=tty \
- --without-gmp
+ --with-tty-group=tty
COREUTILS_MAKE_OPT := \
man1_MANS=
diff --git a/rules/cpputest.in b/rules/cpputest.in
new file mode 100644
index 000000000..b2e7292d6
--- /dev/null
+++ b/rules/cpputest.in
@@ -0,0 +1,7 @@
+## SECTION=test_suites
+
+config CPPUTEST
+ tristate
+ prompt "cpputest"
+ help
+ CppUTest unit test framework
diff --git a/rules/cpputest.make b/rules/cpputest.make
new file mode 100644
index 000000000..cc57b1f9e
--- /dev/null
+++ b/rules/cpputest.make
@@ -0,0 +1,56 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Roland Hieber <rhi@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_CPPUTEST) += cpputest
+
+#
+# Paths and names
+#
+CPPUTEST_VERSION := 3.8
+CPPUTEST_MD5 := fc34eab33c08e8dcd83698988e9a33c5 e8fdbbb5dd37d32d65919f240f984905
+CPPUTEST := cpputest-$(CPPUTEST_VERSION)
+CPPUTEST_SUFFIX := tar.gz
+CPPUTEST_URL := https://github.com/cpputest/cpputest/releases/download/v$(CPPUTEST_VERSION)/$(CPPUTEST).$(CPPUTEST_SUFFIX)
+CPPUTEST_SOURCE := $(SRCDIR)/$(CPPUTEST).$(CPPUTEST_SUFFIX)
+CPPUTEST_DIR := $(BUILDDIR)/$(CPPUTEST)
+CPPUTEST_LICENSE := BSD-3-Clause
+CPPUTEST_LICENSE_FILES := file://COPYING;md5=ce5d5f1fe02bcd1343ced64a06fd4177
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+CPPUTEST_CONF_TOOL := autoconf
+CPPUTEST_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --enable-std-c \
+ --enable-std-cpp \
+ --enable-std-cpp11 \
+ --enable-cpputest-flags \
+ --enable-memory-leak-detection \
+ --enable-extensions \
+ --enable-longlong \
+ --enable-generate-map-file \
+ --enable-coverage
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/cpputest.targetinstall:
+ @$(call targetinfo)
+ @# cpputest is a static library only
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/crda.in b/rules/crda.in
index b0008e7f5..48d952555 100644
--- a/rules/crda.in
+++ b/rules/crda.in
@@ -1,12 +1,26 @@
## SECTION=networking
-config CRDA
+menuconfig CRDA
tristate
select LIBNL3
select OPENSSL
- prompt "crda"
+ select HOST_SYSTEM_PYTHON3
+ prompt "crda "
help
CRDA acts as the udev helper for communication between the kernel and
userspace for regulatory compliance. It relies on nl80211 for communication.
CRDA is intended to be run only through udev communication from the kernel.
The user should never have to run it manually except if debugging udev issues.
+
+if CRDA
+
+config CRDA_ONLY_REGULATORY_DB
+ bool
+ prompt "Install only regulatory db"
+ help
+ CRDA is a legacy option for kernels older than 4.15.
+ Newer kernels can use the regulatory db as a firmware file,
+ without external help.
+ If enabled, the CRDA package only installs the regulatory.db file.
+
+endif
diff --git a/rules/crda.make b/rules/crda.make
index 9cbb7af93..0929e26da 100644
--- a/rules/crda.make
+++ b/rules/crda.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_CRDA) += crda
#
# Paths and names
#
-CRDA_VERSION := 3.18
-CRDA_MD5 := 0431fef3067bf503dfb464069f06163a
+CRDA_VERSION := 4.15
+CRDA_MD5 := 30797103dfaae807b6ece1a695518dc1
CRDA := crda-$(CRDA_VERSION)
-CRDA_SUFFIX := tar.xz
-CRDA_URL := $(call ptx/mirror, KERNEL, ../software/network/crda/$(CRDA).$(CRDA_SUFFIX))
+CRDA_SUFFIX := tar.gz
+CRDA_URL := https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/crda.git/snapshot/$(CRDA).$(CRDA_SUFFIX)
CRDA_SOURCE := $(SRCDIR)/$(CRDA).$(CRDA_SUFFIX)
CRDA_DIR := $(BUILDDIR)/$(CRDA)
CRDA_LICENSE := ISC AND copyleft-next-0.3.0
@@ -26,30 +26,17 @@ CRDA_LICENSE_FILES := \
file://LICENSE;md5=ef8b69b43141352d821fd66b64ff0ee7 \
file://copyleft-next-0.3.0;md5=8743a2c359037d4d329a31e79eabeffe
-CRDA_REGDB_VERSION := 2019.06.03
-CRDA_REGDB_MD5 := e16f223ec2ecb4937b1a8ef9ce8dda99
+CRDA_REGDB_VERSION := 2023.05.03
+CRDA_REGDB_MD5 := 16009b1266a1d2ae5093e14b3eea7f05
CRDA_REGDB := wireless-regdb-$(CRDA_REGDB_VERSION)
CRDA_REGDB_SUFFIX := tar.gz
CRDA_REGDB_URL := \
https://www.kernel.org/pub/software/network/wireless-regdb/$(CRDA_REGDB).$(CRDA_REGDB_SUFFIX)
CRDA_REGDB_SOURCE := $(SRCDIR)/$(CRDA_REGDB).$(CRDA_REGDB_SUFFIX)
-$(CRDA_REGDB_SOURCE) := CRDA_REGDB
CRDA_REGDB_DIR := $(CRDA_DIR)
CRDA_REGDB_STRIP_LEVEL := 0
-CRDA_SOURCES += $(CRDA_REGDB_SOURCE)
-
-# ----------------------------------------------------------------------------
-# Extract
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/crda.extract:
- @$(call targetinfo)
- @$(call clean, $(CRDA_DIR))
- @$(call extract, CRDA)
- @$(call extract, CRDA_REGDB)
- @$(call patchin, CRDA)
- @$(call touch)
+CRDA_PARTS += CRDA_REGDB
# ----------------------------------------------------------------------------
# Compile
@@ -64,6 +51,7 @@ CRDA_MAKE_ENV := \
RUNTIME_PUBKEY_ONLY=1
CRDA_MAKE_OPT := all_noverify
+CRDA_CFLAGS := -Wno-error=deprecated-declarations
# ----------------------------------------------------------------------------
# Install
@@ -97,6 +85,7 @@ $(STATEDIR)/crda.targetinstall:
@$(call install_fixup, crda,AUTHOR,"Jan Luebbe <jlu@pengutronix.de>")
@$(call install_fixup, crda,DESCRIPTION,missing)
+ifndef PTXCONF_CRDA_ONLY_REGULATORY_DB
@$(call install_copy, crda, 0, 0, 0755, -, /usr/sbin/crda)
@$(call install_copy, crda, 0, 0, 0755, -, /usr/sbin/regdbdump)
@$(call install_copy, crda, 0, 0, 0644, -, \
@@ -107,6 +96,8 @@ $(STATEDIR)/crda.targetinstall:
/usr/lib/crda/pubkeys)
@$(call install_alternative, crda, 0, 0, 0644, \
/usr/lib/crda/regulatory.bin)
+endif
+
@$(call install_alternative, crda, 0, 0, 0644, \
/lib/firmware/regulatory.db)
@$(call install_alternative, crda, 0, 0, 0644, \
diff --git a/rules/cross-dummy-strip.make b/rules/cross-dummy-strip.make
index 39a2c7656..b337d9d4a 100644
--- a/rules/cross-dummy-strip.make
+++ b/rules/cross-dummy-strip.make
@@ -15,7 +15,7 @@ CROSS_DUMMY_STRIP_LICENSE := ignore
$(STATEDIR)/cross-dummy-strip.install:
@$(call targetinfo)
- install -D -m 755 $(PTXDIST_TOPDIR)/scripts/dummy-strip.sh $(PTXDIST_SYSROOT_CROSS)/bin/strip
+ install -D -m 755 $(PTXDIST_TOPDIR)/scripts/dummy-strip.sh $(PTXDIST_SYSROOT_CROSS)/usr/bin/strip
@$(call touch)
# vim: syntax=make
diff --git a/rules/cross-nasm.make b/rules/cross-nasm.make
index 258d73af0..c84e97d18 100644
--- a/rules/cross-nasm.make
+++ b/rules/cross-nasm.make
@@ -15,9 +15,9 @@ CROSS_PACKAGES-$(PTXCONF_CROSS_NASM) += cross-nasm
#
# Paths and names
#
-CROSS_NASM_VERSION := 2.15
+CROSS_NASM_VERSION := 2.16.01
ifdef PTXCONF_ARCH_X86
-CROSS_NASM_MD5 := 986015a82980f5719e1d56108d26256b
+CROSS_NASM_MD5 := d755ba0d16f94616c2907f8cab7c748b
CROSS_NASM := nasm-$(CROSS_NASM_VERSION)
CROSS_NASM_SUFFIX := tar.xz
CROSS_NASM_URL := http://www.nasm.us/pub/nasm/releasebuilds/$(CROSS_NASM_VERSION)/$(CROSS_NASM).$(CROSS_NASM_SUFFIX)
@@ -37,6 +37,8 @@ CROSS_NASM_LICENSE_FILES := \
CROSS_NASM_CONF_TOOL := autoconf
CROSS_NASM_INSTALL_OPT := INSTALLROOT="$(CROSS_NASM_PKGDIR)" install
+else
+CROSS_NASM_LICENSE := ignore
endif
# vim: syntax=make
diff --git a/rules/cross-pkg-config-wrapper.in b/rules/cross-pkg-config-wrapper.in
index 573b9e899..ffe8120e8 100644
--- a/rules/cross-pkg-config-wrapper.in
+++ b/rules/cross-pkg-config-wrapper.in
@@ -3,7 +3,7 @@
config CROSS_PKG_CONFIG_WRAPPER
bool
default y
- select HOST_PKG_CONFIG
+ select HOST_PKGCONF
help
This is a wrapper for pkg-config which has at least
a bit of support for sysroot/destdir.
diff --git a/rules/cross-pkg-config-wrapper.make b/rules/cross-pkg-config-wrapper.make
index 71637803e..e5b17265d 100644
--- a/rules/cross-pkg-config-wrapper.make
+++ b/rules/cross-pkg-config-wrapper.make
@@ -23,9 +23,9 @@ CROSS_PKG_CONFIG_WRAPPER_SCRIPT = \
$(STATEDIR)/cross-pkg-config-wrapper.install:
@$(call targetinfo)
@ln -svf $(CROSS_PKG_CONFIG_WRAPPER_SCRIPT) \
- $(PTXDIST_SYSROOT_CROSS)/bin/$(COMPILER_PREFIX)pkg-config
+ $(PTXDIST_SYSROOT_CROSS)/usr/bin/$(COMPILER_PREFIX)pkg-config
@ln -svf $(CROSS_PKG_CONFIG_WRAPPER_SCRIPT) \
- $(PTXDIST_SYSROOT_CROSS)/bin/pkg-config
+ $(PTXDIST_SYSROOT_CROSS)/usr/bin/pkg-config
@$(call touch)
# vim: syntax=make
diff --git a/rules/cryptodev.in b/rules/cryptodev.in
index 7a231340e..f59d8f58c 100644
--- a/rules/cryptodev.in
+++ b/rules/cryptodev.in
@@ -8,4 +8,4 @@ config CRYPTODEV
Cryptodev-linux is a device that allows access to Linux kernel
cryptographic drivers; thus allowing of userspace applications
to take advantage of hardware accelerators. Its API is
- compatible with OpenBSD's cryptodev userspace API (/dev/crypto).
+ compatible with OpenBSD's cryptodev userspace API (/dev/crypto).
diff --git a/rules/cryptodev.make b/rules/cryptodev.make
index 42ac15f3c..40e3c0a3b 100644
--- a/rules/cryptodev.make
+++ b/rules/cryptodev.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_CRYPTODEV) += cryptodev
#
# Paths and names and versions
#
-CRYPTODEV_VERSION := 1.11
-CRYPTODEV_MD5 := 9ea9c7d7b6865e7752e6055a5d082825
+CRYPTODEV_VERSION := 1.13
+CRYPTODEV_MD5 := 503d684f193edb7a923fee07aed01a32
CRYPTODEV := cryptodev-linux-$(CRYPTODEV_VERSION)
CRYPTODEV_SUFFIX := tar.gz
CRYPTODEV_URL := \
@@ -23,6 +23,7 @@ CRYPTODEV_URL := \
CRYPTODEV_SOURCE := $(SRCDIR)/$(CRYPTODEV).$(CRYPTODEV_SUFFIX)
CRYPTODEV_DIR := $(BUILDDIR)/$(CRYPTODEV)
CRYPTODEV_LICENSE := GPL-2.0
+CRYPTODEV_DEVPKG := NO
ifdef PTXCONF_CRYPTODEV
$(STATEDIR)/kernel.targetinstall.post: $(STATEDIR)/cryptodev.targetinstall
@@ -40,6 +41,9 @@ CRYPTODEV_CONF_TOOL := NO
# Compile
# ----------------------------------------------------------------------------
+CRYPTODEV_WRAPPER_ACCEPT_PATHS = \
+ $(KERNEL_DIR)
+
CRYPTODEV_MAKE_OPT = \
$(KERNEL_MODULE_OPT) \
KERNEL_DIR=$(KERNEL_DIR) \
diff --git a/rules/cryptsetup.make b/rules/cryptsetup.make
index e8311f801..6e14cab8a 100644
--- a/rules/cryptsetup.make
+++ b/rules/cryptsetup.make
@@ -14,14 +14,17 @@ PACKAGES-$(PTXCONF_CRYPTSETUP) += cryptsetup
#
# Paths and names
#
-CRYPTSETUP_VERSION := 2.3.6
-CRYPTSETUP_MD5 := 504d1ab22cbc4d1a59a8d8c7ee5ed3bf
-CRYPTSETUP := cryptsetup-$(CRYPTSETUP_VERSION)
-CRYPTSETUP_SUFFIX := tar.xz
-CRYPTSETUP_URL := https://www.kernel.org/pub/linux/utils/cryptsetup/v$(basename $(CRYPTSETUP_VERSION))/$(CRYPTSETUP).$(CRYPTSETUP_SUFFIX)
-CRYPTSETUP_SOURCE := $(SRCDIR)/$(CRYPTSETUP).$(CRYPTSETUP_SUFFIX)
-CRYPTSETUP_DIR := $(BUILDDIR)/$(CRYPTSETUP)
-CRYPTSETUP_LICENSE := GPL-2.0-or-later
+CRYPTSETUP_VERSION := 2.6.0
+CRYPTSETUP_MD5 := 8b67da403a2515dc75d40c42e8196e4e
+CRYPTSETUP := cryptsetup-$(CRYPTSETUP_VERSION)
+CRYPTSETUP_SUFFIX := tar.xz
+CRYPTSETUP_URL := https://www.kernel.org/pub/linux/utils/cryptsetup/v$(basename $(CRYPTSETUP_VERSION))/$(CRYPTSETUP).$(CRYPTSETUP_SUFFIX)
+CRYPTSETUP_SOURCE := $(SRCDIR)/$(CRYPTSETUP).$(CRYPTSETUP_SUFFIX)
+CRYPTSETUP_DIR := $(BUILDDIR)/$(CRYPTSETUP)
+CRYPTSETUP_LICENSE := GPL-2.0-or-later AND LGPL-2.0-or-later
+CRYPTSETUP_LICENSE_FILES := \
+ file://COPYING;md5=32107dd283b1dfeb66c9b3e6be312326 \
+ file://COPYING.LGPL;md5=1960515788100ce5f9c98ea78a65dc52
# ----------------------------------------------------------------------------
# Prepare
@@ -34,16 +37,20 @@ CRYPTSETUP_LICENSE := GPL-2.0-or-later
CRYPTSETUP_CONF_TOOL := autoconf
CRYPTSETUP_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
- --disable-rpath \
+ --disable-asciidoc \
--enable-keyring \
$(GLOBAL_LARGE_FILE_OPTION) \
+ --$(call ptx/endis, PTXCONF_CRYPTSETUP_CRYPTSETUP)-external-tokens \
+ --disable-ssh-token \
+ --$(call ptx/endis, PTXCONF_CRYPTSETUP_CRYPTSETUP)-luks2-reencryption \
--disable-nls \
+ --disable-rpath \
--disable-fips \
--disable-pwquality \
+ --disable-fuzz-targets \
--disable-static-cryptsetup \
--$(call ptx/endis, PTXCONF_CRYPTSETUP_CRYPTSETUP)-cryptsetup \
--$(call ptx/endis, PTXCONF_CRYPTSETUP_VERITYSETUP)-veritysetup \
- --$(call ptx/endis, PTXCONF_CRYPTSETUP_CRYPTSETUP)-cryptsetup-reencrypt \
--$(call ptx/endis, PTXCONF_CRYPTSETUP_INTEGRITYSETUP)-integritysetup \
--disable-selinux \
--enable-udev \
diff --git a/rules/cups-bbinit.in b/rules/cups-bbinit.in
index 86b6f649a..ef96736ad 100644
--- a/rules/cups-bbinit.in
+++ b/rules/cups-bbinit.in
@@ -1,8 +1,8 @@
## SECTION=initmethod_bbinit
config CUPS_BBINIT_LINK
- string "cups"
- depends on CUPS_STARTSCRIPT
- default "S90cups"
+ string "cups"
+ depends on CUPS_STARTSCRIPT
+ default "S90cups"
# vim: ft=kconfig ts=8 noet tw=80
diff --git a/rules/cups-filters.in b/rules/cups-filters.in
index e54984ce0..7ac19cf94 100644
--- a/rules/cups-filters.in
+++ b/rules/cups-filters.in
@@ -15,15 +15,6 @@ menuconfig CUPS_FILTERS
select FONTCONFIG
select QPDF
- # Note: configure does not check for these poppler options:
- select POPPLER if CUPS_FILTERS_POPPLER
- select POPPLER_BIN if CUPS_FILTERS_POPPLER # for pdftops
- select POPPLER_CPP if CUPS_FILTERS_POPPLER
- select POPPLER_CMS if CUPS_FILTERS_POPPLER
- select POPPLER_SPLASH if CUPS_FILTERS_POPPLER
- select POPPLER_SPLASH_DOUBLE if CUPS_FILTERS_POPPLER
- select POPPLER_XPDF if CUPS_FILTERS_POPPLER
-
select LIBJPEG if CUPS_FILTERS_JPEG
select LIBPNG if CUPS_FILTERS_PNG
@@ -39,6 +30,7 @@ menuconfig CUPS_FILTERS
if CUPS_FILTERS
config CUPS_FILTERS_POPPLER
+ depends on BROKEN
bool "build with poppler support"
help
Build with poppler support, needed for pdfto* filters and banners.
diff --git a/rules/cups-filters.make b/rules/cups-filters.make
index 42b550a7b..3a4abe809 100644
--- a/rules/cups-filters.make
+++ b/rules/cups-filters.make
@@ -51,7 +51,7 @@ CUPS_FILTERS_CONF_OPT := \
--disable-werror \
--disable-braille \
--with-gnu-ld \
- --with-cups-config=$(PTXDIST_SYSROOT_CROSS)/bin/cups-config \
+ --with-cups-config=$(PTXDIST_SYSROOT_CROSS)/usr/bin/cups-config \
--with-apple-raster-filter=rastertopdf \
--with-cups-rundir=/run \
--with-cups-domainsocket=/run/cups.sock \
diff --git a/rules/cups.in b/rules/cups.in
index c8f3a0ffa..504e57252 100644
--- a/rules/cups.in
+++ b/rules/cups.in
@@ -19,11 +19,7 @@ menuconfig CUPS
select AVAHI if CUPS_AVAHI
select AVAHI_LIBAVAHI_CLIENT if CUPS_AVAHI
select PERL if CUPS_PERL && RUNTIME
- select PHP5 if CUPS_PHP && RUNTIME
- select PHP5_SAPI_CLI if CUPS_PHP5_CLI && RUNTIME
- select PHP5_SAPI_CGI if CUPS_PHP5_CGI && RUNTIME
- select PYTHON if CUPS_PYTHON && CUPS_PYTHON2 && RUNTIME
- select PYTHON3 if CUPS_PYTHON && CUPS_PYTHON3 && RUNTIME
+ select PYTHON3 if CUPS_PYTHON && RUNTIME
help
CUPS is the standards-based, open source printing system. It uses the
@@ -60,7 +56,7 @@ config CUPS_PERL
bool "enable Perl support for web interface"
config CUPS_PHP
- depends on STAGING
+ depends on BROKEN
bool "enable PHP support for web interface"
if CUPS_PHP
@@ -80,21 +76,6 @@ endif # CUPS_PHP
config CUPS_PYTHON
bool "enable Python support for web interface"
-if CUPS_PYTHON
-choice
- prompt "Python interpreter"
- default CUPS_PYTHON3
-
-config CUPS_PYTHON2
- bool "python2"
- depends on STAGING
-
-config CUPS_PYTHON3
- bool "python3"
-
-endchoice
-endif # CUPS_PYTHON
-
endif # CUPS_WEBINTERFACE
config CUPS_SYSTEMD_UNIT
@@ -113,7 +94,6 @@ config CUPS_STARTSCRIPT
config CUPS_TEST_TOOLS
bool "install cupstest* tools"
- default n
help
Install cupstestdsc and cupstestppd on the target.
diff --git a/rules/cups.make b/rules/cups.make
index 88d7e2e86..ba2b4a5da 100644
--- a/rules/cups.make
+++ b/rules/cups.make
@@ -100,15 +100,12 @@ CUPS_CONF_OPT += \
CUPS_PHP_PATH := \
$(if PTXCONF_CUPS_PHP5_CLI,/usr/bin/php, \
$(if PTXCONF_CUPS_PHP5_CGI,/usr/bin/php-cgi))
-CUPS_PYTHON_PATH := \
- $(if PTXCONF_CUPS_PYTHON2,/usr/bin/python2, \
- $(if PTXCONF_CUPS_PYTHON3,/usr/bin/python3))
CUPS_CONF_OPT += \
$(call ptx/ifdef,PTXCONF_CUPS_JAVA,--with-java=$(PTXCONF_CUPS_JAVA_PATH),--without-java) \
$(call ptx/ifdef,PTXCONF_CUPS_PERL,--with-perl=/usr/bin/perl,--without-perl) \
$(call ptx/ifdef,PTXCONF_CUPS_PHP,--with-php=$(CUPS_PHP_PATH),--without-php) \
- $(call ptx/ifdef,PTXCONF_CUPS_PYTHON,--with-python=$(CUPS_PYTHON_PATH),--without-python)
+ $(call ptx/ifdef,PTXCONF_CUPS_PYTHON,--with-python=/usr/bin/python3,--without-python)
# ----------------------------------------------------------------------------
# Compile & Install
diff --git a/rules/daemonize.make b/rules/daemonize.make
index ea0aa8133..6b7d591ba 100644
--- a/rules/daemonize.make
+++ b/rules/daemonize.make
@@ -29,13 +29,11 @@ DAEMONIZE_LICENSE_FILES := file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f
# Prepare
# ----------------------------------------------------------------------------
-DAEMONIZE_PATH := PATH=$(CROSS_PATH)
-DAEMONIZE_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-DAEMONIZE_AUTOCONF := $(CROSS_AUTOCONF_USR)
+DAEMONIZE_CONF_TOOL := autoconf
+DAEMONIZE_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/dash.make b/rules/dash.make
index dfa3ba467..343e132e8 100644
--- a/rules/dash.make
+++ b/rules/dash.make
@@ -31,13 +31,11 @@ DASH_LICENSE_FILES := \
# Prepare
# ----------------------------------------------------------------------------
-DASH_PATH := PATH=$(CROSS_PATH)
-DASH_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-DASH_AUTOCONF := \
+DASH_CONF_TOOL := autoconf
+DASH_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-libedit=no
diff --git a/rules/dav1d.in b/rules/dav1d.in
new file mode 100644
index 000000000..5c07b251f
--- /dev/null
+++ b/rules/dav1d.in
@@ -0,0 +1,8 @@
+## SECTION=multimedia_libs
+
+config DAV1D
+ tristate
+ prompt "dav1d"
+ select HOST_MESON
+ help
+ AV1 cross-platform decoder.
diff --git a/rules/dav1d.make b/rules/dav1d.make
new file mode 100644
index 000000000..4421b3e28
--- /dev/null
+++ b/rules/dav1d.make
@@ -0,0 +1,62 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Ladislav Michl <ladis@linux-mips.org>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_DAV1D) += dav1d
+
+#
+# Paths and names
+#
+DAV1D_VERSION := 1.3.0
+DAV1D_MD5 := c8381f8346525dcd4205e9b50d80c5f4
+DAV1D := dav1d-$(DAV1D_VERSION)
+DAV1D_SUFFIX := tar.bz2
+DAV1D_URL := https://code.videolan.org/videolan/dav1d/-/archive/$(DAV1D_VERSION)/$(DAV1D).$(DAV1D_SUFFIX)
+DAV1D_SOURCE := $(SRCDIR)/$(DAV1D).$(DAV1D_SUFFIX)
+DAV1D_DIR := $(BUILDDIR)/$(DAV1D)
+DAV1D_LICENSE := BSD-2-Clause
+DAV1D_LICENSE_FILES := \
+ file://COPYING;md5=c8055cfe7548dfdaa3a6dc45d8793669
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# meson
+#
+DAV1D_CONF_TOOL := meson
+DAV1D_CONF_OPT := \
+ $(CROSS_MESON_USR) \
+ -Denable_tools=false \
+ -Denable_examples=false \
+ -Denable_tests=false \
+ -Denable_docs=false
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/dav1d.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, dav1d)
+ @$(call install_fixup, dav1d,PRIORITY,optional)
+ @$(call install_fixup, dav1d,SECTION,base)
+ @$(call install_fixup, dav1d,AUTHOR,"Ladislav Michl <ladis@linux-mips.org>")
+ @$(call install_fixup, dav1d,DESCRIPTION,missing)
+
+ @$(call install_lib, dav1d, 0, 0, 0644, libdav1d)
+
+ @$(call install_finish, dav1d)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/db.in b/rules/db.in
index 1c4cf3da5..24bbaea7f 100644
--- a/rules/db.in
+++ b/rules/db.in
@@ -18,18 +18,18 @@ config DB_UTIL
v4.x Berkeley Database Tools
This package provides different tools for manipulating databases
- in the Berkeley v4.x database format, and includes:
+ in the Berkeley v4.x database format, and includes:
db_archive: write the pathnames of the log files no longer in use.
db_checkpoint: daemon process to monitor the database log and
checkpoint it periodically.
db_deadlock: traverse the database environment lock region and
- abort lock requests when a deadlock is detected.
+ abort lock requests when a deadlock is detected.
db_load: loads (and creates) a database from standard input.
db_dump: read a database file and write it in a format understood by
- db_printlog: dump log files in human readable format.
- db_stat: display statistics for Berkeley DB environments.
- db_upgrade: upgrades the version of files and the
+ db_printlog: dump log files in human readable format.
+ db_stat: display statistics for Berkeley DB environments.
+ db_upgrade: upgrades the version of files and the
databases they contain.
- db_verify: check the structure of files and their databases.
+ db_verify: check the structure of files and their databases.
endif
diff --git a/rules/db.make b/rules/db.make
index 1fce58623..2872a1c02 100644
--- a/rules/db.make
+++ b/rules/db.make
@@ -25,7 +25,7 @@ DB_URL := http://download.oracle.com/berkeley-db/$(DB).$(DB_SUFFIX)
DB_SOURCE := $(SRCDIR)/$(DB).$(DB_SUFFIX)
DB_DIR := $(BUILDDIR)/$(DB)
DB_SUBDIR := dist
-DB_BUILDDIR := $(DB_DIR)/build_unix
+DB_BUILD_DIR := $(DB_DIR)/build_unix
DB_LICENCE := Sleepycat
# ----------------------------------------------------------------------------
@@ -35,7 +35,7 @@ DB_LICENCE := Sleepycat
#
# autoconf
#
-DB_CONF_TOOL := autoconf
+DB_CONF_TOOL := autoconf
DB_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-smallbuild \
diff --git a/rules/dbench.in b/rules/dbench.in
index 719b8b797..a80a45059 100644
--- a/rules/dbench.in
+++ b/rules/dbench.in
@@ -5,7 +5,7 @@ menuconfig DBENCH
prompt "dbench "
help
The dbench (disk) and tbench (TCP) benchmarks
- dbench and tbench simulate the load of the
+ dbench and tbench simulate the load of the
netbench "industry standard" benchmark used
to rate (windows) file servers. Unlike netbench,
they do not require a lab of Microsoft Windows
@@ -16,7 +16,7 @@ menuconfig DBENCH
Note that this benchmark is *not* a realistic
reflection of normal server load.
- http://samba.org/ftp/tridge/dbench/
+ https://www.samba.org/ftp/tridge/dbench/
if DBENCH
diff --git a/rules/dbench.make b/rules/dbench.make
index 15b943aaf..7413d7091 100644
--- a/rules/dbench.make
+++ b/rules/dbench.make
@@ -18,7 +18,7 @@ DBENCH_VERSION := 3.04
DBENCH_MD5 := efd0c958da79c1cd941ecd3f63e637ae
DBENCH := dbench-$(DBENCH_VERSION)
DBENCH_SUFFIX := tar.gz
-DBENCH_URL := http://samba.org/ftp/tridge/dbench/$(DBENCH).$(DBENCH_SUFFIX)
+DBENCH_URL := https://www.samba.org/ftp/tridge/dbench/$(DBENCH).$(DBENCH_SUFFIX)
DBENCH_SOURCE := $(SRCDIR)/$(DBENCH).$(DBENCH_SUFFIX)
DBENCH_DIR := $(BUILDDIR)/$(DBENCH)
DBENCH_LICENSE := GPL-2.0-or-later
@@ -30,15 +30,17 @@ DBENCH_LICENSE_FILES := \
# Prepare
# ----------------------------------------------------------------------------
-DBENCH_PATH := PATH=$(CROSS_PATH)
-DBENCH_CONV_ENV := $(CROSS_ENV)
-DBENCH_MAKE_ENV := $(CROSS_ENV)
-DBENCH_INSTALL_OPT := prefix=$(PKGDIR)/$(DBENCH)/usr install
-
#
# autoconf
#
-DBENCH_AUTOCONF := $(CROSS_AUTOCONF_USR)
+DBENCH_CONF_TOOL := autoconf
+DBENCH_CONF_OPT := $(CROSS_AUTOCONF_USR)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+DBENCH_INSTALL_OPT := prefix=$(PKGDIR)/$(DBENCH)/usr install
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/dbus-glib.make b/rules/dbus-glib.make
index bf92486b7..841019502 100644
--- a/rules/dbus-glib.make
+++ b/rules/dbus-glib.make
@@ -41,8 +41,8 @@ DBUS_GLIB_CONF_OPT := \
--disable-asserts \
--enable-checks \
--disable-gtk-doc \
- --with-dbus-binding-tool=$(PTXDIST_SYSROOT_HOST)/bin/dbus-binding-tool \
- --with-introspect-xml=$(PTXDIST_SYSROOT_HOST)/share/dbus-glib/dbus-bus-introspect.xml
+ --with-dbus-binding-tool=$(PTXDIST_SYSROOT_HOST)/usr/bin/dbus-binding-tool \
+ --with-introspect-xml=$(PTXDIST_SYSROOT_HOST)/usr/share/dbus-glib/dbus-bus-introspect.xml
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/dbus-python.in b/rules/dbus-python.in
deleted file mode 100644
index 290dded74..000000000
--- a/rules/dbus-python.in
+++ /dev/null
@@ -1,10 +0,0 @@
-## SECTION=python
-
-config DBUS_PYTHON
- tristate
- select PYTHON
- select DBUS
- select DBUS_GLIB
- prompt "dbus-python"
- help
- Python bindings for dbus.
diff --git a/rules/dbus-python.make b/rules/dbus-python.make
deleted file mode 100644
index e5b3c222e..000000000
--- a/rules/dbus-python.make
+++ /dev/null
@@ -1,66 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2009 by Robert Schwebel <r.schwebel@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_DBUS_PYTHON) += dbus-python
-
-#
-# Paths and names
-#
-DBUS_PYTHON_VERSION := 0.84.0
-DBUS_PYTHON_MD5 := fe69a2613e824463e74f10913708c88a
-DBUS_PYTHON := dbus-python-$(DBUS_PYTHON_VERSION)
-DBUS_PYTHON_SUFFIX := tar.gz
-DBUS_PYTHON_URL := http://dbus.freedesktop.org/releases/dbus-python/$(DBUS_PYTHON).$(DBUS_PYTHON_SUFFIX)
-DBUS_PYTHON_SOURCE := $(SRCDIR)/$(DBUS_PYTHON).$(DBUS_PYTHON_SUFFIX)
-DBUS_PYTHON_DIR := $(BUILDDIR)/$(DBUS_PYTHON)
-DBUS_PYTHON_LICENSE := AFL-2.1 AND GPL-2.0-or-later
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-DBUS_PYTHON_ENV = \
- $(CROSS_ENV) \
- PYTHON=$(CROSS_PYTHON)
-
-#
-# autoconf
-#
-DBUS_PYTHON_AUTOCONF := \
- $(CROSS_AUTOCONF_USR) \
- --disable-html-docs \
- --disable-api-docs
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/dbus-python.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, dbus-python)
- @$(call install_fixup, dbus-python,PRIORITY,optional)
- @$(call install_fixup, dbus-python,SECTION,base)
- @$(call install_fixup, dbus-python,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, dbus-python,DESCRIPTION,missing)
-
- @cd "$(DBUS_PYTHON_PKGDIR)"; \
- find ./usr/lib/python$(PYTHON_MAJORMINOR) \
- \( -name "*.so" -o -name "*.pyc" \) | \
- while read file; do \
- $(call install_copy, dbus-python, 0, 0, 0644, -, $${file##.}); \
- done
-
- @$(call install_finish, dbus-python)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/dbus.in b/rules/dbus.in
index 3af3e5ca1..b205ee62f 100644
--- a/rules/dbus.in
+++ b/rules/dbus.in
@@ -3,6 +3,7 @@
menuconfig DBUS
tristate
prompt "dbus "
+ select HOST_MESON
select EXPAT
select XORG_LIB_X11 if DBUS_X
select MACHINE_ID if RUNTIME
diff --git a/rules/dbus.make b/rules/dbus.make
index 168c58956..fca1f57fa 100644
--- a/rules/dbus.make
+++ b/rules/dbus.make
@@ -16,14 +16,19 @@ PACKAGES-$(PTXCONF_DBUS) += dbus
#
# Paths and names
#
-DBUS_VERSION := 1.12.20
-DBUS_MD5 := dfe8a71f412e0b53be26ed4fbfdc91c4
-DBUS := dbus-$(DBUS_VERSION)
-DBUS_SUFFIX := tar.gz
-DBUS_URL := http://dbus.freedesktop.org/releases/dbus/$(DBUS).$(DBUS_SUFFIX)
-DBUS_SOURCE := $(SRCDIR)/$(DBUS).$(DBUS_SUFFIX)
-DBUS_DIR := $(BUILDDIR)/$(DBUS)
-DBUS_LICENSE := AFL-2.1 AND GPL-2.0-or-later
+DBUS_VERSION := 1.15.8
+DBUS_MD5 := 66a38f65320762e0734340fb6facdcce
+DBUS := dbus-$(DBUS_VERSION)
+DBUS_SUFFIX := tar.xz
+DBUS_URL := https://dbus.freedesktop.org/releases/dbus/$(DBUS).$(DBUS_SUFFIX)
+DBUS_SOURCE := $(SRCDIR)/$(DBUS).$(DBUS_SUFFIX)
+DBUS_DIR := $(BUILDDIR)/$(DBUS)
+DBUS_LICENSE := (AFL-2.1 OR GPL-2.0-or-later) AND MIT
+DBUS_LICENSE_FILES := \
+ file://COPYING;md5=eb0ffc69a965797a3d6686baa153ef05 \
+ file://LICENSES/AFL-2.1.txt;md5=f3ad2f482ec639b440413665cfb9e714 \
+ file://LICENSES/GPL-2.0-or-later.txt;md5=3d26203303a722dedc6bf909d95ba815 \
+ file://LICENSES/MIT.txt;md5=7dda4e90ded66ab88b86f76169f28663
# ----------------------------------------------------------------------------
# Prepare
@@ -35,50 +40,41 @@ DBUS_CONF_ENV := \
ac_cv_lib_ICE_IceConnectionNumber=no
#
-# autoconf
+# meson
#
-DBUS_CONF_TOOL := autoconf
+DBUS_CONF_TOOL := meson
DBUS_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --runstatedir=/run \
- --enable-silent-rules \
- --disable-developer \
- --disable-debug \
- $(GLOBAL_LARGE_FILE_OPTION) \
- --disable-static \
- --disable-ansi \
- --disable-verbose-mode \
- --disable-asserts \
- --disable-checks \
- --disable-xml-docs \
- --disable-doxygen-docs \
- --disable-ducktype-docs \
- --$(call ptx/endis, PTXCONF_DBUS_SELINUX)-selinux \
- --disable-apparmor \
- --disable-libaudit \
- --enable-inotify \
- --disable-kqueue \
- --disable-console-owner-file \
- --disable-launchd \
- --$(call ptx/endis, PTXCONF_DBUS_SYSTEMD)-systemd \
- --disable-embedded-tests \
- --disable-modular-tests \
- --disable-tests \
- --disable-installed-tests \
- --disable-code-coverage \
- --enable-epoll \
- --$(call ptx/endis, PTXCONF_DBUS_X)-x11-autolaunch \
- --disable-compile-warnings \
- --disable-Werror \
- --disable-relocation \
- --disable-stats \
- --$(call ptx/endis, PTXCONF_DBUS_SYSTEMD)-user-session \
- --with-system-socket=/run/dbus/system_bus_socket \
- --with-dbus-user=messagebus \
- --without-valgrind \
- --$(call ptx/wwo, PTXCONF_DBUS_X)-x$(call ptx/ifdef,PTXCONF_DBUS_X,=$(SYSROOT)/usr,) \
- --with-systemdsystemunitdir=/usr/lib/systemd/system \
- --with-systemduserunitdir=/usr/lib/systemd/user
+ $(CROSS_MESON_USR) \
+ -Dapparmor=disabled \
+ -Dasserts=false \
+ -Dchecks=false \
+ -Dcontainers=false \
+ -Ddbus_user=messagebus \
+ -Ddoxygen_docs=disabled \
+ -Dducktype_docs=disabled \
+ -Dembedded_tests=false \
+ -Depoll=enabled \
+ -Dinotify=enabled \
+ -Dinstalled_tests=false \
+ -Dkqueue=disabled \
+ -Dlaunchd=disabled \
+ -Dlibaudit=disabled \
+ -Dmessage_bus=true \
+ -Dmodular_tests=disabled \
+ -Dqt_help=disabled \
+ -Drelocation=disabled \
+ -Dselinux=$(call ptx/endis, PTXCONF_DBUS_SELINUX)d \
+ -Dstats=false \
+ -Dsystemd=$(call ptx/endis, PTXCONF_DBUS_SYSTEMD)d \
+ -Dsystemd_system_unitdir=/usr/lib/systemd/system \
+ -Dsystemd_user_unitdir=/usr/lib/systemd/user \
+ -Dtools=true \
+ -Dtraditional_activation=true \
+ -Duser_session=$(call ptx/truefalse, PTXCONF_DBUS_SYSTEMD) \
+ -Dvalgrind=disabled \
+ -Dverbose_mode=false \
+ -Dx11_autolaunch=$(call ptx/endis, PTXCONF_DBUS_X)d \
+ -Dxml_docs=disabled
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/dfu-util.make b/rules/dfu-util.make
index 277462e55..eb93f222a 100644
--- a/rules/dfu-util.make
+++ b/rules/dfu-util.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_DFU_UTIL) += dfu-util
#
# Paths and names
#
-DFU_UTIL_VERSION := 0.9
-DFU_UTIL_MD5 := 233bb1e08ef4b405062445d84e28fde6
+DFU_UTIL_VERSION := 0.11
+DFU_UTIL_MD5 := 31c983543a1fe8f03260ca4d56ad4f43
DFU_UTIL := dfu-util-$(DFU_UTIL_VERSION)
DFU_UTIL_SUFFIX := tar.gz
DFU_UTIL_URL := http://dfu-util.sourceforge.net/releases/$(DFU_UTIL).$(DFU_UTIL_SUFFIX)
DFU_UTIL_SOURCE := $(SRCDIR)/$(DFU_UTIL).$(DFU_UTIL_SUFFIX)
DFU_UTIL_DIR := $(BUILDDIR)/$(DFU_UTIL)
-DFU_UTIL_LICENSE := GPL-2.0-only
+DFU_UTIL_LICENSE := GPL-2.0-or-later
+DFU_UTIL_LICENSE_FILES := file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f
+# The file 'dfuse-pack.py' has different license, but is not copied to target
# ----------------------------------------------------------------------------
# Prepare
@@ -35,6 +37,9 @@ DFU_UTIL_CONF_ENV := \
# autoconf
#
DFU_UTIL_CONF_TOOL := autoconf
+DFU_UTIL_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ $(GLOBAL_LARGE_FILE_OPTION)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/dhcp.in b/rules/dhcp.in
index 7e609f74d..0661e75c1 100644
--- a/rules/dhcp.in
+++ b/rules/dhcp.in
@@ -7,14 +7,14 @@ menuconfig DHCP
help
This is the DHCP server from version 3 of the Internet Software
Consortium DHCP package. For more information visit the ISC web
- site at http://www.isc.org/.
+ site at http://www.isc.org/.
Dynamic Host Configuration Protocol (DHCP) is a protocol like
BOOTP (actually dhcpd includes much of the functionality of
BOOTPD!). It assigns IP addresses to clients based on lease
times.
- Multiple Ethernet Interfaces are supported by this DHCP package.
+ Multiple Ethernet Interfaces are supported by this DHCP package.
if DHCP
@@ -28,17 +28,6 @@ config DHCP_SERVER
It takes its configuration from /etc/dhcp3/dhcpd.conf and tracks
issued addresses as records in the dhcpd.leases file.
-config DHCP_DHCPD_CONF
- bool "Install /etc/dhcpd.conf"
- depends on DHCP_SERVER
- default y
- help
- Installs (if present) the "./projectroot/etc/dhcpd.conf"
- file from your workspace, otherwise a generic one from the
- ptxdist installation
- ("<PTXDIST>/projectroot/etc/dhcpd.conf").
-
-
config DHCP_CLIENT
bool
prompt "DHCP Client dhclient"
@@ -47,28 +36,6 @@ config DHCP_CLIENT
with an IP address. It also handles a lease refresh if it
expires.
-if DHCP_CLIENT
-
-config DHCP_DHCLIENT_CONF
- bool "Install /etc/dhclient.conf"
- default y
- help
- Installs (if present) the "./projectroot/etc/dhclient.conf"
- file from your workspace, otherwise a generic one from the
- ptxdist installation
- ("<PTXDIST>/projectroot/etc/dhclient.conf").
-
-config DHCP_DHCLIENT_SCRIPT
- bool "Install /etc/dhclient-script"
- depends on DHCP_DHCLIENT_CONF
- help
- Installs (if present) the "./projectroot/etc/dhclient-script"
- file from your workspace, otherwise a generic one from the
- ptxdist installation
- ("<PTXDIST>/projectroot/etc/dhclient-script").
-
-endif
-
config DHCP_RELAY
bool
prompt "DHCP Relay dhcrelay"
@@ -86,3 +53,9 @@ config DHCP_RELAY
which the original request came.
endif
+
+comment ""
+ depends on INVISIBLE
+
+comment "Note: no DHCP binaries are currently selected"
+ depends on DHCP && !DHCP_SERVER && !DHCP_CLIENT && !DHCP_RELAY
diff --git a/rules/dhcp.make b/rules/dhcp.make
index 48ff6f0d2..f4860507d 100644
--- a/rules/dhcp.make
+++ b/rules/dhcp.make
@@ -17,8 +17,8 @@ PACKAGES-$(PTXCONF_DHCP) += dhcp
#
# Paths and names
#
-DHCP_VERSION := 4.4.2
-DHCP_MD5 := 2afdaf8498dc1edaf3012efdd589b3e1
+DHCP_VERSION := 4.4.3
+DHCP_MD5 := 9076af4cc1293dde5a7c6cae7de6ab45
DHCP := dhcp-$(DHCP_VERSION)
DHCP_SUFFIX := tar.gz
DHCP_URL := \
@@ -29,9 +29,9 @@ DHCP_SOURCE := $(SRCDIR)/$(DHCP).$(DHCP_SUFFIX)
DHCP_DIR := $(BUILDDIR)/$(DHCP)
DHCP_LICENSE := MPL-2.0 AND BSD-3-Clause AND ISC
DHCP_LICENSE_FILES := \
- file://LICENSE;md5=b9c6e660b3d9260de9a342d2fb77540a \
- file://server/ldap.c;startline=6;endline=35;md5=8e5f9d2cd6b641d599871fd2430708c4 \
- file://server/ldap_casa.c;startline=35;endline=48;md5=d2ea64a00aeacb447c6634d984486afe
+ file://LICENSE;md5=c463f4afde26d9eb60f14f50aeb85f8f \
+ file://server/ldap.c;startline=6;endline=35;md5=8d047cff3fcdff1e6df8e3a82aff0f7c \
+ file://server/ldap_casa.c;startline=35;endline=48;md5=d865213e14a02885f25467a709307bf3
# ----------------------------------------------------------------------------
# Prepare
@@ -93,9 +93,6 @@ $(STATEDIR)/dhcp.targetinstall:
ifdef PTXCONF_DHCP_SERVER
@$(call install_copy, dhcp, 0, 0, 0755, -, \
/usr/sbin/dhcpd)
-endif
-
-ifdef PTXCONF_DHCP_DHCPD_CONF
@$(call install_alternative, dhcp, 0, 0, 0644, /etc/dhcpd.conf)
endif
@@ -106,13 +103,7 @@ ifdef PTXCONF_DHCP_CLIENT
@$(call install_copy, dhcp, 0, 0, 0755, -, \
/usr/sbin/dhclient)
-endif
-
-ifdef PTXCONF_DHCP_DHCLIENT_SCRIPT
@$(call install_alternative, dhcp, 0, 0, 0755, /etc/dhclient-script)
-endif
-
-ifdef PTXCONF_DHCP_DHCLIENT_CONF
@$(call install_alternative, dhcp, 0, 0, 0644, /etc/dhclient.conf)
endif
diff --git a/rules/diffutils.make b/rules/diffutils.make
index 55ee903ea..0634ed4d5 100644
--- a/rules/diffutils.make
+++ b/rules/diffutils.make
@@ -14,30 +14,35 @@ PACKAGES-$(PTXCONF_DIFFUTILS) += diffutils
#
# Paths and names
#
-DIFFUTILS_VERSION := 2.8.1
-DIFFUTILS_MD5 := 71f9c5ae19b60608f6c7f162da86a428
+DIFFUTILS_VERSION := 3.10
+DIFFUTILS_MD5 := 2745c50f6f4e395e7b7d52f902d075bf
DIFFUTILS := diffutils-$(DIFFUTILS_VERSION)
-DIFFUTILS_SUFFIX := tar.gz
+DIFFUTILS_SUFFIX := tar.xz
DIFFUTILS_URL := $(call ptx/mirror, GNU, diffutils/$(DIFFUTILS).$(DIFFUTILS_SUFFIX))
DIFFUTILS_SOURCE := $(SRCDIR)/$(DIFFUTILS).$(DIFFUTILS_SUFFIX)
DIFFUTILS_DIR := $(BUILDDIR)/$(DIFFUTILS)
-DIFFUTILS_LICENSE := GPL-2.0-or-later
+DIFFUTILS_LICENSE := GPL-3.0-or-later
DIFFUTILS_LICENSE_FILES := \
- file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://src/diff.c;startline=1;endline=21;md5=6300de6fcda19d4ac43bedc776f5b3b7
+ file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://src/diff.c;startline=1;endline=19;md5=22826ba1b6d00ff5a114342e7b46d1aa
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-DIFFUTILS_PATH := PATH=$(CROSS_PATH)
-DIFFUTILS_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-DIFFUTILS_AUTOCONF := $(CROSS_AUTOCONF_USR)
+DIFFUTILS_CONF_TOOL := autoconf
+DIFFUTILS_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ $(GLOBAL_LARGE_FILE_OPTION) \
+ --enable-threads=posix \
+ --disable-rpath \
+ --disable-nls \
+ --$(call ptx/endis, PTXDIST_Y2038)-year2038 \
+ --without-libsigsegv
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/dnsmasq.in b/rules/dnsmasq.in
index 6d2d98999..b145b9885 100644
--- a/rules/dnsmasq.in
+++ b/rules/dnsmasq.in
@@ -12,7 +12,7 @@ menuconfig DNSMASQ
help
A small caching DNS proxy and DHCP server.
- Dnsmasq is lightweight, easy to configure DNS forwarder
+ Dnsmasq is lightweight, easy to configure DNS forwarder
and DHCP server. It is designed to provide DNS and,
optionally, DHCP, to a small network. It can serve the
names of local machines which are not in the global DNS.
@@ -20,7 +20,7 @@ menuconfig DNSMASQ
machines with DHCP-allocated addresses to appear in the DNS
with names configured either in each host or in a central
configuration file. Dnsmasq supports static and dynamic
- DHCP leases and BOOTP for network booting of diskless machines.
+ DHCP leases and BOOTP for network booting of diskless machines.
Note: In order to make dnsmasq work as DHCP, you have to enable
the following kernel features: FIXME
@@ -63,7 +63,6 @@ config DNSMASQ_SCRIPT
config DNSMASQ_SCRIPT_LUA
bool
- default n
depends on DNSMASQ_SCRIPT
prompt "include lease script LUA support"
help
@@ -71,7 +70,6 @@ config DNSMASQ_SCRIPT_LUA
config DNSMASQ_DNSSEC
bool
- default n
prompt "include DNSSEC support"
help
Without this option it is not possible to call scripts when a lease changes
@@ -86,7 +84,7 @@ choice
bool
prompt "inetd driven"
help
- Install a inetd rule for dnsmasq. This option adds the following line
+ Install an inetd rule for dnsmasq. This option adds the following line
to /etc/inetd.conf.d/dnsmasq:
domain stream tcp nowait root /sbin/dnsmasq domain
diff --git a/rules/dnsmasq.make b/rules/dnsmasq.make
index 4f3e29be3..2c6262308 100644
--- a/rules/dnsmasq.make
+++ b/rules/dnsmasq.make
@@ -15,16 +15,16 @@ PACKAGES-$(PTXCONF_DNSMASQ) += dnsmasq
#
# Paths and names
#
-DNSMASQ_VERSION := 2.81
-DNSMASQ_MD5 := 2642c3f17f4a9762a83dd70daa6cfeb6
+DNSMASQ_VERSION := 2.89
+DNSMASQ_MD5 := a227ce79d772c8a49f94335cdb041e77
DNSMASQ := dnsmasq-$(DNSMASQ_VERSION)
DNSMASQ_SUFFIX := tar.xz
-DNSMASQ_URL := http://www.thekelleys.org.uk/dnsmasq/$(DNSMASQ).$(DNSMASQ_SUFFIX)
+DNSMASQ_URL := https://thekelleys.org.uk/dnsmasq/$(DNSMASQ).$(DNSMASQ_SUFFIX)
DNSMASQ_SOURCE := $(SRCDIR)/$(DNSMASQ).$(DNSMASQ_SUFFIX)
DNSMASQ_DIR := $(BUILDDIR)/$(DNSMASQ)
DNSMASQ_LICENSE := GPL-2.0-only OR GPL-3.0-only
DNSMASQ_LICENSE_FILES := \
- file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING-v3;md5=d32239bcb673463ab874e80d47fae504 \
file://src/dnsmasq.c;startline=2;endline=15;md5=0da70ade5c9cf3c1edf1f8dc6ab8aa9f
diff --git a/rules/dosfstools.in b/rules/dosfstools.in
index 6a254886c..146c7ae9a 100644
--- a/rules/dosfstools.in
+++ b/rules/dosfstools.in
@@ -3,17 +3,9 @@ menuconfig DOSFSTOOLS
tristate
prompt "dosfstools "
select GCCLIBS_GCC_S
- select UDEV if DOSFSTOOLS_UDEV
- select UDEV_LIBUDEV if DOSFSTOOLS_UDEV
if DOSFSTOOLS
-config DOSFSTOOLS_UDEV
- bool
- prompt "make use of udev"
- help
- make use of udev
-
config DOSFSTOOLS_MKFS_FAT
bool
depends on !BUSYBOX_MKFS_VFAT || ALLYES
@@ -67,6 +59,6 @@ config DOSFSTOOLS_FATLABEL
bool
prompt "fatlabel"
help
- set or get a MS-DOS filesystem label
+ set or get an MS-DOS filesystem label
endif
diff --git a/rules/dosfstools.make b/rules/dosfstools.make
index c728cc1d5..15729a434 100644
--- a/rules/dosfstools.make
+++ b/rules/dosfstools.make
@@ -15,10 +15,10 @@ PACKAGES-$(PTXCONF_DOSFSTOOLS) += dosfstools
#
# Paths and names
#
-DOSFSTOOLS_VERSION := 4.1
-DOSFSTOOLS_MD5 := 07a1050db1a898e9a2e03b0c4569c4bd
+DOSFSTOOLS_VERSION := 4.2
+DOSFSTOOLS_MD5 := 49c8e457327dc61efab5b115a27b087a
DOSFSTOOLS := dosfstools-$(DOSFSTOOLS_VERSION)
-DOSFSTOOLS_SUFFIX := tar.xz
+DOSFSTOOLS_SUFFIX := tar.gz
DOSFSTOOLS_SRC := $(DOSFSTOOLS).$(DOSFSTOOLS_SUFFIX)
DOSFSTOOLS_URL := https://github.com/dosfstools/dosfstools/releases/download/v$(DOSFSTOOLS_VERSION)/$(DOSFSTOOLS_SRC)
DOSFSTOOLS_SOURCE := $(SRCDIR)/$(DOSFSTOOLS_SRC)
@@ -26,7 +26,7 @@ DOSFSTOOLS_DIR := $(BUILDDIR)/$(DOSFSTOOLS)
DOSFSTOOLS_LICENSE := GPL-3.0-or-later
DOSFSTOOLS_LICENSE_FILES := \
file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://src/fsck.fat.c;startline=1;endline=22;md5=3f94b53f3d7556100055c58a48937788
+ file://src/fsck.fat.c;startline=1;endline=23;md5=29df02b73d125363cfcbacaa45707eed
# ----------------------------------------------------------------------------
# Prepare (nothing to be done here)
@@ -36,8 +36,10 @@ DOSFSTOOLS_CONF_TOOL := autoconf
DOSFSTOOLS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-compat-symlinks \
- --$(call ptx/wwo, PTXCONF_DOSFSTOOLS_UDEV)-udev \
- $(GLOBAL_LARGE_FILE_OPTION)
+ --disable-atari-check \
+ $(GLOBAL_LARGE_FILE_OPTION) \
+ --disable-rpath \
+ --without-iconv
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/dropbear.in b/rules/dropbear.in
index 5f619145b..95beb09bf 100644
--- a/rules/dropbear.in
+++ b/rules/dropbear.in
@@ -12,7 +12,7 @@ menuconfig DROPBEAR
select BUSYBOX_FEATURE_START_STOP_DAEMON_FANCY if DROPBEAR_STARTSCRIPT
select BUSYBOX_FEATURE_START_STOP_DAEMON_LONG_OPTIONS if DROPBEAR_STARTSCRIPT
help
- dropbear is a SSH 2 server and client designed
+ dropbear is an SSH 2 server and client designed
to be small enough to be used in small memory
environments, while still being functional and
secure enough for general use.
@@ -111,7 +111,7 @@ config DROPBEAR_DIS_PUTUTXLINE
help
pututxline is needed to write to the utmpx structure.
-comment "features"
+menu "Features "
config DROPBEAR_DIS_X11
bool
@@ -135,7 +135,11 @@ config DROPBEAR_DIS_AGENT
Authentication agent is a program to automate the
use of authentication private keys.
-comment "Encryption, at least one required --- RFC Draft requires 3DES and recommends AES128"
+endmenu
+
+menu "Encryption "
+
+comment "at least one required --- RFC Draft requires 3DES and recommends AES128"
config DROPBEAR_AES128
bool
@@ -149,7 +153,7 @@ config DROPBEAR_AES128
config DROPBEAR_3DES
bool
- prompt "3DES"
+ prompt "3DES (legacy)"
help
DES is an IBM algorithm designed during the 1970s.
In 1976, NIST has officially adopted it as an encryption
@@ -169,32 +173,22 @@ config DROPBEAR_AES256
algorithm that may be used by U.S. Government organizations
(and others) to protect sensitive information.
-
-config DROPBEAR_TWOFISH128
+config DROPBEAR_CHACHA20POLY1305
bool
- prompt "Twofish128"
+ prompt "Chacha20-Poly1305"
+ default y
help
- Another great algorithm designed by Bruce Schneier.
- This block cipher was designed as a successor to
- the 64-bit Blowfish block cipher.
- Twofish combines a 16-round Feistel network with a
- bijective f function made by four key-dependent
- 8x8-bit S-boxes.
+ Enable Chacha20-Poly1305 authenticated encryption mode.
+ This is generally faster than AES256 on CPU w/o dedicated AES
+ instructions, having the same key size.
+ Recommended.
-config DROPBEAR_TWOFISH256
- bool
- prompt "Twofish256"
- help
- Another great algorithm designed by Bruce Schneier.
- This block cipher was designed as a successor to
- the 64-bit Blowfish block cipher.
- Twofish combines a 16-round Feistel network with a
- bijective f function made by four key-dependent
- 8x8-bit S-boxes.
+comment "WARNING: No encryption method selected!"
+ depends on !DROPBEAR_AES128 && !DROPBEAR_3DES && !DROPBEAR_AES256 && !DROPBEAR_CHACHA20POLY1305
config DROPBEAR_CBC_CIPHERS
bool
- prompt "CBC mode ciphers"
+ prompt "CBC mode ciphers (legacy)"
help
Enable CBC mode for ciphers. This has security issues though
is the most compatible with older SSH implementations.
@@ -208,11 +202,15 @@ config DROPBEAR_CTR_CIPHERS
CBC mode against certain attacks. This adds around 1kB to binary
size and is recommended for most cases.
-comment "Integrity, at least one required --- sha2-256 is recommended as a default, sha1 for compatibility"
+endmenu
+
+menu "Message Integrity (HMAC) "
+
+comment "at least one required ---"
config DROPBEAR_SHA1
bool
- prompt "sha1"
+ prompt "sha1 (compat)"
help
The Secure Hash Algorithm (SHA) was developed by NIST and
is specified in the Secure Hash Standard (SHS, FIPS 180).
@@ -224,7 +222,7 @@ config DROPBEAR_SHA1
config DROPBEAR_SHA1_96
bool
- prompt "sha1-96"
+ prompt "sha1-96 (legacy)"
help
The Secure Hash Algorithm (SHA) was developed by NIST and
is specified in the Secure Hash Standard (SHS, FIPS 180).
@@ -236,7 +234,7 @@ config DROPBEAR_SHA1_96
config DROPBEAR_SHA256
bool
- prompt "sha256"
+ prompt "sha256 (recommended)"
default y
help
SHA-2 is a set of cryptographic hash functions (SHA-224, SHA-256,
@@ -260,7 +258,14 @@ config DROPBEAR_SHA512
SHA-1. SHA-2 consists of a set of four hash functions with digests
that are 224, 256, 384 or 512 bits.
-comment "Hostkey/public key algorithms, at least one required --- RSA is recommended, DSS is not recommended for new keys"
+comment "WARNING: No Message Integrity method selected!"
+ depends on !DROPBEAR_SHA1 && !DROPBEAR_SHA1_96 && !DROPBEAR_SHA256 && !DROPBEAR_SHA512
+
+endmenu
+
+menu "Hostkey/public key algorithms"
+
+comment "at least one required ---"
config DROPBEAR_RSA
bool
@@ -277,9 +282,51 @@ config DROPBEAR_ECDSA
prompt "ecdsa"
help
ECDSA stands for Elliptic Curve Digital Signature Algorithm.
- ECDSA is significantly faster than RSA or DSS.
+ ECDSA is significantly faster than RSA.
+
+config DROPBEAR_ED25519
+ bool
+ prompt "ed25519"
+ default y
+ help
+ Ed25519 is the EdDSA signature scheme using SHA-512 (SHA-2)
+ and Curve25519.
+ Ed25519 is intended to provide attack resistance comparable to
+ quality 128-bit symmetric ciphers.
+ Public keys are 256 bits long and signatures are 512 bits
+ long.
+
+comment "WARNING: No Hostkey/public key algorithm selected!"
+ depends on !DROPBEAR_RSA && !DROPBEAR_ECDSA && !DROPBEAR_ED25519
+
+endmenu
+
+menu "Key exchange algorithm "
+
+comment "at least one required ---"
-comment "Key exchange algorithm ---"
+config DROPBEAR_DH_GROUP14_SHA256
+ bool
+ prompt "group14_sha256"
+ default y
+ help
+ 2048 bit, sha2-256.
+ group14 is supported by most implementations.
+
+config DROPBEAR_DH_GROUP14_SHA1
+ bool
+ prompt "group14_sha1"
+ help
+ 2048 bit, sha1.
+ group14 is supported by most implementations.
+
+config DROPBEAR_DH_GROUP16
+ bool
+ prompt "group16"
+ help
+ 4096 bit, sha2-512.
+ group16 provides a greater strength level but is slower and
+ increases binary size.
config DROPBEAR_ECDH
bool
@@ -287,18 +334,40 @@ config DROPBEAR_ECDH
help
ECDH stands for Elliptic Curve Diffie-Hellman.
+ Small systems should generally include either curve25519 or
+ ecdh for performance.
+
config DROPBEAR_CURVE25519
bool
- depends on DROPBEAR_ECDSA || DROPBEAR_ECDH
- prompt "curve25519-donna"
+ prompt "curve25519"
help
- Enable curve25519-donna for key exchange.
+ Enable curve25519 for key exchange.
This is another elliptic curve method with good security properties.
This algorithm does not rely on NIST-based curves
and gives us more security confidence against a possible
backdoor in nistp-256 curve.
-comment "Authentication types, at least one required --- RFC Draft requires pubkey auth"
+ Small systems should generally include either curve25519 or
+ ecdh for performance.
+
+config DROPBEAR_DH_GROUP1
+ bool
+ prompt "group1 (legacy, client only)"
+ help
+ 1024 bit, sha1.
+ This is too small for security though is necessary if you need
+ compatibility with some implementations such as Dropbear
+ versions < 0.53.
+ Client only!
+
+comment "WARNING: No key exchange algorithm selected!"
+ depends on !DROPBEAR_DH_GROUP14_SHA256 && !DROPBEAR_DH_GROUP14_SHA1 && !DROPBEAR_DH_GROUP16 && !DROPBEAR_ECDH && !DROPBEAR_CURVE25519 && !DROPBEAR_DH_GROUP1
+
+endmenu
+
+menu "Authentication types "
+
+comment "at least one required --- RFC Draft requires pubkey auth"
config DROPBEAR_PASSWD
bool
@@ -314,7 +383,12 @@ config DROPBEAR_PUBKEY
help
Use public key authentication
-comment "installation options ---"
+comment "WARNING: No authentication type selected!"
+ depends on !DROPBEAR_PASSWD && !DROPBEAR_PUBKEY
+
+endmenu
+
+comment "Installation options ---"
config DROPBEAR_DROPBEAR
bool
@@ -322,7 +396,6 @@ config DROPBEAR_DROPBEAR
default y
select DROPBEAR_DROPBEAR_KEY
select DROPBEAR_RSA
- select BUSYBOX_START_STOP_DAEMON if BUSYBOX
help
Installs the dropbar server in /usr/sbin/dropbear on the target
@@ -350,7 +423,7 @@ config DROPBEAR_SCP
comment "OpenSSH scp is selected!"
depends on OPENSSH_SCP
-comment "runtime options ---"
+comment "Runtime options ---"
config DROPBEAR_STARTSCRIPT
bool
diff --git a/rules/dropbear.make b/rules/dropbear.make
index 536c9176a..dfdbe572d 100644
--- a/rules/dropbear.make
+++ b/rules/dropbear.make
@@ -16,15 +16,15 @@ PACKAGES-$(PTXCONF_DROPBEAR) += dropbear
#
# Paths and names
#
-DROPBEAR_VERSION := 2020.81
-DROPBEAR_MD5 := a07438a6159a24c61f98f1bce2d479c0
+DROPBEAR_VERSION := 2022.83
+DROPBEAR_MD5 := a75a34bcc03cacf71a2db9da3b7c94a5
DROPBEAR := dropbear-$(DROPBEAR_VERSION)
DROPBEAR_SUFFIX := tar.bz2
-DROPBEAR_URL := http://matt.ucc.asn.au/dropbear/releases/$(DROPBEAR).$(DROPBEAR_SUFFIX)
+DROPBEAR_URL := https://matt.ucc.asn.au/dropbear/releases/$(DROPBEAR).$(DROPBEAR_SUFFIX)
DROPBEAR_SOURCE := $(SRCDIR)/$(DROPBEAR).$(DROPBEAR_SUFFIX)
DROPBEAR_DIR := $(BUILDDIR)/$(DROPBEAR)
DROPBEAR_LICENSE := \
- MIT AND BSD-2-Clause AND public_domain AND SSH-short AND (public_domain OR WTFPL) AND Unlicense
+ MIT AND BSD-2-Clause AND SSH-short AND (custom OR WTFPL) AND Unlicense
DROPBEAR_LICENSE_FILES := \
file://LICENSE;md5=25cf44512b7bc8966a48b6b1a9b7605f \
file://libtomcrypt/LICENSE;md5=71baacc459522324ef3e2b9e052e8180 \
@@ -42,6 +42,7 @@ DROPBEAR_CONF_TOOL := autoconf
DROPBEAR_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--enable-harden \
+ --disable-werror \
$(GLOBAL_LARGE_FILE_OPTION) \
--$(call ptx/endis, PTXCONF_DROPBEAR_ZLIB)-zlib \
--disable-pam \
@@ -126,20 +127,12 @@ else
@echo "#define DROPBEAR_AES256 0" >> $(DROPBEAR_LOCALOPTIONS)
endif
-ifdef PTXCONF_DROPBEAR_TWOFISH256
- @echo "ptxdist: enabling twofish256"
- @echo "#define DROPBEAR_TWOFISH256 1" >> $(DROPBEAR_LOCALOPTIONS)
+ifdef PTXCONF_DROPBEAR_CHACHA20POLY1305
+ @echo "ptxdist: enabling chacha20-poly1305"
+ @echo "#define DROPBEAR_CHACHA20POLY1305 1" >> $(DROPBEAR_LOCALOPTIONS)
else
- @echo "ptxdist: disabling twofish256"
- @echo "#define DROPBEAR_TWOFISH256 0" >> $(DROPBEAR_LOCALOPTIONS)
-endif
-
-ifdef PTXCONF_DROPBEAR_TWOFISH128
- @echo "ptxdist: enabling twofish128"
- @echo "#define DROPBEAR_TWOFISH128 1" >> $(DROPBEAR_LOCALOPTIONS)
-else
- @echo "ptxdist: disabling twofish128"
- @echo "#define DROPBEAR_TWOFISH128 0" >> $(DROPBEAR_LOCALOPTIONS)
+ @echo "ptxdist: disabling chacha20-poly1305"
+ @echo "#define DROPBEAR_CHACHA20POLY1305 0" >> $(DROPBEAR_LOCALOPTIONS)
endif
# ciphers
@@ -164,13 +157,9 @@ endif
ifdef PTXCONF_DROPBEAR_SHA1
@echo "ptxdist: enabling sha1"
@echo "#define DROPBEAR_SHA1_HMAC 1" >> $(DROPBEAR_LOCALOPTIONS)
- @echo "#define DROPBEAR_DH_GROUP1 1" >> $(DROPBEAR_LOCALOPTIONS)
- @echo "#define DROPBEAR_DH_GROUP14_SHA1 1" >> $(DROPBEAR_LOCALOPTIONS)
else
@echo "ptxdist: disabling sha1"
@echo "#define DROPBEAR_SHA1_HMAC 0" >> $(DROPBEAR_LOCALOPTIONS)
- @echo "#define DROPBEAR_DH_GROUP1 0" >> $(DROPBEAR_LOCALOPTIONS)
- @echo "#define DROPBEAR_DH_GROUP14_SHA1 0" >> $(DROPBEAR_LOCALOPTIONS)
endif
ifdef PTXCONF_DROPBEAR_SHA1_96
@@ -198,6 +187,9 @@ else
endif
# host key / public key
+ @echo "ptxdist: disabling dss"
+ @echo "#define DROPBEAR_DSS 0" >> $(DROPBEAR_LOCALOPTIONS)
+
ifdef PTXCONF_DROPBEAR_RSA
@echo "ptxdist: enabling rsa"
@echo "#define DROPBEAR_RSA 1" >> $(DROPBEAR_LOCALOPTIONS)
@@ -214,7 +206,42 @@ else
@echo "#define DROPBEAR_ECDSA 0" >> $(DROPBEAR_LOCALOPTIONS)
endif
+ifdef PTXCONF_DROPBEAR_ED25519
+ @echo "ptxdist: enabling ed25519"
+ @echo "#define DROPBEAR_ED25519 1" >> $(DROPBEAR_LOCALOPTIONS)
+else
+ @echo "ptxdist: disabling ed25519"
+ @echo "#define DROPBEAR_ED25519 0" >> $(DROPBEAR_LOCALOPTIONS)
+endif
+
+ @echo "ptxdist: disabling u2f security key support"
+ @echo "#define DROPBEAR_SK_KEYS 0" >> $(DROPBEAR_LOCALOPTIONS)
+
# key exchange algorithm
+ifdef PTXCONF_DROPBEAR_DH_GROUP14_SHA256
+ @echo "ptxdist: enabling dh_group14_sha256"
+ @echo "#define DROPBEAR_DH_GROUP14_SHA256 1" >> $(DROPBEAR_LOCALOPTIONS)
+else
+ @echo "ptxdist: disabling dh_group14_sha256"
+ @echo "#define DROPBEAR_DH_GROUP14_SHA256 0" >> $(DROPBEAR_LOCALOPTIONS)
+endif
+
+ifdef PTXCONF_DROPBEAR_DH_GROUP14_SHA1
+ @echo "ptxdist: enabling dh_group14_sha1"
+ @echo "#define DROPBEAR_DH_GROUP14_SHA1 1" >> $(DROPBEAR_LOCALOPTIONS)
+else
+ @echo "ptxdist: disabling dh_group14_sha1"
+ @echo "#define DROPBEAR_DH_GROUP14_SHA1 0" >> $(DROPBEAR_LOCALOPTIONS)
+endif
+
+ifdef PTXCONF_DROPBEAR_DH_GROUP16
+ @echo "ptxdist: enabling dh_group16"
+ @echo "#define DROPBEAR_DH_GROUP16 1" >> $(DROPBEAR_LOCALOPTIONS)
+else
+ @echo "ptxdist: disabling dh_group16"
+ @echo "#define DROPBEAR_DH_GROUP16 0" >> $(DROPBEAR_LOCALOPTIONS)
+endif
+
ifdef PTXCONF_DROPBEAR_ECDH
@echo "ptxdist: enabling ecdh"
@echo "#define DROPBEAR_ECDH 1" >> $(DROPBEAR_LOCALOPTIONS)
@@ -231,6 +258,14 @@ else
@echo "#define DROPBEAR_CURVE25519 0" >> $(DROPBEAR_LOCALOPTIONS)
endif
+ifdef PTXCONF_DROPBEAR_DH_GROUP1
+ @echo "ptxdist: enabling dh_group1"
+ @echo "#define DROPBEAR_DH_GROUP1 1" >> $(DROPBEAR_LOCALOPTIONS)
+else
+ @echo "ptxdist: disabling dh_group1"
+ @echo "#define DROPBEAR_DH_GROUP1 0" >> $(DROPBEAR_LOCALOPTIONS)
+endif
+
# authentication types
ifdef PTXCONF_DROPBEAR_PASSWD
@echo "ptxdist: enabling passwd"
@@ -252,6 +287,10 @@ else
@echo "#define DROPBEAR_CLI_PUBKEY_AUTH 0" >> $(DROPBEAR_LOCALOPTIONS)
endif
+# match ptxdist sftp-server installation path
+ @echo "ptxdist: setting sftp-server path"
+ @echo '#define SFTPSERVER_PATH "/usr/sbin/sftp-server"' >> $(DROPBEAR_LOCALOPTIONS)
+
@$(call touch)
DROPBEAR_MAKE_OPT := all scp
@@ -261,6 +300,16 @@ DROPBEAR_INSTALL_OPT := install inst_scp
# Target-Install
# ----------------------------------------------------------------------------
+ifdef PTXCONF_DROPBEAR_RSA
+DROPBEAR_KEY_TYPES += rsa
+endif
+ifdef PTXCONF_DROPBEAR_ECDSA
+DROPBEAR_KEY_TYPES += ecdsa
+endif
+ifdef PTXCONF_DROPBEAR_ED25519
+DROPBEAR_KEY_TYPES += ed25519
+endif
+
$(STATEDIR)/dropbear.targetinstall:
@$(call targetinfo)
@@ -270,6 +319,12 @@ $(STATEDIR)/dropbear.targetinstall:
@$(call install_fixup, dropbear,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
@$(call install_fixup, dropbear,DESCRIPTION,missing)
+ @$(call install_alternative, dropbear, 0, 0, 0644, /usr/lib/init/dropbear.sh)
+ @$(call install_replace, dropbear, /usr/lib/init/dropbear.sh, \
+ @KEYDIR@, $(PTXCONF_DROPBEAR_KEY_DIR))
+ @$(call install_replace, dropbear, /usr/lib/init/dropbear.sh, \
+ @KEYTYPES@, '$(DROPBEAR_KEY_TYPES)')
+
ifdef PTXCONF_DROPBEAR_DROPBEAR
@$(call install_copy, dropbear, 0, 0, 0755, -, \
/usr/sbin/dropbear)
@@ -278,6 +333,8 @@ endif
ifdef PTXCONF_DROPBEAR_DROPBEAR_KEY
@$(call install_copy, dropbear, 0, 0, 0755, -, \
/usr/bin/dropbearkey)
+
+ @$(call install_alternative, dropbear, 0, 0, 0755, /etc/rc.once.d/dropbear, n)
endif
ifdef PTXCONF_DROPBEAR_DROPBEAR_CONVERT
@@ -298,11 +355,6 @@ endif
ifdef PTXCONF_DROPBEAR_STARTSCRIPT
@$(call install_alternative, dropbear, 0, 0, 0755, /etc/init.d/dropbear, n)
- @$(call install_replace, dropbear, /etc/init.d/dropbear, \
- @KEYDIR@, $(PTXCONF_DROPBEAR_KEY_DIR))
- @$(call install_alternative, dropbear, 0, 0, 0755, /etc/rc.once.d/dropbear, n)
- @$(call install_replace, dropbear, /etc/rc.once.d/dropbear, \
- @KEYDIR@, $(PTXCONF_DROPBEAR_KEY_DIR))
ifneq ($(call remove_quotes,$(PTXCONF_DROPBEAR_BBINIT_LINK)),)
@$(call install_link, dropbear, \
diff --git a/rules/dropwatch.in b/rules/dropwatch.in
index 1fae3e73c..566b6919f 100644
--- a/rules/dropwatch.in
+++ b/rules/dropwatch.in
@@ -9,7 +9,7 @@ config DROPWATCH
select READLINE
help
User space utility for use with dropwatch kernel protocol.
-
+
https://github.com/nhorman/dropwatch
# vim: ft=kconfig noet tw=72
diff --git a/rules/dropwatch.make b/rules/dropwatch.make
index 479437f77..3bf7190b7 100644
--- a/rules/dropwatch.make
+++ b/rules/dropwatch.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_DROPWATCH) += dropwatch
#
# Paths and names
#
-DROPWATCH_VERSION := 1.5.3
-DROPWATCH_MD5 := 64527bb669393e45b9b21f0b91c574c0
+DROPWATCH_VERSION := 1.5.4
+DROPWATCH_MD5 := 94d03b47f424924cf24f21dad941a473
DROPWATCH := dropwatch-$(DROPWATCH_VERSION)
DROPWATCH_SUFFIX := tar.gz
DROPWATCH_URL := https://github.com/nhorman/dropwatch/archive/v$(DROPWATCH_VERSION).${DROPWATCH_SUFFIX}
diff --git a/rules/dt-utils.in b/rules/dt-utils.in
index 2ac7383f2..e342cbe92 100644
--- a/rules/dt-utils.in
+++ b/rules/dt-utils.in
@@ -3,6 +3,7 @@
menuconfig DT_UTILS
tristate
prompt "dt-utils "
+ select HOST_MESON
select UDEV
help
Utilities to work with device trees in Linux userspace:
diff --git a/rules/dt-utils.make b/rules/dt-utils.make
index 0c2fe87cd..f5e08214a 100644
--- a/rules/dt-utils.make
+++ b/rules/dt-utils.make
@@ -1,6 +1,7 @@
# -*-makefile-*-
#
# Copyright (C) 2013 by Sascha Hauer <s.hauer@pengutronix.de>
+# Copyright (C) 2023 Roland Hieber, Pengutronix <rhi@pengutronix.de>
#
# For further information about the PTXdist project and license conditions
# see the README file.
@@ -14,27 +15,36 @@ PACKAGES-$(PTXCONF_DT_UTILS) += dt-utils
#
# Paths and names
#
-DT_UTILS_VERSION := 2021.03.0
-DT_UTILS_MD5 := acf0b5e3b18e40e6172b67fbad2e52fb
+DT_UTILS_VERSION := 2023.11.0
+DT_UTILS_MD5 := 4aa4ef310c76a2baa5df62254f0b7453
DT_UTILS := dt-utils-$(DT_UTILS_VERSION)
DT_UTILS_SUFFIX := tar.xz
DT_UTILS_URL := https://public.pengutronix.de/software/dt-utils/$(DT_UTILS).$(DT_UTILS_SUFFIX)
DT_UTILS_SOURCE := $(SRCDIR)/$(DT_UTILS).$(DT_UTILS_SUFFIX)
DT_UTILS_DIR := $(BUILDDIR)/$(DT_UTILS)
-DT_UTILS_LICENSE := GPL-2.0-only
+
+# Note: the source tarball includes files under GPL-3.0-or-later, CC0-1.0 and
+# LicenseRef-DCO too, which don't make it into the compiled code.
+DT_UTILS_LICENSE := GPL-2.0-only AND GPL-2.0-or-later AND Zlib
DT_UTILS_LICENSE_FILES := \
- file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88 \
- file://src/barebox-state.c;startline=6;endline=13;md5=d2a3fab9d93cf1e5a939e59f75cfc921
+ file://README;startline=67;endline=83;md5=ac976dc9413ba8aee0286c950eca0374 \
+ file://LICENSES/GPL-2.0-only.txt;md5=18d902a0242c37a4604224b47d02f802 \
+ file://src/barebox-state/state_variables.c;startline=1;endline=5;md5=48db6eca86398f8f9806370f78598bf4 \
+ file://LICENSES/GPL-2.0-or-later.txt;md5=df0715377b556699ce0837d45cb8bec9 \
+ file://src/crc32.c;startline=1;endline=9;md5=ea2a8d555d3a705de4bdff531a08e257 \
+ file://LICENSES/Zlib.txt;md5=48d37249fc5889f9a914aabb29781276
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-DT_UTILS_CONF_TOOL := autoconf
+DT_UTILS_CONF_TOOL := meson
DT_UTILS_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- $(GLOBAL_LARGE_FILE_OPTION) \
- --$(call ptx/endis, PTXCONF_DT_UTILS_STATE_COMPAT)-state-backward-compatibility
+ $(CROSS_MESON_USR) \
+ -Dbarebox-state=true \
+ -Dlock-device=true \
+ -Dstate-backward-compatibility=$(call ptx/truefalse, PTXCONF_DT_UTILS_STATE_COMPAT) \
+ -Dtests=false
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/dtc.in b/rules/dtc.in
new file mode 100644
index 000000000..def824b96
--- /dev/null
+++ b/rules/dtc.in
@@ -0,0 +1,37 @@
+## SECTION=system_libraries
+menuconfig DTC
+ tristate
+ prompt "dtc "
+ select HOST_FLEX
+ help
+ Device Tree Compiler (dtc) toolchain. While dtc itself is
+ occasionally needed for device tree manipulation on the
+ target, libfdt may be required.
+
+if DTC
+
+config DTC_DTC
+ bool
+ prompt "dtc"
+
+config DTC_DTDIFF
+ bool
+ prompt "dtdiff"
+
+config DTC_FDTDUMP
+ bool
+ prompt "fdtdump"
+
+config DTC_FDTGET
+ bool
+ prompt "fdtget"
+
+config DTC_FDTOVERLAY
+ bool
+ prompt "fdtoverlay"
+
+config DTC_FDTPUT
+ bool
+ prompt "fdtput"
+
+endif
diff --git a/rules/dtc.make b/rules/dtc.make
index 7c281e8f0..9075e11a6 100644
--- a/rules/dtc.make
+++ b/rules/dtc.make
@@ -1,8 +1,7 @@
# -*-makefile-*-
#
-# Copyright (C) 2007 by Sascha Hauer
-# (C) 2010 by Carsten Schlote
-# (C) 2010 by Michael Olbrich <m.olbrich@pengutronix.de>
+# Copyright (C) 2022 Ladislav Michl <ladis@linux-mips.org>
+# Copyright (C) 2023 Christian Melki <christian.melki@t2data.com>
#
# For further information about the PTXdist project and license conditions
# see the README file.
@@ -11,62 +10,73 @@
#
# We provide this package
#
-ifdef PTXCONF_DTC_INSTALL_OFTREE
PACKAGES-$(PTXCONF_DTC) += dtc
-else
-EXTRA_PACKAGES-$(PTXCONF_DTC) += dtc
-endif
-DTC_VERSION := 1.0.0
-DTC_LICENSE := ignore
-
-ifneq ($(subst PTXCONF_KERNEL_ARCH_STRING,,$(value PTXCONF_DTC_OFTREE_DTS_PATH)),$(value PTXCONF_DTC_OFTREE_DTS_PATH))
-$(call ptx/error, invalid value for PTXCONF_DTC_OFTREE_DTS_PATH:)
-$(call ptx/error, PTXCONF_KERNEL_ARCH_STRING is no longer defined.)
-$(call ptx/error, Use GENERIC_KERNEL_ARCH instead)
-endif
+#
+# Paths and names
+#
+DTC_VERSION := 1.7.0
+DTC_MD5 := f8b4469ad89f4b882091895ec60dde6b
+DTC := dtc-$(DTC_VERSION)
+DTC_SUFFIX := tar.gz
+DTC_URL := https://git.kernel.org/pub/scm/utils/dtc/dtc.git/snapshot/$(DTC).$(DTC_SUFFIX)
+DTC_SOURCE := $(SRCDIR)/$(DTC).$(DTC_SUFFIX)
+DTC_DIR := $(BUILDDIR)/$(DTC)
+DTC_LICENSE := GPL-2.0-or-later OR BSD-2-Clause
+DTC_LICENSE_FILES := \
+ file://README.license;md5=a1eb22e37f09df5b5511b8a278992d0e \
+ file://GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://BSD-2-Clause;md5=5d6306d1b08f8df623178dfd81880927
# ----------------------------------------------------------------------------
-# Target-Install
+# Prepare
# ----------------------------------------------------------------------------
-ptx/dtb = $(notdir $(basename $(strip $(1)))).dtb
+DTC_CONF_TOOL := NO
-dts/env = \
- $(call ptx/env) \
- dts_path=$(PTXCONF_DTC_OFTREE_DTS_PATH) \
- dts_dtb="$(strip $(1))" \
- dts_dts="$(strip $(2))" \
- dts_kernel_dir="$(KERNEL_DIR)" \
- dts_kernel_arch="$(GENERIC_KERNEL_ARCH)"
+DTC_MAKE_ENV := $(CROSS_ENV)
-%.dtb: $(STATEDIR)/dtc.install
- @$(call targetinfo)
- @$(call dts/env, $@, $(DTB_DTS)) ptxd_make_dts_dtb
- @$(call finish)
+DTC_MAKE_OPT := \
+ PREFIX=/usr \
+ NO_PYTHON=1 \
+ NO_VALGRIND=1 \
+ NO_YAML=1
-DTC_DTB = $(foreach dts, $(call remove_quotes,$(PTXCONF_DTC_OFTREE_DTS)), $(IMAGEDIR)/$(call ptx/dtb, $(dts)))
+DTC_INSTALL_OPT := \
+ $(DTC_MAKE_OPT) \
+ install-bin \
+ install-includes \
+ install-lib
-# make sure "ptxdist targetinstall kernel" generates a new device trees
-$(STATEDIR)/kernel.targetinstall.post: $(DTC_DTB)
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+DTC_BIN-y :=
+DTC_BIN-$(PTXCONF_DTC_DTC) += dtc
+DTC_BIN-$(PTXCONF_DTC_DTDIFF) += dtdiff
+DTC_BIN-$(PTXCONF_DTC_FDTDUMP) += fdtdump
+DTC_BIN-$(PTXCONF_DTC_FDTGET) += fdtget
+DTC_BIN-$(PTXCONF_DTC_FDTOVERLAY) += fdtoverlay
+DTC_BIN-$(PTXCONF_DTC_FDTPUT) += fdtput
-$(STATEDIR)/dtc.targetinstall: $(DTC_DTB)
+$(STATEDIR)/dtc.targetinstall:
@$(call targetinfo)
-ifdef PTXCONF_DTC_INSTALL_OFTREE
- @$(call install_init, dtc)
- @$(call install_fixup, dtc, PRIORITY,optional)
- @$(call install_fixup, dtc, SECTION,base)
- @$(call install_fixup, dtc, AUTHOR,"Carsten Schlote <c.schlote@konzeptpark.de>")
- @$(call install_fixup, dtc, DESCRIPTION, "oftree description for machine $(PTXCONF_PLATFORM)")
+ @$(call install_init, dtc)
+ @$(call install_fixup, dtc,PRIORITY,optional)
+ @$(call install_fixup, dtc,SECTION,base)
+ @$(call install_fixup, dtc,AUTHOR,"Ladislav Michl <ladis@linux-mips.org>")
+ @$(call install_fixup, dtc,DESCRIPTION,missing)
- @$(call install_copy, dtc, 0, 0, 0755, /boot);
- @$(foreach dtb, $(DTC_DTB), \
- $(call install_copy, dtc, 0, 0, 0644, \
- "$(dtb)", "/boot/$(notdir $(dtb))")$(ptx/nl))
+ @$(call install_lib, dtc, 0, 0, 0644, libfdt-$(DTC_VERSION))
+
+ @$(foreach tool, $(DTC_BIN-y), \
+ $(call install_copy, dtc, 0, 0, 0755, -, \
+ /usr/bin/$(tool))$(ptx/nl))
@$(call install_finish, dtc)
-endif
+
@$(call touch)
# vim: syntax=make
diff --git a/rules/duktape.in b/rules/duktape.in
new file mode 100644
index 000000000..480106108
--- /dev/null
+++ b/rules/duktape.in
@@ -0,0 +1,8 @@
+## SECTION=system_libraries
+
+config DUKTAPE
+ tristate
+ prompt "duktape"
+ help
+ Duktape is an embeddable Javascript engine, with a focus on
+ portability and compact footprint.
diff --git a/rules/duktape.make b/rules/duktape.make
new file mode 100644
index 000000000..995a1531f
--- /dev/null
+++ b/rules/duktape.make
@@ -0,0 +1,65 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_DUKTAPE) += duktape
+
+#
+# Paths and names
+#
+DUKTAPE_VERSION := 2.7.0
+DUKTAPE_MD5 := b3200b02ab80125b694bae887d7c1ca6
+DUKTAPE := duktape-$(DUKTAPE_VERSION)
+DUKTAPE_SUFFIX := tar.xz
+DUKTAPE_URL := https://github.com/svaarala/duktape/releases/download/v$(DUKTAPE_VERSION)/$(DUKTAPE).$(DUKTAPE_SUFFIX)
+DUKTAPE_SOURCE := $(SRCDIR)/$(DUKTAPE).$(DUKTAPE_SUFFIX)
+DUKTAPE_DIR := $(BUILDDIR)/$(DUKTAPE)
+DUKTAPE_LICENSE := MIT
+DUKTAPE_LICENSE_FILES := \
+ file://LICENSE.txt;md5=3b7825df97b52f926fc71300f7880408
+
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+DUKTAPE_CONF_TOOL := NO
+
+DUKTAPE_MAKE_ENV := \
+ $(CROSS_ENV) \
+ INSTALL_PREFIX=/usr
+
+DUKTAPE_MAKE_OPT := \
+ -f Makefile.sharedlibrary
+
+DUKTAPE_INSTALL_OPT := \
+ $(DUKTAPE_MAKE_OPT) \
+ install
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/duktape.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, duktape)
+ @$(call install_fixup, duktape,PRIORITY,optional)
+ @$(call install_fixup, duktape,SECTION,base)
+ @$(call install_fixup, duktape,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, duktape,DESCRIPTION,missing)
+
+ @$(call install_lib, duktape, 0, 0, 0644, libduktape)
+
+ @$(call install_finish, duktape)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/dump1090fa.in b/rules/dump1090fa.in
new file mode 100644
index 000000000..880d6e4a3
--- /dev/null
+++ b/rules/dump1090fa.in
@@ -0,0 +1,9 @@
+## SECTION=networking
+
+menuconfig DUMP1090FA
+ tristate
+ prompt "dump1090fa "
+ select LIBRTLSDR
+ select NCURSES
+ help
+ FlightAware MODE-S/ADS-B decoder.
diff --git a/rules/dump1090fa.make b/rules/dump1090fa.make
new file mode 100644
index 000000000..e93fe525c
--- /dev/null
+++ b/rules/dump1090fa.make
@@ -0,0 +1,82 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Christian Melki <christian.melki@t2data.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_DUMP1090FA) += dump1090fa
+
+#
+# Paths and names
+#
+DUMP1090FA_VERSION := 8.2
+DUMP1090FA_MD5 := 08e428b6683826ab55cf179d674d149a
+DUMP1090FA := dump1090fa-$(DUMP1090FA_VERSION)
+DUMP1090FA_SUFFIX := tar.gz
+DUMP1090FA_URL := https://github.com/flightaware/dump1090/archive/refs/tags/v$(DUMP1090FA_VERSION).$(DUMP1090FA_SUFFIX)
+DUMP1090FA_SOURCE := $(SRCDIR)/$(DUMP1090FA).$(DUMP1090FA_SUFFIX)
+DUMP1090FA_DIR := $(BUILDDIR)/$(DUMP1090FA)
+DUMP1090FA_LICENSE := GPL-2.0-only
+DUMP1090FA_LICENSE_FILES := \
+ file://COPYING;md5=751419260aa954499f7abaabaa882bbe
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+DUMP1090FA_ARCH := $(call remove_quotes,$(PTXCONF_ARCH_STRING))
+ifeq ($(DUMP1090FA_ARCH),arm64)
+DUMP1090FA_ARCH := aarch64
+endif
+
+DUMP1090FA_CONF_TOOL := NO
+DUMP1090FA_MAKE_ENV := \
+ $(CROSS_ENV) \
+ BLADERF=no \
+ LIMESDR=no \
+ HACKRF=no \
+ RTLSDR=yes \
+ ARCH=$(DUMP1090FA_ARCH) \
+ CPUFEATURES_ARCH=$(DUMP1090FA_ARCH) \
+ CPUFEATURES_UNAME="Linux"
+
+ifdef PTXCONF_ARCH_ARM
+ifndef PTXCONF_ARCH_ARM_NEON
+# don't try to use NEON if it's not available
+DUMP1090FA_MAKE_ENV += CPUFEATURES=no
+endif
+endif
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/dump1090fa.install:
+ @$(call targetinfo)
+ @install -vD -m 755 $(DUMP1090FA_DIR)/dump1090 $(DUMP1090FA_PKGDIR)/usr/bin/dump1090-fa
+ $(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/dump1090fa.targetinstall:
+ @$(call targetinfo)
+ @$(call install_init, dump1090fa)
+ @$(call install_fixup, dump1090fa,PRIORITY,optional)
+ @$(call install_fixup, dump1090fa,SECTION,base)
+ @$(call install_fixup, dump1090fa,AUTHOR,"Christian Melki <christian.melki@t2data.com>")
+ @$(call install_fixup, dump1090fa,DESCRIPTION,missing)
+
+ @$(call install_copy, dump1090fa, 0, 0, 0755, -, /usr/bin/dump1090-fa)
+
+ @$(call install_finish, dump1090fa)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/e2fsprogs.in b/rules/e2fsprogs.in
index 769d49e6d..30563cd91 100644
--- a/rules/e2fsprogs.in
+++ b/rules/e2fsprogs.in
@@ -8,9 +8,9 @@ menuconfig E2FSPROGS
select LIBBLKID
select LIBUUID
help
- The e2fsprogs package provides the filesystem utilities for use
- with the ext2 filesystem. It also supports the ext3 and ext4
- filesystems.
+ The e2fsprogs package provides the filesystem utilities for use
+ with the ext2 filesystem. It also supports the ext3 and ext4
+ filesystems.
if E2FSPROGS
@@ -54,7 +54,6 @@ config E2FSPROGS_LIBEXT2FS
bool
prompt "libext2fs"
select E2FSPROGS_LIBCOM_ERR
- select LIBC_PTHREAD
help
Install libext2fs.
@@ -62,8 +61,6 @@ config E2FSPROGS_LIBSS
bool
prompt "libss"
select E2FSPROGS_LIBCOM_ERR
- select LIBC_DL
- select LIBC_PTHREAD
help
Install libss.
diff --git a/rules/e2fsprogs.make b/rules/e2fsprogs.make
index 09952566e..87f1004f3 100644
--- a/rules/e2fsprogs.make
+++ b/rules/e2fsprogs.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_E2FSPROGS) += e2fsprogs
#
# Paths and names
#
-E2FSPROGS_VERSION := 1.45.6
-E2FSPROGS_MD5 := cccfb706d162514e4f9dbfbc9e5d65ee
+E2FSPROGS_VERSION := 1.47.0
+E2FSPROGS_MD5 := 6b4f18a33873623041857b4963641ee9
E2FSPROGS := e2fsprogs-$(E2FSPROGS_VERSION)
E2FSPROGS_SUFFIX := tar.gz
E2FSPROGS_URL := $(call ptx/mirror, SF, e2fsprogs/e2fsprogs/v$(E2FSPROGS_VERSION)/$(E2FSPROGS).$(E2FSPROGS_SUFFIX))
@@ -37,6 +37,7 @@ E2FSPROGS_LICENSE_FILES := \
E2FSPROGS_CONF_TOOL := autoconf
E2FSPROGS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
+ $(GLOBAL_LARGE_FILE_OPTION) \
--disable-symlink-install \
--disable-relative-symlinks \
--disable-symlink-build \
@@ -49,6 +50,7 @@ E2FSPROGS_CONF_OPT := \
--disable-jbd-debug \
--disable-blkid-debug \
--disable-testio-debug \
+ --disable-developer-features \
--disable-libuuid \
--disable-libblkid \
--disable-subset \
@@ -66,14 +68,14 @@ E2FSPROGS_CONF_OPT := \
--disable-bmap-stats \
--disable-bmap-stats-ops \
--disable-nls \
- --enable-threads=posix \
--disable-rpath \
--disable-fuse2fs \
- --enable-lto \
+ --disable-lto \
--disable-ubsan \
--disable-addrsan \
--disable-threadsan \
- --without-included-gettext
+ --disable-fuzzing \
+ --with-pthread
E2FSPROGS_MAKE_OPT := $(if $(filter 1,$(strip $(PTXDIST_VERBOSE))),V=1)
E2FSPROGS_INSTALL_OPT := install install-libs
diff --git a/rules/easy-rsa.in b/rules/easy-rsa.in
index 282fb9afd..5069a0e96 100644
--- a/rules/easy-rsa.in
+++ b/rules/easy-rsa.in
@@ -14,4 +14,4 @@ config EASY_RSA
lists (CRL). This is for people which don't know how to generate
all PKI files with openssl tool. Additional this is for people which
have a enough less paranoia to generate keys on an embedded device.
- The easy-rsa scripts will be placed at /usr/share/easy-rsa aferwards.
+ The easy-rsa scripts will be placed at /usr/share/easy-rsa afterwards.
diff --git a/rules/easy-rsa.make b/rules/easy-rsa.make
index 6d86e5317..bbf915076 100644
--- a/rules/easy-rsa.make
+++ b/rules/easy-rsa.make
@@ -47,11 +47,11 @@ $(STATEDIR)/easy-rsa.targetinstall:
@$(foreach script,$(EASY_RSA_INSTALL_SCRIPTS), \
$(call install_copy, easy-rsa, 0, 0, 0755, -, \
- /usr/share/easy-rsa/$(script));)
+ /usr/share/easy-rsa/$(script))$(ptx/nl))
@$(foreach file,$(EASY_RSA_INSTALL_FILES), \
$(call install_copy, easy-rsa, 0, 0, 0644, -, \
- /usr/share/easy-rsa/$(file));)
+ /usr/share/easy-rsa/$(file))$(ptx/nl))
@$(call install_finish, easy-rsa)
diff --git a/rules/ecryptfs-utils.in b/rules/ecryptfs-utils.in
index 60025ae27..ee7e131ad 100644
--- a/rules/ecryptfs-utils.in
+++ b/rules/ecryptfs-utils.in
@@ -15,7 +15,7 @@ menuconfig ECRYPTFS_UTILS
select COREUTILS_STAT if ECRYPTFS_UTILS_TESTS
select COREUTILS_TR if ECRYPTFS_UTILS_TESTS
select COREUTILS_TRUNCATE if ECRYPTFS_UTILS_TESTS
- select UTIL_LINUX_NG_MKFS if ECRYPTFS_UTILS_TESTS
+ select UTIL_LINUX_MKFS if ECRYPTFS_UTILS_TESTS
help
eCryptfs is a POSIX-compliant enterprise-class stacked
cryptographic filesystem for Linux.
diff --git a/rules/ecryptfs-utils.make b/rules/ecryptfs-utils.make
index 5c38842d4..b7198d16a 100644
--- a/rules/ecryptfs-utils.make
+++ b/rules/ecryptfs-utils.make
@@ -94,7 +94,7 @@ ifdef PTXCONF_ECRYPTFS_UTILS_MOUNT_ECRYPTFS
endif
@$(foreach prog, $(ECRYPTFS_UTILS_PROGS_y), \
- $(call install_copy, ecryptfs-utils, 0, 0, 0755, -, $(prog));)
+ $(call install_copy, ecryptfs-utils, 0, 0, 0755, -, $(prog))$(ptx/nl))
@$(call install_finish, ecryptfs-utils)
diff --git a/rules/efax.in b/rules/efax.in
index 42a5e7268..ff45094a7 100644
--- a/rules/efax.in
+++ b/rules/efax.in
@@ -5,11 +5,11 @@ config EFAX
help
Programs to send and receive fax messages
- efax is a small ANSI C/POSIX program that provides
+ efax is a small ANSI C/POSIX program that provides
the data transport function for fax applications
using any Class 1 or Class 2 fax modem.
- Another program, efix, converts between fax, text,
+ Another program, efix, converts between fax, text,
bit-map and gray-scale formats. fax, a shell script,
provides a simple user interface to the efax and efix
programs. It allows you to send text or Postscript
diff --git a/rules/efax.make b/rules/efax.make
index b50e39b5f..80d0abddb 100644
--- a/rules/efax.make
+++ b/rules/efax.make
@@ -28,7 +28,6 @@ EFAX_LICENSE := unknown
# Compile
# ----------------------------------------------------------------------------
-EFAX_PATH := PATH=$(CROSS_PATH)
EFAX_MAKE_ENV := $(CROSS_ENV)
EFAX_MAKE_OPT := CC=$(CROSS_CC)
diff --git a/rules/efibootmgr.make b/rules/efibootmgr.make
index 98b9aa97e..904622abd 100644
--- a/rules/efibootmgr.make
+++ b/rules/efibootmgr.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_EFIBOOTMGR) += efibootmgr
#
# Paths and names
#
-EFIBOOTMGR_VERSION := 16
-EFIBOOTMGR_MD5 := ab7cf46774fda951a0e8a40beb65a90e
+EFIBOOTMGR_VERSION := 18
+EFIBOOTMGR_MD5 := a92ce8fd2b282fa30f066797b14095ef
EFIBOOTMGR := efibootmgr-$(EFIBOOTMGR_VERSION)
EFIBOOTMGR_SUFFIX := tar.bz2
EFIBOOTMGR_URL := https://github.com/rhboot/efibootmgr/releases/download/$(EFIBOOTMGR_VERSION)/$(EFIBOOTMGR).$(EFIBOOTMGR_SUFFIX)
diff --git a/rules/efivar.make b/rules/efivar.make
index 1c92dce24..5cbd86d68 100644
--- a/rules/efivar.make
+++ b/rules/efivar.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_EFIVAR) += efivar
#
# Paths and names
#
-EFIVAR_VERSION := 37
-EFIVAR_MD5 := 9f067275c5f7aafdd75bfb364280ac9c
+EFIVAR_VERSION := 39
+EFIVAR_MD5 := a8fc3e79336cd6e738ab44f9bc96a5aa
EFIVAR := efivar-$(EFIVAR_VERSION)
-EFIVAR_SUFFIX := tar.bz2
-EFIVAR_URL := https://github.com/rhboot/efivar/releases/download/$(EFIVAR_VERSION)/$(EFIVAR).$(EFIVAR_SUFFIX)
+EFIVAR_SUFFIX := tar.gz
+EFIVAR_URL := https://github.com/rhboot/efivar/archive/refs/tags/$(EFIVAR_VERSION).$(EFIVAR_SUFFIX)
EFIVAR_SOURCE := $(SRCDIR)/$(EFIVAR).$(EFIVAR_SUFFIX)
EFIVAR_DIR := $(BUILDDIR)/$(EFIVAR)
EFIVAR_LICENSE := LGPL-2.1-only
@@ -28,8 +28,12 @@ EFIVAR_LICENSE := LGPL-2.1-only
# ----------------------------------------------------------------------------
EFIVAR_CONF_TOOL := NO
-EFIVAR_MAKE_ENV := $(CROSS_ENV) PTXDIST_ICECC=$(PTXDIST_ICERUN)
-EFIVAR_INSTALL_OPT := libdir="/usr/lib/" install
+EFIVAR_MAKE_ENV := \
+ $(CROSS_ENV) \
+ LIBDIR=/usr/lib \
+ ERRORS="-Wno-error" \
+ ENABLE_DOCS=0 \
+ PTXDIST_ICECC=$(PTXDIST_ICERUN)
EFIVAR_CFLAGS := \
-flto-partition=none
diff --git a/rules/eggdbus.make b/rules/eggdbus.make
index 46fff9313..09bc6ff19 100644
--- a/rules/eggdbus.make
+++ b/rules/eggdbus.make
@@ -27,7 +27,8 @@ EGGDBUS_LICENSE := LGPL-2.0-only
# Prepare
# ----------------------------------------------------------------------------
-EGGDBUS_AUTOCONF := \
+EGGDBUS_CONF_TOOL := autoconf
+EGGDBUS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
$(GLOBAL_LARGE_FILE_OPTION) \
--disable-static \
@@ -35,7 +36,7 @@ EGGDBUS_AUTOCONF := \
--disable-verbose-mode \
--disable-man-pages \
--disable-gtk-doc \
- --with-eggdbus-tools=$(PTXDIST_SYSROOT_HOST)/bin
+ --with-eggdbus-tools=$(PTXDIST_SYSROOT_HOST)/usr/bin
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/ensmallen.in b/rules/ensmallen.in
new file mode 100644
index 000000000..0e2c772d2
--- /dev/null
+++ b/rules/ensmallen.in
@@ -0,0 +1,9 @@
+## SECTION=system_libraries
+
+config ENSMALLEN
+ tristate
+ select HOST_CMAKE
+ select ARMADILLO
+ prompt "ensmallen"
+ help
+ C++ header-only library for mathematical optimization
diff --git a/rules/ensmallen.make b/rules/ensmallen.make
new file mode 100644
index 000000000..0fb152d07
--- /dev/null
+++ b/rules/ensmallen.make
@@ -0,0 +1,40 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_ENSMALLEN) += ensmallen
+
+#
+# Paths and names
+#
+ENSMALLEN_VERSION := 2.20.0
+ENSMALLEN_MD5 := 99faf9c37d10853bf8b40158626b8256
+ENSMALLEN := ensmallen-$(ENSMALLEN_VERSION)
+ENSMALLEN_SUFFIX := tar.gz
+ENSMALLEN_URL := https://www.ensmallen.org/files/$(ENSMALLEN).$(ENSMALLEN_SUFFIX)
+ENSMALLEN_SOURCE := $(SRCDIR)/$(ENSMALLEN).$(ENSMALLEN_SUFFIX)
+ENSMALLEN_DIR := $(BUILDDIR)/$(ENSMALLEN)
+ENSMALLEN_LICENSE := BSD-3-clause
+ENSMALLEN_LICENSE_FILES := \
+ file://COPYRIGHT.txt;md5=2f1c587ba8b993d5d929e322d6dbdf72
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# cmake
+#
+ENSMALLEN_CONF_TOOL := cmake
+ENSMALLEN_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -DUSE_OPENMP=ON
+
+# vim: syntax=make
diff --git a/rules/etherwake.make b/rules/etherwake.make
index b9871a8e3..70285310b 100644
--- a/rules/etherwake.make
+++ b/rules/etherwake.make
@@ -29,10 +29,13 @@ ETHERWAKE_LICENSE := GPL
# Prepare
# ----------------------------------------------------------------------------
-ETHERWAKE_PATH := PATH=$(CROSS_PATH)
-ETHERWAKE_ENV := $(CROSS_ENV)
+ETHERWAKE_CONF_TOOL := NO
-ETHERWAKE_MAKEVARS := CC=$(CROSS_CC)
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+ETHERWAKE_MAKE_OPT := CC=$(CROSS_CC)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/ethtool.make b/rules/ethtool.make
index dc883d423..66ca739e9 100644
--- a/rules/ethtool.make
+++ b/rules/ethtool.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_ETHTOOL) += ethtool
#
# Paths and names
#
-ETHTOOL_VERSION := 5.12
-ETHTOOL_MD5 := 11fcf0d0287c899fbcbdb48897fe2bab
+ETHTOOL_VERSION := 6.7
+ETHTOOL_MD5 := 0caa1bbe49fc75975362a2b66284a8d2
ETHTOOL_SUFFIX := tar.xz
ETHTOOL := ethtool-$(ETHTOOL_VERSION)
ETHTOOL_URL := $(call ptx/mirror, KERNEL, ../software/network/ethtool/$(ETHTOOL).$(ETHTOOL_SUFFIX))
@@ -33,7 +33,13 @@ ETHTOOL_LICENSE_FILES := \
ETHTOOL_CONF_TOOL := autoconf
ETHTOOL_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
- --enable-pretty-dump
+ --enable-pretty-dump \
+ --enable-netlink
+
+ifdef PTXCONF_KERNEL_HEADER
+ETHTOOL_CPPFLAGS := \
+ -isystem $(KERNEL_HEADERS_INCLUDE_DIR)
+endif
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/eventlog.make b/rules/eventlog.make
index dce692f96..391a86488 100644
--- a/rules/eventlog.make
+++ b/rules/eventlog.make
@@ -27,13 +27,11 @@ EVENTLOG_LICENSE := BSD-3-Clause
# Prepare
# ----------------------------------------------------------------------------
-EVENTLOG_PATH := PATH=$(CROSS_PATH)
-EVENTLOG_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-EVENTLOG_AUTOCONF := $(CROSS_AUTOCONF_USR)
+EVENTLOG_CONF_TOOL := autoconf
+EVENTLOG_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/evtest.make b/rules/evtest.make
index 5cd7f4315..5274d8bb7 100644
--- a/rules/evtest.make
+++ b/rules/evtest.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_EVTEST) += evtest
#
# Paths and names
#
-EVTEST_VERSION := 1.33
-EVTEST_MD5 := c29f43c5e96a07a7c09fa3a977401dd1
+EVTEST_VERSION := 1.35
+EVTEST_MD5 := cc63594043419bb8364d1b54bf3c32e7
EVTEST := evtest-$(EVTEST_VERSION)
EVTEST_SUFFIX := tar.bz2
EVTEST_URL := https://gitlab.freedesktop.org/libevdev/evtest/-/archive/evtest-$(EVTEST_VERSION)/evtest-$(EVTEST).$(EVTEST_SUFFIX)
diff --git a/rules/expat.make b/rules/expat.make
index e486a85ac..03f9ac6b4 100644
--- a/rules/expat.make
+++ b/rules/expat.make
@@ -16,14 +16,17 @@ PACKAGES-$(PTXCONF_EXPAT) += expat
#
# Paths and names
#
-EXPAT_VERSION := 2.4.1
-EXPAT_MD5 := 476cdf4b5e40280316fff36b2086a390
-EXPAT := expat-$(EXPAT_VERSION)
-EXPAT_SUFFIX := tar.bz2
-EXPAT_URL := $(call ptx/mirror, SF, expat/$(EXPAT).$(EXPAT_SUFFIX))
-EXPAT_SOURCE := $(SRCDIR)/$(EXPAT).$(EXPAT_SUFFIX)
-EXPAT_DIR := $(BUILDDIR)/$(EXPAT)
-EXPAT_LICENSE := MIT
+EXPAT_VERSION := 2.6.2
+EXPAT_MD5 := b246f58b25a7629fca6cbd1429400cdf
+EXPAT := expat-$(EXPAT_VERSION)
+EXPAT_SUFFIX := tar.bz2
+EXPAT_RELEASE := R_$(subst .,_,$(EXPAT_VERSION))
+EXPAT_URL := https://github.com/libexpat/libexpat/releases/download/$(EXPAT_RELEASE)/$(EXPAT).$(EXPAT_SUFFIX)
+EXPAT_SOURCE := $(SRCDIR)/$(EXPAT).$(EXPAT_SUFFIX)
+EXPAT_DIR := $(BUILDDIR)/$(EXPAT)
+EXPAT_LICENSE := MIT
+EXPAT_LICENSE_FILES := \
+ file://COPYING;md5=7b3b078238d0901d3b339289117cb7fb
# ----------------------------------------------------------------------------
# Prepare
@@ -42,6 +45,8 @@ EXPAT_CONF_OPT := \
--without-examples \
--without-tests \
--without-libbsd \
+ --with-getrandom \
+ --without-sys-getrandom \
--without-docbook
# ----------------------------------------------------------------------------
diff --git a/rules/f2fs-tools.make b/rules/f2fs-tools.make
index f37e9bdfc..920450f9f 100644
--- a/rules/f2fs-tools.make
+++ b/rules/f2fs-tools.make
@@ -16,14 +16,16 @@ endif
#
# Paths and names
#
-F2FS_TOOLS_VERSION := 1.12.0
-F2FS_TOOLS_MD5 := 52d8ab4d6b6e7b8d416cb1c0da518fb0
+F2FS_TOOLS_VERSION := 1.14.0
+F2FS_TOOLS_MD5 := df05b251ce1e9966450bb801da91d7a3
F2FS_TOOLS := f2fs-tools-$(F2FS_TOOLS_VERSION)
-F2FS_TOOLS_SUFFIX := tar.xz
-F2FS_TOOLS_URL := git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git;tag=v$(F2FS_TOOLS_VERSION)
+F2FS_TOOLS_SUFFIX := tar.gz
+F2FS_TOOLS_URL := https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git/snapshot/$(F2FS_TOOLS).$(F2FS_TOOLS_SUFFIX)
F2FS_TOOLS_SOURCE := $(SRCDIR)/$(F2FS_TOOLS).$(F2FS_TOOLS_SUFFIX)
F2FS_TOOLS_DIR := $(BUILDDIR)/$(F2FS_TOOLS)
-F2FS_TOOLS_LICENSE := GPL-2.0-or-later LGPL-2.1-or-later
+F2FS_TOOLS_LICENSE := GPL-2.0-or-later AND LGPL-2.1-or-later
+F2FS_TOOLS_LICENSE_FILES := \
+ file://COPYING;md5=362b4b2594cd362b874a97718faa51d3
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/failmalloc.in b/rules/failmalloc.in
deleted file mode 100644
index 613faf8c9..000000000
--- a/rules/failmalloc.in
+++ /dev/null
@@ -1,10 +0,0 @@
-## SECTION=debug_tools
-config FAILMALLOC
- tristate
- prompt "failmalloc"
- help
- The idea behind failmalloc is to demonstrate what really happens if
- memory allocation fails. Refer http://www.nongnu.org/failmalloc/ for
- further details and how to use it. This library can be used on demand
- with the LD_PRELOAD mechanism.
-
diff --git a/rules/failmalloc.make b/rules/failmalloc.make
deleted file mode 100644
index 0b3a385f9..000000000
--- a/rules/failmalloc.make
+++ /dev/null
@@ -1,62 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2009 by Juergen Beisert
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_FAILMALLOC) += failmalloc
-
-#
-# Paths and names
-#
-FAILMALLOC_VERSION := 1.0
-FAILMALLOC_MD5 := eae617cb8d800dc17efe55b26565a7e2
-FAILMALLOC := failmalloc-$(FAILMALLOC_VERSION)
-FAILMALLOC_SUFFIX := tar.gz
-FAILMALLOC_URL := http://download.savannah.nongnu.org/releases/failmalloc/$(FAILMALLOC).$(FAILMALLOC_SUFFIX)
-FAILMALLOC_SOURCE := $(SRCDIR)/$(FAILMALLOC).$(FAILMALLOC_SUFFIX)
-FAILMALLOC_DIR := $(BUILDDIR)/$(FAILMALLOC)
-FAILMALLOC_LICENSE := LGPL-2.1-or-later
-FAILMALLOC_LICENSE_FILES := \
- file://failmalloc.c;md5=9b4aa792b46eded7ca560d0f1a2d96a5;startline=3;endline=18 \
- file://COPYING;md5=fbc093901857fcd118f065f900982c24
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-FAILMALLOC_PATH := PATH=$(CROSS_PATH)
-FAILMALLOC_ENV := $(CROSS_ENV)
-
-#
-# autoconf
-#
-FAILMALLOC_AUTOCONF := \
- $(CROSS_AUTOCONF_USR) \
- --enable-static=no
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/failmalloc.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, failmalloc)
- @$(call install_fixup, failmalloc,PRIORITY,optional)
- @$(call install_fixup, failmalloc,SECTION,base)
- @$(call install_fixup, failmalloc,AUTHOR,"Juergen Beisert <j.beisert@pengutronix.de>")
- @$(call install_fixup, failmalloc,DESCRIPTION,missing)
-
- @$(call install_lib, failmalloc, 0, 0, 0644, libfailmalloc)
-
- @$(call install_finish, failmalloc)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/fbset.in b/rules/fbset.in
deleted file mode 100644
index 64dd9ec55..000000000
--- a/rules/fbset.in
+++ /dev/null
@@ -1,21 +0,0 @@
-## SECTION=multimedia_framebuffer
-
-menuconfig FBSET
- tristate
- prompt "fbset "
- select HOST_FLEX
- help
- fbset is a system utility to show or change the settings
- of the frame buffer device. The frame buffer device pro-
- vides a simple and unique interface to access different
- kinds of graphic displays.
-
-if FBSET
-
-config FBSET_FBMODES
- bool
- prompt "install /etc/fb.modes"
- help
- Install /etc/fb.modes file.
-
-endif
diff --git a/rules/fbset.make b/rules/fbset.make
deleted file mode 100644
index 955480b21..000000000
--- a/rules/fbset.make
+++ /dev/null
@@ -1,55 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2011 by Sascha Hauer <s.hauer@pengutronix.de>
-# Copyright (C) 2011 by Wolfram Sang <w.sang@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_FBSET) += fbset
-
-#
-# Paths and names
-#
-FBSET_VERSION := 2.1
-FBSET_MD5 := e547cfcbb8c1a4f2a6b8ba4acb8b7164
-FBSET := fbset-$(FBSET_VERSION)
-FBSET_SUFFIX := tar.gz
-FBSET_URL := http://users.telenet.be/geertu/Linux/fbdev/$(FBSET).$(FBSET_SUFFIX)
-FBSET_SOURCE := $(SRCDIR)/$(FBSET).$(FBSET_SUFFIX)
-FBSET_DIR := $(BUILDDIR)/$(FBSET)
-FBSET_LICENSE := GPL-2.0-only
-
-# ----------------------------------------------------------------------------
-# Compile
-# ----------------------------------------------------------------------------
-
-FBSET_MAKE_ENV := $(CROSS_ENV)
-FBSET_MAKE_PAR := NO
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/fbset.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, fbset)
- @$(call install_fixup, fbset,PRIORITY,optional)
- @$(call install_fixup, fbset,SECTION,base)
- @$(call install_fixup, fbset,AUTHOR,"Sascha Hauer <s.hauer@pengutronix.de>")
- @$(call install_fixup, fbset,DESCRIPTION,missing)
-
- @$(call install_copy, fbset, 0, 0, 0755, -, /usr/sbin/fbset)
-ifdef PTXCONF_FBSET_FBMODES
- @$(call install_alternative, fbset, 0, 0, 0644, /etc/fb.modes)
-endif
- @$(call install_finish, fbset)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/fbtest.make b/rules/fbtest.make
index cbf969733..5d0810bf9 100644
--- a/rules/fbtest.make
+++ b/rules/fbtest.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_FBTEST) += fbtest
#
# Paths and names
#
-FBTEST_VERSION := 2014-08-11-g29ab066
-FBTEST_MD5 := 48d1f4e6450ded48c44733539c1c9614
+FBTEST_VERSION := 2023-03-28-g47f6351
+FBTEST_MD5 := 3523551d53c89c83505cad8d9cbf2bfe
FBTEST := fbtest-$(FBTEST_VERSION)
FBTEST_SUFFIX := tar.gz
FBTEST_URL := https://git.kernel.org/pub/scm/linux/kernel/git/geert/fbtest.git;tag=$(FBTEST_VERSION)
@@ -28,7 +28,6 @@ FBTEST_LICENSE := GPL-2.0-only
# Compile
# ----------------------------------------------------------------------------
-FBTEST_PATH := PATH=$(CROSS_PATH)
FBTEST_MAKE_ENV := $(CROSS_ENV) CROSS_COMPILE=$(COMPILER_PREFIX)
FBTEST_MAKE_PAR := NO
diff --git a/rules/fbutils.make b/rules/fbutils.make
index 3d52b6c9e..024b57039 100644
--- a/rules/fbutils.make
+++ b/rules/fbutils.make
@@ -27,7 +27,6 @@ FBUTILS_LICENSE := GPL-3.0-only
# Compile
# ----------------------------------------------------------------------------
-FBUTILS_PATH := PATH=$(CROSS_PATH)
FBUTILS_MAKE_ENV := $(CROSS_ENV)
FBUTILS_MAKE_PAR := NO
diff --git a/rules/fcgi.make b/rules/fcgi.make
index dbe4e6f0d..1ff327672 100644
--- a/rules/fcgi.make
+++ b/rules/fcgi.make
@@ -26,7 +26,8 @@ FCGI_LICENSE_FILES := file://LICENSE.TERMS;md5=e3aacac3a647af6e7e31f181cda0a06a
# Prepare
# ----------------------------------------------------------------------------
-FCGI_AUTOCONF := $(CROSS_AUTOCONF_USR)
+FCGI_CONF_TOOL := autoconf
+FCGI_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/ffmpeg.make b/rules/ffmpeg.make
index 49b2bdeeb..a4b2bf846 100644
--- a/rules/ffmpeg.make
+++ b/rules/ffmpeg.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_FFMPEG) += ffmpeg
#
# Paths and names
#
-FFMPEG_VERSION := 4.3.1
-FFMPEG_MD5 := 5d1956bb552e91dc3b8287db346d0d58
+FFMPEG_VERSION := 6.1
+FFMPEG_MD5 := 5898f671dca522f537c3b57d1d6b57a3
FFMPEG := ffmpeg-$(FFMPEG_VERSION)
FFMPEG_SUFFIX := tar.xz
FFMPEG_URL := https://www.ffmpeg.org/releases/$(FFMPEG).$(FFMPEG_SUFFIX)
@@ -49,7 +49,6 @@ endif
FFMPEG_CONF_TOOL := autoconf
FFMPEG_CONF_OPT := \
--prefix=/usr \
- --libdir=/usr/$(CROSS_LIB_DIR) \
--disable-rpath \
--disable-gpl \
--disable-version3 \
@@ -79,18 +78,12 @@ FFMPEG_CONF_OPT := \
--disable-swscale \
--disable-postproc \
--enable-avfilter \
- --disable-avresample \
\
--enable-pthreads \
--disable-network \
- --enable-dct \
--enable-dwt \
--enable-error-resilience \
--enable-lsp \
- --enable-lzo \
- --enable-mdct \
- --enable-rdft \
- --enable-fft \
--enable-faan \
--enable-pixelutils \
\
@@ -121,9 +114,10 @@ FFMPEG_CONF_OPT := \
--disable-iconv \
--disable-jni \
--disable-ladspa \
- --disable-large-tests \
+ --disable-lcms2 \
--disable-libaom \
--disable-libaribb24 \
+ --disable-libaribcaption \
--disable-libass \
--disable-libbluray \
--disable-libbs2b \
@@ -139,12 +133,14 @@ FFMPEG_CONF_OPT := \
--disable-libfontconfig \
--disable-libfreetype \
--disable-libfribidi \
- --disable-libgme \
+ --disable-libharfbuzz \
--disable-libglslang \
+ --disable-libgme \
--disable-libgsm \
--disable-libiec61883 \
--disable-libilbc \
--disable-libjack \
+ --disable-libjxl \
--disable-libklvanc \
--disable-libkvazaar \
--disable-liblensfun \
@@ -156,12 +152,17 @@ FFMPEG_CONF_OPT := \
--disable-libopenh264 \
--disable-libopenjpeg \
--disable-libopenmpt \
+ --disable-libopenvino \
--disable-libopus \
+ --disable-libplacebo \
--disable-libpulse \
--disable-librabbitmq \
+ --disable-librav1e \
+ --disable-librist \
--disable-librsvg \
--disable-librubberband \
--disable-librtmp \
+ --disable-libshaderc \
--disable-libshine \
--disable-libsmbclient \
--disable-libsnappy \
@@ -169,18 +170,19 @@ FFMPEG_CONF_OPT := \
--disable-libspeex \
--disable-libsrt \
--disable-libssh \
+ --disable-libsvtav1 \
--disable-libtensorflow \
--disable-libtesseract \
--disable-libtheora \
--disable-libtls \
--disable-libtwolame \
+ --disable-libuavs3d \
--disable-libv4l2 \
--disable-libvidstab \
--disable-libvmaf \
--disable-libvo-amrwbenc \
--disable-libvorbis \
--disable-libvpx \
- --disable-libwavpack \
--disable-libwebp \
--disable-libx264 \
--disable-libx265 \
@@ -201,6 +203,7 @@ FFMPEG_CONF_OPT := \
--disable-mbedtls \
--disable-mediacodec \
--disable-mediafoundation \
+ --disable-metal \
--disable-libmysofa \
--disable-openal \
--disable-opencl \
@@ -224,6 +227,7 @@ FFMPEG_CONF_OPT := \
--disable-ffnvcodec \
--disable-libdrm \
--disable-libmfx \
+ --disable-libvpl \
--disable-libnpp \
--disable-mmal \
--disable-nvdec \
@@ -245,7 +249,6 @@ FFMPEG_CONF_OPT := \
--target-exec=false \
--doxygen=false \
--enable-pic \
- --disable-lto \
\
--enable-optimizations \
--disable-stripping
diff --git a/rules/fftw.make b/rules/fftw.make
index ea029401e..8c1a8fff9 100644
--- a/rules/fftw.make
+++ b/rules/fftw.make
@@ -33,13 +33,11 @@ FFTW_LICENSE_FILES := \
# Prepare
# ----------------------------------------------------------------------------
-FFTW_PATH := PATH=$(CROSS_PATH)
-FFTW_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-FFTW_AUTOCONF := \
+FFTW_CONF_TOOL := autoconf
+FFTW_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--enable-shared
diff --git a/rules/figlet.in b/rules/figlet.in
index 503330a8b..a9b392950 100644
--- a/rules/figlet.in
+++ b/rules/figlet.in
@@ -8,7 +8,7 @@ config FIGLET
this one:
__ _ _ _
- / _(_) __ _| | ___| |_
+ / _(_) __ _| | ___| |_
| |_| |/ _` | |/ _ \ __|
| _| | (_| | | __/ |_
|_| |_|\__, |_|\___|\__|
diff --git a/rules/figlet.make b/rules/figlet.make
index 04e2fa074..3dad77154 100644
--- a/rules/figlet.make
+++ b/rules/figlet.make
@@ -23,7 +23,9 @@ FIGLET_SUFFIX := tar.gz
FIGLET_URL := ftp://ftp.figlet.org/pub/figlet/program/unix/$(FIGLET).$(FIGLET_SUFFIX)
FIGLET_SOURCE := $(SRCDIR)/$(FIGLET).$(FIGLET_SUFFIX)
FIGLET_DIR := $(BUILDDIR)/$(FIGLET)
-FIGLET_LICENSE := figlet
+FIGLET_LICENSE := BSD-3-clause
+FIGLET_LICENSE_FILES := \
+ file://LICENSE;md5=1688bcd97b27704f1afcac7336409857
# ----------------------------------------------------------------------------
# Compile
diff --git a/rules/file.in b/rules/file.in
index 5ca9dc5db..6689e6b4b 100644
--- a/rules/file.in
+++ b/rules/file.in
@@ -14,7 +14,7 @@ menuconfig FILE
charge - don't rely on filename extensions to tell you the type of a
file, but look at the file's actual contents. This is, of course, more
reliable, but requires a bit of I/O.
-
+
http://www.darwinsys.com/file/
if FILE
diff --git a/rules/file.make b/rules/file.make
index dafbd14ac..337b30bb4 100644
--- a/rules/file.make
+++ b/rules/file.make
@@ -30,7 +30,7 @@ FILE_LICENSE_FILES := \
# Prepare
# ----------------------------------------------------------------------------
-FILE_PATH := PATH=$(PTXDIST_SYSROOT_HOST)/bin/file:$(CROSS_PATH)
+FILE_PATH := PATH=$(PTXDIST_SYSROOT_HOST)/usr/bin/file:$(CROSS_PATH)
FILE_CONF_TOOL := autoconf
FILE_CONF_OPT := \
diff --git a/rules/findutils.in b/rules/findutils.in
index 35f7dc599..2977cfb04 100644
--- a/rules/findutils.in
+++ b/rules/findutils.in
@@ -21,14 +21,14 @@ comment "BusyBox' find is selected!"
depends on BUSYBOX_FIND
config FINDUTILS_XARGS
- bool
+ bool
depends on !BUSYBOX_XARGS || ALLYES
prompt "xargs"
help
Can be used to apply a given command to a list of files
comment "BusyBox' xargs is selected!"
- depends on BUSYBOX_XARGS
+ depends on BUSYBOX_XARGS
config FINDUTILS_DATABASE
bool
diff --git a/rules/findutils.make b/rules/findutils.make
index 2fd513a36..d3dab34e8 100644
--- a/rules/findutils.make
+++ b/rules/findutils.make
@@ -32,8 +32,6 @@ FINDUTILS_LICENSE_FILES := \
# Prepare
# ----------------------------------------------------------------------------
-FINDUTILS_PATH := PATH=$(CROSS_PATH)
-FINDUTILS_ENV := $(CROSS_ENV)
#
# where to place the database at runtime
#
@@ -41,7 +39,8 @@ FINDUTILS_DBASE_PATH := /var/lib/locate
#
# autoconf
#
-FINDUTILS_AUTOCONF := \
+FINDUTILS_CONF_TOOL := autoconf
+FINDUTILS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--libexecdir=/usr/bin \
--localstatedir=$(FINDUTILS_DBASE_PATH) \
diff --git a/rules/fio.make b/rules/fio.make
index 1e40b30e2..97bd74aea 100644
--- a/rules/fio.make
+++ b/rules/fio.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_FIO) += fio
#
# Paths and names
#
-FIO_VERSION := 3.23
-FIO_MD5 := 497f8bad953723a8c4c46f2a58a13b24
+FIO_VERSION := 3.32
+FIO_MD5 := 505dd0fea0850cc90c994c65133407e1
FIO := fio-$(FIO_VERSION)
FIO_SUFFIX := tar.gz
FIO_URL := https://brick.kernel.dk/snaps/$(FIO).$(FIO_SUFFIX)
@@ -40,11 +40,14 @@ FIO_CONF_OPT := \
--disable-rbd \
--disable-http \
--disable-gfapi \
+ --disable-libnfs \
--disable-lex \
--disable-pmem \
--disable-native \
+ --disable-xnvme \
--disable-libzbc \
--disable-tcmalloc \
+ --disable-dfs
FIO_FLAGS_BLACKLIST := \
-lz \
diff --git a/rules/flac.make b/rules/flac.make
index 580fbe4db..8b323678b 100644
--- a/rules/flac.make
+++ b/rules/flac.make
@@ -14,14 +14,20 @@ PACKAGES-$(PTXCONF_FLAC) += flac
#
# Paths and names
#
-FLAC_VERSION := 1.3.2
-FLAC_MD5 := 454f1bfa3f93cc708098d7890d0499bd
+FLAC_VERSION := 1.3.3
+FLAC_MD5 := 26703ed2858c1fc9ffc05136d13daa69
FLAC := flac-$(FLAC_VERSION)
FLAC_SUFFIX := tar.xz
FLAC_URL := http://downloads.xiph.org/releases/flac/$(FLAC).$(FLAC_SUFFIX)
FLAC_SOURCE := $(SRCDIR)/$(FLAC).$(FLAC_SUFFIX)
FLAC_DIR := $(BUILDDIR)/$(FLAC)
FLAC_LICENSE := BSD-3-Clause AND GPL-2.0-or-later AND LGPL-2.0-or-later
+FLAC_LICENSE_FILES := \
+ file://COPYING.Xiph;md5=b59c1b6d7fc0fb7965f821a3d36505e3 \
+ file://src/flac/analyze.c;startline=1;endline=18;md5=09777e2934947a36f13568d0beb81199 \
+ file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://src/share/grabbag/file.c;startline=1;endline=18;md5=d7caed91c0cec733420f04cf36386d01 \
+ file://COPYING.LGPL;md5=fbc093901857fcd118f065f900982c24
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/flashbench.make b/rules/flashbench.make
index 19b8d5c2e..d81e49c1e 100644
--- a/rules/flashbench.make
+++ b/rules/flashbench.make
@@ -30,7 +30,7 @@ FLASHBENCH_LICENSE := GPL v2
FLASHBENCH_CONF_TOOL := NO
FLASHBENCH_MAKE_ENV := $(CROSS_ENV)
-# Use '=' instaed of ':=' because $(PTXCONF_FLASHBENCH_MAX_BUFSIZE) is not defined
+# Use '=' instead of ':=' because $(PTXCONF_FLASHBENCH_MAX_BUFSIZE) is not defined
# when flashbench is not selected to be built.
FLASHBENCH_MAKE_OPT = CC=$(CROSS_CC) \
EXTRA_CFLAGS=-DMAX_BUFSIZE=$(shell expr 1024 \* 1024 \* $(PTXCONF_FLASHBENCH_MAX_BUFSIZE))
diff --git a/rules/flup.in b/rules/flup.in
deleted file mode 100644
index d786087e6..000000000
--- a/rules/flup.in
+++ /dev/null
@@ -1,11 +0,0 @@
-## SECTION=python
-
-config FLUP
- tristate
- select PYTHON
- select PYTHON_HASHLIB
- prompt "flup"
- help
- A python package that provides a collection of WSGI modules,
- including fastcgi.
-
diff --git a/rules/flup.make b/rules/flup.make
deleted file mode 100644
index 3a9d51059..000000000
--- a/rules/flup.make
+++ /dev/null
@@ -1,57 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2011 by Robert Schwebel <r.schwebel@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_FLUP) += flup
-
-#
-# Paths and names
-#
-FLUP_VERSION := 1.0.2
-FLUP_MD5 := 24dad7edc5ada31dddd49456ee8d5254
-FLUP := flup-$(FLUP_VERSION)
-FLUP_SUFFIX := tar.gz
-FLUP_URL := https://pypi.python.org/packages/source/f/flup/$(FLUP).$(FLUP_SUFFIX)
-FLUP_SOURCE := $(SRCDIR)/$(FLUP).$(FLUP_SUFFIX)
-FLUP_DIR := $(BUILDDIR)/$(FLUP)
-FLUP_LICENSE := BSD AND MIT
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-FLUP_CONF_TOOL := python
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/flup.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, flup)
- @$(call install_fixup, flup,PRIORITY,optional)
- @$(call install_fixup, flup,SECTION,base)
- @$(call install_fixup, flup,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, flup,DESCRIPTION,missing)
-
- @$(call install_copy, flup, 0, 0, 0755, $(PYTHON_SITEPACKAGES))
- @$(call install_copy, flup, 0, 0, 0755, $(PYTHON_SITEPACKAGES)/flup)
- @$(call install_copy, flup, 0, 0, 0755, $(PYTHON_SITEPACKAGES)/flup/client)
- @$(call install_copy, flup, 0, 0, 0755, $(PYTHON_SITEPACKAGES)/flup/server)
-
- @$(call install_glob, flup, 0, 0, -, \
- /usr/lib/python$(PYTHON_MAJORMINOR)/site-packages/flup,, *.py)
-
- @$(call install_finish, flup)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/flup6.make b/rules/flup6.make
index faea5d716..bc28a0e6b 100644
--- a/rules/flup6.make
+++ b/rules/flup6.make
@@ -18,7 +18,7 @@ FLUP6_VERSION := 1.1
FLUP6_MD5 := 67c20571a6e637b1f457031767fe8ae7
FLUP6 := flup6-$(FLUP6_VERSION)
FLUP6_SUFFIX := tar.gz
-FLUP6_URL := https://pypi.python.org/packages/source/f/flup6/$(FLUP6).$(FLUP6_SUFFIX)
+FLUP6_URL := $(call ptx/mirror-pypi, flup6, $(FLUP6).$(FLUP6_SUFFIX))
FLUP6_SOURCE := $(SRCDIR)/$(FLUP6).$(FLUP6_SUFFIX)
FLUP6_DIR := $(BUILDDIR)/$(FLUP6)
FLUP6_LICENSE := BSD AND MIT
diff --git a/rules/fluxbox.in b/rules/fluxbox.in
deleted file mode 100644
index 74f91c031..000000000
--- a/rules/fluxbox.in
+++ /dev/null
@@ -1,140 +0,0 @@
-## SECTION=x_windowmanagers
-
-menuconfig FLUXBOX
- tristate
- select XORG_LIB_ICE
- select XORG_LIB_SM
- select XORG_LIB_X11
- select XORG_LIB_XPM if FLUXBOX_XPM
- select XORG_LIB_XFT if FLUXBOX_XFT
- select XORG_LIB_XINERAMA if FLUXBOX_XINERAMA
- select LIBC_M
- select GCCLIBS_CXX
- select GCCLIBS_GCC_S
-# select FIXME if FLUXBOX_IMLIB2
- prompt "fluxbox "
- help
- Fluxbox is a fork of the original Blackbox 0.61.1 sourcecode with
- different goals.
- For more information and extensive documentation go to:
- http://fluxbox.org/version-0.9.php
-
-if FLUXBOX
-config FLUXBOX_IMLIB2
- bool
- # imlib2 ist not in PTXdist
- depends on BROKEN
- prompt "imlib based theme support"
- help
- --enable-imlib2 Imlib2 (pixmap themes) support
-
-config FLUXBOX_XPM
- bool
- prompt "xpm based theme support"
- help
- --enable-xpm Xpm (pixmap themes) support
-
-config FLUXBOX_XFT
- bool
- prompt "Antialiasing font support"
- help
- Fluxbox can use the Xft library to perform anti-aliased text
- rendering.
-
-config FLUXBOX_XINERAMA
- bool
- prompt "Xinerama support"
- help
- whether to build support for the Xinerama extension
-
-config FLUXBOX_THEMES
- bool
- prompt "install themes"
- help
- Enable this entry to select some themes fluxbox provides
-
-if FLUXBOX_THEMES
-config FLUXBOX_THEMES_ARCH
- bool
- depends on FLUXBOX_XPM
- prompt "Arch"
-
-config FLUXBOX_THEMES_BLOE
- bool
- depends on FLUXBOX_XPM
- prompt "Bloe"
-
-config FLUXBOX_THEMES_BLUEFLUX
- bool
- depends on FLUXBOX_XPM
- prompt "BlueFlux"
-
-config FLUXBOX_THEMES_BORABLACK
- bool
- prompt "Bora Black"
-
-config FLUXBOX_THEMES_BORABLUE
- bool
- prompt "Bora Blue"
-
-config FLUXBOX_THEMES_BORAGREEN
- bool
- prompt "Bora Green"
-
-config FLUXBOX_THEMES_CARP
- bool
- prompt "Carp"
-
-config FLUXBOX_THEMES_EMERGE
- bool
- depends on FLUXBOX_XPM
- prompt "Emerge"
-
-config FLUXBOX_THEMES_GREENTEA
- bool
- prompt "Green Tea"
-
-config FLUXBOX_THEMES_OSTRICH
- bool
- prompt "Ostrich"
-
-config FLUXBOX_THEMES_ZIMEKBISQUE
- bool
- prompt "Zimek Bisque"
-
-config FLUXBOX_THEMES_ZIMEKDARKBLUE
- bool
- prompt "Zimek Dark Blue"
-
-config FLUXBOX_THEMES_ZIMEKGREEN
- bool
- prompt "Zimek Green"
-
-choice
- prompt "Default theme"
- depends on FLUXBOX_XPM
-
-config FLUXBOX_DEFAULT_THEME_ARCH
- bool
- depends on FLUXBOX_THEMES_ARCH
- prompt "Arch"
-
-config FLUXBOX_DEFAULT_THEME_BLOE
- bool
- depends on FLUXBOX_THEMES_BLOE
- prompt "Bloe"
-
-config FLUXBOX_DEFAULT_THEME_BLUEFLUX
- bool
- depends on FLUXBOX_THEMES_BLUEFLUX
- prompt "Blue Flux"
-
-config FLUXBOX_DEFAULT_THEME_EMERGE
- bool
- depends on FLUXBOX_THEMES_EMERGE
- prompt "Emerge"
-
-endchoice
-
-endif
-endif
diff --git a/rules/fluxbox.make b/rules/fluxbox.make
deleted file mode 100644
index a52196f6d..000000000
--- a/rules/fluxbox.make
+++ /dev/null
@@ -1,175 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2011 by Juergen Beisert <jbe@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_FLUXBOX) += fluxbox
-
-#
-# Paths and names
-#
-FLUXBOX_VERSION := 1.3.2
-FLUXBOX_MD5 := f95b0bdb9ee41bfac124bd0fc601f248
-FLUXBOX := fluxbox-$(FLUXBOX_VERSION)
-FLUXBOX_SUFFIX := tar.bz2
-FLUXBOX_URL := $(call ptx/mirror, SF, fluxbox/$(FLUXBOX).$(FLUXBOX_SUFFIX))
-FLUXBOX_SOURCE := $(SRCDIR)/$(FLUXBOX).$(FLUXBOX_SUFFIX)
-FLUXBOX_DIR := $(BUILDDIR)/$(FLUXBOX)
-FLUXBOX_LICENSE := unknown
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-FLUXBOX_CONF_TOOL := autoconf
-FLUXBOX_CONF_OPT := $(CROSS_AUTOCONF_USR) \
- --disable-randr \
- --disable-randr1.2 \
- --disable-xrender \
- --disable-debug \
- --disable-test \
- --enable-newwmspec \
- --disable-shape \
- --disable-slit \
- --enable-remember \
- --disable-nls \
- --disable-timed-cache \
- --disable-xmb \
- --disable-fribidi
-
-# force specific path
-FLUXBOX_CONF_OPT += \
- --with-menu=/usr/share/fluxbox/menu \
- --with-windowmenu=/usr/share/fluxbox/windowmenu \
- --with-keys=/usr/share/fluxbox/keys \
- --with-apps=/usr/share/fluxbox/apps \
- --with-overlay=/usr/share/fluxbox/overlay \
- --with-init=/usr/share/fluxbox/init
-
-ifdef PTXCONF_FLUXBOX_XINERAMA
-FLUXBOX_CONF_OPT += --enable-xinerama
-else
-FLUXBOX_CONF_OPT += --disable-xinerama
-endif
-
-ifdef PTXCONF_FLUXBOX_THEMES
-ifdef PTXCONF_FLUXBOX_DEFAULT_THEME_BLOE
-FLUXBOX_CONF_OPT += --with-style=/usr/share/fluxbox/styles/bloe
-endif
-ifdef PTXCONF_FLUXBOX_DEFAULT_THEME_ARCH
-FLUXBOX_CONF_OPT += --with-style=/usr/share/fluxbox/styles/arch
-endif
-ifdef PTXCONF_FLUXBOX_DEFAULT_THEME_BLUEFLUX
-FLUXBOX_CONF_OPT += --with-style=/usr/share/fluxbox/styles/BlueFlux
-endif
-ifdef PTXCONF_FLUXBOX_DEFAULT_THEME_EMERGE
-FLUXBOX_CONF_OPT += --with-style=/usr/share/fluxbox/styles/Emerge
-endif
-endif
-
-
-ifdef PTXCONF_FLUXBOX_IMLIB2
-FLUXBOX_CONF_OPT += --enable-imlib2
-else
-FLUXBOX_CONF_OPT += --disable-imlib2
-endif
-
-ifdef PTXCONF_FLUXBOX_XPM
-FLUXBOX_CONF_OPT += --enable-xpm
-else
-FLUXBOX_CONF_OPT += --disable-xpm
-endif
-
-ifdef PTXCONF_FLUXBOX_XFT
-FLUXBOX_CONF_OPT += --enable-xft
-else
-FLUXBOX_CONF_OPT += --disable-xft
-endif
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/fluxbox.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, fluxbox)
- @$(call install_fixup, fluxbox,PRIORITY,optional)
- @$(call install_fixup, fluxbox,SECTION,base)
- @$(call install_fixup, fluxbox,AUTHOR,"Juergen Beisert <jbe@pengutronix.de>")
- @$(call install_fixup, fluxbox,DESCRIPTION,missing)
-
-
- @$(call install_copy, fluxbox, 0, 0, 0755, -, /usr/bin/fbrun)
- @$(call install_copy, fluxbox, 0, 0, 0755, -, /usr/bin/fbsetbg)
- @$(call install_copy, fluxbox, 0, 0, 0755, -, /usr/bin/fbsetroot)
- @$(call install_copy, fluxbox, 0, 0, 0755, -, /usr/bin/fluxbox)
- @$(call install_copy, fluxbox, 0, 0, 0755, -, /usr/bin/fluxbox-generate_menu)
- @$(call install_copy, fluxbox, 0, 0, 0755, -, /usr/bin/fluxbox-remote)
- @$(call install_copy, fluxbox, 0, 0, 0755, -, /usr/bin/fluxbox-update_configs)
- @$(call install_copy, fluxbox, 0, 0, 0755, -, /usr/bin/startfluxbox)
-
- @$(call install_copy, fluxbox, 0, 0, 0755, /usr/share/fluxbox)
- @$(call install_copy, fluxbox, 0, 0, 0644, -, /usr/share/fluxbox/apps)
- @$(call install_copy, fluxbox, 0, 0, 0644, -, /usr/share/fluxbox/init)
- @$(call install_copy, fluxbox, 0, 0, 0644, -, /usr/share/fluxbox/keys)
- @$(call install_copy, fluxbox, 0, 0, 0644, -, /usr/share/fluxbox/menu)
- @$(call install_copy, fluxbox, 0, 0, 0644, -, /usr/share/fluxbox/overlay)
- @$(call install_copy, fluxbox, 0, 0, 0644, -, /usr/share/fluxbox/windowmenu)
-
- @for i in Artwiz BlueNight Flux LemonSpace Makro Operation Results \
- MerleyKay Shade Flux Meta Outcomes Twice Nyz qnx-photon; do \
- $(call install_copy, fluxbox, 0, 0, 0644, -, \
- /usr/share/fluxbox/styles/$$i); \
- done
-
-ifdef PTXCONF_FLUXBOX_THEMES_ARCH
- @$(call install_tree, fluxbox, 0, 0, -, /usr/share/fluxbox/styles/arch)
-endif
-ifdef PTXCONF_FLUXBOX_THEMES_BLOE
- @$(call install_tree, fluxbox, 0, 0, -, /usr/share/fluxbox/styles/bloe)
-endif
-ifdef PTXCONF_FLUXBOX_THEMES_BLUEFLUX
- @$(call install_tree, fluxbox, 0, 0, -, /usr/share/fluxbox/styles/BlueFlux)
-endif
-ifdef PTXCONF_FLUXBOX_THEMES_BORABLACK
- @$(call install_tree, fluxbox, 0, 0, -, /usr/share/fluxbox/styles/bora_black)
-endif
-ifdef PTXCONF_FLUXBOX_THEMES_BORABLUE
- @$(call install_tree, fluxbox, 0, 0, -, /usr/share/fluxbox/styles/bora_blue)
-endif
-ifdef PTXCONF_FLUXBOX_THEMES_BORAGREEN
- @$(call install_tree, fluxbox, 0, 0, -, /usr/share/fluxbox/styles/bora_green)
-endif
-ifdef PTXCONF_FLUXBOX_THEMES_CARP
- @$(call install_tree, fluxbox, 0, 0, -, /usr/share/fluxbox/styles/carp)
-endif
-ifdef PTXCONF_FLUXBOX_THEMES_EMERGE
- @$(call install_tree, fluxbox, 0, 0, -, /usr/share/fluxbox/styles/Emerge)
-endif
-ifdef PTXCONF_FLUXBOX_THEMES_GREENTEA
- @$(call install_tree, fluxbox, 0, 0, -, /usr/share/fluxbox/styles/green_tea)
-endif
-ifdef PTXCONF_FLUXBOX_THEMES_OSTRICH
- @$(call install_tree, fluxbox, 0, 0, -, /usr/share/fluxbox/styles/ostrich)
-endif
-ifdef PTXCONF_FLUXBOX_THEMES_ZIMEKBISQUE
- @$(call install_tree, fluxbox, 0, 0, -, /usr/share/fluxbox/styles/zimek_bisque)
-endif
-ifdef PTXCONF_FLUXBOX_THEMES_ZIMEKDARKBLUE
- @$(call install_tree, fluxbox, 0, 0, -, /usr/share/fluxbox/styles/zimek_darkblue)
-endif
-ifdef PTXCONF_FLUXBOX_THEMES_ZIMEKGREEN
- @$(call install_tree, fluxbox, 0, 0, -, /usr/share/fluxbox/styles/zimek_green)
-endif
- @$(call install_finish, fluxbox)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/fontconfig.make b/rules/fontconfig.make
index 1fdda9510..95510bf75 100644
--- a/rules/fontconfig.make
+++ b/rules/fontconfig.make
@@ -14,21 +14,25 @@ PACKAGES-$(PTXCONF_FONTCONFIG) += fontconfig
#
# Paths and names
#
-FONTCONFIG_VERSION := 2.13.1
-FONTCONFIG_MD5 := 690c6cb840a92fa8908cdf462d19ec66
+FONTCONFIG_VERSION := 2.14.2
+FONTCONFIG_MD5 := c5536d897c5d52422a00ecee742ccf47
FONTCONFIG := fontconfig-$(FONTCONFIG_VERSION)
FONTCONFIG_SUFFIX := tar.gz
FONTCONFIG_URL := http://fontconfig.org/release/$(FONTCONFIG).$(FONTCONFIG_SUFFIX)
FONTCONFIG_SOURCE := $(SRCDIR)/$(FONTCONFIG).$(FONTCONFIG_SUFFIX)
FONTCONFIG_DIR := $(BUILDDIR)/$(FONTCONFIG)
-FONTCONFIG_LICENSE := MIT AND Unicode-TOU AND public_domain
-
+FONTCONFIG_LICENSE := HPND-sell-variant AND MIT AND custom AND MIT-Modern-Variant AND Unicode-TOU and public_domain
+FONTCONFIG_LICENSE_FILES := \
+ file://COPYING;md5=00252fd272bf2e722925613ad74cb6c7 \
+ file://src/ftglue.c;startline=1;endline=8;md5=789386c3d7c853bbce055520a11aaeb9 \
+ file://src/fcatomic.h;startline=4;endline=24;md5=89c79dedb0fb324bfa2fae6b7bf7f673 \
+ file://fc-case/CaseFolding.txt;startline=3;endline=6;md5=22a71642d1bac5fcefffd1f9f35cdf27
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-FONTCONFIG_ENV := \
+FONTCONFIG_CONF_ENV := \
$(CROSS_ENV) \
ac_cv_prog_HASDOCBOOK=no
@@ -43,7 +47,9 @@ FONTCONFIG_CONF_OPT := \
--disable-rpath \
--$(call ptx/endis, PTXCONF_ICONV)-iconv \
--disable-libxml2 \
+ --disable-docbook \
--disable-docs \
+ --disable-cache-build \
--with-arch=$(PTXCONF_ARCH_STRING) \
--with-default-hinting=slight \
--with-default-fonts=$(XORG_FONTDIR) \
diff --git a/rules/freeglut.in b/rules/freeglut.in
deleted file mode 100644
index 2de74f51f..000000000
--- a/rules/freeglut.in
+++ /dev/null
@@ -1,21 +0,0 @@
-## SECTION=multimedia_xorg_support_libs
-
-config FREEGLUT
- tristate
- select HOST_CMAKE
- select MESALIB
- select GLU
- select XORG_LIB_XI
- select XORG_LIB_X11
- select XORG_LIB_XEXT
- select XORG_LIB_XXF86VM
- select XORG_LIB_XRANDR
- prompt "freeglut"
- help
- freeglut is a completely OpenSourced alternative to
- the OpenGL Utility Toolkit (GLUT) library.
- GLUT (and hence freeglut) allows the user to create and
- manage windows containing OpenGL contexts on a wide range
- of platforms and also read the mouse, keyboard and
- joystick functions.
-
diff --git a/rules/freeglut.make b/rules/freeglut.make
deleted file mode 100644
index f306143d6..000000000
--- a/rules/freeglut.make
+++ /dev/null
@@ -1,64 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2010 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_FREEGLUT) += freeglut
-
-#
-# Paths and names
-#
-FREEGLUT_VERSION := 3.2.1
-FREEGLUT_MD5 := cd5c670c1086358598a6d4a9d166949d
-FREEGLUT := freeglut-$(FREEGLUT_VERSION)
-FREEGLUT_SUFFIX := tar.gz
-FREEGLUT_URL := $(call ptx/mirror, SF, freeglut/$(FREEGLUT).$(FREEGLUT_SUFFIX))
-FREEGLUT_SOURCE := $(SRCDIR)/$(FREEGLUT).$(FREEGLUT_SUFFIX)
-FREEGLUT_DIR := $(BUILDDIR)/$(FREEGLUT)
-FREEGLUT_LICENSE := unknown
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# cmake
-#
-FREEGLUT_CONF_TOOL := cmake
-FREEGLUT_CONF_OPT := \
- $(CROSS_CMAKE_USR) \
- -DFREEGLUT_BUILD_DEMOS=OFF \
- -DFREEGLUT_BUILD_SHARED_LIBS=ON \
- -DFREEGLUT_BUILD_STATIC_LIBS=OFF \
- -DFREEGLUT_GLES=OFF \
- -DFREEGLUT_PRINT_ERRORS=ON \
- -DFREEGLUT_PRINT_WARNINGS=ON \
- -DFREEGLUT_REPLACE_GLUT=ON \
- -DFREEGLUT_WAYLAND=OFF
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/freeglut.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, freeglut)
- @$(call install_fixup, freeglut,PRIORITY,optional)
- @$(call install_fixup, freeglut,SECTION,base)
- @$(call install_fixup, freeglut,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
- @$(call install_fixup, freeglut,DESCRIPTION,missing)
-
- @$(call install_lib, freeglut, 0, 0, 0644, libglut)
-
- @$(call install_finish, freeglut)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/freetype.in b/rules/freetype.in
index 5176ea91b..57731e88c 100644
--- a/rules/freetype.in
+++ b/rules/freetype.in
@@ -1,9 +1,10 @@
## SECTION=multimedia_libs
-config FREETYPE
+menuconfig FREETYPE
tristate
- prompt "freetype"
+ prompt "freetype "
select ZLIB
+ select LIBPNG if FREETYPE_LIBPNG
help
The FreeType project is a team of volunteers who develop free,
portable and high-quality software solutions for digital typography.
@@ -13,3 +14,13 @@ config FREETYPE
library only supports true type fonts, since version 2 it supports all
types of scalable fonts. If you intent to use this library in an X
environment, its only needed on client side, not on server side.
+
+if FREETYPE
+
+config FREETYPE_LIBPNG
+ bool
+ prompt "enable png support"
+ help
+ libpng is optional for freetype.
+
+endif
diff --git a/rules/freetype.make b/rules/freetype.make
index 5ee5a26f7..20a5feca4 100644
--- a/rules/freetype.make
+++ b/rules/freetype.make
@@ -15,43 +15,45 @@ PACKAGES-$(PTXCONF_FREETYPE) += freetype
#
# Paths and names
#
-FREETYPE_VERSION := 2.10.1
-FREETYPE_MD5 := bd42e75127f8431923679480efb5ba8f
+FREETYPE_VERSION := 2.13.2
+FREETYPE_MD5 := 1f625f0a913c449551b1e3790a1817d7
FREETYPE := freetype-$(FREETYPE_VERSION)
FREETYPE_SUFFIX := tar.xz
FREETYPE_SOURCE := $(SRCDIR)/$(FREETYPE).$(FREETYPE_SUFFIX)
FREETYPE_DIR := $(BUILDDIR)/$(FREETYPE)
-FREETYPE_LICENSE := BSD-2-Clause AND FTL AND GPL-2.0-or-later
+FREETYPE_LICENSE := BSD-2-Clause AND FTL AND GPL-2.0-or-later AND MIT
FREETYPE_LICENSE_FILES := \
- file://docs/LICENSE.TXT;md5=4af6221506f202774ef74f64932878a1 \
+ file://LICENSE.TXT;md5=843b6efc16f6b1652ec97f89d5a516c0 \
file://docs/GPLv2.TXT;md5=8ef380476f642c20ebf40fecb0add2ec \
file://docs/FTL.TXT;md5=9f37b4e6afa3fef9dba8932b16bd3f97 \
- file://src/bdf/README;startline=98;endline=140;md5=d0c2c2e2e102c393a12869bc34515be2 \
- file://src/pcf/README;startline=69;endline=88;md5=e0f11f550450e58753f2d54ddaf17d34
+ file://src/bdf/README;startline=98;endline=140;md5=fef9416f085f0834b3ba93a5dc5a622c \
+ file://src/pcf/README;startline=69;endline=88;md5=e0f11f550450e58753f2d54ddaf17d34 \
+ file://src/autofit/ft-hb.c;md5=6ed8fca99f01f7f6bd863b4449fec9f6
FREETYPE_URL := \
- http://download.savannah.gnu.org/releases/freetype/$(FREETYPE).$(FREETYPE_SUFFIX) \
- http://download.savannah.gnu.org/releases/freetype/freetype-old/$(FREETYPE).$(FREETYPE_SUFFIX)
+ https://download.savannah.gnu.org/releases/freetype/$(FREETYPE).$(FREETYPE_SUFFIX) \
+ https://download.savannah.gnu.org/releases/freetype/freetype-old/$(FREETYPE).$(FREETYPE_SUFFIX) \
+ $(call ptx/mirror, SF, freetype/freetype2/$(FREETYPE_VERSION)/$(FREETYPE).$(FREETYPE_SUFFIX))
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-#
-# autoconf
-#
+# freetype's top level configure is handcrafted
+
FREETYPE_CONF_TOOL := autoconf
FREETYPE_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-static \
- --disable-biarch-config \
--enable-freetype-config \
$(GLOBAL_LARGE_FILE_OPTION) \
--enable-mmap \
--with-zlib \
--without-bzip2 \
- --without-png \
+ --$(call ptx/wwo,PTXCONF_FREETYPE_LIBPNG)-png \
--without-harfbuzz \
+ --without-brotli \
+ --without-librsvg \
--without-old-mac-fonts \
--without-fsspec \
--without-fsref \
@@ -59,7 +61,6 @@ FREETYPE_CONF_OPT := \
--without-quickdraw-carbon \
--without-ats
-
# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
diff --git a/rules/fribidi.make b/rules/fribidi.make
index 12ea053cc..38cbf0313 100644
--- a/rules/fribidi.make
+++ b/rules/fribidi.make
@@ -14,14 +14,17 @@ PACKAGES-$(PTXCONF_FRIBIDI) += fribidi
#
# Paths and names
#
-FRIBIDI_VERSION := 1.0.4
-FRIBIDI_MD5 := 00d058ac76e6c0f46a6671a63d31cf67
+FRIBIDI_VERSION := 1.0.13
+FRIBIDI_MD5 := 49b17442e0d8fa2e97b5c898078f6f51
FRIBIDI := fribidi-$(FRIBIDI_VERSION)
-FRIBIDI_SUFFIX := tar.bz2
+FRIBIDI_SUFFIX := tar.xz
FRIBIDI_URL := https://github.com/fribidi/fribidi/releases/download/v$(FRIBIDI_VERSION)/$(FRIBIDI).$(FRIBIDI_SUFFIX)
FRIBIDI_SOURCE := $(SRCDIR)/$(FRIBIDI).$(FRIBIDI_SUFFIX)
FRIBIDI_DIR := $(BUILDDIR)/$(FRIBIDI)
FRIBIDI_LICENSE := LGPL-2.1-or-later
+FRIBIDI_LICENSE_FILES := \
+ file://lib/fribidi.c;startline=1;endline=28;md5=9e89265732e8f4f99b1267a1ffd15787 \
+ file://COPYING;md5=a916467b91076e631dd8edb7424769c7
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/frodo.make b/rules/frodo.make
index 5825f5418..53f666eda 100644
--- a/rules/frodo.make
+++ b/rules/frodo.make
@@ -21,24 +21,25 @@ FRODO_SUFFIX := Src.tar.gz
FRODO_URL := http://frodo.cebix.net/downloads/FrodoV4_1b.$(FRODO_SUFFIX)
FRODO_SOURCE := $(SRCDIR)/FrodoV4_1b.$(FRODO_SUFFIX)
FRODO_DIR := $(BUILDDIR)/$(FRODO)
+FRODO_LICENSE := custom
+FRODO_LICENSE_FILES := file://Docs/legalmush.html;md5=108f0874f3c2ef9b625501635c933d92
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-FRODO_PATH := PATH=$(CROSS_PATH)
FRODO_CONF_ENV := $(CROSS_ENV)
ifdef PTXCONF_FRODO_SVGALIB
FRODO_CONF_ENV += ac_cv_lib_vga_vga_setmode=yes SDL_CONFIG=no
endif
FRODO_MAKE_ENV := $(CROSS_ENV)
FRODO_SUBDIR := Src
-FRODO_CONF_TOOL := autoconf
#
# autoconf
#
-FRODO_AUTOCONF := \
+FRODO_CONF_TOOL := autoconf
+FRODO_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--without-x
diff --git a/rules/fscryptctl.in b/rules/fscryptctl.in
new file mode 100644
index 000000000..712e56899
--- /dev/null
+++ b/rules/fscryptctl.in
@@ -0,0 +1,14 @@
+## SECTION=selinux
+
+config FSCRYPTCTL
+ tristate
+ prompt "fscryptctl"
+ help
+ fscryptctl is a low-level tool that handles raw keys and manages
+ policies for the Linux filesystem encryption, specifically the
+ "fscrypt" kernel interface which is supported by the ext4,
+ f2fs, and UBIFS filesystems.
+
+ fscryptctl is mainly intended for embedded systems which can't use the
+ full-featured fscrypt tool. It does *not* handle key generation,
+ key stretching, key wrapping, or PAM integration.
diff --git a/rules/fscryptctl.make b/rules/fscryptctl.make
new file mode 100644
index 000000000..fb66ef589
--- /dev/null
+++ b/rules/fscryptctl.make
@@ -0,0 +1,56 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Ahmad Fatoum <a.fatoum@pengutronix.de>
+#
+
+PACKAGES-$(PTXCONF_FSCRYPTCTL) += fscryptctl
+
+#
+# Paths and names
+#
+FSCRYPTCTL_VERSION := 1.0.0
+FSCRYPTCTL_MD5 := 1013d00ac166b233631100e5905004cc
+FSCRYPTCTL := fscryptctl-$(FSCRYPTCTL_VERSION)
+FSCRYPTCTL_SUFFIX := tar.gz
+FSCRYPTCTL_URL := https://github.com/google/fscryptctl/archive/v$(FSCRYPTCTL_VERSION).$(FSCRYPTCTL_SUFFIX)
+FSCRYPTCTL_SOURCE := $(SRCDIR)/$(FSCRYPTCTL).$(FSCRYPTCTL_SUFFIX)
+FSCRYPTCTL_DIR := $(BUILDDIR)/$(FSCRYPTCTL)
+FSCRYPTCTL_LICENSE := Apache-2.0
+FSCRYPTCTL_LICENSE_FILES := \
+ file://fscryptctl.c;startline=5;endline=20;md5=989e571b78197682b85e3643d13296e5 \
+ file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+FSCRYPTCTL_CONF_TOOL := NO
+FSCRYPTCTL_MAKE_OPT := \
+ $(CROSS_ENV_CC) \
+ CFLAGS="-O2 -g3 -Wall" \
+ PREFIX=/usr
+
+FSCRYPTCTL_INSTALL_OPT := \
+ $(FSCRYPTCTL_MAKE_OPT) \
+ install
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/fscryptctl.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, fscryptctl)
+ @$(call install_fixup, fscryptctl,PRIORITY,optional)
+ @$(call install_fixup, fscryptctl,SECTION,base)
+ @$(call install_fixup, fscryptctl,AUTHOR,"Ahmad Fatoum <a.fatoum@pengutronix.de>")
+ @$(call install_fixup, fscryptctl,DESCRIPTION, "Low-level Linux fscrypt control tool")
+
+ @$(call install_copy, fscryptctl, 0, 0, 0755, -, /usr/bin/fscryptctl)
+
+ @$(call install_finish, fscryptctl)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/fuse.in b/rules/fuse.in
index bb20fcd04..e2525f9d5 100644
--- a/rules/fuse.in
+++ b/rules/fuse.in
@@ -2,6 +2,8 @@
menuconfig FUSE
tristate
prompt "fuse "
+ # needed for AM_ICONV during autogen.sh
+ select HOST_GETTEXT
select LIBC_DL if FUSE_LIB
select LIBC_RT if FUSE_LIB
select LIBC_PTHREAD
diff --git a/rules/fuse3.make b/rules/fuse3.make
index 8ac70f735..d2a1f9454 100644
--- a/rules/fuse3.make
+++ b/rules/fuse3.make
@@ -14,10 +14,10 @@ PACKAGES-$(PTXCONF_FUSE3) += fuse3
#
# Paths and names
#
-FUSE3_VERSION := 3.4.1
-FUSE3_MD5 := 68eac68b19997bea69c4d94f110003f0
+FUSE3_VERSION := 3.16.2
+FUSE3_MD5 := b00bf08b27ead4a9411578777e94a1cc
FUSE3 := fuse-$(FUSE3_VERSION)
-FUSE3_SUFFIX := tar.xz
+FUSE3_SUFFIX := tar.gz
FUSE3_URL := https://github.com/libfuse/libfuse/releases/download/$(FUSE3)/$(FUSE3).$(FUSE3_SUFFIX)
FUSE3_SOURCE := $(SRCDIR)/$(FUSE3).$(FUSE3_SUFFIX)
FUSE3_DIR := $(BUILDDIR)/$(FUSE3)
@@ -30,13 +30,16 @@ FUSE3_LICENSE := GPL-2.0-only AND LGPL-2.1-only
#
# meson
#
-FUSE_CONF_TOOL := meson
-FUSE_CONF_OPT := \
+FUSE3_CONF_TOOL := meson
+FUSE3_CONF_OPT := \
$(CROSS_MESON_USR) \
+ -Ddisable-libc-symbol-version=true \
-Ddisable-mtab=true \
-Dexamples=false \
+ -Dtests=false \
-Dudevrulesdir=/usr/lib/udev/rules.d \
- -Dutils=$(call ptx/truefalse,PTXCONF_FUSE_UTIL)
+ -Duseroot=false \
+ -Dutils=true
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/gawk.make b/rules/gawk.make
index d06b121a0..d4e9149ff 100644
--- a/rules/gawk.make
+++ b/rules/gawk.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_GAWK) += gawk
#
# Paths and names
#
-GAWK_VERSION := 5.0.1
-GAWK_MD5 := f9db3f6715207c6f13719713abc9c707
+GAWK_VERSION := 5.2.1
+GAWK_MD5 := 02956bc5d117a7437bb4f7039f23b964
GAWK := gawk-$(GAWK_VERSION)
GAWK_SUFFIX := tar.xz
GAWK_URL := $(call ptx/mirror, GNU, gawk/$(GAWK).$(GAWK_SUFFIX))
@@ -24,12 +24,16 @@ GAWK_DIR := $(BUILDDIR)/$(GAWK)
GAWK_LICENSE := GPL-3.0-or-later
GAWK_LICENSE_FILES := \
file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://main.c;startline=5;endline=24;md5=f471bca08ffe28738729b5bfd1d6ae86
+ file://main.c;startline=5;endline=25;md5=e2d421a418025c5a87c7ad3c866017f3
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
+GAWK_CONF_ENV := \
+ $(CROSS_ENV) \
+ MAKEINFO=true
+
GAWK_CONF_TOOL := autoconf
GAWK_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
@@ -37,11 +41,13 @@ GAWK_CONF_OPT := \
--enable-lint \
--enable-builtin-intdiv0 \
--disable-mpfr \
+ --enable-pma \
--disable-versioned-extension-dir \
$(GLOBAL_LARGE_FILE_OPTION) \
--disable-nls \
--disable-rpath \
- --$(call ptx/endis, PTXCONF_GAWK_EXTENSIONS)-extensions
+ --$(call ptx/endis, PTXCONF_GAWK_EXTENSIONS)-extensions \
+ --without-readline
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/gcclibs.in b/rules/gcclibs.in
index fcbcfe210..404f2ad48 100644
--- a/rules/gcclibs.in
+++ b/rules/gcclibs.in
@@ -11,7 +11,7 @@ config GCCLIBS_GCC_S
select GCCLIBS
help
Installs the libgcc_s Library
-
+
config GCCLIBS_CXX
bool "libstdc++"
@@ -42,6 +42,30 @@ config GCCLIBS_GCJ
Installs the GNU Java Library
libgcj
+config GCCLIBS_GFORTRAN
+ bool "libgfortran"
+ select GCCLIBS_QUADMATH
+ help
+ Installs the libgfortran Library
+
+config GCCLIBS_GOMP
+ bool "libgomp"
+ help
+ Installs the libgomp Library
+ GOMP is an implementation of OpenMP for the C, C++, and Fortran
+ compilers in the GNU Compiler Collection.
+
+config GCCLIBS_QUADMATH
+ bool "libquadmath"
+ help
+ GCC Quad-Precision Math Library
+ A library, which provides quad-precision mathematical functions on
+ targets supporting the __float128 datatype. The library is used to
+ provide on such targets the REAL(16) type in the GNU Fortran
+ compiler.
+
+
+
config GCCLIBS_LIBASAN
bool "libasan"
select GCCLIBS
diff --git a/rules/gcclibs.make b/rules/gcclibs.make
index c6c93b4b8..e9cdabb2b 100644
--- a/rules/gcclibs.make
+++ b/rules/gcclibs.make
@@ -34,7 +34,7 @@ $(STATEDIR)/gcclibs.targetinstall:
@$(call install_fixup, gcclibs,DESCRIPTION,missing)
ifdef PTXCONF_GCCLIBS_GCC_S
- @$(call install_copy_toolchain_lib, gcclibs, libgcc_s.so)
+ @$(call install_copy_toolchain_lib, gcclibs, libgcc_s.so.1)
endif
ifdef PTXCONF_GCCLIBS_CXX
@@ -49,6 +49,21 @@ ifdef PTXCONF_GCCLIBS_GCJ
@$(call install_copy_toolchain_lib, gcclibs, libgcj.so)
endif
+ifdef PTXCONF_GCCLIBS_GFORTRAN
+ @$(call install_copy_toolchain_lib, gcclibs, libgfortran.so)
+endif
+
+ifdef PTXCONF_GCCLIBS_GOMP
+ @$(call install_copy_toolchain_lib, gcclibs, libgomp.so)
+endif
+
+ifdef PTXCONF_ARCH_X86
+# the libarary does not exist on other architectures
+ifdef PTXCONF_GCCLIBS_QUADMATH
+ @$(call install_copy_toolchain_lib, gcclibs, libquadmath.so)
+endif
+endif
+
ifdef PTXCONF_GCCLIBS_LIBASAN
@$(call install_copy_toolchain_lib, gcclibs, libasan.so)
endif
diff --git a/rules/gdb-menu.in b/rules/gdb-menu.in
index d8be3fef8..4e8dae1a3 100644
--- a/rules/gdb-menu.in
+++ b/rules/gdb-menu.in
@@ -18,15 +18,15 @@ if !GDB_TOOLCHAIN_VERSION
config GDB_VERSION
string "gdb version"
- default "7.6.1"
+ default "13.1"
endif
config GDB_MD5
string "gdb source md5sum"
- default "d42841167fd061d90fddf9a7212a1f9f" if !GDB_TOOLCHAIN_VERSION
+ default "4aaad768ff2585464173c091947287ec" if !GDB_TOOLCHAIN_VERSION
help
md5sum for the gdb source archive. If the version is provided by
- the toolchain and the toolchain is a OSELAS.Toolchain then this
+ the toolchain and the toolchain is an OSELAS.Toolchain then this
can be left empty and the md5sum from the toolchain ptxconfig is
used.
diff --git a/rules/gdb.in b/rules/gdb.in
index 65c6fff01..3014271de 100644
--- a/rules/gdb.in
+++ b/rules/gdb.in
@@ -7,6 +7,7 @@ menuconfig GDB
select LIBC_DL
select GCCLIBS_GCC_S
select NCURSES
+ select LIBGMP if GDB_11_1
help
The GNU Debugger
@@ -21,10 +22,16 @@ if GDB
config GDB_SHARED
bool "build shared"
default y
- select LIBC_M
help
If not set, the build option
LDFLAGS=-static will be activated.
+config GDB_11_1
+ bool
+ prompt "gdb-11.1 or later"
+ help
+ Since gdb-11.1, GMP is a required dependency. Enable this option
+ if your toolchain gdb version is 11.1 or later.
+
endif
diff --git a/rules/gdb.make b/rules/gdb.make
index ca0e7dbe5..6c9f05fab 100644
--- a/rules/gdb.make
+++ b/rules/gdb.make
@@ -37,27 +37,43 @@ GDB_WRAPPER_BLACKLIST := \
TARGET_HARDEN_PIE
endif
-GDB_ENV := \
+GDB_CONF_OPT_HOST := \
+ --disable-tui \
+ --disable-rpath \
+ --without-expat \
+ --without-mpfr
+
+ifneq ($(filter 1%,$(GDBSERVER_VERSION)),)
+# version >= 10
+GDB_CONF_OPT_HOST += \
+ --without-xxhash
+endif
+
+GDB_CONF_ENV := \
$(CROSS_ENV) \
$(CROSS_ENV_FLAGS_FOR_TARGET) \
- host_configargs='--disable-tui --disable-rpath --without-expat'
+ host_configargs='$(GDB_CONF_OPT_HOST)'
ifndef PTXCONF_GDB_SHARED
-GDB_MAKEVARS := LDFLAGS=-static
+GDB_MAKE_OPT := LDFLAGS=-static
endif
#
# autoconf
#
-GDB_AUTOCONF := \
+GDB_CONF_TOOL := autoconf
+GDB_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--target=$(PTXCONF_GNU_TARGET) \
--with-build-sysroot=$(SYSROOT) \
--disable-werror
-
GDB_BUILD_OOT := YES
+# for gdb subdir configure
+GDB_MAKE_ENV := \
+ with_libgmp_prefix=no
+
# ----------------------------------------------------------------------------
# Install
# ----------------------------------------------------------------------------
diff --git a/rules/gdbserver.make b/rules/gdbserver.make
index 91470b30c..2ff2f1539 100644
--- a/rules/gdbserver.make
+++ b/rules/gdbserver.make
@@ -52,7 +52,14 @@ GDBSERVER_CONF_OPT := \
--disable-werror
GDBSERVER_BUILD_OOT := YES
+
+ifeq ($(filter 1%,$(GDBSERVER_VERSION)),)
+# version < 10
GDBSERVER_SUBDIR := gdb/gdbserver
+else
+GDBSERVER_MAKE_OPT := all-gdbserver
+GDBSERVER_INSTALL_OPT := install-gdbserver
+endif
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/gdk-pixbuf.in b/rules/gdk-pixbuf.in
index e3ed58dd1..1edab41eb 100644
--- a/rules/gdk-pixbuf.in
+++ b/rules/gdk-pixbuf.in
@@ -6,7 +6,6 @@ menuconfig GDK_PIXBUF
select HOST_GLIB
select HOST_MESON
select GLIB
- select XORG_LIB_X11 if GDK_PIXBUF_X11
select LIBPNG if GDK_PIXBUF_LOADER_PNG
select LIBJPEG if GDK_PIXBUF_LOADER_JPEG
help
@@ -14,10 +13,6 @@ menuconfig GDK_PIXBUF
if GDK_PIXBUF
-config GDK_PIXBUF_X11
- bool
- prompt "X11 support"
-
config GDK_PIXBUF_LOADER_PNG
bool
prompt "png loader"
diff --git a/rules/gdk-pixbuf.make b/rules/gdk-pixbuf.make
index 769757070..d63c46c91 100644
--- a/rules/gdk-pixbuf.make
+++ b/rules/gdk-pixbuf.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_GDK_PIXBUF) += gdk-pixbuf
#
# Paths and names
#
-GDK_PIXBUF_VERSION := 2.40.0
-GDK_PIXBUF_MD5 := 05eb1ebc258ba905f1c8644ef49de064
+GDK_PIXBUF_VERSION := 2.42.10
+GDK_PIXBUF_MD5 := 4a62f339cb1424693fba9bb7ffef8150
GDK_PIXBUF := gdk-pixbuf-$(GDK_PIXBUF_VERSION)
GDK_PIXBUF_SUFFIX := tar.xz
GDK_PIXBUF_URL := $(call ptx/mirror, GNOME, gdk-pixbuf/$(basename $(GDK_PIXBUF_VERSION))/$(GDK_PIXBUF).$(GDK_PIXBUF_SUFFIX))
@@ -43,16 +43,16 @@ GDK_PIXBUF_CONF_OPT := \
-Dbuiltin_loaders=$(subst $(space),$(comma),$(GDK_PIXBUF_LOADER-y)) \
-Ddocs=false \
-Dgio_sniffing=false \
- -Dgir=false \
+ -Dgtk_doc=false \
-Dinstalled_tests=false \
- -Djasper=false \
- -Djpeg=$(call ptx/truefalse, PTXCONF_GDK_PIXBUF_LOADER_JPEG) \
+ -Dintrospection=disabled \
+ -Djpeg=$(call ptx/endis, PTXCONF_GDK_PIXBUF_LOADER_JPEG)d \
-Dman=false \
-Dnative_windows_loaders=false \
- -Dpng=$(call ptx/truefalse, PTXCONF_GDK_PIXBUF_LOADER_PNG) \
+ -Dpng=$(call ptx/endis, PTXCONF_GDK_PIXBUF_LOADER_PNG)d \
-Drelocatable=false \
- -Dtiff=false \
- -Dx11=$(call ptx/truefalse, PTXCONF_GDK_PIXBUF_X11)
+ -Dtests=false \
+ -Dtiff=disabled
# ----------------------------------------------------------------------------
# Target-Install
@@ -67,9 +67,6 @@ $(STATEDIR)/gdk-pixbuf.targetinstall:
@$(call install_fixup, gdk-pixbuf,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
@$(call install_fixup, gdk-pixbuf,DESCRIPTION,missing)
-ifdef PTXCONF_GDK_PIXBUF_X11
- @$(call install_lib, gdk-pixbuf, 0, 0, 0644, libgdk_pixbuf_xlib-2.0)
-endif
@$(call install_lib, gdk-pixbuf, 0, 0, 0644, libgdk_pixbuf-2.0)
@$(call install_finish, gdk-pixbuf)
diff --git a/rules/gflags.in b/rules/gflags.in
index fc6c199e5..7066a07ae 100644
--- a/rules/gflags.in
+++ b/rules/gflags.in
@@ -12,5 +12,5 @@ config GFLAGS
a replacement for getopt(). It has increased flexibility, including
built-in support for C++ types like string, and the ability to define
flags in the source file in which they're used.
-
+
See https://code.google.com/p/gflags/ for info about it.
diff --git a/rules/glew.in b/rules/glew.in
index 947dbab80..682bfea88 100644
--- a/rules/glew.in
+++ b/rules/glew.in
@@ -3,8 +3,6 @@
config GLEW
bool
select XORG_LIB_X11
- select XORG_SERVER
- select XORG_SERVER_EXT_GLX
select MESALIB
prompt "glew"
help
diff --git a/rules/glew.make b/rules/glew.make
index 4ead0d059..e2a42e856 100644
--- a/rules/glew.make
+++ b/rules/glew.make
@@ -31,7 +31,7 @@ GLEW_CONF_TOOL := NO
#
# The makefile expects ld == gcc, so we set the tools
-# seperately and not use the CROSS_TOOLS variable
+# separately and not use the CROSS_TOOLS variable
#
GLEW_MAKE_OPT := \
$(CROSS_ENV_CC) \
diff --git a/rules/glib-networking.make b/rules/glib-networking.make
index 1ffdee82c..d5a798f21 100644
--- a/rules/glib-networking.make
+++ b/rules/glib-networking.make
@@ -14,14 +14,17 @@ PACKAGES-$(PTXCONF_GLIB_NETWORKING) += glib-networking
#
# Paths and names
#
-GLIB_NETWORKING_VERSION := 2.62.1
-GLIB_NETWORKING_MD5 := 64ca1e1e43e623b916059585bf7e4758
+GLIB_NETWORKING_VERSION := 2.78.0
+GLIB_NETWORKING_MD5 := 402ff1e8f24dafb02354d9b66ffa11df
GLIB_NETWORKING := glib-networking-$(GLIB_NETWORKING_VERSION)
GLIB_NETWORKING_SUFFIX := tar.xz
GLIB_NETWORKING_URL := $(call ptx/mirror, GNOME, glib-networking/$(basename $(GLIB_NETWORKING_VERSION))/$(GLIB_NETWORKING).$(GLIB_NETWORKING_SUFFIX))
GLIB_NETWORKING_SOURCE := $(SRCDIR)/$(GLIB_NETWORKING).$(GLIB_NETWORKING_SUFFIX)
GLIB_NETWORKING_DIR := $(BUILDDIR)/$(GLIB_NETWORKING)
GLIB_NETWORKING_LICENSE := LGPL-2.0-or-later
+GLIB_NETWORKING_LICENSE_FILES := \
+ file://tls/gnutls/gnutls-module.c;startline=2;endline=23;md5=2eca03d4880fd21dbb04b8bcafe2cd59 \
+ file://COPYING;md5=4fbd65380cdd255951079008b364516c
# ----------------------------------------------------------------------------
# Prepare
@@ -36,12 +39,11 @@ GLIB_NETWORKING_CONF_ENV := \
GLIB_NETWORKING_CONF_TOOL := meson
GLIB_NETWORKING_CONF_OPT := \
$(CROSS_MESON_USR) \
- -Dca_certificates_path=/etc/ssl/certs/ca-certificates.crt \
- -Dgnome_proxy_support=false \
+ -Dgnome_proxy=disabled \
+ -Dgnutls=enabled \
-Dinstalled_tests=false \
- -Dlibproxy_support=false \
- -Dpkcs11_support=false \
- -Dstatic_modules=false
+ -Dlibproxy=disabled \
+ -Dopenssl=disabled
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/glib.in b/rules/glib.in
index d4215a0df..00485112a 100644
--- a/rules/glib.in
+++ b/rules/glib.in
@@ -8,10 +8,10 @@ menuconfig GLIB
select LIBC_PTHREAD
select ICONV
select LIBFFI
- select LIBPCRE
- select LIBPCRE_ENABLE_UTF8
- select UTIL_LINUX_NG if GLIB_LIBMOUNT
- select UTIL_LINUX_NG_LIBMOUNT if GLIB_LIBMOUNT
+ select PCRE2
+ select PCRE2_8
+ select UTIL_LINUX if GLIB_LIBMOUNT
+ select UTIL_LINUX_LIBMOUNT if GLIB_LIBMOUNT
select ZLIB
help
GLib is a library containing many useful C routines for things
diff --git a/rules/glib.make b/rules/glib.make
index 007893fd4..2acc9539b 100644
--- a/rules/glib.make
+++ b/rules/glib.make
@@ -15,19 +15,23 @@ PACKAGES-$(PTXCONF_GLIB) += glib
#
# Paths and names
#
-GLIB_VERSION := 2.68.1
-GLIB_MD5 := bc9f2250be1f773bb17747d3b2e6a3ae
+GLIB_VERSION := 2.80.0
+GLIB_MD5 := 3a51e2803ecd22c2dadcd07d9475ebe3
GLIB := glib-$(GLIB_VERSION)
GLIB_SUFFIX := tar.xz
GLIB_URL := $(call ptx/mirror, GNOME, glib/$(basename $(GLIB_VERSION))/$(GLIB).$(GLIB_SUFFIX))
GLIB_SOURCE := $(SRCDIR)/$(GLIB).$(GLIB_SUFFIX)
GLIB_DIR := $(BUILDDIR)/$(GLIB)
-GLIB_LICENSE := LGPL-2.0-or-later
+GLIB_LICENSE := LGPL-2.1-or-later
+GLIB_LICENSE_FILES := \
+ file://glib/glib.h;startline=1;endline=18;md5=c97f6829778db537db59d1ce41090b51 \
+ file://LICENSES/LGPL-2.1-or-later.txt;md5=41890f71f740302b785c27661123bff5
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
+GLIB_MESON_CROSS_FILE := $(call ptx/get-alternative, config/meson, glib-cross-file.meson)
#
# meson
#
@@ -36,25 +40,26 @@ GLIB_CONF_OPT := \
$(CROSS_MESON_USR) \
-Dbsymbolic_functions=true \
-Ddtrace=false \
- -Dfam=false \
-Dforce_posix_threads=true \
-Dglib_assert=true \
-Dglib_checks=true \
-Dglib_debug=enabled \
- -Dgtk_doc=false \
- -Diconv=libc \
+ -Ddocumentation=false \
-Dinstalled_tests=false \
- -Dinternal_pcre=false \
+ -Dintrospection=disabled \
-Dlibelf=disabled \
-Dlibmount=$(call ptx/endis, PTXCONF_GLIB_LIBMOUNT)d \
- -Dman=false \
+ -Dman-pages=disabled \
+ -Dmultiarch=false \
-Dnls=disabled \
-Doss_fuzz=disabled \
-Dselinux=disabled \
-Dsysprof=disabled \
-Dsystemtap=false \
-Dtests=false \
- -Dxattr=false
+ -Dxattr=false \
+ \
+ --cross-file $(GLIB_MESON_CROSS_FILE)
# ----------------------------------------------------------------------------
# Install
@@ -62,7 +67,7 @@ GLIB_CONF_OPT := \
$(STATEDIR)/glib.install.post:
@$(call targetinfo)
- @sed -i 's;^bindir=.*;bindir=$(PTXDIST_SYSROOT_HOST)/bin;' \
+ @sed -i 's;^bindir=.*;bindir=$(PTXDIST_SYSROOT_HOST)/usr/bin;' \
$(GLIB_PKGDIR)/usr/lib/pkgconfig/gio-2.0.pc
@sed -i "s;'/usr;'$(SYSROOT)/usr;" \
$(GLIB_PKGDIR)/usr/share/gdb/auto-load/usr/lib/libglib-2.0.so*-gdb.py \
diff --git a/rules/glibc.in b/rules/glibc.in
index 16e5e84d1..d713b2d15 100644
--- a/rules/glibc.in
+++ b/rules/glibc.in
@@ -2,14 +2,39 @@
config GLIBC
tristate
+ select GLOBAL_LARGE_FILE if GLIBC_Y2038
select BASE if RUNTIME
if GLIBC
menu "glibc "
+config GLIBC_Y2038
+ bool
+ prompt "enable Y2038 support"
+ help
+ Build the BSP with _TIME_BITS=64 to support dates beyond
+ 2038-01-19 03:14:07.
+
comment "Install options"
+config GLIBC_2_34
+ bool
+ prompt "glibc-2.34 or later"
+ help
+ Since glibc-2.34 libpthread, libdl, libutil, libanl and librt are
+ merged into libc. By selecting this option, these libraries are
+ no longer installed through the package dependencies. The
+ libraries can still be selected explicitly here if necessary.
+ For example if legacy binaries link to such a library.
+
+config GLIBC_2_38
+ bool
+ prompt "glibc-2.38 or later"
+ help
+ In glibc-2.38 libcrypt was deprecated and removed afterwards.
+ So libxcrypt is needed to provide the libcrypt implementation.
+
config GLIBC_LD
bool
help
@@ -81,6 +106,7 @@ config GLIBC_DL
config GLIBC_CRYPT
bool
+ depends on !GLIBC_2_38
prompt "Install libcrypt"
help
The encryption/decryption library
@@ -99,6 +125,15 @@ config GLIBC_M
If at least one application on your target does any kind of math
calculation, you should install this library.
+config GLIBC_MVEC
+ bool
+ depends on GLIBC_M
+ prompt "Install libmvec"
+ help
+ Libmvec is vector math library. It may be used implicitly as needed.
+ Whether it is needed depends on the architecture and the glibc
+ version, among other things.
+
config GLIBC_ANL
bool
prompt "Install libanl"
@@ -231,13 +266,13 @@ config GLIBC_I18N_RAWDATA
menu "Install gconv libraries "
-config GLIBC_GCONF_BASE
+config GLIBC_GCONV_BASE
bool
config GLIBC_GCONV_DEF
bool
prompt "default gconv modules"
- select GLIBC_GCONF_BASE
+ select GLIBC_GCONV_BASE
default y
help
install the iso8859-1 (Latin Alphabet No.1) and the iso8859-15 (Latin
@@ -247,14 +282,14 @@ config GLIBC_GCONV_DEF
config GLIBC_GCONV_UTF
bool
prompt "gconv modules for UTF"
- select GLIBC_GCONF_BASE
+ select GLIBC_GCONV_BASE
help
install the gconv modules for UTF conversion
config GLIBC_GCONV_ZH
bool
prompt "gconv modules for chinese language"
- select GLIBC_GCONF_BASE
+ select GLIBC_GCONV_BASE
help
install the gconv modules for chinese language, including BIG5
and GB18030
diff --git a/rules/glibc.make b/rules/glibc.make
index d29f9e2ed..2dd74a70f 100644
--- a/rules/glibc.make
+++ b/rules/glibc.make
@@ -23,6 +23,20 @@ GLIBC_VERSION := $(call ptx/config-version, PTXCONF_GLIBC)
-include $(PTXDIST_PLATFORMDIR)/selected_toolchain/../share/compliance/glibc.make
# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/glibc.prepare:
+ @$(call targetinfo)
+ifdef PTXCONF_GLIBC_Y2038
+ @echo Checking Y2038 support...
+ @echo 'static_assert(sizeof(time_t) == 8, "y2038");' | \
+ $(CROSS_CC) -c -x c -fsyntax-only -include sys/types.h -include assert.h - &>/dev/null || \
+ ptxd_bailout "PTXCONF_GLIBC_Y2038 is enabled but the toolchain has no Y2038 support!"
+endif
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
@@ -36,6 +50,9 @@ $(STATEDIR)/glibc.targetinstall:
@$(call install_fixup, glibc,DESCRIPTION,missing)
ifdef PTXCONF_GLIBC_LD
+ifneq ($(CROSS_LINKER_LIB_DIR),lib)
+ @$(call install_link, glibc, lib, /$(CROSS_LINKER_LIB_DIR))
+endif
@$(call install_copy_toolchain_dl, glibc)
endif
@@ -44,7 +61,7 @@ ifdef PTXCONF_GLIBC_C
endif
ifdef PTXCONF_GLIBC_PTHREAD
- @$(call install_copy_toolchain_lib, glibc, libpthread.so)
+ @$(call install_copy_toolchain_lib, glibc, libpthread.so.0)
endif
ifdef PTXCONF_GLIBC_THREAD_DB
@@ -52,7 +69,7 @@ ifdef PTXCONF_GLIBC_THREAD_DB
endif
ifdef PTXCONF_GLIBC_RT
- @$(call install_copy_toolchain_lib, glibc, librt.so)
+ @$(call install_copy_toolchain_lib, glibc, librt.so.1)
endif
ifdef PTXCONF_GLIBC_DL
@@ -60,23 +77,27 @@ ifdef PTXCONF_GLIBC_DL
endif
ifdef PTXCONF_GLIBC_CRYPT
- @$(call install_copy_toolchain_lib, glibc, libcrypt.so)
+ @$(call install_copy_toolchain_lib, glibc, libcrypt.so.1)
endif
ifdef PTXCONF_GLIBC_UTIL
- @$(call install_copy_toolchain_lib, glibc, libutil.so)
+ @$(call install_copy_toolchain_lib, glibc, libutil.so.1)
endif
ifdef PTXCONF_GLIBC_M
- @$(call install_copy_toolchain_lib, glibc, libm.so)
+ @$(call install_copy_toolchain_lib, glibc, libm.so.6)
+endif
+
+ifdef PTXCONF_GLIBC_MVEC
+ @$(call install_copy_toolchain_lib, glibc, libmvec.so.1)
endif
ifdef PTXCONF_GLIBC_NSS_DNS
- @$(call install_copy_toolchain_lib, glibc, libnss_dns.so)
+ @$(call install_copy_toolchain_lib, glibc, libnss_dns.so.2)
endif
ifdef PTXCONF_GLIBC_NSS_FILES
- @$(call install_copy_toolchain_lib, glibc, libnss_files.so)
+ @$(call install_copy_toolchain_lib, glibc, libnss_files.so.2)
endif
ifdef PTXCONF_GLIBC_NSS_HESIOD
@@ -84,7 +105,7 @@ ifdef PTXCONF_GLIBC_NSS_HESIOD
endif
ifdef PTXCONF_GLIBC_ANL
- @$(call install_copy_toolchain_lib, glibc, libanl.so)
+ @$(call install_copy_toolchain_lib, glibc, libanl.so.1)
endif
ifdef PTXCONF_GLIBC_NSS_NIS
@@ -100,14 +121,14 @@ ifdef PTXCONF_GLIBC_NSS_COMPAT
endif
ifdef PTXCONF_GLIBC_RESOLV
- @$(call install_copy_toolchain_lib, glibc, libresolv.so)
+ @$(call install_copy_toolchain_lib, glibc, libresolv.so.2)
endif
ifdef PTXCONF_GLIBC_NSL
- @$(call install_copy_toolchain_lib, glibc, libnsl.so)
+ @$(call install_copy_toolchain_lib, glibc, libnsl.so.1)
endif
-ifdef PTXCONF_GLIBC_GCONF_BASE
+ifdef PTXCONF_GLIBC_GCONV_BASE
@$(call install_copy_toolchain_lib, glibc, gconv/gconv-modules,, n)
endif
diff --git a/rules/glibmm.in b/rules/glibmm.in
deleted file mode 100644
index 6de0a213e..000000000
--- a/rules/glibmm.in
+++ /dev/null
@@ -1,12 +0,0 @@
-## SECTION=multimedia_gtk
-
-config GLIBMM
- tristate
- select HOST_GLIB
- select GLIB
- select LIBSIGCPP
- select GCCLIBS_CXX
- prompt "glibmm"
- help
- glibmm is the C++ interface to the glib library.
-
diff --git a/rules/glibmm.make b/rules/glibmm.make
deleted file mode 100644
index f702cbaf3..000000000
--- a/rules/glibmm.make
+++ /dev/null
@@ -1,64 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2007 by Robert Schwebel
-# 2009 by Marc Kleine-Budde <mkl@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_GLIBMM) += glibmm
-
-#
-# Paths and names
-#
-GLIBMM_VERSION := 2.30.1
-GLIBMM_MD5 := 9b333de989287c563334faa88a11fc21
-GLIBMM := glibmm-$(GLIBMM_VERSION)
-GLIBMM_SUFFIX := tar.bz2
-GLIBMM_URL := $(call ptx/mirror, GNOME, glibmm/$(basename $(GLIBMM_VERSION))/$(GLIBMM).$(GLIBMM_SUFFIX))
-GLIBMM_SOURCE := $(SRCDIR)/$(GLIBMM).$(GLIBMM_SUFFIX)
-GLIBMM_DIR := $(BUILDDIR)/$(GLIBMM)
-GLIBMM_LICENSE := LGPL-2.1-only AND GPL-2.0-only
-GLIBMM_LICENSE_FILES := \
- file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
- file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-GLIBMM_PATH := PATH=$(CROSS_PATH)
-GLIBMM_ENV := $(CROSS_ENV)
-
-#
-# autoconf
-#
-GLIBMM_AUTOCONF := \
- $(CROSS_AUTOCONF_USR) \
- --disable-documentation
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/glibmm.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, glibmm)
- @$(call install_fixup, glibmm,PRIORITY,optional)
- @$(call install_fixup, glibmm,SECTION,base)
- @$(call install_fixup, glibmm,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, glibmm,DESCRIPTION,missing)
-
- @$(call install_lib, glibmm, 0, 0, 0644, libglibmm-2.4)
- @$(call install_lib, glibmm, 0, 0, 0644, libgiomm-2.4)
-
- @$(call install_finish, glibmm)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/glmark2.in b/rules/glmark2.in
index af48f91ad..7974f5bed 100644
--- a/rules/glmark2.in
+++ b/rules/glmark2.in
@@ -6,7 +6,7 @@ menuconfig GLMARK2
select MESALIB
select UDEV if GLMARK2_FLAVOR_DRM_GL || GLMARK2_FLAVOR_DRM_GLES2
select UDEV_LIBUDEV if GLMARK2_FLAVOR_DRM_GL || GLMARK2_FLAVOR_DRM_GLES2
- select HOST_SYSTEM_PYTHON3
+ select HOST_MESON
select LIBPNG
select LIBJPEG
help
diff --git a/rules/glmark2.make b/rules/glmark2.make
index d6b35a3bf..d0638ac59 100644
--- a/rules/glmark2.make
+++ b/rules/glmark2.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_GLMARK2) += glmark2
#
# Paths and names
#
-GLMARK2_VERSION := 2020.04
-GLMARK2_MD5 := a90713700a740180fef3576f7ee3c9db
+GLMARK2_VERSION := 2023.01
+GLMARK2_MD5 := f6f20b4cb95aa40a446e8637115c7138
GLMARK2 := glmark2-$(GLMARK2_VERSION)
GLMARK2_SUFFIX := tar.gz
GLMARK2_URL := https://github.com/glmark2/glmark2/archive/$(GLMARK2_VERSION).$(GLMARK2_SUFFIX)
@@ -31,9 +31,6 @@ GLMARK2_LICENSE_FILES := \
# Prepare
# ----------------------------------------------------------------------------
-GLMARK2_CONF_ENV := \
- $(CROSS_ENV)
-
GLMARK2_FLAVORS-y :=
GLMARK2_FLAVORS-$(PTXCONF_GLMARK2_FLAVOR_X11_GL) += x11-gl
GLMARK2_FLAVORS-$(PTXCONF_GLMARK2_FLAVOR_X11_GLES2) += x11-glesv2
@@ -45,37 +42,13 @@ GLMARK2_FLAVORS-$(PTXCONF_GLMARK2_FLAVOR_WAYLAND_GLES2) += wayland-glesv2
GLMARK2_FLAVORS := $(strip $(GLMARK2_FLAVORS-y))
GLMARK2_FLAVORS := $(subst $(ptx/def/space),$(ptx/def/comma),$(GLMARK2_FLAVORS))
-GLMARK2_CONF_TOOL := NO
+GLMARK2_CONF_TOOL := meson
GLMARK2_CONF_OPT := \
- --prefix=/usr \
- --with-flavors=$(GLMARK2_FLAVORS)
-
-$(STATEDIR)/glmark2.prepare:
- @$(call targetinfo)
- @cd $(GLMARK2_DIR) && \
- $(GLMARK2_CONF_ENV) PATH=$(CROSS_PATH) \
- $(SYSTEMPYTHON3) ./waf configure $(GLMARK2_CONF_OPT)
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Compile
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/glmark2.compile:
- @$(call targetinfo)
- @cd $(GLMARK2_DIR) && $(SYSTEMPYTHON3) ./waf build -j 1
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/glmark2.install:
- @$(call targetinfo)
- @rm -rf "$(GLMARK2_PKGDIR)"
- @mkdir -p "$(GLMARK2_PKGDIR)"
- @cd "$(GLMARK2_DIR)" && $(SYSTEMPYTHON3) ./waf --destdir=$(GLMARK2_PKGDIR) install
- @$(call touch)
+ $(CROSS_MESON_USR) \
+ -Ddata-path='' \
+ -Dextras-path='' \
+ -Dflavors=$(GLMARK2_FLAVORS) \
+ -Dversion-suffix=''
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/glslang.in b/rules/glslang.in
index fba48e79e..5280397b8 100644
--- a/rules/glslang.in
+++ b/rules/glslang.in
@@ -2,9 +2,10 @@
menuconfig GLSLANG
tristate
- prompt "glslang"
+ prompt "glslang "
select HOST_CMAKE
select HOST_SYSTEM_PYTHON3
+ select SPIRV_TOOLS
help
Khronos-reference SPIR-V generator
@@ -13,6 +14,7 @@ if GLSLANG
config GLSLANG_TOOLS
bool
prompt "install tools"
+ select GLSLANG_LIBS
help
Install glslangValidator and spirv-remap tools.
diff --git a/rules/glslang.make b/rules/glslang.make
index 18dfa4b39..21df9b9dc 100644
--- a/rules/glslang.make
+++ b/rules/glslang.make
@@ -14,15 +14,15 @@ PACKAGES-$(PTXCONF_GLSLANG) += glslang
#
# Paths and names
#
-GLSLANG_VERSION := 11.4.0
-GLSLANG_MD5 := 40780ba8c5475482c047027487e56466
+GLSLANG_VERSION := 1.3.280.0
+GLSLANG_MD5 := e6105068a700cdeb6d498bb982dcc570
GLSLANG := glslang-$(GLSLANG_VERSION)
GLSLANG_SUFFIX := tar.gz
-GLSLANG_URL := https://github.com/KhronosGroup/glslang/archive/$(GLSLANG_VERSION).$(GLSLANG_SUFFIX)
+GLSLANG_URL := https://github.com/KhronosGroup/glslang/archive/vulkan-sdk-$(GLSLANG_VERSION).$(GLSLANG_SUFFIX)
GLSLANG_SOURCE := $(SRCDIR)/$(GLSLANG).$(GLSLANG_SUFFIX)
GLSLANG_DIR := $(BUILDDIR)/$(GLSLANG)
-GLSLANG_LICENSE := BSD-3-clause AND BSD-2-clause AND MIT AND Apple-MIT-License AND Apache-2.0 AND (GPL-3.0-or-later WITH Bison-exception-2.2)
-GLSLANG_LICENSE_FILES := file://LICENSE.txt;md5=c5ce49c0456e9b413b98a4368c378229
+GLSLANG_LICENSE := BSD-3-clause AND BSD-2-clause AND MIT AND Apple-MIT-License AND Apache-2.0 AND (GPL-3.0-or-later WITH Bison-exception-2.2) AND custom
+GLSLANG_LICENSE_FILES := file://LICENSE.txt;md5=2a2b5acd7bc4844964cfda45fe807dc3
# ----------------------------------------------------------------------------
# Prepare
@@ -32,18 +32,20 @@ GLSLANG_CONF_TOOL := cmake
GLSLANG_CONF_OPT := \
$(CROSS_CMAKE_USR) \
-DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_LIBDIR=/usr/lib \
- -DBUILD_SHARED_LIBS=ON \
+ -DALLOW_EXTERNAL_SPIRV_TOOLS=ON \
-DBUILD_EXTERNAL=OFF \
- -DSKIP_GLSLANG_INSTALL=OFF \
- -DENABLE_SPVREMAPPER=ON \
+ -DBUILD_SHARED_LIBS=ON \
+ -DBUILD_WERROR=OFF \
+ -DENABLE_EXCEPTIONS=OFF \
-DENABLE_GLSLANG_BINARIES=ON \
-DENABLE_GLSLANG_JS=OFF \
-DENABLE_HLSL=OFF \
- -DENABLE_RTTI=OFF \
-DENABLE_OPT=ON \
-DENABLE_PCH=ON \
- -DENABLE_CTEST=OFF
+ -DENABLE_RTTI=OFF \
+ -DENABLE_SPVREMAPPER=ON \
+ -DGLSLANG_ENABLE_INSTALL=ON \
+ -DGLSLANG_TESTS=OFF
# ----------------------------------------------------------------------------
# Target-Install
@@ -58,15 +60,14 @@ $(STATEDIR)/glslang.targetinstall:
@$(call install_fixup, glslang, AUTHOR, "Philipp Zabel <p.zabel@pengutronix.de>")
@$(call install_fixup, glslang, DESCRIPTION, Khronos-reference SPIR-V generator)
-ifdef GLSLANG_TOOLS
+ifdef PTXCONF_GLSLANG_TOOLS
@$(call install_copy, glslang, 0, 0, 0755, -, /usr/bin/glslangValidator)
@$(call install_copy, glslang, 0, 0, 0755, -, /usr/bin/spirv-remap)
endif
-ifdef GLSLANG_LIBS
+ifdef PTXCONF_GLSLANG_LIBS
@$(call install_lib, glslang, 0, 0, 0644, libglslang-default-resource-limits)
@$(call install_lib, glslang, 0, 0, 0644, libglslang)
- @$(call install_lib, glslang, 0, 0, 0644, libHLSL)
@$(call install_lib, glslang, 0, 0, 0644, libSPIRV)
@$(call install_lib, glslang, 0, 0, 0644, libSPVRemapper)
endif
diff --git a/rules/glu.in b/rules/glu.in
index 2cc2f223b..8cd314758 100644
--- a/rules/glu.in
+++ b/rules/glu.in
@@ -3,6 +3,7 @@
config GLU
tristate
prompt "glu"
+ select HOST_MESON
select MESALIB
select MESALIB_GLX
help
diff --git a/rules/glu.make b/rules/glu.make
index 1769da4f9..6eab71036 100644
--- a/rules/glu.make
+++ b/rules/glu.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_GLU) += glu
#
# Paths and names
#
-GLU_VERSION := 9.0.1
-GLU_MD5 := 151aef599b8259efe9acd599c96ea2a3
+GLU_VERSION := 9.0.2
+GLU_MD5 := 2b0f13fa5b949bfb3a995927c6e35125
GLU := glu-$(GLU_VERSION)
GLU_SUFFIX := tar.xz
GLU_URL := ftp://ftp.freedesktop.org/pub/mesa/glu/$(GLU).$(GLU_SUFFIX)
@@ -33,12 +33,11 @@ GLU_LICENSE_FILES := \
#
# autoconf
#
-GLU_CONF_TOOL := autoconf
+GLU_CONF_TOOL := meson
GLU_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --disable-static \
- --disable-debug \
- --disable-osmesa
+ $(CROSS_MESON_USR) \
+ -Ddefault_library=shared \
+ -Dgl_provider=gl
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/gnupg.make b/rules/gnupg.make
index cdf70e9ed..1a90f472f 100644
--- a/rules/gnupg.make
+++ b/rules/gnupg.make
@@ -15,28 +15,40 @@ PACKAGES-$(PTXCONF_GNUPG) += gnupg
#
# Paths and names
#
-GNUPG_VERSION := 2.2.23
-GNUPG_MD5 := a094ff856a53a9a9fd5465657d998079
+GNUPG_VERSION := 2.4.3
+GNUPG_MD5 := e21ab42c629af80f19f813eeb61aa939
GNUPG := gnupg-$(GNUPG_VERSION)
GNUPG_SUFFIX := tar.bz2
-GNUPG_URL := ftp://ftp.gnupg.org/gcrypt/gnupg/$(GNUPG).$(GNUPG_SUFFIX)
+GNUPG_URL := \
+ https://www.gnupg.org/ftp/gcrypt/gnupg/$(GNUPG).$(GNUPG_SUFFIX) \
+ ftp://ftp.gnupg.org/gcrypt/gnupg/$(GNUPG).$(GNUPG_SUFFIX)
GNUPG_SOURCE := $(SRCDIR)/$(GNUPG).$(GNUPG_SUFFIX)
GNUPG_DIR := $(BUILDDIR)/$(GNUPG)
-GNUPG_LICENSE := GPL-3.0-or-later
+GNUPG_LICENSE := GPL-2.0-or-later AND GPL-3.0-or-later AND LGPL-2.1-or-later AND LGPL-3.0-or-later AND MIT AND Spencer-86 AND BSD-2-Clause-Views AND Unicode-DFS-2016
+GNUPG_LICENSE_FILES := \
+ file://COPYING;md5=189af8afca6d6075ba6c9e0aa8077626 \
+ file://COPYING.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LGPL21;md5=3c9636424f4ef15d6cb24f934190cfb0 \
+ file://COPYING.LGPL3;md5=a2b6bf2cb38ee52619e60f30a1fc7257 \
+ file://COPYING.other;md5=a231ccb4bb5b0651e08464e4e6f846d3
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-GNUPG_CONF_TOOL := autoconf
-GNUPG_CONF_OPT := $(CROSS_AUTOCONF_USR) \
- --enable-gpg \
+GNUPG_CONF_ENV := \
+ $(CROSS_ENV) \
+ ac_cv_path_GPGRT_CONFIG=$(PTXDIST_SYSROOT_CROSS)/usr/bin/gpgrt-config
+
+GNUPG_CONF_TOOL := autoconf
+GNUPG_CONF_OPT := $(CROSS_AUTOCONF_USR) \
--disable-gpgsm \
--disable-scdaemon \
--disable-g13 \
--disable-dirmngr \
+ --disable-keyboxd \
+ --disable-tpm2d \
--disable-doc \
- --disable-symcryptrun \
--disable-gpgtar \
--disable-wks-tools \
--disable-gpg-is-gpg2 \
@@ -81,6 +93,7 @@ GNUPG_CONF_OPT := $(CROSS_AUTOCONF_USR) \
--disable-nls \
--enable-endian-check \
--enable-optimization \
+ --disable-log-clock \
--disable-werror \
--disable-all-tests \
--disable-run-gnupg-user-socket \
diff --git a/rules/gnuplot.make b/rules/gnuplot.make
index c54cb1afc..276882f13 100644
--- a/rules/gnuplot.make
+++ b/rules/gnuplot.make
@@ -30,13 +30,11 @@ GNUPLOT_LICENSE_FILES := file://Copyright;md5=243a186fc2fd3b992125d60d5b1bab8f
# Prepare
# ----------------------------------------------------------------------------
-GNUPLOT_PATH := PATH=$(CROSS_PATH)
-GNUPLOT_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-GNUPLOT_AUTOCONF = \
+GNUPLOT_CONF_TOOL := autoconf
+GNUPLOT_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-history-file \
--$(call ptx/endis, PTXCONF_GNUPLOT_X)-mouse \
diff --git a/rules/gnutls.in b/rules/gnutls.in
index 8b9443652..11fd963da 100644
--- a/rules/gnutls.in
+++ b/rules/gnutls.in
@@ -4,6 +4,7 @@ menuconfig GNUTLS
tristate
select LIBTASN1
select NETTLE
+ select LIBKCAPI if GNUTLS_AFALG
select GCCLIBS_CXX if GNUTLS_CXX
select CRYPTODEV_API if GNUTLS_CRYPTODEV && BUILDTIME
prompt "gnutls "
@@ -28,6 +29,16 @@ config GNUTLS_CRYPTODEV
help
Enable the BSD cryptodev engine even if we are not using BSD.
+config GNUTLS_AFALG
+ bool
+ prompt "enable AFALG support"
+
+config GNUTLS_KTLS
+ bool
+ prompt "enable KTLS support"
+ help
+ Kernel TLS offload. Sufficiently moderen kernel headers are needed.
+
config GNUTLS_OPENSSL
bool
prompt "openssl compatibility"
diff --git a/rules/gnutls.make b/rules/gnutls.make
index 0be4c3f6c..35df7f76c 100644
--- a/rules/gnutls.make
+++ b/rules/gnutls.make
@@ -14,19 +14,34 @@ PACKAGES-$(PTXCONF_GNUTLS) += gnutls
#
# Paths and names
#
-GNUTLS_VERSION := 3.6.15
-GNUTLS_MD5 := e80e0d20a8bb337a15fa63caa7f67006
-GNUTLS := gnutls-$(GNUTLS_VERSION)
-GNUTLS_SUFFIX := tar.xz
-GNUTLS_URL := https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/$(GNUTLS).$(GNUTLS_SUFFIX)
-GNUTLS_SOURCE := $(SRCDIR)/$(GNUTLS).$(GNUTLS_SUFFIX)
-GNUTLS_DIR := $(BUILDDIR)/$(GNUTLS)
-GNUTLS_LICENSE := LGPL-3.0-or-later
+GNUTLS_VERSION := 3.7.7
+GNUTLS_MD5 := 39e5c71af7f444bdf175094a787843a2
+GNUTLS := gnutls-$(GNUTLS_VERSION)
+GNUTLS_SUFFIX := tar.xz
+GNUTLS_URL := https://www.gnupg.org/ftp/gcrypt/gnutls/v3.7/$(GNUTLS).$(GNUTLS_SUFFIX)
+GNUTLS_SOURCE := $(SRCDIR)/$(GNUTLS).$(GNUTLS_SUFFIX)
+GNUTLS_DIR := $(BUILDDIR)/$(GNUTLS)
+GNUTLS_LICENSE := LGPL-3.0-or-later
+GNUTLS_LICENSE_FILES := \
+ file://doc/COPYING.LESSER;md5=a6f89e2100d9b6cdffcea4f398e37343 \
+ file://LICENSE;md5=71391c8e0c1cfe68077e7fce3b586283
+
+ifdef PTXCONF_GNUTLS_OPENSSL
+GNUTLS_LICENSE += AND GPL-3.0-or-later
+GNUTLS_LICENSE_FILES += \
+ file://extra/gnutls_openssl.c;startline=1;endline=19;md5=b8b99cb92b0fbb522912f20e3359913c \
+ file://doc/COPYING;md5=c678957b0c8e964aa6c70fd77641a71e
+endif
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
+ifdef PTXCONF_KERNEL_HEADER
+GNUTLS_CPPFLAGS := \
+ -isystem $(KERNEL_HEADERS_INCLUDE_DIR)
+endif
+
#
# autoconf
#
@@ -41,6 +56,7 @@ GNUTLS_CONF_OPT := \
--disable-manpages \
--disable-tools \
--enable-cxx \
+ --disable-dyn-ncrypt \
--enable-hardware-acceleration \
--enable-tls13-interop \
--enable-padlock \
@@ -58,6 +74,8 @@ GNUTLS_CONF_OPT := \
--enable-ecdhe \
--enable-gost \
--$(call ptx/endis, PTXCONF_GNUTLS_CRYPTODEV)-cryptodev \
+ --$(call ptx/endis, PTXCONF_GNUTLS_AFALG)-afalg \
+ --$(call ptx/endis, PTXCONF_GNUTLS_KTLS)-ktls \
--enable-ocsp \
--$(call ptx/endis, PTXCONF_GNUTLS_OPENSSL)-openssl-compatibility \
--disable-tests \
@@ -76,11 +94,9 @@ GNUTLS_CONF_OPT := \
--disable-static \
--enable-shared \
--disable-fips140-mode \
+ --disable-strict-x509 \
--enable-non-suiteb-curves \
--disable-libdane \
- --enable-local-libopts \
- --disable-libopts-install \
- --enable-optional-args \
--disable-guile \
--with-nettle-mini \
--without-included-libtasn1 \
@@ -88,9 +104,12 @@ GNUTLS_CONF_OPT := \
--without-fips140-key \
--without-idn \
--without-p11-kit \
+ --without-tpm2 \
--without-tpm \
--without-trousers-lib \
- --without-libregex \
+ --without-zlib \
+ --without-brotli \
+ --without-zstd \
--with-default-trust-store-file=/etc/ssl/certs/ca-certificates.crt
# ----------------------------------------------------------------------------
diff --git a/rules/gobject-introspection.in b/rules/gobject-introspection.in
index 8fdf5cc91..4c6b1d2d6 100644
--- a/rules/gobject-introspection.in
+++ b/rules/gobject-introspection.in
@@ -16,6 +16,8 @@ config GOBJECT_INTROSPECTION
select HOST_GOBJECT_INTROSPECTION
select HOST_MESON
select HOST_SYSTEM_PYTHON3
+ select HOST_QEMU
+ select HOST_QEMU_USR
select GLIB
endif
diff --git a/rules/gobject-introspection.make b/rules/gobject-introspection.make
index 4da94161b..1d66c7b76 100644
--- a/rules/gobject-introspection.make
+++ b/rules/gobject-introspection.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_GOBJECT_INTROSPECTION) += gobject-introspection
#
# Paths and names
#
-GOBJECT_INTROSPECTION_VERSION := 1.66.1
-GOBJECT_INTROSPECTION_MD5 := f43d661d39ff52d33622cb1854aaaf76
+GOBJECT_INTROSPECTION_VERSION := 1.72.0
+GOBJECT_INTROSPECTION_MD5 := 13cbf9bca8f906ee275c8b107311d815
GOBJECT_INTROSPECTION := gobject-introspection-$(GOBJECT_INTROSPECTION_VERSION)
GOBJECT_INTROSPECTION_SUFFIX := tar.xz
GOBJECT_INTROSPECTION_URL := $(call ptx/mirror, GNOME, gobject-introspection/$(basename $(GOBJECT_INTROSPECTION_VERSION))/$(GOBJECT_INTROSPECTION).$(GOBJECT_INTROSPECTION_SUFFIX))
@@ -36,12 +36,44 @@ GOBJECT_INTROSPECTION_CONF_OPT := \
-Dbuild_introspection_data=true \
-Dcairo=disabled \
-Ddoctool=disabled \
- -Dgi_cross_binary_wrapper=$(PTXDIST_SYSROOT_CROSS)/bin/qemu-cross \
- -Dgi_cross_ldd_wrapper=$(PTXDIST_SYSROOT_CROSS)/bin/qemu/ldd \
+ -Dgi_cross_binary_wrapper=$(PTXDIST_SYSROOT_CROSS)/usr/bin/qemu-cross \
+ -Dgi_cross_ldd_wrapper=$(PTXDIST_SYSROOT_CROSS)/usr/bin/qemu/ldd \
-Dgi_cross_use_prebuilt_gi=true \
-Dgtk_doc=false \
-Dpython=$(SYSTEMPYTHON3)
+$(STATEDIR)/gobject-introspection.prepare:
+ @$(call targetinfo)
+
+ @echo '#!/bin/sh' > $(PTXDIST_SYSROOT_CROSS)/usr/bin/g-ir-scanner
+ @echo 'export GI_SCANNER_DISABLE_CACHE=1' >> $(PTXDIST_SYSROOT_CROSS)/usr/bin/g-ir-scanner
+ @echo 'export pkg_ldflags="$$(find -H $${pkg_dir} -name .libs -printf "-Wl,-rpath,%p ")$${pkg_ldflags}"' \
+ >> $(PTXDIST_SYSROOT_CROSS)/usr/bin/g-ir-scanner
+ @echo 'export CC=$(CROSS_CC)' >> $(PTXDIST_SYSROOT_CROSS)/usr/bin/g-ir-scanner
+ @echo 'exec "$(PTXDIST_SYSROOT_HOST)/usr/bin/g-ir-scanner" \
+ --use-binary-wrapper="$(PTXDIST_SYSROOT_CROSS)/usr/bin/qemu-cross" \
+ --use-ldd-wrapper="$(PTXDIST_SYSROOT_CROSS)/usr/bin/qemu/ldd" \
+ --add-include-path=${PTXDIST_SYSROOT_TARGET}/usr/share/gir-1.0 \
+ "$${@}"' >> $(PTXDIST_SYSROOT_CROSS)/usr/bin/g-ir-scanner
+ @chmod +x $(PTXDIST_SYSROOT_CROSS)/usr/bin/g-ir-scanner
+
+ @echo '#!/bin/sh' > $(PTXDIST_SYSROOT_CROSS)/usr/bin/g-ir-compiler
+ @echo '$(PTXDIST_SYSROOT_CROSS)/usr/bin/qemu-cross \
+ $(SYSROOT)/usr/bin/g-ir-compiler --includedir \
+ $(SYSROOT)/usr/share/gir-1.0 "$${@}"' >> $(PTXDIST_SYSROOT_CROSS)/usr/bin/g-ir-compiler
+ @chmod +x $(PTXDIST_SYSROOT_CROSS)/usr/bin/g-ir-compiler
+
+ @sed -i 's;"/usr/share";"$(PTXDIST_SYSROOT_HOST)/usr/share";' \
+ "$(PTXDIST_SYSROOT_HOST)/usr/bin/g-ir-scanner" \
+ "$(PTXDIST_SYSROOT_HOST)/usr/bin/g-ir-annotation-tool"
+
+ @sed -i "s;'/usr/lib';'$(PTXDIST_SYSROOT_HOST)/usr/lib';" \
+ "$(PTXDIST_SYSROOT_HOST)/usr/bin/g-ir-scanner" \
+ "$(PTXDIST_SYSROOT_HOST)/usr/bin/g-ir-annotation-tool"
+
+ @$(call world/prepare, GOBJECT_INTROSPECTION)
+ @$(call touch)
+
# needed so g-ir-compiler runs in qemu
GOBJECT_INTROSPECTION_MAKE_ENV = \
CROSS_LD_LIBRARY_PATH=$(GOBJECT_INTROSPECTION_DIR)-build/girepository
@@ -53,7 +85,7 @@ GOBJECT_INTROSPECTION_MAKE_ENV = \
$(STATEDIR)/gobject-introspection.install.post:
@$(call targetinfo)
@$(call world/install.post, GOBJECT_INTROSPECTION)
- @sed -i 's;bindir=.*;bindir=$(PTXDIST_SYSROOT_CROSS)/bin;' \
+ @sed -i 's;bindir=.*;bindir=$(PTXDIST_SYSROOT_CROSS)/usr/bin;' \
$(SYSROOT)/usr/lib/pkgconfig/gobject-introspection-1.0.pc
@$(call touch)
@@ -79,4 +111,15 @@ $(STATEDIR)/gobject-introspection.targetinstall:
@$(call touch)
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/gobject-introspection.clean:
+ @$(call targetinfo)
+ @$(call clean_pkg, GOBJECT_INTROSPECTION)
+ @rm \
+ $(PTXDIST_SYSROOT_CROSS)/usr/bin/g-ir-scanner \
+ $(PTXDIST_SYSROOT_CROSS)/usr/bin/g-ir-compiler
+
# vim: syntax=make
diff --git a/rules/gpgme.make b/rules/gpgme.make
index 1f909519d..2e3cbb196 100644
--- a/rules/gpgme.make
+++ b/rules/gpgme.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_GPGME) += gpgme
#
# Paths and names
#
-GPGME_VERSION := 1.11.1
-GPGME_MD5 := 129c46fb85a7ffa41e43345e48aee884
+GPGME_VERSION := 1.17.0
+GPGME_MD5 := 47eced250be5992da38b6c113f6fe3e7
GPGME := gpgme-$(GPGME_VERSION)
GPGME_SUFFIX := tar.bz2
GPGME_URL := https://www.gnupg.org/ftp/gcrypt/gpgme/$(GPGME).$(GPGME_SUFFIX)
@@ -34,6 +34,10 @@ GPGME_LANG-$(PTXCONF_GPGME_CPP) += cpp
GPGME_LANG := $(subst $(space),$(comma),$(strip $(GPGME_LANG-y)))
+GPGME_CONF_ENV := \
+ $(CROSS_ENV) \
+ LIBASSUAN_CONFIG="$(PTXDIST_SYSROOT_CROSS)/usr/bin/libassuan-config"
+
#
# autoconf
#
diff --git a/rules/gpsd.in b/rules/gpsd.in
index deebe6bbc..f14fcb7cc 100644
--- a/rules/gpsd.in
+++ b/rules/gpsd.in
@@ -68,6 +68,19 @@ config GPSD_USB
comment "Other options ---"
+config GPSD_DEBUG
+ bool
+ prompt "debug support"
+ help
+ Client debug support, debug information in build, install
+ gpsdebuginfo.
+
+config GPSD_LOGGING
+ bool
+ prompt "log/hexdump"
+ help
+ If unset: squelch gpsd_log/gpsd_hexdump to save cpu.
+
config GPSD_LIBGPSMM
bool
prompt "C++ class wrappers"
diff --git a/rules/gpsd.make b/rules/gpsd.make
index 4389356d2..c804cfebf 100644
--- a/rules/gpsd.make
+++ b/rules/gpsd.make
@@ -16,8 +16,8 @@ PACKAGES-$(PTXCONF_GPSD) += gpsd
#
# Paths and names
#
-GPSD_VERSION := 3.21
-GPSD_MD5 := 782e4b10193f225cc95c65528636d4f5
+GPSD_VERSION := 3.23.1
+GPSD_MD5 := 7984a35e7104b46c2cb570fb30c4be03
GPSD := gpsd-$(GPSD_VERSION)
GPSD_SUFFIX := tar.xz
GPSD_URL := http://download.savannah.gnu.org/releases/gpsd/$(GPSD).$(GPSD_SUFFIX)
@@ -61,11 +61,12 @@ GPSD_CONF_OPT = \
aivdm=$(call ptx/yesno, PTXCONF_GPSD_DRIVER_AIVDM) \
ashtech=$(call ptx/yesno, PTXCONF_GPSD_DRIVER_ASHTECH) \
bluez=$(call ptx/yesno, PTXCONF_GPSD_BLUEZ) \
- clientdebug=no \
+ clientdebug=$(call ptx/yesno, PTXCONF_GPSD_DEBUG) \
control_socket=yes \
coveraging=no \
dbus_export=$(call ptx/yesno, PTXCONF_GPSD_DBUS) \
- debug=no \
+ debug=$(call ptx/yesno, PTXCONF_GPSD_DEBUG) \
+ debug_opt=false \
earthmate=$(call ptx/yesno, PTXCONF_GPSD_DRIVER_EARTHMATE) \
evermore=$(call ptx/yesno, PTXCONF_GPSD_DRIVER_EVERMORE) \
force_global=yes \
@@ -101,6 +102,7 @@ GPSD_CONF_OPT = \
profiling=$(call ptx/yesno, PTXCONF_GPSD_PROFILING) \
python=$(call ptx/yesno, PTXCONF_GPSD_PYTHON) \
python_libdir=/usr/lib/python$(PYTHON3_MAJORMINOR) \
+ python_shebang=/usr/bin/python$(PYTHON3_MAJORMINOR) \
qt=no \
rtcm104v2=$(call ptx/yesno, PTXCONF_GPSD_DRIVER_RTCM104V2) \
rtcm104v3=$(call ptx/yesno, PTXCONF_GPSD_DRIVER_RTCM104V3) \
@@ -110,7 +112,7 @@ GPSD_CONF_OPT = \
sirf=$(call ptx/yesno, PTXCONF_GPSD_DRIVER_SIRF) \
skytraq=$(call ptx/yesno, PTXCONF_GPSD_DRIVER_SKYTRAQ) \
socket_export=$(call ptx/yesno, PTXCONF_GPSD_SOCKET) \
- squelch=yes \
+ squelch=$(call ptx/noyes, PTXCONF_GPSD_LOGGING) \
superstar2=$(call ptx/yesno, PTXCONF_GPSD_DRIVER_SUPERSTAR2) \
sysconfdir=/etc \
systemd=$(call ptx/yesno, PTXCONF_GPSD_SYSTEMD) \
@@ -184,6 +186,9 @@ ifdef PTXCONF_GPSD_PYTHON
@$(call install_glob, gpsd, 0, 0, -, \
/usr/lib/python$(PYTHON3_MAJORMINOR), *.py)
endif
+ifdef PTXCONF_GPSD_DEBUG
+ @$(call install_copy, gpsd, 0, 0, 0755, -, /usr/bin/gpsdebuginfo)
+endif
@$(call install_finish, gpsd)
@$(call touch)
diff --git a/rules/graphene.make b/rules/graphene.make
index 889236d5c..5e5971b00 100644
--- a/rules/graphene.make
+++ b/rules/graphene.make
@@ -14,15 +14,15 @@ PACKAGES-$(PTXCONF_GRAPHENE) += graphene
#
# Paths and names
#
-GRAPHENE_VERSION := 1.9.2
-GRAPHENE_MD5 := 4e274bb09ae3e04647763163be4f0a77
+GRAPHENE_VERSION := 1.10.8
+GRAPHENE_MD5 := 32660faa6ab717ee1600566ede027e9d
GRAPHENE := graphene-$(GRAPHENE_VERSION)
-GRAPHENE_SUFFIX := tar.xz
-GRAPHENE_URL := https://github.com/ebassi/graphene/releases/download/$(GRAPHENE_VERSION)/$(GRAPHENE).$(GRAPHENE_SUFFIX)
+GRAPHENE_SUFFIX := tar.gz
+GRAPHENE_URL := https://github.com/ebassi/graphene/archive/refs/tags/$(GRAPHENE_VERSION).$(GRAPHENE_SUFFIX)
GRAPHENE_SOURCE := $(SRCDIR)/$(GRAPHENE).$(GRAPHENE_SUFFIX)
GRAPHENE_DIR := $(BUILDDIR)/$(GRAPHENE)
GRAPHENE_LICENSE := MIT
-GRAPHENE_LICENSE_FILES := file://LICENSE;md5=a7d871d9e23c450c421a85bb2819f648
+GRAPHENE_LICENSE_FILES := file://LICENSE.txt;md5=a7d871d9e23c450c421a85bb2819f648
# ----------------------------------------------------------------------------
# Prepare
@@ -35,11 +35,11 @@ GRAPHENE_CONF_TOOL := meson
GRAPHENE_CONF_OPT := \
$(CROSS_MESON_USR) \
-Darm_neon=$(call ptx/truefalse, PTXCONF_ARCH_ARM_NEON) \
- -Dbenchmarks=false \
-Dgcc_vector=true \
-Dgobject_types=true \
-Dgtk_doc=false \
- -Dintrospection=$(call ptx/truefalse, PTXCONF_GRAPHENE_INTROSPECTION) \
+ -Dinstalled_tests=false \
+ -Dintrospection=$(call ptx/endis, PTXCONF_GRAPHENE_INTROSPECTION)d \
-Dsse2=$(call ptx/truefalse, PTXCONF_ARCH_X86) \
-Dtests=false
diff --git a/rules/graphics_and_multimedia.in b/rules/graphics_and_multimedia.in
index cf50eed45..8e88818c7 100644
--- a/rules/graphics_and_multimedia.in
+++ b/rules/graphics_and_multimedia.in
@@ -3,11 +3,9 @@
menuconfig MENU_XORG_FONTS
bool
prompt "fonts "
- select XORG_LIB_XFONT2_PCF_FONTS if XORG_SERVER
- default y if XORG_SERVER
help
These fonts can be used with an x-server, standalone directfb or
- gtk ontop of directfb.
+ gtk on top of directfb.
if MENU_XORG_FONTS
@@ -21,15 +19,6 @@ config XORG_FONTS
select HOST_XORG_APP_BDFTOPCF
select HOST_XORG_FONT_UTIL
-config XORG_FONTS_QT4_LINKS
- depends on QT4_PLATFORM_EMBEDDED
- bool
- prompt "Make fonts accessible for QtEmbedded"
- help
- QtEmbedded only looks in one directory for fonts. This will create
- links to all fonts int the Qt Font directory to allow QtEmbedded
- applications to use these fonts.
-
source "generated/multimedia_xorg_font.in"
endif
@@ -41,10 +30,6 @@ menu "framebuffer "
source "generated/multimedia_framebuffer.in"
endmenu
-menu "gstreamer 0.10 "
-source "generated/multimedia_gstreamer.in"
-endmenu
-
menu "gstreamer 1.0 "
source "generated/multimedia_gstreamer1.in"
endmenu
@@ -56,6 +41,10 @@ endmenu
# moved to staging
#source "generated/multimedia_mplayer.in"
+menu "pipewire "
+source "generated/multimedia_pipewire.in"
+endmenu
+
menu "qt "
source "generated/qt.in"
endmenu
diff --git a/rules/graphite2.make b/rules/graphite2.make
index 38ab53369..d10b92016 100644
--- a/rules/graphite2.make
+++ b/rules/graphite2.make
@@ -14,14 +14,17 @@ PACKAGES-$(PTXCONF_GRAPHITE2) += graphite2
#
# Paths and names
#
-GRAPHITE2_VERSION := 1.3.11
-GRAPHITE2_MD5 := 9b6166dee759e2175fe7983f65bd8be2
+GRAPHITE2_VERSION := 1.3.14
+GRAPHITE2_MD5 := 1bccb985a7da01092bfb53bb5041e836
GRAPHITE2 := graphite2-$(GRAPHITE2_VERSION)
GRAPHITE2_SUFFIX := tgz
GRAPHITE2_URL := https://github.com/silnrsi/graphite/releases/download/$(GRAPHITE2_VERSION)/$(GRAPHITE2).$(GRAPHITE2_SUFFIX)
GRAPHITE2_SOURCE := $(SRCDIR)/$(GRAPHITE2).$(GRAPHITE2_SUFFIX)
GRAPHITE2_DIR := $(BUILDDIR)/$(GRAPHITE2)
GRAPHITE2_LICENSE := LGPL-2.1-or-later OR GPL-2.0-or-later OR MPL-2.0
+GRAPHITE2_LICENSE_FILES := \
+ file://src/Code.cpp;startline=1;endline=26;md5=a919fa4bf0a64c4b3cc01c3cbe0d293f \
+ file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/grep.in b/rules/grep.in
index 1da279121..6ddf8bdc1 100644
--- a/rules/grep.in
+++ b/rules/grep.in
@@ -6,7 +6,7 @@ menuconfig GREP
tristate
depends on !BUSYBOX_GREP || ALLYES
select GCCLIBS_GCC_S
- select LIBPCRE if GREP_PCRE
+ select PCRE2 if GREP_PCRE
prompt "grep "
help
GNUgrep searches one or more input files for lines
diff --git a/rules/grep.make b/rules/grep.make
index c73da1b04..a1dc4eb71 100644
--- a/rules/grep.make
+++ b/rules/grep.make
@@ -15,13 +15,16 @@ PACKAGES-$(PTXCONF_GREP) += grep
#
# Paths and names
#
-GREP_VERSION := 3.3
-GREP_MD5 := 05d0718a1b7cc706a4bdf8115363f1ed
-GREP := grep-$(GREP_VERSION)
-GREP_SUFFIX := tar.xz
-GREP_URL := $(call ptx/mirror, GNU, grep/$(GREP).$(GREP_SUFFIX))
-GREP_SOURCE := $(SRCDIR)/$(GREP).$(GREP_SUFFIX)
-GREP_DIR := $(BUILDDIR)/$(GREP)
+GREP_VERSION := 3.8
+GREP_MD5 := dc6e4d18d4659e6e7552fc4a183c8ac9
+GREP := grep-$(GREP_VERSION)
+GREP_SUFFIX := tar.xz
+GREP_URL := $(call ptx/mirror, GNU, grep/$(GREP).$(GREP_SUFFIX))
+GREP_SOURCE := $(SRCDIR)/$(GREP).$(GREP_SUFFIX)
+GREP_DIR := $(BUILDDIR)/$(GREP)
+GREP_LICENSE := GPL-3.0-or-later
+GREP_LICENSE_FILES := \
+ file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/grpc.in b/rules/grpc.in
deleted file mode 100644
index 2c61c36e2..000000000
--- a/rules/grpc.in
+++ /dev/null
@@ -1,28 +0,0 @@
-## SECTION=system_libraries
-
-menuconfig GRPC
- tristate
- select HOST_CMAKE
- select HOST_GRPC
- select GCCLIBS_CXX
- select GCCLIBS_GCC_S
- select LIBC_DL
- select LIBC_M
- select LIBC_PTHREAD
- select LIBC_RT
- select C_ARES
- select OPENSSL
- select PROTOBUF
- select ZLIB
- prompt "grpc "
- help
- gRPC is a modern, open source, high-performance remote procedure
- call (RPC) framework.
-
-if GRPC
-
-config GRPC_CSHARP_EXTENSION
- bool
- prompt "C# extension"
-
-endif
diff --git a/rules/grpc.make b/rules/grpc.make
deleted file mode 100644
index 85032aafb..000000000
--- a/rules/grpc.make
+++ /dev/null
@@ -1,95 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2018 by Clemens Gruber <clemens.gruber@pqgruber.com>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_GRPC) += grpc
-
-#
-# Paths and names
-#
-GRPC_VERSION := 1.21.0
-GRPC_MD5 := 9203f75a9a118684d2dd23500eabd2dd
-GRPC := grpc-$(GRPC_VERSION)
-GRPC_SUFFIX := tar.gz
-GRPC_URL := https://github.com/grpc/grpc/archive/v$(GRPC_VERSION).$(GRPC_SUFFIX)
-GRPC_SOURCE := $(SRCDIR)/$(GRPC).$(GRPC_SUFFIX)
-GRPC_DIR := $(BUILDDIR)/$(GRPC)
-GRPC_LICENSE := BSD-3-Clause
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# cmake
-#
-GRPC_CONF_TOOL := cmake
-
-GRPC_CONF_OPT := \
- $(CROSS_CMAKE_USR) \
- -DBUILD_SHARED_LIBS=ON \
- -DCMAKE_CXX_FLAGS='-Wno-error=ignored-qualifiers' \
- -DgRPC_BACKWARDS_COMPATIBILITY_MODE=OFF \
- -DgRPC_BENCHMARK_PROVIDER=none \
- -DgRPC_BUILD_CSHARP_EXT=$(call ptx/onoff, PTXCONF_GRPC_CSHARP_EXTENSION) \
- -DgRPC_BUILD_TESTS=OFF \
- -D_gRPC_CARES_LIBRARIES=cares \
- -DgRPC_CARES_PROVIDER=none \
- -DgRPC_GFLAGS_PROVIDER=none \
- -DgRPC_PROTOBUF_PROVIDER=package \
- -DgRPC_SSL_PROVIDER=package \
- -DgRPC_ZLIB_PROVIDER=package \
- -DPROTOBUF_PROTOC_EXECUTABLE=$(PTXDIST_SYSROOT_HOST)/bin/protoc
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/grpc.install:
- @$(call targetinfo)
- @$(call world/install, GRPC)
-
- @install -d $(GRPC_PKGDIR)/usr/lib/pkgconfig/
- VERSION=$$(sed -n '/CORE_VERSION =/s/.*=\s*\(.*\)/\1/p' $(GRPC_DIR)/Makefile) \
- ptxd_replace_magic $(GRPC_DIR)/grpc.pc.in > \
- $(GRPC_PKGDIR)/usr/lib/pkgconfig/grpc.pc
- VERSION=$$(sed -n '/CPP_VERSION =/s/.*=\s*\(.*\)/\1/p' $(GRPC_DIR)/Makefile) \
- ptxd_replace_magic $(GRPC_DIR)/grpc++.pc.in > \
- $(GRPC_PKGDIR)/usr/lib/pkgconfig/grpc++.pc
-
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/grpc.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, grpc)
- @$(call install_fixup, grpc,PRIORITY,optional)
- @$(call install_fixup, grpc,SECTION,base)
- @$(call install_fixup, grpc,AUTHOR,"Clemens Gruber <clemens.gruber@pqgruber.com>")
- @$(call install_fixup, grpc,DESCRIPTION,missing)
-
- @$(call install_lib, grpc, 0, 0, 0644, libaddress_sorting)
- @$(call install_lib, grpc, 0, 0, 0644, libgpr)
- @$(call install_lib, grpc, 0, 0, 0644, libgrpc)
- @$(call install_lib, grpc, 0, 0, 0644, libgrpc++)
-
-ifdef PTXCONF_GRPC_CSHARP_EXTENSION
- @$(call install_lib, grpc, 0, 0, 0644, libgrpc_csharp_ext)
-endif
-
- @$(call install_finish, grpc)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/grub.make b/rules/grub.make
index 8f01a7fca..63b93c2d7 100644
--- a/rules/grub.make
+++ b/rules/grub.make
@@ -24,20 +24,19 @@ GRUB_DIR := $(BUILDDIR)/$(GRUB)
# Prepare
# ----------------------------------------------------------------------------
-GRUB_PATH := PATH=$(CROSS_PATH)
-
# RSC: grub 0.93 decides to build without optimization when it detects
# non-standard CFLAGS. We can unset them here as grub is compiled
# standalone anyway (without Linux/glibc includes)
-GRUB_ENV := $(CROSS_ENV) CFLAGS=''
+GRUB_CONF_ENV := $(CROSS_ENV) CFLAGS=''
GRUB_CFLAGS := -fgnu89-inline
GRUB_WRAPPER_BLACKLIST := \
$(PTXDIST_LOWLEVEL_WRAPPER_BLACKLIST)
-GRUB_AUTOCONF := \
+GRUB_CONF_TOOL := autoconf
+GRUB_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--without-curses \
--target=$(PTXCONF_GNU_TARGET) \
@@ -97,31 +96,31 @@ GRUB_AUTOCONF := \
--$(call ptx/endis, PTXCONF_GRUB_AUTO_LINUX_MEM_OPT)-auto-linux-mem-opt
ifneq ("$(PTXCONF_GRUB_SMC9000_SCAN)","")
-GRUB_AUTOCONF += --enable-smc9000-scan=$(PTXCONF_GRUB_SMC9000_SCAN)
+GRUB_CONF_OPT += --enable-smc9000-scan=$(PTXCONF_GRUB_SMC9000_SCAN)
else
-GRUB_AUTOCONF += --disable-smc9000-scan
+GRUB_CONF_OPT += --disable-smc9000-scan
endif
ifneq ($(strip $(call remove_quotes,$(PTXCONF_GRUB_NE_SCAN))),)
-GRUB_AUTOCONF += --enable-ne-scan=$(PTXCONF_GRUB_NE_SCAN)
+GRUB_CONF_OPT += --enable-ne-scan=$(PTXCONF_GRUB_NE_SCAN)
endif
ifneq ("$(PTXCONF_GRUB_WD_DEFAULT_MEM)","")
-GRUB_AUTOCONF += --enable-wd-default-mem=$(PTXCONF_GRUB_WD_DEFAULT_MEM)
+GRUB_CONF_OPT += --enable-wd-default-mem=$(PTXCONF_GRUB_WD_DEFAULT_MEM)
else
-GRUB_AUTOCONF += --disable-wd-default-mem
+GRUB_CONF_OPT += --disable-wd-default-mem
endif
ifneq ("$(PTXCONF_GRUB_CS_SCAN)","")
-GRUB_AUTOCONF += --enable-cs-scan=$(PTXCONF_GRUB_CS_SCAN)
+GRUB_CONF_OPT += --enable-cs-scan=$(PTXCONF_GRUB_CS_SCAN)
else
-GRUB_AUTOCONF += --disable-cs-scan
+GRUB_CONF_OPT += --disable-cs-scan
endif
ifneq ("$(PTXCONF_GRUB_PRESET_MENU)","")
-GRUB_AUTOCONF += --enable-preset-menu=$(PTXCONF_GRUB_PRESET_MENU)
+GRUB_CONF_OPT += --enable-preset-menu=$(PTXCONF_GRUB_PRESET_MENU)
else
-GRUB_AUTOCONF += --disable-preset-menu
+GRUB_CONF_OPT += --disable-preset-menu
endif
# ----------------------------------------------------------------------------
diff --git a/rules/gst-bayer2rgb-neon.in b/rules/gst-bayer2rgb-neon.in
index 7aa07d199..eac2ffa63 100644
--- a/rules/gst-bayer2rgb-neon.in
+++ b/rules/gst-bayer2rgb-neon.in
@@ -7,5 +7,5 @@ config GST_BAYER2RGB_NEON
select GSTREAMER1
select GST_PLUGINS_BASE1
help
- Unofficial Gstreamer-plugin that utilizes
+ Unofficial GStreamer-plugin that utilizes
NEON-extension to convert video/x-bayer to RGB.
diff --git a/rules/gst-devtools1.make b/rules/gst-devtools1.make
index 3943d0da3..3c82e2fe0 100644
--- a/rules/gst-devtools1.make
+++ b/rules/gst-devtools1.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_GST_DEVTOOLS1) += gst-devtools1
#
# Paths and names
#
-GST_DEVTOOLS1_VERSION := 1.18.4
-GST_DEVTOOLS1_MD5 := ef26ae2311be44127243dc99ff475059
+GST_DEVTOOLS1_VERSION := 1.24.2
+GST_DEVTOOLS1_MD5 := d18140f7473f08067bb769d60a0fb718
GST_DEVTOOLS1 := gst-devtools-$(GST_DEVTOOLS1_VERSION)
GST_DEVTOOLS1_SUFFIX := tar.xz
GST_DEVTOOLS1_URL := http://gstreamer.freedesktop.org/data/src/gst-devtools/$(GST_DEVTOOLS1).$(GST_DEVTOOLS1_SUFFIX)
@@ -33,11 +33,13 @@ GST_DEVTOOLS1_LICENSE := LGPL-2.1-or-later
GST_DEVTOOLS1_CONF_TOOL := meson
GST_DEVTOOLS1_CONF_OPT := \
$(CROSS_MESON_USR) \
+ -Dcairo=$(call ptx/endis,PTXCONF_GST_DEVTOOLS1_VIDEO)d \
-Ddebug_viewer=disabled \
-Ddoc=disabled \
-Dintrospection=$(call ptx/endis,PTXCONF_GSTREAMER1_INTROSPECTION)d \
-Dnls=disabled \
-Dtests=disabled \
+ -Dtools=enabled \
-Dvalidate=enabled
# ----------------------------------------------------------------------------
@@ -69,8 +71,6 @@ $(STATEDIR)/gst-devtools1.targetinstall:
/usr/bin/gst-validate-1.0)
@$(call install_copy, gst-devtools1, 0, 0, 0755, -, \
/usr/bin/gst-validate-media-check-1.0)
- @$(call install_copy, gst-devtools1, 0, 0, 0755, -, \
- /usr/bin/gst-validate-transcoding-1.0)
@$(call install_tree, gst-devtools1, 0, 0, -, \
/usr/share/gstreamer-1.0/validate/scenarios)
diff --git a/rules/gst-libav1.make b/rules/gst-libav1.make
index b96841e81..05f6c6e5a 100644
--- a/rules/gst-libav1.make
+++ b/rules/gst-libav1.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_GST_LIBAV1) += gst-libav1
#
# Paths and names
#
-GST_LIBAV1_VERSION := 1.18.4
-GST_LIBAV1_MD5 := 71bd312207411fb69364b19b4b249331
+GST_LIBAV1_VERSION := 1.24.2
+GST_LIBAV1_MD5 := 1806080f07f86a67a5332b3d834a2e39
GST_LIBAV1 := gst-libav-$(GST_LIBAV1_VERSION)
GST_LIBAV1_SUFFIX := tar.xz
GST_LIBAV1_URL := http://gstreamer.freedesktop.org/src/gst-libav/$(GST_LIBAV1).$(GST_LIBAV1_SUFFIX)
@@ -35,7 +35,8 @@ GST_LIBAV1_CONF_OPT := \
$(CROSS_MESON_USR) \
-Ddoc=disabled \
-Dpackage-name="GStreamer FFMPEG Plug-ins source release" \
- -Dpackage-origin=PTXdist
+ -Dpackage-origin=PTXdist \
+ -Dtests=disabled
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/gst-plugins-bad.in b/rules/gst-plugins-bad.in
deleted file mode 100644
index f1af9810c..000000000
--- a/rules/gst-plugins-bad.in
+++ /dev/null
@@ -1,591 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=multimedia_gstreamer
-
-menuconfig GST_PLUGINS_BAD
- tristate
- select GLIB
- select LIBOIL
- select GSTREAMER
- select GST_PLUGINS_BASE
- select SDL if GST_PLUGINS_BAD_SDL
- select BZIP2 if GST_PLUGINS_BAD_BZ2
- select BZIP2_LIBBZ2 if GST_PLUGINS_BAD_BZ2
- select ORC if GST_PLUGINS_BAD_ORC
-
- prompt "gst-plugins-bad "
- help
- GStreamer Bad Plug-ins is a set of plug-ins that aren't
- up to par compared to the rest. They might be close to being
- good quality, but they're missing something - be it a good
- code review, some documentation, a set of tests, a real
- live maintainer, or some actual wide use.
-
- STAGING: remove in ptxdist-2021.05.0
- GStreamer 0.10 has been dead more than 8 years.
-
-
-if GST_PLUGINS_BAD
-
-config GST_PLUGINS_BAD_ORC
- bool
-
-config GST_PLUGINS_BAD_ADPCMDEC
- bool
- prompt "adpcmdec"
-
-config GST_PLUGINS_BAD_ADPCMENC
- bool
- prompt "adpcmenc"
-
-config GST_PLUGINS_BAD_AIFF
- bool
- prompt "aiff"
-
-config GST_PLUGINS_BAD_ASFMUX
- bool
- prompt "asfmux"
-
-config GST_PLUGINS_BAD_AUDIOVISUALIZERS
- bool
- prompt "audiovisualizers"
-
-config GST_PLUGINS_BAD_AUTOCONVERT
- bool
- prompt "autoconvert"
-
-config GST_PLUGINS_BAD_CAMERABIN
- bool
- prompt "camerabin"
-
-config GST_PLUGINS_BAD_CAMERABIN2
- bool
- prompt "camerabin2"
-
-config GST_PLUGINS_BAD_LEGACYRESAMPLE
- bool
- prompt "legacyresample"
-
-config GST_PLUGINS_BAD_BAYER
- bool
- prompt "bayer"
-
-config GST_PLUGINS_BAD_CDXAPARSE
- bool
- prompt "cdxaparse"
-
-config GST_PLUGINS_BAD_DATAURISRC
- bool
- prompt "dataurisrc"
-
-config GST_PLUGINS_BAD_DCCP
- bool
- prompt "dccp"
-
-config GST_PLUGINS_BAD_DEBUGUTILS
- bool
- prompt "debugutils"
-
-config GST_PLUGINS_BAD_DTMF
- bool
- prompt "dtmf"
-
-config GST_PLUGINS_BAD_DVDSPU
- bool
- prompt "dvdspu"
-
-config GST_PLUGINS_BAD_FACEOVERLAY
- bool
- prompt "faceoverlay"
-
-config GST_PLUGINS_BAD_FESTIVAL
- bool
- prompt "festival"
-
-config GST_PLUGINS_BAD_FREEZE
- bool
- prompt "freeze"
-
-config GST_PLUGINS_BAD_FREEVERB
- bool
- prompt "freeverb"
-
-config GST_PLUGINS_BAD_FREI0R
- bool
- prompt "frei0r"
-
-config GST_PLUGINS_BAD_H264PARSE
- bool
- prompt "h264parse"
-
-config GST_PLUGINS_BAD_HDVPARSE
- bool
- prompt "hdvparse"
-
-config GST_PLUGINS_BAD_ID3TAG
- bool
- prompt "id3tag"
-
-config GST_PLUGINS_BAD_INTER
- bool
- prompt "inter"
-
-config GST_PLUGINS_BAD_JPEGFORMAT
- bool
- prompt "jpegformat"
-
-config GST_PLUGINS_BAD_LIBRFB
- bool
- prompt "librfb"
-
-config GST_PLUGINS_BAD_LIVEADDER
- bool
- prompt "liveadder"
-
-config GST_PLUGINS_BAD_MPEGDEMUX
- bool
- prompt "mpegdemux"
-
-config GST_PLUGINS_BAD_MPEGTSMUX
- bool
- prompt "mpegtsmux"
-
-config GST_PLUGINS_BAD_MPEGPSMUX
- bool
- prompt "mpegpsmux"
-
-config GST_PLUGINS_BAD_MPEGVIDEOPARSE
- bool
- prompt "mpegvideoparse"
-
-config GST_PLUGINS_BAD_MVE
- bool
- prompt "mve"
-
-config GST_PLUGINS_BAD_MXF
- bool
- prompt "mxf"
-
-config GST_PLUGINS_BAD_NFS
- bool
- prompt "nsf"
-
-config GST_PLUGINS_BAD_NUVDEMUX
- bool
- prompt "nuvdemux"
-
-config GST_PLUGINS_BAD_PCAPPARSE
- bool
- prompt "pcapparse"
-
-config GST_PLUGINS_BAD_PNM
- bool
- prompt "pnm"
-
-config GST_PLUGINS_BAD_RAWPARSE
- bool
- prompt "rawparse"
-
-config GST_PLUGINS_BAD_REAL
- bool
- prompt "real"
-
-config GST_PLUGINS_BAD_REMOVESILENCE
- bool
- prompt "removesilence"
-
-config GST_PLUGINS_BAD_RTPMUX
- bool
- prompt "rtpmux"
-
-config GST_PLUGINS_BAD_SCALETEMPO
- bool
- prompt "scaletempo"
-
-config GST_PLUGINS_BAD_SDP
- bool
- prompt "sdp"
-
-config GST_PLUGINS_BAD_SEGMENTCLIP
- bool
- prompt "segmentclip"
-
-config GST_PLUGINS_BAD_SIREN
- bool
- prompt "siren"
-
-config GST_PLUGINS_BAD_SMOOTH
- bool
- prompt "smooth"
-
-config GST_PLUGINS_BAD_SPEED
- bool
- prompt "speed"
-
-config GST_PLUGINS_BAD_SUBENC
- bool
- prompt "subenc"
-
-config GST_PLUGINS_BAD_STEREO
- bool
- prompt "stereo"
-
-config GST_PLUGINS_BAD_TTA
- bool
- prompt "tta"
-
-config GST_PLUGINS_BAD_VIDEOMEASURE
- bool
- prompt "videomeasure"
-
-config GST_PLUGINS_BAD_VIDEOSIGNAL
- bool
- prompt "videosignal"
-
-config GST_PLUGINS_BAD_VMNC
- bool
- prompt "vmnc"
-
-config GST_PLUGINS_BAD_AVC
- bool
- prompt "avc"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_SHM
- bool
- prompt "shm"
-
-config GST_PLUGINS_BAD_VCD
- bool
- prompt "vcd"
-
-config GST_PLUGINS_BAD_ASSRENDER
- bool
- prompt "assrender"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_VOAMRWBENC
- bool
- prompt "voamrwbenc"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_VOAACENC
- bool
- prompt "voaacenc"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_APEXSINK
- bool
- prompt "apexsink"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_BZ2
- bool
- prompt "bz2"
-
-config GST_PLUGINS_BAD_CDAUDIO
- bool
- prompt "cdaudio"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_CELT
- bool
- prompt "celt"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_COG
- bool
- prompt "cog"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_DC1394
- bool
- prompt "dc1394"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_DIRECTFB
- bool
- prompt "directfb"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_DIRAC
- bool
- prompt "dirac"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_DTS
- bool
- select GST_PLUGINS_BAD_ORC
- prompt "dts"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_DIVX
- bool
- prompt "divx"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_RESINDVD
- bool
- # needs dvdnav & dvdread
- depends on BROKEN
- prompt "resindvd"
-
-config GST_PLUGINS_BAD_FAAC
- bool
- prompt "faac"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_FAAD
- bool
- prompt "faad"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_FBDEV
- bool
- prompt "fbdev"
-
-config GST_PLUGINS_BAD_FLITE
- bool
- prompt "flite"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_GSM
- bool
- prompt "gsm"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_JP2K
- bool
- prompt "jp2k"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_KATE
- bool
- prompt "kate"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_LADSPA
- bool
- prompt "ladspa"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_LV2
- bool
- prompt "lv2"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_LIBMMS
- bool
- # needs libmms
- depends on BROKEN
- prompt "libmms"
-
-config GST_PLUGINS_BAD_MODPLUG
- bool
- # needs libmodplug
- depends on BROKEN
- prompt "modplug"
-
-config GST_PLUGINS_BAD_MIMIC
- bool
- prompt "mimic"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_MPEG2ENC
- bool
- prompt "mpeg2enc"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_MPLEX
- bool
- prompt "mplex"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_MUSEPACK
- bool
- prompt "musepack"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_MUSICBRAINZ
- bool
- prompt "musicbrainz"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_MYTHTV
- bool
- prompt "mythtv"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_NAS
- bool
- prompt "nas"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_NEON
- bool
- prompt "neon"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_OFA
- bool
- prompt "ofa"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_OPENAL
- bool
- prompt "openal"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_OPENCV
- bool
- prompt "opencv"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_OPUS
- bool
- prompt "opus"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_PVR
- bool
- prompt "pvr"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_RSVG
- bool
- prompt "rsvg"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_TIMIDITY
- bool
- prompt "timidity"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_TELETEXTDEC
- bool
- prompt "teletextdec"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_WILDMIDI
- bool
- prompt "wildmidi"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_SDL
- bool
- prompt "sdl"
-
-config GST_PLUGINS_BAD_SNDFILE
- bool
- # needs sndfile
- depends on BROKEN
- prompt "sndfile"
-
-config GST_PLUGINS_BAD_SOUNDTOUCH
- bool
- prompt "soundtouch"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_SPC
- bool
- prompt "spc"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_GME
- bool
- prompt "gme"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_SWFDEC
- bool
- prompt "swfdec"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_XVID
- bool
- prompt "xvid"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_DVB
- bool
- prompt "dvb"
-
-config GST_PLUGINS_BAD_WININET
- bool
- prompt "wininet"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_ACM
- bool
- prompt "acm"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_VDPAU
- bool
- prompt "vdpau"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_SCHRO
- bool
- # needs schroedinger-1.0
- depends on BROKEN
- prompt "schro"
-
-config GST_PLUGINS_BAD_ZBAR
- bool
- prompt "zbar"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_VP8
- bool
- prompt "vp8"
- depends on BROKEN
-
-config GST_PLUGINS_BAD_COLOREFFECTS
- bool
- prompt "coloreffects"
-
-config GST_PLUGINS_BAD_COLORSPACE
- bool
- select GST_PLUGINS_BAD_ORC
- prompt "colorspace"
-
-config GST_PLUGINS_BAD_DVBSUBOVERLAY
- bool
- prompt "dvbsuboverlay"
-
-config GST_PLUGINS_BAD_GAUDIEFFECTS
- bool
- prompt "gaudieffects"
-
-config GST_PLUGINS_BAD_GEOMETRICTRANSFORMS
- bool
- prompt "geometrictransforms"
-
-config GST_PLUGINS_BAD_INTERLACE
- bool
- prompt "interlace"
-
-config GST_PLUGINS_BAD_IVFPARSE
- bool
- prompt "ivfparse"
-
-config GST_PLUGINS_BAD_VIDEOMAXRATE
- bool
- prompt "videomaxrate"
-
-config GST_PLUGINS_BAD_JP2DECIMATOR
- bool
- prompt "jp2decimator"
-
-config GST_PLUGINS_BAD_VIDEOMAXRATE
- bool
- prompt "videomaxrate"
-
-config GST_PLUGINS_BAD_Y4M
- bool
- depends on BROKEN
- prompt "j4m"
-
-endif
-
diff --git a/rules/gst-plugins-bad.make b/rules/gst-plugins-bad.make
deleted file mode 100644
index 80b88015f..000000000
--- a/rules/gst-plugins-bad.make
+++ /dev/null
@@ -1,228 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2010 by Erwin Rol <erwin@erwinrol.com>
-# Copyright (C) 2008 by Sascha Hauer
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_GST_PLUGINS_BAD) += gst-plugins-bad
-
-#
-# Paths and names
-#
-GST_PLUGINS_BAD_VERSION := 0.10.23
-GST_PLUGINS_BAD_MD5 := fcb09798114461955260e4d940db5987
-GST_PLUGINS_BAD := gst-plugins-bad-$(GST_PLUGINS_BAD_VERSION)
-GST_PLUGINS_BAD_SUFFIX := tar.bz2
-GST_PLUGINS_BAD_URL := http://gstreamer.freedesktop.org/src/gst-plugins-bad/$(GST_PLUGINS_BAD).$(GST_PLUGINS_BAD_SUFFIX)
-GST_PLUGINS_BAD_SOURCE := $(SRCDIR)/$(GST_PLUGINS_BAD).$(GST_PLUGINS_BAD_SUFFIX)
-GST_PLUGINS_BAD_DIR := $(BUILDDIR)/$(GST_PLUGINS_BAD)
-
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_ADPCMDEC) += adpcmdec
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_ADPCMENC) += adpcmenc
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_AIFF) += aiff
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_ASFMUX) += asfmux
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_AUDIOVISUALIZERS) += audiovisualizers
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_AUTOCONVERT) += autoconvert
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_CAMERABIN) += camerabin
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_CAMERABIN2) += camerabin2
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_LEGACYRESAMPLE) += legacyresample
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_BAYER) += bayer
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_CDXAPARSE) += cdxaparse
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_DATAURISRC) += dataurisrc
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_DCCP) += dccp
-GST_PLUGINS_BAD_ENABLEC-$(PTXCONF_GST_PLUGINS_BAD_DEBUGUTILS) += debugutils
-GST_PLUGINS_BAD_ENABLEP-$(PTXCONF_GST_PLUGINS_BAD_DEBUGUTILS) += debugutilsbad
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_DTMF) += dtmf
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_DVDSPU) += dvdspu
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_FACEOVERLAY) += faceoverlay
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_FESTIVAL) += festival
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_FREEZE) += freeze
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_FREEVERB) += freeverb
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_FREI0R) += frei0r
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_H264PARSE) += h264parse
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_HDVPARSE) += hdvparse
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_ID3TAG) += id3tag
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_INTER) += inter
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_JPEGFORMAT) += jpegformat
-GST_PLUGINS_BAD_ENABLEC-$(PTXCONF_GST_PLUGINS_BAD_LIBRFB) += librfb
-GST_PLUGINS_BAD_ENABLEP-$(PTXCONF_GST_PLUGINS_BAD_LIBRFB) += rfbsrc
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_LIVEADDER) += liveadder
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_MPEGDEMUX) += mpegdemux
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_MPEGTSMUX) += mpegtsmux
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_MPEGPSMUX) += mpegpsmux
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_MPEGVIDEOPARSE) += mpegvideoparse
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_MVE) += mve
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_MXF) += mxf
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_NFS) += nsf
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_NUVDEMUX) += nuvdemux
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_PCAPPARSE) += pcapparse
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_PNM) += pnm
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_RAWPARSE) += rawparse
-# real plugin cannot be built on arch != x86
-ifdef PTXCONF_ARCH_X86
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_REAL) += real
-endif
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_REMOVESILENCE) += removesilence
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_RTPMUX) += rtpmux
-GST_PLUGINS_BAD_ENABLEC-$(PTXCONF_GST_PLUGINS_BAD_SCALETEMPO) += scaletempo
-GST_PLUGINS_BAD_ENABLEP-$(PTXCONF_GST_PLUGINS_BAD_SCALETEMPO) += scaletempoplugin
-GST_PLUGINS_BAD_ENABLEC-$(PTXCONF_GST_PLUGINS_BAD_SDP) += sdp
-GST_PLUGINS_BAD_ENABLEP-$(PTXCONF_GST_PLUGINS_BAD_SDP) += sdpelem
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_SEGMENTCLIP) += segmentclip
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_SIREN) += siren
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_SMOOTH) += smooth
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_SPEED) += speed
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_SUBENC) += subenc
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_STEREO) += stereo
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_TTA) += tta
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_VIDEOMEASURE) += videomeasure
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_VIDEOSIGNAL) += videosignal
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_VMNC) += vmnc
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_AVC) += avc
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_SHM) += shm
-GST_PLUGINS_BAD_ENABLEC-$(PTXCONF_GST_PLUGINS_BAD_VCD) += vcd
-GST_PLUGINS_BAD_ENABLEP-$(PTXCONF_GST_PLUGINS_BAD_VCD) += vcdsrc
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_ASSRENDER) += assrender
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_VOAMRWBENC) += voamrwbenc
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_VOAACENC) += voaacenc
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_APEXSINK) += apexsink
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_BZ2) += bz2
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_CDAUDIO) += cdaudio
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_CELT) += celt
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_COG) += cog
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_DC1394) += dc1394
-GST_PLUGINS_BAD_ENABLEC-$(PTXCONF_GST_PLUGINS_BAD_DIRECTFB) += directfb
-GST_PLUGINS_BAD_ENABLEP-$(PTXCONF_GST_PLUGINS_BAD_DIRECTFB) += dfbvideosink
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_DIRAC) += dirac
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_DTS) += dts
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_DIVX) += divx
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_RESINDVD) += resindvd
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_FAAC) += faac
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_FAAD) += faad
-GST_PLUGINS_BAD_ENABLEC-$(PTXCONF_GST_PLUGINS_BAD_FBDEV) += fbdev
-GST_PLUGINS_BAD_ENABLEP-$(PTXCONF_GST_PLUGINS_BAD_FBDEV) += fbdevsink
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_FLITE) += flite
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_GSM) += gsm
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_JP2K) += jp2k
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_KATE) += kate
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_LADSPA) += ladspa
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_LV2) += lv2
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_LIBMMS) += libmms
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_MODPLUG) += modplug
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_MIMIC) += mimic
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_MPEG2ENC) += mpeg2enc
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_MPLEX) += mplex
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_MUSEPACK) += musepack
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_MUSICBRAINZ) += musicbrainz
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_MYTHTV) += mythtv
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_NAS) += nas
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_NEON) += neon
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_OPENAL) += openal
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_OPENCV) += opencv
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_OPUS) += opus
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_PVR) += pvr
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_RSVG) += rsvg
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_TIMIDITY) += timidity
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_TELETEXTDEC) += teletextdec
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_WILDMIDI) += wildmidi
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_SDL) += sdl
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_SNDFILE) += sndfile
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_SOUNDTOUCH) += soundtouch
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_SPC) += spc
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_GME) += gme
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_SWFDEC) += swfdec
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_XVID) += xvid
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_DVB) += dvb
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_WININET) += wininet
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_ACM) += acm
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_VDPAU) += vdpau
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_SCHRO) += schro
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_ZBAR) += zbar
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_VP8) += vp8
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_COLOREFFECTS) += coloreffects
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_COLORSPACE) += colorspace
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_DVBSUBOVERLAY) += dvbsuboverlay
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_GAUDIEFFECTS) += gaudieffects
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_GEOMETRICTRANSFORMS) += geometrictransform
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_INTERLACE) += interlace
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_IVFPARSE) += ivfparse
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_JP2DECIMATOR) += jp2kdecimator
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_VIDEOMAXRATE) += videomaxrate
-# FIXME: The plugin is called y4mdec, so the magic doesn't work any more
-GST_PLUGINS_BAD_ENABLE-$(PTXCONF_GST_PLUGINS_BAD_Y4M) += y4m
-
-GST_PLUGINS_BAD_ENABLEC-y += $(GST_PLUGINS_BAD_ENABLE-y)
-GST_PLUGINS_BAD_ENABLEC- += $(GST_PLUGINS_BAD_ENABLE-)
-GST_PLUGINS_BAD_ENABLEP-y += $(GST_PLUGINS_BAD_ENABLE-y)
-
-#
-# autoconf
-#
-GST_PLUGINS_BAD_CONF_TOOL := autoconf
-
-GST_PLUGINS_BAD_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- $(GSTREAMER_GENERIC_CONF_OPT) \
- --enable-external \
- --enable-experimental \
- --disable-directsound \
- --disable-direct3d \
- --disable-directdraw \
- --disable-apple_media \
- --disable-osx_video \
- --disable-quicktime \
- --disable-sdltest
-
-ifneq ($(call remove_quotes,$(GST_PLUGINS_BAD_ENABLEC-y)),)
-GST_PLUGINS_BAD_CONF_OPT += --enable-$(subst $(space),$(space)--enable-,$(strip $(GST_PLUGINS_BAD_ENABLEC-y)))
-endif
-
-ifneq ($(call remove_quotes,$(GST_PLUGINS_BAD_ENABLEC-)),)
-GST_PLUGINS_BAD_CONF_OPT += --disable-$(subst $(space),$(space)--disable-,$(strip $(GST_PLUGINS_BAD_ENABLEC-)))
-endif
-
-# --enable-gobject-cast-checks=[no/auto/yes] Enable GObject cast checks
-
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/gst-plugins-bad.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, gst-plugins-bad)
- @$(call install_fixup, gst-plugins-bad,PRIORITY,optional)
- @$(call install_fixup, gst-plugins-bad,SECTION,base)
- @$(call install_fixup, gst-plugins-bad,AUTHOR,"Sascha Hauer")
- @$(call install_fixup, gst-plugins-bad,DESCRIPTION,missing)
-
- # install all activated libs
- @if [ -d $(GST_PLUGINS_BAD_PKGDIR)/usr/lib/ ]; then \
- cd $(GST_PLUGINS_BAD_PKGDIR)/usr/lib/ && for libs in `find -name "*-0.10.so" | sed -e 's,\./\(.*\)\.so,\1,'`; do \
- $(call install_lib, gst-plugins-bad, 0, 0, 0644, $$libs); \
- done \
- fi
-
- # install all activated plugins
- @for plugin in $(GST_PLUGINS_BAD_ENABLEP-y); do \
- $(call install_copy, gst-plugins-bad, 0, 0, 0644, -, \
- /usr/lib/gstreamer-0.10/libgst$${plugin}.so); \
- done
-
- @$(call install_finish, gst-plugins-bad)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/gst-plugins-bad1.in b/rules/gst-plugins-bad1.in
index 95d49ef64..47bd8a57d 100644
--- a/rules/gst-plugins-bad1.in
+++ b/rules/gst-plugins-bad1.in
@@ -14,22 +14,26 @@ menuconfig GST_PLUGINS_BAD1
select BZIP2_LIBBZ2 if GST_PLUGINS_BAD1_BZ2
select BLUEZ if GST_PLUGINS_BAD1_BLUEZ
select BLUEZ_LIBBLUETOOTH if GST_PLUGINS_BAD1_BLUEZ
+ select GTK if GST_PLUGINS_BAD1_GTK3
select LCMS if GST_PLUGINS_BAD1_COLORMANAGEMENT
select LIBCURL if GST_PLUGINS_BAD1_CURL
select LIBCURL_LIBSSH2 if GST_PLUGINS_BAD1_CURL_SSH2
select LIBXML2 if GST_PLUGINS_BAD1_DASH || GST_PLUGINS_BAD1_SMOOTHSTREAMING || GST_PLUGINS_BAD1_TTML
select LIBXML2_DOM if GST_PLUGINS_BAD1_DASH || GST_PLUGINS_BAD1_SMOOTHSTREAMING
+ select OPENSSL if GST_PLUGINS_BAD1_AES
select OPENSSL if GST_PLUGINS_BAD1_DTLS
select OPENSSL if GST_PLUGINS_BAD1_HLS
- select LIBMMS if GST_PLUGINS_BAD1_LIBMMS
- select LIBDRM if GST_PLUGINS_BAD1_KMS || GST_PLUGINS_BAD1_WAYLAND
+ select LIBDRM if GST_PLUGINS_BAD1_KMS || GST_PLUGINS_BAD1_VA|| GST_PLUGINS_BAD1_WAYLAND
select OPUS if GST_PLUGINS_BAD1_OPUS
+ select JSON_GLIB if GST_PLUGINS_BAD1_QROVERLAY || GST_PLUGINS_BAD1_CODEC2JSON
+ select QRENCODE if GST_PLUGINS_BAD1_QROVERLAY
+ select LIBRSVG if GST_PLUGINS_BAD1_RSVG
select RTMPDUMP if GST_PLUGINS_BAD1_RTMP
select LIBSNDFILE if GST_PLUGINS_BAD1_SNDFILE
select LIBSRTP if GST_PLUGINS_BAD1_SRTP
- select PANGO if GST_PLUGINS_BAD1_TTML || GST_PLUGINS_BAD1_CLOSEDCAPTION
- select CAIRO if GST_PLUGINS_BAD1_TTML || GST_PLUGINS_BAD1_CLOSEDCAPTION
- select LIBGUDEV if GST_PLUGINS_BAD1_UVCH264
+ select PANGO if GST_PLUGINS_BAD1_TTML || GST_PLUGINS_BAD1_CLOSEDCAPTION || GST_PLUGINS_BAD1_ANALYTICSOVERLAY
+ select CAIRO if GST_PLUGINS_BAD1_TTML || GST_PLUGINS_BAD1_CLOSEDCAPTION || GST_PLUGINS_BAD1_ANALYTICSOVERLAY
+ select LIBGUDEV if GST_PLUGINS_BAD1_UVCH264 || GST_PLUGINS_BAD1_VA || GST_PLUGINS_BAD1_V4L2CODECS || GST_PLUGINS_BAD1_UVCGADGET
select LIBUSB if GST_PLUGINS_BAD1_UVCH264
select LIBVA if GST_PLUGINS_BAD1_VA
select VO_AACENC if GST_PLUGINS_BAD1_VOAACENC
@@ -37,6 +41,8 @@ menuconfig GST_PLUGINS_BAD1
select WAYLAND if GST_PLUGINS_BAD1_WAYLAND
select WAYLAND_PROTOCOLS if GST_PLUGINS_BAD1_WAYLAND
select LIBNICE if GST_PLUGINS_BAD1_WEBRTC
+ select WEBRTC_AUDIO_PROCESSING1 if GST_PLUGINS_BAD1_WEBRTCDSP || GST_PLUGINS_BAD1_ISAC
+ select ZBAR if GST_PLUGINS_BAD1_ZBAR
prompt "gst-plugins-bad "
help
@@ -67,6 +73,10 @@ config GST_PLUGINS_BAD1_AIFF
bool
prompt "aiff"
+config GST_PLUGINS_BAD1_ANALYTICSOVERLAY
+ bool
+ prompt "analyticsoverlay"
+
config GST_PLUGINS_BAD1_ASFMUX
bool
prompt "asfmux"
@@ -103,6 +113,18 @@ config GST_PLUGINS_BAD1_CAMERABIN2
bool
prompt "camerabin2"
+config GST_PLUGINS_BAD1_CODEC2JSON
+ bool
+ prompt "codec2json"
+
+config GST_PLUGINS_BAD1_CODECALPHA
+ bool
+ prompt "codecalpha"
+
+config GST_PLUGINS_BAD1_CODECTIMESTAMPER
+ bool
+ prompt "codectimestamper"
+
config GST_PLUGINS_BAD1_COLOREFFECTS
bool
prompt "coloreffects"
@@ -159,6 +181,10 @@ config GST_PLUGINS_BAD1_ID3TAG
bool
prompt "id3tag"
+config GST_PLUGINS_BAD1_INSERTBIN
+ bool
+ prompt "insertbin"
+
config GST_PLUGINS_BAD1_INTER
bool
prompt "inter"
@@ -207,6 +233,10 @@ config GST_PLUGINS_BAD1_MPEGTSMUX
bool
prompt "mpegtsmux"
+config GST_PLUGINS_BAD1_MSE
+ bool
+ prompt "mse"
+
config GST_PLUGINS_BAD1_MXF
bool
prompt "mxf"
@@ -283,13 +313,9 @@ config GST_PLUGINS_BAD1_TIMECODE
bool
prompt "timecode"
-config GST_PLUGINS_BAD1_V4L2CODECS
- bool
- prompt "v4l2codecs"
-
-config GST_PLUGINS_BAD1_VA
+config GST_PLUGINS_BAD1_UNIXFD
bool
- prompt "va"
+ prompt "unixfd"
config GST_PLUGINS_BAD1_VIDEOFILTERS
bool
@@ -317,6 +343,20 @@ config GST_PLUGINS_BAD1_Y4M
comment "plugins with dependencies"
+config GST_PLUGINS_BAD1_AES
+ bool
+ prompt "aes"
+ help
+ AES encryption/decryption plugin
+
+config GST_PLUGINS_BAD1_AJA
+ bool
+ # needs libajantv2
+ depends on BROKEN
+ prompt "aja"
+ help
+ AJA audio/video source/sink plugin
+
config GST_PLUGINS_BAD1_AOM
bool
# needs libaom
@@ -325,13 +365,21 @@ config GST_PLUGINS_BAD1_AOM
help
AOM AV1 video codec plugin
+config GST_PLUGINS_BAD1_AMFCODEC
+ bool
+ # needs amf
+ depends on BROKEN
+ prompt "amfcodec"
+ help
+ AMD AMF codec plugin
+
config GST_PLUGINS_BAD1_AVTP
bool
# needs avtp
depends on BROKEN
prompt "avtp"
help
- AVTP plugin
+ Audio/Video Transport Protocol (AVTP) plugin
config GST_PLUGINS_BAD1_ASSRENDER
bool
@@ -369,18 +417,18 @@ config GST_PLUGINS_BAD1_CHROMAPRINT
help
Chromaprint fingerprint audio plugin
-config GST_PLUGINS_BAD1_COLORMANAGEMENT
- bool
- prompt "colormanagement"
- help
- Color management correction plugin
-
config GST_PLUGINS_BAD1_CLOSEDCAPTION
bool
prompt "closedcaption"
help
Closed caption extractor, decoder, and overlay plugin
+config GST_PLUGINS_BAD1_COLORMANAGEMENT
+ bool
+ prompt "colormanagement"
+ help
+ Color management correction plugin
+
config GST_PLUGINS_BAD1_CURL
bool
prompt "curl"
@@ -496,6 +544,14 @@ config GST_PLUGINS_BAD1_GME
help
libgme gaming console music file decoder plugin
+config GST_PLUGINS_BAD1_GS
+ bool
+ # needs google_cloud_cpp_storage
+ depends on BROKEN
+ prompt "gs"
+ help
+ Google Cloud Storage source and sink plugin
+
config GST_PLUGINS_BAD1_GSM
bool
# needs gsm
@@ -504,6 +560,12 @@ config GST_PLUGINS_BAD1_GSM
help
GSM encoder/decoder plugin
+config GST_PLUGINS_BAD1_GTK3
+ bool
+ prompt "gtk3"
+ help
+ GTK+ video sink plugin
+
config GST_PLUGINS_BAD1_HLS
bool
prompt "hls"
@@ -524,13 +586,11 @@ config GST_PLUGINS_BAD1_IQA
help
Image quality assessment plugin
-config GST_PLUGINS_BAD1_KATE
+config GST_PLUGINS_BAD1_ISAC
bool
- # needs kate
- depends on BROKEN
- prompt "kate"
+ prompt "isac"
help
- Kate subtitle parser, tagger, and codec plugin
+ iSAC plugin
config GST_PLUGINS_BAD1_KMS
bool
@@ -546,6 +606,22 @@ config GST_PLUGINS_BAD1_LADSPA
help
LADSPA plugin bridge
+config GST_PLUGINS_BAD1_LC3
+ bool
+ # needs lc3
+ depends on BROKEN
+ prompt "lc3"
+ help
+ LC3 (Bluetooth) LE audio codec plugin
+
+config GST_PLUGINS_BAD1_LDAC
+ bool
+ # needs ldacBT-enc
+ depends on BROKEN
+ prompt "ldac"
+ help
+ LDAC bluetooth audio codec plugin
+
config GST_PLUGINS_BAD1_LIBDE265
bool
# needs libde265
@@ -554,11 +630,13 @@ config GST_PLUGINS_BAD1_LIBDE265
help
HEVC/H.265 video decoder plugin
-config GST_PLUGINS_BAD1_LIBMMS
+config GST_PLUGINS_BAD1_OPENAPTX
bool
- prompt "libmms"
+ # needs libopenaptx
+ depends on BROKEN
+ prompt "openaptx"
help
- Microsoft multimedia server network source plugin
+ Open Source implementation of Audio Processing Technology codec (aptX) plugin
config GST_PLUGINS_BAD1_LV2
bool
@@ -632,13 +710,13 @@ config GST_PLUGINS_BAD1_NVCODEC
help
NVIDIA GPU codec plugin
-config GST_PLUGINS_BAD1_OFA
+config GST_PLUGINS_BAD1_ONNX
bool
- # needs libofa
+ # needs libonnxruntime
depends on BROKEN
- prompt "ofa"
+ prompt "onnx"
help
- Open Fingerprint Architecture library plugin
+ ONNX neural network plugin
config GST_PLUGINS_BAD1_OPENAL
bool
@@ -708,6 +786,18 @@ config GST_PLUGINS_BAD1_OPUS
help
OPUS audio parser plugin
+config GST_PLUGINS_BAD1_QROVERLAY
+ bool
+ prompt "qroverlay"
+ help
+ QR code overlay plugin
+
+config GST_PLUGINS_BAD1_QSV
+ bool
+ prompt "qsv"
+ help
+ Intel Quick Sync Video plugin
+
config GST_PLUGINS_BAD1_RESINDVD
bool
# needs dvdnav & dvdread
@@ -718,8 +808,6 @@ config GST_PLUGINS_BAD1_RESINDVD
config GST_PLUGINS_BAD1_RSVG
bool
- # needs librsvg2
- depends on BROKEN
prompt "rsvg"
help
SVG overlayer and image decoder plugin
@@ -740,8 +828,6 @@ config GST_PLUGINS_BAD1_SBC
config GST_PLUGINS_BAD1_SCTP
bool
- # needs usrsctp
- depends on BROKEN
prompt "sctp"
help
SCTP plugin
@@ -794,6 +880,14 @@ config GST_PLUGINS_BAD1_SRTP
help
Secure RTP codec plugin
+config GST_PLUGINS_BAD1_SVTAV1
+ bool
+ # needs SvtAv1Enc
+ depends on BROKEN
+ prompt "svtav1"
+ help
+ Scalable Video Technology for AV1 plugin
+
config GST_PLUGINS_BAD1_SVTHEVCENC
bool
# needs svthevcenc
@@ -836,12 +930,30 @@ config GST_PLUGINS_BAD1_UVCH264
help
UVC compliant H.264 camera source plugin
+config GST_PLUGINS_BAD1_VA
+ bool
+ prompt "va"
+ help
+ VA-API new plugin
+
config GST_PLUGINS_BAD1_VOAACENC
bool
prompt "voaacenc"
help
AAC audio encoder plugin
+config GST_PLUGINS_BAD1_UVCGADGET
+ bool
+ prompt "uvcgadget"
+ help
+ uvc video gadget plugin
+
+config GST_PLUGINS_BAD1_V4L2CODECS
+ bool
+ prompt "v4l2codecs"
+ help
+ Video4Linux Stateless CODECs support
+
config GST_PLUGINS_BAD1_VOAMRWBENC
bool
# needs vo-amrwbenc
@@ -856,9 +968,14 @@ config GST_PLUGINS_BAD1_VULKAN
help
Vulkan video sink plugin
+if GST_PLUGINS_BAD1_VULKAN
+
config GST_PLUGINS_BAD1_WAYLAND
bool
prompt "wayland"
+ help
+ Wayland plugin/library, support in the Vulkan plugin
+endif
config GST_PLUGINS_BAD1_WEBP
bool
@@ -870,14 +987,15 @@ config GST_PLUGINS_BAD1_WEBP
config GST_PLUGINS_BAD1_WEBRTC
bool
+ select GST_PLUGINS_BAD1_DTLS
+ select GST_PLUGINS_BAD1_SCTP
+ select GST_PLUGINS_BAD1_SRTP
prompt "webrtc"
help
WebRTC audio/video network bin plugin
config GST_PLUGINS_BAD1_WEBRTCDSP
bool
- # needs webrtc-audio-processing
- depends on BROKEN
prompt "webrtcdsp"
help
Plugin with various audio filters provided by the WebRTC audio processing library
@@ -908,8 +1026,6 @@ config GST_PLUGINS_BAD1_X265
config GST_PLUGINS_BAD1_ZBAR
bool
- # needs zbar
- depends on BROKEN
prompt "zbar"
help
Barcode image scanner plugin using zbar library
@@ -930,5 +1046,13 @@ config GST_PLUGINS_BAD1_GL
help
GStreamer OpenGL integration support (used by various plugins)
+comment "install options"
+
+config GST_PLUGINS_BAD1_INSTALL_TOOLS
+ bool
+ prompt "install tools"
+ help
+ installs gst-transcoder tool
+
endif
diff --git a/rules/gst-plugins-bad1.make b/rules/gst-plugins-bad1.make
index 1dd999c55..ebd8b2c6c 100644
--- a/rules/gst-plugins-bad1.make
+++ b/rules/gst-plugins-bad1.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_GST_PLUGINS_BAD1) += gst-plugins-bad1
#
# Paths and names
#
-GST_PLUGINS_BAD1_VERSION := 1.18.4
-GST_PLUGINS_BAD1_MD5 := 8a73b497613a9f778e880b8a9eb9c1a3
+GST_PLUGINS_BAD1_VERSION := 1.24.2
+GST_PLUGINS_BAD1_MD5 := 06d6a2472a4dfa441f3220890736c474
GST_PLUGINS_BAD1 := gst-plugins-bad-$(GST_PLUGINS_BAD1_VERSION)
GST_PLUGINS_BAD1_SUFFIX := tar.xz
GST_PLUGINS_BAD1_URL := http://gstreamer.freedesktop.org/src/gst-plugins-bad/$(GST_PLUGINS_BAD1).$(GST_PLUGINS_BAD1_SUFFIX)
@@ -32,9 +32,12 @@ GST_PLUGINS_BAD1_LICENSE := LGPL-2.1-or-later
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_ACCURIP) += accurip
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_ADPCMDEC) += adpcmdec
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_ADPCMENC) += adpcmenc
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_AES) += aes
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_AIFF) += aiff
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_AJA) += aja
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_AMFCODEC) += amfcodec
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_ANALYTICSOVERLAY) += analyticsoverlay
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_AOM) += aom
-GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_AVTP) += avtp
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_ASFMUX) += asfmux
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_ASSRENDER) += assrender
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_AUDIOBUFFERSPLIT) += audiobuffersplit
@@ -43,12 +46,16 @@ GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_AUDIOLATENCY) += audiolatency
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_AUDIOMIXMATRIX) += audiomixmatrix
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_AUDIOVISUALIZERS) += audiovisualizers
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_AUTOCONVERT) += autoconvert
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_AVTP) += avtp
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_BAYER) += bayer
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_BLUEZ) += bluez
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_BS2B) += bs2b
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_BZ2) += bz2
GST_PLUGINS_BAD1_ENABLEC-$(PTXCONF_GST_PLUGINS_BAD1_CAMERABIN2) += camerabin2
GST_PLUGINS_BAD1_ENABLEP-$(PTXCONF_GST_PLUGINS_BAD1_CAMERABIN2) += camerabin
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_CODEC2JSON) += codec2json
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_CODECALPHA) += codecalpha
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_CODECTIMESTAMPER) += codectimestamper
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_CHROMAPRINT) += chromaprint
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_CLOSEDCAPTION) += closedcaption
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_COLOREFFECTS) += coloreffects
@@ -84,23 +91,27 @@ GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_GDP) += gdp
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_GEOMETRICTRANSFORM) += geometrictransform
GST_PLUGINS_BAD1_ENABLEC-$(PTXCONF_GST_PLUGINS_BAD1_GL) += gl
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_GME) += gme
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_GS) += gs
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_GSM) += gsm
+GST_PLUGINS_BAD1_ENABLEC-$(PTXCONF_GST_PLUGINS_BAD1_GTK3) += gtk3
+GST_PLUGINS_BAD1_ENABLEP-$(PTXCONF_GST_PLUGINS_BAD1_GTK3) += gtkwayland
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_HLS) += hls
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_ID3TAG) += id3tag
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_INSERTBIN) += insertbin
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_INTER) += inter
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_INTERLACE) += interlace
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_IPCPIPELINE) += ipcpipeline
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_IQA) += iqa
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_ISAC) += isac
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_IVFPARSE) += ivfparse
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_IVTC) += ivtc
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_JP2KDECIMATOR) += jp2kdecimator
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_JPEGFORMAT) += jpegformat
-GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_KATE) += kate
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_KMS) += kms
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_LADSPA) += ladspa
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_LC3) += lc3
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_LDAC) += ldac
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_LIBDE265) += libde265
-GST_PLUGINS_BAD1_ENABLEC-$(PTXCONF_GST_PLUGINS_BAD1_LIBMMS) += libmms
-GST_PLUGINS_BAD1_ENABLEP-$(PTXCONF_GST_PLUGINS_BAD1_LIBMMS) += mms
GST_PLUGINS_BAD1_ENABLEC-$(PTXCONF_GST_PLUGINS_BAD1_LIBRFB) += librfb
GST_PLUGINS_BAD1_ENABLEP-$(PTXCONF_GST_PLUGINS_BAD1_LIBRFB) += rfbsrc
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_LV2) += lv2
@@ -113,6 +124,7 @@ GST_PLUGINS_BAD1_ENABLEP-$(PTXCONF_GST_PLUGINS_BAD1_MPEGDEMUX) += mpegpsdemux
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_MPEGPSMUX) += mpegpsmux
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_MPEGTSDEMUX) += mpegtsdemux
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_MPEGTSMUX) += mpegtsmux
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_MSE) += mse
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_MPLEX) += mplex
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_MSDK) += msdk
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_MUSEPACK) += musepack
@@ -120,10 +132,11 @@ GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_MXF) += mxf
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_NEON) += neon
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_NETSIM) += netsim
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_NVCODEC) += nvcodec
-GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_OFA) += ofa
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_ONNX) += onnx
GST_PLUGINS_BAD1_ENABLEC-$(PTXCONF_GST_PLUGINS_BAD1_ONVIF) += onvif
GST_PLUGINS_BAD1_ENABLEP-$(PTXCONF_GST_PLUGINS_BAD1_ONVIF) += rtponvif
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_OPENAL) += openal
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_OPENAPTX) += openaptx
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_OPENCV) += opencv
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_OPENEXR) += openexr
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_OPENH264) += openh264
@@ -135,6 +148,10 @@ GST_PLUGINS_BAD1_ENABLEC-$(PTXCONF_GST_PLUGINS_BAD1_OPUS) += opus
GST_PLUGINS_BAD1_ENABLEP-$(PTXCONF_GST_PLUGINS_BAD1_OPUS) += opusparse
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_PCAPPARSE) += pcapparse
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_PNM) += pnm
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_QROVERLAY) += qroverlay
+ifdef PTXCONF_ARCH_X86_64
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_QSV) += qsv
+endif
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_PROXY) += proxy
GST_PLUGINS_BAD1_ENABLEC-$(PTXCONF_GST_PLUGINS_BAD1_RAWPARSE) += rawparse
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_SWITCHBIN) += switchbin
@@ -163,14 +180,17 @@ GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_SPANDSP) += spandsp
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_SPEED) += speed
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_SRT) += srt
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_SRTP) += srtp
-GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_SVTHEVCENC) += svthevcenc
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_SUBENC) += subenc
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_SVTAV1) += svtav1
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_SVTHEVCENC) += svthevcenc
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_TELETEXT) += teletext
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_TIMECODE) += timecode
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_TINYALSA) += tinyalsa
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_TRANSCODE) += transcode
GST_PLUGINS_BAD1_ENABLEC-$(PTXCONF_GST_PLUGINS_BAD1_TTML) += ttml
GST_PLUGINS_BAD1_ENABLEP-$(PTXCONF_GST_PLUGINS_BAD1_TTML) += ttmlsubs
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_UNIXFD) += unixfd
+GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_UVCGADGET) += uvcgadget
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_UVCH264) += uvch264
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_V4L2CODECS) += v4l2codecs
GST_PLUGINS_BAD1_ENABLE-$(PTXCONF_GST_PLUGINS_BAD1_VA) += va
@@ -210,20 +230,40 @@ GST_PLUGINS_BAD1_CONF_OPT = \
$(call GSTREAMER1_GENERIC_CONF_OPT,GStreamer Bad Plug-ins) \
-Dandroidmedia=disabled \
-Dapplemedia=disabled \
+ -Dasio=disabled \
+ -Dasio-sdk-path= \
-Dd3dvideosink=disabled \
-Dd3d11=disabled \
+ -Dd3d12=disabled \
-Ddirectsound=disabled \
+ -Ddirectshow=disabled \
+ -Ddrm=$(call ptx/endis,PTXCONF_GST_PLUGINS_BAD1_VA)d \
+ -Ddwrite=disabled \
+ -Dexamples=disabled \
-Dextra-checks=disabled \
- -Dgst_player_tests=false \
+ -Dgpl=disabled \
+ -Dgst_play_tests=false \
-Dhls-crypto=openssl \
-Dintrospection=$(call ptx/endis,PTXCONF_GSTREAMER1_INTROSPECTION)d \
+ -Dladspa-rdf=disabled \
-Dmagicleap=disabled \
-Dmediafoundation=disabled \
+ -Dmfx_api=auto \
+ -Dmfx-modules-dir= \
+ -Dnls=disabled \
-Dorc=enabled \
+ -Dqt6d3d11=disabled \
+ -Dsctp-internal-usrsctp=enabled \
+ -Dtools=$(call ptx/endis,PTXCONF_GST_PLUGINS_BAD1_INSTALL_TOOLS)d \
+ -Dudev=$(call ptx/endis,PTXCONF_GST_PLUGINS_BAD1_VA)d \
+ -Dvulkan-video=$(call ptx/endis,PTXCONF_GST_PLUGINS_BAD1_VULKAN)d \
-Dwasapi=disabled \
-Dwasapi2=disabled \
+ -Dwic=disabled \
+ -Dwin32ipc=disabled \
-Dwinks=disabled \
-Dwinscreencap=disabled \
+ -Dwpe_api=2.0 \
-Dx11=disabled
ifneq ($(call remove_quotes,$(GST_PLUGINS_BAD1_ENABLEC-y)),)
@@ -247,6 +287,11 @@ $(STATEDIR)/gst-plugins-bad1.targetinstall:
@$(call install_fixup, gst-plugins-bad1,AUTHOR,"Sascha Hauer")
@$(call install_fixup, gst-plugins-bad1,DESCRIPTION,missing)
+ifdef PTXCONF_GST_PLUGINS_BAD1_INSTALL_TOOLS
+ @$(call install_copy, gst-plugins-bad1, 0, 0, 0755, -, \
+ /usr/bin/gst-transcoder-1.0)
+endif
+
# # install all activated libs
@$(foreach lib,$(basename $(notdir $(wildcard $(GST_PLUGINS_BAD1_PKGDIR)/usr/lib/*-1.0.so))), \
$(call install_lib, gst-plugins-bad1, 0, 0, 0644, $(lib))$(ptx/nl))
diff --git a/rules/gst-plugins-base.in b/rules/gst-plugins-base.in
deleted file mode 100644
index c4e880ad0..000000000
--- a/rules/gst-plugins-base.in
+++ /dev/null
@@ -1,216 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=multimedia_gstreamer
-
-menuconfig GST_PLUGINS_BASE
- tristate
-
- select GLIB
- select LIBOIL
- select GSTREAMER
-
- select ALSA_LIB if GST_PLUGINS_BASE_ALSA
- select ALSA_LIB_PCM if GST_PLUGINS_BASE_ALSA
- select ALSA_LIB_MIXER if GST_PLUGINS_BASE_ALSA
- select GLIB if GST_PLUGINS_BASE_GIO
- select LIBOGG if GST_PLUGINS_BASE_OGG
- select LIBTHEORA if GST_PLUGINS_BASE_THEORA
- select LIBVORBIS if GST_PLUGINS_BASE_VORBIS
- select PANGO if GST_PLUGINS_BASE_PANGO
- select UDEV if GST_PLUGINS_BASE_GST_V4L
- select LIBGUDEV if GST_PLUGINS_BASE_GST_V4L
- select LIBXML2 if GST_PLUGINS_BASE_SUBPARSE
- select LIBXML2_HTML if GST_PLUGINS_BASE_SUBPARSE
- select ORC if GST_PLUGINS_BASE_ORC
- select ORC_TEST if GST_PLUGINS_BASE_ORC
- select ZLIB if GST_PLUGINS_BASE_ZLIB
-
- # x features need libx11 + Xv
- select XORG if GST_PLUGINS_BASE_X
- select XORG_LIB_X11 if GST_PLUGINS_BASE_X
- select XORG_LIB_XV if GST_PLUGINS_BASE_X
- prompt "gst-plugins-base "
- help
- GStreamer is a streaming media framework, based on graphs of
- filters which operate on media data. Applications using this
- library can do anything from real-time sound processing to
- playing videos, and just about anything else
- media-related. Its plugin-based architecture means that new
- data types or processing capabilities can be added simply by
- installing new plug-ins.
-
- This package contains the GStreamer plugins from the "base"
- set, an essential exemplary set of elements.
-
- STAGING: remove in ptxdist-2021.05.0
- GStreamer 0.10 has been dead more than 8 years.
-
-if GST_PLUGINS_BASE
-
-config GST_PLUGINS_BASE_ORC
- bool
-
-comment "dependency-less plugins"
-# -------------------------------
-
-config GST_PLUGINS_BASE_ADDER
- bool
- select GST_PLUGINS_BASE_ORC
- prompt "adder"
-
-config GST_PLUGINS_BASE_APP
- bool
- prompt "app"
-
-config GST_PLUGINS_BASE_AUDIOCONVERT
- bool
- select GST_PLUGINS_BASE_ORC
- prompt "audioconvert"
-
-config GST_PLUGINS_BASE_AUDIORATE
- bool
- prompt "audiorate"
-
-config GST_PLUGINS_BASE_AUDIOTESTSRC
- bool
- prompt "audiotestsrc"
-
-config GST_PLUGINS_BASE_DECODEBIN
- bool
- select GST_PLUGINS_BASE_PLAYBACK
- prompt "decodebin"
-
-config GST_PLUGINS_BASE_DECODEBIN_2
- bool
- select GST_PLUGINS_BASE_PLAYBACK
- prompt "decodebin2"
-
-config GST_PLUGINS_BASE_ENCODING
- bool
- prompt "encoding"
-
-config GST_PLUGINS_BASE_FFMPEGCOLORSPACE
- bool
- prompt "ffmpegcolorspace"
-
-config GST_PLUGINS_BASE_GDP
- bool
- prompt "gdp"
-
-config GST_PLUGINS_BASE_PLAYBACK
- bool
- prompt "playback"
-
-config GST_PLUGINS_BASE_AUDIORESAMPLE
- bool
- select GST_PLUGINS_BASE_ORC
- prompt "audioresample"
-
-config GST_PLUGINS_BASE_SUBPARSE
- bool
- prompt "subparse"
-
-config GST_PLUGINS_BASE_TCP
- bool
- prompt "tcp"
-
-config GST_PLUGINS_BASE_TYPEFIND
- bool
- prompt "typefind"
-
-config GST_PLUGINS_BASE_VIDEOTESTSRC
- bool
- select GST_PLUGINS_BASE_ORC
- prompt "videotestsrc"
-
-config GST_PLUGINS_BASE_VIDEORATE
- bool
- prompt "videorate"
-
-config GST_PLUGINS_BASE_VIDEOSCALE
- bool
- select GST_PLUGINS_BASE_ORC
- prompt "videoscale"
-
-config GST_PLUGINS_BASE_VOLUME
- bool
- select GST_PLUGINS_BASE_ORC
- prompt "volume"
-
-comment "plugins with dependencies"
-
-config GST_PLUGINS_BASE_X
- bool
- prompt "x based plugins"
-
-config GST_PLUGINS_BASE_XVIDEO
- bool
- depends on GST_PLUGINS_BASE_X
- prompt "xv"
- help
- This plugin offers an xlib based window that can display a video stream.
-
-config GST_PLUGINS_BASE_GST_V4L
- bool
- prompt "gst_v4l"
-
-config GST_PLUGINS_BASE_ALSA
- bool
- prompt "alsa"
-
-config GST_PLUGINS_BASE_CDPARANOIA
- bool
- depends on BROKEN
- prompt "cdparanoia [BROKEN]"
-
-config GST_PLUGINS_BASE_GNOME_VFS
- bool
- depends on BROKEN
- prompt "gnome_vfs [BROKEN]"
-
-config GST_PLUGINS_BASE_IVORBIS
- bool
- depends on BROKEN
- prompt "ivorbis"
-
-config GST_PLUGINS_BASE_GIO
- bool
- prompt "gio"
-
-config GST_PLUGINS_BASE_LIBVISUAL
- bool
- depends on BROKEN
- prompt "libvisual [BROKEN]"
-
-config GST_PLUGINS_BASE_OGG
- bool
- prompt "ogg"
-
-config GST_PLUGINS_BASE_PANGO
- bool
- prompt "pango"
-
-config GST_PLUGINS_BASE_THEORA
- bool
- prompt "theora"
-
-config GST_PLUGINS_BASE_VORBIS
- bool
- prompt "vorbis"
-
-comment "Support options"
-
-config GST_PLUGINS_BASE_XSHM
- bool
- depends on GST_PLUGINS_BASE_X
- prompt "xshm"
- help
- xshm support for X and XVideo plaugins
-
-config GST_PLUGINS_BASE_ZLIB
- bool
- prompt "zlib"
- help
- zlib support for ID3 parsing in libgsttag
-
-endif
diff --git a/rules/gst-plugins-base.make b/rules/gst-plugins-base.make
deleted file mode 100644
index 05eadb0a3..000000000
--- a/rules/gst-plugins-base.make
+++ /dev/null
@@ -1,144 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2008 by Robert Schwebel
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_GST_PLUGINS_BASE) += gst-plugins-base
-
-#
-# Paths and names
-#
-GST_PLUGINS_BASE_VERSION := 0.10.36
-GST_PLUGINS_BASE_MD5 := 776c73883e567f67b9c4a2847d8d041a
-GST_PLUGINS_BASE := gst-plugins-base-$(GST_PLUGINS_BASE_VERSION)
-GST_PLUGINS_BASE_SUFFIX := tar.bz2
-GST_PLUGINS_BASE_URL := http://gstreamer.freedesktop.org/src/gst-plugins-base/$(GST_PLUGINS_BASE).$(GST_PLUGINS_BASE_SUFFIX)
-GST_PLUGINS_BASE_SOURCE := $(SRCDIR)/$(GST_PLUGINS_BASE).$(GST_PLUGINS_BASE_SUFFIX)
-GST_PLUGINS_BASE_DIR := $(BUILDDIR)/$(GST_PLUGINS_BASE)
-GST_PLUGINS_BASE_LICENSE := LGPL-2.0-or-later
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_APP) += app
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_ADDER) += adder
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_AUDIOCONVERT) += audioconvert
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_AUDIORATE) += audiorate
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_AUDIORESAMPLE) += audioresample
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_AUDIOTESTSRC) += audiotestsrc
-GST_PLUGINS_BASE_ENABLEP-$(PTXCONF_GST_PLUGINS_BASE_DECODEBIN) += decodebin
-GST_PLUGINS_BASE_ENABLEP-$(PTXCONF_GST_PLUGINS_BASE_DECODEBIN_2) += decodebin2
-GST_PLUGINS_BASE_ENABLEC-$(PTXCONF_GST_PLUGINS_BASE_ENCODING) += encoding
-GST_PLUGINS_BASE_ENABLEP-$(PTXCONF_GST_PLUGINS_BASE_ENCODING) += encodebin
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_FFMPEGCOLORSPACE) += ffmpegcolorspace
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_GDP) += gdp
-GST_PLUGINS_BASE_ENABLEC-$(PTXCONF_GST_PLUGINS_BASE_PLAYBACK) += playback
-GST_PLUGINS_BASE_ENABLEP-$(PTXCONF_GST_PLUGINS_BASE_PLAYBACK) += playbin
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_SUBPARSE) += subparse
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_TCP) += tcp
-GST_PLUGINS_BASE_ENABLEC-$(PTXCONF_GST_PLUGINS_BASE_TYPEFIND) += typefind
-GST_PLUGINS_BASE_ENABLEP-$(PTXCONF_GST_PLUGINS_BASE_TYPEFIND) += typefindfunctions
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_VIDEOTESTSRC) += videotestsrc
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_VIDEORATE) += videorate
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_VIDEOSCALE) += videoscale
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_VOLUME) += volume
-GST_PLUGINS_BASE_ENABLEC-$(PTXCONF_GST_PLUGINS_BASE_X) += x
-GST_PLUGINS_BASE_ENABLEP-$(PTXCONF_GST_PLUGINS_BASE_X) += ximagesink
-GST_PLUGINS_BASE_ENABLEC-$(PTXCONF_GST_PLUGINS_BASE_XVIDEO) += xvideo
-GST_PLUGINS_BASE_ENABLEP-$(PTXCONF_GST_PLUGINS_BASE_XVIDEO) += xvimagesink
-GST_PLUGINS_BASE_ENABLEC-$(PTXCONF_GST_PLUGINS_BASE_GST_V4L) += gst_v4l
-GST_PLUGINS_BASE_ENABLEP-$(PTXCONF_GST_PLUGINS_BASE_GST_V4L) += video4linux
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_ALSA) += alsa
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_CDPARANOIA) += cdparanoia
-GST_PLUGINS_BASE_ENABLEC-$(PTXCONF_GST_PLUGINS_BASE_GNOME_VFS) += gnome_vfs
-GST_PLUGINS_BASE_ENABLEP-$(PTXCONF_GST_PLUGINS_BASE_GNOME_VFS) += gnomevfs
-GST_PLUGINS_BASE_ENABLEC-$(PTXCONF_GST_PLUGINS_BASE_IVORBIS) += ivorbis
-GST_PLUGINS_BASE_ENABLEP-$(PTXCONF_GST_PLUGINS_BASE_IVORBIS) += ivorbisdec
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_GIO) += gio
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_LIBVISUAL) += libvisual
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_OGG) += ogg
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_PANGO) += pango
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_THEORA) += theora
-GST_PLUGINS_BASE_ENABLE-$(PTXCONF_GST_PLUGINS_BASE_VORBIS) += vorbis
-
-GST_PLUGINS_BASE_ENABLEC-y += $(GST_PLUGINS_BASE_ENABLE-y)
-GST_PLUGINS_BASE_ENABLEC- += $(GST_PLUGINS_BASE_ENABLE-)
-GST_PLUGINS_BASE_ENABLEP-y += $(GST_PLUGINS_BASE_ENABLE-y)
-
-#
-# autoconf
-#
-GST_PLUGINS_BASE_CONF_TOOL = autoconf
-GST_PLUGINS_BASE_CONF_OPT = \
- $(CROSS_AUTOCONF_USR) \
- $(GSTREAMER_GENERIC_CONF_OPT) \
- --enable-external \
- --disable-experimental \
- $(GLOBAL_LARGE_FILE_OPTION) \
- --disable-introspection \
- --$(call ptx/endis,PTXCONF_GST_PLUGINS_BASE_ORC)-orc \
- --enable-Bsymbolic \
- --disable-iso-codes \
- --$(call ptx/endis,PTXCONF_GST_PLUGINS_BASE_ZLIB)-zlib \
- --$(call ptx/endis,PTXCONF_GST_PLUGINS_BASE_XSHM)-xshm \
- --disable-oggtest \
- --disable-vorbistest \
- --disable-freetypetest \
- --$(call ptx/wwo,PTXCONF_GST_PLUGINS_BASE_GST_V4L)-gudev
-
-# --with-plugins=foo,bar,baz only works for depencyless plugins and
-# when no plugins are given it falls back to its default which is
-# to enable all plugins, so --with-plugins is useless for us.
-
-ifneq ($(call remove_quotes,$(GST_PLUGINS_BASE_ENABLEC-y)),)
-GST_PLUGINS_BASE_CONF_OPT += --enable-$(subst $(space),$(space)--enable-,$(strip $(GST_PLUGINS_BASE_ENABLEC-y)))
-endif
-
-ifneq ($(call remove_quotes,$(GST_PLUGINS_BASE_ENABLEC-)),)
-GST_PLUGINS_BASE_CONF_OPT += --disable-$(subst $(space),$(space)--disable-,$(strip $(GST_PLUGINS_BASE_ENABLEC-)))
-endif
-
-ifdef PTXCONF_GST_PLUGINS_BASE_X
-GST_PLUGINS_BASE_CONF_OPT += --with-x=$(SYSROOT)/usr
-else
-GST_PLUGINS_BASE_CONF_OPT += --without-x
-endif
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/gst-plugins-base.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, gst-plugins-base)
- @$(call install_fixup, gst-plugins-base,PRIORITY,optional)
- @$(call install_fixup, gst-plugins-base,SECTION,base)
- @$(call install_fixup, gst-plugins-base,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, gst-plugins-base,DESCRIPTION,missing)
-
- @$(call install_copy, gst-plugins-base, 0, 0, 0755, -, \
- /usr/bin/gst-discoverer-0.10)
-
- # install all activated libs
- @cd $(GST_PLUGINS_BASE_PKGDIR)/usr/lib/ && \
- for libs in `find -name "*-0.10.so" -printf '%f\n'`; do \
- $(call install_lib, gst-plugins-base, 0, 0, 0644, $${libs%.so}); \
- done
-
- @$(foreach plugin, $(GST_PLUGINS_BASE_ENABLEP-y), \
- $(call install_copy, gst-plugins-base, 0, 0, 0644, -, \
- /usr/lib/gstreamer-0.10/libgst$(plugin).so);)
-
- @$(call install_finish, gst-plugins-base)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/gst-plugins-base1.in b/rules/gst-plugins-base1.in
index 53369baba..b9b90bbbf 100644
--- a/rules/gst-plugins-base1.in
+++ b/rules/gst-plugins-base1.in
@@ -8,6 +8,7 @@ menuconfig GST_PLUGINS_BASE1
select GLIB
select GSTREAMER1
+ select LIBDRM
select ORC
select ALSA_LIB if GST_PLUGINS_BASE1_ALSA
select ALSA_LIB_PCM if GST_PLUGINS_BASE1_ALSA
@@ -16,16 +17,17 @@ menuconfig GST_PLUGINS_BASE1
select GLIB if GST_PLUGINS_BASE1_GIO
select LIBOGG if GST_PLUGINS_BASE1_OGG
select LIBTHEORA if GST_PLUGINS_BASE1_THEORA
+ select LIBTHEORA_ENCODING if GST_PLUGINS_BASE1_THEORA
select LIBVORBIS if GST_PLUGINS_BASE1_VORBIS
select PANGO if GST_PLUGINS_BASE1_PANGO
select OPUS if GST_PLUGINS_BASE1_OPUS
select ZLIB if GST_PLUGINS_BASE1_ZLIB
select LIBTREMOR if GST_PLUGINS_BASE1_TREMOR
- select LIBPNG if GST_PLUGINS_BASE1_OPENGL
- select LIBJPEG if GST_PLUGINS_BASE1_OPENGL
+ select LIBPNG if GST_PLUGINS_BASE1_GL
+ select LIBJPEG if GST_PLUGINS_BASE1_GL
select MESALIB if GST_PLUGINS_BASE1_GL
select MESALIB_GBM if GST_PLUGINS_BASE1_GL
- select MESALIB_OPENGL if GST_PLUGINS_BASE1_OPENGL
+ select MESALIB_GLX if GST_PLUGINS_BASE1_OPENGL
select MESALIB_GLES2 if GST_PLUGINS_BASE1_GLES2
select MESALIB_EGL if GST_PLUGINS_BASE1_EGL
select MESALIB_EGL_WAYLAND if GST_PLUGINS_BASE1_EGL_WAYLAND
@@ -37,6 +39,7 @@ menuconfig GST_PLUGINS_BASE1
# x features need libx11 + Xv
select XORG if GST_PLUGINS_BASE1_X
select XORG_LIB_X11 if GST_PLUGINS_BASE1_X
+ select XORG_LIB_XI if GST_PLUGINS_BASE1_X
select XORG_LIB_XV if GST_PLUGINS_BASE1_X
prompt "gst-plugins-base "
help
@@ -87,6 +90,14 @@ config GST_PLUGINS_BASE1_COMPOSITOR
bool
prompt "compositor"
+config GST_PLUGINS_BASE1_DEBUGUTILS
+ bool
+ prompt "debugutils"
+
+config GST_PLUGINS_BASE1_DSD
+ bool
+ prompt "dsd"
+
config GST_PLUGINS_BASE1_ENCODING
bool
prompt "encoding"
@@ -124,18 +135,14 @@ config GST_PLUGINS_BASE1_TYPEFIND
bool
prompt "typefind"
-config GST_PLUGINS_BASE1_VIDEOCONVERT
+config GST_PLUGINS_BASE1_VIDEOCONVERTSCALE
bool
- prompt "videoconvert"
+ prompt "videoconvertscale"
config GST_PLUGINS_BASE1_VIDEORATE
bool
prompt "videorate"
-config GST_PLUGINS_BASE1_VIDEOSCALE
- bool
- prompt "videoscale"
-
config GST_PLUGINS_BASE1_VIDEOTESTSRC
bool
prompt "videotestsrc"
@@ -174,6 +181,7 @@ config GST_PLUGINS_BASE1_GLES2
config GST_PLUGINS_BASE1_OPENGL
bool
+ depends on XORG
prompt "opengl"
config GST_PLUGINS_BASE1_EGL
diff --git a/rules/gst-plugins-base1.make b/rules/gst-plugins-base1.make
index 25e4f20e7..5b99fbd45 100644
--- a/rules/gst-plugins-base1.make
+++ b/rules/gst-plugins-base1.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_GST_PLUGINS_BASE1) += gst-plugins-base1
#
# Paths and names
#
-GST_PLUGINS_BASE1_VERSION := 1.18.4
-GST_PLUGINS_BASE1_MD5 := 523336ed6938b8b1004847cbbd5e31cb
+GST_PLUGINS_BASE1_VERSION := 1.24.2
+GST_PLUGINS_BASE1_MD5 := 22f20294c967ec5c22a7babb96e411f2
GST_PLUGINS_BASE1 := gst-plugins-base-$(GST_PLUGINS_BASE1_VERSION)
GST_PLUGINS_BASE1_SUFFIX := tar.xz
GST_PLUGINS_BASE1_URL := http://gstreamer.freedesktop.org/src/gst-plugins-base/$(GST_PLUGINS_BASE1).$(GST_PLUGINS_BASE1_SUFFIX)
@@ -37,6 +37,9 @@ GST_PLUGINS_BASE1_ENABLE-$(PTXCONF_GST_PLUGINS_BASE1_AUDIORESAMPLE) += audioresa
GST_PLUGINS_BASE1_ENABLE-$(PTXCONF_GST_PLUGINS_BASE1_AUDIOTESTSRC) += audiotestsrc
GST_PLUGINS_BASE1_ENABLE-$(PTXCONF_GST_PLUGINS_BASE1_CDPARANOIA) += cdparanoia
GST_PLUGINS_BASE1_ENABLE-$(PTXCONF_GST_PLUGINS_BASE1_COMPOSITOR) += compositor
+GST_PLUGINS_BASE1_ENABLEC-$(PTXCONF_GST_PLUGINS_BASE1_DEBUGUTILS) += debugutils
+GST_PLUGINS_BASE1_ENABLEP-$(PTXCONF_GST_PLUGINS_BASE1_DEBUGUTILS) += basedebug
+GST_PLUGINS_BASE1_ENABLE-$(PTXCONF_GST_PLUGINS_BASE1_DSD) += dsd
GST_PLUGINS_BASE1_ENABLE-$(PTXCONF_GST_PLUGINS_BASE1_ENCODING) += encoding
GST_PLUGINS_BASE1_ENABLE-$(PTXCONF_GST_PLUGINS_BASE1_GIO) += gio
GST_PLUGINS_BASE1_ENABLEC-$(PTXCONF_GST_PLUGINS_BASE1_GIO) += gio-typefinder
@@ -57,13 +60,12 @@ GST_PLUGINS_BASE1_ENABLEC-$(PTXCONF_GST_PLUGINS_BASE1_TREMOR) += tremor
GST_PLUGINS_BASE1_ENABLEP-$(PTXCONF_GST_PLUGINS_BASE1_TREMOR) += ivorbisdec
GST_PLUGINS_BASE1_ENABLEC-$(PTXCONF_GST_PLUGINS_BASE1_TYPEFIND) += typefind
GST_PLUGINS_BASE1_ENABLEP-$(PTXCONF_GST_PLUGINS_BASE1_TYPEFIND) += typefindfunctions
-GST_PLUGINS_BASE1_ENABLE-$(PTXCONF_GST_PLUGINS_BASE1_VIDEOCONVERT) += videoconvert
+GST_PLUGINS_BASE1_ENABLE-$(PTXCONF_GST_PLUGINS_BASE1_VIDEOCONVERTSCALE) += videoconvertscale
GST_PLUGINS_BASE1_ENABLE-$(PTXCONF_GST_PLUGINS_BASE1_VIDEORATE) += videorate
-GST_PLUGINS_BASE1_ENABLE-$(PTXCONF_GST_PLUGINS_BASE1_VIDEOSCALE) += videoscale
GST_PLUGINS_BASE1_ENABLE-$(PTXCONF_GST_PLUGINS_BASE1_VIDEOTESTSRC) += videotestsrc
GST_PLUGINS_BASE1_ENABLE-$(PTXCONF_GST_PLUGINS_BASE1_VOLUME) += volume
GST_PLUGINS_BASE1_ENABLE-$(PTXCONF_GST_PLUGINS_BASE1_VORBIS) += vorbis
-GST_PLUGINS_BASE1_ENABLEC-$(PTXCONF_GST_PLUGINS_BASE1_X) += xshm xvideo
+GST_PLUGINS_BASE1_ENABLEC-$(PTXCONF_GST_PLUGINS_BASE1_X) += xshm xvideo xi
GST_PLUGINS_BASE1_ENABLEP-$(PTXCONF_GST_PLUGINS_BASE1_X) += ximagesink xvimagesink
GST_PLUGINS_BASE1_ENABLEC- += $(GST_PLUGINS_BASE1_ENABLE-)
@@ -108,18 +110,23 @@ GST_PLUGINS_BASE1_CONF_OPT = \
$(CROSS_MESON_USR) \
$(call GSTREAMER1_GENERIC_CONF_OPT,GStreamer Base Plug-ins) \
-Daudioresample_format=auto \
+ -Ddrm=enabled \
-Degl_module_name=libEGL \
+ -Dexamples=disabled \
-Dgl-graphene=$(call ptx/endis, PTXCONF_GST_PLUGINS_BASE1_GL)d \
- -Dgl-jpeg=$(call ptx/endis, PTXCONF_GST_PLUGINS_BASE1_OPENGL)d \
- -Dgl-png=$(call ptx/endis, PTXCONF_GST_PLUGINS_BASE1_OPENGL)d \
+ -Dgl-jpeg=$(call ptx/endis, PTXCONF_GST_PLUGINS_BASE1_GL)d \
+ -Dgl-png=$(call ptx/endis, PTXCONF_GST_PLUGINS_BASE1_GL)d \
-Dgl_api=$(GST_PLUGINS_BASE1_GL_API) \
-Dgl_platform=$(GST_PLUGINS_BASE1_GL_PLATFORM) \
-Dgl_winsys=$(GST_PLUGINS_BASE1_GL_WINSYS) \
- -Dgles_module_name=libGLESv2 \
+ -Dgles2_module_name=libGLESv2.so \
+ -Dinstall_plugins_helper= \
-Dintrospection=$(call ptx/endis,PTXCONF_GSTREAMER1_INTROSPECTION)d \
-Diso-codes=disabled \
+ -Dnls=disabled \
-Dopengl_module_name=libGL \
-Dorc=enabled \
+ -Dqt5=disabled \
-Dtools=$(call ptx/endis, PTXCONF_GST_PLUGINS_BASE1_INSTALL_TOOLS)d \
-Dx11=$(call ptx/endis, PTXCONF_GST_PLUGINS_BASE1_X11)d
diff --git a/rules/gst-plugins-gl.in b/rules/gst-plugins-gl.in
deleted file mode 100644
index 48f41ce18..000000000
--- a/rules/gst-plugins-gl.in
+++ /dev/null
@@ -1,26 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=multimedia_gstreamer
-
-config GST_PLUGINS_GL
- tristate
- select LIBPNG
- select GLIB
- select GSTREAMER
- select GST_PLUGINS_BASE
- select XORG_LIB_X11
- select XORG_SERVER if RUNTIME
- select XORG_SERVER_EXT_GLX
- select MESALIB
- select GLU
- select GLEW
- prompt "gst-plugins-gl"
- help
- The GStreamer OpenGL module provides helper
- libraries, base classes and elements for
- integrating with OpenGL and using it to perform
- video display and processing.
-
- STAGING: remove in ptxdist-2021.05.0
- GStreamer 0.10 has been dead more than 8 years.
-
diff --git a/rules/gst-plugins-gl.make b/rules/gst-plugins-gl.make
deleted file mode 100644
index a47e8f1cc..000000000
--- a/rules/gst-plugins-gl.make
+++ /dev/null
@@ -1,65 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2010 by Erwin Rol <erwin@erwinrol.com>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_GST_PLUGINS_GL) += gst-plugins-gl
-
-#
-# Paths and names
-#
-GST_PLUGINS_GL_VERSION := 0.10.2
-GST_PLUGINS_GL_MD5 := 878fe4199be1c94f8aa2f7f23891cc95
-GST_PLUGINS_GL := gst-plugins-gl-$(GST_PLUGINS_GL_VERSION)
-GST_PLUGINS_GL_SUFFIX := tar.bz2
-GST_PLUGINS_GL_URL := http://gstreamer.freedesktop.org/src/gst-plugins-gl/$(GST_PLUGINS_GL).$(GST_PLUGINS_GL_SUFFIX)
-GST_PLUGINS_GL_SOURCE := $(SRCDIR)/$(GST_PLUGINS_GL).$(GST_PLUGINS_GL_SUFFIX)
-GST_PLUGINS_GL_DIR := $(BUILDDIR)/$(GST_PLUGINS_GL)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-GST_PLUGINS_GL_CONF_TOOL := autoconf
-GST_PLUGINS_GL_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- $(GLOBAL_LARGE_FILE_OPTION) \
- --disable-rpath \
- --disable-nls \
- --disable-debug \
- --disable-profiling \
- --disable-valgrind \
- --disable-gcov \
- --disable-examples \
- --disable-gtk-doc
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/gst-plugins-gl.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, gst-plugins-gl)
- @$(call install_fixup, gst-plugins-gl,PRIORITY,optional)
- @$(call install_fixup, gst-plugins-gl,SECTION,base)
- @$(call install_fixup, gst-plugins-gl,AUTHOR,"Erwin Rol <erwin@erwinrol.com>")
- @$(call install_fixup, gst-plugins-gl,DESCRIPTION,missing)
-
- @$(call install_copy, gst-plugins-gl, 0, 0, 0644, -, /usr/lib/gstreamer-0.10/libgstopengl.so)
- @$(call install_lib, gst-plugins-gl, 0, 0, 0644, libgstgl-0.10)
-
- @$(call install_finish, gst-plugins-gl)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/gst-plugins-good.in b/rules/gst-plugins-good.in
deleted file mode 100644
index 2ba910c8a..000000000
--- a/rules/gst-plugins-good.in
+++ /dev/null
@@ -1,383 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=multimedia_gstreamer
-
-menuconfig GST_PLUGINS_GOOD
- tristate
- select GLIB
- select LIBOIL
- select GSTREAMER
- select GST_PLUGINS_BASE
- select LIBPNG if GST_PLUGINS_GOOD_LIBPNG
- select LIBJPEG if GST_PLUGINS_GOOD_JPEG
- select ZLIB if GST_PLUGINS_GOOD_ZLIB
- select BZIP2 if GST_PLUGINS_GOOD_BZ2
- select BZIP2_LIBBZ2 if GST_PLUGINS_GOOD_BZ2
- select LIBCACA if GST_PLUGINS_GOOD_LIBCACA
- select XORG_LIB_X11 if GST_PLUGINS_GOOD_X
- select XORG_LIB_X11 if GST_PLUGINS_GOOD_XVIDEO
- select GDK_PIXBUF if GST_PLUGINS_GOOD_GDK_PIXBUF
- select SPEEX if GST_PLUGINS_GOOD_SPEEX
- select FLAC if GST_PLUGINS_GOOD_FLAC
- select CAIRO if GST_PLUGINS_GOOD_CAIRO
- select UDEV if GST_PLUGINS_GOOD_GST_V4L2
- select LIBGUDEV if GST_PLUGINS_GOOD_GST_V4L2
- select V4L_UTILS if GST_PLUGINS_GOOD_GST_V4L2_LIBV4L2
- select V4L_UTILS_LIBV4L2 if GST_PLUGINS_GOOD_GST_V4L2_LIBV4L2
- select ORC if GST_PLUGINS_GOOD_ORC
-
- prompt "gst-plugins-good "
- help
- GStreamer Good Plug-ins is a set of plug-ins that
- we consider to have good quality code, correct
- functionality, our preferred license (LGPL for the
- plug-in code, LGPL or LGPL-compatible for the
- supporting library).
-
- STAGING: remove in ptxdist-2021.05.0
- GStreamer 0.10 has been dead more than 8 years.
-
-if GST_PLUGINS_GOOD
-
-config GST_PLUGINS_GOOD_ORC
- bool
-
-# ------------------------------
-comment "dependency-less plugins"
-# ------------------------------
-
-config GST_PLUGINS_GOOD_VIDEOFILTER
- bool
- prompt "videofilter"
-
-config GST_PLUGINS_GOOD_ALPHA
- bool
- prompt "alpha"
-
-config GST_PLUGINS_GOOD_APETAG
- bool
- prompt "apetag"
-
-config GST_PLUGINS_GOOD_AUDIOFX
- bool
- prompt "audiofx"
-
-config GST_PLUGINS_GOOD_AUDIOPARSERS
- bool
- prompt "audioparsers"
-
-config GST_PLUGINS_GOOD_AUPARSE
- bool
- prompt "auparse"
-
-config GST_PLUGINS_GOOD_AUTODETECT
- bool
- prompt "autodetect"
-
-config GST_PLUGINS_GOOD_AVI
- bool
- prompt "avi"
-
-config GST_PLUGINS_GOOD_CUTTER
- bool
- prompt "cutter"
-
-config GST_PLUGINS_GOOD_DEBUGUTILS
- bool
- prompt "debugutils"
-
-config GST_PLUGINS_GOOD_DEINTERLACE
- bool
- select GST_PLUGINS_GOOD_ORC
- prompt "deinterlace"
-
-config GST_PLUGINS_GOOD_EFFECTV
- bool
- prompt "effectv"
-
-config GST_PLUGINS_GOOD_EQUALIZER
- bool
- prompt "equalizer"
-
-config GST_PLUGINS_GOOD_FLV
- bool
- prompt "flv"
-
-config GST_PLUGINS_GOOD_ID3DEMUX
- bool
- prompt "id3demux"
-
-config GST_PLUGINS_GOOD_ICYDEMUX
- bool
- prompt "icydemux"
-
-config GST_PLUGINS_GOOD_INTERLEAVE
- bool
- prompt "interleave"
-
-config GST_PLUGINS_GOOD_FLX
- bool
- prompt "flx"
-
-config GST_PLUGINS_GOOD_GOOM
- bool
- select GST_PLUGINS_GOOD_ORC
- prompt "goom"
-
-config GST_PLUGINS_GOOD_GOOM2K1
- bool
- prompt "goom2k1"
-
-config GST_PLUGINS_GOOD_IMAGEFREEZE
- bool
- prompt "imagefreeze"
-
-config GST_PLUGINS_GOOD_LAW
- bool
- prompt "law"
-
-config GST_PLUGINS_GOOD_LEVEL
- bool
- prompt "level"
-
-config GST_PLUGINS_GOOD_MATROSKA
- bool
- prompt "matroska"
-
-config GST_PLUGINS_GOOD_MONOSCOPE
- bool
- prompt "monoscope"
-
-config GST_PLUGINS_GOOD_MULTIFILE
- bool
- prompt "multifile"
-
-config GST_PLUGINS_GOOD_MULTIPART
- bool
- prompt "multipart"
-
-config GST_PLUGINS_GOOD_QTDEMUX
- bool
- prompt "isomp4"
-
-config GST_PLUGINS_GOOD_REPLAYGAIN
- bool
- prompt "replaygain"
-
-config GST_PLUGINS_GOOD_RTP
- bool
- prompt "rtp"
-
-config GST_PLUGINS_GOOD_RTPMANAGER
- bool
- prompt "rtpmanager"
-
-config GST_PLUGINS_GOOD_RTSP
- bool
- prompt "rtsp"
-
-config GST_PLUGINS_GOOD_SHAPEWIPE
- bool
- prompt "shapewipe"
-
-config GST_PLUGINS_GOOD_SMPTE
- bool
- prompt "smpte"
-
-config GST_PLUGINS_GOOD_SPECTRUM
- bool
- prompt "spectrum"
-
-config GST_PLUGINS_GOOD_UDP
- bool
- prompt "udp"
-
-config GST_PLUGINS_GOOD_VIDEOBOX
- bool
- select GST_PLUGINS_GOOD_ORC
- prompt "videobox"
-
-config GST_PLUGINS_GOOD_VIDEOCROP
- bool
- prompt "videocrop"
-
-config GST_PLUGINS_GOOD_VIDEOMIXER
- bool
- select GST_PLUGINS_GOOD_ORC
- prompt "videomixer"
-
-config GST_PLUGINS_GOOD_WAVENC
- bool
- prompt "wavenc"
-
-config GST_PLUGINS_GOOD_WAVPARSE
- bool
- prompt "wavparse"
-
-config GST_PLUGINS_GOOD_Y4M
- bool
- prompt "y4m"
-
-# ---------------------------------
-comment "plugins with dependencies"
-# ---------------------------------
-
-config GST_PLUGINS_GOOD_DIRECTSOUND
- bool
- depends on BROKEN
- prompt "directsound"
-
-config GST_PLUGINS_GOOD_OSS
- bool
- prompt "oss"
-
-config GST_PLUGINS_GOOD_OSS4
- bool
- prompt "oss4"
-
-config GST_PLUGINS_GOOD_SUNAUDIO
- bool
- depends on BROKEN
- prompt "sunaudio"
-
-config GST_PLUGINS_GOOD_OSX_AUDIO
- bool
- depends on BROKEN
- prompt "osx_audio"
-
-config GST_PLUGINS_GOOD_OSX_VIDEO
- bool
- depends on BROKEN
- prompt "osx_video"
-
-config GST_PLUGINS_GOOD_GST_V4L2
- bool
- prompt "gst_v4l2"
-
-config GST_PLUGINS_GOOD_GST_V4L2_LIBV4L2
- bool
- depends on GST_PLUGINS_GOOD_GST_V4L2
- prompt "build v4l2 plugin with libv4l2 support"
-
-config GST_PLUGINS_GOOD_XVIDEO
- bool
- depends on GST_PLUGINS_GOOD_GST_V4L2
- prompt "xvideo support"
-
-config GST_PLUGINS_GOOD_X
- bool
- prompt "x"
-
-config GST_PLUGINS_GOOD_XSHM
- bool
- depends on GST_PLUGINS_GOOD_X
- prompt "xshm support"
-
-config GST_PLUGINS_GOOD_AALIB
- bool
- depends on BROKEN
- prompt "aalib"
-
-config GST_PLUGINS_GOOD_ANNODEX
- bool
- depends on BROKEN
- prompt "annodex"
-
-config GST_PLUGINS_GOOD_CAIRO
- bool
- prompt "cairo"
-
-config GST_PLUGINS_GOOD_ESD
- bool
- depends on BROKEN
- prompt "esd"
-
-config GST_PLUGINS_GOOD_FLAC
- bool
- prompt "flac"
-
-config GST_PLUGINS_GOOD_GCONF
- bool
- depends on BROKEN
- prompt "gconf"
-
-config GST_PLUGINS_GOOD_GDK_PIXBUF
- bool
- prompt "gdk_pixbuf"
-
-config GST_PLUGINS_GOOD_HAL
- bool
- depends on BROKEN
- prompt "hal"
-
-config GST_PLUGINS_GOOD_JPEG
- bool
- prompt "jpeg"
-
-config GST_PLUGINS_GOOD_JACK
- bool
- prompt "jack"
- depends on BROKEN
-
-config GST_PLUGINS_GOOD_LIBCACA
- bool
- prompt "libcaca"
-
-config GST_PLUGINS_GOOD_LIBDV
- bool
- depends on BROKEN
- prompt "libdv"
-
-config GST_PLUGINS_GOOD_LIBPNG
- bool
- prompt "libpng"
-
-config GST_PLUGINS_GOOD_PULSE
- bool
- depends on BROKEN
- prompt "pulse"
-
-config GST_PLUGINS_GOOD_DV1394
- bool
- depends on BROKEN
- prompt "dv1394"
-
-config GST_PLUGINS_GOOD_SHOUT2
- bool
- depends on BROKEN
- prompt "shout2"
-
-config GST_PLUGINS_GOOD_SOUP
- bool
- depends on BROKEN
- prompt "soup"
-
-config GST_PLUGINS_GOOD_SPEEX
- bool
- prompt "speex"
-
-config GST_PLUGINS_GOOD_TAGLIB
- bool
- depends on BROKEN
- prompt "taglib"
-
-config GST_PLUGINS_GOOD_WAVPACK
- bool
- depends on BROKEN
- prompt "wavpack"
-
-comment "Support options"
-
-config GST_PLUGINS_GOOD_ZLIB
- bool
- prompt "zlib"
- help
- zlib support for id3demux/qtdemux/matroska
-
-config GST_PLUGINS_GOOD_BZ2
- bool
- prompt "bz2"
- help
- bz2 support for matroska
-
-endif
diff --git a/rules/gst-plugins-good.make b/rules/gst-plugins-good.make
deleted file mode 100644
index 2dc2b8790..000000000
--- a/rules/gst-plugins-good.make
+++ /dev/null
@@ -1,172 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2008 by Robert Schwebel
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_GST_PLUGINS_GOOD) += gst-plugins-good
-
-#
-# Paths and names
-#
-GST_PLUGINS_GOOD_VERSION := 0.10.31
-GST_PLUGINS_GOOD_MD5 := 24f98a294a2b521e1b29412bdadae2e6
-GST_PLUGINS_GOOD := gst-plugins-good-$(GST_PLUGINS_GOOD_VERSION)
-GST_PLUGINS_GOOD_SUFFIX := tar.bz2
-GST_PLUGINS_GOOD_URL := http://gstreamer.freedesktop.org/src/gst-plugins-good/$(GST_PLUGINS_GOOD).$(GST_PLUGINS_GOOD_SUFFIX)
-GST_PLUGINS_GOOD_SOURCE := $(SRCDIR)/$(GST_PLUGINS_GOOD).$(GST_PLUGINS_GOOD_SUFFIX)
-GST_PLUGINS_GOOD_DIR := $(BUILDDIR)/$(GST_PLUGINS_GOOD)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_VIDEOFILTER) += videofilter
-GST_PLUGINS_GOOD_ENABLEC-$(PTXCONF_GST_PLUGINS_GOOD_ALPHA) += alpha
-GST_PLUGINS_GOOD_ENABLEP-$(PTXCONF_GST_PLUGINS_GOOD_ALPHA) += alpha alphacolor
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_APETAG) += apetag
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_AUDIOFX) += audiofx
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_AUDIOPARSERS)+= audioparsers
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_AUPARSE) += auparse
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_AUTODETECT) += autodetect
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_AVI) += avi
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_CUTTER) += cutter
-GST_PLUGINS_GOOD_ENABLEC-$(PTXCONF_GST_PLUGINS_GOOD_DEBUGUTILS) += debugutils
-GST_PLUGINS_GOOD_ENABLEP-$(PTXCONF_GST_PLUGINS_GOOD_DEBUGUTILS) += debug navigationtest
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_DEINTERLACE) += deinterlace
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_EFFECTV) += effectv
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_EQUALIZER) += equalizer
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_FLV) += flv
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_ID3DEMUX) += id3demux
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_ICYDEMUX) += icydemux
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_INTERLEAVE) += interleave
-GST_PLUGINS_GOOD_ENABLEC-$(PTXCONF_GST_PLUGINS_GOOD_FLX) += flx
-GST_PLUGINS_GOOD_ENABLEP-$(PTXCONF_GST_PLUGINS_GOOD_FLX) += flxdec
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_GOOM) += goom
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_GOOM2K1) += goom2k1
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_IMAGEFREEZE) += imagefreeze
-GST_PLUGINS_GOOD_ENABLEC-$(PTXCONF_GST_PLUGINS_GOOD_LAW) += law
-GST_PLUGINS_GOOD_ENABLEP-$(PTXCONF_GST_PLUGINS_GOOD_LAW) += alaw mulaw
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_LEVEL) += level
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_MATROSKA) += matroska
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_MONOSCOPE) += monoscope
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_MULTIFILE) += multifile
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_MULTIPART) += multipart
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_QTDEMUX) += isomp4
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_REPLAYGAIN) += replaygain
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_RTP) += rtp
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_RTPMANAGER) += rtpmanager
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_RTSP) += rtsp
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_SHAPEWIPE) += shapewipe
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_SMPTE) += smpte
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_SPECTRUM) += spectrum
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_UDP) += udp
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_VIDEOBOX) += videobox
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_VIDEOCROP) += videocrop
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_VIDEOMIXER) += videomixer
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_WAVENC) += wavenc
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_WAVPARSE) += wavparse
-GST_PLUGINS_GOOD_ENABLEC-$(PTXCONF_GST_PLUGINS_GOOD_Y4M) += y4m
-GST_PLUGINS_GOOD_ENABLEP-$(PTXCONF_GST_PLUGINS_GOOD_Y4M) += y4menc
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_DIRECTSOUND) += directsound
-GST_PLUGINS_GOOD_ENABLEC-$(PTXCONF_GST_PLUGINS_GOOD_OSS) += oss
-GST_PLUGINS_GOOD_ENABLEP-$(PTXCONF_GST_PLUGINS_GOOD_OSS) += ossaudio
-GST_PLUGINS_GOOD_ENABLEC-$(PTXCONF_GST_PLUGINS_GOOD_OSS4) += oss4
-GST_PLUGINS_GOOD_ENABLEP-$(PTXCONF_GST_PLUGINS_GOOD_OSS4) += oss4audio
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_SUNAUDIO) += sunaudio
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_OSX_AUDIO) += osx_audio
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_OSX_VIDEO) += osx_video
-GST_PLUGINS_GOOD_ENABLEC-$(PTXCONF_GST_PLUGINS_GOOD_GST_V4L2) += gst_v4l2
-GST_PLUGINS_GOOD_ENABLEP-$(PTXCONF_GST_PLUGINS_GOOD_GST_V4L2) += video4linux2
-GST_PLUGINS_GOOD_ENABLEC-$(PTXCONF_GST_PLUGINS_GOOD_X) += x
-GST_PLUGINS_GOOD_ENABLEP-$(PTXCONF_GST_PLUGINS_GOOD_X) += ximagesrc
-GST_PLUGINS_GOOD_ENABLEC-$(PTXCONF_GST_PLUGINS_GOOD_XSHM) += xshm
-GST_PLUGINS_GOOD_ENABLEC-$(PTXCONF_GST_PLUGINS_GOOD_XVIDEO) += xvideo
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_AALIB) += aalib
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_ANNODEX) += annodex
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_CAIRO) += cairo
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_ESD) += esd
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_FLAC) += flac
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_GCONF) += gconf
-GST_PLUGINS_GOOD_ENABLEC-$(PTXCONF_GST_PLUGINS_GOOD_GDK_PIXBUF) += gdk_pixbuf
-GST_PLUGINS_GOOD_ENABLEP-$(PTXCONF_GST_PLUGINS_GOOD_GDK_PIXBUF) += gdkpixbuf
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_HAL) += hal
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_JPEG) += jpeg
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_JACK) += jack
-GST_PLUGINS_GOOD_ENABLEC-$(PTXCONF_GST_PLUGINS_GOOD_LIBCACA) += libcaca
-GST_PLUGINS_GOOD_ENABLEP-$(PTXCONF_GST_PLUGINS_GOOD_LIBCACA) += cacasink
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_LIBDV) += libdv
-GST_PLUGINS_GOOD_ENABLEC-$(PTXCONF_GST_PLUGINS_GOOD_LIBPNG) += libpng
-GST_PLUGINS_GOOD_ENABLEP-$(PTXCONF_GST_PLUGINS_GOOD_LIBPNG) += png
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_PULSE) += pulse
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_DV1394) += dv1394
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_SHOUT2) += shout2
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_SOUP) += soup
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_SPEEX) += speex
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_TAGLIB) += taglib
-GST_PLUGINS_GOOD_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD_WAVPACK) += wavpack
-
-GST_PLUGINS_GOOD_ENABLEC-y += $(GST_PLUGINS_GOOD_ENABLE-y)
-GST_PLUGINS_GOOD_ENABLEC- += $(GST_PLUGINS_GOOD_ENABLE-)
-GST_PLUGINS_GOOD_ENABLEP-y += $(GST_PLUGINS_GOOD_ENABLE-y)
-
-#
-# autoconf
-#
-GST_PLUGINS_GOOD_CONF_TOOL := autoconf
-GST_PLUGINS_GOOD_CONF_OPT = \
- $(CROSS_AUTOCONF_USR) \
- $(GSTREAMER_GENERIC_CONF_OPT) \
- --enable-external \
- --enable-experimental \
- --disable-schemas-install \
- --disable-gconftool \
- --disable-esdtest \
- --disable-aalibtest \
- --$(call ptx/endis,PTXCONF_GST_PLUGINS_GOOD_ZLIB)-zlib \
- --$(call ptx/endis,PTXCONF_GST_PLUGINS_GOOD_BZ2)-bz2 \
- --$(call ptx/wwo,PTXCONF_GST_PLUGINS_GOOD_GST_V4L2)-gudev \
- --$(call ptx/wwo,PTXCONF_GST_PLUGINS_GOOD_GST_V4L2_LIBV4L2)-libv4l2
-
-#
-# the --with-plugins sadly only applies to depencyless plugings
-# and when no plugins are sellected it builds them all. So
-# --with-plugins is useless, so we generate a --enable-*
-# and --disable-* below
-#
-ifneq ($(call remove_quotes,$(GST_PLUGINS_GOOD_ENABLEC-y)),)
-GST_PLUGINS_GOOD_CONF_OPT += --enable-$(subst $(space),$(space)--enable-,$(strip $(GST_PLUGINS_GOOD_ENABLEC-y)))
-endif
-
-ifneq ($(call remove_quotes,$(GST_PLUGINS_GOOD_ENABLEC-)),)
-GST_PLUGINS_GOOD_CONF_OPT += --disable-$(subst $(space),$(space)--disable-,$(strip $(GST_PLUGINS_GOOD_ENABLEC-)))
-endif
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/gst-plugins-good.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, gst-plugins-good)
- @$(call install_fixup, gst-plugins-good,PRIORITY,optional)
- @$(call install_fixup, gst-plugins-good,SECTION,base)
- @$(call install_fixup, gst-plugins-good,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, gst-plugins-good,DESCRIPTION,missing)
-
- @for plugin in $(GST_PLUGINS_GOOD_ENABLEP-y); do \
- $(call install_copy, gst-plugins-good, 0, 0, 0644, -, \
- /usr/lib/gstreamer-0.10/libgst$${plugin}.so); \
- done
-
- @$(call install_finish, gst-plugins-good)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/gst-plugins-good1.in b/rules/gst-plugins-good1.in
index aeac2cbc8..9c2fc5765 100644
--- a/rules/gst-plugins-good1.in
+++ b/rules/gst-plugins-good1.in
@@ -8,6 +8,7 @@ menuconfig GST_PLUGINS_GOOD1
select GLIB
select GSTREAMER1
select GST_PLUGINS_BASE1
+ select GST_PLUGINS_BASE1_GL if GST_PLUGINS_GOOD1_QT5 || GST_PLUGINS_GOOD1_QT6
select ORC if GST_PLUGINS_GOOD1_ORC
select BZIP2 if GST_PLUGINS_GOOD1_BZ2
select BZIP2_LIBBZ2 if GST_PLUGINS_GOOD1_BZ2
@@ -25,8 +26,19 @@ menuconfig GST_PLUGINS_GOOD1
select QT5 if GST_PLUGINS_GOOD1_QT5
select QT5_GUI if GST_PLUGINS_GOOD1_QT5
select QT5_MODULE_QTDECLARATIVE if GST_PLUGINS_GOOD1_QT5
+ select QT6 if GST_PLUGINS_GOOD1_QT6
+ select QT6_GUI if GST_PLUGINS_GOOD1_QT6
+ select QT6_MODULE_QTDECLARATIVE if GST_PLUGINS_GOOD1_QT6
select LIBSHOUT if GST_PLUGINS_GOOD1_SHOUT2
select LIBSOUP if GST_PLUGINS_GOOD1_SOUP
+ select LIBSOUP if GST_PLUGINS_GOOD1_ADAPTIVEDEMUX2 && RUNTIME
+ select LIBTAG if GST_PLUGINS_GOOD1_TAGLIB
+ select LIBXML2 if GST_PLUGINS_GOOD1_ADAPTIVEDEMUX2
+ select LIBGCRYPT if GST_PLUGINS_GOOD1_HLS_CRYPTO_GCRYPT
+ select NETTLE if GST_PLUGINS_GOOD1_HLS_CRYPTO_NETTLE
+ select OPENSSL if GST_PLUGINS_GOOD1_HLS_CRYPTO_OPENSSL
+ select SYSTEMD if GST_PLUGINS_GOOD1_V4L2 && GST_PLUGINS_GOOD1_SYSTEMD && RUNTIME
+ select SYSTEMD_UDEV_PERSISTENT_V4L if GST_PLUGINS_GOOD1_V4L2 && GST_PLUGINS_GOOD1_SYSTEMD && RUNTIME
select SPEEX if GST_PLUGINS_GOOD1_SPEEX
select TWOLAME if GST_PLUGINS_GOOD1_TWOLAME
select LIBGUDEV if GST_PLUGINS_GOOD1_V4L2
@@ -222,12 +234,46 @@ config GST_PLUGINS_GOOD1_WAVPARSE
bool
prompt "wavparse"
+config GST_PLUGINS_GOOD1_XINGMUX
+ bool
+ prompt "xingmux"
+
config GST_PLUGINS_GOOD1_Y4M
bool
prompt "y4m"
comment "plugins with dependencies"
+config GST_PLUGINS_GOOD1_ADAPTIVEDEMUX2
+ bool
+ prompt "adaptivedemux2"
+ help
+ 2nd generation adaptive demuxer plugin
+
+if GST_PLUGINS_GOOD1_ADAPTIVEDEMUX2
+
+choice
+ prompt "Crypto library to use for HLS plugin"
+
+ config GST_PLUGINS_GOOD1_HLS_CRYPTO_NETTLE
+ bool "nettle"
+
+ config GST_PLUGINS_GOOD1_HLS_CRYPTO_GCRYPT
+ bool "gcrypt"
+
+ config GST_PLUGINS_GOOD1_HLS_CRYPTO_OPENSSL
+ bool "openssl"
+endchoice
+
+endif
+
+config GST_PLUGINS_GOOD1_HLS_CRYPTO
+ string
+ default "nettle" if GST_PLUGINS_GOOD1_HLS_CRYPTO_NETTLE
+ default "gcrypt" if GST_PLUGINS_GOOD1_HLS_CRYPTO_GCRYPT
+ default "openssl" if GST_PLUGINS_GOOD1_HLS_CRYPTO_OPENSSL
+ default "auto"
+
config GST_PLUGINS_GOOD1_AALIB
bool
# needs libaa
@@ -236,6 +282,22 @@ config GST_PLUGINS_GOOD1_AALIB
help
aalib text console video sink plugin
+config GST_PLUGINS_GOOD1_AMRNB
+ bool
+ # needs opencore-amrnb
+ depends on BROKEN
+ prompt "amrnb"
+ help
+ Adaptive Multi-Rate Narrow-Band audio codec plugin
+
+config GST_PLUGINS_GOOD1_AMRWBDEC
+ bool
+ # needs opencore-amrwb
+ depends on BROKEN
+ prompt "amrwbdec"
+ help
+ Adaptive Multi-Rate Wide-Band audio decoder plugin
+
config GST_PLUGINS_GOOD1_CAIRO
bool
prompt "cairo"
@@ -338,6 +400,19 @@ config GST_PLUGINS_GOOD1_QT5
help
Qt5 QML video sink plugin
+config GST_PLUGINS_GOOD1_QT6
+ bool
+ prompt "qt6"
+ help
+ Qt6 QML video sink plugin
+
+config GST_PLUGINS_GOOD1_RPICAMSRC
+ bool
+ depends on BROKEN
+ prompt "rpicamsrc"
+ help
+ Raspberry Pi camera module plugin
+
config GST_PLUGINS_GOOD1_SHOUT2
bool
prompt "shout2"
@@ -356,10 +431,12 @@ config GST_PLUGINS_GOOD1_SPEEX
help
Speex audio codec plugin
+config GST_PLUGINS_GOOD1_SYSTEMD
+ bool
+ default INITMETHOD_SYSTEMD
+
config GST_PLUGINS_GOOD1_TAGLIB
bool
- # needs libtag
- depends on BROKEN
prompt "taglib"
help
Tag-writing plugin based on taglib
diff --git a/rules/gst-plugins-good1.make b/rules/gst-plugins-good1.make
index c7beedfd0..1121919a9 100644
--- a/rules/gst-plugins-good1.make
+++ b/rules/gst-plugins-good1.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_GST_PLUGINS_GOOD1) += gst-plugins-good1
#
# Paths and names
#
-GST_PLUGINS_GOOD1_VERSION := 1.18.4
-GST_PLUGINS_GOOD1_MD5 := 4ecf1ac5cd422d9c13fe05dbf5e3df26
+GST_PLUGINS_GOOD1_VERSION := 1.24.2
+GST_PLUGINS_GOOD1_MD5 := 1b706be887f5d809cac33c9600d1cdd3
GST_PLUGINS_GOOD1 := gst-plugins-good-$(GST_PLUGINS_GOOD1_VERSION)
GST_PLUGINS_GOOD1_SUFFIX := tar.xz
GST_PLUGINS_GOOD1_URL := http://gstreamer.freedesktop.org/src/gst-plugins-good/$(GST_PLUGINS_GOOD1).$(GST_PLUGINS_GOOD1_SUFFIX)
@@ -28,8 +28,11 @@ GST_PLUGINS_GOOD1_LICENSE := LGPL-2.1-or-later
# ----------------------------------------------------------------------------
GST_PLUGINS_GOOD1_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD1_AALIB) += aalib
+GST_PLUGINS_GOOD1_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD1_ADAPTIVEDEMUX2) += adaptivedemux2
GST_PLUGINS_GOOD1_ENABLEC-$(PTXCONF_GST_PLUGINS_GOOD1_ALPHA) += alpha
GST_PLUGINS_GOOD1_ENABLEP-$(PTXCONF_GST_PLUGINS_GOOD1_ALPHA) += alpha alphacolor
+GST_PLUGINS_GOOD1_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD1_AMRNB) += amrnb
+GST_PLUGINS_GOOD1_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD1_AMRWBDEC) += amrwbdec
GST_PLUGINS_GOOD1_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD1_APETAG) += apetag
GST_PLUGINS_GOOD1_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD1_AUDIOFX) += audiofx
GST_PLUGINS_GOOD1_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD1_AUDIOPARSERS) += audioparsers
@@ -82,7 +85,10 @@ GST_PLUGINS_GOOD1_ENABLEC-$(PTXCONF_GST_PLUGINS_GOOD1_PULSE) += pulse
GST_PLUGINS_GOOD1_ENABLEP-$(PTXCONF_GST_PLUGINS_GOOD1_PULSE) += pulseaudio
GST_PLUGINS_GOOD1_ENABLEC-$(PTXCONF_GST_PLUGINS_GOOD1_QT5) += qt5
GST_PLUGINS_GOOD1_ENABLEP-$(PTXCONF_GST_PLUGINS_GOOD1_QT5) += qmlgl
+GST_PLUGINS_GOOD1_ENABLEC-$(PTXCONF_GST_PLUGINS_GOOD1_QT6) += qt6
+GST_PLUGINS_GOOD1_ENABLEP-$(PTXCONF_GST_PLUGINS_GOOD1_QT6) += qml6
GST_PLUGINS_GOOD1_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD1_REPLAYGAIN) += replaygain
+GST_PLUGINS_GOOD1_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD1_RPICAMSRC) += rpicamsrc
GST_PLUGINS_GOOD1_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD1_RTP) += rtp
GST_PLUGINS_GOOD1_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD1_RTPMANAGER) += rtpmanager
GST_PLUGINS_GOOD1_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD1_RTSP) += rtsp
@@ -107,6 +113,7 @@ GST_PLUGINS_GOOD1_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD1_WAVENC) += wavenc
GST_PLUGINS_GOOD1_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD1_WAVPACK) += wavpack
GST_PLUGINS_GOOD1_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD1_WAVPARSE) += wavparse
GST_PLUGINS_GOOD1_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD1_XIMAGESRC) += ximagesrc
+GST_PLUGINS_GOOD1_ENABLE-$(PTXCONF_GST_PLUGINS_GOOD1_XINGMUX) += xingmux
GST_PLUGINS_GOOD1_ENABLEC-$(PTXCONF_GST_PLUGINS_GOOD1_Y4M) += y4m
GST_PLUGINS_GOOD1_ENABLEP-$(PTXCONF_GST_PLUGINS_GOOD1_Y4M) += y4menc
@@ -119,7 +126,7 @@ ifdef PTXCONF_KERNEL_HEADER
GST_PLUGINS_GOOD1_CPPFLAGS := -isystem $(KERNEL_HEADERS_INCLUDE_DIR)
endif
ifdef PTXCONF_GST_PLUGINS_GOOD1_QT5
-GST_PLUGINS_GOOD1_PATH := PATH=$(PTXDIST_SYSROOT_CROSS)/bin/qt5:$(CROSS_PATH)
+GST_PLUGINS_GOOD1_PATH := PATH=$(PTXDIST_SYSROOT_CROSS)/usr/bin/qt5:$(CROSS_PATH)
endif
ifdef PTXCONF_ARCH_X86
@@ -138,12 +145,22 @@ GST_PLUGINS_GOOD1_CONF_OPT = \
-Dasm=$(GST_PLUGINS_GOOD1_ASM) \
-Dbz2=$(call ptx/endis,PTXCONF_GST_PLUGINS_GOOD1_BZ2)d \
-Ddirectsound=disabled \
+ -Dexamples=disabled \
+ -Dhls-crypto=$(call remove_quotes, $(PTXCONF_GST_PLUGINS_GOOD1_HLS_CRYPTO)) \
+ -Dnls=disabled \
-Dorc=$(call ptx/endis,PTXCONF_GST_PLUGINS_GOOD1_ORC)d \
-Dosxaudio=disabled \
-Dosxvideo=disabled \
+ -Dqt-method=pkg-config \
+ -Drpi-header-dir= \
+ -Drpi-lib-dir= \
+ -Drpicamsrc=disabled \
+ -Dsoup-lookup-dep=false \
+ -Dsoup-version=3 \
-Dv4l2-gudev=$(call ptx/endis,PTXCONF_GST_PLUGINS_GOOD1_V4L2)d \
-Dv4l2-probe=$(call ptx/truefalse,PTXCONF_GST_PLUGINS_GOOD1_V4L2) \
-Dwaveform=disabled \
+ -Dximagesrc-navigation=disabled \
-Dximagesrc-xdamage=$(call ptx/endis,PTXCONF_GST_PLUGINS_GOOD1_XIMAGESRC)d \
-Dximagesrc-xfixes=$(call ptx/endis,PTXCONF_GST_PLUGINS_GOOD1_XIMAGESRC)d \
-Dximagesrc-xshm=$(call ptx/endis,PTXCONF_GST_PLUGINS_GOOD1_XIMAGESRC)d \
diff --git a/rules/gst-plugins-rs.cargo.make b/rules/gst-plugins-rs.cargo.make
new file mode 100644
index 000000000..5fa72b8f0
--- /dev/null
+++ b/rules/gst-plugins-rs.cargo.make
@@ -0,0 +1,2767 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# WARNING: This file is generated with 'ptxdist cargosync gst-plugins-rs' and
+# should not be modified manually!
+#
+
+GST_PLUGINS_RS_CARGO_LOCK_MD5 := 987dabef97b973136860ea227fc694ab
+
+GST_PLUGINS_RS_ADDR2LINE_0_21_0_MD5 := 55e15000c4c210f0bb2aca6f38fbe424
+GST_PLUGINS_RS_ADDR2LINE_0_21_0_URL := https://crates.io/api/v1/crates/addr2line/0.21.0/download
+GST_PLUGINS_RS_ADDR2LINE_0_21_0_SOURCE := $(SRCDIR)/addr2line-0.21.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ADDR2LINE_0_21_0
+
+GST_PLUGINS_RS_ADLER_1_0_2_MD5 := 669215548c64019c08c92b2c1afd3deb
+GST_PLUGINS_RS_ADLER_1_0_2_URL := https://crates.io/api/v1/crates/adler/1.0.2/download
+GST_PLUGINS_RS_ADLER_1_0_2_SOURCE := $(SRCDIR)/adler-1.0.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ADLER_1_0_2
+
+GST_PLUGINS_RS_AES_0_6_0_MD5 := bd53a9f0ec43690f84e8c96bba8e538d
+GST_PLUGINS_RS_AES_0_6_0_URL := https://crates.io/api/v1/crates/aes/0.6.0/download
+GST_PLUGINS_RS_AES_0_6_0_SOURCE := $(SRCDIR)/aes-0.6.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AES_0_6_0
+
+GST_PLUGINS_RS_AES_CTR_0_6_0_MD5 := db6f9a586bda62de931be1b2bce9cd34
+GST_PLUGINS_RS_AES_CTR_0_6_0_URL := https://crates.io/api/v1/crates/aes-ctr/0.6.0/download
+GST_PLUGINS_RS_AES_CTR_0_6_0_SOURCE := $(SRCDIR)/aes-ctr-0.6.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AES_CTR_0_6_0
+
+GST_PLUGINS_RS_AES_SOFT_0_6_4_MD5 := b14b12cd0e866930de1993132c85705b
+GST_PLUGINS_RS_AES_SOFT_0_6_4_URL := https://crates.io/api/v1/crates/aes-soft/0.6.4/download
+GST_PLUGINS_RS_AES_SOFT_0_6_4_SOURCE := $(SRCDIR)/aes-soft-0.6.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AES_SOFT_0_6_4
+
+GST_PLUGINS_RS_AESNI_0_10_0_MD5 := 58a6326364dbe6f5168f3f3a341f360e
+GST_PLUGINS_RS_AESNI_0_10_0_URL := https://crates.io/api/v1/crates/aesni/0.10.0/download
+GST_PLUGINS_RS_AESNI_0_10_0_SOURCE := $(SRCDIR)/aesni-0.10.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AESNI_0_10_0
+
+GST_PLUGINS_RS_AHASH_0_8_11_MD5 := adbb51e40b28255c49b2ad1d956eff19
+GST_PLUGINS_RS_AHASH_0_8_11_URL := https://crates.io/api/v1/crates/ahash/0.8.11/download
+GST_PLUGINS_RS_AHASH_0_8_11_SOURCE := $(SRCDIR)/ahash-0.8.11.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AHASH_0_8_11
+
+GST_PLUGINS_RS_AHO_CORASICK_1_1_3_MD5 := 03b2d126766ed746706241b4c7487654
+GST_PLUGINS_RS_AHO_CORASICK_1_1_3_URL := https://crates.io/api/v1/crates/aho-corasick/1.1.3/download
+GST_PLUGINS_RS_AHO_CORASICK_1_1_3_SOURCE := $(SRCDIR)/aho-corasick-1.1.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AHO_CORASICK_1_1_3
+
+GST_PLUGINS_RS_ALIGNED_VEC_0_5_0_MD5 := 8525ff20576de7f65510708ed61b2316
+GST_PLUGINS_RS_ALIGNED_VEC_0_5_0_URL := https://crates.io/api/v1/crates/aligned-vec/0.5.0/download
+GST_PLUGINS_RS_ALIGNED_VEC_0_5_0_SOURCE := $(SRCDIR)/aligned-vec-0.5.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ALIGNED_VEC_0_5_0
+
+GST_PLUGINS_RS_ALLOCATOR_API2_0_2_16_MD5 := a2d3656a58d89472063fd35db901f137
+GST_PLUGINS_RS_ALLOCATOR_API2_0_2_16_URL := https://crates.io/api/v1/crates/allocator-api2/0.2.16/download
+GST_PLUGINS_RS_ALLOCATOR_API2_0_2_16_SOURCE := $(SRCDIR)/allocator-api2-0.2.16.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ALLOCATOR_API2_0_2_16
+
+GST_PLUGINS_RS_ANDROID_TZDATA_0_1_1_MD5 := e0a03581a6aea080315323651f272d65
+GST_PLUGINS_RS_ANDROID_TZDATA_0_1_1_URL := https://crates.io/api/v1/crates/android-tzdata/0.1.1/download
+GST_PLUGINS_RS_ANDROID_TZDATA_0_1_1_SOURCE := $(SRCDIR)/android-tzdata-0.1.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ANDROID_TZDATA_0_1_1
+
+GST_PLUGINS_RS_ANDROID_SYSTEM_PROPERTIES_0_1_5_MD5 := bf23cd323c33a8c283c41bb9b79e4ce4
+GST_PLUGINS_RS_ANDROID_SYSTEM_PROPERTIES_0_1_5_URL := https://crates.io/api/v1/crates/android_system_properties/0.1.5/download
+GST_PLUGINS_RS_ANDROID_SYSTEM_PROPERTIES_0_1_5_SOURCE := $(SRCDIR)/android_system_properties-0.1.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ANDROID_SYSTEM_PROPERTIES_0_1_5
+
+GST_PLUGINS_RS_ANSTREAM_0_6_13_MD5 := d1dbe19a84ecc8388654099d69c77b09
+GST_PLUGINS_RS_ANSTREAM_0_6_13_URL := https://crates.io/api/v1/crates/anstream/0.6.13/download
+GST_PLUGINS_RS_ANSTREAM_0_6_13_SOURCE := $(SRCDIR)/anstream-0.6.13.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ANSTREAM_0_6_13
+
+GST_PLUGINS_RS_ANSTYLE_1_0_6_MD5 := dff7c2613686577772e6eaeaf76d6f5c
+GST_PLUGINS_RS_ANSTYLE_1_0_6_URL := https://crates.io/api/v1/crates/anstyle/1.0.6/download
+GST_PLUGINS_RS_ANSTYLE_1_0_6_SOURCE := $(SRCDIR)/anstyle-1.0.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ANSTYLE_1_0_6
+
+GST_PLUGINS_RS_ANSTYLE_PARSE_0_2_3_MD5 := e188f6de00a35235da008cd39e1a003d
+GST_PLUGINS_RS_ANSTYLE_PARSE_0_2_3_URL := https://crates.io/api/v1/crates/anstyle-parse/0.2.3/download
+GST_PLUGINS_RS_ANSTYLE_PARSE_0_2_3_SOURCE := $(SRCDIR)/anstyle-parse-0.2.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ANSTYLE_PARSE_0_2_3
+
+GST_PLUGINS_RS_ANSTYLE_QUERY_1_0_2_MD5 := b06d6c6d9a7bdcdd9bf78f20f2d08f01
+GST_PLUGINS_RS_ANSTYLE_QUERY_1_0_2_URL := https://crates.io/api/v1/crates/anstyle-query/1.0.2/download
+GST_PLUGINS_RS_ANSTYLE_QUERY_1_0_2_SOURCE := $(SRCDIR)/anstyle-query-1.0.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ANSTYLE_QUERY_1_0_2
+
+GST_PLUGINS_RS_ANSTYLE_WINCON_3_0_2_MD5 := 87cc1a50f0dcc09d7223df42eae95119
+GST_PLUGINS_RS_ANSTYLE_WINCON_3_0_2_URL := https://crates.io/api/v1/crates/anstyle-wincon/3.0.2/download
+GST_PLUGINS_RS_ANSTYLE_WINCON_3_0_2_SOURCE := $(SRCDIR)/anstyle-wincon-3.0.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ANSTYLE_WINCON_3_0_2
+
+GST_PLUGINS_RS_ANYHOW_1_0_81_MD5 := 8e8c387e63c67c1b8bc99587af1deabb
+GST_PLUGINS_RS_ANYHOW_1_0_81_URL := https://crates.io/api/v1/crates/anyhow/1.0.81/download
+GST_PLUGINS_RS_ANYHOW_1_0_81_SOURCE := $(SRCDIR)/anyhow-1.0.81.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ANYHOW_1_0_81
+
+GST_PLUGINS_RS_ARBITRARY_1_3_2_MD5 := c1a0202e60c31330720a70210f0d0080
+GST_PLUGINS_RS_ARBITRARY_1_3_2_URL := https://crates.io/api/v1/crates/arbitrary/1.3.2/download
+GST_PLUGINS_RS_ARBITRARY_1_3_2_SOURCE := $(SRCDIR)/arbitrary-1.3.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ARBITRARY_1_3_2
+
+GST_PLUGINS_RS_ARG_ENUM_PROC_MACRO_0_3_4_MD5 := 5f1f0d90556bfcd0fb1b1f021912e949
+GST_PLUGINS_RS_ARG_ENUM_PROC_MACRO_0_3_4_URL := https://crates.io/api/v1/crates/arg_enum_proc_macro/0.3.4/download
+GST_PLUGINS_RS_ARG_ENUM_PROC_MACRO_0_3_4_SOURCE := $(SRCDIR)/arg_enum_proc_macro-0.3.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ARG_ENUM_PROC_MACRO_0_3_4
+
+GST_PLUGINS_RS_ARRAYVEC_0_7_4_MD5 := 504b5d258d68bdb980c997b93f0c6e6e
+GST_PLUGINS_RS_ARRAYVEC_0_7_4_URL := https://crates.io/api/v1/crates/arrayvec/0.7.4/download
+GST_PLUGINS_RS_ARRAYVEC_0_7_4_SOURCE := $(SRCDIR)/arrayvec-0.7.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ARRAYVEC_0_7_4
+
+GST_PLUGINS_RS_ASYNC_CHANNEL_2_2_0_MD5 := 7b940fd276ee0bd5da6e16833b6d783c
+GST_PLUGINS_RS_ASYNC_CHANNEL_2_2_0_URL := https://crates.io/api/v1/crates/async-channel/2.2.0/download
+GST_PLUGINS_RS_ASYNC_CHANNEL_2_2_0_SOURCE := $(SRCDIR)/async-channel-2.2.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ASYNC_CHANNEL_2_2_0
+
+GST_PLUGINS_RS_ASYNC_COMPRESSION_0_4_8_MD5 := 31d54033668cd73df734c72109340921
+GST_PLUGINS_RS_ASYNC_COMPRESSION_0_4_8_URL := https://crates.io/api/v1/crates/async-compression/0.4.8/download
+GST_PLUGINS_RS_ASYNC_COMPRESSION_0_4_8_SOURCE := $(SRCDIR)/async-compression-0.4.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ASYNC_COMPRESSION_0_4_8
+
+GST_PLUGINS_RS_ASYNC_RECURSION_1_1_0_MD5 := ff9141b438a2b909a9b95aca62bf2c93
+GST_PLUGINS_RS_ASYNC_RECURSION_1_1_0_URL := https://crates.io/api/v1/crates/async-recursion/1.1.0/download
+GST_PLUGINS_RS_ASYNC_RECURSION_1_1_0_SOURCE := $(SRCDIR)/async-recursion-1.1.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ASYNC_RECURSION_1_1_0
+
+GST_PLUGINS_RS_ASYNC_STREAM_0_3_5_MD5 := 4a2d00feaee59e9fa4aeaa2703666add
+GST_PLUGINS_RS_ASYNC_STREAM_0_3_5_URL := https://crates.io/api/v1/crates/async-stream/0.3.5/download
+GST_PLUGINS_RS_ASYNC_STREAM_0_3_5_SOURCE := $(SRCDIR)/async-stream-0.3.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ASYNC_STREAM_0_3_5
+
+GST_PLUGINS_RS_ASYNC_STREAM_IMPL_0_3_5_MD5 := 31d21aa9138703d55a8c72e14b15172f
+GST_PLUGINS_RS_ASYNC_STREAM_IMPL_0_3_5_URL := https://crates.io/api/v1/crates/async-stream-impl/0.3.5/download
+GST_PLUGINS_RS_ASYNC_STREAM_IMPL_0_3_5_SOURCE := $(SRCDIR)/async-stream-impl-0.3.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ASYNC_STREAM_IMPL_0_3_5
+
+GST_PLUGINS_RS_ASYNC_TASK_4_7_0_MD5 := 4acda95b55f5362a5c53a26cf076161f
+GST_PLUGINS_RS_ASYNC_TASK_4_7_0_URL := https://crates.io/api/v1/crates/async-task/4.7.0/download
+GST_PLUGINS_RS_ASYNC_TASK_4_7_0_SOURCE := $(SRCDIR)/async-task-4.7.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ASYNC_TASK_4_7_0
+
+GST_PLUGINS_RS_ASYNC_TRAIT_0_1_79_MD5 := c1055d661e42a4c08b9f878910e6297e
+GST_PLUGINS_RS_ASYNC_TRAIT_0_1_79_URL := https://crates.io/api/v1/crates/async-trait/0.1.79/download
+GST_PLUGINS_RS_ASYNC_TRAIT_0_1_79_SOURCE := $(SRCDIR)/async-trait-0.1.79.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ASYNC_TRAIT_0_1_79
+
+GST_PLUGINS_RS_ASYNC_TUNGSTENITE_0_25_1_MD5 := b8ca57b261e005c90871ec894a56f535
+GST_PLUGINS_RS_ASYNC_TUNGSTENITE_0_25_1_URL := https://crates.io/api/v1/crates/async-tungstenite/0.25.1/download
+GST_PLUGINS_RS_ASYNC_TUNGSTENITE_0_25_1_SOURCE := $(SRCDIR)/async-tungstenite-0.25.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ASYNC_TUNGSTENITE_0_25_1
+
+GST_PLUGINS_RS_ATOMIC_REFCELL_0_1_13_MD5 := 44d013310c0ba44e00bae5f29a55e57d
+GST_PLUGINS_RS_ATOMIC_REFCELL_0_1_13_URL := https://crates.io/api/v1/crates/atomic_refcell/0.1.13/download
+GST_PLUGINS_RS_ATOMIC_REFCELL_0_1_13_SOURCE := $(SRCDIR)/atomic_refcell-0.1.13.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ATOMIC_REFCELL_0_1_13
+
+GST_PLUGINS_RS_ATTY_0_2_14_MD5 := 142cb4b9a653e56e56311f0c883b8582
+GST_PLUGINS_RS_ATTY_0_2_14_URL := https://crates.io/api/v1/crates/atty/0.2.14/download
+GST_PLUGINS_RS_ATTY_0_2_14_SOURCE := $(SRCDIR)/atty-0.2.14.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ATTY_0_2_14
+
+GST_PLUGINS_RS_AUTOCFG_1_2_0_MD5 := c4e7c176f09e17c6f7d0d574bd6c74b3
+GST_PLUGINS_RS_AUTOCFG_1_2_0_URL := https://crates.io/api/v1/crates/autocfg/1.2.0/download
+GST_PLUGINS_RS_AUTOCFG_1_2_0_SOURCE := $(SRCDIR)/autocfg-1.2.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AUTOCFG_1_2_0
+
+GST_PLUGINS_RS_AV1_GRAIN_0_2_3_MD5 := 897bb747c1bffb5f7fe96d70d4619d3c
+GST_PLUGINS_RS_AV1_GRAIN_0_2_3_URL := https://crates.io/api/v1/crates/av1-grain/0.2.3/download
+GST_PLUGINS_RS_AV1_GRAIN_0_2_3_SOURCE := $(SRCDIR)/av1-grain-0.2.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AV1_GRAIN_0_2_3
+
+GST_PLUGINS_RS_AWS_CONFIG_1_1_9_MD5 := 78b207ed0bdedf492ac411e6f0563eb9
+GST_PLUGINS_RS_AWS_CONFIG_1_1_9_URL := https://crates.io/api/v1/crates/aws-config/1.1.9/download
+GST_PLUGINS_RS_AWS_CONFIG_1_1_9_SOURCE := $(SRCDIR)/aws-config-1.1.9.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_CONFIG_1_1_9
+
+GST_PLUGINS_RS_AWS_CREDENTIAL_TYPES_1_1_8_MD5 := 5d78b7144b71f08fcb13f440f19af565
+GST_PLUGINS_RS_AWS_CREDENTIAL_TYPES_1_1_8_URL := https://crates.io/api/v1/crates/aws-credential-types/1.1.8/download
+GST_PLUGINS_RS_AWS_CREDENTIAL_TYPES_1_1_8_SOURCE := $(SRCDIR)/aws-credential-types-1.1.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_CREDENTIAL_TYPES_1_1_8
+
+GST_PLUGINS_RS_AWS_RUNTIME_1_1_8_MD5 := 6e81a96e3d4b18e3460b955d869db310
+GST_PLUGINS_RS_AWS_RUNTIME_1_1_8_URL := https://crates.io/api/v1/crates/aws-runtime/1.1.8/download
+GST_PLUGINS_RS_AWS_RUNTIME_1_1_8_SOURCE := $(SRCDIR)/aws-runtime-1.1.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_RUNTIME_1_1_8
+
+GST_PLUGINS_RS_AWS_SDK_KINESISVIDEO_1_19_0_MD5 := 5e268d636ea69e6ef3774025cf101dd0
+GST_PLUGINS_RS_AWS_SDK_KINESISVIDEO_1_19_0_URL := https://crates.io/api/v1/crates/aws-sdk-kinesisvideo/1.19.0/download
+GST_PLUGINS_RS_AWS_SDK_KINESISVIDEO_1_19_0_SOURCE := $(SRCDIR)/aws-sdk-kinesisvideo-1.19.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_SDK_KINESISVIDEO_1_19_0
+
+GST_PLUGINS_RS_AWS_SDK_KINESISVIDEOSIGNALING_1_18_0_MD5 := 091fd927a2da61bc0067d09cf7f87b85
+GST_PLUGINS_RS_AWS_SDK_KINESISVIDEOSIGNALING_1_18_0_URL := https://crates.io/api/v1/crates/aws-sdk-kinesisvideosignaling/1.18.0/download
+GST_PLUGINS_RS_AWS_SDK_KINESISVIDEOSIGNALING_1_18_0_SOURCE := $(SRCDIR)/aws-sdk-kinesisvideosignaling-1.18.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_SDK_KINESISVIDEOSIGNALING_1_18_0
+
+GST_PLUGINS_RS_AWS_SDK_S3_1_21_0_MD5 := 80c9d69ed25d418c88e5c97a6f1b5b0a
+GST_PLUGINS_RS_AWS_SDK_S3_1_21_0_URL := https://crates.io/api/v1/crates/aws-sdk-s3/1.21.0/download
+GST_PLUGINS_RS_AWS_SDK_S3_1_21_0_SOURCE := $(SRCDIR)/aws-sdk-s3-1.21.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_SDK_S3_1_21_0
+
+GST_PLUGINS_RS_AWS_SDK_SSO_1_18_0_MD5 := 0f580a4fd9de872c29c51d86643de47f
+GST_PLUGINS_RS_AWS_SDK_SSO_1_18_0_URL := https://crates.io/api/v1/crates/aws-sdk-sso/1.18.0/download
+GST_PLUGINS_RS_AWS_SDK_SSO_1_18_0_SOURCE := $(SRCDIR)/aws-sdk-sso-1.18.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_SDK_SSO_1_18_0
+
+GST_PLUGINS_RS_AWS_SDK_SSOOIDC_1_18_0_MD5 := 39752456fa93845ad0e3a8cc995a3094
+GST_PLUGINS_RS_AWS_SDK_SSOOIDC_1_18_0_URL := https://crates.io/api/v1/crates/aws-sdk-ssooidc/1.18.0/download
+GST_PLUGINS_RS_AWS_SDK_SSOOIDC_1_18_0_SOURCE := $(SRCDIR)/aws-sdk-ssooidc-1.18.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_SDK_SSOOIDC_1_18_0
+
+GST_PLUGINS_RS_AWS_SDK_STS_1_18_0_MD5 := d5f3a88df806812bc62d93f983035ff6
+GST_PLUGINS_RS_AWS_SDK_STS_1_18_0_URL := https://crates.io/api/v1/crates/aws-sdk-sts/1.18.0/download
+GST_PLUGINS_RS_AWS_SDK_STS_1_18_0_SOURCE := $(SRCDIR)/aws-sdk-sts-1.18.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_SDK_STS_1_18_0
+
+GST_PLUGINS_RS_AWS_SDK_TRANSCRIBESTREAMING_1_18_0_MD5 := 5a03def598843ffad124752bec645ae7
+GST_PLUGINS_RS_AWS_SDK_TRANSCRIBESTREAMING_1_18_0_URL := https://crates.io/api/v1/crates/aws-sdk-transcribestreaming/1.18.0/download
+GST_PLUGINS_RS_AWS_SDK_TRANSCRIBESTREAMING_1_18_0_SOURCE := $(SRCDIR)/aws-sdk-transcribestreaming-1.18.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_SDK_TRANSCRIBESTREAMING_1_18_0
+
+GST_PLUGINS_RS_AWS_SDK_TRANSLATE_1_18_0_MD5 := 6a338ce1a00d2e9156a3786b3d7df0d6
+GST_PLUGINS_RS_AWS_SDK_TRANSLATE_1_18_0_URL := https://crates.io/api/v1/crates/aws-sdk-translate/1.18.0/download
+GST_PLUGINS_RS_AWS_SDK_TRANSLATE_1_18_0_SOURCE := $(SRCDIR)/aws-sdk-translate-1.18.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_SDK_TRANSLATE_1_18_0
+
+GST_PLUGINS_RS_AWS_SIGV4_1_2_0_MD5 := 13ca42270d21fdd527d5d43699c1a3e5
+GST_PLUGINS_RS_AWS_SIGV4_1_2_0_URL := https://crates.io/api/v1/crates/aws-sigv4/1.2.0/download
+GST_PLUGINS_RS_AWS_SIGV4_1_2_0_SOURCE := $(SRCDIR)/aws-sigv4-1.2.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_SIGV4_1_2_0
+
+GST_PLUGINS_RS_AWS_SMITHY_ASYNC_1_2_1_MD5 := 7b189b8b13f51a3c94a15abac33d1e2d
+GST_PLUGINS_RS_AWS_SMITHY_ASYNC_1_2_1_URL := https://crates.io/api/v1/crates/aws-smithy-async/1.2.1/download
+GST_PLUGINS_RS_AWS_SMITHY_ASYNC_1_2_1_SOURCE := $(SRCDIR)/aws-smithy-async-1.2.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_SMITHY_ASYNC_1_2_1
+
+GST_PLUGINS_RS_AWS_SMITHY_CHECKSUMS_0_60_7_MD5 := 547b9f165149bc5d654814cb990708e0
+GST_PLUGINS_RS_AWS_SMITHY_CHECKSUMS_0_60_7_URL := https://crates.io/api/v1/crates/aws-smithy-checksums/0.60.7/download
+GST_PLUGINS_RS_AWS_SMITHY_CHECKSUMS_0_60_7_SOURCE := $(SRCDIR)/aws-smithy-checksums-0.60.7.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_SMITHY_CHECKSUMS_0_60_7
+
+GST_PLUGINS_RS_AWS_SMITHY_EVENTSTREAM_0_60_4_MD5 := c85c41c0c952f349e485fb05068384df
+GST_PLUGINS_RS_AWS_SMITHY_EVENTSTREAM_0_60_4_URL := https://crates.io/api/v1/crates/aws-smithy-eventstream/0.60.4/download
+GST_PLUGINS_RS_AWS_SMITHY_EVENTSTREAM_0_60_4_SOURCE := $(SRCDIR)/aws-smithy-eventstream-0.60.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_SMITHY_EVENTSTREAM_0_60_4
+
+GST_PLUGINS_RS_AWS_SMITHY_HTTP_0_60_7_MD5 := 3e055ffbf57f827da59e81f905de333b
+GST_PLUGINS_RS_AWS_SMITHY_HTTP_0_60_7_URL := https://crates.io/api/v1/crates/aws-smithy-http/0.60.7/download
+GST_PLUGINS_RS_AWS_SMITHY_HTTP_0_60_7_SOURCE := $(SRCDIR)/aws-smithy-http-0.60.7.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_SMITHY_HTTP_0_60_7
+
+GST_PLUGINS_RS_AWS_SMITHY_JSON_0_60_7_MD5 := d15378c91526f427ea0780894639bf82
+GST_PLUGINS_RS_AWS_SMITHY_JSON_0_60_7_URL := https://crates.io/api/v1/crates/aws-smithy-json/0.60.7/download
+GST_PLUGINS_RS_AWS_SMITHY_JSON_0_60_7_SOURCE := $(SRCDIR)/aws-smithy-json-0.60.7.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_SMITHY_JSON_0_60_7
+
+GST_PLUGINS_RS_AWS_SMITHY_QUERY_0_60_7_MD5 := f535a84dedd2fad2e2c84f65c8159912
+GST_PLUGINS_RS_AWS_SMITHY_QUERY_0_60_7_URL := https://crates.io/api/v1/crates/aws-smithy-query/0.60.7/download
+GST_PLUGINS_RS_AWS_SMITHY_QUERY_0_60_7_SOURCE := $(SRCDIR)/aws-smithy-query-0.60.7.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_SMITHY_QUERY_0_60_7
+
+GST_PLUGINS_RS_AWS_SMITHY_RUNTIME_1_2_1_MD5 := a325174cded2aba6d9b67b734eac84ab
+GST_PLUGINS_RS_AWS_SMITHY_RUNTIME_1_2_1_URL := https://crates.io/api/v1/crates/aws-smithy-runtime/1.2.1/download
+GST_PLUGINS_RS_AWS_SMITHY_RUNTIME_1_2_1_SOURCE := $(SRCDIR)/aws-smithy-runtime-1.2.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_SMITHY_RUNTIME_1_2_1
+
+GST_PLUGINS_RS_AWS_SMITHY_RUNTIME_API_1_3_0_MD5 := 999fd8221c66b85d4f7c6bba808eef9b
+GST_PLUGINS_RS_AWS_SMITHY_RUNTIME_API_1_3_0_URL := https://crates.io/api/v1/crates/aws-smithy-runtime-api/1.3.0/download
+GST_PLUGINS_RS_AWS_SMITHY_RUNTIME_API_1_3_0_SOURCE := $(SRCDIR)/aws-smithy-runtime-api-1.3.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_SMITHY_RUNTIME_API_1_3_0
+
+GST_PLUGINS_RS_AWS_SMITHY_TYPES_1_1_8_MD5 := c7cc80c8aa216bc87b8fa9a7c6f7926b
+GST_PLUGINS_RS_AWS_SMITHY_TYPES_1_1_8_URL := https://crates.io/api/v1/crates/aws-smithy-types/1.1.8/download
+GST_PLUGINS_RS_AWS_SMITHY_TYPES_1_1_8_SOURCE := $(SRCDIR)/aws-smithy-types-1.1.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_SMITHY_TYPES_1_1_8
+
+GST_PLUGINS_RS_AWS_SMITHY_XML_0_60_7_MD5 := 68936ca45a459df8b4665edae559a63c
+GST_PLUGINS_RS_AWS_SMITHY_XML_0_60_7_URL := https://crates.io/api/v1/crates/aws-smithy-xml/0.60.7/download
+GST_PLUGINS_RS_AWS_SMITHY_XML_0_60_7_SOURCE := $(SRCDIR)/aws-smithy-xml-0.60.7.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_SMITHY_XML_0_60_7
+
+GST_PLUGINS_RS_AWS_TYPES_1_1_8_MD5 := 449894e67e50327b3ebb7d3a9abcbb63
+GST_PLUGINS_RS_AWS_TYPES_1_1_8_URL := https://crates.io/api/v1/crates/aws-types/1.1.8/download
+GST_PLUGINS_RS_AWS_TYPES_1_1_8_SOURCE := $(SRCDIR)/aws-types-1.1.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_AWS_TYPES_1_1_8
+
+GST_PLUGINS_RS_BACKTRACE_0_3_71_MD5 := cacc6bd5d3b1a38d103a212e0dbaebcc
+GST_PLUGINS_RS_BACKTRACE_0_3_71_URL := https://crates.io/api/v1/crates/backtrace/0.3.71/download
+GST_PLUGINS_RS_BACKTRACE_0_3_71_SOURCE := $(SRCDIR)/backtrace-0.3.71.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BACKTRACE_0_3_71
+
+GST_PLUGINS_RS_BASE16CT_0_1_1_MD5 := 8455e3593aaf2e71ad1dafe46ed67a3c
+GST_PLUGINS_RS_BASE16CT_0_1_1_URL := https://crates.io/api/v1/crates/base16ct/0.1.1/download
+GST_PLUGINS_RS_BASE16CT_0_1_1_SOURCE := $(SRCDIR)/base16ct-0.1.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BASE16CT_0_1_1
+
+GST_PLUGINS_RS_BASE32_0_4_0_MD5 := 2745d970dffca62d1f13445387c678e3
+GST_PLUGINS_RS_BASE32_0_4_0_URL := https://crates.io/api/v1/crates/base32/0.4.0/download
+GST_PLUGINS_RS_BASE32_0_4_0_SOURCE := $(SRCDIR)/base32-0.4.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BASE32_0_4_0
+
+GST_PLUGINS_RS_BASE64_0_13_1_MD5 := 3d192a852cb456a965c5d64db624c915
+GST_PLUGINS_RS_BASE64_0_13_1_URL := https://crates.io/api/v1/crates/base64/0.13.1/download
+GST_PLUGINS_RS_BASE64_0_13_1_SOURCE := $(SRCDIR)/base64-0.13.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BASE64_0_13_1
+
+GST_PLUGINS_RS_BASE64_0_21_7_MD5 := 5a5f45206802441161524e1be576da1f
+GST_PLUGINS_RS_BASE64_0_21_7_URL := https://crates.io/api/v1/crates/base64/0.21.7/download
+GST_PLUGINS_RS_BASE64_0_21_7_SOURCE := $(SRCDIR)/base64-0.21.7.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BASE64_0_21_7
+
+GST_PLUGINS_RS_BASE64_0_22_0_MD5 := 2b85559c818ca984fc61f5e7ef3ccf24
+GST_PLUGINS_RS_BASE64_0_22_0_URL := https://crates.io/api/v1/crates/base64/0.22.0/download
+GST_PLUGINS_RS_BASE64_0_22_0_SOURCE := $(SRCDIR)/base64-0.22.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BASE64_0_22_0
+
+GST_PLUGINS_RS_BASE64_SERDE_0_7_0_MD5 := 6e7e86a89b0d0c7437a59a2b8f94c099
+GST_PLUGINS_RS_BASE64_SERDE_0_7_0_URL := https://crates.io/api/v1/crates/base64-serde/0.7.0/download
+GST_PLUGINS_RS_BASE64_SERDE_0_7_0_SOURCE := $(SRCDIR)/base64-serde-0.7.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BASE64_SERDE_0_7_0
+
+GST_PLUGINS_RS_BASE64_SIMD_0_8_0_MD5 := 01d2513b275ae4baacd5d31ede2ef71c
+GST_PLUGINS_RS_BASE64_SIMD_0_8_0_URL := https://crates.io/api/v1/crates/base64-simd/0.8.0/download
+GST_PLUGINS_RS_BASE64_SIMD_0_8_0_SOURCE := $(SRCDIR)/base64-simd-0.8.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BASE64_SIMD_0_8_0
+
+GST_PLUGINS_RS_BASE64CT_1_6_0_MD5 := bd4c0e123b65937461c135ff7030a44e
+GST_PLUGINS_RS_BASE64CT_1_6_0_URL := https://crates.io/api/v1/crates/base64ct/1.6.0/download
+GST_PLUGINS_RS_BASE64CT_1_6_0_SOURCE := $(SRCDIR)/base64ct-1.6.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BASE64CT_1_6_0
+
+GST_PLUGINS_RS_BINCODE_1_3_3_MD5 := b9beac7e75b4986031a89562c26eb553
+GST_PLUGINS_RS_BINCODE_1_3_3_URL := https://crates.io/api/v1/crates/bincode/1.3.3/download
+GST_PLUGINS_RS_BINCODE_1_3_3_SOURCE := $(SRCDIR)/bincode-1.3.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BINCODE_1_3_3
+
+GST_PLUGINS_RS_BITFLAGS_1_3_2_MD5 := a295edb6953237ebbdfa8e731229f9a3
+GST_PLUGINS_RS_BITFLAGS_1_3_2_URL := https://crates.io/api/v1/crates/bitflags/1.3.2/download
+GST_PLUGINS_RS_BITFLAGS_1_3_2_SOURCE := $(SRCDIR)/bitflags-1.3.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BITFLAGS_1_3_2
+
+GST_PLUGINS_RS_BITFLAGS_2_5_0_MD5 := f3406374808b01be3a263666aa9aa2f5
+GST_PLUGINS_RS_BITFLAGS_2_5_0_URL := https://crates.io/api/v1/crates/bitflags/2.5.0/download
+GST_PLUGINS_RS_BITFLAGS_2_5_0_SOURCE := $(SRCDIR)/bitflags-2.5.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BITFLAGS_2_5_0
+
+GST_PLUGINS_RS_BITSTREAM_IO_2_2_0_MD5 := e5c11658b166fd63536c18febc5a0cc8
+GST_PLUGINS_RS_BITSTREAM_IO_2_2_0_URL := https://crates.io/api/v1/crates/bitstream-io/2.2.0/download
+GST_PLUGINS_RS_BITSTREAM_IO_2_2_0_SOURCE := $(SRCDIR)/bitstream-io-2.2.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BITSTREAM_IO_2_2_0
+
+GST_PLUGINS_RS_BLOCK_BUFFER_0_9_0_MD5 := c7fbaf61245dc847237ab7c72b3ee9ea
+GST_PLUGINS_RS_BLOCK_BUFFER_0_9_0_URL := https://crates.io/api/v1/crates/block-buffer/0.9.0/download
+GST_PLUGINS_RS_BLOCK_BUFFER_0_9_0_SOURCE := $(SRCDIR)/block-buffer-0.9.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BLOCK_BUFFER_0_9_0
+
+GST_PLUGINS_RS_BLOCK_BUFFER_0_10_4_MD5 := 023b03cf9968b29253a5dfe62051008d
+GST_PLUGINS_RS_BLOCK_BUFFER_0_10_4_URL := https://crates.io/api/v1/crates/block-buffer/0.10.4/download
+GST_PLUGINS_RS_BLOCK_BUFFER_0_10_4_SOURCE := $(SRCDIR)/block-buffer-0.10.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BLOCK_BUFFER_0_10_4
+
+GST_PLUGINS_RS_BSTR_1_9_1_MD5 := db089af54479a055c39ca84bcf915f27
+GST_PLUGINS_RS_BSTR_1_9_1_URL := https://crates.io/api/v1/crates/bstr/1.9.1/download
+GST_PLUGINS_RS_BSTR_1_9_1_SOURCE := $(SRCDIR)/bstr-1.9.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BSTR_1_9_1
+
+GST_PLUGINS_RS_BUILD_CONST_0_2_2_MD5 := 1a73e44aa9003ad4bb8af113192a7aed
+GST_PLUGINS_RS_BUILD_CONST_0_2_2_URL := https://crates.io/api/v1/crates/build_const/0.2.2/download
+GST_PLUGINS_RS_BUILD_CONST_0_2_2_SOURCE := $(SRCDIR)/build_const-0.2.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BUILD_CONST_0_2_2
+
+GST_PLUGINS_RS_BUILT_0_7_1_MD5 := e65a89875d146a27ac9b4be1746288cc
+GST_PLUGINS_RS_BUILT_0_7_1_URL := https://crates.io/api/v1/crates/built/0.7.1/download
+GST_PLUGINS_RS_BUILT_0_7_1_SOURCE := $(SRCDIR)/built-0.7.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BUILT_0_7_1
+
+GST_PLUGINS_RS_BUMPALO_3_15_4_MD5 := 04420ad0e34cf71c5dd4e473934f8e54
+GST_PLUGINS_RS_BUMPALO_3_15_4_URL := https://crates.io/api/v1/crates/bumpalo/3.15.4/download
+GST_PLUGINS_RS_BUMPALO_3_15_4_SOURCE := $(SRCDIR)/bumpalo-3.15.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BUMPALO_3_15_4
+
+GST_PLUGINS_RS_BYTE_SLICE_CAST_1_2_2_MD5 := f69e0cbdeb5c8feab9630d75c4f91906
+GST_PLUGINS_RS_BYTE_SLICE_CAST_1_2_2_URL := https://crates.io/api/v1/crates/byte-slice-cast/1.2.2/download
+GST_PLUGINS_RS_BYTE_SLICE_CAST_1_2_2_SOURCE := $(SRCDIR)/byte-slice-cast-1.2.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BYTE_SLICE_CAST_1_2_2
+
+GST_PLUGINS_RS_BYTEMUCK_1_15_0_MD5 := 74970f806fd0f2ab972f077ee2b7e5d7
+GST_PLUGINS_RS_BYTEMUCK_1_15_0_URL := https://crates.io/api/v1/crates/bytemuck/1.15.0/download
+GST_PLUGINS_RS_BYTEMUCK_1_15_0_SOURCE := $(SRCDIR)/bytemuck-1.15.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BYTEMUCK_1_15_0
+
+GST_PLUGINS_RS_BYTEORDER_1_5_0_MD5 := 45339d90b2b3a4f123af5ec459954102
+GST_PLUGINS_RS_BYTEORDER_1_5_0_URL := https://crates.io/api/v1/crates/byteorder/1.5.0/download
+GST_PLUGINS_RS_BYTEORDER_1_5_0_SOURCE := $(SRCDIR)/byteorder-1.5.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BYTEORDER_1_5_0
+
+GST_PLUGINS_RS_BYTES_1_6_0_MD5 := 722cab9ebe9eb019d5c3b400325de876
+GST_PLUGINS_RS_BYTES_1_6_0_URL := https://crates.io/api/v1/crates/bytes/1.6.0/download
+GST_PLUGINS_RS_BYTES_1_6_0_SOURCE := $(SRCDIR)/bytes-1.6.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BYTES_1_6_0
+
+GST_PLUGINS_RS_BYTES_UTILS_0_1_4_MD5 := 7895778ede1d810b824eaa51bfcd0fa1
+GST_PLUGINS_RS_BYTES_UTILS_0_1_4_URL := https://crates.io/api/v1/crates/bytes-utils/0.1.4/download
+GST_PLUGINS_RS_BYTES_UTILS_0_1_4_SOURCE := $(SRCDIR)/bytes-utils-0.1.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_BYTES_UTILS_0_1_4
+
+GST_PLUGINS_RS_GTK_RS_CORE_0_19_3_MD5 := c4f80ccb41170c1cf98856b5870f913f
+GST_PLUGINS_RS_GTK_RS_CORE_0_19_3_URL := git+https://github.com/gtk-rs/gtk-rs-core;tag=5e944f2eff8b344591666754f7ea3b359943ee8c
+GST_PLUGINS_RS_GTK_RS_CORE_0_19_3_SOURCE := $(SRCDIR)/gtk-rs-core-0.19.3+5e944f2eff8b.git.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_GTK_RS_CORE_0_19_3
+
+GST_PLUGINS_RS_CC_1_0_91_MD5 := 92e8dc1ec20746ff33ac7850678d456f
+GST_PLUGINS_RS_CC_1_0_91_URL := https://crates.io/api/v1/crates/cc/1.0.91/download
+GST_PLUGINS_RS_CC_1_0_91_SOURCE := $(SRCDIR)/cc-1.0.91.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CC_1_0_91
+
+GST_PLUGINS_RS_CDG_0_1_0_MD5 := 140d9bf81d91078eb485f305b423ef68
+GST_PLUGINS_RS_CDG_0_1_0_URL := https://crates.io/api/v1/crates/cdg/0.1.0/download
+GST_PLUGINS_RS_CDG_0_1_0_SOURCE := $(SRCDIR)/cdg-0.1.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CDG_0_1_0
+
+GST_PLUGINS_RS_CDG_RENDERER_0_7_1_MD5 := c68d3d018e353290ceddb3b0a4f4a007
+GST_PLUGINS_RS_CDG_RENDERER_0_7_1_URL := https://crates.io/api/v1/crates/cdg_renderer/0.7.1/download
+GST_PLUGINS_RS_CDG_RENDERER_0_7_1_SOURCE := $(SRCDIR)/cdg_renderer-0.7.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CDG_RENDERER_0_7_1
+
+GST_PLUGINS_RS_CEA708_TYPES_0_3_1_MD5 := 1ef00ae853c12cebe5ed4b0437838db0
+GST_PLUGINS_RS_CEA708_TYPES_0_3_1_URL := https://crates.io/api/v1/crates/cea708-types/0.3.1/download
+GST_PLUGINS_RS_CEA708_TYPES_0_3_1_SOURCE := $(SRCDIR)/cea708-types-0.3.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CEA708_TYPES_0_3_1
+
+GST_PLUGINS_RS_CFG_EXPR_0_15_7_MD5 := a035a249c6cd89d35f8e2f576be8cd7c
+GST_PLUGINS_RS_CFG_EXPR_0_15_7_URL := https://crates.io/api/v1/crates/cfg-expr/0.15.7/download
+GST_PLUGINS_RS_CFG_EXPR_0_15_7_SOURCE := $(SRCDIR)/cfg-expr-0.15.7.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CFG_EXPR_0_15_7
+
+GST_PLUGINS_RS_CFG_IF_1_0_0_MD5 := 74634128440dbc3766bda76fdf0aaa05
+GST_PLUGINS_RS_CFG_IF_1_0_0_URL := https://crates.io/api/v1/crates/cfg-if/1.0.0/download
+GST_PLUGINS_RS_CFG_IF_1_0_0_SOURCE := $(SRCDIR)/cfg-if-1.0.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CFG_IF_1_0_0
+
+GST_PLUGINS_RS_CHRONO_0_4_37_MD5 := 711d6e30892f86c6c7304a786244def8
+GST_PLUGINS_RS_CHRONO_0_4_37_URL := https://crates.io/api/v1/crates/chrono/0.4.37/download
+GST_PLUGINS_RS_CHRONO_0_4_37_SOURCE := $(SRCDIR)/chrono-0.4.37.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CHRONO_0_4_37
+
+GST_PLUGINS_RS_CIPHER_0_2_5_MD5 := 5184822d3fd9f30dfa4bc922ffa4143c
+GST_PLUGINS_RS_CIPHER_0_2_5_URL := https://crates.io/api/v1/crates/cipher/0.2.5/download
+GST_PLUGINS_RS_CIPHER_0_2_5_SOURCE := $(SRCDIR)/cipher-0.2.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CIPHER_0_2_5
+
+GST_PLUGINS_RS_CLAP_4_4_18_MD5 := 6230cff5fdde45d45e4aa7090a42d433
+GST_PLUGINS_RS_CLAP_4_4_18_URL := https://crates.io/api/v1/crates/clap/4.4.18/download
+GST_PLUGINS_RS_CLAP_4_4_18_SOURCE := $(SRCDIR)/clap-4.4.18.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CLAP_4_4_18
+
+GST_PLUGINS_RS_CLAP_BUILDER_4_4_18_MD5 := b61d730801d64819497125178ed37d95
+GST_PLUGINS_RS_CLAP_BUILDER_4_4_18_URL := https://crates.io/api/v1/crates/clap_builder/4.4.18/download
+GST_PLUGINS_RS_CLAP_BUILDER_4_4_18_SOURCE := $(SRCDIR)/clap_builder-4.4.18.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CLAP_BUILDER_4_4_18
+
+GST_PLUGINS_RS_CLAP_DERIVE_4_4_7_MD5 := 08b9a34eadbb01ac16e36694e53eb254
+GST_PLUGINS_RS_CLAP_DERIVE_4_4_7_URL := https://crates.io/api/v1/crates/clap_derive/4.4.7/download
+GST_PLUGINS_RS_CLAP_DERIVE_4_4_7_SOURCE := $(SRCDIR)/clap_derive-4.4.7.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CLAP_DERIVE_4_4_7
+
+GST_PLUGINS_RS_CLAP_LEX_0_6_0_MD5 := 8f177f61a37d63f805acb925b30a0e58
+GST_PLUGINS_RS_CLAP_LEX_0_6_0_URL := https://crates.io/api/v1/crates/clap_lex/0.6.0/download
+GST_PLUGINS_RS_CLAP_LEX_0_6_0_SOURCE := $(SRCDIR)/clap_lex-0.6.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CLAP_LEX_0_6_0
+
+GST_PLUGINS_RS_CLAXON_0_4_3_MD5 := a65ca49be667184156f4fe14dc93ff49
+GST_PLUGINS_RS_CLAXON_0_4_3_URL := https://crates.io/api/v1/crates/claxon/0.4.3/download
+GST_PLUGINS_RS_CLAXON_0_4_3_SOURCE := $(SRCDIR)/claxon-0.4.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CLAXON_0_4_3
+
+GST_PLUGINS_RS_COLOR_NAME_1_1_0_MD5 := b32e5c0a3c9d4187eb139df2652aa0e6
+GST_PLUGINS_RS_COLOR_NAME_1_1_0_URL := https://crates.io/api/v1/crates/color-name/1.1.0/download
+GST_PLUGINS_RS_COLOR_NAME_1_1_0_SOURCE := $(SRCDIR)/color-name-1.1.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_COLOR_NAME_1_1_0
+
+GST_PLUGINS_RS_COLOR_THIEF_0_2_2_MD5 := e6d79b8dfca026ff5c19abdd4ff3e12a
+GST_PLUGINS_RS_COLOR_THIEF_0_2_2_URL := https://crates.io/api/v1/crates/color-thief/0.2.2/download
+GST_PLUGINS_RS_COLOR_THIEF_0_2_2_SOURCE := $(SRCDIR)/color-thief-0.2.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_COLOR_THIEF_0_2_2
+
+GST_PLUGINS_RS_COLOR_QUANT_1_1_0_MD5 := ee1260862a62c0d8824b664a1abda7b8
+GST_PLUGINS_RS_COLOR_QUANT_1_1_0_URL := https://crates.io/api/v1/crates/color_quant/1.1.0/download
+GST_PLUGINS_RS_COLOR_QUANT_1_1_0_SOURCE := $(SRCDIR)/color_quant-1.1.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_COLOR_QUANT_1_1_0
+
+GST_PLUGINS_RS_COLORCHOICE_1_0_0_MD5 := 010f6d0e98cc2a2b99907a23c6cd6bbc
+GST_PLUGINS_RS_COLORCHOICE_1_0_0_URL := https://crates.io/api/v1/crates/colorchoice/1.0.0/download
+GST_PLUGINS_RS_COLORCHOICE_1_0_0_SOURCE := $(SRCDIR)/colorchoice-1.0.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_COLORCHOICE_1_0_0
+
+GST_PLUGINS_RS_CONCURRENT_QUEUE_2_4_0_MD5 := 59e2ac3afb27356dae5b252b6792e73c
+GST_PLUGINS_RS_CONCURRENT_QUEUE_2_4_0_URL := https://crates.io/api/v1/crates/concurrent-queue/2.4.0/download
+GST_PLUGINS_RS_CONCURRENT_QUEUE_2_4_0_SOURCE := $(SRCDIR)/concurrent-queue-2.4.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CONCURRENT_QUEUE_2_4_0
+
+GST_PLUGINS_RS_CONST_OID_0_9_6_MD5 := 6ed0aab506ad1ec23e34c6aec4efd1d7
+GST_PLUGINS_RS_CONST_OID_0_9_6_URL := https://crates.io/api/v1/crates/const-oid/0.9.6/download
+GST_PLUGINS_RS_CONST_OID_0_9_6_SOURCE := $(SRCDIR)/const-oid-0.9.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CONST_OID_0_9_6
+
+GST_PLUGINS_RS_COOKIE_0_17_0_MD5 := 4254d3926f37c740bf561723fdb67c5f
+GST_PLUGINS_RS_COOKIE_0_17_0_URL := https://crates.io/api/v1/crates/cookie/0.17.0/download
+GST_PLUGINS_RS_COOKIE_0_17_0_SOURCE := $(SRCDIR)/cookie-0.17.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_COOKIE_0_17_0
+
+GST_PLUGINS_RS_COOKIE_FACTORY_0_3_3_MD5 := a9df8cec8c65c4321133c1e9e1a2e9f8
+GST_PLUGINS_RS_COOKIE_FACTORY_0_3_3_URL := https://crates.io/api/v1/crates/cookie-factory/0.3.3/download
+GST_PLUGINS_RS_COOKIE_FACTORY_0_3_3_SOURCE := $(SRCDIR)/cookie-factory-0.3.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_COOKIE_FACTORY_0_3_3
+
+GST_PLUGINS_RS_COOKIE_STORE_0_20_0_MD5 := ab62201369a3a5a80b6c37d29d2ec4af
+GST_PLUGINS_RS_COOKIE_STORE_0_20_0_URL := https://crates.io/api/v1/crates/cookie_store/0.20.0/download
+GST_PLUGINS_RS_COOKIE_STORE_0_20_0_SOURCE := $(SRCDIR)/cookie_store-0.20.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_COOKIE_STORE_0_20_0
+
+GST_PLUGINS_RS_CORE_FOUNDATION_0_9_4_MD5 := 4d7e3bc6c42f8a875a87246ed14d9948
+GST_PLUGINS_RS_CORE_FOUNDATION_0_9_4_URL := https://crates.io/api/v1/crates/core-foundation/0.9.4/download
+GST_PLUGINS_RS_CORE_FOUNDATION_0_9_4_SOURCE := $(SRCDIR)/core-foundation-0.9.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CORE_FOUNDATION_0_9_4
+
+GST_PLUGINS_RS_CORE_FOUNDATION_SYS_0_8_6_MD5 := d7624e4ff046ae83eda8e82d90887bdb
+GST_PLUGINS_RS_CORE_FOUNDATION_SYS_0_8_6_URL := https://crates.io/api/v1/crates/core-foundation-sys/0.8.6/download
+GST_PLUGINS_RS_CORE_FOUNDATION_SYS_0_8_6_SOURCE := $(SRCDIR)/core-foundation-sys-0.8.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CORE_FOUNDATION_SYS_0_8_6
+
+GST_PLUGINS_RS_CPUFEATURES_0_2_12_MD5 := 162407e4c09897085d00344230f375a0
+GST_PLUGINS_RS_CPUFEATURES_0_2_12_URL := https://crates.io/api/v1/crates/cpufeatures/0.2.12/download
+GST_PLUGINS_RS_CPUFEATURES_0_2_12_SOURCE := $(SRCDIR)/cpufeatures-0.2.12.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CPUFEATURES_0_2_12
+
+GST_PLUGINS_RS_CRC_1_8_1_MD5 := c07d2bd46a0fb313b00d1241e6024527
+GST_PLUGINS_RS_CRC_1_8_1_URL := https://crates.io/api/v1/crates/crc/1.8.1/download
+GST_PLUGINS_RS_CRC_1_8_1_SOURCE := $(SRCDIR)/crc-1.8.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CRC_1_8_1
+
+GST_PLUGINS_RS_CRC32C_0_6_5_MD5 := 8dd8161de2ab9d5399f66482d89033e5
+GST_PLUGINS_RS_CRC32C_0_6_5_URL := https://crates.io/api/v1/crates/crc32c/0.6.5/download
+GST_PLUGINS_RS_CRC32C_0_6_5_SOURCE := $(SRCDIR)/crc32c-0.6.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CRC32C_0_6_5
+
+GST_PLUGINS_RS_CRC32FAST_1_4_0_MD5 := 2cdf6f26459b770f7cf497cfba8eb5d4
+GST_PLUGINS_RS_CRC32FAST_1_4_0_URL := https://crates.io/api/v1/crates/crc32fast/1.4.0/download
+GST_PLUGINS_RS_CRC32FAST_1_4_0_SOURCE := $(SRCDIR)/crc32fast-1.4.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CRC32FAST_1_4_0
+
+GST_PLUGINS_RS_CROSSBEAM_CHANNEL_0_5_12_MD5 := 86c345cb693c291362662b0eb437af89
+GST_PLUGINS_RS_CROSSBEAM_CHANNEL_0_5_12_URL := https://crates.io/api/v1/crates/crossbeam-channel/0.5.12/download
+GST_PLUGINS_RS_CROSSBEAM_CHANNEL_0_5_12_SOURCE := $(SRCDIR)/crossbeam-channel-0.5.12.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CROSSBEAM_CHANNEL_0_5_12
+
+GST_PLUGINS_RS_CROSSBEAM_DEQUE_0_8_5_MD5 := 396f4f63322338c26d76b2f638646178
+GST_PLUGINS_RS_CROSSBEAM_DEQUE_0_8_5_URL := https://crates.io/api/v1/crates/crossbeam-deque/0.8.5/download
+GST_PLUGINS_RS_CROSSBEAM_DEQUE_0_8_5_SOURCE := $(SRCDIR)/crossbeam-deque-0.8.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CROSSBEAM_DEQUE_0_8_5
+
+GST_PLUGINS_RS_CROSSBEAM_EPOCH_0_9_18_MD5 := 44505199ec0964feb5488051b4ac92d5
+GST_PLUGINS_RS_CROSSBEAM_EPOCH_0_9_18_URL := https://crates.io/api/v1/crates/crossbeam-epoch/0.9.18/download
+GST_PLUGINS_RS_CROSSBEAM_EPOCH_0_9_18_SOURCE := $(SRCDIR)/crossbeam-epoch-0.9.18.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CROSSBEAM_EPOCH_0_9_18
+
+GST_PLUGINS_RS_CROSSBEAM_UTILS_0_8_19_MD5 := 398f4cce1d3067cc7a56662e52a33384
+GST_PLUGINS_RS_CROSSBEAM_UTILS_0_8_19_URL := https://crates.io/api/v1/crates/crossbeam-utils/0.8.19/download
+GST_PLUGINS_RS_CROSSBEAM_UTILS_0_8_19_SOURCE := $(SRCDIR)/crossbeam-utils-0.8.19.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CROSSBEAM_UTILS_0_8_19
+
+GST_PLUGINS_RS_CRYPTO_BIGINT_0_4_9_MD5 := c61e055235673ee15f1f5be3cb070f2c
+GST_PLUGINS_RS_CRYPTO_BIGINT_0_4_9_URL := https://crates.io/api/v1/crates/crypto-bigint/0.4.9/download
+GST_PLUGINS_RS_CRYPTO_BIGINT_0_4_9_SOURCE := $(SRCDIR)/crypto-bigint-0.4.9.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CRYPTO_BIGINT_0_4_9
+
+GST_PLUGINS_RS_CRYPTO_BIGINT_0_5_5_MD5 := d2695f81f5e7b7a44da337b59c56b363
+GST_PLUGINS_RS_CRYPTO_BIGINT_0_5_5_URL := https://crates.io/api/v1/crates/crypto-bigint/0.5.5/download
+GST_PLUGINS_RS_CRYPTO_BIGINT_0_5_5_SOURCE := $(SRCDIR)/crypto-bigint-0.5.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CRYPTO_BIGINT_0_5_5
+
+GST_PLUGINS_RS_CRYPTO_COMMON_0_1_6_MD5 := 89e88633cab0e4b6f3d3878b84dffe8b
+GST_PLUGINS_RS_CRYPTO_COMMON_0_1_6_URL := https://crates.io/api/v1/crates/crypto-common/0.1.6/download
+GST_PLUGINS_RS_CRYPTO_COMMON_0_1_6_SOURCE := $(SRCDIR)/crypto-common-0.1.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CRYPTO_COMMON_0_1_6
+
+GST_PLUGINS_RS_CRYPTO_MAC_0_11_0_MD5 := b5ed9e6cba2e9f9e38cd541d780443cc
+GST_PLUGINS_RS_CRYPTO_MAC_0_11_0_URL := https://crates.io/api/v1/crates/crypto-mac/0.11.0/download
+GST_PLUGINS_RS_CRYPTO_MAC_0_11_0_SOURCE := $(SRCDIR)/crypto-mac-0.11.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CRYPTO_MAC_0_11_0
+
+GST_PLUGINS_RS_CSOUND_0_1_8_MD5 := 2e959f523a51aa1749ae8c4af1379283
+GST_PLUGINS_RS_CSOUND_0_1_8_URL := https://crates.io/api/v1/crates/csound/0.1.8/download
+GST_PLUGINS_RS_CSOUND_0_1_8_SOURCE := $(SRCDIR)/csound-0.1.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CSOUND_0_1_8
+
+GST_PLUGINS_RS_CSOUND_SYS_0_1_2_MD5 := a25f8aaee3669b134a365ea938089f77
+GST_PLUGINS_RS_CSOUND_SYS_0_1_2_URL := https://crates.io/api/v1/crates/csound-sys/0.1.2/download
+GST_PLUGINS_RS_CSOUND_SYS_0_1_2_SOURCE := $(SRCDIR)/csound-sys-0.1.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CSOUND_SYS_0_1_2
+
+GST_PLUGINS_RS_CTR_0_6_0_MD5 := cf52970ee52905ad114b93571dd9c6c6
+GST_PLUGINS_RS_CTR_0_6_0_URL := https://crates.io/api/v1/crates/ctr/0.6.0/download
+GST_PLUGINS_RS_CTR_0_6_0_SOURCE := $(SRCDIR)/ctr-0.6.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_CTR_0_6_0
+
+GST_PLUGINS_RS_DARLING_0_20_8_MD5 := a57b172b0efb7ad6cf912bd1115c9ead
+GST_PLUGINS_RS_DARLING_0_20_8_URL := https://crates.io/api/v1/crates/darling/0.20.8/download
+GST_PLUGINS_RS_DARLING_0_20_8_SOURCE := $(SRCDIR)/darling-0.20.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_DARLING_0_20_8
+
+GST_PLUGINS_RS_DARLING_CORE_0_20_8_MD5 := 2835935ca9cffd61ab5ed931cf11aa00
+GST_PLUGINS_RS_DARLING_CORE_0_20_8_URL := https://crates.io/api/v1/crates/darling_core/0.20.8/download
+GST_PLUGINS_RS_DARLING_CORE_0_20_8_SOURCE := $(SRCDIR)/darling_core-0.20.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_DARLING_CORE_0_20_8
+
+GST_PLUGINS_RS_DARLING_MACRO_0_20_8_MD5 := c8419b154d047b3b874ee0b90b0f7413
+GST_PLUGINS_RS_DARLING_MACRO_0_20_8_URL := https://crates.io/api/v1/crates/darling_macro/0.20.8/download
+GST_PLUGINS_RS_DARLING_MACRO_0_20_8_SOURCE := $(SRCDIR)/darling_macro-0.20.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_DARLING_MACRO_0_20_8
+
+GST_PLUGINS_RS_DASH_MPD_0_16_0_MD5 := c79468364d268cf11ca203ed026e13a2
+GST_PLUGINS_RS_DASH_MPD_0_16_0_URL := https://crates.io/api/v1/crates/dash-mpd/0.16.0/download
+GST_PLUGINS_RS_DASH_MPD_0_16_0_SOURCE := $(SRCDIR)/dash-mpd-0.16.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_DASH_MPD_0_16_0
+
+GST_PLUGINS_RS_DASHMAP_5_5_3_MD5 := 7bb48920721b07af916c63b6c594012f
+GST_PLUGINS_RS_DASHMAP_5_5_3_URL := https://crates.io/api/v1/crates/dashmap/5.5.3/download
+GST_PLUGINS_RS_DASHMAP_5_5_3_SOURCE := $(SRCDIR)/dashmap-5.5.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_DASHMAP_5_5_3
+
+GST_PLUGINS_RS_DASP_FRAME_0_11_0_MD5 := 5f079197b9be58c0eaa24213d75b2793
+GST_PLUGINS_RS_DASP_FRAME_0_11_0_URL := https://crates.io/api/v1/crates/dasp_frame/0.11.0/download
+GST_PLUGINS_RS_DASP_FRAME_0_11_0_SOURCE := $(SRCDIR)/dasp_frame-0.11.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_DASP_FRAME_0_11_0
+
+GST_PLUGINS_RS_DASP_SAMPLE_0_11_0_MD5 := 6eab5f634114223f7b84615fc46458c2
+GST_PLUGINS_RS_DASP_SAMPLE_0_11_0_URL := https://crates.io/api/v1/crates/dasp_sample/0.11.0/download
+GST_PLUGINS_RS_DASP_SAMPLE_0_11_0_SOURCE := $(SRCDIR)/dasp_sample-0.11.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_DASP_SAMPLE_0_11_0
+
+GST_PLUGINS_RS_DATA_ENCODING_2_5_0_MD5 := 51773970fa42f802815cb95b727d368d
+GST_PLUGINS_RS_DATA_ENCODING_2_5_0_URL := https://crates.io/api/v1/crates/data-encoding/2.5.0/download
+GST_PLUGINS_RS_DATA_ENCODING_2_5_0_SOURCE := $(SRCDIR)/data-encoding-2.5.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_DATA_ENCODING_2_5_0
+
+GST_PLUGINS_RS_DAV1D_0_9_6_MD5 := 08b471c1627203b48c84c3145039641f
+GST_PLUGINS_RS_DAV1D_0_9_6_URL := https://crates.io/api/v1/crates/dav1d/0.9.6/download
+GST_PLUGINS_RS_DAV1D_0_9_6_SOURCE := $(SRCDIR)/dav1d-0.9.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_DAV1D_0_9_6
+
+GST_PLUGINS_RS_DAV1D_SYS_0_7_3_MD5 := 75087c15612b1aecf46df92f9a8eb02f
+GST_PLUGINS_RS_DAV1D_SYS_0_7_3_URL := https://crates.io/api/v1/crates/dav1d-sys/0.7.3/download
+GST_PLUGINS_RS_DAV1D_SYS_0_7_3_SOURCE := $(SRCDIR)/dav1d-sys-0.7.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_DAV1D_SYS_0_7_3
+
+GST_PLUGINS_RS_DER_0_6_1_MD5 := fee14f852bfbbc2b0f92abe26a987bd7
+GST_PLUGINS_RS_DER_0_6_1_URL := https://crates.io/api/v1/crates/der/0.6.1/download
+GST_PLUGINS_RS_DER_0_6_1_SOURCE := $(SRCDIR)/der-0.6.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_DER_0_6_1
+
+GST_PLUGINS_RS_DERANGED_0_3_11_MD5 := d022bc79e1931c2bd4ebbe65cf3d2309
+GST_PLUGINS_RS_DERANGED_0_3_11_URL := https://crates.io/api/v1/crates/deranged/0.3.11/download
+GST_PLUGINS_RS_DERANGED_0_3_11_SOURCE := $(SRCDIR)/deranged-0.3.11.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_DERANGED_0_3_11
+
+GST_PLUGINS_RS_DIFF_0_1_13_MD5 := 434e2423f372fed80f69ed8873fdd2a3
+GST_PLUGINS_RS_DIFF_0_1_13_URL := https://crates.io/api/v1/crates/diff/0.1.13/download
+GST_PLUGINS_RS_DIFF_0_1_13_SOURCE := $(SRCDIR)/diff-0.1.13.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_DIFF_0_1_13
+
+GST_PLUGINS_RS_DIGEST_0_9_0_MD5 := 493a2f042d86baa5c6bac75202c64554
+GST_PLUGINS_RS_DIGEST_0_9_0_URL := https://crates.io/api/v1/crates/digest/0.9.0/download
+GST_PLUGINS_RS_DIGEST_0_9_0_SOURCE := $(SRCDIR)/digest-0.9.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_DIGEST_0_9_0
+
+GST_PLUGINS_RS_DIGEST_0_10_7_MD5 := 3d62bfbbe08bdcee55fcb8cda85554d9
+GST_PLUGINS_RS_DIGEST_0_10_7_URL := https://crates.io/api/v1/crates/digest/0.10.7/download
+GST_PLUGINS_RS_DIGEST_0_10_7_SOURCE := $(SRCDIR)/digest-0.10.7.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_DIGEST_0_10_7
+
+GST_PLUGINS_RS_DSSIM_CORE_3_2_8_MD5 := 20768fcde9cb095a589e1d5c43a02126
+GST_PLUGINS_RS_DSSIM_CORE_3_2_8_URL := https://crates.io/api/v1/crates/dssim-core/3.2.8/download
+GST_PLUGINS_RS_DSSIM_CORE_3_2_8_SOURCE := $(SRCDIR)/dssim-core-3.2.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_DSSIM_CORE_3_2_8
+
+GST_PLUGINS_RS_EBUR128_0_1_8_MD5 := 83c99a41ecdaee96b273c34d18ac5734
+GST_PLUGINS_RS_EBUR128_0_1_8_URL := https://crates.io/api/v1/crates/ebur128/0.1.8/download
+GST_PLUGINS_RS_EBUR128_0_1_8_SOURCE := $(SRCDIR)/ebur128-0.1.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_EBUR128_0_1_8
+
+GST_PLUGINS_RS_ECDSA_0_14_8_MD5 := 6527a7fcb43b9678957946313a148b29
+GST_PLUGINS_RS_ECDSA_0_14_8_URL := https://crates.io/api/v1/crates/ecdsa/0.14.8/download
+GST_PLUGINS_RS_ECDSA_0_14_8_SOURCE := $(SRCDIR)/ecdsa-0.14.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ECDSA_0_14_8
+
+GST_PLUGINS_RS_ED25519_1_5_3_MD5 := 696721936b4c3ba28adad538e1574b58
+GST_PLUGINS_RS_ED25519_1_5_3_URL := https://crates.io/api/v1/crates/ed25519/1.5.3/download
+GST_PLUGINS_RS_ED25519_1_5_3_SOURCE := $(SRCDIR)/ed25519-1.5.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ED25519_1_5_3
+
+GST_PLUGINS_RS_EITHER_1_10_0_MD5 := cfa0423cdca197fe5e67129d7e0bb6a8
+GST_PLUGINS_RS_EITHER_1_10_0_URL := https://crates.io/api/v1/crates/either/1.10.0/download
+GST_PLUGINS_RS_EITHER_1_10_0_SOURCE := $(SRCDIR)/either-1.10.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_EITHER_1_10_0
+
+GST_PLUGINS_RS_ELLIPTIC_CURVE_0_12_3_MD5 := 9ebc1e7e34f00011e1b4a10489e0e2ab
+GST_PLUGINS_RS_ELLIPTIC_CURVE_0_12_3_URL := https://crates.io/api/v1/crates/elliptic-curve/0.12.3/download
+GST_PLUGINS_RS_ELLIPTIC_CURVE_0_12_3_SOURCE := $(SRCDIR)/elliptic-curve-0.12.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ELLIPTIC_CURVE_0_12_3
+
+GST_PLUGINS_RS_ENCODING_RS_0_8_33_MD5 := 5f9a3a8b7213c055342b2f423a213b3a
+GST_PLUGINS_RS_ENCODING_RS_0_8_33_URL := https://crates.io/api/v1/crates/encoding_rs/0.8.33/download
+GST_PLUGINS_RS_ENCODING_RS_0_8_33_SOURCE := $(SRCDIR)/encoding_rs-0.8.33.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ENCODING_RS_0_8_33
+
+GST_PLUGINS_RS_ENV_LOGGER_0_9_3_MD5 := c25e1a69f2d40b3f6f8dae4b4459413d
+GST_PLUGINS_RS_ENV_LOGGER_0_9_3_URL := https://crates.io/api/v1/crates/env_logger/0.9.3/download
+GST_PLUGINS_RS_ENV_LOGGER_0_9_3_SOURCE := $(SRCDIR)/env_logger-0.9.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ENV_LOGGER_0_9_3
+
+GST_PLUGINS_RS_ENV_LOGGER_0_10_2_MD5 := 955bb3f01413f4ea8fbaf6a523890178
+GST_PLUGINS_RS_ENV_LOGGER_0_10_2_URL := https://crates.io/api/v1/crates/env_logger/0.10.2/download
+GST_PLUGINS_RS_ENV_LOGGER_0_10_2_SOURCE := $(SRCDIR)/env_logger-0.10.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ENV_LOGGER_0_10_2
+
+GST_PLUGINS_RS_EQUIVALENT_1_0_1_MD5 := bdf329a72ecd0605c296f25e53136706
+GST_PLUGINS_RS_EQUIVALENT_1_0_1_URL := https://crates.io/api/v1/crates/equivalent/1.0.1/download
+GST_PLUGINS_RS_EQUIVALENT_1_0_1_SOURCE := $(SRCDIR)/equivalent-1.0.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_EQUIVALENT_1_0_1
+
+GST_PLUGINS_RS_ERRNO_0_3_8_MD5 := 349e0ae5420f0b7e6ff835cd03cc7428
+GST_PLUGINS_RS_ERRNO_0_3_8_URL := https://crates.io/api/v1/crates/errno/0.3.8/download
+GST_PLUGINS_RS_ERRNO_0_3_8_SOURCE := $(SRCDIR)/errno-0.3.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ERRNO_0_3_8
+
+GST_PLUGINS_RS_EVENT_LISTENER_5_3_0_MD5 := ca985b25824287d17f114f94b25df7b5
+GST_PLUGINS_RS_EVENT_LISTENER_5_3_0_URL := https://crates.io/api/v1/crates/event-listener/5.3.0/download
+GST_PLUGINS_RS_EVENT_LISTENER_5_3_0_SOURCE := $(SRCDIR)/event-listener-5.3.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_EVENT_LISTENER_5_3_0
+
+GST_PLUGINS_RS_EVENT_LISTENER_STRATEGY_0_5_1_MD5 := ed44db84474f7a61f7bac80847b57951
+GST_PLUGINS_RS_EVENT_LISTENER_STRATEGY_0_5_1_URL := https://crates.io/api/v1/crates/event-listener-strategy/0.5.1/download
+GST_PLUGINS_RS_EVENT_LISTENER_STRATEGY_0_5_1_SOURCE := $(SRCDIR)/event-listener-strategy-0.5.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_EVENT_LISTENER_STRATEGY_0_5_1
+
+GST_PLUGINS_RS_FALLIBLE_ITERATOR_0_3_0_MD5 := 4abeb2b6db91c4964c17ec4bf24248f4
+GST_PLUGINS_RS_FALLIBLE_ITERATOR_0_3_0_URL := https://crates.io/api/v1/crates/fallible-iterator/0.3.0/download
+GST_PLUGINS_RS_FALLIBLE_ITERATOR_0_3_0_SOURCE := $(SRCDIR)/fallible-iterator-0.3.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FALLIBLE_ITERATOR_0_3_0
+
+GST_PLUGINS_RS_FASTRAND_2_0_2_MD5 := 840d04b67c8e340315332a53cb8a186c
+GST_PLUGINS_RS_FASTRAND_2_0_2_URL := https://crates.io/api/v1/crates/fastrand/2.0.2/download
+GST_PLUGINS_RS_FASTRAND_2_0_2_SOURCE := $(SRCDIR)/fastrand-2.0.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FASTRAND_2_0_2
+
+GST_PLUGINS_RS_FDEFLATE_0_3_4_MD5 := b1e2ff2b24e7c0840bb0cb1174beedfd
+GST_PLUGINS_RS_FDEFLATE_0_3_4_URL := https://crates.io/api/v1/crates/fdeflate/0.3.4/download
+GST_PLUGINS_RS_FDEFLATE_0_3_4_SOURCE := $(SRCDIR)/fdeflate-0.3.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FDEFLATE_0_3_4
+
+GST_PLUGINS_RS_FF_0_12_1_MD5 := a72db14ef8d9686e8843e1b6d2e6ec04
+GST_PLUGINS_RS_FF_0_12_1_URL := https://crates.io/api/v1/crates/ff/0.12.1/download
+GST_PLUGINS_RS_FF_0_12_1_SOURCE := $(SRCDIR)/ff-0.12.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FF_0_12_1
+
+GST_PLUGINS_RS_FFV1_0_0_0_MD5 := d4ccbbb22a0287213d4cc6605100dff2
+GST_PLUGINS_RS_FFV1_0_0_0_URL := git+https://github.com/rust-av/ffv1.git;tag=2afb025a327173ce891954c052e804d0f880368a
+GST_PLUGINS_RS_FFV1_0_0_0_SOURCE := $(SRCDIR)/ffv1-0.0.0+2afb025a3271.git.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FFV1_0_0_0
+
+GST_PLUGINS_RS_FIELD_OFFSET_0_3_6_MD5 := ed22a92c62cf990ccf3f959342507034
+GST_PLUGINS_RS_FIELD_OFFSET_0_3_6_URL := https://crates.io/api/v1/crates/field-offset/0.3.6/download
+GST_PLUGINS_RS_FIELD_OFFSET_0_3_6_SOURCE := $(SRCDIR)/field-offset-0.3.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FIELD_OFFSET_0_3_6
+
+GST_PLUGINS_RS_FIXEDBITSET_0_4_2_MD5 := a1e1c92075e77d61acf61a094a68fa61
+GST_PLUGINS_RS_FIXEDBITSET_0_4_2_URL := https://crates.io/api/v1/crates/fixedbitset/0.4.2/download
+GST_PLUGINS_RS_FIXEDBITSET_0_4_2_SOURCE := $(SRCDIR)/fixedbitset-0.4.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FIXEDBITSET_0_4_2
+
+GST_PLUGINS_RS_FLATE2_1_0_28_MD5 := 110e56f20886997bc288b6fea8617ce1
+GST_PLUGINS_RS_FLATE2_1_0_28_URL := https://crates.io/api/v1/crates/flate2/1.0.28/download
+GST_PLUGINS_RS_FLATE2_1_0_28_SOURCE := $(SRCDIR)/flate2-1.0.28.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FLATE2_1_0_28
+
+GST_PLUGINS_RS_FLAVORS_0_2_0_MD5 := abb96c1f20973116e943533739140629
+GST_PLUGINS_RS_FLAVORS_0_2_0_URL := git+https://github.com/rust-av/flavors;tag=833508af656d298c269f2397c8541a084264d992
+GST_PLUGINS_RS_FLAVORS_0_2_0_SOURCE := $(SRCDIR)/flavors-0.2.0+833508af656d.git.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FLAVORS_0_2_0
+
+GST_PLUGINS_RS_FLUME_0_11_0_MD5 := 2c9754b065f8893f33da00711a2a03dd
+GST_PLUGINS_RS_FLUME_0_11_0_URL := https://crates.io/api/v1/crates/flume/0.11.0/download
+GST_PLUGINS_RS_FLUME_0_11_0_SOURCE := $(SRCDIR)/flume-0.11.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FLUME_0_11_0
+
+GST_PLUGINS_RS_FNV_1_0_7_MD5 := 8dab3b3ec00dc56cffde0b0c410d47b5
+GST_PLUGINS_RS_FNV_1_0_7_URL := https://crates.io/api/v1/crates/fnv/1.0.7/download
+GST_PLUGINS_RS_FNV_1_0_7_SOURCE := $(SRCDIR)/fnv-1.0.7.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FNV_1_0_7
+
+GST_PLUGINS_RS_FOREIGN_TYPES_0_3_2_MD5 := 78c898fdaa3968e23904bf8538c4a271
+GST_PLUGINS_RS_FOREIGN_TYPES_0_3_2_URL := https://crates.io/api/v1/crates/foreign-types/0.3.2/download
+GST_PLUGINS_RS_FOREIGN_TYPES_0_3_2_SOURCE := $(SRCDIR)/foreign-types-0.3.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FOREIGN_TYPES_0_3_2
+
+GST_PLUGINS_RS_FOREIGN_TYPES_SHARED_0_1_1_MD5 := 667e86b8b8d96ab4e9605627ce7dcc9a
+GST_PLUGINS_RS_FOREIGN_TYPES_SHARED_0_1_1_URL := https://crates.io/api/v1/crates/foreign-types-shared/0.1.1/download
+GST_PLUGINS_RS_FOREIGN_TYPES_SHARED_0_1_1_SOURCE := $(SRCDIR)/foreign-types-shared-0.1.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FOREIGN_TYPES_SHARED_0_1_1
+
+GST_PLUGINS_RS_FORM_URLENCODED_1_2_1_MD5 := c3e51926c9853b714191ef1bec90e2ce
+GST_PLUGINS_RS_FORM_URLENCODED_1_2_1_URL := https://crates.io/api/v1/crates/form_urlencoded/1.2.1/download
+GST_PLUGINS_RS_FORM_URLENCODED_1_2_1_SOURCE := $(SRCDIR)/form_urlencoded-1.2.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FORM_URLENCODED_1_2_1
+
+GST_PLUGINS_RS_FS_ERR_2_11_0_MD5 := 672419f07b74564a36d5c84bcd12658a
+GST_PLUGINS_RS_FS_ERR_2_11_0_URL := https://crates.io/api/v1/crates/fs-err/2.11.0/download
+GST_PLUGINS_RS_FS_ERR_2_11_0_SOURCE := $(SRCDIR)/fs-err-2.11.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FS_ERR_2_11_0
+
+GST_PLUGINS_RS_FST_0_4_7_MD5 := 5259cf708a270d8811edbe62dd17c579
+GST_PLUGINS_RS_FST_0_4_7_URL := https://crates.io/api/v1/crates/fst/0.4.7/download
+GST_PLUGINS_RS_FST_0_4_7_SOURCE := $(SRCDIR)/fst-0.4.7.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FST_0_4_7
+
+GST_PLUGINS_RS_FUTURES_0_3_30_MD5 := b4da4608c9fa5193dc25539c7677ac6a
+GST_PLUGINS_RS_FUTURES_0_3_30_URL := https://crates.io/api/v1/crates/futures/0.3.30/download
+GST_PLUGINS_RS_FUTURES_0_3_30_SOURCE := $(SRCDIR)/futures-0.3.30.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FUTURES_0_3_30
+
+GST_PLUGINS_RS_FUTURES_CHANNEL_0_3_30_MD5 := f6af880cfdb0c579b698586d841c664b
+GST_PLUGINS_RS_FUTURES_CHANNEL_0_3_30_URL := https://crates.io/api/v1/crates/futures-channel/0.3.30/download
+GST_PLUGINS_RS_FUTURES_CHANNEL_0_3_30_SOURCE := $(SRCDIR)/futures-channel-0.3.30.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FUTURES_CHANNEL_0_3_30
+
+GST_PLUGINS_RS_FUTURES_CORE_0_3_30_MD5 := 44df381323008413e1624a79c6975ca8
+GST_PLUGINS_RS_FUTURES_CORE_0_3_30_URL := https://crates.io/api/v1/crates/futures-core/0.3.30/download
+GST_PLUGINS_RS_FUTURES_CORE_0_3_30_SOURCE := $(SRCDIR)/futures-core-0.3.30.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FUTURES_CORE_0_3_30
+
+GST_PLUGINS_RS_FUTURES_EXECUTOR_0_3_30_MD5 := 9633f45ef555c994bba8f8ad04735fff
+GST_PLUGINS_RS_FUTURES_EXECUTOR_0_3_30_URL := https://crates.io/api/v1/crates/futures-executor/0.3.30/download
+GST_PLUGINS_RS_FUTURES_EXECUTOR_0_3_30_SOURCE := $(SRCDIR)/futures-executor-0.3.30.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FUTURES_EXECUTOR_0_3_30
+
+GST_PLUGINS_RS_FUTURES_IO_0_3_30_MD5 := bb90dd58c7107a6f586b04588404b0ff
+GST_PLUGINS_RS_FUTURES_IO_0_3_30_URL := https://crates.io/api/v1/crates/futures-io/0.3.30/download
+GST_PLUGINS_RS_FUTURES_IO_0_3_30_SOURCE := $(SRCDIR)/futures-io-0.3.30.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FUTURES_IO_0_3_30
+
+GST_PLUGINS_RS_FUTURES_MACRO_0_3_30_MD5 := c410caa0c9f52fcf9da29688e3ea2974
+GST_PLUGINS_RS_FUTURES_MACRO_0_3_30_URL := https://crates.io/api/v1/crates/futures-macro/0.3.30/download
+GST_PLUGINS_RS_FUTURES_MACRO_0_3_30_SOURCE := $(SRCDIR)/futures-macro-0.3.30.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FUTURES_MACRO_0_3_30
+
+GST_PLUGINS_RS_FUTURES_SINK_0_3_30_MD5 := 163296a9672a36cb46d9a78bae592c66
+GST_PLUGINS_RS_FUTURES_SINK_0_3_30_URL := https://crates.io/api/v1/crates/futures-sink/0.3.30/download
+GST_PLUGINS_RS_FUTURES_SINK_0_3_30_SOURCE := $(SRCDIR)/futures-sink-0.3.30.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FUTURES_SINK_0_3_30
+
+GST_PLUGINS_RS_FUTURES_TASK_0_3_30_MD5 := 259efb88f74fd1612ea748f3347ff56d
+GST_PLUGINS_RS_FUTURES_TASK_0_3_30_URL := https://crates.io/api/v1/crates/futures-task/0.3.30/download
+GST_PLUGINS_RS_FUTURES_TASK_0_3_30_SOURCE := $(SRCDIR)/futures-task-0.3.30.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FUTURES_TASK_0_3_30
+
+GST_PLUGINS_RS_FUTURES_UTIL_0_3_30_MD5 := e667ddded881e4892208a3ea7087c655
+GST_PLUGINS_RS_FUTURES_UTIL_0_3_30_URL := https://crates.io/api/v1/crates/futures-util/0.3.30/download
+GST_PLUGINS_RS_FUTURES_UTIL_0_3_30_SOURCE := $(SRCDIR)/futures-util-0.3.30.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_FUTURES_UTIL_0_3_30
+
+GST_PLUGINS_RS_GTK4_RS_0_8_1_MD5 := d9a1b93639964d3956be58381d50d511
+GST_PLUGINS_RS_GTK4_RS_0_8_1_URL := git+https://github.com/gtk-rs/gtk4-rs;tag=05d26f6a97a0ccf856b565b4fd796cdf57059084
+GST_PLUGINS_RS_GTK4_RS_0_8_1_SOURCE := $(SRCDIR)/gtk4-rs-0.8.1+05d26f6a97a0.git.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_GTK4_RS_0_8_1
+
+GST_PLUGINS_RS_GENERIC_ARRAY_0_14_7_MD5 := 64a6d8fe0c9a450bcefa41894e17d7ac
+GST_PLUGINS_RS_GENERIC_ARRAY_0_14_7_URL := https://crates.io/api/v1/crates/generic-array/0.14.7/download
+GST_PLUGINS_RS_GENERIC_ARRAY_0_14_7_SOURCE := $(SRCDIR)/generic-array-0.14.7.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_GENERIC_ARRAY_0_14_7
+
+GST_PLUGINS_RS_GETOPTS_0_2_21_MD5 := c3ec5977ecc0f6244ef3be87f5325e72
+GST_PLUGINS_RS_GETOPTS_0_2_21_URL := https://crates.io/api/v1/crates/getopts/0.2.21/download
+GST_PLUGINS_RS_GETOPTS_0_2_21_SOURCE := $(SRCDIR)/getopts-0.2.21.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_GETOPTS_0_2_21
+
+GST_PLUGINS_RS_GETRANDOM_0_2_14_MD5 := 8fa6facea904eb4b4c8d2e4eded272fe
+GST_PLUGINS_RS_GETRANDOM_0_2_14_URL := https://crates.io/api/v1/crates/getrandom/0.2.14/download
+GST_PLUGINS_RS_GETRANDOM_0_2_14_SOURCE := $(SRCDIR)/getrandom-0.2.14.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_GETRANDOM_0_2_14
+
+GST_PLUGINS_RS_GIF_0_13_1_MD5 := 2ec5419c5ca1c626f0b158e5ebec75d4
+GST_PLUGINS_RS_GIF_0_13_1_URL := https://crates.io/api/v1/crates/gif/0.13.1/download
+GST_PLUGINS_RS_GIF_0_13_1_SOURCE := $(SRCDIR)/gif-0.13.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_GIF_0_13_1
+
+GST_PLUGINS_RS_GIMLI_0_28_1_MD5 := fbc6f6d82084b19c006198508b1ac489
+GST_PLUGINS_RS_GIMLI_0_28_1_URL := https://crates.io/api/v1/crates/gimli/0.28.1/download
+GST_PLUGINS_RS_GIMLI_0_28_1_SOURCE := $(SRCDIR)/gimli-0.28.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_GIMLI_0_28_1
+
+GST_PLUGINS_RS_GLOB_0_3_1_MD5 := 2d6d28ec311884da69bcaf320ada8ad5
+GST_PLUGINS_RS_GLOB_0_3_1_URL := https://crates.io/api/v1/crates/glob/0.3.1/download
+GST_PLUGINS_RS_GLOB_0_3_1_SOURCE := $(SRCDIR)/glob-0.3.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_GLOB_0_3_1
+
+GST_PLUGINS_RS_GROUP_0_12_1_MD5 := 7bb80c6cde4a95fd16152fed90c18099
+GST_PLUGINS_RS_GROUP_0_12_1_URL := https://crates.io/api/v1/crates/group/0.12.1/download
+GST_PLUGINS_RS_GROUP_0_12_1_SOURCE := $(SRCDIR)/group-0.12.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_GROUP_0_12_1
+
+GST_PLUGINS_RS_GSTREAMER_RS_0_22_4_MD5 := 3a417feba09a7956f08158de26481d1c
+GST_PLUGINS_RS_GSTREAMER_RS_0_22_4_URL := git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs;tag=f2d3128bf9d0170288ce479bea021f0886617fac
+GST_PLUGINS_RS_GSTREAMER_RS_0_22_4_SOURCE := $(SRCDIR)/gstreamer-rs-0.22.4+f2d3128bf9d0.git.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_GSTREAMER_RS_0_22_4
+
+GST_PLUGINS_RS_H2_0_3_26_MD5 := a85d6948bf96a59b7d47b5902a4a69a2
+GST_PLUGINS_RS_H2_0_3_26_URL := https://crates.io/api/v1/crates/h2/0.3.26/download
+GST_PLUGINS_RS_H2_0_3_26_SOURCE := $(SRCDIR)/h2-0.3.26.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_H2_0_3_26
+
+GST_PLUGINS_RS_H2_0_4_4_MD5 := 86085ccd348bb3897f39b13b5cf79ecc
+GST_PLUGINS_RS_H2_0_4_4_URL := https://crates.io/api/v1/crates/h2/0.4.4/download
+GST_PLUGINS_RS_H2_0_4_4_SOURCE := $(SRCDIR)/h2-0.4.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_H2_0_4_4
+
+GST_PLUGINS_RS_HASHBROWN_0_12_3_MD5 := 1b41b97d982520b7364a87a39e2a1ed8
+GST_PLUGINS_RS_HASHBROWN_0_12_3_URL := https://crates.io/api/v1/crates/hashbrown/0.12.3/download
+GST_PLUGINS_RS_HASHBROWN_0_12_3_SOURCE := $(SRCDIR)/hashbrown-0.12.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HASHBROWN_0_12_3
+
+GST_PLUGINS_RS_HASHBROWN_0_14_3_MD5 := 3451a2e54a12d567bbb1bf2815aedc37
+GST_PLUGINS_RS_HASHBROWN_0_14_3_URL := https://crates.io/api/v1/crates/hashbrown/0.14.3/download
+GST_PLUGINS_RS_HASHBROWN_0_14_3_SOURCE := $(SRCDIR)/hashbrown-0.14.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HASHBROWN_0_14_3
+
+GST_PLUGINS_RS_HEADERS_0_3_9_MD5 := eb37edaaef79a17689ada175773bde59
+GST_PLUGINS_RS_HEADERS_0_3_9_URL := https://crates.io/api/v1/crates/headers/0.3.9/download
+GST_PLUGINS_RS_HEADERS_0_3_9_SOURCE := $(SRCDIR)/headers-0.3.9.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HEADERS_0_3_9
+
+GST_PLUGINS_RS_HEADERS_0_4_0_MD5 := e4ad402e32245b3af86c2efb53efbf58
+GST_PLUGINS_RS_HEADERS_0_4_0_URL := https://crates.io/api/v1/crates/headers/0.4.0/download
+GST_PLUGINS_RS_HEADERS_0_4_0_SOURCE := $(SRCDIR)/headers-0.4.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HEADERS_0_4_0
+
+GST_PLUGINS_RS_HEADERS_CORE_0_2_0_MD5 := 0372a8de508e57da4d4869f058bcb630
+GST_PLUGINS_RS_HEADERS_CORE_0_2_0_URL := https://crates.io/api/v1/crates/headers-core/0.2.0/download
+GST_PLUGINS_RS_HEADERS_CORE_0_2_0_SOURCE := $(SRCDIR)/headers-core-0.2.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HEADERS_CORE_0_2_0
+
+GST_PLUGINS_RS_HEADERS_CORE_0_3_0_MD5 := fdaf12e6f55939ce24b7f6b03d64a044
+GST_PLUGINS_RS_HEADERS_CORE_0_3_0_URL := https://crates.io/api/v1/crates/headers-core/0.3.0/download
+GST_PLUGINS_RS_HEADERS_CORE_0_3_0_SOURCE := $(SRCDIR)/headers-core-0.3.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HEADERS_CORE_0_3_0
+
+GST_PLUGINS_RS_HECK_0_4_1_MD5 := b92fa50f56a1e06a7f1bf665442d4a73
+GST_PLUGINS_RS_HECK_0_4_1_URL := https://crates.io/api/v1/crates/heck/0.4.1/download
+GST_PLUGINS_RS_HECK_0_4_1_SOURCE := $(SRCDIR)/heck-0.4.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HECK_0_4_1
+
+GST_PLUGINS_RS_HECK_0_5_0_MD5 := ce5935e8063a452913a61e5405b33cb9
+GST_PLUGINS_RS_HECK_0_5_0_URL := https://crates.io/api/v1/crates/heck/0.5.0/download
+GST_PLUGINS_RS_HECK_0_5_0_SOURCE := $(SRCDIR)/heck-0.5.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HECK_0_5_0
+
+GST_PLUGINS_RS_HERMIT_ABI_0_1_19_MD5 := 0b7994d1256215201bdfb810a357ffa2
+GST_PLUGINS_RS_HERMIT_ABI_0_1_19_URL := https://crates.io/api/v1/crates/hermit-abi/0.1.19/download
+GST_PLUGINS_RS_HERMIT_ABI_0_1_19_SOURCE := $(SRCDIR)/hermit-abi-0.1.19.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HERMIT_ABI_0_1_19
+
+GST_PLUGINS_RS_HERMIT_ABI_0_3_9_MD5 := 4daeb6abd6951210bed659c3c1ea01b4
+GST_PLUGINS_RS_HERMIT_ABI_0_3_9_URL := https://crates.io/api/v1/crates/hermit-abi/0.3.9/download
+GST_PLUGINS_RS_HERMIT_ABI_0_3_9_SOURCE := $(SRCDIR)/hermit-abi-0.3.9.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HERMIT_ABI_0_3_9
+
+GST_PLUGINS_RS_HEX_0_4_3_MD5 := 1d3e530a3410fc95a6987d70f84a6332
+GST_PLUGINS_RS_HEX_0_4_3_URL := https://crates.io/api/v1/crates/hex/0.4.3/download
+GST_PLUGINS_RS_HEX_0_4_3_SOURCE := $(SRCDIR)/hex-0.4.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HEX_0_4_3
+
+GST_PLUGINS_RS_HMAC_0_11_0_MD5 := 656eb112c9634812796a81803b04a3e6
+GST_PLUGINS_RS_HMAC_0_11_0_URL := https://crates.io/api/v1/crates/hmac/0.11.0/download
+GST_PLUGINS_RS_HMAC_0_11_0_SOURCE := $(SRCDIR)/hmac-0.11.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HMAC_0_11_0
+
+GST_PLUGINS_RS_HMAC_0_12_1_MD5 := 4e0c068ba38fa8e0aa6c46bce5e9d2ab
+GST_PLUGINS_RS_HMAC_0_12_1_URL := https://crates.io/api/v1/crates/hmac/0.12.1/download
+GST_PLUGINS_RS_HMAC_0_12_1_SOURCE := $(SRCDIR)/hmac-0.12.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HMAC_0_12_1
+
+GST_PLUGINS_RS_HOSTNAME_0_3_1_MD5 := d15066ccf2d33bbd8afdb9036ba47da5
+GST_PLUGINS_RS_HOSTNAME_0_3_1_URL := https://crates.io/api/v1/crates/hostname/0.3.1/download
+GST_PLUGINS_RS_HOSTNAME_0_3_1_SOURCE := $(SRCDIR)/hostname-0.3.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HOSTNAME_0_3_1
+
+GST_PLUGINS_RS_HRTF_0_8_1_MD5 := df4d656a91e0be924ba764b6c9151ea0
+GST_PLUGINS_RS_HRTF_0_8_1_URL := https://crates.io/api/v1/crates/hrtf/0.8.1/download
+GST_PLUGINS_RS_HRTF_0_8_1_SOURCE := $(SRCDIR)/hrtf-0.8.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HRTF_0_8_1
+
+GST_PLUGINS_RS_HTTP_0_2_12_MD5 := fb46b88c5cbf8bfe28124af1794f3934
+GST_PLUGINS_RS_HTTP_0_2_12_URL := https://crates.io/api/v1/crates/http/0.2.12/download
+GST_PLUGINS_RS_HTTP_0_2_12_SOURCE := $(SRCDIR)/http-0.2.12.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HTTP_0_2_12
+
+GST_PLUGINS_RS_HTTP_1_1_0_MD5 := ac93fe50bd04f323645dfa04955aa298
+GST_PLUGINS_RS_HTTP_1_1_0_URL := https://crates.io/api/v1/crates/http/1.1.0/download
+GST_PLUGINS_RS_HTTP_1_1_0_SOURCE := $(SRCDIR)/http-1.1.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HTTP_1_1_0
+
+GST_PLUGINS_RS_HTTP_BODY_0_4_6_MD5 := 54cbd8850aebe933b8f1214d8e916d1e
+GST_PLUGINS_RS_HTTP_BODY_0_4_6_URL := https://crates.io/api/v1/crates/http-body/0.4.6/download
+GST_PLUGINS_RS_HTTP_BODY_0_4_6_SOURCE := $(SRCDIR)/http-body-0.4.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HTTP_BODY_0_4_6
+
+GST_PLUGINS_RS_HTTP_BODY_1_0_0_MD5 := b2f491f27aa784c5c868fc1f7f915c17
+GST_PLUGINS_RS_HTTP_BODY_1_0_0_URL := https://crates.io/api/v1/crates/http-body/1.0.0/download
+GST_PLUGINS_RS_HTTP_BODY_1_0_0_SOURCE := $(SRCDIR)/http-body-1.0.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HTTP_BODY_1_0_0
+
+GST_PLUGINS_RS_HTTP_BODY_UTIL_0_1_1_MD5 := ab6f20dc7b2faff4a2d9f9055b1571ae
+GST_PLUGINS_RS_HTTP_BODY_UTIL_0_1_1_URL := https://crates.io/api/v1/crates/http-body-util/0.1.1/download
+GST_PLUGINS_RS_HTTP_BODY_UTIL_0_1_1_SOURCE := $(SRCDIR)/http-body-util-0.1.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HTTP_BODY_UTIL_0_1_1
+
+GST_PLUGINS_RS_HTTPARSE_1_8_0_MD5 := 92968aee56cb2f162a55008fedddbb78
+GST_PLUGINS_RS_HTTPARSE_1_8_0_URL := https://crates.io/api/v1/crates/httparse/1.8.0/download
+GST_PLUGINS_RS_HTTPARSE_1_8_0_SOURCE := $(SRCDIR)/httparse-1.8.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HTTPARSE_1_8_0
+
+GST_PLUGINS_RS_HTTPDATE_1_0_3_MD5 := 580b311bafe0447ebc9ca2e646d9b0e7
+GST_PLUGINS_RS_HTTPDATE_1_0_3_URL := https://crates.io/api/v1/crates/httpdate/1.0.3/download
+GST_PLUGINS_RS_HTTPDATE_1_0_3_SOURCE := $(SRCDIR)/httpdate-1.0.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HTTPDATE_1_0_3
+
+GST_PLUGINS_RS_HUMAN_BYTES_0_4_3_MD5 := dcc22ed7212ce1e18a16afb15b5aadc5
+GST_PLUGINS_RS_HUMAN_BYTES_0_4_3_URL := https://crates.io/api/v1/crates/human_bytes/0.4.3/download
+GST_PLUGINS_RS_HUMAN_BYTES_0_4_3_SOURCE := $(SRCDIR)/human_bytes-0.4.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HUMAN_BYTES_0_4_3
+
+GST_PLUGINS_RS_HUMANTIME_2_1_0_MD5 := c01022fe0357c10ca1d48b16187f81bd
+GST_PLUGINS_RS_HUMANTIME_2_1_0_URL := https://crates.io/api/v1/crates/humantime/2.1.0/download
+GST_PLUGINS_RS_HUMANTIME_2_1_0_SOURCE := $(SRCDIR)/humantime-2.1.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HUMANTIME_2_1_0
+
+GST_PLUGINS_RS_HYPER_0_14_28_MD5 := 4b1be643ffa9aa296972683f97bb34bf
+GST_PLUGINS_RS_HYPER_0_14_28_URL := https://crates.io/api/v1/crates/hyper/0.14.28/download
+GST_PLUGINS_RS_HYPER_0_14_28_SOURCE := $(SRCDIR)/hyper-0.14.28.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HYPER_0_14_28
+
+GST_PLUGINS_RS_HYPER_1_2_0_MD5 := de6e8a9ff8dff7ebca3b3c4460ff2855
+GST_PLUGINS_RS_HYPER_1_2_0_URL := https://crates.io/api/v1/crates/hyper/1.2.0/download
+GST_PLUGINS_RS_HYPER_1_2_0_SOURCE := $(SRCDIR)/hyper-1.2.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HYPER_1_2_0
+
+GST_PLUGINS_RS_HYPER_PROXY_0_9_1_MD5 := 31667fab2083c342c85bb51c2cba6d58
+GST_PLUGINS_RS_HYPER_PROXY_0_9_1_URL := https://crates.io/api/v1/crates/hyper-proxy/0.9.1/download
+GST_PLUGINS_RS_HYPER_PROXY_0_9_1_SOURCE := $(SRCDIR)/hyper-proxy-0.9.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HYPER_PROXY_0_9_1
+
+GST_PLUGINS_RS_HYPER_RUSTLS_0_24_2_MD5 := e7f9a478997aff38a5625fd8e1dec88c
+GST_PLUGINS_RS_HYPER_RUSTLS_0_24_2_URL := https://crates.io/api/v1/crates/hyper-rustls/0.24.2/download
+GST_PLUGINS_RS_HYPER_RUSTLS_0_24_2_SOURCE := $(SRCDIR)/hyper-rustls-0.24.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HYPER_RUSTLS_0_24_2
+
+GST_PLUGINS_RS_HYPER_TLS_0_5_0_MD5 := 6540f0c2d7dce570f06661292fc68cab
+GST_PLUGINS_RS_HYPER_TLS_0_5_0_URL := https://crates.io/api/v1/crates/hyper-tls/0.5.0/download
+GST_PLUGINS_RS_HYPER_TLS_0_5_0_SOURCE := $(SRCDIR)/hyper-tls-0.5.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HYPER_TLS_0_5_0
+
+GST_PLUGINS_RS_HYPER_TLS_0_6_0_MD5 := f654fdede1434dc135c78e50a1233e25
+GST_PLUGINS_RS_HYPER_TLS_0_6_0_URL := https://crates.io/api/v1/crates/hyper-tls/0.6.0/download
+GST_PLUGINS_RS_HYPER_TLS_0_6_0_SOURCE := $(SRCDIR)/hyper-tls-0.6.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HYPER_TLS_0_6_0
+
+GST_PLUGINS_RS_HYPER_UTIL_0_1_3_MD5 := f711e3c5b59783b30558a7a4810320b5
+GST_PLUGINS_RS_HYPER_UTIL_0_1_3_URL := https://crates.io/api/v1/crates/hyper-util/0.1.3/download
+GST_PLUGINS_RS_HYPER_UTIL_0_1_3_SOURCE := $(SRCDIR)/hyper-util-0.1.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HYPER_UTIL_0_1_3
+
+GST_PLUGINS_RS_HYPHENATION_0_8_4_MD5 := f6547ba8831e94f08ac736c9f0574a80
+GST_PLUGINS_RS_HYPHENATION_0_8_4_URL := https://crates.io/api/v1/crates/hyphenation/0.8.4/download
+GST_PLUGINS_RS_HYPHENATION_0_8_4_SOURCE := $(SRCDIR)/hyphenation-0.8.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HYPHENATION_0_8_4
+
+GST_PLUGINS_RS_HYPHENATION_COMMONS_0_8_4_MD5 := 57c4fcdb03923d1cbe734465804da9ac
+GST_PLUGINS_RS_HYPHENATION_COMMONS_0_8_4_URL := https://crates.io/api/v1/crates/hyphenation_commons/0.8.4/download
+GST_PLUGINS_RS_HYPHENATION_COMMONS_0_8_4_SOURCE := $(SRCDIR)/hyphenation_commons-0.8.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_HYPHENATION_COMMONS_0_8_4
+
+GST_PLUGINS_RS_IANA_TIME_ZONE_0_1_60_MD5 := 7810a6b901a77b30a16e7f123685e173
+GST_PLUGINS_RS_IANA_TIME_ZONE_0_1_60_URL := https://crates.io/api/v1/crates/iana-time-zone/0.1.60/download
+GST_PLUGINS_RS_IANA_TIME_ZONE_0_1_60_SOURCE := $(SRCDIR)/iana-time-zone-0.1.60.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_IANA_TIME_ZONE_0_1_60
+
+GST_PLUGINS_RS_IANA_TIME_ZONE_HAIKU_0_1_2_MD5 := 87b1b7cb12ef4dfe842c212b98263048
+GST_PLUGINS_RS_IANA_TIME_ZONE_HAIKU_0_1_2_URL := https://crates.io/api/v1/crates/iana-time-zone-haiku/0.1.2/download
+GST_PLUGINS_RS_IANA_TIME_ZONE_HAIKU_0_1_2_SOURCE := $(SRCDIR)/iana-time-zone-haiku-0.1.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_IANA_TIME_ZONE_HAIKU_0_1_2
+
+GST_PLUGINS_RS_IDENT_CASE_1_0_1_MD5 := fe77a3f609b6fd8d5b08f3b2ef14d2ad
+GST_PLUGINS_RS_IDENT_CASE_1_0_1_URL := https://crates.io/api/v1/crates/ident_case/1.0.1/download
+GST_PLUGINS_RS_IDENT_CASE_1_0_1_SOURCE := $(SRCDIR)/ident_case-1.0.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_IDENT_CASE_1_0_1
+
+GST_PLUGINS_RS_IDNA_0_3_0_MD5 := c3425a02781d0bb3c4f8d5d025d12266
+GST_PLUGINS_RS_IDNA_0_3_0_URL := https://crates.io/api/v1/crates/idna/0.3.0/download
+GST_PLUGINS_RS_IDNA_0_3_0_SOURCE := $(SRCDIR)/idna-0.3.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_IDNA_0_3_0
+
+GST_PLUGINS_RS_IDNA_0_5_0_MD5 := b5305bde14813da51d536a9df564db69
+GST_PLUGINS_RS_IDNA_0_5_0_URL := https://crates.io/api/v1/crates/idna/0.5.0/download
+GST_PLUGINS_RS_IDNA_0_5_0_SOURCE := $(SRCDIR)/idna-0.5.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_IDNA_0_5_0
+
+GST_PLUGINS_RS_IF_ADDRS_0_7_0_MD5 := 237b55fa488d3be0c5c6c0aba4dfa913
+GST_PLUGINS_RS_IF_ADDRS_0_7_0_URL := https://crates.io/api/v1/crates/if-addrs/0.7.0/download
+GST_PLUGINS_RS_IF_ADDRS_0_7_0_SOURCE := $(SRCDIR)/if-addrs-0.7.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_IF_ADDRS_0_7_0
+
+GST_PLUGINS_RS_IMAGE_0_24_9_MD5 := 785764aa3ae2b351594278ed45a69aa6
+GST_PLUGINS_RS_IMAGE_0_24_9_URL := https://crates.io/api/v1/crates/image/0.24.9/download
+GST_PLUGINS_RS_IMAGE_0_24_9_SOURCE := $(SRCDIR)/image-0.24.9.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_IMAGE_0_24_9
+
+GST_PLUGINS_RS_IMAGE_HASHER_1_2_0_MD5 := 591856f355fae68385f5dbd2a0a7cc7a
+GST_PLUGINS_RS_IMAGE_HASHER_1_2_0_URL := https://crates.io/api/v1/crates/image_hasher/1.2.0/download
+GST_PLUGINS_RS_IMAGE_HASHER_1_2_0_SOURCE := $(SRCDIR)/image_hasher-1.2.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_IMAGE_HASHER_1_2_0
+
+GST_PLUGINS_RS_IMGREF_1_10_1_MD5 := 7e17901851177040baf9f048244e4c36
+GST_PLUGINS_RS_IMGREF_1_10_1_URL := https://crates.io/api/v1/crates/imgref/1.10.1/download
+GST_PLUGINS_RS_IMGREF_1_10_1_SOURCE := $(SRCDIR)/imgref-1.10.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_IMGREF_1_10_1
+
+GST_PLUGINS_RS_INDEXMAP_1_9_3_MD5 := 11ce8b5f52cd315e8f52985b834b87eb
+GST_PLUGINS_RS_INDEXMAP_1_9_3_URL := https://crates.io/api/v1/crates/indexmap/1.9.3/download
+GST_PLUGINS_RS_INDEXMAP_1_9_3_SOURCE := $(SRCDIR)/indexmap-1.9.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_INDEXMAP_1_9_3
+
+GST_PLUGINS_RS_INDEXMAP_2_2_6_MD5 := 75d480d43a87d733f9f497c647f7d973
+GST_PLUGINS_RS_INDEXMAP_2_2_6_URL := https://crates.io/api/v1/crates/indexmap/2.2.6/download
+GST_PLUGINS_RS_INDEXMAP_2_2_6_SOURCE := $(SRCDIR)/indexmap-2.2.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_INDEXMAP_2_2_6
+
+GST_PLUGINS_RS_INTERPOLATE_NAME_0_2_4_MD5 := 5da39427e196c0609d3d5aee2635c0db
+GST_PLUGINS_RS_INTERPOLATE_NAME_0_2_4_URL := https://crates.io/api/v1/crates/interpolate_name/0.2.4/download
+GST_PLUGINS_RS_INTERPOLATE_NAME_0_2_4_SOURCE := $(SRCDIR)/interpolate_name-0.2.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_INTERPOLATE_NAME_0_2_4
+
+GST_PLUGINS_RS_IPNET_2_9_0_MD5 := 411fc2fb6b6fac5d46a936f2d3001478
+GST_PLUGINS_RS_IPNET_2_9_0_URL := https://crates.io/api/v1/crates/ipnet/2.9.0/download
+GST_PLUGINS_RS_IPNET_2_9_0_SOURCE := $(SRCDIR)/ipnet-2.9.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_IPNET_2_9_0
+
+GST_PLUGINS_RS_IS_TERMINAL_0_4_12_MD5 := a5ff7ccb5fe4fc981cff7abfde30ae88
+GST_PLUGINS_RS_IS_TERMINAL_0_4_12_URL := https://crates.io/api/v1/crates/is-terminal/0.4.12/download
+GST_PLUGINS_RS_IS_TERMINAL_0_4_12_SOURCE := $(SRCDIR)/is-terminal-0.4.12.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_IS_TERMINAL_0_4_12
+
+GST_PLUGINS_RS_ISO8601_0_6_1_MD5 := 81e71650e0039295beb9d02a8dca228a
+GST_PLUGINS_RS_ISO8601_0_6_1_URL := https://crates.io/api/v1/crates/iso8601/0.6.1/download
+GST_PLUGINS_RS_ISO8601_0_6_1_SOURCE := $(SRCDIR)/iso8601-0.6.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ISO8601_0_6_1
+
+GST_PLUGINS_RS_ITERTOOLS_0_11_0_MD5 := d629ca093dfd23b5e9b4262c5f801928
+GST_PLUGINS_RS_ITERTOOLS_0_11_0_URL := https://crates.io/api/v1/crates/itertools/0.11.0/download
+GST_PLUGINS_RS_ITERTOOLS_0_11_0_SOURCE := $(SRCDIR)/itertools-0.11.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ITERTOOLS_0_11_0
+
+GST_PLUGINS_RS_ITERTOOLS_0_12_1_MD5 := cbafbdc811ecda2c59593e87a05c219f
+GST_PLUGINS_RS_ITERTOOLS_0_12_1_URL := https://crates.io/api/v1/crates/itertools/0.12.1/download
+GST_PLUGINS_RS_ITERTOOLS_0_12_1_SOURCE := $(SRCDIR)/itertools-0.12.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ITERTOOLS_0_12_1
+
+GST_PLUGINS_RS_ITOA_1_0_11_MD5 := 5d87e8530342ef2a980b1c96dafd27f0
+GST_PLUGINS_RS_ITOA_1_0_11_URL := https://crates.io/api/v1/crates/itoa/1.0.11/download
+GST_PLUGINS_RS_ITOA_1_0_11_SOURCE := $(SRCDIR)/itoa-1.0.11.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ITOA_1_0_11
+
+GST_PLUGINS_RS_JOBSERVER_0_1_28_MD5 := 62156c0c6bde4f8190c611a461eb482a
+GST_PLUGINS_RS_JOBSERVER_0_1_28_URL := https://crates.io/api/v1/crates/jobserver/0.1.28/download
+GST_PLUGINS_RS_JOBSERVER_0_1_28_SOURCE := $(SRCDIR)/jobserver-0.1.28.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_JOBSERVER_0_1_28
+
+GST_PLUGINS_RS_JS_SYS_0_3_69_MD5 := c6be9100355c6e77cf37c76ade56baa4
+GST_PLUGINS_RS_JS_SYS_0_3_69_URL := https://crates.io/api/v1/crates/js-sys/0.3.69/download
+GST_PLUGINS_RS_JS_SYS_0_3_69_SOURCE := $(SRCDIR)/js-sys-0.3.69.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_JS_SYS_0_3_69
+
+GST_PLUGINS_RS_JSONWEBTOKEN_9_2_0_MD5 := 7b05b7b08cba150e76ec3cb3d826c0d8
+GST_PLUGINS_RS_JSONWEBTOKEN_9_2_0_URL := https://crates.io/api/v1/crates/jsonwebtoken/9.2.0/download
+GST_PLUGINS_RS_JSONWEBTOKEN_9_2_0_SOURCE := $(SRCDIR)/jsonwebtoken-9.2.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_JSONWEBTOKEN_9_2_0
+
+GST_PLUGINS_RS_KHRONOS_EGL_6_0_0_MD5 := 8d32bb26f7c1f0bc492745a5a6201c20
+GST_PLUGINS_RS_KHRONOS_EGL_6_0_0_URL := https://crates.io/api/v1/crates/khronos-egl/6.0.0/download
+GST_PLUGINS_RS_KHRONOS_EGL_6_0_0_SOURCE := $(SRCDIR)/khronos-egl-6.0.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_KHRONOS_EGL_6_0_0
+
+GST_PLUGINS_RS_LAZY_STATIC_1_4_0_MD5 := fba3b040a55c01be7376d3dd5c4d4920
+GST_PLUGINS_RS_LAZY_STATIC_1_4_0_URL := https://crates.io/api/v1/crates/lazy_static/1.4.0/download
+GST_PLUGINS_RS_LAZY_STATIC_1_4_0_SOURCE := $(SRCDIR)/lazy_static-1.4.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LAZY_STATIC_1_4_0
+
+GST_PLUGINS_RS_LEWTON_0_10_2_MD5 := d3d110551104b00b42c9920958939391
+GST_PLUGINS_RS_LEWTON_0_10_2_URL := https://crates.io/api/v1/crates/lewton/0.10.2/download
+GST_PLUGINS_RS_LEWTON_0_10_2_SOURCE := $(SRCDIR)/lewton-0.10.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LEWTON_0_10_2
+
+GST_PLUGINS_RS_LIBC_0_2_153_MD5 := 49d77531898b3d7846b149c0fb4788c4
+GST_PLUGINS_RS_LIBC_0_2_153_URL := https://crates.io/api/v1/crates/libc/0.2.153/download
+GST_PLUGINS_RS_LIBC_0_2_153_SOURCE := $(SRCDIR)/libc-0.2.153.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LIBC_0_2_153
+
+GST_PLUGINS_RS_LIBFUZZER_SYS_0_4_7_MD5 := fc0b36ba61e728780ae755ee4353b939
+GST_PLUGINS_RS_LIBFUZZER_SYS_0_4_7_URL := https://crates.io/api/v1/crates/libfuzzer-sys/0.4.7/download
+GST_PLUGINS_RS_LIBFUZZER_SYS_0_4_7_SOURCE := $(SRCDIR)/libfuzzer-sys-0.4.7.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LIBFUZZER_SYS_0_4_7
+
+GST_PLUGINS_RS_LIBLOADING_0_8_3_MD5 := 99d57b23f1a7878ef7220513f49db015
+GST_PLUGINS_RS_LIBLOADING_0_8_3_URL := https://crates.io/api/v1/crates/libloading/0.8.3/download
+GST_PLUGINS_RS_LIBLOADING_0_8_3_SOURCE := $(SRCDIR)/libloading-0.8.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LIBLOADING_0_8_3
+
+GST_PLUGINS_RS_LIBM_0_2_8_MD5 := 23fb13a7f6fb7b25a42d71c3bcaa5d7c
+GST_PLUGINS_RS_LIBM_0_2_8_URL := https://crates.io/api/v1/crates/libm/0.2.8/download
+GST_PLUGINS_RS_LIBM_0_2_8_SOURCE := $(SRCDIR)/libm-0.2.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LIBM_0_2_8
+
+GST_PLUGINS_RS_LIBMDNS_0_7_5_MD5 := 67b79f15fca18e1a13e379d6014a836a
+GST_PLUGINS_RS_LIBMDNS_0_7_5_URL := https://crates.io/api/v1/crates/libmdns/0.7.5/download
+GST_PLUGINS_RS_LIBMDNS_0_7_5_SOURCE := $(SRCDIR)/libmdns-0.7.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LIBMDNS_0_7_5
+
+GST_PLUGINS_RS_LIBRESPOT_0_4_2_MD5 := 7b9e2b22daa94d69a7e8515ae7ad3a1d
+GST_PLUGINS_RS_LIBRESPOT_0_4_2_URL := https://crates.io/api/v1/crates/librespot/0.4.2/download
+GST_PLUGINS_RS_LIBRESPOT_0_4_2_SOURCE := $(SRCDIR)/librespot-0.4.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LIBRESPOT_0_4_2
+
+GST_PLUGINS_RS_LIBRESPOT_AUDIO_0_4_2_MD5 := d5619cd692cdf95bddb994fa4351e4a5
+GST_PLUGINS_RS_LIBRESPOT_AUDIO_0_4_2_URL := https://crates.io/api/v1/crates/librespot-audio/0.4.2/download
+GST_PLUGINS_RS_LIBRESPOT_AUDIO_0_4_2_SOURCE := $(SRCDIR)/librespot-audio-0.4.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LIBRESPOT_AUDIO_0_4_2
+
+GST_PLUGINS_RS_LIBRESPOT_CONNECT_0_4_2_MD5 := 1587213d8240da87a9593fa110654c7d
+GST_PLUGINS_RS_LIBRESPOT_CONNECT_0_4_2_URL := https://crates.io/api/v1/crates/librespot-connect/0.4.2/download
+GST_PLUGINS_RS_LIBRESPOT_CONNECT_0_4_2_SOURCE := $(SRCDIR)/librespot-connect-0.4.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LIBRESPOT_CONNECT_0_4_2
+
+GST_PLUGINS_RS_LIBRESPOT_CORE_0_4_2_MD5 := 2ba6cd31b6ef69fdcbec450eb07fb2ed
+GST_PLUGINS_RS_LIBRESPOT_CORE_0_4_2_URL := https://crates.io/api/v1/crates/librespot-core/0.4.2/download
+GST_PLUGINS_RS_LIBRESPOT_CORE_0_4_2_SOURCE := $(SRCDIR)/librespot-core-0.4.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LIBRESPOT_CORE_0_4_2
+
+GST_PLUGINS_RS_LIBRESPOT_DISCOVERY_0_4_2_MD5 := 66f2e78effb16e788e09b6b2c353c26e
+GST_PLUGINS_RS_LIBRESPOT_DISCOVERY_0_4_2_URL := https://crates.io/api/v1/crates/librespot-discovery/0.4.2/download
+GST_PLUGINS_RS_LIBRESPOT_DISCOVERY_0_4_2_SOURCE := $(SRCDIR)/librespot-discovery-0.4.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LIBRESPOT_DISCOVERY_0_4_2
+
+GST_PLUGINS_RS_LIBRESPOT_METADATA_0_4_2_MD5 := 1a9824f887b3ef3150c93c087bbb10fb
+GST_PLUGINS_RS_LIBRESPOT_METADATA_0_4_2_URL := https://crates.io/api/v1/crates/librespot-metadata/0.4.2/download
+GST_PLUGINS_RS_LIBRESPOT_METADATA_0_4_2_SOURCE := $(SRCDIR)/librespot-metadata-0.4.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LIBRESPOT_METADATA_0_4_2
+
+GST_PLUGINS_RS_LIBRESPOT_PLAYBACK_0_4_2_MD5 := 067ca67cf5dc5d2eb25c03e491ceb395
+GST_PLUGINS_RS_LIBRESPOT_PLAYBACK_0_4_2_URL := https://crates.io/api/v1/crates/librespot-playback/0.4.2/download
+GST_PLUGINS_RS_LIBRESPOT_PLAYBACK_0_4_2_SOURCE := $(SRCDIR)/librespot-playback-0.4.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LIBRESPOT_PLAYBACK_0_4_2
+
+GST_PLUGINS_RS_LIBRESPOT_PROTOCOL_0_4_2_MD5 := bd13e165196e3470237b852d347cbb9b
+GST_PLUGINS_RS_LIBRESPOT_PROTOCOL_0_4_2_URL := https://crates.io/api/v1/crates/librespot-protocol/0.4.2/download
+GST_PLUGINS_RS_LIBRESPOT_PROTOCOL_0_4_2_SOURCE := $(SRCDIR)/librespot-protocol-0.4.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LIBRESPOT_PROTOCOL_0_4_2
+
+GST_PLUGINS_RS_LIBSODIUM_SYS_0_2_7_MD5 := c7cf095d4de3ba9528c9ced34933d31b
+GST_PLUGINS_RS_LIBSODIUM_SYS_0_2_7_URL := https://crates.io/api/v1/crates/libsodium-sys/0.2.7/download
+GST_PLUGINS_RS_LIBSODIUM_SYS_0_2_7_SOURCE := $(SRCDIR)/libsodium-sys-0.2.7.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LIBSODIUM_SYS_0_2_7
+
+GST_PLUGINS_RS_LIBWEBP_SYS2_0_1_9_MD5 := 117f4f33ddcd98369c4190889dd977a2
+GST_PLUGINS_RS_LIBWEBP_SYS2_0_1_9_URL := https://crates.io/api/v1/crates/libwebp-sys2/0.1.9/download
+GST_PLUGINS_RS_LIBWEBP_SYS2_0_1_9_SOURCE := $(SRCDIR)/libwebp-sys2-0.1.9.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LIBWEBP_SYS2_0_1_9
+
+GST_PLUGINS_RS_LINUX_RAW_SYS_0_4_13_MD5 := f2d8f01a4e5c5236ab55240d09c6e82f
+GST_PLUGINS_RS_LINUX_RAW_SYS_0_4_13_URL := https://crates.io/api/v1/crates/linux-raw-sys/0.4.13/download
+GST_PLUGINS_RS_LINUX_RAW_SYS_0_4_13_SOURCE := $(SRCDIR)/linux-raw-sys-0.4.13.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LINUX_RAW_SYS_0_4_13
+
+GST_PLUGINS_RS_LIVEKIT_API_0_3_2_MD5 := d796c19422ce4c6fee81feb6235bb47f
+GST_PLUGINS_RS_LIVEKIT_API_0_3_2_URL := https://crates.io/api/v1/crates/livekit-api/0.3.2/download
+GST_PLUGINS_RS_LIVEKIT_API_0_3_2_SOURCE := $(SRCDIR)/livekit-api-0.3.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LIVEKIT_API_0_3_2
+
+GST_PLUGINS_RS_LIVEKIT_PROTOCOL_0_3_2_MD5 := e512a3ac5cf8dca1665ceea1333ea176
+GST_PLUGINS_RS_LIVEKIT_PROTOCOL_0_3_2_URL := https://crates.io/api/v1/crates/livekit-protocol/0.3.2/download
+GST_PLUGINS_RS_LIVEKIT_PROTOCOL_0_3_2_SOURCE := $(SRCDIR)/livekit-protocol-0.3.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LIVEKIT_PROTOCOL_0_3_2
+
+GST_PLUGINS_RS_LOCK_API_0_4_11_MD5 := cc1b0e90e372869ad03ef40bd53fa30f
+GST_PLUGINS_RS_LOCK_API_0_4_11_URL := https://crates.io/api/v1/crates/lock_api/0.4.11/download
+GST_PLUGINS_RS_LOCK_API_0_4_11_SOURCE := $(SRCDIR)/lock_api-0.4.11.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LOCK_API_0_4_11
+
+GST_PLUGINS_RS_LOG_0_4_21_MD5 := 5a376ab3f01ed9e90e8d71e1d5fa6ae7
+GST_PLUGINS_RS_LOG_0_4_21_URL := https://crates.io/api/v1/crates/log/0.4.21/download
+GST_PLUGINS_RS_LOG_0_4_21_SOURCE := $(SRCDIR)/log-0.4.21.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LOG_0_4_21
+
+GST_PLUGINS_RS_LRU_0_12_3_MD5 := bdbe1ee7461db86e420a2064f73b64ec
+GST_PLUGINS_RS_LRU_0_12_3_URL := https://crates.io/api/v1/crates/lru/0.12.3/download
+GST_PLUGINS_RS_LRU_0_12_3_SOURCE := $(SRCDIR)/lru-0.12.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_LRU_0_12_3
+
+GST_PLUGINS_RS_M3U8_RS_5_0_5_MD5 := d65f6d36dd2091958397cfa29dd7c250
+GST_PLUGINS_RS_M3U8_RS_5_0_5_URL := https://crates.io/api/v1/crates/m3u8-rs/5.0.5/download
+GST_PLUGINS_RS_M3U8_RS_5_0_5_SOURCE := $(SRCDIR)/m3u8-rs-5.0.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_M3U8_RS_5_0_5
+
+GST_PLUGINS_RS_MATCH_CFG_0_1_0_MD5 := ccc5ff9ff4a431e36c0b6dd9f640ab58
+GST_PLUGINS_RS_MATCH_CFG_0_1_0_URL := https://crates.io/api/v1/crates/match_cfg/0.1.0/download
+GST_PLUGINS_RS_MATCH_CFG_0_1_0_SOURCE := $(SRCDIR)/match_cfg-0.1.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_MATCH_CFG_0_1_0
+
+GST_PLUGINS_RS_MATCHERS_0_1_0_MD5 := 29614f150859d094548bed37e78f586b
+GST_PLUGINS_RS_MATCHERS_0_1_0_URL := https://crates.io/api/v1/crates/matchers/0.1.0/download
+GST_PLUGINS_RS_MATCHERS_0_1_0_SOURCE := $(SRCDIR)/matchers-0.1.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_MATCHERS_0_1_0
+
+GST_PLUGINS_RS_MAYBE_RAYON_0_1_1_MD5 := a84f2eb0538582f5449a70ccdd1940bb
+GST_PLUGINS_RS_MAYBE_RAYON_0_1_1_URL := https://crates.io/api/v1/crates/maybe-rayon/0.1.1/download
+GST_PLUGINS_RS_MAYBE_RAYON_0_1_1_SOURCE := $(SRCDIR)/maybe-rayon-0.1.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_MAYBE_RAYON_0_1_1
+
+GST_PLUGINS_RS_MD_5_0_10_6_MD5 := e595ddf1b635868eb7e2f237f71aeb21
+GST_PLUGINS_RS_MD_5_0_10_6_URL := https://crates.io/api/v1/crates/md-5/0.10.6/download
+GST_PLUGINS_RS_MD_5_0_10_6_SOURCE := $(SRCDIR)/md-5-0.10.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_MD_5_0_10_6
+
+GST_PLUGINS_RS_MEMCHR_2_7_2_MD5 := e90235c862e9e1fabe9f569bcfbd9692
+GST_PLUGINS_RS_MEMCHR_2_7_2_URL := https://crates.io/api/v1/crates/memchr/2.7.2/download
+GST_PLUGINS_RS_MEMCHR_2_7_2_SOURCE := $(SRCDIR)/memchr-2.7.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_MEMCHR_2_7_2
+
+GST_PLUGINS_RS_MEMOFFSET_0_6_5_MD5 := 76124c2327f642cddf19a4aa50cbcb7d
+GST_PLUGINS_RS_MEMOFFSET_0_6_5_URL := https://crates.io/api/v1/crates/memoffset/0.6.5/download
+GST_PLUGINS_RS_MEMOFFSET_0_6_5_SOURCE := $(SRCDIR)/memoffset-0.6.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_MEMOFFSET_0_6_5
+
+GST_PLUGINS_RS_MEMOFFSET_0_9_1_MD5 := 1fb91af1c97373201990f1baedc58c35
+GST_PLUGINS_RS_MEMOFFSET_0_9_1_URL := https://crates.io/api/v1/crates/memoffset/0.9.1/download
+GST_PLUGINS_RS_MEMOFFSET_0_9_1_SOURCE := $(SRCDIR)/memoffset-0.9.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_MEMOFFSET_0_9_1
+
+GST_PLUGINS_RS_MIME_0_3_17_MD5 := dfdf2484a5545f51cf6b1f5f23b9f92e
+GST_PLUGINS_RS_MIME_0_3_17_URL := https://crates.io/api/v1/crates/mime/0.3.17/download
+GST_PLUGINS_RS_MIME_0_3_17_SOURCE := $(SRCDIR)/mime-0.3.17.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_MIME_0_3_17
+
+GST_PLUGINS_RS_MIME_GUESS_2_0_4_MD5 := 6b4eda909ad28591c70bd89045795e84
+GST_PLUGINS_RS_MIME_GUESS_2_0_4_URL := https://crates.io/api/v1/crates/mime_guess/2.0.4/download
+GST_PLUGINS_RS_MIME_GUESS_2_0_4_SOURCE := $(SRCDIR)/mime_guess-2.0.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_MIME_GUESS_2_0_4
+
+GST_PLUGINS_RS_MINIMAL_LEXICAL_0_2_1_MD5 := 8b708bc4b33c5e1683467444c9ed41b0
+GST_PLUGINS_RS_MINIMAL_LEXICAL_0_2_1_URL := https://crates.io/api/v1/crates/minimal-lexical/0.2.1/download
+GST_PLUGINS_RS_MINIMAL_LEXICAL_0_2_1_SOURCE := $(SRCDIR)/minimal-lexical-0.2.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_MINIMAL_LEXICAL_0_2_1
+
+GST_PLUGINS_RS_MINIZ_OXIDE_0_7_2_MD5 := 86aa81f2561682f16c0be376294bf9d3
+GST_PLUGINS_RS_MINIZ_OXIDE_0_7_2_URL := https://crates.io/api/v1/crates/miniz_oxide/0.7.2/download
+GST_PLUGINS_RS_MINIZ_OXIDE_0_7_2_SOURCE := $(SRCDIR)/miniz_oxide-0.7.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_MINIZ_OXIDE_0_7_2
+
+GST_PLUGINS_RS_MIO_0_8_11_MD5 := 13f47025d308bc16d26a9bc3334f3bbe
+GST_PLUGINS_RS_MIO_0_8_11_URL := https://crates.io/api/v1/crates/mio/0.8.11/download
+GST_PLUGINS_RS_MIO_0_8_11_SOURCE := $(SRCDIR)/mio-0.8.11.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_MIO_0_8_11
+
+GST_PLUGINS_RS_MORE_ASSERTS_0_3_1_MD5 := b34065ba816a2bcb2819c4d6b6ab2a59
+GST_PLUGINS_RS_MORE_ASSERTS_0_3_1_URL := https://crates.io/api/v1/crates/more-asserts/0.3.1/download
+GST_PLUGINS_RS_MORE_ASSERTS_0_3_1_SOURCE := $(SRCDIR)/more-asserts-0.3.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_MORE_ASSERTS_0_3_1
+
+GST_PLUGINS_RS_MULDIV_1_0_1_MD5 := b1efbc442d3767b23c5cd3c9a2902ead
+GST_PLUGINS_RS_MULDIV_1_0_1_URL := https://crates.io/api/v1/crates/muldiv/1.0.1/download
+GST_PLUGINS_RS_MULDIV_1_0_1_SOURCE := $(SRCDIR)/muldiv-1.0.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_MULDIV_1_0_1
+
+GST_PLUGINS_RS_MULTER_2_1_0_MD5 := 0eef93c1c05cc13cc24b198caf57a96f
+GST_PLUGINS_RS_MULTER_2_1_0_URL := https://crates.io/api/v1/crates/multer/2.1.0/download
+GST_PLUGINS_RS_MULTER_2_1_0_SOURCE := $(SRCDIR)/multer-2.1.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_MULTER_2_1_0
+
+GST_PLUGINS_RS_MULTIMAP_0_8_3_MD5 := 5a4f0e9922683867565531089e3c417f
+GST_PLUGINS_RS_MULTIMAP_0_8_3_URL := https://crates.io/api/v1/crates/multimap/0.8.3/download
+GST_PLUGINS_RS_MULTIMAP_0_8_3_SOURCE := $(SRCDIR)/multimap-0.8.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_MULTIMAP_0_8_3
+
+GST_PLUGINS_RS_MULTIMAP_0_10_0_MD5 := 9a3e57bad7795118ad704840f57e6ba9
+GST_PLUGINS_RS_MULTIMAP_0_10_0_URL := https://crates.io/api/v1/crates/multimap/0.10.0/download
+GST_PLUGINS_RS_MULTIMAP_0_10_0_SOURCE := $(SRCDIR)/multimap-0.10.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_MULTIMAP_0_10_0
+
+GST_PLUGINS_RS_NANORAND_0_7_0_MD5 := 28a4dbc0158bdb2fa806d97dd55fba2e
+GST_PLUGINS_RS_NANORAND_0_7_0_URL := https://crates.io/api/v1/crates/nanorand/0.7.0/download
+GST_PLUGINS_RS_NANORAND_0_7_0_SOURCE := $(SRCDIR)/nanorand-0.7.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_NANORAND_0_7_0
+
+GST_PLUGINS_RS_NASM_RS_0_2_5_MD5 := 3a4b59ef1201a1a7e3d469f6a0d6281f
+GST_PLUGINS_RS_NASM_RS_0_2_5_URL := https://crates.io/api/v1/crates/nasm-rs/0.2.5/download
+GST_PLUGINS_RS_NASM_RS_0_2_5_SOURCE := $(SRCDIR)/nasm-rs-0.2.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_NASM_RS_0_2_5
+
+GST_PLUGINS_RS_NATIVE_TLS_0_2_11_MD5 := 790ae5bbcccc91d97517bb1bde7ecd8e
+GST_PLUGINS_RS_NATIVE_TLS_0_2_11_URL := https://crates.io/api/v1/crates/native-tls/0.2.11/download
+GST_PLUGINS_RS_NATIVE_TLS_0_2_11_SOURCE := $(SRCDIR)/native-tls-0.2.11.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_NATIVE_TLS_0_2_11
+
+GST_PLUGINS_RS_NEW_DEBUG_UNREACHABLE_1_0_6_MD5 := 1ac8ee39aea832c035b9ec2b2cd42097
+GST_PLUGINS_RS_NEW_DEBUG_UNREACHABLE_1_0_6_URL := https://crates.io/api/v1/crates/new_debug_unreachable/1.0.6/download
+GST_PLUGINS_RS_NEW_DEBUG_UNREACHABLE_1_0_6_SOURCE := $(SRCDIR)/new_debug_unreachable-1.0.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_NEW_DEBUG_UNREACHABLE_1_0_6
+
+GST_PLUGINS_RS_NIX_0_23_2_MD5 := e3bd46e4620b19864b2dd3542bb14c1c
+GST_PLUGINS_RS_NIX_0_23_2_URL := https://crates.io/api/v1/crates/nix/0.23.2/download
+GST_PLUGINS_RS_NIX_0_23_2_SOURCE := $(SRCDIR)/nix-0.23.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_NIX_0_23_2
+
+GST_PLUGINS_RS_NNNOISELESS_0_5_1_MD5 := 80af0cceca1c20946b2e087a52dae501
+GST_PLUGINS_RS_NNNOISELESS_0_5_1_URL := https://crates.io/api/v1/crates/nnnoiseless/0.5.1/download
+GST_PLUGINS_RS_NNNOISELESS_0_5_1_SOURCE := $(SRCDIR)/nnnoiseless-0.5.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_NNNOISELESS_0_5_1
+
+GST_PLUGINS_RS_NOM_7_1_3_MD5 := f17aecb8887cf0ecd823623160aed7db
+GST_PLUGINS_RS_NOM_7_1_3_URL := https://crates.io/api/v1/crates/nom/7.1.3/download
+GST_PLUGINS_RS_NOM_7_1_3_SOURCE := $(SRCDIR)/nom-7.1.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_NOM_7_1_3
+
+GST_PLUGINS_RS_NOOP_PROC_MACRO_0_3_0_MD5 := a584467fc24841b97d682fe620dfe708
+GST_PLUGINS_RS_NOOP_PROC_MACRO_0_3_0_URL := https://crates.io/api/v1/crates/noop_proc_macro/0.3.0/download
+GST_PLUGINS_RS_NOOP_PROC_MACRO_0_3_0_SOURCE := $(SRCDIR)/noop_proc_macro-0.3.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_NOOP_PROC_MACRO_0_3_0
+
+GST_PLUGINS_RS_NU_ANSI_TERM_0_46_0_MD5 := a56461a712a83abc691cf473d1835228
+GST_PLUGINS_RS_NU_ANSI_TERM_0_46_0_URL := https://crates.io/api/v1/crates/nu-ansi-term/0.46.0/download
+GST_PLUGINS_RS_NU_ANSI_TERM_0_46_0_SOURCE := $(SRCDIR)/nu-ansi-term-0.46.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_NU_ANSI_TERM_0_46_0
+
+GST_PLUGINS_RS_NUM_BIGINT_0_4_4_MD5 := 29dc2c0d8955325173a3f13b2b00833d
+GST_PLUGINS_RS_NUM_BIGINT_0_4_4_URL := https://crates.io/api/v1/crates/num-bigint/0.4.4/download
+GST_PLUGINS_RS_NUM_BIGINT_0_4_4_SOURCE := $(SRCDIR)/num-bigint-0.4.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_NUM_BIGINT_0_4_4
+
+GST_PLUGINS_RS_NUM_COMPLEX_0_4_5_MD5 := 8702331f43664665d6019e53fb05ca40
+GST_PLUGINS_RS_NUM_COMPLEX_0_4_5_URL := https://crates.io/api/v1/crates/num-complex/0.4.5/download
+GST_PLUGINS_RS_NUM_COMPLEX_0_4_5_SOURCE := $(SRCDIR)/num-complex-0.4.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_NUM_COMPLEX_0_4_5
+
+GST_PLUGINS_RS_NUM_CONV_0_1_0_MD5 := 5b5de6cffe4726037a5ec6d6931c80f3
+GST_PLUGINS_RS_NUM_CONV_0_1_0_URL := https://crates.io/api/v1/crates/num-conv/0.1.0/download
+GST_PLUGINS_RS_NUM_CONV_0_1_0_SOURCE := $(SRCDIR)/num-conv-0.1.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_NUM_CONV_0_1_0
+
+GST_PLUGINS_RS_NUM_DERIVE_0_4_2_MD5 := 3cf2c6451073b85f3075962a60bb90a0
+GST_PLUGINS_RS_NUM_DERIVE_0_4_2_URL := https://crates.io/api/v1/crates/num-derive/0.4.2/download
+GST_PLUGINS_RS_NUM_DERIVE_0_4_2_SOURCE := $(SRCDIR)/num-derive-0.4.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_NUM_DERIVE_0_4_2
+
+GST_PLUGINS_RS_NUM_INTEGER_0_1_46_MD5 := 1b3093a865e51ce798ed79054dd3d829
+GST_PLUGINS_RS_NUM_INTEGER_0_1_46_URL := https://crates.io/api/v1/crates/num-integer/0.1.46/download
+GST_PLUGINS_RS_NUM_INTEGER_0_1_46_SOURCE := $(SRCDIR)/num-integer-0.1.46.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_NUM_INTEGER_0_1_46
+
+GST_PLUGINS_RS_NUM_RATIONAL_0_4_1_MD5 := 00ebf3254ed74711c1f6717de3012350
+GST_PLUGINS_RS_NUM_RATIONAL_0_4_1_URL := https://crates.io/api/v1/crates/num-rational/0.4.1/download
+GST_PLUGINS_RS_NUM_RATIONAL_0_4_1_SOURCE := $(SRCDIR)/num-rational-0.4.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_NUM_RATIONAL_0_4_1
+
+GST_PLUGINS_RS_NUM_TRAITS_0_2_18_MD5 := a06099d8d1b082ec6ee23c44750873ca
+GST_PLUGINS_RS_NUM_TRAITS_0_2_18_URL := https://crates.io/api/v1/crates/num-traits/0.2.18/download
+GST_PLUGINS_RS_NUM_TRAITS_0_2_18_SOURCE := $(SRCDIR)/num-traits-0.2.18.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_NUM_TRAITS_0_2_18
+
+GST_PLUGINS_RS_NUM_CPUS_1_16_0_MD5 := d443cbf9907b31a0f396fb13489d6cd0
+GST_PLUGINS_RS_NUM_CPUS_1_16_0_URL := https://crates.io/api/v1/crates/num_cpus/1.16.0/download
+GST_PLUGINS_RS_NUM_CPUS_1_16_0_SOURCE := $(SRCDIR)/num_cpus-1.16.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_NUM_CPUS_1_16_0
+
+GST_PLUGINS_RS_OBJECT_0_32_2_MD5 := 0d98aaf27d3cace75f9959c04b910891
+GST_PLUGINS_RS_OBJECT_0_32_2_URL := https://crates.io/api/v1/crates/object/0.32.2/download
+GST_PLUGINS_RS_OBJECT_0_32_2_SOURCE := $(SRCDIR)/object-0.32.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_OBJECT_0_32_2
+
+GST_PLUGINS_RS_OGG_0_8_0_MD5 := e460418ee4f5508bc53c97e809331882
+GST_PLUGINS_RS_OGG_0_8_0_URL := https://crates.io/api/v1/crates/ogg/0.8.0/download
+GST_PLUGINS_RS_OGG_0_8_0_SOURCE := $(SRCDIR)/ogg-0.8.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_OGG_0_8_0
+
+GST_PLUGINS_RS_ONCE_CELL_1_19_0_MD5 := 8390247ae7126c00e162732b249be9d7
+GST_PLUGINS_RS_ONCE_CELL_1_19_0_URL := https://crates.io/api/v1/crates/once_cell/1.19.0/download
+GST_PLUGINS_RS_ONCE_CELL_1_19_0_SOURCE := $(SRCDIR)/once_cell-1.19.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ONCE_CELL_1_19_0
+
+GST_PLUGINS_RS_OPAQUE_DEBUG_0_3_1_MD5 := af58dda7d5f0917aae30cf3f5fffdadf
+GST_PLUGINS_RS_OPAQUE_DEBUG_0_3_1_URL := https://crates.io/api/v1/crates/opaque-debug/0.3.1/download
+GST_PLUGINS_RS_OPAQUE_DEBUG_0_3_1_SOURCE := $(SRCDIR)/opaque-debug-0.3.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_OPAQUE_DEBUG_0_3_1
+
+GST_PLUGINS_RS_OPENSSL_0_10_64_MD5 := f4c1fe0f183ec61db569aeb437c6f9cd
+GST_PLUGINS_RS_OPENSSL_0_10_64_URL := https://crates.io/api/v1/crates/openssl/0.10.64/download
+GST_PLUGINS_RS_OPENSSL_0_10_64_SOURCE := $(SRCDIR)/openssl-0.10.64.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_OPENSSL_0_10_64
+
+GST_PLUGINS_RS_OPENSSL_MACROS_0_1_1_MD5 := 28d34115cfbbe0e8f80333591f2cdd84
+GST_PLUGINS_RS_OPENSSL_MACROS_0_1_1_URL := https://crates.io/api/v1/crates/openssl-macros/0.1.1/download
+GST_PLUGINS_RS_OPENSSL_MACROS_0_1_1_SOURCE := $(SRCDIR)/openssl-macros-0.1.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_OPENSSL_MACROS_0_1_1
+
+GST_PLUGINS_RS_OPENSSL_PROBE_0_1_5_MD5 := 907244c0d3791f3f981c7cc8e4cad0a3
+GST_PLUGINS_RS_OPENSSL_PROBE_0_1_5_URL := https://crates.io/api/v1/crates/openssl-probe/0.1.5/download
+GST_PLUGINS_RS_OPENSSL_PROBE_0_1_5_SOURCE := $(SRCDIR)/openssl-probe-0.1.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_OPENSSL_PROBE_0_1_5
+
+GST_PLUGINS_RS_OPENSSL_SYS_0_9_102_MD5 := 663a7dc80c4a8280f108a350bca1f125
+GST_PLUGINS_RS_OPENSSL_SYS_0_9_102_URL := https://crates.io/api/v1/crates/openssl-sys/0.9.102/download
+GST_PLUGINS_RS_OPENSSL_SYS_0_9_102_SOURCE := $(SRCDIR)/openssl-sys-0.9.102.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_OPENSSL_SYS_0_9_102
+
+GST_PLUGINS_RS_OPTION_OPERATIONS_0_5_0_MD5 := 6710a057e8c6105acb459a01134e3d25
+GST_PLUGINS_RS_OPTION_OPERATIONS_0_5_0_URL := https://crates.io/api/v1/crates/option-operations/0.5.0/download
+GST_PLUGINS_RS_OPTION_OPERATIONS_0_5_0_SOURCE := $(SRCDIR)/option-operations-0.5.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_OPTION_OPERATIONS_0_5_0
+
+GST_PLUGINS_RS_OUTREF_0_5_1_MD5 := b7581d28e027eccab5bed8d6f50bb49d
+GST_PLUGINS_RS_OUTREF_0_5_1_URL := https://crates.io/api/v1/crates/outref/0.5.1/download
+GST_PLUGINS_RS_OUTREF_0_5_1_SOURCE := $(SRCDIR)/outref-0.5.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_OUTREF_0_5_1
+
+GST_PLUGINS_RS_OVERLOAD_0_1_1_MD5 := 03a7ad2814bd9dd34e0acec8ca4f855e
+GST_PLUGINS_RS_OVERLOAD_0_1_1_URL := https://crates.io/api/v1/crates/overload/0.1.1/download
+GST_PLUGINS_RS_OVERLOAD_0_1_1_SOURCE := $(SRCDIR)/overload-0.1.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_OVERLOAD_0_1_1
+
+GST_PLUGINS_RS_P256_0_11_1_MD5 := a9c25aeb8cbdb3d778d3534c4101d2ef
+GST_PLUGINS_RS_P256_0_11_1_URL := https://crates.io/api/v1/crates/p256/0.11.1/download
+GST_PLUGINS_RS_P256_0_11_1_SOURCE := $(SRCDIR)/p256-0.11.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_P256_0_11_1
+
+GST_PLUGINS_RS_PARKING_2_2_0_MD5 := 1c81a692573ebbe22b81c1107d0ab518
+GST_PLUGINS_RS_PARKING_2_2_0_URL := https://crates.io/api/v1/crates/parking/2.2.0/download
+GST_PLUGINS_RS_PARKING_2_2_0_SOURCE := $(SRCDIR)/parking-2.2.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PARKING_2_2_0
+
+GST_PLUGINS_RS_PARKING_LOT_0_12_1_MD5 := 1be45f99109d447849f4244b58c5a470
+GST_PLUGINS_RS_PARKING_LOT_0_12_1_URL := https://crates.io/api/v1/crates/parking_lot/0.12.1/download
+GST_PLUGINS_RS_PARKING_LOT_0_12_1_SOURCE := $(SRCDIR)/parking_lot-0.12.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PARKING_LOT_0_12_1
+
+GST_PLUGINS_RS_PARKING_LOT_CORE_0_9_9_MD5 := 7502c2f15026ee3e6a01f57b92942771
+GST_PLUGINS_RS_PARKING_LOT_CORE_0_9_9_URL := https://crates.io/api/v1/crates/parking_lot_core/0.9.9/download
+GST_PLUGINS_RS_PARKING_LOT_CORE_0_9_9_SOURCE := $(SRCDIR)/parking_lot_core-0.9.9.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PARKING_LOT_CORE_0_9_9
+
+GST_PLUGINS_RS_PARSE_LINK_HEADER_0_3_3_MD5 := c3018d841109ef2d2f7e4a093e4bb730
+GST_PLUGINS_RS_PARSE_LINK_HEADER_0_3_3_URL := https://crates.io/api/v1/crates/parse_link_header/0.3.3/download
+GST_PLUGINS_RS_PARSE_LINK_HEADER_0_3_3_SOURCE := $(SRCDIR)/parse_link_header-0.3.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PARSE_LINK_HEADER_0_3_3
+
+GST_PLUGINS_RS_PASTE_1_0_14_MD5 := 1781b204ec7b6b1ef9232d429e6a973a
+GST_PLUGINS_RS_PASTE_1_0_14_URL := https://crates.io/api/v1/crates/paste/1.0.14/download
+GST_PLUGINS_RS_PASTE_1_0_14_SOURCE := $(SRCDIR)/paste-1.0.14.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PASTE_1_0_14
+
+GST_PLUGINS_RS_PBJSON_0_6_0_MD5 := d530aa0759fdfc8b2b48d53ce40b440d
+GST_PLUGINS_RS_PBJSON_0_6_0_URL := https://crates.io/api/v1/crates/pbjson/0.6.0/download
+GST_PLUGINS_RS_PBJSON_0_6_0_SOURCE := $(SRCDIR)/pbjson-0.6.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PBJSON_0_6_0
+
+GST_PLUGINS_RS_PBJSON_BUILD_0_6_2_MD5 := f056c1af64b192bf8b5c106d9aa45493
+GST_PLUGINS_RS_PBJSON_BUILD_0_6_2_URL := https://crates.io/api/v1/crates/pbjson-build/0.6.2/download
+GST_PLUGINS_RS_PBJSON_BUILD_0_6_2_SOURCE := $(SRCDIR)/pbjson-build-0.6.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PBJSON_BUILD_0_6_2
+
+GST_PLUGINS_RS_PBJSON_TYPES_0_6_0_MD5 := ce976a08a154825723a3cbdc93e5d3ae
+GST_PLUGINS_RS_PBJSON_TYPES_0_6_0_URL := https://crates.io/api/v1/crates/pbjson-types/0.6.0/download
+GST_PLUGINS_RS_PBJSON_TYPES_0_6_0_SOURCE := $(SRCDIR)/pbjson-types-0.6.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PBJSON_TYPES_0_6_0
+
+GST_PLUGINS_RS_PBKDF2_0_8_0_MD5 := cf2f0435bd5b5111fea46e8d9dc6522d
+GST_PLUGINS_RS_PBKDF2_0_8_0_URL := https://crates.io/api/v1/crates/pbkdf2/0.8.0/download
+GST_PLUGINS_RS_PBKDF2_0_8_0_SOURCE := $(SRCDIR)/pbkdf2-0.8.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PBKDF2_0_8_0
+
+GST_PLUGINS_RS_PERCENT_ENCODING_2_3_1_MD5 := 0ba30a94d7b8865c23e86d4d64e5b91e
+GST_PLUGINS_RS_PERCENT_ENCODING_2_3_1_URL := https://crates.io/api/v1/crates/percent-encoding/2.3.1/download
+GST_PLUGINS_RS_PERCENT_ENCODING_2_3_1_SOURCE := $(SRCDIR)/percent-encoding-2.3.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PERCENT_ENCODING_2_3_1
+
+GST_PLUGINS_RS_PETGRAPH_0_6_4_MD5 := 0e6a13dccbf3729783caace05fc8d8d4
+GST_PLUGINS_RS_PETGRAPH_0_6_4_URL := https://crates.io/api/v1/crates/petgraph/0.6.4/download
+GST_PLUGINS_RS_PETGRAPH_0_6_4_SOURCE := $(SRCDIR)/petgraph-0.6.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PETGRAPH_0_6_4
+
+GST_PLUGINS_RS_PIN_PROJECT_1_1_5_MD5 := 44f053408a962a7844f01f5489605a0f
+GST_PLUGINS_RS_PIN_PROJECT_1_1_5_URL := https://crates.io/api/v1/crates/pin-project/1.1.5/download
+GST_PLUGINS_RS_PIN_PROJECT_1_1_5_SOURCE := $(SRCDIR)/pin-project-1.1.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PIN_PROJECT_1_1_5
+
+GST_PLUGINS_RS_PIN_PROJECT_INTERNAL_1_1_5_MD5 := 7e85eab95cabf5f5345db3ab007fb4a9
+GST_PLUGINS_RS_PIN_PROJECT_INTERNAL_1_1_5_URL := https://crates.io/api/v1/crates/pin-project-internal/1.1.5/download
+GST_PLUGINS_RS_PIN_PROJECT_INTERNAL_1_1_5_SOURCE := $(SRCDIR)/pin-project-internal-1.1.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PIN_PROJECT_INTERNAL_1_1_5
+
+GST_PLUGINS_RS_PIN_PROJECT_LITE_0_2_14_MD5 := a9a6ce6cd4b12f9c4f6840df87d5da0d
+GST_PLUGINS_RS_PIN_PROJECT_LITE_0_2_14_URL := https://crates.io/api/v1/crates/pin-project-lite/0.2.14/download
+GST_PLUGINS_RS_PIN_PROJECT_LITE_0_2_14_SOURCE := $(SRCDIR)/pin-project-lite-0.2.14.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PIN_PROJECT_LITE_0_2_14
+
+GST_PLUGINS_RS_PIN_UTILS_0_1_0_MD5 := 07c75fec267864bcbb800ca7709ceae2
+GST_PLUGINS_RS_PIN_UTILS_0_1_0_URL := https://crates.io/api/v1/crates/pin-utils/0.1.0/download
+GST_PLUGINS_RS_PIN_UTILS_0_1_0_SOURCE := $(SRCDIR)/pin-utils-0.1.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PIN_UTILS_0_1_0
+
+GST_PLUGINS_RS_PKCS8_0_9_0_MD5 := 51ae68c1bf4d1bb8261ac8d8fcba0eac
+GST_PLUGINS_RS_PKCS8_0_9_0_URL := https://crates.io/api/v1/crates/pkcs8/0.9.0/download
+GST_PLUGINS_RS_PKCS8_0_9_0_SOURCE := $(SRCDIR)/pkcs8-0.9.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PKCS8_0_9_0
+
+GST_PLUGINS_RS_PKG_CONFIG_0_3_30_MD5 := 524ffd7a9b5b25c4d388686a5dde5cac
+GST_PLUGINS_RS_PKG_CONFIG_0_3_30_URL := https://crates.io/api/v1/crates/pkg-config/0.3.30/download
+GST_PLUGINS_RS_PKG_CONFIG_0_3_30_SOURCE := $(SRCDIR)/pkg-config-0.3.30.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PKG_CONFIG_0_3_30
+
+GST_PLUGINS_RS_PNG_0_17_13_MD5 := 263a4e4ee967b56a460b6b717fa53279
+GST_PLUGINS_RS_PNG_0_17_13_URL := https://crates.io/api/v1/crates/png/0.17.13/download
+GST_PLUGINS_RS_PNG_0_17_13_SOURCE := $(SRCDIR)/png-0.17.13.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PNG_0_17_13
+
+GST_PLUGINS_RS_POCKET_RESOURCES_0_3_2_MD5 := 3b2dd4a6b07468581165c5fa940d426b
+GST_PLUGINS_RS_POCKET_RESOURCES_0_3_2_URL := https://crates.io/api/v1/crates/pocket-resources/0.3.2/download
+GST_PLUGINS_RS_POCKET_RESOURCES_0_3_2_SOURCE := $(SRCDIR)/pocket-resources-0.3.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_POCKET_RESOURCES_0_3_2
+
+GST_PLUGINS_RS_POLLING_3_6_0_MD5 := 9d5823c86d6e01773cde56cf9d82e7e0
+GST_PLUGINS_RS_POLLING_3_6_0_URL := https://crates.io/api/v1/crates/polling/3.6.0/download
+GST_PLUGINS_RS_POLLING_3_6_0_SOURCE := $(SRCDIR)/polling-3.6.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_POLLING_3_6_0
+
+GST_PLUGINS_RS_POWERFMT_0_2_0_MD5 := 30eb4de1c1a3bd214d7649b891abf444
+GST_PLUGINS_RS_POWERFMT_0_2_0_URL := https://crates.io/api/v1/crates/powerfmt/0.2.0/download
+GST_PLUGINS_RS_POWERFMT_0_2_0_SOURCE := $(SRCDIR)/powerfmt-0.2.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_POWERFMT_0_2_0
+
+GST_PLUGINS_RS_PPV_LITE86_0_2_17_MD5 := 5c69337d37e58a380e00eac9ce0373bb
+GST_PLUGINS_RS_PPV_LITE86_0_2_17_URL := https://crates.io/api/v1/crates/ppv-lite86/0.2.17/download
+GST_PLUGINS_RS_PPV_LITE86_0_2_17_SOURCE := $(SRCDIR)/ppv-lite86-0.2.17.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PPV_LITE86_0_2_17
+
+GST_PLUGINS_RS_PRETTY_ASSERTIONS_1_4_0_MD5 := 20bc0926b659e86cc5ea66cf928caec9
+GST_PLUGINS_RS_PRETTY_ASSERTIONS_1_4_0_URL := https://crates.io/api/v1/crates/pretty_assertions/1.4.0/download
+GST_PLUGINS_RS_PRETTY_ASSERTIONS_1_4_0_SOURCE := $(SRCDIR)/pretty_assertions-1.4.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PRETTY_ASSERTIONS_1_4_0
+
+GST_PLUGINS_RS_PRETTYPLEASE_0_2_17_MD5 := 45f98786c61f673abd53bd1bd4c8a1c7
+GST_PLUGINS_RS_PRETTYPLEASE_0_2_17_URL := https://crates.io/api/v1/crates/prettyplease/0.2.17/download
+GST_PLUGINS_RS_PRETTYPLEASE_0_2_17_SOURCE := $(SRCDIR)/prettyplease-0.2.17.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PRETTYPLEASE_0_2_17
+
+GST_PLUGINS_RS_PRIMAL_CHECK_0_3_3_MD5 := 4182f509ffcf6eb58da13e0edd9bbeea
+GST_PLUGINS_RS_PRIMAL_CHECK_0_3_3_URL := https://crates.io/api/v1/crates/primal-check/0.3.3/download
+GST_PLUGINS_RS_PRIMAL_CHECK_0_3_3_SOURCE := $(SRCDIR)/primal-check-0.3.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PRIMAL_CHECK_0_3_3
+
+GST_PLUGINS_RS_PRIORITY_QUEUE_1_4_0_MD5 := 232374820c8ad89ff8d4727d98222c18
+GST_PLUGINS_RS_PRIORITY_QUEUE_1_4_0_URL := https://crates.io/api/v1/crates/priority-queue/1.4.0/download
+GST_PLUGINS_RS_PRIORITY_QUEUE_1_4_0_SOURCE := $(SRCDIR)/priority-queue-1.4.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PRIORITY_QUEUE_1_4_0
+
+GST_PLUGINS_RS_PROC_MACRO_CRATE_3_1_0_MD5 := c755ef59e7394470f9e06673f7e02e2a
+GST_PLUGINS_RS_PROC_MACRO_CRATE_3_1_0_URL := https://crates.io/api/v1/crates/proc-macro-crate/3.1.0/download
+GST_PLUGINS_RS_PROC_MACRO_CRATE_3_1_0_SOURCE := $(SRCDIR)/proc-macro-crate-3.1.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PROC_MACRO_CRATE_3_1_0
+
+GST_PLUGINS_RS_PROC_MACRO_ERROR_1_0_4_MD5 := 6a32bab57772c3a1146d599b65ffb0cb
+GST_PLUGINS_RS_PROC_MACRO_ERROR_1_0_4_URL := https://crates.io/api/v1/crates/proc-macro-error/1.0.4/download
+GST_PLUGINS_RS_PROC_MACRO_ERROR_1_0_4_SOURCE := $(SRCDIR)/proc-macro-error-1.0.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PROC_MACRO_ERROR_1_0_4
+
+GST_PLUGINS_RS_PROC_MACRO_ERROR_ATTR_1_0_4_MD5 := 7d76a523677de261dda1b65d29a93c4e
+GST_PLUGINS_RS_PROC_MACRO_ERROR_ATTR_1_0_4_URL := https://crates.io/api/v1/crates/proc-macro-error-attr/1.0.4/download
+GST_PLUGINS_RS_PROC_MACRO_ERROR_ATTR_1_0_4_SOURCE := $(SRCDIR)/proc-macro-error-attr-1.0.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PROC_MACRO_ERROR_ATTR_1_0_4
+
+GST_PLUGINS_RS_PROC_MACRO2_1_0_79_MD5 := e0c30e3bc29a1b33c71f2823cd5b5365
+GST_PLUGINS_RS_PROC_MACRO2_1_0_79_URL := https://crates.io/api/v1/crates/proc-macro2/1.0.79/download
+GST_PLUGINS_RS_PROC_MACRO2_1_0_79_SOURCE := $(SRCDIR)/proc-macro2-1.0.79.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PROC_MACRO2_1_0_79
+
+GST_PLUGINS_RS_PROFILING_1_0_15_MD5 := 24e8e8e32191e65c92e3087787a67e74
+GST_PLUGINS_RS_PROFILING_1_0_15_URL := https://crates.io/api/v1/crates/profiling/1.0.15/download
+GST_PLUGINS_RS_PROFILING_1_0_15_SOURCE := $(SRCDIR)/profiling-1.0.15.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PROFILING_1_0_15
+
+GST_PLUGINS_RS_PROFILING_PROCMACROS_1_0_15_MD5 := 94cc2f0a62c0a5f3168fee50ad3c3453
+GST_PLUGINS_RS_PROFILING_PROCMACROS_1_0_15_URL := https://crates.io/api/v1/crates/profiling-procmacros/1.0.15/download
+GST_PLUGINS_RS_PROFILING_PROCMACROS_1_0_15_SOURCE := $(SRCDIR)/profiling-procmacros-1.0.15.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PROFILING_PROCMACROS_1_0_15
+
+GST_PLUGINS_RS_PROST_0_12_4_MD5 := 14fed48972fb35238b788386aac709e5
+GST_PLUGINS_RS_PROST_0_12_4_URL := https://crates.io/api/v1/crates/prost/0.12.4/download
+GST_PLUGINS_RS_PROST_0_12_4_SOURCE := $(SRCDIR)/prost-0.12.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PROST_0_12_4
+
+GST_PLUGINS_RS_PROST_BUILD_0_12_4_MD5 := 7e8e38a7bd4e98b49e311178813fb5a1
+GST_PLUGINS_RS_PROST_BUILD_0_12_4_URL := https://crates.io/api/v1/crates/prost-build/0.12.4/download
+GST_PLUGINS_RS_PROST_BUILD_0_12_4_SOURCE := $(SRCDIR)/prost-build-0.12.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PROST_BUILD_0_12_4
+
+GST_PLUGINS_RS_PROST_DERIVE_0_12_4_MD5 := d50126a09979d1197adf23395cf1a3cb
+GST_PLUGINS_RS_PROST_DERIVE_0_12_4_URL := https://crates.io/api/v1/crates/prost-derive/0.12.4/download
+GST_PLUGINS_RS_PROST_DERIVE_0_12_4_SOURCE := $(SRCDIR)/prost-derive-0.12.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PROST_DERIVE_0_12_4
+
+GST_PLUGINS_RS_PROST_TYPES_0_12_4_MD5 := 7ad49b86d410ed97e0ead4a5961b9dfd
+GST_PLUGINS_RS_PROST_TYPES_0_12_4_URL := https://crates.io/api/v1/crates/prost-types/0.12.4/download
+GST_PLUGINS_RS_PROST_TYPES_0_12_4_SOURCE := $(SRCDIR)/prost-types-0.12.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PROST_TYPES_0_12_4
+
+GST_PLUGINS_RS_PROTOBUF_2_28_0_MD5 := 5770ccff26d6481010ab6c6006cda25a
+GST_PLUGINS_RS_PROTOBUF_2_28_0_URL := https://crates.io/api/v1/crates/protobuf/2.28.0/download
+GST_PLUGINS_RS_PROTOBUF_2_28_0_SOURCE := $(SRCDIR)/protobuf-2.28.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PROTOBUF_2_28_0
+
+GST_PLUGINS_RS_PROTOBUF_CODEGEN_2_28_0_MD5 := c2a8746886f9f7bcc8fb9dd539183e44
+GST_PLUGINS_RS_PROTOBUF_CODEGEN_2_28_0_URL := https://crates.io/api/v1/crates/protobuf-codegen/2.28.0/download
+GST_PLUGINS_RS_PROTOBUF_CODEGEN_2_28_0_SOURCE := $(SRCDIR)/protobuf-codegen-2.28.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PROTOBUF_CODEGEN_2_28_0
+
+GST_PLUGINS_RS_PROTOBUF_CODEGEN_PURE_2_28_0_MD5 := 4785f3ef9f313f11aae87120112c45b6
+GST_PLUGINS_RS_PROTOBUF_CODEGEN_PURE_2_28_0_URL := https://crates.io/api/v1/crates/protobuf-codegen-pure/2.28.0/download
+GST_PLUGINS_RS_PROTOBUF_CODEGEN_PURE_2_28_0_SOURCE := $(SRCDIR)/protobuf-codegen-pure-2.28.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PROTOBUF_CODEGEN_PURE_2_28_0
+
+GST_PLUGINS_RS_PSL_TYPES_2_0_11_MD5 := 63afb9414a9c6456ea2206e982885d82
+GST_PLUGINS_RS_PSL_TYPES_2_0_11_URL := https://crates.io/api/v1/crates/psl-types/2.0.11/download
+GST_PLUGINS_RS_PSL_TYPES_2_0_11_SOURCE := $(SRCDIR)/psl-types-2.0.11.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PSL_TYPES_2_0_11
+
+GST_PLUGINS_RS_PUBLICSUFFIX_2_2_3_MD5 := 9e7bad2f5c9cfa7a498f24c67ed02cb6
+GST_PLUGINS_RS_PUBLICSUFFIX_2_2_3_URL := https://crates.io/api/v1/crates/publicsuffix/2.2.3/download
+GST_PLUGINS_RS_PUBLICSUFFIX_2_2_3_SOURCE := $(SRCDIR)/publicsuffix-2.2.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_PUBLICSUFFIX_2_2_3
+
+GST_PLUGINS_RS_QUICK_XML_0_31_0_MD5 := 5d249ea25d57d9e5b051a504a2f62a62
+GST_PLUGINS_RS_QUICK_XML_0_31_0_URL := https://crates.io/api/v1/crates/quick-xml/0.31.0/download
+GST_PLUGINS_RS_QUICK_XML_0_31_0_SOURCE := $(SRCDIR)/quick-xml-0.31.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_QUICK_XML_0_31_0
+
+GST_PLUGINS_RS_QUOTE_1_0_35_MD5 := 0358b31bf59c7915bb03f9e66f2d1ea3
+GST_PLUGINS_RS_QUOTE_1_0_35_URL := https://crates.io/api/v1/crates/quote/1.0.35/download
+GST_PLUGINS_RS_QUOTE_1_0_35_SOURCE := $(SRCDIR)/quote-1.0.35.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_QUOTE_1_0_35
+
+GST_PLUGINS_RS_RAND_0_8_5_MD5 := ee7a5f842c39bc47c474196e83b0df5f
+GST_PLUGINS_RS_RAND_0_8_5_URL := https://crates.io/api/v1/crates/rand/0.8.5/download
+GST_PLUGINS_RS_RAND_0_8_5_SOURCE := $(SRCDIR)/rand-0.8.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RAND_0_8_5
+
+GST_PLUGINS_RS_RAND_CHACHA_0_3_1_MD5 := e30085994bbeb4b7f4895d48216d5476
+GST_PLUGINS_RS_RAND_CHACHA_0_3_1_URL := https://crates.io/api/v1/crates/rand_chacha/0.3.1/download
+GST_PLUGINS_RS_RAND_CHACHA_0_3_1_SOURCE := $(SRCDIR)/rand_chacha-0.3.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RAND_CHACHA_0_3_1
+
+GST_PLUGINS_RS_RAND_CORE_0_6_4_MD5 := a1626b8f4d165b1b60d960862eba4cf0
+GST_PLUGINS_RS_RAND_CORE_0_6_4_URL := https://crates.io/api/v1/crates/rand_core/0.6.4/download
+GST_PLUGINS_RS_RAND_CORE_0_6_4_SOURCE := $(SRCDIR)/rand_core-0.6.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RAND_CORE_0_6_4
+
+GST_PLUGINS_RS_RAND_DISTR_0_4_3_MD5 := a661e92ffd6cb9f0893126e3cde3fffc
+GST_PLUGINS_RS_RAND_DISTR_0_4_3_URL := https://crates.io/api/v1/crates/rand_distr/0.4.3/download
+GST_PLUGINS_RS_RAND_DISTR_0_4_3_SOURCE := $(SRCDIR)/rand_distr-0.4.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RAND_DISTR_0_4_3
+
+GST_PLUGINS_RS_RAPTORQ_1_8_1_MD5 := 1764fa6a23da284831fef91d243121a7
+GST_PLUGINS_RS_RAPTORQ_1_8_1_URL := https://crates.io/api/v1/crates/raptorq/1.8.1/download
+GST_PLUGINS_RS_RAPTORQ_1_8_1_SOURCE := $(SRCDIR)/raptorq-1.8.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RAPTORQ_1_8_1
+
+GST_PLUGINS_RS_RAV1E_0_7_1_MD5 := f48a7946361f41a1c5e5ff26a6abcf3b
+GST_PLUGINS_RS_RAV1E_0_7_1_URL := https://crates.io/api/v1/crates/rav1e/0.7.1/download
+GST_PLUGINS_RS_RAV1E_0_7_1_SOURCE := $(SRCDIR)/rav1e-0.7.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RAV1E_0_7_1
+
+GST_PLUGINS_RS_RAYON_1_10_0_MD5 := 7ee7a2b2f09d09fa2b1fb4c594fc8396
+GST_PLUGINS_RS_RAYON_1_10_0_URL := https://crates.io/api/v1/crates/rayon/1.10.0/download
+GST_PLUGINS_RS_RAYON_1_10_0_SOURCE := $(SRCDIR)/rayon-1.10.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RAYON_1_10_0
+
+GST_PLUGINS_RS_RAYON_CORE_1_12_1_MD5 := 7604a19f6ff2021e9fc02f9bce604494
+GST_PLUGINS_RS_RAYON_CORE_1_12_1_URL := https://crates.io/api/v1/crates/rayon-core/1.12.1/download
+GST_PLUGINS_RS_RAYON_CORE_1_12_1_SOURCE := $(SRCDIR)/rayon-core-1.12.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RAYON_CORE_1_12_1
+
+GST_PLUGINS_RS_REALFFT_3_3_0_MD5 := f6b79e754527846a373532058f704bd0
+GST_PLUGINS_RS_REALFFT_3_3_0_URL := https://crates.io/api/v1/crates/realfft/3.3.0/download
+GST_PLUGINS_RS_REALFFT_3_3_0_SOURCE := $(SRCDIR)/realfft-3.3.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_REALFFT_3_3_0
+
+GST_PLUGINS_RS_REDOX_SYSCALL_0_4_1_MD5 := ff1d093069cfc9eb161907e17a51208b
+GST_PLUGINS_RS_REDOX_SYSCALL_0_4_1_URL := https://crates.io/api/v1/crates/redox_syscall/0.4.1/download
+GST_PLUGINS_RS_REDOX_SYSCALL_0_4_1_SOURCE := $(SRCDIR)/redox_syscall-0.4.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_REDOX_SYSCALL_0_4_1
+
+GST_PLUGINS_RS_REGEX_1_10_4_MD5 := e19600513eaf0823f25a621088b44d2c
+GST_PLUGINS_RS_REGEX_1_10_4_URL := https://crates.io/api/v1/crates/regex/1.10.4/download
+GST_PLUGINS_RS_REGEX_1_10_4_SOURCE := $(SRCDIR)/regex-1.10.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_REGEX_1_10_4
+
+GST_PLUGINS_RS_REGEX_AUTOMATA_0_1_10_MD5 := 95f4b6766a27d814b4e54d1ccb3b7fc9
+GST_PLUGINS_RS_REGEX_AUTOMATA_0_1_10_URL := https://crates.io/api/v1/crates/regex-automata/0.1.10/download
+GST_PLUGINS_RS_REGEX_AUTOMATA_0_1_10_SOURCE := $(SRCDIR)/regex-automata-0.1.10.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_REGEX_AUTOMATA_0_1_10
+
+GST_PLUGINS_RS_REGEX_AUTOMATA_0_4_6_MD5 := 520b920d0c711ec1a17fb19a6060446a
+GST_PLUGINS_RS_REGEX_AUTOMATA_0_4_6_URL := https://crates.io/api/v1/crates/regex-automata/0.4.6/download
+GST_PLUGINS_RS_REGEX_AUTOMATA_0_4_6_SOURCE := $(SRCDIR)/regex-automata-0.4.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_REGEX_AUTOMATA_0_4_6
+
+GST_PLUGINS_RS_REGEX_LITE_0_1_5_MD5 := fbc9c250adc39be43a90d8d999cb7953
+GST_PLUGINS_RS_REGEX_LITE_0_1_5_URL := https://crates.io/api/v1/crates/regex-lite/0.1.5/download
+GST_PLUGINS_RS_REGEX_LITE_0_1_5_SOURCE := $(SRCDIR)/regex-lite-0.1.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_REGEX_LITE_0_1_5
+
+GST_PLUGINS_RS_REGEX_SYNTAX_0_6_29_MD5 := f2303650593b13e30a85e39d8c79c961
+GST_PLUGINS_RS_REGEX_SYNTAX_0_6_29_URL := https://crates.io/api/v1/crates/regex-syntax/0.6.29/download
+GST_PLUGINS_RS_REGEX_SYNTAX_0_6_29_SOURCE := $(SRCDIR)/regex-syntax-0.6.29.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_REGEX_SYNTAX_0_6_29
+
+GST_PLUGINS_RS_REGEX_SYNTAX_0_8_3_MD5 := 5ff02ce05f7f204690c26cb20f3cf2d0
+GST_PLUGINS_RS_REGEX_SYNTAX_0_8_3_URL := https://crates.io/api/v1/crates/regex-syntax/0.8.3/download
+GST_PLUGINS_RS_REGEX_SYNTAX_0_8_3_SOURCE := $(SRCDIR)/regex-syntax-0.8.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_REGEX_SYNTAX_0_8_3
+
+GST_PLUGINS_RS_REQWEST_0_11_27_MD5 := 95fbab35ec6efdb8338f1109e4ac181a
+GST_PLUGINS_RS_REQWEST_0_11_27_URL := https://crates.io/api/v1/crates/reqwest/0.11.27/download
+GST_PLUGINS_RS_REQWEST_0_11_27_SOURCE := $(SRCDIR)/reqwest-0.11.27.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_REQWEST_0_11_27
+
+GST_PLUGINS_RS_REQWEST_0_12_3_MD5 := 1a23facce2cb8b0572296c3141512427
+GST_PLUGINS_RS_REQWEST_0_12_3_URL := https://crates.io/api/v1/crates/reqwest/0.12.3/download
+GST_PLUGINS_RS_REQWEST_0_12_3_SOURCE := $(SRCDIR)/reqwest-0.12.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_REQWEST_0_12_3
+
+GST_PLUGINS_RS_RFC6979_0_3_1_MD5 := 0f8abe719ab40fbe5bec2aa247645588
+GST_PLUGINS_RS_RFC6979_0_3_1_URL := https://crates.io/api/v1/crates/rfc6979/0.3.1/download
+GST_PLUGINS_RS_RFC6979_0_3_1_SOURCE := $(SRCDIR)/rfc6979-0.3.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RFC6979_0_3_1
+
+GST_PLUGINS_RS_RGB_0_8_37_MD5 := c030fc13239cdae2e725b3c78fc07c54
+GST_PLUGINS_RS_RGB_0_8_37_URL := https://crates.io/api/v1/crates/rgb/0.8.37/download
+GST_PLUGINS_RS_RGB_0_8_37_SOURCE := $(SRCDIR)/rgb-0.8.37.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RGB_0_8_37
+
+GST_PLUGINS_RS_RING_0_17_8_MD5 := 2a22c24f8afff411e1cbe0e6c0d79e7f
+GST_PLUGINS_RS_RING_0_17_8_URL := https://crates.io/api/v1/crates/ring/0.17.8/download
+GST_PLUGINS_RS_RING_0_17_8_SOURCE := $(SRCDIR)/ring-0.17.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RING_0_17_8
+
+GST_PLUGINS_RS_RPASSWORD_6_0_1_MD5 := 961872666d1de352fd4936d0b18581dd
+GST_PLUGINS_RS_RPASSWORD_6_0_1_URL := https://crates.io/api/v1/crates/rpassword/6.0.1/download
+GST_PLUGINS_RS_RPASSWORD_6_0_1_SOURCE := $(SRCDIR)/rpassword-6.0.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RPASSWORD_6_0_1
+
+GST_PLUGINS_RS_RTSP_TYPES_0_1_1_MD5 := 7af317d58b24d8c62bae17a10c6ecc93
+GST_PLUGINS_RS_RTSP_TYPES_0_1_1_URL := https://crates.io/api/v1/crates/rtsp-types/0.1.1/download
+GST_PLUGINS_RS_RTSP_TYPES_0_1_1_SOURCE := $(SRCDIR)/rtsp-types-0.1.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RTSP_TYPES_0_1_1
+
+GST_PLUGINS_RS_RUBATO_0_14_1_MD5 := ebc6e51536f89328876010309309f667
+GST_PLUGINS_RS_RUBATO_0_14_1_URL := https://crates.io/api/v1/crates/rubato/0.14.1/download
+GST_PLUGINS_RS_RUBATO_0_14_1_SOURCE := $(SRCDIR)/rubato-0.14.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RUBATO_0_14_1
+
+GST_PLUGINS_RS_RUSTC_DEMANGLE_0_1_23_MD5 := 24fcbc2986fad09b25c9a4f9aef0a9e4
+GST_PLUGINS_RS_RUSTC_DEMANGLE_0_1_23_URL := https://crates.io/api/v1/crates/rustc-demangle/0.1.23/download
+GST_PLUGINS_RS_RUSTC_DEMANGLE_0_1_23_SOURCE := $(SRCDIR)/rustc-demangle-0.1.23.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RUSTC_DEMANGLE_0_1_23
+
+GST_PLUGINS_RS_RUSTC_VERSION_0_4_0_MD5 := fdf3aa5e1f6c33e4f68b0f7b08e1e94e
+GST_PLUGINS_RS_RUSTC_VERSION_0_4_0_URL := https://crates.io/api/v1/crates/rustc_version/0.4.0/download
+GST_PLUGINS_RS_RUSTC_VERSION_0_4_0_SOURCE := $(SRCDIR)/rustc_version-0.4.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RUSTC_VERSION_0_4_0
+
+GST_PLUGINS_RS_RUSTDCT_0_7_1_MD5 := 17c56242c062ed0b5d11b364ae4e1f73
+GST_PLUGINS_RS_RUSTDCT_0_7_1_URL := https://crates.io/api/v1/crates/rustdct/0.7.1/download
+GST_PLUGINS_RS_RUSTDCT_0_7_1_SOURCE := $(SRCDIR)/rustdct-0.7.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RUSTDCT_0_7_1
+
+GST_PLUGINS_RS_RUSTFFT_6_2_0_MD5 := 27a43575a7591499438a42b9fbfec589
+GST_PLUGINS_RS_RUSTFFT_6_2_0_URL := https://crates.io/api/v1/crates/rustfft/6.2.0/download
+GST_PLUGINS_RS_RUSTFFT_6_2_0_SOURCE := $(SRCDIR)/rustfft-6.2.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RUSTFFT_6_2_0
+
+GST_PLUGINS_RS_RUSTIX_0_38_32_MD5 := c74beacbda25822857d315b64c167575
+GST_PLUGINS_RS_RUSTIX_0_38_32_URL := https://crates.io/api/v1/crates/rustix/0.38.32/download
+GST_PLUGINS_RS_RUSTIX_0_38_32_SOURCE := $(SRCDIR)/rustix-0.38.32.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RUSTIX_0_38_32
+
+GST_PLUGINS_RS_RUSTLS_0_21_10_MD5 := 476b7b02dd072cb41c6dc20db1c69d67
+GST_PLUGINS_RS_RUSTLS_0_21_10_URL := https://crates.io/api/v1/crates/rustls/0.21.10/download
+GST_PLUGINS_RS_RUSTLS_0_21_10_SOURCE := $(SRCDIR)/rustls-0.21.10.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RUSTLS_0_21_10
+
+GST_PLUGINS_RS_RUSTLS_NATIVE_CERTS_0_6_3_MD5 := 084b7be564e38bc109b9b70631e1784e
+GST_PLUGINS_RS_RUSTLS_NATIVE_CERTS_0_6_3_URL := https://crates.io/api/v1/crates/rustls-native-certs/0.6.3/download
+GST_PLUGINS_RS_RUSTLS_NATIVE_CERTS_0_6_3_SOURCE := $(SRCDIR)/rustls-native-certs-0.6.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RUSTLS_NATIVE_CERTS_0_6_3
+
+GST_PLUGINS_RS_RUSTLS_PEMFILE_1_0_4_MD5 := 64f80235e287a272c4f841791884a1de
+GST_PLUGINS_RS_RUSTLS_PEMFILE_1_0_4_URL := https://crates.io/api/v1/crates/rustls-pemfile/1.0.4/download
+GST_PLUGINS_RS_RUSTLS_PEMFILE_1_0_4_SOURCE := $(SRCDIR)/rustls-pemfile-1.0.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RUSTLS_PEMFILE_1_0_4
+
+GST_PLUGINS_RS_RUSTLS_PEMFILE_2_1_2_MD5 := c16e8027d2f6a84b07637ed9dd6a46e6
+GST_PLUGINS_RS_RUSTLS_PEMFILE_2_1_2_URL := https://crates.io/api/v1/crates/rustls-pemfile/2.1.2/download
+GST_PLUGINS_RS_RUSTLS_PEMFILE_2_1_2_SOURCE := $(SRCDIR)/rustls-pemfile-2.1.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RUSTLS_PEMFILE_2_1_2
+
+GST_PLUGINS_RS_RUSTLS_PKI_TYPES_1_4_1_MD5 := d6e6a877f077ad3d757ade50740da0c0
+GST_PLUGINS_RS_RUSTLS_PKI_TYPES_1_4_1_URL := https://crates.io/api/v1/crates/rustls-pki-types/1.4.1/download
+GST_PLUGINS_RS_RUSTLS_PKI_TYPES_1_4_1_SOURCE := $(SRCDIR)/rustls-pki-types-1.4.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RUSTLS_PKI_TYPES_1_4_1
+
+GST_PLUGINS_RS_RUSTLS_WEBPKI_0_101_7_MD5 := 9a668fb72cd7aeefb4e48fc37bdc0a4e
+GST_PLUGINS_RS_RUSTLS_WEBPKI_0_101_7_URL := https://crates.io/api/v1/crates/rustls-webpki/0.101.7/download
+GST_PLUGINS_RS_RUSTLS_WEBPKI_0_101_7_SOURCE := $(SRCDIR)/rustls-webpki-0.101.7.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RUSTLS_WEBPKI_0_101_7
+
+GST_PLUGINS_RS_RYU_1_0_17_MD5 := feefd8369d6dd6a0f269bbed1b921349
+GST_PLUGINS_RS_RYU_1_0_17_URL := https://crates.io/api/v1/crates/ryu/1.0.17/download
+GST_PLUGINS_RS_RYU_1_0_17_SOURCE := $(SRCDIR)/ryu-1.0.17.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_RYU_1_0_17
+
+GST_PLUGINS_RS_SAME_FILE_1_0_6_MD5 := 2d8d8b377d144f5e32b4f65a69eb0b24
+GST_PLUGINS_RS_SAME_FILE_1_0_6_URL := https://crates.io/api/v1/crates/same-file/1.0.6/download
+GST_PLUGINS_RS_SAME_FILE_1_0_6_SOURCE := $(SRCDIR)/same-file-1.0.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SAME_FILE_1_0_6
+
+GST_PLUGINS_RS_SCHANNEL_0_1_23_MD5 := 6a0950fa3775d755dbbdbd24a2841786
+GST_PLUGINS_RS_SCHANNEL_0_1_23_URL := https://crates.io/api/v1/crates/schannel/0.1.23/download
+GST_PLUGINS_RS_SCHANNEL_0_1_23_SOURCE := $(SRCDIR)/schannel-0.1.23.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SCHANNEL_0_1_23
+
+GST_PLUGINS_RS_SCOPED_TLS_1_0_1_MD5 := b898bcf321bba46ecd15c9279cdbb290
+GST_PLUGINS_RS_SCOPED_TLS_1_0_1_URL := https://crates.io/api/v1/crates/scoped-tls/1.0.1/download
+GST_PLUGINS_RS_SCOPED_TLS_1_0_1_SOURCE := $(SRCDIR)/scoped-tls-1.0.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SCOPED_TLS_1_0_1
+
+GST_PLUGINS_RS_SCOPEGUARD_1_2_0_MD5 := f1358be8c98b98837cbd2cf51e75f8b3
+GST_PLUGINS_RS_SCOPEGUARD_1_2_0_URL := https://crates.io/api/v1/crates/scopeguard/1.2.0/download
+GST_PLUGINS_RS_SCOPEGUARD_1_2_0_SOURCE := $(SRCDIR)/scopeguard-1.2.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SCOPEGUARD_1_2_0
+
+GST_PLUGINS_RS_SCT_0_7_1_MD5 := c5a05bb3260e6a4b5d61cf78618f6021
+GST_PLUGINS_RS_SCT_0_7_1_URL := https://crates.io/api/v1/crates/sct/0.7.1/download
+GST_PLUGINS_RS_SCT_0_7_1_SOURCE := $(SRCDIR)/sct-0.7.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SCT_0_7_1
+
+GST_PLUGINS_RS_SDP_TYPES_0_1_6_MD5 := 840c2fe448e5440c449b2581ad7d6294
+GST_PLUGINS_RS_SDP_TYPES_0_1_6_URL := https://crates.io/api/v1/crates/sdp-types/0.1.6/download
+GST_PLUGINS_RS_SDP_TYPES_0_1_6_SOURCE := $(SRCDIR)/sdp-types-0.1.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SDP_TYPES_0_1_6
+
+GST_PLUGINS_RS_SEC1_0_3_0_MD5 := 25ae59415304320ebb1536e5facaf4ed
+GST_PLUGINS_RS_SEC1_0_3_0_URL := https://crates.io/api/v1/crates/sec1/0.3.0/download
+GST_PLUGINS_RS_SEC1_0_3_0_SOURCE := $(SRCDIR)/sec1-0.3.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SEC1_0_3_0
+
+GST_PLUGINS_RS_SECURITY_FRAMEWORK_2_10_0_MD5 := 065b255ec9ba792962f17f8a15827cad
+GST_PLUGINS_RS_SECURITY_FRAMEWORK_2_10_0_URL := https://crates.io/api/v1/crates/security-framework/2.10.0/download
+GST_PLUGINS_RS_SECURITY_FRAMEWORK_2_10_0_SOURCE := $(SRCDIR)/security-framework-2.10.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SECURITY_FRAMEWORK_2_10_0
+
+GST_PLUGINS_RS_SECURITY_FRAMEWORK_SYS_2_10_0_MD5 := f973f3b7f174a2c9335eb0a8936c9c1a
+GST_PLUGINS_RS_SECURITY_FRAMEWORK_SYS_2_10_0_URL := https://crates.io/api/v1/crates/security-framework-sys/2.10.0/download
+GST_PLUGINS_RS_SECURITY_FRAMEWORK_SYS_2_10_0_SOURCE := $(SRCDIR)/security-framework-sys-2.10.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SECURITY_FRAMEWORK_SYS_2_10_0
+
+GST_PLUGINS_RS_SEMVER_1_0_22_MD5 := 7b1ab65edc77a1bd7cfd8f03cd889831
+GST_PLUGINS_RS_SEMVER_1_0_22_URL := https://crates.io/api/v1/crates/semver/1.0.22/download
+GST_PLUGINS_RS_SEMVER_1_0_22_SOURCE := $(SRCDIR)/semver-1.0.22.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SEMVER_1_0_22
+
+GST_PLUGINS_RS_SERDE_1_0_197_MD5 := 956ace3f4e2b8a6ac55aa74549cc38de
+GST_PLUGINS_RS_SERDE_1_0_197_URL := https://crates.io/api/v1/crates/serde/1.0.197/download
+GST_PLUGINS_RS_SERDE_1_0_197_SOURCE := $(SRCDIR)/serde-1.0.197.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SERDE_1_0_197
+
+GST_PLUGINS_RS_SERDE_BYTES_0_11_14_MD5 := 6921b192279f435c64501b96ea9b4cfe
+GST_PLUGINS_RS_SERDE_BYTES_0_11_14_URL := https://crates.io/api/v1/crates/serde_bytes/0.11.14/download
+GST_PLUGINS_RS_SERDE_BYTES_0_11_14_SOURCE := $(SRCDIR)/serde_bytes-0.11.14.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SERDE_BYTES_0_11_14
+
+GST_PLUGINS_RS_SERDE_DERIVE_1_0_197_MD5 := e8b93865e80b67f03df2faa417960b88
+GST_PLUGINS_RS_SERDE_DERIVE_1_0_197_URL := https://crates.io/api/v1/crates/serde_derive/1.0.197/download
+GST_PLUGINS_RS_SERDE_DERIVE_1_0_197_SOURCE := $(SRCDIR)/serde_derive-1.0.197.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SERDE_DERIVE_1_0_197
+
+GST_PLUGINS_RS_SERDE_JSON_1_0_115_MD5 := c7eee0da1e6c553d105eb25e736c9ca2
+GST_PLUGINS_RS_SERDE_JSON_1_0_115_URL := https://crates.io/api/v1/crates/serde_json/1.0.115/download
+GST_PLUGINS_RS_SERDE_JSON_1_0_115_SOURCE := $(SRCDIR)/serde_json-1.0.115.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SERDE_JSON_1_0_115
+
+GST_PLUGINS_RS_SERDE_PATH_TO_ERROR_0_1_16_MD5 := 9b39d3828ff34cfbb5e0f2396fa71dca
+GST_PLUGINS_RS_SERDE_PATH_TO_ERROR_0_1_16_URL := https://crates.io/api/v1/crates/serde_path_to_error/0.1.16/download
+GST_PLUGINS_RS_SERDE_PATH_TO_ERROR_0_1_16_SOURCE := $(SRCDIR)/serde_path_to_error-0.1.16.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SERDE_PATH_TO_ERROR_0_1_16
+
+GST_PLUGINS_RS_SERDE_SPANNED_0_6_5_MD5 := fa0d5d4e1e3bd20a9ca9aef473fc3665
+GST_PLUGINS_RS_SERDE_SPANNED_0_6_5_URL := https://crates.io/api/v1/crates/serde_spanned/0.6.5/download
+GST_PLUGINS_RS_SERDE_SPANNED_0_6_5_SOURCE := $(SRCDIR)/serde_spanned-0.6.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SERDE_SPANNED_0_6_5
+
+GST_PLUGINS_RS_SERDE_URLENCODED_0_7_1_MD5 := 47151b766b6b73e638fabe6fae7b723d
+GST_PLUGINS_RS_SERDE_URLENCODED_0_7_1_URL := https://crates.io/api/v1/crates/serde_urlencoded/0.7.1/download
+GST_PLUGINS_RS_SERDE_URLENCODED_0_7_1_SOURCE := $(SRCDIR)/serde_urlencoded-0.7.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SERDE_URLENCODED_0_7_1
+
+GST_PLUGINS_RS_SERDE_WITH_3_7_0_MD5 := 26dfe28e2adc2447d85f0a77c43194e9
+GST_PLUGINS_RS_SERDE_WITH_3_7_0_URL := https://crates.io/api/v1/crates/serde_with/3.7.0/download
+GST_PLUGINS_RS_SERDE_WITH_3_7_0_SOURCE := $(SRCDIR)/serde_with-3.7.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SERDE_WITH_3_7_0
+
+GST_PLUGINS_RS_SERDE_WITH_MACROS_3_7_0_MD5 := 7fb97cc091b2e810c0688b1c72f7e6db
+GST_PLUGINS_RS_SERDE_WITH_MACROS_3_7_0_URL := https://crates.io/api/v1/crates/serde_with_macros/3.7.0/download
+GST_PLUGINS_RS_SERDE_WITH_MACROS_3_7_0_SOURCE := $(SRCDIR)/serde_with_macros-3.7.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SERDE_WITH_MACROS_3_7_0
+
+GST_PLUGINS_RS_SERIAL_TEST_3_0_0_MD5 := 8018cc619e0dfc4ea3db303487905a5b
+GST_PLUGINS_RS_SERIAL_TEST_3_0_0_URL := https://crates.io/api/v1/crates/serial_test/3.0.0/download
+GST_PLUGINS_RS_SERIAL_TEST_3_0_0_SOURCE := $(SRCDIR)/serial_test-3.0.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SERIAL_TEST_3_0_0
+
+GST_PLUGINS_RS_SERIAL_TEST_DERIVE_3_0_0_MD5 := 1d3eba1dd7727130f58f54f2792acf3f
+GST_PLUGINS_RS_SERIAL_TEST_DERIVE_3_0_0_URL := https://crates.io/api/v1/crates/serial_test_derive/3.0.0/download
+GST_PLUGINS_RS_SERIAL_TEST_DERIVE_3_0_0_SOURCE := $(SRCDIR)/serial_test_derive-3.0.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SERIAL_TEST_DERIVE_3_0_0
+
+GST_PLUGINS_RS_SHA_1_0_9_8_MD5 := 82078b82ed1c52aac9552a39ead691a0
+GST_PLUGINS_RS_SHA_1_0_9_8_URL := https://crates.io/api/v1/crates/sha-1/0.9.8/download
+GST_PLUGINS_RS_SHA_1_0_9_8_SOURCE := $(SRCDIR)/sha-1-0.9.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SHA_1_0_9_8
+
+GST_PLUGINS_RS_SHA1_0_10_6_MD5 := d7602381c0bc21d10603cc940a837b06
+GST_PLUGINS_RS_SHA1_0_10_6_URL := https://crates.io/api/v1/crates/sha1/0.10.6/download
+GST_PLUGINS_RS_SHA1_0_10_6_SOURCE := $(SRCDIR)/sha1-0.10.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SHA1_0_10_6
+
+GST_PLUGINS_RS_SHA2_0_10_8_MD5 := 289b776935f2184c6ba2974877285013
+GST_PLUGINS_RS_SHA2_0_10_8_URL := https://crates.io/api/v1/crates/sha2/0.10.8/download
+GST_PLUGINS_RS_SHA2_0_10_8_SOURCE := $(SRCDIR)/sha2-0.10.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SHA2_0_10_8
+
+GST_PLUGINS_RS_SHANNON_0_2_0_MD5 := 31bc883e6f9b36925f55460401197274
+GST_PLUGINS_RS_SHANNON_0_2_0_URL := https://crates.io/api/v1/crates/shannon/0.2.0/download
+GST_PLUGINS_RS_SHANNON_0_2_0_SOURCE := $(SRCDIR)/shannon-0.2.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SHANNON_0_2_0
+
+GST_PLUGINS_RS_SHARDED_SLAB_0_1_7_MD5 := 96261f3cee18842060fd64d618e056d8
+GST_PLUGINS_RS_SHARDED_SLAB_0_1_7_URL := https://crates.io/api/v1/crates/sharded-slab/0.1.7/download
+GST_PLUGINS_RS_SHARDED_SLAB_0_1_7_SOURCE := $(SRCDIR)/sharded-slab-0.1.7.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SHARDED_SLAB_0_1_7
+
+GST_PLUGINS_RS_SHELL_WORDS_1_1_0_MD5 := ce622fdb8d18cd1c13ed8fadc5400c10
+GST_PLUGINS_RS_SHELL_WORDS_1_1_0_URL := https://crates.io/api/v1/crates/shell-words/1.1.0/download
+GST_PLUGINS_RS_SHELL_WORDS_1_1_0_SOURCE := $(SRCDIR)/shell-words-1.1.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SHELL_WORDS_1_1_0
+
+GST_PLUGINS_RS_SIGNAL_HOOK_0_3_17_MD5 := f60ab8537f924a65fbc0961e958d375b
+GST_PLUGINS_RS_SIGNAL_HOOK_0_3_17_URL := https://crates.io/api/v1/crates/signal-hook/0.3.17/download
+GST_PLUGINS_RS_SIGNAL_HOOK_0_3_17_SOURCE := $(SRCDIR)/signal-hook-0.3.17.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SIGNAL_HOOK_0_3_17
+
+GST_PLUGINS_RS_SIGNAL_HOOK_REGISTRY_1_4_1_MD5 := 22e95901b912671da26457ac33e36a23
+GST_PLUGINS_RS_SIGNAL_HOOK_REGISTRY_1_4_1_URL := https://crates.io/api/v1/crates/signal-hook-registry/1.4.1/download
+GST_PLUGINS_RS_SIGNAL_HOOK_REGISTRY_1_4_1_SOURCE := $(SRCDIR)/signal-hook-registry-1.4.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SIGNAL_HOOK_REGISTRY_1_4_1
+
+GST_PLUGINS_RS_SIGNATURE_1_6_4_MD5 := 7e18daae5710423266c13dc8556103b0
+GST_PLUGINS_RS_SIGNATURE_1_6_4_URL := https://crates.io/api/v1/crates/signature/1.6.4/download
+GST_PLUGINS_RS_SIGNATURE_1_6_4_SOURCE := $(SRCDIR)/signature-1.6.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SIGNATURE_1_6_4
+
+GST_PLUGINS_RS_SIMD_ADLER32_0_3_7_MD5 := d0116882bd495f2b993495a8cf01f6fe
+GST_PLUGINS_RS_SIMD_ADLER32_0_3_7_URL := https://crates.io/api/v1/crates/simd-adler32/0.3.7/download
+GST_PLUGINS_RS_SIMD_ADLER32_0_3_7_SOURCE := $(SRCDIR)/simd-adler32-0.3.7.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SIMD_ADLER32_0_3_7
+
+GST_PLUGINS_RS_SIMD_HELPERS_0_1_0_MD5 := 3fa17e3e59c041e59e715c6d4e7a15b3
+GST_PLUGINS_RS_SIMD_HELPERS_0_1_0_URL := https://crates.io/api/v1/crates/simd_helpers/0.1.0/download
+GST_PLUGINS_RS_SIMD_HELPERS_0_1_0_SOURCE := $(SRCDIR)/simd_helpers-0.1.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SIMD_HELPERS_0_1_0
+
+GST_PLUGINS_RS_SLAB_0_4_9_MD5 := 5d8c25fc51ffebca67935516c2325860
+GST_PLUGINS_RS_SLAB_0_4_9_URL := https://crates.io/api/v1/crates/slab/0.4.9/download
+GST_PLUGINS_RS_SLAB_0_4_9_SOURCE := $(SRCDIR)/slab-0.4.9.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SLAB_0_4_9
+
+GST_PLUGINS_RS_SMALLVEC_1_13_2_MD5 := 50d5a501f911bb592f0dce2d052c2aa8
+GST_PLUGINS_RS_SMALLVEC_1_13_2_URL := https://crates.io/api/v1/crates/smallvec/1.13.2/download
+GST_PLUGINS_RS_SMALLVEC_1_13_2_SOURCE := $(SRCDIR)/smallvec-1.13.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SMALLVEC_1_13_2
+
+GST_PLUGINS_RS_SMAWK_0_3_2_MD5 := ea275797b6ebf7a4089a9b005ced5e6e
+GST_PLUGINS_RS_SMAWK_0_3_2_URL := https://crates.io/api/v1/crates/smawk/0.3.2/download
+GST_PLUGINS_RS_SMAWK_0_3_2_SOURCE := $(SRCDIR)/smawk-0.3.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SMAWK_0_3_2
+
+GST_PLUGINS_RS_SOCKET2_0_4_10_MD5 := e23a09ecbf1aab486b90dfbc3bbae657
+GST_PLUGINS_RS_SOCKET2_0_4_10_URL := https://crates.io/api/v1/crates/socket2/0.4.10/download
+GST_PLUGINS_RS_SOCKET2_0_4_10_SOURCE := $(SRCDIR)/socket2-0.4.10.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SOCKET2_0_4_10
+
+GST_PLUGINS_RS_SOCKET2_0_5_6_MD5 := e0a2eb3573e89a1462cb180fd0a326cd
+GST_PLUGINS_RS_SOCKET2_0_5_6_URL := https://crates.io/api/v1/crates/socket2/0.5.6/download
+GST_PLUGINS_RS_SOCKET2_0_5_6_SOURCE := $(SRCDIR)/socket2-0.5.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SOCKET2_0_5_6
+
+GST_PLUGINS_RS_SODIUMOXIDE_0_2_7_MD5 := 81bce807288b9d5cfe4952c5f78e37de
+GST_PLUGINS_RS_SODIUMOXIDE_0_2_7_URL := https://crates.io/api/v1/crates/sodiumoxide/0.2.7/download
+GST_PLUGINS_RS_SODIUMOXIDE_0_2_7_SOURCE := $(SRCDIR)/sodiumoxide-0.2.7.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SODIUMOXIDE_0_2_7
+
+GST_PLUGINS_RS_SPIN_0_9_8_MD5 := ae0a9c293bf6cb72cd62d6b9486356c0
+GST_PLUGINS_RS_SPIN_0_9_8_URL := https://crates.io/api/v1/crates/spin/0.9.8/download
+GST_PLUGINS_RS_SPIN_0_9_8_SOURCE := $(SRCDIR)/spin-0.9.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SPIN_0_9_8
+
+GST_PLUGINS_RS_SPKI_0_6_0_MD5 := cf989ba9ceb035a131cbca6578ef90f5
+GST_PLUGINS_RS_SPKI_0_6_0_URL := https://crates.io/api/v1/crates/spki/0.6.0/download
+GST_PLUGINS_RS_SPKI_0_6_0_SOURCE := $(SRCDIR)/spki-0.6.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SPKI_0_6_0
+
+GST_PLUGINS_RS_SPRINTF_0_1_4_MD5 := bcfdc46217f8754f74b3dc4478194252
+GST_PLUGINS_RS_SPRINTF_0_1_4_URL := https://crates.io/api/v1/crates/sprintf/0.1.4/download
+GST_PLUGINS_RS_SPRINTF_0_1_4_SOURCE := $(SRCDIR)/sprintf-0.1.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SPRINTF_0_1_4
+
+GST_PLUGINS_RS_STRENGTH_REDUCE_0_2_4_MD5 := b0f93fdd4c2e80a67d96ffe4f55c2d63
+GST_PLUGINS_RS_STRENGTH_REDUCE_0_2_4_URL := https://crates.io/api/v1/crates/strength_reduce/0.2.4/download
+GST_PLUGINS_RS_STRENGTH_REDUCE_0_2_4_SOURCE := $(SRCDIR)/strength_reduce-0.2.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_STRENGTH_REDUCE_0_2_4
+
+GST_PLUGINS_RS_STRSIM_0_10_0_MD5 := 82d98dc87dc8503400aa095f5aa70f13
+GST_PLUGINS_RS_STRSIM_0_10_0_URL := https://crates.io/api/v1/crates/strsim/0.10.0/download
+GST_PLUGINS_RS_STRSIM_0_10_0_SOURCE := $(SRCDIR)/strsim-0.10.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_STRSIM_0_10_0
+
+GST_PLUGINS_RS_SUBTLE_2_5_0_MD5 := 24e0b498b23c398c49e3af66373c91cc
+GST_PLUGINS_RS_SUBTLE_2_5_0_URL := https://crates.io/api/v1/crates/subtle/2.5.0/download
+GST_PLUGINS_RS_SUBTLE_2_5_0_SOURCE := $(SRCDIR)/subtle-2.5.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SUBTLE_2_5_0
+
+GST_PLUGINS_RS_SYN_1_0_109_MD5 := 64d9f46e9ba78f68c30c486be3d8b7df
+GST_PLUGINS_RS_SYN_1_0_109_URL := https://crates.io/api/v1/crates/syn/1.0.109/download
+GST_PLUGINS_RS_SYN_1_0_109_SOURCE := $(SRCDIR)/syn-1.0.109.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SYN_1_0_109
+
+GST_PLUGINS_RS_SYN_2_0_58_MD5 := 022392c8cbd071019f4bfc15b77d2f05
+GST_PLUGINS_RS_SYN_2_0_58_URL := https://crates.io/api/v1/crates/syn/2.0.58/download
+GST_PLUGINS_RS_SYN_2_0_58_SOURCE := $(SRCDIR)/syn-2.0.58.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SYN_2_0_58
+
+GST_PLUGINS_RS_SYNC_WRAPPER_0_1_2_MD5 := d9794aa522094bdd0f66c045c29e5d01
+GST_PLUGINS_RS_SYNC_WRAPPER_0_1_2_URL := https://crates.io/api/v1/crates/sync_wrapper/0.1.2/download
+GST_PLUGINS_RS_SYNC_WRAPPER_0_1_2_SOURCE := $(SRCDIR)/sync_wrapper-0.1.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SYNC_WRAPPER_0_1_2
+
+GST_PLUGINS_RS_SYSTEM_CONFIGURATION_0_5_1_MD5 := d2cef4c78c44c8513136a8b07d648824
+GST_PLUGINS_RS_SYSTEM_CONFIGURATION_0_5_1_URL := https://crates.io/api/v1/crates/system-configuration/0.5.1/download
+GST_PLUGINS_RS_SYSTEM_CONFIGURATION_0_5_1_SOURCE := $(SRCDIR)/system-configuration-0.5.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SYSTEM_CONFIGURATION_0_5_1
+
+GST_PLUGINS_RS_SYSTEM_CONFIGURATION_SYS_0_5_0_MD5 := a84637b0865bd9435a575d770f4fea30
+GST_PLUGINS_RS_SYSTEM_CONFIGURATION_SYS_0_5_0_URL := https://crates.io/api/v1/crates/system-configuration-sys/0.5.0/download
+GST_PLUGINS_RS_SYSTEM_CONFIGURATION_SYS_0_5_0_SOURCE := $(SRCDIR)/system-configuration-sys-0.5.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SYSTEM_CONFIGURATION_SYS_0_5_0
+
+GST_PLUGINS_RS_SYSTEM_DEPS_6_2_2_MD5 := 98d0e2ae283e26a2c92a3351baf40020
+GST_PLUGINS_RS_SYSTEM_DEPS_6_2_2_URL := https://crates.io/api/v1/crates/system-deps/6.2.2/download
+GST_PLUGINS_RS_SYSTEM_DEPS_6_2_2_SOURCE := $(SRCDIR)/system-deps-6.2.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_SYSTEM_DEPS_6_2_2
+
+GST_PLUGINS_RS_TARGET_LEXICON_0_12_14_MD5 := 1f3035abdc5ab99eeb519a06568d9b01
+GST_PLUGINS_RS_TARGET_LEXICON_0_12_14_URL := https://crates.io/api/v1/crates/target-lexicon/0.12.14/download
+GST_PLUGINS_RS_TARGET_LEXICON_0_12_14_SOURCE := $(SRCDIR)/target-lexicon-0.12.14.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TARGET_LEXICON_0_12_14
+
+GST_PLUGINS_RS_TEMPFILE_3_10_1_MD5 := 449c7bb37fc298d2026fbf2855eb8db0
+GST_PLUGINS_RS_TEMPFILE_3_10_1_URL := https://crates.io/api/v1/crates/tempfile/3.10.1/download
+GST_PLUGINS_RS_TEMPFILE_3_10_1_SOURCE := $(SRCDIR)/tempfile-3.10.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TEMPFILE_3_10_1
+
+GST_PLUGINS_RS_TERMCOLOR_1_4_1_MD5 := b83e3c4eee8862b3cd0dc8570da6d0c0
+GST_PLUGINS_RS_TERMCOLOR_1_4_1_URL := https://crates.io/api/v1/crates/termcolor/1.4.1/download
+GST_PLUGINS_RS_TERMCOLOR_1_4_1_SOURCE := $(SRCDIR)/termcolor-1.4.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TERMCOLOR_1_4_1
+
+GST_PLUGINS_RS_TEST_LOG_0_2_14_MD5 := 3348098bd3d10779425373b37251b4d0
+GST_PLUGINS_RS_TEST_LOG_0_2_14_URL := https://crates.io/api/v1/crates/test-log/0.2.14/download
+GST_PLUGINS_RS_TEST_LOG_0_2_14_SOURCE := $(SRCDIR)/test-log-0.2.14.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TEST_LOG_0_2_14
+
+GST_PLUGINS_RS_TEST_LOG_MACROS_0_2_14_MD5 := 30363291a2ff079ed2bc8f8955f34775
+GST_PLUGINS_RS_TEST_LOG_MACROS_0_2_14_URL := https://crates.io/api/v1/crates/test-log-macros/0.2.14/download
+GST_PLUGINS_RS_TEST_LOG_MACROS_0_2_14_SOURCE := $(SRCDIR)/test-log-macros-0.2.14.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TEST_LOG_MACROS_0_2_14
+
+GST_PLUGINS_RS_TEST_WITH_0_12_6_MD5 := 9f9e42098e04e60dd620ec75086d8270
+GST_PLUGINS_RS_TEST_WITH_0_12_6_URL := https://crates.io/api/v1/crates/test-with/0.12.6/download
+GST_PLUGINS_RS_TEST_WITH_0_12_6_SOURCE := $(SRCDIR)/test-with-0.12.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TEST_WITH_0_12_6
+
+GST_PLUGINS_RS_TEXTWRAP_0_16_1_MD5 := 275687833131e77cf58730e21a179cba
+GST_PLUGINS_RS_TEXTWRAP_0_16_1_URL := https://crates.io/api/v1/crates/textwrap/0.16.1/download
+GST_PLUGINS_RS_TEXTWRAP_0_16_1_SOURCE := $(SRCDIR)/textwrap-0.16.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TEXTWRAP_0_16_1
+
+GST_PLUGINS_RS_THISERROR_1_0_58_MD5 := 361668f9f11e4f0eba45f70c24fa8614
+GST_PLUGINS_RS_THISERROR_1_0_58_URL := https://crates.io/api/v1/crates/thiserror/1.0.58/download
+GST_PLUGINS_RS_THISERROR_1_0_58_SOURCE := $(SRCDIR)/thiserror-1.0.58.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_THISERROR_1_0_58
+
+GST_PLUGINS_RS_THISERROR_IMPL_1_0_58_MD5 := f443b2cca547d22f994c2dd99a6e5581
+GST_PLUGINS_RS_THISERROR_IMPL_1_0_58_URL := https://crates.io/api/v1/crates/thiserror-impl/1.0.58/download
+GST_PLUGINS_RS_THISERROR_IMPL_1_0_58_SOURCE := $(SRCDIR)/thiserror-impl-1.0.58.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_THISERROR_IMPL_1_0_58
+
+GST_PLUGINS_RS_THREAD_ID_4_2_1_MD5 := cae621bc9543182ab86f71b8601a318b
+GST_PLUGINS_RS_THREAD_ID_4_2_1_URL := https://crates.io/api/v1/crates/thread-id/4.2.1/download
+GST_PLUGINS_RS_THREAD_ID_4_2_1_SOURCE := $(SRCDIR)/thread-id-4.2.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_THREAD_ID_4_2_1
+
+GST_PLUGINS_RS_THREAD_LOCAL_1_1_8_MD5 := 6739d2c377b9e20af9a23022e362aa33
+GST_PLUGINS_RS_THREAD_LOCAL_1_1_8_URL := https://crates.io/api/v1/crates/thread_local/1.1.8/download
+GST_PLUGINS_RS_THREAD_LOCAL_1_1_8_SOURCE := $(SRCDIR)/thread_local-1.1.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_THREAD_LOCAL_1_1_8
+
+GST_PLUGINS_RS_TIME_0_3_34_MD5 := 00a1017b4831ad4073be63ee145f37f1
+GST_PLUGINS_RS_TIME_0_3_34_URL := https://crates.io/api/v1/crates/time/0.3.34/download
+GST_PLUGINS_RS_TIME_0_3_34_SOURCE := $(SRCDIR)/time-0.3.34.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TIME_0_3_34
+
+GST_PLUGINS_RS_TIME_CORE_0_1_2_MD5 := 7818a75208424a6d05d1d868559f0adf
+GST_PLUGINS_RS_TIME_CORE_0_1_2_URL := https://crates.io/api/v1/crates/time-core/0.1.2/download
+GST_PLUGINS_RS_TIME_CORE_0_1_2_SOURCE := $(SRCDIR)/time-core-0.1.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TIME_CORE_0_1_2
+
+GST_PLUGINS_RS_TIME_MACROS_0_2_17_MD5 := 4875c5068f17bbcd90afbff582925a0a
+GST_PLUGINS_RS_TIME_MACROS_0_2_17_URL := https://crates.io/api/v1/crates/time-macros/0.2.17/download
+GST_PLUGINS_RS_TIME_MACROS_0_2_17_SOURCE := $(SRCDIR)/time-macros-0.2.17.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TIME_MACROS_0_2_17
+
+GST_PLUGINS_RS_TINYVEC_1_6_0_MD5 := 5f0470696baaa4e5953bddbf196998f9
+GST_PLUGINS_RS_TINYVEC_1_6_0_URL := https://crates.io/api/v1/crates/tinyvec/1.6.0/download
+GST_PLUGINS_RS_TINYVEC_1_6_0_SOURCE := $(SRCDIR)/tinyvec-1.6.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TINYVEC_1_6_0
+
+GST_PLUGINS_RS_TINYVEC_MACROS_0_1_1_MD5 := c678a7da0ee4b850ebde0474144a0415
+GST_PLUGINS_RS_TINYVEC_MACROS_0_1_1_URL := https://crates.io/api/v1/crates/tinyvec_macros/0.1.1/download
+GST_PLUGINS_RS_TINYVEC_MACROS_0_1_1_SOURCE := $(SRCDIR)/tinyvec_macros-0.1.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TINYVEC_MACROS_0_1_1
+
+GST_PLUGINS_RS_TOKIO_1_37_0_MD5 := 7d6059d699479e0b6a99ce0281522217
+GST_PLUGINS_RS_TOKIO_1_37_0_URL := https://crates.io/api/v1/crates/tokio/1.37.0/download
+GST_PLUGINS_RS_TOKIO_1_37_0_SOURCE := $(SRCDIR)/tokio-1.37.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TOKIO_1_37_0
+
+GST_PLUGINS_RS_TOKIO_MACROS_2_2_0_MD5 := bf33e2d27126b29c8a9b1239c688a424
+GST_PLUGINS_RS_TOKIO_MACROS_2_2_0_URL := https://crates.io/api/v1/crates/tokio-macros/2.2.0/download
+GST_PLUGINS_RS_TOKIO_MACROS_2_2_0_SOURCE := $(SRCDIR)/tokio-macros-2.2.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TOKIO_MACROS_2_2_0
+
+GST_PLUGINS_RS_TOKIO_NATIVE_TLS_0_3_1_MD5 := 9e2f7831d5c7d8bd2f430984e47c3065
+GST_PLUGINS_RS_TOKIO_NATIVE_TLS_0_3_1_URL := https://crates.io/api/v1/crates/tokio-native-tls/0.3.1/download
+GST_PLUGINS_RS_TOKIO_NATIVE_TLS_0_3_1_SOURCE := $(SRCDIR)/tokio-native-tls-0.3.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TOKIO_NATIVE_TLS_0_3_1
+
+GST_PLUGINS_RS_TOKIO_RUSTLS_0_24_1_MD5 := ba33dce68cff6856b109a88219627dc3
+GST_PLUGINS_RS_TOKIO_RUSTLS_0_24_1_URL := https://crates.io/api/v1/crates/tokio-rustls/0.24.1/download
+GST_PLUGINS_RS_TOKIO_RUSTLS_0_24_1_SOURCE := $(SRCDIR)/tokio-rustls-0.24.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TOKIO_RUSTLS_0_24_1
+
+GST_PLUGINS_RS_TOKIO_STREAM_0_1_15_MD5 := a23c6e2b033c888211095a15ca9ac553
+GST_PLUGINS_RS_TOKIO_STREAM_0_1_15_URL := https://crates.io/api/v1/crates/tokio-stream/0.1.15/download
+GST_PLUGINS_RS_TOKIO_STREAM_0_1_15_SOURCE := $(SRCDIR)/tokio-stream-0.1.15.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TOKIO_STREAM_0_1_15
+
+GST_PLUGINS_RS_TOKIO_TUNGSTENITE_0_20_1_MD5 := 45abc25ae9f7a0ad749d1d4259f0a9be
+GST_PLUGINS_RS_TOKIO_TUNGSTENITE_0_20_1_URL := https://crates.io/api/v1/crates/tokio-tungstenite/0.20.1/download
+GST_PLUGINS_RS_TOKIO_TUNGSTENITE_0_20_1_SOURCE := $(SRCDIR)/tokio-tungstenite-0.20.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TOKIO_TUNGSTENITE_0_20_1
+
+GST_PLUGINS_RS_TOKIO_TUNGSTENITE_0_21_0_MD5 := 5c2da6448fcf98cf854d198b0c6afe94
+GST_PLUGINS_RS_TOKIO_TUNGSTENITE_0_21_0_URL := https://crates.io/api/v1/crates/tokio-tungstenite/0.21.0/download
+GST_PLUGINS_RS_TOKIO_TUNGSTENITE_0_21_0_SOURCE := $(SRCDIR)/tokio-tungstenite-0.21.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TOKIO_TUNGSTENITE_0_21_0
+
+GST_PLUGINS_RS_TOKIO_UTIL_0_7_10_MD5 := 075e0746cd75038f031f06f1ff00e2d1
+GST_PLUGINS_RS_TOKIO_UTIL_0_7_10_URL := https://crates.io/api/v1/crates/tokio-util/0.7.10/download
+GST_PLUGINS_RS_TOKIO_UTIL_0_7_10_SOURCE := $(SRCDIR)/tokio-util-0.7.10.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TOKIO_UTIL_0_7_10
+
+GST_PLUGINS_RS_TOML_0_8_12_MD5 := cc14d30a8e3aa6f3d0a54311fca6acaa
+GST_PLUGINS_RS_TOML_0_8_12_URL := https://crates.io/api/v1/crates/toml/0.8.12/download
+GST_PLUGINS_RS_TOML_0_8_12_SOURCE := $(SRCDIR)/toml-0.8.12.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TOML_0_8_12
+
+GST_PLUGINS_RS_TOML_DATETIME_0_6_5_MD5 := 9aecd5ff283534a21d7cd51266abfe89
+GST_PLUGINS_RS_TOML_DATETIME_0_6_5_URL := https://crates.io/api/v1/crates/toml_datetime/0.6.5/download
+GST_PLUGINS_RS_TOML_DATETIME_0_6_5_SOURCE := $(SRCDIR)/toml_datetime-0.6.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TOML_DATETIME_0_6_5
+
+GST_PLUGINS_RS_TOML_EDIT_0_21_1_MD5 := 0cb504a1438dd87648b18def4b0e6e10
+GST_PLUGINS_RS_TOML_EDIT_0_21_1_URL := https://crates.io/api/v1/crates/toml_edit/0.21.1/download
+GST_PLUGINS_RS_TOML_EDIT_0_21_1_SOURCE := $(SRCDIR)/toml_edit-0.21.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TOML_EDIT_0_21_1
+
+GST_PLUGINS_RS_TOML_EDIT_0_22_9_MD5 := 1f128565bf0ce81bc03c3f52fb37ce69
+GST_PLUGINS_RS_TOML_EDIT_0_22_9_URL := https://crates.io/api/v1/crates/toml_edit/0.22.9/download
+GST_PLUGINS_RS_TOML_EDIT_0_22_9_SOURCE := $(SRCDIR)/toml_edit-0.22.9.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TOML_EDIT_0_22_9
+
+GST_PLUGINS_RS_TOWER_0_4_13_MD5 := 3fc11d6bd687ec52943fa02d9a5de916
+GST_PLUGINS_RS_TOWER_0_4_13_URL := https://crates.io/api/v1/crates/tower/0.4.13/download
+GST_PLUGINS_RS_TOWER_0_4_13_SOURCE := $(SRCDIR)/tower-0.4.13.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TOWER_0_4_13
+
+GST_PLUGINS_RS_TOWER_LAYER_0_3_2_MD5 := 92975a97c15daa2a21006b0932ce733c
+GST_PLUGINS_RS_TOWER_LAYER_0_3_2_URL := https://crates.io/api/v1/crates/tower-layer/0.3.2/download
+GST_PLUGINS_RS_TOWER_LAYER_0_3_2_SOURCE := $(SRCDIR)/tower-layer-0.3.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TOWER_LAYER_0_3_2
+
+GST_PLUGINS_RS_TOWER_SERVICE_0_3_2_MD5 := 60d7c3a9f75ac64cffbb9ccda7c1c8e5
+GST_PLUGINS_RS_TOWER_SERVICE_0_3_2_URL := https://crates.io/api/v1/crates/tower-service/0.3.2/download
+GST_PLUGINS_RS_TOWER_SERVICE_0_3_2_SOURCE := $(SRCDIR)/tower-service-0.3.2.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TOWER_SERVICE_0_3_2
+
+GST_PLUGINS_RS_TRACING_0_1_40_MD5 := 0a906c03436ec2dcc4c311c21fee0da2
+GST_PLUGINS_RS_TRACING_0_1_40_URL := https://crates.io/api/v1/crates/tracing/0.1.40/download
+GST_PLUGINS_RS_TRACING_0_1_40_SOURCE := $(SRCDIR)/tracing-0.1.40.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TRACING_0_1_40
+
+GST_PLUGINS_RS_TRACING_ATTRIBUTES_0_1_27_MD5 := 9dd610282e23bbd40016697350c1babb
+GST_PLUGINS_RS_TRACING_ATTRIBUTES_0_1_27_URL := https://crates.io/api/v1/crates/tracing-attributes/0.1.27/download
+GST_PLUGINS_RS_TRACING_ATTRIBUTES_0_1_27_SOURCE := $(SRCDIR)/tracing-attributes-0.1.27.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TRACING_ATTRIBUTES_0_1_27
+
+GST_PLUGINS_RS_TRACING_CORE_0_1_32_MD5 := a6655e5e9845cb569991e87b5b38a1fc
+GST_PLUGINS_RS_TRACING_CORE_0_1_32_URL := https://crates.io/api/v1/crates/tracing-core/0.1.32/download
+GST_PLUGINS_RS_TRACING_CORE_0_1_32_SOURCE := $(SRCDIR)/tracing-core-0.1.32.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TRACING_CORE_0_1_32
+
+GST_PLUGINS_RS_TRACING_LOG_0_2_0_MD5 := beede1fdd5ce9840d395abc905d8ab3e
+GST_PLUGINS_RS_TRACING_LOG_0_2_0_URL := https://crates.io/api/v1/crates/tracing-log/0.2.0/download
+GST_PLUGINS_RS_TRACING_LOG_0_2_0_SOURCE := $(SRCDIR)/tracing-log-0.2.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TRACING_LOG_0_2_0
+
+GST_PLUGINS_RS_TRACING_SUBSCRIBER_0_3_18_MD5 := 7e2eeef14bb62adaf15f1e921538adaa
+GST_PLUGINS_RS_TRACING_SUBSCRIBER_0_3_18_URL := https://crates.io/api/v1/crates/tracing-subscriber/0.3.18/download
+GST_PLUGINS_RS_TRACING_SUBSCRIBER_0_3_18_SOURCE := $(SRCDIR)/tracing-subscriber-0.3.18.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TRACING_SUBSCRIBER_0_3_18
+
+GST_PLUGINS_RS_TRANSPOSE_0_2_3_MD5 := 7a09da27776f41e64bc590c0c6aa0549
+GST_PLUGINS_RS_TRANSPOSE_0_2_3_URL := https://crates.io/api/v1/crates/transpose/0.2.3/download
+GST_PLUGINS_RS_TRANSPOSE_0_2_3_SOURCE := $(SRCDIR)/transpose-0.2.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TRANSPOSE_0_2_3
+
+GST_PLUGINS_RS_TRY_LOCK_0_2_5_MD5 := 6f09120aa341d58ea072539176058a00
+GST_PLUGINS_RS_TRY_LOCK_0_2_5_URL := https://crates.io/api/v1/crates/try-lock/0.2.5/download
+GST_PLUGINS_RS_TRY_LOCK_0_2_5_SOURCE := $(SRCDIR)/try-lock-0.2.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TRY_LOCK_0_2_5
+
+GST_PLUGINS_RS_TUNGSTENITE_0_20_1_MD5 := 76e4f91d718e4f4256990887e321106b
+GST_PLUGINS_RS_TUNGSTENITE_0_20_1_URL := https://crates.io/api/v1/crates/tungstenite/0.20.1/download
+GST_PLUGINS_RS_TUNGSTENITE_0_20_1_SOURCE := $(SRCDIR)/tungstenite-0.20.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TUNGSTENITE_0_20_1
+
+GST_PLUGINS_RS_TUNGSTENITE_0_21_0_MD5 := 69c5b3905cca26d9ae452d40aa6da6ea
+GST_PLUGINS_RS_TUNGSTENITE_0_21_0_URL := https://crates.io/api/v1/crates/tungstenite/0.21.0/download
+GST_PLUGINS_RS_TUNGSTENITE_0_21_0_SOURCE := $(SRCDIR)/tungstenite-0.21.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TUNGSTENITE_0_21_0
+
+GST_PLUGINS_RS_TYPENUM_1_17_0_MD5 := 6ebb8deee5a5a0d1c26b20eeee1926b3
+GST_PLUGINS_RS_TYPENUM_1_17_0_URL := https://crates.io/api/v1/crates/typenum/1.17.0/download
+GST_PLUGINS_RS_TYPENUM_1_17_0_SOURCE := $(SRCDIR)/typenum-1.17.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_TYPENUM_1_17_0
+
+GST_PLUGINS_RS_UNICASE_2_7_0_MD5 := 05fc1fbfb646a394e35043182c63b5de
+GST_PLUGINS_RS_UNICASE_2_7_0_URL := https://crates.io/api/v1/crates/unicase/2.7.0/download
+GST_PLUGINS_RS_UNICASE_2_7_0_SOURCE := $(SRCDIR)/unicase-2.7.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_UNICASE_2_7_0
+
+GST_PLUGINS_RS_UNICODE_BIDI_0_3_15_MD5 := 8a607889ac525c2286e2f7c88f89d931
+GST_PLUGINS_RS_UNICODE_BIDI_0_3_15_URL := https://crates.io/api/v1/crates/unicode-bidi/0.3.15/download
+GST_PLUGINS_RS_UNICODE_BIDI_0_3_15_SOURCE := $(SRCDIR)/unicode-bidi-0.3.15.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_UNICODE_BIDI_0_3_15
+
+GST_PLUGINS_RS_UNICODE_IDENT_1_0_12_MD5 := ca65153603a1a7240bbd9d2ce19f2d67
+GST_PLUGINS_RS_UNICODE_IDENT_1_0_12_URL := https://crates.io/api/v1/crates/unicode-ident/1.0.12/download
+GST_PLUGINS_RS_UNICODE_IDENT_1_0_12_SOURCE := $(SRCDIR)/unicode-ident-1.0.12.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_UNICODE_IDENT_1_0_12
+
+GST_PLUGINS_RS_UNICODE_LINEBREAK_0_1_5_MD5 := 8b76b9f2069aad02cce54546381fc94b
+GST_PLUGINS_RS_UNICODE_LINEBREAK_0_1_5_URL := https://crates.io/api/v1/crates/unicode-linebreak/0.1.5/download
+GST_PLUGINS_RS_UNICODE_LINEBREAK_0_1_5_SOURCE := $(SRCDIR)/unicode-linebreak-0.1.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_UNICODE_LINEBREAK_0_1_5
+
+GST_PLUGINS_RS_UNICODE_NORMALIZATION_0_1_23_MD5 := 97fa43aa1afabd1f5f3d1070389b42ba
+GST_PLUGINS_RS_UNICODE_NORMALIZATION_0_1_23_URL := https://crates.io/api/v1/crates/unicode-normalization/0.1.23/download
+GST_PLUGINS_RS_UNICODE_NORMALIZATION_0_1_23_SOURCE := $(SRCDIR)/unicode-normalization-0.1.23.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_UNICODE_NORMALIZATION_0_1_23
+
+GST_PLUGINS_RS_UNICODE_WIDTH_0_1_11_MD5 := 908ec8a89821b72f3a35726bab24461f
+GST_PLUGINS_RS_UNICODE_WIDTH_0_1_11_URL := https://crates.io/api/v1/crates/unicode-width/0.1.11/download
+GST_PLUGINS_RS_UNICODE_WIDTH_0_1_11_SOURCE := $(SRCDIR)/unicode-width-0.1.11.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_UNICODE_WIDTH_0_1_11
+
+GST_PLUGINS_RS_UNTRUSTED_0_9_0_MD5 := 674e5a6b49cf5e0ebb1d6cc85f6ec786
+GST_PLUGINS_RS_UNTRUSTED_0_9_0_URL := https://crates.io/api/v1/crates/untrusted/0.9.0/download
+GST_PLUGINS_RS_UNTRUSTED_0_9_0_SOURCE := $(SRCDIR)/untrusted-0.9.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_UNTRUSTED_0_9_0
+
+GST_PLUGINS_RS_URL_2_5_0_MD5 := e547b0e754cd61f24f9ef8c9e26fcd95
+GST_PLUGINS_RS_URL_2_5_0_URL := https://crates.io/api/v1/crates/url/2.5.0/download
+GST_PLUGINS_RS_URL_2_5_0_SOURCE := $(SRCDIR)/url-2.5.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_URL_2_5_0
+
+GST_PLUGINS_RS_URL_ESCAPE_0_1_1_MD5 := 711ef9c8320c1df4d29617ecef82df6c
+GST_PLUGINS_RS_URL_ESCAPE_0_1_1_URL := https://crates.io/api/v1/crates/url-escape/0.1.1/download
+GST_PLUGINS_RS_URL_ESCAPE_0_1_1_SOURCE := $(SRCDIR)/url-escape-0.1.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_URL_ESCAPE_0_1_1
+
+GST_PLUGINS_RS_URLENCODING_2_1_3_MD5 := 2405e6bc8c9bf3a45a736a47be2136ee
+GST_PLUGINS_RS_URLENCODING_2_1_3_URL := https://crates.io/api/v1/crates/urlencoding/2.1.3/download
+GST_PLUGINS_RS_URLENCODING_2_1_3_SOURCE := $(SRCDIR)/urlencoding-2.1.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_URLENCODING_2_1_3
+
+GST_PLUGINS_RS_UTF_8_0_7_6_MD5 := 60b1e46c5dd84e50d42cd5f68b041336
+GST_PLUGINS_RS_UTF_8_0_7_6_URL := https://crates.io/api/v1/crates/utf-8/0.7.6/download
+GST_PLUGINS_RS_UTF_8_0_7_6_SOURCE := $(SRCDIR)/utf-8-0.7.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_UTF_8_0_7_6
+
+GST_PLUGINS_RS_UTF8PARSE_0_2_1_MD5 := ceee1159c41351d05f4cf705490867b3
+GST_PLUGINS_RS_UTF8PARSE_0_2_1_URL := https://crates.io/api/v1/crates/utf8parse/0.2.1/download
+GST_PLUGINS_RS_UTF8PARSE_0_2_1_SOURCE := $(SRCDIR)/utf8parse-0.2.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_UTF8PARSE_0_2_1
+
+GST_PLUGINS_RS_UUID_1_8_0_MD5 := 5b2aec3424fb46f4d089b6552cae7075
+GST_PLUGINS_RS_UUID_1_8_0_URL := https://crates.io/api/v1/crates/uuid/1.8.0/download
+GST_PLUGINS_RS_UUID_1_8_0_SOURCE := $(SRCDIR)/uuid-1.8.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_UUID_1_8_0
+
+GST_PLUGINS_RS_V_FRAME_0_3_8_MD5 := 0851837d7e231e67b6c0142dae2b04ae
+GST_PLUGINS_RS_V_FRAME_0_3_8_URL := https://crates.io/api/v1/crates/v_frame/0.3.8/download
+GST_PLUGINS_RS_V_FRAME_0_3_8_SOURCE := $(SRCDIR)/v_frame-0.3.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_V_FRAME_0_3_8
+
+GST_PLUGINS_RS_VA_LIST_0_1_4_MD5 := 2e2072385dccbbfff4ddf41b065fdcbe
+GST_PLUGINS_RS_VA_LIST_0_1_4_URL := https://crates.io/api/v1/crates/va_list/0.1.4/download
+GST_PLUGINS_RS_VA_LIST_0_1_4_SOURCE := $(SRCDIR)/va_list-0.1.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_VA_LIST_0_1_4
+
+GST_PLUGINS_RS_VALUABLE_0_1_0_MD5 := 4efc6e7a118524cecefa0023a18accf7
+GST_PLUGINS_RS_VALUABLE_0_1_0_URL := https://crates.io/api/v1/crates/valuable/0.1.0/download
+GST_PLUGINS_RS_VALUABLE_0_1_0_SOURCE := $(SRCDIR)/valuable-0.1.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_VALUABLE_0_1_0
+
+GST_PLUGINS_RS_VCPKG_0_2_15_MD5 := e900a384ac7dbb320fe6a7279fbfef89
+GST_PLUGINS_RS_VCPKG_0_2_15_URL := https://crates.io/api/v1/crates/vcpkg/0.2.15/download
+GST_PLUGINS_RS_VCPKG_0_2_15_SOURCE := $(SRCDIR)/vcpkg-0.2.15.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_VCPKG_0_2_15
+
+GST_PLUGINS_RS_VERGEN_3_2_0_MD5 := c4769705079e88d68739e6089e8769a3
+GST_PLUGINS_RS_VERGEN_3_2_0_URL := https://crates.io/api/v1/crates/vergen/3.2.0/download
+GST_PLUGINS_RS_VERGEN_3_2_0_SOURCE := $(SRCDIR)/vergen-3.2.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_VERGEN_3_2_0
+
+GST_PLUGINS_RS_VERSION_COMPARE_0_2_0_MD5 := c6c59776afcdd33a74dd106896a2d713
+GST_PLUGINS_RS_VERSION_COMPARE_0_2_0_URL := https://crates.io/api/v1/crates/version-compare/0.2.0/download
+GST_PLUGINS_RS_VERSION_COMPARE_0_2_0_SOURCE := $(SRCDIR)/version-compare-0.2.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_VERSION_COMPARE_0_2_0
+
+GST_PLUGINS_RS_VERSION_CHECK_0_9_4_MD5 := d18d362345c4fe512ef67b738b239fb8
+GST_PLUGINS_RS_VERSION_CHECK_0_9_4_URL := https://crates.io/api/v1/crates/version_check/0.9.4/download
+GST_PLUGINS_RS_VERSION_CHECK_0_9_4_SOURCE := $(SRCDIR)/version_check-0.9.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_VERSION_CHECK_0_9_4
+
+GST_PLUGINS_RS_VSIMD_0_8_0_MD5 := fd38d879e932077b2f6dea6ce5e9ef55
+GST_PLUGINS_RS_VSIMD_0_8_0_URL := https://crates.io/api/v1/crates/vsimd/0.8.0/download
+GST_PLUGINS_RS_VSIMD_0_8_0_SOURCE := $(SRCDIR)/vsimd-0.8.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_VSIMD_0_8_0
+
+GST_PLUGINS_RS_WAKER_FN_1_1_1_MD5 := daf3b42c3d8b457bfdaf677ae13316ef
+GST_PLUGINS_RS_WAKER_FN_1_1_1_URL := https://crates.io/api/v1/crates/waker-fn/1.1.1/download
+GST_PLUGINS_RS_WAKER_FN_1_1_1_SOURCE := $(SRCDIR)/waker-fn-1.1.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WAKER_FN_1_1_1
+
+GST_PLUGINS_RS_WALKDIR_2_5_0_MD5 := f38b27b8c9625110a51293658f1cc014
+GST_PLUGINS_RS_WALKDIR_2_5_0_URL := https://crates.io/api/v1/crates/walkdir/2.5.0/download
+GST_PLUGINS_RS_WALKDIR_2_5_0_SOURCE := $(SRCDIR)/walkdir-2.5.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WALKDIR_2_5_0
+
+GST_PLUGINS_RS_WANT_0_3_1_MD5 := 4daa973c57624dc3d88eaa49dd86d3e1
+GST_PLUGINS_RS_WANT_0_3_1_URL := https://crates.io/api/v1/crates/want/0.3.1/download
+GST_PLUGINS_RS_WANT_0_3_1_SOURCE := $(SRCDIR)/want-0.3.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WANT_0_3_1
+
+GST_PLUGINS_RS_WARP_0_3_7_MD5 := 477269cf5e63fc1c38e7ef78946b446f
+GST_PLUGINS_RS_WARP_0_3_7_URL := https://crates.io/api/v1/crates/warp/0.3.7/download
+GST_PLUGINS_RS_WARP_0_3_7_SOURCE := $(SRCDIR)/warp-0.3.7.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WARP_0_3_7
+
+GST_PLUGINS_RS_WASI_0_11_0_WASI_SNAPSHOT_PREVIEW1_MD5 := e972ea58ec203bfa6c79c1207852298b
+GST_PLUGINS_RS_WASI_0_11_0_WASI_SNAPSHOT_PREVIEW1_URL := https://crates.io/api/v1/crates/wasi/0.11.0+wasi-snapshot-preview1/download
+GST_PLUGINS_RS_WASI_0_11_0_WASI_SNAPSHOT_PREVIEW1_SOURCE := $(SRCDIR)/wasi-0.11.0+wasi-snapshot-preview1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WASI_0_11_0_WASI_SNAPSHOT_PREVIEW1
+
+GST_PLUGINS_RS_WASM_BINDGEN_0_2_92_MD5 := dca59f56e652d010c754d42df104cd22
+GST_PLUGINS_RS_WASM_BINDGEN_0_2_92_URL := https://crates.io/api/v1/crates/wasm-bindgen/0.2.92/download
+GST_PLUGINS_RS_WASM_BINDGEN_0_2_92_SOURCE := $(SRCDIR)/wasm-bindgen-0.2.92.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WASM_BINDGEN_0_2_92
+
+GST_PLUGINS_RS_WASM_BINDGEN_BACKEND_0_2_92_MD5 := 1aa786b0f998b9d0440c2a03b133e991
+GST_PLUGINS_RS_WASM_BINDGEN_BACKEND_0_2_92_URL := https://crates.io/api/v1/crates/wasm-bindgen-backend/0.2.92/download
+GST_PLUGINS_RS_WASM_BINDGEN_BACKEND_0_2_92_SOURCE := $(SRCDIR)/wasm-bindgen-backend-0.2.92.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WASM_BINDGEN_BACKEND_0_2_92
+
+GST_PLUGINS_RS_WASM_BINDGEN_FUTURES_0_4_42_MD5 := 65689b5bdeb96ecd47930b430520f676
+GST_PLUGINS_RS_WASM_BINDGEN_FUTURES_0_4_42_URL := https://crates.io/api/v1/crates/wasm-bindgen-futures/0.4.42/download
+GST_PLUGINS_RS_WASM_BINDGEN_FUTURES_0_4_42_SOURCE := $(SRCDIR)/wasm-bindgen-futures-0.4.42.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WASM_BINDGEN_FUTURES_0_4_42
+
+GST_PLUGINS_RS_WASM_BINDGEN_MACRO_0_2_92_MD5 := 8b3da5691ef460f035d90f16d3a0bebd
+GST_PLUGINS_RS_WASM_BINDGEN_MACRO_0_2_92_URL := https://crates.io/api/v1/crates/wasm-bindgen-macro/0.2.92/download
+GST_PLUGINS_RS_WASM_BINDGEN_MACRO_0_2_92_SOURCE := $(SRCDIR)/wasm-bindgen-macro-0.2.92.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WASM_BINDGEN_MACRO_0_2_92
+
+GST_PLUGINS_RS_WASM_BINDGEN_MACRO_SUPPORT_0_2_92_MD5 := 651897c3311b074247a1b351bf85b4ff
+GST_PLUGINS_RS_WASM_BINDGEN_MACRO_SUPPORT_0_2_92_URL := https://crates.io/api/v1/crates/wasm-bindgen-macro-support/0.2.92/download
+GST_PLUGINS_RS_WASM_BINDGEN_MACRO_SUPPORT_0_2_92_SOURCE := $(SRCDIR)/wasm-bindgen-macro-support-0.2.92.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WASM_BINDGEN_MACRO_SUPPORT_0_2_92
+
+GST_PLUGINS_RS_WASM_BINDGEN_SHARED_0_2_92_MD5 := 4abb118b896b90518fc32602088933be
+GST_PLUGINS_RS_WASM_BINDGEN_SHARED_0_2_92_URL := https://crates.io/api/v1/crates/wasm-bindgen-shared/0.2.92/download
+GST_PLUGINS_RS_WASM_BINDGEN_SHARED_0_2_92_SOURCE := $(SRCDIR)/wasm-bindgen-shared-0.2.92.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WASM_BINDGEN_SHARED_0_2_92
+
+GST_PLUGINS_RS_WEB_SYS_0_3_69_MD5 := 50fd776efcd20b40eb7ec5bec9c2d1cf
+GST_PLUGINS_RS_WEB_SYS_0_3_69_URL := https://crates.io/api/v1/crates/web-sys/0.3.69/download
+GST_PLUGINS_RS_WEB_SYS_0_3_69_SOURCE := $(SRCDIR)/web-sys-0.3.69.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WEB_SYS_0_3_69
+
+GST_PLUGINS_RS_WEEZL_0_1_8_MD5 := 3463b870b51ee10369d6b1a5139ad166
+GST_PLUGINS_RS_WEEZL_0_1_8_URL := https://crates.io/api/v1/crates/weezl/0.1.8/download
+GST_PLUGINS_RS_WEEZL_0_1_8_SOURCE := $(SRCDIR)/weezl-0.1.8.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WEEZL_0_1_8
+
+GST_PLUGINS_RS_WINAPI_0_3_9_MD5 := 0498c4a11448bfc35dc7bb2caa64c753
+GST_PLUGINS_RS_WINAPI_0_3_9_URL := https://crates.io/api/v1/crates/winapi/0.3.9/download
+GST_PLUGINS_RS_WINAPI_0_3_9_SOURCE := $(SRCDIR)/winapi-0.3.9.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINAPI_0_3_9
+
+GST_PLUGINS_RS_WINAPI_I686_PC_WINDOWS_GNU_0_4_0_MD5 := db96b50050277bf05a3c68534bbb9586
+GST_PLUGINS_RS_WINAPI_I686_PC_WINDOWS_GNU_0_4_0_URL := https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download
+GST_PLUGINS_RS_WINAPI_I686_PC_WINDOWS_GNU_0_4_0_SOURCE := $(SRCDIR)/winapi-i686-pc-windows-gnu-0.4.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINAPI_I686_PC_WINDOWS_GNU_0_4_0
+
+GST_PLUGINS_RS_WINAPI_UTIL_0_1_6_MD5 := 306c0281447d1876e8220007b7a7e053
+GST_PLUGINS_RS_WINAPI_UTIL_0_1_6_URL := https://crates.io/api/v1/crates/winapi-util/0.1.6/download
+GST_PLUGINS_RS_WINAPI_UTIL_0_1_6_SOURCE := $(SRCDIR)/winapi-util-0.1.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINAPI_UTIL_0_1_6
+
+GST_PLUGINS_RS_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0_MD5 := 09de9d01e7331ff3da11f58be8bef0df
+GST_PLUGINS_RS_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0_URL := https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download
+GST_PLUGINS_RS_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0_SOURCE := $(SRCDIR)/winapi-x86_64-pc-windows-gnu-0.4.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0
+
+GST_PLUGINS_RS_WINDOWS_CORE_0_52_0_MD5 := 6fea8456dac26da1a185af6b0318dce1
+GST_PLUGINS_RS_WINDOWS_CORE_0_52_0_URL := https://crates.io/api/v1/crates/windows-core/0.52.0/download
+GST_PLUGINS_RS_WINDOWS_CORE_0_52_0_SOURCE := $(SRCDIR)/windows-core-0.52.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINDOWS_CORE_0_52_0
+
+GST_PLUGINS_RS_WINDOWS_SYS_0_48_0_MD5 := f2797ade0e36f1e5d6be9d11b5076582
+GST_PLUGINS_RS_WINDOWS_SYS_0_48_0_URL := https://crates.io/api/v1/crates/windows-sys/0.48.0/download
+GST_PLUGINS_RS_WINDOWS_SYS_0_48_0_SOURCE := $(SRCDIR)/windows-sys-0.48.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINDOWS_SYS_0_48_0
+
+GST_PLUGINS_RS_WINDOWS_SYS_0_52_0_MD5 := 2376de634160158ece40c4bc2ab3eb41
+GST_PLUGINS_RS_WINDOWS_SYS_0_52_0_URL := https://crates.io/api/v1/crates/windows-sys/0.52.0/download
+GST_PLUGINS_RS_WINDOWS_SYS_0_52_0_SOURCE := $(SRCDIR)/windows-sys-0.52.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINDOWS_SYS_0_52_0
+
+GST_PLUGINS_RS_WINDOWS_TARGETS_0_48_5_MD5 := 24c64817e85ef77765ed0f26c31c9b4c
+GST_PLUGINS_RS_WINDOWS_TARGETS_0_48_5_URL := https://crates.io/api/v1/crates/windows-targets/0.48.5/download
+GST_PLUGINS_RS_WINDOWS_TARGETS_0_48_5_SOURCE := $(SRCDIR)/windows-targets-0.48.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINDOWS_TARGETS_0_48_5
+
+GST_PLUGINS_RS_WINDOWS_TARGETS_0_52_4_MD5 := da06678965a6a18bd802a4dfc0ff16a6
+GST_PLUGINS_RS_WINDOWS_TARGETS_0_52_4_URL := https://crates.io/api/v1/crates/windows-targets/0.52.4/download
+GST_PLUGINS_RS_WINDOWS_TARGETS_0_52_4_SOURCE := $(SRCDIR)/windows-targets-0.52.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINDOWS_TARGETS_0_52_4
+
+GST_PLUGINS_RS_WINDOWS_AARCH64_GNULLVM_0_48_5_MD5 := dae6d89034a6988042fd8be4cf5e037d
+GST_PLUGINS_RS_WINDOWS_AARCH64_GNULLVM_0_48_5_URL := https://crates.io/api/v1/crates/windows_aarch64_gnullvm/0.48.5/download
+GST_PLUGINS_RS_WINDOWS_AARCH64_GNULLVM_0_48_5_SOURCE := $(SRCDIR)/windows_aarch64_gnullvm-0.48.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINDOWS_AARCH64_GNULLVM_0_48_5
+
+GST_PLUGINS_RS_WINDOWS_AARCH64_GNULLVM_0_52_4_MD5 := 37de98e52a65c26a9ea5d1c64ac70ff7
+GST_PLUGINS_RS_WINDOWS_AARCH64_GNULLVM_0_52_4_URL := https://crates.io/api/v1/crates/windows_aarch64_gnullvm/0.52.4/download
+GST_PLUGINS_RS_WINDOWS_AARCH64_GNULLVM_0_52_4_SOURCE := $(SRCDIR)/windows_aarch64_gnullvm-0.52.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINDOWS_AARCH64_GNULLVM_0_52_4
+
+GST_PLUGINS_RS_WINDOWS_AARCH64_MSVC_0_48_5_MD5 := de2839e16d9d7a9fd1c397da62f62b4a
+GST_PLUGINS_RS_WINDOWS_AARCH64_MSVC_0_48_5_URL := https://crates.io/api/v1/crates/windows_aarch64_msvc/0.48.5/download
+GST_PLUGINS_RS_WINDOWS_AARCH64_MSVC_0_48_5_SOURCE := $(SRCDIR)/windows_aarch64_msvc-0.48.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINDOWS_AARCH64_MSVC_0_48_5
+
+GST_PLUGINS_RS_WINDOWS_AARCH64_MSVC_0_52_4_MD5 := 08d0a285a0002da66dd555876cf0b278
+GST_PLUGINS_RS_WINDOWS_AARCH64_MSVC_0_52_4_URL := https://crates.io/api/v1/crates/windows_aarch64_msvc/0.52.4/download
+GST_PLUGINS_RS_WINDOWS_AARCH64_MSVC_0_52_4_SOURCE := $(SRCDIR)/windows_aarch64_msvc-0.52.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINDOWS_AARCH64_MSVC_0_52_4
+
+GST_PLUGINS_RS_WINDOWS_I686_GNU_0_48_5_MD5 := e0c35ffb8cfdb74a39bf799811f79304
+GST_PLUGINS_RS_WINDOWS_I686_GNU_0_48_5_URL := https://crates.io/api/v1/crates/windows_i686_gnu/0.48.5/download
+GST_PLUGINS_RS_WINDOWS_I686_GNU_0_48_5_SOURCE := $(SRCDIR)/windows_i686_gnu-0.48.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINDOWS_I686_GNU_0_48_5
+
+GST_PLUGINS_RS_WINDOWS_I686_GNU_0_52_4_MD5 := b6834054fd9736252087791fdda2e73a
+GST_PLUGINS_RS_WINDOWS_I686_GNU_0_52_4_URL := https://crates.io/api/v1/crates/windows_i686_gnu/0.52.4/download
+GST_PLUGINS_RS_WINDOWS_I686_GNU_0_52_4_SOURCE := $(SRCDIR)/windows_i686_gnu-0.52.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINDOWS_I686_GNU_0_52_4
+
+GST_PLUGINS_RS_WINDOWS_I686_MSVC_0_48_5_MD5 := d990172b607020701f9e84ca8e1c043c
+GST_PLUGINS_RS_WINDOWS_I686_MSVC_0_48_5_URL := https://crates.io/api/v1/crates/windows_i686_msvc/0.48.5/download
+GST_PLUGINS_RS_WINDOWS_I686_MSVC_0_48_5_SOURCE := $(SRCDIR)/windows_i686_msvc-0.48.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINDOWS_I686_MSVC_0_48_5
+
+GST_PLUGINS_RS_WINDOWS_I686_MSVC_0_52_4_MD5 := 05b3e5d30c79a17e5c14c64f092326fe
+GST_PLUGINS_RS_WINDOWS_I686_MSVC_0_52_4_URL := https://crates.io/api/v1/crates/windows_i686_msvc/0.52.4/download
+GST_PLUGINS_RS_WINDOWS_I686_MSVC_0_52_4_SOURCE := $(SRCDIR)/windows_i686_msvc-0.52.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINDOWS_I686_MSVC_0_52_4
+
+GST_PLUGINS_RS_WINDOWS_X86_64_GNU_0_48_5_MD5 := 0a68848588e847ceccf504891584d00b
+GST_PLUGINS_RS_WINDOWS_X86_64_GNU_0_48_5_URL := https://crates.io/api/v1/crates/windows_x86_64_gnu/0.48.5/download
+GST_PLUGINS_RS_WINDOWS_X86_64_GNU_0_48_5_SOURCE := $(SRCDIR)/windows_x86_64_gnu-0.48.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINDOWS_X86_64_GNU_0_48_5
+
+GST_PLUGINS_RS_WINDOWS_X86_64_GNU_0_52_4_MD5 := af0110497c2fc215c55297232f3e6665
+GST_PLUGINS_RS_WINDOWS_X86_64_GNU_0_52_4_URL := https://crates.io/api/v1/crates/windows_x86_64_gnu/0.52.4/download
+GST_PLUGINS_RS_WINDOWS_X86_64_GNU_0_52_4_SOURCE := $(SRCDIR)/windows_x86_64_gnu-0.52.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINDOWS_X86_64_GNU_0_52_4
+
+GST_PLUGINS_RS_WINDOWS_X86_64_GNULLVM_0_48_5_MD5 := 45b469ad607b912256b7c80141fa2d17
+GST_PLUGINS_RS_WINDOWS_X86_64_GNULLVM_0_48_5_URL := https://crates.io/api/v1/crates/windows_x86_64_gnullvm/0.48.5/download
+GST_PLUGINS_RS_WINDOWS_X86_64_GNULLVM_0_48_5_SOURCE := $(SRCDIR)/windows_x86_64_gnullvm-0.48.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINDOWS_X86_64_GNULLVM_0_48_5
+
+GST_PLUGINS_RS_WINDOWS_X86_64_GNULLVM_0_52_4_MD5 := b08b96f50cdba558c550c985252c3fd6
+GST_PLUGINS_RS_WINDOWS_X86_64_GNULLVM_0_52_4_URL := https://crates.io/api/v1/crates/windows_x86_64_gnullvm/0.52.4/download
+GST_PLUGINS_RS_WINDOWS_X86_64_GNULLVM_0_52_4_SOURCE := $(SRCDIR)/windows_x86_64_gnullvm-0.52.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINDOWS_X86_64_GNULLVM_0_52_4
+
+GST_PLUGINS_RS_WINDOWS_X86_64_MSVC_0_48_5_MD5 := 7799baff9a5664205d9110a2624e8989
+GST_PLUGINS_RS_WINDOWS_X86_64_MSVC_0_48_5_URL := https://crates.io/api/v1/crates/windows_x86_64_msvc/0.48.5/download
+GST_PLUGINS_RS_WINDOWS_X86_64_MSVC_0_48_5_SOURCE := $(SRCDIR)/windows_x86_64_msvc-0.48.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINDOWS_X86_64_MSVC_0_48_5
+
+GST_PLUGINS_RS_WINDOWS_X86_64_MSVC_0_52_4_MD5 := ff740ff52ecfd509004f54630f94c3e4
+GST_PLUGINS_RS_WINDOWS_X86_64_MSVC_0_52_4_URL := https://crates.io/api/v1/crates/windows_x86_64_msvc/0.52.4/download
+GST_PLUGINS_RS_WINDOWS_X86_64_MSVC_0_52_4_SOURCE := $(SRCDIR)/windows_x86_64_msvc-0.52.4.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINDOWS_X86_64_MSVC_0_52_4
+
+GST_PLUGINS_RS_WINNOW_0_5_40_MD5 := cb7c86af4d8a969d849c6fce363af240
+GST_PLUGINS_RS_WINNOW_0_5_40_URL := https://crates.io/api/v1/crates/winnow/0.5.40/download
+GST_PLUGINS_RS_WINNOW_0_5_40_SOURCE := $(SRCDIR)/winnow-0.5.40.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINNOW_0_5_40
+
+GST_PLUGINS_RS_WINNOW_0_6_5_MD5 := 89f70cb8305108cc51ccde5569760d5b
+GST_PLUGINS_RS_WINNOW_0_6_5_URL := https://crates.io/api/v1/crates/winnow/0.6.5/download
+GST_PLUGINS_RS_WINNOW_0_6_5_SOURCE := $(SRCDIR)/winnow-0.6.5.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINNOW_0_6_5
+
+GST_PLUGINS_RS_WINREG_0_50_0_MD5 := f7ee9de65306cc4e1f8ce02790ca089e
+GST_PLUGINS_RS_WINREG_0_50_0_URL := https://crates.io/api/v1/crates/winreg/0.50.0/download
+GST_PLUGINS_RS_WINREG_0_50_0_SOURCE := $(SRCDIR)/winreg-0.50.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINREG_0_50_0
+
+GST_PLUGINS_RS_WINREG_0_52_0_MD5 := 3aa6fd0d30e89ae0fef20f01efe44f9d
+GST_PLUGINS_RS_WINREG_0_52_0_URL := https://crates.io/api/v1/crates/winreg/0.52.0/download
+GST_PLUGINS_RS_WINREG_0_52_0_SOURCE := $(SRCDIR)/winreg-0.52.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_WINREG_0_52_0
+
+GST_PLUGINS_RS_XATTR_1_3_1_MD5 := c0c9fb0065f11496c222ba3cd7212b08
+GST_PLUGINS_RS_XATTR_1_3_1_URL := https://crates.io/api/v1/crates/xattr/1.3.1/download
+GST_PLUGINS_RS_XATTR_1_3_1_SOURCE := $(SRCDIR)/xattr-1.3.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_XATTR_1_3_1
+
+GST_PLUGINS_RS_XML_RS_0_8_20_MD5 := 221a38c1fef1a19c62e4d2760a45f5aa
+GST_PLUGINS_RS_XML_RS_0_8_20_URL := https://crates.io/api/v1/crates/xml-rs/0.8.20/download
+GST_PLUGINS_RS_XML_RS_0_8_20_SOURCE := $(SRCDIR)/xml-rs-0.8.20.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_XML_RS_0_8_20
+
+GST_PLUGINS_RS_XMLPARSER_0_13_6_MD5 := 7988fedc32f8fc3678f11b76600ba611
+GST_PLUGINS_RS_XMLPARSER_0_13_6_URL := https://crates.io/api/v1/crates/xmlparser/0.13.6/download
+GST_PLUGINS_RS_XMLPARSER_0_13_6_SOURCE := $(SRCDIR)/xmlparser-0.13.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_XMLPARSER_0_13_6
+
+GST_PLUGINS_RS_XMLTREE_0_10_3_MD5 := fd125fc23fb57a53624e74b91e8b01c3
+GST_PLUGINS_RS_XMLTREE_0_10_3_URL := https://crates.io/api/v1/crates/xmltree/0.10.3/download
+GST_PLUGINS_RS_XMLTREE_0_10_3_SOURCE := $(SRCDIR)/xmltree-0.10.3.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_XMLTREE_0_10_3
+
+GST_PLUGINS_RS_YANSI_0_5_1_MD5 := f5a883f6e013c5dcedc0c13d3096c612
+GST_PLUGINS_RS_YANSI_0_5_1_URL := https://crates.io/api/v1/crates/yansi/0.5.1/download
+GST_PLUGINS_RS_YANSI_0_5_1_SOURCE := $(SRCDIR)/yansi-0.5.1.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_YANSI_0_5_1
+
+GST_PLUGINS_RS_ZEROCOPY_0_6_6_MD5 := 59a504c234f588bcd3f9a3d58bc2af2d
+GST_PLUGINS_RS_ZEROCOPY_0_6_6_URL := https://crates.io/api/v1/crates/zerocopy/0.6.6/download
+GST_PLUGINS_RS_ZEROCOPY_0_6_6_SOURCE := $(SRCDIR)/zerocopy-0.6.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ZEROCOPY_0_6_6
+
+GST_PLUGINS_RS_ZEROCOPY_0_7_32_MD5 := ae2ca148274c581aa6ee8a8e292ca2af
+GST_PLUGINS_RS_ZEROCOPY_0_7_32_URL := https://crates.io/api/v1/crates/zerocopy/0.7.32/download
+GST_PLUGINS_RS_ZEROCOPY_0_7_32_SOURCE := $(SRCDIR)/zerocopy-0.7.32.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ZEROCOPY_0_7_32
+
+GST_PLUGINS_RS_ZEROCOPY_DERIVE_0_6_6_MD5 := 11edfb7c5b9632ac9d68eca218a2965c
+GST_PLUGINS_RS_ZEROCOPY_DERIVE_0_6_6_URL := https://crates.io/api/v1/crates/zerocopy-derive/0.6.6/download
+GST_PLUGINS_RS_ZEROCOPY_DERIVE_0_6_6_SOURCE := $(SRCDIR)/zerocopy-derive-0.6.6.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ZEROCOPY_DERIVE_0_6_6
+
+GST_PLUGINS_RS_ZEROCOPY_DERIVE_0_7_32_MD5 := 936257597fbe2fd02d954a5db53c687a
+GST_PLUGINS_RS_ZEROCOPY_DERIVE_0_7_32_URL := https://crates.io/api/v1/crates/zerocopy-derive/0.7.32/download
+GST_PLUGINS_RS_ZEROCOPY_DERIVE_0_7_32_SOURCE := $(SRCDIR)/zerocopy-derive-0.7.32.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ZEROCOPY_DERIVE_0_7_32
+
+GST_PLUGINS_RS_ZEROIZE_1_7_0_MD5 := 4ca31ec33e1508b14d3445f19a16ba55
+GST_PLUGINS_RS_ZEROIZE_1_7_0_URL := https://crates.io/api/v1/crates/zeroize/1.7.0/download
+GST_PLUGINS_RS_ZEROIZE_1_7_0_SOURCE := $(SRCDIR)/zeroize-1.7.0.crate
+GST_PLUGINS_RS_PARTS += GST_PLUGINS_RS_ZEROIZE_1_7_0
+
+
+# vim: syntax=make
diff --git a/rules/gst-plugins-rs.in b/rules/gst-plugins-rs.in
new file mode 100644
index 000000000..b3e512306
--- /dev/null
+++ b/rules/gst-plugins-rs.in
@@ -0,0 +1,199 @@
+## SECTION=multimedia_gstreamer1
+
+menuconfig GST_PLUGINS_RS
+ tristate
+ select HOST_MESON
+ select HOST_CARGO_C
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_TOML
+ select HOST_SYSTEM_PYTHON3_TOMLI
+ select GSTREAMER1
+ select GST_PLUGINS_BASE1
+ select GST_PLUGINS_BAD1 if GST_PLUGINS_RS_WEBRTC || GST_PLUGINS_RS_WEBRTCHTTP
+ select GST_PLUGINS_BAD1_WEBRTC if GST_PLUGINS_RS_WEBRTC || GST_PLUGINS_RS_WEBRTCHTTP
+ select LIBWEBP if GST_PLUGINS_RS_WEBP
+ select LIBWEBP_DEMUX if GST_PLUGINS_RS_WEBP
+ select PANGO if GST_PLUGINS_RS_ONVIF || GST_PLUGINS_RS_CLOSEDCAPTION
+ select CAIRO if GST_PLUGINS_RS_CLOSEDCAPTION || GST_PLUGINS_RS_VIDEOFX
+ select CAIRO_GOBJECT if GST_PLUGINS_RS_CLOSEDCAPTION || GST_PLUGINS_RS_VIDEOFX
+ prompt "gst-plugins-rs "
+ help
+ GStreamer plugins written in Rust.
+
+if GST_PLUGINS_RS
+
+config GST_PLUGINS_RS_AUDIOFX
+ bool
+ prompt "audiofx"
+
+config GST_PLUGINS_RS_CLAXON
+ bool
+ prompt "claxon"
+
+config GST_PLUGINS_RS_CSOUND
+ bool
+ # needs csound64
+ depends on BROKEN
+ prompt "csound"
+
+config GST_PLUGINS_RS_LEWTON
+ bool
+ prompt "lewton"
+
+config GST_PLUGINS_RS_SPOTIFY
+ bool
+ prompt "spotify"
+
+config GST_PLUGINS_RS_FILE
+ bool
+ prompt "file"
+
+config GST_PLUGINS_RS_SODIUM
+ bool
+ prompt "sodium"
+
+config GST_PLUGINS_RS_THREADSHARE
+ bool
+ prompt "threadshare"
+
+config GST_PLUGINS_RS_INTER
+ bool
+ prompt "inter"
+
+config GST_PLUGINS_RS_FLAVORS
+ bool
+ prompt "flavors"
+
+config GST_PLUGINS_RS_FMP4
+ bool
+ prompt "fmp4"
+
+config GST_PLUGINS_RS_MP4
+ bool
+ prompt "mp4"
+
+config GST_PLUGINS_RS_AWS
+ bool
+ prompt "aws"
+
+config GST_PLUGINS_RS_HLSSINK3
+ bool
+ prompt "hlssink3"
+
+config GST_PLUGINS_RS_NDI
+ bool
+ prompt "ndi"
+
+config GST_PLUGINS_RS_ONVIF
+ bool
+ prompt "onvif"
+
+config GST_PLUGINS_RS_RAPTORQ
+ bool
+ prompt "raptorq"
+
+config GST_PLUGINS_RS_REQWEST
+ bool
+ prompt "reqwest"
+
+config GST_PLUGINS_RS_RTSP
+ bool
+ prompt "rtsp"
+
+config GST_PLUGINS_RS_RTP
+ bool
+ prompt "rtp"
+
+config GST_PLUGINS_RS_WEBRTC
+ bool
+ prompt "webrtc"
+
+config GST_PLUGINS_RS_WEBRTCHTTP
+ bool
+ prompt "webrtchttp"
+
+config GST_PLUGINS_RS_TEXTAHEAD
+ bool
+ prompt "textahead"
+
+config GST_PLUGINS_RS_JSON
+ bool
+ prompt "json"
+
+config GST_PLUGINS_RS_REGEX
+ bool
+ prompt "regex"
+
+config GST_PLUGINS_RS_TEXTWRAP
+ bool
+ prompt "textwrap"
+
+config GST_PLUGINS_RS_FALLBACKSWITCH
+ bool
+ prompt "fallbackswitch"
+
+config GST_PLUGINS_RS_LIVESYNC
+ bool
+ prompt "livesync"
+
+config GST_PLUGINS_RS_TOGGLERECORD
+ bool
+ prompt "togglerecord"
+
+config GST_PLUGINS_RS_TRACERS
+ bool
+ prompt "tracers"
+
+config GST_PLUGINS_RS_URIPLAYLISTBIN
+ bool
+ prompt "uriplaylistbin"
+
+config GST_PLUGINS_RS_CDG
+ bool
+ prompt "cdg"
+
+config GST_PLUGINS_RS_CLOSEDCAPTION
+ bool
+ prompt "closedcaption"
+
+config GST_PLUGINS_RS_DAV1D
+ bool
+ # needs dav1d
+ depends on BROKEN
+ prompt "dav1d"
+
+config GST_PLUGINS_RS_FFV1
+ bool
+ prompt "ffv1"
+
+config GST_PLUGINS_RS_GIF
+ bool
+ prompt "gif"
+
+config GST_PLUGINS_RS_GTK4
+ bool
+ # needs gtk4
+ depends on BROKEN
+ prompt "gtk4"
+
+config GST_PLUGINS_RS_HSV
+ bool
+ prompt "hsv"
+
+config GST_PLUGINS_RS_PNG
+ bool
+ prompt "png"
+
+config GST_PLUGINS_RS_RAV1E
+ bool
+ prompt "rav1e"
+
+config GST_PLUGINS_RS_VIDEOFX
+ bool
+ prompt "videofx"
+
+config GST_PLUGINS_RS_WEBP
+ bool
+ prompt "webp"
+
+endif
diff --git a/rules/gst-plugins-rs.make b/rules/gst-plugins-rs.make
new file mode 100644
index 000000000..e60b1f0a0
--- /dev/null
+++ b/rules/gst-plugins-rs.make
@@ -0,0 +1,149 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_GST_PLUGINS_RS) += gst-plugins-rs
+
+#
+# Paths and names
+#
+GST_PLUGINS_RS_VERSION := 1.24.2
+GST_PLUGINS_RS_TAG := gstreamer-$(GST_PLUGINS_RS_VERSION)
+GST_PLUGINS_RS_MD5 := 668c99735e83a04939d6b6759e8099bf
+GST_PLUGINS_RS := gst-plugins-rs-$(GST_PLUGINS_RS_VERSION)
+GST_PLUGINS_RS_SUFFIX := tar.bz2
+GST_PLUGINS_RS_URL := https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/archive/$(GST_PLUGINS_RS_TAG)/gst-plugins-rs-$(GST_PLUGINS_RS_TAG).$(GST_PLUGINS_RS_SUFFIX)
+GST_PLUGINS_RS_SOURCE := $(SRCDIR)/$(GST_PLUGINS_RS).$(GST_PLUGINS_RS_SUFFIX)
+GST_PLUGINS_RS_DIR := $(BUILDDIR)/$(GST_PLUGINS_RS)
+GST_PLUGINS_RS_CARGO_LOCK := Cargo.lock
+GST_PLUGINS_RS_LICENSE := LGPL-2.0-or-later AND ( Apache-2.0 OR MIT ) AND MPL-2.0 AND MIT AND unknown
+GST_PLUGINS_RS_LICENSE_FILES := \
+ file://LICENSE-LGPLv2;md5=4fbd65380cdd255951079008b364516c \
+ file://LICENSE-APACHE;md5=1836efb2eb779966696f473ee8540542 \
+ file://LICENSE-MIT;md5=b377b220f43d747efdec40d69fcaa69d \
+ file://LICENSE-MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad \
+ file://video/closedcaption/src/c/caption.c;startline=1;endline=23;md5=e3e1cf3731e608bfef2c87e68d006dfb
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+
+GST_PLUGINS_RS_ENABLEC-$(PTXCONF_GST_PLUGINS_RS_AUDIOFX) += audiofx
+GST_PLUGINS_RS_ENABLEP-$(PTXCONF_GST_PLUGINS_RS_AUDIOFX) += rsaudiofx
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_AWS) += aws
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_CDG) += cdg
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_CLAXON) += claxon
+GST_PLUGINS_RS_ENABLEC-$(PTXCONF_GST_PLUGINS_RS_CLOSEDCAPTION) += closedcaption
+GST_PLUGINS_RS_ENABLEP-$(PTXCONF_GST_PLUGINS_RS_CLOSEDCAPTION) += rsclosedcaption
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_CSOUND) += csound
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_DAV1D) += dav1d
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_FALLBACKSWITCH) += fallbackswitch
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_FFV1) += ffv1
+GST_PLUGINS_RS_ENABLEC-$(PTXCONF_GST_PLUGINS_RS_FILE) += file
+GST_PLUGINS_RS_ENABLEP-$(PTXCONF_GST_PLUGINS_RS_FILE) += rsfile
+GST_PLUGINS_RS_ENABLEC-$(PTXCONF_GST_PLUGINS_RS_FLAVORS) += flavors
+GST_PLUGINS_RS_ENABLEP-$(PTXCONF_GST_PLUGINS_RS_FLAVORS) += rsflv
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_FMP4) += fmp4
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_GIF) += gif
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_GTK4) += gtk4
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_HLSSINK3) += hlssink3
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_HSV) += hsv
+GST_PLUGINS_RS_ENABLEC-$(PTXCONF_GST_PLUGINS_RS_INTER) += inter
+GST_PLUGINS_RS_ENABLEP-$(PTXCONF_GST_PLUGINS_RS_INTER) += rsinter
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_JSON) += json
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_LEWTON) += lewton
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_LIVESYNC) += livesync
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_MP4) += mp4
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_NDI) += ndi
+GST_PLUGINS_RS_ENABLEC-$(PTXCONF_GST_PLUGINS_RS_ONVIF) += onvif
+GST_PLUGINS_RS_ENABLEP-$(PTXCONF_GST_PLUGINS_RS_ONVIF) += rsonvif
+GST_PLUGINS_RS_ENABLEC-$(PTXCONF_GST_PLUGINS_RS_PNG) += png
+GST_PLUGINS_RS_ENABLEP-$(PTXCONF_GST_PLUGINS_RS_PNG) += rspng
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_RAPTORQ) += raptorq
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_RAV1E) += rav1e
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_REGEX) += regex
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_REQWEST) += reqwest
+GST_PLUGINS_RS_ENABLEC-$(PTXCONF_GST_PLUGINS_RS_RTP) += rtp
+GST_PLUGINS_RS_ENABLEP-$(PTXCONF_GST_PLUGINS_RS_RTP) += rsrtp
+GST_PLUGINS_RS_ENABLEC-$(PTXCONF_GST_PLUGINS_RS_RTSP) += rtsp
+GST_PLUGINS_RS_ENABLEP-$(PTXCONF_GST_PLUGINS_RS_RTSP) += rsrtsp
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_SODIUM) += sodium
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_SPOTIFY) += spotify
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_TEXTAHEAD) += textahead
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_TEXTWRAP) += textwrap
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_THREADSHARE) += threadshare
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_TOGGLERECORD) += togglerecord
+GST_PLUGINS_RS_ENABLEC-$(PTXCONF_GST_PLUGINS_RS_TRACERS) += tracers
+GST_PLUGINS_RS_ENABLEP-$(PTXCONF_GST_PLUGINS_RS_TRACERS) += rstracers
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_URIPLAYLISTBIN) += uriplaylistbin
+GST_PLUGINS_RS_ENABLEC-$(PTXCONF_GST_PLUGINS_RS_VIDEOFX) += videofx
+GST_PLUGINS_RS_ENABLEP-$(PTXCONF_GST_PLUGINS_RS_VIDEOFX) += rsvideofx
+GST_PLUGINS_RS_ENABLEC-$(PTXCONF_GST_PLUGINS_RS_WEBP) += webp
+GST_PLUGINS_RS_ENABLEP-$(PTXCONF_GST_PLUGINS_RS_WEBP) += rswebp
+GST_PLUGINS_RS_ENABLEC-$(PTXCONF_GST_PLUGINS_RS_WEBRTC) += webrtc
+GST_PLUGINS_RS_ENABLEP-$(PTXCONF_GST_PLUGINS_RS_WEBRTC) += rswebrtc
+GST_PLUGINS_RS_ENABLE-$(PTXCONF_GST_PLUGINS_RS_WEBRTCHTTP) += webrtchttp
+
+GST_PLUGINS_RS_ENABLEC- += $(GST_PLUGINS_RS_ENABLE-)
+GST_PLUGINS_RS_ENABLEC-y += $(GST_PLUGINS_RS_ENABLE-y)
+GST_PLUGINS_RS_ENABLEP-y += $(GST_PLUGINS_RS_ENABLE-y)
+#
+# meson
+#
+GST_PLUGINS_RS_CONF_TOOL := meson
+GST_PLUGINS_RS_CONF_OPT := \
+ $(CROSS_MESON_USR) \
+ -Ddebug=false \
+ -Ddoc=disabled \
+ -Dexamples=disabled \
+ -Dfrozen=true \
+ -Dtests=disabled
+
+ifneq ($(call remove_quotes,$(GST_PLUGINS_RS_ENABLEC-y)),)
+GST_PLUGINS_RS_CONF_OPT += $(addsuffix =enabled, $(addprefix -D, $(GST_PLUGINS_RS_ENABLEC-y)))
+endif
+
+ifneq ($(call remove_quotes,$(GST_PLUGINS_RS_ENABLEC-)),)
+GST_PLUGINS_RS_CONF_OPT += $(addsuffix =disabled, $(addprefix -D, $(GST_PLUGINS_RS_ENABLEC-)))
+endif
+
+
+GST_PLUGINS_RS_MAKE_ENV := \
+ $(CROSS_CARGO_ENV)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/gst-plugins-rs.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, gst-plugins-rs)
+ @$(call install_fixup, gst-plugins-rs,PRIORITY,optional)
+ @$(call install_fixup, gst-plugins-rs,SECTION,base)
+ @$(call install_fixup, gst-plugins-rs,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, gst-plugins-rs,DESCRIPTION,missing)
+
+ifdef PTXCONF_GST_PLUGINS_BAD1_WEBRTC
+ @$(call install_copy, gst-plugins-rs, 0, 0, 0755, -, \
+ /usr/bin/gst-webrtc-signalling-server)
+endif
+
+# # install all activated plugins
+ @$(foreach plugin,$(GST_PLUGINS_RS_ENABLEP-y), \
+ $(call install_copy, gst-plugins-rs, 0, 0, 0644, -, \
+ /usr/lib/gstreamer-1.0/libgst$(plugin).so)$(ptx/nl))
+
+ @$(call install_finish, gst-plugins-rs)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/gst-plugins-ugly.in b/rules/gst-plugins-ugly.in
deleted file mode 100644
index 6d2a8f690..000000000
--- a/rules/gst-plugins-ugly.in
+++ /dev/null
@@ -1,113 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=multimedia_gstreamer
-
-menuconfig GST_PLUGINS_UGLY
- tristate
- select GLIB
- select GSTREAMER
- select GST_PLUGINS_BASE
- select LIBMAD if GST_PLUGINS_UGLY_MAD
- select LIBID3TAG if GST_PLUGINS_UGLY_MAD
- select LIBMPEG2 if GST_PLUGINS_UGLY_MPEG2DEC
- select LAME if GST_PLUGINS_UGLY_LAME
- select TWOLAME if GST_PLUGINS_UGLY_TWOLAME
- prompt "gst-plugins-ugly "
- help
- GStreamer Ugly Plug-ins is a set of plug-ins that
- have good quality and correct functionality, but
- distributing them might pose problems. The license
- on either the plug-ins or the supporting libraries
- might not be how we'd like. The code might be widely
- known to present patent problems.
-
- STAGING: remove in ptxdist-2021.05.0
- GStreamer 0.10 has been dead more than 8 years.
-
-if GST_PLUGINS_UGLY
-
-config GST_PLUGINS_UGLY_ASFDEMUX
- bool
- prompt "asfdemux"
-
-config GST_PLUGINS_UGLY_DVDLPCMDEC
- bool
- prompt "dvdlpcmdec"
-
-config GST_PLUGINS_UGLY_DVDSUB
- bool
- prompt "dvdsub"
-
-config GST_PLUGINS_UGLY_IEC958
- bool
- prompt "iec958"
-
-config GST_PLUGINS_UGLY_MPEGAUDIOPARSE
- bool
- prompt "mpegaudioparse"
-
-config GST_PLUGINS_UGLY_MPEGSTREAM
- bool
- prompt "mpegstream"
-
-config GST_PLUGINS_UGLY_REALMEDIA
- bool
- prompt "realmedia"
-
-config GST_PLUGINS_UGLY_SYNAESTHESIA
- bool
- prompt "synaesthesia"
-
-config GST_PLUGINS_UGLY_A52DEC
- bool
- depends on BROKEN
- prompt "a52dec"
-
-config GST_PLUGINS_UGLY_AMRNB
- bool
- depends on BROKEN
- prompt "amrnb"
-
-config GST_PLUGINS_UGLY_AMRWBDEC
- bool
- depends on BROKEN
- prompt "amrwbdec"
-
-config GST_PLUGINS_UGLY_CDIO
- bool
- depends on BROKEN
- prompt "cdio"
-
-config GST_PLUGINS_UGLY_DVDREADSRC
- bool
- depends on BROKEN
- prompt "dvdreadsrc"
-
-config GST_PLUGINS_UGLY_LAME
- bool
- prompt "lame"
-
-config GST_PLUGINS_UGLY_MAD
- bool
- prompt "mad"
-
-config GST_PLUGINS_UGLY_MPEG2DEC
- bool
- prompt "mpeg2dec"
-
-config GST_PLUGINS_UGLY_SID
- bool
- depends on BROKEN
- prompt "sid"
-
-config GST_PLUGINS_UGLY_TWOLAME
- bool
- prompt "twolame"
-
-config GST_PLUGINS_UGLY_X264
- bool
- depends on BROKEN
- prompt "x264"
-
-endif
-
diff --git a/rules/gst-plugins-ugly.make b/rules/gst-plugins-ugly.make
deleted file mode 100644
index baded8d43..000000000
--- a/rules/gst-plugins-ugly.make
+++ /dev/null
@@ -1,114 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2010 by Erwin Rol <erwin@erwinrol.com>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_GST_PLUGINS_UGLY) += gst-plugins-ugly
-
-#
-# Paths and names
-#
-GST_PLUGINS_UGLY_VERSION := 0.10.19
-GST_PLUGINS_UGLY_MD5 := 1d81c593e22a6cdf0f2b4f57eae93df2
-GST_PLUGINS_UGLY := gst-plugins-ugly-$(GST_PLUGINS_UGLY_VERSION)
-GST_PLUGINS_UGLY_SUFFIX := tar.bz2
-GST_PLUGINS_UGLY_URL := http://gstreamer.freedesktop.org/src/gst-plugins-ugly/$(GST_PLUGINS_UGLY).$(GST_PLUGINS_UGLY_SUFFIX)
-GST_PLUGINS_UGLY_SOURCE := $(SRCDIR)/$(GST_PLUGINS_UGLY).$(GST_PLUGINS_UGLY_SUFFIX)
-GST_PLUGINS_UGLY_DIR := $(BUILDDIR)/$(GST_PLUGINS_UGLY)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-GST_PLUGINS_UGLY_ENABLEC-$(PTXCONF_GST_PLUGINS_UGLY_ASFDEMUX) += asfdemux
-GST_PLUGINS_UGLY_ENABLEP-$(PTXCONF_GST_PLUGINS_UGLY_ASFDEMUX) += asf
-GST_PLUGINS_UGLY_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY_DVDLPCMDEC) += dvdlpcmdec
-GST_PLUGINS_UGLY_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY_DVDSUB) += dvdsub
-GST_PLUGINS_UGLY_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY_IEC958) += iec958
-GST_PLUGINS_UGLY_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY_MPEGAUDIOPARSE) += mpegaudioparse
-GST_PLUGINS_UGLY_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY_MPEGSTREAM) += mpegstream
-GST_PLUGINS_UGLY_ENABLEC-$(PTXCONF_GST_PLUGINS_UGLY_REALMEDIA) += realmedia
-GST_PLUGINS_UGLY_ENABLEP-$(PTXCONF_GST_PLUGINS_UGLY_REALMEDIA) += rmdemux
-GST_PLUGINS_UGLY_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY_SYNAESTHESIA) += synaesthesia
-GST_PLUGINS_UGLY_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY_A52DEC) += a52dec
-GST_PLUGINS_UGLY_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY_AMRNB) += amrnb
-GST_PLUGINS_UGLY_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY_AMRWBDEC) += amrwb
-GST_PLUGINS_UGLY_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY_CDIO) += cdio
-GST_PLUGINS_UGLY_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY_DVDREADSRC) += dvdread
-GST_PLUGINS_UGLY_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY_LAME) += lame
-GST_PLUGINS_UGLY_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY_MAD) += mad
-GST_PLUGINS_UGLY_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY_MPEG2DEC) += mpeg2dec
-GST_PLUGINS_UGLY_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY_SID) += sidplay
-GST_PLUGINS_UGLY_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY_TWOLAME) += twolame
-GST_PLUGINS_UGLY_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY_X264) += x264
-
-GST_PLUGINS_UGLY_ENABLEC-y += $(GST_PLUGINS_UGLY_ENABLE-y)
-GST_PLUGINS_UGLY_ENABLEC- += $(GST_PLUGINS_UGLY_ENABLE-)
-GST_PLUGINS_UGLY_ENABLEP-y += $(GST_PLUGINS_UGLY_ENABLE-y)
-
-#
-# autoconf
-#
-GST_PLUGINS_UGLY_CONF_TOOL := autoconf
-GST_PLUGINS_UGLY_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --enable-option-checking \
- --enable-silent-rules \
- --disable-nls \
- --disable-rpath \
- --disable-debug \
- --disable-profiling \
- --disable-valgrind \
- --disable-gcov \
- --disable-examples \
- --enable-external \
- --enable-experimental \
- --disable-gtk-doc \
- --with-package-origin="PTXDist"
-
-# --enable-gobject-cast-checks=[no/auto/yes] Enable GObject cast checks
-
-#
-# the --with-plugins sadly only applies to depencyless plugings
-# and when no plugins are sellected it builds them all. So
-# --with-plugins is useless, so we generate a --enable-*
-# and --disable-* below
-#
-ifneq ($(call remove_quotes,$(GST_PLUGINS_UGLY_ENABLEC-y)),)
-GST_PLUGINS_UGLY_CONF_OPT += --enable-$(subst $(space),$(space)--enable-,$(strip $(GST_PLUGINS_UGLY_ENABLEC-y)))
-endif
-
-ifneq ($(call remove_quotes,$(GST_PLUGINS_UGLY_ENABLEC-)),)
-GST_PLUGINS_UGLY_CONF_OPT += --disable-$(subst $(space),$(space)--disable-,$(strip $(GST_PLUGINS_UGLY_ENABLEC-)))
-endif
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/gst-plugins-ugly.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, gst-plugins-ugly)
- @$(call install_fixup, gst-plugins-ugly,PRIORITY,optional)
- @$(call install_fixup, gst-plugins-ugly,SECTION,base)
- @$(call install_fixup, gst-plugins-ugly,AUTHOR,"Erwin Rol <erwin@erwinrol.com>")
- @$(call install_fixup, gst-plugins-ugly,DESCRIPTION,missing)
-
- # install all activated plugins
- @for plugin in $(GST_PLUGINS_UGLY_ENABLEP-y); do \
- $(call install_copy, gst-plugins-ugly, 0, 0, 0644, -, \
- /usr/lib/gstreamer-0.10/libgst$${plugin}.so); \
- done
-
- @$(call install_finish, gst-plugins-ugly)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/gst-plugins-ugly1.in b/rules/gst-plugins-ugly1.in
index 69969d5d5..d984df777 100644
--- a/rules/gst-plugins-ugly1.in
+++ b/rules/gst-plugins-ugly1.in
@@ -8,6 +8,7 @@ menuconfig GST_PLUGINS_UGLY1
select GSTREAMER1
select GST_PLUGINS_BASE1
select ORC if GST_PLUGINS_UGLY1_A52DEC
+ select LIBCDIO if GST_PLUGINS_UGLY1_CDIO
select LIBMPEG2 if GST_PLUGINS_UGLY1_MPEG2DEC
prompt "gst-plugins-ugly "
help
@@ -38,10 +39,6 @@ config GST_PLUGINS_UGLY1_REALMEDIA
bool
prompt "realmedia"
-config GST_PLUGINS_UGLY1_XINGMUX
- bool
- prompt "xingmux"
-
comment "plugins with dependencies"
config GST_PLUGINS_UGLY1_A52DEC
@@ -52,26 +49,8 @@ config GST_PLUGINS_UGLY1_A52DEC
help
Dolby Digital (AC-3) audio decoder plugin
-config GST_PLUGINS_UGLY1_AMRNB
- bool
- # needs opencore-amrnb
- depends on BROKEN
- prompt "amrnb"
- help
- Adaptive Multi-Rate Narrow-Band audio codec plugin
-
-config GST_PLUGINS_UGLY1_AMRWBDEC
- bool
- # needs opencore-amrwb
- depends on BROKEN
- prompt "amrwbdec"
- help
- Adaptive Multi-Rate Wide-Band audio decoder plugin
-
config GST_PLUGINS_UGLY1_CDIO
bool
- # needs libcdio
- depends on BROKEN
prompt "cdio"
help
CD audio source plugin
diff --git a/rules/gst-plugins-ugly1.make b/rules/gst-plugins-ugly1.make
index 95de6df0a..6d5ff4a7e 100644
--- a/rules/gst-plugins-ugly1.make
+++ b/rules/gst-plugins-ugly1.make
@@ -14,14 +14,17 @@ PACKAGES-$(PTXCONF_GST_PLUGINS_UGLY1) += gst-plugins-ugly1
#
# Paths and names
#
-GST_PLUGINS_UGLY1_VERSION := 1.18.4
-GST_PLUGINS_UGLY1_MD5 := e5fbd9a8a05632cfb9d0afd0ad856d52
+GST_PLUGINS_UGLY1_VERSION := 1.24.2
+GST_PLUGINS_UGLY1_MD5 := 405e4820eabd142d3cede21360742b7f
GST_PLUGINS_UGLY1 := gst-plugins-ugly-$(GST_PLUGINS_UGLY1_VERSION)
GST_PLUGINS_UGLY1_SUFFIX := tar.xz
GST_PLUGINS_UGLY1_URL := http://gstreamer.freedesktop.org/src/gst-plugins-ugly/$(GST_PLUGINS_UGLY1).$(GST_PLUGINS_UGLY1_SUFFIX)
GST_PLUGINS_UGLY1_SOURCE := $(SRCDIR)/$(GST_PLUGINS_UGLY1).$(GST_PLUGINS_UGLY1_SUFFIX)
GST_PLUGINS_UGLY1_DIR := $(BUILDDIR)/$(GST_PLUGINS_UGLY1)
GST_PLUGINS_UGLY1_LICENSE := LGPL-2.1-or-later
+ifdef PTXCONF_GST_PLUGINS_UGLY1_MPEG2DEC
+GST_PLUGINS_UGLY1_LICENSE += AND $(LIBMPEG2_LICENSE)
+endif
# ----------------------------------------------------------------------------
# Prepare
@@ -29,8 +32,6 @@ GST_PLUGINS_UGLY1_LICENSE := LGPL-2.1-or-later
GST_PLUGINS_UGLY1_ENABLEC-$(PTXCONF_GST_PLUGINS_UGLY1_A52DEC) += orc
GST_PLUGINS_UGLY1_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY1_A52DEC) += a52dec
-GST_PLUGINS_UGLY1_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY1_AMRNB) += amrnb
-GST_PLUGINS_UGLY1_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY1_AMRWBDEC) += amrwbdec
GST_PLUGINS_UGLY1_ENABLEC-$(PTXCONF_GST_PLUGINS_UGLY1_ASFDEMUX) += asfdemux
GST_PLUGINS_UGLY1_ENABLEP-$(PTXCONF_GST_PLUGINS_UGLY1_ASFDEMUX) += asf
GST_PLUGINS_UGLY1_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY1_CDIO) += cdio
@@ -41,7 +42,6 @@ GST_PLUGINS_UGLY1_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY1_MPEG2DEC) += mpeg2dec
GST_PLUGINS_UGLY1_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY1_REALMEDIA) += realmedia
GST_PLUGINS_UGLY1_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY1_SIDPLAY) += sidplay
GST_PLUGINS_UGLY1_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY1_X264) += x264
-GST_PLUGINS_UGLY1_ENABLE-$(PTXCONF_GST_PLUGINS_UGLY1_XINGMUX) += xingmux
GST_PLUGINS_UGLY1_ENABLEC- += $(GST_PLUGINS_UGLY1_ENABLE-)
GST_PLUGINS_UGLY1_ENABLEC-y += $(GST_PLUGINS_UGLY1_ENABLE-y)
@@ -53,7 +53,10 @@ GST_PLUGINS_UGLY1_ENABLEP-y += $(GST_PLUGINS_UGLY1_ENABLE-y)
GST_PLUGINS_UGLY1_CONF_TOOL := meson
GST_PLUGINS_UGLY1_CONF_OPT = \
$(CROSS_MESON_USR) \
- $(call GSTREAMER1_GENERIC_CONF_OPT,GStreamer Ugly Plug-ins)
+ $(call GSTREAMER1_GENERIC_CONF_OPT,GStreamer Ugly Plug-ins) \
+ -Dgpl=$(call ptx/endis,PTXCONF_GST_PLUGINS_UGLY1_MPEG2DEC)d \
+ -Dnls=disabled \
+ -Dx264_libraries=
ifneq ($(call remove_quotes,$(GST_PLUGINS_UGLY1_ENABLEC-y)),)
GST_PLUGINS_UGLY1_CONF_OPT += $(addsuffix =enabled, $(addprefix -D, $(GST_PLUGINS_UGLY1_ENABLEC-y)))
diff --git a/rules/gst-python1.make b/rules/gst-python1.make
index 1a942bff9..6d8cf2cd9 100644
--- a/rules/gst-python1.make
+++ b/rules/gst-python1.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_GST_PYTHON1) += gst-python1
#
# Paths and names
#
-GST_PYTHON1_VERSION := 1.18.4
-GST_PYTHON1_MD5 := 19696a9c0b0b5a3131ac1299acb2b97b
+GST_PYTHON1_VERSION := 1.24.2
+GST_PYTHON1_MD5 := ff85146fa5cda97e3becad302a4c5947
GST_PYTHON1 := gst-python-$(GST_PYTHON1_VERSION)
GST_PYTHON1_SUFFIX := tar.xz
GST_PYTHON1_URL := http://gstreamer.freedesktop.org/src/gst-python/$(GST_PYTHON1).$(GST_PYTHON1_SUFFIX)
@@ -35,8 +35,10 @@ GST_PYTHON1_CONF_TOOL := meson
GST_PYTHON1_CONF_OPT = \
$(CROSS_MESON_USR) \
-Dlibpython-dir=/usr/lib \
+ -Dplugin=enabled \
-Dpygi-overrides-dir=$(PYTHON3_SITEPACKAGES)/gi \
- -Dpython=$(CROSS_PYTHON3)
+ -Dpython=$(CROSS_PYTHON3) \
+ -Dtests=disabled
# ----------------------------------------------------------------------------
# Install
diff --git a/rules/gst-rtsp-server1.in b/rules/gst-rtsp-server1.in
index 5d1dacbce..8d24bf8cd 100644
--- a/rules/gst-rtsp-server1.in
+++ b/rules/gst-rtsp-server1.in
@@ -4,6 +4,7 @@ config GST_RTSP_SERVER1
tristate
select HOST_MESON
select GSTREAMER1
+ select GST_PLUGINS_BAD1
select GST_PLUGINS_BASE1
prompt "gst-rtsp-server"
help
diff --git a/rules/gst-rtsp-server1.make b/rules/gst-rtsp-server1.make
index b475238a4..692044015 100644
--- a/rules/gst-rtsp-server1.make
+++ b/rules/gst-rtsp-server1.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_GST_RTSP_SERVER1) += gst-rtsp-server1
#
# Paths and names
#
-GST_RTSP_SERVER1_VERSION := 1.18.4
-GST_RTSP_SERVER1_MD5 := e96d617840fb534bb4e7a629db10bdef
+GST_RTSP_SERVER1_VERSION := 1.24.2
+GST_RTSP_SERVER1_MD5 := ac735575893581d921e0e8f851c59d37
GST_RTSP_SERVER1 := gst-rtsp-server-$(GST_RTSP_SERVER1_VERSION)
GST_RTSP_SERVER1_SUFFIX := tar.xz
GST_RTSP_SERVER1_URL := http://gstreamer.freedesktop.org/src/gst-rtsp/$(GST_RTSP_SERVER1).$(GST_RTSP_SERVER1_SUFFIX)
@@ -33,9 +33,16 @@ GST_RTSP_SERVER1_LICENSE := LGPL-2.0-or-later
GST_RTSP_SERVER1_CONF_TOOL = meson
GST_RTSP_SERVER1_CONF_OPT = \
$(CROSS_MESON_USR) \
- $(call GSTREAMER1_GENERIC_CONF_OPT,GStreamer RTSP Server Library) \
+ -Ddoc=disabled \
+ -Dexamples=disabled \
+ -Dglib-asserts=enabled \
+ -Dglib-checks=enabled \
+ -Dgobject-cast-checks=enabled \
-Dintrospection=$(call ptx/endis,PTXCONF_GSTREAMER1_INTROSPECTION)d \
- -Drtspclientsink=auto
+ -Dpackage-name="GStreamer RTSP Server Library source release" \
+ -Dpackage-origin=PTXdist \
+ -Drtspclientsink=auto \
+ -Dtests=disabled
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/gstreamer-vaapi1.in b/rules/gstreamer-vaapi1.in
index 8c98636ed..9acae123f 100644
--- a/rules/gstreamer-vaapi1.in
+++ b/rules/gstreamer-vaapi1.in
@@ -8,8 +8,11 @@ config GSTREAMER_VAAPI1
select GSTREAMER1_DEBUG
select GST_PLUGINS_BAD1
select GST_PLUGINS_BASE1
- select MESALIB if GSTREAMER_VAAPI1_OPENGL
- select XORG_LIB_XRANDR if GSTREAMER_VAAPI1_X11
+ select GST_PLUGINS_BASE1_EGL if GSTREAMER_VAAPI1_OPENGL
+ select GST_PLUGINS_BASE1_EGL_WAYLAND if GSTREAMER_VAAPI1_OPENGL && GSTREAMER_VAAPI1_WAYLAND
+ select GST_PLUGINS_BASE1_X11 if GSTREAMER_VAAPI1_OPENGL && GSTREAMER_VAAPI1_X11
+ select MESALIB if GSTREAMER_VAAPI1_OPENGL
+ select XORG_LIB_XRANDR if GSTREAMER_VAAPI1_X11
prompt "gstreamer-vaapi1"
help
Gstreamer-vaapi is a collection of GStreamer plugins and helper
diff --git a/rules/gstreamer-vaapi1.make b/rules/gstreamer-vaapi1.make
index f4142ea97..5b75707df 100644
--- a/rules/gstreamer-vaapi1.make
+++ b/rules/gstreamer-vaapi1.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_GSTREAMER_VAAPI1) += gstreamer-vaapi1
#
# Paths and names
#
-GSTREAMER_VAAPI1_VERSION := 1.18.4
-GSTREAMER_VAAPI1_MD5 := 07d334476b3a7195033692fdb42b78d5
+GSTREAMER_VAAPI1_VERSION := 1.24.2
+GSTREAMER_VAAPI1_MD5 := 920572f5fdd73bb8b04efb59f7b9747f
GSTREAMER_VAAPI1 := gstreamer-vaapi-$(GSTREAMER_VAAPI1_VERSION)
GSTREAMER_VAAPI1_SUFFIX := tar.xz
GSTREAMER_VAAPI1_URL := http://gstreamer.freedesktop.org/src/gstreamer-vaapi/$(GSTREAMER_VAAPI1).$(GSTREAMER_VAAPI1_SUFFIX)
@@ -34,15 +34,15 @@ GSTREAMER_VAAPI1_CONF_TOOL := meson
GSTREAMER_VAAPI1_CONF_OPT = \
$(CROSS_MESON_USR) \
-Ddoc=disabled \
+ -Ddrm=enabled \
+ -Degl=$(call ptx/endis, PTXCONF_GSTREAMER_VAAPI1_OPENGL)d \
+ -Dencoders=enabled \
-Dexamples=disabled \
+ -Dglx=$(call ptx/endis, PTXCONF_GSTREAMER_VAAPI1_GLX)d \
-Dpackage-origin=PTXdist \
-Dtests=disabled \
- -Dwith_drm=yes \
- -Dwith_egl=$(call ptx/yesno, PTXCONF_GSTREAMER_VAAPI1_OPENGL) \
- -Dwith_encoders=yes \
- -Dwith_glx=$(call ptx/yesno, PTXCONF_GSTREAMER_VAAPI1_GLX) \
- -Dwith_wayland=$(call ptx/yesno, PTXCONF_GSTREAMER_VAAPI1_WAYLAND) \
- -Dwith_x11=$(call ptx/yesno, PTXCONF_GSTREAMER_VAAPI1_X11) \
+ -Dwayland=$(call ptx/endis, PTXCONF_GSTREAMER_VAAPI1_WAYLAND)d \
+ -Dx11=$(call ptx/endis, PTXCONF_GSTREAMER_VAAPI1_X11)d
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/gstreamer.in b/rules/gstreamer.in
deleted file mode 100644
index 11d7f43dc..000000000
--- a/rules/gstreamer.in
+++ /dev/null
@@ -1,77 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=multimedia_gstreamer
-
-menuconfig GSTREAMER
- tristate
- prompt "gstreamer "
- select LIBC_M
- select GLIB
- select LIBXML2 if GSTREAMER_LOADSAVE
- select LIBXML2_READER if GSTREAMER_LOADSAVE
- select LIBXML2_OUTPUT if GSTREAMER_LOADSAVE
- select LIBXML2_SAX1 if GSTREAMER_LOADSAVE
- select HOST_GLIB
- select HOST_FLEX
- help
- GStreamer is a streaming media framework, based on graphs of
- filters which operate on media data. Applications using this
- library can do anything from real-time sound processing to
- playing videos, and just about anything else
- media-related. Its plugin-based architecture means that new
- data types or processing capabilities can be added simply by
- installing new plug-ins.
-
- STAGING: remove in ptxdist-2021.05.0
- GStreamer 0.10 has been dead more than 8 years.
-
-if GSTREAMER
-
- comment "compile options"
-
- config GSTREAMER_DEBUG
- bool
- prompt "debug support"
-
- config GSTREAMER_LOADSAVE
- bool
- prompt "pipleline xml load/save"
-
- config GSTREAMER_CMDLINEPARSER
- bool
- prompt "commandline parser"
-
- config GSTREAMER_OPTIONPARSING
- bool
- prompt "option parsing when gst init"
-
- config GSTREAMER_NETDIST
- bool
- prompt "network distribution"
-
- comment "install options"
-
- config GSTREAMER_INSTALL_TYPEFIND
- bool
- prompt "install gst-typefind"
-
- config GSTREAMER_INSTALL_INSPECT
- bool
- prompt "install gst-inspect"
-
- config GSTREAMER_INSTALL_XMLINSPECT
- bool
- prompt "install gst-xmlinspect"
-
- config GSTREAMER_INSTALL_XMLLAUNCH
- bool
- depends on GSTREAMER_LOADSAVE
- prompt "install gst-xmllaunch"
-
- config GSTREAMER_INSTALL_LAUNCH
- bool
- depends on GSTREAMER_CMDLINEPARSER
- prompt "install gst-launch"
-
-endif
-
diff --git a/rules/gstreamer.make b/rules/gstreamer.make
deleted file mode 100644
index e7fe7f72c..000000000
--- a/rules/gstreamer.make
+++ /dev/null
@@ -1,146 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2008 by Robert Schwebel
-# 2011 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_GSTREAMER) += gstreamer
-
-#
-# Paths and names
-#
-GSTREAMER_VERSION := 0.10.36
-GSTREAMER_MD5 := a0cf7d6877f694a1a2ad2b4d1ecb890b
-GSTREAMER := gstreamer-$(GSTREAMER_VERSION)
-GSTREAMER_SUFFIX := tar.bz2
-GSTREAMER_URL := http://gstreamer.freedesktop.org/src/gstreamer/$(GSTREAMER).$(GSTREAMER_SUFFIX)
-GSTREAMER_SOURCE := $(SRCDIR)/$(GSTREAMER).$(GSTREAMER_SUFFIX)
-GSTREAMER_DIR := $(BUILDDIR)/$(GSTREAMER)
-GSTREAMER_LICENSE := LGPL-2.0-or-later
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-GSTREAMER_GENERIC_CONF_OPT = \
- --disable-static \
- --disable-nls \
- --disable-rpath \
- --disable-debug \
- --disable-profiling \
- --disable-valgrind \
- --disable-gcov \
- --disable-examples \
- --disable-gtk-doc \
- --disable-silent-rules \
- --without-libiconv-prefix \
- --without-libintl-prefix \
- --disable-gobject-cast-checks
-
-GSTREAMER_AUTOCONF := \
- $(CROSS_AUTOCONF_USR) \
- $(GSTREAMER_GENERIC_CONF_OPT) \
- --$(call ptx/endis,PTXCONF_GSTREAMER_DEBUG)-gst-debug \
- --$(call ptx/endis,PTXCONF_GSTREAMER_LOADSAVE)-loadsave \
- --$(call ptx/endis,PTXCONF_GSTREAMER_CMDLINEPARSER)-parse \
- --$(call ptx/endis,PTXCONF_GSTREAMER_OPTIONPARSING)-option-parsing \
- --disable-trace \
- --disable-alloc-trace \
- --enable-registry \
- --$(call ptx/endis,PTXCONF_GSTREAMER_NETDIST)-net \
- --enable-plugin \
- --disable-tests \
- --disable-failing-tests \
- --disable-poisoning \
- $(GLOBAL_LARGE_FILE_OPTION) \
- --disable-introspection \
- --disable-docbook \
- --disable-check \
- --enable-Bsymbolic
-
-ifdef PTXCONF_ARCH_ARM64
-# The configure check defines default values for known architectures.
-# This value for arm64 is taken from a newer gstreamer version.
-GSTREAMER_AUTOCONF += \
- as_cv_unaligned_access=no
-endif
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/gstreamer.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, gstreamer)
- @$(call install_fixup, gstreamer,PRIORITY,optional)
- @$(call install_fixup, gstreamer,SECTION,base)
- @$(call install_fixup, gstreamer,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, gstreamer,DESCRIPTION,missing)
-
-ifdef PTXCONF_GSTREAMER_INSTALL_TYPEFIND
- @$(call install_copy, gstreamer, 0, 0, 0755, -, \
- /usr/bin/gst-typefind)
- @$(call install_copy, gstreamer, 0, 0, 0755, -, \
- /usr/bin/gst-typefind-0.10)
-endif
-ifdef PTXCONF_GSTREAMER_INSTALL_INSPECT
- @$(call install_copy, gstreamer, 0, 0, 0755, -, \
- /usr/bin/gst-inspect)
- @$(call install_copy, gstreamer, 0, 0, 0755, -, \
- /usr/bin/gst-inspect-0.10)
-endif
-ifdef PTXCONF_GSTREAMER_INSTALL_XMLINSPECT
- @$(call install_copy, gstreamer, 0, 0, 0755, -, \
- /usr/bin/gst-xmlinspect)
- @$(call install_copy, gstreamer, 0, 0, 0755, -, \
- /usr/bin/gst-xmlinspect-0.10)
-endif
-ifdef PTXCONF_GSTREAMER_INSTALL_XMLLAUNCH
- @$(call install_copy, gstreamer, 0, 0, 0755, -, \
- /usr/bin/gst-xmllaunch)
- @$(call install_copy, gstreamer, 0, 0, 0755, -, \
- /usr/bin/gst-xmllaunch-0.10)
-endif
-ifdef PTXCONF_GSTREAMER_INSTALL_LAUNCH
- @$(call install_copy, gstreamer, 0, 0, 0755, -, \
- /usr/bin/gst-launch)
- @$(call install_copy, gstreamer, 0, 0, 0755, -, \
- /usr/bin/gst-launch-0.10)
-endif
-
- @$(call install_lib, gstreamer, 0, 0, 0644, libgstbase-0.10)
- @$(call install_lib, gstreamer, 0, 0, 0644, libgstcontroller-0.10)
- @$(call install_lib, gstreamer, 0, 0, 0644, libgstdataprotocol-0.10)
-ifdef PTXCONF_GSTREAMER_NETDIST
- @$(call install_lib, gstreamer, 0, 0, 0644, libgstnet-0.10)
-endif
- @$(call install_lib, gstreamer, 0, 0, 0644, libgstreamer-0.10)
-
- @$(call install_lib, gstreamer, 0, 0, 0644, \
- gstreamer-0.10/libgstcoreelements)
- @$(call install_lib, gstreamer, 0, 0, 0644, \
- gstreamer-0.10/libgstcoreindexers)
-
- @$(call install_copy, gstreamer, 0, 0, 0755, -, \
- /usr/libexec/gstreamer-0.10/gst-plugin-scanner)
-
-ifdef PTXCONF_PRELINK
- @$(call install_alternative, gstreamer, 0, 0, 0644, \
- /etc/prelink.conf.d/gstreamer)
-endif
-
- @$(call install_finish, gstreamer)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/gstreamer1.in b/rules/gstreamer1.in
index 1efa55087..a7ea8d1d7 100644
--- a/rules/gstreamer1.in
+++ b/rules/gstreamer1.in
@@ -21,22 +21,28 @@ menuconfig GSTREAMER1
if GSTREAMER1
- config GSTREAMER1_INTROSPECTION
- bool
- default GOBJECT_INTROSPECTION_HELPER
-
- config GSTREAMER1_DEBUG
- bool
- default y
- prompt "enable debug support"
-
- config GSTREAMER1_CHECK
- bool
- prompt "install gst-check library"
-
- config GSTREAMER1_INSTALL_TOOLS
- bool
- default y
- prompt "install tools"
+config GSTREAMER1_INTROSPECTION
+ bool
+ default GOBJECT_INTROSPECTION_HELPER
+
+config GSTREAMER1_PTP
+ bool
+ prompt "enable ptp support"
+ help
+ Note: The ptp helper requires a working rust compiler
+
+config GSTREAMER1_DEBUG
+ bool
+ default y
+ prompt "enable debug support"
+
+config GSTREAMER1_CHECK
+ bool
+ prompt "install gst-check library"
+
+config GSTREAMER1_INSTALL_TOOLS
+ bool
+ default y
+ prompt "install tools"
endif
diff --git a/rules/gstreamer1.make b/rules/gstreamer1.make
index e1433d31f..014833c6b 100644
--- a/rules/gstreamer1.make
+++ b/rules/gstreamer1.make
@@ -15,29 +15,36 @@ PACKAGES-$(PTXCONF_GSTREAMER1) += gstreamer1
#
# Paths and names
#
-GSTREAMER1_VERSION := 1.18.4
-GSTREAMER1_MD5 := fe381e1e910e622fee44692e865f7229
+GSTREAMER1_VERSION := 1.24.2
+GSTREAMER1_MD5 := fd0faca3054dd579768f81288be822d4
GSTREAMER1 := gstreamer-$(GSTREAMER1_VERSION)
GSTREAMER1_SUFFIX := tar.xz
GSTREAMER1_URL := http://gstreamer.freedesktop.org/src/gstreamer/$(GSTREAMER1).$(GSTREAMER1_SUFFIX)
GSTREAMER1_SOURCE := $(SRCDIR)/$(GSTREAMER1).$(GSTREAMER1_SUFFIX)
GSTREAMER1_DIR := $(BUILDDIR)/$(GSTREAMER1)
GSTREAMER1_LICENSE := LGPL-2.1-or-later
+GSTREAMER1_LICENSE_FILES:= \
+ file://COPYING;md5=69333daa044cb77e486cc36129f7a770
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
+GSTREAMER1_CONF_ENV := \
+ $(CROSS_ENV) \
+ $(CROSS_CARGO_ENV)
+
+GSTREAMER1_MAKE_ENV := \
+ $(CROSS_CARGO_ENV)
+
#
# meson
#
GSTREAMER1_GENERIC_CONF_OPT = \
-Ddoc=disabled \
- -Dexamples=disabled \
-Dglib-asserts=$(call ptx/endis,PTXCONF_GSTREAMER1_DEBUG)d \
-Dglib-checks=$(call ptx/endis,PTXCONF_GSTREAMER1_DEBUG)d \
-Dgobject-cast-checks=$(call ptx/endis,PTXCONF_GSTREAMER1_DEBUG)d \
- -Dnls=disabled \
-Dpackage-name="$(1) source release" \
-Dpackage-origin=PTXdist \
-Dtests=disabled
@@ -51,16 +58,19 @@ GSTREAMER1_CONF_OPT := \
-Dcheck=$(call ptx/endis,PTXCONF_GSTREAMER1_CHECK)d \
-Dcoretracers=$(call ptx/endis,PTXCONF_GSTREAMER1_DEBUG)d \
-Ddbghelp=disabled \
+ -Dexamples=disabled \
-Dextra-checks=disabled \
-Dgst_debug=$(call ptx/truefalse,PTXCONF_GSTREAMER1_DEBUG) \
-Dgst_parse=true \
- -Dgtk_doc=disabled \
+ -Dgstreamer-static-full=false \
-Dintrospection=$(call ptx/endis,PTXCONF_GSTREAMER1_INTROSPECTION)d \
-Dlibdw=disabled \
-Dlibunwind=enabled \
-Dmemory-alignment=malloc \
+ -Dnls=disabled \
-Doption-parsing=true \
-Dpoisoning=false \
+ -Dptp-helper=$(call ptx/endis,PTXCONF_GSTREAMER1_PTP)d \
-Dptp-helper-permissions=setuid-root \
-Dptp-helper-setuid-group=nogroup \
-Dptp-helper-setuid-user=nobody \
@@ -120,8 +130,10 @@ endif
@$(call install_copy, gstreamer1, 0, 0, 0755, -, \
/usr/libexec/gstreamer-1.0/gst-plugin-scanner)
+ifdef PTXCONF_GSTREAMER1_PTP
@$(call install_copy, gstreamer1, 0, 0, 4755, -, \
/usr/libexec/gstreamer-1.0/gst-ptp-helper)
+endif
ifdef PTXCONF_GSTREAMER1_INTROSPECTION
@$(call install_tree, gstreamer1, 0, 0, -, \
diff --git a/rules/gt.in b/rules/gt.in
new file mode 100644
index 000000000..5084a554b
--- /dev/null
+++ b/rules/gt.in
@@ -0,0 +1,11 @@
+## SECTION=shell_and_console
+
+config GT
+ tristate
+ select HOST_CMAKE
+ select LIBUSBGX
+ select LIBUSBGX_SCHEMES
+ select LIBCONFIG
+ prompt "gadget-tool (gt)"
+ help
+ Gadget-tool - Linux command line tool for setting USB gadget using configFS
diff --git a/rules/gt.make b/rules/gt.make
new file mode 100644
index 000000000..53deaba5a
--- /dev/null
+++ b/rules/gt.make
@@ -0,0 +1,60 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Michael Grzeschik <m.grzeschik@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_GT) += gt
+
+#
+# Paths and names
+#
+# No tags: use a fake descriptive commit-ish to include the date
+GT_VERSION := 2021-09-30-g7247547a
+GT_MD5 := ac390e90cc866ca95cf4821fbf25812b
+GT := gt-$(GT_VERSION)
+GT_SUFFIX := tar.gz
+GT_URL := https://github.com/linux-usb-gadgets/gt/archive/$(GT_VERSION).$(GT_SUFFIX)
+GT_SOURCE := $(SRCDIR)/$(GT).$(GT_SUFFIX)
+GT_DIR := $(BUILDDIR)/$(GT)
+GT_SUBDIR := source
+GT_LICENSE := Apache-2.0
+GT_LICENSE_FILES := \
+ file://source/main.c;startline=2;endline=14;md5=239ab3ef885c745f3896a83f17482d6d \
+ file://LICENSE;md5=785f417ec07d653f268e6eb621218d5d
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+GT_CONF_TOOL := cmake
+GT_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -DENABLE_MANUAL_PAGE:BOOL=OFF
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/gt.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, gt)
+ @$(call install_fixup, gt, PRIORITY, optional)
+ @$(call install_fixup, gt, SECTION, base)
+ @$(call install_fixup, gt, AUTHOR, "Michael Grzeschik <m.grzeschik@pengutronix.de>")
+ @$(call install_fixup, gt, DESCRIPTION, missing)
+
+ @$(call install_copy, gt, 0, 0, 0755, -, /usr/bin/gt)
+ @$(call install_alternative, gt, 0, 0, 0644, /etc/gt/gt.conf)
+
+ @$(call install_finish, gt)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/gtk-engines.make b/rules/gtk-engines.make
index 2544c89cb..c549aa21b 100644
--- a/rules/gtk-engines.make
+++ b/rules/gtk-engines.make
@@ -31,7 +31,8 @@ GTK_ENGINES_DIR := $(BUILDDIR)/$(GTK_ENGINES)
#
# autoconf
#
-GTK_ENGINES_AUTOCONF := \
+GTK_ENGINES_CONF_TOOL := autoconf
+GTK_ENGINES_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-schemas
@@ -60,7 +61,7 @@ $(STATEDIR)/gtk-engines.targetinstall:
@$(foreach engine,$(GTK_ENGINES_ENGINES), \
$(call install_lib, gtk-engines, 0, 0, 0644, \
- gtk-3.0/3.0.0/engines/lib$(engine));)
+ gtk-3.0/3.0.0/engines/lib$(engine))$(ptx/nl))
@$(call install_tree, gtk-engines, 0, 0, -, \
/usr/share/themes)
diff --git a/rules/gtk.make b/rules/gtk.make
index 252540511..cd0a55e4a 100644
--- a/rules/gtk.make
+++ b/rules/gtk.make
@@ -14,14 +14,18 @@ PACKAGES-$(PTXCONF_GTK) += gtk
#
# Paths and names
#
-GTK_VERSION := 3.24.21
-GTK_MD5 := 95afed6c860d27de827db66434d681da
+GTK_VERSION := 3.24.35
+GTK_MD5 := b258062c7960a57c8401fb431890988a
GTK := gtk+-$(GTK_VERSION)
-GTK_SUFFIX := tar.xz
-GTK_URL := $(call ptx/mirror, GNOME, gtk+/$(basename $(GTK_VERSION))/$(GTK).$(GTK_SUFFIX))
+GTK_SUFFIX := tar.bz2
+GTK_URL := https://gitlab.gnome.org/GNOME/gtk/-/archive/$(GTK_VERSION)/$(GTK).$(GTK_SUFFIX)
GTK_SOURCE := $(SRCDIR)/$(GTK).$(GTK_SUFFIX)
GTK_DIR := $(BUILDDIR)/$(GTK)
GTK_LICENSE := LGPL-2.0-or-later
+GTK_LICENSE_FILES := \
+ file://gtk/gtk.h;startline=1;endline=16;md5=afc4cab684b2381c66b31615c9c5b99c \
+ file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2
+
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/gtk2.in b/rules/gtk2.in
deleted file mode 100644
index 985528826..000000000
--- a/rules/gtk2.in
+++ /dev/null
@@ -1,58 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=multimedia_gtk
-
-menuconfig GTK2
- tristate
- prompt "GTK+2 "
- select GLIB
- select ATK
- select PANGO
- select GDK_PIXBUF
-
- select CAIRO
- select CAIRO_PDF
- select CAIRO_SVG
-
- select XORG_LIB_XEXT if GTK2_TARGET_X11
- select XORG_LIB_XINERAMA if GTK2_TARGET_X11_XINERAMA
- select XORG_LIB_XRANDR if GTK2_TARGET_X11_XRANDR
-
- help
- The GTK2+ is a multi-platform toolkit for creating graphical
- user interfaces. Offering a complete set of widgets, the GTK2+
- is suitable for projects ranging from small one-off tools to complete
- application suites.
-
- STAGING: remove in PTXdist 2022.02.0
- Gtk 2 was replaced by Gtk 3 a long time ago. All remaining users
- should be ported by now.
-
-if GTK2
-
-choice
- prompt "gdk-target "
-
- config GTK2_TARGET_X11
- bool "X11 "
- select CAIRO_XLIB
- select CAIRO_PS
-
-endchoice
-
-config GTK2_TARGET
- string
- default "x11" if GTK2_TARGET_X11
-
-config GTK2_TARGET_X11_XINERAMA
- bool
- prompt "Xinerama support"
- depends on GTK2_TARGET_X11
-
-config GTK2_TARGET_X11_XRANDR
- bool
- prompt "Xrandr support"
- depends on GTK2_TARGET_X11
-
-endif
-
diff --git a/rules/gtk2.make b/rules/gtk2.make
deleted file mode 100644
index bed71cf25..000000000
--- a/rules/gtk2.make
+++ /dev/null
@@ -1,88 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006-2008 by Marc Kleine-Budde <mkl@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_GTK2) += gtk2
-
-#
-# Paths and names
-#
-GTK2_VERSION := 2.24.32
-GTK2_MD5 := d5742aa42275203a499b59b4c382a784
-GTK2 := gtk+-$(GTK2_VERSION)
-GTK2_SUFFIX := tar.xz
-GTK2_URL := $(call ptx/mirror, GNOME, gtk+/$(basename $(GTK2_VERSION))/$(GTK2).$(GTK2_SUFFIX))
-GTK2_SOURCE := $(SRCDIR)/$(GTK2).$(GTK2_SUFFIX)
-GTK2_DIR := $(BUILDDIR)/$(GTK2)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-# cups-config otherwhise picks up the host version
-GTK2_CONF_ENV := \
- $(CROSS_ENV) \
- ac_cv_path_CUPS_CONFIG=no
-
-#
-# autoconf
-#
-GTK2_CONF_TOOL := autoconf
-GTK2_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --enable-static \
- $(GLOBAL_LARGE_FILE_OPTION) \
- --disable-debug \
- --disable-shm \
- --enable-xkb \
- --disable-xinerama \
- --disable-rebuilds \
- --enable-explicit-deps \
- --disable-glibtest \
- --disable-modules \
- --disable-introspection \
- --disable-gtk-doc \
- --disable-gtk-doc-html \
- --disable-gtk-doc-pdf \
- --disable-man \
- --without-xinput \
- --with-gdktarget=$(PTXCONF_GTK2_TARGET)
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/gtk2.install:
- @$(call targetinfo)
- @$(call install, GTK2)
- @install -m 755 -D $(GTK2_DIR)/tests/testgtk $(GTK2_PKGDIR)/usr/bin/
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/gtk2.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, gtk2)
- @$(call install_fixup, gtk2,PRIORITY,optional)
- @$(call install_fixup, gtk2,SECTION,base)
- @$(call install_fixup, gtk2,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, gtk2,DESCRIPTION,missing)
-
- @$(call install_lib, gtk2, 0, 0, 0644, libgdk-$(PTXCONF_GTK2_TARGET)-2.0)
- @$(call install_lib, gtk2, 0, 0, 0644, libgtk-$(PTXCONF_GTK2_TARGET)-2.0)
-
- @$(call install_finish, gtk2)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/haproxy.make b/rules/haproxy.make
index 7c360135d..e0d57806a 100644
--- a/rules/haproxy.make
+++ b/rules/haproxy.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_HAPROXY) += haproxy
#
# Paths and names
#
-HAPROXY_VERSION := 2.1.6
-HAPROXY_MD5 := 95ffd25fc6b57b4f1650322a7587f972
+HAPROXY_VERSION := 2.7.2
+HAPROXY_MD5 := 0b6e16bbc45cb65e7d5b43d6ed1ff071
HAPROXY := haproxy-$(HAPROXY_VERSION)
HAPROXY_SUFFIX := tar.gz
HAPROXY_URL := https://www.haproxy.org/download/$(basename $(HAPROXY_VERSION))/src/$(HAPROXY).$(HAPROXY_SUFFIX)
@@ -60,7 +60,7 @@ HAPROXY_INSTALL_OPT := \
$(STATEDIR)/haproxy.compile:
@$(call targetinfo)
@$(call world/compile, HAPROXY)
- @$(call compile, HAPROXY, -C contrib/systemd $(HAPROXY_MAKE_OPT))
+ @$(call compile, HAPROXY, -C admin/systemd $(HAPROXY_MAKE_OPT))
@$(call touch)
# ----------------------------------------------------------------------------
@@ -70,7 +70,7 @@ $(STATEDIR)/haproxy.compile:
$(STATEDIR)/haproxy.install:
@$(call targetinfo)
@$(call world/install, HAPROXY)
- @install -v -D -m644 $(HAPROXY_DIR)/contrib/systemd/haproxy.service \
+ @install -v -D -m644 $(HAPROXY_DIR)/admin/systemd/haproxy.service \
$(HAPROXY_PKGDIR)/usr/lib/systemd/system/haproxy.service
@$(call touch)
diff --git a/rules/harfbuzz.in b/rules/harfbuzz.in
index 84c5d7e4b..65f4aa00d 100644
--- a/rules/harfbuzz.in
+++ b/rules/harfbuzz.in
@@ -3,15 +3,21 @@
menuconfig HARFBUZZ
tristate
prompt "harfbuzz "
+ select HOST_MESON
select FREETYPE
select GLIB
- select GRAPHITE2 if HARFBUZZ_GRAPHITE
- select ICU if HARFBUZZ_ICU
+ select GRAPHITE2 if HARFBUZZ_GRAPHITE
+ select ICU if HARFBUZZ_ICU
+ select GOBJECT_INTROSPECTION if HARFBUZZ_INTROSPECTION
help
HarfBuzz is an OpenType text shaping engine.
if HARFBUZZ
+config HARFBUZZ_INTROSPECTION
+ bool
+ default GOBJECT_INTROSPECTION_HELPER
+
config HARFBUZZ_GRAPHITE
bool
prompt "graphite support"
diff --git a/rules/harfbuzz.make b/rules/harfbuzz.make
index 32e44fd13..1bef9bbba 100644
--- a/rules/harfbuzz.make
+++ b/rules/harfbuzz.make
@@ -14,40 +14,46 @@ PACKAGES-$(PTXCONF_HARFBUZZ) += harfbuzz
#
# Paths and names
#
-HARFBUZZ_VERSION := 2.6.7
-HARFBUZZ_MD5 := 3b884586a09328c5fae76d8c200b0e1c
+HARFBUZZ_VERSION := 8.3.0
+HARFBUZZ_MD5 := 7bf11a21c51a4f3ce0728decc4c557d4
HARFBUZZ := harfbuzz-$(HARFBUZZ_VERSION)
HARFBUZZ_SUFFIX := tar.xz
-HARFBUZZ_URL := https://www.freedesktop.org/software/harfbuzz/release/$(HARFBUZZ).$(HARFBUZZ_SUFFIX)
+HARFBUZZ_URL := https://github.com/harfbuzz/harfbuzz/releases/download/$(HARFBUZZ_VERSION)/$(HARFBUZZ).$(HARFBUZZ_SUFFIX)
HARFBUZZ_SOURCE := $(SRCDIR)/$(HARFBUZZ).$(HARFBUZZ_SUFFIX)
HARFBUZZ_DIR := $(BUILDDIR)/$(HARFBUZZ)
HARFBUZZ_LICENSE := MIT
+HARFBUZZ_LICENSE_FILES := \
+ file://COPYING;md5=b98429b8e8e3c2a67cfef01e99e4893d
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-HARFBUZZ_CONF_TOOL := autoconf
+HARFBUZZ_CONF_TOOL := meson
HARFBUZZ_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --disable-code-coverage \
- --disable-static \
- $(GLOBAL_LARGE_FILE_OPTION) \
- --disable-gtk-doc \
- --disable-gtk-doc-html \
- --disable-gtk-doc-pdf \
- --disable-introspection \
- --with-glib \
- --without-gobject \
- --without-cairo \
- --without-fontconfig \
- --$(call ptx/wwo, PTXCONF_HARFBUZZ_ICU)-icu \
- --$(call ptx/wwo, PTXCONF_HARFBUZZ_GRAPHITE)-graphite2 \
- --with-freetype \
- --without-uniscribe \
- --without-gdi \
- --without-directwrite \
- --without-coretext
+ $(CROSS_MESON_USR) \
+ -Dbenchmark=disabled \
+ -Dcairo=disabled \
+ -Dchafa=disabled \
+ -Dcoretext=disabled \
+ -Ddirectwrite=disabled \
+ -Ddoc_tests=false \
+ -Ddocs=disabled \
+ -Dexperimental_api=false \
+ -Dfreetype=enabled \
+ -Dfuzzer_ldflags="" \
+ -Dgdi=disabled \
+ -Dglib=enabled \
+ -Dgobject=$(call ptx/endis, PTXCONF_HARFBUZZ_INTROSPECTION)d \
+ -Dgraphite=disabled \
+ -Dgraphite2=$(call ptx/endis, PTXCONF_HARFBUZZ_GRAPHITE)d \
+ -Dicu=$(call ptx/endis, PTXCONF_HARFBUZZ_ICU)d \
+ -Dicu_builtin=false \
+ -Dintrospection=$(call ptx/endis, PTXCONF_HARFBUZZ_INTROSPECTION)d \
+ -Dragel_subproject=false \
+ -Dtests=disabled \
+ -Dutilities=disabled
+ -Dwasm=disabled
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/haserl.make b/rules/haserl.make
index 3a1b9ffd9..b5db55ab9 100644
--- a/rules/haserl.make
+++ b/rules/haserl.make
@@ -29,13 +29,11 @@ HASERL_LICENSE_FILES := file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f
# Prepare
# ----------------------------------------------------------------------------
-HASERL_PATH := PATH=$(CROSS_PATH)
-HASERL_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-HASERL_AUTOCONF = $(CROSS_AUTOCONF_USR)
+HASERL_CONF_TOOL := autoconf
+HASERL_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/hdparm.in b/rules/hdparm.in
index 5ec8f9c55..9e6762912 100644
--- a/rules/hdparm.in
+++ b/rules/hdparm.in
@@ -6,7 +6,7 @@ config HDPARM
help
hdparm - get/set ATA drive parameters under Linux
- See http://sourceforge.net/projects/hdparm/ for details.
+ See http://sourceforge.net/projects/hdparm/ for details.
comment "BusyBox' hdparm is selected"
depends on BUSYBOX_HDPARM
diff --git a/rules/hdparm.make b/rules/hdparm.make
index 85c88bd73..3c7daacfb 100644
--- a/rules/hdparm.make
+++ b/rules/hdparm.make
@@ -22,6 +22,8 @@ HDPARM_SUFFIX := tar.gz
HDPARM_URL := $(call ptx/mirror, SF, hdparm/$(HDPARM).$(HDPARM_SUFFIX))
HDPARM_SOURCE := $(SRCDIR)/$(HDPARM).$(HDPARM_SUFFIX)
HDPARM_DIR := $(BUILDDIR)/$(HDPARM)
+HDPARM_LICENSE := custom
+HDPARM_LICENSE_FILES := file://LICENSE.TXT;md5=495d03e50dc6c89d6a30107ab0df5b03
# ----------------------------------------------------------------------------
diff --git a/rules/heirloom-mailx.make b/rules/heirloom-mailx.make
index ca3894268..0471dce51 100644
--- a/rules/heirloom-mailx.make
+++ b/rules/heirloom-mailx.make
@@ -27,9 +27,6 @@ HEIRLOOM_MAILX_LICENSE := unknown
# Prepare
# ----------------------------------------------------------------------------
-HEIRLOOM_MAILX_CONF_ENV := $(CROSS_ENV)
-HEIRLOOM_MAILX_PATH := PATH=$(CROSS_PATH)
-
HEIRLOOM_MAILX_DISABLE := \
USE_SSL \
USE_NSS \
@@ -40,9 +37,8 @@ HEIRLOOM_MAILX_DISABLE := \
$(STATEDIR)/heirloom-mailx.prepare:
@$(call targetinfo)
@$(call clean, $(HEIRLOOM_MAILX_DIR)/config.cache)
- @cd $(HEIRLOOM_MAILX_DIR) && \
- $(HEIRLOOM_MAILX_PATH) $(HEIRLOOM_MAILX_CONF_ENV) \
- sh makeconfig
+ @$(call world/execute, HEIRLOOM_MAILX, \
+ sh makeconfig)
# # disable ssl options
@$(foreach def,$(HEIRLOOM_MAILX_DISABLE), \
sed -i 's;^\(#define $(def)\)$$;/*\1*/;' $(HEIRLOOM_MAILX_DIR)/config.h;)
diff --git a/rules/hiredis.in b/rules/hiredis.in
new file mode 100644
index 000000000..d416d69c4
--- /dev/null
+++ b/rules/hiredis.in
@@ -0,0 +1,8 @@
+## SECTION=system_libraries
+
+config HIREDIS
+ tristate
+ select HOST_CMAKE
+ prompt "hiredis "
+ help
+ Hiredis is a minimalistic C client library for the Redis database.
diff --git a/rules/hiredis.make b/rules/hiredis.make
new file mode 100644
index 000000000..cac7304d4
--- /dev/null
+++ b/rules/hiredis.make
@@ -0,0 +1,61 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Clemens Gruber <clemens.gruber@pqgruber.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_HIREDIS) += hiredis
+
+#
+# Paths and names
+#
+HIREDIS_VERSION := 1.2.0
+HIREDIS_MD5 := 119767d178cfa79718a80c83e0d0e849
+HIREDIS := hiredis-$(HIREDIS_VERSION)
+HIREDIS_SUFFIX := tar.gz
+HIREDIS_URL := https://github.com/redis/hiredis/archive/v$(HIREDIS_VERSION).$(HIREDIS_SUFFIX)
+HIREDIS_SOURCE := $(SRCDIR)/$(HIREDIS).$(HIREDIS_SUFFIX)
+HIREDIS_DIR := $(BUILDDIR)/$(HIREDIS)
+HIREDIS_LICENSE := BSD-3-Clause
+HIREDIS_LICENSE_FILES := file://COPYING;md5=d84d659a35c666d23233e54503aaea51
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# cmake
+#
+HIREDIS_CONF_TOOL := cmake
+
+HIREDIS_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -DDISABLE_TESTS=ON \
+ -DENABLE_SSL=OFF
+
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/hiredis.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, hiredis)
+ @$(call install_fixup, hiredis,PRIORITY,optional)
+ @$(call install_fixup, hiredis,SECTION,base)
+ @$(call install_fixup, hiredis,AUTHOR,"Clemens Gruber <clemens.gruber@pqgruber.com>")
+ @$(call install_fixup, hiredis,DESCRIPTION,"Minimalistic C client for Redis")
+
+ @$(call install_lib, hiredis, 0, 0, 0644, libhiredis)
+
+ @$(call install_finish, hiredis)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/host-apiextractor.in b/rules/host-apiextractor.in
deleted file mode 100644
index 1e3af97e6..000000000
--- a/rules/host-apiextractor.in
+++ /dev/null
@@ -1,13 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=hosttools_noprompt
-
-config HOST_APIEXTRACTOR
- tristate
- default y if ALLYES
- select HOST_QT4
- select HOST_QT4_XMLPATTERNS
- select HOST_CMAKE
- help
- STAGING: remove in PTXdist 2022.01.0
- Must be removed with Qt4
diff --git a/rules/host-apiextractor.make b/rules/host-apiextractor.make
deleted file mode 100644
index c9d377145..000000000
--- a/rules/host-apiextractor.make
+++ /dev/null
@@ -1,50 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2011 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-HOST_PACKAGES-$(PTXCONF_HOST_APIEXTRACTOR) += host-apiextractor
-
-#
-# Paths and names
-#
-HOST_APIEXTRACTOR_VERSION := 0.10.10
-HOST_APIEXTRACTOR_MD5 := 7cdf6bdbf161e15b8bc5e98df86f95ee
-HOST_APIEXTRACTOR := apiextractor-$(HOST_APIEXTRACTOR_VERSION)
-HOST_APIEXTRACTOR_SUFFIX := tar.bz2
-HOST_APIEXTRACTOR_URL := https://distfiles.macports.org/apiextractor/$(HOST_APIEXTRACTOR).$(HOST_APIEXTRACTOR_SUFFIX)
-HOST_APIEXTRACTOR_SOURCE := $(SRCDIR)/$(HOST_APIEXTRACTOR).$(HOST_APIEXTRACTOR_SUFFIX)
-HOST_APIEXTRACTOR_DIR := $(HOST_BUILDDIR)/$(HOST_APIEXTRACTOR)
-HOST_APIEXTRACTOR_LICENSE := unknown
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# cmake
-#
-HOST_APIEXTRACTOR_CONF_TOOL := cmake
-HOST_APIEXTRACTOR_CONF_OPT := \
- $(HOST_CMAKE_OPT) \
- -DBUILD_TESTS:BOOL=OFF \
- -DDISABLE_DOCSTRINGS:BOOL=ON
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/host-apiextractor.install.post:
- @$(call targetinfo)
- @$(call world/install.post, HOST_APIEXTRACTOR)
- @sed -i -e 's,"/,"$(PTXDIST_SYSROOT_HOST)/,g' \
- '$(PTXDIST_SYSROOT_HOST)/lib/cmake/ApiExtractor-$(HOST_APIEXTRACTOR_VERSION)/ApiExtractorConfig.cmake'
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/host-autotools-autoconf-archive.make b/rules/host-autotools-autoconf-archive.make
index ed3be47da..d8011b278 100644
--- a/rules/host-autotools-autoconf-archive.make
+++ b/rules/host-autotools-autoconf-archive.make
@@ -14,8 +14,8 @@ HOST_PACKAGES-$(PTXCONF_HOST_AUTOTOOLS_AUTOCONF_ARCHIVE) += host-autotools-autoc
#
# Paths and names
#
-HOST_AUTOTOOLS_AUTOCONF_ARCHIVE_VERSION := 2019.01.06
-HOST_AUTOTOOLS_AUTOCONF_ARCHIVE_MD5 := d46413c8b00a125b1529bae385bbec55
+HOST_AUTOTOOLS_AUTOCONF_ARCHIVE_VERSION := 2023.02.20
+HOST_AUTOTOOLS_AUTOCONF_ARCHIVE_MD5 := 1a9ee97d3503d134e16c87c4fa1119cf
HOST_AUTOTOOLS_AUTOCONF_ARCHIVE := autoconf-archive-$(HOST_AUTOTOOLS_AUTOCONF_ARCHIVE_VERSION)
HOST_AUTOTOOLS_AUTOCONF_ARCHIVE_SUFFIX := tar.xz
HOST_AUTOTOOLS_AUTOCONF_ARCHIVE_URL := $(call ptx/mirror, GNU, autoconf-archive/$(HOST_AUTOTOOLS_AUTOCONF_ARCHIVE).$(HOST_AUTOTOOLS_AUTOCONF_ARCHIVE_SUFFIX))
@@ -25,7 +25,7 @@ HOST_AUTOTOOLS_AUTOCONF_ARCHIVE_LICENSE := GPL-3.0-or-later WITH Autoconf-except
HOST_AUTOTOOLS_AUTOCONF_ARCHIVE_LICENSE_FILES := \
file://COPYING;md5=11cc2d3ee574f9d6b7ee797bdce4d423 \
file://COPYING.EXCEPTION;md5=fdef168ebff3bc2f13664c365a5fb515 \
- file://README;startline=51;endline=67;md5=28397cd25dc41e1932e0d1127aaf1836
+ file://README;startline=51;endline=67;md5=e7e002fc8c304f9dfed77d46f6d8de24
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/host-autotools-autoconf.make b/rules/host-autotools-autoconf.make
index a5e6d6ea9..7bacc56f8 100644
--- a/rules/host-autotools-autoconf.make
+++ b/rules/host-autotools-autoconf.make
@@ -14,8 +14,8 @@ LAZY_PACKAGES-$(PTXCONF_HOST_AUTOTOOLS_AUTOCONF) += host-autotools-autoconf
#
# Paths and names
#
-HOST_AUTOTOOLS_AUTOCONF_VERSION := 2.69
-HOST_AUTOTOOLS_AUTOCONF_MD5 := 50f97f4159805e374639a73e2636f22e
+HOST_AUTOTOOLS_AUTOCONF_VERSION := 2.71
+HOST_AUTOTOOLS_AUTOCONF_MD5 := 12cfa1687ffa2606337efe1a64416106
HOST_AUTOTOOLS_AUTOCONF := autoconf-$(HOST_AUTOTOOLS_AUTOCONF_VERSION)
HOST_AUTOTOOLS_AUTOCONF_SUFFIX := tar.xz
HOST_AUTOTOOLS_AUTOCONF_URL := $(call ptx/mirror, GNU, autoconf/$(HOST_AUTOTOOLS_AUTOCONF).$(HOST_AUTOTOOLS_AUTOCONF_SUFFIX))
@@ -23,9 +23,9 @@ HOST_AUTOTOOLS_AUTOCONF_SOURCE := $(SRCDIR)/$(HOST_AUTOTOOLS_AUTOCONF).$(HOST_AU
HOST_AUTOTOOLS_AUTOCONF_DIR := $(HOST_BUILDDIR)/$(HOST_AUTOTOOLS_AUTOCONF)
HOST_AUTOTOOLS_AUTOCONF_LICENSE := GPL-2.0-only AND GPL-3.0-only AND Autoconf-exception-3.0
HOST_AUTOTOOLS_AUTOCONF_LICENSE_FILES := \
- file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
- file://COPYINGv3;md5=d32239bcb673463ab874e80d47fae504 \
- file://COPYING.EXCEPTION;md5=fdef168ebff3bc2f13664c365a5fb515
+ file://COPYING;md5=cc3f3a7596cb558bbd9eb7fbaa3ef16c \
+ file://COPYINGv3;md5=1ebbd3e34237af26da5dc08a4e440464 \
+ file://COPYING.EXCEPTION;md5=eb129370fe0bb2068cc4e48ff8d31260
$(STATEDIR)/autogen-tools: $(STATEDIR)/host-autotools-autoconf.install.post
@@ -45,11 +45,14 @@ HOST_AUTOTOOLS_AUTOCONF_CONF_TOOL := autoconf
$(STATEDIR)/host-autotools-autoconf.install.post:
@$(call targetinfo)
@sed -i \
- -e "s;'\(/share/autoconf\)';'$(PTXDIST_SYSROOT_HOST)\1';g" \
- -e "s;'\(/bin/auto[^']*\)';'$(PTXDIST_SYSROOT_HOST)\1';g" \
+ -e "s;'\(/usr/share/autoconf\)';'$(PTXDIST_SYSROOT_HOST)\1';g" \
+ -e "s;'\(/usr/bin/auto[^']*\)';'$(PTXDIST_SYSROOT_HOST)\1';g" \
-e "s;'/[^']*/sysroot-host\(/bin/m4\)';'$(PTXDIST_SYSROOT_HOST)\1';g" \
- $(HOST_AUTOTOOLS_AUTOCONF_PKGDIR)/bin/* \
- $(HOST_AUTOTOOLS_AUTOCONF_PKGDIR)/share/autoconf/autom4te.cfg
+ $(HOST_AUTOTOOLS_AUTOCONF_PKGDIR)/usr/bin/* \
+ $(HOST_AUTOTOOLS_AUTOCONF_PKGDIR)/usr/share/autoconf/autom4te.cfg
+ @sed -i \
+ -e "s;\(/usr/share/autoconf/\);$(PTXDIST_SYSROOT_HOST)\1;g" \
+ $(HOST_AUTOTOOLS_AUTOCONF_PKGDIR)/usr/bin/autoconf
@$(call world/install.post, HOST_AUTOTOOLS_AUTOCONF)
@$(call touch)
diff --git a/rules/host-autotools-automake.make b/rules/host-autotools-automake.make
index a7fa29943..2361f8589 100644
--- a/rules/host-autotools-automake.make
+++ b/rules/host-autotools-automake.make
@@ -14,8 +14,8 @@ LAZY_PACKAGES-$(PTXCONF_HOST_AUTOTOOLS_AUTOMAKE) += host-autotools-automake
#
# Paths and names
#
-HOST_AUTOTOOLS_AUTOMAKE_VERSION := 1.16.1
-HOST_AUTOTOOLS_AUTOMAKE_MD5 := 53f38e7591fa57c3d2cee682be668e5b
+HOST_AUTOTOOLS_AUTOMAKE_VERSION := 1.16.5
+HOST_AUTOTOOLS_AUTOMAKE_MD5 := 4017e96f89fca45ca946f1c5db6be714
HOST_AUTOTOOLS_AUTOMAKE := automake-$(HOST_AUTOTOOLS_AUTOMAKE_VERSION)
HOST_AUTOTOOLS_AUTOMAKE_SUFFIX := tar.xz
HOST_AUTOTOOLS_AUTOMAKE_URL := $(call ptx/mirror, GNU, automake/$(HOST_AUTOTOOLS_AUTOMAKE).$(HOST_AUTOTOOLS_AUTOMAKE_SUFFIX))
@@ -44,11 +44,11 @@ HOST_AUTOTOOLS_AUTOMAKE_MAKE_OPT := MANS=
$(STATEDIR)/host-autotools-automake.install.post:
@$(call targetinfo)
@sed -i \
- -e "s;'\(/share/automake-[^']*\)';'$(PTXDIST_SYSROOT_HOST)\1';g" \
- -e "s;'\(/share/aclocal[^']*\)';'$(PTXDIST_SYSROOT_HOST)\1';g" \
- -e "s;'\(/bin/m4\)';'$(PTXDIST_SYSROOT_HOST)\1';g" \
- $(HOST_AUTOTOOLS_AUTOMAKE_PKGDIR)/bin/* \
- $(HOST_AUTOTOOLS_AUTOMAKE_PKGDIR)/share/automake-*/Automake/Config.pm
+ -e "s;'\(/usr/share/automake-[^']*\)';'$(PTXDIST_SYSROOT_HOST)\1';g" \
+ -e "s;'\(/usr/share/aclocal[^']*\)';'$(PTXDIST_SYSROOT_HOST)\1';g" \
+ -e "s;'\(/usr/bin/m4\)';'$(PTXDIST_SYSROOT_HOST)\1';g" \
+ $(HOST_AUTOTOOLS_AUTOMAKE_PKGDIR)/usr/bin/* \
+ $(HOST_AUTOTOOLS_AUTOMAKE_PKGDIR)/usr/share/automake-*/Automake/Config.pm
@$(call world/install.post, HOST_AUTOTOOLS_AUTOMAKE)
@$(call touch)
diff --git a/rules/host-autotools-libtool.make b/rules/host-autotools-libtool.make
index 2d6a3eb94..b131d0211 100644
--- a/rules/host-autotools-libtool.make
+++ b/rules/host-autotools-libtool.make
@@ -14,8 +14,8 @@ LAZY_PACKAGES-$(PTXCONF_HOST_AUTOTOOLS_LIBTOOL) += host-autotools-libtool
#
# Paths and names
#
-HOST_AUTOTOOLS_LIBTOOL_VERSION := 2.4.6
-HOST_AUTOTOOLS_LIBTOOL_MD5 := addf44b646ddb4e3919805aa88fa7c5e
+HOST_AUTOTOOLS_LIBTOOL_VERSION := 2.4.7
+HOST_AUTOTOOLS_LIBTOOL_MD5 := ed40528d8a066ee3fffd714588721cff
HOST_AUTOTOOLS_LIBTOOL := libtool-$(HOST_AUTOTOOLS_LIBTOOL_VERSION)
HOST_AUTOTOOLS_LIBTOOL_SUFFIX := tar.gz
HOST_AUTOTOOLS_LIBTOOL_URL := $(call ptx/mirror, GNU, libtool/$(HOST_AUTOTOOLS_LIBTOOL).$(HOST_AUTOTOOLS_LIBTOOL_SUFFIX))
diff --git a/rules/host-bzip2.make b/rules/host-bzip2.make
index bce3a5903..5c506cfea 100644
--- a/rules/host-bzip2.make
+++ b/rules/host-bzip2.make
@@ -15,6 +15,6 @@ HOST_PACKAGES-$(PTXCONF_HOST_BZIP2) += host-bzip2
# Prepare
# ----------------------------------------------------------------------------
-HOST_BZIP2_INSTALL_OPT := install PREFIX=
+HOST_BZIP2_INSTALL_OPT := install PREFIX=/usr
# vim: syntax=make
diff --git a/rules/host-c-ares.make b/rules/host-c-ares.make
index ff93b812c..69d501e08 100644
--- a/rules/host-c-ares.make
+++ b/rules/host-c-ares.make
@@ -25,7 +25,6 @@ HOST_C_ARES_CONF_OPT := \
--enable-optimize \
--enable-warnings \
--disable-werror \
- --disable-curldebug \
--enable-symbol-hiding \
--disable-expose-statics \
--disable-code-coverage \
diff --git a/rules/host-cairo.in b/rules/host-cairo.in
index 3c7fdb337..0b6817ec8 100644
--- a/rules/host-cairo.in
+++ b/rules/host-cairo.in
@@ -2,6 +2,7 @@
config HOST_CAIRO
tristate
+ select HOST_MESON
select HOST_FONTCONFIG
select HOST_FREETYPE
select HOST_PIXMAN
diff --git a/rules/host-cairo.make b/rules/host-cairo.make
index e49ab9a6f..919771681 100644
--- a/rules/host-cairo.make
+++ b/rules/host-cairo.make
@@ -15,63 +15,27 @@ HOST_PACKAGES-$(PTXCONF_HOST_CAIRO) += host-cairo
# Prepare
# ----------------------------------------------------------------------------
-#HOST_CAIRO_CONF_ENV := $(HOST_ENV)
-
#
-# autoconf
+# meson
#
-HOST_CAIRO_CONF_TOOL := autoconf
+HOST_CAIRO_CONF_TOOL := meson
HOST_CAIRO_CONF_OPT := \
- $(HOST_AUTOCONF) \
- --enable-shared \
- --disable-static \
- --disable-gtk-doc \
- --disable-gtk-doc-html \
- --disable-gtk-doc-pdf \
- --enable-atomic \
- --disable-gcov \
- --disable-valgrind \
- --disable-xlib \
- --disable-xlib-xrender \
- --disable-xcb \
- --disable-xlib-xcb \
- --disable-xcb-shm \
- --disable-qt \
- --disable-quartz \
- --disable-quartz-font \
- --disable-quartz-image \
- --disable-win32 \
- --disable-win32-font \
- --disable-os2 \
- --disable-beos \
- --disable-drm \
- --disable-gallium \
- --disable-png \
- --disable-gl \
- --disable-glesv2 \
- --disable-glesv3 \
- --disable-cogl \
- --disable-directfb \
- --disable-vg \
- --disable-egl \
- --disable-glx \
- --disable-wgl \
- --disable-script \
- --enable-ft \
- --enable-fc \
- --disable-ps \
- --disable-pdf \
- --disable-svg \
- --disable-test-surfaces \
- --disable-tee \
- --disable-xml \
- --enable-pthread \
- --disable-gobject \
- --disable-full-testing \
- --disable-trace \
- --disable-interpreter \
- --disable-symbol-lookup \
- --disable-some-floating-point \
- --without-x
+ $(HOST_MESON_OPT) \
+ -Ddwrite=disabled \
+ -Dfontconfig=enabled \
+ -Dfreetype=enabled \
+ -Dglib=disabled \
+ -Dgtk2-utils=disabled \
+ -Dgtk_doc=false \
+ -Dpng=disabled \
+ -Dquartz=disabled \
+ -Dspectre=disabled \
+ -Dsymbol-lookup=disabled \
+ -Dtee=disabled \
+ -Dtests=disabled \
+ -Dxcb=disabled \
+ -Dxlib=disabled \
+ -Dxlib-xcb=disabled \
+ -Dzlib=disabled
# vim: syntax=make
diff --git a/rules/host-cargo-c.cargo.make b/rules/host-cargo-c.cargo.make
new file mode 100644
index 000000000..f2bf9c8c8
--- /dev/null
+++ b/rules/host-cargo-c.cargo.make
@@ -0,0 +1,1522 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# WARNING: This file is generated with 'ptxdist cargosync host-cargo-c' and
+# should not be modified manually!
+#
+
+HOST_CARGO_C_CARGO_LOCK_MD5 := b4da9f76a4b4fe2fe547be2980f2168c
+
+HOST_CARGO_C_ADLER_1_0_2_MD5 := 669215548c64019c08c92b2c1afd3deb
+HOST_CARGO_C_ADLER_1_0_2_URL := https://crates.io/api/v1/crates/adler/1.0.2/download
+HOST_CARGO_C_ADLER_1_0_2_SOURCE := $(SRCDIR)/adler-1.0.2.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_ADLER_1_0_2
+
+HOST_CARGO_C_AHASH_0_8_3_MD5 := 25bbf8d0145ba2670ba039c768bb4f44
+HOST_CARGO_C_AHASH_0_8_3_URL := https://crates.io/api/v1/crates/ahash/0.8.3/download
+HOST_CARGO_C_AHASH_0_8_3_SOURCE := $(SRCDIR)/ahash-0.8.3.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_AHASH_0_8_3
+
+HOST_CARGO_C_AHO_CORASICK_1_1_2_MD5 := 95e5f8d0b7ab37171b8d3118542ba06a
+HOST_CARGO_C_AHO_CORASICK_1_1_2_URL := https://crates.io/api/v1/crates/aho-corasick/1.1.2/download
+HOST_CARGO_C_AHO_CORASICK_1_1_2_SOURCE := $(SRCDIR)/aho-corasick-1.1.2.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_AHO_CORASICK_1_1_2
+
+HOST_CARGO_C_ANSTREAM_0_6_4_MD5 := d18a8aaf56bfd7418a91540a0174402d
+HOST_CARGO_C_ANSTREAM_0_6_4_URL := https://crates.io/api/v1/crates/anstream/0.6.4/download
+HOST_CARGO_C_ANSTREAM_0_6_4_SOURCE := $(SRCDIR)/anstream-0.6.4.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_ANSTREAM_0_6_4
+
+HOST_CARGO_C_ANSTYLE_1_0_4_MD5 := b4f71ffecd3694a82ffb62c357d997a8
+HOST_CARGO_C_ANSTYLE_1_0_4_URL := https://crates.io/api/v1/crates/anstyle/1.0.4/download
+HOST_CARGO_C_ANSTYLE_1_0_4_SOURCE := $(SRCDIR)/anstyle-1.0.4.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_ANSTYLE_1_0_4
+
+HOST_CARGO_C_ANSTYLE_PARSE_0_2_2_MD5 := 316c95b1454a81db86a56d5af6734c94
+HOST_CARGO_C_ANSTYLE_PARSE_0_2_2_URL := https://crates.io/api/v1/crates/anstyle-parse/0.2.2/download
+HOST_CARGO_C_ANSTYLE_PARSE_0_2_2_SOURCE := $(SRCDIR)/anstyle-parse-0.2.2.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_ANSTYLE_PARSE_0_2_2
+
+HOST_CARGO_C_ANSTYLE_QUERY_1_0_0_MD5 := d2453c99c7af98286c2dc9017a8dba6d
+HOST_CARGO_C_ANSTYLE_QUERY_1_0_0_URL := https://crates.io/api/v1/crates/anstyle-query/1.0.0/download
+HOST_CARGO_C_ANSTYLE_QUERY_1_0_0_SOURCE := $(SRCDIR)/anstyle-query-1.0.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_ANSTYLE_QUERY_1_0_0
+
+HOST_CARGO_C_ANSTYLE_WINCON_3_0_1_MD5 := b57fd47f132f32001e0d4bfc4621f1bf
+HOST_CARGO_C_ANSTYLE_WINCON_3_0_1_URL := https://crates.io/api/v1/crates/anstyle-wincon/3.0.1/download
+HOST_CARGO_C_ANSTYLE_WINCON_3_0_1_SOURCE := $(SRCDIR)/anstyle-wincon-3.0.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_ANSTYLE_WINCON_3_0_1
+
+HOST_CARGO_C_ANYHOW_1_0_75_MD5 := 39a78bec5a0ae75f210c1f67250152b0
+HOST_CARGO_C_ANYHOW_1_0_75_URL := https://crates.io/api/v1/crates/anyhow/1.0.75/download
+HOST_CARGO_C_ANYHOW_1_0_75_SOURCE := $(SRCDIR)/anyhow-1.0.75.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_ANYHOW_1_0_75
+
+HOST_CARGO_C_ARC_SWAP_1_6_0_MD5 := b7916cf807e8e1e3d0bc59b71f7f2500
+HOST_CARGO_C_ARC_SWAP_1_6_0_URL := https://crates.io/api/v1/crates/arc-swap/1.6.0/download
+HOST_CARGO_C_ARC_SWAP_1_6_0_SOURCE := $(SRCDIR)/arc-swap-1.6.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_ARC_SWAP_1_6_0
+
+HOST_CARGO_C_ARRAYVEC_0_5_2_MD5 := c83252f91435a921e7e4434956010344
+HOST_CARGO_C_ARRAYVEC_0_5_2_URL := https://crates.io/api/v1/crates/arrayvec/0.5.2/download
+HOST_CARGO_C_ARRAYVEC_0_5_2_SOURCE := $(SRCDIR)/arrayvec-0.5.2.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_ARRAYVEC_0_5_2
+
+HOST_CARGO_C_AUTOCFG_1_1_0_MD5 := 05d77ef52e90ad161fdd41b252420467
+HOST_CARGO_C_AUTOCFG_1_1_0_URL := https://crates.io/api/v1/crates/autocfg/1.1.0/download
+HOST_CARGO_C_AUTOCFG_1_1_0_SOURCE := $(SRCDIR)/autocfg-1.1.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_AUTOCFG_1_1_0
+
+HOST_CARGO_C_BASE16CT_0_2_0_MD5 := 5a1ece5125e266d39693587725f0270d
+HOST_CARGO_C_BASE16CT_0_2_0_URL := https://crates.io/api/v1/crates/base16ct/0.2.0/download
+HOST_CARGO_C_BASE16CT_0_2_0_SOURCE := $(SRCDIR)/base16ct-0.2.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_BASE16CT_0_2_0
+
+HOST_CARGO_C_BASE64_0_21_4_MD5 := ad633ecb9ddf3cbf53aa3d76cf07339a
+HOST_CARGO_C_BASE64_0_21_4_URL := https://crates.io/api/v1/crates/base64/0.21.4/download
+HOST_CARGO_C_BASE64_0_21_4_SOURCE := $(SRCDIR)/base64-0.21.4.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_BASE64_0_21_4
+
+HOST_CARGO_C_BASE64CT_1_6_0_MD5 := bd4c0e123b65937461c135ff7030a44e
+HOST_CARGO_C_BASE64CT_1_6_0_URL := https://crates.io/api/v1/crates/base64ct/1.6.0/download
+HOST_CARGO_C_BASE64CT_1_6_0_SOURCE := $(SRCDIR)/base64ct-1.6.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_BASE64CT_1_6_0
+
+HOST_CARGO_C_BITFLAGS_1_3_2_MD5 := a295edb6953237ebbdfa8e731229f9a3
+HOST_CARGO_C_BITFLAGS_1_3_2_URL := https://crates.io/api/v1/crates/bitflags/1.3.2/download
+HOST_CARGO_C_BITFLAGS_1_3_2_SOURCE := $(SRCDIR)/bitflags-1.3.2.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_BITFLAGS_1_3_2
+
+HOST_CARGO_C_BITFLAGS_2_4_0_MD5 := b6a33f8009be15391bb7ca1a3c1f5bc4
+HOST_CARGO_C_BITFLAGS_2_4_0_URL := https://crates.io/api/v1/crates/bitflags/2.4.0/download
+HOST_CARGO_C_BITFLAGS_2_4_0_SOURCE := $(SRCDIR)/bitflags-2.4.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_BITFLAGS_2_4_0
+
+HOST_CARGO_C_BITMAPS_2_1_0_MD5 := 1f3a8c93940230a06fdf5223a64000bf
+HOST_CARGO_C_BITMAPS_2_1_0_URL := https://crates.io/api/v1/crates/bitmaps/2.1.0/download
+HOST_CARGO_C_BITMAPS_2_1_0_SOURCE := $(SRCDIR)/bitmaps-2.1.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_BITMAPS_2_1_0
+
+HOST_CARGO_C_BLOCK_BUFFER_0_10_4_MD5 := 023b03cf9968b29253a5dfe62051008d
+HOST_CARGO_C_BLOCK_BUFFER_0_10_4_URL := https://crates.io/api/v1/crates/block-buffer/0.10.4/download
+HOST_CARGO_C_BLOCK_BUFFER_0_10_4_SOURCE := $(SRCDIR)/block-buffer-0.10.4.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_BLOCK_BUFFER_0_10_4
+
+HOST_CARGO_C_BSTR_1_7_0_MD5 := 58b04c69758e02189595f45cce636284
+HOST_CARGO_C_BSTR_1_7_0_URL := https://crates.io/api/v1/crates/bstr/1.7.0/download
+HOST_CARGO_C_BSTR_1_7_0_SOURCE := $(SRCDIR)/bstr-1.7.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_BSTR_1_7_0
+
+HOST_CARGO_C_BTOI_0_4_3_MD5 := 841b2dfaad47fc76cd42a45e074a1e78
+HOST_CARGO_C_BTOI_0_4_3_URL := https://crates.io/api/v1/crates/btoi/0.4.3/download
+HOST_CARGO_C_BTOI_0_4_3_SOURCE := $(SRCDIR)/btoi-0.4.3.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_BTOI_0_4_3
+
+HOST_CARGO_C_BUMPALO_3_14_0_MD5 := d8cacbb844fca8c0ca102c7576946131
+HOST_CARGO_C_BUMPALO_3_14_0_URL := https://crates.io/api/v1/crates/bumpalo/3.14.0/download
+HOST_CARGO_C_BUMPALO_3_14_0_SOURCE := $(SRCDIR)/bumpalo-3.14.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_BUMPALO_3_14_0
+
+HOST_CARGO_C_BYTES_1_5_0_MD5 := 51ed49380bb7d086c005208e805983b2
+HOST_CARGO_C_BYTES_1_5_0_URL := https://crates.io/api/v1/crates/bytes/1.5.0/download
+HOST_CARGO_C_BYTES_1_5_0_SOURCE := $(SRCDIR)/bytes-1.5.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_BYTES_1_5_0
+
+HOST_CARGO_C_BYTESIZE_1_3_0_MD5 := 04c2dcc3c8184578320c53d63a07aed0
+HOST_CARGO_C_BYTESIZE_1_3_0_URL := https://crates.io/api/v1/crates/bytesize/1.3.0/download
+HOST_CARGO_C_BYTESIZE_1_3_0_SOURCE := $(SRCDIR)/bytesize-1.3.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_BYTESIZE_1_3_0
+
+HOST_CARGO_C_CARGO_0_74_0_MD5 := c6ca92011b69e0d0028e2a347620e8e2
+HOST_CARGO_C_CARGO_0_74_0_URL := https://crates.io/api/v1/crates/cargo/0.74.0/download
+HOST_CARGO_C_CARGO_0_74_0_SOURCE := $(SRCDIR)/cargo-0.74.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CARGO_0_74_0
+
+HOST_CARGO_C_CARGO_CREDENTIAL_0_3_0_MD5 := f423e24f6ee81a2f5f16fa384f0f28a6
+HOST_CARGO_C_CARGO_CREDENTIAL_0_3_0_URL := https://crates.io/api/v1/crates/cargo-credential/0.3.0/download
+HOST_CARGO_C_CARGO_CREDENTIAL_0_3_0_SOURCE := $(SRCDIR)/cargo-credential-0.3.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CARGO_CREDENTIAL_0_3_0
+
+HOST_CARGO_C_CARGO_CREDENTIAL_LIBSECRET_0_3_1_MD5 := a6a798b4a363c9c84610f2fa0d997fb9
+HOST_CARGO_C_CARGO_CREDENTIAL_LIBSECRET_0_3_1_URL := https://crates.io/api/v1/crates/cargo-credential-libsecret/0.3.1/download
+HOST_CARGO_C_CARGO_CREDENTIAL_LIBSECRET_0_3_1_SOURCE := $(SRCDIR)/cargo-credential-libsecret-0.3.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CARGO_CREDENTIAL_LIBSECRET_0_3_1
+
+HOST_CARGO_C_CARGO_CREDENTIAL_MACOS_KEYCHAIN_0_3_0_MD5 := ea60b53407f1caff878806625df8a21a
+HOST_CARGO_C_CARGO_CREDENTIAL_MACOS_KEYCHAIN_0_3_0_URL := https://crates.io/api/v1/crates/cargo-credential-macos-keychain/0.3.0/download
+HOST_CARGO_C_CARGO_CREDENTIAL_MACOS_KEYCHAIN_0_3_0_SOURCE := $(SRCDIR)/cargo-credential-macos-keychain-0.3.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CARGO_CREDENTIAL_MACOS_KEYCHAIN_0_3_0
+
+HOST_CARGO_C_CARGO_CREDENTIAL_WINCRED_0_3_0_MD5 := 38e81d5e5763ba8f7a07d849b34221ce
+HOST_CARGO_C_CARGO_CREDENTIAL_WINCRED_0_3_0_URL := https://crates.io/api/v1/crates/cargo-credential-wincred/0.3.0/download
+HOST_CARGO_C_CARGO_CREDENTIAL_WINCRED_0_3_0_SOURCE := $(SRCDIR)/cargo-credential-wincred-0.3.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CARGO_CREDENTIAL_WINCRED_0_3_0
+
+HOST_CARGO_C_CARGO_PLATFORM_0_1_4_MD5 := 162e27a3dd223a7ddc053fba9b1f7429
+HOST_CARGO_C_CARGO_PLATFORM_0_1_4_URL := https://crates.io/api/v1/crates/cargo-platform/0.1.4/download
+HOST_CARGO_C_CARGO_PLATFORM_0_1_4_SOURCE := $(SRCDIR)/cargo-platform-0.1.4.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CARGO_PLATFORM_0_1_4
+
+HOST_CARGO_C_CARGO_UTIL_0_2_6_MD5 := 5effeaa8b9c6a39470fe7aff93e36c96
+HOST_CARGO_C_CARGO_UTIL_0_2_6_URL := https://crates.io/api/v1/crates/cargo-util/0.2.6/download
+HOST_CARGO_C_CARGO_UTIL_0_2_6_SOURCE := $(SRCDIR)/cargo-util-0.2.6.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CARGO_UTIL_0_2_6
+
+HOST_CARGO_C_CBINDGEN_0_26_0_MD5 := 1f28e8d9b5c137d9e8d3265022051c34
+HOST_CARGO_C_CBINDGEN_0_26_0_URL := https://crates.io/api/v1/crates/cbindgen/0.26.0/download
+HOST_CARGO_C_CBINDGEN_0_26_0_SOURCE := $(SRCDIR)/cbindgen-0.26.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CBINDGEN_0_26_0
+
+HOST_CARGO_C_CC_1_0_83_MD5 := 9241fa90ea8b17c00010be46c9aa1ac5
+HOST_CARGO_C_CC_1_0_83_URL := https://crates.io/api/v1/crates/cc/1.0.83/download
+HOST_CARGO_C_CC_1_0_83_SOURCE := $(SRCDIR)/cc-1.0.83.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CC_1_0_83
+
+HOST_CARGO_C_CFG_IF_1_0_0_MD5 := 74634128440dbc3766bda76fdf0aaa05
+HOST_CARGO_C_CFG_IF_1_0_0_URL := https://crates.io/api/v1/crates/cfg-if/1.0.0/download
+HOST_CARGO_C_CFG_IF_1_0_0_SOURCE := $(SRCDIR)/cfg-if-1.0.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CFG_IF_1_0_0
+
+HOST_CARGO_C_CLAP_4_4_6_MD5 := 166b8dd7c4ba1de91b063bf2735db503
+HOST_CARGO_C_CLAP_4_4_6_URL := https://crates.io/api/v1/crates/clap/4.4.6/download
+HOST_CARGO_C_CLAP_4_4_6_SOURCE := $(SRCDIR)/clap-4.4.6.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CLAP_4_4_6
+
+HOST_CARGO_C_CLAP_BUILDER_4_4_6_MD5 := 50dd5ede0492efbc82a851a70f5a134f
+HOST_CARGO_C_CLAP_BUILDER_4_4_6_URL := https://crates.io/api/v1/crates/clap_builder/4.4.6/download
+HOST_CARGO_C_CLAP_BUILDER_4_4_6_SOURCE := $(SRCDIR)/clap_builder-4.4.6.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CLAP_BUILDER_4_4_6
+
+HOST_CARGO_C_CLAP_DERIVE_4_4_2_MD5 := a0023229d68c00e7aadfae5ea5aef3a2
+HOST_CARGO_C_CLAP_DERIVE_4_4_2_URL := https://crates.io/api/v1/crates/clap_derive/4.4.2/download
+HOST_CARGO_C_CLAP_DERIVE_4_4_2_SOURCE := $(SRCDIR)/clap_derive-4.4.2.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CLAP_DERIVE_4_4_2
+
+HOST_CARGO_C_CLAP_LEX_0_5_1_MD5 := f93412d10071ace7eea8167d499d05cd
+HOST_CARGO_C_CLAP_LEX_0_5_1_URL := https://crates.io/api/v1/crates/clap_lex/0.5.1/download
+HOST_CARGO_C_CLAP_LEX_0_5_1_SOURCE := $(SRCDIR)/clap_lex-0.5.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CLAP_LEX_0_5_1
+
+HOST_CARGO_C_CLRU_0_6_1_MD5 := b4b717e9ccaca16de32c52b11e851916
+HOST_CARGO_C_CLRU_0_6_1_URL := https://crates.io/api/v1/crates/clru/0.6.1/download
+HOST_CARGO_C_CLRU_0_6_1_SOURCE := $(SRCDIR)/clru-0.6.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CLRU_0_6_1
+
+HOST_CARGO_C_COLORCHOICE_1_0_0_MD5 := 010f6d0e98cc2a2b99907a23c6cd6bbc
+HOST_CARGO_C_COLORCHOICE_1_0_0_URL := https://crates.io/api/v1/crates/colorchoice/1.0.0/download
+HOST_CARGO_C_COLORCHOICE_1_0_0_SOURCE := $(SRCDIR)/colorchoice-1.0.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_COLORCHOICE_1_0_0
+
+HOST_CARGO_C_CONST_OID_0_9_5_MD5 := 41522bc02ec95f6103452f24b16011ac
+HOST_CARGO_C_CONST_OID_0_9_5_URL := https://crates.io/api/v1/crates/const-oid/0.9.5/download
+HOST_CARGO_C_CONST_OID_0_9_5_SOURCE := $(SRCDIR)/const-oid-0.9.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CONST_OID_0_9_5
+
+HOST_CARGO_C_CORE_FOUNDATION_0_9_3_MD5 := ae6dd0cd5319220586d8ace4c4be87ce
+HOST_CARGO_C_CORE_FOUNDATION_0_9_3_URL := https://crates.io/api/v1/crates/core-foundation/0.9.3/download
+HOST_CARGO_C_CORE_FOUNDATION_0_9_3_SOURCE := $(SRCDIR)/core-foundation-0.9.3.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CORE_FOUNDATION_0_9_3
+
+HOST_CARGO_C_CORE_FOUNDATION_SYS_0_8_4_MD5 := b477cc1c7b45e2187b3cad0377b504d8
+HOST_CARGO_C_CORE_FOUNDATION_SYS_0_8_4_URL := https://crates.io/api/v1/crates/core-foundation-sys/0.8.4/download
+HOST_CARGO_C_CORE_FOUNDATION_SYS_0_8_4_SOURCE := $(SRCDIR)/core-foundation-sys-0.8.4.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CORE_FOUNDATION_SYS_0_8_4
+
+HOST_CARGO_C_CPUFEATURES_0_2_9_MD5 := 45198b4ddb1004879a41ea4e67f63106
+HOST_CARGO_C_CPUFEATURES_0_2_9_URL := https://crates.io/api/v1/crates/cpufeatures/0.2.9/download
+HOST_CARGO_C_CPUFEATURES_0_2_9_SOURCE := $(SRCDIR)/cpufeatures-0.2.9.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CPUFEATURES_0_2_9
+
+HOST_CARGO_C_CRATES_IO_0_38_0_MD5 := 01dabd4e130b33acab3c8a781400d3cb
+HOST_CARGO_C_CRATES_IO_0_38_0_URL := https://crates.io/api/v1/crates/crates-io/0.38.0/download
+HOST_CARGO_C_CRATES_IO_0_38_0_SOURCE := $(SRCDIR)/crates-io-0.38.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CRATES_IO_0_38_0
+
+HOST_CARGO_C_CRC32FAST_1_3_2_MD5 := a9d6492a1bd21d93dbc27c32eabd0c70
+HOST_CARGO_C_CRC32FAST_1_3_2_URL := https://crates.io/api/v1/crates/crc32fast/1.3.2/download
+HOST_CARGO_C_CRC32FAST_1_3_2_SOURCE := $(SRCDIR)/crc32fast-1.3.2.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CRC32FAST_1_3_2
+
+HOST_CARGO_C_CROSSBEAM_CHANNEL_0_5_8_MD5 := 87789a9723d81ff7d65a093a085617ae
+HOST_CARGO_C_CROSSBEAM_CHANNEL_0_5_8_URL := https://crates.io/api/v1/crates/crossbeam-channel/0.5.8/download
+HOST_CARGO_C_CROSSBEAM_CHANNEL_0_5_8_SOURCE := $(SRCDIR)/crossbeam-channel-0.5.8.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CROSSBEAM_CHANNEL_0_5_8
+
+HOST_CARGO_C_CROSSBEAM_UTILS_0_8_16_MD5 := f0c49a1a8cb131110f9f14f440bf872c
+HOST_CARGO_C_CROSSBEAM_UTILS_0_8_16_URL := https://crates.io/api/v1/crates/crossbeam-utils/0.8.16/download
+HOST_CARGO_C_CROSSBEAM_UTILS_0_8_16_SOURCE := $(SRCDIR)/crossbeam-utils-0.8.16.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CROSSBEAM_UTILS_0_8_16
+
+HOST_CARGO_C_CRYPTO_BIGINT_0_5_3_MD5 := 0c82b3ee0cafe577b2fef7c1b38a3619
+HOST_CARGO_C_CRYPTO_BIGINT_0_5_3_URL := https://crates.io/api/v1/crates/crypto-bigint/0.5.3/download
+HOST_CARGO_C_CRYPTO_BIGINT_0_5_3_SOURCE := $(SRCDIR)/crypto-bigint-0.5.3.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CRYPTO_BIGINT_0_5_3
+
+HOST_CARGO_C_CRYPTO_COMMON_0_1_6_MD5 := 89e88633cab0e4b6f3d3878b84dffe8b
+HOST_CARGO_C_CRYPTO_COMMON_0_1_6_URL := https://crates.io/api/v1/crates/crypto-common/0.1.6/download
+HOST_CARGO_C_CRYPTO_COMMON_0_1_6_SOURCE := $(SRCDIR)/crypto-common-0.1.6.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CRYPTO_COMMON_0_1_6
+
+HOST_CARGO_C_CT_CODECS_1_1_1_MD5 := 1fcb16ff3093c34c7265bb1be892096c
+HOST_CARGO_C_CT_CODECS_1_1_1_URL := https://crates.io/api/v1/crates/ct-codecs/1.1.1/download
+HOST_CARGO_C_CT_CODECS_1_1_1_SOURCE := $(SRCDIR)/ct-codecs-1.1.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CT_CODECS_1_1_1
+
+HOST_CARGO_C_CURL_0_4_44_MD5 := 2055aa2a8c9da89dadfd1e9012a26a20
+HOST_CARGO_C_CURL_0_4_44_URL := https://crates.io/api/v1/crates/curl/0.4.44/download
+HOST_CARGO_C_CURL_0_4_44_SOURCE := $(SRCDIR)/curl-0.4.44.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CURL_0_4_44
+
+HOST_CARGO_C_CURL_SYS_0_4_67_CURL_8_3_0_MD5 := 7b88a6cdc32a9eb596d3eaa8ce4e4e35
+HOST_CARGO_C_CURL_SYS_0_4_67_CURL_8_3_0_URL := https://crates.io/api/v1/crates/curl-sys/0.4.67+curl-8.3.0/download
+HOST_CARGO_C_CURL_SYS_0_4_67_CURL_8_3_0_SOURCE := $(SRCDIR)/curl-sys-0.4.67+curl-8.3.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_CURL_SYS_0_4_67_CURL_8_3_0
+
+HOST_CARGO_C_DER_0_7_8_MD5 := b0bf0c6d53543de6ba1644de4481b1b8
+HOST_CARGO_C_DER_0_7_8_URL := https://crates.io/api/v1/crates/der/0.7.8/download
+HOST_CARGO_C_DER_0_7_8_SOURCE := $(SRCDIR)/der-0.7.8.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_DER_0_7_8
+
+HOST_CARGO_C_DERANGED_0_3_8_MD5 := 4d2540a4d09452158bc01d50c6360f29
+HOST_CARGO_C_DERANGED_0_3_8_URL := https://crates.io/api/v1/crates/deranged/0.3.8/download
+HOST_CARGO_C_DERANGED_0_3_8_SOURCE := $(SRCDIR)/deranged-0.3.8.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_DERANGED_0_3_8
+
+HOST_CARGO_C_DIGEST_0_10_7_MD5 := 3d62bfbbe08bdcee55fcb8cda85554d9
+HOST_CARGO_C_DIGEST_0_10_7_URL := https://crates.io/api/v1/crates/digest/0.10.7/download
+HOST_CARGO_C_DIGEST_0_10_7_SOURCE := $(SRCDIR)/digest-0.10.7.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_DIGEST_0_10_7
+
+HOST_CARGO_C_DUNCE_1_0_4_MD5 := 09fbe9408a658ae3e5d294812af2bc65
+HOST_CARGO_C_DUNCE_1_0_4_URL := https://crates.io/api/v1/crates/dunce/1.0.4/download
+HOST_CARGO_C_DUNCE_1_0_4_SOURCE := $(SRCDIR)/dunce-1.0.4.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_DUNCE_1_0_4
+
+HOST_CARGO_C_ECDSA_0_16_8_MD5 := fe07b73ef5cd7680b91b301839cba087
+HOST_CARGO_C_ECDSA_0_16_8_URL := https://crates.io/api/v1/crates/ecdsa/0.16.8/download
+HOST_CARGO_C_ECDSA_0_16_8_SOURCE := $(SRCDIR)/ecdsa-0.16.8.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_ECDSA_0_16_8
+
+HOST_CARGO_C_ED25519_COMPACT_2_0_4_MD5 := df14066f562e566ef982f50f1c112286
+HOST_CARGO_C_ED25519_COMPACT_2_0_4_URL := https://crates.io/api/v1/crates/ed25519-compact/2.0.4/download
+HOST_CARGO_C_ED25519_COMPACT_2_0_4_SOURCE := $(SRCDIR)/ed25519-compact-2.0.4.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_ED25519_COMPACT_2_0_4
+
+HOST_CARGO_C_EITHER_1_9_0_MD5 := 3c3ab76bd9ed94de350152f1af4c61e8
+HOST_CARGO_C_EITHER_1_9_0_URL := https://crates.io/api/v1/crates/either/1.9.0/download
+HOST_CARGO_C_EITHER_1_9_0_SOURCE := $(SRCDIR)/either-1.9.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_EITHER_1_9_0
+
+HOST_CARGO_C_ELLIPTIC_CURVE_0_13_6_MD5 := c66ddcb8d02f7436461a04a4fd8e3a5b
+HOST_CARGO_C_ELLIPTIC_CURVE_0_13_6_URL := https://crates.io/api/v1/crates/elliptic-curve/0.13.6/download
+HOST_CARGO_C_ELLIPTIC_CURVE_0_13_6_SOURCE := $(SRCDIR)/elliptic-curve-0.13.6.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_ELLIPTIC_CURVE_0_13_6
+
+HOST_CARGO_C_EQUIVALENT_1_0_1_MD5 := bdf329a72ecd0605c296f25e53136706
+HOST_CARGO_C_EQUIVALENT_1_0_1_URL := https://crates.io/api/v1/crates/equivalent/1.0.1/download
+HOST_CARGO_C_EQUIVALENT_1_0_1_SOURCE := $(SRCDIR)/equivalent-1.0.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_EQUIVALENT_1_0_1
+
+HOST_CARGO_C_ERRNO_0_3_5_MD5 := 616ae19b360c12012591da557ee83f41
+HOST_CARGO_C_ERRNO_0_3_5_URL := https://crates.io/api/v1/crates/errno/0.3.5/download
+HOST_CARGO_C_ERRNO_0_3_5_SOURCE := $(SRCDIR)/errno-0.3.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_ERRNO_0_3_5
+
+HOST_CARGO_C_FASTER_HEX_0_8_1_MD5 := 9c2fecb4fe5a01c05b72f1bd4985aaf3
+HOST_CARGO_C_FASTER_HEX_0_8_1_URL := https://crates.io/api/v1/crates/faster-hex/0.8.1/download
+HOST_CARGO_C_FASTER_HEX_0_8_1_SOURCE := $(SRCDIR)/faster-hex-0.8.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_FASTER_HEX_0_8_1
+
+HOST_CARGO_C_FASTRAND_2_0_1_MD5 := 80e1c1b89d858c93fc5946b4a8266504
+HOST_CARGO_C_FASTRAND_2_0_1_URL := https://crates.io/api/v1/crates/fastrand/2.0.1/download
+HOST_CARGO_C_FASTRAND_2_0_1_SOURCE := $(SRCDIR)/fastrand-2.0.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_FASTRAND_2_0_1
+
+HOST_CARGO_C_FF_0_13_0_MD5 := 108d90c246e09f46087613284e8651e7
+HOST_CARGO_C_FF_0_13_0_URL := https://crates.io/api/v1/crates/ff/0.13.0/download
+HOST_CARGO_C_FF_0_13_0_SOURCE := $(SRCDIR)/ff-0.13.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_FF_0_13_0
+
+HOST_CARGO_C_FIAT_CRYPTO_0_2_1_MD5 := a91dce22fbf7a307b1b8169715812952
+HOST_CARGO_C_FIAT_CRYPTO_0_2_1_URL := https://crates.io/api/v1/crates/fiat-crypto/0.2.1/download
+HOST_CARGO_C_FIAT_CRYPTO_0_2_1_SOURCE := $(SRCDIR)/fiat-crypto-0.2.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_FIAT_CRYPTO_0_2_1
+
+HOST_CARGO_C_FILETIME_0_2_22_MD5 := 412f39c3faf2efd34b5fe184e36ccc2f
+HOST_CARGO_C_FILETIME_0_2_22_URL := https://crates.io/api/v1/crates/filetime/0.2.22/download
+HOST_CARGO_C_FILETIME_0_2_22_SOURCE := $(SRCDIR)/filetime-0.2.22.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_FILETIME_0_2_22
+
+HOST_CARGO_C_FLATE2_1_0_27_MD5 := 5464f1288cca25da28ec41595a001ce9
+HOST_CARGO_C_FLATE2_1_0_27_URL := https://crates.io/api/v1/crates/flate2/1.0.27/download
+HOST_CARGO_C_FLATE2_1_0_27_SOURCE := $(SRCDIR)/flate2-1.0.27.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_FLATE2_1_0_27
+
+HOST_CARGO_C_FNV_1_0_7_MD5 := 8dab3b3ec00dc56cffde0b0c410d47b5
+HOST_CARGO_C_FNV_1_0_7_URL := https://crates.io/api/v1/crates/fnv/1.0.7/download
+HOST_CARGO_C_FNV_1_0_7_SOURCE := $(SRCDIR)/fnv-1.0.7.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_FNV_1_0_7
+
+HOST_CARGO_C_FOREIGN_TYPES_0_3_2_MD5 := 78c898fdaa3968e23904bf8538c4a271
+HOST_CARGO_C_FOREIGN_TYPES_0_3_2_URL := https://crates.io/api/v1/crates/foreign-types/0.3.2/download
+HOST_CARGO_C_FOREIGN_TYPES_0_3_2_SOURCE := $(SRCDIR)/foreign-types-0.3.2.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_FOREIGN_TYPES_0_3_2
+
+HOST_CARGO_C_FOREIGN_TYPES_SHARED_0_1_1_MD5 := 667e86b8b8d96ab4e9605627ce7dcc9a
+HOST_CARGO_C_FOREIGN_TYPES_SHARED_0_1_1_URL := https://crates.io/api/v1/crates/foreign-types-shared/0.1.1/download
+HOST_CARGO_C_FOREIGN_TYPES_SHARED_0_1_1_SOURCE := $(SRCDIR)/foreign-types-shared-0.1.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_FOREIGN_TYPES_SHARED_0_1_1
+
+HOST_CARGO_C_FORM_URLENCODED_1_2_0_MD5 := 77a086ceea2184ca4af0ff6cbfe9e2ec
+HOST_CARGO_C_FORM_URLENCODED_1_2_0_URL := https://crates.io/api/v1/crates/form_urlencoded/1.2.0/download
+HOST_CARGO_C_FORM_URLENCODED_1_2_0_SOURCE := $(SRCDIR)/form_urlencoded-1.2.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_FORM_URLENCODED_1_2_0
+
+HOST_CARGO_C_FWDANSI_1_1_0_MD5 := 3f93db1614a21f9804653314895da4e4
+HOST_CARGO_C_FWDANSI_1_1_0_URL := https://crates.io/api/v1/crates/fwdansi/1.1.0/download
+HOST_CARGO_C_FWDANSI_1_1_0_SOURCE := $(SRCDIR)/fwdansi-1.1.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_FWDANSI_1_1_0
+
+HOST_CARGO_C_GENERIC_ARRAY_0_14_7_MD5 := 64a6d8fe0c9a450bcefa41894e17d7ac
+HOST_CARGO_C_GENERIC_ARRAY_0_14_7_URL := https://crates.io/api/v1/crates/generic-array/0.14.7/download
+HOST_CARGO_C_GENERIC_ARRAY_0_14_7_SOURCE := $(SRCDIR)/generic-array-0.14.7.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GENERIC_ARRAY_0_14_7
+
+HOST_CARGO_C_GETRANDOM_0_2_10_MD5 := f204ba6fc9394724826f177433fe9a98
+HOST_CARGO_C_GETRANDOM_0_2_10_URL := https://crates.io/api/v1/crates/getrandom/0.2.10/download
+HOST_CARGO_C_GETRANDOM_0_2_10_SOURCE := $(SRCDIR)/getrandom-0.2.10.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GETRANDOM_0_2_10
+
+HOST_CARGO_C_GIT2_0_17_2_MD5 := b3056d43e4b85c1052cf895c0016c2dc
+HOST_CARGO_C_GIT2_0_17_2_URL := https://crates.io/api/v1/crates/git2/0.17.2/download
+HOST_CARGO_C_GIT2_0_17_2_SOURCE := $(SRCDIR)/git2-0.17.2.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIT2_0_17_2
+
+HOST_CARGO_C_GIT2_CURL_0_18_0_MD5 := 8dcbda2dbf2f8c477ce9c18c201ef871
+HOST_CARGO_C_GIT2_CURL_0_18_0_URL := https://crates.io/api/v1/crates/git2-curl/0.18.0/download
+HOST_CARGO_C_GIT2_CURL_0_18_0_SOURCE := $(SRCDIR)/git2-curl-0.18.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIT2_CURL_0_18_0
+
+HOST_CARGO_C_GIX_0_45_1_MD5 := 29a157994c1638dd93968b960eda1b7d
+HOST_CARGO_C_GIX_0_45_1_URL := https://crates.io/api/v1/crates/gix/0.45.1/download
+HOST_CARGO_C_GIX_0_45_1_SOURCE := $(SRCDIR)/gix-0.45.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_0_45_1
+
+HOST_CARGO_C_GIX_ACTOR_0_21_0_MD5 := 564df885ce2b773a310d5b74f8376f6f
+HOST_CARGO_C_GIX_ACTOR_0_21_0_URL := https://crates.io/api/v1/crates/gix-actor/0.21.0/download
+HOST_CARGO_C_GIX_ACTOR_0_21_0_SOURCE := $(SRCDIR)/gix-actor-0.21.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_ACTOR_0_21_0
+
+HOST_CARGO_C_GIX_ATTRIBUTES_0_13_1_MD5 := 6a314c809543fe1868c0f445708b7a09
+HOST_CARGO_C_GIX_ATTRIBUTES_0_13_1_URL := https://crates.io/api/v1/crates/gix-attributes/0.13.1/download
+HOST_CARGO_C_GIX_ATTRIBUTES_0_13_1_SOURCE := $(SRCDIR)/gix-attributes-0.13.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_ATTRIBUTES_0_13_1
+
+HOST_CARGO_C_GIX_BITMAP_0_2_7_MD5 := 95619331e147520578cbf198728ba9e0
+HOST_CARGO_C_GIX_BITMAP_0_2_7_URL := https://crates.io/api/v1/crates/gix-bitmap/0.2.7/download
+HOST_CARGO_C_GIX_BITMAP_0_2_7_SOURCE := $(SRCDIR)/gix-bitmap-0.2.7.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_BITMAP_0_2_7
+
+HOST_CARGO_C_GIX_CHUNK_0_4_4_MD5 := fdfa24f044aa3f4308fe6402e15ee409
+HOST_CARGO_C_GIX_CHUNK_0_4_4_URL := https://crates.io/api/v1/crates/gix-chunk/0.4.4/download
+HOST_CARGO_C_GIX_CHUNK_0_4_4_SOURCE := $(SRCDIR)/gix-chunk-0.4.4.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_CHUNK_0_4_4
+
+HOST_CARGO_C_GIX_COMMAND_0_2_9_MD5 := b7d357cfa124a37aab9376e901b3cfea
+HOST_CARGO_C_GIX_COMMAND_0_2_9_URL := https://crates.io/api/v1/crates/gix-command/0.2.9/download
+HOST_CARGO_C_GIX_COMMAND_0_2_9_SOURCE := $(SRCDIR)/gix-command-0.2.9.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_COMMAND_0_2_9
+
+HOST_CARGO_C_GIX_COMMITGRAPH_0_16_0_MD5 := a174012b25bf0b2e1c91c750d6476b84
+HOST_CARGO_C_GIX_COMMITGRAPH_0_16_0_URL := https://crates.io/api/v1/crates/gix-commitgraph/0.16.0/download
+HOST_CARGO_C_GIX_COMMITGRAPH_0_16_0_SOURCE := $(SRCDIR)/gix-commitgraph-0.16.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_COMMITGRAPH_0_16_0
+
+HOST_CARGO_C_GIX_CONFIG_0_23_0_MD5 := 16ada207aa3a6a31088c1ccd7ed8c8bf
+HOST_CARGO_C_GIX_CONFIG_0_23_0_URL := https://crates.io/api/v1/crates/gix-config/0.23.0/download
+HOST_CARGO_C_GIX_CONFIG_0_23_0_SOURCE := $(SRCDIR)/gix-config-0.23.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_CONFIG_0_23_0
+
+HOST_CARGO_C_GIX_CONFIG_VALUE_0_12_5_MD5 := 1ab4d0952040102109a321c578acfd13
+HOST_CARGO_C_GIX_CONFIG_VALUE_0_12_5_URL := https://crates.io/api/v1/crates/gix-config-value/0.12.5/download
+HOST_CARGO_C_GIX_CONFIG_VALUE_0_12_5_SOURCE := $(SRCDIR)/gix-config-value-0.12.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_CONFIG_VALUE_0_12_5
+
+HOST_CARGO_C_GIX_CREDENTIALS_0_15_0_MD5 := 0c9127c5c3e7b12a302b8bacdfe329df
+HOST_CARGO_C_GIX_CREDENTIALS_0_15_0_URL := https://crates.io/api/v1/crates/gix-credentials/0.15.0/download
+HOST_CARGO_C_GIX_CREDENTIALS_0_15_0_SOURCE := $(SRCDIR)/gix-credentials-0.15.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_CREDENTIALS_0_15_0
+
+HOST_CARGO_C_GIX_DATE_0_5_1_MD5 := bd8a14283b00ba8437736bc6c33b8890
+HOST_CARGO_C_GIX_DATE_0_5_1_URL := https://crates.io/api/v1/crates/gix-date/0.5.1/download
+HOST_CARGO_C_GIX_DATE_0_5_1_SOURCE := $(SRCDIR)/gix-date-0.5.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_DATE_0_5_1
+
+HOST_CARGO_C_GIX_DIFF_0_30_1_MD5 := 9f3aa2df8409671a2ca576452f80c7ce
+HOST_CARGO_C_GIX_DIFF_0_30_1_URL := https://crates.io/api/v1/crates/gix-diff/0.30.1/download
+HOST_CARGO_C_GIX_DIFF_0_30_1_SOURCE := $(SRCDIR)/gix-diff-0.30.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_DIFF_0_30_1
+
+HOST_CARGO_C_GIX_DISCOVER_0_19_0_MD5 := b0bd07b88e1b197b01a2a62b4a598773
+HOST_CARGO_C_GIX_DISCOVER_0_19_0_URL := https://crates.io/api/v1/crates/gix-discover/0.19.0/download
+HOST_CARGO_C_GIX_DISCOVER_0_19_0_SOURCE := $(SRCDIR)/gix-discover-0.19.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_DISCOVER_0_19_0
+
+HOST_CARGO_C_GIX_FEATURES_0_30_0_MD5 := b8e628a8e7640f75226b01ace17b4bd9
+HOST_CARGO_C_GIX_FEATURES_0_30_0_URL := https://crates.io/api/v1/crates/gix-features/0.30.0/download
+HOST_CARGO_C_GIX_FEATURES_0_30_0_SOURCE := $(SRCDIR)/gix-features-0.30.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_FEATURES_0_30_0
+
+HOST_CARGO_C_GIX_FS_0_2_0_MD5 := 0ea872f56214963e252fe57e39b509f4
+HOST_CARGO_C_GIX_FS_0_2_0_URL := https://crates.io/api/v1/crates/gix-fs/0.2.0/download
+HOST_CARGO_C_GIX_FS_0_2_0_SOURCE := $(SRCDIR)/gix-fs-0.2.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_FS_0_2_0
+
+HOST_CARGO_C_GIX_GLOB_0_8_0_MD5 := db6208575526f44e8578d3765aa53c8a
+HOST_CARGO_C_GIX_GLOB_0_8_0_URL := https://crates.io/api/v1/crates/gix-glob/0.8.0/download
+HOST_CARGO_C_GIX_GLOB_0_8_0_SOURCE := $(SRCDIR)/gix-glob-0.8.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_GLOB_0_8_0
+
+HOST_CARGO_C_GIX_HASH_0_11_4_MD5 := 239c27ca36344e749a4744d18af2b97f
+HOST_CARGO_C_GIX_HASH_0_11_4_URL := https://crates.io/api/v1/crates/gix-hash/0.11.4/download
+HOST_CARGO_C_GIX_HASH_0_11_4_SOURCE := $(SRCDIR)/gix-hash-0.11.4.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_HASH_0_11_4
+
+HOST_CARGO_C_GIX_HASHTABLE_0_2_4_MD5 := e5b34826b25900175223ebdd4debd3b0
+HOST_CARGO_C_GIX_HASHTABLE_0_2_4_URL := https://crates.io/api/v1/crates/gix-hashtable/0.2.4/download
+HOST_CARGO_C_GIX_HASHTABLE_0_2_4_SOURCE := $(SRCDIR)/gix-hashtable-0.2.4.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_HASHTABLE_0_2_4
+
+HOST_CARGO_C_GIX_IGNORE_0_3_0_MD5 := 2873768369cf08280267aa9c25a6d9cc
+HOST_CARGO_C_GIX_IGNORE_0_3_0_URL := https://crates.io/api/v1/crates/gix-ignore/0.3.0/download
+HOST_CARGO_C_GIX_IGNORE_0_3_0_SOURCE := $(SRCDIR)/gix-ignore-0.3.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_IGNORE_0_3_0
+
+HOST_CARGO_C_GIX_INDEX_0_17_0_MD5 := 2194c0f7fae1d8325b4b3716648384b4
+HOST_CARGO_C_GIX_INDEX_0_17_0_URL := https://crates.io/api/v1/crates/gix-index/0.17.0/download
+HOST_CARGO_C_GIX_INDEX_0_17_0_SOURCE := $(SRCDIR)/gix-index-0.17.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_INDEX_0_17_0
+
+HOST_CARGO_C_GIX_LOCK_6_0_0_MD5 := d98a8f671082001a67491512812f9b5d
+HOST_CARGO_C_GIX_LOCK_6_0_0_URL := https://crates.io/api/v1/crates/gix-lock/6.0.0/download
+HOST_CARGO_C_GIX_LOCK_6_0_0_SOURCE := $(SRCDIR)/gix-lock-6.0.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_LOCK_6_0_0
+
+HOST_CARGO_C_GIX_MAILMAP_0_13_0_MD5 := 63a3a9f5d6d515f7c19c804ad01dc2dd
+HOST_CARGO_C_GIX_MAILMAP_0_13_0_URL := https://crates.io/api/v1/crates/gix-mailmap/0.13.0/download
+HOST_CARGO_C_GIX_MAILMAP_0_13_0_SOURCE := $(SRCDIR)/gix-mailmap-0.13.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_MAILMAP_0_13_0
+
+HOST_CARGO_C_GIX_NEGOTIATE_0_2_1_MD5 := 02c2520571177714ffb7ee8166ec5807
+HOST_CARGO_C_GIX_NEGOTIATE_0_2_1_URL := https://crates.io/api/v1/crates/gix-negotiate/0.2.1/download
+HOST_CARGO_C_GIX_NEGOTIATE_0_2_1_SOURCE := $(SRCDIR)/gix-negotiate-0.2.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_NEGOTIATE_0_2_1
+
+HOST_CARGO_C_GIX_OBJECT_0_30_0_MD5 := e2fc608eafc74520c3423fa1a4c0906b
+HOST_CARGO_C_GIX_OBJECT_0_30_0_URL := https://crates.io/api/v1/crates/gix-object/0.30.0/download
+HOST_CARGO_C_GIX_OBJECT_0_30_0_SOURCE := $(SRCDIR)/gix-object-0.30.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_OBJECT_0_30_0
+
+HOST_CARGO_C_GIX_ODB_0_46_0_MD5 := 241d24cd77f93e1ffbc44e2e90b67538
+HOST_CARGO_C_GIX_ODB_0_46_0_URL := https://crates.io/api/v1/crates/gix-odb/0.46.0/download
+HOST_CARGO_C_GIX_ODB_0_46_0_SOURCE := $(SRCDIR)/gix-odb-0.46.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_ODB_0_46_0
+
+HOST_CARGO_C_GIX_PACK_0_36_0_MD5 := dc4c36ed129de78480ed6bc70f6ec1d7
+HOST_CARGO_C_GIX_PACK_0_36_0_URL := https://crates.io/api/v1/crates/gix-pack/0.36.0/download
+HOST_CARGO_C_GIX_PACK_0_36_0_SOURCE := $(SRCDIR)/gix-pack-0.36.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_PACK_0_36_0
+
+HOST_CARGO_C_GIX_PACKETLINE_0_16_6_MD5 := 261e648c11d2ab150aa06616010e0a33
+HOST_CARGO_C_GIX_PACKETLINE_0_16_6_URL := https://crates.io/api/v1/crates/gix-packetline/0.16.6/download
+HOST_CARGO_C_GIX_PACKETLINE_0_16_6_SOURCE := $(SRCDIR)/gix-packetline-0.16.6.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_PACKETLINE_0_16_6
+
+HOST_CARGO_C_GIX_PATH_0_8_4_MD5 := 0732ae23a0664d798bae79780aba58b4
+HOST_CARGO_C_GIX_PATH_0_8_4_URL := https://crates.io/api/v1/crates/gix-path/0.8.4/download
+HOST_CARGO_C_GIX_PATH_0_8_4_SOURCE := $(SRCDIR)/gix-path-0.8.4.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_PATH_0_8_4
+
+HOST_CARGO_C_GIX_PROMPT_0_5_5_MD5 := 89ca2160b89bb87ab87da65fcf91fa87
+HOST_CARGO_C_GIX_PROMPT_0_5_5_URL := https://crates.io/api/v1/crates/gix-prompt/0.5.5/download
+HOST_CARGO_C_GIX_PROMPT_0_5_5_SOURCE := $(SRCDIR)/gix-prompt-0.5.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_PROMPT_0_5_5
+
+HOST_CARGO_C_GIX_PROTOCOL_0_33_2_MD5 := 139a8803d0610c56c08d6aadb1c55d9f
+HOST_CARGO_C_GIX_PROTOCOL_0_33_2_URL := https://crates.io/api/v1/crates/gix-protocol/0.33.2/download
+HOST_CARGO_C_GIX_PROTOCOL_0_33_2_SOURCE := $(SRCDIR)/gix-protocol-0.33.2.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_PROTOCOL_0_33_2
+
+HOST_CARGO_C_GIX_QUOTE_0_4_7_MD5 := e2c41874b3aa8bf8001e6e72921b2c0d
+HOST_CARGO_C_GIX_QUOTE_0_4_7_URL := https://crates.io/api/v1/crates/gix-quote/0.4.7/download
+HOST_CARGO_C_GIX_QUOTE_0_4_7_SOURCE := $(SRCDIR)/gix-quote-0.4.7.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_QUOTE_0_4_7
+
+HOST_CARGO_C_GIX_REF_0_30_0_MD5 := e234c86792af81bda4ecaf63c2c9e68a
+HOST_CARGO_C_GIX_REF_0_30_0_URL := https://crates.io/api/v1/crates/gix-ref/0.30.0/download
+HOST_CARGO_C_GIX_REF_0_30_0_SOURCE := $(SRCDIR)/gix-ref-0.30.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_REF_0_30_0
+
+HOST_CARGO_C_GIX_REFSPEC_0_11_0_MD5 := baaf6005914951d7667b94fc56a38be8
+HOST_CARGO_C_GIX_REFSPEC_0_11_0_URL := https://crates.io/api/v1/crates/gix-refspec/0.11.0/download
+HOST_CARGO_C_GIX_REFSPEC_0_11_0_SOURCE := $(SRCDIR)/gix-refspec-0.11.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_REFSPEC_0_11_0
+
+HOST_CARGO_C_GIX_REVISION_0_15_2_MD5 := abfb742f4b18f97c7918340537401870
+HOST_CARGO_C_GIX_REVISION_0_15_2_URL := https://crates.io/api/v1/crates/gix-revision/0.15.2/download
+HOST_CARGO_C_GIX_REVISION_0_15_2_SOURCE := $(SRCDIR)/gix-revision-0.15.2.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_REVISION_0_15_2
+
+HOST_CARGO_C_GIX_REVWALK_0_1_0_MD5 := a77961a80927f8a6fa97ecdfa2305ea5
+HOST_CARGO_C_GIX_REVWALK_0_1_0_URL := https://crates.io/api/v1/crates/gix-revwalk/0.1.0/download
+HOST_CARGO_C_GIX_REVWALK_0_1_0_SOURCE := $(SRCDIR)/gix-revwalk-0.1.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_REVWALK_0_1_0
+
+HOST_CARGO_C_GIX_SEC_0_8_4_MD5 := 83a0c9d31a22f42ffc476ced86ab88e5
+HOST_CARGO_C_GIX_SEC_0_8_4_URL := https://crates.io/api/v1/crates/gix-sec/0.8.4/download
+HOST_CARGO_C_GIX_SEC_0_8_4_SOURCE := $(SRCDIR)/gix-sec-0.8.4.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_SEC_0_8_4
+
+HOST_CARGO_C_GIX_TEMPFILE_6_0_0_MD5 := f4c1b2b1bde31b3c5ac16b0b096b8ba6
+HOST_CARGO_C_GIX_TEMPFILE_6_0_0_URL := https://crates.io/api/v1/crates/gix-tempfile/6.0.0/download
+HOST_CARGO_C_GIX_TEMPFILE_6_0_0_SOURCE := $(SRCDIR)/gix-tempfile-6.0.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_TEMPFILE_6_0_0
+
+HOST_CARGO_C_GIX_TRACE_0_1_3_MD5 := 293cb9904aa49c272ad9362182327716
+HOST_CARGO_C_GIX_TRACE_0_1_3_URL := https://crates.io/api/v1/crates/gix-trace/0.1.3/download
+HOST_CARGO_C_GIX_TRACE_0_1_3_SOURCE := $(SRCDIR)/gix-trace-0.1.3.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_TRACE_0_1_3
+
+HOST_CARGO_C_GIX_TRANSPORT_0_32_0_MD5 := 0bf1f0399684e970be6133e63f962d2f
+HOST_CARGO_C_GIX_TRANSPORT_0_32_0_URL := https://crates.io/api/v1/crates/gix-transport/0.32.0/download
+HOST_CARGO_C_GIX_TRANSPORT_0_32_0_SOURCE := $(SRCDIR)/gix-transport-0.32.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_TRANSPORT_0_32_0
+
+HOST_CARGO_C_GIX_TRAVERSE_0_26_0_MD5 := dfc7c30dd91f880ceebc5a81a132948c
+HOST_CARGO_C_GIX_TRAVERSE_0_26_0_URL := https://crates.io/api/v1/crates/gix-traverse/0.26.0/download
+HOST_CARGO_C_GIX_TRAVERSE_0_26_0_SOURCE := $(SRCDIR)/gix-traverse-0.26.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_TRAVERSE_0_26_0
+
+HOST_CARGO_C_GIX_URL_0_19_0_MD5 := 1df7af5e46011c2bdd016d57c457f69a
+HOST_CARGO_C_GIX_URL_0_19_0_URL := https://crates.io/api/v1/crates/gix-url/0.19.0/download
+HOST_CARGO_C_GIX_URL_0_19_0_SOURCE := $(SRCDIR)/gix-url-0.19.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_URL_0_19_0
+
+HOST_CARGO_C_GIX_UTILS_0_1_5_MD5 := 43eeb4e524a4eda9eac82c3b3af95e0e
+HOST_CARGO_C_GIX_UTILS_0_1_5_URL := https://crates.io/api/v1/crates/gix-utils/0.1.5/download
+HOST_CARGO_C_GIX_UTILS_0_1_5_SOURCE := $(SRCDIR)/gix-utils-0.1.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_UTILS_0_1_5
+
+HOST_CARGO_C_GIX_VALIDATE_0_7_7_MD5 := 78c2ba802019e581e1e5305602b61037
+HOST_CARGO_C_GIX_VALIDATE_0_7_7_URL := https://crates.io/api/v1/crates/gix-validate/0.7.7/download
+HOST_CARGO_C_GIX_VALIDATE_0_7_7_SOURCE := $(SRCDIR)/gix-validate-0.7.7.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_VALIDATE_0_7_7
+
+HOST_CARGO_C_GIX_WORKTREE_0_18_0_MD5 := 10f71fda61c814f346b218015f9253a3
+HOST_CARGO_C_GIX_WORKTREE_0_18_0_URL := https://crates.io/api/v1/crates/gix-worktree/0.18.0/download
+HOST_CARGO_C_GIX_WORKTREE_0_18_0_SOURCE := $(SRCDIR)/gix-worktree-0.18.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GIX_WORKTREE_0_18_0
+
+HOST_CARGO_C_GLOB_0_3_1_MD5 := 2d6d28ec311884da69bcaf320ada8ad5
+HOST_CARGO_C_GLOB_0_3_1_URL := https://crates.io/api/v1/crates/glob/0.3.1/download
+HOST_CARGO_C_GLOB_0_3_1_SOURCE := $(SRCDIR)/glob-0.3.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GLOB_0_3_1
+
+HOST_CARGO_C_GLOBSET_0_4_13_MD5 := f4a1333bcf613415ae431b5b5c955709
+HOST_CARGO_C_GLOBSET_0_4_13_URL := https://crates.io/api/v1/crates/globset/0.4.13/download
+HOST_CARGO_C_GLOBSET_0_4_13_SOURCE := $(SRCDIR)/globset-0.4.13.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GLOBSET_0_4_13
+
+HOST_CARGO_C_GROUP_0_13_0_MD5 := 974e766c6583278ac82a83632b75b65e
+HOST_CARGO_C_GROUP_0_13_0_URL := https://crates.io/api/v1/crates/group/0.13.0/download
+HOST_CARGO_C_GROUP_0_13_0_SOURCE := $(SRCDIR)/group-0.13.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_GROUP_0_13_0
+
+HOST_CARGO_C_HASHBROWN_0_12_3_MD5 := 1b41b97d982520b7364a87a39e2a1ed8
+HOST_CARGO_C_HASHBROWN_0_12_3_URL := https://crates.io/api/v1/crates/hashbrown/0.12.3/download
+HOST_CARGO_C_HASHBROWN_0_12_3_SOURCE := $(SRCDIR)/hashbrown-0.12.3.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_HASHBROWN_0_12_3
+
+HOST_CARGO_C_HASHBROWN_0_14_1_MD5 := d4633fb342a692407e4684a48b32d06b
+HOST_CARGO_C_HASHBROWN_0_14_1_URL := https://crates.io/api/v1/crates/hashbrown/0.14.1/download
+HOST_CARGO_C_HASHBROWN_0_14_1_SOURCE := $(SRCDIR)/hashbrown-0.14.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_HASHBROWN_0_14_1
+
+HOST_CARGO_C_HECK_0_4_1_MD5 := b92fa50f56a1e06a7f1bf665442d4a73
+HOST_CARGO_C_HECK_0_4_1_URL := https://crates.io/api/v1/crates/heck/0.4.1/download
+HOST_CARGO_C_HECK_0_4_1_SOURCE := $(SRCDIR)/heck-0.4.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_HECK_0_4_1
+
+HOST_CARGO_C_HEX_0_4_3_MD5 := 1d3e530a3410fc95a6987d70f84a6332
+HOST_CARGO_C_HEX_0_4_3_URL := https://crates.io/api/v1/crates/hex/0.4.3/download
+HOST_CARGO_C_HEX_0_4_3_SOURCE := $(SRCDIR)/hex-0.4.3.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_HEX_0_4_3
+
+HOST_CARGO_C_HKDF_0_12_3_MD5 := 761cd5ae202c54efba117f5d68c57756
+HOST_CARGO_C_HKDF_0_12_3_URL := https://crates.io/api/v1/crates/hkdf/0.12.3/download
+HOST_CARGO_C_HKDF_0_12_3_SOURCE := $(SRCDIR)/hkdf-0.12.3.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_HKDF_0_12_3
+
+HOST_CARGO_C_HMAC_0_12_1_MD5 := 4e0c068ba38fa8e0aa6c46bce5e9d2ab
+HOST_CARGO_C_HMAC_0_12_1_URL := https://crates.io/api/v1/crates/hmac/0.12.1/download
+HOST_CARGO_C_HMAC_0_12_1_SOURCE := $(SRCDIR)/hmac-0.12.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_HMAC_0_12_1
+
+HOST_CARGO_C_HOME_0_5_5_MD5 := 11681ec4554f1f934b25eeba3f558ea7
+HOST_CARGO_C_HOME_0_5_5_URL := https://crates.io/api/v1/crates/home/0.5.5/download
+HOST_CARGO_C_HOME_0_5_5_SOURCE := $(SRCDIR)/home-0.5.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_HOME_0_5_5
+
+HOST_CARGO_C_HTTP_AUTH_0_1_8_MD5 := 945cc7977d487230b6761cba86fdff23
+HOST_CARGO_C_HTTP_AUTH_0_1_8_URL := https://crates.io/api/v1/crates/http-auth/0.1.8/download
+HOST_CARGO_C_HTTP_AUTH_0_1_8_SOURCE := $(SRCDIR)/http-auth-0.1.8.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_HTTP_AUTH_0_1_8
+
+HOST_CARGO_C_HUMANTIME_2_1_0_MD5 := c01022fe0357c10ca1d48b16187f81bd
+HOST_CARGO_C_HUMANTIME_2_1_0_URL := https://crates.io/api/v1/crates/humantime/2.1.0/download
+HOST_CARGO_C_HUMANTIME_2_1_0_SOURCE := $(SRCDIR)/humantime-2.1.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_HUMANTIME_2_1_0
+
+HOST_CARGO_C_IDNA_0_4_0_MD5 := 6099af3f71f8900bbb9bd06d84655495
+HOST_CARGO_C_IDNA_0_4_0_URL := https://crates.io/api/v1/crates/idna/0.4.0/download
+HOST_CARGO_C_IDNA_0_4_0_SOURCE := $(SRCDIR)/idna-0.4.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_IDNA_0_4_0
+
+HOST_CARGO_C_IGNORE_0_4_20_MD5 := bdee49940363352f112ccce7ee1f504d
+HOST_CARGO_C_IGNORE_0_4_20_URL := https://crates.io/api/v1/crates/ignore/0.4.20/download
+HOST_CARGO_C_IGNORE_0_4_20_SOURCE := $(SRCDIR)/ignore-0.4.20.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_IGNORE_0_4_20
+
+HOST_CARGO_C_IM_RC_15_1_0_MD5 := 25119b3f34f4d5298dade622e10a54c5
+HOST_CARGO_C_IM_RC_15_1_0_URL := https://crates.io/api/v1/crates/im-rc/15.1.0/download
+HOST_CARGO_C_IM_RC_15_1_0_SOURCE := $(SRCDIR)/im-rc-15.1.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_IM_RC_15_1_0
+
+HOST_CARGO_C_IMARA_DIFF_0_1_5_MD5 := 4debd3be7deef9489df4d04841cbb631
+HOST_CARGO_C_IMARA_DIFF_0_1_5_URL := https://crates.io/api/v1/crates/imara-diff/0.1.5/download
+HOST_CARGO_C_IMARA_DIFF_0_1_5_SOURCE := $(SRCDIR)/imara-diff-0.1.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_IMARA_DIFF_0_1_5
+
+HOST_CARGO_C_INDEXMAP_1_9_3_MD5 := 11ce8b5f52cd315e8f52985b834b87eb
+HOST_CARGO_C_INDEXMAP_1_9_3_URL := https://crates.io/api/v1/crates/indexmap/1.9.3/download
+HOST_CARGO_C_INDEXMAP_1_9_3_SOURCE := $(SRCDIR)/indexmap-1.9.3.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_INDEXMAP_1_9_3
+
+HOST_CARGO_C_INDEXMAP_2_0_2_MD5 := 649551b72728784a9c4c0a058e7bdb88
+HOST_CARGO_C_INDEXMAP_2_0_2_URL := https://crates.io/api/v1/crates/indexmap/2.0.2/download
+HOST_CARGO_C_INDEXMAP_2_0_2_SOURCE := $(SRCDIR)/indexmap-2.0.2.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_INDEXMAP_2_0_2
+
+HOST_CARGO_C_IO_CLOSE_0_3_7_MD5 := 7d58a2a23cd19ed8e889afdbeb7986b1
+HOST_CARGO_C_IO_CLOSE_0_3_7_URL := https://crates.io/api/v1/crates/io-close/0.3.7/download
+HOST_CARGO_C_IO_CLOSE_0_3_7_SOURCE := $(SRCDIR)/io-close-0.3.7.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_IO_CLOSE_0_3_7
+
+HOST_CARGO_C_ITERTOOLS_0_10_5_MD5 := 20b9f5d97aaf06b0f580f12860b67ba8
+HOST_CARGO_C_ITERTOOLS_0_10_5_URL := https://crates.io/api/v1/crates/itertools/0.10.5/download
+HOST_CARGO_C_ITERTOOLS_0_10_5_SOURCE := $(SRCDIR)/itertools-0.10.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_ITERTOOLS_0_10_5
+
+HOST_CARGO_C_ITERTOOLS_0_11_0_MD5 := d629ca093dfd23b5e9b4262c5f801928
+HOST_CARGO_C_ITERTOOLS_0_11_0_URL := https://crates.io/api/v1/crates/itertools/0.11.0/download
+HOST_CARGO_C_ITERTOOLS_0_11_0_SOURCE := $(SRCDIR)/itertools-0.11.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_ITERTOOLS_0_11_0
+
+HOST_CARGO_C_ITOA_1_0_9_MD5 := c6e20d23948f86627f5d4668e7ca43e3
+HOST_CARGO_C_ITOA_1_0_9_URL := https://crates.io/api/v1/crates/itoa/1.0.9/download
+HOST_CARGO_C_ITOA_1_0_9_SOURCE := $(SRCDIR)/itoa-1.0.9.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_ITOA_1_0_9
+
+HOST_CARGO_C_JOBSERVER_0_1_27_MD5 := 9aaf13d622cd02548feaaca35687da9c
+HOST_CARGO_C_JOBSERVER_0_1_27_URL := https://crates.io/api/v1/crates/jobserver/0.1.27/download
+HOST_CARGO_C_JOBSERVER_0_1_27_SOURCE := $(SRCDIR)/jobserver-0.1.27.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_JOBSERVER_0_1_27
+
+HOST_CARGO_C_JS_SYS_0_3_64_MD5 := d580c0380408c62e04e018eaaf4258af
+HOST_CARGO_C_JS_SYS_0_3_64_URL := https://crates.io/api/v1/crates/js-sys/0.3.64/download
+HOST_CARGO_C_JS_SYS_0_3_64_SOURCE := $(SRCDIR)/js-sys-0.3.64.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_JS_SYS_0_3_64
+
+HOST_CARGO_C_KSTRING_2_0_0_MD5 := 0c07198f804f9c9788567f8c061acaec
+HOST_CARGO_C_KSTRING_2_0_0_URL := https://crates.io/api/v1/crates/kstring/2.0.0/download
+HOST_CARGO_C_KSTRING_2_0_0_SOURCE := $(SRCDIR)/kstring-2.0.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_KSTRING_2_0_0
+
+HOST_CARGO_C_LAZY_STATIC_1_4_0_MD5 := fba3b040a55c01be7376d3dd5c4d4920
+HOST_CARGO_C_LAZY_STATIC_1_4_0_URL := https://crates.io/api/v1/crates/lazy_static/1.4.0/download
+HOST_CARGO_C_LAZY_STATIC_1_4_0_SOURCE := $(SRCDIR)/lazy_static-1.4.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_LAZY_STATIC_1_4_0
+
+HOST_CARGO_C_LAZYCELL_1_3_0_MD5 := 23cc9e52c52465f5b225e62ab7cc3457
+HOST_CARGO_C_LAZYCELL_1_3_0_URL := https://crates.io/api/v1/crates/lazycell/1.3.0/download
+HOST_CARGO_C_LAZYCELL_1_3_0_SOURCE := $(SRCDIR)/lazycell-1.3.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_LAZYCELL_1_3_0
+
+HOST_CARGO_C_LIBC_0_2_149_MD5 := dcc90b220c18170e3e13cc5cc7050c74
+HOST_CARGO_C_LIBC_0_2_149_URL := https://crates.io/api/v1/crates/libc/0.2.149/download
+HOST_CARGO_C_LIBC_0_2_149_SOURCE := $(SRCDIR)/libc-0.2.149.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_LIBC_0_2_149
+
+HOST_CARGO_C_LIBGIT2_SYS_0_15_2_1_6_4_MD5 := 025176d7b965c592a07ee3bb63fc7fb9
+HOST_CARGO_C_LIBGIT2_SYS_0_15_2_1_6_4_URL := https://crates.io/api/v1/crates/libgit2-sys/0.15.2+1.6.4/download
+HOST_CARGO_C_LIBGIT2_SYS_0_15_2_1_6_4_SOURCE := $(SRCDIR)/libgit2-sys-0.15.2+1.6.4.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_LIBGIT2_SYS_0_15_2_1_6_4
+
+HOST_CARGO_C_LIBLOADING_0_8_1_MD5 := feb5919f3a98172d047e10b0bc1ea5ae
+HOST_CARGO_C_LIBLOADING_0_8_1_URL := https://crates.io/api/v1/crates/libloading/0.8.1/download
+HOST_CARGO_C_LIBLOADING_0_8_1_SOURCE := $(SRCDIR)/libloading-0.8.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_LIBLOADING_0_8_1
+
+HOST_CARGO_C_LIBNGHTTP2_SYS_0_1_8_1_55_1_MD5 := 0a48707ad9a778c923bc175970db4f95
+HOST_CARGO_C_LIBNGHTTP2_SYS_0_1_8_1_55_1_URL := https://crates.io/api/v1/crates/libnghttp2-sys/0.1.8+1.55.1/download
+HOST_CARGO_C_LIBNGHTTP2_SYS_0_1_8_1_55_1_SOURCE := $(SRCDIR)/libnghttp2-sys-0.1.8+1.55.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_LIBNGHTTP2_SYS_0_1_8_1_55_1
+
+HOST_CARGO_C_LIBSSH2_SYS_0_3_0_MD5 := 73c81da3754295e39ea4a99517b1e794
+HOST_CARGO_C_LIBSSH2_SYS_0_3_0_URL := https://crates.io/api/v1/crates/libssh2-sys/0.3.0/download
+HOST_CARGO_C_LIBSSH2_SYS_0_3_0_SOURCE := $(SRCDIR)/libssh2-sys-0.3.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_LIBSSH2_SYS_0_3_0
+
+HOST_CARGO_C_LIBZ_SYS_1_1_12_MD5 := 779addfdf18a31c1d8d3f53b7a8395e0
+HOST_CARGO_C_LIBZ_SYS_1_1_12_URL := https://crates.io/api/v1/crates/libz-sys/1.1.12/download
+HOST_CARGO_C_LIBZ_SYS_1_1_12_SOURCE := $(SRCDIR)/libz-sys-1.1.12.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_LIBZ_SYS_1_1_12
+
+HOST_CARGO_C_LINUX_RAW_SYS_0_4_10_MD5 := 70bd18c57397442e0abc67dfa1c99e0f
+HOST_CARGO_C_LINUX_RAW_SYS_0_4_10_URL := https://crates.io/api/v1/crates/linux-raw-sys/0.4.10/download
+HOST_CARGO_C_LINUX_RAW_SYS_0_4_10_SOURCE := $(SRCDIR)/linux-raw-sys-0.4.10.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_LINUX_RAW_SYS_0_4_10
+
+HOST_CARGO_C_LOCK_API_0_4_10_MD5 := 8d619139e1dec2be7ecd50cfe3efa2a0
+HOST_CARGO_C_LOCK_API_0_4_10_URL := https://crates.io/api/v1/crates/lock_api/0.4.10/download
+HOST_CARGO_C_LOCK_API_0_4_10_SOURCE := $(SRCDIR)/lock_api-0.4.10.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_LOCK_API_0_4_10
+
+HOST_CARGO_C_LOG_0_4_20_MD5 := 8ee79b4fe4c43d9ab09f16344612a656
+HOST_CARGO_C_LOG_0_4_20_URL := https://crates.io/api/v1/crates/log/0.4.20/download
+HOST_CARGO_C_LOG_0_4_20_SOURCE := $(SRCDIR)/log-0.4.20.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_LOG_0_4_20
+
+HOST_CARGO_C_MATCHERS_0_1_0_MD5 := 29614f150859d094548bed37e78f586b
+HOST_CARGO_C_MATCHERS_0_1_0_URL := https://crates.io/api/v1/crates/matchers/0.1.0/download
+HOST_CARGO_C_MATCHERS_0_1_0_SOURCE := $(SRCDIR)/matchers-0.1.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_MATCHERS_0_1_0
+
+HOST_CARGO_C_MAYBE_ASYNC_0_2_7_MD5 := 04f2c7d779358087ee3036303638258d
+HOST_CARGO_C_MAYBE_ASYNC_0_2_7_URL := https://crates.io/api/v1/crates/maybe-async/0.2.7/download
+HOST_CARGO_C_MAYBE_ASYNC_0_2_7_SOURCE := $(SRCDIR)/maybe-async-0.2.7.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_MAYBE_ASYNC_0_2_7
+
+HOST_CARGO_C_MEMCHR_2_6_4_MD5 := ab9a5f02cef3b8794d810332ebf26a03
+HOST_CARGO_C_MEMCHR_2_6_4_URL := https://crates.io/api/v1/crates/memchr/2.6.4/download
+HOST_CARGO_C_MEMCHR_2_6_4_SOURCE := $(SRCDIR)/memchr-2.6.4.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_MEMCHR_2_6_4
+
+HOST_CARGO_C_MEMMAP2_0_5_10_MD5 := ddbd5203d6b18f74ea40a4a498cb3b83
+HOST_CARGO_C_MEMMAP2_0_5_10_URL := https://crates.io/api/v1/crates/memmap2/0.5.10/download
+HOST_CARGO_C_MEMMAP2_0_5_10_SOURCE := $(SRCDIR)/memmap2-0.5.10.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_MEMMAP2_0_5_10
+
+HOST_CARGO_C_MINIMAL_LEXICAL_0_2_1_MD5 := 8b708bc4b33c5e1683467444c9ed41b0
+HOST_CARGO_C_MINIMAL_LEXICAL_0_2_1_URL := https://crates.io/api/v1/crates/minimal-lexical/0.2.1/download
+HOST_CARGO_C_MINIMAL_LEXICAL_0_2_1_SOURCE := $(SRCDIR)/minimal-lexical-0.2.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_MINIMAL_LEXICAL_0_2_1
+
+HOST_CARGO_C_MINIZ_OXIDE_0_7_1_MD5 := eb7e04508518ed8f29935ec874e1740a
+HOST_CARGO_C_MINIZ_OXIDE_0_7_1_URL := https://crates.io/api/v1/crates/miniz_oxide/0.7.1/download
+HOST_CARGO_C_MINIZ_OXIDE_0_7_1_SOURCE := $(SRCDIR)/miniz_oxide-0.7.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_MINIZ_OXIDE_0_7_1
+
+HOST_CARGO_C_MIOW_0_6_0_MD5 := c14d50ef3ce9b2640d2a9d68c53834b9
+HOST_CARGO_C_MIOW_0_6_0_URL := https://crates.io/api/v1/crates/miow/0.6.0/download
+HOST_CARGO_C_MIOW_0_6_0_SOURCE := $(SRCDIR)/miow-0.6.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_MIOW_0_6_0
+
+HOST_CARGO_C_NOM_7_1_3_MD5 := f17aecb8887cf0ecd823623160aed7db
+HOST_CARGO_C_NOM_7_1_3_URL := https://crates.io/api/v1/crates/nom/7.1.3/download
+HOST_CARGO_C_NOM_7_1_3_SOURCE := $(SRCDIR)/nom-7.1.3.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_NOM_7_1_3
+
+HOST_CARGO_C_NORMPATH_1_1_1_MD5 := 8d526535233ee01e0f1402b5e8f4e8e9
+HOST_CARGO_C_NORMPATH_1_1_1_URL := https://crates.io/api/v1/crates/normpath/1.1.1/download
+HOST_CARGO_C_NORMPATH_1_1_1_SOURCE := $(SRCDIR)/normpath-1.1.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_NORMPATH_1_1_1
+
+HOST_CARGO_C_NU_ANSI_TERM_0_46_0_MD5 := a56461a712a83abc691cf473d1835228
+HOST_CARGO_C_NU_ANSI_TERM_0_46_0_URL := https://crates.io/api/v1/crates/nu-ansi-term/0.46.0/download
+HOST_CARGO_C_NU_ANSI_TERM_0_46_0_SOURCE := $(SRCDIR)/nu-ansi-term-0.46.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_NU_ANSI_TERM_0_46_0
+
+HOST_CARGO_C_NUM_TRAITS_0_2_17_MD5 := 512bcd4470f351b2049adeb39cfcdec4
+HOST_CARGO_C_NUM_TRAITS_0_2_17_URL := https://crates.io/api/v1/crates/num-traits/0.2.17/download
+HOST_CARGO_C_NUM_TRAITS_0_2_17_SOURCE := $(SRCDIR)/num-traits-0.2.17.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_NUM_TRAITS_0_2_17
+
+HOST_CARGO_C_NUM_THREADS_0_1_6_MD5 := ae2471729f689287aec9da43f8106a4b
+HOST_CARGO_C_NUM_THREADS_0_1_6_URL := https://crates.io/api/v1/crates/num_threads/0.1.6/download
+HOST_CARGO_C_NUM_THREADS_0_1_6_SOURCE := $(SRCDIR)/num_threads-0.1.6.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_NUM_THREADS_0_1_6
+
+HOST_CARGO_C_ONCE_CELL_1_18_0_MD5 := 2dc8aacabbc090f8025a4789d4d6d8f0
+HOST_CARGO_C_ONCE_CELL_1_18_0_URL := https://crates.io/api/v1/crates/once_cell/1.18.0/download
+HOST_CARGO_C_ONCE_CELL_1_18_0_SOURCE := $(SRCDIR)/once_cell-1.18.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_ONCE_CELL_1_18_0
+
+HOST_CARGO_C_OPENER_0_6_1_MD5 := fbd71c60eef7289eb6bcad7e74b20475
+HOST_CARGO_C_OPENER_0_6_1_URL := https://crates.io/api/v1/crates/opener/0.6.1/download
+HOST_CARGO_C_OPENER_0_6_1_SOURCE := $(SRCDIR)/opener-0.6.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_OPENER_0_6_1
+
+HOST_CARGO_C_OPENSSL_0_10_57_MD5 := 2131e3e9cb628d5db2c8664ee888bbe6
+HOST_CARGO_C_OPENSSL_0_10_57_URL := https://crates.io/api/v1/crates/openssl/0.10.57/download
+HOST_CARGO_C_OPENSSL_0_10_57_SOURCE := $(SRCDIR)/openssl-0.10.57.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_OPENSSL_0_10_57
+
+HOST_CARGO_C_OPENSSL_MACROS_0_1_1_MD5 := 28d34115cfbbe0e8f80333591f2cdd84
+HOST_CARGO_C_OPENSSL_MACROS_0_1_1_URL := https://crates.io/api/v1/crates/openssl-macros/0.1.1/download
+HOST_CARGO_C_OPENSSL_MACROS_0_1_1_SOURCE := $(SRCDIR)/openssl-macros-0.1.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_OPENSSL_MACROS_0_1_1
+
+HOST_CARGO_C_OPENSSL_PROBE_0_1_5_MD5 := 907244c0d3791f3f981c7cc8e4cad0a3
+HOST_CARGO_C_OPENSSL_PROBE_0_1_5_URL := https://crates.io/api/v1/crates/openssl-probe/0.1.5/download
+HOST_CARGO_C_OPENSSL_PROBE_0_1_5_SOURCE := $(SRCDIR)/openssl-probe-0.1.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_OPENSSL_PROBE_0_1_5
+
+HOST_CARGO_C_OPENSSL_SRC_300_1_5_3_1_3_MD5 := c30757ad36c0697aeccec1e547811778
+HOST_CARGO_C_OPENSSL_SRC_300_1_5_3_1_3_URL := https://crates.io/api/v1/crates/openssl-src/300.1.5+3.1.3/download
+HOST_CARGO_C_OPENSSL_SRC_300_1_5_3_1_3_SOURCE := $(SRCDIR)/openssl-src-300.1.5+3.1.3.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_OPENSSL_SRC_300_1_5_3_1_3
+
+HOST_CARGO_C_OPENSSL_SYS_0_9_93_MD5 := 1e88eca5c17b58b423a667bd278f82c4
+HOST_CARGO_C_OPENSSL_SYS_0_9_93_URL := https://crates.io/api/v1/crates/openssl-sys/0.9.93/download
+HOST_CARGO_C_OPENSSL_SYS_0_9_93_SOURCE := $(SRCDIR)/openssl-sys-0.9.93.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_OPENSSL_SYS_0_9_93
+
+HOST_CARGO_C_ORDERED_FLOAT_2_10_1_MD5 := 71624c8a64c75744a95f02a09614f220
+HOST_CARGO_C_ORDERED_FLOAT_2_10_1_URL := https://crates.io/api/v1/crates/ordered-float/2.10.1/download
+HOST_CARGO_C_ORDERED_FLOAT_2_10_1_SOURCE := $(SRCDIR)/ordered-float-2.10.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_ORDERED_FLOAT_2_10_1
+
+HOST_CARGO_C_ORION_0_17_6_MD5 := f8408c2543795bb080bebfba7e38e048
+HOST_CARGO_C_ORION_0_17_6_URL := https://crates.io/api/v1/crates/orion/0.17.6/download
+HOST_CARGO_C_ORION_0_17_6_SOURCE := $(SRCDIR)/orion-0.17.6.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_ORION_0_17_6
+
+HOST_CARGO_C_OS_INFO_3_7_0_MD5 := 0aa601dab19b62c32def2e7be85d50b3
+HOST_CARGO_C_OS_INFO_3_7_0_URL := https://crates.io/api/v1/crates/os_info/3.7.0/download
+HOST_CARGO_C_OS_INFO_3_7_0_SOURCE := $(SRCDIR)/os_info-3.7.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_OS_INFO_3_7_0
+
+HOST_CARGO_C_OVERLOAD_0_1_1_MD5 := 03a7ad2814bd9dd34e0acec8ca4f855e
+HOST_CARGO_C_OVERLOAD_0_1_1_URL := https://crates.io/api/v1/crates/overload/0.1.1/download
+HOST_CARGO_C_OVERLOAD_0_1_1_SOURCE := $(SRCDIR)/overload-0.1.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_OVERLOAD_0_1_1
+
+HOST_CARGO_C_P384_0_13_0_MD5 := 9822018c3ee7133a6f093f679d639da2
+HOST_CARGO_C_P384_0_13_0_URL := https://crates.io/api/v1/crates/p384/0.13.0/download
+HOST_CARGO_C_P384_0_13_0_SOURCE := $(SRCDIR)/p384-0.13.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_P384_0_13_0
+
+HOST_CARGO_C_PARKING_LOT_0_12_1_MD5 := 1be45f99109d447849f4244b58c5a470
+HOST_CARGO_C_PARKING_LOT_0_12_1_URL := https://crates.io/api/v1/crates/parking_lot/0.12.1/download
+HOST_CARGO_C_PARKING_LOT_0_12_1_SOURCE := $(SRCDIR)/parking_lot-0.12.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_PARKING_LOT_0_12_1
+
+HOST_CARGO_C_PARKING_LOT_CORE_0_9_8_MD5 := ad1239c8377e9764ee2924fadcc73c5f
+HOST_CARGO_C_PARKING_LOT_CORE_0_9_8_URL := https://crates.io/api/v1/crates/parking_lot_core/0.9.8/download
+HOST_CARGO_C_PARKING_LOT_CORE_0_9_8_SOURCE := $(SRCDIR)/parking_lot_core-0.9.8.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_PARKING_LOT_CORE_0_9_8
+
+HOST_CARGO_C_PASETORS_0_6_7_MD5 := 0a72db8e62493c5ec5794f706068c8c9
+HOST_CARGO_C_PASETORS_0_6_7_URL := https://crates.io/api/v1/crates/pasetors/0.6.7/download
+HOST_CARGO_C_PASETORS_0_6_7_SOURCE := $(SRCDIR)/pasetors-0.6.7.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_PASETORS_0_6_7
+
+HOST_CARGO_C_PATHDIFF_0_2_1_MD5 := c40bb551772810d818857841ea389f1e
+HOST_CARGO_C_PATHDIFF_0_2_1_URL := https://crates.io/api/v1/crates/pathdiff/0.2.1/download
+HOST_CARGO_C_PATHDIFF_0_2_1_SOURCE := $(SRCDIR)/pathdiff-0.2.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_PATHDIFF_0_2_1
+
+HOST_CARGO_C_PEM_RFC7468_0_7_0_MD5 := a37720d4e4cbebd28ac9c7930137a9d6
+HOST_CARGO_C_PEM_RFC7468_0_7_0_URL := https://crates.io/api/v1/crates/pem-rfc7468/0.7.0/download
+HOST_CARGO_C_PEM_RFC7468_0_7_0_SOURCE := $(SRCDIR)/pem-rfc7468-0.7.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_PEM_RFC7468_0_7_0
+
+HOST_CARGO_C_PERCENT_ENCODING_2_3_0_MD5 := dbf9743d4883e5991e06b8ad80c5ae0e
+HOST_CARGO_C_PERCENT_ENCODING_2_3_0_URL := https://crates.io/api/v1/crates/percent-encoding/2.3.0/download
+HOST_CARGO_C_PERCENT_ENCODING_2_3_0_SOURCE := $(SRCDIR)/percent-encoding-2.3.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_PERCENT_ENCODING_2_3_0
+
+HOST_CARGO_C_PIN_PROJECT_LITE_0_2_13_MD5 := ffc7c4e1b2639ba6c8579a1c47c5f97c
+HOST_CARGO_C_PIN_PROJECT_LITE_0_2_13_URL := https://crates.io/api/v1/crates/pin-project-lite/0.2.13/download
+HOST_CARGO_C_PIN_PROJECT_LITE_0_2_13_SOURCE := $(SRCDIR)/pin-project-lite-0.2.13.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_PIN_PROJECT_LITE_0_2_13
+
+HOST_CARGO_C_PKCS8_0_10_2_MD5 := 54148ff5f2a4a6f4f1e857b0bf854bf0
+HOST_CARGO_C_PKCS8_0_10_2_URL := https://crates.io/api/v1/crates/pkcs8/0.10.2/download
+HOST_CARGO_C_PKCS8_0_10_2_SOURCE := $(SRCDIR)/pkcs8-0.10.2.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_PKCS8_0_10_2
+
+HOST_CARGO_C_PKG_CONFIG_0_3_27_MD5 := 73d4dff694f3acab34c217b4f4943a37
+HOST_CARGO_C_PKG_CONFIG_0_3_27_URL := https://crates.io/api/v1/crates/pkg-config/0.3.27/download
+HOST_CARGO_C_PKG_CONFIG_0_3_27_SOURCE := $(SRCDIR)/pkg-config-0.3.27.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_PKG_CONFIG_0_3_27
+
+HOST_CARGO_C_PPV_LITE86_0_2_17_MD5 := 5c69337d37e58a380e00eac9ce0373bb
+HOST_CARGO_C_PPV_LITE86_0_2_17_URL := https://crates.io/api/v1/crates/ppv-lite86/0.2.17/download
+HOST_CARGO_C_PPV_LITE86_0_2_17_SOURCE := $(SRCDIR)/ppv-lite86-0.2.17.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_PPV_LITE86_0_2_17
+
+HOST_CARGO_C_PRIMEORDER_0_13_2_MD5 := bac6e8db0938ee6a1c46de650bc12fa2
+HOST_CARGO_C_PRIMEORDER_0_13_2_URL := https://crates.io/api/v1/crates/primeorder/0.13.2/download
+HOST_CARGO_C_PRIMEORDER_0_13_2_SOURCE := $(SRCDIR)/primeorder-0.13.2.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_PRIMEORDER_0_13_2
+
+HOST_CARGO_C_PROC_MACRO2_1_0_69_MD5 := 41bd794efd88a8bcac5ddb16ee6e208f
+HOST_CARGO_C_PROC_MACRO2_1_0_69_URL := https://crates.io/api/v1/crates/proc-macro2/1.0.69/download
+HOST_CARGO_C_PROC_MACRO2_1_0_69_SOURCE := $(SRCDIR)/proc-macro2-1.0.69.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_PROC_MACRO2_1_0_69
+
+HOST_CARGO_C_PRODASH_25_0_2_MD5 := db2b192f5acf39d22cabc25a4b546a79
+HOST_CARGO_C_PRODASH_25_0_2_URL := https://crates.io/api/v1/crates/prodash/25.0.2/download
+HOST_CARGO_C_PRODASH_25_0_2_SOURCE := $(SRCDIR)/prodash-25.0.2.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_PRODASH_25_0_2
+
+HOST_CARGO_C_PULLDOWN_CMARK_0_9_3_MD5 := d59a3d224e189dadcd35fc118cd3bf9d
+HOST_CARGO_C_PULLDOWN_CMARK_0_9_3_URL := https://crates.io/api/v1/crates/pulldown-cmark/0.9.3/download
+HOST_CARGO_C_PULLDOWN_CMARK_0_9_3_SOURCE := $(SRCDIR)/pulldown-cmark-0.9.3.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_PULLDOWN_CMARK_0_9_3
+
+HOST_CARGO_C_QUOTE_1_0_33_MD5 := 0ddb8bccd3198892d0dd0ec7151f7cd3
+HOST_CARGO_C_QUOTE_1_0_33_URL := https://crates.io/api/v1/crates/quote/1.0.33/download
+HOST_CARGO_C_QUOTE_1_0_33_SOURCE := $(SRCDIR)/quote-1.0.33.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_QUOTE_1_0_33
+
+HOST_CARGO_C_RAND_0_8_5_MD5 := ee7a5f842c39bc47c474196e83b0df5f
+HOST_CARGO_C_RAND_0_8_5_URL := https://crates.io/api/v1/crates/rand/0.8.5/download
+HOST_CARGO_C_RAND_0_8_5_SOURCE := $(SRCDIR)/rand-0.8.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_RAND_0_8_5
+
+HOST_CARGO_C_RAND_CHACHA_0_3_1_MD5 := e30085994bbeb4b7f4895d48216d5476
+HOST_CARGO_C_RAND_CHACHA_0_3_1_URL := https://crates.io/api/v1/crates/rand_chacha/0.3.1/download
+HOST_CARGO_C_RAND_CHACHA_0_3_1_SOURCE := $(SRCDIR)/rand_chacha-0.3.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_RAND_CHACHA_0_3_1
+
+HOST_CARGO_C_RAND_CORE_0_6_4_MD5 := a1626b8f4d165b1b60d960862eba4cf0
+HOST_CARGO_C_RAND_CORE_0_6_4_URL := https://crates.io/api/v1/crates/rand_core/0.6.4/download
+HOST_CARGO_C_RAND_CORE_0_6_4_SOURCE := $(SRCDIR)/rand_core-0.6.4.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_RAND_CORE_0_6_4
+
+HOST_CARGO_C_RAND_XOSHIRO_0_6_0_MD5 := ca0ecc8e22d810207704d4cd743ca657
+HOST_CARGO_C_RAND_XOSHIRO_0_6_0_URL := https://crates.io/api/v1/crates/rand_xoshiro/0.6.0/download
+HOST_CARGO_C_RAND_XOSHIRO_0_6_0_SOURCE := $(SRCDIR)/rand_xoshiro-0.6.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_RAND_XOSHIRO_0_6_0
+
+HOST_CARGO_C_REDOX_SYSCALL_0_3_5_MD5 := 782ea88d8e5b517b1c9e7d870e20e9e3
+HOST_CARGO_C_REDOX_SYSCALL_0_3_5_URL := https://crates.io/api/v1/crates/redox_syscall/0.3.5/download
+HOST_CARGO_C_REDOX_SYSCALL_0_3_5_SOURCE := $(SRCDIR)/redox_syscall-0.3.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_REDOX_SYSCALL_0_3_5
+
+HOST_CARGO_C_REGEX_1_10_0_MD5 := a1a8053d298f150b85368772e2f30210
+HOST_CARGO_C_REGEX_1_10_0_URL := https://crates.io/api/v1/crates/regex/1.10.0/download
+HOST_CARGO_C_REGEX_1_10_0_SOURCE := $(SRCDIR)/regex-1.10.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_REGEX_1_10_0
+
+HOST_CARGO_C_REGEX_AUTOMATA_0_1_10_MD5 := 95f4b6766a27d814b4e54d1ccb3b7fc9
+HOST_CARGO_C_REGEX_AUTOMATA_0_1_10_URL := https://crates.io/api/v1/crates/regex-automata/0.1.10/download
+HOST_CARGO_C_REGEX_AUTOMATA_0_1_10_SOURCE := $(SRCDIR)/regex-automata-0.1.10.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_REGEX_AUTOMATA_0_1_10
+
+HOST_CARGO_C_REGEX_AUTOMATA_0_4_1_MD5 := 243181ff950de6a82b5e275d3464b0b4
+HOST_CARGO_C_REGEX_AUTOMATA_0_4_1_URL := https://crates.io/api/v1/crates/regex-automata/0.4.1/download
+HOST_CARGO_C_REGEX_AUTOMATA_0_4_1_SOURCE := $(SRCDIR)/regex-automata-0.4.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_REGEX_AUTOMATA_0_4_1
+
+HOST_CARGO_C_REGEX_SYNTAX_0_6_29_MD5 := f2303650593b13e30a85e39d8c79c961
+HOST_CARGO_C_REGEX_SYNTAX_0_6_29_URL := https://crates.io/api/v1/crates/regex-syntax/0.6.29/download
+HOST_CARGO_C_REGEX_SYNTAX_0_6_29_SOURCE := $(SRCDIR)/regex-syntax-0.6.29.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_REGEX_SYNTAX_0_6_29
+
+HOST_CARGO_C_REGEX_SYNTAX_0_8_1_MD5 := 9d4c0b80a9b06e7ffe25b80cc440a3d2
+HOST_CARGO_C_REGEX_SYNTAX_0_8_1_URL := https://crates.io/api/v1/crates/regex-syntax/0.8.1/download
+HOST_CARGO_C_REGEX_SYNTAX_0_8_1_SOURCE := $(SRCDIR)/regex-syntax-0.8.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_REGEX_SYNTAX_0_8_1
+
+HOST_CARGO_C_RFC6979_0_4_0_MD5 := 4320a9e82272686cb97d7af005f5360d
+HOST_CARGO_C_RFC6979_0_4_0_URL := https://crates.io/api/v1/crates/rfc6979/0.4.0/download
+HOST_CARGO_C_RFC6979_0_4_0_SOURCE := $(SRCDIR)/rfc6979-0.4.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_RFC6979_0_4_0
+
+HOST_CARGO_C_RUSTFIX_0_6_1_MD5 := 6c746c1d8a3182a5b04dc70fcc3e9144
+HOST_CARGO_C_RUSTFIX_0_6_1_URL := https://crates.io/api/v1/crates/rustfix/0.6.1/download
+HOST_CARGO_C_RUSTFIX_0_6_1_SOURCE := $(SRCDIR)/rustfix-0.6.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_RUSTFIX_0_6_1
+
+HOST_CARGO_C_RUSTIX_0_38_18_MD5 := 1799c9a762dbbf4ac3904237c2987d82
+HOST_CARGO_C_RUSTIX_0_38_18_URL := https://crates.io/api/v1/crates/rustix/0.38.18/download
+HOST_CARGO_C_RUSTIX_0_38_18_SOURCE := $(SRCDIR)/rustix-0.38.18.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_RUSTIX_0_38_18
+
+HOST_CARGO_C_RYU_1_0_15_MD5 := 254042a2a29ae1d79b96a283c8cc251f
+HOST_CARGO_C_RYU_1_0_15_URL := https://crates.io/api/v1/crates/ryu/1.0.15/download
+HOST_CARGO_C_RYU_1_0_15_SOURCE := $(SRCDIR)/ryu-1.0.15.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_RYU_1_0_15
+
+HOST_CARGO_C_SAME_FILE_1_0_6_MD5 := 2d8d8b377d144f5e32b4f65a69eb0b24
+HOST_CARGO_C_SAME_FILE_1_0_6_URL := https://crates.io/api/v1/crates/same-file/1.0.6/download
+HOST_CARGO_C_SAME_FILE_1_0_6_SOURCE := $(SRCDIR)/same-file-1.0.6.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SAME_FILE_1_0_6
+
+HOST_CARGO_C_SCHANNEL_0_1_22_MD5 := 46c6c4f754c1fd0e4957976207398d4b
+HOST_CARGO_C_SCHANNEL_0_1_22_URL := https://crates.io/api/v1/crates/schannel/0.1.22/download
+HOST_CARGO_C_SCHANNEL_0_1_22_SOURCE := $(SRCDIR)/schannel-0.1.22.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SCHANNEL_0_1_22
+
+HOST_CARGO_C_SCOPEGUARD_1_2_0_MD5 := f1358be8c98b98837cbd2cf51e75f8b3
+HOST_CARGO_C_SCOPEGUARD_1_2_0_URL := https://crates.io/api/v1/crates/scopeguard/1.2.0/download
+HOST_CARGO_C_SCOPEGUARD_1_2_0_SOURCE := $(SRCDIR)/scopeguard-1.2.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SCOPEGUARD_1_2_0
+
+HOST_CARGO_C_SEC1_0_7_3_MD5 := 46e0a2b34b2a6108cad9e2b1da756cab
+HOST_CARGO_C_SEC1_0_7_3_URL := https://crates.io/api/v1/crates/sec1/0.7.3/download
+HOST_CARGO_C_SEC1_0_7_3_SOURCE := $(SRCDIR)/sec1-0.7.3.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SEC1_0_7_3
+
+HOST_CARGO_C_SECURITY_FRAMEWORK_2_9_2_MD5 := 151939b0b34c1580b44863b7713be586
+HOST_CARGO_C_SECURITY_FRAMEWORK_2_9_2_URL := https://crates.io/api/v1/crates/security-framework/2.9.2/download
+HOST_CARGO_C_SECURITY_FRAMEWORK_2_9_2_SOURCE := $(SRCDIR)/security-framework-2.9.2.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SECURITY_FRAMEWORK_2_9_2
+
+HOST_CARGO_C_SECURITY_FRAMEWORK_SYS_2_9_1_MD5 := 2acfe0c857811f38afc675dd79f308e2
+HOST_CARGO_C_SECURITY_FRAMEWORK_SYS_2_9_1_URL := https://crates.io/api/v1/crates/security-framework-sys/2.9.1/download
+HOST_CARGO_C_SECURITY_FRAMEWORK_SYS_2_9_1_SOURCE := $(SRCDIR)/security-framework-sys-2.9.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SECURITY_FRAMEWORK_SYS_2_9_1
+
+HOST_CARGO_C_SEMVER_1_0_20_MD5 := bf2aac00571a32be8a2fb842e194a728
+HOST_CARGO_C_SEMVER_1_0_20_URL := https://crates.io/api/v1/crates/semver/1.0.20/download
+HOST_CARGO_C_SEMVER_1_0_20_SOURCE := $(SRCDIR)/semver-1.0.20.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SEMVER_1_0_20
+
+HOST_CARGO_C_SERDE_1_0_188_MD5 := a0da7824f0a52f7712017aa48669cb32
+HOST_CARGO_C_SERDE_1_0_188_URL := https://crates.io/api/v1/crates/serde/1.0.188/download
+HOST_CARGO_C_SERDE_1_0_188_SOURCE := $(SRCDIR)/serde-1.0.188.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SERDE_1_0_188
+
+HOST_CARGO_C_SERDE_VALUE_0_7_0_MD5 := eeda11db8ced625011d8b88d36765321
+HOST_CARGO_C_SERDE_VALUE_0_7_0_URL := https://crates.io/api/v1/crates/serde-value/0.7.0/download
+HOST_CARGO_C_SERDE_VALUE_0_7_0_SOURCE := $(SRCDIR)/serde-value-0.7.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SERDE_VALUE_0_7_0
+
+HOST_CARGO_C_SERDE_DERIVE_1_0_188_MD5 := 8498aebd7ad22c00c2de49ac9c885112
+HOST_CARGO_C_SERDE_DERIVE_1_0_188_URL := https://crates.io/api/v1/crates/serde_derive/1.0.188/download
+HOST_CARGO_C_SERDE_DERIVE_1_0_188_SOURCE := $(SRCDIR)/serde_derive-1.0.188.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SERDE_DERIVE_1_0_188
+
+HOST_CARGO_C_SERDE_IGNORED_0_1_9_MD5 := 878e72949bf9df3456387dace426ceb4
+HOST_CARGO_C_SERDE_IGNORED_0_1_9_URL := https://crates.io/api/v1/crates/serde_ignored/0.1.9/download
+HOST_CARGO_C_SERDE_IGNORED_0_1_9_SOURCE := $(SRCDIR)/serde_ignored-0.1.9.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SERDE_IGNORED_0_1_9
+
+HOST_CARGO_C_SERDE_JSON_1_0_107_MD5 := 0cdf23902dbcad8c20973170e10b612f
+HOST_CARGO_C_SERDE_JSON_1_0_107_URL := https://crates.io/api/v1/crates/serde_json/1.0.107/download
+HOST_CARGO_C_SERDE_JSON_1_0_107_SOURCE := $(SRCDIR)/serde_json-1.0.107.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SERDE_JSON_1_0_107
+
+HOST_CARGO_C_SERDE_SPANNED_0_6_3_MD5 := 7b051001fdb16029a1ae8847aa345c99
+HOST_CARGO_C_SERDE_SPANNED_0_6_3_URL := https://crates.io/api/v1/crates/serde_spanned/0.6.3/download
+HOST_CARGO_C_SERDE_SPANNED_0_6_3_SOURCE := $(SRCDIR)/serde_spanned-0.6.3.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SERDE_SPANNED_0_6_3
+
+HOST_CARGO_C_SHA1_0_10_6_MD5 := d7602381c0bc21d10603cc940a837b06
+HOST_CARGO_C_SHA1_0_10_6_URL := https://crates.io/api/v1/crates/sha1/0.10.6/download
+HOST_CARGO_C_SHA1_0_10_6_SOURCE := $(SRCDIR)/sha1-0.10.6.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SHA1_0_10_6
+
+HOST_CARGO_C_SHA1_SMOL_1_0_0_MD5 := 74d8afce717ff89fb2cb5141f121782b
+HOST_CARGO_C_SHA1_SMOL_1_0_0_URL := https://crates.io/api/v1/crates/sha1_smol/1.0.0/download
+HOST_CARGO_C_SHA1_SMOL_1_0_0_SOURCE := $(SRCDIR)/sha1_smol-1.0.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SHA1_SMOL_1_0_0
+
+HOST_CARGO_C_SHA2_0_10_8_MD5 := 289b776935f2184c6ba2974877285013
+HOST_CARGO_C_SHA2_0_10_8_URL := https://crates.io/api/v1/crates/sha2/0.10.8/download
+HOST_CARGO_C_SHA2_0_10_8_SOURCE := $(SRCDIR)/sha2-0.10.8.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SHA2_0_10_8
+
+HOST_CARGO_C_SHARDED_SLAB_0_1_7_MD5 := 96261f3cee18842060fd64d618e056d8
+HOST_CARGO_C_SHARDED_SLAB_0_1_7_URL := https://crates.io/api/v1/crates/sharded-slab/0.1.7/download
+HOST_CARGO_C_SHARDED_SLAB_0_1_7_SOURCE := $(SRCDIR)/sharded-slab-0.1.7.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SHARDED_SLAB_0_1_7
+
+HOST_CARGO_C_SHELL_ESCAPE_0_1_5_MD5 := 08abe36adae4caee78acf034c56a550b
+HOST_CARGO_C_SHELL_ESCAPE_0_1_5_URL := https://crates.io/api/v1/crates/shell-escape/0.1.5/download
+HOST_CARGO_C_SHELL_ESCAPE_0_1_5_SOURCE := $(SRCDIR)/shell-escape-0.1.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SHELL_ESCAPE_0_1_5
+
+HOST_CARGO_C_SIGNAL_HOOK_0_3_17_MD5 := f60ab8537f924a65fbc0961e958d375b
+HOST_CARGO_C_SIGNAL_HOOK_0_3_17_URL := https://crates.io/api/v1/crates/signal-hook/0.3.17/download
+HOST_CARGO_C_SIGNAL_HOOK_0_3_17_SOURCE := $(SRCDIR)/signal-hook-0.3.17.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SIGNAL_HOOK_0_3_17
+
+HOST_CARGO_C_SIGNAL_HOOK_REGISTRY_1_4_1_MD5 := 22e95901b912671da26457ac33e36a23
+HOST_CARGO_C_SIGNAL_HOOK_REGISTRY_1_4_1_URL := https://crates.io/api/v1/crates/signal-hook-registry/1.4.1/download
+HOST_CARGO_C_SIGNAL_HOOK_REGISTRY_1_4_1_SOURCE := $(SRCDIR)/signal-hook-registry-1.4.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SIGNAL_HOOK_REGISTRY_1_4_1
+
+HOST_CARGO_C_SIGNATURE_2_1_0_MD5 := 8ca85e532cc1777713d250c8a5d771ad
+HOST_CARGO_C_SIGNATURE_2_1_0_URL := https://crates.io/api/v1/crates/signature/2.1.0/download
+HOST_CARGO_C_SIGNATURE_2_1_0_SOURCE := $(SRCDIR)/signature-2.1.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SIGNATURE_2_1_0
+
+HOST_CARGO_C_SIZED_CHUNKS_0_6_5_MD5 := c51211275ff1e841326726837820eed9
+HOST_CARGO_C_SIZED_CHUNKS_0_6_5_URL := https://crates.io/api/v1/crates/sized-chunks/0.6.5/download
+HOST_CARGO_C_SIZED_CHUNKS_0_6_5_SOURCE := $(SRCDIR)/sized-chunks-0.6.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SIZED_CHUNKS_0_6_5
+
+HOST_CARGO_C_SMALLVEC_1_11_1_MD5 := b09b846f58958a4c3930a69893297ae5
+HOST_CARGO_C_SMALLVEC_1_11_1_URL := https://crates.io/api/v1/crates/smallvec/1.11.1/download
+HOST_CARGO_C_SMALLVEC_1_11_1_SOURCE := $(SRCDIR)/smallvec-1.11.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SMALLVEC_1_11_1
+
+HOST_CARGO_C_SOCKET2_0_4_9_MD5 := 4acc1eadff484a737c93592e15b31f8a
+HOST_CARGO_C_SOCKET2_0_4_9_URL := https://crates.io/api/v1/crates/socket2/0.4.9/download
+HOST_CARGO_C_SOCKET2_0_4_9_SOURCE := $(SRCDIR)/socket2-0.4.9.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SOCKET2_0_4_9
+
+HOST_CARGO_C_SPKI_0_7_2_MD5 := e737e0ae0d5dc2a6a1559f788b2bb5fa
+HOST_CARGO_C_SPKI_0_7_2_URL := https://crates.io/api/v1/crates/spki/0.7.2/download
+HOST_CARGO_C_SPKI_0_7_2_SOURCE := $(SRCDIR)/spki-0.7.2.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SPKI_0_7_2
+
+HOST_CARGO_C_STATIC_ASSERTIONS_1_1_0_MD5 := c9defe80406280bcfce4ecf31c0200b3
+HOST_CARGO_C_STATIC_ASSERTIONS_1_1_0_URL := https://crates.io/api/v1/crates/static_assertions/1.1.0/download
+HOST_CARGO_C_STATIC_ASSERTIONS_1_1_0_SOURCE := $(SRCDIR)/static_assertions-1.1.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_STATIC_ASSERTIONS_1_1_0
+
+HOST_CARGO_C_STRIP_ANSI_ESCAPES_0_1_1_MD5 := 409984247a8d8f4e15a7e0d097a0447a
+HOST_CARGO_C_STRIP_ANSI_ESCAPES_0_1_1_URL := https://crates.io/api/v1/crates/strip-ansi-escapes/0.1.1/download
+HOST_CARGO_C_STRIP_ANSI_ESCAPES_0_1_1_SOURCE := $(SRCDIR)/strip-ansi-escapes-0.1.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_STRIP_ANSI_ESCAPES_0_1_1
+
+HOST_CARGO_C_STRSIM_0_10_0_MD5 := 82d98dc87dc8503400aa095f5aa70f13
+HOST_CARGO_C_STRSIM_0_10_0_URL := https://crates.io/api/v1/crates/strsim/0.10.0/download
+HOST_CARGO_C_STRSIM_0_10_0_SOURCE := $(SRCDIR)/strsim-0.10.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_STRSIM_0_10_0
+
+HOST_CARGO_C_SUBTLE_2_5_0_MD5 := 24e0b498b23c398c49e3af66373c91cc
+HOST_CARGO_C_SUBTLE_2_5_0_URL := https://crates.io/api/v1/crates/subtle/2.5.0/download
+HOST_CARGO_C_SUBTLE_2_5_0_SOURCE := $(SRCDIR)/subtle-2.5.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SUBTLE_2_5_0
+
+HOST_CARGO_C_SYN_1_0_109_MD5 := 64d9f46e9ba78f68c30c486be3d8b7df
+HOST_CARGO_C_SYN_1_0_109_URL := https://crates.io/api/v1/crates/syn/1.0.109/download
+HOST_CARGO_C_SYN_1_0_109_SOURCE := $(SRCDIR)/syn-1.0.109.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SYN_1_0_109
+
+HOST_CARGO_C_SYN_2_0_38_MD5 := 799247562dd69b3b5f4d73f91095dfab
+HOST_CARGO_C_SYN_2_0_38_URL := https://crates.io/api/v1/crates/syn/2.0.38/download
+HOST_CARGO_C_SYN_2_0_38_SOURCE := $(SRCDIR)/syn-2.0.38.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_SYN_2_0_38
+
+HOST_CARGO_C_TAR_0_4_40_MD5 := 08a17e86dfb5bf21d557636f2a545ebe
+HOST_CARGO_C_TAR_0_4_40_URL := https://crates.io/api/v1/crates/tar/0.4.40/download
+HOST_CARGO_C_TAR_0_4_40_SOURCE := $(SRCDIR)/tar-0.4.40.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_TAR_0_4_40
+
+HOST_CARGO_C_TEMPFILE_3_8_0_MD5 := ce7327ca8031864d638b1e21fd44c4dd
+HOST_CARGO_C_TEMPFILE_3_8_0_URL := https://crates.io/api/v1/crates/tempfile/3.8.0/download
+HOST_CARGO_C_TEMPFILE_3_8_0_SOURCE := $(SRCDIR)/tempfile-3.8.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_TEMPFILE_3_8_0
+
+HOST_CARGO_C_TERMCOLOR_1_3_0_MD5 := be0724e892719d0813323cbb4bfb5372
+HOST_CARGO_C_TERMCOLOR_1_3_0_URL := https://crates.io/api/v1/crates/termcolor/1.3.0/download
+HOST_CARGO_C_TERMCOLOR_1_3_0_SOURCE := $(SRCDIR)/termcolor-1.3.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_TERMCOLOR_1_3_0
+
+HOST_CARGO_C_TERMINAL_SIZE_0_3_0_MD5 := b7eae58d7a80112442643ee2ff481ef7
+HOST_CARGO_C_TERMINAL_SIZE_0_3_0_URL := https://crates.io/api/v1/crates/terminal_size/0.3.0/download
+HOST_CARGO_C_TERMINAL_SIZE_0_3_0_SOURCE := $(SRCDIR)/terminal_size-0.3.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_TERMINAL_SIZE_0_3_0
+
+HOST_CARGO_C_THISERROR_1_0_49_MD5 := fe293b2c051a108a25477c0637b151c8
+HOST_CARGO_C_THISERROR_1_0_49_URL := https://crates.io/api/v1/crates/thiserror/1.0.49/download
+HOST_CARGO_C_THISERROR_1_0_49_SOURCE := $(SRCDIR)/thiserror-1.0.49.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_THISERROR_1_0_49
+
+HOST_CARGO_C_THISERROR_IMPL_1_0_49_MD5 := 2ab5bc29c5a16fd836e9c99a70ca6663
+HOST_CARGO_C_THISERROR_IMPL_1_0_49_URL := https://crates.io/api/v1/crates/thiserror-impl/1.0.49/download
+HOST_CARGO_C_THISERROR_IMPL_1_0_49_SOURCE := $(SRCDIR)/thiserror-impl-1.0.49.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_THISERROR_IMPL_1_0_49
+
+HOST_CARGO_C_THREAD_LOCAL_1_1_7_MD5 := 4375c6756918c2e9080870b4a7489d4e
+HOST_CARGO_C_THREAD_LOCAL_1_1_7_URL := https://crates.io/api/v1/crates/thread_local/1.1.7/download
+HOST_CARGO_C_THREAD_LOCAL_1_1_7_SOURCE := $(SRCDIR)/thread_local-1.1.7.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_THREAD_LOCAL_1_1_7
+
+HOST_CARGO_C_TIME_0_3_29_MD5 := 6c217b66a5b956d8256d38e4e1498b2f
+HOST_CARGO_C_TIME_0_3_29_URL := https://crates.io/api/v1/crates/time/0.3.29/download
+HOST_CARGO_C_TIME_0_3_29_SOURCE := $(SRCDIR)/time-0.3.29.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_TIME_0_3_29
+
+HOST_CARGO_C_TIME_CORE_0_1_2_MD5 := 7818a75208424a6d05d1d868559f0adf
+HOST_CARGO_C_TIME_CORE_0_1_2_URL := https://crates.io/api/v1/crates/time-core/0.1.2/download
+HOST_CARGO_C_TIME_CORE_0_1_2_SOURCE := $(SRCDIR)/time-core-0.1.2.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_TIME_CORE_0_1_2
+
+HOST_CARGO_C_TIME_MACROS_0_2_15_MD5 := ba32227234281a5599e11672869a05ee
+HOST_CARGO_C_TIME_MACROS_0_2_15_URL := https://crates.io/api/v1/crates/time-macros/0.2.15/download
+HOST_CARGO_C_TIME_MACROS_0_2_15_SOURCE := $(SRCDIR)/time-macros-0.2.15.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_TIME_MACROS_0_2_15
+
+HOST_CARGO_C_TINYVEC_1_6_0_MD5 := 5f0470696baaa4e5953bddbf196998f9
+HOST_CARGO_C_TINYVEC_1_6_0_URL := https://crates.io/api/v1/crates/tinyvec/1.6.0/download
+HOST_CARGO_C_TINYVEC_1_6_0_SOURCE := $(SRCDIR)/tinyvec-1.6.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_TINYVEC_1_6_0
+
+HOST_CARGO_C_TINYVEC_MACROS_0_1_1_MD5 := c678a7da0ee4b850ebde0474144a0415
+HOST_CARGO_C_TINYVEC_MACROS_0_1_1_URL := https://crates.io/api/v1/crates/tinyvec_macros/0.1.1/download
+HOST_CARGO_C_TINYVEC_MACROS_0_1_1_SOURCE := $(SRCDIR)/tinyvec_macros-0.1.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_TINYVEC_MACROS_0_1_1
+
+HOST_CARGO_C_TOML_0_5_11_MD5 := b21820f2664242498beba7783b32bef4
+HOST_CARGO_C_TOML_0_5_11_URL := https://crates.io/api/v1/crates/toml/0.5.11/download
+HOST_CARGO_C_TOML_0_5_11_SOURCE := $(SRCDIR)/toml-0.5.11.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_TOML_0_5_11
+
+HOST_CARGO_C_TOML_0_7_8_MD5 := a5ef835225eff900c69ba627e62253c6
+HOST_CARGO_C_TOML_0_7_8_URL := https://crates.io/api/v1/crates/toml/0.7.8/download
+HOST_CARGO_C_TOML_0_7_8_SOURCE := $(SRCDIR)/toml-0.7.8.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_TOML_0_7_8
+
+HOST_CARGO_C_TOML_DATETIME_0_6_3_MD5 := cedd4c0c821849a65af49836d6a1bb63
+HOST_CARGO_C_TOML_DATETIME_0_6_3_URL := https://crates.io/api/v1/crates/toml_datetime/0.6.3/download
+HOST_CARGO_C_TOML_DATETIME_0_6_3_SOURCE := $(SRCDIR)/toml_datetime-0.6.3.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_TOML_DATETIME_0_6_3
+
+HOST_CARGO_C_TOML_EDIT_0_19_15_MD5 := 467f480ef05d416ac677d12315214f59
+HOST_CARGO_C_TOML_EDIT_0_19_15_URL := https://crates.io/api/v1/crates/toml_edit/0.19.15/download
+HOST_CARGO_C_TOML_EDIT_0_19_15_SOURCE := $(SRCDIR)/toml_edit-0.19.15.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_TOML_EDIT_0_19_15
+
+HOST_CARGO_C_TRACING_0_1_37_MD5 := 97e8197912c3d06f0b7486d07c31e182
+HOST_CARGO_C_TRACING_0_1_37_URL := https://crates.io/api/v1/crates/tracing/0.1.37/download
+HOST_CARGO_C_TRACING_0_1_37_SOURCE := $(SRCDIR)/tracing-0.1.37.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_TRACING_0_1_37
+
+HOST_CARGO_C_TRACING_ATTRIBUTES_0_1_26_MD5 := 7e1ba4025eafea2c81f7050a8cdd4b38
+HOST_CARGO_C_TRACING_ATTRIBUTES_0_1_26_URL := https://crates.io/api/v1/crates/tracing-attributes/0.1.26/download
+HOST_CARGO_C_TRACING_ATTRIBUTES_0_1_26_SOURCE := $(SRCDIR)/tracing-attributes-0.1.26.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_TRACING_ATTRIBUTES_0_1_26
+
+HOST_CARGO_C_TRACING_CORE_0_1_31_MD5 := b55d243e373f3a86b90ae141548f2bf5
+HOST_CARGO_C_TRACING_CORE_0_1_31_URL := https://crates.io/api/v1/crates/tracing-core/0.1.31/download
+HOST_CARGO_C_TRACING_CORE_0_1_31_SOURCE := $(SRCDIR)/tracing-core-0.1.31.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_TRACING_CORE_0_1_31
+
+HOST_CARGO_C_TRACING_LOG_0_1_3_MD5 := 96f07664354435a127662981676765dd
+HOST_CARGO_C_TRACING_LOG_0_1_3_URL := https://crates.io/api/v1/crates/tracing-log/0.1.3/download
+HOST_CARGO_C_TRACING_LOG_0_1_3_SOURCE := $(SRCDIR)/tracing-log-0.1.3.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_TRACING_LOG_0_1_3
+
+HOST_CARGO_C_TRACING_SUBSCRIBER_0_3_17_MD5 := cfb1dd88e9da7deb48893f66216661c8
+HOST_CARGO_C_TRACING_SUBSCRIBER_0_3_17_URL := https://crates.io/api/v1/crates/tracing-subscriber/0.3.17/download
+HOST_CARGO_C_TRACING_SUBSCRIBER_0_3_17_SOURCE := $(SRCDIR)/tracing-subscriber-0.3.17.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_TRACING_SUBSCRIBER_0_3_17
+
+HOST_CARGO_C_TYPENUM_1_17_0_MD5 := 6ebb8deee5a5a0d1c26b20eeee1926b3
+HOST_CARGO_C_TYPENUM_1_17_0_URL := https://crates.io/api/v1/crates/typenum/1.17.0/download
+HOST_CARGO_C_TYPENUM_1_17_0_SOURCE := $(SRCDIR)/typenum-1.17.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_TYPENUM_1_17_0
+
+HOST_CARGO_C_UNICASE_2_7_0_MD5 := 05fc1fbfb646a394e35043182c63b5de
+HOST_CARGO_C_UNICASE_2_7_0_URL := https://crates.io/api/v1/crates/unicase/2.7.0/download
+HOST_CARGO_C_UNICASE_2_7_0_SOURCE := $(SRCDIR)/unicase-2.7.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_UNICASE_2_7_0
+
+HOST_CARGO_C_UNICODE_BIDI_0_3_13_MD5 := 04c5de5f2fcb441ced909a45cff020bd
+HOST_CARGO_C_UNICODE_BIDI_0_3_13_URL := https://crates.io/api/v1/crates/unicode-bidi/0.3.13/download
+HOST_CARGO_C_UNICODE_BIDI_0_3_13_SOURCE := $(SRCDIR)/unicode-bidi-0.3.13.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_UNICODE_BIDI_0_3_13
+
+HOST_CARGO_C_UNICODE_BOM_2_0_2_MD5 := 24d96a72c285ee29e79ea640d1c0391d
+HOST_CARGO_C_UNICODE_BOM_2_0_2_URL := https://crates.io/api/v1/crates/unicode-bom/2.0.2/download
+HOST_CARGO_C_UNICODE_BOM_2_0_2_SOURCE := $(SRCDIR)/unicode-bom-2.0.2.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_UNICODE_BOM_2_0_2
+
+HOST_CARGO_C_UNICODE_IDENT_1_0_12_MD5 := ca65153603a1a7240bbd9d2ce19f2d67
+HOST_CARGO_C_UNICODE_IDENT_1_0_12_URL := https://crates.io/api/v1/crates/unicode-ident/1.0.12/download
+HOST_CARGO_C_UNICODE_IDENT_1_0_12_SOURCE := $(SRCDIR)/unicode-ident-1.0.12.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_UNICODE_IDENT_1_0_12
+
+HOST_CARGO_C_UNICODE_NORMALIZATION_0_1_22_MD5 := c12d182417999fc365f952e701f6071f
+HOST_CARGO_C_UNICODE_NORMALIZATION_0_1_22_URL := https://crates.io/api/v1/crates/unicode-normalization/0.1.22/download
+HOST_CARGO_C_UNICODE_NORMALIZATION_0_1_22_SOURCE := $(SRCDIR)/unicode-normalization-0.1.22.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_UNICODE_NORMALIZATION_0_1_22
+
+HOST_CARGO_C_UNICODE_WIDTH_0_1_11_MD5 := 908ec8a89821b72f3a35726bab24461f
+HOST_CARGO_C_UNICODE_WIDTH_0_1_11_URL := https://crates.io/api/v1/crates/unicode-width/0.1.11/download
+HOST_CARGO_C_UNICODE_WIDTH_0_1_11_SOURCE := $(SRCDIR)/unicode-width-0.1.11.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_UNICODE_WIDTH_0_1_11
+
+HOST_CARGO_C_UNICODE_XID_0_2_4_MD5 := 1fcc5c68ddd2899481f89c74a6f35ea6
+HOST_CARGO_C_UNICODE_XID_0_2_4_URL := https://crates.io/api/v1/crates/unicode-xid/0.2.4/download
+HOST_CARGO_C_UNICODE_XID_0_2_4_SOURCE := $(SRCDIR)/unicode-xid-0.2.4.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_UNICODE_XID_0_2_4
+
+HOST_CARGO_C_URL_2_4_1_MD5 := efd4c5bfd0861c5cf7ac6a0823fb9c96
+HOST_CARGO_C_URL_2_4_1_URL := https://crates.io/api/v1/crates/url/2.4.1/download
+HOST_CARGO_C_URL_2_4_1_SOURCE := $(SRCDIR)/url-2.4.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_URL_2_4_1
+
+HOST_CARGO_C_UTF8PARSE_0_2_1_MD5 := ceee1159c41351d05f4cf705490867b3
+HOST_CARGO_C_UTF8PARSE_0_2_1_URL := https://crates.io/api/v1/crates/utf8parse/0.2.1/download
+HOST_CARGO_C_UTF8PARSE_0_2_1_SOURCE := $(SRCDIR)/utf8parse-0.2.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_UTF8PARSE_0_2_1
+
+HOST_CARGO_C_VALUABLE_0_1_0_MD5 := 4efc6e7a118524cecefa0023a18accf7
+HOST_CARGO_C_VALUABLE_0_1_0_URL := https://crates.io/api/v1/crates/valuable/0.1.0/download
+HOST_CARGO_C_VALUABLE_0_1_0_SOURCE := $(SRCDIR)/valuable-0.1.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_VALUABLE_0_1_0
+
+HOST_CARGO_C_VCPKG_0_2_15_MD5 := e900a384ac7dbb320fe6a7279fbfef89
+HOST_CARGO_C_VCPKG_0_2_15_URL := https://crates.io/api/v1/crates/vcpkg/0.2.15/download
+HOST_CARGO_C_VCPKG_0_2_15_SOURCE := $(SRCDIR)/vcpkg-0.2.15.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_VCPKG_0_2_15
+
+HOST_CARGO_C_VERSION_CHECK_0_9_4_MD5 := d18d362345c4fe512ef67b738b239fb8
+HOST_CARGO_C_VERSION_CHECK_0_9_4_URL := https://crates.io/api/v1/crates/version_check/0.9.4/download
+HOST_CARGO_C_VERSION_CHECK_0_9_4_SOURCE := $(SRCDIR)/version_check-0.9.4.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_VERSION_CHECK_0_9_4
+
+HOST_CARGO_C_VTE_0_10_1_MD5 := 86a6d196e4dabf14f3b1366eee81b86c
+HOST_CARGO_C_VTE_0_10_1_URL := https://crates.io/api/v1/crates/vte/0.10.1/download
+HOST_CARGO_C_VTE_0_10_1_SOURCE := $(SRCDIR)/vte-0.10.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_VTE_0_10_1
+
+HOST_CARGO_C_VTE_GENERATE_STATE_CHANGES_0_1_1_MD5 := a29fec77b1e07caf7b682b881b676c06
+HOST_CARGO_C_VTE_GENERATE_STATE_CHANGES_0_1_1_URL := https://crates.io/api/v1/crates/vte_generate_state_changes/0.1.1/download
+HOST_CARGO_C_VTE_GENERATE_STATE_CHANGES_0_1_1_SOURCE := $(SRCDIR)/vte_generate_state_changes-0.1.1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_VTE_GENERATE_STATE_CHANGES_0_1_1
+
+HOST_CARGO_C_WALKDIR_2_4_0_MD5 := 96481ed810273371ed8b87f062a0dcda
+HOST_CARGO_C_WALKDIR_2_4_0_URL := https://crates.io/api/v1/crates/walkdir/2.4.0/download
+HOST_CARGO_C_WALKDIR_2_4_0_SOURCE := $(SRCDIR)/walkdir-2.4.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WALKDIR_2_4_0
+
+HOST_CARGO_C_WASI_0_11_0_WASI_SNAPSHOT_PREVIEW1_MD5 := e972ea58ec203bfa6c79c1207852298b
+HOST_CARGO_C_WASI_0_11_0_WASI_SNAPSHOT_PREVIEW1_URL := https://crates.io/api/v1/crates/wasi/0.11.0+wasi-snapshot-preview1/download
+HOST_CARGO_C_WASI_0_11_0_WASI_SNAPSHOT_PREVIEW1_SOURCE := $(SRCDIR)/wasi-0.11.0+wasi-snapshot-preview1.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WASI_0_11_0_WASI_SNAPSHOT_PREVIEW1
+
+HOST_CARGO_C_WASM_BINDGEN_0_2_87_MD5 := 64f9f5c520b25087ba70e4194d6aea9c
+HOST_CARGO_C_WASM_BINDGEN_0_2_87_URL := https://crates.io/api/v1/crates/wasm-bindgen/0.2.87/download
+HOST_CARGO_C_WASM_BINDGEN_0_2_87_SOURCE := $(SRCDIR)/wasm-bindgen-0.2.87.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WASM_BINDGEN_0_2_87
+
+HOST_CARGO_C_WASM_BINDGEN_BACKEND_0_2_87_MD5 := e1aaf0d487ef02def77307a74ee35606
+HOST_CARGO_C_WASM_BINDGEN_BACKEND_0_2_87_URL := https://crates.io/api/v1/crates/wasm-bindgen-backend/0.2.87/download
+HOST_CARGO_C_WASM_BINDGEN_BACKEND_0_2_87_SOURCE := $(SRCDIR)/wasm-bindgen-backend-0.2.87.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WASM_BINDGEN_BACKEND_0_2_87
+
+HOST_CARGO_C_WASM_BINDGEN_MACRO_0_2_87_MD5 := e41541041285d9f05d372cdac02a4bf7
+HOST_CARGO_C_WASM_BINDGEN_MACRO_0_2_87_URL := https://crates.io/api/v1/crates/wasm-bindgen-macro/0.2.87/download
+HOST_CARGO_C_WASM_BINDGEN_MACRO_0_2_87_SOURCE := $(SRCDIR)/wasm-bindgen-macro-0.2.87.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WASM_BINDGEN_MACRO_0_2_87
+
+HOST_CARGO_C_WASM_BINDGEN_MACRO_SUPPORT_0_2_87_MD5 := b3139f7d066250bfaf96b99e913ee75d
+HOST_CARGO_C_WASM_BINDGEN_MACRO_SUPPORT_0_2_87_URL := https://crates.io/api/v1/crates/wasm-bindgen-macro-support/0.2.87/download
+HOST_CARGO_C_WASM_BINDGEN_MACRO_SUPPORT_0_2_87_SOURCE := $(SRCDIR)/wasm-bindgen-macro-support-0.2.87.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WASM_BINDGEN_MACRO_SUPPORT_0_2_87
+
+HOST_CARGO_C_WASM_BINDGEN_SHARED_0_2_87_MD5 := 4185de0682e5e5f3a9f13285218e59aa
+HOST_CARGO_C_WASM_BINDGEN_SHARED_0_2_87_URL := https://crates.io/api/v1/crates/wasm-bindgen-shared/0.2.87/download
+HOST_CARGO_C_WASM_BINDGEN_SHARED_0_2_87_SOURCE := $(SRCDIR)/wasm-bindgen-shared-0.2.87.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WASM_BINDGEN_SHARED_0_2_87
+
+HOST_CARGO_C_WINAPI_0_3_9_MD5 := 0498c4a11448bfc35dc7bb2caa64c753
+HOST_CARGO_C_WINAPI_0_3_9_URL := https://crates.io/api/v1/crates/winapi/0.3.9/download
+HOST_CARGO_C_WINAPI_0_3_9_SOURCE := $(SRCDIR)/winapi-0.3.9.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WINAPI_0_3_9
+
+HOST_CARGO_C_WINAPI_I686_PC_WINDOWS_GNU_0_4_0_MD5 := db96b50050277bf05a3c68534bbb9586
+HOST_CARGO_C_WINAPI_I686_PC_WINDOWS_GNU_0_4_0_URL := https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download
+HOST_CARGO_C_WINAPI_I686_PC_WINDOWS_GNU_0_4_0_SOURCE := $(SRCDIR)/winapi-i686-pc-windows-gnu-0.4.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WINAPI_I686_PC_WINDOWS_GNU_0_4_0
+
+HOST_CARGO_C_WINAPI_UTIL_0_1_6_MD5 := 306c0281447d1876e8220007b7a7e053
+HOST_CARGO_C_WINAPI_UTIL_0_1_6_URL := https://crates.io/api/v1/crates/winapi-util/0.1.6/download
+HOST_CARGO_C_WINAPI_UTIL_0_1_6_SOURCE := $(SRCDIR)/winapi-util-0.1.6.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WINAPI_UTIL_0_1_6
+
+HOST_CARGO_C_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0_MD5 := 09de9d01e7331ff3da11f58be8bef0df
+HOST_CARGO_C_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0_URL := https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download
+HOST_CARGO_C_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0_SOURCE := $(SRCDIR)/winapi-x86_64-pc-windows-gnu-0.4.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0
+
+HOST_CARGO_C_WINDOWS_0_48_0_MD5 := f4620d6217497ee2c54090cd353ceec4
+HOST_CARGO_C_WINDOWS_0_48_0_URL := https://crates.io/api/v1/crates/windows/0.48.0/download
+HOST_CARGO_C_WINDOWS_0_48_0_SOURCE := $(SRCDIR)/windows-0.48.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WINDOWS_0_48_0
+
+HOST_CARGO_C_WINDOWS_SYS_0_48_0_MD5 := f2797ade0e36f1e5d6be9d11b5076582
+HOST_CARGO_C_WINDOWS_SYS_0_48_0_URL := https://crates.io/api/v1/crates/windows-sys/0.48.0/download
+HOST_CARGO_C_WINDOWS_SYS_0_48_0_SOURCE := $(SRCDIR)/windows-sys-0.48.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WINDOWS_SYS_0_48_0
+
+HOST_CARGO_C_WINDOWS_TARGETS_0_48_5_MD5 := 24c64817e85ef77765ed0f26c31c9b4c
+HOST_CARGO_C_WINDOWS_TARGETS_0_48_5_URL := https://crates.io/api/v1/crates/windows-targets/0.48.5/download
+HOST_CARGO_C_WINDOWS_TARGETS_0_48_5_SOURCE := $(SRCDIR)/windows-targets-0.48.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WINDOWS_TARGETS_0_48_5
+
+HOST_CARGO_C_WINDOWS_AARCH64_GNULLVM_0_48_5_MD5 := dae6d89034a6988042fd8be4cf5e037d
+HOST_CARGO_C_WINDOWS_AARCH64_GNULLVM_0_48_5_URL := https://crates.io/api/v1/crates/windows_aarch64_gnullvm/0.48.5/download
+HOST_CARGO_C_WINDOWS_AARCH64_GNULLVM_0_48_5_SOURCE := $(SRCDIR)/windows_aarch64_gnullvm-0.48.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WINDOWS_AARCH64_GNULLVM_0_48_5
+
+HOST_CARGO_C_WINDOWS_AARCH64_MSVC_0_48_5_MD5 := de2839e16d9d7a9fd1c397da62f62b4a
+HOST_CARGO_C_WINDOWS_AARCH64_MSVC_0_48_5_URL := https://crates.io/api/v1/crates/windows_aarch64_msvc/0.48.5/download
+HOST_CARGO_C_WINDOWS_AARCH64_MSVC_0_48_5_SOURCE := $(SRCDIR)/windows_aarch64_msvc-0.48.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WINDOWS_AARCH64_MSVC_0_48_5
+
+HOST_CARGO_C_WINDOWS_I686_GNU_0_48_5_MD5 := e0c35ffb8cfdb74a39bf799811f79304
+HOST_CARGO_C_WINDOWS_I686_GNU_0_48_5_URL := https://crates.io/api/v1/crates/windows_i686_gnu/0.48.5/download
+HOST_CARGO_C_WINDOWS_I686_GNU_0_48_5_SOURCE := $(SRCDIR)/windows_i686_gnu-0.48.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WINDOWS_I686_GNU_0_48_5
+
+HOST_CARGO_C_WINDOWS_I686_MSVC_0_48_5_MD5 := d990172b607020701f9e84ca8e1c043c
+HOST_CARGO_C_WINDOWS_I686_MSVC_0_48_5_URL := https://crates.io/api/v1/crates/windows_i686_msvc/0.48.5/download
+HOST_CARGO_C_WINDOWS_I686_MSVC_0_48_5_SOURCE := $(SRCDIR)/windows_i686_msvc-0.48.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WINDOWS_I686_MSVC_0_48_5
+
+HOST_CARGO_C_WINDOWS_X86_64_GNU_0_48_5_MD5 := 0a68848588e847ceccf504891584d00b
+HOST_CARGO_C_WINDOWS_X86_64_GNU_0_48_5_URL := https://crates.io/api/v1/crates/windows_x86_64_gnu/0.48.5/download
+HOST_CARGO_C_WINDOWS_X86_64_GNU_0_48_5_SOURCE := $(SRCDIR)/windows_x86_64_gnu-0.48.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WINDOWS_X86_64_GNU_0_48_5
+
+HOST_CARGO_C_WINDOWS_X86_64_GNULLVM_0_48_5_MD5 := 45b469ad607b912256b7c80141fa2d17
+HOST_CARGO_C_WINDOWS_X86_64_GNULLVM_0_48_5_URL := https://crates.io/api/v1/crates/windows_x86_64_gnullvm/0.48.5/download
+HOST_CARGO_C_WINDOWS_X86_64_GNULLVM_0_48_5_SOURCE := $(SRCDIR)/windows_x86_64_gnullvm-0.48.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WINDOWS_X86_64_GNULLVM_0_48_5
+
+HOST_CARGO_C_WINDOWS_X86_64_MSVC_0_48_5_MD5 := 7799baff9a5664205d9110a2624e8989
+HOST_CARGO_C_WINDOWS_X86_64_MSVC_0_48_5_URL := https://crates.io/api/v1/crates/windows_x86_64_msvc/0.48.5/download
+HOST_CARGO_C_WINDOWS_X86_64_MSVC_0_48_5_SOURCE := $(SRCDIR)/windows_x86_64_msvc-0.48.5.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WINDOWS_X86_64_MSVC_0_48_5
+
+HOST_CARGO_C_WINNOW_0_5_16_MD5 := 272835bd8732c792af0e7a46f823862e
+HOST_CARGO_C_WINNOW_0_5_16_URL := https://crates.io/api/v1/crates/winnow/0.5.16/download
+HOST_CARGO_C_WINNOW_0_5_16_SOURCE := $(SRCDIR)/winnow-0.5.16.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_WINNOW_0_5_16
+
+HOST_CARGO_C_ZEROIZE_1_6_0_MD5 := 3ea38bd15c38388574094ce24a47c586
+HOST_CARGO_C_ZEROIZE_1_6_0_URL := https://crates.io/api/v1/crates/zeroize/1.6.0/download
+HOST_CARGO_C_ZEROIZE_1_6_0_SOURCE := $(SRCDIR)/zeroize-1.6.0.crate
+HOST_CARGO_C_PARTS += HOST_CARGO_C_ZEROIZE_1_6_0
+
+
+# vim: syntax=make
diff --git a/rules/host-cargo-c.in b/rules/host-cargo-c.in
new file mode 100644
index 000000000..004d75d4e
--- /dev/null
+++ b/rules/host-cargo-c.in
@@ -0,0 +1,5 @@
+## SECTION=hosttools_noprompt
+
+config HOST_CARGO_C
+ tristate
+ select HOST_OPENSSL
diff --git a/rules/host-cargo-c.make b/rules/host-cargo-c.make
new file mode 100644
index 000000000..938b1da2c
--- /dev/null
+++ b/rules/host-cargo-c.make
@@ -0,0 +1,54 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_CARGO_C) += host-cargo-c
+
+#
+# Paths and names
+#
+HOST_CARGO_C_VERSION := 0.9.27+cargo-0.74.0
+HOST_CARGO_C_MD5 := 690da03174eac0b0b38b3fccc40f0289
+HOST_CARGO_C := cargo-c-$(HOST_CARGO_C_VERSION)
+HOST_CARGO_C_SUFFIX := tar.gz
+HOST_CARGO_C_URL := https://crates.io/api/v1/crates/cargo-c/$(HOST_CARGO_C_VERSION)/download
+HOST_CARGO_C_SOURCE := $(SRCDIR)/$(HOST_CARGO_C).$(HOST_CARGO_C_SUFFIX)
+HOST_CARGO_C_DIR := $(HOST_BUILDDIR)/$(HOST_CARGO_C)
+HOST_CARGO_C_LICENSE := MIT AND unknown
+HOST_CARGO_C_LICENSE_FILES := \
+ file://LICENSE;md5=384ed0e2e0b2dac094e51fbf93fdcbe0
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# cargo
+#
+HOST_CARGO_C_CONF_TOOL := cargo
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+HOST_CARGO_C_TOOLS := \
+ cargo-capi \
+ cargo-cbuild \
+ cargo-cinstall \
+ cargo-ctest
+
+$(STATEDIR)/host-cargo-c.install:
+ @$(call targetinfo)
+ @$(call world/execute, HOST_CARGO_C, \
+ install -v -m755 -t $(HOST_CARGO_C_PKGDIR)/bin \
+ $(addprefix $(HOST_CARGO_C_DIR)/target/release/, $(HOST_CARGO_C_TOOLS)))
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/host-casync.make b/rules/host-casync.make
index 6bcf0361a..9f845f8de 100644
--- a/rules/host-casync.make
+++ b/rules/host-casync.make
@@ -19,15 +19,14 @@ HOST_CASYNC_CONF_TOOL := meson
HOST_CASYNC_CONF_OPT := \
$(HOST_MESON_OPT) \
-Dfuse=false \
- -Dselinux=false \
- -Dudev=false \
- -Dudevrulesdir=no \
- -Dman=false \
- -Dlibzstd=disabled \
-Dliblzma=enabled \
-Dlibz=enabled \
- -Doss-fuzz=false \
+ -Dlibzstd=disabled \
-Dllvm-fuzz=false \
- -Dbashcompletiondir=no
+ -Dman=false \
+ -Doss-fuzz=false \
+ -Dselinux=false \
+ -Dudev=false \
+ -Dudevrulesdir=no
# vim: syntax=make
diff --git a/rules/host-chrpath.in b/rules/host-chrpath.in
index 3a34d6989..2e87d56fb 100644
--- a/rules/host-chrpath.in
+++ b/rules/host-chrpath.in
@@ -4,4 +4,4 @@ config HOST_CHRPATH
tristate
default y
help
- Tool to change the rpath of a ELF binary.
+ Tool to change the rpath of an ELF binary.
diff --git a/rules/host-ckermit.make b/rules/host-ckermit.make
index 99c54029b..b9a03dc5c 100644
--- a/rules/host-ckermit.make
+++ b/rules/host-ckermit.make
@@ -30,7 +30,7 @@ HOST_CKERMIT_CONF_TOOL := NO
HOST_CKERMIT_MAKE_OPT := \
linuxa \
- prefix= \
+ prefix=/usr \
KFLAGS='-O2 -DCK_NCURSES -DHAVE_PTMX' \
LIBS='-lncurses -lutil -lresolv -lcrypt'
@@ -39,14 +39,14 @@ HOST_CKERMIT_MAKE_OPT := \
# ----------------------------------------------------------------------------
HOST_CKERMIT_INSTALL_OPT := \
- prefix= \
+ prefix=/usr \
install
$(STATEDIR)/host-ckermit.install:
@$(call targetinfo)
- @$(call install, HOST_CKERMIT)
- @ln -sf kermit $(HOST_CKERMIT_PKGDIR)/bin/ckermit
- @install -m755 $(HOST_CKERMIT_DIR)/wart $(HOST_CKERMIT_PKGDIR)/bin/
+ @$(call world/install, HOST_CKERMIT)
+ @ln -sf kermit $(HOST_CKERMIT_PKGDIR)/usr/bin/ckermit
+ @install -m755 $(HOST_CKERMIT_DIR)/wart $(HOST_CKERMIT_PKGDIR)/usr/bin/
@$(call touch)
# vim: syntax=make
diff --git a/rules/host-cmake-ecm.make b/rules/host-cmake-ecm.make
index d6e55d711..c5faafe46 100644
--- a/rules/host-cmake-ecm.make
+++ b/rules/host-cmake-ecm.make
@@ -18,7 +18,9 @@ HOST_CMAKE_ECM_VERSION := 5.56.0
HOST_CMAKE_ECM_MD5 := 89be75b53098e1e6cd9b2e30b0bb9e44
HOST_CMAKE_ECM := extra-cmake-modules-$(HOST_CMAKE_ECM_VERSION)
HOST_CMAKE_ECM_SUFFIX := tar.xz
-HOST_CMAKE_ECM_URL := https://download.kde.org/stable/frameworks/$(basename $(HOST_CMAKE_ECM_VERSION))/$(HOST_CMAKE_ECM).$(HOST_CMAKE_ECM_SUFFIX)
+HOST_CMAKE_ECM_URL := \
+ https://download.kde.org/stable/frameworks/$(basename $(HOST_CMAKE_ECM_VERSION))/$(HOST_CMAKE_ECM).$(HOST_CMAKE_ECM_SUFFIX) \
+ https://download.kde.org/Attic/frameworks/$(basename $(HOST_CMAKE_ECM_VERSION))/$(HOST_CMAKE_ECM).$(HOST_CMAKE_ECM_SUFFIX)
HOST_CMAKE_ECM_SOURCE := $(SRCDIR)/$(HOST_CMAKE_ECM).$(HOST_CMAKE_ECM_SUFFIX)
HOST_CMAKE_ECM_DIR := $(HOST_BUILDDIR)/$(HOST_CMAKE_ECM)
HOST_CMAKE_ECM_LICENSE := BSD-3-Clause
@@ -29,7 +31,10 @@ HOST_CMAKE_ECM_LICENSE := BSD-3-Clause
HOST_CMAKE_ECM_CONF_TOOL := cmake
HOST_CMAKE_ECM_CONF_OPT := \
- $(HOST_CMAKE_OPT) \
- -DBUILD_TESTING=OFF
+ $(HOST_CMAKE_OPT) \
+ -DBUILD_HTML_DOCS=OFF \
+ -DBUILD_MAN_DOCS=OFF \
+ -DBUILD_QTHELP_DOCS=OFF \
+ -DBUILD_TESTING=OFF
# vim: syntax=make
diff --git a/rules/host-cmake.make b/rules/host-cmake.make
index 8bab32945..0d4788f93 100644
--- a/rules/host-cmake.make
+++ b/rules/host-cmake.make
@@ -15,20 +15,29 @@ HOST_PACKAGES-$(PTXCONF_HOST_CMAKE) += host-cmake
#
# Paths and names
#
-HOST_CMAKE_VERSION := 3.13.4
-HOST_CMAKE_MD5 := b5a544ffc73f6922a6cf371fcb6bae22
+HOST_CMAKE_VERSION := 3.28.3
+HOST_CMAKE_MD5 := 6b16c82b81e1fd80b63bee9696846b21
HOST_CMAKE := cmake-$(HOST_CMAKE_VERSION)
HOST_CMAKE_SUFFIX := tar.gz
HOST_CMAKE_URL := https://cmake.org/files/v$(basename $(HOST_CMAKE_VERSION))/$(HOST_CMAKE).$(HOST_CMAKE_SUFFIX)
HOST_CMAKE_SOURCE := $(SRCDIR)/$(HOST_CMAKE).$(HOST_CMAKE_SUFFIX)
HOST_CMAKE_DIR := $(HOST_BUILDDIR)/$(HOST_CMAKE)
-HOST_CMAKE_LICENSE := BSD-3-Clause AND Apache-2.0 AND bzip2-1.0.5 AND (MIT OR public_domain) AND MIT
+HOST_CMAKE_LICENSE := 0BSD AND BSD-2-clause AND BSD-3-Clause AND Apache-2.0 AND bzip2-1.0.6 AND (MIT OR public_domain) AND MIT AND curl
HOST_CMAKE_LICENSE_FILES := \
- file://Copyright.txt;md5=f61f5f859bc5ddba2b050eb10335e013 \
- file://Utilities/GitSetup/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
- file://Utilities/cmbzip2/LICENSE;md5=7023994919680c533b77301b306ea1c9 \
- file://Utilities/cmjsoncpp/LICENSE;md5=fa2a23dd1dc6c139f35105379d76df2b \
- file://Utilities/cmlibuv/LICENSE;md5=a68902a430e32200263d182d44924d47
+ file://Copyright.txt;md5=9d3d12c5f3b4c1f83650adcc65b59c06 \
+ file://Source/kwsys/Copyright.txt;md5=64ed5ec90b0f9868cf0b08ea5b954dfe \
+ file://Utilities/KWIML/Copyright.txt;md5=bdc657917a0eec5751b3d5eafd4b413c \
+ file://Utilities/cmbzip2/LICENSE;md5=1e5cffe65fc786f83a11a4b225495c0b \
+ file://Utilities/cmcurl/COPYING;md5=db8448a1e43eb2125f7740fc397db1f6 \
+ file://Utilities/cmexpat/COPYING;md5=9e2ce3b3c4c0f2670883a23bbd7c37a9 \
+ file://Utilities/cmjsoncpp/LICENSE;md5=5d73c165a0f9e86a1342f32d19ec5926 \
+ file://Utilities/cmlibarchive/COPYING;md5=d499814247adaee08d88080841cb5665 \
+ file://Utilities/cmlibrhash/COPYING;md5=a8c2a557a5c53b1c12cddbee98c099af \
+ file://Utilities/cmlibuv/LICENSE;md5=ad93ca1fffe931537fcf64f6fcce084d \
+ file://Utilities/cmnghttp2/COPYING;md5=764abdf30b2eadd37ce47dcbce0ea1ec \
+ file://Utilities/cmzlib/Copyright.txt;md5=952d96c4fe88e5ceb8b3a1f9d47b9ec1 \
+ file://Utilities/cmzstd/LICENSE;md5=c7f0b161edbe52f5f345a3d1311d0b32
+
# ----------------------------------------------------------------------------
# Prepare
@@ -41,7 +50,7 @@ HOST_CMAKE_CONF_ENV := \
HOST_CMAKE_BUILD_OOT := YES
HOST_CMAKE_CONF_TOOL := autoconf
HOST_CMAKE_CONF_OPT := \
- $(HOST_AUTOCONF) \
+ --prefix=/usr \
-- \
-DBUILD_TESTING=NO \
-DCMAKE_USE_OPENSSL=NO
@@ -49,6 +58,7 @@ HOST_CMAKE_CONF_OPT := \
$(STATEDIR)/host-cmake.install.post: \
$(PTXDIST_CMAKE_TOOLCHAIN_TARGET) \
- $(PTXDIST_CMAKE_TOOLCHAIN_HOST)
+ $(PTXDIST_CMAKE_TOOLCHAIN_HOST) \
+ $(PTXDIST_CMAKE_TOOLCHAIN_CROSS)
# vim: syntax=make
diff --git a/rules/host-python-setuptools.in b/rules/host-cpputest.in
index 696a4e810..7ef582262 100644
--- a/rules/host-python-setuptools.in
+++ b/rules/host-cpputest.in
@@ -1,6 +1,5 @@
## SECTION=hosttools_noprompt
-config HOST_PYTHON_SETUPTOOLS
+config HOST_CPPUTEST
tristate
default y if ALLYES
- select HOST_PYTHON
diff --git a/rules/host-cpputest.make b/rules/host-cpputest.make
new file mode 100644
index 000000000..a75dd5449
--- /dev/null
+++ b/rules/host-cpputest.make
@@ -0,0 +1,34 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Roland Hieber <rhi@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_CPPUTEST) += host-cpputest
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+HOST_CPPUTEST_CONF_TOOL := autoconf
+CPPUTEST_CONF_OPT := \
+ $(HOST_AUTOCONF_USR) \
+ --enable-std-c \
+ --enable-std-cpp \
+ --enable-std-cpp11 \
+ --enable-cpputest-flags \
+ --enable-memory-leak-detection \
+ --enable-extensions \
+ --enable-longlong \
+ --enable-generate-map-file \
+ --enable-coverage
+
+# vim: syntax=make
diff --git a/rules/host-cramfs.in b/rules/host-cramfs.in
deleted file mode 100644
index 01a997f53..000000000
--- a/rules/host-cramfs.in
+++ /dev/null
@@ -1,11 +0,0 @@
-## SECTION=hosttools_noprompt
-
-config HOST_CRAMFS
- tristate
- select HOST_ZLIB
- default y if ALLYES
- help
- This package contains tools that let you construct a CramFs
- (Compressed ROM File System) image from the contents of a
- given directory, as well as checking a constructed CramFs
- image and extracting its contents.
diff --git a/rules/host-cramfs.make b/rules/host-cramfs.make
deleted file mode 100644
index 4ad12a533..000000000
--- a/rules/host-cramfs.make
+++ /dev/null
@@ -1,42 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2007 by Robert Schwebel
-# (C) 2010 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-HOST_PACKAGES-$(PTXCONF_HOST_CRAMFS) += host-cramfs
-
-#
-# Paths and names
-#
-HOST_CRAMFS_VERSION := 1.1
-HOST_CRAMFS_MD5 := d3912b9f7bf745fbfea68f6a9b9de30f
-HOST_CRAMFS := cramfs-$(HOST_CRAMFS_VERSION)
-HOST_CRAMFS_SUFFIX := tar.gz
-HOST_CRAMFS_URL := $(call ptx/mirror, SF, cramfs/$(HOST_CRAMFS).$(HOST_CRAMFS_SUFFIX))
-HOST_CRAMFS_SOURCE := $(SRCDIR)/$(HOST_CRAMFS).$(HOST_CRAMFS_SUFFIX)
-HOST_CRAMFS_DIR := $(HOST_BUILDDIR)/$(HOST_CRAMFS)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-HOST_CRAMFS_CONF_TOOL := NO
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/host-cramfs.install:
- @$(call targetinfo)
- cp $(HOST_CRAMFS_DIR)/mkcramfs $(PTXDIST_SYSROOT_HOST)/bin
- cp $(HOST_CRAMFS_DIR)/cramfsck $(PTXDIST_SYSROOT_HOST)/bin
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/host-cryptsetup.make b/rules/host-cryptsetup.make
index 360d6bf3c..82f1ba60e 100644
--- a/rules/host-cryptsetup.make
+++ b/rules/host-cryptsetup.make
@@ -21,15 +21,18 @@ HOST_PACKAGES-$(PTXCONF_HOST_CRYPTSETUP) += host-cryptsetup
HOST_CRYPTSETUP_CONF_TOOL := autoconf
HOST_CRYPTSETUP_CONF_OPT := \
$(HOST_AUTOCONF) \
- --disable-rpath \
+ --disable-asciidoc \
--disable-keyring \
+ --disable-external-tokens \
+ --disable-ssh-token \
+ --disable-luks2-reencryption \
--disable-nls \
+ --disable-rpath \
--disable-fips \
--disable-pwquality \
--disable-static-cryptsetup \
--disable-cryptsetup \
--enable-veritysetup \
- --disable-cryptsetup-reencrypt \
--disable-integritysetup \
--disable-selinux \
--disable-udev \
diff --git a/rules/host-cups.make b/rules/host-cups.make
index a2edf1a2e..9d970c81e 100644
--- a/rules/host-cups.make
+++ b/rules/host-cups.make
@@ -29,7 +29,7 @@ HOST_PACKAGES-$(PTXCONF_HOST_CUPS) += host-cups
HOST_CUPS_CONF_TOOL := autoconf
HOST_CUPS_CONF_OPT := \
$(HOST_AUTOCONF) \
- --libdir=/lib/ \
+ --libdir=/usr/lib/ \
--disable-mallinfo \
--disable-libpaper \
--disable-libusb \
@@ -86,7 +86,7 @@ $(STATEDIR)/host-cups.install:
@$(call compile, HOST_CUPS, -C ${HOST_CUPS_DIR}/ppdc install)
@$(call touch)
-CROSS_PPDC := $(PTXDIST_SYSROOT_CROSS)/bin/ppdc
+CROSS_PPDC := $(PTXDIST_SYSROOT_CROSS)/usr/bin/ppdc
$(STATEDIR)/host-cups.install.post:
@$(call targetinfo)
@@ -94,7 +94,7 @@ $(STATEDIR)/host-cups.install.post:
@( \
echo '#!/bin/sh'; \
- echo 'CUPS_DATADIR=$(PTXDIST_SYSROOT_HOST)/share/cups $(PTXDIST_SYSROOT_HOST)/bin/ppdc "$$@"'; \
+ echo 'CUPS_DATADIR=$(PTXDIST_SYSROOT_HOST)/usr/share/cups $(PTXDIST_SYSROOT_HOST)/usr/bin/ppdc "$$@"'; \
) > $(CROSS_PPDC)
@chmod +x $(CROSS_PPDC)
diff --git a/rules/host-cython.in b/rules/host-cython.in
deleted file mode 100644
index b9d60ed3d..000000000
--- a/rules/host-cython.in
+++ /dev/null
@@ -1,11 +0,0 @@
-## SECTION=hosttools_noprompt
-
-config HOST_CYTHON
- tristate
- default y if ALLYES
- select HOST_PYTHON
- help
- Cython is an optimising static compiler for both the Python
- programming language and the extended Cython programming language
- (based on Pyrex). It makes writing C extensions for Python as easy
- as Python itself.
diff --git a/rules/host-cython.make b/rules/host-cython.make
deleted file mode 100644
index 6226b849e..000000000
--- a/rules/host-cython.make
+++ /dev/null
@@ -1,32 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2014 by Alexander Aring <aar@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-HOST_PACKAGES-$(PTXCONF_HOST_CYTHON) += host-cython
-
-#
-# Paths and names
-#
-HOST_CYTHON_VERSION := 0.20.1
-HOST_CYTHON_MD5 := 52431696c64e618036537c4d9aa79d99
-HOST_CYTHON := Cython-$(HOST_CYTHON_VERSION)
-HOST_CYTHON_SUFFIX := tar.gz
-HOST_CYTHON_URL := https://pypi.python.org/packages/81/87/9ceffc2c15a06fcdd82e621b54598da684271ed0c6722b316e7a30e4c18e/$(HOST_CYTHON).$(HOST_CYTHON_SUFFIX)
-HOST_CYTHON_SOURCE := $(SRCDIR)/$(HOST_CYTHON).$(HOST_CYTHON_SUFFIX)
-HOST_CYTHON_DIR := $(HOST_BUILDDIR)/$(HOST_CYTHON)
-HOST_CYTHON_LICENSE := Apache-2.0
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-HOST_CYTHON_CONF_TOOL := python
-
-# vim: syntax=make
diff --git a/rules/host-cython3.make b/rules/host-cython3.make
index cbebfeab3..d8a5dbb21 100644
--- a/rules/host-cython3.make
+++ b/rules/host-cython3.make
@@ -14,11 +14,11 @@ HOST_PACKAGES-$(PTXCONF_HOST_CYTHON3) += host-cython3
#
# Paths and names
#
-HOST_CYTHON3_VERSION := 0.29.14
-HOST_CYTHON3_MD5 := 6e2f139e30bb08d68366f9370d87964c
+HOST_CYTHON3_VERSION := 0.29.35
+HOST_CYTHON3_MD5 := 138dba31e20e178b431a2e403154f906
HOST_CYTHON3 := Cython-$(HOST_CYTHON3_VERSION)
HOST_CYTHON3_SUFFIX := tar.gz
-HOST_CYTHON3_URL := https://pypi.python.org/packages/source/c/cython/$(HOST_CYTHON3).$(HOST_CYTHON3_SUFFIX)
+HOST_CYTHON3_URL := $(call ptx/mirror-pypi, Cython, $(HOST_CYTHON3).$(HOST_CYTHON3_SUFFIX))
HOST_CYTHON3_SOURCE := $(SRCDIR)/$(HOST_CYTHON3).$(HOST_CYTHON3_SUFFIX)
HOST_CYTHON3_DIR := $(HOST_BUILDDIR)/$(HOST_CYTHON3)
HOST_CYTHON3_LICENSE := Apache-2.0
diff --git a/rules/host-dbus-glib.make b/rules/host-dbus-glib.make
index 9f2f5cfbd..fa343dec6 100644
--- a/rules/host-dbus-glib.make
+++ b/rules/host-dbus-glib.make
@@ -41,9 +41,9 @@ HOST_DBUS_GLIB_CONF_OPT := \
$(STATEDIR)/host-dbus-glib.install:
@$(call targetinfo)
- @$(call install, HOST_DBUS_GLIB)
+ @$(call world/install, HOST_DBUS_GLIB)
install -D -m 644 "$(HOST_DBUS_GLIB_DIR)/dbus-bus-introspect.xml" \
- "$(HOST_DBUS_GLIB_PKGDIR)/share/dbus-glib/dbus-bus-introspect.xml"
+ "$(HOST_DBUS_GLIB_PKGDIR)/usr/share/dbus-glib/dbus-bus-introspect.xml"
@$(call touch)
# vim: syntax=make
diff --git a/rules/host-dbus.in b/rules/host-dbus.in
index 6206bf84f..89f420412 100644
--- a/rules/host-dbus.in
+++ b/rules/host-dbus.in
@@ -3,6 +3,7 @@
config HOST_DBUS
tristate
select HOST_EXPAT
+ select HOST_MESON
default y if ALLYES
help
D-Bus is a message bus system, a simple way
diff --git a/rules/host-dbus.make b/rules/host-dbus.make
index b94258d99..f0ff60283 100644
--- a/rules/host-dbus.make
+++ b/rules/host-dbus.make
@@ -21,44 +21,40 @@ HOST_DBUS_DIR = $(HOST_BUILDDIR)/$(DBUS)
# ----------------------------------------------------------------------------
#
-# autoconf
+# meson
#
-HOST_DBUS_CONF_TOOL := autoconf
+HOST_DBUS_CONF_TOOL := meson
HOST_DBUS_CONF_OPT := \
$(HOST_AUTOCONF) \
- --enable-silent-rules \
- --disable-developer \
- --disable-debug \
- --enable-largefile \
- --disable-static \
- --disable-ansi \
- --disable-verbose-mode \
- --disable-asserts \
- --disable-checks \
- --disable-xml-docs \
- --disable-doxygen-docs \
- --disable-ducktype-docs \
- --disable-selinux \
- --disable-apparmor \
- --disable-libaudit \
- --disable-inotify \
- --disable-kqueue \
- --disable-console-owner-file \
- --disable-launchd \
- --disable-systemd \
- --disable-embedded-tests \
- --disable-modular-tests \
- --disable-tests \
- --disable-installed-tests \
- --disable-code-coverage \
- --disable-epoll \
- --disable-x11-autolaunch \
- --disable-compile-warnings \
- --disable-Werror \
- --disable-relocation \
- --disable-stats \
- --disable-user-session \
- --without-valgrind \
- --without-x
+ -Dapparmor=disabled \
+ -Dasserts=false \
+ -Dchecks=false \
+ -Dcontainers=false \
+ -Ddbus_user=messagebus \
+ -Ddoxygen_docs=disabled \
+ -Dducktype_docs=disabled \
+ -Dembedded_tests=false \
+ -Depoll=disabled \
+ -Dinotify=disabled \
+ -Dinstalled_tests=false \
+ -Dkqueue=disabled \
+ -Dlaunchd=disabled \
+ -Dlibaudit=disabled \
+ -Dmessage_bus=false \
+ -Dmodular_tests=disabled \
+ -Dqt_help=disabled \
+ -Drelocation=disabled \
+ -Dselinux=disabled \
+ -Dstats=false \
+ -Dsystemd=disabled \
+ -Dsystemd_system_unitdir=/usr/lib/systemd/system \
+ -Dsystemd_user_unitdir=/usr/lib/systemd/user \
+ -Dtools=false \
+ -Dtraditional_activation=false \
+ -Duser_session=false \
+ -Dvalgrind=disabled \
+ -Dverbose_mode=false \
+ -Dx11_autolaunch=disabled \
+ -Dxml_docs=disabled
# vim: syntax=make
diff --git a/rules/host-dfu-util.in b/rules/host-dfu-util.in
index 9535bb67a..1f7188d4e 100644
--- a/rules/host-dfu-util.in
+++ b/rules/host-dfu-util.in
@@ -12,4 +12,4 @@ config HOST_DFU_UTIL
devices like micro-controller boards up to mobile phones. Using
dfu-util you can download firmware to your DFU-enabled device or
upload firmware from it. dfu-util has been tested with the Openmoko
- Neo1973 and Freerunner and many other devices.
+ Neo1973 and Freerunner and many other devices.
diff --git a/rules/host-dosfstools.make b/rules/host-dosfstools.make
index 2b99ece01..9727563d9 100644
--- a/rules/host-dosfstools.make
+++ b/rules/host-dosfstools.make
@@ -19,6 +19,8 @@ HOST_DOSFSTOOLS_CONF_TOOL := autoconf
HOST_DOSFSTOOLS_CONF_OPT := \
$(HOST_AUTOCONF) \
--enable-compat-symlinks \
- --without-udev
+ --disable-atari-check \
+ --disable-rpath \
+ --without-iconv
# vim: syntax=make
diff --git a/rules/host-dtc.in b/rules/host-dtc.in
new file mode 100644
index 000000000..10c70643b
--- /dev/null
+++ b/rules/host-dtc.in
@@ -0,0 +1,6 @@
+## SECTION=hosttools_noprompt
+
+config HOST_DTC
+ tristate
+ select HOST_FLEX
+ default y if ALLYES
diff --git a/rules/host-dtc.make b/rules/host-dtc.make
index 958eada01..130dc79a9 100644
--- a/rules/host-dtc.make
+++ b/rules/host-dtc.make
@@ -2,6 +2,7 @@
#
# Copyright (C) 2007 by Sascha Hauer
# (C) 2010 by Michael Olbrich <m.olbrich@pengutronix.de>
+# (C) 2024 by Christian Melki <christian.melki@t2data.com>
#
# For further information about the PTXdist project and license conditions
# see the README file.
@@ -12,32 +13,23 @@
#
HOST_PACKAGES-$(PTXCONF_HOST_DTC) += host-dtc
-#
-# Paths and names
-#
-HOST_DTC_VERSION := $(call ptx/config-version, PTXCONF_HOST_DTC)
-HOST_DTC_MD5 := $(call ptx/config-md5, PTXCONF_HOST_DTC)
-HOST_DTC := dtc-v$(HOST_DTC_VERSION)
-HOST_DTC_SUFFIX := tar.gz
-HOST_DTC_URL := https://git.kernel.org/pub/scm/utils/dtc/dtc.git/snapshot/$(HOST_DTC).$(HOST_DTC_SUFFIX)
-HOST_DTC_SOURCE := $(SRCDIR)/$(HOST_DTC).$(HOST_DTC_SUFFIX)
-HOST_DTC_DIR := $(HOST_BUILDDIR)/$(HOST_DTC)
-
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
HOST_DTC_CONF_TOOL := NO
+
+HOST_DTC_MAKE_ENV := \
+ $(HOST_ENV)
+
HOST_DTC_MAKE_OPT := \
- PREFIX= \
+ PREFIX=/usr \
NO_PYTHON=1 \
NO_VALGRIND=1 \
- NO_YAML=1 \
- $(HOST_ENV_CC)
+ NO_YAML=1
HOST_DTC_INSTALL_OPT := \
$(HOST_DTC_MAKE_OPT) \
- install-bin \
- install-lib
+ install
# vim: syntax=make
diff --git a/rules/host-dummy-install-info.make b/rules/host-dummy-install-info.make
index 8f7cf8170..564960408 100644
--- a/rules/host-dummy-install-info.make
+++ b/rules/host-dummy-install-info.make
@@ -19,7 +19,7 @@ HOST_DUMMY_INSTALL_INFO_LICENSE := ignore
$(STATEDIR)/host-dummy-install-info.install:
@$(call targetinfo)
- @ln -sfv /bin/true $(PTXDIST_SYSROOT_HOST)/bin/install-info
+ @ln -sfv /bin/true $(PTXDIST_SYSROOT_HOST)/usr/bin/install-info
@$(call touch)
# vim: syntax=make
diff --git a/rules/host-e2fsprogs.in b/rules/host-e2fsprogs.in
index 122b0ba31..e203b2d7a 100644
--- a/rules/host-e2fsprogs.in
+++ b/rules/host-e2fsprogs.in
@@ -2,7 +2,7 @@
config HOST_E2FSPROGS
tristate
- select HOST_UTIL_LINUX_NG
+ select HOST_UTIL_LINUX
default y if ALLYES
help
Useful hosttools for management of ext2 and ext3 filesystems
diff --git a/rules/host-e2fsprogs.make b/rules/host-e2fsprogs.make
index fad1271dd..19db2f8c9 100644
--- a/rules/host-e2fsprogs.make
+++ b/rules/host-e2fsprogs.make
@@ -34,8 +34,10 @@ HOST_E2FSPROGS_CONF_OPT := \
--disable-jbd-debug \
--disable-blkid-debug \
--disable-testio-debug \
+ --disable-developer-features \
--disable-libuuid \
--disable-libblkid \
+ --disable-subset \
--disable-backtrace \
--disable-debugfs \
--disable-imager \
@@ -50,10 +52,14 @@ HOST_E2FSPROGS_CONF_OPT := \
--disable-bmap-stats \
--disable-bmap-stats-ops \
--disable-nls \
- --enable-threads=posix \
--disable-rpath \
--disable-fuse2fs \
- --without-included-gettext
+ --disable-lto \
+ --disable-ubsan \
+ --disable-addrsan \
+ --disable-threadsan \
+ --disable-fuzzing \
+ --with-pthread
# ----------------------------------------------------------------------------
# Install
@@ -64,24 +70,24 @@ HOST_E2FSPROGS_INSTALL_OPT := install install-libs
$(STATEDIR)/host-e2fsprogs.install:
@$(call targetinfo)
@$(call world/install, HOST_E2FSPROGS)
- @mkdir -vp $(HOST_E2FSPROGS_PKGDIR)/sbin/real
- @mv -v $(HOST_E2FSPROGS_PKGDIR)/sbin/{mke2fs,mkfs.*} \
- $(HOST_E2FSPROGS_PKGDIR)/sbin/real/
- @echo '#!/bin/sh' > $(HOST_E2FSPROGS_PKGDIR)/sbin/mke2fs
- @echo 'export MKE2FS_CONFIG="$$(dirname "$${0}")/../etc/mke2fs.conf"' >> $(HOST_E2FSPROGS_PKGDIR)/sbin/mke2fs
- @echo 'exec "$$(dirname "$${0}")/real/$$(basename "$${0}")" "$${@}"' >> $(HOST_E2FSPROGS_PKGDIR)/sbin/mke2fs
- @chmod +x $(HOST_E2FSPROGS_PKGDIR)/sbin/mke2fs
+ @mkdir -vp $(HOST_E2FSPROGS_PKGDIR)/usr/sbin/real
+ @mv -v $(HOST_E2FSPROGS_PKGDIR)/usr/sbin/{mke2fs,mkfs.*} \
+ $(HOST_E2FSPROGS_PKGDIR)/usr/sbin/real/
+ @echo '#!/bin/sh' > $(HOST_E2FSPROGS_PKGDIR)/usr/sbin/mke2fs
+ @echo 'export MKE2FS_CONFIG="$$(dirname "$${0}")/../etc/mke2fs.conf"' >> $(HOST_E2FSPROGS_PKGDIR)/usr/sbin/mke2fs
+ @echo 'exec "$$(dirname "$${0}")/real/$$(basename "$${0}")" "$${@}"' >> $(HOST_E2FSPROGS_PKGDIR)/usr/sbin/mke2fs
+ @chmod +x $(HOST_E2FSPROGS_PKGDIR)/usr/sbin/mke2fs
@$(foreach mkfs,mkfs.ext2 mkfs.ext3 mkfs.ext4, \
- ln -s mke2fs $(HOST_E2FSPROGS_PKGDIR)/sbin/$(mkfs)$(ptx/nl))
+ ln -s mke2fs $(HOST_E2FSPROGS_PKGDIR)/usr/sbin/$(mkfs)$(ptx/nl))
@$(call touch)
$(STATEDIR)/host-e2fsprogs.install.post:
@$(call targetinfo)
@$(call world/install.post, HOST_E2FSPROGS)
- @sed -i -e 's,/share,$(PTXDIST_SYSROOT_HOST)/share,' \
- $(PTXDIST_SYSROOT_HOST)/bin/compile_et
- @sed -i -e 's,/share,$(PTXDIST_SYSROOT_HOST)/share,' \
- $(PTXDIST_SYSROOT_HOST)/bin/mk_cmds
+ @sed -i -e 's,/usr/share,$(PTXDIST_SYSROOT_HOST)/usr/share,' \
+ $(PTXDIST_SYSROOT_HOST)/usr/bin/compile_et
+ @sed -i -e 's,/usr/share,$(PTXDIST_SYSROOT_HOST)/usr/share,' \
+ $(PTXDIST_SYSROOT_HOST)/usr/bin/mk_cmds
@$(call touch)
# vim: syntax=make
diff --git a/rules/host-eggdbus.make b/rules/host-eggdbus.make
index 447041777..7764ec7dc 100644
--- a/rules/host-eggdbus.make
+++ b/rules/host-eggdbus.make
@@ -16,7 +16,8 @@ HOST_PACKAGES-$(PTXCONF_HOST_EGGDBUS) += host-eggdbus
# Prepare
# ----------------------------------------------------------------------------
-HOST_EGGDBUS_AUTOCONF := \
+HOST_EGGDBUS_CONF_TOOL := autoconf
+HOST_EGGDBUS_CONF_OPT := \
$(HOST_AUTOCONF) \
--disable-static \
--disable-man-pages \
diff --git a/rules/host-extract-cert.make b/rules/host-extract-cert.make
index df7599011..3511aef3b 100644
--- a/rules/host-extract-cert.make
+++ b/rules/host-extract-cert.make
@@ -14,13 +14,15 @@ HOST_PACKAGES-$(PTXCONF_HOST_EXTRACT_CERT) += host-extract-cert
#
# Paths and names
#
-HOST_EXTRACT_CERT_VERSION := 0.2
-HOST_EXTRACT_CERT_MD5 := b2ec817a3d8bf9ec126b381642149d60
+HOST_EXTRACT_CERT_VERSION := 0.3
+HOST_EXTRACT_CERT_MD5 := a0fb2a20ef7528edcedd1ebcb1578c92
HOST_EXTRACT_CERT := extract-cert-$(HOST_EXTRACT_CERT_VERSION)
HOST_EXTRACT_CERT_SUFFIX := tar.gz
HOST_EXTRACT_CERT_URL := https://git.pengutronix.de/cgit/extract-cert/snapshot/$(HOST_EXTRACT_CERT).$(HOST_EXTRACT_CERT_SUFFIX)
HOST_EXTRACT_CERT_SOURCE := $(SRCDIR)/$(HOST_EXTRACT_CERT).$(HOST_EXTRACT_CERT_SUFFIX)
HOST_EXTRACT_CERT_DIR := $(HOST_BUILDDIR)/$(HOST_EXTRACT_CERT)
+HOST_EXTRACT_CERT_LICENSE := LGPL-2.1-only
+HOST_EXTRACT_CERT_LICENSE_FILES := file://COPYING;md5=4fbd65380cdd255951079008b364516c
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/host-fakeroot.make b/rules/host-fakeroot.make
index 3a09e4ce8..272b58b28 100644
--- a/rules/host-fakeroot.make
+++ b/rules/host-fakeroot.make
@@ -15,12 +15,12 @@ HOST_PACKAGES-$(PTXCONF_HOST_FAKEROOT) += host-fakeroot
#
# Paths and names
#
-HOST_FAKEROOT_VERSION := 1.25.3
-HOST_FAKEROOT_MD5 := f6104ef6960c962377ef062bf222a1d2
+HOST_FAKEROOT_VERSION := 1.31
+HOST_FAKEROOT_MD5 := e55630a66f305950044970f033127d70
HOST_FAKEROOT_SUFFIX := tar.gz
HOST_FAKEROOT := fakeroot-$(HOST_FAKEROOT_VERSION)
HOST_FAKEROOT_TARBALL := fakeroot_$(HOST_FAKEROOT_VERSION).orig.$(HOST_FAKEROOT_SUFFIX)
-HOST_FAKEROOT_URL := https://snapshot.debian.org/archive/debian/20210123T025406Z/pool/main/f/fakeroot/$(HOST_FAKEROOT_TARBALL)
+HOST_FAKEROOT_URL := https://snapshot.debian.org/archive/debian/20230310T025803Z/pool/main/f/fakeroot/$(HOST_FAKEROOT_TARBALL)
HOST_FAKEROOT_SOURCE := $(SRCDIR)/$(HOST_FAKEROOT_TARBALL)
HOST_FAKEROOT_DIR := $(HOST_BUILDDIR)/$(HOST_FAKEROOT)
HOST_FAKEROOT_LICENSE := GPL-3.0-or-later
@@ -36,7 +36,7 @@ HOST_FAKEROOT_CONF_ENV := \
HOST_FAKEROOT_CONF_TOOL := autoconf
HOST_FAKEROOT_CONF_OPT := \
$(HOST_AUTOCONF) \
- --libdir=/lib/fakeroot
+ --libdir=/usr/lib/fakeroot
HOST_FAKEROOT_INSTALL_OPT := \
SUBDIRS=scripts \
diff --git a/rules/host-figlet.make b/rules/host-figlet.make
index f6d5b7c52..7db68926b 100644
--- a/rules/host-figlet.make
+++ b/rules/host-figlet.make
@@ -15,7 +15,7 @@ HOST_PACKAGES-$(PTXCONF_HOST_FIGLET) += host-figlet
# Compile
# ----------------------------------------------------------------------------
-HOST_FIGLET_MAKE_OPT := prefix=/
-HOST_FIGLET_INSTALL_OPT := prefix=/ install
+HOST_FIGLET_MAKE_OPT := prefix=/usr
+HOST_FIGLET_INSTALL_OPT := prefix=/usr install
# vim: syntax=make
diff --git a/rules/host-file.in b/rules/host-file.in
index 77e3757cd..b593c23f1 100644
--- a/rules/host-file.in
+++ b/rules/host-file.in
@@ -10,5 +10,5 @@ config HOST_FILE
charge - don't rely on filename extensions to tell you the type of a
file, but look at the file's actual contents. This is, of course, more
reliable, but requires a bit of I/O.
-
+
http://www.darwinsys.com/file/
diff --git a/rules/host-file.make b/rules/host-file.make
index ef1416723..352a4a4c4 100644
--- a/rules/host-file.make
+++ b/rules/host-file.make
@@ -14,6 +14,6 @@ HOST_PACKAGES-$(PTXCONF_HOST_FILE) += host-file
HOST_FILE_CONF_TOOL := autoconf
HOST_FILE_CONF_OPT := \
$(HOST_AUTOCONF) \
- --bindir=/bin/file
+ --bindir=/usr/bin/file
# vim: syntax=make
diff --git a/rules/host-fontconfig.in b/rules/host-fontconfig.in
index 3fdea83e9..919292896 100644
--- a/rules/host-fontconfig.in
+++ b/rules/host-fontconfig.in
@@ -11,11 +11,11 @@ config HOST_FONTCONFIG
Fontconfig is a font configuration and
customization library, which does not depend on
the X Window System. It is designed to locate
- fonts within the system and select them according
+ fonts within the system and select them according
to requirements specified by applications.
Fontconfig is not a rasterization library, nor
does it impose a particular rasterization library
on the application. The X-specific library 'Xft'
uses fontconfig along with freetype to specify and
- rasterize fonts.
+ rasterize fonts.
diff --git a/rules/host-freetype.make b/rules/host-freetype.make
index d28362190..838cc8e84 100644
--- a/rules/host-freetype.make
+++ b/rules/host-freetype.make
@@ -28,13 +28,13 @@ HOST_FREETYPE_CONF_TOOL := autoconf
HOST_FREETYPE_CONF_OPT := \
$(HOST_AUTOCONF) \
--disable-static \
- --disable-biarch-config \
--enable-freetype-config \
--enable-mmap \
--without-zlib \
--without-bzip2 \
--without-png \
--without-harfbuzz \
+ --without-brotli \
--without-old-mac-fonts \
--without-fsspec \
--without-fsref \
diff --git a/rules/host-gdk-pixbuf.make b/rules/host-gdk-pixbuf.make
index 883321693..3fe332782 100644
--- a/rules/host-gdk-pixbuf.make
+++ b/rules/host-gdk-pixbuf.make
@@ -24,15 +24,15 @@ HOST_GDK_PIXBUF_CONF_OPT := \
-Dbuiltin_loaders=png \
-Ddocs=false \
-Dgio_sniffing=false \
- -Dgir=false \
+ -Dgtk_doc=false \
-Dinstalled_tests=false \
- -Djasper=false \
- -Djpeg=false \
+ -Dintrospection=disabled \
+ -Djpeg=disabled \
-Dman=false \
-Dnative_windows_loaders=false \
- -Dpng=true \
+ -Dpng=enabled \
-Drelocatable=false \
- -Dtiff=false \
- -Dx11=false
+ -Dtests=false \
+ -Dtiff=disabled
# vim: syntax=make
diff --git a/rules/host-generatorrunner.in b/rules/host-generatorrunner.in
deleted file mode 100644
index 065ae6eda..000000000
--- a/rules/host-generatorrunner.in
+++ /dev/null
@@ -1,12 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=hosttools_noprompt
-
-config HOST_GENERATORRUNNER
- tristate
- default y if ALLYES
- select HOST_APIEXTRACTOR
- select HOST_CMAKE
- help
- STAGING: remove in PTXdist 2022.01.0
- Must be removed with Qt4
diff --git a/rules/host-generatorrunner.make b/rules/host-generatorrunner.make
deleted file mode 100644
index 1e0cfef51..000000000
--- a/rules/host-generatorrunner.make
+++ /dev/null
@@ -1,51 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2011 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-HOST_PACKAGES-$(PTXCONF_HOST_GENERATORRUNNER) += host-generatorrunner
-
-#
-# Paths and names
-#
-HOST_GENERATORRUNNER_VERSION := 0.6.16
-HOST_GENERATORRUNNER_MD5 := c7011b8ee08e228779a769b7cfa90f5f
-HOST_GENERATORRUNNER := generatorrunner-$(HOST_GENERATORRUNNER_VERSION)
-HOST_GENERATORRUNNER_SUFFIX := tar.bz2
-HOST_GENERATORRUNNER_URL := https://distfiles.macports.org/generatorrunner/$(HOST_GENERATORRUNNER).$(HOST_GENERATORRUNNER_SUFFIX)
-HOST_GENERATORRUNNER_SOURCE := $(SRCDIR)/$(HOST_GENERATORRUNNER).$(HOST_GENERATORRUNNER_SUFFIX)
-HOST_GENERATORRUNNER_DIR := $(HOST_BUILDDIR)/$(HOST_GENERATORRUNNER)
-HOST_GENERATORRUNNER_LICENSE := unknown
-# The plugin dir is compiled into the generator
-HOST_GENERATORRUNNER_DEVPKG := NO
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# cmake
-#
-HOST_GENERATORRUNNER_CONF_TOOL := cmake
-HOST_GENERATORRUNNER_CONF_OPT := \
- $(HOST_CMAKE_OPT_SYSROOT) \
- -DBUILD_TESTS:BOOL=OFF \
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/host-generatorrunner.install.post:
- @$(call targetinfo)
- @$(call world/install.post, HOST_GENERATORRUNNER)
- @sed -i -e 's,\(GENERATORRUNNER_PLUGIN_DIR "\)$(PTXDIST_SYSROOT_HOST),\1,g' \
- '$(PTXDIST_SYSROOT_HOST)/lib/cmake/GeneratorRunner-$(HOST_GENERATORRUNNER_VERSION)/GeneratorRunnerConfig.cmake'
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/host-genext2fs.in b/rules/host-genext2fs.in
index 8c1001e97..4e0a09236 100644
--- a/rules/host-genext2fs.in
+++ b/rules/host-genext2fs.in
@@ -5,13 +5,13 @@ config HOST_GENEXT2FS
default y if ALLYES
help
ext2 filesystem generator for embedded systems
- `genext2fs' is meant to generate an ext2 filesystem
- as a normal (non-root) user. It doesn't require you
+ `genext2fs' is meant to generate an ext2 filesystem
+ as a normal (non-root) user. It doesn't require you
to mount the image file to copy files on it. It
doesn't even require you to be the superuser to
make device nodes.
- Warning! 'genext2fs' has been designed for embedded
- systems. As such, it will generate a filesystem for
+ Warning! 'genext2fs' has been designed for embedded
+ systems. As such, it will generate a filesystem for
single-user usage: all files/directories/etc.
will belong to UID/GID 0.
diff --git a/rules/host-genext2fs.make b/rules/host-genext2fs.make
index 5c1a4983e..b13fb5ef9 100644
--- a/rules/host-genext2fs.make
+++ b/rules/host-genext2fs.make
@@ -31,11 +31,10 @@ HOST_GENEXT2FS_LICENSE_FILES := \
# Prepare
# ----------------------------------------------------------------------------
-HOST_GENEXT2FS_ENV := $(HOST_ENV)
-
#
# autoconf
#
-HOST_GENEXT2FS_AUTOCONF := $(HOST_AUTOCONF)
+HOST_GENEXT2FS_CONF_TOOL := autoconf
+HOST_GENEXT2FS_CONF_OPT := $(HOST_AUTOCONF)
# vim: syntax=make
diff --git a/rules/host-genimage.make b/rules/host-genimage.make
index 6e4468d24..3b6b9594f 100644
--- a/rules/host-genimage.make
+++ b/rules/host-genimage.make
@@ -14,8 +14,8 @@ HOST_PACKAGES-$(PTXCONF_HOST_GENIMAGE) += host-genimage
#
# Paths and names
#
-HOST_GENIMAGE_VERSION := 14
-HOST_GENIMAGE_MD5 := 266b5692aba2e2b98db2ec9de7c09a59
+HOST_GENIMAGE_VERSION := 17
+HOST_GENIMAGE_MD5 := 3201fb661bfad96c363eed4d49bd718e
HOST_GENIMAGE := genimage-$(HOST_GENIMAGE_VERSION)
HOST_GENIMAGE_SUFFIX := tar.xz
HOST_GENIMAGE_URL := http://www.pengutronix.de/software/genimage/download/$(HOST_GENIMAGE).$(HOST_GENIMAGE_SUFFIX)
diff --git a/rules/host-gettext.make b/rules/host-gettext.make
index 71c9d2ce3..5159c263c 100644
--- a/rules/host-gettext.make
+++ b/rules/host-gettext.make
@@ -19,7 +19,8 @@ HOST_PACKAGES-$(PTXCONF_HOST_GETTEXT) += host-gettext
#
# autoconf
#
-HOST_GETTEXT_AUTOCONF := \
+HOST_GETTEXT_CONF_TOOL := autoconf
+HOST_GETTEXT_CONF_OPT := \
$(HOST_AUTOCONF) \
--disable-java \
--disable-csharp \
diff --git a/rules/host-glib.in b/rules/host-glib.in
index b87c33937..08f5cae2c 100644
--- a/rules/host-glib.in
+++ b/rules/host-glib.in
@@ -4,6 +4,6 @@ config HOST_GLIB
tristate
default y if ALLYES
select HOST_LIBFFI
- select HOST_LIBPCRE
select HOST_MESON
+ select HOST_PCRE2
select HOST_ZLIB
diff --git a/rules/host-glib.make b/rules/host-glib.make
index 49220bbc9..3d6cd8ffb 100644
--- a/rules/host-glib.make
+++ b/rules/host-glib.make
@@ -27,28 +27,35 @@ HOST_GLIB_CONF_TOOL := meson
HOST_GLIB_CONF_OPT := \
$(HOST_MESON_OPT) \
-Dbsymbolic_functions=true \
+ -Ddocumentation=false \
-Ddtrace=false \
- -Dfam=false \
-Dforce_posix_threads=true \
+ -Dglib_assert=true \
+ -Dglib_checks=true \
+ -Dglib_debug=enabled \
-Dgtk_doc=false \
- -Diconv=libc \
-Dinstalled_tests=false \
- -Dinternal_pcre=false \
+ -Dintrospection=disabled \
+ -Dlibelf=disabled \
-Dlibmount=disabled \
- -Dman=false \
+ -Dman-pages=disabled \
+ -Dmultiarch=false \
-Dnls=disabled \
+ -Doss_fuzz=disabled \
-Dselinux=disabled \
+ -Dsysprof=disabled \
-Dsystemtap=false \
+ -Dtests=false \
-Dxattr=false
$(STATEDIR)/host-glib.install.post:
@$(call targetinfo)
- @mkdir -p $(HOST_GLIB_PKGDIR)/share/glib-2.0/gettext
+ @mkdir -p $(HOST_GLIB_PKGDIR)/usr/share/glib-2.0/gettext
@$(call world/install.post, HOST_GLIB)
- @sed -i "s:'/share':'$(PTXDIST_SYSROOT_HOST)/share':" "$(PTXDIST_SYSROOT_HOST)/bin/gdbus-codegen"
- @sed -i -e 's:^prefix=.*:prefix=$(PTXDIST_SYSROOT_HOST):' \
- -e 's:^\(datarootdir\|datadir\)=.*:\1=$(PTXDIST_SYSROOT_HOST)/share:' \
- $(PTXDIST_SYSROOT_HOST)/bin/glib-gettextize
+ @sed -i "s:'/usr/share':'$(PTXDIST_SYSROOT_HOST)/usr/share':" "$(PTXDIST_SYSROOT_HOST)/usr/bin/gdbus-codegen"
+ @sed -i -e 's:^prefix=.*:prefix=$(PTXDIST_SYSROOT_HOST)/usr:' \
+ -e 's:^\(datarootdir\|datadir\)=.*:\1=$(PTXDIST_SYSROOT_HOST)/usr/share:' \
+ $(PTXDIST_SYSROOT_HOST)/usr/bin/glib-gettextize
@$(call touch)
# vim: syntax=make
diff --git a/rules/host-glslang.in b/rules/host-glslang.in
index 8ef31f529..c40c53537 100644
--- a/rules/host-glslang.in
+++ b/rules/host-glslang.in
@@ -5,3 +5,4 @@ config HOST_GLSLANG
default y if ALLYES
select HOST_CMAKE
select HOST_SYSTEM_PYTHON3
+ select HOST_SHADERC
diff --git a/rules/host-glslang.make b/rules/host-glslang.make
index 2aaf3909a..1a63f76ce 100644
--- a/rules/host-glslang.make
+++ b/rules/host-glslang.make
@@ -19,17 +19,18 @@ HOST_GLSLANG_CONF_TOOL := cmake
HOST_GLSLANG_CONF_OPT := \
$(HOST_CMAKE_OPT) \
-DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_LIBDIR=/usr/lib \
- -DBUILD_SHARED_LIBS=OFF \
+ -DALLOW_EXTERNAL_SPIRV_TOOLS=ON \
-DBUILD_EXTERNAL=OFF \
- -DSKIP_GLSLANG_INSTALL=OFF \
- -DENABLE_SPVREMAPPER=ON \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DBUILD_WERROR=OFF \
+ -DENABLE_EXCEPTIONS=OFF \
-DENABLE_GLSLANG_BINARIES=ON \
-DENABLE_GLSLANG_JS=OFF \
-DENABLE_HLSL=OFF \
- -DENABLE_RTTI=OFF \
-DENABLE_OPT=ON \
-DENABLE_PCH=ON \
- -DENABLE_CTEST=OFF
+ -DENABLE_RTTI=OFF \
+ -DENABLE_SPVREMAPPER=ON \
+ -DGLSLANG_TESTS=OFF
# vim: syntax=make
diff --git a/rules/host-gnutls.in b/rules/host-gnutls.in
new file mode 100644
index 000000000..9178fa7ef
--- /dev/null
+++ b/rules/host-gnutls.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_GNUTLS
+ tristate
+ default y if ALLYES
+ select HOST_LIBTASN1
+ select HOST_NETTLE
diff --git a/rules/host-gnutls.make b/rules/host-gnutls.make
new file mode 100644
index 000000000..ddba332c8
--- /dev/null
+++ b/rules/host-gnutls.make
@@ -0,0 +1,95 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Markus Heidelberg <m.heidelberg@cab.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_GNUTLS) += host-gnutls
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+HOST_GNUTLS_CONF_TOOL := autoconf
+HOST_GNUTLS_CONF_OPT := \
+ $(HOST_AUTOCONF) \
+ $(GLOBAL_LARGE_FILE_OPTION) \
+ --enable-threads=posix \
+ --disable-code-coverage \
+ --disable-bash-tests \
+ --disable-doc \
+ --disable-manpages \
+ --disable-tools \
+ --enable-cxx \
+ --disable-dyn-ncrypt \
+ --enable-hardware-acceleration \
+ --enable-tls13-interop \
+ --enable-padlock \
+ --enable-strict-der-time \
+ --enable-sha1-support \
+ --disable-ssl3-support \
+ --enable-ssl2-support \
+ --enable-dtls-srtp-support \
+ --enable-alpn-support \
+ --enable-heartbeat-support \
+ --enable-srp-authentication \
+ --enable-psk-authentication \
+ --enable-anon-authentication \
+ --enable-dhe \
+ --enable-ecdhe \
+ --enable-gost \
+ --disable-cryptodev \
+ --disable-afalg \
+ --disable-ktls \
+ --enable-ocsp \
+ --disable-openssl-compatibility \
+ --disable-tests \
+ --disable-fuzzer-target \
+ --disable-gtk-doc \
+ --disable-gtk-doc-html \
+ --disable-gtk-doc-pdf \
+ --disable-nls \
+ --disable-rpath \
+ --disable-seccomp-tests \
+ --enable-cross-guesses=conservative \
+ --disable-valgrind-tests \
+ --disable-full-test-suite \
+ --disable-oldgnutls-interop \
+ --disable-gcc-warnings \
+ --disable-static \
+ --enable-shared \
+ --disable-fips140-mode \
+ --disable-strict-x509 \
+ --enable-non-suiteb-curves \
+ --disable-libdane \
+ --disable-guile \
+ --without-gcov \
+ --with-nettle-mini \
+ --without-included-libtasn1 \
+ --with-included-unistring \
+ --without-fips140-key \
+ --without-fips140-module-name \
+ --without-fips140-module-version \
+ --with-pkcs12-iter-count=600000 \
+ --without-idn \
+ --without-unbound-root-key-file \
+ --without-system-priority-file \
+ --without-default-priority-string \
+ --without-p11-kit \
+ --without-tpm2 \
+ --without-tpm \
+ --without-trousers-lib \
+ --without-zlib \
+ --without-brotli \
+ --without-zstd \
+ --with-default-trust-store-file=/etc/ssl/certs/ca-certificates.crt
+
+# vim: syntax=make
diff --git a/rules/host-gobject-introspection.in b/rules/host-gobject-introspection.in
index 594dfee64..2531aa9f5 100644
--- a/rules/host-gobject-introspection.in
+++ b/rules/host-gobject-introspection.in
@@ -3,9 +3,7 @@
config HOST_GOBJECT_INTROSPECTION
tristate
default y if ALLYES
- select HOST_MESON
+ select HOST_MESON
select HOST_SYSTEM_PYTHON3
select HOST_SYSTEM_PYTHON3_DEV
select HOST_GLIB
- select HOST_QEMU
- select HOST_QEMU_USR
diff --git a/rules/host-gobject-introspection.make b/rules/host-gobject-introspection.make
index d14b9ab34..553cad6b0 100644
--- a/rules/host-gobject-introspection.make
+++ b/rules/host-gobject-introspection.make
@@ -27,50 +27,4 @@ HOST_GOBJECT_INTROSPECTION_CONF_OPT := \
-Dgtk_doc=false \
-Dpython=$(SYSTEMPYTHON3)
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/host-gobject-introspection.install.post:
- @$(call targetinfo)
- @$(call world/install.post, HOST_GOBJECT_INTROSPECTION)
- @echo '#!/bin/sh' > $(PTXDIST_SYSROOT_CROSS)/bin/g-ir-scanner
- @echo 'export GI_SCANNER_DISABLE_CACHE=1' >> $(PTXDIST_SYSROOT_CROSS)/bin/g-ir-scanner
- @echo 'export pkg_ldflags="$$(find -H $${pkg_dir} -name .libs -printf "-Wl,-rpath,%p ")$${pkg_ldflags}"' \
- >> $(PTXDIST_SYSROOT_CROSS)/bin/g-ir-scanner
- @echo 'export CC=$(CROSS_CC)' >> $(PTXDIST_SYSROOT_CROSS)/bin/g-ir-scanner
- @echo 'exec "$(PTXDIST_SYSROOT_HOST)/bin/g-ir-scanner" \
- --use-binary-wrapper="$(PTXDIST_SYSROOT_CROSS)/bin/qemu-cross" \
- --use-ldd-wrapper="$(PTXDIST_SYSROOT_CROSS)/bin/qemu/ldd" \
- --add-include-path=${PTXDIST_SYSROOT_TARGET}/usr/share/gir-1.0 \
- "$${@}"' >> $(PTXDIST_SYSROOT_CROSS)/bin/g-ir-scanner
- @chmod +x $(PTXDIST_SYSROOT_CROSS)/bin/g-ir-scanner
-
- @echo '#!/bin/sh' > $(PTXDIST_SYSROOT_CROSS)/bin/g-ir-compiler
- @echo '$(PTXDIST_SYSROOT_CROSS)/bin/qemu-cross \
- $(SYSROOT)/usr/bin/g-ir-compiler --includedir \
- $(SYSROOT)/usr/share/gir-1.0 "$${@}"' >> $(PTXDIST_SYSROOT_CROSS)/bin/g-ir-compiler
- @chmod +x $(PTXDIST_SYSROOT_CROSS)/bin/g-ir-compiler
-
- @sed -i 's;"/share";"$(PTXDIST_SYSROOT_HOST)/share";' \
- "$(PTXDIST_SYSROOT_HOST)/bin/g-ir-scanner" \
- "$(PTXDIST_SYSROOT_HOST)/bin/g-ir-annotation-tool"
-
- @sed -i "s;'/lib';'$(PTXDIST_SYSROOT_HOST)/lib';" \
- "$(PTXDIST_SYSROOT_HOST)/bin/g-ir-scanner" \
- "$(PTXDIST_SYSROOT_HOST)/bin/g-ir-annotation-tool"
-
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Clean
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/host-gobject-introspection.clean:
- @$(call targetinfo)
- @$(call clean_pkg, HOST_GOBJECT_INTROSPECTION)
- @rm \
- $(PTXDIST_SYSROOT_CROSS)/bin/g-ir-scanner \
- $(PTXDIST_SYSROOT_CROSS)/bin/g-ir-compiler
-
# vim: syntax=make
diff --git a/rules/host-gperf.make b/rules/host-gperf.make
index 8610b231a..bcd490766 100644
--- a/rules/host-gperf.make
+++ b/rules/host-gperf.make
@@ -27,11 +27,9 @@ HOST_GPERF_LICENSE := GPL-3.0-only
# Prepare
# ----------------------------------------------------------------------------
-HOST_GPERF_ENV := $(HOST_ENV)
-
#
# autoconf
#
-HOST_GPERF_AUTOCONF := $(HOST_AUTOCONF)
+HOST_GPERF_CONF_TOOL := autoconf
# vim: syntax=make
diff --git a/rules/host-gpgme.make b/rules/host-gpgme.make
index 13d5be6d3..a98b6a50d 100644
--- a/rules/host-gpgme.make
+++ b/rules/host-gpgme.make
@@ -17,7 +17,7 @@ HOST_PACKAGES-$(PTXCONF_HOST_GPGME) += host-gpgme
HOST_GPGME_CONF_ENV := \
$(HOST_ENV) \
- LDFLAGS="-L$(PTXDIST_SYSROOT_HOST)/lib"
+ LDFLAGS="-L$(PTXDIST_SYSROOT_HOST)/usr/lib"
#
# autoconf
#
diff --git a/rules/host-graphite2.in b/rules/host-graphite2.in
new file mode 100644
index 000000000..322a3395c
--- /dev/null
+++ b/rules/host-graphite2.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_GRAPHITE2
+ tristate
+ default y if ALLYES
+ select HOST_CMAKE
+
diff --git a/rules/host-ustr.make b/rules/host-graphite2.make
index 11f55e06e..5ae80631f 100644
--- a/rules/host-ustr.make
+++ b/rules/host-graphite2.make
@@ -1,6 +1,6 @@
# -*-makefile-*-
#
-# Copyright (C) 2013 by Marc Kleine-Budde <mkl@pengutronix.de>
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
#
# For further information about the PTXdist project and license conditions
# see the README file.
@@ -9,20 +9,18 @@
#
# We provide this package
#
-HOST_PACKAGES-$(PTXCONF_HOST_USTR) += host-ustr
+HOST_PACKAGES-$(PTXCONF_HOST_GRAPHITE2) += host-graphite2
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-HOST_USTR_CONF_TOOL := NO
-HOST_USTR_MAKE_OPT := \
- all-shared \
- prefix=
-HOST_USTR_INSTALL_OPT := \
- $(HOST_USTR_MAKE_OPT) \
- install
-
-HOST_USTR_CFLAGS := -fgnu89-inline
+#
+# cmake
+#
+HOST_GRAPHITE2_CONF_TOOL := cmake
+HOST_GRAPHITE2_CONF_OPT := \
+ $(HOST_CMAKE_OPT) \
+ -DCMAKE_DISABLE_FIND_PACKAGE_Freetype=ON
# vim: syntax=make
diff --git a/rules/host-grpc.in b/rules/host-grpc.in
deleted file mode 100644
index d81b7d7eb..000000000
--- a/rules/host-grpc.in
+++ /dev/null
@@ -1,10 +0,0 @@
-## SECTION=hosttools_noprompt
-
-config HOST_GRPC
- tristate
- default ALLYES
- select HOST_CMAKE
- select HOST_C_ARES
- select HOST_OPENSSL
- select HOST_PROTOBUF
- select HOST_ZLIB
diff --git a/rules/host-grpc.make b/rules/host-grpc.make
deleted file mode 100644
index 30412ca32..000000000
--- a/rules/host-grpc.make
+++ /dev/null
@@ -1,37 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2018 by Clemens Gruber <clemens.gruber@pqgruber.com>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-HOST_PACKAGES-$(PTXCONF_HOST_GRPC) += host-grpc
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# cmake
-#
-HOST_GRPC_CONF_TOOL := cmake
-
-HOST_GRPC_CONF_OPT := \
- $(HOST_CMAKE_OPT) \
- -DCMAKE_CXX_FLAGS='-Wno-error=ignored-qualifiers' \
- -DgRPC_BACKWARDS_COMPATIBILITY_MODE=OFF \
- -DgRPC_BENCHMARK_PROVIDER=none \
- -DgRPC_BUILD_CSHARP_EXT=OFF \
- -DgRPC_BUILD_TESTS=OFF \
- -D_gRPC_CARES_LIBRARIES=cares \
- -DgRPC_CARES_PROVIDER=none \
- -DgRPC_GFLAGS_PROVIDER=none \
- -DgRPC_PROTOBUF_PROVIDER=package \
- -DgRPC_SSL_PROVIDER=package \
- -DgRPC_ZLIB_PROVIDER=package
-
-# vim: syntax=make
diff --git a/rules/host-gtk-doc.make b/rules/host-gtk-doc.make
index 5245ee351..dcc03916e 100644
--- a/rules/host-gtk-doc.make
+++ b/rules/host-gtk-doc.make
@@ -50,9 +50,9 @@ $(STATEDIR)/host-gtk-doc.compile:
$(STATEDIR)/host-gtk-doc.install:
@$(call targetinfo)
@install -vD -m644 "$(HOST_GTK_DOC_DIR)/gtk-doc.m4" \
- "$(PTXDIST_SYSROOT_HOST)/share/aclocal/gtk-doc.m4"
+ "$(PTXDIST_SYSROOT_HOST)/usr/share/aclocal/gtk-doc.m4"
@install -vD -m644 "$(HOST_GTK_DOC_DIR)/gtk-doc.make" \
- "$(PTXDIST_SYSROOT_HOST)/share/gtk-doc/data/gtk-doc.make"
+ "$(PTXDIST_SYSROOT_HOST)/usr/share/gtk-doc/data/gtk-doc.make"
@$(call touch)
# ----------------------------------------------------------------------------
diff --git a/rules/host-harfbuzz.in b/rules/host-harfbuzz.in
new file mode 100644
index 000000000..388def30e
--- /dev/null
+++ b/rules/host-harfbuzz.in
@@ -0,0 +1,20 @@
+## SECTION=hosttools_noprompt
+
+config HOST_HARFBUZZ
+ tristate
+ select HOST_MESON
+ select HOST_FREETYPE
+ select HOST_GLIB
+ select HOST_GRAPHITE2 if HOST_HARFBUZZ_GRAPHITE
+ select HOST_ICU if HOST_HARFBUZZ_ICU
+ default y if ALLYES
+
+if HOST_HARFBUZZ
+
+config HOST_HARFBUZZ_GRAPHITE
+ bool
+
+config HOST_HARFBUZZ_ICU
+ bool
+
+endif
diff --git a/rules/host-harfbuzz.make b/rules/host-harfbuzz.make
new file mode 100644
index 000000000..f23089319
--- /dev/null
+++ b/rules/host-harfbuzz.make
@@ -0,0 +1,44 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2020 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_HARFBUZZ) += host-harfbuzz
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_HARFBUZZ_CONF_TOOL := meson
+HOST_HARFBUZZ_CONF_OPT := \
+ $(HOST_MESON_OPT) \
+ -Dbenchmark=disabled \
+ -Dcairo=disabled \
+ -Dchafa=disabled \
+ -Dcoretext=disabled \
+ -Ddirectwrite=disabled \
+ -Ddoc_tests=false \
+ -Ddocs=disabled \
+ -Dexperimental_api=false \
+ -Dfreetype=enabled \
+ -Dfuzzer_ldflags="" \
+ -Dgdi=disabled \
+ -Dglib=enabled \
+ -Dgobject=disabled \
+ -Dgraphite=disabled \
+ -Dgraphite2=$(call ptx/endis, PTXCONF_HOST_HARFBUZZ_GRAPHITE)d \
+ -Dicu=$(call ptx/endis, PTXCONF_HOST_HARFBUZZ_ICU)d \
+ -Dicu_builtin=false \
+ -Dintrospection=disabled \
+ -Dragel_subproject=false \
+ -Dtests=disabled \
+ -Dutilities=disabled \
+ -Dwasm=disabled
+
+# vim: syntax=make
diff --git a/rules/host-htmldoc.in b/rules/host-htmldoc.in
new file mode 100644
index 000000000..fb97aaef2
--- /dev/null
+++ b/rules/host-htmldoc.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_HTMLDOC
+ tristate
+ default y if ALLYES
+ select HOST_ZLIB
+ select HOST_LIBJPEG
diff --git a/rules/host-htmldoc.make b/rules/host-htmldoc.make
new file mode 100644
index 000000000..46488b956
--- /dev/null
+++ b/rules/host-htmldoc.make
@@ -0,0 +1,33 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Roland Hieber <rhi@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_HTMLDOC) += host-htmldoc
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+HOST_HTMLDOC_CONF_TOOL := autoconf
+HOST_HTMLDOC_CONF_OPT := \
+ $(HOST_AUTOCONF) \
+ --disable-debug \
+ $(GLOBAL_LARGE_FILE_OPTION) \
+ --disable-ssl \
+ --disable-gnutls \
+ --disable-cdsassl \
+ --disable-maintainer \
+ --disable-sanitizer \
+ --without-gui
+
+# vim: syntax=make
diff --git a/rules/host-icu.in b/rules/host-icu.in
index f6c0a0e22..e75001669 100644
--- a/rules/host-icu.in
+++ b/rules/host-icu.in
@@ -2,4 +2,5 @@
config HOST_ICU
tristate
+ select HOST_SYSTEM_PYTHON3
default y if ALLYES
diff --git a/rules/host-icu.make b/rules/host-icu.make
index 498749dc5..898ea46c4 100644
--- a/rules/host-icu.make
+++ b/rules/host-icu.make
@@ -23,20 +23,24 @@ HOST_ICU_SUBDIR = $(ICU_SUBDIR)
HOST_ICU_CONF_TOOL := autoconf
HOST_ICU_CONF_OPT := \
$(HOST_AUTOCONF) \
+ --enable-icu-config \
--disable-debug \
--enable-release \
+ --disable-strict \
--enable-shared \
--disable-static \
--enable-draft \
--enable-renaming \
--disable-tracing \
+ --disable-plugins \
--enable-dyload \
--disable-rpath \
--disable-weak-threads \
--disable-extras \
--disable-icuio \
- --disable-layout \
+ --disable-layoutex \
--enable-tools \
+ --disable-fuzzer \
--disable-tests \
--disable-samples
diff --git a/rules/host-imx-cst.make b/rules/host-imx-cst.make
index 16d95505a..42d6f667b 100644
--- a/rules/host-imx-cst.make
+++ b/rules/host-imx-cst.make
@@ -80,10 +80,10 @@ $(STATEDIR)/host-imx-cst.install:
@$(call targetinfo)
@$(foreach prog, $(HOST_IMX_CST_PROGS), \
install -v -m0755 -D $(HOST_IMX_CST_DIR)/$(HOST_IMX_CST_ARCH)/bin/$(prog) \
- $(HOST_IMX_CST_PKGDIR)/bin/$(prog)$(ptx/nl))
+ $(HOST_IMX_CST_PKGDIR)/usr/bin/$(prog)$(ptx/nl))
@$(foreach lib, $(HOST_IMX_CST_LIBS), \
install -v -m0644 -D $(HOST_IMX_CST_DIR)/$(HOST_IMX_CST_ARCH)/lib/$(lib) \
- $(HOST_IMX_CST_PKGDIR)/lib/imx-cst/$(lib)$(ptx/nl))
+ $(HOST_IMX_CST_PKGDIR)/usr/lib/imx-cst/$(lib)$(ptx/nl))
@$(call touch)
# vim: syntax=make
diff --git a/rules/host-intltool.make b/rules/host-intltool.make
index 8f35c414a..86e6fb53e 100644
--- a/rules/host-intltool.make
+++ b/rules/host-intltool.make
@@ -18,7 +18,7 @@ HOST_INTLTOOL_VERSION := 0.50.0
HOST_INTLTOOL_MD5 := 0da9847a60391ca653df35123b1f7cc0
HOST_INTLTOOL := intltool-$(HOST_INTLTOOL_VERSION)
HOST_INTLTOOL_SUFFIX := tar.gz
-HOST_INTLTOOL_URL := http://launchpad.net/intltool/trunk/0.50.0/+download/$(HOST_INTLTOOL).$(HOST_INTLTOOL_SUFFIX)
+HOST_INTLTOOL_URL := https://launchpad.net/intltool/trunk/0.50.0/+download/$(HOST_INTLTOOL).$(HOST_INTLTOOL_SUFFIX)
HOST_INTLTOOL_SOURCE := $(SRCDIR)/$(HOST_INTLTOOL).$(HOST_INTLTOOL_SUFFIX)
HOST_INTLTOOL_DIR := $(HOST_BUILDDIR)/$(HOST_INTLTOOL)
HOST_INTLTOOL_LICENSE := GPL-2.0-only
@@ -39,7 +39,7 @@ HOST_INTLTOOL_CONF_TOOL := autoconf
$(STATEDIR)/host-intltool.install.post:
@$(call targetinfo)
@$(call world/install.post, HOST_INTLTOOL)
- @sed -i "s;^prefix=$$;prefix=$(PTXDIST_SYSROOT_HOST);" $(PTXDIST_SYSROOT_HOST)/bin/intltoolize
+ @sed -i "s;^prefix=/usr$$;prefix=$(PTXDIST_SYSROOT_HOST)/usr;" $(PTXDIST_SYSROOT_HOST)/usr/bin/intltoolize
@$(call touch)
# vim: syntax=make
diff --git a/rules/host-jimtcl.make b/rules/host-jimtcl.make
index 0d84ca37b..8965aa966 100644
--- a/rules/host-jimtcl.make
+++ b/rules/host-jimtcl.make
@@ -33,6 +33,18 @@ HOST_JIMTCL_CONF_ENV := \
HOST_JIMTCL_CONF_OPT := \
$(HOST_AUTOCONF) \
--disable-lineedit \
+ --disable-ssl \
+ --shared \
--disable-docs
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/host-jimtcl.install:
+ @$(call targetinfo)
+ @$(call world/install, HOST_JIMTCL)
+ @ln -sf libjim.so.$(HOST_JIMTCL_VERSION) $(HOST_JIMTCL_PKGDIR)/usr/lib/libjim.so
+ @$(call touch)
+
# vim: syntax=make
diff --git a/rules/host-keyutils.in b/rules/host-keyutils.in
index bfdd15729..6120ffa4d 100644
--- a/rules/host-keyutils.in
+++ b/rules/host-keyutils.in
@@ -5,4 +5,4 @@ config HOST_KEYUTILS
default y if ALLYES
help
Tools to control the key management system build into the
- Linux kernel.
+ Linux kernel.
diff --git a/rules/host-keyutils.make b/rules/host-keyutils.make
index eb39268e0..c7b795fb7 100644
--- a/rules/host-keyutils.make
+++ b/rules/host-keyutils.make
@@ -20,9 +20,11 @@ HOST_KEYUTILS_MAKE_OPT := \
$(HOST_ENV_CC) \
CFLAGS="-O2 -g3 -Wall" \
BUILDFOR="" \
- LIBDIR=/lib \
- USRLIBDIR=/lib \
- INCLUDEDIR=/include
+ BINDIR=/usr/bin \
+ SBINDIR=/usr/bin \
+ LIBDIR=/usr/lib \
+ USRLIBDIR=/usr/lib \
+ INCLUDEDIR=/usr/include
HOST_KEYUTILS_INSTALL_OPT := \
$(HOST_KEYUTILS_MAKE_OPT) \
diff --git a/rules/host-libaio.make b/rules/host-libaio.make
index 4c428e477..b9baccd2b 100644
--- a/rules/host-libaio.make
+++ b/rules/host-libaio.make
@@ -17,6 +17,5 @@ HOST_PACKAGES-$(PTXCONF_HOST_LIBAIO) += host-libaio
HOST_LIBAIO_CONF_TOOL := NO
HOST_LIBAIO_MAKE_ENV := $(HOST_ENV)
-HOST_LIBAIO_MAKEVARS := prefix=
# vim: syntax=make
diff --git a/rules/host-libarchive.make b/rules/host-libarchive.make
index 6d22d6846..5fe9494e4 100644
--- a/rules/host-libarchive.make
+++ b/rules/host-libarchive.make
@@ -30,17 +30,21 @@ HOST_LIBARCHIVE_CONF_OPT := \
--disable-bsdtar \
--disable-bsdcat \
--disable-bsdcpio \
+ --disable-bsdunzip \
--disable-rpath \
--enable-posix-regex-lib=libc \
--disable-xattr \
--disable-acl \
--with-zlib \
--without-bz2lib \
+ --without-libb2 \
--without-iconv \
--without-lz4 \
+ --without-zstd \
--without-lzma \
--without-lzo2 \
--without-cng \
+ --without-mbedtls \
--without-nettle \
--without-openssl \
--without-xml2 \
diff --git a/rules/host-libassuan.make b/rules/host-libassuan.make
index 4ee24b734..498d7ba26 100644
--- a/rules/host-libassuan.make
+++ b/rules/host-libassuan.make
@@ -17,7 +17,7 @@ HOST_PACKAGES-$(PTXCONF_HOST_LIBASSUAN) += host-libassuan
HOST_LIBASSUAN_CONF_ENV := \
$(HOST_ENV) \
- LDFLAGS="-L$(PTXDIST_SYSROOT_HOST)/lib"
+ LDFLAGS="-L$(PTXDIST_SYSROOT_HOST)/usr/lib"
#
# autoconf
#
diff --git a/rules/host-libblkid.in b/rules/host-libblkid.in
index 96d9f36a3..6a56299ef 100644
--- a/rules/host-libblkid.in
+++ b/rules/host-libblkid.in
@@ -3,12 +3,12 @@
config HOST_LIBBLKID
tristate
select VIRTUAL
- select HOST_UTIL_LINUX_NG
+ select HOST_UTIL_LINUX
default y if ALLYES
help
Helper to select the host packet containing a recent libblkid.so
library and its header.
-
+
The following packages provide libblkid:
- - e2fsprogs (older version)
- - utils-linux-ng (more recent version)
+ - e2fsprogs (older version)
+ - utils-linux (more recent version)
diff --git a/rules/host-libbson.in b/rules/host-libbson.in
new file mode 100644
index 000000000..23eef8540
--- /dev/null
+++ b/rules/host-libbson.in
@@ -0,0 +1,6 @@
+## SECTION=hosttools_noprompt
+
+config HOST_LIBBSON
+ tristate
+ default y if ALLYES
+ select HOST_CMAKE
diff --git a/rules/host-libbson.make b/rules/host-libbson.make
new file mode 100644
index 000000000..046495d8d
--- /dev/null
+++ b/rules/host-libbson.make
@@ -0,0 +1,54 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Roland Hieber <rhi@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_LIBBSON) += host-libbson
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# cmake
+#
+HOST_LIBBSON_CONF_TOOL := cmake
+HOST_LIBBSON_CONF_OPT := \
+ $(HOST_CMAKE_OPT) \
+ -DBSON_OUTPUT_BASENAME=bson \
+ -DENABLE_APPLE_FRAMEWORK=OFF \
+ -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=ON \
+ -DENABLE_BSON=ON \
+ -DENABLE_CLIENT_SIDE_ENCRYPTION=OFF \
+ -DENABLE_COVERAGE=OFF \
+ -DENABLE_CRYPTO_SYSTEM_PROFILE=OFF \
+ -DENABLE_DEBUG_ASSERTIONS=OFF \
+ -DENABLE_EXAMPLES=OFF \
+ -DENABLE_EXTRA_ALIGNMENT=ON \
+ -DENABLE_HTML_DOCS=OFF \
+ -DENABLE_ICU=OFF \
+ -DENABLE_MAINTAINER_FLAGS=OFF \
+ -DENABLE_MAN_PAGES=OFF \
+ -DENABLE_MONGOC=OFF \
+ -DENABLE_MONGODB_AWS_AUTH=AUTO \
+ -DENABLE_PIC=ON \
+ -DENABLE_RDTSCP=OFF \
+ -DENABLE_SASL=OFF \
+ -DENABLE_SHM_COUNTERS=ON \
+ -DENABLE_SNAPPY=OFF \
+ -DENABLE_SRV=OFF \
+ -DENABLE_SSL=OFF \
+ -DENABLE_STATIC=OFF \
+ -DENABLE_TESTS=OFF \
+ -DENABLE_TRACING=OFF \
+ -DENABLE_UNINSTALL=ON \
+ -DENABLE_ZLIB=OFF \
+ -DENABLE_ZSTD=OFF
+
+# vim: syntax=make
diff --git a/rules/host-libcap-ng.make b/rules/host-libcap-ng.make
index 35a378f9d..3e0569693 100644
--- a/rules/host-libcap-ng.make
+++ b/rules/host-libcap-ng.make
@@ -23,7 +23,6 @@ HOST_LIBCAP_NG_CONF_OPT := \
$(HOST_AUTOCONF) \
--without-debug \
--without-warn \
- --without-python \
--without-python3
# needed for old glibc versions
diff --git a/rules/host-libcap.make b/rules/host-libcap.make
index 2faae99c3..e443a8dce 100644
--- a/rules/host-libcap.make
+++ b/rules/host-libcap.make
@@ -17,9 +17,9 @@ HOST_PACKAGES-$(PTXCONF_HOST_LIBCAP) += host-libcap
# ----------------------------------------------------------------------------
HOST_LIBCAP_MAKE_OPT := \
- prefix= \
+ prefix=/usr \
lib=lib \
- BUILD_GPERF=no \
+ USE_GPERF=no \
PAM_CAP=no \
GOLANG=no \
LIBATTR=no \
diff --git a/rules/host-libconfig.in b/rules/host-libconfig.in
new file mode 100644
index 000000000..d47d8b2e8
--- /dev/null
+++ b/rules/host-libconfig.in
@@ -0,0 +1,5 @@
+## SECTION=hosttools_noprompt
+
+config HOST_LIBCONFIG
+ tristate
+ default y if ALLYES
diff --git a/rules/host-libconfig.make b/rules/host-libconfig.make
new file mode 100644
index 000000000..953fe0e90
--- /dev/null
+++ b/rules/host-libconfig.make
@@ -0,0 +1,23 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Roland Hieber <rhi@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_LIBCONFIG) += host-libconfig
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+HOST_LIBCONFIG_CONF_TOOL := autoconf
+
+# vim: syntax=make
diff --git a/rules/host-libcurl.make b/rules/host-libcurl.make
index 1a2a1fcf5..e223573ea 100644
--- a/rules/host-libcurl.make
+++ b/rules/host-libcurl.make
@@ -21,60 +21,107 @@ HOST_PACKAGES-$(PTXCONF_HOST_LIBCURL) += host-libcurl
HOST_LIBCURL_CONF_TOOL := autoconf
HOST_LIBCURL_CONF_OPT := \
$(HOST_AUTOCONF) \
- --with-random=/dev/urandom \
- --without-zlib \
\
+ --enable-optimize \
+ --disable-warnings \
+ --disable-werror \
+ --disable-curldebug \
+ --enable-symbol-hiding \
+ --disable-ares \
+ --enable-rt \
+ --disable-ech \
+ --disable-code-coverage \
+ --enable-http \
+ --disable-ftp \
+ --disable-file \
--disable-ldap \
--disable-ldaps \
--disable-rtsp \
+ --enable-proxy \
--disable-dict \
--disable-telnet \
+ --disable-tftp \
--disable-pop3 \
--disable-imap \
--disable-smb \
--disable-smtp \
--disable-gopher \
+ --disable-docs \
+ --disable-mqtt \
--disable-manual \
- \
+ --enable-libcurl-option \
+ --disable-libgcc \
+ --enable-ipv6 \
+ --enable-openssl-auto-load-config \
+ --disable-versioned-symbols \
+ --disable-threaded-resolver \
+ --enable-pthreads \
+ --disable-verbose \
--disable-sspi \
+ --enable-basic-auth \
+ --disable-bearer-auth \
+ --disable-digest-auth \
+ --disable-kerberos-auth \
+ --disable-negotiate-auth \
+ --disable-aws \
+ --disable-ntlm \
--disable-ntlm-wb \
- --disable-debug \
- --disable-verbose \
- \
- --enable-thread \
- --enable-nonblocking\
- --enable-hidden-symbols \
- --enable-proxy \
- \
- --without-krb4 \
- --without-spnego \
- --without-gssapi \
- --without-winssl \
- --without-darwinssl \
+ --disable-tls-srp \
+ --enable-unix-sockets \
+ --disable-cookies \
+ --enable-socketpair \
+ --disable-http-auth \
+ --disable-doh \
+ --disable-mime \
+ --enable-bindlocal \
+ --disable-form-api \
+ --enable-dateparse \
+ --disable-netrc \
+ --enable-progress-meter \
+ --disable-dnsshuffle \
+ --enable-get-easy-options \
+ --disable-alt-svc \
+ --disable-headers-api \
+ --enable-hsts \
+ --disable-websockets \
+ --without-schannel \
+ --without-secure-transport \
+ --without-amissl \
+ --with-ssl \
+ --with-openssl=$(PTXDIST_SYSROOT_HOST) \
--without-gnutls \
- --without-nss \
- --without-winidn \
- --without-libidn \
- --without-axtls \
- --without-polarssl \
- --without-cyassl \
+ --without-mbedtls \
+ --without-wolfssl \
+ --without-bearssl \
+ --without-rustls \
+ --without-hyper \
+ --without-zlib \
+ --without-brotli \
+ --without-zstd \
+ --without-gssapi \
+ --with-default-ssl-backend=openssl \
+ --with-random=/dev/urandom \
+ --without-ca-fallback \
+ --without-libpsl \
+ --without-libgsasl \
+ --without-libssh2 \
+ --without-libssh \
+ --without-wolfssh \
--without-librtmp \
- \
- --disable-ares \
- --enable-http \
- --disable-nghttp2 \
- --disable-cookies \
- --disable-ftp \
- --disable-tftp \
- --disable-file \
- --disable-crypto-auth \
- --disable-libssh2 \
- --with-ssl
+ --without-winidn \
+ --without-libidn2 \
+ --without-nghttp2 \
+ --without-ngtcp2 \
+ --without-nghttp3 \
+ --without-quiche \
+ --without-msh3 \
+ --without-zsh-functions-dir \
+ --without-fish-functions-dir
$(STATEDIR)/host-libcurl.install:
@$(call targetinfo)
@$(call world/install, HOST_LIBCURL)
- @rm -v $(HOST_LIBCURL_PKGDIR)/bin/curl
+ @rm -v $(HOST_LIBCURL_PKGDIR)/usr/bin/curl
@$(call touch)
# vim: syntax=make
diff --git a/rules/host-libelf.make b/rules/host-libelf.make
index 25ff97259..699f3070f 100644
--- a/rules/host-libelf.make
+++ b/rules/host-libelf.make
@@ -29,15 +29,18 @@ HOST_LIBELF_CONF_OPT := \
--disable-sanitize-undefined \
--disable-valgrind \
--disable-valgrind-annotations \
+ --disable-install-elfh \
--disable-tests-rpath \
--enable-textrelcheck \
--enable-symbol-versioning \
--disable-nls \
+ --disable-rpath \
+ --disable-libdebuginfod \
--disable-debuginfod \
- --without-valgrind \
--with-zlib \
--without-bzlib \
--without-lzma \
+ --without-zstd \
--without-biarch
# vim: syntax=make
diff --git a/rules/host-libevent.in b/rules/host-libevent.in
new file mode 100644
index 000000000..d5c97d234
--- /dev/null
+++ b/rules/host-libevent.in
@@ -0,0 +1,5 @@
+## SECTION=hosttools_noprompt
+
+config HOST_LIBEVENT
+ tristate
+ default y if ALLYES
diff --git a/rules/host-libevent.make b/rules/host-libevent.make
new file mode 100644
index 000000000..ff8445d87
--- /dev/null
+++ b/rules/host-libevent.make
@@ -0,0 +1,37 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Roland Hieber <rhi@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_LIBEVENT) += host-libevent
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+HOST_LIBEVENT_CONF_TOOL := autoconf
+HOST_LIBEVENT_CONF_OPT := \
+ $(HOST_AUTOCONF) \
+ --disable-gcc-warnings \
+ --enable-gcc-hardening \
+ --enable-thread-support \
+ --disable-malloc-replacement \
+ --disable-openssl \
+ --disable-debug-mode \
+ --enable-libevent-install \
+ --disable-libevent-regress \
+ --disable-samples \
+ --enable-function-sections \
+ --disable-verbose-debug \
+ --enable-clock-gettime
+
+# vim: syntax=make
diff --git a/rules/host-libftdi1.make b/rules/host-libftdi1.make
index 176ed83d0..a7bff5568 100644
--- a/rules/host-libftdi1.make
+++ b/rules/host-libftdi1.make
@@ -14,12 +14,14 @@ HOST_PACKAGES-$(PTXCONF_HOST_LIBFTDI1) += host-libftdi1
HOST_LIBFTDI1_CONF_TOOL := cmake
HOST_LIBFTDI1_CONF_OPT := \
$(HOST_CMAKE_OPT) \
- -DCMAKE_INSTALL_PREFIX=/ \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DBUILD_TESTS=OFF \
-DDOCUMENTATION=OFF \
- -DPYTHON_BINDINGS=OFF \
- -DSTATICLIBS=OFF \
-DEXAMPLES=OFF \
-DFTDIPP=OFF \
-DFTDI_EEPROM=OFF
+ -DLINK_PYTHON_LIBRARY=OFF \
+ -DPYTHON_BINDINGS=OFF \
+ -DSTATICLIBS=OFF
# vim: syntax=make
diff --git a/rules/host-libgcrypt.make b/rules/host-libgcrypt.make
index 6cd067bf4..6aec1c70a 100644
--- a/rules/host-libgcrypt.make
+++ b/rules/host-libgcrypt.make
@@ -39,7 +39,7 @@ $(STATEDIR)/host-libgcrypt.compile:
$(STATEDIR)/host-libgcrypt.install:
@$(call targetinfo)
install -D -m 644 $(HOST_LIBGCRYPT_DIR)/src/libgcrypt.m4 \
- $(HOST_LIBGCRYPT_PKGDIR)/share/aclocal/libgcrypt.m4
+ $(HOST_LIBGCRYPT_PKGDIR)/usr/share/aclocal/libgcrypt.m4
@$(call touch)
# vim: syntax=make
diff --git a/rules/host-libgd.make b/rules/host-libgd.make
index e252b86de..8e108a216 100644
--- a/rules/host-libgd.make
+++ b/rules/host-libgd.make
@@ -20,13 +20,11 @@ HOST_LIBGD_DIR = $(HOST_BUILDDIR)/$(LIBGD)
# Prepare
# ----------------------------------------------------------------------------
-HOST_LIBGD_PATH := PATH=$(HOST_PATH)
-HOST_LIBGD_ENV := $(HOST_ENV)
-
#
# autoconf
#
-HOST_LIBGD_AUTOCONF := \
+HOST_LIBGD_CONF_TOOL := autoconf
+HOST_LIBGD_CONF_OPT := \
$(HOST_AUTOCONF) \
--without-x \
--without-jpeg \
diff --git a/rules/host-libjpeg.make b/rules/host-libjpeg.make
index 9f7e3d79b..bea261825 100644
--- a/rules/host-libjpeg.make
+++ b/rules/host-libjpeg.make
@@ -21,18 +21,20 @@ HOST_PACKAGES-$(PTXCONF_HOST_LIBJPEG) += host-libjpeg
HOST_LIBJPEG_CONF_TOOL := cmake
HOST_LIBJPEG_CONF_OPT := \
$(HOST_CMAKE_OPT) \
+ -DCMAKE_INSTALL_LIBDIR=/usr/lib \
-DENABLE_SHARED=ON \
-DENABLE_STATIC=OFF \
+ -DFORCE_INLINE=ON \
-DREQUIRE_SIMD=OFF \
-DWITH_12BIT=OFF \
-DWITH_ARITH_DEC=ON \
-DWITH_ARITH_ENC=ON \
+ -DWITH_FUZZ=OFF \
-DWITH_JAVA=OFF \
-DWITH_JPEG7=ON \
-DWITH_JPEG8=ON \
-DWITH_MEM_SRCDST=ON \
-DWITH_SIMD=OFF \
- -DWITHOUT_TURBOJPEG=ON \
- -DFORCE_INLINE=ON
+ -DWITH_TURBOJPEG=ON \
# vim: syntax=make
diff --git a/rules/host-libkmod.make b/rules/host-libkmod.make
index be37a7c59..adb42a33a 100644
--- a/rules/host-libkmod.make
+++ b/rules/host-libkmod.make
@@ -28,11 +28,11 @@ HOST_LIBKMOD_CONF_OPT := \
--disable-test-modules \
--disable-logging \
--disable-debug \
- --disable-python \
--disable-coverage \
+ --enable-year2038 \
+ --$(call ptx/wwo, PTXCONF_HOST_LIBKMOD_ZSTD)-zstd \
--without-xz \
--$(call ptx/wwo, PTXCONF_HOST_LIBKMOD_ZLIB)-zlib \
- --$(call ptx/wwo, PTXCONF_HOST_LIBKMOD_ZSTD)-zstd \
--without-openssl
# ----------------------------------------------------------------------------
@@ -42,7 +42,7 @@ HOST_LIBKMOD_CONF_OPT := \
$(STATEDIR)/host-libkmod.install:
@$(call targetinfo)
@$(call world/install, HOST_LIBKMOD)
- @ln -s ../bin/kmod $(HOST_LIBKMOD_PKGDIR)/sbin/depmod
+ @ln -s ../bin/kmod $(HOST_LIBKMOD_PKGDIR)/usr/sbin/depmod
@$(call touch)
# vim: syntax=make
diff --git a/rules/host-libnih.in b/rules/host-libnih.in
deleted file mode 100644
index d2728692f..000000000
--- a/rules/host-libnih.in
+++ /dev/null
@@ -1,7 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=hosttools_noprompt
-config HOST_LIBNIH
- tristate
- default y if ALLYES
- select HOST_DBUS
diff --git a/rules/host-libnih.make b/rules/host-libnih.make
deleted file mode 100644
index d7f132f79..000000000
--- a/rules/host-libnih.make
+++ /dev/null
@@ -1,24 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2010 by Tim Sander <tim01@iss.tu-darmstadt.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-HOST_PACKAGES-$(PTXCONF_HOST_LIBNIH) += host-libnih
-
-#
-# Paths and names
-#
-HOST_LIBNIH_DIR = $(HOST_BUILDDIR)/$(LIBNIH)
-
-#
-# autoconf
-#
-HOST_LIBNIH_AUTOCONF := $(HOST_AUTOCONF)
-
-# vim: syntax=make
diff --git a/rules/host-libp11.make b/rules/host-libp11.make
index b7e63ecd3..caeefdc01 100644
--- a/rules/host-libp11.make
+++ b/rules/host-libp11.make
@@ -28,7 +28,7 @@ HOST_LIBP11_CONF_OPT := \
--disable-strict \
--disable-pedantic \
--disable-api-doc \
- --with-enginesdir=/lib/engines-1.1 \
+ --with-enginesdir=/usr/lib/engines-3 \
--with-pkcs11-module=
HOST_LIBP11_MAKE_PAR := NO
diff --git a/rules/host-libpcre.make b/rules/host-libpcre.make
index f0880a75e..73d85bd0d 100644
--- a/rules/host-libpcre.make
+++ b/rules/host-libpcre.make
@@ -18,12 +18,35 @@ HOST_PACKAGES-$(PTXCONF_HOST_LIBPCRE) += host-libpcre
#
# autoconf
#
+# Note: the --enable-newline-* options are broken. Only one should be used
HOST_LIBPCRE_CONF_TOOL := autoconf
HOST_LIBPCRE_CONF_OPT :=\
$(HOST_AUTOCONF) \
+ --enable-pcre8 \
+ --enable-pcre16 \
+ --enable-pcre32 \
+ --disable-cpp \
+ --disable-jit \
+ --enable-pcregrep-jit \
+ --disable-rebuild-chartables \
+ --enable-utf \
+ --enable-unicode-properties \
+ --enable-newline-is-lf \
+ --disable-bsr-anycrlf \
+ --disable-ebcdic \
+ --disable-ebcdic-nl25 \
+ --enable-stack-for-recursion \
--disable-pcregrep-libz \
--disable-pcregrep-libbz2 \
- --enable-utf8 \
- --enable-unicode-properties
+ --disable-pcretest-libedit \
+ --disable-pcretest-libreadline \
+ --disable-valgrind \
+ --disable-coverage \
+ --with-pcregrep-bufsize=20480 \
+ --with-posix-malloc-threshold=10 \
+ --with-link-size=2 \
+ --with-parens-nest-limit=250 \
+ --with-match-limit=10000000 \
+ --with-match-limit-recursion=10000000
# vim: syntax=make
diff --git a/rules/host-libpng.make b/rules/host-libpng.make
index 6179490f1..3cb9caaa4 100644
--- a/rules/host-libpng.make
+++ b/rules/host-libpng.make
@@ -20,12 +20,9 @@ HOST_LIBPNG_DIR = $(HOST_BUILDDIR)/$(LIBPNG)
# Prepare
# ----------------------------------------------------------------------------
-HOST_LIBPNG_PATH := PATH=$(HOST_PATH)
-HOST_LIBPNG_ENV := $(HOST_ENV)
-
#
# autoconf
#
-HOST_LIBPNG_AUTOCONF := $(HOST_AUTOCONF)
+HOST_LIBPNG_CONF_TOOL := autoconf
# vim: syntax=make
diff --git a/rules/host-libpthread-stubs.make b/rules/host-libpthread-stubs.make
index 3abd02239..da66793cd 100644
--- a/rules/host-libpthread-stubs.make
+++ b/rules/host-libpthread-stubs.make
@@ -20,12 +20,9 @@ HOST_LIBPTHREAD_STUBS_DIR = $(HOST_BUILDDIR)/$(LIBPTHREAD_STUBS)
# Prepare
# ----------------------------------------------------------------------------
-HOST_LIBPTHREAD_STUBS_PATH := PATH=$(HOST_PATH)
-HOST_LIBPTHREAD_STUBS_ENV := $(HOST_ENV)
-
#
# autoconf
#
-HOST_LIBPTHREAD_STUBS_AUTOCONF := $(HOST_AUTOCONF)
+HOST_LIBPTHREAD_STUBS_CONF_TOOL := autoconf
# vim: syntax=make
diff --git a/rules/host-libsepol.make b/rules/host-libsepol.make
index 40fd35517..b20b2e113 100644
--- a/rules/host-libsepol.make
+++ b/rules/host-libsepol.make
@@ -18,11 +18,7 @@ HOST_PACKAGES-$(PTXCONF_HOST_LIBSEPOL) += host-libsepol
HOST_LIBSEPOL_CONF_TOOL := NO
HOST_LIBSEPOL_MAKE_ENV := \
$(HOST_ENV) \
+ SHLIBDIR=$(HOST_LIBSEPOL_PKGDIR)/usr/lib \
CFLAGS="-O2 -Wall -g"
-HOST_LIBSEPOL_MAKE_OPT := PREFIX=$(PTXDIST_SYSROOT_HOST)
-# no ':=' here
-HOST_LIBSEPOL_INSTALL_OPT = \
- PREFIX=$(HOST_LIBSEPOL_PKGDIR) \
- install
# vim: syntax=make
diff --git a/rules/host-libsigcpp.make b/rules/host-libsigcpp.make
index 6ce23ebdc..306505adf 100644
--- a/rules/host-libsigcpp.make
+++ b/rules/host-libsigcpp.make
@@ -20,12 +20,9 @@ HOST_LIBSIGCPP_DIR = $(HOST_BUILDDIR)/$(LIBSIGCPP)
# Prepare
# ----------------------------------------------------------------------------
-HOST_LIBSIGCPP_PATH := PATH=$(HOST_PATH)
-HOST_LIBSIGCPP_ENV := $(HOST_ENV)
-
#
# autoconf
#
-HOST_LIBSIGCPP_AUTOCONF := $(HOST_AUTOCONF)
+HOST_LIBSIGCPP_CONF_TOOL := autoconf
# vim: syntax=make
diff --git a/rules/host-libslirp.in b/rules/host-libslirp.in
new file mode 100644
index 000000000..e61e2b64b
--- /dev/null
+++ b/rules/host-libslirp.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_LIBSLIRP
+ tristate
+ default y if ALLYES
+ select HOST_GLIB
+ select HOST_MESON
diff --git a/rules/host-libslirp.make b/rules/host-libslirp.make
new file mode 100644
index 000000000..de2af49fb
--- /dev/null
+++ b/rules/host-libslirp.make
@@ -0,0 +1,23 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Roland Hieber <rhi@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_LIBSLIRP) += host-libslirp
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# meson
+#
+HOST_LIBSLIRP_CONF_TOOL := meson
+
+# vim: syntax=make
diff --git a/rules/host-libtasn1.in b/rules/host-libtasn1.in
index 108227d36..d5c42b162 100644
--- a/rules/host-libtasn1.in
+++ b/rules/host-libtasn1.in
@@ -7,8 +7,8 @@ config HOST_LIBTASN1
Manage ASN1 (Abstract Syntax Notation One) structures. The
main features of this library are:
* on-line ASN1 structure management that doesn't require any
- C code file generation.
+ C code file generation.
* off-line ASN1 structure management with C code file
- generation containing an array.
+ generation containing an array.
* DER (Distinguish Encoding Rules) encoding
* no limits for INTEGER and ENUMERATED values
diff --git a/rules/host-libtirpc.make b/rules/host-libtirpc.make
index 039030958..4bf50efa5 100644
--- a/rules/host-libtirpc.make
+++ b/rules/host-libtirpc.make
@@ -23,13 +23,15 @@ HOST_LIBTIRPC_CONF_OPT := \
$(HOST_AUTOCONF) \
--disable-gssapi \
--disable-shared \
- --enable-static
+ --enable-static \
+ --disable-authdes \
+ --enable-symvers
# ----------------------------------------------------------------------------
# Install
# ----------------------------------------------------------------------------
-HOST_LIBTIRPC_PC := $(HOST_LIBTIRPC_PKGDIR)/lib/pkgconfig/libtirpc.pc
+HOST_LIBTIRPC_PC := $(HOST_LIBTIRPC_PKGDIR)/usr/lib/pkgconfig/libtirpc.pc
$(STATEDIR)/host-libtirpc.install:
@$(call targetinfo)
diff --git a/rules/host-libusb.make b/rules/host-libusb.make
index f02c39621..aed143b6c 100644
--- a/rules/host-libusb.make
+++ b/rules/host-libusb.make
@@ -19,9 +19,21 @@ HOST_PACKAGES-$(PTXCONF_HOST_LIBUSB) += host-libusb
# Prepare
# ----------------------------------------------------------------------------
-HOST_LIBUSB_AUTOCONF := \
+#
+# autoconf
+#
+HOST_LIBUSB_CONF_TOOL := autoconf
+HOST_LIBUSB_CONF_OPT := \
$(HOST_AUTOCONF) \
+ --enable-shared \
--disable-static \
- --disable-udev
+ --disable-udev \
+ --enable-eventfd \
+ --enable-timerfd \
+ --enable-log \
+ --disable-debug-log \
+ --disable-system-log \
+ --disable-examples-build \
+ --disable-tests-build
# vim: syntax=make
diff --git a/rules/host-libuuid.in b/rules/host-libuuid.in
index f434c455c..e4509c44b 100644
--- a/rules/host-libuuid.in
+++ b/rules/host-libuuid.in
@@ -3,12 +3,12 @@
config HOST_LIBUUID
tristate
select VIRTUAL
- select HOST_UTIL_LINUX_NG
+ select HOST_UTIL_LINUX
default y if ALLYES
help
Helper to select the host packet containing a recent libuuid.so
library and its header.
-
+
The following packages provide libuuid:
- - e2fsprogs (older version)
- - utils-linux-ng (more recent version)
+ - e2fsprogs (older version)
+ - utils-linux (more recent version)
diff --git a/rules/host-libwebp.in b/rules/host-libwebp.in
new file mode 100644
index 000000000..543380759
--- /dev/null
+++ b/rules/host-libwebp.in
@@ -0,0 +1,5 @@
+## SECTION=hosttools_noprompt
+
+config HOST_LIBWEBP
+ tristate
+ default y if ALLYES
diff --git a/rules/host-libwebp.make b/rules/host-libwebp.make
new file mode 100644
index 000000000..ecc2a0afc
--- /dev/null
+++ b/rules/host-libwebp.make
@@ -0,0 +1,40 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_LIBWEBP) += host-libwebp
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+HOST_LIBWEBP_CONF_TOOL := autoconf
+HOST_LIBWEBP_CONF_OPT := \
+ $(HOST_AUTOCONF) \
+ --disable-asserts \
+ --enable-threading \
+ --disable-gl \
+ --disable-sdl \
+ --disable-png \
+ --disable-jpeg \
+ --disable-tiff \
+ --disable-gif \
+ --disable-wic \
+ --enable-swap-16bit-csp \
+ --enable-near-lossless \
+ --enable-libwebpmux \
+ --enable-libwebpdemux \
+ --enable-libwebpdecoder \
+ --disable-libwebpextras
+
+# vim: syntax=make
diff --git a/rules/host-libxcb.make b/rules/host-libxcb.make
index 579c3274e..42a768bc0 100644
--- a/rules/host-libxcb.make
+++ b/rules/host-libxcb.make
@@ -15,10 +15,9 @@ HOST_PACKAGES-$(PTXCONF_HOST_LIBXCB) += host-libxcb
# Prepare
# ----------------------------------------------------------------------------
-HOST_LIBXCB_ENV := \
+HOST_LIBXCB_CONF_ENV := \
$(HOST_ENV) \
- ac_cv_prog_BUILD_DOCS=no \
- ac_cv_lib_Xdmcp_XdmcpWrap=no
+ ac_cv_prog_BUILD_DOCS=no
#
# autoconf
@@ -32,6 +31,7 @@ HOST_LIBXCB_CONF_OPT := \
--disable-devel-docs \
--enable-composite \
--enable-damage \
+ --enable-dbe \
--enable-dpms \
--enable-dri2 \
--enable-dri3 \
@@ -58,6 +58,6 @@ HOST_LIBXCB_CONF_OPT := \
--enable-xv \
--enable-xvmc \
--without-doxygen \
- --without-launchd
+ --without-serverside-support
# vim: syntax=make
diff --git a/rules/host-libxml2.in b/rules/host-libxml2.in
index 2ddd57b88..244b755a6 100644
--- a/rules/host-libxml2.in
+++ b/rules/host-libxml2.in
@@ -5,7 +5,7 @@ config HOST_LIBXML2
select HOST_ZLIB
default y if ALLYES
help
- Libxml2 is a XML C parser and toolkit. XML itself is a
+ Libxml2 is an XML C parser and toolkit. XML itself is a
metalanguage to design markup languages, i.e. text
language where semantic and structure are added to the
content using extra "markup" information enclosed
diff --git a/rules/host-libxml2.make b/rules/host-libxml2.make
index 3c3b9c625..f1769358b 100644
--- a/rules/host-libxml2.make
+++ b/rules/host-libxml2.make
@@ -21,13 +21,11 @@ HOST_LIBXML2_DIR = $(HOST_BUILDDIR)/$(LIBXML2)
# Prepare
# ----------------------------------------------------------------------------
-HOST_LIBXML2_PATH := PATH=$(HOST_PATH)
-HOST_LIBXML2_ENV := $(HOST_ENV)
-
#
# autoconf
#
-HOST_LIBXML2_AUTOCONF := \
+HOST_LIBXML2_CONF_TOOL := autoconf
+HOST_LIBXML2_CONF_OPT := \
$(HOST_AUTOCONF) \
--disable-static \
--without-iconv \
diff --git a/rules/host-libxslt.make b/rules/host-libxslt.make
index a2a313c84..06cce14cf 100644
--- a/rules/host-libxslt.make
+++ b/rules/host-libxslt.make
@@ -21,13 +21,11 @@ HOST_LIBXSLT_DIR = $(HOST_BUILDDIR)/$(LIBXSLT)
# Prepare
# ----------------------------------------------------------------------------
-HOST_LIBXSLT_PATH := PATH=$(HOST_PATH)
-HOST_LIBXSLT_ENV := $(HOST_ENV)
-
#
# autoconf
#
-HOST_LIBXSLT_AUTOCONF := \
+HOST_LIBXSLT_CONF_TOOL := autoconf
+HOST_LIBXSLT_CONF_OPT := \
$(HOST_AUTOCONF) \
--disable-static \
--without-crypto \
diff --git a/rules/host-llvm.in b/rules/host-llvm.in
new file mode 100644
index 000000000..8b46c5698
--- /dev/null
+++ b/rules/host-llvm.in
@@ -0,0 +1,8 @@
+## SECTION=hosttools_noprompt
+
+config HOST_LLVM
+ tristate
+ select HOST_CMAKE
+ select HOST_NINJA
+ select HOST_SYSTEM_PYTHON3
+ default y if ALLYES
diff --git a/rules/host-llvm.make b/rules/host-llvm.make
new file mode 100644
index 000000000..b6765426e
--- /dev/null
+++ b/rules/host-llvm.make
@@ -0,0 +1,177 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2019 by Marian Cichy <m.cichy@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_LLVM) += host-llvm
+
+#
+# Paths and names
+#
+
+HOST_LLVM_CMAKE_MD5 = $(LLVM_CMAKE_MD5)
+HOST_LLVM_CMAKE_URL = $(LLVM_CMAKE_URL)
+HOST_LLVM_CMAKE_SOURCE = $(LLVM_CMAKE_SOURCE)
+HOST_LLVM_CMAKE_DIR = $(HOST_BUILDDIR)/$(HOST_LLVM)/cmake
+
+HOST_LLVM_PARTS += HOST_LLVM_CMAKE
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# cmake
+#
+HOST_LLVM_CONF_TOOL := cmake
+HOST_LLVM_CONF_OPT = \
+ $(HOST_CMAKE_OPT) \
+ -DCMAKE_INSTALL_PREFIX=/ \
+ -G Ninja \
+ -DLLVM_BUILD_BENCHMARKS=OFF \
+ -DLLVM_BUILD_DOCS=OFF \
+ -DLLVM_BUILD_EXAMPLES=OFF \
+ -DLLVM_BUILD_EXTERNAL_COMPILER_RT=OFF \
+ -DLLVM_BUILD_LLVM_C_DYLIB=OFF \
+ -DLLVM_BUILD_LLVM_DYLIB=ON \
+ -DLLVM_BUILD_RUNTIME=OFF \
+ -DLLVM_BUILD_RUNTIMES=OFF \
+ -DLLVM_BUILD_TESTS=OFF \
+ -DLLVM_BUILD_TOOLS=ON \
+ -DLLVM_BUILD_UTILS=OFF \
+ -DLLVM_CCACHE_BUILD=OFF \
+ -DLLVM_CODESIGNING_IDENTITY= \
+ -DLLVM_DEFAULT_TARGET_TRIPLE= \
+ -DLLVM_DEPENDENCY_DEBUGGING=OFF \
+ -DLLVM_ENABLE_ASSERTIONS=OFF \
+ -DLLVM_ENABLE_BACKTRACES=ON \
+ -DLLVM_ENABLE_BINDINGS=OFF \
+ -DLLVM_ENABLE_CRASH_DUMPS=OFF \
+ -DLLVM_ENABLE_CRASH_OVERRIDES=ON \
+ -DLLVM_ENABLE_CURL=OFF \
+ -DLLVM_ENABLE_DAGISEL_COV=OFF \
+ -DLLVM_ENABLE_DOXYGEN=OFF \
+ -DLLVM_ENABLE_DUMP=OFF \
+ -DLLVM_ENABLE_EH=OFF \
+ -DLLVM_ENABLE_EXPENSIVE_CHECKS=OFF \
+ -DLLVM_ENABLE_FFI=OFF \
+ -DLLVM_ENABLE_GISEL_COV=OFF \
+ -DLLVM_ENABLE_HTTPLIB=OFF \
+ -DLLVM_ENABLE_IDE=OFF \
+ -DLLVM_ENABLE_LIBCXX=OFF \
+ -DLLVM_ENABLE_LIBEDIT=OFF \
+ -DLLVM_ENABLE_LIBPFM=OFF \
+ -DLLVM_ENABLE_LIBXML2=OFF \
+ -DLLVM_ENABLE_LLD=OFF \
+ -DLLVM_ENABLE_LOCAL_SUBMODULE_VISIBILITY=ON \
+ -DLLVM_ENABLE_LTO=OFF \
+ -DLLVM_ENABLE_MODULES=OFF \
+ -DLLVM_ENABLE_MODULE_DEBUGGING=OFF \
+ -DLLVM_ENABLE_NEW_PASS_MANAGER=TRUE \
+ -DLLVM_ENABLE_OCAMLDOC=OFF \
+ -DLLVM_ENABLE_PEDANTIC=ON \
+ -DLLVM_ENABLE_PIC=ON \
+ -DLLVM_ENABLE_PLUGINS=ON \
+ -DLLVM_ENABLE_PROJECTS=\
+ -DLLVM_ENABLE_RTTI=ON \
+ -DLLVM_ENABLE_RUNTIMES= \
+ -DLLVM_ENABLE_SPHINX=OFF \
+ -DLLVM_ENABLE_STRICT_FIXED_SIZE_VECTORS=OFF \
+ -DLLVM_ENABLE_TERMINFO=OFF \
+ -DLLVM_ENABLE_THREADS=ON \
+ -DLLVM_ENABLE_UNWIND_TABLES=ON \
+ -DLLVM_ENABLE_WARNINGS=ON \
+ -DLLVM_ENABLE_WERROR=OFF \
+ -DLLVM_ENABLE_Z3_SOLVER=OFF \
+ -DLLVM_ENABLE_ZLIB=ON \
+ -DLLVM_ENABLE_ZSTD=OFF \
+ -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD= \
+ -DLLVM_EXPORT_SYMBOLS_FOR_PLUGINS=OFF \
+ -DLLVM_EXTERNALIZE_DEBUGINFO=OFF \
+ -DLLVM_FORCE_ENABLE_STATS=OFF \
+ -DLLVM_FORCE_USE_OLD_TOOLCHAIN=OFF \
+ -DLLVM_HAVE_TFLITE= \
+ -DLLVM_INCLUDE_BENCHMARKS=OFF \
+ -DLLVM_INCLUDE_DOCS=OFF \
+ -DLLVM_INCLUDE_EXAMPLES=OFF \
+ -DLLVM_INCLUDE_RUNTIMES=OFF \
+ -DLLVM_INCLUDE_TESTS=OFF \
+ -DLLVM_INCLUDE_TOOLS=ON \
+ -DLLVM_INCLUDE_UTILS=OFF \
+ -DLLVM_INSTALL_BINUTILS_SYMLINKS=OFF \
+ -DLLVM_INSTALL_CCTOOLS_SYMLINKS=OFF \
+ -DLLVM_INSTALL_GTEST=OFF \
+ -DLLVM_INSTALL_MODULEMAPS=OFF \
+ -DLLVM_INSTALL_TOOLCHAIN_ONLY=OFF \
+ -DLLVM_INSTALL_UTILS=OFF \
+ -DLLVM_INTEGRATED_CRT_ALLOC= \
+ -DLLVM_LIBDIR_SUFFIX= \
+ -DLLVM_LIB_FUZZING_ENGINE= \
+ -DLLVM_LINK_LLVM_DYLIB=ON \
+ -DLLVM_LOCAL_RPATH= \
+ -DLLVM_OMIT_DAGISEL_COMMENTS=ON \
+ -DLLVM_OPTIMIZED_TABLEGEN=OFF \
+ -DLLVM_OPTIMIZE_SANITIZED_BUILDS=ON \
+ -DLLVM_PARALLEL_COMPILE_JOBS= \
+ -DLLVM_PARALLEL_LINK_JOBS= \
+ -DLLVM_PROFDATA_FILE= \
+ -DLLVM_SOURCE_PREFIX= \
+ -DLLVM_STATIC_LINK_CXX_STDLIB=OFF \
+ -DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(LLVM_TARGETS_TO_BUILD))" \
+ -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=OFF \
+ -DLLVM_TOOL_BOLT_BUILD=OFF \
+ -DLLVM_TOOL_CLANG_BUILD=OFF \
+ -DLLVM_TOOL_COMPILER_RT_BUILD=OFF \
+ -DLLVM_TOOL_DRAGONEGG_BUILD=OFF \
+ -DLLVM_TOOL_FLANG_BUILD=OFF \
+ -DLLVM_TOOL_LIBCXXABI_BUILD=OFF \
+ -DLLVM_TOOL_LIBCXX_BUILD=OFF \
+ -DLLVM_TOOL_LIBC_BUILD=OFF \
+ -DLLVM_TOOL_LIBUNWIND_BUILD=OFF \
+ -DLLVM_TOOL_LLDB_BUILD=OFF \
+ -DLLVM_TOOL_LLD_BUILD=OFF \
+ -DLLVM_TOOL_MLIR_BUILD=OFF \
+ -DLLVM_TOOL_OPENMP_BUILD=OFF \
+ -DLLVM_TOOL_POLLY_BUILD=OFF \
+ -DLLVM_TOOL_PSTL_BUILD=OFF \
+ -DLLVM_UNREACHABLE_OPTIMIZE=ON \
+ -DLLVM_USE_FOLDERS=ON \
+ -DLLVM_USE_INTEL_JITEVENTS=OFF \
+ -DLLVM_USE_OPROFILE=OFF \
+ -DLLVM_USE_PERF=ON \
+ -DLLVM_USE_RELATIVE_PATHS_IN_DEBUG_INFO=OFF \
+ -DLLVM_USE_RELATIVE_PATHS_IN_FILES=OFF \
+ -DLLVM_USE_SANITIZER= \
+ -DLLVM_USE_SPLIT_DWARF=OFF \
+ -DLLVM_USE_STATIC_ZSTD=FALSE \
+ -DLLVM_USE_SYMLINKS=ON \
+ -DLLVM_VERSION_PRINTER_SHOW_HOST_TARGET_INFO=ON \
+ -DLLVM_WINDOWS_PREFER_FORWARD_SLASH=OFF
+
+HOST_LLVM_MAKE_OPT := \
+ llvm-config \
+ llvm-libraries \
+ llvm-tblgen
+
+HOST_LLVM_INSTALL_OPT := \
+ install-llvm-libraries \
+ install-llvm-config
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/host-llvm.install:
+ @$(call targetinfo)
+ @$(call world/install, HOST_LLVM)
+ @install -vD -m755 $(HOST_LLVM_DIR)-build/bin/llvm-tblgen \
+ $(HOST_LLVM_PKGDIR)/usr/bin/llvm-tblgen
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/host-lndir.make b/rules/host-lndir.make
index b0dae5030..d9a5dc923 100644
--- a/rules/host-lndir.make
+++ b/rules/host-lndir.make
@@ -14,10 +14,10 @@ LAZY_PACKAGES-$(PTXCONF_HOST_LNDIR) += host-lndir
#
# Paths and names
#
-HOST_LNDIR_VERSION := 1.0.2
-HOST_LNDIR_MD5 := 619acbb2ed766d7762f02328513b1f72
+HOST_LNDIR_VERSION := 1.0.4
+HOST_LNDIR_MD5 := a56ce1f81960e4b5af1730e4f5262162
HOST_LNDIR := lndir-$(HOST_LNDIR_VERSION)
-HOST_LNDIR_SUFFIX := tar.bz2
+HOST_LNDIR_SUFFIX := tar.xz
HOST_LNDIR_URL := $(call ptx/mirror, XORG, individual/util/$(HOST_LNDIR).$(HOST_LNDIR_SUFFIX))
HOST_LNDIR_SOURCE := $(SRCDIR)/$(HOST_LNDIR).$(HOST_LNDIR_SUFFIX)
HOST_LNDIR_DIR := $(HOST_BUILDDIR)/$(HOST_LNDIR)
diff --git a/rules/host-localedef.in b/rules/host-localedef.in
index e0f3f6299..16380f6ba 100644
--- a/rules/host-localedef.in
+++ b/rules/host-localedef.in
@@ -1,5 +1,6 @@
## SECTION=hosttools_noprompt
config HOST_LOCALEDEF
+ select HOST_SYSTEM_PYTHON3
tristate
default y if ALLYES
diff --git a/rules/host-localedef.make b/rules/host-localedef.make
index bc9d7442a..54568567f 100644
--- a/rules/host-localedef.make
+++ b/rules/host-localedef.make
@@ -15,8 +15,8 @@ HOST_PACKAGES-$(PTXCONF_HOST_LOCALEDEF) += host-localedef
#
# Paths and names
#
-HOST_LOCALEDEF_VERSION := 2.27
-HOST_LOCALEDEF_MD5 := 274e794c999b4ebbccdf72bfb4c49a68
+HOST_LOCALEDEF_VERSION := 2.37
+HOST_LOCALEDEF_MD5 := 35e1dbd6014a1d0ba72d9f79330fddab
HOST_LOCALEDEF := localedef-glibc-$(HOST_LOCALEDEF_VERSION)
HOST_LOCALEDEF_SUFFIX := tar.bz2
HOST_LOCALEDEF_URL := $(call ptx/mirror, GNU, glibc/glibc-$(HOST_LOCALEDEF_VERSION).$(HOST_LOCALEDEF_SUFFIX))
@@ -29,6 +29,10 @@ HOST_LOCALEDEF_LICENSE := LGPL-2.1-or-later AND GPL-2.0-or-later
# Prepare
# ----------------------------------------------------------------------------
+HOST_LOCALEDEF_CONF_ENV := \
+ $(HOST_ENV) \
+ libc_cv_complocaledir='/usr/lib/locale'
+
#
# autoconf
#
@@ -37,10 +41,9 @@ HOST_LOCALEDEF_CONF_OPT := \
--prefix=/usr \
--enable-sanity-checks \
--disable-profile \
- --disable-static-pie \
+ --enable-default-pie \
--disable-timezone-tools \
--disable-hardcoded-path-in-tests \
- --enable-stackguard-randomization \
--enable-hidden-plt \
--enable-bind-now \
--enable-stack-protector \
@@ -50,15 +53,17 @@ HOST_LOCALEDEF_CONF_OPT := \
--disable-werror \
--disable-multi-arch \
--disable-experimental-malloc \
+ --disable-memory-tagging \
+ --disable-crypt \
--disable-nss-crypt \
- --disable-obsolete-rpc \
- --disable-obsolete-nsl \
--disable-systemtap \
--disable-build-nscd \
--disable-nscd \
--disable-pt_chown \
--disable-tunables \
- --disable-mathvec
+ --disable-mathvec \
+ --enable-cet \
+ --disable-scv
HOST_LOCALEDEF_MAKE_OPT := locale/others
HOST_LOCALEDEF_INSTALL_OPT := locale/install-others
@@ -70,7 +75,7 @@ HOST_LOCALEDEF_INSTALL_OPT := locale/install-others
$(STATEDIR)/host-localedef.install:
@$(call targetinfo)
@install -vD -m755 $(HOST_LOCALEDEF_DIR)-build/locale/localedef \
- $(HOST_LOCALEDEF_PKGDIR)/bin/localedef
+ $(HOST_LOCALEDEF_PKGDIR)/usr/bin/localedef
@$(call touch)
# vim: syntax=make
diff --git a/rules/host-lrzsz.make b/rules/host-lrzsz.make
index 9fcafcbba..be47464d9 100644
--- a/rules/host-lrzsz.make
+++ b/rules/host-lrzsz.make
@@ -18,7 +18,8 @@ HOST_PACKAGES-$(PTXCONF_HOST_LRZSZ) += host-lrzsz
#
# autoconf
#
-HOST_LRZSZ_AUTOCONF := \
+HOST_LRZSZ_CONF_TOOL := autoconf
+HOST_LRZSZ_CONF_OPT := \
$(HOST_AUTOCONF) \
--disable-nls
diff --git a/rules/host-lvm2.in b/rules/host-lvm2.in
index bfc20aeab..52b2a9b84 100644
--- a/rules/host-lvm2.in
+++ b/rules/host-lvm2.in
@@ -2,3 +2,5 @@
config HOST_LVM2
tristate
+ select HOST_LIBAIO
+ default y if ALLYES
diff --git a/rules/host-lvm2.make b/rules/host-lvm2.make
index 498cb109e..3d07e3c18 100644
--- a/rules/host-lvm2.make
+++ b/rules/host-lvm2.make
@@ -23,43 +23,45 @@ HOST_LVM2_CONF_TOOL := autoconf
HOST_LVM2_CONF_OPT := \
$(HOST_AUTOCONF) \
--disable-static_link \
- --disable-lvm1_fallback \
--disable-thin_check_needs_check \
--disable-cache_check_needs_check \
--disable-readline \
+ --disable-editline \
--enable-realtime \
--disable-ocf \
--disable-cmirrord \
--disable-debug \
--disable-profiling \
- --disable-testing \
--disable-valgrind-pool \
--enable-devmapper \
- --disable-lvmetad \
--disable-lvmpolld \
--disable-lvmlockd-sanlock \
--disable-lvmlockd-dlm \
+ --disable-lvmlockd-dlmcontrol \
+ --disable-lvmlockd-idm \
--disable-use-lvmlockd \
- --disable-use-lvmetad \
--disable-use-lvmpolld \
- --disable-dmfilemapd \
--disable-notify-dbus \
+ --disable-systemd-journal \
+ --disable-app-machineid \
--disable-blkid_wiping \
- --disable-compat \
+ --disable-udev_sync \
+ --disable-udev_rules \
+ --disable-udev-rule-exec-detection \
--disable-units-compat \
--disable-ioctl \
--enable-o_direct \
- --disable-applib \
--disable-cmdlib \
- --disable-python_bindings \
- --disable-python2_bindings \
- --disable-python3_bindings \
+ --disable-dbus-service \
--disable-pkgconfig \
--disable-write_install \
--disable-fsadm \
+ --disable-lvmimportvdo \
--disable-blkdeactivate \
--disable-dmeventd \
+ --disable-dmfilemapd \
--disable-selinux \
+ --enable-blkzeroout \
--disable-nls
# vim: syntax=make
diff --git a/rules/host-lz4.make b/rules/host-lz4.make
index e9635320e..878f7f003 100644
--- a/rules/host-lz4.make
+++ b/rules/host-lz4.make
@@ -16,7 +16,7 @@ HOST_PACKAGES-$(PTXCONF_HOST_LZ4) += host-lz4
# ----------------------------------------------------------------------------
HOST_LZ4_CONF_TOOL := NO
-HOST_LZ4_MAKE_ENV := PREFIX=
+HOST_LZ4_MAKE_ENV := PREFIX=/usr
HOST_LZ4_MAKE_OPT := BUILD_STATIC=no lz4
HOST_LZ4_INSTALL_OPT := BUILD_STATIC=no install
diff --git a/rules/host-m4.make b/rules/host-m4.make
index 9264fe5c9..1cf6cd111 100644
--- a/rules/host-m4.make
+++ b/rules/host-m4.make
@@ -14,8 +14,8 @@ HOST_PACKAGES-$(PTXCONF_HOST_M4) += host-m4
#
# Paths and names
#
-HOST_M4_VERSION := 1.4.18
-HOST_M4_MD5 := 730bb15d96fffe47e148d1e09235af82
+HOST_M4_VERSION := 1.4.19
+HOST_M4_MD5 := 0d90823e1426f1da2fd872df0311298d
HOST_M4 := m4-$(HOST_M4_VERSION)
HOST_M4_SUFFIX := tar.xz
HOST_M4_URL := http://ftp.gnu.org/gnu/m4/$(HOST_M4).$(HOST_M4_SUFFIX)
diff --git a/rules/host-makedepend.in b/rules/host-makedepend.in
index 803054e89..2afee06df 100644
--- a/rules/host-makedepend.in
+++ b/rules/host-makedepend.in
@@ -2,5 +2,4 @@
config HOST_MAKEDEPEND
tristate
- select HOST_XORGPROTO
default y if ALLYES
diff --git a/rules/host-makedepend.make b/rules/host-makedepend.make
index 2bc104f34..53cf47e47 100644
--- a/rules/host-makedepend.make
+++ b/rules/host-makedepend.make
@@ -14,10 +14,10 @@ HOST_PACKAGES-$(PTXCONF_HOST_MAKEDEPEND) += host-makedepend
#
# Paths and names
#
-HOST_MAKEDEPEND_VERSION := 1.0.4
-HOST_MAKEDEPEND_MD5 := 7acb9a831817fdd11ba7f7aaa3c74fd8
+HOST_MAKEDEPEND_VERSION := 1.0.9
+HOST_MAKEDEPEND_MD5 := 16dc80a12fb44520057f23b679122ebd
HOST_MAKEDEPEND := makedepend-$(HOST_MAKEDEPEND_VERSION)
-HOST_MAKEDEPEND_SUFFIX := tar.bz2
+HOST_MAKEDEPEND_SUFFIX := tar.xz
HOST_MAKEDEPEND_URL := $(call ptx/mirror, XORG, individual/util/$(HOST_MAKEDEPEND).$(HOST_MAKEDEPEND_SUFFIX))
HOST_MAKEDEPEND_SOURCE := $(SRCDIR)/$(HOST_MAKEDEPEND).$(HOST_MAKEDEPEND_SUFFIX)
HOST_MAKEDEPEND_DIR := $(HOST_BUILDDIR)/$(HOST_MAKEDEPEND)
diff --git a/rules/host-mariadb.make b/rules/host-mariadb.make
index 21d77953d..a0599dfa5 100644
--- a/rules/host-mariadb.make
+++ b/rules/host-mariadb.make
@@ -72,6 +72,11 @@ HOST_MARIADB_CONF_OPT := \
-DPLUGIN_MROONGA:FORCE=DYNAMIC \
-DLZ4_LIBS=undefined
+# The check is broken with cmake 3.25.0 so just disable symbol versioning
+# We build everything from source, so it is not actually needed
+HOST_MARIADB_CONF_OPT += \
+ -DDISABLE_LIBMYSQLCLIENT_SYMBOL_VERSIONING=ON
+
HOST_MARIADB_CXXFLAGS := -std=c++98
HOST_MARIADB_MAKE_OPT := \
@@ -90,14 +95,14 @@ $(STATEDIR)/host-mariadb.install:
@rm -rf $(HOST_MARIADB_PKGDIR)
# # install helper tools
@install -vD -m 644 $(HOST_MARIADB_DIR)-build/import_executables.cmake \
- $(HOST_MARIADB_PKGDIR)/share/mariadb/import_executables.cmake
- @sed -i 's;$(HOST_MARIADB_DIR)-build/.*/;@SYSROOT@/bin/mariadb/;' \
- $(HOST_MARIADB_PKGDIR)/share/mariadb/import_executables.cmake
- @install -vD -m 755 $(HOST_MARIADB_DIR)-build/extra/comp_err $(HOST_MARIADB_PKGDIR)/bin/mariadb/comp_err
- @install -vD -m 755 $(HOST_MARIADB_DIR)-build/scripts/comp_sql $(HOST_MARIADB_PKGDIR)/bin/mariadb/comp_sql
- @install -vD -m 755 $(HOST_MARIADB_DIR)-build/dbug/factorial $(HOST_MARIADB_PKGDIR)/bin/mariadb/factorial
- @install -vD -m 755 $(HOST_MARIADB_DIR)-build/sql/gen_lex_hash $(HOST_MARIADB_PKGDIR)/bin/mariadb/gen_lex_hash
- @install -vD -m 755 $(HOST_MARIADB_DIR)-build/sql/gen_lex_token $(HOST_MARIADB_PKGDIR)/bin/mariadb/gen_lex_token
+ $(HOST_MARIADB_PKGDIR)/usr/share/mariadb/import_executables.cmake
+ @sed -i 's;$(HOST_MARIADB_DIR)-build/.*/;@SYSROOT@/usr/bin/mariadb/;' \
+ $(HOST_MARIADB_PKGDIR)/usr/share/mariadb/import_executables.cmake
+ @install -vD -m 755 $(HOST_MARIADB_DIR)-build/extra/comp_err $(HOST_MARIADB_PKGDIR)/usr/bin/mariadb/comp_err
+ @install -vD -m 755 $(HOST_MARIADB_DIR)-build/scripts/comp_sql $(HOST_MARIADB_PKGDIR)/usr/bin/mariadb/comp_sql
+ @install -vD -m 755 $(HOST_MARIADB_DIR)-build/dbug/factorial $(HOST_MARIADB_PKGDIR)/usr/bin/mariadb/factorial
+ @install -vD -m 755 $(HOST_MARIADB_DIR)-build/sql/gen_lex_hash $(HOST_MARIADB_PKGDIR)/usr/bin/mariadb/gen_lex_hash
+ @install -vD -m 755 $(HOST_MARIADB_DIR)-build/sql/gen_lex_token $(HOST_MARIADB_PKGDIR)/usr/bin/mariadb/gen_lex_token
@$(call touch)
$(STATEDIR)/host-mariadb.install.post:
@@ -105,7 +110,7 @@ $(STATEDIR)/host-mariadb.install.post:
@$(call world/install.post, HOST_MARIADB)
# # correct helper tool paths
@sed -i 's;@SYSROOT@;$(PTXDIST_SYSROOT_HOST);' \
- $(PTXDIST_SYSROOT_HOST)/share/mariadb/import_executables.cmake
+ $(PTXDIST_SYSROOT_HOST)/usr/share/mariadb/import_executables.cmake
@$(call touch)
# vim: syntax=make
diff --git a/rules/host-mesalib.make b/rules/host-mesalib.make
index a9b5f6fd1..3bf420f44 100644
--- a/rules/host-mesalib.make
+++ b/rules/host-mesalib.make
@@ -18,71 +18,89 @@ HOST_PACKAGES-$(PTXCONF_HOST_MESALIB) += host-mesalib
HOST_MESALIB_CONF_TOOL := meson
HOST_MESALIB_CONF_OPT := \
$(HOST_MESON_OPT) \
+ -Dallow-kcmp=enabled \
+ -Dandroid-libbacktrace=disabled \
+ -Dandroid-strict=true \
-Dandroid-stub=false \
-Dbuild-aco-tests=false \
-Dbuild-tests=false \
+ -Dcustom-shader-replacement= \
-Dd3d-drivers-path=/usr/lib/d3d \
- -Ddri-drivers= \
+ -Ddatasources=auto \
+ -Ddraw-use-llvm=false \
-Ddri-drivers-path=/usr/lib/dri \
-Ddri-search-path=/usr/lib/dri \
-Ddri3=disabled \
-Degl=disabled \
-Degl-lib-suffix= \
- -Dfreedreno-kgsl=false \
- -Dgallium-drivers= \
+ -Degl-native-platform=auto \
+ -Denable-glcpp-tests=false \
+ -Dexecmem=true \
+ -Dexpat=disabled \
+ -Dfreedreno-kmds= \
+ -Dgallium-d3d10umd=false \
+ -Dgallium-d3d12-video=disabled \
+ -Dgallium-drivers=swrast \
-Dgallium-extra-hud=false \
-Dgallium-nine=false \
-Dgallium-omx=disabled \
-Dgallium-opencl=disabled \
+ -Dgallium-rusticl=false \
-Dgallium-va=disabled \
-Dgallium-vdpau=disabled \
+ -Dgallium-windows-dll-name=libgallium_wgl \
-Dgallium-xa=disabled \
- -Dgallium-xvmc=disabled \
-Dgbm=disabled \
+ -Dgbm-backends-path= \
-Dgles-lib-suffix= \
-Dgles1=disabled \
-Dgles2=disabled \
- -Dglvnd-name= \
-Dglvnd=false \
+ -Dglvnd-vendor-name= \
-Dglx=disabled \
-Dglx-direct=false \
-Dglx-read-only-text=false \
+ -Dgpuvis=false \
+ -Dimagination-srv=false \
-Dinstall-intel-gpu-tests=false \
+ -Dintel-clc=disabled \
-Dlibunwind=disabled \
-Dllvm=disabled \
-Dlmsensors=disabled \
-Dmicrosoft-clc=disabled \
+ -Dmin-windows-version=8 \
+ -Dmoltenvk-dir= \
-Domx-libs-path=/usr/lib/dri \
- -Dopencl-native=false \
+ -Dopencl-external-clang-headers=disabled \
-Dopencl-spirv=false \
-Dopengl=true \
-Dosmesa=false \
- -Dosmesa-bits=8 \
+ -Dperfetto=false \
-Dplatform-sdk-version=25 \
-Dplatforms= \
-Dpower8=disabled \
- -Dprefer-iris=true \
+ -Dradv-build-id='' \
-Dselinux=false \
- -Dshader-cache-default=true \
-Dshader-cache=disabled \
- -Dshader-max-cache-size=1G \
+ -Dshader-cache-default=true \
+ -Dshader-cache-max-size=1G \
-Dshared-glapi=enabled \
-Dshared-llvm=disabled \
- -Dshared-swr=true \
-Dspirv-to-dxil=false \
-Dsse2=true \
-Dstatic-libclc=[] \
- -Dswr-arches=[] \
-Dtools=glsl \
-Dva-libs-path=/usr/lib/dri \
-Dvalgrind=disabled \
-Dvdpau-libs-path=/usr/lib/vdpau \
- -Dvulkan-device-select-layer=false \
+ -Dvideo-codecs=[] \
+ -Dvmware-mks-stats=false \
+ -Dvulkan-beta=false \
-Dvulkan-drivers=[] \
-Dvulkan-icd-dir=/etc/vulkan/icd.d \
- -Dvulkan-overlay-layer=false \
+ -Dvulkan-layers=[] \
-Dxlib-lease=disabled \
- -Dxvmc-libs-path=/usr/lib \
+ -Dxmlconfig=disabled \
-Dzlib=enabled \
-Dzstd=disabled
@@ -91,7 +109,7 @@ HOST_MESALIB_MAKE_OPT := \
$(STATEDIR)/host-mesalib.install:
@$(call targetinfo)
- install -D -m755 $(HOST_MESALIB_DIR)-build/src/compiler/glsl/glsl_compiler $(HOST_MESALIB_PKGDIR)/bin/mesa/glsl_compiler
+ install -D -m755 $(HOST_MESALIB_DIR)-build/src/compiler/glsl/glsl_compiler $(HOST_MESALIB_PKGDIR)/usr/bin/mesa/glsl_compiler
@$(call touch)
# vim: syntax=make
diff --git a/rules/host-meson.in b/rules/host-meson.in
index e448c51cf..a36b97184 100644
--- a/rules/host-meson.in
+++ b/rules/host-meson.in
@@ -3,6 +3,8 @@
config HOST_MESON
tristate
select HOST_SYSTEM_PYTHON3
- select HOST_SYSTEM_PYTHON3_SETUPTOOLS
+ select HOST_SYSTEM_PYTHON3_PYBUILD
+ select HOST_SYSTEM_PYTHON3_INSTALLER
+ select HOST_SYSTEM_PYTHON3_WHEEL
select HOST_NINJA
default y if ALLYES
diff --git a/rules/host-meson.make b/rules/host-meson.make
index 98c4e453b..aec7a539f 100644
--- a/rules/host-meson.make
+++ b/rules/host-meson.make
@@ -14,8 +14,8 @@ HOST_PACKAGES-$(PTXCONF_HOST_MESON) += host-meson
#
# Paths and names
#
-HOST_MESON_VERSION := 0.56.0
-HOST_MESON_MD5 := 67ce2c0c3eab1b8ee9ddaa1c5143e7c0
+HOST_MESON_VERSION := 1.3.0
+HOST_MESON_MD5 := 35dc15e4f94ca5fd30dbe2d88a672254
HOST_MESON := meson-$(HOST_MESON_VERSION)
HOST_MESON_SUFFIX := tar.gz
HOST_MESON_URL := https://github.com/mesonbuild/meson/releases/download/$(HOST_MESON_VERSION)/$(HOST_MESON).$(HOST_MESON_SUFFIX)
@@ -28,36 +28,7 @@ HOST_MESON_LICENSE_FILES := file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57
# Prepare
# ----------------------------------------------------------------------------
-HOST_MESON_CONF_TOOL := NO
-
-# ----------------------------------------------------------------------------
-# Compile
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/host-meson.compile:
- @$(call targetinfo)
- @$(call world/execute, HOST_MESON, $(SYSTEMPYTHON3) setup.py build)
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-# Special dirs to avoid collisions with host-python3
-HOST_MESON_INSTALL_OPT := \
- install \
- --prefix=/ \
- --install-lib=/lib/meson \
- --install-scripts=/lib/meson \
- --root=$(HOST_MESON_PKGDIR)
-
-$(STATEDIR)/host-meson.install:
- @$(call targetinfo)
- @$(call world/execute, HOST_MESON, \
- $(SYSTEMPYTHON3) setup.py $(HOST_MESON_INSTALL_OPT))
- @mkdir -vp $(HOST_MESON_PKGDIR)/bin
- @ln -svf ../lib/meson/meson $(HOST_MESON_PKGDIR)/bin/meson
- @$(call touch)
+HOST_MESON_CONF_TOOL := python3
$(STATEDIR)/host-meson.install.post: $(PTXDIST_MESON_CROSS_FILE)
diff --git a/rules/host-mfgtools.in b/rules/host-mfgtools.in
index c9046f10d..e2e061da0 100644
--- a/rules/host-mfgtools.in
+++ b/rules/host-mfgtools.in
@@ -9,5 +9,7 @@ config HOST_MFGTOOLS
select HOST_ZLIB
select HOST_BZIP2
select HOST_LIBZIP
+ select HOST_ZSTD
+ select HOST_OPENSSL
help
Freescale/NXP I.MX Chip image deploy tools.
diff --git a/rules/host-mfgtools.make b/rules/host-mfgtools.make
index 094848dde..d59b6cd55 100644
--- a/rules/host-mfgtools.make
+++ b/rules/host-mfgtools.make
@@ -11,11 +11,11 @@ HOST_PACKAGES-$(PTXCONF_HOST_MFGTOOLS) += host-mfgtools
#
# Paths and names
#
-HOST_MFGTOOLS_VERSION := 1.4.72
-HOST_MFGTOOLS_MD5 := 1f4d81196b574ba5f0b76b7f74f11f03
+HOST_MFGTOOLS_VERSION := 1.5.125
+HOST_MFGTOOLS_MD5 := 3a62563af17d879fa696dba92f31b33d
HOST_MFGTOOLS := mfgtools-$(HOST_MFGTOOLS_VERSION)
HOST_MFGTOOLS_SUFFIX := tar.gz
-HOST_MFGTOOLS_URL := https://github.com/NXPmicro/mfgtools/releases/download/uuu_$(HOST_MFGTOOLS_VERSION)/uuu_source-$(HOST_MFGTOOLS_VERSION).$(HOST_MFGTOOLS_SUFFIX)
+HOST_MFGTOOLS_URL := https://github.com/NXPmicro/mfgtools/releases/download/uuu_$(HOST_MFGTOOLS_VERSION)/uuu_source-uuu_$(HOST_MFGTOOLS_VERSION).$(HOST_MFGTOOLS_SUFFIX)
HOST_MFGTOOLS_SOURCE := $(SRCDIR)/$(HOST_MFGTOOLS).$(HOST_MFGTOOLS_SUFFIX)
HOST_MFGTOOLS_DIR := $(HOST_BUILDDIR)/$(HOST_MFGTOOLS)
HOST_MFGTOOLS_LICENSE := BSD-3-Clause
diff --git a/rules/host-mtd-utils.in b/rules/host-mtd-utils.in
index 4bdd554d9..f873b9df9 100644
--- a/rules/host-mtd-utils.in
+++ b/rules/host-mtd-utils.in
@@ -6,4 +6,5 @@ config HOST_MTD_UTILS
select HOST_LIBLZO
select HOST_LIBUUID
select HOST_ZLIB
+ select HOST_ZSTD
default y if ALLYES
diff --git a/rules/host-mtd-utils.make b/rules/host-mtd-utils.make
index f49a08261..99de07083 100644
--- a/rules/host-mtd-utils.make
+++ b/rules/host-mtd-utils.make
@@ -23,14 +23,15 @@ HOST_MTD_UTILS_CONF_TOOL := autoconf
HOST_MTD_UTILS_CONF_OPT := \
$(HOST_AUTOCONF) \
--disable-unit-tests \
- --disable-tests \
- --disable-install-tests \
- --disable-lsmtd \
+ --enable-largefile \
+ --without-tests \
+ --disable-ubihealthd \
+ --without-lsmtd \
--without-jffs \
--with-ubifs \
--with-xattr \
--with-lzo \
- --without-zstd \
+ --with-zstd \
--without-selinux \
--without-crypto
diff --git a/rules/host-mtools.make b/rules/host-mtools.make
index 7afde6db4..b7ecb384f 100644
--- a/rules/host-mtools.make
+++ b/rules/host-mtools.make
@@ -14,8 +14,8 @@ HOST_PACKAGES-$(PTXCONF_HOST_MTOOLS) += host-mtools
#
# Paths and names
#
-HOST_MTOOLS_VERSION := 4.0.16
-HOST_MTOOLS_MD5 := e9b07f35272210f407012abaf5d1b9b5
+HOST_MTOOLS_VERSION := 4.0.43
+HOST_MTOOLS_MD5 := b83fa09fb0025025bec6bb7e153a91b4
HOST_MTOOLS := mtools-$(HOST_MTOOLS_VERSION)
HOST_MTOOLS_SUFFIX := tar.bz2
HOST_MTOOLS_URL := $(call ptx/mirror, GNU, mtools/$(HOST_MTOOLS).$(HOST_MTOOLS_SUFFIX))
diff --git a/rules/host-mysql.in b/rules/host-mysql.in
deleted file mode 100644
index 658c34e31..000000000
--- a/rules/host-mysql.in
+++ /dev/null
@@ -1,10 +0,0 @@
-## SECTION=hosttools_noprompt
-
-config HOST_MYSQL
- tristate
- default y if ALLYES
- select HOST_LIBAIO
- select HOST_NCURSES
- select HOST_CMAKE
- help
- Required host part of the mySQL build system
diff --git a/rules/host-mysql.make b/rules/host-mysql.make
deleted file mode 100644
index d351b5432..000000000
--- a/rules/host-mysql.make
+++ /dev/null
@@ -1,70 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2016 by Juergen Borleis <jbe@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-HOST_PACKAGES-$(PTXCONF_HOST_MYSQL) += host-mysql
-
-#
-# Paths and names
-#
-HOST_MYSQL_BOOST = $(MYSQL_BOOST)
-HOST_MYSQL_BOOST_SOURCE = $(MYSQL_BOOST_SOURCE)
-HOST_MYSQL_BOOST_DIR = $(HOST_MYSQL_DIR)
-HOST_BOOST_LICENSE := BSL-1.0
-
-# ----------------------------------------------------------------------------
-# Extract
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/host-mysql.extract:
- @$(call targetinfo)
- @$(call clean, $(HOST_MYSQL_DIR))
- @$(call extract, HOST_MYSQL)
- @$(call extract, HOST_MYSQL_BOOST)
- @$(call patchin, HOST_MYSQL)
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Prepare + Compile
-# ----------------------------------------------------------------------------
-
-#
-# cmake
-#
-HOST_MYSQL_CONF_TOOL := cmake
-HOST_MYSQL_CONF_OPT := \
- $(HOST_CMAKE_OPT) \
- -DBUILD_CONFIG=mysql_release \
- -DCMAKE_INSTALL_PREFIX:PATH=/usr \
- -DSTACK_DIRECTION=1 \
- -DBOOST_INCLUDE_DIR=$(HOST_MYSQL_BOOST_DIR) \
- -DLOCAL_BOOST_DIR=$(HOST_MYSQL_BOOST_DIR) \
- -DHAVE_LLVM_LIBCPP_EXITCODE=no \
- -DHAVE_FALLOC_PUNCH_HOLE_AND_KEEP_SIZE_EXITCODE=no \
- -DWITH_ZLIB="bundled"
-
-HOST_MYSQL_CXXFLAGS := -std=c++98
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/host-mysql.install:
- @$(call targetinfo)
- @$(call world/install, HOST_MYSQL)
-# # prefix != /usr is broken, but only sysroot-host/bin is in $PATH
- @mv -v $(HOST_MYSQL_PKGDIR)/usr/bin $(HOST_MYSQL_PKGDIR)
- @install -v -m755 $(HOST_MYSQL_DIR)-build/sql/gen_lex_hash $(HOST_MYSQL_PKGDIR)/bin/
- @install -v -m755 $(HOST_MYSQL_DIR)-build/sql/gen_lex_token $(HOST_MYSQL_PKGDIR)/bin/
- @install -v -m755 $(HOST_MYSQL_DIR)-build/extra/comp_err $(HOST_MYSQL_PKGDIR)/bin/
- @install -v -m755 $(HOST_MYSQL_DIR)-build/scripts/comp_sql $(HOST_MYSQL_PKGDIR)/bin/
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/host-ncurses.make b/rules/host-ncurses.make
index 74f28dd29..e4a053a35 100644
--- a/rules/host-ncurses.make
+++ b/rules/host-ncurses.make
@@ -31,8 +31,8 @@ $(STATEDIR)/host-ncurses.install:
@$(call targetinfo)
@$(call world/install, HOST_NCURSES)
# # don't install headers or libs, so packages like the kernel don't use it
- @rm -r $(HOST_NCURSES_PKGDIR)/include
- @rm -r $(HOST_NCURSES_PKGDIR)/lib/*.a
+ @rm -r $(HOST_NCURSES_PKGDIR)/usr/include
+ @rm -r $(HOST_NCURSES_PKGDIR)/usr/lib/*.a
@$(call touch)
# vim: syntax=make
diff --git a/rules/host-nettle.in b/rules/host-nettle.in
new file mode 100644
index 000000000..fc2d7f165
--- /dev/null
+++ b/rules/host-nettle.in
@@ -0,0 +1,5 @@
+## SECTION=hosttools_noprompt
+
+config HOST_NETTLE
+ tristate
+ default y if ALLYES
diff --git a/rules/host-nettle.make b/rules/host-nettle.make
new file mode 100644
index 000000000..61e48b552
--- /dev/null
+++ b/rules/host-nettle.make
@@ -0,0 +1,45 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Markus Heidelberg <m.heidelberg@cab.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_NETTLE) += host-nettle
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+HOST_NETTLE_CONF_TOOL := autoconf
+HOST_NETTLE_CONF_OPT := \
+ $(HOST_AUTOCONF) \
+ --enable-public-key \
+ --enable-assembler \
+ --disable-static \
+ --enable-shared \
+ --disable-openssl \
+ --disable-gcov \
+ --disable-documentation \
+ --disable-fat \
+ --disable-arm-neon \
+ --disable-arm64-crypto \
+ --disable-x86-aesni \
+ --disable-x86-sha-ni \
+ --disable-x86-pclmul \
+ --disable-power-crypto-ext \
+ --disable-power-altivec \
+ --disable-s390x-vf \
+ --disable-s390x-msa \
+ --enable-mini-gmp \
+ --without-include-path \
+ --without-lib-path
+
+# vim: syntax=make
diff --git a/rules/host-nfsutils.make b/rules/host-nfsutils.make
index acdc01015..67ea567be 100644
--- a/rules/host-nfsutils.make
+++ b/rules/host-nfsutils.make
@@ -15,6 +15,11 @@ HOST_PACKAGES-$(PTXCONF_HOST_NFSUTILS) += host-nfsutils
# Prepare
# ----------------------------------------------------------------------------
+# fake rpc/rpc.h availability, it's not needed for rpcgen
+HOST_NFSUTILS_CONF_ENV := \
+ $(HOST_ENV) \
+ ac_cv_header_rpc_rpc_h=yes
+
#
# autoconf
#
@@ -36,16 +41,17 @@ HOST_NFSUTILS_CONF_OPT := \
--disable-mountconfig \
--disable-nfsdcld \
--disable-nfsdcltrack \
+ --disable-nfsv4server \
--disable-caps \
$(GLOBAL_LARGE_FILE_OPTION) \
--disable-ldap \
--disable-gums \
+ --without-systemd \
--with-rpcgen=internal \
--without-mountfile \
--without-tcp-wrappers \
--without-krb5 \
- --without-gssglue \
- --without-systemd
+ --without-gssglue
HOST_NFSUTILS_MAKE_OPT := \
-C tools/rpcgen
diff --git a/rules/host-ninja.in b/rules/host-ninja.in
index ef0e14fe8..fa568e714 100644
--- a/rules/host-ninja.in
+++ b/rules/host-ninja.in
@@ -2,7 +2,7 @@
config HOST_NINJA
tristate
- select HOST_SYSTEM_PYTHON3
+ select HOST_CMAKE
default y if ALLYES
help
Ninja build tool
diff --git a/rules/host-ninja.make b/rules/host-ninja.make
index d0622e2df..f64230312 100644
--- a/rules/host-ninja.make
+++ b/rules/host-ninja.make
@@ -14,37 +14,22 @@ HOST_PACKAGES-$(PTXCONF_HOST_NINJA) += host-ninja
#
# Paths and names
#
-HOST_NINJA_VERSION := 1.8.2
-HOST_NINJA_MD5 := 5fdb04461cc7f5d02536b3bfc0300166
+HOST_NINJA_VERSION := 1.11.1.g95dee.kitware.jobserver-1
+HOST_NINJA_MD5 := 22de7254869309dc2c750933928b3500
HOST_NINJA := ninja-$(HOST_NINJA_VERSION)
HOST_NINJA_SUFFIX := tar.gz
-HOST_NINJA_URL := https://github.com/ninja-build/ninja/archive/v$(HOST_NINJA_VERSION).$(HOST_NINJA_SUFFIX)
+HOST_NINJA_URL := https://github.com/Kitware/ninja/archive/refs/tags/v$(HOST_NINJA_VERSION).$(HOST_NINJA_SUFFIX)
HOST_NINJA_SOURCE := $(SRCDIR)/$(HOST_NINJA).$(HOST_NINJA_SUFFIX)
HOST_NINJA_DIR := $(HOST_BUILDDIR)/$(HOST_NINJA)
HOST_NINJA_LICENSE := Apache-2.0
# ----------------------------------------------------------------------------
-# Compile
+# Prepare
# ----------------------------------------------------------------------------
+HOST_NINJA_CONF_TOOL := cmake
HOST_NINJA_CONF_OPT := \
- --bootstrap \
- $(if $(filter 1,$(PTXDIST_VERBOSE)),--verbose)
-
-$(STATEDIR)/host-ninja.compile:
- @$(call targetinfo)
- @$(call world/execute, HOST_NINJA, \
- $(SYSTEMPYTHON3) ./configure.py $(HOST_NINJA_CONF_OPT))
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/host-ninja.install:
- @$(call targetinfo)
- @$(call world/execute, HOST_NINJA, \
- install -vD -m755 $(HOST_NINJA_DIR)/ninja $(HOST_NINJA_PKGDIR)/bin/ninja)
- @$(call touch)
+ $(HOST_CMAKE_OPT) \
+ -DBUILD_TESTING=OFF
# vim: syntax=make
diff --git a/rules/host-nodejs.in b/rules/host-nodejs.in
index 3fae9a184..fe050d4c4 100644
--- a/rules/host-nodejs.in
+++ b/rules/host-nodejs.in
@@ -3,7 +3,7 @@
config HOST_NODEJS
tristate
default y if ALLYES
- select HOST_SYSTEM_PYTHON
+ select HOST_SYSTEM_PYTHON3
select HOST_C_ARES
select HOST_OPENSSL
select HOST_ZLIB
diff --git a/rules/host-nodejs.make b/rules/host-nodejs.make
index c24ee8572..105ccde3a 100644
--- a/rules/host-nodejs.make
+++ b/rules/host-nodejs.make
@@ -13,7 +13,7 @@
HOST_PACKAGES-$(PTXCONF_HOST_NODEJS) += host-nodejs
# Always run the preprocessor locally.
-HOST_NODEJS_COMPILE_ENV := \
+HOST_NODEJS_MAKE_ENV := \
ICECC_REMOTE_CPP=0
# ----------------------------------------------------------------------------
@@ -22,19 +22,25 @@ HOST_NODEJS_COMPILE_ENV := \
HOST_NODEJS_CONF_TOOL := autoconf
HOST_NODEJS_CONF_OPT := \
- $(HOST_AUTOCONF) \
- --prefix=/ \
+ --prefix=/usr \
+ --libdir=lib \
--no-cross-compiling \
--dest-os=linux \
- --without-dtrace \
- --without-etw \
- --without-npm \
--shared \
--shared-openssl \
--shared-zlib \
- --shared-cares \
- --with-intl=none \
- --without-snapshot
+ --shared-cares
+
+$(STATEDIR)/host-nodejs.prepare:
+ @$(call targetinfo)
+
+ @$(call world/prepare, HOST_NODEJS)
+ @mkdir -p $(HOST_NODEJS_DIR)/out/Release/
+ @echo -e '#!/bin/sh\nexec "$${@}"' > \
+ $(HOST_NODEJS_DIR)/out/Release/tool-wrapper
+ @chmod +x $(HOST_NODEJS_DIR)/out/Release/tool-wrapper
+
+ @$(call touch)
# ----------------------------------------------------------------------------
# Install
@@ -42,13 +48,13 @@ HOST_NODEJS_CONF_OPT := \
$(STATEDIR)/host-nodejs.install:
@$(call targetinfo)
- @$(call install, HOST_NODEJS)
+ @$(call world/install, HOST_NODEJS)
# # Needed to cross-compile for target.
- @install -pm 0755 $(HOST_NODEJS_DIR)/out/Release/bytecode_builtins_list_generator $(HOST_NODEJS_PKGDIR)/bin/
- @install -pm 0755 $(HOST_NODEJS_DIR)/out/Release/mkcodecache $(HOST_NODEJS_PKGDIR)/bin/
- @install -pm 0755 $(HOST_NODEJS_DIR)/out/Release/node_mksnapshot $(HOST_NODEJS_PKGDIR)/bin/
- @install -pm 0755 $(HOST_NODEJS_DIR)/out/Release/torque $(HOST_NODEJS_PKGDIR)/bin/
+ @install -pm 0755 $(HOST_NODEJS_DIR)/out/Release/bytecode_builtins_list_generator $(HOST_NODEJS_PKGDIR)/usr/bin/
+ @install -pm 0755 $(HOST_NODEJS_DIR)/out/Release/node_mksnapshot $(HOST_NODEJS_PKGDIR)/usr/bin/
+ @install -pm 0755 $(HOST_NODEJS_DIR)/out/Release/mksnapshot $(HOST_NODEJS_PKGDIR)/usr/bin/
+ @install -pm 0755 $(HOST_NODEJS_DIR)/out/Release/torque $(HOST_NODEJS_PKGDIR)/usr/bin/
@$(call touch)
diff --git a/rules/host-nss.make b/rules/host-nss.make
index b2fb2bd3e..726b9ff8b 100644
--- a/rules/host-nss.make
+++ b/rules/host-nss.make
@@ -25,7 +25,7 @@ HOST_NSS_MAKE_ENV := \
NS_USE_GCC=1 \
NSS_ENABLE_ECC=1 \
NSS_DISABLE_GTESTS=1 \
- NSPR_INCLUDE_DIR=$(PTXDIST_SYSROOT_HOST)/include/nspr \
+ NSPR_INCLUDE_DIR=$(PTXDIST_SYSROOT_HOST)/usr/include/nspr \
$(if $(filter x86_64%,$(GNU_HOST)),USE_64=1)
# needed for old glibc and gcc11
@@ -58,14 +58,14 @@ $(STATEDIR)/host-nss.install:
@$(foreach lib,$(HOST_NSS_LIBS), \
install -v -m644 -D $(HOST_NSS_DIR)/dist/*/lib/$(lib).so \
- $(HOST_NSS_PKGDIR)/lib/$(lib).so$(ptx/nl))
+ $(HOST_NSS_PKGDIR)/usr/lib/$(lib).so$(ptx/nl))
- install -d $(HOST_NSS_PKGDIR)/lib/pkgconfig/
+ install -d $(HOST_NSS_PKGDIR)/usr/lib/pkgconfig/
VERSION=$(NSS_VERSION) ptxd_replace_magic \
- $(HOST_NSS_DIR)/nss/nss.pc.in > $(HOST_NSS_PKGDIR)/lib/pkgconfig/nss.pc
+ $(HOST_NSS_DIR)/nss/nss.pc.in > $(HOST_NSS_PKGDIR)/usr/lib/pkgconfig/nss.pc
- install -d $(PTXDIST_SYSROOT_HOST)/include/nss
- install -m 644 -t $(PTXDIST_SYSROOT_HOST)/include/nss $(HOST_NSS_DIR)/dist/public/nss/*
+ install -d $(PTXDIST_SYSROOT_HOST)/usr/include/nss
+ install -m 644 -t $(PTXDIST_SYSROOT_HOST)/usr/include/nss $(HOST_NSS_DIR)/dist/public/nss/*
@$(call touch)
diff --git a/rules/host-open62541.in b/rules/host-open62541.in
index 06a4fc5a4..9888b208c 100644
--- a/rules/host-open62541.in
+++ b/rules/host-open62541.in
@@ -1,7 +1,7 @@
## SECTION=hosttools_noprompt
config HOST_OPEN62541
- tristate
+ tristate
select HOST_CMAKE
select HOST_UA_NODESET
select HOST_SYSTEM_PYTHON3
diff --git a/rules/host-open62541.make b/rules/host-open62541.make
index 2cf575908..e968bc4ea 100644
--- a/rules/host-open62541.make
+++ b/rules/host-open62541.make
@@ -35,12 +35,12 @@ HOST_OPEN62541_CONF_OPT = \
-DUA_ENABLE_EXPERIMENTAL_HISTORIZING=OFF \
-DUA_ENABLE_HISTORIZING=OFF \
-DUA_ENABLE_METHODCALLS=OFF \
- -DUA_ENABLE_MICRO_EMB_DEV_PROFILE=OFF \
-DUA_ENABLE_NODEMANAGEMENT=OFF \
-DUA_ENABLE_QUERY=OFF \
-DUA_ENABLE_STATIC_ANALYZER=OFF \
-DUA_ENABLE_SUBSCRIPTIONS=OFF \
-DUA_ENABLE_SUBSCRIPTIONS_EVENTS=OFF \
+ -DUA_FORCE_WERROR=OFF \
-DUA_LOGLEVEL=$(HOST_OPEN62541_LOGLEVEL) \
-DUA_NAMESPACE_ZERO=FULL \
-DUA_NODESET_DIR="$(PTXDIST_SYSROOT_HOST)/usr/share/ua-nodeset"
diff --git a/rules/host-openocd.make b/rules/host-openocd.make
index d56612f40..f2fa59048 100644
--- a/rules/host-openocd.make
+++ b/rules/host-openocd.make
@@ -25,9 +25,9 @@ HOST_OPENOCD_CONF_OPT := \
$(HOST_AUTOCONF) \
--enable-shared \
--disable-static \
+ --disable-doxygen-html \
+ --disable-doxygen-pdf \
--disable-werror \
- --disable-internal-jimtcl \
- --disable-internal-libjaylink \
--enable-dummy \
--enable-ftdi \
--enable-stlink \
@@ -54,8 +54,8 @@ HOST_OPENOCD_CONF_OPT := \
--disable-parport-giveio \
--disable-jtag_vpi \
--disable-amtjtagaccel \
- --disable-zy1000 \
--disable-zy1000-master \
+ --disable-zy1000 \
--disable-ioutil \
--disable-ep93xx \
--disable-at91rm9200 \
@@ -66,9 +66,9 @@ HOST_OPENOCD_CONF_OPT := \
--disable-buspirate \
--disable-sysfsgpio \
--disable-minidriver-dummy \
- --disable-target-64 \
- --disable-remote-bitbang \
- --disable-doxygen-pdf \
- --disable-doxygen-html
+ --disable-internal-jimtcl \
+ --disable-internal-libjaylink \
+ --disable-target64 \
+ --disable-remote-bitbang
# vim: syntax=make
diff --git a/rules/host-opensc.in b/rules/host-opensc.in
index 7e5f72b96..32615f981 100644
--- a/rules/host-opensc.in
+++ b/rules/host-opensc.in
@@ -5,7 +5,7 @@ config HOST_OPENSC
# libz is disabled, but it still links against libz
# it links against libdl
select HOST_OPENSSL
- select HOST_PCSC_LITE if HOST_OPENSC_PCSC
+ select HOST_SYSTEM_LIBPCSCLITE if HOST_OPENSC_PCSC
default y if ALLYES
help
https://github.com/OpenSC/OpenSC/wiki
diff --git a/rules/host-opensc.make b/rules/host-opensc.make
index 8da37ade6..24488de38 100644
--- a/rules/host-opensc.make
+++ b/rules/host-opensc.make
@@ -40,9 +40,18 @@ HOST_OPENSC_CONF_OPT := \
--disable-doc \
--disable-dnie-ui \
--disable-notify \
- --enable-tests=no \
+ --disable-cmocka \
--disable-static
HOST_OPENSC_CPPFLAGS := -Wno-implicit-fallthrough
+$(STATEDIR)/host-opensc.install.post:
+ @$(call targetinfo)
+# # These files are symlinks to ../<name>. PTXdist updates the rpath for
+# # the real file so it is wrong for the symlink. Fix it here afterwards.
+ @$(foreach plugin,$(wildcard $(HOST_OPENSC_PKGDIR)/usr/lib/pkcs11/*.so), \
+ chrpath --replace '$${ORIGIN}/../' $(plugin) > /dev/null$(ptx/nl))
+ @$(call world/install.post, HOST_OPENSC)
+ @$(call touch)
+
# vim: syntax=make
diff --git a/rules/host-openssl.make b/rules/host-openssl.make
index f80b4e1c9..cc7020814 100644
--- a/rules/host-openssl.make
+++ b/rules/host-openssl.make
@@ -23,15 +23,13 @@ HOST_OPENSSL_DIR = $(HOST_BUILDDIR)/$(HOST_OPENSSL)
# Prepare
# ----------------------------------------------------------------------------
-HOST_OPENSSL_CONF_ENV := $(HOST_ENV)
-
#
# autoconf
#
# no ':=' here
HOST_OPENSSL_CONF_OPT = \
- --prefix=/ \
- --libdir=/lib \
+ --prefix=/usr \
+ --libdir=/usr/lib \
shared
HOST_OPENSSL_INSTALL_OPT := \
diff --git a/rules/host-opkg-utils.make b/rules/host-opkg-utils.make
index cec8ac4f6..a35a0da0d 100644
--- a/rules/host-opkg-utils.make
+++ b/rules/host-opkg-utils.make
@@ -14,11 +14,11 @@ HOST_PACKAGES-$(PTXCONF_HOST_OPKG_UTILS) += host-opkg-utils
#
# Paths and names
#
-HOST_OPKG_UTILS_VERSION := 0.4.2
-HOST_OPKG_UTILS_MD5 := 1c8683135c2998d9bb459a547bcdfb2f
+HOST_OPKG_UTILS_VERSION := 0.6.3
+HOST_OPKG_UTILS_MD5 := 2ca116eda29e0be4a89e92a9b24bda53
HOST_OPKG_UTILS := opkg-utils-$(HOST_OPKG_UTILS_VERSION)
-HOST_OPKG_UTILS_SUFFIX := tar.bz2
-HOST_OPKG_UTILS_URL := http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/snapshot/$(HOST_OPKG_UTILS).$(HOST_OPKG_UTILS_SUFFIX)
+HOST_OPKG_UTILS_SUFFIX := tar.gz
+HOST_OPKG_UTILS_URL := https://git.yoctoproject.org/opkg-utils/snapshot/$(HOST_OPKG_UTILS).$(HOST_OPKG_UTILS_SUFFIX)
HOST_OPKG_UTILS_SOURCE := $(SRCDIR)/$(HOST_OPKG_UTILS).$(HOST_OPKG_UTILS_SUFFIX)
HOST_OPKG_UTILS_DIR := $(HOST_BUILDDIR)/$(HOST_OPKG_UTILS)
HOST_OPKG_UTILS_LICENSE := GPL-2.0-only
@@ -28,6 +28,6 @@ HOST_OPKG_UTILS_LICENSE := GPL-2.0-only
# ----------------------------------------------------------------------------
HOST_OPKG_UTILS_CONF_TOOL := NO
-HOST_OPKG_UTILS_MAKE_ENV := PREFIX=
+HOST_OPKG_UTILS_MAKE_ENV := PREFIX=/usr
# vim: syntax=make
diff --git a/rules/host-opkg.make b/rules/host-opkg.make
index 0264e7d3b..a9fe3d20a 100644
--- a/rules/host-opkg.make
+++ b/rules/host-opkg.make
@@ -22,8 +22,6 @@ HOST_OPKG_DIR = $(HOST_BUILDDIR)/$(HOST_OPKG)
# Prepare
# ----------------------------------------------------------------------------
-HOST_OPKG_ENV := $(HOST_ENV)
-
#
# autoconf
#
@@ -32,15 +30,15 @@ HOST_OPKG_CONF_OPT := \
$(HOST_AUTOCONF) \
--disable-libopkg-api \
--disable-static \
- --disable-pathfinder \
--disable-xz \
--disable-bzip2 \
+ --disable-lz4 \
+ --disable-zstd \
--disable-curl \
--disable-sha256 \
- --disable-openssl \
--disable-ssl-curl \
--disable-gpg \
- --without-libsolv \
- --without-static-libopkg
+ --without-static-libopkg \
+ --without-libsolv
# vim: syntax=make
diff --git a/rules/host-patchelf.in b/rules/host-patchelf.in
index 2740b8b0d..2b719c317 100644
--- a/rules/host-patchelf.in
+++ b/rules/host-patchelf.in
@@ -8,7 +8,7 @@ config HOST_PATCHELF
executables and libraries. In particular, it can do the
following:
* Change the dynamic loader ("ELF interpreter") of
- executables
+ executables
* Change the RPATH of executables and libraries
* Remove declared dependencies on dynamic libraries
- (DT_NEEDED entries)
+ (DT_NEEDED entries)
diff --git a/rules/host-pcre2.in b/rules/host-pcre2.in
new file mode 100644
index 000000000..f5b411927
--- /dev/null
+++ b/rules/host-pcre2.in
@@ -0,0 +1,5 @@
+## SECTION=hosttools_noprompt
+
+config HOST_PCRE2
+ tristate
+ default y if ALLYES
diff --git a/rules/host-pcre2.make b/rules/host-pcre2.make
new file mode 100644
index 000000000..56f827b4a
--- /dev/null
+++ b/rules/host-pcre2.make
@@ -0,0 +1,49 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_PCRE2) += host-pcre2
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+HOST_PCRE2_CONF_TOOL := autoconf
+HOST_PCRE2_CONF_OPT := \
+ $(HOST_AUTOCONF) \
+ --enable-pcre2-8 \
+ --enable-pcre2-16 \
+ --disable-pcre2-32 \
+ --disable-debug \
+ --disable-jit \
+ --disable-jit-sealloc \
+ --enable-pcre2grep-jit \
+ --enable-pcre2grep-callout \
+ --enable-pcre2grep-callout-fork \
+ --disable-rebuild-chartables \
+ --enable-unicode \
+ --enable-newline-is-lf \
+ --disable-bsr-anycrlf \
+ --disable-never-backslash-C \
+ --disable-ebcdic \
+ --disable-ebcdic-nl25 \
+ --disable-pcre2grep-libz \
+ --disable-pcre2grep-libbz2 \
+ --disable-pcre2test-libedit \
+ --disable-pcre2test-libreadline \
+ --disable-valgrind \
+ --disable-coverage \
+ --disable-fuzz-support \
+ --enable-percent-zt
+
+# vim: syntax=make
diff --git a/rules/host-pelts.make b/rules/host-pelts.make
index e80625b3e..444ea7771 100644
--- a/rules/host-pelts.make
+++ b/rules/host-pelts.make
@@ -29,12 +29,9 @@ HOST_PELTS_DIR := $(HOST_BUILDDIR)/$(HOST_PELTS)
# Prepare
# ----------------------------------------------------------------------------
-HOST_PELTS_PATH := PATH=$(HOST_PATH)
-HOST_PELTS_ENV := $(HOST_ENV)
-
#
# autoconf
#
-HOST_PELTS_AUTOCONF := $(HOST_AUTOCONF)
+HOST_PELTS_CONF_TOOL := autoconf
# vim: syntax=make
diff --git a/rules/host-pixman.in b/rules/host-pixman.in
index f4f368e5e..d4fcbb595 100644
--- a/rules/host-pixman.in
+++ b/rules/host-pixman.in
@@ -3,3 +3,4 @@
config HOST_PIXMAN
tristate
default y if ALLYES
+ select HOST_MESON
diff --git a/rules/host-pixman.make b/rules/host-pixman.make
index cdd14accd..8017e88fe 100644
--- a/rules/host-pixman.make
+++ b/rules/host-pixman.make
@@ -18,16 +18,28 @@ HOST_PACKAGES-$(PTXCONF_HOST_PIXMAN) += host-pixman
#
# autoconf
#
-HOST_PIXMAN_CONF_TOOL := autoconf
+HOST_PIXMAN_CONF_TOOL := meson
HOST_PIXMAN_CONF_OPT := \
- $(HOST_AUTOCONF) \
- --disable-static \
- --disable-openmp \
- --disable-loongson-mmi \
- --enable-gcc-inline-asm \
- --disable-static-testprogs \
- --disable-timers \
- --disable-gtk \
- --disable-libpng
+ $(HOST_MESON_OPT) \
+ -Da64-neon=disabled \
+ -Darm-simd=disabled \
+ -Dcpu-features-path= \
+ -Ddemos=disabled \
+ -Dgnu-inline-asm=disabled \
+ -Dgnuplot=false \
+ -Dgtk=disabled \
+ -Diwmmxt=disabled \
+ -Diwmmxt2=false \
+ -Dlibpng=disabled \
+ -Dloongson-mmi=disabled \
+ -Dmips-dspr2=disabled \
+ -Dmmx=disabled \
+ -Dneon=disabled \
+ -Dopenmp=disabled \
+ -Dsse2=enabled \
+ -Dssse3=disabled \
+ -Dtests=disabled \
+ -Dtimers=false \
+ -Dvmx=disabled
# vim: syntax=make
diff --git a/rules/host-pkg-config.make b/rules/host-pkg-config.make
deleted file mode 100644
index fea66fb1d..000000000
--- a/rules/host-pkg-config.make
+++ /dev/null
@@ -1,57 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006-2010 by Marc Kleine-Budde <mkl@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-HOST_PACKAGES-$(PTXCONF_HOST_PKG_CONFIG) += host-pkg-config
-
-#
-# Paths and names
-#
-HOST_PKG_CONFIG_VERSION := 0.29.2
-HOST_PKG_CONFIG_MD5 := f6e931e319531b736fadc017f470e68a
-HOST_PKG_CONFIG := pkg-config-$(HOST_PKG_CONFIG_VERSION)
-HOST_PKG_CONFIG_SUFFIX := tar.gz
-HOST_PKG_CONFIG_URL := http://pkgconfig.freedesktop.org/releases/$(HOST_PKG_CONFIG).$(HOST_PKG_CONFIG_SUFFIX)
-HOST_PKG_CONFIG_SOURCE := $(SRCDIR)/$(HOST_PKG_CONFIG).$(HOST_PKG_CONFIG_SUFFIX)
-HOST_PKG_CONFIG_DIR := $(HOST_BUILDDIR)/$(HOST_PKG_CONFIG)
-HOST_PKG_CONFIG_LICENSE := GPL-2.0-only
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-HOST_PKG_CONFIG_CONF_TOOL := autoconf
-HOST_PKG_CONFIG_CONF_OPT := \
- $(HOST_AUTOCONF) \
- --disable-host-tool \
- --with-internal-glib
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-PKG_CONFIG_SCRIPT = \
- $(shell ptxd_get_alternative scripts pkg-config-wrapper && echo $$ptxd_reply)
-
-HOST_PKG_CONFIG_BINCONFIG_GLOB := does-not-exist
-
-$(STATEDIR)/host-pkg-config.install:
- @$(call targetinfo)
- @$(call world/install, HOST_PKG_CONFIG)
- @mv $(HOST_PKG_CONFIG_PKGDIR)/bin/pkg-config \
- $(HOST_PKG_CONFIG_PKGDIR)/bin/pkg-config.real
- @ln -sv $(PKG_CONFIG_SCRIPT) \
- $(HOST_PKG_CONFIG_PKGDIR)/bin/pkg-config
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/host-pkg-config.in b/rules/host-pkgconf.in
index 20c3674a8..886e75c25 100644
--- a/rules/host-pkg-config.in
+++ b/rules/host-pkgconf.in
@@ -1,6 +1,6 @@
## SECTION=hosttools_noprompt
-config HOST_PKG_CONFIG
+config HOST_PKGCONF
tristate
default y if ALLYES
diff --git a/rules/host-pkgconf.make b/rules/host-pkgconf.make
new file mode 100644
index 000000000..7cc949078
--- /dev/null
+++ b/rules/host-pkgconf.make
@@ -0,0 +1,54 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_PKGCONF) += host-pkgconf
+
+#
+# Paths and names
+#
+HOST_PKGCONF_VERSION := 2.1.1
+HOST_PKGCONF_MD5 := bc29d74c2483197deb9f1f3b414b7918
+HOST_PKGCONF := pkgconf-$(HOST_PKGCONF_VERSION)
+HOST_PKGCONF_SUFFIX := tar.xz
+HOST_PKGCONF_URL := https://distfiles.ariadne.space/pkgconf/$(HOST_PKGCONF).$(HOST_PKGCONF_SUFFIX)
+HOST_PKGCONF_SOURCE := $(SRCDIR)/$(HOST_PKGCONF).$(HOST_PKGCONF_SUFFIX)
+HOST_PKGCONF_DIR := $(HOST_BUILDDIR)/$(HOST_PKGCONF)
+HOST_PKGCONF_LICENSE := custom
+HOST_PKGCONF_LICENSE_FILES := file://COPYING;md5=2214222ec1a820bd6cc75167a56925e0
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+HOST_PKGCONF_CONF_TOOL := autoconf
+HOST_PKGCONF_CONF_OPT := \
+ $(HOST_AUTOCONF)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+PKG_CONFIG_SCRIPT = \
+ $(shell ptxd_get_alternative scripts pkg-config-wrapper && echo $$ptxd_reply)
+
+HOST_PKGCONF_BINCONFIG_GLOB := does-not-exist
+
+$(STATEDIR)/host-pkgconf.install:
+ @$(call targetinfo)
+ @$(call world/install, HOST_PKGCONF)
+ @ln -sv $(PKG_CONFIG_SCRIPT) \
+ $(HOST_PKGCONF_PKGDIR)/usr/bin/pkg-config
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/host-postgresql.make b/rules/host-postgresql.make
index c28447837..c9c92a40b 100644
--- a/rules/host-postgresql.make
+++ b/rules/host-postgresql.make
@@ -15,8 +15,6 @@ HOST_PACKAGES-$(PTXCONF_HOST_POSTGRESQL) += host-postgresql
# Prepare
# ----------------------------------------------------------------------------
-#HOST_POSTGRESQL_CONF_ENV := $(HOST_ENV)
-
#
# autoconf
#
@@ -28,7 +26,6 @@ HOST_POSTGRESQL_CONF_OPT := \
--disable-rpath \
--enable-spinlocks \
--enable-atomics \
- --enable-strong-random \
--disable-debug \
--disable-profiling \
--disable-coverage \
@@ -38,8 +35,6 @@ HOST_POSTGRESQL_CONF_OPT := \
--disable-cassert \
--enable-thread-safety \
--enable-largefile \
- --disable-float4-byval \
- --disable-float8-byval \
--without-llvm \
--without-icu \
--without-tcl \
diff --git a/rules/host-protobuf-c.in b/rules/host-protobuf-c.in
new file mode 100644
index 000000000..fc7f332f7
--- /dev/null
+++ b/rules/host-protobuf-c.in
@@ -0,0 +1,6 @@
+## SECTION=hosttools_noprompt
+
+config HOST_PROTOBUF_C
+ tristate
+ select HOST_PROTOBUF
+ default y if ALLYES
diff --git a/rules/host-protobuf-c.make b/rules/host-protobuf-c.make
new file mode 100644
index 000000000..c63134ff0
--- /dev/null
+++ b/rules/host-protobuf-c.make
@@ -0,0 +1,22 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Ian Abbott <abbotti@mev.co.uk>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_PROTOBUF_C) += host-protobuf-c
+
+#
+# autoconf
+#
+HOST_PROTOBUF_C_CONF_TOOL := autoconf
+HOST_PROTOBUF_C_CONF_OPT := \
+ $(HOST_AUTOCONF) \
+ --disable-static
+
+# vim: syntax=make
diff --git a/rules/host-ptx-code-signing-dev.make b/rules/host-ptx-code-signing-dev.make
index d97ae60ef..b242d65fc 100644
--- a/rules/host-ptx-code-signing-dev.make
+++ b/rules/host-ptx-code-signing-dev.make
@@ -14,13 +14,14 @@ HOST_PACKAGES-$(PTXCONF_HOST_PTX_CODE_SIGNING_DEV) += host-ptx-code-signing-dev
#
# Paths and names
#
-HOST_PTX_CODE_SIGNING_DEV_VERSION := 0.4
-HOST_PTX_CODE_SIGNING_DEV_MD5 := 853ac0147adc0b46dc695e16a7101aaa
+HOST_PTX_CODE_SIGNING_DEV_VERSION := 0.6
+HOST_PTX_CODE_SIGNING_DEV_MD5 := 0c8b862d0976296f348358d8403a6a74
HOST_PTX_CODE_SIGNING_DEV := ptx-code-signing-dev-$(HOST_PTX_CODE_SIGNING_DEV_VERSION)
HOST_PTX_CODE_SIGNING_DEV_SUFFIX := tar.gz
HOST_PTX_CODE_SIGNING_DEV_URL := https://git.pengutronix.de/cgit/ptx-code-signing-dev/snapshot/$(HOST_PTX_CODE_SIGNING_DEV).$(HOST_PTX_CODE_SIGNING_DEV_SUFFIX)
HOST_PTX_CODE_SIGNING_DEV_SOURCE := $(SRCDIR)/$(HOST_PTX_CODE_SIGNING_DEV).$(HOST_PTX_CODE_SIGNING_DEV_SUFFIX)
HOST_PTX_CODE_SIGNING_DEV_DIR := $(HOST_BUILDDIR)/$(HOST_PTX_CODE_SIGNING_DEV)
+HOST_PTX_CODE_SIGNING_DEV_LICENSE := ignore
CODE_SIGNING_ENV-$(PTXCONF_HOST_PTX_CODE_SIGNING_DEV) += $(SOFTHSM_CODE_SIGNING_ENV)
diff --git a/rules/host-python-setuptools.make b/rules/host-python-setuptools.make
deleted file mode 100644
index 0596d4f1f..000000000
--- a/rules/host-python-setuptools.make
+++ /dev/null
@@ -1,32 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2014 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-HOST_PACKAGES-$(PTXCONF_HOST_PYTHON_SETUPTOOLS) += host-python-setuptools
-
-#
-# Paths and names
-#
-HOST_PYTHON_SETUPTOOLS_VERSION := 41.2.0
-HOST_PYTHON_SETUPTOOLS_MD5 := a3470ce184da33f0fa6c9f44f6221bc0
-HOST_PYTHON_SETUPTOOLS := python-setuptools-$(HOST_PYTHON_SETUPTOOLS_VERSION)
-HOST_PYTHON_SETUPTOOLS_SUFFIX := zip
-HOST_PYTHON_SETUPTOOLS_URL := https://pypi.python.org/packages/source/s/setuptools/setuptools-$(HOST_PYTHON_SETUPTOOLS_VERSION).$(HOST_PYTHON_SETUPTOOLS_SUFFIX)
-HOST_PYTHON_SETUPTOOLS_SOURCE := $(SRCDIR)/$(HOST_PYTHON_SETUPTOOLS).$(HOST_PYTHON_SETUPTOOLS_SUFFIX)
-HOST_PYTHON_SETUPTOOLS_DIR := $(HOST_BUILDDIR)/$(HOST_PYTHON_SETUPTOOLS)
-HOST_PYTHON_SETUPTOOLS_LICENSE := PSF AND ZPL
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-HOST_PYTHON_SETUPTOOLS_CONF_TOOL := python
-
-# vim: syntax=make
diff --git a/rules/host-python.in b/rules/host-python.in
deleted file mode 100644
index ba33db16f..000000000
--- a/rules/host-python.in
+++ /dev/null
@@ -1,10 +0,0 @@
-## SECTION=hosttools_noprompt
-
-config HOST_PYTHON
- tristate
- select HOST_OPENSSL
- default y if ALLYES
- help
- Python is an interpreted, interactive,
- object-oriented, extensible programming language.
-
diff --git a/rules/host-python.make b/rules/host-python.make
deleted file mode 100644
index 62b6a7f97..000000000
--- a/rules/host-python.make
+++ /dev/null
@@ -1,74 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2009, 2010 by Marc Kleine-Budde <mkl@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-HOST_PACKAGES-$(PTXCONF_HOST_PYTHON) += host-python
-
-#
-# Paths and names
-#
-HOST_PYTHON_DIR = $(HOST_BUILDDIR)/$(PYTHON)
-
-HOSTPYTHON = $(PTXDIST_SYSROOT_HOST)/bin/python$(PYTHON_MAJORMINOR)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-HOST_PYTHON_PATH := PATH=$(HOST_PATH)
-HOST_PYTHON_ENV := \
- $(HOST_ENV) \
- ac_sys_system=Linux \
- ac_sys_release=2 \
- MACHDEP=linux2
-
-#
-# autoconf
-#
-HOST_PYTHON_AUTOCONF := \
- $(HOST_AUTOCONF) \
- --enable-shared \
- --disable-profiling \
- --disable-optimizations \
- --disable-toolbox-glue \
- --without-pydebug \
- --without-lto \
- --with-signal-module \
- --with-threads \
- --without-doc-strings \
- --with-pymalloc \
- --without-valgrind \
- --with-wctype-functions \
- --with-fpectl \
- --with-computed-gotos \
- --without-ensurepip
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/host-python.install:
- @$(call targetinfo)
- @$(call install, HOST_PYTHON,,h)
-#
-# remove "python" so that it doesn't interfere with the build
-# machine's python
-#
-# the target build proces will only use python with the
-# python-$(PYTHON_MAJORMINOR)
-#
- @rm -v \
- "$(HOST_PYTHON_PKGDIR)/bin/python" \
- "$(HOST_PYTHON_PKGDIR)/bin/python-config" \
- "$(HOST_PYTHON_PKGDIR)/bin/python2" \
- "$(HOST_PYTHON_PKGDIR)/bin/python2-config"
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/host-python3-babel.in b/rules/host-python3-babel.in
new file mode 100644
index 000000000..82a398cf4
--- /dev/null
+++ b/rules/host-python3-babel.in
@@ -0,0 +1,8 @@
+## SECTION=hosttools_noprompt
+
+config HOST_PYTHON3_BABEL
+ tristate
+ default y if ALLYES
+ select HOST_PYTHON3
+ select HOST_PYTHON3_TZ
+ select HOST_PYTHON3_SETUPTOOLS
diff --git a/rules/host-python3-babel.make b/rules/host-python3-babel.make
new file mode 100644
index 000000000..e828b0619
--- /dev/null
+++ b/rules/host-python3-babel.make
@@ -0,0 +1,73 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2019 by Robin van der Gracht <robin@protonic.nl>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_PYTHON3_BABEL) += host-python3-babel
+
+#
+# Paths and names
+#
+HOST_PYTHON3_BABEL_VERSION := v2.10.1
+HOST_PYTHON3_BABEL_MD5 := 9483ad57043776324459e7f000aec7f0
+HOST_PYTHON3_BABEL := babel-$(HOST_PYTHON3_BABEL_VERSION)
+HOST_PYTHON3_BABEL_SUFFIX := tar.gz
+HOST_PYTHON3_BABEL_URL := https://github.com/python-babel/babel/archive/$(HOST_PYTHON3_BABEL_VERSION).$(HOST_PYTHON3_BABEL_SUFFIX)
+HOST_PYTHON3_BABEL_SOURCE := $(SRCDIR)/$(HOST_PYTHON3_BABEL).$(HOST_PYTHON3_BABEL_SUFFIX)
+HOST_PYTHON3_BABEL_DIR := $(HOST_BUILDDIR)/$(HOST_PYTHON3_BABEL)
+HOST_PYTHON3_BABEL_LICENSE := BSD-3-Clause
+HOST_PYTHON3_BABEL_LICENSE_FILES := file://LICENSE;md5=1b3f4650099e6d6a73e5a7fc8774ff18
+
+
+HOST_PYTHON3_BABEL_CLDR_VERSION := 33
+HOST_PYTHON3_BABEL_CLDR_MD5 := 39bf16711836c23e386189c3cbd2f344
+HOST_PYTHON3_BABEL_CLDR_URL := https://unicode.org/Public/cldr/$(HOST_PYTHON3_BABEL_CLDR_VERSION)/core.zip
+HOST_PYTHON3_BABEL_CLDR_SOURCE := $(SRCDIR)/cldr-core-$(HOST_PYTHON3_BABEL_CLDR_VERSION).0.zip
+HOST_PYTHON3_BABEL_CLDR_DIR := $(HOST_PYTHON3_BABEL_DIR)/cldr
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/host-python3-babel.get:
+ @$(call targetinfo)
+ @$(call world/get, HOST_PYTHON3_BABEL)
+ @$(call world/check_src, HOST_PYTHON3_BABEL)
+ @$(call world/get, HOST_PYTHON3_BABEL_CLDR)
+ @$(call world/check_src, HOST_PYTHON3_BABEL_CLDR)
+ @$(call touch)
+
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/host-python3-babel.extract:
+ @$(call targetinfo)
+ @$(call extract, HOST_PYTHON3_BABEL)
+ @$(call patchin, HOST_PYTHON3_BABEL)
+ @$(call extract, HOST_PYTHON3_BABEL_CLDR)
+ @$(call touch)
+
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_PYTHON3_BABEL_CONF_TOOL := python3
+
+$(STATEDIR)/host-python3-babel.prepare:
+ @$(call targetinfo)
+ @$(call world/execute, HOST_PYTHON3_BABEL, \
+ $(HOSTPYTHON3) scripts/import_cldr.py $(HOST_PYTHON3_BABEL_CLDR_DIR))
+ @$(call world/prepare, HOST_PYTHON3_BABEL)
+ @$(call touch)
+
+
+# vim: syntax=make
diff --git a/rules/host-python3-cffi.in b/rules/host-python3-cffi.in
index 74a723bbe..f1ef95cad 100644
--- a/rules/host-python3-cffi.in
+++ b/rules/host-python3-cffi.in
@@ -1,7 +1,8 @@
## SECTION=hosttools_noprompt
config HOST_PYTHON3_CFFI
- tristate
- select HOST_PYTHON3
- help
- Foreign Function Interface for Python calling C code.
+ tristate
+ select HOST_PYTHON3
+ select HOST_PYTHON3_PYCPARSER
+ help
+ Foreign Function Interface for Python calling C code.
diff --git a/rules/host-python3-flit-core.in b/rules/host-python3-flit-core.in
new file mode 100644
index 000000000..21af4b5da
--- /dev/null
+++ b/rules/host-python3-flit-core.in
@@ -0,0 +1,6 @@
+## SECTION=hosttools_noprompt
+
+config HOST_PYTHON3_FLIT_CORE
+ tristate
+ default y if ALLYES
+ select HOST_PYTHON3
diff --git a/rules/host-python3-flit-core.make b/rules/host-python3-flit-core.make
new file mode 100644
index 000000000..9dfa29cc2
--- /dev/null
+++ b/rules/host-python3-flit-core.make
@@ -0,0 +1,34 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_PYTHON3_FLIT_CORE) += host-python3-flit-core
+
+#
+# Paths and names
+#
+HOST_PYTHON3_FLIT_CORE_VERSION := 3.8.0
+HOST_PYTHON3_FLIT_CORE_MD5 := 7c41da13273f7787709a24f74e0f5a99
+HOST_PYTHON3_FLIT_CORE := flit_core-$(HOST_PYTHON3_FLIT_CORE_VERSION)
+HOST_PYTHON3_FLIT_CORE_SUFFIX := tar.gz
+HOST_PYTHON3_FLIT_CORE_URL := $(call ptx/mirror-pypi, flit-core, $(HOST_PYTHON3_FLIT_CORE).$(HOST_PYTHON3_FLIT_CORE_SUFFIX))
+HOST_PYTHON3_FLIT_CORE_SOURCE := $(SRCDIR)/$(HOST_PYTHON3_FLIT_CORE).$(HOST_PYTHON3_FLIT_CORE_SUFFIX)
+HOST_PYTHON3_FLIT_CORE_DIR := $(HOST_BUILDDIR)/$(HOST_PYTHON3_FLIT_CORE)
+HOST_PYTHON3_FLIT_CORE_LICENSE := BSD-3-Clause
+HOST_PYTHON3_FLIT_CORE_LICENSE_FILES := \
+ file://LICENSE;md5=41eb78fa8a872983a882c694a8305f08
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_PYTHON3_FLIT_CORE_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-python3-installer.in b/rules/host-python3-installer.in
new file mode 100644
index 000000000..5b31a1a2e
--- /dev/null
+++ b/rules/host-python3-installer.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_PYTHON3_INSTALLER
+ tristate
+ default y if ALLYES
+ select HOST_PYTHON3
+ select HOST_PYTHON3_FLIT_CORE
diff --git a/rules/host-python3-installer.make b/rules/host-python3-installer.make
new file mode 100644
index 000000000..0356d48fb
--- /dev/null
+++ b/rules/host-python3-installer.make
@@ -0,0 +1,34 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_PYTHON3_INSTALLER) += host-python3-installer
+
+#
+# Paths and names
+#
+HOST_PYTHON3_INSTALLER_VERSION := 0.7.0
+HOST_PYTHON3_INSTALLER_MD5 := d961d1105c9270049528b1167ed021bc
+HOST_PYTHON3_INSTALLER := installer-$(HOST_PYTHON3_INSTALLER_VERSION)
+HOST_PYTHON3_INSTALLER_SUFFIX := tar.gz
+HOST_PYTHON3_INSTALLER_URL := $(call ptx/mirror-pypi, installer, $(HOST_PYTHON3_INSTALLER).$(HOST_PYTHON3_INSTALLER_SUFFIX))
+HOST_PYTHON3_INSTALLER_SOURCE := $(SRCDIR)/$(HOST_PYTHON3_INSTALLER).$(HOST_PYTHON3_INSTALLER_SUFFIX)
+HOST_PYTHON3_INSTALLER_DIR := $(HOST_BUILDDIR)/$(HOST_PYTHON3_INSTALLER)
+HOST_PYTHON3_INSTALLER_LICENSE := MIT
+HOST_PYTHON3_INSTALLER_LICENSE_FILES := \
+ file://LICENSE;md5=5038641aec7a77451e31da828ebfae00
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_PYTHON3_INSTALLER_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-python3-numpy.in b/rules/host-python3-numpy.in
new file mode 100644
index 000000000..5e5043feb
--- /dev/null
+++ b/rules/host-python3-numpy.in
@@ -0,0 +1,8 @@
+## SECTION=hosttools_noprompt
+
+config HOST_PYTHON3_NUMPY
+ tristate
+ default y if ALLYES
+ select HOST_PYTHON3
+ select HOST_PYTHON3_SETUPTOOLS
+ select HOST_CYTHON3
diff --git a/rules/host-python3-numpy.make b/rules/host-python3-numpy.make
new file mode 100644
index 000000000..764bd5675
--- /dev/null
+++ b/rules/host-python3-numpy.make
@@ -0,0 +1,39 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_PYTHON3_NUMPY) += host-python3-numpy
+
+#
+# Paths and names
+#
+HOST_PYTHON3_NUMPY_DIR = $(HOST_BUILDDIR)/$(HOST_PYTHON3_NUMPY)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_PYTHON3_NUMPY_CONF_ENV := \
+ $(HOST_ENV) \
+ SETUPTOOLS_USE_DISTUTILS=stdlib \
+ NPY_DISABLE_SVML=1
+
+HOST_PYTHON3_NUMPY_CONF_TOOL := python3
+
+HOST_PYTHON3_NUMPY_CXXFLAGS := \
+ -std=c++11
+
+$(STATEDIR)/host-python3-numpy.prepare:
+ @$(call targetinfo)
+ @$(call world/prepare, HOST_PYTHON3_NUMPY)
+ @echo -e '[DEFAULT]\nlibrary_dirs =\ninclude_dirs =' > $(HOST_PYTHON3_NUMPY_DIR)/site.cfg
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/host-python3-packaging.in b/rules/host-python3-packaging.in
new file mode 100644
index 000000000..b30e1f5cf
--- /dev/null
+++ b/rules/host-python3-packaging.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_PYTHON3_PACKAGING
+ tristate
+ default y if ALLYES
+ select HOST_PYTHON3
+ select HOST_PYTHON3_FLIT_CORE
diff --git a/rules/host-python3-packaging.make b/rules/host-python3-packaging.make
new file mode 100644
index 000000000..34a7fc75b
--- /dev/null
+++ b/rules/host-python3-packaging.make
@@ -0,0 +1,36 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_PYTHON3_PACKAGING) += host-python3-packaging
+
+#
+# Paths and names
+#
+HOST_PYTHON3_PACKAGING_VERSION := 23.1
+HOST_PYTHON3_PACKAGING_MD5 := f7d5c39c6f92cc2dfa1293ba8f6c097c
+HOST_PYTHON3_PACKAGING := packaging-$(HOST_PYTHON3_PACKAGING_VERSION)
+HOST_PYTHON3_PACKAGING_SUFFIX := tar.gz
+HOST_PYTHON3_PACKAGING_URL := $(call ptx/mirror-pypi, packaging, $(HOST_PYTHON3_PACKAGING).$(HOST_PYTHON3_PACKAGING_SUFFIX))
+HOST_PYTHON3_PACKAGING_SOURCE := $(SRCDIR)/$(HOST_PYTHON3_PACKAGING).$(HOST_PYTHON3_PACKAGING_SUFFIX)
+HOST_PYTHON3_PACKAGING_DIR := $(HOST_BUILDDIR)/$(HOST_PYTHON3_PACKAGING)
+HOST_PYTHON3_PACKAGING_LICENSE := Apache-2.0 OR BSD-2-Clause
+HOST_PYTHON3_PACKAGING_LICENSE_FILES := \
+ file://LICENSE;md5=faadaedca9251a90b205c9167578ce91 \
+ file://LICENSE.APACHE;md5=2ee41112a44fe7014dce33e26468ba93 \
+ file://LICENSE.BSD;md5=7bef9bf4a8e4263634d0597e7ba100b8
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_PYTHON3_PACKAGING_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-python3-pip.in b/rules/host-python3-pip.in
new file mode 100644
index 000000000..89e48b317
--- /dev/null
+++ b/rules/host-python3-pip.in
@@ -0,0 +1,9 @@
+## SECTION=hosttools_noprompt
+
+config HOST_PYTHON3_PIP
+ tristate
+ select HOST_SYSTEM_PYTHON3
+ select HOST_PYTHON3_INSTALLER
+ select HOST_PYTHON3_PYBUILD
+ select HOST_PYTHON3_WHEEL
+ default ALLYES
diff --git a/rules/host-python3-pip.make b/rules/host-python3-pip.make
new file mode 100644
index 000000000..a3ecab84a
--- /dev/null
+++ b/rules/host-python3-pip.make
@@ -0,0 +1,23 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_PYTHON3_PIP) += host-python3-pip
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# python3
+#
+HOST_PYTHON3_PIP_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-python3-pybuild.in b/rules/host-python3-pybuild.in
new file mode 100644
index 000000000..7a38251af
--- /dev/null
+++ b/rules/host-python3-pybuild.in
@@ -0,0 +1,10 @@
+## SECTION=hosttools_noprompt
+
+config HOST_PYTHON3_PYBUILD
+ tristate
+ default y if ALLYES
+ select HOST_PYTHON3
+ select HOST_PYTHON3_FLIT_CORE
+ select HOST_PYTHON3_PACKAGING
+ select HOST_PYTHON3_PYPROJECT_HOOKS
+ select HOST_PYTHON3_TOMLI
diff --git a/rules/host-python3-pybuild.make b/rules/host-python3-pybuild.make
new file mode 100644
index 000000000..6f507bf53
--- /dev/null
+++ b/rules/host-python3-pybuild.make
@@ -0,0 +1,34 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_PYTHON3_PYBUILD) += host-python3-pybuild
+
+#
+# Paths and names
+#
+HOST_PYTHON3_PYBUILD_VERSION := 0.10.0
+HOST_PYTHON3_PYBUILD_MD5 := 742e7cd0a67455c1df90061b42088bd2
+HOST_PYTHON3_PYBUILD := build-$(HOST_PYTHON3_PYBUILD_VERSION)
+HOST_PYTHON3_PYBUILD_SUFFIX := tar.gz
+HOST_PYTHON3_PYBUILD_URL := $(call ptx/mirror-pypi, build, $(HOST_PYTHON3_PYBUILD).$(HOST_PYTHON3_PYBUILD_SUFFIX))
+HOST_PYTHON3_PYBUILD_SOURCE := $(SRCDIR)/$(HOST_PYTHON3_PYBUILD).$(HOST_PYTHON3_PYBUILD_SUFFIX)
+HOST_PYTHON3_PYBUILD_DIR := $(HOST_BUILDDIR)/$(HOST_PYTHON3_PYBUILD)
+HOST_PYTHON3_PYBUILD_LICENSE := MIT
+HOST_PYTHON3_PYBUILD_LICENSE_FILES := \
+ file://LICENSE;md5=310439af287b0fb4780b2ad6907c256c
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_PYTHON3_PYBUILD_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-python3-pycparser.in b/rules/host-python3-pycparser.in
new file mode 100644
index 000000000..33c6e93ac
--- /dev/null
+++ b/rules/host-python3-pycparser.in
@@ -0,0 +1,6 @@
+## SECTION=hosttools_noprompt
+
+config HOST_PYTHON3_PYCPARSER
+ tristate
+ default y if ALLYES
+ select HOST_PYTHON3_SETUPTOOLS
diff --git a/rules/host-python3-pycparser.make b/rules/host-python3-pycparser.make
new file mode 100644
index 000000000..c6e8c0d3d
--- /dev/null
+++ b/rules/host-python3-pycparser.make
@@ -0,0 +1,20 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Artur Wiebe <artur@4wiebe.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_PYTHON3_PYCPARSER) += host-python3-pycparser
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_PYTHON3_PYCPARSER_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-python3-pyproject-hooks.in b/rules/host-python3-pyproject-hooks.in
new file mode 100644
index 000000000..9f0c41616
--- /dev/null
+++ b/rules/host-python3-pyproject-hooks.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_PYTHON3_PYPROJECT_HOOKS
+ tristate
+ default y if ALLYES
+ select HOST_PYTHON3
+ select HOST_PYTHON3_FLIT_CORE
diff --git a/rules/host-python3-pyproject-hooks.make b/rules/host-python3-pyproject-hooks.make
new file mode 100644
index 000000000..0147b8257
--- /dev/null
+++ b/rules/host-python3-pyproject-hooks.make
@@ -0,0 +1,34 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_PYTHON3_PYPROJECT_HOOKS) += host-python3-pyproject-hooks
+
+#
+# Paths and names
+#
+HOST_PYTHON3_PYPROJECT_HOOKS_VERSION := 1.0.0
+HOST_PYTHON3_PYPROJECT_HOOKS_MD5 := 69b0b6de189bc04c3f9e304281765741
+HOST_PYTHON3_PYPROJECT_HOOKS := pyproject_hooks-$(HOST_PYTHON3_PYPROJECT_HOOKS_VERSION)
+HOST_PYTHON3_PYPROJECT_HOOKS_SUFFIX := tar.gz
+HOST_PYTHON3_PYPROJECT_HOOKS_URL := $(call ptx/mirror-pypi, pyproject_hooks, $(HOST_PYTHON3_PYPROJECT_HOOKS).$(HOST_PYTHON3_PYPROJECT_HOOKS_SUFFIX))
+HOST_PYTHON3_PYPROJECT_HOOKS_SOURCE := $(SRCDIR)/$(HOST_PYTHON3_PYPROJECT_HOOKS).$(HOST_PYTHON3_PYPROJECT_HOOKS_SUFFIX)
+HOST_PYTHON3_PYPROJECT_HOOKS_DIR := $(HOST_BUILDDIR)/$(HOST_PYTHON3_PYPROJECT_HOOKS)
+HOST_PYTHON3_PYPROJECT_HOOKS_LICENSE := MIT
+HOST_PYTHON3_PYPROJECT_HOOKS_LICENSE_FILES := \
+ file://LICENSE;md5=aad69c93f605003e3342b174d9b0708c
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_PYTHON3_PYPROJECT_HOOKS_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-python3-scons.in b/rules/host-python3-scons.in
index 832ae3e4b..ca090956f 100644
--- a/rules/host-python3-scons.in
+++ b/rules/host-python3-scons.in
@@ -4,3 +4,6 @@ config HOST_PYTHON3_SCONS
tristate
default y if ALLYES
select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_PYBUILD
+ select HOST_SYSTEM_PYTHON3_INSTALLER
+ select HOST_SYSTEM_PYTHON3_WHEEL
diff --git a/rules/host-python3-scons.make b/rules/host-python3-scons.make
index d790e81c8..2b529401a 100644
--- a/rules/host-python3-scons.make
+++ b/rules/host-python3-scons.make
@@ -14,15 +14,15 @@ HOST_PACKAGES-$(PTXCONF_HOST_PYTHON3_SCONS) += host-python3-scons
#
# Paths and names
#
-HOST_PYTHON3_SCONS_VERSION := 3.1.2
-HOST_PYTHON3_SCONS_MD5 := 77b2f8ac2661b7a4fad51c17cb7f1b25
-HOST_PYTHON3_SCONS := python-scons-$(HOST_PYTHON3_SCONS_VERSION)
+HOST_PYTHON3_SCONS_VERSION := 4.6.0
+HOST_PYTHON3_SCONS_MD5 := 30dcc2563af408c04812a8de88ce2c2e
+HOST_PYTHON3_SCONS := SCons-$(HOST_PYTHON3_SCONS_VERSION)
HOST_PYTHON3_SCONS_SUFFIX := tar.gz
-HOST_PYTHON3_SCONS_URL := $(call ptx/mirror, SF, scons/scons-$(HOST_PYTHON3_SCONS_VERSION).$(HOST_PYTHON3_SCONS_SUFFIX))
+HOST_PYTHON3_SCONS_URL := $(call ptx/mirror-pypi, SCons, $(HOST_PYTHON3_SCONS).$(HOST_PYTHON3_SCONS_SUFFIX))
HOST_PYTHON3_SCONS_SOURCE := $(SRCDIR)/$(HOST_PYTHON3_SCONS).$(HOST_PYTHON3_SCONS_SUFFIX)
HOST_PYTHON3_SCONS_DIR := $(HOST_BUILDDIR)/$(HOST_PYTHON3_SCONS)
HOST_PYTHON3_SCONS_LICENSE := MIT
-HOST_PYTHON3_SCONS_LICENSE_FILES := file://LICENSE.txt;md5=e14e1b33428df24a40a782ae142785d0
+HOST_PYTHON3_SCONS_LICENSE_FILES := file://LICENSE;md5=d903b0b8027f461402bac9b5169b36f7
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/host-python3-semantic-version.in b/rules/host-python3-semantic-version.in
new file mode 100644
index 000000000..57561f054
--- /dev/null
+++ b/rules/host-python3-semantic-version.in
@@ -0,0 +1,6 @@
+## SECTION=hosttools_noprompt
+
+config HOST_PYTHON3_SEMANTIC_VERSION
+ tristate
+ default y if ALLYES
+ select HOST_PYTHON3_SETUPTOOLS
diff --git a/rules/host-python3-semantic-version.make b/rules/host-python3-semantic-version.make
new file mode 100644
index 000000000..4b8dee89b
--- /dev/null
+++ b/rules/host-python3-semantic-version.make
@@ -0,0 +1,20 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Artur Wiebe <artur@4wiebe.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_PYTHON3_SEMANTIC_VERSION) += host-python3-semantic-version
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_PYTHON3_SEMANTIC_VERSION_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-python3-setuptools-rust.in b/rules/host-python3-setuptools-rust.in
new file mode 100644
index 000000000..37af602f3
--- /dev/null
+++ b/rules/host-python3-setuptools-rust.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_PYTHON3_SETUPTOOLS_RUST
+ tristate
+ default y if ALLYES
+ select HOST_PYTHON3_SETUPTOOLS
+ select HOST_PYTHON3_SEMANTIC_VERSION
diff --git a/rules/host-python3-setuptools-rust.make b/rules/host-python3-setuptools-rust.make
new file mode 100644
index 000000000..6414ac062
--- /dev/null
+++ b/rules/host-python3-setuptools-rust.make
@@ -0,0 +1,33 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Artur Wiebe <artur@4wiebe.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_PYTHON3_SETUPTOOLS_RUST) += host-python3-setuptools-rust
+
+#
+# Paths and names
+#
+HOST_PYTHON3_SETUPTOOLS_RUST_VERSION := 1.5.2
+HOST_PYTHON3_SETUPTOOLS_RUST_MD5 := fd3412ca77ffd6e06e2e83d0e9636084
+HOST_PYTHON3_SETUPTOOLS_RUST := setuptools-rust-$(HOST_PYTHON3_SETUPTOOLS_RUST_VERSION)
+HOST_PYTHON3_SETUPTOOLS_RUST_SUFFIX := tar.gz
+HOST_PYTHON3_SETUPTOOLS_RUST_URL := $(call ptx/mirror-pypi, setuptools-rust, $(HOST_PYTHON3_SETUPTOOLS_RUST).$(HOST_PYTHON3_SETUPTOOLS_RUST_SUFFIX))
+HOST_PYTHON3_SETUPTOOLS_RUST_SOURCE := $(SRCDIR)/$(HOST_PYTHON3_SETUPTOOLS_RUST).$(HOST_PYTHON3_SETUPTOOLS_RUST_SUFFIX)
+HOST_PYTHON3_SETUPTOOLS_RUST_DIR := $(HOST_BUILDDIR)/$(HOST_PYTHON3_SETUPTOOLS_RUST)
+HOST_PYTHON3_SETUPTOOLS_RUST_LICENSE := MIT
+HOST_PYTHON3_SETUPTOOLS_RUST_LICENSE_FILES := file://LICENSE;md5=011cd92e702dd9e6b1a26157b6fd53f5
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_PYTHON3_SETUPTOOLS_RUST_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-python3-shiboken.in b/rules/host-python3-shiboken.in
deleted file mode 100644
index 930467d15..000000000
--- a/rules/host-python3-shiboken.in
+++ /dev/null
@@ -1,14 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=hosttools_noprompt
-
-config HOST_PYTHON3_SHIBOKEN
- tristate
- default y if ALLYES
- select HOST_APIEXTRACTOR
- select HOST_GENERATORRUNNER
- select HOST_CMAKE
- select HOST_PYTHON3
- help
- STAGING: remove in PTXdist 2022.01.0
- Qt4 has been replaces by Qt5 a long time ago.
diff --git a/rules/host-python3-shiboken.make b/rules/host-python3-shiboken.make
deleted file mode 100644
index 2daeaba4b..000000000
--- a/rules/host-python3-shiboken.make
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2016 by Robin van der Gracht <robin@protonic.nl>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-HOST_PACKAGES-$(PTXCONF_HOST_PYTHON3_SHIBOKEN) += host-python3-shiboken
-
-#
-# Paths and names
-#
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# cmake
-#
-HOST_PYTHON3_SHIBOKEN_CONF_TOOL := cmake
-HOST_PYTHON3_SHIBOKEN_CONF_OPT = \
- $(HOST_CMAKE_OPT) \
- -DBUILD_TESTS:BOOL=OFF \
- -DDISABLE_DOCSTRINGS:BOOL=ON \
- -DUSE_PYTHON3:BOOL=ON \
- -DPython3_PREFERRED_VERSION=python$(PYTHON3_MAJORMINOR)
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/host-python3-shiboken.install:
- @$(call targetinfo)
- @$(call world/install, HOST_PYTHON3_SHIBOKEN)
- @sed -i -e 's,"$(PTXDIST_SYSROOT_HOST),",g' \
- $(HOST_PYTHON3_SHIBOKEN_PKGDIR)/lib/cmake/Shiboken-$(PYTHON3_SHIBOKEN_VERSION)/ShibokenConfig.cpython-*.cmake
- @$(call touch)
-
-$(STATEDIR)/host-python3-shiboken.install.post:
- @$(call targetinfo)
- @$(call world/install.post, HOST_PYTHON3_SHIBOKEN)
- @sed -i -e 's,(/,($(PTXDIST_SYSROOT_HOST)/,g' \
- '$(PTXDIST_SYSROOT_HOST)/lib/cmake/Shiboken-$(PYTHON3_SHIBOKEN_VERSION)/ShibokenConfig.cmake'
- @sed -i -e 's,"/,"$(PTXDIST_SYSROOT_HOST)/,g' \
- $(PTXDIST_SYSROOT_HOST)/lib/cmake/Shiboken-$(PYTHON3_SHIBOKEN_VERSION)/ShibokenConfig.cpython-*.cmake
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/host-python3-toml.make b/rules/host-python3-toml.make
index 5a774f7c7..34b1bae02 100644
--- a/rules/host-python3-toml.make
+++ b/rules/host-python3-toml.make
@@ -9,7 +9,7 @@
#
# We provide this package
#
-PACKAGES-$(PTXCONF_HOST_PYTHON3_TOML) += host-python3-toml
+HOST_PACKAGES-$(PTXCONF_HOST_PYTHON3_TOML) += host-python3-toml
#
# Paths and names
diff --git a/rules/host-python3-tomli.in b/rules/host-python3-tomli.in
new file mode 100644
index 000000000..d1473c39b
--- /dev/null
+++ b/rules/host-python3-tomli.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_PYTHON3_TOMLI
+ tristate
+ default y if ALLYES
+ select HOST_PYTHON3
+ select HOST_PYTHON3_FLIT_CORE
diff --git a/rules/host-python3-tomli.make b/rules/host-python3-tomli.make
new file mode 100644
index 000000000..bad5d556b
--- /dev/null
+++ b/rules/host-python3-tomli.make
@@ -0,0 +1,34 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_PYTHON3_TOMLI) += host-python3-tomli
+
+#
+# Paths and names
+#
+HOST_PYTHON3_TOMLI_VERSION := 2.0.1
+HOST_PYTHON3_TOMLI_MD5 := d4341621d423a7ca6822e23d6d52bb9a
+HOST_PYTHON3_TOMLI := tomli-$(HOST_PYTHON3_TOMLI_VERSION)
+HOST_PYTHON3_TOMLI_SUFFIX := tar.gz
+HOST_PYTHON3_TOMLI_URL := $(call ptx/mirror-pypi, tomli, $(HOST_PYTHON3_TOMLI).$(HOST_PYTHON3_TOMLI_SUFFIX))
+HOST_PYTHON3_TOMLI_SOURCE := $(SRCDIR)/$(HOST_PYTHON3_TOMLI).$(HOST_PYTHON3_TOMLI_SUFFIX)
+HOST_PYTHON3_TOMLI_DIR := $(HOST_BUILDDIR)/$(HOST_PYTHON3_TOMLI)
+HOST_PYTHON3_TOMLI_LICENSE := MIT
+HOST_PYTHON3_TOMLI_LICENSE_FILES := \
+ file://LICENSE;md5=aaaaf0879d17df0110d1aa8c8c9f46f5
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_PYTHON3_TOMLI_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-python3-tz.in b/rules/host-python3-tz.in
new file mode 100644
index 000000000..fc0cba845
--- /dev/null
+++ b/rules/host-python3-tz.in
@@ -0,0 +1,6 @@
+## SECTION=hosttools_noprompt
+
+config HOST_PYTHON3_TZ
+ tristate
+ default y if ALLYES
+ select HOST_PYTHON3
diff --git a/rules/host-python3-tz.make b/rules/host-python3-tz.make
new file mode 100644
index 000000000..fddffcc90
--- /dev/null
+++ b/rules/host-python3-tz.make
@@ -0,0 +1,33 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2019 by Robin van der Gracht <robin@protonic.nl>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_PYTHON3_TZ) += host-python3-tz
+
+#
+# Paths and names
+#
+HOST_PYTHON3_TZ_VERSION := 2018.9
+HOST_PYTHON3_TZ_MD5 := 0f57d76c64d0965e7429c9b871f6b711
+HOST_PYTHON3_TZ := pytz-$(HOST_PYTHON3_TZ_VERSION)
+HOST_PYTHON3_TZ_SUFFIX := tar.gz
+HOST_PYTHON3_TZ_URL := $(call ptx/mirror-pypi, pytz, $(HOST_PYTHON3_TZ).$(PYTHON3_IFADDR_SUFFIX))
+HOST_PYTHON3_TZ_SOURCE := $(SRCDIR)/$(HOST_PYTHON3_TZ).$(HOST_PYTHON3_TZ_SUFFIX)
+HOST_PYTHON3_TZ_DIR := $(HOST_BUILDDIR)/$(HOST_PYTHON3_TZ)
+HOST_PYTHON3_TZ_LICENSE := MIT
+HOST_PYTHON3_TZ_LICENSE_FILES := file://LICENSE.txt;md5=4878a915709225bceab739bdc2a18e8d
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_PYTHON3_TZ_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-python3-wheel.in b/rules/host-python3-wheel.in
new file mode 100644
index 000000000..ca5d429f2
--- /dev/null
+++ b/rules/host-python3-wheel.in
@@ -0,0 +1,8 @@
+## SECTION=hosttools_noprompt
+
+config HOST_PYTHON3_WHEEL
+ tristate
+ default y if ALLYES
+ select HOST_PYTHON3
+ select HOST_PYTHON3_PYBUILD
+ select HOST_PYTHON3_INSTALLER
diff --git a/rules/host-python3-wheel.make b/rules/host-python3-wheel.make
new file mode 100644
index 000000000..3b3328225
--- /dev/null
+++ b/rules/host-python3-wheel.make
@@ -0,0 +1,34 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_PYTHON3_WHEEL) += host-python3-wheel
+
+#
+# Paths and names
+#
+HOST_PYTHON3_WHEEL_VERSION := 0.40.0
+HOST_PYTHON3_WHEEL_MD5 := ec5004c46d1905da98bb5bc1a10ddd21
+HOST_PYTHON3_WHEEL := wheel-$(HOST_PYTHON3_WHEEL_VERSION)
+HOST_PYTHON3_WHEEL_SUFFIX := tar.gz
+HOST_PYTHON3_WHEEL_URL := $(call ptx/mirror-pypi, wheel, $(HOST_PYTHON3_WHEEL).$(HOST_PYTHON3_WHEEL_SUFFIX))
+HOST_PYTHON3_WHEEL_SOURCE := $(SRCDIR)/$(HOST_PYTHON3_WHEEL).$(HOST_PYTHON3_WHEEL_SUFFIX)
+HOST_PYTHON3_WHEEL_DIR := $(HOST_BUILDDIR)/$(HOST_PYTHON3_WHEEL)
+HOST_PYTHON3_WHEEL_LICENSE := MIT
+HOST_PYTHON3_WHEEL_LICENSE_FILES := \
+ file://LICENSE.txt;md5=7ffb0db04527cfe380e4f2726bd05ebf
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_PYTHON3_WHEEL_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-python3.make b/rules/host-python3.make
index 5b0df6734..48a3e58c4 100644
--- a/rules/host-python3.make
+++ b/rules/host-python3.make
@@ -17,19 +17,19 @@ HOST_PACKAGES-$(PTXCONF_HOST_PYTHON3) += host-python3
#
HOST_PYTHON3_DIR = $(HOST_BUILDDIR)/$(PYTHON3)
-HOSTPYTHON3 = $(PTXDIST_SYSROOT_HOST)/bin/python$(PYTHON3_MAJORMINOR)
+HOSTPYTHON3 = $(PTXDIST_SYSROOT_HOST)/usr/bin/python$(PYTHON3_MAJORMINOR)
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
# Note: the LDFLAGS are used by setup.py for manual searches
-HOST_PYTHON3_ENV := \
+HOST_PYTHON3_CONF_ENV := \
$(HOST_ENV) \
ac_sys_system=Linux \
ac_sys_release=2 \
MACHDEP=linux \
- LDFLAGS="-L$(PTXDIST_SYSROOT_HOST)/lib"
+ LDFLAGS="-L$(PTXDIST_SYSROOT_HOST)/usr/lib"
#
# autoconf
@@ -39,7 +39,6 @@ HOST_PYTHON3_CONF_TOOL := autoconf
# Needed for setup.py to find things in sysroot-host
HOST_PYTHON3_CONF_OPT := \
$(HOST_AUTOCONF) \
- --includedir=$(PTXDIST_SYSROOT_HOST)/include \
--enable-shared \
--disable-profiling \
--disable-optimizations \
@@ -57,13 +56,16 @@ HOST_PYTHON3_CONF_OPT := \
--without-dtrace \
--with-computed-gotos \
--without-ensurepip \
- --with-openssl=$(PTXDIST_SYSROOT_HOST)
+ --with-openssl=$(PTXDIST_SYSROOT_HOST)/usr
$(STATEDIR)/host-python3.prepare:
@$(call targetinfo)
@$(call world/prepare, HOST_PYTHON3)
# # make sure SOABI for host and target never match
- @sed -i 's;\(\(EXT_SUFFIX\|SOABI\)=.*\)linux-gnu\>;\1host-gnu;' \
+# # make sure libffi is detected correctly
+ @sed -i \
+ -e 's;\(\(EXT_SUFFIX\|SOABI\)=.*\)linux-gnu\>;\1host-gnu;' \
+ -e "s;LIBFFI_INCLUDEDIR=*;LIBFFI_INCLUDEDIR=$(PTXDIST_SYSROOT_HOST)/usr/include;" \
$(HOST_PYTHON3_DIR)/Makefile
@$(call touch)
@@ -71,31 +73,22 @@ $(STATEDIR)/host-python3.prepare:
# Install
# ----------------------------------------------------------------------------
-# reset INCLUDEDIR for the installation
-HOST_PYTHON3_INSTALL_OPT := \
- INCLUDEDIR=/include \
- install
-
$(STATEDIR)/host-python3.install:
@$(call targetinfo)
- @$(call install, HOST_PYTHON3,,h)
+ @$(call world/install, HOST_PYTHON3)
#
# remove "python" so that it doesn't interfere with the build
# machine's python
#
-# the target build proces will only use python with the
+# the target build process will only use python with the
# python-$(PYTHON3_MAJORMINOR)
#
@rm -v \
- "$(HOST_PYTHON3_PKGDIR)/bin/python3" \
- "$(HOST_PYTHON3_PKGDIR)/bin/python3-config"
- @$(call touch)
-
-$(STATEDIR)/host-python3.install.post:
- @$(call targetinfo)
- @$(call world/install.post, HOST_PYTHON3)
- @sed -i 's;prefix_build="";prefix_build="$(PTXDIST_SYSROOT_HOST)";' \
- $(PTXDIST_SYSROOT_HOST)/bin/python3*-config
+ "$(HOST_PYTHON3_PKGDIR)/usr/bin/python3" \
+ "$(HOST_PYTHON3_PKGDIR)/usr/bin/python3-config"
+ @sed -i \
+ -e "s;\([' ]\)\(/usr/include\);\1$(PTXDIST_SYSROOT_HOST)\2;g" \
+ $(HOST_PYTHON3_PKGDIR)/usr/lib/python$(PYTHON3_MAJORMINOR)/_sysconfigdata_*-linux-gnu.py
@$(call touch)
# vim: syntax=make
diff --git a/rules/host-qemu.in b/rules/host-qemu.in
index 1456d1050..42b85a744 100644
--- a/rules/host-qemu.in
+++ b/rules/host-qemu.in
@@ -4,8 +4,10 @@ menuconfig HOST_QEMU
tristate
default y if ALLYES
prompt "host-side qemu "
+ select HOST_DTC
select HOST_GLIB
select HOST_LIBCAP_NG
+ select HOST_LIBSLIRP
select HOST_ZLIB
select HOST_SYSTEM_PYTHON3
select HOST_LIBUSB if HOST_QEMU_SYS
diff --git a/rules/host-qemu.make b/rules/host-qemu.make
index 6146effdd..416855daa 100644
--- a/rules/host-qemu.make
+++ b/rules/host-qemu.make
@@ -13,19 +13,6 @@
#
HOST_PACKAGES-$(PTXCONF_HOST_QEMU) += host-qemu
-#
-# Paths and names
-#
-HOST_QEMU_VERSION := 5.2.0
-HOST_QEMU_MD5 := 179f86928835da857c237b42f4b2df73
-HOST_QEMU := qemu-$(HOST_QEMU_VERSION)
-HOST_QEMU_SUFFIX := tar.xz
-HOST_QEMU_URL := https://download.qemu.org/$(HOST_QEMU).$(HOST_QEMU_SUFFIX)
-HOST_QEMU_SOURCE := $(SRCDIR)/$(HOST_QEMU).$(HOST_QEMU_SUFFIX)
-HOST_QEMU_DIR := $(HOST_BUILDDIR)/$(HOST_QEMU)
-HOST_QEMU_LICENSE := GPL-2.0-only AND GPL-2.0-or-later AND MIT AND BSD-1-Clause AND BSD-2-Clause AND BSD-3-Clause
-HOST_QEMU_BUILD_OOT := YES
-
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
@@ -51,149 +38,177 @@ endif
ifdef PTXCONF_ARCH_ARM64
HOST_QEMU_TARGETS := aarch64
endif
+ifdef PTXCONF_ARCH_MIPS
+ifdef PTXCONF_ENDIAN_LITTLE
+HOST_QEMU_TARGETS := mipsel
+endif
+endif
HOST_QEMU_SYS_TARGETS := $(patsubst %,%-softmmu,$(HOST_QEMU_TARGETS))
HOST_QEMU_USR_TARGETS := $(patsubst %,%-linux-user,$(HOST_QEMU_TARGETS))
HOST_QEMU_CONF_TOOL := autoconf
-# Note: not realy autoconf:
+# Note: not really autoconf:
# e.g. there is --enable-debug but not --disable-debug
HOST_QEMU_CONF_OPT := \
- --prefix=/. \
+ --prefix=/usr \
--target-list=" \
$(call ptx/ifdef, PTXCONF_HOST_QEMU_SYS,$(HOST_QEMU_SYS_TARGETS),) \
$(call ptx/ifdef, PTXCONF_HOST_QEMU_USR,$(HOST_QEMU_USR_TARGETS),) \
" \
- --meson=meson \
--ninja=ninja \
+ --disable-download \
--disable-sanitizers \
--disable-tsan \
--disable-werror \
--enable-stack-protector \
+ --with-coroutine=auto \
+ --disable-plugins \
+ --disable-containers \
--audio-drv-list= \
- --block-drv-rw-whitelist= \
--block-drv-ro-whitelist= \
- --enable-trace-backends=nop \
+ --block-drv-rw-whitelist= \
+ --enable-coroutine-pool \
+ --disable-cfi \
+ --disable-debug-mutex \
+ --enable-fdt \
+ --disable-fuzzing \
+ --disable-lto \
+ --disable-module-upgrades \
+ --disable-qom-cast-debug \
+ --disable-rng-none \
+ --disable-strip \
--disable-tcg-interpreter \
- --enable-malloc-trim \
- --with-coroutine= \
+ --enable-trace-backends=nop \
--tls-priority=NORMAL \
- --disable-plugins \
- --disable-containers \
- --$(call ptx/endis, PTXCONF_HOST_QEMU_SYS)-system \
- --disable-user \
- --$(call ptx/endis, PTXCONF_HOST_QEMU_USR)-linux-user \
- --disable-bsd-user \
+ --disable-alsa \
+ --enable-attr \
+ --disable-auth-pam \
+ --disable-blkio \
+ --disable-bochs \
+ --disable-bpf \
+ --disable-brlapi \
+ --disable-bzip2 \
+ --disable-canokey \
+ --enable-cap-ng \
+ --disable-capstone \
+ --disable-cloop \
+ --disable-cocoa \
+ --disable-coreaudio \
+ --disable-crypto-afalg \
+ --disable-curl \
+ --disable-curses \
+ --disable-dmg \
--disable-docs \
- --disable-guest-agent \
- --disable-guest-agent-msi \
- --enable-pie \
- --disable-modules \
- --disable-module-upgrades \
- --disable-debug-tcg \
- --disable-debug-info \
- --disable-sparse \
- --disable-safe-stack \
- --disable-gnutls \
- --disable-nettle \
+ --disable-dsound \
+ --disable-fuse \
+ --disable-fuse-lseek \
--disable-gcrypt \
- --disable-auth-pam \
- --disable-sdl \
- --disable-sdl-image \
+ --disable-gettext \
+ --disable-gio \
+ --disable-glusterfs \
+ --disable-gnutls \
--disable-gtk \
- --disable-vte \
- --disable-curses \
+ --disable-gtk-clipboard \
+ --disable-guest-agent \
+ --disable-guest-agent-msi \
+ --disable-hvf \
--enable-iconv \
- --disable-vnc \
- --disable-vnc-sasl \
- --disable-vnc-jpeg \
- --disable-vnc-png \
- --disable-cocoa \
- --enable-virtfs \
- --disable-virtiofsd \
- --disable-libudev \
- --disable-mpath \
- --disable-xen \
- --disable-xen-pci-passthrough \
- --disable-brlapi \
- --disable-curl \
- --enable-membarrier \
- --enable-fdt \
+ --disable-jack \
+ --disable-keyring \
--enable-kvm \
- --disable-hax \
- --disable-hvf \
- --disable-whpx \
- --disable-rdma \
- --disable-pvrdma \
- --disable-netmap \
- --disable-linux-aio \
- --disable-linux-io-uring \
- --enable-cap-ng \
- --enable-attr \
- --enable-vhost-net \
- --enable-vhost-vsock \
- --enable-vhost-scsi \
- --disable-vhost-crypto \
- --enable-vhost-kernel \
- --disable-vhost-user \
- --disable-vhost-user-blk-server \
- --disable-vhost-vdpa \
- --disable-spice \
- --disable-rbd \
+ --disable-l2tpv3 \
+ --disable-libdaxctl \
+ --disable-libdw \
--disable-libiscsi \
--disable-libnfs \
- --disable-smartcard \
- --disable-u2f \
+ --disable-libpmem \
+ --disable-libssh \
+ --disable-libudev \
--$(call ptx/endis, PTXCONF_HOST_QEMU_SYS)-libusb \
+ --disable-libvduse \
+ --disable-linux-aio \
+ --disable-linux-io-uring \
--disable-live-block-migration \
- --disable-usb-redir \
- --disable-lzo \
- --disable-snappy \
- --disable-bzip2 \
--disable-lzfse \
- --disable-zstd \
- --disable-seccomp \
- --enable-coroutine-pool \
- --disable-glusterfs \
- --disable-tpm \
- --disable-libssh \
+ --disable-lzo \
+ --enable-malloc-trim \
+ --enable-membarrier \
+ --disable-mpath \
+ --enable-multiprocess \
+ --disable-netmap \
+ --disable-nettle \
--disable-numa \
- --disable-libxml2 \
- --disable-tcmalloc \
- --disable-jemalloc \
- --enable-replication \
+ --disable-nvmm \
--disable-opengl \
- --disable-virglrenderer \
- --disable-xfsctl \
- --disable-qom-cast-debug \
- --disable-tools \
- --disable-bochs \
- --disable-cloop \
- --disable-dmg \
+ --disable-oss \
+ --disable-pa \
+ --disable-pipewire \
+ --disable-parallels \
+ --disable-png \
+ --disable-pvrdma \
--disable-qcow1 \
+ --disable-qed \
+ --disable-qga-vss \
+ --disable-rbd \
+ --disable-rdma \
+ --disable-replication \
+ --disable-sdl \
+ --disable-sdl-image \
+ --disable-seccomp \
+ --disable-selinux \
+ --enable-slirp \
+ --disable-slirp-smbd \
+ --disable-smartcard \
+ --disable-snappy \
+ --disable-sndio \
+ --disable-sparse \
+ --disable-spice \
+ --disable-spice-protocol \
+ --enable-tcg \
+ --disable-tools \
+ --disable-tpm \
+ --disable-u2f \
+ --disable-usb-redir \
--disable-vdi \
+ --disable-vduse-blk-export \
+ --disable-vfio-user-server \
+ --disable-vhost-crypto \
+ --enable-vhost-kernel \
+ --enable-vhost-net \
+ --disable-vhost-user \
+ --disable-vhost-user-blk-server \
+ --disable-vhost-vdpa \
+ --disable-virglrenderer \
+ --$(call ptx/endis, PTXCONF_HOST_QEMU_SYS)-virtfs \
+ --disable-vmnet \
+ --disable-vnc \
+ --disable-vnc-jpeg \
+ --disable-vnc-sasl \
+ --disable-vte \
--disable-vvfat \
- --disable-qed \
- --disable-parallels \
- --disable-sheepdog \
- --disable-crypto-afalg \
- --disable-capstone \
- --disable-debug-mutex \
- --disable-libpmem \
+ --disable-whpx \
+ --disable-xen \
+ --disable-xen-pci-passthrough \
--disable-xkbcommon \
- --disable-rng-none \
- --disable-libdaxctl \
- \
- --disable-fuzzing \
- --disable-keyring
+ --disable-zstd \
+ --$(call ptx/endis, PTXCONF_HOST_QEMU_SYS)-system \
+ --disable-user \
+ --$(call ptx/endis, PTXCONF_HOST_QEMU_USR)-linux-user \
+ --disable-bsd-user \
+ --enable-pie \
+ --disable-modules \
+ --disable-debug-tcg \
+ --disable-debug-info \
+ --disable-safe-stack
# Use '=' to delay $(shell ...) calls until this is needed
QEMU_CROSS_QEMU = $(call ptx/get-alternative, config/qemu, qemu-cross)
QEMU_CROSS_DL = $(shell ptxd_cross_cc_v | sed -n -e 's/.* -dynamic-linker \([^ ]*\).*/\1/p')
QEMU_CROSS_TOOLEXECLIBDIR = $(shell dirname $$(realpath $$(ptxd_cross_cc -print-file-name=libatomic.so 2> /dev/null)))
-QEMU_CROSS_LD_LIBRARY_PATH = $(PTXDIST_SYSROOT_TOOLCHAIN)/lib:$(QEMU_CROSS_TOOLEXECLIBDIR):$(SYSROOT)/$(CROSS_LIB_DIR):$(SYSROOT)/usr/$(CROSS_LIB_DIR)
+QEMU_CROSS_LD_LIBRARY_PATH = $(PTXDIST_SYSROOT_TOOLCHAIN)/lib:$(QEMU_CROSS_TOOLEXECLIBDIR):$(SYSROOT)/lib:$(SYSROOT)/usr/lib
QEMU_CROSS_QEMU_ENV = \
- QEMU="$(PTXDIST_SYSROOT_HOST)/bin/qemu-$(HOST_QEMU_TARGETS)" \
+ QEMU="$(PTXDIST_SYSROOT_HOST)/usr/bin/qemu-$(HOST_QEMU_TARGETS)" \
KERNEL_VERSION="$(KERNEL_VERSION)" \
QEMU_LD_PREFIX="$(PTXDIST_SYSROOT_TOOLCHAIN)" \
QEMU_LD_LIBRARY_PATH="$(QEMU_CROSS_LD_LIBRARY_PATH)" \
@@ -204,7 +219,7 @@ $(STATEDIR)/host-qemu.install:
@$(call world/install, HOST_QEMU)
ifdef PTXCONF_HOST_QEMU_SYS
# # necessary for qemu to find its ROM files
- @ln -vsf share/qemu $(HOST_QEMU_PKGDIR)/pc-bios
+ @ln -vsf share/qemu $(HOST_QEMU_PKGDIR)/usr/pc-bios
endif
@$(call touch)
@@ -212,16 +227,16 @@ $(STATEDIR)/host-qemu.install.post:
@$(call targetinfo)
@$(call world/install.post, HOST_QEMU)
ifdef PTXCONF_HOST_QEMU_USR
- @$(QEMU_CROSS_QEMU_ENV) ptxd_replace_magic $(QEMU_CROSS_QEMU) > $(PTXDIST_SYSROOT_CROSS)/bin/qemu-cross
- @chmod +x $(PTXDIST_SYSROOT_CROSS)/bin/qemu-cross
- @install -d -m 755 $(PTXDIST_SYSROOT_CROSS)/bin/qemu/
+ @$(QEMU_CROSS_QEMU_ENV) ptxd_replace_magic $(QEMU_CROSS_QEMU) > $(PTXDIST_SYSROOT_CROSS)/usr/bin/qemu-cross
+ @chmod +x $(PTXDIST_SYSROOT_CROSS)/usr/bin/qemu-cross
+ @install -d -m 755 $(PTXDIST_SYSROOT_CROSS)/usr/bin/qemu/
@sed \
-e 's|RTLDLIST=.*|RTLDLIST="$(PTXDIST_SYSROOT_TOOLCHAIN)$(QEMU_CROSS_DL)"|' \
- -e 's|eval $$add_env|eval $(PTXDIST_SYSROOT_CROSS)/bin/qemu-cross -E "$${add_env// /,}"|' \
- -e 's|verify_out=`|verify_out=`$(PTXDIST_SYSROOT_CROSS)/bin/qemu-cross |' \
+ -e 's|eval $$add_env|eval $(PTXDIST_SYSROOT_CROSS)/usr/bin/qemu-cross -E "$${add_env// /,}"|' \
+ -e 's|verify_out=`|verify_out=`$(PTXDIST_SYSROOT_CROSS)/usr/bin/qemu-cross |' \
-e 's|#! */.*$$|#!$(shell readlink $(PTXDIST_TOPDIR)/bin/bash)|' \
- $(PTXDIST_SYSROOT_TOOLCHAIN)/usr/bin/ldd > $(PTXDIST_SYSROOT_CROSS)/bin/qemu/ldd
- @chmod +x $(PTXDIST_SYSROOT_CROSS)/bin/qemu/ldd
+ $(PTXDIST_SYSROOT_TOOLCHAIN)/usr/bin/ldd > $(PTXDIST_SYSROOT_CROSS)/usr/bin/qemu/ldd
+ @chmod +x $(PTXDIST_SYSROOT_CROSS)/usr/bin/qemu/ldd
endif
@$(call touch)
diff --git a/rules/host-qt4.in b/rules/host-qt4.in
deleted file mode 100644
index 375091d50..000000000
--- a/rules/host-qt4.in
+++ /dev/null
@@ -1,22 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=hosttools_noprompt
-
-config HOST_QT4
- tristate
- select HOST_DBUS if HOST_QT4_DBUS
- default y if ALLYES
- help
- STAGING: remove in PTXdist 2022.01.0
- Qt4 has been replaces by Qt5 a long time ago.
-
-if HOST_QT4
-
-config HOST_QT4_DBUS
- bool
-
-config HOST_QT4_XMLPATTERNS
- bool
-
-endif
-
diff --git a/rules/host-qt4.make b/rules/host-qt4.make
deleted file mode 100644
index 29f31d264..000000000
--- a/rules/host-qt4.make
+++ /dev/null
@@ -1,179 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2009 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-HOST_PACKAGES-$(PTXCONF_HOST_QT4) += host-qt4
-
-#
-# Paths and names
-#
-HOST_QT4_DIR = $(HOST_BUILDDIR)/$(QT4)
-HOST_QT4_BUILDDIR = $(HOST_BUILDDIR)/$(QT4)-build
-HOST_QT4_BUILD_OOT := YES
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-HOST_QT4_PATH := PATH=$(HOST_PATH)
-HOST_QT4_ENV := $(HOST_ENV) MAKEFLAGS="$(PARALLELMFLAGS)"
-
-#
-# autoconf
-#
-#
-# autoconf
-#
-# Important: Use "-no-fast" here. Otherwise qmake will be called during
-# the compile stage when the environment is not properly set!
-HOST_QT4_AUTOCONF := \
- -prefix / \
- -shared \
- -opensource \
- -confirm-license \
- -release \
- -embedded \
- -no-fast \
- -no-largefile \
- -no-accessibility \
- -no-sql-ibase \
- -no-sql-mysql \
- -no-sql-odbc \
- -no-sql-psql \
- -no-sql-sqlite \
- -no-sql-sqlite2 \
- -no-qt3support \
- -optimized-qmake \
- -no-nis \
- -no-cups \
- -no-iconv \
- -pch \
- -force-pkg-config \
- -depths all \
- -make libs \
- -make tools \
- -nomake examples \
- -nomake demos \
- -nomake docs \
- -no-libpng \
- -no-libmng \
- -no-libtiff \
- -no-gif \
- -no-libjpeg \
- -no-openssl \
- -qt-zlib \
- -no-freetype \
- -stl \
- -no-glib \
- -no-phonon \
- -no-phonon-backend \
- -no-webkit \
- -no-script \
- -no-scripttools \
- -no-gfx-linuxfb \
- -no-gfx-transformed \
- -no-gfx-qvfb \
- -no-gfx-vnc \
- -no-gfx-multiscreen \
- -no-kbd-tty \
- -no-kbd-linuxinput \
- -no-kbd-qnx \
- -no-kbd-qvfb \
- -no-mouse-pc \
- -no-mouse-linuxtp \
- -no-mouse-linuxinput \
- -no-mouse-tslib \
- -no-mouse-qvfb \
- -no-mouse-qnx
-
-ifdef PTXCONF_HOST_QT4_DBUS
-HOST_QT4_AUTOCONF += -qdbus
-else
-HOST_QT4_AUTOCONF += -no-qdbus
-endif
-
-ifdef PTXCONF_HOST_QT4_XMLPATTERNS
-HOST_QT4_AUTOCONF += -xmlpatterns -exceptions
-else
-HOST_QT4_AUTOCONF += -no-xmlpatterns -no-exceptions
-endif
-
-# ----------------------------------------------------------------------------
-# Compile
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/host-qt4.compile:
- @$(call targetinfo)
- @$(call compile, HOST_QT4, sub-tools-bootstrap)
- @$(call compile, HOST_QT4, sub-xml sub-moc sub-rcc sub-uic)
- @$(call compile, HOST_QT4, sub-network)
-ifdef PTXCONF_HOST_QT4_XMLPATTERNS
- @$(call compile, HOST_QT4, sub-xmlpatterns)
-endif
- @$(call compile, HOST_QT4, -C tools/linguist/lrelease)
-ifdef PTXCONF_HOST_QT4_DBUS
- @$(call compile, HOST_QT4, sub-dbus)
- @$(call compile, HOST_QT4, -C tools/qdbus sub-qdbusxml2cpp sub-qdbuscpp2xml)
-endif
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-HOST_QT4_INSTALL_OPT = \
- INSTALL_ROOT=$(HOST_QT4_PKGDIR) \
- install_qmake \
- install_mkspecs \
- sub-xml-install_subtargets \
- sub-network-install_subtargets \
- sub-moc-install_subtargets \
- sub-rcc-install_subtargets \
- sub-uic-install_subtargets
-
-ifdef PTXCONF_HOST_QT4_DBUS
-HOST_QT4_INSTALL_TARGETS += sub-dbus-install_subtargets
-endif
-ifdef PTXCONF_HOST_QT4_XMLPATTERNS
-HOST_QT4_INSTALL_TARGETS += sub-xmlpatterns-install_subtargets
-endif
-
-$(STATEDIR)/host-qt4.install:
- @$(call targetinfo)
- @$(call world/install, HOST_QT4)
- @$(call compile, HOST_QT4, -C tools/linguist/lrelease \
- install INSTALL_ROOT=$(HOST_QT4_PKGDIR))
-ifdef PTXCONF_HOST_QT4_DBUS
- @$(call compile, HOST_QT4, -C tools/qdbus \
- INSTALL_ROOT=$(HOST_QT4_PKGDIR) \
- sub-qdbusxml2cpp-install_subtargets \
- sub-qdbuscpp2xml-install_subtargets)
-endif
- @$(call touch)
-
-$(STATEDIR)/host-qt4.install.post:
- @$(call targetinfo)
- @$(call world/install.post, HOST_QT4)
-# create a cross qmake:
-# copy host qmake and add a qt.conf (these must be in the same dir)
-# add wrapper script that sets the correct QMAKESPEC
- @rm -f $(PTXDIST_SYSROOT_CROSS)/bin/qmake $(PTXDIST_SYSROOT_CROSS)/bin/qmake-cross
- @cp $(HOST_QT4_PKGDIR)/bin/qmake $(PTXDIST_SYSROOT_CROSS)/bin/qmake-cross
-ifdef PTXCONF_QT4_PLATFORM_EMBEDDED
- @echo -e '#!/bin/sh\nexport QMAKESPEC=qws/linux-ptx-g++\nexec $(PTXDIST_SYSROOT_CROSS)/bin/qmake-cross "$$@"\n' > $(PTXDIST_SYSROOT_CROSS)/bin/qmake
-else
- @echo -e '#!/bin/sh\nexport QMAKESPEC=linux-ptx-g++\nexec $(PTXDIST_SYSROOT_CROSS)/bin/qmake-cross "$$@"\n' > $(PTXDIST_SYSROOT_CROSS)/bin/qmake
-endif
- @chmod +x $(PTXDIST_SYSROOT_CROSS)/bin/qmake
- @echo -e "[Paths]\nPrefix=$(SYSROOT)/usr\nBinaries=$(PTXDIST_SYSROOT_HOST)/bin\nImports=/usr/imports" > $(PTXDIST_SYSROOT_CROSS)/bin/qt.conf
- @echo -e "[Paths]\nPrefix=$(PTXDIST_SYSROOT_HOST)" > $(PTXDIST_SYSROOT_HOST)/bin/qt.conf
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/host-qt5.make b/rules/host-qt5.make
index f36e5fcff..165ff5adb 100644
--- a/rules/host-qt5.make
+++ b/rules/host-qt5.make
@@ -27,12 +27,12 @@ HOST_QT5_CONF_ENV := \
#
HOST_QT5_CONF_TOOL := autoconf
HOST_QT5_CONF_OPT := \
- -prefix / \
- -bindir /bin/qt5 \
- -headerdir /include/qt5 \
- -archdatadir /lib/qt5 \
- -datadir /share/qt5 \
- -hostbindir /bin/qt5 \
+ -prefix /usr \
+ -bindir /usr/bin/qt5 \
+ -headerdir /usr/include/qt5 \
+ -archdatadir /usr/lib/qt5 \
+ -datadir /usr/share/qt5 \
+ -hostbindir /usr/bin/qt5 \
$(if $(filter 1,$(PTXDIST_VERBOSE)),-v) \
-opensource \
-confirm-license \
@@ -159,7 +159,7 @@ HOST_QT5_CONF_OPT := \
HOST_QT5_CONF_OPT += \
--disable-sm
-HOST_QT5_QT_CONF := $(PTXDIST_SYSROOT_HOST)/bin/qt5/qt.conf
+HOST_QT5_QT_CONF := $(PTXDIST_SYSROOT_HOST)/usr/bin/qt5/qt.conf
HOST_QT5_MAKE_ENV := \
ICECC_REMOTE_CPP=0
@@ -167,15 +167,15 @@ HOST_QT5_MAKE_ENV := \
$(STATEDIR)/host-qt5.install.post:
@$(call targetinfo)
@$(call world/install.post, HOST_QT5)
- @echo "[Paths]" > $(HOST_QT5_QT_CONF)
- @echo "HostPrefix=$(PTXDIST_SYSROOT_HOST)" >> $(HOST_QT5_QT_CONF)
- @echo "HostData=$(PTXDIST_SYSROOT_HOST)/lib/qt5" >> $(HOST_QT5_QT_CONF)
- @echo "HostBinaries=$(PTXDIST_SYSROOT_HOST)/bin/qt5" >> $(HOST_QT5_QT_CONF)
- @echo "Prefix=$(PTXDIST_SYSROOT_HOST)" >> $(HOST_QT5_QT_CONF)
- @echo "Headers=$(PTXDIST_SYSROOT_HOST)/include/qt5" >> $(HOST_QT5_QT_CONF)
- @echo "Data=$(PTXDIST_SYSROOT_HOST)/share/qt5" >> $(HOST_QT5_QT_CONF)
- @echo "Binaries=$(PTXDIST_SYSROOT_HOST)/bin/qt5" >> $(HOST_QT5_QT_CONF)
- @echo "" >> $(HOST_QT5_QT_CONF)
+ @echo "[Paths]" > $(HOST_QT5_QT_CONF)
+ @echo "HostPrefix=$(PTXDIST_SYSROOT_HOST)/usr" >> $(HOST_QT5_QT_CONF)
+ @echo "HostData=$(PTXDIST_SYSROOT_HOST)/usr/lib/qt5" >> $(HOST_QT5_QT_CONF)
+ @echo "HostBinaries=$(PTXDIST_SYSROOT_HOST)/usr/bin/qt5" >> $(HOST_QT5_QT_CONF)
+ @echo "Prefix=$(PTXDIST_SYSROOT_HOST)/usr" >> $(HOST_QT5_QT_CONF)
+ @echo "Headers=$(PTXDIST_SYSROOT_HOST)/usr/include/qt5" >> $(HOST_QT5_QT_CONF)
+ @echo "Data=$(PTXDIST_SYSROOT_HOST)/usr/share/qt5" >> $(HOST_QT5_QT_CONF)
+ @echo "Binaries=$(PTXDIST_SYSROOT_HOST)/usr/bin/qt5" >> $(HOST_QT5_QT_CONF)
+ @echo "" >> $(HOST_QT5_QT_CONF)
@$(call touch)
# vim: syntax=make
diff --git a/rules/host-qt6.in b/rules/host-qt6.in
new file mode 100644
index 000000000..0fc072350
--- /dev/null
+++ b/rules/host-qt6.in
@@ -0,0 +1,56 @@
+## SECTION=hosttools_noprompt
+
+config HOST_QT6
+ tristate
+ select HOST_CMAKE
+ select HOST_NINJA
+ select HOST_SYSTEM_PYTHON3 if HOST_QT6_QTDECLARATIVE
+ select HOST_PCRE2
+ select HOST_WAYLAND if HOST_QT6_QTWAYLAND
+ select HOST_ZLIB
+ default y if ALLYES
+
+if HOST_QT6
+
+config HOST_QT6_GUI
+ bool
+
+config HOST_QT6_NETWORK
+ bool
+
+config HOST_QT6_DBUS
+ bool
+
+config HOST_QT6_QTTOOLS
+ select HOST_QT6_NETWORK
+ default y if ALLYES
+ bool
+
+config HOST_QT6_QTDECLARATIVE
+ bool
+ select HOST_QT6_NETWORK
+
+config HOST_QT6_QTQUICK3D
+ bool
+ select HOST_QT6_QTDECLARATIVE
+
+config HOST_QT6_QTREMOTEOBJECTS
+ bool
+ select HOST_QT6_NETWORK
+
+config HOST_QT6_QTSCXML
+ select HOST_QT6_QTDECLARATIVE
+ bool
+
+config HOST_QT6_QTSHADERTOOLS
+ select HOST_QT6_GUI
+ bool
+
+config HOST_QT6_QTWAYLAND
+ select HOST_QT6_GUI
+ bool
+
+config HOST_QT6_QTWEBENGINE
+ bool
+
+endif
diff --git a/rules/host-qt6.make b/rules/host-qt6.make
new file mode 100644
index 000000000..33148d269
--- /dev/null
+++ b/rules/host-qt6.make
@@ -0,0 +1,487 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_QT6) += host-qt6
+
+HOST_QT6_DIR = $(realpath $(HOST_BUILDDIR))/$(HOST_QT6)
+HOST_QT6_BUILD_OOT := YES
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_QT6_MODULES-y := qtbase
+HOST_QT6_MODULES- :=
+HOST_QT6_MODULES-$(PTXCONF_HOST_QT6_QTTOOLS) += qttools
+HOST_QT6_MODULES-$(PTXCONF_HOST_QT6_QTDECLARATIVE) += qtdeclarative
+HOST_QT6_MODULES- += qtimageformats
+HOST_QT6_MODULES- += qtlanguageserver
+HOST_QT6_MODULES-$(PTXCONF_HOST_QT6_QTQUICK3D) += qtquick3d
+HOST_QT6_MODULES- += qtquicktimeline
+HOST_QT6_MODULES-$(PTXCONF_HOST_QT6_QTREMOTEOBJECTS) += qtremoteobjects
+HOST_QT6_MODULES-$(PTXCONF_HOST_QT6_QTSCXML) += qtscxml
+HOST_QT6_MODULES-$(PTXCONF_HOST_QT6_QTSHADERTOOLS) += qtshadertools
+HOST_QT6_MODULES- += qtsvg
+HOST_QT6_MODULES-$(PTXCONF_HOST_QT6_QTWAYLAND) += qtwayland
+
+#
+# cmake
+#
+HOST_QT6_CONF_TOOL := cmake
+HOST_QT6_CONF_OPT := \
+ -DBUILD_SHARED_LIBS=ON \
+ $(foreach module,$(HOST_QT6_MODULES-y),-DBUILD_$(module)=ON) \
+ $(foreach module,$(HOST_QT6_MODULES-),-DBUILD_$(module)=OFF) \
+
+HOST_QT6_CONF_OPT += \
+ -DFEATURE_animation=ON \
+ -DFEATURE_appstore_compliant=OFF \
+ -DFEATURE_backtrace=OFF \
+ -DFEATURE_cborstreamreader=ON \
+ -DFEATURE_cborstreamwriter=ON \
+ -DFEATURE_ccache=OFF \
+ -DFEATURE_commandlineparser=ON \
+ -DFEATURE_concatenatetablesproxymodel=OFF \
+ -DFEATURE_concurrent=OFF \
+ -DFEATURE_cross_compile=OFF \
+ -DFEATURE_datestring=ON \
+ -DFEATURE_datetimeparser=ON \
+ -DFEATURE_dbus=$(call ptx/onoff,PTXCONF_HOST_QT6_DBUS) \
+ -DFEATURE_dbus_linked=OFF \
+ -DFEATURE_debug=OFF \
+ -DFEATURE_debug_and_release=OFF \
+ -DFEATURE_developer_build=OFF \
+ -DFEATURE_dlopen=ON \
+ -DFEATURE_dom=OFF \
+ -DFEATURE_doubleconversion=ON \
+ -DFEATURE_easingcurve=ON \
+ -DFEATURE_enable_gdb_index=OFF \
+ -DFEATURE_etw=OFF \
+ -DFEATURE_f16c=OFF \
+ -DFEATURE_filesystemiterator=ON \
+ -DFEATURE_filesystemwatcher=OFF \
+ -DFEATURE_force_asserts=OFF \
+ -DFEATURE_force_debug_info=OFF \
+ -DFEATURE_framework=OFF \
+ -DFEATURE_gc_binaries=OFF \
+ -DFEATURE_gestures=OFF \
+ -DFEATURE_glib=OFF \
+ -DFEATURE_glibc=ON \
+ -DFEATURE_gui=$(call ptx/onoff,PTXCONF_HOST_QT6_GUI) \
+ -DFEATURE_headersclean=OFF \
+ -DFEATURE_hijricalendar=OFF \
+ -DFEATURE_icu=OFF \
+ -DFEATURE_identityproxymodel=OFF \
+ -DFEATURE_inotify=OFF \
+ -DFEATURE_islamiccivilcalendar=OFF \
+ -DFEATURE_itemmodel=ON \
+ -DFEATURE_itemmodeltester=OFF \
+ -DFEATURE_jalalicalendar=OFF \
+ -DFEATURE_journald=OFF \
+ -DFEATURE_library=ON \
+ -DFEATURE_libudev=OFF \
+ -DFEATURE_lttng=OFF \
+ -DFEATURE_macdeployqt=OFF \
+ -DFEATURE_mimetype=ON \
+ -DFEATURE_mimetype_database=ON \
+ -DFEATURE_network=$(call ptx/onoff,PTXCONF_HOST_QT6_NETWORK) \
+ -DFEATURE_no_prefix=OFF \
+ -DFEATURE_optimize_debug=OFF \
+ -DFEATURE_optimize_full=OFF \
+ -DFEATURE_optimize_size=OFF \
+ -DFEATURE_pcre2=ON \
+ -DFEATURE_pkg_config=ON \
+ -DFEATURE_printsupport=OFF \
+ -DFEATURE_private_tests=OFF \
+ -DFEATURE_process=ON \
+ -DFEATURE_processenvironment=ON \
+ -DFEATURE_properties=ON \
+ -DFEATURE_proxymodel=ON \
+ -DFEATURE_qmake=ON \
+ -DFEATURE_qreal=OFF \
+ -DFEATURE_reduce_exports=ON \
+ -DFEATURE_regularexpression=ON \
+ -DFEATURE_relocatable=ON \
+ -DFEATURE_rpath=ON \
+ -DFEATURE_sanitize_address=OFF \
+ -DFEATURE_sanitize_fuzzer_no_link=OFF \
+ -DFEATURE_sanitize_memory=OFF \
+ -DFEATURE_sanitize_thread=OFF \
+ -DFEATURE_sanitize_undefined=OFF \
+ -DFEATURE_sanitizer=OFF \
+ -DFEATURE_separate_debug_info=OFF \
+ -DFEATURE_settings=ON \
+ -DFEATURE_shared=ON \
+ -DFEATURE_sharedmemory=ON \
+ -DFEATURE_shortcut=ON \
+ -DFEATURE_signaling_nan=ON \
+ -DFEATURE_simulator_and_device=OFF \
+ -DFEATURE_slog2=OFF \
+ -DFEATURE_sortfilterproxymodel=OFF \
+ -DFEATURE_sql=OFF \
+ -DFEATURE_stack_protector_strong=OFF \
+ -DFEATURE_static=OFF \
+ -DFEATURE_stdlib_libcpp=OFF \
+ -DFEATURE_stringlistmodel=ON \
+ -DFEATURE_syslog=OFF \
+ -DFEATURE_system_doubleconversion=OFF \
+ -DFEATURE_system_libb2=OFF \
+ -DFEATURE_system_pcre2=ON \
+ -DFEATURE_system_zlib=ON \
+ -DFEATURE_temporaryfile=ON \
+ -DFEATURE_testcocoon=OFF \
+ -DFEATURE_testlib=ON \
+ -DFEATURE_testlib_selfcover=OFF \
+ -DFEATURE_textdate=ON \
+ -DFEATURE_thread=ON \
+ -DFEATURE_timezone=ON \
+ -DFEATURE_translation=$(call ptx/onoff,PTXCONF_HOST_QT6_QTTOOLS) \
+ -DFEATURE_transposeproxymodel=ON \
+ -DFEATURE_valgrind=OFF \
+ -DFEATURE_widgets=OFF \
+ -DFEATURE_windeployqt=OFF \
+ -DFEATURE_xml=ON \
+ -DFEATURE_xmlstream=ON \
+ -DFEATURE_xmlstreamreader=ON \
+ -DFEATURE_xmlstreamwriter=ON \
+ -DFEATURE_zstd=OFF \
+ -DINSTALL_ARCHDATADIR=/lib/qt6 \
+ -DINSTALL_BINDIR=/bin/qt6 \
+ -DINSTALL_DATADIR=/share/qt6 \
+ -DINSTALL_INCLUDEDIR=/include/qt6 \
+ -DINSTALL_MKSPECSDIR=/lib/qt6/mkspecs \
+ -DQT_BUILD_BENCHMARKS=OFF \
+ -DQT_BUILD_EXAMPLES=OFF \
+ -DQT_BUILD_EXAMPLES_AS_EXTERNAL=OFF \
+ -DQT_BUILD_EXAMPLES_BY_DEFAULT=OFF \
+ -DQT_BUILD_MANUAL_TESTS=OFF \
+ -DQT_BUILD_MINIMAL_STATIC_TESTS=OFF \
+ -DQT_BUILD_SUBMODULES='$(subst $(space),;,$(HOST_QT6_MODULES-) $(HOST_QT6_MODULES-y))' \
+ -DQT_BUILD_TESTS=OFF \
+ -DQT_BUILD_TESTS_BY_DEFAULT=OFF \
+ -DQT_BUILD_TOOLS_BY_DEFAULT=ON \
+ -DQT_CMAKE_DEBUG_EXTEND_TARGET=OFF \
+ -DQT_CREATE_VERSIONED_HARD_LINK=OFF \
+ -DQT_USE_CCACHE=OFF \
+ -DQT_WILL_INSTALL=ON \
+ -DWARNINGS_ARE_ERRORS=OFF \
+
+ifdef PTXCONF_HOST_QT6_GUI
+HOST_QT6_CONF_OPT += \
+ -DFEATURE_accessibility=OFF \
+ -DFEATURE_accessibility_atspi_bridge=OFF \
+ -DFEATURE_action=OFF \
+ -DFEATURE_clipboard=OFF \
+ -DFEATURE_colornames=OFF \
+ -DFEATURE_cssparser=OFF \
+ -DFEATURE_cursor=ON \
+ -DFEATURE_desktopservices=OFF \
+ -DFEATURE_directfb=OFF \
+ -DFEATURE_draganddrop=ON \
+ -DFEATURE_drm_atomic=OFF \
+ -DFEATURE_dynamicgl=OFF \
+ -DFEATURE_egl=OFF \
+ -DFEATURE_egl_x11=OFF \
+ -DFEATURE_eglfs=OFF \
+ -DFEATURE_eglfs_brcm=OFF \
+ -DFEATURE_eglfs_egldevice=OFF \
+ -DFEATURE_eglfs_gbm=OFF \
+ -DFEATURE_eglfs_mali=OFF \
+ -DFEATURE_eglfs_openwfd=OFF \
+ -DFEATURE_eglfs_rcar=OFF \
+ -DFEATURE_eglfs_viv=OFF \
+ -DFEATURE_eglfs_viv_wl=OFF \
+ -DFEATURE_eglfs_vsp2=OFF \
+ -DFEATURE_eglfs_x11=OFF \
+ -DFEATURE_filesystemmodel=OFF \
+ -DFEATURE_fontconfig=OFF \
+ -DFEATURE_freetype=OFF \
+ -DFEATURE_gbm=OFF \
+ -DFEATURE_gif=OFF \
+ -DFEATURE_harfbuzz=OFF \
+ -DFEATURE_highdpiscaling=OFF \
+ -DFEATURE_ico=OFF \
+ -DFEATURE_im=OFF \
+ -DFEATURE_image_heuristic_mask=OFF \
+ -DFEATURE_image_text=OFF \
+ -DFEATURE_imageformat_bmp=OFF \
+ -DFEATURE_imageformat_jpeg=OFF \
+ -DFEATURE_imageformat_png=OFF \
+ -DFEATURE_imageformat_ppm=OFF \
+ -DFEATURE_imageformat_xbm=OFF \
+ -DFEATURE_imageformat_xpm=ON \
+ -DFEATURE_imageformatplugin=OFF \
+ -DFEATURE_imageio_text_loading=OFF \
+ -DFEATURE_integrityfb=OFF \
+ -DFEATURE_integrityhid=OFF \
+ -DFEATURE_jpeg=OFF \
+ -DFEATURE_kms=OFF \
+ -DFEATURE_libinput=OFF \
+ -DFEATURE_libinput_axis_api=OFF \
+ -DFEATURE_libinput_hires_wheel_support=OFF \
+ -DFEATURE_linuxfb=OFF \
+ -DFEATURE_movie=OFF \
+ -DFEATURE_mtdev=OFF \
+ -DFEATURE_multiprocess=OFF \
+ -DFEATURE_opengl=OFF \
+ -DFEATURE_opengl_desktop=OFF \
+ -DFEATURE_opengl_dynamic=OFF \
+ -DFEATURE_opengles2=OFF \
+ -DFEATURE_opengles31=OFF \
+ -DFEATURE_opengles32=OFF \
+ -DFEATURE_opengles3=OFF \
+ -DFEATURE_openvg=OFF \
+ -DFEATURE_pdf=OFF \
+ -DFEATURE_picture=OFF \
+ -DFEATURE_png=OFF \
+ -DFEATURE_raster_64bit=OFF \
+ -DFEATURE_raster_fp=OFF \
+ -DFEATURE_sessionmanager=OFF \
+ -DFEATURE_standarditemmodel=OFF \
+ -DFEATURE_system_freetype=OFF \
+ -DFEATURE_system_harfbuzz=OFF \
+ -DFEATURE_system_jpeg=OFF \
+ -DFEATURE_system_png=OFF \
+ -DFEATURE_system_textmarkdownreader=OFF \
+ -DFEATURE_systemtrayicon=ON \
+ -DFEATURE_tabletevent=OFF \
+ -DFEATURE_texthtmlparser=ON \
+ -DFEATURE_textmarkdownreader=OFF \
+ -DFEATURE_textmarkdownwriter=OFF \
+ -DFEATURE_textodfwriter=OFF \
+ -DFEATURE_tslib=OFF \
+ -DFEATURE_tuiotouch=OFF \
+ -DFEATURE_undocommand=OFF \
+ -DFEATURE_undogroup=OFF \
+ -DFEATURE_undostack=OFF \
+ -DFEATURE_validator=ON \
+ -DFEATURE_vkgen=OFF \
+ -DFEATURE_vkkhrdisplay=OFF \
+ -DFEATURE_vnc=OFF \
+ -DFEATURE_vsp2=OFF \
+ -DFEATURE_vulkan=OFF \
+ -DFEATURE_whatsthis=OFF \
+ -DFEATURE_wheelevent=OFF \
+ -DFEATURE_xcb=OFF \
+ -DFEATURE_xcb_xlib=OFF \
+ -DFEATURE_xkbcommon=OFF \
+ -DFEATURE_xkbcommon_x11=OFF \
+ -DFEATURE_xlib=OFF
+endif
+
+ifdef PTXCONF_HOST_QT6_NETWORK
+HOST_QT6_CONF_OPT += \
+ -DFEATURE_brotli=OFF \
+ -DFEATURE_dnslookup=OFF \
+ -DFEATURE_dtls=OFF \
+ -DFEATURE_gssapi=OFF \
+ -DFEATURE_http=OFF \
+ -DFEATURE_libproxy=OFF \
+ -DFEATURE_linux_netlink=OFF \
+ -DFEATURE_localserver=ON \
+ -DFEATURE_networkdiskcache=OFF \
+ -DFEATURE_networkinterface=OFF \
+ -DFEATURE_networklistmanager=OFF \
+ -DFEATURE_networkproxy=OFF \
+ -DFEATURE_ocsp=OFF \
+ -DFEATURE_openssl=OFF \
+ -DFEATURE_schannel=OFF \
+ -DFEATURE_sctp=OFF \
+ -DFEATURE_securetransport=OFF \
+ -DFEATURE_socks5=OFF \
+ -DFEATURE_ssl=OFF \
+ -DFEATURE_system_proxies=ON \
+ -DFEATURE_topleveldomain=OFF \
+ -DFEATURE_udpsocket=OFF
+endif
+
+ifdef PTXCONF_HOST_QT6_QTTOOLS
+HOST_QT6_CONF_OPT += \
+ -DFEATURE_assistant=OFF \
+ -DFEATURE_clang=OFF \
+ -DFEATURE_clangcpp=OFF \
+ -DFEATURE_designer=OFF \
+ -DFEATURE_distancefieldgenerator=OFF \
+ -DFEATURE_kmap2qmap=OFF \
+ -DFEATURE_linguist=ON \
+ -DFEATURE_pixeltool=OFF \
+ -DFEATURE_qdbus=OFF \
+ -DFEATURE_qev=OFF \
+ -DFEATURE_qtattributionsscanner=OFF \
+ -DFEATURE_qtdiag=OFF \
+ -DFEATURE_qtplugininfo=OFF \
+ \
+ -DCMAKE_DISABLE_FIND_PACKAGE_Clang=ON
+endif
+
+ifdef PTXCONF_HOST_QT6_QTDECLARATIVE
+HOST_QT6_CONF_OPT += \
+ -DFEATURE_qml_animation=OFF \
+ -DFEATURE_qml_debug=ON \
+ -DFEATURE_qml_delegate_model=ON \
+ -DFEATURE_qml_devtools=ON \
+ -DFEATURE_qml_itemmodel=ON \
+ -DFEATURE_qml_jit=OFF \
+ -DFEATURE_qml_list_model=OFF \
+ -DFEATURE_qml_locale=ON \
+ -DFEATURE_qml_network=ON \
+ -DFEATURE_qml_object_model=ON \
+ -DFEATURE_qml_preview=OFF \
+ -DFEATURE_qml_profiler=ON \
+ -DFEATURE_qml_python=ON \
+ -DFEATURE_qml_sequence_object=OFF \
+ -DFEATURE_qml_table_model=ON \
+ -DFEATURE_qml_worker_script=OFF \
+ -DFEATURE_qml_xml_http_request=OFF \
+ -DFEATURE_qml_xmllistmodel=OFF \
+ -DFEATURE_quick_animatedimage=OFF \
+ -DFEATURE_quick_canvas=OFF \
+ -DFEATURE_quick_designer=OFF \
+ -DFEATURE_quick_draganddrop=OFF \
+ -DFEATURE_quick_flipable=OFF \
+ -DFEATURE_quick_gridview=ON \
+ -DFEATURE_quick_itemview=ON \
+ -DFEATURE_quick_listview=ON \
+ -DFEATURE_quick_particles=OFF \
+ -DFEATURE_quick_path=OFF \
+ -DFEATURE_quick_pathview=OFF \
+ -DFEATURE_quick_positioners=OFF \
+ -DFEATURE_quick_repeater=OFF \
+ -DFEATURE_quick_shadereffect=ON \
+ -DFEATURE_quick_sprite=OFF \
+ -DFEATURE_quick_tableview=ON \
+ -DFEATURE_quick_treeview=ON \
+ -DFEATURE_quick_viewtransitions=ON \
+ -DFEATURE_quickcontrols2_basic=OFF \
+ -DFEATURE_quickcontrols2_fusion=OFF \
+ -DFEATURE_quickcontrols2_imagine=OFF \
+ -DFEATURE_quickcontrols2_macos=OFF \
+ -DFEATURE_quickcontrols2_material=OFF \
+ -DFEATURE_quickcontrols2_universal=OFF \
+ -DFEATURE_quickcontrols2_windows=OFF \
+ -DFEATURE_quicktemplates2_calendar=OFF \
+ -DFEATURE_quicktemplates2_hover=OFF \
+ -DFEATURE_quicktemplates2_multitouch=OFF
+endif
+
+ifdef PTXCONF_HOST_QT6_QTQUICK3D
+HOST_QT6_CONF_OPT += \
+ -DFEATURE_quick3d_assimp=OFF \
+ -DFEATURE_system_assimp=OFF
+endif
+
+ifdef PTXCONF_HOST_QT6_QTSCXML
+HOST_QT6_CONF_OPT += \
+ -DFEATURE_qeventtransition=OFF \
+ -DFEATURE_scxml_ecmascriptdatamodel=OFF
+endif
+
+ifdef PTXCONF_HOST_QT6_QTWAYLAND
+HOST_QT6_CONF_OPT += \
+ -DFEATURE_wayland_brcm=OFF \
+ -DFEATURE_wayland_client=OFF \
+ -DFEATURE_wayland_datadevice=OFF \
+ -DFEATURE_wayland_dmabuf_server_buffer=OFF \
+ -DFEATURE_wayland_drm_egl_server_buffer=OFF \
+ -DFEATURE_wayland_egl=OFF \
+ -DFEATURE_wayland_libhybris_egl_server_buffer=OFF \
+ -DFEATURE_wayland_server=OFF \
+ -DFEATURE_wayland_shm_emulation_server_buffer=OFF \
+ -DFEATURE_wayland_text_input_v4_wip=OFF \
+ -DFEATURE_wayland_vulkan_server_buffer=OFF
+endif
+
+HOST_QT6_CONF_OPT := \
+ $(HOST_CMAKE_OPT) \
+ -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/ \
+ -DINPUT_opengl=no \
+ -DPYTHON_EXECUTABLE=$(SYSTEMPYTHON3) \
+ $(sort $(HOST_QT6_CONF_OPT))
+
+HOST_QT6_MAKE_ENV := \
+ ICECC_REMOTE_CPP=0
+
+$(STATEDIR)/host-qt6.prepare:
+ @$(call targetinfo)
+ @$(call world/prepare, HOST_QT6)
+ifdef PTXCONF_HOST_QT6_QTWEBENGINE
+ @$(call execute, HOST_QT6, \
+ $(SYSTEMPYTHON3) \
+ $(HOST_QT6_DIR)/qtwebengine/src/3rdparty/gn/build/gen.py \
+ --allow-warnings \
+ --no-last-commit-position \
+ --no-static-libstdc++ \
+ --out-path $(HOST_QT6_DIR)-build/qtwebengine/gn \
+ --cxx $(HOSTCXX) \
+ --cc $(HOSTCC) \
+ --ld $(HOSTCXX) \
+ --qt-version $(HOST_QT6_VERSION))
+endif
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/host-qt6.compile:
+ @$(call targetinfo)
+ @$(call world/compile, HOST_QT6)
+ifdef PTXCONF_HOST_QT6_QTWEBENGINE
+ @$(call compile, HOST_QT6, \
+ -C $(HOST_QT6_DIR)-build/qtwebengine/gn)
+endif
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+HOST_QT6_QT_CONF := $(HOST_QT6_PKGDIR)/usr/bin/qt6/qt.conf
+
+HOST_QT6_TOOLS := \
+ lconvert \
+ lrelease \
+ lupdate \
+ qdbuscpp2xml \
+ qdbusxml2cpp \
+ qmake \
+ qmldom \
+ qmlformat \
+ qmllint \
+ qmltc \
+ qsb
+
+$(STATEDIR)/host-qt6.install:
+ @$(call targetinfo)
+ @$(call world/install, HOST_QT6)
+ @$(foreach tool, $(HOST_QT6_TOOLS), \
+ ln -vsf qt6/$(tool) $(HOST_QT6_PKGDIR)/usr/bin/$(tool)-qt6$(ptx/nl))
+ifdef PTXCONF_HOST_QT6_QTWEBENGINE
+ @install -vD -m755 $(HOST_QT6_DIR)-build/qtwebengine/gn/gn \
+ $(HOST_QT6_PKGDIR)/usr/lib/qt6/libexec/gn
+endif
+ @echo "[Paths]" > $(HOST_QT6_QT_CONF)
+ @echo "HostPrefix=../.." >> $(HOST_QT6_QT_CONF)
+ @echo "HostArchData=lib/qt6" >> $(HOST_QT6_QT_CONF)
+ @echo "HostData=lib/qt6" >> $(HOST_QT6_QT_CONF)
+ @echo "HostBinaries=bin/qt6" >> $(HOST_QT6_QT_CONF)
+ @echo "HostLibraryExecutables=lib/qt6/libexec" >> $(HOST_QT6_QT_CONF)
+ @echo "Prefix=../.." >> $(HOST_QT6_QT_CONF)
+ @echo "ArchData=lib/qt6" >> $(HOST_QT6_QT_CONF)
+ @echo "Headers=include/qt6" >> $(HOST_QT6_QT_CONF)
+ @echo "Data=share/qt6" >> $(HOST_QT6_QT_CONF)
+ @echo "Binaries=bin/qt6" >> $(HOST_QT6_QT_CONF)
+ @echo "LibraryExecutables=lib/qt6/libexec" >> $(HOST_QT6_QT_CONF)
+ @echo "" >> $(HOST_QT6_QT_CONF)
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/host-rauc.in b/rules/host-rauc.in
index adb904107..0dddc742d 100644
--- a/rules/host-rauc.in
+++ b/rules/host-rauc.in
@@ -4,5 +4,6 @@ config HOST_RAUC
tristate
default y if ALLYES
select HOST_GLIB
+ select HOST_MESON
select HOST_OPENSSL
select HOST_SQUASHFS_TOOLS
diff --git a/rules/host-rauc.make b/rules/host-rauc.make
index c78a518f6..438d77bfb 100644
--- a/rules/host-rauc.make
+++ b/rules/host-rauc.make
@@ -18,13 +18,20 @@ HOST_PACKAGES-$(PTXCONF_HOST_RAUC) += host-rauc
#
# autoconf
#
-HOST_RAUC_CONF_TOOL := autoconf
+HOST_RAUC_CONF_TOOL := meson
HOST_RAUC_CONF_OPT := \
$(HOST_AUTOCONF) \
- --disable-code-coverage \
- --disable-valgrind \
- --disable-service \
- --disable-network \
- --disable-json
+ -Dcreate=true \
+ -Ddbusinterfacesdir=/usr/share/dbus-1/interfaces \
+ -Ddbuspolicydir=/usr/share/dbus-1/system.d \
+ -Ddbussystemservicedir=/usr/share/dbus-1/system-services \
+ -Dgpt=disabled \
+ -Djson=disabled \
+ -Dnetwork=false \
+ -Dservice=false \
+ -Dstreaming=false \
+ -Dstreaming_user=nobody \
+ -Dsystemdunitdir=/usr/lib/systemd/system \
+ -Dtests=false
# vim: syntax=make
diff --git a/rules/host-shaderc.make b/rules/host-shaderc.make
index 50b6a6503..d741ec4ba 100644
--- a/rules/host-shaderc.make
+++ b/rules/host-shaderc.make
@@ -26,25 +26,10 @@ HOST_SHADERC_SPIRV_HEADERS_URL = $(SHADERC_SPIRV_HEADERS_URL)
HOST_SHADERC_SPIRV_HEADERS_SOURCE = $(SHADERC_SPIRV_HEADERS_SOURCE)
HOST_SHADERC_SPIRV_HEADERS_DIR = $(HOST_SHADERC_DIR)/third_party/spirv-tools/external/spirv-headers
-HOST_SHADERC_SOURCES = \
- $(HOST_SHADERC_SOURCE) \
- $(HOST_SHADERC_GLSLANG_SOURCE) \
- $(HOST_SHADERC_SPIRV_TOOLS_SOURCE) \
- $(HOST_SHADERC_SPIRV_HEADERS_SOURCE)
-
-# ----------------------------------------------------------------------------
-# Extract
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/host-shaderc.extract:
- @$(call targetinfo)
- @$(call clean, $(HOST_SHADERC_DIR))
- @$(call extract, HOST_SHADERC)
- @$(call extract, HOST_SHADERC_GLSLANG)
- @$(call extract, HOST_SHADERC_SPIRV_TOOLS)
- @$(call extract, HOST_SHADERC_SPIRV_HEADERS)
- @$(call patchin, HOST_SHADERC)
- @$(call touch)
+HOST_SHADERC_PARTS += \
+ HOST_SHADERC_GLSLANG \
+ HOST_SHADERC_SPIRV_TOOLS \
+ HOST_SHADERC_SPIRV_HEADERS
# ----------------------------------------------------------------------------
# Prepare
@@ -54,9 +39,45 @@ HOST_SHADERC_CONF_TOOL := cmake
HOST_SHADERC_CONF_OPT := \
$(HOST_CMAKE_OPT) \
-DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_LIBDIR=/usr/lib \
+ -DALLOW_EXTERNAL_SPIRV_TOOLS=OFF \
+ -DASCIIDOCTOR_EXE=ASCIIDOCTOR_EXE-NOTFOUND \
+ -DBUILD_EXTERNAL=ON \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DBUILD_WERROR=OFF \
+ -DDISABLE_EXCEPTIONS=OFF \
+ -DDISABLE_RTTI=OFF \
+ -DENABLE_EXCEPTIONS=OFF \
+ -DENABLE_EXCEPTIONS_ON_MSVC=ON \
+ -DENABLE_GLSLANG_BINARIES=ON \
+ -DENABLE_GLSLANG_JS=OFF \
+ -DENABLE_HLSL=ON \
+ -DENABLE_OPT=ON \
+ -DENABLE_PCH=ON \
+ -DENABLE_RTTI=OFF \
+ -DENABLE_SPVREMAPPER=ON \
+ -DSHADERC_ENABLE_WERROR_COMPILE=ON \
+ -DSHADERC_ENABLE_WGSL_OUTPUT=OFF \
+ -DSHADERC_SKIP_COPYRIGHT_CHECK=OFF \
+ -DSHADERC_SKIP_EXAMPLES=ON \
-DSHADERC_SKIP_INSTALL=OFF \
-DSHADERC_SKIP_TESTS=ON \
- -DSHADERC_ENABLE_WERROR_COMPILE=ON
+ -DSPIRV_ALLOW_TIMERS=ON \
+ -DSPIRV_BUILD_COMPRESSION=OFF \
+ -DSPIRV_BUILD_FUZZER=OFF \
+ -DSPIRV_BUILD_LIBFUZZER_TARGETS=OFF \
+ -DSPIRV_CHECK_CONTEXT=ON \
+ -DSPIRV_COLOR_TERMINAL=ON \
+ -DSPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS=OFF \
+ -DSPIRV_LIB_FUZZING_ENGINE_LINK_OPTIONS= \
+ -DSPIRV_LOG_DEBUG=OFF \
+ -DSPIRV_SKIP_EXECUTABLES=OFF \
+ -DSPIRV_SKIP_TESTS=ON \
+ -DSPIRV_TOOLS_BUILD_STATIC=ON \
+ -DSPIRV_TOOLS_INSTALL_EMACS_HELPERS=OFF \
+ -DSPIRV_WARN_EVERYTHING=OFF \
+ -DSPIRV_WERROR=ON \
+ \
+ -DPython_EXECUTABLE=$(PTXDIST_SYSROOT_HOST)/usr/lib/wrapper/$(SYSTEMPYTHON3) \
+ -DPython3_EXECUTABLE=$(PTXDIST_SYSROOT_HOST)/usr/lib/wrapper/$(SYSTEMPYTHON3)
# vim: syntax=make
diff --git a/rules/host-sqlite.make b/rules/host-sqlite.make
index 8fc54861b..35fcf5e51 100644
--- a/rules/host-sqlite.make
+++ b/rules/host-sqlite.make
@@ -26,9 +26,6 @@ HOST_SQLITE_CONF_ENV := \
CPPFLAGS=" \
-DSQLITE_ENABLE_COLUMN_METADATA=1 \
-DSQLITE_ENABLE_FTS3_PARENTHESIS=1 \
- -DSQLITE_ENABLE_FTS4=1 \
- -DSQLITE_ENABLE_JSON1=1 \
- -DSQLITE_ENABLE_RTREE=1 \
-DSQLITE_ENABLE_UNLOCK_NOTIFY=1 \
-DSQLITE_SOUNDEX=1 \
"
@@ -42,9 +39,12 @@ HOST_SQLITE_CONF_OPT := \
--enable-threadsafe \
--disable-dynamic-extensions \
--disable-math \
+ --enable-fts4 \
+ --enable-fts3 \
--disable-fts5 \
- --enable-json1 \
+ --enable-rtree \
--disable-session \
+ --disable-debug \
--disable-static-shell
# vim: syntax=make
diff --git a/rules/host-squashfs-tools.make b/rules/host-squashfs-tools.make
index ec04f713c..d24accd91 100644
--- a/rules/host-squashfs-tools.make
+++ b/rules/host-squashfs-tools.make
@@ -27,8 +27,8 @@ HOST_SQUASHFS_TOOLS_MAKE_OPT := \
XZ_SUPPORT=$(call ptx/ifdef, PTXCONF_HOST_SQUASHFS_TOOLS_XZ_SUPPORT,1,0) \
ZSTD_SUPPORT=$(call ptx/ifdef, PTXCONF_HOST_SQUASHFS_TOOLS_ZSTD_SUPPORT,1,0)
-HOST_SQUASHFS_TOOLS_MAKE_ENV := $(HOST_ENV) EXTRA_LDFLAGS="-L$(PTXDIST_SYSROOT_HOST)/lib/xz"
+HOST_SQUASHFS_TOOLS_MAKE_ENV := $(HOST_ENV) EXTRA_LDFLAGS="-L$(PTXDIST_SYSROOT_HOST)/usr/lib/xz"
HOST_SQUASHFS_TOOLS_MAKE_PAR := NO
-HOST_SQUASHFS_TOOLS_INSTALL_OPT = install INSTALL_DIR="$(HOST_SQUASHFS_TOOLS_PKGDIR)/sbin"
+HOST_SQUASHFS_TOOLS_INSTALL_OPT = install INSTALL_DIR="$(HOST_SQUASHFS_TOOLS_PKGDIR)/usr/sbin"
# vim: syntax=make
diff --git a/rules/host-swig.in b/rules/host-swig.in
deleted file mode 100644
index 56a23fcce..000000000
--- a/rules/host-swig.in
+++ /dev/null
@@ -1,23 +0,0 @@
-## SECTION=hosttools_noprompt
-
-config HOST_SWIG
- tristate
- default y if ALLYES
- select HOST_ZLIB
- select HOST_LIBPCRE
- select HOST_PYTHON if HOST_SWIG_PYTHON_SUPPORT
- select HOST_PYTHON3 if HOST_SWIG_PYTHON3_SUPPORT
- select HOST_SYSTEM_JDK if HOST_SWIG_JAVA_SUPPORT
-
-if HOST_SWIG
-
-config HOST_SWIG_JAVA_SUPPORT
- bool
-
-config HOST_SWIG_PYTHON_SUPPORT
- bool
-
-config HOST_SWIG_PYTHON3_SUPPORT
- bool
-
-endif
diff --git a/rules/host-swig.make b/rules/host-swig.make
deleted file mode 100644
index 0bdfe858f..000000000
--- a/rules/host-swig.make
+++ /dev/null
@@ -1,63 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2013 by Marc Kleine-Budde <mkl@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-HOST_PACKAGES-$(PTXCONF_HOST_SWIG) += host-swig
-
-#
-# Paths and names
-#
-HOST_SWIG_VERSION := 4.0.1
-HOST_SWIG_MD5 := 54cc40b3804816f7d38ab510b6f13b04
-HOST_SWIG := swig-$(HOST_SWIG_VERSION)
-HOST_SWIG_SUFFIX := tar.gz
-HOST_SWIG_URL := $(call ptx/mirror, SF, swig/$(HOST_SWIG).$(HOST_SWIG_SUFFIX))
-HOST_SWIG_SOURCE := $(SRCDIR)/$(HOST_SWIG).$(HOST_SWIG_SUFFIX)
-HOST_SWIG_DIR := $(HOST_BUILDDIR)/$(HOST_SWIG)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-HOST_SWIG_CONF_TOOL := autoconf
-HOST_SWIG_DEVPKG := NO
-
-# no := due to CROSS_PYTHON
-HOST_SWIG_CONF_OPT = \
- $(HOST_AUTOCONF_SYSROOT) \
- --without-boost \
- --without-x \
- --without-tcl \
- $(call ptx/ifdef, PTXCONF_HOST_SWIG_PYTHON_SUPPORT, --with-python=$(CROSS_PYTHON), --without-python) \
- $(call ptx/ifdef, PTXCONF_HOST_SWIG_PYTHON3_SUPPORT, --with-python=$(CROSS_PYTHON3), --without-python3) \
- --without-perl5 \
- --without-octave \
- $(call ptx/ifdef, PTXCONF_HOST_SWIG_JAVA_SUPPORT, --with-java=$(PTXCONF_SETUP_JAVA_SDK), --without-java) \
- --without-gcj \
- --without-android \
- --without-guile \
- --without-mzscheme \
- --without-ruby \
- --without-php \
- --without-ocaml \
- --without-pike \
- --without-chicken \
- --without-csharp \
- --without-lua \
- --without-allegrocl \
- --without-clisp \
- --without-r \
- --without-go \
- --without-d
-
-# vim: syntax=make
diff --git a/rules/host-system-libpcsclite.in b/rules/host-system-libpcsclite.in
new file mode 100644
index 000000000..547028ee3
--- /dev/null
+++ b/rules/host-system-libpcsclite.in
@@ -0,0 +1,4 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_LIBPCSCLITE
+ tristate
diff --git a/rules/host-system-libpcsclite.make b/rules/host-system-libpcsclite.make
new file mode 100644
index 000000000..8520b4537
--- /dev/null
+++ b/rules/host-system-libpcsclite.make
@@ -0,0 +1,55 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_LIBPCSCLITE) += host-system-libpcsclite
+
+#
+# Paths and names
+#
+HOST_SYSTEM_LIBPCSCLITE_VERSION := 0
+HOST_SYSTEM_LIBPCSCLITE := system-libpcsclite
+HOST_SYSTEM_LIBPCSCLITE_LICENSE := ignore
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_LIBPCSCLITE_PATH := PATH=$(subst $(PTXDIST_SYSROOT_HOST)/usr/bin:,,$(HOST_PATH))
+
+$(STATEDIR)/host-system-libpcsclite.prepare:
+ @$(call targetinfo)
+ @$(HOST_SYSTEM_LIBPCSCLITE_PATH) pkg-config libpcsclite || \
+ ptxd_bailout "system libpcsclite not found! \
+ Please install libpcsclite-dev (debian)"
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/host-system-libpcsclite.install:
+ @$(call targetinfo)
+# # import libpcsclite.pc directly into sysroot to avoid mangling
+ @mkdir -p $(PTXDIST_SYSROOT_HOST)/usr/lib/pkgconfig/
+ cp $(wildcard $(addsuffix /libpcsclite.pc,$(subst :,$(space),$(shell $(HOST_SYSTEM_LIBPCSCLITE_PATH) pkg-config --variable pc_path pkg-config)))) \
+ $(PTXDIST_SYSROOT_HOST)/usr/lib/pkgconfig/
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/host-system-libpcsclite.clean:
+ @$(call targetinfo)
+ @$(call clean_pkg, HOST_SYSTEM_LIBPCSCLITE)
+ @rm -vf $(PTXDIST_SYSROOT_HOST)/usr/lib/pkgconfig/libpcsclite.pc
+
+# vim: syntax=make
diff --git a/rules/host-system-python3-cheetah3.in b/rules/host-system-python3-cheetah3.in
new file mode 100644
index 000000000..097e17443
--- /dev/null
+++ b/rules/host-system-python3-cheetah3.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_PYTHON3_CHEETAH3
+ tristate
+ default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_SETUPTOOLS
diff --git a/rules/host-system-python3-cheetah3.make b/rules/host-system-python3-cheetah3.make
new file mode 100644
index 000000000..aae80f500
--- /dev/null
+++ b/rules/host-system-python3-cheetah3.make
@@ -0,0 +1,35 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_PYTHON3_CHEETAH3) += host-system-python3-cheetah3
+
+#
+# Paths and names
+#
+HOST_SYSTEM_PYTHON3_CHEETAH3_VERSION := 3.3.3
+HOST_SYSTEM_PYTHON3_CHEETAH3_MD5 := 2cd8711cbaac7f58239755b4a20cd861
+HOST_SYSTEM_PYTHON3_CHEETAH3 := cheetah3-$(HOST_SYSTEM_PYTHON3_CHEETAH3_VERSION)
+HOST_SYSTEM_PYTHON3_CHEETAH3_SUFFIX := tar.gz
+# project on PyPI was renamed to CT3
+HOST_SYSTEM_PYTHON3_CHEETAH3_URL := $(call ptx/mirror-pypi, CT3, CT3-$(HOST_SYSTEM_PYTHON3_CHEETAH3_VERSION).$(HOST_SYSTEM_PYTHON3_CHEETAH3_SUFFIX))
+HOST_SYSTEM_PYTHON3_CHEETAH3_SOURCE := $(SRCDIR)/$(HOST_SYSTEM_PYTHON3_CHEETAH3).$(HOST_SYSTEM_PYTHON3_CHEETAH3_SUFFIX)
+HOST_SYSTEM_PYTHON3_CHEETAH3_DIR := $(HOST_BUILDDIR)/$(HOST_SYSTEM_PYTHON3_CHEETAH3)
+HOST_SYSTEM_PYTHON3_CHEETAH3_LICENSE := MIT
+HOST_SYSTEM_PYTHON3_CHEETAH3_LICENSE_FILES := \
+ file://LICENSE;md5=be4ebd20a0d448789acb1cdd9ceb6026
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_PYTHON3_CHEETAH3_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-system-python3-flit-core.in b/rules/host-system-python3-flit-core.in
new file mode 100644
index 000000000..79c0c4599
--- /dev/null
+++ b/rules/host-system-python3-flit-core.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_PYTHON3_FLIT_CORE
+ tristate
+ default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_SETUPTOOLS
diff --git a/rules/host-system-python3-flit-core.make b/rules/host-system-python3-flit-core.make
new file mode 100644
index 000000000..98fd86954
--- /dev/null
+++ b/rules/host-system-python3-flit-core.make
@@ -0,0 +1,20 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_PYTHON3_FLIT_CORE) += host-system-python3-flit-core
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_PYTHON3_FLIT_CORE_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-system-python3-html5lib.in b/rules/host-system-python3-html5lib.in
new file mode 100644
index 000000000..578fdd11a
--- /dev/null
+++ b/rules/host-system-python3-html5lib.in
@@ -0,0 +1,8 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_PYTHON3_HTML5LIB
+ tristate
+ default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_WEBENCODINGS
+
diff --git a/rules/host-system-python3-html5lib.make b/rules/host-system-python3-html5lib.make
new file mode 100644
index 000000000..857862349
--- /dev/null
+++ b/rules/host-system-python3-html5lib.make
@@ -0,0 +1,34 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_PYTHON3_HTML5LIB) += host-system-python3-html5lib
+
+#
+# Paths and names
+#
+HOST_SYSTEM_PYTHON3_HTML5LIB_VERSION := 1.1
+HOST_SYSTEM_PYTHON3_HTML5LIB_MD5 := 6748742e2ec4cb99287a6bc82bcfe2b0
+HOST_SYSTEM_PYTHON3_HTML5LIB := html5lib-$(HOST_SYSTEM_PYTHON3_HTML5LIB_VERSION)
+HOST_SYSTEM_PYTHON3_HTML5LIB_SUFFIX := tar.gz
+HOST_SYSTEM_PYTHON3_HTML5LIB_URL := $(call ptx/mirror-pypi, html5lib, $(HOST_SYSTEM_PYTHON3_HTML5LIB).$(HOST_SYSTEM_PYTHON3_HTML5LIB_SUFFIX))
+HOST_SYSTEM_PYTHON3_HTML5LIB_SOURCE := $(SRCDIR)/$(HOST_SYSTEM_PYTHON3_HTML5LIB).$(HOST_SYSTEM_PYTHON3_HTML5LIB_SUFFIX)
+HOST_SYSTEM_PYTHON3_HTML5LIB_DIR := $(HOST_BUILDDIR)/$(HOST_SYSTEM_PYTHON3_HTML5LIB)
+HOST_SYSTEM_PYTHON3_HTML5LIB_LICENSE := MIT
+HOST_SYSTEM_PYTHON3_HTML5LIB_LICENSE_FILES := \
+ file://LICENSE;md5=1ba5ada9e6fead1fdc32f43c9f10ba7c
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_PYTHON3_HTML5LIB_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-system-python3-installer.in b/rules/host-system-python3-installer.in
new file mode 100644
index 000000000..f1428d908
--- /dev/null
+++ b/rules/host-system-python3-installer.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_PYTHON3_INSTALLER
+ tristate
+ default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_FLIT_CORE
diff --git a/rules/host-system-python3-installer.make b/rules/host-system-python3-installer.make
new file mode 100644
index 000000000..486f5507d
--- /dev/null
+++ b/rules/host-system-python3-installer.make
@@ -0,0 +1,20 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_PYTHON3_INSTALLER) += host-system-python3-installer
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_PYTHON3_INSTALLER_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-system-python3-jinja2.in b/rules/host-system-python3-jinja2.in
new file mode 100644
index 000000000..b8c437b7f
--- /dev/null
+++ b/rules/host-system-python3-jinja2.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_PYTHON3_JINJA2
+ tristate
+ default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_MARKUPSAFE
diff --git a/rules/host-system-python3-jinja2.make b/rules/host-system-python3-jinja2.make
new file mode 100644
index 000000000..b37ebc211
--- /dev/null
+++ b/rules/host-system-python3-jinja2.make
@@ -0,0 +1,20 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_PYTHON3_JINJA2) += host-system-python3-jinja2
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_PYTHON3_JINJA2_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-system-python3-mako.in b/rules/host-system-python3-mako.in
new file mode 100644
index 000000000..aa7059b71
--- /dev/null
+++ b/rules/host-system-python3-mako.in
@@ -0,0 +1,9 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_PYTHON3_MAKO
+ tristate
+ default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_MARKUPSAFE
+ select HOST_SYSTEM_PYTHON3_PYBUILD
+ select HOST_SYSTEM_PYTHON3_WHEEL
diff --git a/rules/host-system-python3-mako.make b/rules/host-system-python3-mako.make
new file mode 100644
index 000000000..a78f2d54d
--- /dev/null
+++ b/rules/host-system-python3-mako.make
@@ -0,0 +1,20 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_PYTHON3_MAKO) += host-system-python3-mako
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_PYTHON3_MAKO_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-system-python3-markupsafe.in b/rules/host-system-python3-markupsafe.in
new file mode 100644
index 000000000..637305d07
--- /dev/null
+++ b/rules/host-system-python3-markupsafe.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_PYTHON3_MARKUPSAFE
+ tristate
+ default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_SETUPTOOLS
diff --git a/rules/host-system-python3-markupsafe.make b/rules/host-system-python3-markupsafe.make
new file mode 100644
index 000000000..1c267395d
--- /dev/null
+++ b/rules/host-system-python3-markupsafe.make
@@ -0,0 +1,20 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_PYTHON3_MARKUPSAFE) += host-system-python3-markupsafe
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_PYTHON3_MARKUPSAFE_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-system-python3-packaging.in b/rules/host-system-python3-packaging.in
new file mode 100644
index 000000000..09e73e687
--- /dev/null
+++ b/rules/host-system-python3-packaging.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_PYTHON3_PACKAGING
+ tristate
+ default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_FLIT_CORE
diff --git a/rules/host-system-python3-packaging.make b/rules/host-system-python3-packaging.make
new file mode 100644
index 000000000..41dce561b
--- /dev/null
+++ b/rules/host-system-python3-packaging.make
@@ -0,0 +1,20 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_PYTHON3_PACKAGING) += host-system-python3-packaging
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_PYTHON3_PACKAGING_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-system-python3-ply.in b/rules/host-system-python3-ply.in
new file mode 100644
index 000000000..161776ed4
--- /dev/null
+++ b/rules/host-system-python3-ply.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_PYTHON3_PLY
+ tristate
+ default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_SETUPTOOLS
diff --git a/rules/host-system-python3-ply.make b/rules/host-system-python3-ply.make
new file mode 100644
index 000000000..a69252d34
--- /dev/null
+++ b/rules/host-system-python3-ply.make
@@ -0,0 +1,20 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_PYTHON3_PLY) += host-system-python3-ply
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_PYTHON3_PLY_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-system-python3-psutil.in b/rules/host-system-python3-psutil.in
new file mode 100644
index 000000000..bf6e90693
--- /dev/null
+++ b/rules/host-system-python3-psutil.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_PYTHON3_PSUTIL
+ tristate
+ default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_SETUPTOOLS
diff --git a/rules/host-system-python3-psutil.make b/rules/host-system-python3-psutil.make
new file mode 100644
index 000000000..033895b70
--- /dev/null
+++ b/rules/host-system-python3-psutil.make
@@ -0,0 +1,34 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_PYTHON3_PSUTIL) += host-system-python3-psutil
+
+#
+# Paths and names
+#
+HOST_SYSTEM_PYTHON3_PSUTIL_VERSION := 5.9.8
+HOST_SYSTEM_PYTHON3_PSUTIL_MD5 := 7bb9d4378bd451765b705946a3541393
+HOST_SYSTEM_PYTHON3_PSUTIL := psutil-$(HOST_SYSTEM_PYTHON3_PSUTIL_VERSION)
+HOST_SYSTEM_PYTHON3_PSUTIL_SUFFIX := tar.gz
+HOST_SYSTEM_PYTHON3_PSUTIL_URL := $(call ptx/mirror-pypi, psutil, $(HOST_SYSTEM_PYTHON3_PSUTIL).$(HOST_SYSTEM_PYTHON3_PSUTIL_SUFFIX))
+HOST_SYSTEM_PYTHON3_PSUTIL_SOURCE := $(SRCDIR)/$(HOST_SYSTEM_PYTHON3_PSUTIL).$(HOST_SYSTEM_PYTHON3_PSUTIL_SUFFIX)
+HOST_SYSTEM_PYTHON3_PSUTIL_DIR := $(HOST_BUILDDIR)/$(HOST_SYSTEM_PYTHON3_PSUTIL)
+HOST_SYSTEM_PYTHON3_PSUTIL_LICENSE := BSD-3-Clause
+HOST_SYSTEM_PYTHON3_PSUTIL_LICENSE_FILES := \
+ file://LICENSE;md5=a9c72113a843d0d732a0ac1c200d81b1
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_PYTHON3_PSUTIL_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-system-python3-pybuild.in b/rules/host-system-python3-pybuild.in
new file mode 100644
index 000000000..ffa6fe54b
--- /dev/null
+++ b/rules/host-system-python3-pybuild.in
@@ -0,0 +1,10 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_PYTHON3_PYBUILD
+ tristate
+ default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_FLIT_CORE
+ select HOST_SYSTEM_PYTHON3_PACKAGING
+ select HOST_SYSTEM_PYTHON3_PYPROJECT_HOOKS
+ select HOST_SYSTEM_PYTHON3_TOMLI
diff --git a/rules/host-system-python3-pybuild.make b/rules/host-system-python3-pybuild.make
new file mode 100644
index 000000000..785dde3b9
--- /dev/null
+++ b/rules/host-system-python3-pybuild.make
@@ -0,0 +1,20 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_PYTHON3_PYBUILD) += host-system-python3-pybuild
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_PYTHON3_PYBUILD_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-system-python3-pyelftools.in b/rules/host-system-python3-pyelftools.in
new file mode 100644
index 000000000..13a5b52e2
--- /dev/null
+++ b/rules/host-system-python3-pyelftools.in
@@ -0,0 +1,8 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_PYTHON3_PYELFTOOLS
+ tristate
+ default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_PYBUILD
+ select HOST_SYSTEM_PYTHON3_WHEEL
diff --git a/rules/host-system-python3-pyelftools.make b/rules/host-system-python3-pyelftools.make
new file mode 100644
index 000000000..a7fc51ff1
--- /dev/null
+++ b/rules/host-system-python3-pyelftools.make
@@ -0,0 +1,34 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_PYTHON3_PYELFTOOLS) += host-system-python3-pyelftools
+
+#
+# Paths and names
+#
+HOST_SYSTEM_PYTHON3_PYELFTOOLS_VERSION := 0.30
+HOST_SYSTEM_PYTHON3_PYELFTOOLS_MD5 := 2b4f82fd30436834b9357a5e74b8ceb7
+HOST_SYSTEM_PYTHON3_PYELFTOOLS := system-pyelftools-$(HOST_SYSTEM_PYTHON3_PYELFTOOLS_VERSION)
+HOST_SYSTEM_PYTHON3_PYELFTOOLS_SUFFIX := tar.gz
+HOST_SYSTEM_PYTHON3_PYELFTOOLS_URL := $(call ptx/mirror-pypi, pyelftools, pyelftools-$(HOST_SYSTEM_PYTHON3_PYELFTOOLS_VERSION).$(HOST_SYSTEM_PYTHON3_PYELFTOOLS_SUFFIX))
+HOST_SYSTEM_PYTHON3_PYELFTOOLS_SOURCE := $(SRCDIR)/$(HOST_SYSTEM_PYTHON3_PYELFTOOLS).$(HOST_SYSTEM_PYTHON3_PYELFTOOLS_SUFFIX)
+HOST_SYSTEM_PYTHON3_PYELFTOOLS_DIR := $(HOST_BUILDDIR)/$(HOST_SYSTEM_PYTHON3_PYELFTOOLS)
+HOST_SYSTEM_PYTHON3_PYELFTOOLS_LICENSE := Unlicense
+HOST_SYSTEM_PYTHON3_PYELFTOOLS_LICENSE_FILES := \
+ file://LICENSE;md5=5ce2a2b07fca326bc7c146d10105ccfc
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_PYTHON3_PYELFTOOLS_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-system-python3-pymongo.in b/rules/host-system-python3-pymongo.in
new file mode 100644
index 000000000..353c2441f
--- /dev/null
+++ b/rules/host-system-python3-pymongo.in
@@ -0,0 +1,9 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_PYTHON3_PYMONGO
+ tristate
+ default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_PYBUILD
+ select HOST_SYSTEM_PYTHON3_INSTALLER
+ select HOST_SYSTEM_PYTHON3_WHEEL
diff --git a/rules/host-system-python3-pymongo.make b/rules/host-system-python3-pymongo.make
new file mode 100644
index 000000000..4bb0e0cf5
--- /dev/null
+++ b/rules/host-system-python3-pymongo.make
@@ -0,0 +1,34 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_PYTHON3_PYMONGO) += host-system-python3-pymongo
+
+#
+# Paths and names
+#
+HOST_SYSTEM_PYTHON3_PYMONGO_VERSION := 4.6.2
+HOST_SYSTEM_PYTHON3_PYMONGO_MD5 := 3f0e3741a0699c721e280f4a83695bc8
+HOST_SYSTEM_PYTHON3_PYMONGO := pymongo-$(HOST_SYSTEM_PYTHON3_PYMONGO_VERSION)
+HOST_SYSTEM_PYTHON3_PYMONGO_SUFFIX := tar.gz
+HOST_SYSTEM_PYTHON3_PYMONGO_URL := $(call ptx/mirror-pypi, pymongo, $(HOST_SYSTEM_PYTHON3_PYMONGO).$(HOST_SYSTEM_PYTHON3_PYMONGO_SUFFIX))
+HOST_SYSTEM_PYTHON3_PYMONGO_SOURCE := $(SRCDIR)/$(HOST_SYSTEM_PYTHON3_PYMONGO).$(HOST_SYSTEM_PYTHON3_PYMONGO_SUFFIX)
+HOST_SYSTEM_PYTHON3_PYMONGO_DIR := $(HOST_BUILDDIR)/$(HOST_SYSTEM_PYTHON3_PYMONGO)
+HOST_SYSTEM_PYTHON3_PYMONGO_LICENSE := Apache-2.0
+HOST_SYSTEM_PYTHON3_PYMONGO_LICENSE_FILES := \
+ file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_PYTHON3_PYMONGO_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-system-python3-pyproject-hooks.in b/rules/host-system-python3-pyproject-hooks.in
new file mode 100644
index 000000000..3745cc1f3
--- /dev/null
+++ b/rules/host-system-python3-pyproject-hooks.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_PYTHON3_PYPROJECT_HOOKS
+ tristate
+ default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_FLIT_CORE
diff --git a/rules/host-system-python3-pyproject-hooks.make b/rules/host-system-python3-pyproject-hooks.make
new file mode 100644
index 000000000..5fdecfba4
--- /dev/null
+++ b/rules/host-system-python3-pyproject-hooks.make
@@ -0,0 +1,20 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_PYTHON3_PYPROJECT_HOOKS) += host-system-python3-pyproject-hooks
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_PYTHON3_PYPROJECT_HOOKS_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-system-python3-setuptools.in b/rules/host-system-python3-setuptools.in
new file mode 100644
index 000000000..025fc7d3d
--- /dev/null
+++ b/rules/host-system-python3-setuptools.in
@@ -0,0 +1,6 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_PYTHON3_SETUPTOOLS
+ tristate
+ default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
diff --git a/rules/host-system-python3-setuptools.make b/rules/host-system-python3-setuptools.make
new file mode 100644
index 000000000..47b6c272c
--- /dev/null
+++ b/rules/host-system-python3-setuptools.make
@@ -0,0 +1,20 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_PYTHON3_SETUPTOOLS) += host-system-python3-setuptools
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_PYTHON3_SETUPTOOLS_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-system-python3-six.in b/rules/host-system-python3-six.in
new file mode 100644
index 000000000..c08eba36c
--- /dev/null
+++ b/rules/host-system-python3-six.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_PYTHON3_SIX
+ tristate
+ default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_SETUPTOOLS
diff --git a/rules/host-system-python3-six.make b/rules/host-system-python3-six.make
new file mode 100644
index 000000000..f21d7b5de
--- /dev/null
+++ b/rules/host-system-python3-six.make
@@ -0,0 +1,20 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_PYTHON3_SIX) += host-system-python3-six
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_PYTHON3_SIX_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-system-python3-toml.in b/rules/host-system-python3-toml.in
new file mode 100644
index 000000000..051c09caf
--- /dev/null
+++ b/rules/host-system-python3-toml.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_PYTHON3_TOML
+ tristate
+ default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_SETUPTOOLS
diff --git a/rules/host-system-python3-toml.make b/rules/host-system-python3-toml.make
new file mode 100644
index 000000000..8f9d0f8da
--- /dev/null
+++ b/rules/host-system-python3-toml.make
@@ -0,0 +1,20 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_PYTHON3_TOML) += host-system-python3-toml
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_PYTHON3_TOML_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-system-python3-tomli.in b/rules/host-system-python3-tomli.in
new file mode 100644
index 000000000..e02a2fd5f
--- /dev/null
+++ b/rules/host-system-python3-tomli.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_PYTHON3_TOMLI
+ tristate
+ default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_FLIT_CORE
diff --git a/rules/host-system-python3-tomli.make b/rules/host-system-python3-tomli.make
new file mode 100644
index 000000000..5b3d09ee5
--- /dev/null
+++ b/rules/host-system-python3-tomli.make
@@ -0,0 +1,20 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_PYTHON3_TOMLI) += host-system-python3-tomli
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_PYTHON3_TOMLI_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-system-python3-webencodings.in b/rules/host-system-python3-webencodings.in
new file mode 100644
index 000000000..8437e1e86
--- /dev/null
+++ b/rules/host-system-python3-webencodings.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_PYTHON3_WEBENCODINGS
+ tristate
+ default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_SETUPTOOLS
diff --git a/rules/host-system-python3-webencodings.make b/rules/host-system-python3-webencodings.make
new file mode 100644
index 000000000..306d3ced7
--- /dev/null
+++ b/rules/host-system-python3-webencodings.make
@@ -0,0 +1,32 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_PYTHON3_WEBENCODINGS) += host-system-python3-webencodings
+
+#
+# Paths and names
+#
+HOST_SYSTEM_PYTHON3_WEBENCODINGS_VERSION := 0.5.1
+HOST_SYSTEM_PYTHON3_WEBENCODINGS_MD5 := 32f6e261d52e57bf7e1c4d41546d15b8
+HOST_SYSTEM_PYTHON3_WEBENCODINGS := webencodings-$(HOST_SYSTEM_PYTHON3_WEBENCODINGS_VERSION)
+HOST_SYSTEM_PYTHON3_WEBENCODINGS_SUFFIX := tar.gz
+HOST_SYSTEM_PYTHON3_WEBENCODINGS_URL := $(call ptx/mirror-pypi, webencodings, $(HOST_SYSTEM_PYTHON3_WEBENCODINGS).$(HOST_SYSTEM_PYTHON3_WEBENCODINGS_SUFFIX))
+HOST_SYSTEM_PYTHON3_WEBENCODINGS_SOURCE := $(SRCDIR)/$(HOST_SYSTEM_PYTHON3_WEBENCODINGS).$(HOST_SYSTEM_PYTHON3_WEBENCODINGS_SUFFIX)
+HOST_SYSTEM_PYTHON3_WEBENCODINGS_DIR := $(HOST_BUILDDIR)/$(HOST_SYSTEM_PYTHON3_WEBENCODINGS)
+HOST_SYSTEM_PYTHON3_WEBENCODINGS_LICENSE := BSD-3-Clause
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_PYTHON3_WEBENCODINGS_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-system-python3-wheel.in b/rules/host-system-python3-wheel.in
new file mode 100644
index 000000000..17534e3c2
--- /dev/null
+++ b/rules/host-system-python3-wheel.in
@@ -0,0 +1,8 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SYSTEM_PYTHON3_WHEEL
+ tristate
+ default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_PYBUILD
+ select HOST_SYSTEM_PYTHON3_INSTALLER
diff --git a/rules/host-system-python3-wheel.make b/rules/host-system-python3-wheel.make
new file mode 100644
index 000000000..d98ae1c80
--- /dev/null
+++ b/rules/host-system-python3-wheel.make
@@ -0,0 +1,20 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SYSTEM_PYTHON3_WHEEL) += host-system-python3-wheel
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SYSTEM_PYTHON3_WHEEL_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/host-system-python3.in b/rules/host-system-python3.in
index c6ce3360a..9daf4a761 100644
--- a/rules/host-system-python3.in
+++ b/rules/host-system-python3.in
@@ -5,19 +5,16 @@ config HOST_SYSTEM_PYTHON3
if HOST_SYSTEM_PYTHON3
-config HOST_SYSTEM_PYTHON3_DEV
+config HOST_SYSTEM_PYTHON3_CRYPTOGRAPHY
bool
-config HOST_SYSTEM_PYTHON3_MAKO
+config HOST_SYSTEM_PYTHON3_DEV
bool
config HOST_SYSTEM_PYTHON3_NUMPY
bool
-config HOST_SYSTEM_PYTHON3_SETUPTOOLS
- bool
-
-config HOST_SYSTEM_PYTHON3_SIX
+config HOST_SYSTEM_PYTHON3_PYYAML
bool
endif
diff --git a/rules/host-system-python3.make b/rules/host-system-python3.make
index 7f97f9349..077bba378 100644
--- a/rules/host-system-python3.make
+++ b/rules/host-system-python3.make
@@ -21,39 +21,40 @@ HOST_SYSTEM_PYTHON3_LICENSE := ignore
$(STATEDIR)/host-system-python3.prepare:
@$(call targetinfo)
@echo "Checking for Python 3 ..."
- @$(SYSTEMPYTHON3) -V >/dev/null 2>&1 || \
+ @HOST_SYSTEM_PYTHON3_SETUP=1 $(SYSTEMPYTHON3) -V || \
ptxd_bailout "'python3' not found! Please install.";
@echo
+ @HOST_SYSTEM_PYTHON3_SETUP=1 $(SYSTEMPYTHON3) -m venv \
+ --system-site-packages \
+ $(PTXDIST_SYSROOT_HOST)/usr/lib/system-python3
+ @$(PTXDIST_SYSROOT_HOST)/usr/lib/system-python3/bin/pip3 \
+ uninstall --yes setuptools
+
+ifdef PTXCONF_HOST_SYSTEM_PYTHON3_CRYPTOGRAPHY
+ @echo "Checking for Python Cryptography ..."
+ @$(SYSTEMPYTHON3) -c 'import cryptography' 2>/dev/null || \
+ ptxd_bailout "Python cryptography module not found! \
+ Please install python3-cryptography (debian)";
+endif
ifdef PTXCONF_HOST_SYSTEM_PYTHON3_DEV
@echo "Checking for Python development files ..."
@$(SYSTEMPYTHON3)-config --includes &>/dev/null || \
ptxd_bailout "Python development files module not found! \
Please install python3-dev (debian)";
endif
-ifdef PTXCONF_HOST_SYSTEM_PYTHON3_MAKO
- @echo "Checking for Python Mako ..."
- @$(SYSTEMPYTHON3) -c 'import mako' 2>/dev/null || \
- ptxd_bailout "Python mako module not found! \
- Please install python3-mako (debian)";
-endif
ifdef PTXCONF_HOST_SYSTEM_PYTHON3_NUMPY
@echo "Checking for Python Numpy ..."
@$(SYSTEMPYTHON3) -c 'import numpy' 2>/dev/null || \
ptxd_bailout "Python numpy module not found! \
Please install python3-numpy (debian)";
endif
-ifdef PTXCONF_HOST_SYSTEM_PYTHON3_SETUPTOOLS
- @echo "Checking for Python Setuptools ..."
- @$(SYSTEMPYTHON3) -c 'import setuptools' 2>/dev/null || \
- ptxd_bailout "Python setuptools module not found! \
- Please install python3-setuptools (debian)";
-endif
-ifdef PTXCONF_HOST_SYSTEM_PYTHON3_SIX
- @echo "Checking for Python Six ..."
- @$(SYSTEMPYTHON3) -c 'import six' 2>/dev/null || \
- ptxd_bailout "Python six module not found! \
- Please install python3-six (debian)";
+ifdef PTXCONF_HOST_SYSTEM_PYTHON3_PYYAML
+ @echo "Checking for Python pyyaml ..."
+ @$(SYSTEMPYTHON3) -c 'import yaml' 2>/dev/null || \
+ ptxd_bailout "Python pyyaml module not found! \
+ Please install python3-yaml (debian)";
endif
+
@$(call touch)
# vim: syntax=make
diff --git a/rules/host-systemd.in b/rules/host-systemd.in
index f80d9de10..d5c0ed0b5 100644
--- a/rules/host-systemd.in
+++ b/rules/host-systemd.in
@@ -3,7 +3,9 @@
config HOST_SYSTEMD
bool
default y if ALLYES
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_JINJA2
select HOST_MESON
select HOST_GPERF
- select HOST_UTIL_LINUX_NG
+ select HOST_UTIL_LINUX
select HOST_LIBCAP
diff --git a/rules/host-systemd.make b/rules/host-systemd.make
index 42409d7b5..24590c2a3 100644
--- a/rules/host-systemd.make
+++ b/rules/host-systemd.make
@@ -23,16 +23,21 @@ HOST_SYSTEMD_CONF_OPT := \
-Dacl=false \
-Dadm-group=true \
-Danalyze=false \
- -Dapparmor=false \
- -Daudit=false \
+ -Dapparmor=disabled \
+ -Daudit=disabled \
-Dbacklight=false \
-Dbinfmt=false \
- -Dblkid=false \
- -Dbzip2=false \
+ -Dblkid=disabled \
+ -Dbootloader=disabled \
+ -Dbpf-framework=disabled \
+ -Dbump-proc-sys-fs-file-max=true \
+ -Dbump-proc-sys-fs-nr-open=true \
+ -Dbzip2=disabled \
-Dcompat-mutable-uid-boundaries=false \
-Dcoredump=false \
-Dcreate-log-dirs=false \
- -Ddbus=false \
+ -Dcryptolib=auto \
+ -Ddbus=disabled \
-Ddbuspolicydir=/usr/share/dbus-1/system.d \
-Ddbussessionservicedir=/usr/share/dbus-1/services \
-Ddbussystemservicedir=/usr/share/dbus-1/system-services \
@@ -48,89 +53,94 @@ HOST_SYSTEMD_CONF_OPT := \
-Ddns-over-tls=false \
-Ddns-servers= \
-Defi=false \
- -Delfutils=false \
+ -Delfutils=disabled \
-Denvironment-d=false \
-Dfallback-hostname=localhost \
- -Dfdisk=false \
+ -Dfdisk=disabled \
-Dfexecve=false \
-Dfirstboot=false \
-Dfuzz-tests=false \
- -Dgcrypt=false \
- -Dglib=false \
- -Dgnutls=false \
+ -Dgcrypt=disabled \
+ -Dglib=disabled \
+ -Dgnutls=disabled \
-Dgroup-render-mode=0666 \
-Dgshadow=false \
-Dhibernate=false \
- -Dhomed=false \
+ -Dhomed=disabled \
-Dhostnamed=false \
- -Dhtml=false \
+ -Dhtml=disabled \
-Dhwdb=true \
-Didn=false \
-Dima=false \
- -Dimportd=false \
+ -Dimportd=disabled \
-Dinitrd=false \
-Dinstall-sysconfdir=false \
-Dinstall-tests=false \
-Dkernel-install=false \
- -Dkmod=false \
+ -Dkmod=disabled \
-Dldconfig=false \
- -Dlibcryptsetup=false \
- -Dlibcurl=false \
- -Dlibfido2=false \
- -Dlibidn=false \
- -Dlibidn2=false \
- -Dlibiptc=false \
+ -Dlibcryptsetup=disabled \
+ -Dlibcurl=disabled \
+ -Dlibfido2=disabled \
+ -Dlibidn=disabled \
+ -Dlibidn2=disabled \
+ -Dlibiptc=disabled \
+ -Dlink-boot-shared=true \
+ -Dlink-journalctl-shared=true \
-Dlink-networkd-shared=true \
+ -Dlink-portabled-shared=true \
-Dlink-systemctl-shared=true \
-Dlink-timesyncd-shared=true \
-Dlink-udev-shared=true \
-Dllvm-fuzz=false \
-Dlocaled=false \
+ -Dlog-message-verification=disabled \
-Dlog-trace=false \
-Dlogind=false \
- -Dlz4=false \
+ -Dlz4=disabled \
-Dmachined=false \
- -Dman=false \
+ -Dman=disabled \
-Dmemory-accounting-default=false \
- -Dmicrohttpd=false \
+ -Dmicrohttpd=disabled \
-Dmode=release \
-Dnetworkd=false \
- -Dnobody-group=nobody \
+ -Dnobody-group=nogroup \
-Dnobody-user=nobody \
-Dnscd=false \
-Dnss-myhostname=false \
- -Dnss-mymachines=false \
- -Dnss-resolve=false \
+ -Dnss-mymachines=disabled \
+ -Dnss-resolve=disabled \
-Dnss-systemd=false \
-Dntp-servers= \
-Dok-color=green \
-Doomd=false \
- -Dopenssl=false \
+ -Dopenssl=disabled \
-Doss-fuzz=false \
- -Dp11kit=false \
- -Dpam=false \
- -Dpcre2=false \
- -Dpolkit=false \
+ -Dp11kit=disabled \
+ -Dpam=disabled \
+ -Dpasswdqc=disabled \
+ -Dpcre2=disabled \
+ -Dpolkit=disabled \
-Dportabled=false \
-Dpstore=false \
- -Dpwquality=false \
- -Dqrencode=false \
+ -Dpwquality=disabled \
+ -Dqrencode=disabled \
-Dquotacheck=false \
-Drandomseed=false \
-Dremote=false \
- -Drepart=false \
+ -Drepart=disabled \
-Dresolve=false \
-Drfkill=false \
- -Dseccomp=false \
- -Dselinux=false \
+ -Dseccomp=disabled \
+ -Dselinux=disabled \
-Dslow-tests=false \
-Dsmack=false \
-Dsplit-bin=true \
- -Dsplit-usr=false \
-Dstandalone-binaries=false \
-Dstatic-libsystemd=false \
-Dstatic-libudev=false \
-Dstatus-unit-format-default=name \
+ -Dstoragetm=false \
-Dsysext=false \
-Dsystem-gid-max=999 \
-Dsystem-uid-max=999 \
@@ -143,19 +153,20 @@ HOST_SYSTEMD_CONF_OPT := \
-Dtimesyncd=false \
-Dtmpfiles=false \
-Dtpm=false \
- -Dtpm2=false \
+ -Dtpm2=disabled \
-Dtranslations=false \
-Duserdb=false \
-Dutmp=false \
- -Dvalgrind=false \
-Dvconsole=false \
+ -Dvmspawn=disabled \
-Dversion-tag=$(HOST_SYSTEMD_VERSION) \
-Dwheel-group=false \
-Dxdg-autostart=false \
- -Dxkbcommon=false \
- -Dxz=false \
- -Dzlib=false \
- -Dzstd=false
+ -Dxenctrl=disabled \
+ -Dxkbcommon=disabled \
+ -Dxz=disabled \
+ -Dzlib=disabled \
+ -Dzstd=disabled
HOST_SYSTEMD_MAKE_OPT := systemd-hwdb
@@ -165,11 +176,11 @@ HOST_SYSTEMD_MAKE_OPT := systemd-hwdb
$(STATEDIR)/host-systemd.install:
@$(call targetinfo)
- @rm -rf $(HOST_SYSTEMD_PKGDIR)
+ @rm -rf $(HOST_SYSTEMD_PKGDIR)/usr
@install -vD -m755 $(HOST_SYSTEMD_DIR)-build/systemd-hwdb \
- $(HOST_SYSTEMD_PKGDIR)/bin/systemd-hwdb
+ $(HOST_SYSTEMD_PKGDIR)/usr/bin/systemd-hwdb
@install -vD -m755 $(HOST_SYSTEMD_DIR)-build/src/shared/libsystemd-shared-$(SYSTEMD_VERSION_MAJOR).so \
- $(HOST_SYSTEMD_PKGDIR)/lib/libsystemd-shared-$(SYSTEMD_VERSION_MAJOR).so
+ $(HOST_SYSTEMD_PKGDIR)/usr/lib/libsystemd-shared-$(SYSTEMD_VERSION_MAJOR).so
@$(call touch)
# vim: syntax=make
diff --git a/rules/host-tf-a.make b/rules/host-tf-a.make
new file mode 100644
index 000000000..38f000642
--- /dev/null
+++ b/rules/host-tf-a.make
@@ -0,0 +1,20 @@
+# -*-makefile-*-
+# Copyright (C) 2021 by Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_TF_A) += host-tf-a
+
+HOST_TF_A_MAKE_OPT = fiptool
+
+$(STATEDIR)/host-tf-a.install:
+ @$(call targetinfo)
+ install -vD -m755 $(HOST_TF_A_DIR)/tools/fiptool/fiptool $(HOST_TF_A_PKGDIR)/usr/bin/fiptool
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/host-timeout.make b/rules/host-timeout.make
index 73f240f3a..cffe012d6 100644
--- a/rules/host-timeout.make
+++ b/rules/host-timeout.make
@@ -31,7 +31,7 @@ HOST_TIMEOUT_MAKE_OPT := ../../bin/timeout
$(STATEDIR)/host-timeout.install:
@$(call targetinfo)
@$(INSTALL) -v -m 755 -D $(HOST_TIMEOUT_DIR)/bin/timeout \
- $(PTXDIST_SYSROOT_HOST)/bin/timeout
+ $(PTXDIST_SYSROOT_HOST)/usr/bin/timeout
@$(call touch)
# vim: syntax=make
diff --git a/rules/host-tz-database.make b/rules/host-tz-database.make
index c77deb9c5..b0b3f74c9 100644
--- a/rules/host-tz-database.make
+++ b/rules/host-tz-database.make
@@ -17,56 +17,42 @@ HOST_PACKAGES-$(PTXCONF_HOST_TZ_DATABASE) += host-tz-database
#
HOST_TZ_DATABASE := tz-database
HOST_TZ_DATABASE_DIR := $(HOST_BUILDDIR)/$(HOST_TZ_DATABASE)
-HOST_TZ_DATABASE_VERSION:= 2020d
+HOST_TZ_DATABASE_VERSION:= 2024a
TZCODE_VERSION := $(HOST_TZ_DATABASE_VERSION)
-TZCODE_MD5 := b4c46a69e5894aac713e8365a9be9411
+TZCODE_MD5 := 1a9d670f0b418130503401b8b8f41769
TZCODE := tzcode$(TZCODE_VERSION)
TZCODE_SUFFIX := tar.gz
TZCODE_URL := \
http://www.iana.org/time-zones/repository/releases/$(TZCODE).$(TZCODE_SUFFIX)
TZCODE_SOURCE := $(SRCDIR)/$(TZCODE).$(TZCODE_SUFFIX)
-$(TZCODE_SOURCE) := TZCODE
TZCODE_DIR := $(HOST_TZ_DATABASE_DIR)
TZCODE_STRIP_LEVEL := 0
TZDATA_VERSION := $(HOST_TZ_DATABASE_VERSION)
-TZDATA_MD5 := 2f58d72e31cf073f5076c2cbf182cba3
+TZDATA_MD5 := 2349edd8335245525cc082f2755d5bf4
TZDATA := tzdata$(TZDATA_VERSION)
TZDATA_SUFFIX := tar.gz
TZDATA_URL := \
http://www.iana.org/time-zones/repository/releases/$(TZDATA).$(TZDATA_SUFFIX)
TZDATA_SOURCE := $(SRCDIR)/$(TZDATA).$(TZDATA_SUFFIX)
-$(TZDATA_SOURCE) := TZDATA
TZDATA_DIR := $(HOST_TZ_DATABASE_DIR)
TZDATA_STRIP_LEVEL := 0
-HOST_TZ_DATABASE_SOURCES := $(TZCODE_SOURCE) $(TZDATA_SOURCE)
+HOST_TZ_DATABASE_PARTS := TZCODE TZDATA
HOST_TZ_DATABASE_LICENSE := public_domain AND BSD-3-Clause
HOST_TZ_DATABASE_LICENSE_FILES := \
file://LICENSE;md5=c679c9d6b02bc2757b3eaf8f53c43fba \
file://date.c;startline=3;endline=28;md5=0b516100709f6de9dc65257bf91e6dd0
# ----------------------------------------------------------------------------
-# Extract
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/host-tz-database.extract:
- @$(call targetinfo)
- @$(call clean, $(HOST_TZ_DATABASE_DIR))
- @$(call extract, TZCODE)
- @$(call extract, TZDATA)
- @$(call touch)
-
-# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-HOST_TZ_DATABASE_PATH := PATH=$(HOST_PATH)
HOST_TZ_DATABASE_CONF_TOOL := NO
HOST_TZ_DATABASE_MAKE_OPT := \
zic TZDIR=/usr/share/zoneinfo CFLAGS=-DSTD_INSPIRED
HOST_TZ_DATABASE_INSTALL_OPT := \
- posix_only TZDIR=/usr/share/zoneinfo
+ REDO=posix_only TZDIR=/usr/share/zoneinfo install
# vim: syntax=make
diff --git a/rules/host-u-boot-tools.make b/rules/host-u-boot-tools.make
index 3a980dd76..d4d245b6b 100644
--- a/rules/host-u-boot-tools.make
+++ b/rules/host-u-boot-tools.make
@@ -32,7 +32,7 @@ $(STATEDIR)/host-u-boot-tools.install:
@$(call targetinfo)
@$(foreach prog, $(HOST_U_BOOT_TOOLS_PROGS), \
install -vD $(HOST_U_BOOT_TOOLS_DIR)/tools/$(prog) \
- $(HOST_U_BOOT_TOOLS_PKGDIR)/bin/$(prog)$(ptx/nl))
+ $(HOST_U_BOOT_TOOLS_PKGDIR)/usr/bin/$(prog)$(ptx/nl))
@$(call touch)
diff --git a/rules/host-unifdef.in b/rules/host-unifdef.in
new file mode 100644
index 000000000..07de11283
--- /dev/null
+++ b/rules/host-unifdef.in
@@ -0,0 +1,6 @@
+## SECTION=hosttools_noprompt
+
+config HOST_UNIFDEF
+ tristate
+ default y if ALLYES
+
diff --git a/rules/host-unifdef.make b/rules/host-unifdef.make
new file mode 100644
index 000000000..da3c14c6c
--- /dev/null
+++ b/rules/host-unifdef.make
@@ -0,0 +1,38 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_UNIFDEF) += host-unifdef
+
+#
+# Paths and names
+#
+HOST_UNIFDEF_VERSION := 2.12
+HOST_UNIFDEF_MD5 := ae8c0b3b4c43c1f6bc5f32412a820818
+HOST_UNIFDEF := unifdef-$(HOST_UNIFDEF_VERSION)
+HOST_UNIFDEF_SUFFIX := tar.xz
+HOST_UNIFDEF_URL := https://dotat.at/prog/unifdef/$(HOST_UNIFDEF).$(HOST_UNIFDEF_SUFFIX)
+HOST_UNIFDEF_SOURCE := $(SRCDIR)/$(HOST_UNIFDEF).$(HOST_UNIFDEF_SUFFIX)
+HOST_UNIFDEF_DIR := $(HOST_BUILDDIR)/$(HOST_UNIFDEF)
+HOST_UNIFDEF_LICENSE := BSD-2-Clause
+HOST_UNIFDEF_LICENSE_FILES := \
+ file://COPYING;md5=3498caf346f6b77934882101749ada23
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_UNIFDEF_CONF_TOOL := NO
+
+HOST_UNIFDEF_MAKE_ENV := \
+ $(HOST_ENV) \
+ HOME=/usr
+
+# vim: syntax=make
diff --git a/rules/host-ustr.in b/rules/host-ustr.in
deleted file mode 100644
index 65c8c2b89..000000000
--- a/rules/host-ustr.in
+++ /dev/null
@@ -1,10 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=hosttools_noprompt
-
-config HOST_USTR
- tristate
- default y if ALLYES
- help
- STAGING: remove in PTXdist 2021.07.0
- No new versions since 2008, and fails to download.
diff --git a/rules/host-util-linux-ng.in b/rules/host-util-linux-ng.in
deleted file mode 100644
index 853a86878..000000000
--- a/rules/host-util-linux-ng.in
+++ /dev/null
@@ -1,7 +0,0 @@
-## SECTION=hosttools_noprompt
-
-config HOST_UTIL_LINUX_NG
- tristate
- default y if ALLYES
- help
- Useful hosttools and libs for linux ng utils.
diff --git a/rules/host-util-linux-ng.make b/rules/host-util-linux-ng.make
deleted file mode 100644
index 15234835e..000000000
--- a/rules/host-util-linux-ng.make
+++ /dev/null
@@ -1,65 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2010 by Carsten Schlote <c.schlote@konzeptpark.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-HOST_PACKAGES-$(PTXCONF_HOST_UTIL_LINUX_NG) += host-util-linux-ng
-
-#
-# Paths and names
-#
-HOST_UTIL_LINUX_NG_DIR = $(HOST_BUILDDIR)/$(UTIL_LINUX_NG)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-
-HOST_UTIL_LINUX_NG_CONF_TOOL := autoconf
-HOST_UTIL_LINUX_NG_CONF_OPT := \
- $(HOST_AUTOCONF) \
- --enable-shared \
- --disable-static \
- --disable-gtk-doc \
- --disable-nls \
- --disable-static-programs \
- --disable-all-programs \
- --enable-tls \
- --enable-libuuid \
- --enable-libblkid \
- --enable-libmount \
- --disable-bash-completion \
- --disable-pylibmount \
- --disable-pg-bell \
- --disable-use-tty-group \
- --disable-sulogin-emergency-mount \
- --disable-usrdir-path \
- --disable-makeinstall-chown \
- --disable-makeinstall-setuid \
- --disable-colors-default \
- --without-libiconv-prefix \
- --without-libintl-prefix \
- --with-util \
- --without-audit \
- --without-udev \
- --without-ncurses \
- --without-slang \
- --without-tinfo \
- --without-readline \
- --without-utempter \
- --without-libz \
- --without-user \
- --without-systemd \
- --without-smack \
- --without-python
-
-# vim: syntax=make
diff --git a/rules/host-util-linux.in b/rules/host-util-linux.in
new file mode 100644
index 000000000..69bc8f36c
--- /dev/null
+++ b/rules/host-util-linux.in
@@ -0,0 +1,8 @@
+## SECTION=hosttools_noprompt
+
+config HOST_UTIL_LINUX
+ tristate
+ select HOST_MESON
+ default y if ALLYES
+ help
+ Useful hosttools and libs for linux utils.
diff --git a/rules/host-util-linux.make b/rules/host-util-linux.make
new file mode 100644
index 000000000..adaf0b86c
--- /dev/null
+++ b/rules/host-util-linux.make
@@ -0,0 +1,133 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2010 by Carsten Schlote <c.schlote@konzeptpark.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_UTIL_LINUX) += host-util-linux
+
+#
+# Paths and names
+#
+HOST_UTIL_LINUX_DIR = $(HOST_BUILDDIR)/$(UTIL_LINUX)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# meson
+#
+
+HOST_UTIL_LINUX_CONF_TOOL := meson
+HOST_UTIL_LINUX_CONF_OPT := \
+ $(HOST_MESON_OPT) \
+ -Daudit=disabled \
+ -Dbtrfs=disabled \
+ -Dbuild-agetty=disabled \
+ -Dbuild-bash-completion=disabled \
+ -Dbuild-bfs=disabled \
+ -Dbuild-cal=disabled \
+ -Dbuild-chfn-chsh=disabled \
+ -Dbuild-chmem=disabled \
+ -Dbuild-cramfs=disabled \
+ -Dbuild-eject=disabled \
+ -Dbuild-fallocate=disabled \
+ -Dbuild-fdformat=disabled \
+ -Dbuild-fdisks=disabled \
+ -Dbuild-fsck=disabled \
+ -Dbuild-hardlink=disabled \
+ -Dbuild-hwclock=disabled \
+ -Dbuild-ipcrm=disabled \
+ -Dbuild-ipcs=disabled \
+ -Dbuild-irqtop=disabled \
+ -Dbuild-kill=disabled \
+ -Dbuild-last=disabled \
+ -Dbuild-libblkid=enabled \
+ -Dbuild-libfdisk=disabled \
+ -Dbuild-liblastlog2=disabled \
+ -Dbuild-libmount=enabled \
+ -Dbuild-libsmartcols=disabled \
+ -Dbuild-libuuid=enabled \
+ -Dbuild-line=disabled \
+ -Dbuild-logger=disabled \
+ -Dbuild-login=disabled \
+ -Dbuild-losetup=disabled \
+ -Dbuild-lsirq=disabled \
+ -Dbuild-lslogins=disabled \
+ -Dbuild-lsmem=disabled \
+ -Dbuild-mesg=disabled \
+ -Dbuild-minix=disabled \
+ -Dbuild-more=disabled \
+ -Dbuild-mount=disabled \
+ -Dbuild-mountpoint=disabled \
+ -Dbuild-newgrp=disabled \
+ -Dbuild-nologin=disabled \
+ -Dbuild-nsenter=disabled \
+ -Dbuild-pam-lastlog2=disabled \
+ -Dbuild-partx=disabled \
+ -Dbuild-pg=disabled \
+ -Dbuild-pipesz=disabled \
+ -Dbuild-pivot_root=disabled \
+ -Dbuild-plymouth-support=disabled \
+ -Dbuild-pylibmount=disabled \
+ -Dbuild-python=disabled \
+ -Dbuild-raw=disabled \
+ -Dbuild-rename=disabled \
+ -Dbuild-rfkill=disabled \
+ -Dbuild-runuser=disabled \
+ -Dbuild-schedutils=disabled \
+ -Dbuild-setpriv=disabled \
+ -Dbuild-setterm=disabled \
+ -Dbuild-su=disabled \
+ -Dbuild-sulogin=disabled \
+ -Dbuild-switch_root=disabled \
+ -Dbuild-tunelp=disabled \
+ -Dbuild-ul=disabled \
+ -Dbuild-unshare=disabled \
+ -Dbuild-utmpdump=disabled \
+ -Dbuild-uuidd=disabled \
+ -Dbuild-vipw=disabled \
+ -Dbuild-wall=disabled \
+ -Dbuild-wdctl=disabled \
+ -Dbuild-wipefs=disabled \
+ -Dbuild-write=disabled \
+ -Dbuild-zramctl=disabled \
+ -Dchfn-chsh-password=true \
+ -Dchsh-only-listed=true \
+ -Dcolors-default=true \
+ -Dcryptsetup=disabled \
+ -Dcryptsetup-dlopen=disabled \
+ -Deconf=disabled \
+ -Dfs-search-path=/usr/sbin \
+ -Dfs-search-path-extra= \
+ -Dlibpcre2-posix=disabled \
+ -Dlibuser=disabled \
+ -Dlibutempter=disabled \
+ -Dlibutil=enabled \
+ -Dmagic=disabled \
+ -Dncurses=disabled \
+ -Dncursesw=disabled \
+ -Dnls=disabled \
+ -Dpg-bell=false \
+ -Dpython=false \
+ -Dreadline=disabled \
+ -Dselinux=disabled \
+ -Dslang=disabled \
+ -Dsmack=disabled \
+ -Dstatic-programs= \
+ -Dsystemd=disabled \
+ -Dsysvinit=disabled \
+ -Dtinfo=disabled \
+ -Duse-tls=true \
+ -Duse-tty-group=false \
+ -Dvendordir= \
+ -Dwidechar=$(call ptx/disen, UTIL_LINUX_USES_NCURSES)d \
+ -Dzlib=disabled
+
+# vim: syntax=make
diff --git a/rules/host-wayland.make b/rules/host-wayland.make
index 49ddb200e..44af4baa9 100644
--- a/rules/host-wayland.make
+++ b/rules/host-wayland.make
@@ -24,7 +24,8 @@ HOST_WAYLAND_CONF_OPT := \
-Ddocumentation=false \
-Ddtd_validation=false \
-Dicon_directory= \
- -Dlibraries=false \
- -Dscanner=true
+ -Dlibraries=true \
+ -Dscanner=true \
+ -Dtests=false
# vim: syntax=make
diff --git a/rules/host-xcb-proto.make b/rules/host-xcb-proto.make
index a498d74c5..9632d7f09 100644
--- a/rules/host-xcb-proto.make
+++ b/rules/host-xcb-proto.make
@@ -24,8 +24,5 @@ HOST_XCB_PROTO_CONF_ENV := \
# autoconf
#
HOST_XCB_PROTO_CONF_TOOL := autoconf
-# without this special prefix the xcb-proto.pc is broken
-HOST_XCB_PROTO_CONF_OPT := \
- --prefix=/.
# vim: syntax=make
diff --git a/rules/host-xorg-app-bdftopcf.make b/rules/host-xorg-app-bdftopcf.make
index 7f6bab471..5ea990e64 100644
--- a/rules/host-xorg-app-bdftopcf.make
+++ b/rules/host-xorg-app-bdftopcf.make
@@ -39,12 +39,9 @@ $(STATEDIR)/host-xorg-app-bdftopcf.extract:
# Prepare
# ----------------------------------------------------------------------------
-HOST_XORG_APP_BDFTOPCF_PATH := PATH=$(HOST_PATH)
-HOST_XORG_APP_BDFTOPCF_ENV := $(HOST_ENV)
-
#
# autoconf
#
-HOST_XORG_APP_BDFTOPCF_AUTOCONF := $(HOST_AUTOCONF)
+HOST_XORG_APP_BDFTOPCF_CONF_TOOL := autoconf
# vim: syntax=make
diff --git a/rules/host-xorg-app-mkfontscale.make b/rules/host-xorg-app-mkfontscale.make
index 0de25b677..543766a13 100644
--- a/rules/host-xorg-app-mkfontscale.make
+++ b/rules/host-xorg-app-mkfontscale.make
@@ -21,12 +21,9 @@ HOST_XORG_APP_MKFONTSCALE_DIR = $(HOST_BUILDDIR)/$(XORG_APP_MKFONTSCALE)
# Prepare
# ----------------------------------------------------------------------------
-HOST_XORG_APP_MKFONTSCALE_PATH := PATH=$(HOST_PATH)
-HOST_XORG_APP_MKFONTSCALE_ENV := $(HOST_ENV)
-
#
# autoconf
#
-HOST_XORG_APP_MKFONTSCALE_AUTOCONF := $(HOST_AUTOCONF)
+HOST_XORG_APP_MKFONTSCALE_CONF_TOOL := autoconf
# vim: syntax=make
diff --git a/rules/host-xorg-app-xkbcomp.make b/rules/host-xorg-app-xkbcomp.make
index 8f95acb39..f423eee09 100644
--- a/rules/host-xorg-app-xkbcomp.make
+++ b/rules/host-xorg-app-xkbcomp.make
@@ -15,21 +15,12 @@ HOST_PACKAGES-$(PTXCONF_HOST_XORG_APP_XKBCOMP) += host-xorg-app-xkbcomp
# Prepare
# ----------------------------------------------------------------------------
-#HOST_XORG_APP_XKBCOMP_CONF_ENV := $(HOST_ENV)
-
#
# autoconf
#
HOST_XORG_APP_XKBCOMP_CONF_TOOL := autoconf
-#HOST_XORG_APP_XKBCOMP_CONF_OPT := $(HOST_AUTOCONF)
-
-#$(STATEDIR)/host-xorg-app-xkbcomp.prepare:
-# @$(call targetinfo)
-# @$(call clean, $(HOST_XORG_APP_XKBCOMP_DIR)/config.cache)
-# cd $(HOST_XORG_APP_XKBCOMP_DIR) && \
-# $(HOST_XORG_APP_XKBCOMP_PATH) $(HOST_XORG_APP_XKBCOMP_ENV) \
-# ./configure $(HOST_XORG_APP_XKBCOMP_CONF_OPT)
-# @$(call touch)
+HOST_XORG_APP_XKBCOMP_MAKE_ENV := \
+ ICECC_REMOTE_CPP=0
# vim: syntax=make
diff --git a/rules/host-xorg-font-util.make b/rules/host-xorg-font-util.make
index acf6e9787..cacd4f90b 100644
--- a/rules/host-xorg-font-util.make
+++ b/rules/host-xorg-font-util.make
@@ -21,12 +21,9 @@ HOST_XORG_FONT_UTIL_DIR = $(HOST_BUILDDIR)/$(XORG_FONT_UTIL)
# Prepare
# ----------------------------------------------------------------------------
-HOST_XORG_FONT_UTIL_PATH := PATH=$(HOST_PATH)
-HOST_XORG_FONT_UTIL_ENV := $(HOST_ENV)
-
#
# autoconf
#
-HOST_XORG_FONT_UTIL_AUTOCONF := $(HOST_AUTOCONF)
+HOST_XORG_FONT_UTIL_CONF_TOOL := autoconf
# vim: syntax=make
diff --git a/rules/host-xorg-lib-Xau.make b/rules/host-xorg-lib-Xau.make
index 73c634fcc..ae64054db 100644
--- a/rules/host-xorg-lib-Xau.make
+++ b/rules/host-xorg-lib-Xau.make
@@ -19,6 +19,6 @@ HOST_PACKAGES-$(PTXCONF_HOST_XORG_LIB_XAU) += host-xorg-lib-xau
#
# autoconf
#
-HOST_XORG_LIB_XAU_AUTOCONF := $(HOST_AUTOCONF)
+HOST_XORG_LIB_XAU_CONF_TOOL := autoconf
# vim: syntax=make
diff --git a/rules/host-xorg-lib-Xfont.make b/rules/host-xorg-lib-Xfont.make
index a0407b2b3..3d2c89f2f 100644
--- a/rules/host-xorg-lib-Xfont.make
+++ b/rules/host-xorg-lib-Xfont.make
@@ -28,9 +28,6 @@ HOST_XORG_LIB_XFONT_LICENSE := MIT
# Prepare
# ----------------------------------------------------------------------------
-HOST_XORG_LIB_XFONT_PATH := PATH=$(HOST_PATH)
-HOST_XORG_LIB_XFONT_ENV := $(HOST_ENV)
-
#
# autoconf
#
diff --git a/rules/host-xorg-lib-fontenc.make b/rules/host-xorg-lib-fontenc.make
index bc3f2de85..57fa6edc3 100644
--- a/rules/host-xorg-lib-fontenc.make
+++ b/rules/host-xorg-lib-fontenc.make
@@ -21,12 +21,9 @@ HOST_XORG_LIB_FONTENC_DIR = $(HOST_BUILDDIR)/$(XORG_LIB_FONTENC)
# Prepare
# ----------------------------------------------------------------------------
-HOST_XORG_LIB_FONTENC_PATH := PATH=$(HOST_PATH)
-HOST_XORG_LIB_FONTENC_ENV := $(HOST_ENV)
-
#
# autoconf
#
-HOST_XORG_LIB_FONTENC_AUTOCONF := $(HOST_AUTOCONF)
+HOST_XORG_LIB_FONTENC_CONF_TOOL := autoconf
# vim: syntax=make
diff --git a/rules/host-xorg-lib-xtrans.make b/rules/host-xorg-lib-xtrans.make
index e149c4ef2..ff994b2c0 100644
--- a/rules/host-xorg-lib-xtrans.make
+++ b/rules/host-xorg-lib-xtrans.make
@@ -21,12 +21,9 @@ HOST_XORG_LIB_XTRANS_DIR = $(HOST_BUILDDIR)/$(XORG_LIB_XTRANS)
# Prepare
# ----------------------------------------------------------------------------
-HOST_XORG_LIB_XTRANS_PATH := PATH=$(HOST_PATH)
-HOST_XORG_LIB_XTRANS_ENV := $(HOST_ENV)
-
#
# autoconf
#
-HOST_XORG_LIB_XTRANS_AUTOCONF := $(HOST_AUTOCONF)
+HOST_XORG_LIB_XTRANS_CONF_TOOL := autoconf
# vim: syntax=make
diff --git a/rules/host-xorg-server.in b/rules/host-xorg-server.in
deleted file mode 100644
index 89201c864..000000000
--- a/rules/host-xorg-server.in
+++ /dev/null
@@ -1,8 +0,0 @@
-## SECTION=hosttools_noprompt
-
-config HOST_XORG_SERVER
- tristate
- select HOST_XORG_UTIL_MACROS
- select HOST_XORG_FONT_UTIL
- select HOST_XORG_LIB_XTRANS
- default y if ALLYES
diff --git a/rules/host-xorg-util-macros.make b/rules/host-xorg-util-macros.make
index 19ac3f21a..8ece23d59 100644
--- a/rules/host-xorg-util-macros.make
+++ b/rules/host-xorg-util-macros.make
@@ -14,10 +14,10 @@ HOST_PACKAGES-$(PTXCONF_HOST_XORG_UTIL_MACROS) += host-xorg-util-macros
#
# Paths and names
#
-HOST_XORG_UTIL_MACROS_VERSION := 1.19.2
-HOST_XORG_UTIL_MACROS_MD5 := 58edef899364f78fbde9479ded20211e
+HOST_XORG_UTIL_MACROS_VERSION := 1.20.0
+HOST_XORG_UTIL_MACROS_MD5 := 50135407d81e2c97c2879a2ba3bac688
HOST_XORG_UTIL_MACROS := util-macros-$(HOST_XORG_UTIL_MACROS_VERSION)
-HOST_XORG_UTIL_MACROS_SUFFIX := tar.bz2
+HOST_XORG_UTIL_MACROS_SUFFIX := tar.xz
HOST_XORG_UTIL_MACROS_URL := $(call ptx/mirror, XORG, individual/util/$(HOST_XORG_UTIL_MACROS).$(HOST_XORG_UTIL_MACROS_SUFFIX))
HOST_XORG_UTIL_MACROS_SOURCE := $(SRCDIR)/$(HOST_XORG_UTIL_MACROS).$(HOST_XORG_UTIL_MACROS_SUFFIX)
HOST_XORG_UTIL_MACROS_DIR := $(HOST_BUILDDIR)/$(HOST_XORG_UTIL_MACROS)
diff --git a/rules/host-xz.make b/rules/host-xz.make
index ee7131479..c04db9567 100644
--- a/rules/host-xz.make
+++ b/rules/host-xz.make
@@ -23,7 +23,10 @@ HOST_XZ_CONF_OPT := \
$(HOST_AUTOCONF) \
--disable-debug \
--disable-external-sha256 \
+ --disable-microlzma \
+ --disable-lzip-decoder \
--enable-assembler \
+ --enable-clmul-crc \
--disable-small \
--enable-threads \
--enable-xz \
@@ -33,13 +36,14 @@ HOST_XZ_CONF_OPT := \
--disable-lzma-links \
--disable-scripts \
--disable-doc \
- --enable-symbol-versions \
--disable-sandbox \
--enable-shared \
--disable-static \
+ --enable-symbol-versions \
--disable-nls \
--enable-rpath \
--enable-unaligned-access=auto \
+ --disable-unsafe-type-punning \
--disable-werror
# vim: syntax=make
diff --git a/rules/host-yarn.make b/rules/host-yarn.make
index 3669970e5..2c725d735 100644
--- a/rules/host-yarn.make
+++ b/rules/host-yarn.make
@@ -56,7 +56,7 @@ $(STATEDIR)/host-yarn.install:
@$(call targetinfo)
@$(call world/execute, HOST_YARN, \
install -vDm 0755 $(HOST_YARN_SOURCE) \
- $(HOST_YARN_PKGDIR)/bin/yarn)
+ $(HOST_YARN_PKGDIR)/usr/bin/yarn)
@$(call touch)
# vim: syntax=make
diff --git a/rules/host-yasm.make b/rules/host-yasm.make
index 860ee6e9a..4612b5e17 100644
--- a/rules/host-yasm.make
+++ b/rules/host-yasm.make
@@ -27,5 +27,16 @@ HOST_YASM_DIR := $(HOST_BUILDDIR)/$(HOST_YASM)
# ----------------------------------------------------------------------------
HOST_YASM_CONF_TOOL := autoconf
+HOST_YASM_CONF_OPT := \
+ $(HOST_AUTOCONF) \
+ --disable-debug \
+ --disable-warnerror \
+ --disable-profiling \
+ --disable-gcov \
+ --disable-python \
+ --disable-python-bindings \
+ --disable-nls \
+ --disable-rpath \
+ --without-dmalloc
# vim: syntax=make
diff --git a/rules/host-yubihsm-shell.make b/rules/host-yubihsm-shell.make
index 3ebfc8c1f..a15e1694a 100644
--- a/rules/host-yubihsm-shell.make
+++ b/rules/host-yubihsm-shell.make
@@ -11,13 +11,16 @@ HOST_PACKAGES-$(PTXCONF_HOST_YUBIHSM_SHELL) += host-yubihsm-shell
#
# Paths and names
#
-HOST_YUBIHSM_SHELL_VERSION := 2.1.0
-HOST_YUBIHSM_SHELL_MD5 := 7363c0bc4ed037e262474beaa6e1407b
+HOST_YUBIHSM_SHELL_VERSION := 2.4.0
+HOST_YUBIHSM_SHELL_MD5 := 1d5e8ff0b56d1d2961d9e22e8be77f15
HOST_YUBIHSM_SHELL := yubihsm-shell-$(HOST_YUBIHSM_SHELL_VERSION)
HOST_YUBIHSM_SHELL_SUFFIX := tar.gz
HOST_YUBIHSM_SHELL_URL := https://github.com/Yubico/yubihsm-shell/archive/$(HOST_YUBIHSM_SHELL_VERSION).$(HOST_YUBIHSM_SHELL_SUFFIX)
HOST_YUBIHSM_SHELL_SOURCE := $(SRCDIR)/$(HOST_YUBIHSM_SHELL).$(HOST_YUBIHSM_SHELL_SUFFIX)
HOST_YUBIHSM_SHELL_DIR := $(HOST_BUILDDIR)/$(HOST_YUBIHSM_SHELL)
+HOST_YUBIHSM_SHELL_LICENSE := Apache-2.0
+HOST_YUBIHSM_SHELL_LICENSE_FILES:= \
+ file://LICENSE;md5=09dd0dc2ccf7fce72a90d52b09d7b3ab
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/host-zip.in b/rules/host-zip.in
new file mode 100644
index 000000000..968ef1279
--- /dev/null
+++ b/rules/host-zip.in
@@ -0,0 +1,12 @@
+## SECTION=hosttools_noprompt
+## SECTION=hosttools_platform
+
+config HOST_ZIP
+ tristate
+ help
+ zip is a compression and file packaging utility for Unix, VMS, MSDOS,
+ OS/2, Windows NT, Minix, Atari and Macintosh, Amiga and Acorn RISC OS.
+
+ It is analogous to a combination of the UNIX commands tar(1) and com-
+ press(1) and is compatible with PKHOST_ZIP (Phil Katz's ZIP for MSDOS sys-
+ tems).
diff --git a/rules/host-xorg-server.make b/rules/host-zip.make
index 8d42f6c64..401d9565b 100644
--- a/rules/host-xorg-server.make
+++ b/rules/host-zip.make
@@ -1,7 +1,6 @@
# -*-makefile-*-
#
-# Copyright (C) 2009 by Michael Olbrich <m.olbrich@pengutronix.de>
-# 2010 by Marc Kleine-Budde <mkl@pengutronix.de>
+# Copyright (C) 2022 by Thorsten Scherer <t.scherer@eckelmann.de>
#
# For further information about the PTXdist project and license conditions
# see the README file.
@@ -10,37 +9,29 @@
#
# We provide this package
#
-HOST_PACKAGES-$(PTXCONF_HOST_XORG_SERVER) += host-xorg-server
-
-#
-# Paths and names
-#
-HOST_XORG_SERVER_DIR = $(HOST_BUILDDIR)/$(XORG_SERVER)
+HOST_PACKAGES-$(PTXCONF_HOST_ZIP) += host-zip
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-$(STATEDIR)/host-xorg-server.prepare:
- @$(call targetinfo)
- @$(call touch)
+HOST_ZIP_CONF_TOOL := NO
# ----------------------------------------------------------------------------
# Compile
# ----------------------------------------------------------------------------
-$(STATEDIR)/host-xorg-server.compile:
- @$(call targetinfo)
- @$(call touch)
+HOST_ZIP_MAKE_OPT := \
+ -f unix/Makefile generic
# ----------------------------------------------------------------------------
# Install
# ----------------------------------------------------------------------------
-$(STATEDIR)/host-xorg-server.install:
- @$(call targetinfo)
- install -D -m 644 $(HOST_XORG_SERVER_DIR)/xorg-server.m4 \
- $(HOST_XORG_SERVER_PKGDIR)/share/aclocal/xorg-server.m4
- @$(call touch)
+# Use = instead of := because host-zip.make being included before zip.make
+HOST_ZIP_INSTALL_OPT = \
+ $(HOST_ENV) \
+ prefix=$(HOST_ZIP_PKGDIR)/usr \
+ -f unix/Makefile install
# vim: syntax=make
diff --git a/rules/host-zstd.make b/rules/host-zstd.make
index bebfb150c..11b681c20 100644
--- a/rules/host-zstd.make
+++ b/rules/host-zstd.make
@@ -9,7 +9,7 @@
#
# We provide this package
#
-PACKAGES-$(PTXCONF_HOST_ZSTD) += host-zstd
+HOST_PACKAGES-$(PTXCONF_HOST_ZSTD) += host-zstd
#
# Paths and names
diff --git a/rules/hostapd.make b/rules/hostapd.make
index 243303ccc..2d061b5d4 100644
--- a/rules/hostapd.make
+++ b/rules/hostapd.make
@@ -16,8 +16,8 @@ PACKAGES-$(PTXCONF_HOSTAPD) += hostapd
# Paths and names
#
HOSTAPD_NAME := hostapd
-HOSTAPD_VERSION := 2.9
-HOSTAPD_MD5 := f188fc53a495fe7af3b6d77d3c31dee8
+HOSTAPD_VERSION := 2.10
+HOSTAPD_MD5 := 0be43e9e09ab94a7ebf82de0d1c57761
HOSTAPD := $(HOSTAPD_NAME)-$(HOSTAPD_VERSION)
HOSTAPD_SUFFIX := tar.gz
HOSTAPD_URL := http://w1.fi/releases/$(HOSTAPD).$(HOSTAPD_SUFFIX)
@@ -29,8 +29,8 @@ HOSTAPD_CONFIG = $(call ptx/get-alternative, config/hostapd, defconfig)
HOSTAPD_DOTCONFIG := $(BUILDDIR)/$(HOSTAPD)/$(HOSTAPD_SUBDIR)/.config
HOSTAPD_LICENSE := BSD-3-Clause
HOSTAPD_LICENSE_FILES := \
- file://COPYING;md5=279b4f5abb9c153c285221855ddb78cc \
- file://README;md5=e7d3dbb01f75f0b9799e192731d1e1ff
+ file://COPYING;md5=5ebcb90236d1ad640558c3d3cd3035df \
+ file://README;md5=e3d2f6c2948991e37c1ca4960de84747
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/hpanel.in b/rules/hpanel.in
deleted file mode 100644
index cffc82acd..000000000
--- a/rules/hpanel.in
+++ /dev/null
@@ -1,13 +0,0 @@
-## SECTION=multimedia_xorg_app
-
-config HPANEL
- tristate
- depends on XORG_SERVER
- select XORG_LIB_XFT
- select XORG_LIB_XPM
- prompt "hpanel"
- help
- hpanel is a small panel that lists your windows
- and allows you to switch workspaces. Works with
- pekwm.
-
diff --git a/rules/hpanel.make b/rules/hpanel.make
deleted file mode 100644
index 99a3bbdd6..000000000
--- a/rules/hpanel.make
+++ /dev/null
@@ -1,64 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Luotao Fu <lfu@pengutronix.de>
-# (C) 2010 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_HPANEL) += hpanel
-
-#
-# Paths and names
-#
-HPANEL_VERSION := 0.3.2
-HPANEL_MD5 := 94eda6b7a14253f5e36b2cea57a14b01
-HPANEL := hpanel-$(HPANEL_VERSION)
-HPANEL_SUFFIX := tar.gz
-HPANEL_URL := http://www.phrat.de/$(HPANEL).$(HPANEL_SUFFIX)
-HPANEL_SOURCE := $(SRCDIR)/$(HPANEL).$(HPANEL_SUFFIX)
-HPANEL_DIR := $(BUILDDIR)/$(HPANEL)
-HPANEL_LICENSE := MIT
-HPANEL_LICENSE_FILES := file://COPYING;md5=bb987bce816478c28b4d8cd25b96eadd
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-# hpanel has a very broken configure script. Don't use it!
-HPANEL_CONF_TOOL := NO
-
-# ----------------------------------------------------------------------------
-# Compile
-# ----------------------------------------------------------------------------
-
-HPANEL_PATH := PATH=$(CROSS_PATH)
-HPANEL_MAKE_ENV := $(CROSS_ENV)
-# the archive contains the target binary. Remove it with the 'clean' target.
-HPANEL_MAKE_OPT := clean hpanel
-HPANEL_MAKE_PAR := NO
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/hpanel.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, hpanel)
- @$(call install_fixup, hpanel,PRIORITY,optional)
- @$(call install_fixup, hpanel,SECTION,base)
- @$(call install_fixup, hpanel,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, hpanel,DESCRIPTION,missing)
-
- @$(call install_copy, hpanel, 0, 0, 0755, -, /usr/bin/hpanel)
-
- @$(call install_finish, hpanel)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/hping.in b/rules/hping.in
deleted file mode 100644
index 58b637542..000000000
--- a/rules/hping.in
+++ /dev/null
@@ -1,12 +0,0 @@
-## SECTION=networking
-config HPING
- tristate
- select LIBPCAP
- prompt "hping"
- help
- hping is a command-line oriented TCP/IP packet assembler/analyzer.
- The interface is inspired to the ping(8) unix command, but hping
- isn't only able to send ICMP echo requests. It supports TCP, UDP,
- ICMP and RAW-IP protocols, has a traceroute mode, the ability to
- send files between a covered channel, and many other features.
-
diff --git a/rules/hping.make b/rules/hping.make
deleted file mode 100644
index 3ea09b92e..000000000
--- a/rules/hping.make
+++ /dev/null
@@ -1,61 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2009 by Juergen Beisert
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_HPING) += hping
-
-#
-# Paths and names
-#
-HPING_VERSION := 3-20051105
-HPING_MD5 := ca4ea4e34bcc2162aedf25df8b2d1747
-HPING := hping$(HPING_VERSION)
-HPING_SUFFIX := tar.gz
-HPING_URL := http://www.hping.org/$(HPING).$(HPING_SUFFIX)
-HPING_SOURCE := $(SRCDIR)/$(HPING).$(HPING_SUFFIX)
-HPING_DIR := $(BUILDDIR)/$(HPING)
-HPING_LICENSE := GPL-2.0-only
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-HPING_PATH := PATH=$(CROSS_PATH)
-HPING_ENV := \
- $(CROSS_ENV) \
- MANPATH=/usr/man
-
-HPING_MAKEVARS := $(CROSS_ENV)
-
-#
-# autoconf
-#
-HPING_AUTOCONF := --no-tcl
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/hping.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, hping)
- @$(call install_fixup, hping,PRIORITY,optional)
- @$(call install_fixup, hping,SECTION,base)
- @$(call install_fixup, hping,AUTHOR,"Juergen Beisert <jbe@pengutronix.de>")
- @$(call install_fixup, hping,DESCRIPTION,missing)
-
- @$(call install_copy, hping, 0, 0, 0755, -, /usr/sbin/hping3)
-
- @$(call install_finish, hping)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/htmldoc.in b/rules/htmldoc.in
new file mode 100644
index 000000000..3ed1869b6
--- /dev/null
+++ b/rules/htmldoc.in
@@ -0,0 +1,11 @@
+## SECTION=shell_and_console
+
+config HTMLDOC
+ tristate
+ select LIBJPEG
+ select ZLIB
+ prompt "htmldoc"
+ help
+ HTMLDOC is a program that reads HTML and Markdown source files
+ and generates corresponding EPUB, HTML, PostScript, or PDF
+ files with an optional table of contents.
diff --git a/rules/htmldoc.make b/rules/htmldoc.make
new file mode 100644
index 000000000..d9485c792
--- /dev/null
+++ b/rules/htmldoc.make
@@ -0,0 +1,69 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Roland Hieber <rhi@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_HTMLDOC) += htmldoc
+
+#
+# Paths and names
+#
+HTMLDOC_VERSION := 1.9.16
+HTMLDOC_MD5 := 9d82dd05321ca44594d9d1841868b2d5
+HTMLDOC := htmldoc-$(HTMLDOC_VERSION)
+HTMLDOC_SUFFIX := tar.gz
+HTMLDOC_URL := https://github.com/michaelrsweet/htmldoc/releases/download/v$(HTMLDOC_VERSION)/$(HTMLDOC)-source.$(HTMLDOC_SUFFIX)
+HTMLDOC_SOURCE := $(SRCDIR)/$(HTMLDOC).$(HTMLDOC_SUFFIX)
+HTMLDOC_DIR := $(BUILDDIR)/$(HTMLDOC)
+HTMLDOC_LICENSE := GPL-2.0-only
+HTMLDOC_LICENSE_FILES := \
+ file://README.md;startline=123;endline=124;md5=a2aaa1a54649f92a3f27ab9953505863 \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+HTMLDOC_CONF_TOOL := autoconf
+HTMLDOC_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --disable-debug \
+ $(GLOBAL_LARGE_FILE_OPTION) \
+ --disable-ssl \
+ --disable-gnutls \
+ --disable-cdsassl \
+ --disable-maintainer \
+ --disable-sanitizer \
+ --without-gui
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/htmldoc.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, htmldoc)
+ @$(call install_fixup, htmldoc,PRIORITY,optional)
+ @$(call install_fixup, htmldoc,SECTION,base)
+ @$(call install_fixup, htmldoc,AUTHOR,"Roland Hieber <rhi@pengutronix.de>")
+ @$(call install_fixup, htmldoc,DESCRIPTION,missing)
+
+ @$(call install_copy, htmldoc, 0, 0, 0755, -, /usr/bin/htmldoc)
+ @$(call install_tree, htmldoc, 0, 0, -, /usr/share/htmldoc/fonts)
+ @$(call install_tree, htmldoc, 0, 0, -, /usr/share/htmldoc/data)
+
+ @$(call install_finish, htmldoc)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/htop.make b/rules/htop.make
index 06c64718f..98d6bbfdf 100644
--- a/rules/htop.make
+++ b/rules/htop.make
@@ -15,14 +15,16 @@ PACKAGES-$(PTXCONF_HTOP) += htop
#
# Paths and names
#
-HTOP_VERSION := 3.0.1
-HTOP_MD5 := c09908bacb5e22454715547aed88c3af
-HTOP := htop-$(HTOP_VERSION)
-HTOP_SUFFIX := tar.gz
-HTOP_URL := https://github.com/htop-dev/htop/archive/$(HTOP_VERSION).$(HTOP_SUFFIX)
-HTOP_SOURCE := $(SRCDIR)/$(HTOP).$(HTOP_SUFFIX)
-HTOP_DIR := $(BUILDDIR)/$(HTOP)
-HTOP_LICENSE := GPL-2.0-only
+HTOP_VERSION := 3.0.1
+HTOP_MD5 := c09908bacb5e22454715547aed88c3af
+HTOP := htop-$(HTOP_VERSION)
+HTOP_SUFFIX := tar.gz
+HTOP_URL := https://github.com/htop-dev/htop/archive/$(HTOP_VERSION).$(HTOP_SUFFIX)
+HTOP_SOURCE := $(SRCDIR)/$(HTOP).$(HTOP_SUFFIX)
+HTOP_DIR := $(BUILDDIR)/$(HTOP)
+HTOP_LICENSE := GPL-2.0-only
+HTOP_LICENSE_FILES := \
+ file://COPYING;md5=4099d367cd5e59b6d4fc1ee33accb891
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/hwdata.in b/rules/hwdata.in
new file mode 100644
index 000000000..c4e624b7f
--- /dev/null
+++ b/rules/hwdata.in
@@ -0,0 +1,47 @@
+## SECTION=shell_and_console
+
+menuconfig HWDATA
+ tristate
+ prompt "hwdata "
+ help
+ Hwdata package.
+ This package contains identity files for pci and usb etc.
+ Various packages that have not been ported to systemd's binary
+ hwdb may use this instead.
+
+if HWDATA
+
+config HWDATA_PCI
+ bool
+ prompt "hwdata PCI"
+ help
+ The hwdata PCI (Vendor and product id) data set.
+
+config HWDATA_USB
+ bool
+ prompt "hwdata USB"
+ help
+ The hwdata USB (Vendor and product id) data set.
+
+config HWDATA_PNP
+ bool
+ prompt "hwdata PNP"
+ help
+ The hwdata PNP (Vendor names and vendor acronyms)
+ data set.
+
+config HWDATA_OUI
+ bool
+ prompt "hwdata OUI"
+ help
+ The hwdata OUI (IEEE Organizationally Unique Identifier)
+ data set.
+
+config HWDATA_IAB
+ bool
+ prompt "hwdata IAB"
+ help
+ The hwdata IAB (IEEE Individual Address Block)
+ data set.
+
+endif
diff --git a/rules/hwdata.make b/rules/hwdata.make
new file mode 100644
index 000000000..ba1451b9f
--- /dev/null
+++ b/rules/hwdata.make
@@ -0,0 +1,82 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Christian Melki
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_HWDATA) += hwdata
+
+#
+# Paths and names
+#
+HWDATA_VERSION := 0.381
+HWDATA_MD5 := 9db68f209f3393aa5bfa3217d7c890c5
+HWDATA := hwdata-$(HWDATA_VERSION)
+HWDATA_SUFFIX := tar.gz
+HWDATA_URL := https://github.com/vcrhonek/hwdata/archive/refs/tags/v$(HWDATA_VERSION).$(HWDATA_SUFFIX)
+HWDATA_SOURCE := $(SRCDIR)/$(HWDATA).$(HWDATA_SUFFIX)
+HWDATA_DIR := $(BUILDDIR)/$(HWDATA)
+HWDATA_LICENSE := GPL-2.0-or-later OR XFree86-1.0
+HWDATA_LICENSE_FILES := \
+ file://LICENSE;md5=1556547711e8246992b999edd9445a57 \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+# Package is not really using autoconf, so skip normal cross declaration.
+# Only text files are processed. Just prefix setting here.
+HWDATA_CONF_TOOL := autoconf
+HWDATA_CONF_OPT := \
+ --prefix=/usr \
+ --enable-blacklist
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/hwdata.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, hwdata)
+ @$(call install_fixup, hwdata,PRIORITY,optional)
+ @$(call install_fixup, hwdata,SECTION,base)
+ @$(call install_fixup, hwdata,AUTHOR,"Christian Melki <christian.melki@t2data.com>")
+ @$(call install_fixup, hwdata,DESCRIPTION,missing)
+
+ifdef PTXCONF_HWDATA_PCI
+ @$(call install_copy, hwdata, 0, 0, 0644, \
+ $(HWDATA_PKGDIR)/usr/share/hwdata/pci.ids, /usr/share/pci.ids)
+endif
+
+ifdef PTXCONF_HWDATA_USB
+ @$(call install_copy, hwdata, 0, 0, 0644, \
+ $(HWDATA_PKGDIR)/usr/share/hwdata/usb.ids, /usr/share/usb.ids)
+endif
+
+ifdef PTXCONF_HWDATA_PNP
+ @$(call install_copy, hwdata, 0, 0, 0644, \
+ $(HWDATA_PKGDIR)/usr/share/hwdata/pnp.ids, /usr/share/pnp.ids)
+endif
+
+ifdef PTXCONF_HWDATA_OUI
+ @$(call install_copy, hwdata, 0, 0, 0644, \
+ $(HWDATA_PKGDIR)/usr/share/hwdata/oui.txt, /usr/share/oui.txt)
+endif
+
+ifdef PTXCONF_HWDATA_IAB
+ @$(call install_copy, hwdata, 0, 0, 0644, \
+ $(HWDATA_PKGDIR)/usr/share/hwdata/iab.txt, /usr/share/iab.txt)
+endif
+
+ @$(call install_finish, hwdata)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/icu.in b/rules/icu.in
index eeb59d404..4b2007db0 100644
--- a/rules/icu.in
+++ b/rules/icu.in
@@ -2,6 +2,7 @@
config ICU
tristate
+ select HOST_SYSTEM_PYTHON3
select HOST_ICU
prompt "icu"
help
diff --git a/rules/icu.make b/rules/icu.make
index 230cfecd5..507de2afe 100644
--- a/rules/icu.make
+++ b/rules/icu.make
@@ -14,17 +14,17 @@ PACKAGES-$(PTXCONF_ICU) += icu
#
# Paths and names
#
-ICU_VERSION := 60.3
-ICU_MD5 := 4f558e73b7bd1fa93caf3d10479de41b
+ICU_VERSION := 74.1
+ICU_MD5 := 71e60b22697c4f35820a1897417dbab4
ICU := icu4c-$(subst .,_,$(ICU_VERSION))-src
ICU_SUFFIX := tgz
ICU_URL := https://github.com/unicode-org/icu/releases/download/release-$(subst .,-,$(ICU_VERSION))/$(ICU).$(ICU_SUFFIX)
ICU_SOURCE := $(SRCDIR)/$(ICU).$(ICU_SUFFIX)
ICU_DIR := $(BUILDDIR)/$(ICU)
ICU_SUBDIR := source
-ICU_LICENSE := MIT AND Unicode-TOU AND public_domain
+ICU_LICENSE := MIT AND Unicode-3.0 AND public_domain AND BSD-3-Clause
ICU_LICENSE_FILES := \
- file://LICENSE;md5=675f2d069434d8a1e4e6b0dcf4379226
+ file://LICENSE;md5=08dc3852df8fffa807301902ad899ff8
# ----------------------------------------------------------------------------
# Prepare
@@ -38,26 +38,41 @@ ICU_LICENSE_FILES := \
ICU_CONF_TOOL := autoconf
ICU_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
+ --enable-icu-config \
--disable-debug \
--enable-release \
+ --disable-strict \
--enable-shared \
--disable-static \
--enable-draft \
--enable-renaming \
--disable-tracing \
+ --disable-plugins \
--enable-dyload \
--disable-rpath \
--disable-weak-threads \
--disable-extras \
--enable-icuio \
- --disable-layout \
+ --disable-layoutex \
--enable-tools \
+ --disable-fuzzer \
--disable-tests \
--disable-samples \
--with-cross-build=$(HOST_ICU_DIR)/$(ICU_SUBDIR) \
--with-data-packaging=archive
# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/icu.compile:
+ @$(call targetinfo)
+# # only created with tests enabled
+ @mkdir -p $(ICU_DIR)/$(ICU_SUBDIR)/data/out/tmp
+ @$(call world/compile, ICU)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
diff --git a/rules/iftop.in b/rules/iftop.in
index fc08378ce..59eb2a0cf 100644
--- a/rules/iftop.in
+++ b/rules/iftop.in
@@ -9,7 +9,7 @@ config IFTOP
iftop does for network usage what top(1) does for CPU usage. It
listens to network traffic on a named interface and displays a
table of current bandwidth usage by pairs of hosts.
-
+
http://www.ex-parrot.com/pdw/iftop/
# vim: ft=kconfig noet tw=72
diff --git a/rules/igt-gpu-tools.in b/rules/igt-gpu-tools.in
index 10849c296..24ba18c23 100644
--- a/rules/igt-gpu-tools.in
+++ b/rules/igt-gpu-tools.in
@@ -17,6 +17,7 @@ menuconfig IGT_GPU_TOOLS
select UDEV_LIBUDEV
select ZLIB
select JSON_C if IGT_GPU_TOOLS_TEST_RUNNER
+ select PERL if IGT_GPU_TOOLS_TESTS && RUNTIME
prompt "igt-gpu-tools "
help
igt-gpu-tools is a package of tools for debugging the Intel
@@ -38,6 +39,10 @@ config IGT_GPU_TOOLS_NOUVEAU
bool
default LIBDRM_NOUVEAU
+config IGT_GPU_TOOLS_FREEDRENO
+ bool
+ default LIBDRM_FREEDRENO
+
config IGT_GPU_TOOLS_TESTS
bool
prompt "build and install tests"
diff --git a/rules/igt-gpu-tools.make b/rules/igt-gpu-tools.make
index 6b2533caf..891ea5486 100644
--- a/rules/igt-gpu-tools.make
+++ b/rules/igt-gpu-tools.make
@@ -14,23 +14,31 @@ PACKAGES-$(PTXCONF_IGT_GPU_TOOLS) += igt-gpu-tools
#
# Paths and names
#
-IGT_GPU_TOOLS_VERSION := 1.25
-IGT_GPU_TOOLS_MD5 := 4c148d3be97607859168ed70b15e8b2f
+IGT_GPU_TOOLS_VERSION := 1.28
+IGT_GPU_TOOLS_MD5 := 5c11ed8a9698df5fd6663b027168ab1f
IGT_GPU_TOOLS := igt-gpu-tools-$(IGT_GPU_TOOLS_VERSION)
IGT_GPU_TOOLS_SUFFIX := tar.xz
IGT_GPU_TOOLS_URL := $(call ptx/mirror, XORG, individual/app/$(IGT_GPU_TOOLS).$(IGT_GPU_TOOLS_SUFFIX))
IGT_GPU_TOOLS_SOURCE := $(SRCDIR)/$(IGT_GPU_TOOLS).$(IGT_GPU_TOOLS_SUFFIX)
IGT_GPU_TOOLS_DIR := $(BUILDDIR)/$(IGT_GPU_TOOLS)
IGT_GPU_TOOLS_LICENSE := MIT AND ISC
+IGT_GPU_TOOLS_LICENSE_FILES := \
+ file://COPYING;md5=67bfee4df38fa6ecbe3a675c552d4c08
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-# For some reason, intel_gpu_frequency and other segfault immediately if
-# built with -Wl,-z,now.
+# On x86 systems, libigt resolves igt_half_to_float and igt_float_to_half as
+# indirect functions at runtime by checking CPU features with igt_x86_features.
+# The igt_x86_features function is implemented is a different object and the
+# call uses the PLT itself. If lazy binding is disabled, this causes a segfault
+# while resolving the symbols for libigt on x64 systems. Disable BINDNOW on X86
+# systems to prevent the segfaults.
+ifdef PTXCONF_ARCH_X86
IGT_GPU_TOOLS_WRAPPER_BLACKLIST := \
TARGET_HARDEN_BINDNOW
+endif
IGT_GPU_TOOLS_LIBDRM-y :=
ifdef PTXCONF_ARCH_X86
@@ -51,9 +59,14 @@ IGT_GPU_TOOLS_CONF_OPT := \
-Doverlay=disabled \
-Doverlay_backends=auto \
-Drunner=$(call ptx/endis,PTXCONF_IGT_GPU_TOOLS_TEST_RUNNER)d \
+ -Dsphinx=disabled \
+ -Dsrcdir=$(notdir $(IGT_GPU_TOOLS_DIR)) \
+ -Dtestplan=disabled \
-Dtests=$(call ptx/endis,PTXCONF_IGT_GPU_TOOLS_TESTS)d \
-Duse_rpath=false \
- -Dvalgrind=disabled
+ -Dvalgrind=disabled \
+ -Dversion_hash=NO-GIT \
+ -Dxe_driver=disabled
ifdef PTXCONF_KERNEL_HEADER
IGT_GPU_TOOLS_CPPFLAGS := \
@@ -73,10 +86,79 @@ $(STATEDIR)/igt-gpu-tools.targetinstall:
@$(call install_fixup, igt-gpu-tools,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
@$(call install_fixup, igt-gpu-tools,DESCRIPTION,missing)
- @$(call install_tree, igt-gpu-tools, 0, 0, -, /usr/lib)
- @$(call install_tree, igt-gpu-tools, 0, 0, -, /usr/bin)
- @$(call install_tree, igt-gpu-tools, 0, 0, -, /usr/share/igt-gpu-tools)
+ @$(call install_lib, igt-gpu-tools, 0, 0, 0644, libigt)
+
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/amd_hdmi_compliance)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/dpcd_reg)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/gputop)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/lsgpu)
+
+ifdef PTXCONF_IGT_GPU_TOOLS_INTEL
+ @$(call install_lib, igt-gpu-tools, 0, 0, 0644, libi915_perf)
+
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/i915-perf-configs)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/i915-perf-control)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/i915-perf-reader)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/i915-perf-recorder)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_audio_dump)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_backlight)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_bios_dumper)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_display_crc)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_display_poller)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_dp_compliance)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_dump_decode)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_error_decode)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_firmware_decode)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_forcewaked)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_framebuffer_dump)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_gem_info)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel-gfx-fw-info)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_gpu_abrt)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_gpu_frequency)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_gpu_time)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_gpu_top)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_gtt)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_guc_logger)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_gvtg_test)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_infoframes)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_l3_parity)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_lid)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_opregion_decode)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_panel_fitter)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_perf_counters)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_pm_rpm)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_reg)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_reg_checker)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_residency)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_stepping)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_vbt_decode)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/intel_watermark)
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/xe_reg)
+
+ @$(call install_tree, igt-gpu-tools, 0, 0, -, /usr/share/igt-gpu-tools/registers)
+endif
+
+ifdef PTXCONF_IGT_GPU_TOOLS_FREEDRENO
+ @$(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/msm_dp_compliance)
+endif
+
+ifdef PTXCONF_IGT_GPU_TOOLS_TESTS
+ $(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/code_cov_capture)
+ $(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/code_cov_gather_on_build)
+ $(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/code_cov_gather_on_test)
+ $(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/code_cov_gen_report)
+ $(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/code_cov_parse_info)
+
@$(call install_tree, igt-gpu-tools, 0, 0, -, /usr/libexec/igt-gpu-tools)
+ @$(call install_glob, igt-gpu-tools, 0, 0, -, /usr/share/igt-gpu-tools, *.png,)
+endif
+
+ifdef PTXCONF_IGT_GPU_TOOLS_TEST_RUNNER
+ $(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/igt_comms_decoder)
+ $(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/igt_results)
+ $(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/igt_resume)
+ $(call install_copy, igt-gpu-tools, 0, 0, 0755, -, /usr/bin/igt_runner)
+endif
@$(call install_finish, igt-gpu-tools)
diff --git a/rules/ima-evm-utils.make b/rules/ima-evm-utils.make
index 1c5e15b14..ba3cc236b 100644
--- a/rules/ima-evm-utils.make
+++ b/rules/ima-evm-utils.make
@@ -1,7 +1,8 @@
# -*-makefile-*-
#
# Copyright (C) 2013 by Michael Grzeschik <mgr@pengutronix.de>
-# 2015 by Marc Kleine-Budde <mkl@pengutronix.de>
+# 2015, 2020 by Marc Kleine-Budde <mkl@pengutronix.de>
+# 2021 Roland Hieber, Pengutronix <rhi@pengutronix.de>
#
# For further information about the PTXdist project and license conditions
# see the README file.
@@ -15,22 +16,32 @@ PACKAGES-$(PTXCONF_IMA_EVM_UTILS) += ima-evm-utils
#
# Paths and names
#
-IMA_EVM_UTILS_VERSION := 1.1
-IMA_EVM_UTILS_MD5 := 77455aeee54fdc7a70c733bcb65d33cc
+IMA_EVM_UTILS_VERSION := 1.3.2
+IMA_EVM_UTILS_MD5 := 55cc0e2c77a725f722833c3b4a36038c
IMA_EVM_UTILS := ima-evm-utils-$(IMA_EVM_UTILS_VERSION)
IMA_EVM_UTILS_SUFFIX := tar.gz
IMA_EVM_UTILS_URL := $(call ptx/mirror, SF, linux-ima/ima-evm-utils/$(IMA_EVM_UTILS).$(IMA_EVM_UTILS_SUFFIX))
IMA_EVM_UTILS_SOURCE := $(SRCDIR)/$(IMA_EVM_UTILS).$(IMA_EVM_UTILS_SUFFIX)
IMA_EVM_UTILS_DIR := $(BUILDDIR)/$(IMA_EVM_UTILS)
-IMA_EVM_UTILS_LICENSE := LGPL-2.0-or-later
+IMA_EVM_UTILS_LICENSE := GPL-2.0-only WITH custom-exception
+IMA_EVM_UTILS_LICENSE_FILES := \
+ file://src/evmctl.c;startline=13;endline=35;md5=1e6e51503ab04045269a92c0bc5d5b55 \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-IMA_EVM_UTILS_CONF_TOOL := autoconf
-IMA_EVM_UTILS_AUTOCONF := \
+IMA_EVM_UTILS_CONF_ENV := \
+ $(CROSS_ENV) \
+ ac_cv_lib_tss2_esys_Esys_Free=no \
+ ac_cv_lib_tss2_rc_Tss2_RC_Decode=no \
+ ac_cv_path_XMLCATALOG=
+
+IMA_EVM_UTILS_CONF_TOOL := autoconf
+IMA_EVM_UTILS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
+ --enable-openssl-conf \
--disable-debug
# ----------------------------------------------------------------------------
diff --git a/rules/image-hdimg.make b/rules/image-hdimg.make
index 7e7c9c8aa..06712ca6d 100644
--- a/rules/image-hdimg.make
+++ b/rules/image-hdimg.make
@@ -25,22 +25,27 @@ IMAGE_HDIMG_CONFIG := hd.config
ifdef PTXCONF_IMAGE_HDIMG
IMAGE_HDIMG_BOOTLOADER_ENV := \
+ GPT_LOCATION='0' \
BOOTLOADER_IMAGES='' \
BOOTLOADER_PARTITIONS=''
ifdef PTXCONF_IMAGE_HDIMG_GRUB
IMAGE_HDIMG_BOOTLOADER_ENV = \
+ GPT_LOCATION='1024' \
GRUB_STAGE_DIR=$(GRUB_STAGE_DIR) \
BOOTLOADER_IMAGES='include("grub.config")' \
BOOTLOADER_PARTITIONS='include("grub_partitions.config")'
endif
ifdef PTXCONF_IMAGE_HDIMG_BAREBOX
IMAGE_HDIMG_BOOTLOADER_ENV := \
+ GPT_LOCATION='2M' \
+ BAREBOX_IMAGE=$(PTXCONF_IMAGE_HDIMG_BAREBOX_IMAGE) \
BOOTLOADER_IMAGES='' \
BOOTLOADER_PARTITIONS='include("barebox_partitions.config")'
endif
ifdef PTXCONF_IMAGE_HDIMG_VFAT
IMAGE_HDIMG_BOOTLOADER_ENV := \
+ GPT_LOCATION='1024' \
BOOTLOADER_IMAGES='' \
BOOTLOADER_PARTITIONS='include("vfat_partitions.config")'
@@ -54,7 +59,7 @@ endif
endif
IMAGE_HDIMG_ENV = \
- GPT=$(call ptx/ifdef, PTXCONF_IMAGE_HDIMG_GPT,true,false) \
+ PARTITION_TABLE_TYPE=$(call ptx/ifdef, PTXCONF_IMAGE_HDIMG_GPT,gpt,mbr) \
PARTITION_TYPE_SUFFIX=$(call ptx/ifdef, PTXCONF_IMAGE_HDIMG_GPT,-uuid) \
ROOT_PARTITION_TYPE=$(call ptx/ifdef, PTXCONF_IMAGE_HDIMG_GPT,L,0x83) \
$(IMAGE_HDIMG_BOOTLOADER_ENV)
diff --git a/rules/image-rauc.make b/rules/image-rauc.make
index fe1b0e89b..30e460dd8 100644
--- a/rules/image-rauc.make
+++ b/rules/image-rauc.make
@@ -19,6 +19,10 @@ IMAGE_RAUC := image-rauc
IMAGE_RAUC_DIR := $(BUILDDIR)/$(IMAGE_RAUC)
IMAGE_RAUC_IMAGE := $(IMAGEDIR)/update.raucb
IMAGE_RAUC_CONFIG := rauc.config
+IMAGE_RAUC_HOOK_FILE := $(call ptx/in-path, PTXDIST_PATH, config/images/rauc-hooks.sh)
+
+$(call ptx/cfghash, IMAGE_RAUC, $(IMAGE_RAUC_HOOK_FILE))
+$(call ptx/cfghash-file, IMAGE_RAUC, $(IMAGE_RAUC_HOOK_FILE))
# ----------------------------------------------------------------------------
# Image
@@ -26,15 +30,42 @@ IMAGE_RAUC_CONFIG := rauc.config
ifdef PTXCONF_IMAGE_RAUC
+ifdef PTXCONF_IMAGE_RAUC_BUNDLE_FORMAT_PLAIN
+IMAGE_RAUC_BUNDLE_FORMAT := "plain"
+endif
+ifdef PTXCONF_IMAGE_RAUC_BUNDLE_FORMAT_VERITY
+IMAGE_RAUC_BUNDLE_FORMAT := "verity"
+endif
+ifdef PTXCONF_IMAGE_RAUC_BUNDLE_FORMAT_CRYPT
+IMAGE_RAUC_BUNDLE_FORMAT := "crypt"
+endif
+
+ifdef PTXCONF_IMAGE_RAUC_HOOK
+ifndef IMAGE_RAUC_HOOK_FILE
+$(error IMAGE_RAUC_HOOK is enabled, but config/images/rauc-hooks.sh was not \
+ found in any component of PTXDIST_PATH)
+endif
+IMAGE_RAUC_ENV_HOOK = \
+ RAUC_HOOK_FILE="file hooks.sh { image = \\"$(IMAGE_RAUC_HOOK_FILE)\\" }" \
+ RAUC_HOOK_MANIFEST="filename=hooks.sh"
+else
+IMAGE_RAUC_ENV_HOOK = \
+ RAUC_HOOK_FILE="" \
+ RAUC_HOOK_MANIFEST=""
+endif
+
IMAGE_RAUC_ENV = \
$(CODE_SIGNING_ENV) \
RAUC_BUNDLE_COMPATIBLE="$(call remove_quotes,$(PTXCONF_RAUC_COMPATIBLE))" \
- RAUC_BUNDLE_VERSION="$(call remove_quotes, $(PTXCONF_RAUC_BUNDLE_VERSION))" \
+ RAUC_BUNDLE_FORMAT=$(IMAGE_RAUC_BUNDLE_FORMAT) \
+ RAUC_BUNDLE_VERSION="$(call remove_quotes, $(PTXCONF_IMAGE_RAUC_BUNDLE_VERSION))" \
RAUC_BUNDLE_BUILD=$(call ptx/sh, date +%FT%T%z) \
- RAUC_BUNDLE_DESCRIPTION=$(PTXCONF_IMAGE_RAUC_DESCRIPTION) \
+ RAUC_BUNDLE_DESCRIPTION="$(call remove_quotes, $(PTXCONF_IMAGE_RAUC_DESCRIPTION))" \
+ $(IMAGE_RAUC_ENV_HOOK) \
RAUC_KEY="$(shell cs_get_uri update)" \
RAUC_CERT="$(shell cs_get_uri update)" \
- RAUC_KEYRING="$(shell cs_get_ca update)"
+ RAUC_KEYRING="$(shell cs_get_ca update)" \
+ RAUC_INTERMEDIATE=$(call ptx/ifdef, PTXCONF_IMAGE_RAUC_INTERMEDIATE,'"$(shell cs_get_ca update-intermediate)"','{}')
$(IMAGE_RAUC_IMAGE):
@$(call targetinfo)
diff --git a/rules/image-root-cpio-gz.make b/rules/image-root-cpio-gz.make
deleted file mode 100644
index 52a6a4bd9..000000000
--- a/rules/image-root-cpio-gz.make
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2012 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-IMAGE_PACKAGES-$(PTXCONF_IMAGE_ROOT_CPIO_GZ) += image-root-cpio-gz
-
-#
-# Paths and names
-#
-IMAGE_ROOT_CPIO_GZ := image-root-cpio-gz
-IMAGE_ROOT_CPIO_GZ_DIR := $(BUILDDIR)/$(IMAGE_ROOT_CPIO_GZ)
-IMAGE_ROOT_CPIO_GZ_IMAGE := $(IMAGEDIR)/root.cpio.gz
-IMAGE_ROOT_CPIO_GZ_FILES := $(IMAGEDIR)/root.tgz
-IMAGE_ROOT_CPIO_GZ_CONFIG := cpio.config
-
-# ----------------------------------------------------------------------------
-# Image
-# ----------------------------------------------------------------------------
-
-IMAGE_ROOT_CPIO_GZ_ENV := \
- FORMAT="newc" \
- COMPRESS=gzip
-
-ifdef PTXCONF_IMAGE_ROOT_CPIO_GZ
-$(IMAGE_ROOT_CPIO_GZ_IMAGE):
- @$(call targetinfo)
- @$(call image/genimage, IMAGE_ROOT_CPIO_GZ)
- @$(call finish)
-endif
-
-# vim: syntax=make
diff --git a/rules/image-root-cpio.make b/rules/image-root-cpio.make
index ab6afdd42..447a649c8 100644
--- a/rules/image-root-cpio.make
+++ b/rules/image-root-cpio.make
@@ -16,7 +16,7 @@ IMAGE_PACKAGES-$(PTXCONF_IMAGE_ROOT_CPIO) += image-root-cpio
#
IMAGE_ROOT_CPIO := image-root-cpio
IMAGE_ROOT_CPIO_DIR := $(BUILDDIR)/$(IMAGE_ROOT_CPIO)
-IMAGE_ROOT_CPIO_IMAGE := $(IMAGEDIR)/root.cpio
+IMAGE_ROOT_CPIO_IMAGE := $(IMAGEDIR)/root.cpio$(call remove_quotes, $(PTXCONF_IMAGE_ROOT_CPIO_COMPRESSION_SUFFIX))
IMAGE_ROOT_CPIO_FILES := $(IMAGEDIR)/root.tgz
IMAGE_ROOT_CPIO_CONFIG := cpio.config
@@ -26,7 +26,7 @@ IMAGE_ROOT_CPIO_CONFIG := cpio.config
IMAGE_ROOT_CPIO_ENV := \
FORMAT="newc" \
- COMPRESS=
+ COMPRESS=$(PTXCONF_IMAGE_ROOT_CPIO_COMPRESSION_UTIL)
ifdef PTXCONF_IMAGE_ROOT_CPIO
$(IMAGE_ROOT_CPIO_IMAGE):
diff --git a/rules/imagemagick.make b/rules/imagemagick.make
index f0a8c7062..56172fb4d 100644
--- a/rules/imagemagick.make
+++ b/rules/imagemagick.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_IMAGEMAGICK) += imagemagick
#
# Paths and names
#
-IMAGEMAGICK_VERSION := 7.0.2-10
-IMAGEMAGICK_MD5 := 4d33914ac3dc93cb3bbca7664dd33951
+IMAGEMAGICK_VERSION := 7.1.1-12
+IMAGEMAGICK_MD5 := 7d04ecc28b035922697630c92cdfbfb8
IMAGEMAGICK := ImageMagick-$(IMAGEMAGICK_VERSION)
-IMAGEMAGICK_SUFFIX := tar.gz
-IMAGEMAGICK_URL := $(call ptx/mirror, SF, imagemagick/old-sources/7.x/7.0/$(IMAGEMAGICK).$(IMAGEMAGICK_SUFFIX))
+IMAGEMAGICK_SUFFIX := tar.xz
+IMAGEMAGICK_URL := https://imagemagick.org/archive/releases/$(IMAGEMAGICK).$(IMAGEMAGICK_SUFFIX)
IMAGEMAGICK_SOURCE := $(SRCDIR)/$(IMAGEMAGICK).$(IMAGEMAGICK_SUFFIX)
IMAGEMAGICK_DIR := $(BUILDDIR)/$(IMAGEMAGICK)
IMAGEMAGICK_LICENSE := Apache-2.0
@@ -50,21 +50,34 @@ IMAGEMAGICK_QUANTUM_DEPTH := 8
# supported configure options. Just ignore the generated delegates.xml
# file.
#
-IMAGEMAGICK_AUTOCONF := \
+IMAGEMAGICK_CONF_TOOL := autoconf
+IMAGEMAGICK_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-openmp \
+ --disable-opencl \
+ $(GLOBAL_LARGE_FILE_OPTION) \
--enable-shared \
--disable-static \
+ --enable-installed \
+ --enable-cipher \
+ --disable-zero-configuration \
--disable-hdri \
--disable-docs \
+ --without-dmalloc \
--without-threads \
--without-modules \
+ --with-utilities \
--with-quantum-depth=$(IMAGEMAGICK_QUANTUM_DEPTH) \
--without-magick-plus-plus \
--without-perl \
+ --without-jemalloc \
+ --without-tcmalloc \
+ --without-umem \
--without-bzlib \
--without-x \
+ --without-zip \
--$(call ptx/wwo, PTXCONF_IMAGEMAGICK_USE_ZLIB)-zlib \
+ --without-zstd \
--without-autotrace \
--without-dps \
--without-fftw \
@@ -74,10 +87,14 @@ IMAGEMAGICK_AUTOCONF := \
--without-fontconfig \
--without-freetype \
--without-raqm \
+ --without-gdi32 \
--without-gslib \
--without-gvc \
+ --without-dmr \
+ --without-heic \
--without-jbig \
--$(call ptx/wwo, PTXCONF_IMAGEMAGICK_USE_LIBJPEG)-jpeg \
+ --without-jxl \
--without-lcms \
--without-openjp2 \
--without-lqr \
@@ -85,13 +102,13 @@ IMAGEMAGICK_AUTOCONF := \
--without-openexr \
--without-pango \
--$(call ptx/wwo, PTXCONF_IMAGEMAGICK_USE_LIBPNG)-png \
+ --without-raw \
--without-rsvg \
--without-tiff \
--$(call ptx/wwo, PTXCONF_IMAGEMAGICK_USE_LIBWEBP)-webp \
--without-wmf \
--without-xml
-
# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
@@ -119,14 +136,19 @@ $(STATEDIR)/imagemagick.targetinstall:
@$(call install_link, imagemagick, magick, /usr/bin/montage)
@$(call install_link, imagemagick, magick, /usr/bin/stream)
- @$(call install_alternative, imagemagick, 0, 0, 0644, /etc/ImageMagick-7/coder.xml)
@$(call install_alternative, imagemagick, 0, 0, 0644, /etc/ImageMagick-7/colors.xml)
+ @$(call install_alternative, imagemagick, 0, 0, 0644, /etc/ImageMagick-7/delegates.xml)
@$(call install_alternative, imagemagick, 0, 0, 0644, /etc/ImageMagick-7/log.xml)
- @$(call install_alternative, imagemagick, 0, 0, 0644, /etc/ImageMagick-7/magic.xml)
@$(call install_alternative, imagemagick, 0, 0, 0644, /etc/ImageMagick-7/mime.xml)
@$(call install_alternative, imagemagick, 0, 0, 0644, /etc/ImageMagick-7/policy.xml)
@$(call install_alternative, imagemagick, 0, 0, 0644, /etc/ImageMagick-7/quantization-table.xml)
@$(call install_alternative, imagemagick, 0, 0, 0644, /etc/ImageMagick-7/thresholds.xml)
+ @$(call install_alternative, imagemagick, 0, 0, 0644, /etc/ImageMagick-7/type-apple.xml)
+ @$(call install_alternative, imagemagick, 0, 0, 0644, /etc/ImageMagick-7/type-dejavu.xml)
+ @$(call install_alternative, imagemagick, 0, 0, 0644, /etc/ImageMagick-7/type-ghostscript.xml)
+ @$(call install_alternative, imagemagick, 0, 0, 0644, /etc/ImageMagick-7/type-urw-base35.xml)
+ @$(call install_alternative, imagemagick, 0, 0, 0644, /etc/ImageMagick-7/type-windows.xml)
+ @$(call install_alternative, imagemagick, 0, 0, 0644, /etc/ImageMagick-7/type.xml)
@$(call install_finish, imagemagick)
diff --git a/rules/inetutils.in b/rules/inetutils.in
index 43ed3443a..eb62e7f43 100644
--- a/rules/inetutils.in
+++ b/rules/inetutils.in
@@ -137,12 +137,12 @@ menuconfig INETUTILS_TFTPD
prompt "tftpd "
depends on !BUSYBOX_TFTPD || ALLYES
help
- TFTPD is a ftp daemon to be used for diskless clients. Most bootloaders
+ TFTPD is an ftp daemon to be used for diskless clients. Most bootloaders
use the Trivial File Transfer Protocol to load their OS image. Note:
There is no authentication!
comment "BusyBox' tftpd is selected!"
- depends on BUSYBOX_TFTPD
+ depends on BUSYBOX_TFTPD
if INETUTILS_TFTPD
diff --git a/rules/initmethod-bbinit.make b/rules/initmethod-bbinit.make
index 75d381e29..4ae5c3284 100644
--- a/rules/initmethod-bbinit.make
+++ b/rules/initmethod-bbinit.make
@@ -59,10 +59,8 @@ ifdef PTXCONF_INITMETHOD_BBINIT_ETC_INITD_NETWORKING
@$(call install_alternative, initmethod-bbinit, 0, 0, 0644, /etc/network/interfaces, n)
@$(call install_copy, initmethod-bbinit, 0, 0, 0755, /etc/network/if-down.d)
@$(call install_copy, initmethod-bbinit, 0, 0, 0755, /etc/network/if-up.d)
- @$(call install_copy, initmethod-bbinit, 0, 0, 0755, /etc/network/if-pre-down.d)
@$(call install_copy, initmethod-bbinit, 0, 0, 0755, /etc/network/if-post-down.d)
@$(call install_copy, initmethod-bbinit, 0, 0, 0755, /etc/network/if-pre-up.d)
- @$(call install_copy, initmethod-bbinit, 0, 0, 0755, /etc/network/if-post-up.d)
endif
ifdef PTXCONF_INITMETHOD_BBINIT_ETC_INITD_RT_SET_BANDWIDTH
diff --git a/rules/initmethod-systemd.make b/rules/initmethod-systemd.make
index be2a31817..8701a6bc1 100644
--- a/rules/initmethod-systemd.make
+++ b/rules/initmethod-systemd.make
@@ -48,10 +48,8 @@ ifdef PTXCONF_INITMETHOD_SYSTEMD_IFUPDOWN
@$(call install_alternative, initmethod-systemd, 0, 0, 0644, /etc/network/interfaces)
@$(call install_copy, initmethod-systemd, 0, 0, 0755, /etc/network/if-down.d)
@$(call install_copy, initmethod-systemd, 0, 0, 0755, /etc/network/if-up.d)
- @$(call install_copy, initmethod-systemd, 0, 0, 0755, /etc/network/if-pre-down.d)
@$(call install_copy, initmethod-systemd, 0, 0, 0755, /etc/network/if-post-down.d)
@$(call install_copy, initmethod-systemd, 0, 0, 0755, /etc/network/if-pre-up.d)
- @$(call install_copy, initmethod-systemd, 0, 0, 0755, /etc/network/if-post-up.d)
endif
@$(call install_finish,initmethod-systemd)
diff --git a/rules/initmethod.in b/rules/initmethod.in
index b8c0b9f97..489fd365d 100644
--- a/rules/initmethod.in
+++ b/rules/initmethod.in
@@ -30,7 +30,7 @@ choice
bool
select INITRAMFS_TOOLS
prompt "initramfs init "
-
+
endchoice
source "generated/initmethod.in"
diff --git a/rules/inotify-tools.make b/rules/inotify-tools.make
index c66346a28..1f3b4367b 100644
--- a/rules/inotify-tools.make
+++ b/rules/inotify-tools.make
@@ -28,13 +28,11 @@ INOTIFY_TOOLS_LICENSE_FILES := file://COPYING;md5=59530bdf33659b29e73d4adb9f9f65
# Prepare
# ----------------------------------------------------------------------------
-INOTIFY_TOOLS_PATH := PATH=$(CROSS_PATH)
-INOTIFY_TOOLS_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-INOTIFY_TOOLS_AUTOCONF := $(CROSS_AUTOCONF_USR)
+INOTIFY_TOOLS_CONF_TOOL := autoconf
+INOTIFY_TOOLS_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/intel-gmmlib.make b/rules/intel-gmmlib.make
index 910e4c327..8667f3a59 100644
--- a/rules/intel-gmmlib.make
+++ b/rules/intel-gmmlib.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_ARCH_X86)-$(PTXCONF_INTEL_GMMLIB) += intel-gmmlib
#
# Paths and names
#
-INTEL_GMMLIB_VERSION := 20.4.1
-INTEL_GMMLIB_MD5 := 42253186cd02734e0a6e8939699a7ab0
+INTEL_GMMLIB_VERSION := 22.3.19
+INTEL_GMMLIB_MD5 := 4da585bff5bbbc4dc445491378f46e50
INTEL_GMMLIB := intel-gmmlib-$(INTEL_GMMLIB_VERSION)
INTEL_GMMLIB_SUFFIX := tar.gz
INTEL_GMMLIB_URL := https://github.com/intel/gmmlib/archive/$(INTEL_GMMLIB).$(INTEL_GMMLIB_SUFFIX)
INTEL_GMMLIB_SOURCE := $(SRCDIR)/$(INTEL_GMMLIB).$(INTEL_GMMLIB_SUFFIX)
INTEL_GMMLIB_DIR := $(BUILDDIR)/$(INTEL_GMMLIB)
-INTEL_GMMLIB_LICENSE := MIT
+INTEL_GMMLIB_LICENSE := MIT AND BSD-3-Clause
+INTEL_GMMLIB_LICENSE_FILES := \
+ file://LICENSE.md;md5=465fe90caea3edd6a2cecb3f0c28a654
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/intel-media-driver.make b/rules/intel-media-driver.make
index 31343173e..85cce49fe 100644
--- a/rules/intel-media-driver.make
+++ b/rules/intel-media-driver.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_ARCH_X86)-$(PTXCONF_INTEL_MEDIA_DRIVER) += intel-media-driver
#
# Paths and names
#
-INTEL_MEDIA_DRIVER_VERSION := 21.1.0
-INTEL_MEDIA_DRIVER_MD5 := a77a838d384fd445e4742127fd6f8a6b
+INTEL_MEDIA_DRIVER_VERSION := 24.2.0
+INTEL_MEDIA_DRIVER_MD5 := 4c2f33b378a1d5934aee7d3b15846d69
INTEL_MEDIA_DRIVER := intel-media-$(INTEL_MEDIA_DRIVER_VERSION)
INTEL_MEDIA_DRIVER_SUFFIX := tar.gz
INTEL_MEDIA_DRIVER_URL := https://github.com/intel/media-driver/archive/$(INTEL_MEDIA_DRIVER).$(INTEL_MEDIA_DRIVER_SUFFIX)
INTEL_MEDIA_DRIVER_SOURCE := $(SRCDIR)/$(INTEL_MEDIA_DRIVER).$(INTEL_MEDIA_DRIVER_SUFFIX)
INTEL_MEDIA_DRIVER_DIR := $(BUILDDIR)/$(INTEL_MEDIA_DRIVER)
INTEL_MEDIA_DRIVER_LICENSE := MIT AND BSD-3-Clause
+INTEL_MEDIA_DRIVER_LICENSE_FILES := \
+ file://LICENSE.md;md5=6aab5363823095ce682b155fef0231f0
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/iozone.in b/rules/iozone.in
index 85e5107e1..2bf4fff3d 100644
--- a/rules/iozone.in
+++ b/rules/iozone.in
@@ -8,4 +8,4 @@ config IOZONE
select GCCLIBS_GCC_S
help
IOzone is a filesystem benchmark tool. The benchmark generates
- and measures a variety of file operations.
+ and measures a variety of file operations.
diff --git a/rules/iperf.make b/rules/iperf.make
index 32e481b68..34a165cb4 100644
--- a/rules/iperf.make
+++ b/rules/iperf.make
@@ -27,13 +27,11 @@ IPERF_LICENSE := BSD
# Prepare
# ----------------------------------------------------------------------------
-IPERF_PATH := PATH=$(CROSS_PATH)
-IPERF_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-IPERF_AUTOCONF := \
+IPERF_CONF_TOOL := autoconf
+IPERF_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
$(GLOBAL_IPV6_OPTION) \
--enable-multicast \
diff --git a/rules/iperf3.make b/rules/iperf3.make
index c419de692..7ff23856a 100644
--- a/rules/iperf3.make
+++ b/rules/iperf3.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_IPERF3) += iperf3
#
# Paths and names
#
-IPERF3_VERSION := 3.6
-IPERF3_MD5 := 6114c34ef6c3a69bc75de12e5366789b
+IPERF3_VERSION := 3.16
+IPERF3_MD5 := cbcdeae143cbd82a1f41a80ed01ede6c
IPERF3 := iperf-$(IPERF3_VERSION)
IPERF3_SUFFIX := tar.gz
IPERF3_URL := https://downloads.es.net/pub/iperf/$(IPERF3).$(IPERF3_SUFFIX)
@@ -30,8 +30,10 @@ IPERF3_LICENSE := BSD
#
# autoconf
#
-IPERF3_AUTOCONF := \
+IPERF3_CONF_TOOL := autoconf
+IPERF3_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
+ --disable-profiling \
--with-openssl=$(PTXDIST_SYSROOT_TARGET)/usr
# ----------------------------------------------------------------------------
diff --git a/rules/iproute2.in b/rules/iproute2.in
index 25a5ae347..0c8374109 100644
--- a/rules/iproute2.in
+++ b/rules/iproute2.in
@@ -11,6 +11,7 @@ menuconfig IPROUTE2
select LIBC_PTHREAD if IPROUTE2_ARPD
select LIBC_RESOLV
select LIBMNL if IPROUTE2_DEVLINK
+ select PYTHON3 if IPROUTE2_ROUTEL && RUNTIME
help
Networking and traffic control tools
@@ -65,14 +66,6 @@ config IPROUTE2_IP
comment "busybox' ip is selected"
depends on BUSYBOX_IP
-config IPROUTE2_IFCFG
- bool
- prompt "ifcfg"
- help
- ifcfg is a script wrapping ip, written as replacement for
- ifconfig.
- Needs arping and rdisk programs from the iputils package.
-
config IPROUTE2_IFSTAT
bool
prompt "ifstat"
@@ -94,17 +87,12 @@ config IPROUTE2_NSTAT
help
handy utility to read counters /proc/net/netstat and snmp
-config IPROUTE2_ROUTEF
- bool
- prompt "routef"
- help
- Component of ip route for flushing the routing tables
-
config IPROUTE2_ROUTEL
bool
prompt "routel"
help
Component of ip route for listing the routing tables
+ This component requires Python3 at run-time
config IPROUTE2_RTACCT
bool
@@ -118,12 +106,6 @@ config IPROUTE2_RTMON
help
Route monitoring
-config IPROUTE2_RTPR
- bool
- prompt "rtpr"
- help
- A tool to make the output of "ip -o" readable
-
config IPROUTE2_RTSTAT
bool
prompt "rtstat"
diff --git a/rules/iproute2.make b/rules/iproute2.make
index 6643d9e22..79aa02f1d 100644
--- a/rules/iproute2.make
+++ b/rules/iproute2.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_IPROUTE2) += iproute2
#
# Paths and names
#
-IPROUTE2_VERSION := 5.9.0
-IPROUTE2_MD5 := 3966f12374e1beb70f1c21f30a350673
+IPROUTE2_VERSION := 6.8.0
+IPROUTE2_MD5 := 9d6ea453986900d98e3b6bcb868815cd
IPROUTE2 := iproute2-$(IPROUTE2_VERSION)
IPROUTE2_SUFFIX := tar.xz
IPROUTE2_URL := $(call ptx/mirror, KERNEL, utils/net/iproute2/$(IPROUTE2).$(IPROUTE2_SUFFIX))
@@ -28,8 +28,9 @@ IPROUTE2_LICENSE := GPL-2.0-only
# Prepare
# ----------------------------------------------------------------------------
-# iproute2's configure is handcrafted and doesn't take standard configure options
-IPROUTE2_CONF_OPT := ''
+# iproute2's configure is handcrafted
+IPROUTE2_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR)
$(STATEDIR)/iproute2.prepare:
@$(call targetinfo)
@@ -61,15 +62,12 @@ IPROUTE2_INSTALL_FILES-$(PTXCONF_IPROUTE2_CTSTAT) += ctstat
IPROUTE2_INSTALL_FILES-$(PTXCONF_IPROUTE2_DEVLINK) += devlink
IPROUTE2_INSTALL_FILES-$(PTXCONF_IPROUTE2_GENL) += genl
IPROUTE2_INSTALL_FILES-$(PTXCONF_IPROUTE2_IP) += ip
-IPROUTE2_INSTALL_FILES-$(PTXCONF_IPROUTE2_IFCFG) += ifcfg
IPROUTE2_INSTALL_FILES-$(PTXCONF_IPROUTE2_IFSTAT) += ifstat
IPROUTE2_INSTALL_FILES-$(PTXCONF_IPROUTE2_LNSTAT) += lnstat
IPROUTE2_INSTALL_FILES-$(PTXCONF_IPROUTE2_NSTAT) += nstat
-IPROUTE2_INSTALL_FILES-$(PTXCONF_IPROUTE2_ROUTEF) += routef
IPROUTE2_INSTALL_FILES-$(PTXCONF_IPROUTE2_ROUTEL) += routel
IPROUTE2_INSTALL_FILES-$(PTXCONF_IPROUTE2_RTACCT) += rtacct
IPROUTE2_INSTALL_FILES-$(PTXCONF_IPROUTE2_RTMON) += rtmon
-IPROUTE2_INSTALL_FILES-$(PTXCONF_IPROUTE2_RTPR) += rtpr
IPROUTE2_INSTALL_FILES-$(PTXCONF_IPROUTE2_RTSTAT) += rtstat
IPROUTE2_INSTALL_FILES-$(PTXCONF_IPROUTE2_SS) += ss
IPROUTE2_INSTALL_FILES-$(PTXCONF_IPROUTE2_TC) += tc
diff --git a/rules/iptables.make b/rules/iptables.make
index 391a95af0..580edc304 100644
--- a/rules/iptables.make
+++ b/rules/iptables.make
@@ -19,14 +19,16 @@ PACKAGES-$(PTXCONF_IPTABLES) += iptables
#
# Paths and names
#
-IPTABLES_VERSION := 1.8.3
-IPTABLES_MD5 := 29de711d15c040c402cf3038c69ff513
+IPTABLES_VERSION := 1.8.10
+IPTABLES_MD5 := 5eaa3bb424dd3a13c98c0cb026314029
IPTABLES := iptables-$(IPTABLES_VERSION)
-IPTABLES_SUFFIX := tar.bz2
+IPTABLES_SUFFIX := tar.xz
IPTABLES_URL := http://ftp.netfilter.org/pub/iptables/$(IPTABLES).$(IPTABLES_SUFFIX)
IPTABLES_SOURCE := $(SRCDIR)/$(IPTABLES).$(IPTABLES_SUFFIX)
IPTABLES_DIR := $(BUILDDIR)/$(IPTABLES)
IPTABLES_LICENSE := GPL-2.0-only
+IPTABLES_LICENSE_FILES := \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263
# ----------------------------------------------------------------------------
# Prepare
@@ -47,8 +49,9 @@ IPTABLES_CONF_OPT := \
--disable-nfsynproxy \
--$(call ptx/endis, PTXCONF_IPTABLES_NFTABLES_COMPAT)-nftables \
--disable-connlabel \
+ --disable-profiling \
--with-kernel=$(KERNEL_HEADERS_DIR) \
- --with-xtlibdir=/usr/$(CROSS_LIB_DIR)
+ --with-xtlibdir=/usr/lib
# ----------------------------------------------------------------------------
# Install
@@ -56,7 +59,7 @@ IPTABLES_CONF_OPT := \
$(STATEDIR)/iptables.install:
@$(call targetinfo)
- @$(call install, IPTABLES)
+ @$(call world/install, IPTABLES)
install $(IPTABLES_DIR)/iptables/iptables-apply $(IPTABLES_PKGDIR)/usr/sbin
@$(touch)
@@ -74,61 +77,44 @@ $(STATEDIR)/iptables.targetinstall:
@$(call install_fixup, iptables,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
@$(call install_fixup, iptables,DESCRIPTION,missing)
-# # install the basic libraries
@$(call install_lib, iptables, 0, 0, 0644, libxtables)
ifdef PTXCONF_IPTABLES_LIBIPQ
@$(call install_lib, iptables, 0, 0, 0644, libipq)
endif
-
- @cd $(IPTABLES_PKGDIR)/usr/$(CROSS_LIB_DIR) && \
- for file in libxt_*.so; do \
- $(call install_copy, iptables, 0, 0, 0644, -,\
- /usr/$(CROSS_LIB_DIR)/$$file); \
- done
+ @$(call install_glob, iptables, 0, 0, -, /usr/lib, */libxt_*.so,)
ifdef PTXCONF_IPTABLES_IPV6
-# # install the IPv6 relevant shared libraries
- @cd $(IPTABLES_PKGDIR)/usr/$(CROSS_LIB_DIR) && \
- for file in libip6t_*.so; do \
- $(call install_copy, iptables, 0, 0, 0644, -, \
- /usr/$(CROSS_LIB_DIR)/$$file); \
- done
+ @$(call install_glob, iptables, 0, 0, -, /usr/lib, */libip6t_*.so,)
@$(call install_lib, iptables, 0, 0, 0644, libip6tc)
endif
ifdef PTXCONF_IPTABLES_IPV4
-# # install the IPv4 relevant shared libraries
- @cd $(IPTABLES_PKGDIR)/usr/$(CROSS_LIB_DIR) && \
- for file in libipt_*.so; do \
- $(call install_copy, iptables, 0, 0, 0644, -,\
- /usr/$(CROSS_LIB_DIR)/$$file); \
- done
+ @$(call install_glob, iptables, 0, 0, -, /usr/lib, */libipt_*.so,)
@$(call install_lib, iptables, 0, 0, 0644, libip4tc)
endif
ifdef PTXCONF_IPTABLES_INSTALL_TOOLS
@$(call install_copy, iptables, 0, 0, 0755, -, /usr/sbin/xtables-legacy-multi)
@$(call install_link, iptables, ../sbin/xtables-legacy-multi, /usr/bin/iptables-xml)
+
ifdef PTXCONF_IPTABLES_LIBNFNETLINK
@$(call install_copy, iptables, 0, 0, 0755, -, /usr/sbin/nfnl_osf)
endif
+
ifdef PTXCONF_IPTABLES_IPV6
-# # IPv6 part
@$(call install_link, iptables, xtables-legacy-multi, /usr/sbin/ip6tables)
@$(call install_link, iptables, xtables-legacy-multi, /usr/sbin/ip6tables-restore)
@$(call install_link, iptables, xtables-legacy-multi, /usr/sbin/ip6tables-save)
endif
ifdef PTXCONF_IPTABLES_IPV4
-# # IPv4 part
@$(call install_link, iptables, xtables-legacy-multi, /usr/sbin/iptables)
@$(call install_link, iptables, xtables-legacy-multi, /usr/sbin/iptables-restore)
@$(call install_link, iptables, xtables-legacy-multi, /usr/sbin/iptables-save)
endif
ifdef PTXCONF_IPTABLES_IPV6_SYSTEMD_UNIT
-# # IPv6 systemd service unit part
@$(call install_alternative, iptables, 0, 0, 0644, /etc/iptables/rules.v6)
@$(call install_alternative, iptables, 0, 0, 0755, /usr/sbin/ip6tables-flush)
@$(call install_alternative, iptables, 0, 0, 0644, \
@@ -138,7 +124,6 @@ ifdef PTXCONF_IPTABLES_IPV6_SYSTEMD_UNIT
endif
ifdef PTXCONF_IPTABLES_IPV4_SYSTEMD_UNIT
-# # IPv4 systemd service unit part
@$(call install_alternative, iptables, 0, 0, 0644, /etc/iptables/rules.v4)
@$(call install_alternative, iptables, 0, 0, 0755, /usr/sbin/iptables-flush)
@$(call install_alternative, iptables, 0, 0, 0644, \
@@ -147,25 +132,22 @@ ifdef PTXCONF_IPTABLES_IPV4_SYSTEMD_UNIT
/usr/lib/systemd/system/multi-user.target.wants/iptables.service)
endif
-endif
+endif # PTXCONF_IPTABLES_INSTALL_TOOLS
ifdef PTXCONF_IPTABLES_INSTALL_IPTABLES_APPLY
@$(call install_copy, iptables, 0, 0, 0755, -, /usr/sbin/iptables-apply)
endif
-# # compability layer for nftables
ifdef PTXCONF_IPTABLES_NFTABLES_COMPAT
@$(call install_copy, iptables, 0, 0, 0755, -, /usr/sbin/xtables-nft-multi)
ifdef PTXCONF_IPTABLES_IPV4
-# # IPv4 part
@$(call install_link, iptables, xtables-nft-multi, /usr/sbin/iptables-nft)
@$(call install_link, iptables, xtables-nft-multi, /usr/sbin/iptables-nft-save)
@$(call install_link, iptables, xtables-nft-multi, /usr/sbin/iptables-nft-restore)
endif
ifdef PTXCONF_IPTABLES_IPV6
-# # IPv6 part
@$(call install_link, iptables, xtables-nft-multi, /usr/sbin/ip6tables-nft)
@$(call install_link, iptables, xtables-nft-multi, /usr/sbin/ip6tables-nft-save)
@$(call install_link, iptables, xtables-nft-multi, /usr/sbin/ip6tables-nft-restore)
@@ -173,7 +155,7 @@ endif
@$(call install_link, iptables, xtables-nft-multi, /usr/sbin/arptables-nft)
@$(call install_link, iptables, xtables-nft-multi, /usr/sbin/ebtables-nft)
-endif
+endif # PTXCONF_IPTABLES_NFTABLES_COMPAT
@$(call install_finish, iptables)
diff --git a/rules/iputils.in b/rules/iputils.in
index ede632adc..561b7cde2 100644
--- a/rules/iputils.in
+++ b/rules/iputils.in
@@ -25,7 +25,7 @@ config IPUTILS_ARPING
address source.
comment "BusyBox' arping is selected!"
- depends on BUSYBOX_ARPING
+ depends on BUSYBOX_ARPING
config IPUTILS_CLOCKDIFF
bool
@@ -47,10 +47,10 @@ config IPUTILS_PING
be enforced by specifying -4 or -6.
comment "inetutils' ping is selected!"
- depends on INETUTILS_PING
+ depends on INETUTILS_PING
comment "BusyBox' ping is selected!"
- depends on BUSYBOX_PING
+ depends on BUSYBOX_PING
config IPUTILS_RARPD
bool
@@ -76,10 +76,10 @@ config IPUTILS_TFTPD
prompt "tftpd"
comment "inetutils' tftpd is selected!"
- depends on INETUTILS_PING
+ depends on INETUTILS_PING
comment "BusyBox' tftpd is selected!"
- depends on BUSYBOX_TFTPD
+ depends on BUSYBOX_TFTPD
config IPUTILS_TRACEPATH
bool
@@ -101,6 +101,6 @@ config IPUTILS_TRACEROUTE6
for IPv6 only.
comment "BusyBox' traceroute6 is selected!"
- depends on BUSYBOX_TRACEROUTE6
+ depends on BUSYBOX_TRACEROUTE6
endif
diff --git a/rules/iw.make b/rules/iw.make
index 9fcf8f72b..632e31abe 100644
--- a/rules/iw.make
+++ b/rules/iw.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_IW) += iw
#
# Paths and names
#
-IW_VERSION := 5.4
-IW_MD5 := 0d8bd345449c14249e39ce4b1f09cd64
+IW_VERSION := 6.7
+IW_MD5 := a63e81b0dcae9caf9ed3a20f2c445a07
IW := iw-$(IW_VERSION)
IW_SUFFIX := tar.xz
IW_URL := https://www.kernel.org/pub/software/network/iw/$(IW).$(IW_SUFFIX)
IW_SOURCE := $(SRCDIR)/$(IW).$(IW_SUFFIX)
IW_DIR := $(BUILDDIR)/$(IW)
IW_LICENSE := ISC
+IW_LICENSE_FILES := \
+ file://COPYING;md5=878618a5c4af25e9b93ef0be1a93f774
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/jamvm.make b/rules/jamvm.make
index c160a7c23..df181c102 100644
--- a/rules/jamvm.make
+++ b/rules/jamvm.make
@@ -32,9 +32,6 @@ JAMVM_LICENSE_FILES := \
# Prepare
# ----------------------------------------------------------------------------
-JAMVM_PATH := PATH=$(CROSS_PATH)
-JAMVM_ENV := $(CROSS_ENV)
-
JAMVM_CPPFLAGS = -I$(SYSROOT)/usr/lib/libffi-$(LIBFFI_VERSION)/include
ifdef PTXCONF_ARCH_ARM
JAMVM_CFLAGS := -marm
@@ -43,7 +40,8 @@ endif
#
# autoconf
#
-JAMVM_AUTOCONF := \
+JAMVM_CONF_TOOL := autoconf
+JAMVM_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--enable-int-threading \
--enable-int-direct \
@@ -56,49 +54,49 @@ JAMVM_AUTOCONF := \
--with-classpath-install-dir=/usr
ifdef PTXCONF_JAMVM_USE_LIBFFI
-JAMVM_AUTOCONF += --enable-ffi
+JAMVM_CONF_OPT += --enable-ffi
else
-JAMVM_AUTOCONF += --disable-ffi
+JAMVM_CONF_OPT += --disable-ffi
endif
ifndef PTXCONF_JAMVM_TRACE
-JAMVM_AUTOCONF += --disable-trace
+JAMVM_CONF_OPT += --disable-trace
endif
ifdef PTXCONF_JAMVM_TRACE_ALL
-JAMVM_AUTOCONF += --enable-trace
+JAMVM_CONF_OPT += --enable-trace
endif
ifdef PTXCONF_JAMVM_TRACE_GC
-JAMVM_AUTOCONF += --enable-tracegc
+JAMVM_CONF_OPT += --enable-tracegc
endif
ifdef PTXCONF_JAMVM_TRACE_ALLOC
-JAMVM_AUTOCONF += --enable-tracealloc
+JAMVM_CONF_OPT += --enable-tracealloc
endif
ifdef PTXCONF_JAMVM_TRACE_FNLZ
-JAMVM_AUTOCONF += --enable-tracefnlz
+JAMVM_CONF_OPT += --enable-tracefnlz
endif
ifdef PTXCONF_JAMVM_TRACE_DLL
-JAMVM_AUTOCONF += --enable-tracedll
+JAMVM_CONF_OPT += --enable-tracedll
endif
ifdef PTXCONF_JAMVM_TRACE_LOCK
-JAMVM_AUTOCONF += --enable-tracelock
+JAMVM_CONF_OPT += --enable-tracelock
endif
ifdef PTXCONF_JAMVM_TRACE_THREAD
-JAMVM_AUTOCONF += --enable-tracethread
+JAMVM_CONF_OPT += --enable-tracethread
endif
ifdef PTXCONF_JAMVM_TRACE_DIRECT
-JAMVM_AUTOCONF += --enable-tracedirect
+JAMVM_CONF_OPT += --enable-tracedirect
endif
ifdef PTXCONF_JAMVM_TRACE_INLINING
-JAMVM_AUTOCONF += --enable-traceinlining
+JAMVM_CONF_OPT += --enable-traceinlining
endif
# FIXME:
diff --git a/rules/jed.in b/rules/jed.in
deleted file mode 100644
index d981a907f..000000000
--- a/rules/jed.in
+++ /dev/null
@@ -1,21 +0,0 @@
-## SECTION=editors
-config JED
- tristate
- select SLANG
- select LIBC_UTIL
- prompt "jed"
- help
- JED - An editor for programmers
-
- Jed offers:
- Extensible in a language resembling C. Completely customizable.
- Capable of read GNU info files from within JED's info browser.
- A variety of programming modes (with syntax highlighting) are
- available including Pascal, Java, Perl, C, C++, FORTRAN, TeX,
- HTML, SH, IDL, DCL, NROFF, PostScript, Basic. Folding support.
- Edit TeX files with AUC-TeX style editing (BiBTeX support too).
- Rectangular cut/paste; regular expressions; incremental searches;
- search replace across multiple files; multiple windows; multiple
- buffers; shell modes; directory editor (dired); mail; rmail;
- ispell; and much more.
-
diff --git a/rules/jed.make b/rules/jed.make
deleted file mode 100644
index a1c28598b..000000000
--- a/rules/jed.make
+++ /dev/null
@@ -1,67 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2004 by Benedikt Spranger
-# Copyright (C) 2009 by Robert Schwebel
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_JED) += jed
-
-#
-# Paths and names
-#
-JED_VERSION := 0.99-19
-JED_MD5 := c9b2f58a3defc6f61faa1ce7d6d629ea
-JED := jed-$(JED_VERSION)
-JED_SUFFIX := tar.bz2
-JED_URL := ftp://space.mit.edu/pub/davis/jed/v0.99/old/$(JED).$(JED_SUFFIX) \
- ftp://space.mit.edu/pub/davis/jed/v0.99/$(JED).$(JED_SUFFIX)
-JED_SOURCE := $(SRCDIR)/$(JED).$(JED_SUFFIX)
-JED_DIR := $(BUILDDIR)/$(JED)
-JED_LICENSE := GPL-2.0-or-later
-JED_LICENSE_FILES := \
- file://COPYRIGHT;md5=557ce94834059624f9578212b25e32ce \
- file://COPYING;md5=18810669f13b87348459e611d31ab760
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-JED_PATH := PATH=$(CROSS_PATH)
-JED_ENV := \
- $(CROSS_ENV) \
- JED_ROOT=/usr/share/jed
-
-#
-# autoconf
-#
-JED_AUTOCONF := \
- $(CROSS_AUTOCONF_USR) \
- --with-slang=$(SYSROOT)/usr \
- --without-x
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/jed.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, jed)
- @$(call install_fixup, jed,PRIORITY,optional)
- @$(call install_fixup, jed,SECTION,base)
- @$(call install_fixup, jed,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, jed,DESCRIPTION,missing)
-
- @$(call install_copy, jed, 0, 0, 0755, -, /usr/bin/jed)
-
- @$(call install_finish, jed)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/jimtcl.in b/rules/jimtcl.in
index 1e052d3e4..93b869536 100644
--- a/rules/jimtcl.in
+++ b/rules/jimtcl.in
@@ -4,6 +4,7 @@ menuconfig JIMTCL
tristate
prompt "jimtcl "
select HOST_JIMTCL
+ select ZLIB
select LIBC_M if JIMTCL_MATH
select OPENSSL if JIMTCL_SSL
help
diff --git a/rules/jimtcl.make b/rules/jimtcl.make
index eb39dd611..3c99a4115 100644
--- a/rules/jimtcl.make
+++ b/rules/jimtcl.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_JIMTCL) += jimtcl
#
# Paths and names
#
-JIMTCL_VERSION := 0.78
-JIMTCL_MD5 := bde9021d78a77fe28e1bbc423142ab23
+JIMTCL_VERSION := 0.82
+JIMTCL_MD5 := 7d6be6bff1079778bf27d50ba9185388
JIMTCL := jimtcl-$(JIMTCL_VERSION)
-JIMTCL_SUFFIX := tar.xz
-JIMTCL_URL := http://repo.or.cz/jimtcl.git;tag=$(JIMTCL_VERSION)
+JIMTCL_SUFFIX := tar.gz
+JIMTCL_URL := https://github.com/msteveb/jimtcl/archive/refs/tags/$(JIMTCL_VERSION).$(JIMTCL_SUFFIX)
JIMTCL_SOURCE := $(SRCDIR)/$(JIMTCL).$(JIMTCL_SUFFIX)
JIMTCL_DIR := $(BUILDDIR)/$(JIMTCL)
JIMTCL_LICENSE := BSD-2-Clause
@@ -36,15 +36,15 @@ JIMTCL_CONF_TOOL := autoconf
JIMTCL_CONF_ENV := \
$(CROSS_ENV) \
CCACHE=none \
- autosetup_tclsh=$(PTXDIST_SYSROOT_HOST)/bin/jimsh
+ autosetup_tclsh=$(PTXDIST_SYSROOT_HOST)/usr/bin/jimsh
JIMTCL_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
- $(call ptx/ifdef, PTXCONF_JIMTCL_UTF8,--utf8,) \
+ $(call ptx/ifdef, PTXCONF_JIMTCL_UTF8,,--disable-utf8) \
$(call ptx/ifdef, PTXCONF_JIMTCL_LINEEDIT,,--disable-lineedit) \
$(call ptx/ifdef, PTXCONF_JIMTCL_REFERENCES,,--disable-references) \
- $(call ptx/ifdef, PTXCONF_JIMTCL_MATH,--math,) \
- $(call ptx/ifdef, PTXCONF_JIMTCL_SSL,--ssl,) \
- $(call ptx/ifdef, PTXCONF_GLOBAL_IPV6,--ipv6,) \
+ $(call ptx/ifdef, PTXCONF_JIMTCL_MATH,,--disable-math) \
+ $(call ptx/ifdef, PTXCONF_JIMTCL_SSL,,--disable-ssl) \
+ $(call ptx/ifdef, PTXCONF_GLOBAL_IPV6,,--disable-ipv6) \
--shared \
$(call ptx/ifdef, PTXCONF_JIMTCL_POSIX_REGEX,--disable-jim-regexp,) \
--disable-docs \
diff --git a/rules/joe.make b/rules/joe.make
index 72ed8e745..235f1fcaa 100644
--- a/rules/joe.make
+++ b/rules/joe.make
@@ -29,13 +29,11 @@ JOE_LICENSE_FILES := file://COPYING;md5=da10ed7cf8038981c580e11c1d3e8fb6
# Prepare
# ----------------------------------------------------------------------------
-JOE_PATH := PATH=$(CROSS_PATH)
-JOE_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-JOE_AUTOCONF := \
+JOE_CONF_TOOL := autoconf
+JOE_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--enable-curses
diff --git a/rules/jq.make b/rules/jq.make
index 6db0cc9cb..4f7ca95ad 100644
--- a/rules/jq.make
+++ b/rules/jq.make
@@ -14,15 +14,15 @@ PACKAGES-$(PTXCONF_JQ) += jq
#
# Paths and names
#
-JQ_VERSION := 1.6
-JQ_MD5 := e68fbd6a992e36f1ac48c99bbf825d6b
+JQ_VERSION := 1.7.1
+JQ_MD5 := 974a340105ecb43add8c55601525f9fc
JQ := jq-$(JQ_VERSION)
JQ_SUFFIX := tar.gz
-JQ_URL := https://github.com/stedolan/jq/releases/download/$(JQ)/$(JQ).$(JQ_SUFFIX)
+JQ_URL := https://github.com/jqlang/jq/releases/download/$(JQ)/$(JQ).$(JQ_SUFFIX)
JQ_SOURCE := $(SRCDIR)/$(JQ).$(JQ_SUFFIX)
JQ_DIR := $(BUILDDIR)/$(JQ)
-JQ_LICENSE := MIT AND CC-BY-3.0
-JQ_LICENSE_FILES := file://COPYING;md5=15d03e360fa7399f76d5a4359fc72cbf
+JQ_LICENSE := MIT AND CC-BY-3.0 AND ICU
+JQ_LICENSE_FILES := file://COPYING;md5=488f4e0b04c0456337fb70d1ac1758ba
# ----------------------------------------------------------------------------
# Prepare
@@ -34,14 +34,16 @@ JQ_LICENSE_FILES := file://COPYING;md5=15d03e360fa7399f76d5a4359fc72cbf
JQ_CONF_TOOL := autoconf
JQ_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
- --disable-maintainer-mode \
+ --disable-largefile \
--disable-valgrind \
+ --disable-asan \
+ --disable-ubsan \
--disable-gcov \
--disable-docs \
--disable-error-injection \
--disable-all-static \
- --enable-pthread-tls \
- --without-oniguruma
+ --disable-decnum \
+ --with-oniguruma=prefix
# ----------------------------------------------------------------------------
# Target-Install
@@ -57,6 +59,7 @@ $(STATEDIR)/jq.targetinstall:
@$(call install_fixup, jq,DESCRIPTION,missing)
@$(call install_lib, jq, 0, 0, 0644, libjq)
+ @$(call install_lib, jq, 0, 0, 0644, libonig)
@$(call install_copy, jq, 0, 0, 0755, -, /usr/bin/jq)
@$(call install_finish, jq)
diff --git a/rules/json-c.make b/rules/json-c.make
index f2a990bf4..18665172a 100644
--- a/rules/json-c.make
+++ b/rules/json-c.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_JSON_C) += json-c
#
# Paths and names
#
-JSON_C_VERSION := 0.14
-JSON_C_MD5 := 72cbb065b43376d825cd521d115ae1f6
+JSON_C_VERSION := 0.17
+JSON_C_MD5 := bad8f5e91b7b2563ee2d507054c70eb2
JSON_C := json-c-$(JSON_C_VERSION)
JSON_C_SUFFIX := tar.gz
JSON_C_URL := https://s3.amazonaws.com/json-c_releases/releases/$(JSON_C).$(JSON_C_SUFFIX)
@@ -33,8 +33,10 @@ JSON_C_CONF_OPT := \
$(CROSS_CMAKE_USR) \
-DBUILD_DOCUMENTATION:BOOL=OFF \
-DBUILD_SHARED_LIBS:BOOL=ON \
+ -DBUILD_STATIC_LIBS:BOOL=OFF \
-DBUILD_TESTING:BOOL=OFF \
-DDISABLE_BSYMBOLIC:BOOL=ON \
+ -DDISABLE_EXTRA_LIBS:BOOL=ON \
-DDISABLE_WERROR:BOOL=ON \
-DENABLE_RDRAND:BOOL=OFF \
-DENABLE_THREADING:BOOL=OFF
diff --git a/rules/json-glib.in b/rules/json-glib.in
index 03e374369..9230f4001 100644
--- a/rules/json-glib.in
+++ b/rules/json-glib.in
@@ -3,6 +3,7 @@
config JSON_GLIB
tristate
prompt "json-glib"
+ select HOST_MESON
select GLIB
select HOST_GLIB # for glib-mkenums
select GOBJECT_INTROSPECTION if JSON_GLIB_INTROSPECTION
diff --git a/rules/json-glib.make b/rules/json-glib.make
index 507560e28..40d85fb58 100644
--- a/rules/json-glib.make
+++ b/rules/json-glib.make
@@ -14,39 +14,32 @@ PACKAGES-$(PTXCONF_JSON_GLIB) += json-glib
#
# Paths and names
#
-JSON_GLIB_VERSION := 1.2.8
-JSON_GLIB_MD5 := ff31e7d0594df44318e12facda3d086e
+JSON_GLIB_VERSION := 1.8.0
+JSON_GLIB_MD5 := f1aac2b8a17fd68646653cc4d8426486
JSON_GLIB := json-glib-$(JSON_GLIB_VERSION)
JSON_GLIB_SUFFIX := tar.xz
JSON_GLIB_URL := $(call ptx/mirror, GNOME, json-glib/$(basename $(JSON_GLIB_VERSION))/$(JSON_GLIB).$(JSON_GLIB_SUFFIX))
JSON_GLIB_SOURCE := $(SRCDIR)/$(JSON_GLIB).$(JSON_GLIB_SUFFIX)
JSON_GLIB_DIR := $(BUILDDIR)/$(JSON_GLIB)
JSON_GLIB_LICENSE := LGPL-2.1-only
+JSON_GLIB_LICENSE_FILES := \
+ file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
#
-# autoconf
+# meson
#
-JSON_GLIB_CONF_TOOL := autoconf
+JSON_GLIB_CONF_TOOL := meson
JSON_GLIB_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --disable-glibtest \
- --enable-debug=minimum \
- --enable-maintainer-flags=no \
- --disable-installed-tests \
- --disable-always-build-tests \
- --disable-gcov \
- --disable-gtk-doc \
- --disable-gtk-doc-html \
- --disable-gtk-doc-pdf \
- --disable-man \
- --$(call ptx/endis, PTXCONF_JSON_GLIB_INTROSPECTION)-introspection \
- --disable-nls \
- --disable-rpath
-
+ $(CROSS_MESON_USR) \
+ -Dgtk_doc=disabled \
+ -Dintrospection=$(call ptx/endis, PTXCONF_JSON_GLIB_INTROSPECTION)d \
+ -Dman=false \
+ -Dnls=disabled \
+ -Dtests=false
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/jvisu.in b/rules/jvisu.in
index eb8473879..e167904c0 100644
--- a/rules/jvisu.in
+++ b/rules/jvisu.in
@@ -7,7 +7,7 @@ menuconfig JVISU
help
JVISU - A java applet based visualisation suite
- JVisu Highlights:
+ JVisu Highlights:
Graphical Interface Builder for easy construction of interfaces
Clear Separation between HMI frontend and PLC backend
Java applet runs in every JDK-1.4.x enabled web browser
diff --git a/rules/jvisu.make b/rules/jvisu.make
index f82047ad1..849aa6d5c 100644
--- a/rules/jvisu.make
+++ b/rules/jvisu.make
@@ -29,7 +29,7 @@ JVISU_DIR := $(BUILDDIR)/$(JVISU)
JVISU_PATH := PATH=$(PTXCONF_SETUP_JAVA_SDK)/bin:$(CROSS_PATH)
-JVISU_ENV := \
+JVISU_MAKE_ENV := \
$(CROSS_ENV) \
ANT_OPTS="-Dfile.encoding=iso-8859-1" \
JAVA_HOME=$(PTXCONF_SETUP_JAVA_SDK)
@@ -44,7 +44,7 @@ $(STATEDIR)/jvisu.prepare:
$(STATEDIR)/jvisu.compile:
@$(call targetinfo)
- cd $(JVISU_DIR) && $(JVISU_ENV) $(JVISU_PATH) /bin/bash ./build.sh jar
+ @$(call world/execute, JVISU, $(SHELL) ./build.sh jar)
@$(call touch)
# ----------------------------------------------------------------------------
diff --git a/rules/kbd.make b/rules/kbd.make
index 67e4ff165..60bba99b2 100644
--- a/rules/kbd.make
+++ b/rules/kbd.make
@@ -82,7 +82,7 @@ $(STATEDIR)/kbd.targetinstall:
@$(foreach tool,$(KBD_TOOLS-y), \
$(call install_copy, kbd, 0, 0, 0755, -, \
- /usr/bin/$(tool));)
+ /usr/bin/$(tool))$(ptx/nl))
ifdef PTXCONF_KBD_PSFXTABLE
@$(call install_link, kbd, psfxtable, /usr/bin/psfaddtable)
diff --git a/rules/kernel-fit.make b/rules/kernel-fit.make
index 42237c9b8..64e82042f 100644
--- a/rules/kernel-fit.make
+++ b/rules/kernel-fit.make
@@ -28,7 +28,7 @@ KERNEL_FIT_KERNEL = $(KERNEL_IMAGE_PATH_y)
ifdef PTXCONF_KERNEL_FIT_INITRAMFS
KERNEL_FIT_INITRAMFS := $(IMAGEDIR)/root.cpio
endif
-KERNEL_FIT_DTB = $(DTC_DTB)
+KERNEL_FIT_DTB = $(addprefix $(IMAGEDIR)/,$(KERNEL_DTB_FILES))
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/kernel-header.make b/rules/kernel-header.make
index b1e50813a..25dd8335f 100644
--- a/rules/kernel-header.make
+++ b/rules/kernel-header.make
@@ -34,8 +34,6 @@ KERNEL_HEADER_BUILD_OOT := KEEP
# Prepare
# ----------------------------------------------------------------------------
-KERNEL_HEADER_CONF_ENV := $(CROSS_ENV)
-KERNEL_HEADER_PATH := PATH=$(CROSS_PATH)
KERNEL_HEADER_CONF_TOOL := NO
# ----------------------------------------------------------------------------
diff --git a/rules/kernel.make b/rules/kernel.make
index f43c1bb8d..d82aa27fb 100644
--- a/rules/kernel.make
+++ b/rules/kernel.make
@@ -27,11 +27,28 @@ endif
KERNEL_DIR := $(BUILDDIR)/$(KERNEL)
KERNEL_BUILD_DIR := $(KERNEL_DIR)-build
KERNEL_CONFIG := $(call ptx/in-platformconfigdir, $(call remove_quotes, $(PTXCONF_KERNEL_CONFIG)))
+KERNEL_DTS_PATH := $(call remove_quotes,$(PTXCONF_KERNEL_DTS_PATH))
+KERNEL_DTS := $(call remove_quotes,$(PTXCONF_KERNEL_DTS))
+KERNEL_DTSO_PATH := $(call remove_quotes,$(PTXCONF_KERNEL_DTSO_PATH))
+KERNEL_DTSO := $(call remove_quotes,$(PTXCONF_KERNEL_DTSO))
+KERNEL_DTB_FILES := $(addsuffix .dtb,$(basename $(notdir $(KERNEL_DTS))))
+KERNEL_DTBO_FILES := $(addsuffix .dtbo,$(basename $(notdir $(KERNEL_DTSO))))
+KERNEL_DTBO_DIR := /boot/overlays
KERNEL_LICENSE := GPL-2.0-only
KERNEL_SOURCE := $(SRCDIR)/$(KERNEL).$(KERNEL_SUFFIX)
KERNEL_DEVPKG := NO
KERNEL_BUILD_OOT := KEEP
+# track changes to devices-trees in the BSP
+$(call world/dts-cfghash-file, KERNEL)
+
+# in case we migrate some old syntax
+ifneq ($(filter /%,$(KERNEL_DTS)),)
+$(call ptx/error, the device trees in PTXCONF_KERNEL_DTS must be specified without an)
+$(call ptx/error, absolute path. Use PTXCONF_KERNEL_DTS_PATH to provide a list of direcories)
+$(call ptx/error, that will be searched.)
+endif
+
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
@@ -54,18 +71,19 @@ endef
KERNEL_MAKEVARS = $(call kernel/deprecated, KERNEL_MAKEVARS)
# like kernel-opts but with different CROSS_COMPILE=
-KERNEL_BASE_OPT := \
+KERNEL_BASE_OPT = \
$(call kernel-opts, KERNEL,$(KERNEL_CROSS_COMPILE)) \
$(call remove_quotes,$(PTXCONF_KERNEL_EXTRA_MAKEVARS))
# Intermediate option. This will be used by kernel module packages.
-KERNEL_MODULE_OPT := \
+KERNEL_MODULE_OPT = \
-C $(KERNEL_DIR) \
O=$(KERNEL_BUILD_DIR) \
$(KERNEL_BASE_OPT)
-KERNEL_SHARED_OPT := \
- $(KERNEL_MODULE_OPT)
+KERNEL_SHARED_OPT = \
+ $(KERNEL_MODULE_OPT) \
+ PAHOLE=false
ifndef PTXCONF_KERNEL_GCC_PLUGINS
# no gcc plugins; avoid config changes depending on the host compiler
@@ -78,8 +96,13 @@ KERNEL_MAKE_ENV := \
PTXDIST_NO_GCC_PLUGINS=1
endif
+ifneq ($(PTXCONF_KERNEL_CODE_SIGNING)$(PTXCONF_KERNEL_MODULES_SIGN),)
+KERNEL_MAKE_ENV += \
+ $(CODE_SIGNING_ENV)
+endif
+
KERNEL_CONF_TOOL := kconfig
-KERNEL_CONF_OPT := \
+KERNEL_CONF_OPT = \
$(KERNEL_SHARED_OPT)
ifdef PTXCONF_KERNEL_CONFIG_BASE_VERSION
@@ -149,6 +172,16 @@ ifdef KERNEL_INITRAMFS_SOURCE_y
@sed -i -e 's,^CONFIG_INITRAMFS_SOURCE.*$$,CONFIG_INITRAMFS_SOURCE=\"$(KERNEL_INITRAMFS_SOURCE_y)\",g' \
"$(KERNEL_BUILD_DIR)/.config"
endif
+ifdef PTXCONF_KERNEL_CODE_SIGNING
+ if [ -n "`cs_get_ca kernel-trusted`" ]; then \
+ sed -i -e "s'^\(CONFIG_SYSTEM_TRUSTED_KEYS\)=.*'\1=\"`cs_get_ca kernel-trusted`\"'" \
+ "$(KERNEL_BUILD_DIR)/.config"; \
+ fi
+endif
+ifdef PTXCONF_KERNEL_MODULES_SIGN
+ sed -i -e "s'^\(CONFIG_MODULE_SIG_KEY\)=.*'\1=\"`cs_get_uri kernel-modules`\"'" \
+ "$(KERNEL_BUILD_DIR)/.config"
+endif
@$(call touch)
@@ -181,6 +214,7 @@ KERNEL_TOOL_PERF_OPTS := \
NO_SLANG= \
NO_GTK2=1 \
NO_DEMANGLE= \
+ NO_JEVENTS=1 \
NO_LIBELF= \
NO_LIBUNWIND=1 \
NO_BACKTRACE= \
@@ -189,6 +223,7 @@ KERNEL_TOOL_PERF_OPTS := \
NO_LIBBIONIC=1 \
NO_LIBCRYPTO=1 \
NO_LIBDW_DWARF_UNWIND= \
+ NO_LIBTRACEEVENT=1 \
NO_PERF_READ_VDSO32=1 \
NO_PERF_READ_VDSOX32=1 \
NO_ZLIB= \
@@ -231,7 +266,7 @@ endif
# Install
# ----------------------------------------------------------------------------
-KERNEL_INSTALL_OPT := \
+KERNEL_INSTALL_OPT = \
$(KERNEL_BASE_OPT) \
modules_install
@@ -240,15 +275,26 @@ $(STATEDIR)/kernel.install:
ifdef PTXCONF_KERNEL_MODULES_INSTALL
@$(call world/install, KERNEL)
endif
+ @$(call world/dtb, KERNEL)
+ @$(call world/dtbo, KERNEL)
@$(call touch)
# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
+ifneq ($(KERNEL_DTB_FILES),)
+$(addprefix $(IMAGEDIR)/,$(KERNEL_DTB_FILES)): $(STATEDIR)/kernel.targetinstall
+endif
+
$(STATEDIR)/kernel.targetinstall:
@$(call targetinfo)
+ @$(foreach dtb, $(KERNEL_DTB_FILES), \
+ echo -e "Installing $(dtb) ...\n"$(ptx/nl) \
+ install -D -m0644 $(KERNEL_PKGDIR)/boot/$(dtb) \
+ $(IMAGEDIR)/$(dtb)$(ptx/nl))
+
ifdef PTXCONF_KERNEL_XPKG
@$(call install_init, kernel)
@$(call install_fixup, kernel, PRIORITY,optional)
@@ -260,6 +306,14 @@ ifdef PTXCONF_KERNEL_XPKG
ifdef PTXCONF_KERNEL_INSTALL
@$(call install_copy, kernel, 0, 0, 0644, $(KERNEL_IMAGE_PATH_y), /boot/$(KERNEL_IMAGE), n)
+
+ @$(foreach dtb, $(KERNEL_DTB_FILES), \
+ $(call install_copy, kernel, 0, 0, 0644, -, \
+ /boot/$(dtb), n)$(ptx/nl))
+
+ @$(foreach dtbo, $(KERNEL_DTBO_FILES), \
+ $(call install_copy, kernel, 0, 0, 0644, -, \
+ $(KERNEL_DTBO_DIR)/$(dtbo), n)$(ptx/nl))
endif
# install the ELF kernel image for debugging purpose
@@ -317,6 +371,16 @@ endif
@$(call touch)
# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/kernel.clean:
+ @$(call targetinfo)
+ @$(call clean_pkg, KERNEL)
+ @$(foreach dtb,$(KERNEL_DTB_FILES), \
+ rm -vf $(IMAGEDIR)/$(dtb)$(ptx/nl))
+
+# ----------------------------------------------------------------------------
# oldconfig / menuconfig
# ----------------------------------------------------------------------------
diff --git a/rules/kexec-tools.make b/rules/kexec-tools.make
index 252f06562..6e6f9b796 100644
--- a/rules/kexec-tools.make
+++ b/rules/kexec-tools.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_KEXEC_TOOLS) += kexec-tools
#
# Paths and names
#
-KEXEC_TOOLS_VERSION := 2.0.21
-KEXEC_TOOLS_MD5 := 4a0bbced84e46162d8f8e2c17a0b1466
+KEXEC_TOOLS_VERSION := 2.0.28
+KEXEC_TOOLS_MD5 := c775dfc1c5f1397f390b5478845185be
KEXEC_TOOLS := kexec-tools-$(KEXEC_TOOLS_VERSION)
KEXEC_TOOLS_SUFFIX := tar.xz
KEXEC_TOOLS_URL := $(call ptx/mirror, KERNEL, utils/kernel/kexec/$(KEXEC_TOOLS).$(KEXEC_TOOLS_SUFFIX))
@@ -38,7 +38,8 @@ endif
# autoconf
#
# Note: --without-gamecube is explicitly omitted. The option is broken.
-KEXEC_TOOLS_AUTOCONF := \
+KEXEC_TOOLS_CONF_TOOL := autoconf
+KEXEC_TOOLS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--$(call ptx/wwo, PTXCONF_KEXEC_TOOLS_ZLIB)-zlib \
--without-lzma \
diff --git a/rules/keyutils.make b/rules/keyutils.make
index b3747596c..019dacccb 100644
--- a/rules/keyutils.make
+++ b/rules/keyutils.make
@@ -2,20 +2,28 @@
#
# Copyright (C) 2013 by Michael Grzeschik <mgr@pengutronix.de>
#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
PACKAGES-$(PTXCONF_KEYUTILS) += keyutils
#
# Paths and names
#
-KEYUTILS_VERSION := 1.5.10
-KEYUTILS_MD5 := 3771676319bc7b84b1549b5c63ff5243
+KEYUTILS_VERSION := 1.6.3
+KEYUTILS_MD5 := 6b70b2b381c1b6d9adfaf66d5d3e7c00
KEYUTILS := keyutils-$(KEYUTILS_VERSION)
-KEYUTILS_SUFFIX := tar.bz2
-KEYUTILS_URL := http://people.redhat.com/~dhowells/keyutils/$(KEYUTILS).$(KEYUTILS_SUFFIX)
+KEYUTILS_SUFFIX := tar.gz
+KEYUTILS_URL := https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git/snapshot/$(KEYUTILS).$(KEYUTILS_SUFFIX)
KEYUTILS_SOURCE := $(SRCDIR)/$(KEYUTILS).$(KEYUTILS_SUFFIX)
KEYUTILS_DIR := $(BUILDDIR)/$(KEYUTILS)
KEYUTILS_LICENSE := GPL-2.0-or-later AND LGPL-2.1-or-later
+KEYUTILS_LICENSE_FILES := \
+ file://keyctl.c;startline=1;endline=10;md5=0b1fcf840ca0484f208ebf00b1d87a74 \
+ file://LICENCE.GPL;md5=5f6e72824f5da505c1f4a7197f004b45 \
+ file://keyutils.c;startline=1;endline=10;md5=944d046e96ff177131a078ba3957e2c7 \
+ file://LICENCE.LGPL;md5=7d1cacaa3ea752b72ea5e525df54a21f
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/killproc.make b/rules/killproc.make
index 792a8dd75..fc830dd1f 100644
--- a/rules/killproc.make
+++ b/rules/killproc.make
@@ -25,17 +25,17 @@ KILLPROC_DIR := $(BUILDDIR)/$(KILLPROC)
KILLPROC_LICENSE := GPL-2.0-only
# ----------------------------------------------------------------------------
-# Prepare
+# Prepare + Compile + Install
# ----------------------------------------------------------------------------
-KILLPROC_PATH := PATH=$(CROSS_PATH)
-KILLPROC_ENV := $(CROSS_ENV)
-
-KILLPROC_MAKEVARS := \
- CC=$(CROSS_CC) \
+KILLPROC_CONF_TOOL := NO
+KILLPROC_MAKE_OPT := \
+ CC=$(CROSS_CC)
+KILLPROC_INSTALL_OPT := \
SBINDIR=$(KILLPROC_PKGDIR)/usr/sbin \
UBINDIR=$(KILLPROC_PKGDIR)/usr/bin \
- INSTBINFLAGS="-m 0755"
+ INSTBINFLAGS="-m 0755" \
+ install
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/kmscube.in b/rules/kmscube.in
index 1f8884576..b1f939807 100644
--- a/rules/kmscube.in
+++ b/rules/kmscube.in
@@ -1,7 +1,7 @@
## SECTION=multimedia_libs
config KMSCUBE
- bool
+ tristate
prompt "kmscube"
select HOST_MESON
select MESALIB
diff --git a/rules/krb5.make b/rules/krb5.make
index b7b2995c9..989e0a0d5 100644
--- a/rules/krb5.make
+++ b/rules/krb5.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_KRB5) += krb5
#
# Paths and names
#
-KRB5_VERSION := 1.15.2
-KRB5_MD5 := b160f72161c730897dc7689f876b6e2a
+KRB5_VERSION := 1.20
+KRB5_MD5 := e88657aca6e6b0528c11a78643498bd5
KRB5 := krb5-$(KRB5_VERSION)
KRB5_SUFFIX := tar.gz
-KRB5_URL := https://web.mit.edu/kerberos/dist/krb5/1.15/$(KRB5).$(KRB5_SUFFIX)
+KRB5_URL := https://web.mit.edu/kerberos/dist/krb5/$(KRB5_VERSION)/$(KRB5).$(KRB5_SUFFIX)
KRB5_SOURCE := $(SRCDIR)/$(KRB5).$(KRB5_SUFFIX)
KRB5_DIR := $(BUILDDIR)/$(KRB5)
KRB5_LICENSE := MIT
@@ -31,7 +31,6 @@ KRB5_SUBDIR := src
# keyutils is only useful for the client case
-KRB5_PATH := PATH=$(CROSS_PATH)
KRB5_CONF_ENV := \
$(CROSS_ENV) \
krb5_cv_attr_constructor_destructor=yes,yes \
@@ -52,7 +51,9 @@ KRB5_CONF_OPT := \
--enable-thread-support \
--disable-rpath \
--disable-athena \
+ --disable-nls \
--disable-audit-plugin \
+ --$(call ptx/endis, PTXCONF_ARCH_X86_64)-aesni \
--enable-kdc-lookaside-cache \
--disable-asan \
--enable-pkinit \
@@ -63,12 +64,12 @@ KRB5_CONF_OPT := \
--without-netlib \
--without-hesiod \
--without-ldap \
- --without-tcl \
--without-vague-errors \
--with-crypto-impl=openssl \
- --with-prng-alg=fortuna \
- --with-pkinit-crypto-impl=openssl \
--with-tls-impl=openssl \
+ --$(call ptx/wwo,PTXCONF_KRB5_CLIENT_TOOLS)-keyutils \
+ --with-spake-openssl \
+ --without-lmdb \
--without-libedit \
--without-readline \
--without-system-verto
@@ -87,15 +88,15 @@ $(STATEDIR)/krb5.targetinstall:
@$(call install_fixup, krb5,DESCRIPTION,missing)
@$(call install_lib, krb5, 0, 0, 0644, libgssapi_krb5)
- @$(call install_lib, krb5, 0, 0, 0644, libgssrpc)
@$(call install_lib, krb5, 0, 0, 0644, libk5crypto)
- @$(call install_lib, krb5, 0, 0, 0644, libkdb5)
@$(call install_lib, krb5, 0, 0, 0644, libkrb5)
@$(call install_lib, krb5, 0, 0, 0644, libkrb5support)
ifdef PTXCONF_KRB5_ADMIN_LIBS
+ @$(call install_lib, krb5, 0, 0, 0644, libgssrpc)
@$(call install_lib, krb5, 0, 0, 0644, libkadm5clnt_mit)
@$(call install_lib, krb5, 0, 0, 0644, libkadm5srv_mit)
+ @$(call install_lib, krb5, 0, 0, 0644, libkdb5)
endif
ifdef PTXCONF_KRB5_CLIENT_TOOLS
diff --git a/rules/lcms.make b/rules/lcms.make
index a0b4a41ab..27ae3830d 100644
--- a/rules/lcms.make
+++ b/rules/lcms.make
@@ -14,31 +14,31 @@ PACKAGES-$(PTXCONF_LCMS) += lcms
#
# Paths and names
#
-LCMS_VERSION := 2.9
-LCMS_MD5 := 8de1b7724f578d2995c8fdfa35c3ad0e
+LCMS_VERSION := 2.16
+LCMS_MD5 := f219d87c247957c97020a3859d8d6fa8
LCMS := lcms2-$(LCMS_VERSION)
LCMS_SUFFIX := tar.gz
LCMS_URL := $(call ptx/mirror, SF, lcms/$(LCMS).$(LCMS_SUFFIX))
LCMS_SOURCE := $(SRCDIR)/$(LCMS).$(LCMS_SUFFIX)
LCMS_DIR := $(BUILDDIR)/$(LCMS)
LCMS_LICENSE := MIT
-LCMS_LICENSE_FILES := file://COPYING;md5=6c786c3b7a4afbd3c990f1b81261d516
+LCMS_LICENSE_FILES := file://LICENSE;md5=e9ce323c4b71c943a785db90142b228a
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-LCMS_PATH := PATH=$(CROSS_PATH)
-LCMS_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LCMS_AUTOCONF := \
+LCMS_CONF_TOOL := autoconf
+LCMS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
+ --without-jpeg \
--without-tiff \
--without-zlib \
- --without-jpeg
+ --without-fastfloat \
+ --with-threads
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/less.make b/rules/less.make
index 1a938201a..dbbf05b16 100644
--- a/rules/less.make
+++ b/rules/less.make
@@ -14,14 +14,18 @@ PACKAGES-$(PTXCONF_LESS) += less
#
# Paths and names
#
-LESS_VERSION := 579
-LESS_MD5 := e79b780e0ae831ac3a4b9473e965c97d
+LESS_VERSION := 590
+LESS_MD5 := f029087448357812fba450091a1172ab
LESS := less-$(LESS_VERSION)
LESS_SUFFIX := tar.gz
LESS_URL := https://greenwoodsoftware.com/less/$(LESS).$(LESS_SUFFIX)
LESS_SOURCE := $(SRCDIR)/$(LESS).$(LESS_SUFFIX)
LESS_DIR := $(BUILDDIR)/$(LESS)
-LESS_LICENSE := GPL-3.0-or-later AND BSD-2-Clause
+LESS_LICENSE := GPL-3.0-or-later OR BSD-2-Clause
+LESS_LICENSE_FILES := \
+ file://README;startline=4;endline=13;md5=be18c1acf45c653f511cb4fd205021d4 \
+ file://LICENSE;md5=ba01d0cab7f62f7f2204c7780ff6a87d \
+ file://COPYING;md5=d32239bcb673463ab874e80d47fae504
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/libaio.make b/rules/libaio.make
index 4dae57ae7..8abbcae45 100644
--- a/rules/libaio.make
+++ b/rules/libaio.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_LIBAIO) += libaio
#
# Paths and names
#
-LIBAIO_VERSION := 0.3.110
-LIBAIO_MD5 := 2a35602e43778383e2f4907a4ca39ab8
-LIBAIO := libaio-$(LIBAIO_VERSION)
-LIBAIO_SUFFIX := tar.gz
-LIBAIO_URL := http://pkgs.fedoraproject.org/repo/pkgs/libaio/libaio-0.3.110.tar.gz/2a35602e43778383e2f4907a4ca39ab8/$(LIBAIO).$(LIBAIO_SUFFIX)
-LIBAIO_SOURCE := $(SRCDIR)/$(LIBAIO).$(LIBAIO_SUFFIX)
-LIBAIO_DIR := $(BUILDDIR)/$(LIBAIO)
-LIBAIO_LICENSE := LGPL-2.1-only
+LIBAIO_VERSION := 0.3.113
+LIBAIO_MD5 := 4422d9f1655f358d74ff48af2a3b9f49
+LIBAIO := libaio-$(LIBAIO_VERSION)
+LIBAIO_SUFFIX := tar.gz
+LIBAIO_URL := https://pagure.io/libaio/archive/$(LIBAIO)/libaio-$(LIBAIO).$(LIBAIO_SUFFIX)
+LIBAIO_SOURCE := $(SRCDIR)/$(LIBAIO).$(LIBAIO_SUFFIX)
+LIBAIO_DIR := $(BUILDDIR)/$(LIBAIO)
+LIBAIO_LICENSE := LGPL-2.1-only
+LIBAIO_LICENSE_FILES := \
+ file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499
# ----------------------------------------------------------------------------
# Prepare + Compile
diff --git a/rules/libarchive.in b/rules/libarchive.in
index a631a6eef..b54fd060c 100644
--- a/rules/libarchive.in
+++ b/rules/libarchive.in
@@ -4,15 +4,21 @@ menuconfig LIBARCHIVE
tristate
select GCCLIBS_GCC_S
select ZLIB
+ select OPENSSL if LIBARCHIVE_OPENSSL
select BZIP2 if LIBARCHIVE_BZIP2
select BZIP2_LIBBZ2 if LIBARCHIVE_BZIP2
select XZ if LIBARCHIVE_LZMA
+ select ZSTD if LIBARCHIVE_ZSTD
prompt "libarchive "
help
Multi-format archive and compression library.
if LIBARCHIVE
+config LIBARCHIVE_OPENSSL
+ bool
+ prompt "openssl support"
+
config LIBARCHIVE_BZIP2
bool
prompt "bzip2 support"
@@ -21,6 +27,10 @@ config LIBARCHIVE_LZMA
bool
prompt "xz support"
+config LIBARCHIVE_ZSTD
+ bool
+ prompt "zstd support"
+
config LIBARCHIVE_BSDTAR
bool
prompt "install bsdtar"
@@ -33,4 +43,8 @@ config LIBARCHIVE_BSDCPIO
bool
prompt "install bsdcpio"
+config LIBARCHIVE_BSDUNZIP
+ bool
+ prompt "install bsdunzip"
+
endif
diff --git a/rules/libarchive.make b/rules/libarchive.make
index 6e9e0ff28..267d8c0fe 100644
--- a/rules/libarchive.make
+++ b/rules/libarchive.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBARCHIVE) += libarchive
#
# Paths and names
#
-LIBARCHIVE_VERSION := 3.5.1
-LIBARCHIVE_MD5 := c96040b75a14c8ba73238c284147e87f
+LIBARCHIVE_VERSION := 3.7.3
+LIBARCHIVE_MD5 := a6bf48d0d4f4974c4eac58341ced1227
LIBARCHIVE := libarchive-$(LIBARCHIVE_VERSION)
LIBARCHIVE_SUFFIX := tar.gz
LIBARCHIVE_URL := https://www.libarchive.org/downloads/$(LIBARCHIVE).$(LIBARCHIVE_SUFFIX)
@@ -32,7 +32,8 @@ LIBARCHIVE_LICENSE_FILES := file://COPYING;md5=d499814247adaee08d88080841cb5665
LIBARCHIVE_CONF_ENV := \
$(CROSS_ENV) \
ac_cv_have_decl_EXT2_IOC_GETFLAGS=no \
- ac_cv_header_ext2fs_ext2_fs_h=no
+ ac_cv_header_ext2fs_ext2_fs_h=no \
+ ac_cv_lib_md_MD5Init=no
#
# autoconf
@@ -43,6 +44,7 @@ LIBARCHIVE_CONF_OPT := \
--$(call ptx/endis, PTXCONF_LIBARCHIVE_BSDTAR)-bsdtar \
--$(call ptx/endis, PTXCONF_LIBARCHIVE_BSDCAT)-bsdcat \
--$(call ptx/endis, PTXCONF_LIBARCHIVE_BSDCPIO)-bsdcpio \
+ --$(call ptx/endis, PTXCONF_LIBARCHIVE_BSDUNZIP)-bsdunzip \
--disable-rpath \
--enable-posix-regex-lib=libc \
--disable-xattr \
@@ -53,13 +55,13 @@ LIBARCHIVE_CONF_OPT := \
--without-libb2 \
--without-iconv \
--without-lz4 \
- --without-zstd \
+ --$(call ptx/wwo, PTXCONF_LIBARCHIVE_ZSTD)-zstd \
--$(call ptx/wwo, PTXCONF_LIBARCHIVE_LZMA)-lzma \
--without-lzo2 \
--without-cng \
--without-mbedtls \
--without-nettle \
- --without-openssl \
+ --$(call ptx/wwo, PTXCONF_LIBARCHIVE_OPENSSL)-openssl \
--without-xml2 \
--without-expat
@@ -86,6 +88,9 @@ endif
ifdef PTXCONF_LIBARCHIVE_BSDCPIO
@$(call install_copy, libarchive, 0, 0, 0755, -, /usr/bin/bsdcpio)
endif
+ifdef PTXCONF_LIBARCHIVE_BSDUNZIP
+ @$(call install_copy, libarchive, 0, 0, 0755, -, /usr/bin/bsdunzip)
+endif
@$(call install_finish, libarchive)
diff --git a/rules/libass.in b/rules/libass.in
new file mode 100644
index 000000000..727721c11
--- /dev/null
+++ b/rules/libass.in
@@ -0,0 +1,12 @@
+## SECTION=multimedia_libs
+
+config LIBASS
+ tristate
+ prompt "libass"
+ select FONTCONFIG
+ select FREETYPE
+ select FRIBIDI
+ select HARFBUZZ
+ help
+ Portable subtitle renderer for the ASS/SSA (Advanced Substation
+ Alpha/Substation Alpha) subtitle format.
diff --git a/rules/libass.make b/rules/libass.make
new file mode 100644
index 000000000..a0066e156
--- /dev/null
+++ b/rules/libass.make
@@ -0,0 +1,63 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Ladislav Michl <ladis@linux-mips.org>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBASS) += libass
+
+#
+# Paths and names
+#
+LIBASS_VERSION := 0.17.1
+LIBASS_MD5 := e920cfac44bf9e729d9a0aeed22d9ddb
+LIBASS := libass-$(LIBASS_VERSION)
+LIBASS_SUFFIX := tar.gz
+LIBASS_URL := https://github.com/libass/libass/archive/$(LIBASS_VERSION).$(LIBASS_SUFFIX)
+LIBASS_SOURCE := $(SRCDIR)/$(LIBASS).$(LIBASS_SUFFIX)
+LIBASS_DIR := $(BUILDDIR)/$(LIBASS)
+LIBASS_LICENSE := ISC
+LIBASS_LICENSE_FILES := \
+ file://COPYING;md5=a42532a0684420bdb15556c3cdd49a75
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+LIBASS_CONF_TOOL := autoconf
+LIBASS_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --disable-test \
+ --disable-profile
+
+$(STATEDIR)/libass.prepare:
+ @$(call targetinfo)
+ @$(call world/execute, LIBASS, ./autogen.sh)
+ @$(call world/prepare, LIBASS)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libass.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libass)
+ @$(call install_fixup, libass,PRIORITY,optional)
+ @$(call install_fixup, libass,SECTION,base)
+ @$(call install_fixup, libass,AUTHOR,"Ladislav Michl <ladis@linux-mips.org>")
+ @$(call install_fixup, libass,DESCRIPTION,missing)
+
+ @$(call install_lib, libass, 0, 0, 0644, libass)
+
+ @$(call install_finish, libass)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libassuan.make b/rules/libassuan.make
index b23b36e9b..225cdc499 100644
--- a/rules/libassuan.make
+++ b/rules/libassuan.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBASSUAN) += libassuan
#
# Paths and names
#
-LIBASSUAN_VERSION := 2.5.1
-LIBASSUAN_MD5 := 4354b7ae296894f232ada226a062d7d7
+LIBASSUAN_VERSION := 2.5.6
+LIBASSUAN_MD5 := 9c22e76168675ec996b9d620ffbb7b27
LIBASSUAN := libassuan-$(LIBASSUAN_VERSION)
LIBASSUAN_SUFFIX := tar.bz2
LIBASSUAN_URL := https://www.gnupg.org/ftp/gcrypt/libassuan/$(LIBASSUAN).$(LIBASSUAN_SUFFIX)
@@ -32,7 +32,8 @@ LIBASSUAN_LICENSE_FILES := \
#
# autoconf
#
-LIBASSUAN_AUTOCONF := \
+LIBASSUAN_CONF_TOOL := autoconf
+LIBASSUAN_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--enable-build-timestamp="$(PTXDIST_BUILD_TIMESTAMP)" \
--disable-doc
diff --git a/rules/libatasmart.in b/rules/libatasmart.in
new file mode 100644
index 000000000..a7e54e7bb
--- /dev/null
+++ b/rules/libatasmart.in
@@ -0,0 +1,11 @@
+## SECTION=system_libraries
+
+config LIBATASMART
+ tristate
+ select UDEV
+ select UDEV_LIBUDEV
+ prompt "libatasmart"
+ help
+ A small and lightweight parser library for ATA S.M.A.R.T. hard disk
+ health monitoring.
+
diff --git a/rules/libatasmart.make b/rules/libatasmart.make
new file mode 100644
index 000000000..1ed36128e
--- /dev/null
+++ b/rules/libatasmart.make
@@ -0,0 +1,59 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBATASMART) += libatasmart
+
+#
+# Paths and names
+#
+LIBATASMART_VERSION := 0.19
+LIBATASMART_MD5 := 9566992138a0fcf1e1ca1f84bf336a7e
+LIBATASMART := libatasmart-$(LIBATASMART_VERSION)
+LIBATASMART_SUFFIX := tar.gz
+LIBATASMART_URL := git+https://git.0pointer.net/clone/libatasmart.git;tag=v$(LIBATASMART_VERSION)
+LIBATASMART_SOURCE := $(SRCDIR)/$(LIBATASMART).$(LIBATASMART_SUFFIX)
+LIBATASMART_DIR := $(BUILDDIR)/$(LIBATASMART)
+LIBATASMART_LICENSE := LGPL-2.1-or-later
+LIBATASMART_LICENSE_FILES := \
+ file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+LIBATASMART_CONF_TOOL := autoconf
+LIBATASMART_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ $(GLOBAL_LARGE_FILE_OPTION)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libatasmart.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libatasmart)
+ @$(call install_fixup, libatasmart,PRIORITY,optional)
+ @$(call install_fixup, libatasmart,SECTION,base)
+ @$(call install_fixup, libatasmart,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, libatasmart,DESCRIPTION,missing)
+
+ @$(call install_lib, libatasmart, 0, 0, 0644, libatasmart)
+
+ @$(call install_finish, libatasmart)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libatomic_ops.in b/rules/libatomic_ops.in
new file mode 100644
index 000000000..23e79c4fd
--- /dev/null
+++ b/rules/libatomic_ops.in
@@ -0,0 +1,11 @@
+## SECTION=system_libraries
+
+config LIBATOMIC_OPS
+ tristate
+ prompt "libatomic_ops"
+ help
+ Semi-portable access to hardware-provided atomic memory update
+ operations on a number of architectures.
+ IN NEW CODE, PLEASE USE C11 OR C++14 STANDARD ATOMICS INSTEAD!
+
+# vim: ft=kconfig noet tw=72 ts=8 sw=8
diff --git a/rules/libatomic_ops.make b/rules/libatomic_ops.make
new file mode 100644
index 000000000..746ab9343
--- /dev/null
+++ b/rules/libatomic_ops.make
@@ -0,0 +1,75 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Alexander Dahl <ada@thorsis.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBATOMIC_OPS) += libatomic_ops
+
+#
+# Paths and names
+#
+LIBATOMIC_OPS_VERSION := 7.8.0
+LIBATOMIC_OPS_MD5 := a7e51e8041c3e60c298c037b2789c3fa
+LIBATOMIC_OPS := libatomic_ops-$(LIBATOMIC_OPS_VERSION)
+LIBATOMIC_OPS_SUFFIX := tar.gz
+LIBATOMIC_OPS_URL := https://github.com/ivmai/libatomic_ops/releases/download/v$(LIBATOMIC_OPS_VERSION)/$(LIBATOMIC_OPS).$(LIBATOMIC_OPS_SUFFIX)
+LIBATOMIC_OPS_SOURCE := $(SRCDIR)/$(LIBATOMIC_OPS).$(LIBATOMIC_OPS_SUFFIX)
+LIBATOMIC_OPS_DIR := $(BUILDDIR)/$(LIBATOMIC_OPS)
+# quote from LICENSE:
+#
+# > Our intent is to make it easy to use libatomic_ops, in both free and
+# > proprietary software. Hence most of code (core library) that we
+# > expect to be linked into a client application is covered by a MIT or
+# > MIT-style license.
+#
+# > However, a few library routines (the gpl extension library) are
+# > covered by the GNU General Public License. These are put into a
+# > separate library, libatomic_ops_gpl.a file.
+LIBATOMIC_OPS_LICENSE := MIT AND Boehm-GC AND GPL-2.0-or-later
+LIBATOMIC_OPS_LICENSE_FILES := \
+ file://LICENSE;md5=5700d28353dfa2f191ca9b1bd707865e \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+LIBATOMIC_OPS_CONF_TOOL := autoconf
+LIBATOMIC_OPS_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --enable-shared \
+ --disable-static \
+ --disable-werror \
+ --disable-assertions \
+ --disable-atomic-intrinsics \
+ --disable-gcov \
+ --enable-gpl \
+ --disable-docs
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libatomic_ops.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libatomic_ops)
+ @$(call install_fixup, libatomic_ops,PRIORITY,optional)
+ @$(call install_fixup, libatomic_ops,SECTION,base)
+ @$(call install_fixup, libatomic_ops,AUTHOR,"Alexander Dahl <ada@thorsis.com>")
+ @$(call install_fixup, libatomic_ops,DESCRIPTION,missing)
+
+ @$(call install_lib, libatomic_ops, 0, 0, 0644, libatomic_ops)
+ @$(call install_lib, libatomic_ops, 0, 0, 0644, libatomic_ops_gpl)
+
+ @$(call install_finish, libatomic_ops)
+
+ @$(call touch)
+
+# vim: ft=make noet tw=72 ts=8 sw=8
diff --git a/rules/libblkid.in b/rules/libblkid.in
index f4dca17de..38ebb2764 100644
--- a/rules/libblkid.in
+++ b/rules/libblkid.in
@@ -3,12 +3,12 @@
config LIBBLKID
tristate
select VIRTUAL
- select UTIL_LINUX_NG
- select UTIL_LINUX_NG_LIBBLKID
+ select UTIL_LINUX
+ select UTIL_LINUX_LIBBLKID
help
Helper to select the target packet containing a recent libblkid.so
library and its header.
-
+
The following packages provide libblkid:
- - e2fsprogs (older version)
- - utils-linux-ng (more recent version)
+ - e2fsprogs (older version)
+ - utils-linux (more recent version)
diff --git a/rules/libblockdev.in b/rules/libblockdev.in
new file mode 100644
index 000000000..324a643e3
--- /dev/null
+++ b/rules/libblockdev.in
@@ -0,0 +1,24 @@
+## SECTION=system_libraries
+
+config LIBBLOCKDEV
+ tristate
+ select CRYPTSETUP
+ select E2FSPROGS
+ select E2FSPROGS_LIBE2P
+ select E2FSPROGS_LIBEXT2FS
+ select GLIB
+ select KEYUTILS
+ select LIBBYTESIZE
+ select LIBKMOD
+ select LIBNVME
+ select UDEV
+ select UDEV_LIBUDEV
+ select UTIL_LINUX
+ select UTIL_LINUX_LIBBLKID
+ select UTIL_LINUX_LIBFDISK
+ select UTIL_LINUX_LIBMOUNT
+ select UTIL_LINUX_LIBUUID
+ prompt "libblockdev"
+ help
+ libblockdev is a C library supporting GObject introspection for
+ manipulation of block devices.
diff --git a/rules/libblockdev.make b/rules/libblockdev.make
new file mode 100644
index 000000000..540b6ccf4
--- /dev/null
+++ b/rules/libblockdev.make
@@ -0,0 +1,96 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBBLOCKDEV) += libblockdev
+
+#
+# Paths and names
+#
+LIBBLOCKDEV_VERSION := 3.1.1
+LIBBLOCKDEV_MD5 := 28d43f2d6bff85245502a8c4c478c5a3
+LIBBLOCKDEV := libblockdev-$(LIBBLOCKDEV_VERSION)
+LIBBLOCKDEV_SUFFIX := tar.gz
+LIBBLOCKDEV_URL := https://github.com/storaged-project/libblockdev/releases/download/3.1.1-1/$(LIBBLOCKDEV).$(LIBBLOCKDEV_SUFFIX)
+LIBBLOCKDEV_SOURCE := $(SRCDIR)/$(LIBBLOCKDEV).$(LIBBLOCKDEV_SUFFIX)
+LIBBLOCKDEV_DIR := $(BUILDDIR)/$(LIBBLOCKDEV)
+LIBBLOCKDEV_LICENSE := LGPL-2.1-or-later
+LIBBLOCKDEV_LICENSE_FILES := \
+ file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+LIBBLOCKDEV_CONF_ENV := \
+ $(CROSS_ENV) \
+ ac_cv_path_python3=$(PTXDIST_SYSROOT_HOST)/usr/lib/wrapper/$(SYSTEMPYTHON3)
+
+#
+# autoconf
+#
+LIBBLOCKDEV_CONF_TOOL := autoconf
+LIBBLOCKDEV_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --disable-debug \
+ --disable-introspection \
+ --disable-tests \
+ --without-s390 \
+ --with-python3 \
+ --without-gtk-doc \
+ --without-escrow \
+ --without-tools \
+ --with-nvme \
+ --without-btrfs \
+ --with-crypto \
+ --without-dm \
+ --with-loop \
+ --without-lvm \
+ --without-lvm_dbus \
+ --with-mdraid \
+ --without-mpath \
+ --with-swap \
+ --with-part \
+ --with-fs \
+ --without-nvdimm
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+LIBBLOCKDEV_MODULES := \
+ crypto \
+ fs \
+ loop \
+ mdraid \
+ nvme \
+ part \
+ swap \
+ utils
+
+$(STATEDIR)/libblockdev.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libblockdev)
+ @$(call install_fixup, libblockdev,PRIORITY,optional)
+ @$(call install_fixup, libblockdev,SECTION,base)
+ @$(call install_fixup, libblockdev,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, libblockdev,DESCRIPTION,missing)
+
+ @$(call install_lib, libblockdev, 0, 0, 0644, libblockdev)
+
+ @$(foreach module,$(LIBBLOCKDEV_MODULES), \
+ $(call install_lib, libblockdev, 0, 0, 0644, libbd_$(module))$(ptx/nl))
+
+ @$(call install_finish, libblockdev)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libbsd.in b/rules/libbsd.in
index 656375343..00af96f07 100644
--- a/rules/libbsd.in
+++ b/rules/libbsd.in
@@ -2,6 +2,7 @@
config LIBBSD
tristate
+ select LIBMD
prompt "libbsd"
help
This library provides useful functions commonly found on
diff --git a/rules/libbsd.make b/rules/libbsd.make
index 4b37ec32f..85e9718e8 100644
--- a/rules/libbsd.make
+++ b/rules/libbsd.make
@@ -14,32 +14,46 @@ PACKAGES-$(PTXCONF_LIBBSD) += libbsd
#
# Paths and names
#
-LIBBSD_VERSION := 0.8.2
-LIBBSD_MD5 := cdee252ccff978b50ad2336278c506c9
+LIBBSD_VERSION := 0.11.7
+LIBBSD_MD5 := 2c5e63b5bb7771bbe4f572c7788e0bb8
LIBBSD := libbsd-$(LIBBSD_VERSION)
LIBBSD_SUFFIX := tar.xz
LIBBSD_URL := http://libbsd.freedesktop.org/releases/$(LIBBSD).$(LIBBSD_SUFFIX)
LIBBSD_SOURCE := $(SRCDIR)/$(LIBBSD).$(LIBBSD_SUFFIX)
LIBBSD_DIR := $(BUILDDIR)/$(LIBBSD)
LIBBSD_LICENSE := BSD-4-Clause AND BSD-3-Clause AND BSD-2-Clause-NetBSD AND ISC AND MIT AND Beerware AND public_domain
+LIBBSD_LICENSE_FILES := \
+ file://COPYING;md5=75e85c5a558f86d10fbd5abc567ea5e6
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-LIBBSD_CONF_ENV = \
- $(CROSS_ENV)
#
# autoconf
#
-LIBSD_CONF_TOOL := autoconf
-LIBSD_CONF_OPT := \
+LIBBSD_CONF_TOOL := autoconf
+LIBBSD_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
$(GLOBAL_LARGE_FILE_OPTION) \
--enable-shared \
--disable-static \
--with-gnu-ld
# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libbsd.install:
+ @$(call targetinfo)
+ @$(call world/install, LIBBSD)
+# # make sure libbsd.so is a linker script before removing the absolute path
+ @grep -q '^GROUP(/usr/lib/libbsd.so' $(LIBBSD_PKGDIR)/usr/lib/libbsd.so || \
+ ptxd_bailout "$(LIBBSD_PKGDIR)/usr/lib/libbsd.so is not a linker script"
+ @sed -i 's;/usr/lib/;;' $(LIBBSD_PKGDIR)/usr/lib/libbsd.so
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
diff --git a/rules/libbson.in b/rules/libbson.in
new file mode 100644
index 000000000..58649ec64
--- /dev/null
+++ b/rules/libbson.in
@@ -0,0 +1,9 @@
+## SECTION=system_libraries
+
+config LIBBSON
+ tristate
+ select HOST_CMAKE
+ select GLIBC_RT
+ prompt "libbson"
+ help
+ Routines related to building, parsing, and iterating BSON documents
diff --git a/rules/libbson.make b/rules/libbson.make
new file mode 100644
index 000000000..bd1d65596
--- /dev/null
+++ b/rules/libbson.make
@@ -0,0 +1,89 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Roland Hieber <rhi@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBBSON) += libbson
+
+#
+# Paths and names
+#
+LIBBSON_VERSION := 1.23.4
+LIBBSON_MD5 := 28f2f253777e8d80839c41239de44188
+LIBBSON := libbson-$(LIBBSON_VERSION)
+LIBBSON_SUFFIX := tar.gz
+LIBBSON_URL := https://github.com/mongodb/mongo-c-driver/releases/download/$(LIBBSON_VERSION)/mongo-c-driver-$(LIBBSON_VERSION).$(LIBBSON_SUFFIX)
+LIBBSON_SOURCE := $(SRCDIR)/$(LIBBSON).$(LIBBSON_SUFFIX)
+LIBBSON_DIR := $(BUILDDIR)/$(LIBBSON)
+LIBBSON_LICENSE := Apache-2.0 AND MIT
+LIBBSON_LICENSE_FILES := \
+ file://src/libbson/src/bson/bson.c;endline=15;md5=24960268974cd1c54441e1999c9b5d38 \
+ file://COPYING;md5=2ee41112a44fe7014dce33e26468ba93 \
+ file://src/libbson/THIRD_PARTY_NOTICES;md5=7c6dab59ecb788b1bfe8a307e54c203a
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# cmake
+#
+LIBBSON_CONF_TOOL := cmake
+LIBBSON_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -DBSON_OUTPUT_BASENAME=bson \
+ -DENABLE_APPLE_FRAMEWORK=OFF \
+ -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=ON \
+ -DENABLE_BSON=ON \
+ -DENABLE_CLIENT_SIDE_ENCRYPTION=OFF \
+ -DENABLE_COVERAGE=OFF \
+ -DENABLE_CRYPTO_SYSTEM_PROFILE=OFF \
+ -DENABLE_DEBUG_ASSERTIONS=OFF \
+ -DENABLE_EXAMPLES=OFF \
+ -DENABLE_EXTRA_ALIGNMENT=ON \
+ -DENABLE_HTML_DOCS=OFF \
+ -DENABLE_ICU=OFF \
+ -DENABLE_MAINTAINER_FLAGS=OFF \
+ -DENABLE_MAN_PAGES=OFF \
+ -DENABLE_MONGOC=OFF \
+ -DENABLE_MONGODB_AWS_AUTH=AUTO \
+ -DENABLE_PIC=ON \
+ -DENABLE_RDTSCP=OFF \
+ -DENABLE_SASL=OFF \
+ -DENABLE_SHM_COUNTERS=ON \
+ -DENABLE_SNAPPY=OFF \
+ -DENABLE_SRV=OFF \
+ -DENABLE_SSL=OFF \
+ -DENABLE_STATIC=OFF \
+ -DENABLE_TESTS=OFF \
+ -DENABLE_TRACING=OFF \
+ -DENABLE_UNINSTALL=ON \
+ -DENABLE_ZLIB=OFF \
+ -DENABLE_ZSTD=OFF
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libbson.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libbson)
+ @$(call install_fixup, libbson,PRIORITY,optional)
+ @$(call install_fixup, libbson,SECTION,base)
+ @$(call install_fixup, libbson,AUTHOR,"Roland Hieber <rhi@pengutronix.de>")
+ @$(call install_fixup, libbson,DESCRIPTION,missing)
+
+ @$(call install_lib, libbson, 0, 0, 0755, libbson-1.0)
+
+ @$(call install_finish, libbson)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libbytesize.in b/rules/libbytesize.in
new file mode 100644
index 000000000..37b5441f9
--- /dev/null
+++ b/rules/libbytesize.in
@@ -0,0 +1,11 @@
+## SECTION=system_libraries
+
+config LIBBYTESIZE
+ tristate
+ select HOST_SYSTEM_PYTHON3
+ select LIBGMP
+ select MPFR
+ select PCRE2
+ prompt "libbytesize"
+ help
+ library for common operations with sizes in bytes
diff --git a/rules/libbytesize.make b/rules/libbytesize.make
new file mode 100644
index 000000000..8dea613fc
--- /dev/null
+++ b/rules/libbytesize.make
@@ -0,0 +1,75 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBBYTESIZE) += libbytesize
+
+#
+# Paths and names
+#
+LIBBYTESIZE_VERSION := 2.10
+LIBBYTESIZE_MD5 := 2ed2ad2e44c4017f016e1ca55be83e62
+LIBBYTESIZE := libbytesize-$(LIBBYTESIZE_VERSION)
+LIBBYTESIZE_SUFFIX := tar.gz
+LIBBYTESIZE_URL := https://github.com/storaged-project/libbytesize/releases/download/$(LIBBYTESIZE_VERSION)/$(LIBBYTESIZE).$(LIBBYTESIZE_SUFFIX)
+LIBBYTESIZE_SOURCE := $(SRCDIR)/$(LIBBYTESIZE).$(LIBBYTESIZE_SUFFIX)
+LIBBYTESIZE_DIR := $(BUILDDIR)/$(LIBBYTESIZE)
+LIBBYTESIZE_LICENSE := LGPL-2.1-or-later
+LIBBYTESIZE_LICENSE_FILES := \
+ file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+LIBBYTESIZE_CONF_ENV := \
+ $(CROSS_ENV) \
+ ac_cv_path_XGETTEXT=: \
+ ac_cv_path_MSGFMT=: \
+ ac_cv_path_MSGMERGE=: \
+ ac_cv_path_python3=$(PTXDIST_SYSROOT_HOST)/usr/lib/wrapper/$(SYSTEMPYTHON3)
+
+#
+# autoconf
+#
+LIBBYTESIZE_CONF_TOOL := autoconf
+LIBBYTESIZE_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --with-python3 \
+ --without-gtk-doc \
+ --without-tools
+
+LIBBYTESIZE_MAKE_OPT := \
+ -C src
+
+LIBBYTESIZE_INSTALL_OPT := \
+ -C src \
+ install
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libbytesize.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libbytesize)
+ @$(call install_fixup, libbytesize,PRIORITY,optional)
+ @$(call install_fixup, libbytesize,SECTION,base)
+ @$(call install_fixup, libbytesize,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, libbytesize,DESCRIPTION,missing)
+
+ @$(call install_lib, libbytesize, 0, 0, 0644, libbytesize)
+
+ @$(call install_finish, libbytesize)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libc.in b/rules/libc.in
index 1614affd9..34cf9900b 100644
--- a/rules/libc.in
+++ b/rules/libc.in
@@ -38,7 +38,7 @@ config LIBC_C
config LIBC_PTHREAD
bool
- select GLIBC_PTHREAD if LIBC_GLIBC
+ select GLIBC_PTHREAD if LIBC_GLIBC && !GLIBC_2_34
select UCLIBC_PTHREAD if LIBC_UCLIBC
config LIBC_THREAD_DB
@@ -48,23 +48,26 @@ config LIBC_THREAD_DB
config LIBC_RT
bool
- select GLIBC_RT if LIBC_GLIBC
- select GLIBC_PTHREAD if LIBC_GLIBC
+ select GLIBC_RT if LIBC_GLIBC && !GLIBC_2_34
+ select GLIBC_PTHREAD if LIBC_GLIBC && !GLIBC_2_34
select UCLIBC_RT if LIBC_UCLIBC
config LIBC_DL
bool
- select GLIBC_DL if LIBC_GLIBC
+ select GLIBC_DL if LIBC_GLIBC && !GLIBC_2_34
select UCLIBC_DL if LIBC_UCLIBC
config LIBC_CRYPT
bool
- select GLIBC_CRYPT if LIBC_GLIBC
+ select GLIBC_CRYPT if LIBC_GLIBC && !GLIBC_2_38
+ select LIBXCRYPT if LIBC_GLIBC && GLIBC_2_38
+ # use virtual here to propagate the dependency
+ select VIRTUAL if LIBC_GLIBC && GLIBC_2_38
select UCLIBC_CRYPT if LIBC_UCLIBC
config LIBC_UTIL
bool
- select GLIBC_UTIL if LIBC_GLIBC
+ select GLIBC_UTIL if LIBC_GLIBC && !GLIBC_2_34
select UCLIBC_UTIL if LIBC_UCLIBC
config LIBC_M
diff --git a/rules/libcaca.in b/rules/libcaca.in
index ff1883c32..7b8ee0da1 100644
--- a/rules/libcaca.in
+++ b/rules/libcaca.in
@@ -27,11 +27,6 @@ config LIBCACA_X11
help
X11 support
-#config LIBCACA_GL
-# bool "OpenGL graphics backend"
-# help
-# OpenGL support
-
config LIBCACA_CXX
bool "C++ bindings"
help
diff --git a/rules/libcaca.make b/rules/libcaca.make
index 1c13b83e7..5d353fc53 100644
--- a/rules/libcaca.make
+++ b/rules/libcaca.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBCACA) += libcaca
#
# Paths and names
#
-LIBCACA_VERSION := 0.99.beta16
-LIBCACA_MD5 := 3953bf4a803747b63a99f50125563151
+LIBCACA_VERSION := 0.99.beta19
+LIBCACA_MD5 := a3d4441cdef488099f4a92f4c6c1da00
LIBCACA := libcaca-$(LIBCACA_VERSION)
LIBCACA_SUFFIX := tar.gz
LIBCACA_URL := http://caca.zoy.org/files/libcaca/$(LIBCACA).$(LIBCACA_SUFFIX)
@@ -26,17 +26,16 @@ LIBCACA_DIR := $(BUILDDIR)/$(LIBCACA)
# Prepare
# ----------------------------------------------------------------------------
-LIBCACA_PATH := PATH=$(CROSS_PATH)
-LIBCACA_ENV := \
+LIBCACA_CONF_ENV := \
$(CROSS_ENV) \
CONFIG_SHELL=bash
#
# autoconf
#
-LIBCACA_AUTOCONF := \
+LIBCACA_CONF_TOOL := autoconf
+LIBCACA_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
- \
--disable-doc \
--disable-slang \
--disable-conio \
@@ -50,10 +49,9 @@ LIBCACA_AUTOCONF := \
--disable-plugins \
--disable-cppunit \
--disable-zzuf \
- \
--$(call ptx/endis, PTXCONF_LIBCACA_NCURSES)-ncurses \
--$(call ptx/endis, PTXCONF_LIBCACA_X11)-x11 \
- --$(call ptx/endis, PTXCONF_LIBCACA_GL)-gl \
+ --disable-gl \
--$(call ptx/endis, PTXCONF_LIBCACA_CXX)-cxx
# ----------------------------------------------------------------------------
diff --git a/rules/libcamera.in b/rules/libcamera.in
new file mode 100644
index 000000000..1f2d70aad
--- /dev/null
+++ b/rules/libcamera.in
@@ -0,0 +1,129 @@
+## SECTION=multimedia_libs
+
+menuconfig LIBCAMERA
+ bool
+ select HOST_MESON
+ select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_JINJA2
+ select HOST_SYSTEM_PYTHON3_PYYAML
+ select HOST_SYSTEM_PYTHON3_PLY
+ select HOST_OPENSSL
+ select GNUTLS if LIBCAMERA_IPA_MODULE_SIGN_GNUTLS
+ select OPENSSL if LIBCAMERA_IPA_MODULE_SIGN_OPENSSL
+ select UDEV_LIBUDEV
+ select LIBYAML
+ select LIBUNWIND if LIBCAMERA_BACKTRACE
+ select GSTREAMER1 if LIBCAMERA_GSTREAMER
+ select GST_PLUGINS_BASE1 if LIBCAMERA_GSTREAMER
+ select LIBEVENT if LIBCAMERA_CAM
+ select LIBDRM if LIBCAMERA_CAM_KMS_SINK
+ select QT5 if LIBCAMERA_QCAM
+ select QT5_MODULE_QTBASE if LIBCAMERA_QCAM
+ select QT5_MODULE_QTBASE_GUI if LIBCAMERA_QCAM
+ select QT5_MODULE_QTBASE_WIDGETS if LIBCAMERA_QCAM
+ prompt "libcamera "
+ help
+ A complex camera support library for Linux, Android, and ChromeOS.
+
+if LIBCAMERA
+
+config LIBCAMERA_GSTREAMER
+ bool
+ prompt "Install GStreamer plugin"
+
+config LIBCAMERA_CAM
+ bool
+ prompt "Install cam test application"
+
+if LIBCAMERA_CAM
+
+config LIBCAMERA_CAM_KMS_SINK
+ bool
+ prompt "Enable KMS sink"
+endif
+
+config LIBCAMERA_QCAM
+ bool
+ prompt "Install qcam test application"
+
+config LIBCAMERA_BACKTRACE
+ bool
+ prompt "Add support for backtraces"
+
+menu "Platforms"
+
+config LIBCAMERA_PIPELINE_IPU3
+ bool
+ prompt "ipu3 pipeline"
+
+config LIBCAMERA_IPA_IPU3
+ bool
+ default y
+ prompt "ipu3 IPA"
+ depends on LIBCAMERA_PIPELINE_IPU3
+
+config LIBCAMERA_PIPELINE_RASPBERRYPI
+ bool
+ prompt "raspberrypi pipeline"
+
+config LIBCAMERA_IPA_RASPBERRYPI
+ bool
+ default y
+ prompt "raspberrypi IPA"
+ depends on LIBCAMERA_PIPELINE_RASPBERRYPI
+
+config LIBCAMERA_PIPELINE_RKISP1
+ bool
+ prompt "rkisp1 pipeline"
+
+config LIBCAMERA_IPA_RKISP1
+ bool
+ default y
+ prompt "rkisp1 IPA"
+ depends on LIBCAMERA_PIPELINE_RKISP1
+
+config LIBCAMERA_PIPELINE_SIMPLE
+ bool
+ prompt "simple pipeline"
+
+config LIBCAMERA_PIPELINE_UVCVIDEO
+ bool
+ prompt "uvcvideo pipeline"
+
+config LIBCAMERA_PIPELINE_VIMC
+ bool
+ prompt "vimc pipeline"
+
+config LIBCAMERA_IPA_VIMC
+ bool
+ default y
+ prompt "vimc IPA"
+ depends on LIBCAMERA_PIPELINE_VIMC
+
+endmenu
+
+config LIBCAMERA_IPA_MODULE_SIGN
+ bool
+ default y
+ prompt "Enable IPA module signing"
+ help
+ Without IPA module signing, all IPA modules will be isolated in a
+ separate process. This adds an unnecessary extra overhead at runtime.
+
+if LIBCAMERA_IPA_MODULE_SIGN
+
+choice
+ prompt "Crypt provider"
+ default LIBCAMERA_IPA_MODULE_SIGN_GNUTLS
+
+config LIBCAMERA_IPA_MODULE_SIGN_GNUTLS
+ bool "gnutls"
+
+config LIBCAMERA_IPA_MODULE_SIGN_OPENSSL
+ bool "openssl (libcrypto)"
+
+endchoice
+
+endif
+
+endif
diff --git a/rules/libcamera.make b/rules/libcamera.make
new file mode 100644
index 000000000..928a95654
--- /dev/null
+++ b/rules/libcamera.make
@@ -0,0 +1,155 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Matthias Fend <matthias.fend@emfend.at>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBCAMERA) += libcamera
+
+#
+# Paths and names
+#
+LIBCAMERA_VERSION := 0.0.5
+LIBCAMERA_MD5 := cc2f5c0c051319a7e853dc6916807ce5
+LIBCAMERA := libcamera-$(LIBCAMERA_VERSION)
+LIBCAMERA_SUFFIX := tar.gz
+LIBCAMERA_URL := https://gitlab.freedesktop.org/camera/libcamera/-/archive/v$(LIBCAMERA_VERSION)/$(LIBCAMERA).$(LIBCAMERA_SUFFIX)
+LIBCAMERA_SOURCE := $(SRCDIR)/$(LIBCAMERA).$(LIBCAMERA_SUFFIX)
+LIBCAMERA_DIR := $(BUILDDIR)/$(LIBCAMERA)
+LIBCAMERA_LICENSE := Apache-2.0 AND \
+ BSD-2-Clause AND BSD-3-Clause AND \
+ CC0-1.0 AND CC-BY-SA-4.0 AND \
+ GPL-2.0-or-later AND GPL-2.0 WITH Linux-syscall-note AND \
+ (GPL-2.0-or-later WITH Linux-syscall-note OR MIT) AND LGPL-2.1-or-later
+LIBCAMERA_LICENSE_FILES := file://LICENSES/Apache-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+ file://LICENSES/BSD-2-Clause.txt;md5=63d6ee386b8aaba70b1bf15a79ca50f2 \
+ file://LICENSES/BSD-3-Clause.txt;md5=954f4d71a37096249f837652a7f586c0 \
+ file://LICENSES/CC0-1.0.txt;md5=6fd064768b8d61c31ddd0540570fbd33 \
+ file://LICENSES/CC-BY-SA-4.0.txt;md5=598a2bb2d212cf9bc240fb554efcb169 \
+ file://LICENSES/GPL-2.0-or-later.txt;md5=fed54355545ffd980b814dab4a3b312c \
+ file://LICENSES/GPL-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LICENSES/Linux-syscall-note.txt;md5=370f20aa0795bf47c9a50d8cee5a7cfb \
+ file://LICENSES/GPL-2.0+.txt;md5=fed54355545ffd980b814dab4a3b312c \
+ file://LICENSES/MIT.txt;md5=38aa75cf4c4c87f018227d5ec9638d75 \
+ file://LICENSES/LGPL-2.1-or-later.txt;md5=2a4f4fd2128ea2f65047ee63fbca9f68
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+LIBCAMERA_IPAS-y :=
+LIBCAMERA_IPAS-$(PTXCONF_LIBCAMERA_IPA_IPU3) += ipu3
+LIBCAMERA_IPASC-$(PTXCONF_LIBCAMERA_IPA_RASPBERRYPI) += raspberrypi
+LIBCAMERA_IPASM-$(PTXCONF_LIBCAMERA_IPA_RASPBERRYPI) += rpi
+LIBCAMERA_IPAS-$(PTXCONF_LIBCAMERA_IPA_RKISP1) += rkisp1
+LIBCAMERA_IPAS-$(PTXCONF_LIBCAMERA_IPA_VIMC) += vimc
+
+LIBCAMERA_IPASC-y += $(LIBCAMERA_IPAS-y)
+LIBCAMERA_IPASM-y += $(LIBCAMERA_IPAS-y)
+
+LIBCAMERA_PIPELINES-y :=
+LIBCAMERA_PIPELINES-$(PTXCONF_LIBCAMERA_PIPELINE_IPU3) += ipu3
+LIBCAMERA_PIPELINES-$(PTXCONF_LIBCAMERA_PIPELINE_RASPBERRYPI) += raspberrypi
+LIBCAMERA_PIPELINES-$(PTXCONF_LIBCAMERA_PIPELINE_RKISP1) += rkisp1
+LIBCAMERA_PIPELINES-$(PTXCONF_LIBCAMERA_PIPELINE_SIMPLE) += simple
+LIBCAMERA_PIPELINES-$(PTXCONF_LIBCAMERA_PIPELINE_UVCVIDEO) += uvcvideo
+LIBCAMERA_PIPELINES-$(PTXCONF_LIBCAMERA_PIPELINE_VIMC) += vimc
+
+LIBCAMERA_IPA_PROXIES-y :=
+LIBCAMERA_IPA_PROXIES-$(PTXCONF_LIBCAMERA_PIPELINE_IPU3) += ipu3
+LIBCAMERA_IPA_PROXIES-$(PTXCONF_LIBCAMERA_PIPELINE_RASPBERRYPI) += raspberrypi
+LIBCAMERA_IPA_PROXIES-$(PTXCONF_LIBCAMERA_PIPELINE_RKISP1) += rkisp1
+LIBCAMERA_IPA_PROXIES-$(PTXCONF_LIBCAMERA_PIPELINE_VIMC) += vimc
+
+LIBCAMERA_CONF_TOOL := meson
+LIBCAMERA_CONF_OPT := \
+ $(CROSS_MESON_USR) \
+ -Dandroid=disabled \
+ -Dcam=$(call ptx/endis,PTXCONF_LIBCAMERA_CAM)d \
+ -Ddocumentation=disabled \
+ -Dgstreamer=$(call ptx/endis,PTXCONF_LIBCAMERA_GSTREAMER)d \
+ -Dipas=$(subst $(ptx/def/space),$(ptx/def/comma),$(strip $(LIBCAMERA_IPASC-y))) \
+ -Dlc-compliance=disabled \
+ -Dpipelines=$(subst $(ptx/def/space),$(ptx/def/comma),$(strip $(LIBCAMERA_PIPELINES-y))) \
+ -Dqcam=$(call ptx/endis,PTXCONF_LIBCAMERA_QCAM)d \
+ -Dtest=false \
+ -Dtracing=disabled \
+ -Dv4l2=false \
+ -Dpycamera=disabled
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+define install_ipa_proxy
+ @$(call install_copy, libcamera, 0, 0, 0755, -, \
+ /usr/libexec/libcamera/$(strip $(1))_ipa_proxy)
+endef
+
+define install_ipa
+ @$(call install_alternative_tree, libcamera, 0, 0, \
+ /usr/share/libcamera/ipa/$(strip $(1)))
+endef
+
+define install_ipa_module_signed
+ # The IPA modules must not be stripped, otherwise the associated
+ # signatures will no longer be valid.
+ @$(call install_copy, libcamera, 0, 0, 0644, -, \
+ /usr/lib/libcamera/ipa_$(strip $(1)).so, n)
+ @$(call install_copy, libcamera, 0, 0, 0644, -, \
+ /usr/lib/libcamera/ipa_$(strip $(1)).so.sign)
+endef
+
+define install_ipa_module
+ @$(call install_copy, libcamera, 0, 0, 0644, -, \
+ /usr/lib/libcamera/ipa_$(strip $(1)).so)
+endef
+
+$(STATEDIR)/libcamera.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libcamera)
+ @$(call install_fixup, libcamera, PRIORITY, optional)
+ @$(call install_fixup, libcamera, SECTION, base)
+ @$(call install_fixup, libcamera, AUTHOR, "Matthias Fend <matthias.fend@emfend.at>")
+ @$(call install_fixup, libcamera, DESCRIPTION, missing)
+
+ @$(call install_lib, libcamera, 0, 0, 0644, libcamera)
+ @$(call install_lib, libcamera, 0, 0, 0644, libcamera-base)
+
+ @$(foreach proxy,$(LIBCAMERA_IPA_PROXIES-y), \
+ $(call install_ipa_proxy, $(proxy))$(ptx/nl))
+
+ @$(foreach ipa,$(LIBCAMERA_IPASC-y), \
+ $(call install_ipa, $(ipa))$(ptx/nl))
+
+ifdef PTXCONF_LIBCAMERA_IPA_MODULE_SIGN
+ @$(foreach ipa_module,$(LIBCAMERA_IPASM-y), \
+ $(call install_ipa_module_signed, $(ipa_module))$(ptx/nl))
+else
+ @$(foreach ipa_module,$(LIBCAMERA_IPASM-y), \
+ $(call install_ipa_module, $(ipa_module))$(ptx/nl))
+endif
+
+ifdef PTXCONF_LIBCAMERA_GSTREAMER
+ @$(call install_lib, libcamera, 0, 0, 0644, gstreamer-1.0/libgstlibcamera)
+endif
+
+ifdef PTXCONF_LIBCAMERA_CAM
+ @$(call install_copy, libcamera, 0, 0, 0755, -, /usr/bin/cam)
+endif
+
+ifdef PTXCONF_LIBCAMERA_QCAM
+ @$(call install_copy, libcamera, 0, 0, 0755, -, /usr/bin/qcam)
+endif
+
+ @$(call install_finish, libcamera)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libcap-ng.make b/rules/libcap-ng.make
index f4b605e05..f85c96eb5 100644
--- a/rules/libcap-ng.make
+++ b/rules/libcap-ng.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBCAP_NG) += libcap-ng
#
# Paths and names
#
-LIBCAP_NG_VERSION := 0.7.10
-LIBCAP_NG_MD5 := 57dc267e2949cdecb651a929f9206572
+LIBCAP_NG_VERSION := 0.8.5
+LIBCAP_NG_MD5 := 3c280d902b902f28caf3990e018fcd31
LIBCAP_NG := libcap-ng-$(LIBCAP_NG_VERSION)
LIBCAP_NG_SUFFIX := tar.gz
LIBCAP_NG_URL := http://people.redhat.com/sgrubb/libcap-ng/$(LIBCAP_NG).$(LIBCAP_NG_SUFFIX)
@@ -39,7 +39,6 @@ LIBCAP_NG_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--without-debug \
--without-warn \
- --without-python \
--without-python3
# ----------------------------------------------------------------------------
diff --git a/rules/libcap.make b/rules/libcap.make
index cdc44dfe0..548a321ec 100644
--- a/rules/libcap.make
+++ b/rules/libcap.make
@@ -14,24 +14,24 @@ PACKAGES-$(PTXCONF_LIBCAP) += libcap
#
# Paths and names
#
-LIBCAP_VERSION := 2.44
-LIBCAP_MD5 := 46ab71759e17a07efa920692ac2f714d
+LIBCAP_VERSION := 2.69
+LIBCAP_MD5 := 4667bacb837f9ac4adb4a1a0266f4b65
LIBCAP := libcap-$(LIBCAP_VERSION)
LIBCAP_SUFFIX := tar.xz
LIBCAP_URL := \
$(call ptx/mirror, KERNEL, libs/security/linux-privs/libcap2/$(LIBCAP).$(LIBCAP_SUFFIX))
LIBCAP_SOURCE := $(SRCDIR)/$(LIBCAP).$(LIBCAP_SUFFIX)
LIBCAP_DIR := $(BUILDDIR)/$(LIBCAP)
-LIBCAP_LICENSE := BSD-3-Clause AND GPL-2.0-only
-LIBCAP_LICENSE_FILES := file://License;md5=3f84fd6f29d453a56514cb7e4ead25f1
+LIBCAP_LICENSE := BSD-3-Clause OR GPL-2.0-only
+LIBCAP_LICENSE_FILES := file://License;md5=2965a646645b72ecee859b43c592dcaa
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
LIBCAP_MAKE_OPT := \
- prefix=/usr lib=$(CROSS_LIB_DIR) \
- CC=$(CROSS_CC) \
+ prefix=/usr lib=lib \
+ CROSS_COMPILE=$(COMPILER_PREFIX) \
BUILD_CC=$(HOSTCC) \
DYNAMIC=yes \
GOLANG=no \
@@ -61,7 +61,7 @@ $(STATEDIR)/libcap.targetinstall:
@$(call install_lib, libcap, 0, 0, 0644, libcap)
ifdef PTXCONF_GLOBAL_PAM
@$(call install_copy, libcap, 0, 0, 0755, -, \
- /usr/$(CROSS_LIB_DIR)/security/pam_cap.so)
+ /usr/lib/security/pam_cap.so)
endif
ifdef PTXCONF_LIBCAP_SETCAP
@$(call install_copy, libcap, 0, 0, 0755, -, /usr/sbin/setcap)
diff --git a/rules/libcdio.in b/rules/libcdio.in
new file mode 100644
index 000000000..f5765a751
--- /dev/null
+++ b/rules/libcdio.in
@@ -0,0 +1,16 @@
+## SECTION=multimedia_libs
+
+menuconfig LIBCDIO
+ tristate
+ prompt "libcdio "
+ select GCCLIBS_CXX if LIBCDIO_CXX
+ help
+ A library for CD-ROM and CD image access.
+
+if LIBCDIO
+
+config LIBCDIO_CXX
+ bool
+ prompt "install c++ bindings"
+
+endif
diff --git a/rules/libcdio.make b/rules/libcdio.make
new file mode 100644
index 000000000..493c83f09
--- /dev/null
+++ b/rules/libcdio.make
@@ -0,0 +1,68 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Ladislav Michl <ladis@linux-mips.org>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBCDIO) += libcdio
+
+#
+# Paths and names
+#
+LIBCDIO_VERSION := 2.1.0
+LIBCDIO_MD5 := aa7629e8f73662a762f64c444b901055
+LIBCDIO := libcdio-$(LIBCDIO_VERSION)
+LIBCDIO_SUFFIX := tar.bz2
+LIBCDIO_URL := $(call ptx/mirror, GNU, libcdio/$(LIBCDIO).$(LIBCDIO_SUFFIX))
+LIBCDIO_SOURCE := $(SRCDIR)/$(LIBCDIO).$(LIBCDIO_SUFFIX)
+LIBCDIO_DIR := $(BUILDDIR)/$(LIBCDIO)
+LIBCDIO_LICENSE := GPL-3.0-or-later
+LIBCDIO_LICENSE_FILES := \
+ file://COPYING;md5=d32239bcb673463ab874e80d47fae504
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+LIBCDIO_CONF_TOOL := autoconf
+LIBCDIO_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ $(GLOBAL_LARGE_FILE_OPTION) \
+ --$(call ptx/endis, PTXCONF_LIBCDIO_CXX)-cxx \
+ --disable-example-progs \
+ --without-cd-drive \
+ --without-cd-info \
+ --without-cdda-player \
+ --without-cd-read \
+ --without-iso-info \
+ --without-iso-read
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+LIBCDIO_LIBS-y := libcdio libiso9660 libudf
+LIBCDIO_LIBS-$(PTXCONF_LIBCDIO_CXX) += libcdio++ libiso9660++
+
+$(STATEDIR)/libcdio.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libcdio)
+ @$(call install_fixup, libcdio,PRIORITY,optional)
+ @$(call install_fixup, libcdio,SECTION,base)
+ @$(call install_fixup, libcdio,AUTHOR,"Ladislav Michl <ladis@linux-mips.org>")
+ @$(call install_fixup, libcdio,DESCRIPTION,missing)
+
+ @$(foreach lib, $(LIBCDIO_LIBS-y), \
+ $(call install_lib, libcdio, 0, 0, 0644, $(lib))$(ptx/nl))
+
+ @$(call install_finish, libcdio)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libcgi.in b/rules/libcgi.in
index c3c7d765a..410cb4712 100644
--- a/rules/libcgi.in
+++ b/rules/libcgi.in
@@ -3,8 +3,8 @@ config LIBCGI
tristate
prompt "libcgi"
help
- libcgi is a library for CGI programs written in C.
- It includes a lot of functions like string
- manipulation, session and cookie support, GET and
- POST methods manipulation etc. to help you to
- quickly write powerful CGI programs.
+ libcgi is a library for CGI programs written in C.
+ It includes a lot of functions like string
+ manipulation, session and cookie support, GET and
+ POST methods manipulation etc. to help you to
+ quickly write powerful CGI programs.
diff --git a/rules/libcgi.make b/rules/libcgi.make
index 1c6c5b70d..f761ebaed 100644
--- a/rules/libcgi.make
+++ b/rules/libcgi.make
@@ -28,15 +28,13 @@ LIBCGI_LICENSE := LGPL-2.1-only
# Prepare
# ----------------------------------------------------------------------------
-LIBCGI_PATH := PATH=$(CROSS_PATH)
-LIBCGI_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBCGI_AUTOCONF := $(CROSS_AUTOCONF_USR)
+LIBCGI_CONF_TOOL := autoconf
+LIBCGI_CONF_OPT := $(CROSS_AUTOCONF_USR)
-LIBCGI_MAKEVARS := $(CROSS_ENV_CC) $(CROSS_ENV_AR)
+LIBCGI_MAKE_OPT := $(CROSS_ENV_CC) $(CROSS_ENV_AR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libcgic.in b/rules/libcgic.in
deleted file mode 100644
index b23b07c18..000000000
--- a/rules/libcgic.in
+++ /dev/null
@@ -1,13 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=networking
-
-config LIBCGIC
- tristate
- prompt "libcgic"
- help
- Cgic is an ANSI-C library for the creation of CGI-based
- World Wide Web applications.
-
- STAGING: remove in ptxdist-2021.04.0
- Old, upstream seems to be gone and broken download.
diff --git a/rules/libcgic.make b/rules/libcgic.make
deleted file mode 100644
index ce42f4c75..000000000
--- a/rules/libcgic.make
+++ /dev/null
@@ -1,55 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2012 by Marc Kleine-Budde <mkl@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_LIBCGIC) += libcgic
-
-#
-# Paths and names
-#
-LIBCGIC_VERSION := 205
-LIBCGIC_MD5 := 49c2120d92c53cd673fac19b1596d31d
-LIBCGIC := cgic$(LIBCGIC_VERSION)
-LIBCGIC_SUFFIX := tar.gz
-LIBCGIC_URL := http://www.boutell.com/cgic/$(LIBCGIC).$(LIBCGIC_SUFFIX)
-LIBCGIC_SOURCE := $(SRCDIR)/$(LIBCGIC).$(LIBCGIC_SUFFIX)
-LIBCGIC_DIR := $(BUILDDIR)/$(LIBCGIC)
-LIBCGIC_LICENSE := LIBCGIC
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-LIBCGIC_CONF_TOOL := NO
-LIBCGIC_MAKE_ENV := $(CROSS_ENV)
-LIBCGIC_MAKE_OPT := PREFIX=/usr $(CROSS_ENV_AR) $(CROSS_ENV_RANLIB)
-LIBCGIC_MAKE_PAR := NO
-LIBCGIC_INSTALL_OPT := $(LIBCGIC_MAKE_OPT) install
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/libcgic.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, libcgic)
- @$(call install_fixup, libcgic,PRIORITY,optional)
- @$(call install_fixup, libcgic,SECTION,base)
- @$(call install_fixup, libcgic,AUTHOR,"Marc Kleine-Budde <mkl@pengutronix.de>")
- @$(call install_fixup, libcgic,DESCRIPTION,missing)
-
- @$(call install_lib, libcgic, 0, 0, 0644, libcgic)
-
- @$(call install_finish, libcgic)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/libcgicc.make b/rules/libcgicc.make
index 9fe351849..137862343 100644
--- a/rules/libcgicc.make
+++ b/rules/libcgicc.make
@@ -32,13 +32,11 @@ LIBCGICC_LICENSE_FILES := \
# Prepare
# ----------------------------------------------------------------------------
-LIBCGICC_PATH := PATH=$(CROSS_PATH)
-LIBCGICC_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBCGICC_AUTOCONF := $(CROSS_AUTOCONF_USR)
+LIBCGICC_CONF_TOOL := autoconf
+LIBCGICC_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libconfig.in b/rules/libconfig.in
index 5a6ec7e93..46e185174 100644
--- a/rules/libconfig.in
+++ b/rules/libconfig.in
@@ -9,6 +9,6 @@ menuconfig LIBCONFIG
if LIBCONFIG
config LIBCONFIG_CXX
- bool "build and install install libconfig++"
+ bool "build and install install libconfig++"
endif
diff --git a/rules/libconfig.make b/rules/libconfig.make
index 6fd5b0304..c9ef51fca 100644
--- a/rules/libconfig.make
+++ b/rules/libconfig.make
@@ -21,7 +21,10 @@ LIBCONFIG_SUFFIX := tar.gz
LIBCONFIG_URL := http://hyperrealm.github.io/libconfig/dist/$(LIBCONFIG).$(LIBCONFIG_SUFFIX)
LIBCONFIG_SOURCE := $(SRCDIR)/$(LIBCONFIG).$(LIBCONFIG_SUFFIX)
LIBCONFIG_DIR := $(BUILDDIR)/$(LIBCONFIG)
-LIBCONFIG_LICENSE := LGPL-2.1-only
+LIBCONFIG_LICENSE := LGPL-2.1-or-later
+LIBCONFIG_LICENSE_FILES := \
+ file://lib/libconfig.c;startline=2;endline=15;md5=6b3d8fd63724d3a674cf2857441b1e70 \
+ file://COPYING.LIB;md5=fad9b3332be894bab9bc501572864b29
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/libconfuse.make b/rules/libconfuse.make
index 041d0cdb0..bcbf31704 100644
--- a/rules/libconfuse.make
+++ b/rules/libconfuse.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_LIBCONFUSE) += libconfuse
#
# Paths and names
#
-LIBCONFUSE_VERSION := 3.0
-LIBCONFUSE_MD5 := bf03099ef213647451c70e54ad4b6e81
+LIBCONFUSE_VERSION := 3.3
+LIBCONFUSE_MD5 := a183cef2cecdd3783436ff8de500d274
LIBCONFUSE := confuse-$(LIBCONFUSE_VERSION)
-LIBCONFUSE_SUFFIX := tar.gz
-LIBCONFUSE_URL := https://github.com/martinh/libconfuse/releases/download/v$(LIBCONFUSE_VERSION)/$(LIBCONFUSE).$(LIBCONFUSE_SUFFIX)
+LIBCONFUSE_SUFFIX := tar.xz
+LIBCONFUSE_URL := https://github.com/libconfuse/libconfuse/releases/download/v$(LIBCONFUSE_VERSION)/$(LIBCONFUSE).$(LIBCONFUSE_SUFFIX)
LIBCONFUSE_SOURCE := $(SRCDIR)/$(LIBCONFUSE).$(LIBCONFUSE_SUFFIX)
LIBCONFUSE_DIR := $(BUILDDIR)/$(LIBCONFUSE)
LIBCONFUSE_LICENSE := ISC
@@ -27,21 +27,19 @@ LIBCONFUSE_LICENSE := ISC
# Prepare
# ----------------------------------------------------------------------------
-LIBCONFUSE_PATH := PATH=$(CROSS_PATH)
-LIBCONFUSE_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBCONFUSE_AUTOCONF := \
+LIBCONFUSE_CONF_TOOL := autoconf
+LIBCONFUSE_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-examples \
--disable-nls
ifdef PTXCONF_LIBCONFUSE_STATIC
-LIBCONFUSE_AUTOCONF += --enable-shared=no
+LIBCONFUSE_CONF_OPT += --enable-shared=no
else
-LIBCONFUSE_AUTOCONF += --enable-shared
+LIBCONFUSE_CONF_OPT += --enable-shared
endif
# ----------------------------------------------------------------------------
diff --git a/rules/libcroco.in b/rules/libcroco.in
deleted file mode 100644
index 4f5af324e..000000000
--- a/rules/libcroco.in
+++ /dev/null
@@ -1,50 +0,0 @@
-## SECTION=staging
-### old section:
-### SECTION=multimedia_gtk
-
-menuconfig LIBCROCO
- tristate
- prompt "libcroco "
- select LIBXML2
- select LIBXML2_SAX1
- select GLIB
- help
- a generic Cascading Style Sheet (CSS) parsing and
- manipulation toolkit
-
- Services provided by Libcroco:
-
- * A parser module that provides o A SAC like api. SAC stands
- for Simple Api for CSS. SAC is an event driven api which
- resembles SAX in the xml world.
-
- * A CSSOM like api. CSSOM stands for Cascading Style Sheet
- Object Model.
-
- The libcroco parser implements the CSS Level 2
- specification, the CSS forward compatibility rules and the
- CSS cascading rules.
-
- * A CSS2 selection engine Given an xml element node (that
- obviously comes from an xml document) and a stylesheet
- cascade, the Libcroco selection engine can evaluate the
- css selectors of the cascade and return the style
- properties associated to the xml element node.
-
- Note that the xml manipulation toolkit used by the libcroco
- selection engine at the moment is libxml2.
-
- STAGING: remove in PTXdist 2021.05.0
-
- Old version that needs to be updated, and license is unclear
- (headers say LGPL-2.1-or-later, COPYING contains LGPL-2.0)
-
-if LIBCROCO
-
-config LIBCROCO_CHECKS
- bool
- prompt "Enable runtime checks"
- help
- FIXME
-
-endif
diff --git a/rules/libcroco.make b/rules/libcroco.make
deleted file mode 100644
index 74d9b31e5..000000000
--- a/rules/libcroco.make
+++ /dev/null
@@ -1,66 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2009 by Erwin Rol
-# 2010 by Marc Kleine-Budde <mkl@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_LIBCROCO) += libcroco
-
-#
-# Paths and names
-#
-LIBCROCO_VERSION := 0.6.2
-LIBCROCO_MD5 := 1429c597aa4b75fc610ab3a542c99209
-LIBCROCO := libcroco-$(LIBCROCO_VERSION)
-LIBCROCO_SUFFIX := tar.bz2
-LIBCROCO_URL := $(call ptx/mirror, GNOME, libcroco/$(basename $(LIBCROCO_VERSION))/$(LIBCROCO).$(LIBCROCO_SUFFIX))
-LIBCROCO_SOURCE := $(SRCDIR)/$(LIBCROCO).$(LIBCROCO_SUFFIX)
-LIBCROCO_DIR := $(BUILDDIR)/$(LIBCROCO)
-LIBCROCO_LICENSE := LGPL-2.1-only
-LIBCROCO_LICENSE_FILES := \
- file://src/cr-parser.c;md5=7f381b6ab4b4e203dcf9dc22c3f686e3;startline=7;endline=24 \
- file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-LIBCROCO_AUTOCONF := \
- $(CROSS_AUTOCONF_USR) \
- --disable-gtk-doc
-
-ifdef PTXCONF_LIBCROCO_CHECKS
-LIBCROCO_AUTOCONF += --enable-checks=yes
-else
-LIBCROCO_AUTOCONF += --enable-checks=no
-endif
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/libcroco.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, libcroco)
- @$(call install_fixup, libcroco,PRIORITY,optional)
- @$(call install_fixup, libcroco,SECTION,base)
- @$(call install_fixup, libcroco,AUTHOR,"Erwin Rol")
- @$(call install_fixup, libcroco,DESCRIPTION,missing)
-
- @$(call install_lib, libcroco, 0, 0, 0644, libcroco-0.6)
-
- @$(call install_finish, libcroco)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/libcurl.in b/rules/libcurl.in
index 632ed48e4..c717668bc 100644
--- a/rules/libcurl.in
+++ b/rules/libcurl.in
@@ -11,51 +11,55 @@ menuconfig LIBCURL
select CA_CERTIFICATES if LIBCURL_SSL_CA_CERTIFICATES && RUNTIME
select C_ARES if LIBCURL_C_ARES
help
- curl is a command line tool for transferring files with URL syntax, supporting
- FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS and FILE.
- curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading,
- HTTP form based upload, proxies, cookies, user+password authentication
- (Basic, Digest, NTLM, Negotiate, kerberos...), file transfer resume,
- proxy tunneling and a busload of other useful tricks.
+ curl is a command line tool for transferring files with URL syntax,
+ supporting FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT,
+ LDAP, LDAPS and FILE.
+ curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading,
+ HTTP form based upload, proxies, cookies, user+password authentication
+ (Basic, Digest, NTLM, Negotiate, kerberos...), file transfer resume,
+ proxy tunneling and a busload of other useful tricks.
if LIBCURL
config LIBCURL_CURL
- bool "install curl program"
+ bool "install curl program"
config LIBCURL_C_ARES
bool "enable c-ares for DNS lookups"
config LIBCURL_HTTP
- bool "http"
- default y
+ bool "http"
+ default y
config LIBCURL_COOKIES
- bool "cookies support"
- depends on LIBCURL_HTTP
+ bool "cookies support"
+ depends on LIBCURL_HTTP
config LIBCURL_FTP
- bool "ftp"
- default y
+ bool "ftp"
+ default y
config LIBCURL_TFTP
- bool "tftp"
+ bool "tftp"
config LIBCURL_FILE
- bool "file"
+ bool "file"
config LIBCURL_SMTP
- bool "smtp"
- help
- enable smtp support for sending emails
+ bool "smtp"
+ help
+ enable smtp support for sending emails
config LIBCURL_VERBOSE
- bool "verbose messages"
- help
- enable verbose messages, helpful for error indication
+ bool "verbose messages"
+ help
+ enable verbose messages, helpful for error indication
config LIBCURL_SSL
- bool "ssl"
+ bool "ssl"
+
+config LIBCURL_RTSP
+ bool "rtsp"
if LIBCURL_SSL
@@ -72,7 +76,7 @@ endchoice
choice
prompt "Central CA certificate storage"
-
+
config LIBCURL_SSL_NOCA
bool "No CA storage "
@@ -110,9 +114,12 @@ config LIBCURL_SSL_CABUNDLE_PATH
default "no"
config LIBCURL_CRYPTO_AUTH
- bool "cryptographic authentication"
+ bool "cryptographic authentication"
config LIBCURL_LIBSSH2
- bool "scp/sftp (via libssh2)"
+ bool "scp/sftp (via libssh2)"
+
+config LIBCURL_MIME
+ bool "MIME support"
endif
diff --git a/rules/libcurl.make b/rules/libcurl.make
index 2e68e51ea..455695e25 100644
--- a/rules/libcurl.make
+++ b/rules/libcurl.make
@@ -15,14 +15,15 @@ PACKAGES-$(PTXCONF_LIBCURL) += libcurl
#
# Paths and names
#
-LIBCURL_VERSION := 7.77.0
-LIBCURL_MD5 := 045d28029679dabb6b20a814934671ad
+LIBCURL_VERSION := 8.7.1
+LIBCURL_MD5 := f4f37253c5f1ad9ee85fa6215fdfeb42
LIBCURL := curl-$(LIBCURL_VERSION)
-LIBCURL_SUFFIX := tar.bz2
-LIBCURL_URL := https://curl.haxx.se/download/$(LIBCURL).$(LIBCURL_SUFFIX)
+LIBCURL_SUFFIX := tar.xz
+LIBCURL_URL := https://curl.se/download/$(LIBCURL).$(LIBCURL_SUFFIX)
LIBCURL_SOURCE := $(SRCDIR)/$(LIBCURL).$(LIBCURL_SUFFIX)
LIBCURL_DIR := $(BUILDDIR)/$(LIBCURL)
-LIBCURL_LICENSE := MIT
+LIBCURL_LICENSE := curl
+LIBCURL_LICENSE_FILES := file://COPYING;md5=eed2e5088e1ac619c9a1c747da291d75
# ----------------------------------------------------------------------------
# Prepare
@@ -40,7 +41,6 @@ LIBCURL_CONF_OPT := \
--disable-werror \
--disable-curldebug \
--enable-symbol-hiding \
- --enable-hidden-symbols \
--$(call ptx/endis, PTXCONF_LIBCURL_C_ARES)-ares \
--enable-rt \
--disable-ech \
@@ -51,7 +51,7 @@ LIBCURL_CONF_OPT := \
--$(call ptx/endis, PTXCONF_LIBCURL_FILE)-file \
--disable-ldap \
--disable-ldaps \
- --disable-rtsp \
+ --$(call ptx/endis, PTXCONF_LIBCURL_RTSP)-rtsp \
--enable-proxy \
--disable-dict \
--disable-telnet \
@@ -62,6 +62,7 @@ LIBCURL_CONF_OPT := \
--$(call ptx/endis, PTXCONF_LIBCURL_SMTP)-smtp \
--disable-gopher \
--disable-mqtt \
+ --disable-docs \
--disable-manual \
--enable-libcurl-option \
--disable-libgcc \
@@ -72,7 +73,13 @@ LIBCURL_CONF_OPT := \
--enable-pthreads \
--$(call ptx/endis, PTXCONF_LIBCURL_VERBOSE)-verbose \
--disable-sspi \
- --$(call ptx/endis, PTXCONF_LIBCURL_CRYPTO_AUTH)-crypto-auth \
+ --enable-basic-auth \
+ --$(call ptx/endis, PTXCONF_LIBCURL_CRYPTO_AUTH)-bearer-auth \
+ --$(call ptx/endis, PTXCONF_LIBCURL_CRYPTO_AUTH)-digest-auth \
+ --$(call ptx/endis, PTXCONF_LIBCURL_CRYPTO_AUTH)-kerberos-auth \
+ --$(call ptx/endis, PTXCONF_LIBCURL_CRYPTO_AUTH)-negotiate-auth \
+ --$(call ptx/endis, PTXCONF_LIBCURL_CRYPTO_AUTH)-aws \
+ --$(call ptx/endis, PTXCONF_LIBCURL_CRYPTO_AUTH)-ntlm \
--disable-ntlm-wb \
--enable-tls-srp \
--enable-unix-sockets \
@@ -80,25 +87,29 @@ LIBCURL_CONF_OPT := \
--enable-socketpair \
--$(call ptx/endis, PTXCONF_LIBCURL_HTTP)-http-auth \
--disable-doh \
- --disable-mime \
+ --$(call ptx/endis, PTXCONF_LIBCURL_MIME)-mime \
+ --enable-bindlocal \
+ --$(call ptx/endis, PTXCONF_LIBCURL_MIME)-form-api \
--enable-dateparse \
--enable-netrc \
--enable-progress-meter \
--disable-dnsshuffle \
- --enable-get-easy-option \
+ --enable-get-easy-options \
--disable-alt-svc \
+ --disable-headers-api \
--enable-hsts \
+ --disable-websockets \
--without-schannel \
--without-secure-transport \
--without-amissl \
+ --$(call ptx/wwo,PTXCONF_LIBCURL_SSL)-ssl \
--with-openssl=$(call ptx/ifdef, PTXCONF_LIBCURL_SSL_OPENSSL,$(SYSROOT)/usr,no) \
--with-gnutls=$(call ptx/ifdef, PTXCONF_LIBCURL_SSL_GNUTLS,$(SYSROOT)/usr,no) \
--without-mbedtls \
--without-wolfssl \
- --without-mesalink \
--without-bearssl \
--without-rustls \
- --without-nss \
+ --without-hyper \
--with-zlib=$(SYSROOT) \
--without-brotli \
--without-zstd \
@@ -110,7 +121,6 @@ LIBCURL_CONF_OPT := \
--without-ca-fallback \
--without-libpsl \
--without-libgsasl \
- --without-libmetalink \
--$(call ptx/wwo, PTXCONF_LIBCURL_LIBSSH2)-libssh2 \
--without-libssh \
--without-wolfssh \
@@ -119,9 +129,10 @@ LIBCURL_CONF_OPT := \
--without-libidn2 \
--without-nghttp2 \
--without-ngtcp2 \
+ --without-openssl-quic \
--without-nghttp3 \
--without-quiche \
- --without-hyper \
+ --without-msh3 \
--without-zsh-functions-dir \
--without-fish-functions-dir
diff --git a/rules/libdaemon.make b/rules/libdaemon.make
index 43ba772b7..8e81b3555 100644
--- a/rules/libdaemon.make
+++ b/rules/libdaemon.make
@@ -28,13 +28,11 @@ LIBDAEMON_LICENSE := LGPL-2.1-or-later
# Prepare
# ----------------------------------------------------------------------------
-LIBDAEMON_PATH := PATH=$(CROSS_PATH)
-LIBDAEMON_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBDAEMON_AUTOCONF := \
+LIBDAEMON_CONF_TOOL := autoconf
+LIBDAEMON_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-lynx
diff --git a/rules/libdisplay-info.in b/rules/libdisplay-info.in
new file mode 100644
index 000000000..d3a6d0cba
--- /dev/null
+++ b/rules/libdisplay-info.in
@@ -0,0 +1,9 @@
+## SECTION=multimedia_libs
+
+menuconfig LIBDISPLAY_INFO
+ tristate
+ prompt "libdisplay-info "
+ select HOST_MESON
+ select HWDATA if BUILDTIME
+ help
+ EDID and DisplayID library
diff --git a/rules/libdisplay-info.make b/rules/libdisplay-info.make
new file mode 100644
index 000000000..b66867bf5
--- /dev/null
+++ b/rules/libdisplay-info.make
@@ -0,0 +1,58 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Philipp Zabel <p.zabel@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBDISPLAY_INFO) += libdisplay-info
+
+#
+# Paths and names
+#
+LIBDISPLAY_INFO_VERSION := 0.1.1
+LIBDISPLAY_INFO_MD5 := 56e8d2213d2aefd7defaaddfd9cb80e1
+LIBDISPLAY_INFO := libdisplay-info-$(LIBDISPLAY_INFO_VERSION)
+LIBDISPLAY_INFO_SUFFIX := tar.xz
+LIBDISPLAY_INFO_URL := https://gitlab.freedesktop.org/emersion/libdisplay-info/-/releases/$(LIBDISPLAY_INFO_VERSION)/downloads/$(LIBDISPLAY_INFO).$(LIBDISPLAY_INFO_SUFFIX)
+LIBDISPLAY_INFO_SOURCE := $(SRCDIR)/$(LIBDISPLAY_INFO).$(LIBDISPLAY_INFO_SUFFIX)
+LIBDISPLAY_INFO_DIR := $(BUILDDIR)/$(LIBDISPLAY_INFO)
+LIBDISPLAY_INFO_LICENSE := MIT
+LIBDISPLAY_INFO_LICENSE_FILES := \
+ file://LICENSE;md5=e4426409957080ee0352128354cea2de
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# meson
+#
+LIBDISPLAY_INFO_CONF_TOOL := meson
+LIBDISPLAY_INFO_CONF_OPT := \
+ $(CROSS_MESON_USR)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libdisplay-info.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libdisplay-info)
+ @$(call install_fixup, libdisplay-info,PRIORITY,optional)
+ @$(call install_fixup, libdisplay-info,SECTION,base)
+ @$(call install_fixup, libdisplay-info,AUTHOR,"Philipp Zabel <p.zabel@pengutronix.de>")
+ @$(call install_fixup, libdisplay-info,DESCRIPTION,missing)
+
+ @$(call install_lib, libdisplay-info, 0, 0, 0644, libdisplay-info)
+
+ @$(call install_finish, libdisplay-info)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libdmtx.in b/rules/libdmtx.in
index 085d7c3ea..2282dc752 100644
--- a/rules/libdmtx.in
+++ b/rules/libdmtx.in
@@ -3,7 +3,6 @@
menuconfig LIBDMTX
tristate
prompt "libdmtx "
- select PYTHON if LIBDMTX_PYTHON
help
libdmtx is open source software for reading and writing Data
Matrix barcodes on Linux, Unix, OS X, Windows, and mobile
@@ -29,10 +28,5 @@ config LIBDMTX_DMTXWRITE
depends on BROKEN
prompt "install dmtxwrite"
-config LIBDMTX_PYTHON
- bool
- depends on STAGING
- prompt "enable python bindings"
-
endif
diff --git a/rules/libdmtx.make b/rules/libdmtx.make
index 1d818da74..cc81b0d46 100644
--- a/rules/libdmtx.make
+++ b/rules/libdmtx.make
@@ -27,10 +27,6 @@ LIBDMTX_LICENSE := unknown
# Prepare
# ----------------------------------------------------------------------------
-LIBDMTX_CONF_ENV = \
- $(CROSS_ENV) \
- PYTHON=$(CROSS_PYTHON)
-
#
# autoconf
#
@@ -46,7 +42,7 @@ LIBDMTX_CONF_OPT := \
--$(call ptx/endis, PTXCONF_LIBDMTX_DMTXQUERY)-dmtxquery \
--$(call ptx/endis, PTXCONF_LIBDMTX_DMTXREAD)-dmtxread \
--$(call ptx/endis, PTXCONF_LIBDMTX_DMTXWRITE)-dmtxwrite \
- --$(call ptx/endis, PTXCONF_LIBDMTX_PYTHON)-python
+ --disable-python
# ----------------------------------------------------------------------------
@@ -74,13 +70,6 @@ ifdef PTXCONF_LIBDMTX_DMTXWRITE
@$(call install_copy, libdmtx, 0, 0, 0755, -, /usr/bin/dmtxwrite)
endif
-ifdef PTXCONF_LIBDMTX_PYTHON
- @$(call install_copy, libdmtx, 0, 0, 0644, -, \
- /usr/lib/python$(PYTHON_MAJORMINOR)/site-packages/pydmtx.pyc)
- @$(call install_copy, libdmtx, 0, 0, 0644, -, \
- /usr/lib/python$(PYTHON_MAJORMINOR)/site-packages/_pydmtx.so)
-endif
-
@$(call install_finish, libdmtx)
@$(call touch)
diff --git a/rules/libdrm.in b/rules/libdrm.in
index 537397c5b..1b43551f7 100644
--- a/rules/libdrm.in
+++ b/rules/libdrm.in
@@ -9,58 +9,54 @@ menuconfig LIBDRM
select HOST_XORG_UTIL_MACROS
select LIBPCIACCESS if LIBDRM_INTEL
help
- This library provides an user-level interface to the DRM
+ This library provides a user-level interface to the DRM
device. It is needed for x.org.
if LIBDRM
-config LIBDRM_LIBKMS
- bool
- prompt "build libkms"
-
config LIBDRM_INTEL
bool
- prompt "intel KMS support"
+ prompt "intel support"
config LIBDRM_RADEON
bool
- prompt "radeon KMS support"
+ prompt "radeon support"
config LIBDRM_AMDGPU
bool
- prompt "amdgpu KMS support"
+ prompt "amdgpu support"
config LIBDRM_NOUVEAU
bool
- prompt "nouveau KMS support"
+ prompt "nouveau support"
config LIBDRM_VMWGFX
bool
- prompt "vmwgfx KMS support"
+ prompt "vmwgfx support"
config LIBDRM_OMAP
bool
- prompt "omap KMS support"
+ prompt "omap support"
config LIBDRM_EXYNOS
bool
- prompt "exynos KMS support"
+ prompt "exynos support"
config LIBDRM_FREEDRENO
bool
- prompt "freedreno KMS support"
+ prompt "freedreno support"
config LIBDRM_TEGRA
bool
- prompt "tegra KMS support"
+ prompt "tegra support"
config LIBDRM_VC4
bool
- prompt "vc4 KMS support"
+ prompt "vc4 support"
config LIBDRM_ETNAVIV
bool
- prompt "etnaviv KMS support"
+ prompt "etnaviv support"
config LIBDRM_TESTS
bool
diff --git a/rules/libdrm.make b/rules/libdrm.make
index a70312d6f..dcc82973d 100644
--- a/rules/libdrm.make
+++ b/rules/libdrm.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_LIBDRM) += libdrm
#
# Paths and names
#
-LIBDRM_VERSION := 2.4.105
-LIBDRM_MD5 := 773fd2a78a93a83c477e588d85319b08
+LIBDRM_VERSION := 2.4.120
+LIBDRM_MD5 := f8521de37ccbd15987b843a83fabd567
LIBDRM := libdrm-$(LIBDRM_VERSION)
LIBDRM_SUFFIX := tar.xz
LIBDRM_URL := http://dri.freedesktop.org/libdrm/$(LIBDRM).$(LIBDRM_SUFFIX)
@@ -39,7 +39,6 @@ LIBDRM_BACKENDS-$(PTXCONF_LIBDRM_RADEON) += radeon
LIBDRM_BACKENDS-$(PTXCONF_LIBDRM_AMDGPU) += amdgpu
LIBDRM_BACKENDS-$(PTXCONF_LIBDRM_NOUVEAU) += nouveau
LIBDRM_BACKENDS-$(PTXCONF_LIBDRM_FREEDRENO) += freedreno
-LIBDRM_BACKENDS- += freedreno-kgsl
LIBDRM_BACKENDSC-$(PTXCONF_LIBDRM_VMWGFX) += vmwgfx
LIBDRM_BACKENDS-$(PTXCONF_LIBDRM_OMAP) += omap
LIBDRM_BACKENDS-$(PTXCONF_LIBDRM_EXYNOS) += exynos
@@ -58,13 +57,14 @@ LIBDRM_BACKENDSL-y += $(LIBDRM_BACKENDS-y)
LIBDRM_CONF_TOOL := meson
LIBDRM_CONF_OPT := \
$(CROSS_MESON_USR) \
- -Dlibkms=$(call ptx/truefalse, PTXCONF_LIBDRM_LIBKMS) \
- $(patsubst %,-D%=true,$(LIBDRM_BACKENDSC-y)) \
- $(patsubst %,-D%=false,$(LIBDRM_BACKENDSC-)) \
- -Dcairo-tests=false \
- -Dman-pages=false \
- -Dvalgrind=false \
+ $(patsubst %,-D%=enabled,$(LIBDRM_BACKENDSC-y)) \
+ $(patsubst %,-D%=disabled,$(LIBDRM_BACKENDSC-)) \
+ -Dcairo-tests=disabled \
+ -Dfreedreno-kgsl=false \
+ -Dman-pages=disabled \
+ -Dvalgrind=disabled \
-Dinstall-test-programs=$(call ptx/truefalse, PTXCONF_LIBDRM_TESTS) \
+ -Dtests=true \
-Dudev=true
@@ -83,17 +83,12 @@ $(STATEDIR)/libdrm.targetinstall:
@$(call install_lib, libdrm, 0, 0, 0644, libdrm)
-ifdef PTXCONF_LIBDRM_LIBKMS
- @$(call install_lib, libdrm, 0, 0, 0644, libkms)
-endif
@$(foreach backend,$(LIBDRM_BACKENDSL-y), \
- $(call install_lib, libdrm, 0, 0, 0644, libdrm_$(backend));)
+ $(call install_lib, libdrm, 0, 0, 0644, \
+ libdrm_$(backend))$(ptx/nl))
ifdef PTXCONF_LIBDRM_TESTS
-ifdef PTXCONF_LIBDRM_LIBKMS
- @$(call install_copy, libdrm, 0, 0, 0755, -, /usr/bin/kmstest)
@$(call install_copy, libdrm, 0, 0, 0755, -, /usr/bin/modetest)
-endif
@$(call install_copy, libdrm, 0, 0, 0755, -, /usr/bin/modeprint)
@$(call install_copy, libdrm, 0, 0, 0755, -, /usr/bin/vbltest)
ifdef PTXCONF_LIBDRM_ETNAVIV
@@ -101,6 +96,9 @@ ifdef PTXCONF_LIBDRM_ETNAVIV
@$(call install_copy, libdrm, 0, 0, 0755, -, /usr/bin/etnaviv_cmd_stream_test)
@$(call install_copy, libdrm, 0, 0, 0755, -, /usr/bin/etnaviv_bo_cache_test)
endif
+ifdef PTXCONF_LIBDRM_AMDGPU
+ @$(call install_copy, libdrm, 0, 0, 0755, -, /usr/bin/amdgpu_stress)
+endif
endif
ifdef PTXCONF_LIBDRM_AMDGPU
@$(call install_copy, libdrm, 0, 0, 0644, -, /usr/share/libdrm/amdgpu.ids)
diff --git a/rules/libdvdcss.in b/rules/libdvdcss.in
new file mode 100644
index 000000000..1dc51535e
--- /dev/null
+++ b/rules/libdvdcss.in
@@ -0,0 +1,8 @@
+## SECTION=multimedia_libs
+
+config LIBDVDCSS
+ tristate
+ prompt "libdvdcss"
+ help
+ A simple library designed for accessing DVDs like a block device
+ without having to bother about the decryption.
diff --git a/rules/libdvdcss.make b/rules/libdvdcss.make
new file mode 100644
index 000000000..930723879
--- /dev/null
+++ b/rules/libdvdcss.make
@@ -0,0 +1,60 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Ladislav Michl <ladis@linux-mips.org>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBDVDCSS) += libdvdcss
+
+#
+# Paths and names
+#
+LIBDVDCSS_VERSION := 1.4.3
+LIBDVDCSS_MD5 := e98239a88af9b2204f9b9d987c2bc71a
+LIBDVDCSS := libdvdcss-$(LIBDVDCSS_VERSION)
+LIBDVDCSS_SUFFIX := tar.bz2
+LIBDVDCSS_URL := https://download.videolan.org/pub/libdvdcss/$(LIBDVDCSS_VERSION)/$(LIBDVDCSS).$(LIBDVDCSS_SUFFIX)
+LIBDVDCSS_SOURCE := $(SRCDIR)/$(LIBDVDCSS).$(LIBDVDCSS_SUFFIX)
+LIBDVDCSS_DIR := $(BUILDDIR)/$(LIBDVDCSS)
+LIBDVDCSS_LICENSE := GPL-2.0-or-later
+LIBDVDCSS_LICENSE_FILES := \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+LIBDVDCSS_CONF_TOOL := autoconf
+LIBDVDCSS_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ $(GLOBAL_LARGE_FILE_OPTION) \
+ --disable-doc
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libdvdcss.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libdvdcss)
+ @$(call install_fixup, libdvdcss,PRIORITY,optional)
+ @$(call install_fixup, libdvdcss,SECTION,base)
+ @$(call install_fixup, libdvdcss,AUTHOR,"Ladislav Michl <ladis@linux-mips.org>")
+ @$(call install_fixup, libdvdcss,DESCRIPTION,missing)
+
+ @$(call install_lib, libdvdcss, 0, 0, 0644, libdvdcss)
+
+ @$(call install_finish, libdvdcss)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libdvdnav.in b/rules/libdvdnav.in
new file mode 100644
index 000000000..77e73c188
--- /dev/null
+++ b/rules/libdvdnav.in
@@ -0,0 +1,10 @@
+## SECTION=multimedia_libs
+
+config LIBDVDNAV
+ tristate
+ prompt "libdvdnav"
+ select LIBDVDREAD
+ help
+ libdvdnav is a library that allows easy use of sophisticated
+ DVD navigation features such as DVD menus, multiangle playback
+ and even interactive DVD games.
diff --git a/rules/libdvdnav.make b/rules/libdvdnav.make
new file mode 100644
index 000000000..4efbb1691
--- /dev/null
+++ b/rules/libdvdnav.make
@@ -0,0 +1,59 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Ladislav Michl <ladis@linux-mips.org>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBDVDNAV) += libdvdnav
+
+#
+# Paths and names
+#
+LIBDVDNAV_VERSION := 6.1.1
+LIBDVDNAV_MD5 := 46c46cb0294fbd1fcb8a0181818dad15
+LIBDVDNAV := libdvdnav-$(LIBDVDNAV_VERSION)
+LIBDVDNAV_SUFFIX := tar.bz2
+LIBDVDNAV_URL := https://download.videolan.org/pub/videolan/libdvdnav/$(LIBDVDNAV_VERSION)/$(LIBDVDNAV).$(LIBDVDNAV_SUFFIX)
+LIBDVDNAV_SOURCE := $(SRCDIR)/$(LIBDVDNAV).$(LIBDVDNAV_SUFFIX)
+LIBDVDNAV_DIR := $(BUILDDIR)/$(LIBDVDNAV)
+LIBDVDNAV_LICENSE := GPL-2.0-or-later
+LIBDVDNAV_LICENSE_FILES := \
+ file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+LIBDVDNAV_CONF_TOOL := autoconf
+LIBDVDNAV_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ $(GLOBAL_LARGE_FILE_OPTION)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libdvdnav.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libdvdnav)
+ @$(call install_fixup, libdvdnav,PRIORITY,optional)
+ @$(call install_fixup, libdvdnav,SECTION,base)
+ @$(call install_fixup, libdvdnav,AUTHOR,"Ladislav Michl <ladis@linux-mips.org>")
+ @$(call install_fixup, libdvdnav,DESCRIPTION,missing)
+
+ @$(call install_lib, libdvdnav, 0, 0, 0644, libdvdnav)
+
+ @$(call install_finish, libdvdnav)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libdvdread.in b/rules/libdvdread.in
new file mode 100644
index 000000000..0106fd70b
--- /dev/null
+++ b/rules/libdvdread.in
@@ -0,0 +1,7 @@
+## SECTION=multimedia_libs
+
+config LIBDVDREAD
+ tristate
+ prompt "libdvdread"
+ help
+ libdvdread is a library for simpler navigation (DVDs without menus).
diff --git a/rules/libdvdread.make b/rules/libdvdread.make
new file mode 100644
index 000000000..25c607c54
--- /dev/null
+++ b/rules/libdvdread.make
@@ -0,0 +1,60 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Ladislav Michl <ladis@linux-mips.org>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBDVDREAD) += libdvdread
+
+#
+# Paths and names
+#
+LIBDVDREAD_VERSION := 6.1.3
+LIBDVDREAD_MD5 := 3c58d1624a71a16ff40f55dbaca82523
+LIBDVDREAD := libdvdread-$(LIBDVDREAD_VERSION)
+LIBDVDREAD_SUFFIX := tar.bz2
+LIBDVDREAD_URL := https://download.videolan.org/pub/videolan/libdvdread/$(LIBDVDREAD_VERSION)/$(LIBDVDREAD).$(LIBDVDREAD_SUFFIX)
+LIBDVDREAD_SOURCE := $(SRCDIR)/$(LIBDVDREAD).$(LIBDVDREAD_SUFFIX)
+LIBDVDREAD_DIR := $(BUILDDIR)/$(LIBDVDREAD)
+LIBDVDREAD_LICENSE := GPL-2.0-or-later
+LIBDVDREAD_LICENSE_FILES := \
+ file://COPYING;md5=64e753fa7d1ca31632bc383da3b57c27
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+LIBDVDREAD_CONF_TOOL := autoconf
+LIBDVDREAD_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ $(GLOBAL_LARGE_FILE_OPTION) \
+ --disable-apidoc
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libdvdread.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libdvdread)
+ @$(call install_fixup, libdvdread,PRIORITY,optional)
+ @$(call install_fixup, libdvdread,SECTION,base)
+ @$(call install_fixup, libdvdread,AUTHOR,"Ladislav Michl <ladis@linux-mips.org>")
+ @$(call install_fixup, libdvdread,DESCRIPTION,missing)
+
+ @$(call install_lib, libdvdread, 0, 0, 0644, libdvdread)
+
+ @$(call install_finish, libdvdread)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libelf.in b/rules/libelf.in
index 42fc5328f..0b4da9e68 100644
--- a/rules/libelf.in
+++ b/rules/libelf.in
@@ -4,6 +4,7 @@ menuconfig LIBELF
tristate
prompt "libelf "
select ZLIB
+ select XZ if LIBELF_XZ
help
The libelf1 package provides a shared library which allows reading
and writing ELF files on a high level. Third party programs depend
@@ -11,6 +12,10 @@ menuconfig LIBELF
if LIBELF
+config LIBELF_XZ
+ bool
+ prompt "xz compression support"
+
config LIBELF_LIBDW
bool
prompt "libdw"
diff --git a/rules/libelf.make b/rules/libelf.make
index 21cbf3b32..58708512a 100644
--- a/rules/libelf.make
+++ b/rules/libelf.make
@@ -15,14 +15,20 @@ PACKAGES-$(PTXCONF_LIBELF) += libelf
#
# Paths and names
#
-LIBELF_VERSION := 0.180
-LIBELF_MD5 := 23feddb1b3859b03ffdbaf53ba6bd09b
+LIBELF_VERSION := 0.190
+LIBELF_MD5 := 79ad698e61a052bea79e77df6a08bc4b
LIBELF := elfutils-$(LIBELF_VERSION)
LIBELF_SUFFIX := tar.bz2
LIBELF_URL := https://sourceware.org/elfutils/ftp/$(LIBELF_VERSION)/$(LIBELF).$(LIBELF_SUFFIX)
LIBELF_SOURCE := $(SRCDIR)/$(LIBELF).$(LIBELF_SUFFIX)
LIBELF_DIR := $(BUILDDIR)/$(LIBELF)
LIBELF_LICENSE := (LGPL-3.0-or-later OR GPL-2.0-or-later) AND GPL-3.0-or-later
+LIBELF_LICENSE_FILES := \
+ file://src/addr2line.c;startline=1;endline=18;md5=d710f0305026e2699ec622ec521f9d79 \
+ file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://lib/color.c;startline=1;endline=28;md5=b960585bfffbf9f0df5b8f1af733a03b \
+ file://COPYING-GPLV2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING-LGPLV3;md5=e6a600fd5e1d9cbde2d983680233ad02
# ----------------------------------------------------------------------------
# Prepare
@@ -43,15 +49,19 @@ LIBELF_CONF_OPT := \
--disable-sanitize-undefined \
--disable-valgrind \
--disable-valgrind-annotations \
+ --disable-install-elfh \
--disable-tests-rpath \
+ --enable-demangler \
--enable-textrelcheck \
--enable-symbol-versioning \
--disable-nls \
+ --disable-rpath \
+ --disable-libdebuginfod \
--disable-debuginfod \
- --without-valgrind \
--with-zlib \
--without-bzlib \
- --without-lzma \
+ --$(call ptx/wwo, PTXCONF_LIBELF_XZ)-lzma \
+ --without-zstd \
--without-biarch
LIBELF_ARCH := $(call remove_quotes,$(PTXCONF_ARCH_STRING))
@@ -87,7 +97,7 @@ ifdef PTXCONF_LIBELF_ELFSUTILS
make-debug-archive nm objdump ranlib readelf size stack strings \
strip unstrip, \
$(call install_copy, libelf, 0, 0, 0755, -, \
- /usr/bin/eu-$(bin));)
+ /usr/bin/eu-$(bin))$(ptx/nl))
endif
@$(call install_finish, libelf)
diff --git a/rules/libepoxy.make b/rules/libepoxy.make
index b5776ce22..3a5da2615 100644
--- a/rules/libepoxy.make
+++ b/rules/libepoxy.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_LIBEPOXY) += libepoxy
#
# Paths and names
#
-LIBEPOXY_VERSION := 1.5.3
-LIBEPOXY_MD5 := e2845de8d2782b2d31c01ae8d7cd4cbb
+LIBEPOXY_VERSION := 1.5.10
+LIBEPOXY_MD5 := f0730aad115c952e77591fcc805b1dc1
LIBEPOXY := libepoxy-$(LIBEPOXY_VERSION)
-LIBEPOXY_SUFFIX := tar.xz
-LIBEPOXY_URL := https://github.com/anholt/libepoxy/releases/download/$(LIBEPOXY_VERSION)/$(LIBEPOXY).$(LIBEPOXY_SUFFIX)
+LIBEPOXY_SUFFIX := tar.gz
+LIBEPOXY_URL := https://github.com/anholt/libepoxy/archive/refs/tags/$(LIBEPOXY_VERSION).$(LIBEPOXY_SUFFIX)
LIBEPOXY_SOURCE := $(SRCDIR)/$(LIBEPOXY).$(LIBEPOXY_SUFFIX)
LIBEPOXY_DIR := $(BUILDDIR)/$(LIBEPOXY)
LIBEPOXY_LICENSE := MIT
+LIBEPOXY_LICENSE_FILES := \
+ file://COPYING;md5=58ef4c80d401e07bd9ee8b6b58cf464b
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/libestr.make b/rules/libestr.make
index ea2c572d1..b9789f4b7 100644
--- a/rules/libestr.make
+++ b/rules/libestr.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_LIBESTR) += libestr
#
# Paths and names
#
-LIBESTR_VERSION := 0.1.10
-LIBESTR_MD5 := f4c9165a23587e77f7efe65d676d5e8e
-LIBESTR := libestr-$(LIBESTR_VERSION)
-LIBESTR_SUFFIX := tar.gz
-LIBESTR_URL := http://libestr.adiscon.com/files/download/$(LIBESTR).$(LIBESTR_SUFFIX)
-LIBESTR_SOURCE := $(SRCDIR)/$(LIBESTR).$(LIBESTR_SUFFIX)
-LIBESTR_DIR := $(BUILDDIR)/$(LIBESTR)
-LIBESTR_LICENSE := LGPL-2.1-or-later
+LIBESTR_VERSION := 0.1.10
+LIBESTR_MD5 := f4c9165a23587e77f7efe65d676d5e8e
+LIBESTR := libestr-$(LIBESTR_VERSION)
+LIBESTR_SUFFIX := tar.gz
+LIBESTR_URL := https://libestr.adiscon.com/files/download/$(LIBESTR).$(LIBESTR_SUFFIX)
+LIBESTR_SOURCE := $(SRCDIR)/$(LIBESTR).$(LIBESTR_SUFFIX)
+LIBESTR_DIR := $(BUILDDIR)/$(LIBESTR)
+LIBESTR_LICENSE := LGPL-2.1-or-later
+LIBESTR_LICENSE_FILES := \
+ file://COPYING;md5=9d6c993486c18262afba4ca5bcb894d0
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/libevdev.in b/rules/libevdev.in
index 3cdc372db..4d90db437 100644
--- a/rules/libevdev.in
+++ b/rules/libevdev.in
@@ -2,6 +2,7 @@
config LIBEVDEV
tristate
+ select HOST_SYSTEM_PYTHON3
prompt "libevdev"
help
libevdev is a wrapper library for evdev devices. it moves the
diff --git a/rules/libevdev.make b/rules/libevdev.make
index 3179f87ae..192e11439 100644
--- a/rules/libevdev.make
+++ b/rules/libevdev.make
@@ -14,15 +14,15 @@ PACKAGES-$(PTXCONF_LIBEVDEV) += libevdev
#
# Paths and names
#
-LIBEVDEV_VERSION := 1.8.0
-LIBEVDEV_MD5 := 879631080be18526737e33b63d848039
+LIBEVDEV_VERSION := 1.13.1
+LIBEVDEV_MD5 := 58fe71aa6fd5e80d0928e9b691761311
LIBEVDEV := libevdev-$(LIBEVDEV_VERSION)
LIBEVDEV_SUFFIX := tar.xz
LIBEVDEV_URL := http://www.freedesktop.org/software/libevdev/$(LIBEVDEV).$(LIBEVDEV_SUFFIX)
LIBEVDEV_SOURCE := $(SRCDIR)/$(LIBEVDEV).$(LIBEVDEV_SUFFIX)
LIBEVDEV_DIR := $(BUILDDIR)/$(LIBEVDEV)
LIBEVDEV_LICENSE := MIT
-LIBEVDEV_LICENSE_FILES := file://COPYING;md5=75aae0d38feea6fda97ca381cb9132eb
+LIBEVDEV_LICENSE_FILES := file://COPYING;md5=80c550b3197bcb8da7d7557ebcc3fc46
# ----------------------------------------------------------------------------
# Prepare
@@ -39,7 +39,8 @@ LIBEVDEV_CONF_ENV := \
LIBEVDEV_CONF_TOOL := autoconf
LIBEVDEV_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
- --disable-gcov
+ --disable-gcov \
+ --disable-coverity
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libevent.make b/rules/libevent.make
index 73470c59e..f2860b69c 100644
--- a/rules/libevent.make
+++ b/rules/libevent.make
@@ -22,7 +22,8 @@ LIBEVENT_SUFFIX := tar.gz
LIBEVENT_URL := https://github.com/libevent/libevent/releases/download/release-$(LIBEVENT_VERSION)-stable/$(LIBEVENT).$(LIBEVENT_SUFFIX)
LIBEVENT_SOURCE := $(SRCDIR)/$(LIBEVENT).$(LIBEVENT_SUFFIX)
LIBEVENT_DIR := $(BUILDDIR)/$(LIBEVENT)
-LIBEVENT_LICENSE := BSD-3-Clause AND 0BSD
+LIBEVENT_LICENSE := BSD-3-Clause AND 0BSD AND MIT
+LIBEVENT_LICENSE_FILES := file://LICENSE;md5=17f20574c0b154d12236d5fbe964f549
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/libezv24.in b/rules/libezv24.in
index 3dc529e2e..7b8999c83 100644
--- a/rules/libezv24.in
+++ b/rules/libezv24.in
@@ -7,7 +7,7 @@ config LIBEZV24
help
The goal of this library is to provide an easy to use programming
interface to the serial ports of the Linux system, native on Linux and
- on Cygwin. The project homepage is here:
+ on Cygwin. The project homepage is here:
http://ezv24.sourceforge.net/
diff --git a/rules/libfastjson.make b/rules/libfastjson.make
index 0d1ec5a1c..34a918c16 100644
--- a/rules/libfastjson.make
+++ b/rules/libfastjson.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_LIBFASTJSON) += libfastjson
#
# Paths and names
#
-LIBFASTJSON_VERSION := 0.99.8
-LIBFASTJSON_MD5 := 730713ad1d851def7ac8898f751bbfdd
-LIBFASTJSON := libfastjson-$(LIBFASTJSON_VERSION)
-LIBFASTJSON_SUFFIX := tar.gz
-LIBFASTJSON_URL := https://codeload.github.com/rsyslog/libfastjson/$(LIBFASTJSON_SUFFIX)/v$(LIBFASTJSON_VERSION)
-LIBFASTJSON_SOURCE := $(SRCDIR)/$(LIBFASTJSON).$(LIBFASTJSON_SUFFIX)
-LIBFASTJSON_DIR := $(BUILDDIR)/$(LIBFASTJSON)
-LIBFASTJSON_LICENSE := MIT
+LIBFASTJSON_VERSION := 0.99.8
+LIBFASTJSON_MD5 := 730713ad1d851def7ac8898f751bbfdd
+LIBFASTJSON := libfastjson-$(LIBFASTJSON_VERSION)
+LIBFASTJSON_SUFFIX := tar.gz
+LIBFASTJSON_URL := https://codeload.github.com/rsyslog/libfastjson/$(LIBFASTJSON_SUFFIX)/v$(LIBFASTJSON_VERSION)
+LIBFASTJSON_SOURCE := $(SRCDIR)/$(LIBFASTJSON).$(LIBFASTJSON_SUFFIX)
+LIBFASTJSON_DIR := $(BUILDDIR)/$(LIBFASTJSON)
+LIBFASTJSON_LICENSE := MIT
+LIBFASTJSON_LICENSE_FILES := \
+ file://COPYING;md5=a958bb07122368f3e1d9b2efe07d231f
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/libffi.make b/rules/libffi.make
index 1feab4bdc..df6ca0a5c 100644
--- a/rules/libffi.make
+++ b/rules/libffi.make
@@ -15,16 +15,18 @@ PACKAGES-$(PTXCONF_LIBFFI) += libffi
#
# Paths and names
#
-LIBFFI_VERSION := 3.3
-LIBFFI_MD5 := 6313289e32f1d38a9df4770b014a2ca7
-LIBFFI := libffi-$(LIBFFI_VERSION)
-LIBFFI_SUFFIX := tar.gz
-LIBFFI_SOURCE := $(SRCDIR)/$(LIBFFI).$(LIBFFI_SUFFIX)
-LIBFFI_DIR := $(BUILDDIR)/$(LIBFFI)
-LIBFFI_URL := \
- http://ftp.gwdg.de/pub/linux/sources.redhat.com/libffi/$(LIBFFI).$(LIBFFI_SUFFIX) \
+LIBFFI_VERSION := 3.4.6
+LIBFFI_MD5 := b9cac6c5997dca2b3787a59ede34e0eb
+LIBFFI := libffi-$(LIBFFI_VERSION)
+LIBFFI_SUFFIX := tar.gz
+LIBFFI_SOURCE := $(SRCDIR)/$(LIBFFI).$(LIBFFI_SUFFIX)
+LIBFFI_DIR := $(BUILDDIR)/$(LIBFFI)
+LIBFFI_URL := \
+ https://github.com/libffi/libffi/releases/download/v$(LIBFFI_VERSION)/$(LIBFFI).$(LIBFFI_SUFFIX) \
ftp://sourceware.org/pub/libffi/$(LIBFFI).$(LIBFFI_SUFFIX)
-LIBFFI_LICENSE := MIT
+LIBFFI_LICENSE := MIT
+LIBFFI_LICENSE_FILES := \
+ file://LICENSE;md5=1db54c9fd307a12218766c3c7f650ca7
# ----------------------------------------------------------------------------
# Prepare
@@ -37,6 +39,7 @@ LIBFFI_CONF_OPT := \
--enable-portable-binary \
--disable-pax_emutramp \
--disable-debug \
+ --disable-docs \
--enable-structs \
--enable-raw-api \
--disable-purify-safety \
diff --git a/rules/libfsl-vpu.in b/rules/libfsl-vpu.in
deleted file mode 100644
index d6eea6eaa..000000000
--- a/rules/libfsl-vpu.in
+++ /dev/null
@@ -1,7 +0,0 @@
-## SECTION=multimedia_gstreamer
-
-config LIBFSL_VPU
- tristate
- prompt "libfsl-vpu"
- help
- FIXME
diff --git a/rules/libfsl-vpu.make b/rules/libfsl-vpu.make
deleted file mode 100644
index 24a770866..000000000
--- a/rules/libfsl-vpu.make
+++ /dev/null
@@ -1,57 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2008 by Sascha Hauer
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_LIBFSL_VPU) += libfsl-vpu
-
-#
-# Paths and names
-#
-LIBFSL_VPU_VERSION := 0.1.0
-LIBFSL_VPU_MD5 := c98dd0c638d66d0648b5d2e1a964dd6b
-LIBFSL_VPU := libfsl-vpu-$(LIBFSL_VPU_VERSION)
-LIBFSL_VPU_SUFFIX := tar.bz2
-LIBFSL_VPU_URL := http://www.pengutronix.de/software/ptxdist/temporary-src/$(LIBFSL_VPU).$(LIBFSL_VPU_SUFFIX)
-LIBFSL_VPU_SOURCE := $(SRCDIR)/$(LIBFSL_VPU).$(LIBFSL_VPU_SUFFIX)
-LIBFSL_VPU_DIR := $(BUILDDIR)/$(LIBFSL_VPU)
-LIBFSL_VPU_LICENSE := LGPL-2.1-or-later
-LIBFSL_VPU_LICENSE_FILES := file://src/vpu_lib.c;md5=58db5f82e0a28dfe42bf9885eb4733a3;startline=7;endline=14
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-LIBFSL_VPU_AUTOCONF := \
- $(CROSS_AUTOCONF_USR) \
- --disable-debug
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/libfsl-vpu.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, libfsl-vpu)
- @$(call install_fixup, libfsl-vpu,PRIORITY,optional)
- @$(call install_fixup, libfsl-vpu,SECTION,base)
- @$(call install_fixup, libfsl-vpu,AUTHOR,"Sascha Hauer <s.hauer@pengutronix.de>")
- @$(call install_fixup, libfsl-vpu,DESCRIPTION,missing)
-
- @$(call install_lib, libfsl-vpu, 0, 0, 0644, libfsl-vpu-0.1.0)
-
- @$(call install_finish, libfsl-vpu)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/libftdi.make b/rules/libftdi.make
index 177db753e..a307f5664 100644
--- a/rules/libftdi.make
+++ b/rules/libftdi.make
@@ -28,24 +28,22 @@ LIBFTDI_LICENSE := LGPL-2.1-only
# Prepare
# ----------------------------------------------------------------------------
-LIBFTDI_PATH := PATH=$(CROSS_PATH)
-LIBFTDI_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBFTDI_AUTOCONF := \
+LIBFTDI_CONF_TOOL := autoconf
+LIBFTDI_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--enable-shared \
--disable-static \
--disable-python-binding
ifdef PTXCONF_LIBFTDI_CPP_WRAPPER
-LIBFTDI_AUTOCONF += \
+LIBFTDI_CONF_OPT += \
--enable-libftdipp \
--with-boost=$(SYSROOT)/usr
else
-LIBFTDI_AUTOCONF += \
+LIBFTDI_CONF_OPT += \
--disable-libftdipp \
--without-boost
endif
diff --git a/rules/libftdi1.make b/rules/libftdi1.make
index 2b580e072..b35470d56 100644
--- a/rules/libftdi1.make
+++ b/rules/libftdi1.make
@@ -14,14 +14,21 @@ PACKAGES-$(PTXCONF_LIBFTDI1) += libftdi1
#
# Paths and names
#
-LIBFTDI1_VERSION := 1.4
-LIBFTDI1_MD5 := 0c09fb2bb19a57c839fa6845c6c780a2
+LIBFTDI1_VERSION := 1.5
+LIBFTDI1_MD5 := f515d7d69170a9afc8b273e8f1466a80
LIBFTDI1 := libftdi1-$(LIBFTDI1_VERSION)
LIBFTDI1_SUFFIX := tar.bz2
LIBFTDI1_URL := http://www.intra2net.com/en/developer/libftdi/download/$(LIBFTDI1).$(LIBFTDI1_SUFFIX)
LIBFTDI1_SOURCE := $(SRCDIR)/$(LIBFTDI1).$(LIBFTDI1_SUFFIX)
LIBFTDI1_DIR := $(BUILDDIR)/$(LIBFTDI1)
-LIBFTDI1_LICENSE := LGPL-2.1-only
+LIBFTDI1_LICENSE := LGPL-2.1-only AND MIT AND GPL-2.0-only
+LIBFTDI1_LICENSE_FILES := \
+ file://src/ftdi_stream.c;startline=1;endline=42;md5=70e75477d06286017f028e090f046c58 \
+ file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
+ file://ftdi_eeprom/main.c;startline=1;endline=14;md5=509ee2023e37c596c5b782fe223636c3 \
+ file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe
+
+
ifdef PTXCONF_LIBFTDI1_EXAMPLES
LIBFTDI1_DEVPKG := NO
endif
@@ -37,12 +44,14 @@ LIBFTDI1_CONF_TOOL := cmake
LIBFTDI1_CONF_OPT := \
$(CROSS_CMAKE_USR) \
-DCMAKE_SKIP_RPATH=ON \
+ -DBUILD_TESTS=OFF \
-DDOCUMENTATION=OFF \
- -DPYTHON_BINDINGS=OFF \
- -DSTATICLIBS=OFF \
-DEXAMPLES=$(call ptx/onoff, PTXCONF_LIBFTDI1_EXAMPLES) \
-DFTDIPP=$(call ptx/onoff, PTXCONF_LIBFTDI1_CPP_WRAPPER) \
- -DFTDI_EEPROM=$(call ptx/onoff, PTXCONF_LIBFTDI1_FTDI_EEPROM)
+ -DFTDI_EEPROM=$(call ptx/onoff, PTXCONF_LIBFTDI1_FTDI_EEPROM) \
+ -DLINK_PYTHON_LIBRARY=OFF \
+ -DPYTHON_BINDINGS=OFF \
+ -DSTATICLIBS=OFF
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libgcrypt.make b/rules/libgcrypt.make
index 575e51cfd..c1101d7a4 100644
--- a/rules/libgcrypt.make
+++ b/rules/libgcrypt.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_LIBGCRYPT) += libgcrypt
#
# Paths and names
#
-LIBGCRYPT_VERSION := 1.8.7
-LIBGCRYPT_MD5 := 291c40a06d6fc2f285a34f0f0e846325
+LIBGCRYPT_VERSION := 1.10.3
+LIBGCRYPT_MD5 := a8cada0b343e10dbee51c9e92d856a94
LIBGCRYPT := libgcrypt-$(LIBGCRYPT_VERSION)
LIBGCRYPT_SUFFIX := tar.bz2
LIBGCRYPT_URL := https://www.gnupg.org/ftp/gcrypt/libgcrypt/$(LIBGCRYPT).$(LIBGCRYPT_SUFFIX)
@@ -36,17 +36,19 @@ ifneq ($(PTXCONF_ARCH_M68K)$(PTXCONF_ARCH_PPC),)
LIBGCRYPT_ASM :=
endif
-LIBGCRYPT_ENV := \
- $(CROSS_ENV)
+LIBGCRYPT_CONF_ENV := \
+ $(CROSS_ENV) \
+ ac_cv_path_GPGRT_CONFIG=$(PTXDIST_SYSROOT_CROSS)/usr/bin/gpgrt-config
ifdef PTXCONF_ARCH_X86
-LIBGCRYPT_ENV += ac_cv_sys_symbol_underscore=no
+LIBGCRYPT_CONF_ENV += ac_cv_sys_symbol_underscore=no
endif
#
# autoconf
#
-LIBGCRYPT_AUTOCONF := \
+LIBGCRYPT_CONF_TOOL := autoconf
+LIBGCRYPT_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-static \
--enable-shared \
@@ -57,10 +59,12 @@ LIBGCRYPT_AUTOCONF := \
--$(call ptx/endis,LIBGCRYPT_ASM)-asm \
--disable-m-guard \
--disable-large-data-tests \
+ --disable-force-soft-hwfeatures \
--disable-hmac-binary-check \
--enable-jent-support \
--enable-padlock-support \
--enable-aesni-support \
+ --disable-shaext-support \
--enable-pclmul-support \
--enable-sse41-support \
--enable-drng-support \
@@ -68,7 +72,9 @@ LIBGCRYPT_AUTOCONF := \
--enable-avx2-support \
--$(call ptx/endis,PTXCONF_ARCH_ARM_NEON)-neon-support \
--enable-arm-crypto-support \
+ --disable-ppc-crypto-support \
--enable-O-flag-munging \
+ --disable-instrumentation-munging \
--disable-amd64-as-feature-detection \
--enable-optimization \
--enable-noexecstack \
diff --git a/rules/libgd.make b/rules/libgd.make
index 1afcf467f..5dba4205e 100644
--- a/rules/libgd.make
+++ b/rules/libgd.make
@@ -21,18 +21,18 @@ LIBGD_SUFFIX := tar.gz
LIBGD_URL := https://github.com/libgd/libgd/releases/download/$(LIBGD)/libgd-$(LIBGD_VERSION).$(LIBGD_SUFFIX)
LIBGD_SOURCE := $(SRCDIR)/$(LIBGD).$(LIBGD_SUFFIX)
LIBGD_DIR := $(BUILDDIR)/$(LIBGD)
+LIBGD_LICENSE := custom
+LIBGD_LICENSE_FILES := file://COPYING;md5=07384b3aa2e0d39afca0d6c40286f545
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-LIBGD_PATH := PATH=$(CROSS_PATH)
-LIBGD_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBGD_AUTOCONF := \
+LIBGD_CONF_TOOL := autoconf
+LIBGD_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-rpath \
--disable-werror \
diff --git a/rules/libgmp.in b/rules/libgmp.in
index 86b755475..fafd0e98d 100644
--- a/rules/libgmp.in
+++ b/rules/libgmp.in
@@ -8,4 +8,4 @@ config LIBGMP
help
Compiles the GNU Multiprecision libraries for your target system.
- See http://gmplib.org/ for info about it.
+ See http://gmplib.org/ for info about it.
diff --git a/rules/libgmp.make b/rules/libgmp.make
index 5a2c995e6..47ea34d64 100644
--- a/rules/libgmp.make
+++ b/rules/libgmp.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_LIBGMP) += libgmp
#
# Paths and names
#
-LIBGMP_VERSION := 6.1.2
-LIBGMP_MD5 := 8ddbb26dc3bd4e2302984debba1406a5
+LIBGMP_VERSION := 6.2.1
+LIBGMP_MD5 := 28971fc21cf028042d4897f02fd355ea
LIBGMP := gmp-$(LIBGMP_VERSION)
LIBGMP_SUFFIX := tar.bz2
LIBGMP_URL := $(call ptx/mirror, GNU, gmp/$(LIBGMP).$(LIBGMP_SUFFIX))
diff --git a/rules/libgpg-error.make b/rules/libgpg-error.make
index c99e333cb..32f1390d1 100644
--- a/rules/libgpg-error.make
+++ b/rules/libgpg-error.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_LIBGPG_ERROR) += libgpg-error
#
# Paths and names
#
-LIBGPG_ERROR_VERSION := 1.36
-LIBGPG_ERROR_MD5 := eff437f397e858a9127b76c0d87fa5ed
+LIBGPG_ERROR_VERSION := 1.47
+LIBGPG_ERROR_MD5 := 58e054ca192a77226c4822bbee1b7fdb
LIBGPG_ERROR := libgpg-error-$(LIBGPG_ERROR_VERSION)
LIBGPG_ERROR_SUFFIX := tar.bz2
LIBGPG_ERROR_URL := \
diff --git a/rules/libgpiod.make b/rules/libgpiod.make
index 088a5dab8..7a05d1fd1 100644
--- a/rules/libgpiod.make
+++ b/rules/libgpiod.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBGPIOD) += libgpiod
#
# Paths and names
#
-LIBGPIOD_VERSION := 1.3
-LIBGPIOD_MD5 := 70a3d4738495f4ec0c5f3fa6aeb999ed
+LIBGPIOD_VERSION := 1.6.3
+LIBGPIOD_MD5 := 25b6d8e7ebda37bb9b55aa290af0f062
LIBGPIOD := libgpiod-$(LIBGPIOD_VERSION)
LIBGPIOD_SUFFIX := tar.gz
LIBGPIOD_URL := https://www.kernel.org/pub/software/libs/libgpiod/$(LIBGPIOD).$(LIBGPIOD_SUFFIX)
@@ -32,14 +32,13 @@ LIBGPIOD_CONF_TOOL := autoconf
LIBGPIOD_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--$(call ptx/endis, PTXCONF_LIBGPIOD_TOOLS)-tools \
- --disable-install-tests \
--disable-tests \
--$(call ptx/endis, PTXCONF_LIBGPIOD_CXX)-bindings-cxx \
--$(call ptx/endis, PTXCONF_LIBGPIOD_PYTHON3)-bindings-python
LIBGPIOD_CONF_ENV := \
$(CROSS_ENV) \
- $(if $(PTXCONF_PYTHON3), ac_cv_path_PYTHON=$(CROSS_PYTHON3))
+ $(if $(PTXCONF_LIBGPIOD_PYTHON3), ac_cv_path_PYTHON=$(CROSS_PYTHON3))
# libgpiod requires kernel headers >= 4.8
ifdef PTXCONF_KERNEL_HEADER
@@ -47,6 +46,8 @@ LIBGPIOD_CPPFLAGS := \
-isystem $(KERNEL_HEADERS_INCLUDE_DIR)
endif
+LIBGPIOD_LDFLAGS:= -Wl,-rpath-link,$(LIBGPIOD_DIR)/lib/.libs
+
LIBGPIOD_TOOLS-$(PTXCONF_LIBGPIOD_GPIODETECT) += gpiodetect
LIBGPIOD_TOOLS-$(PTXCONF_LIBGPIOD_GPIOINFO) += gpioinfo
LIBGPIOD_TOOLS-$(PTXCONF_LIBGPIOD_GPIOGET) += gpioget
diff --git a/rules/libgsloop.make b/rules/libgsloop.make
index 4eef3c633..7cb8a5258 100644
--- a/rules/libgsloop.make
+++ b/rules/libgsloop.make
@@ -26,13 +26,11 @@ LIBGSLOOP_DIR := $(BUILDDIR)/$(LIBGSLOOP)
# Prepare
# ----------------------------------------------------------------------------
-LIBGSLOOP_PATH := PATH=$(CROSS_PATH)
-LIBGSLOOP_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBGSLOOP_AUTOCONF := $(CROSS_AUTOCONF_USR)
+LIBGSLOOP_CONF_TOOL := autoconf
+LIBGSLOOP_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libgudev.in b/rules/libgudev.in
index 9ad33278e..3e6602fea 100644
--- a/rules/libgudev.in
+++ b/rules/libgudev.in
@@ -3,6 +3,7 @@
config LIBGUDEV
tristate
select HOST_GLIB
+ select HOST_MESON
select GLIB
select GOBJECT_INTROSPECTION if LIBGUDEV_INTROSPECTION
select UDEV
diff --git a/rules/libgudev.make b/rules/libgudev.make
index 637ea662d..e30be48b3 100644
--- a/rules/libgudev.make
+++ b/rules/libgudev.make
@@ -14,14 +14,17 @@ PACKAGES-$(PTXCONF_LIBGUDEV) += libgudev
#
# Paths and names
#
-LIBGUDEV_VERSION := 230
-LIBGUDEV_MD5 := e4dee8f3f349e9372213d33887819a4d
+LIBGUDEV_VERSION := 238
+LIBGUDEV_MD5 := 46da30a1c69101c3a13fa660d9ab7b73
LIBGUDEV := libgudev-$(LIBGUDEV_VERSION)
LIBGUDEV_SUFFIX := tar.xz
LIBGUDEV_URL := $(call ptx/mirror, GNOME, libgudev/$(LIBGUDEV_VERSION)/$(LIBGUDEV).$(LIBGUDEV_SUFFIX))
LIBGUDEV_SOURCE := $(SRCDIR)/$(LIBGUDEV).$(LIBGUDEV_SUFFIX)
LIBGUDEV_DIR := $(BUILDDIR)/$(LIBGUDEV)
LIBGUDEV_LICENSE := LGPL-2.1-or-later
+LIBGUDEV_LICENSE_FILES := \
+ file://gudev/gudevclient.c;startline=3;endline=17;md5=829bbbdef46b2ae9fc89115aea26f119 \
+ file://COPYING;md5=4fbd65380cdd255951079008b364516c
# ----------------------------------------------------------------------------
# Prepare
@@ -32,15 +35,15 @@ PTXCONF_LIBGUDEV_INTROSPECTION :=
endif
#
-# autoconf
+# meson
#
-LIBGUDEV_CONF_TOOL := autoconf
+LIBGUDEV_CONF_TOOL := meson
LIBGUDEV_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --disable-gtk-doc \
- --disable-gtk-doc-html \
- --disable-gtk-doc-pdf \
- --$(call ptx/endis, PTXCONF_LIBGUDEV_INTROSPECTION)-introspection
+ $(CROSS_MESON_USR) \
+ -Dgtk_doc=false \
+ -Dintrospection=$(call ptx/endis, PTXCONF_LIBGUDEV_INTROSPECTION)d \
+ -Dtests=disabled \
+ -Dvapi=disabled
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libical.make b/rules/libical.make
index e9aa81365..10927c0c7 100644
--- a/rules/libical.make
+++ b/rules/libical.make
@@ -14,14 +14,18 @@ PACKAGES-$(PTXCONF_LIBICAL) += libical
#
# Paths and names
#
-LIBICAL_VERSION := 3.0.3
-LIBICAL_MD5 := ead7d0d349f872a909cd4f30988de7fc
+LIBICAL_VERSION := 3.0.17
+LIBICAL_MD5 := aab3e2c80a5a61c744204675bff19ae0
LIBICAL := libical-$(LIBICAL_VERSION)
LIBICAL_SUFFIX := tar.gz
LIBICAL_URL := https://github.com/libical/libical/releases/download/v$(LIBICAL_VERSION)/$(LIBICAL).$(LIBICAL_SUFFIX)
LIBICAL_SOURCE := $(SRCDIR)/$(LIBICAL).$(LIBICAL_SUFFIX)
LIBICAL_DIR := $(BUILDDIR)/$(LIBICAL)
-LIBICAL_LICENSE := LGPL-2.1
+LIBICAL_LICENSE := LGPL-2.1-only OR MPL-2.0
+LIBICAL_LICENSE_FILES := \
+ file://LICENSE;md5=1910a2a76ddf6a9ba369182494170d87 \
+ file://LICENSE.LGPL21.txt;md5=933adb561f159e7c3da079536f0ed871 \
+ file://LICENSE.MPL2.txt;md5=f75d2927d3c1ed2414ef72048f5ad640
# ----------------------------------------------------------------------------
# Prepare
@@ -32,16 +36,19 @@ LIBICAL_LICENSE := LGPL-2.1
LIBICAL_CONF_TOOL := cmake
LIBICAL_CONF_OPT := \
$(CROSS_CMAKE_USR) \
- -DICU_INCLUDE_DIR=NO \
- -DICU_LIBRARY=NO \
- -DBDB_INCLUDE_DIR=NO \
- -DBDB_LIBRARY=NO \
- -DSHARED_ONLY=ON \
-DGOBJECT_INTROSPECTION=OFF \
+ -DICAL_ALLOW_EMPTY_PROPERTIES=OFF \
-DICAL_BUILD_DOCS=OFF \
- -DICAL_GLIB_VAPI=OFF \
+ -DICAL_ERRORS_ARE_FATAL=OFF \
-DICAL_GLIB=OFF \
- -DWITH_CXX_BINDINGS=$(call ptx/onoff,PTXCONF_LIBICAL_CXX)
+ -DICAL_GLIB_VAPI=OFF \
+ -DLIBICAL_BUILD_TESTING=OFF \
+ -DSHARED_ONLY=ON \
+ -DSTATIC_ONLY=OFF \
+ -DWITH_CXX_BINDINGS=$(call ptx/onoff,PTXCONF_LIBICAL_CXX) \
+ \
+ -DCMAKE_DISABLE_FIND_PACKAGE_BerkeleyDB=ON \
+ -DCMAKE_DISABLE_FIND_PACKAGE_ICU=ON
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libid3tag.make b/rules/libid3tag.make
index 0b36f03b8..7ce83647a 100644
--- a/rules/libid3tag.make
+++ b/rules/libid3tag.make
@@ -18,7 +18,7 @@ LIBID3TAG_VERSION := 0.15.1b
LIBID3TAG_MD5 := e5808ad997ba32c498803822078748c3
LIBID3TAG := libid3tag-$(LIBID3TAG_VERSION)
LIBID3TAG_SUFFIX := tar.gz
-LIBID3TAG_URL := ftp://ftp.mars.org/pub/mpeg/$(LIBID3TAG).$(LIBID3TAG_SUFFIX)
+LIBID3TAG_URL := $(call ptx/mirror, SF, mad/libid3tag/$(LIBID3TAG_VERSION)/$(LIBID3TAG).$(LIBID3TAG_SUFFIX))
LIBID3TAG_SOURCE := $(SRCDIR)/$(LIBID3TAG).$(LIBID3TAG_SUFFIX)
LIBID3TAG_DIR := $(BUILDDIR)/$(LIBID3TAG)
LIBID3TAG_LICENSE := GPL-2.0-or-later
@@ -30,13 +30,11 @@ LIBID3TAG_LICENSE_FILES := \
# Prepare
# ----------------------------------------------------------------------------
-LIBID3TAG_PATH := PATH=$(CROSS_PATH)
-LIBID3TAG_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBID3TAG_AUTOCONF := \
+LIBID3TAG_CONF_TOOL := autoconf
+LIBID3TAG_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-debugging \
--disable-profiling
diff --git a/rules/libiio.make b/rules/libiio.make
index c630e92b9..0cbc77004 100644
--- a/rules/libiio.make
+++ b/rules/libiio.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBIIO) += libiio
#
# Paths and names
#
-LIBIIO_VERSION := 0.17
-LIBIIO_MD5 := 05a45aad2d50ef8c8a015d0caaf3802d
+LIBIIO_VERSION := 0.23
+LIBIIO_MD5 := d23393bf1eefa0cd6fd4859efc453e95
LIBIIO := libiio-$(LIBIIO_VERSION)
LIBIIO_SUFFIX := tar.gz
LIBIIO_URL := https://github.com/analogdevicesinc/libiio/archive/v$(LIBIIO_VERSION).$(LIBIIO_SUFFIX)
@@ -30,19 +30,23 @@ LIBIIO_LICENSE := LGPL-2.1-only
LIBIIO_CONF_TOOL := cmake
LIBIIO_CONF_OPT := \
$(CROSS_CMAKE_USR) \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCSHARP_BINDINGS=OFF \
-DENABLE_IPV6=$(call ptx/onoff, PTXCONF_GLOBAL_IPV6) \
+ -DENABLE_PACKAGING=OFF \
+ -DPYTHON_BINDINGS=OFF \
-DWITH_DOC=OFF \
+ -DWITH_EXAMPLES=OFF \
+ -DWITH_GCOV=OFF \
-DWITH_IIOD=OFF \
-DWITH_LOCAL_BACKEND=ON \
-DWITH_LOCAL_CONFIG=OFF \
- -DWITH_XML_BACKEND=OFF \
- -DWITH_USB_BACKEND=OFF \
- -DWITH_SERIAL_BACKEND=OFF \
+ -DWITH_MAN=OFF \
-DWITH_NETWORK_BACKEND=OFF \
- -DWITH_MATLAB_BINDINGS_API=OFF \
- -DPYTHON_BINDINGS=OFF \
- -DCSHARP_BINDINGS=OFF \
+ -DWITH_SERIAL_BACKEND=OFF \
-DWITH_TESTS=$(call ptx/onoff, PTXCONF_LIBIIO_TEST_TOOLS) \
+ -DWITH_USB_BACKEND=OFF \
+ -DWITH_XML_BACKEND=OFF \
\
-DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=ON
diff --git a/rules/libinput.in b/rules/libinput.in
index 9d319cc0b..c775567f1 100644
--- a/rules/libinput.in
+++ b/rules/libinput.in
@@ -10,6 +10,7 @@ menuconfig LIBINPUT
select PYTHON3 if LIBINPUT_TOOL_REPLAY && RUNTIME
select PYTHON3_LIBEVDEV if LIBINPUT_TOOL_REPLAY && RUNTIME
select PYTHON3_PYYAML if LIBINPUT_TOOL_REPLAY && RUNTIME
+ select LIBWACOM if LIBINPUT_WACOM
prompt "libinput "
help
libinput is a library to handle input devices in Wayland compositors and to
@@ -43,4 +44,8 @@ config LIBINPUT_TOOL_REPLAY
dependencies. Enable this option to ensure that all Python
packages needed for 'libinput replay' are available.
+config LIBINPUT_WACOM
+ bool
+ prompt "wacom support"
+
endif
diff --git a/rules/libinput.make b/rules/libinput.make
index 5df76614c..f28917752 100644
--- a/rules/libinput.make
+++ b/rules/libinput.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_LIBINPUT) += libinput
#
# Paths and names
#
-LIBINPUT_VERSION := 1.17.3
-LIBINPUT_MD5 := 3533f4dc8f0562ccd1a8814da155281b
+LIBINPUT_VERSION := 1.25.0
+LIBINPUT_MD5 := fc582c553e40be99bea49adf6d4aa669
LIBINPUT := libinput-$(LIBINPUT_VERSION)
-LIBINPUT_SUFFIX := tar.xz
-LIBINPUT_URL := http://www.freedesktop.org/software/libinput/$(LIBINPUT).$(LIBINPUT_SUFFIX)
+LIBINPUT_SUFFIX := tar.gz
+LIBINPUT_URL := https://gitlab.freedesktop.org/libinput/libinput/-/archive/$(LIBINPUT_VERSION)/$(LIBINPUT).$(LIBINPUT_SUFFIX)
LIBINPUT_SOURCE := $(SRCDIR)/$(LIBINPUT).$(LIBINPUT_SUFFIX)
LIBINPUT_DIR := $(BUILDDIR)/$(LIBINPUT)
LIBINPUT_LICENSE := MIT
+LIBINPUT_LICENSE_FILES := \
+ file://COPYING;md5=bab4ac7dc1c10bc0fb037dc76c46ef8a
# ----------------------------------------------------------------------------
# Prepare
@@ -35,7 +37,7 @@ LIBINPUT_CONF_OPT := \
-Ddocumentation=false \
-Depoll-dir= \
-Dinstall-tests=false \
- -Dlibwacom=false \
+ -Dlibwacom=$(call ptx/truefalse, PTXCONF_LIBINPUT_WACOM) \
-Dtests=false \
-Dudev-dir=/usr/lib/udev \
-Dzshcompletiondir=no
diff --git a/rules/libiodbc.in b/rules/libiodbc.in
index 0aa6d8855..f84fecc3c 100644
--- a/rules/libiodbc.in
+++ b/rules/libiodbc.in
@@ -9,7 +9,7 @@ menuconfig LIBIODBC
iODBC (intrinsic Open Database Connectivity) driver manager
is compatible with ODBC 2.x and 3.x specification and
- performs exact the jobs of a ODBC driver manager
+ performs exact the jobs of an ODBC driver manager
(i.e. driver loading, Parameters and function sequence
checking, driver's function invoking, etc). Any ODBC driver
works with ODBC 2.0 and 3.x driver manager will also work
@@ -28,7 +28,7 @@ config LIBIODBC_GUI
# needs gtk2
depends on BROKEN
help
- build GUI applications
+ build GUI applications
choice
prompt "driver manager version"
diff --git a/rules/libiodbc.make b/rules/libiodbc.make
index e0356cbeb..1c6df5caa 100644
--- a/rules/libiodbc.make
+++ b/rules/libiodbc.make
@@ -28,14 +28,13 @@ LIBIODBC_LICENSE := LGPL-2.0-only AND BSD
# Prepare
# ----------------------------------------------------------------------------
-LIBIODBC_PATH := PATH=$(CROSS_PATH)
-LIBIODBC_ENV := $(CROSS_ENV)
LIBIODBC_MAKE_PAR := NO
#
# autoconf
#
-LIBIODBC_AUTOCONF := \
+LIBIODBC_CONF_TOOL := autoconf
+LIBIODBC_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--enable-libodbc \
--enable-pthreads \
diff --git a/rules/libjpeg.in b/rules/libjpeg.in
index 04f0d7f8f..3304c6ac8 100644
--- a/rules/libjpeg.in
+++ b/rules/libjpeg.in
@@ -8,7 +8,7 @@ menuconfig LIBJPEG
help
libjpeg-turbo is a library for handling the JPEG (JFIF) image format
that uses SIMD instructions (MMX, SSE2, AVX2, NEON, AltiVec) to
- accelerate baseline JPEG compression an decompression.
+ accelerate baseline JPEG compression and decompression.
if LIBJPEG
@@ -19,4 +19,11 @@ config LIBJPEG_BIN
cjpeg and djpeg are simple bineries to convert some basic image
formats to jpeg (cjpeg) or convert them back from jpeg (djpeg)
+config LIBJPEG_TURBO
+ bool
+ prompt "Build and install libturbojpeg"
+ help
+ In addition to the traditional libjpeg API, also provide the less
+ powerful but more straightforward TurboJPEG API.
+
endif
diff --git a/rules/libjpeg.make b/rules/libjpeg.make
index 6f68cafe8..73fec3173 100644
--- a/rules/libjpeg.make
+++ b/rules/libjpeg.make
@@ -16,19 +16,19 @@ PACKAGES-$(PTXCONF_LIBJPEG) += libjpeg
#
# Paths and names
#
-LIBJPEG_VERSION := 2.0.5
-LIBJPEG_MD5 := 3a7dc293918775fc933f81e2bce36464
+LIBJPEG_VERSION := 3.0.2
+LIBJPEG_MD5 := 94756db95bc2477f7f7dad1c2590b51f
LIBJPEG_SUFFIX := tar.gz
LIBJPEG := libjpeg-turbo-$(LIBJPEG_VERSION)
LIBJPEG_TARBALL := $(LIBJPEG).$(LIBJPEG_SUFFIX)
-LIBJPEG_URL := $(call ptx/mirror, SF, libjpeg-turbo/$(LIBJPEG_VERSION)/$(LIBJPEG_TARBALL))
+LIBJPEG_URL := https://github.com/libjpeg-turbo/libjpeg-turbo/archive/refs/tags/$(LIBJPEG_VERSION)/$(LIBJPEG_TARBALL)
LIBJPEG_SOURCE := $(SRCDIR)/$(LIBJPEG_TARBALL)
LIBJPEG_DIR := $(BUILDDIR)/$(LIBJPEG)
LIBJPEG_LICENSE := IJG, BSD-3-Clause, Zlib
LIBJPEG_LICENSE_FILES := \
- file://LICENSE.md;md5=26d6491346496a57f75f00a78199122e \
- file://README.ijg;startline=112;endline=174;md5=3a823783b9d7587c8a5ef2447e833e19 \
- file://simd/nasm/jsimdext.inc;startline=12;endline=27;md5=839b9ed7df5168976efc071bee29a76e
+ file://LICENSE.md;md5=2a8e0d8226a102f07ab63ed7fd6ce155 \
+ file://README.ijg;startline=112;endline=174;md5=9fcb5339d9de46b31309aeef52d7deb1 \
+ file://simd/nasm/jsimdext.inc;startline=13;endline=28;md5=100ad877b6a14ec137afd49a6e109624
# ----------------------------------------------------------------------------
# Prepare
@@ -42,23 +42,25 @@ endif
ifdef PTXCONF_ARCH_ARM_NEON
LIBJPEG_SIMD := y
endif
+ifdef PTXCONF_ARCH_PPC_ALTIVEC
+LIBJPEG_SIMD := y
+endif
LIBJPEG_CONF_TOOL := cmake
LIBJPEG_CONF_OPT := \
$(CROSS_CMAKE_USR) \
-DENABLE_SHARED=ON \
-DENABLE_STATIC=OFF \
+ -DFORCE_INLINE=ON \
-DREQUIRE_SIMD=OFF \
- -DWITH_12BIT=OFF \
-DWITH_ARITH_DEC=ON \
-DWITH_ARITH_ENC=ON \
+ -DWITH_FUZZ=OFF \
-DWITH_JAVA=OFF \
-DWITH_JPEG7=ON \
-DWITH_JPEG8=ON \
- -DWITH_MEM_SRCDST=ON \
-DWITH_SIMD=$(call ptx/onoff,LIBJPEG_SIMD) \
- -DWITHOUT_TURBOJPEG=ON \
- -DFORCE_INLINE=ON
+ -DWITH_TURBOJPEG=$(call ptx/onoff,PTXCONF_LIBJPEG_TURBO)
# ----------------------------------------------------------------------------
# Target-Install
@@ -74,6 +76,9 @@ $(STATEDIR)/libjpeg.targetinstall:
@$(call install_fixup, libjpeg,DESCRIPTION,missing)
@$(call install_lib, libjpeg, 0, 0, 0644, libjpeg)
+ifdef PTXCONF_LIBJPEG_TURBO
+ @$(call install_lib, libjpeg, 0, 0, 0644, libturbojpeg)
+endif
ifdef PTXCONF_LIBJPEG_BIN
@$(call install_copy, libjpeg, 0, 0, 0755, -, /usr/bin/cjpeg)
@$(call install_copy, libjpeg, 0, 0, 0755, -, /usr/bin/djpeg)
diff --git a/rules/libkcapi.in b/rules/libkcapi.in
index 8221074fa..0fa299c44 100644
--- a/rules/libkcapi.in
+++ b/rules/libkcapi.in
@@ -10,49 +10,52 @@ menuconfig LIBKCAPI
if LIBKCAPI
config LIBKCAPI_MD5SUM
- bool
- depends on !COREUTILS_MD5SUM
- depends on !BUSYBOX_MD5SUM
- prompt "md5sum"
- help
- support md5sum cmdline util
+ bool
+ depends on !COREUTILS_MD5SUM && !BUSYBOX_MD5SUM || ALLYES
+ prompt "md5sum"
+ help
+ support md5sum cmdline util
config LIBKCAPI_SHA1SUM
- bool
- depends on !COREUTILS_SHA1SUM
- depends on !BUSYBOX_SHA1SUM
- prompt "sha1sum"
- help
- support sha1sum cmdline util
+ bool
+ depends on !COREUTILS_SHA1SUM && !BUSYBOX_SHA1SUM || ALLYES
+ prompt "sha1sum"
+ help
+ support sha1sum cmdline util
+
+config LIBKCAPI_SHA224SUM
+ bool
+ depends on !COREUTILS_SHA224SUM || ALLYES
+ prompt "sha224sum"
+ help
+ support sha224sum cmdline util
config LIBKCAPI_SHA256SUM
- bool
- depends on !COREUTILS_SHA256SUM
- depends on !BUSYBOX_SHA256SUM
- prompt "sha256sum"
- help
- support sha256sum cmdline util
+ bool
+ depends on !COREUTILS_SHA256SUM && !BUSYBOX_SHA256SUM || ALLYES
+ prompt "sha256sum"
+ help
+ support sha256sum cmdline util
config LIBKCAPI_SHA384SUM
- bool
- depends on !COREUTILS_SHA384SUM
- prompt "sha384sum"
- help
- support sha384sum cmdline util
+ bool
+ depends on !COREUTILS_SHA384SUM || ALLYES
+ prompt "sha384sum"
+ help
+ support sha384sum cmdline util
config LIBKCAPI_SHA512SUM
- bool
- depends on !COREUTILS_SHA512SUM
- depends on !BUSYBOX_SHA512SUM
- prompt "sha512sum"
- help
- support sha512sum cmdline util
+ bool
+ depends on !COREUTILS_SHA256SUM && !BUSYBOX_SHA256SUM || ALLYES
+ prompt "sha512sum"
+ help
+ support sha512sum cmdline util
config LIBKCAPI_TEST
- bool
- depends on OPENSSL_BIN
- prompt "test"
- help
- support kcapi tests
+ bool
+ depends on OPENSSL_BIN
+ prompt "test"
+ help
+ support kcapi tests
endif
diff --git a/rules/libkcapi.make b/rules/libkcapi.make
index f12e5abf6..0aba6ffec 100644
--- a/rules/libkcapi.make
+++ b/rules/libkcapi.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_LIBKCAPI) += libkcapi
#
# Paths and names
#
-LIBKCAPI_VERSION := 1.1.5
-LIBKCAPI_MD5 := 38776243296c2fb1ad78ca92bab4adcf
+LIBKCAPI_VERSION := 1.5.0
+LIBKCAPI_MD5 := 1114dc32e6055f09076ca04b7e0c93e2
LIBKCAPI := libkcapi-$(LIBKCAPI_VERSION)
-LIBKCAPI_SUFFIX := tar.xz
-LIBKCAPI_URL := http://www.chronox.de/libkcapi//$(LIBKCAPI).$(LIBKCAPI_SUFFIX)
+LIBKCAPI_SUFFIX := tar.gz
+LIBKCAPI_URL := https://github.com/smuellerDD/libkcapi/archive/refs/tags/v$(LIBKCAPI_VERSION).$(LIBKCAPI_SUFFIX)
LIBKCAPI_SOURCE := $(SRCDIR)/$(LIBKCAPI).$(LIBKCAPI_SUFFIX)
LIBKCAPI_DIR := $(BUILDDIR)/$(LIBKCAPI)
LIBKCAPI_LICENSE := GPLv2+
@@ -37,12 +37,18 @@ LIBKCAPI_CONF_ENV := \
LIBKCAPI_CONF_TOOL := autoconf
LIBKCAPI_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
+ --disable-werror \
+ --$(call ptx/endis, PTXCONF_LIBKCAPI_TEST)-kcapi-test \
+ --enable-kcapi-speed \
--enable-kcapi-hasher \
--enable-kcapi-rngapp \
- --enable-kcapi-speed \
- --$(call ptx/endis, PTXCONF_LIBKCAPI_TEST)-kcapi-test \
--enable-kcapi-encapp \
--enable-kcapi-dgstapp \
+ --enable-lib-kdf \
+ --enable-lib-sym \
+ --enable-lib-md \
+ --enable-lib-aead \
+ --enable-lib-rng \
--disable-lib-asym \
--disable-lib-kpp
@@ -66,33 +72,37 @@ $(STATEDIR)/libkcapi.targetinstall:
@$(call install_copy, libkcapi, 0, 0, 0755, -, /usr/bin/kcapi-enc);
@$(call install_copy, libkcapi, 0, 0, 0755, -, /usr/bin/kcapi-dgst);
- @$(call install_copy, libkcapi, 0, 0, 0755, $(LIBKCAPI_PKGDIR)/usr/bin/fipscheck, /usr/bin/kcapi-hasher);
- @$(call install_link, libkcapi, /usr/bin/kcapi-hasher, /usr/bin/fipscheck);
- @$(call install_link, libkcapi, /usr/bin/kcapi-hasher, /usr/bin/fipshmac);
- @$(call install_link, libkcapi, /usr/bin/kcapi-hasher, /usr/bin/sha1hmac);
- @$(call install_link, libkcapi, /usr/bin/kcapi-hasher, /usr/bin/sha224hmac);
- @$(call install_link, libkcapi, /usr/bin/kcapi-hasher, /usr/bin/sha256hmac);
- @$(call install_link, libkcapi, /usr/bin/kcapi-hasher, /usr/bin/sha384hmac);
- @$(call install_link, libkcapi, /usr/bin/kcapi-hasher, /usr/bin/sha512hmac);
+ @$(call install_copy, libkcapi, 0, 0, 0755, -, /usr/bin/kcapi-hasher);
+ @$(call install_link, libkcapi, kcapi-hasher, /usr/bin/fipscheck);
+ @$(call install_link, libkcapi, kcapi-hasher, /usr/bin/fipshmac);
+ @$(call install_link, libkcapi, kcapi-hasher, /usr/bin/sha1hmac);
+ @$(call install_link, libkcapi, kcapi-hasher, /usr/bin/sha224hmac);
+ @$(call install_link, libkcapi, kcapi-hasher, /usr/bin/sha256hmac);
+ @$(call install_link, libkcapi, kcapi-hasher, /usr/bin/sha384hmac);
+ @$(call install_link, libkcapi, kcapi-hasher, /usr/bin/sha512hmac);
ifdef PTXCONF_LIBKCAPI_MD5SUM
- @$(call install_link, libkcapi, /usr/bin/kcapi-hasher, /usr/bin/md5sum);
+ @$(call install_link, libkcapi, kcapi-hasher, /usr/bin/md5sum);
endif
ifdef PTXCONF_LIBKCAPI_SHA1SUM
- @$(call install_link, libkcapi, /usr/bin/kcapi-hasher, /usr/bin/sha1sum);
+ @$(call install_link, libkcapi, kcapi-hasher, /usr/bin/sha1sum);
+endif
+
+ifdef PTXCONF_LIBKCAPI_SHA224SUM
+ @$(call install_link, libkcapi, kcapi-hasher, /usr/bin/sha224sum);
endif
ifdef PTXCONF_LIBKCAPI_SHA256SUM
- @$(call install_link, libkcapi, /usr/bin/kcapi-hasher, /usr/bin/sha256sum);
+ @$(call install_link, libkcapi, kcapi-hasher, /usr/bin/sha256sum);
endif
ifdef PTXCONF_LIBKCAPI_SHA384SUM
- @$(call install_link, libkcapi, /usr/bin/kcapi-hasher, /usr/bin/sha384sum);
+ @$(call install_link, libkcapi, kcapi-hasher, /usr/bin/sha384sum);
endif
ifdef PTXCONF_LIBKCAPI_SHA512SUM
- @$(call install_link, libkcapi, /usr/bin/kcapi-hasher, /usr/bin/sha512sum);
+ @$(call install_link, libkcapi, kcapi-hasher, /usr/bin/sha512sum);
endif
ifdef PTXCONF_LIBKCAPI_TEST
diff --git a/rules/libkmod.make b/rules/libkmod.make
index f51d4323e..1f7e73d00 100644
--- a/rules/libkmod.make
+++ b/rules/libkmod.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBKMOD) += libkmod
#
# Paths and names
#
-LIBKMOD_VERSION := 28
-LIBKMOD_MD5 := 0a2b887b1b3dfb8c0b3f41f598203e56
+LIBKMOD_VERSION := 32
+LIBKMOD_MD5 := 1046fda48766fae905f83150d12eec78
LIBKMOD := kmod-$(LIBKMOD_VERSION)
LIBKMOD_SUFFIX := tar.xz
LIBKMOD_URL := $(call ptx/mirror, KERNEL, utils/kernel/kmod/$(LIBKMOD).$(LIBKMOD_SUFFIX))
@@ -35,17 +35,19 @@ LIBKMOD_CONF_TOOL := autoconf
LIBKMOD_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
$(GLOBAL_LARGE_FILE_OPTION) \
- --disable-experimental \
--$(call ptx/endis, PTXCONF_LIBKMOD_TOOLS)-tools \
--disable-manpages \
--disable-test-modules \
--$(call ptx/endis, PTXCONF_LIBKMOD_LOGGING)-logging \
--$(call ptx/endis, PTXCONF_LIBKMOD_DEBUG)-debug \
- --disable-python \
--disable-coverage \
+ --disable-gtk-doc \
+ --disable-gtk-doc-html \
+ --disable-gtk-doc-pdf \
+ --$(call ptx/endis, PTXDIST_Y2038)-year2038 \
+ --$(call ptx/wwo, PTXCONF_LIBKMOD_ZSTD)-zstd \
--without-xz \
--$(call ptx/wwo, PTXCONF_LIBKMOD_ZLIB)-zlib \
- --$(call ptx/wwo, PTXCONF_LIBKMOD_ZSTD)-zstd \
--without-openssl
# ----------------------------------------------------------------------------
diff --git a/rules/libksba.make b/rules/libksba.make
index 554440cbe..853fe90ab 100644
--- a/rules/libksba.make
+++ b/rules/libksba.make
@@ -14,11 +14,13 @@ PACKAGES-$(PTXCONF_LIBKSBA) += libksba
#
# Paths and names
#
-LIBKSBA_VERSION := 1.3.5
-LIBKSBA_MD5 := 8302a3e263a7c630aa7dea7d341f07a2
+LIBKSBA_VERSION := 1.6.5
+LIBKSBA_MD5 := 57b88e5d24c8705d9a3ba3832140d188
LIBKSBA := libksba-$(LIBKSBA_VERSION)
LIBKSBA_SUFFIX := tar.bz2
-LIBKSBA_URL := ftp://ftp.gnupg.org/gcrypt/libksba/$(LIBKSBA).$(LIBKSBA_SUFFIX)
+LIBKSBA_URL := \
+ https://www.gnupg.org/ftp/gcrypt/libksba/$(LIBKSBA).$(LIBKSBA_SUFFIX) \
+ ftp://ftp.gnupg.org/gcrypt/libksba/$(LIBKSBA).$(LIBKSBA_SUFFIX)
LIBKSBA_SOURCE := $(SRCDIR)/$(LIBKSBA).$(LIBKSBA_SUFFIX)
LIBKSBA_DIR := $(BUILDDIR)/$(LIBKSBA)
LIBKSBA_LICENSE := GPL-2.0-only AND GPL-3.0-only AND LGPL-3.0-only
@@ -34,9 +36,12 @@ LIBKSBA_LICENSE_FILES := \
#
# autoconf
#
-LIBKSBA_AUTOCONF := \
+LIBKSBA_CONF_TOOL := autoconf
+LIBKSBA_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
+ --disable-gcov \
--enable-build-timestamp="$(PTXDIST_BUILD_TIMESTAMP)" \
+ --disable-doc \
--enable-optimization
# ----------------------------------------------------------------------------
diff --git a/rules/liblist.make b/rules/liblist.make
index 1fde1989f..b47240872 100644
--- a/rules/liblist.make
+++ b/rules/liblist.make
@@ -29,13 +29,11 @@ LIBLIST_LICENSE_FILES := file://src/list.c;startline=10;endline=22;md5=5ace59915
# Prepare
# ----------------------------------------------------------------------------
-LIBLIST_PATH := PATH=$(CROSS_PATH)
-LIBLIST_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBLIST_AUTOCONF := $(CROSS_AUTOCONF_USR)
+LIBLIST_CONF_TOOL := autoconf
+LIBLIST_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/liblockfile.make b/rules/liblockfile.make
index 2bc35f1b1..06f3c8bd1 100644
--- a/rules/liblockfile.make
+++ b/rules/liblockfile.make
@@ -30,14 +30,14 @@ LIBLOCKFILE_LICENSE_FILES := file://COPYRIGHT;md5=35127b30003a121544b5d13a2ac868
# Prepare
# ----------------------------------------------------------------------------
-LIBLOCKFILE_PATH := PATH=$(CROSS_PATH)
-LIBLOCKFILE_ENV := $(CROSS_ENV)
-LIBLOCKFILE_MAKEVARS := ROOT=$(PKGDIR)/$(LIBLOCKFILE) $(CROSS_ENV_AR)
+LIBLOCKFILE_MAKE_OPT := $(CROSS_ENV_AR)
+LIBLOCKFILE_INSTALL_OPT := ROOT=$(PKGDIR)/$(LIBLOCKFILE) install
#
# autoconf
#
-LIBLOCKFILE_AUTOCONF := $(CROSS_AUTOCONF_USR)
+LIBLOCKFILE_CONF_TOOL := autoconf
+LIBLOCKFILE_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libltdl.make b/rules/libltdl.make
index 7b0c7ff5d..aa83dab85 100644
--- a/rules/libltdl.make
+++ b/rules/libltdl.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBLTDL) += libltdl
#
# Paths and names
#
-LIBLTDL_VERSION := 2.4.3
-LIBLTDL_MD5 := ec4dabd3bc580dc188197d4d5eb95fe3
+LIBLTDL_VERSION := 2.4.7
+LIBLTDL_MD5 := ed40528d8a066ee3fffd714588721cff
LIBLTDL := libtool-$(LIBLTDL_VERSION)
LIBLTDL_SUFFIX := tar.gz
LIBLTDL_URL := $(call ptx/mirror, GNU, libtool/$(LIBLTDL).$(LIBLTDL_SUFFIX))
@@ -30,13 +30,13 @@ LIBLTDL_LICENSE_FILES := \
# Prepare
# ----------------------------------------------------------------------------
-LIBLTDL_PATH := PATH=$(CROSS_PATH)
-LIBLTDL_ENV := $(CROSS_ENV) HELP2MAN=:
+LIBLTDL_CONF_ENV := $(CROSS_ENV) HELP2MAN=:
#
# autoconf
#
-LIBLTDL_AUTOCONF := $(CROSS_AUTOCONF_USR)
+LIBLTDL_CONF_TOOL := autoconf
+LIBLTDL_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/liblzo.in b/rules/liblzo.in
index ad5d3293a..175d26ed4 100644
--- a/rules/liblzo.in
+++ b/rules/liblzo.in
@@ -8,4 +8,4 @@ config LIBLZO
help
Compiles the LZO compression libraries on your target system.
- See http://www.oberhumer.com/opensource/lzo/ for info about it.
+ See http://www.oberhumer.com/opensource/lzo/ for info about it.
diff --git a/rules/liblzo.make b/rules/liblzo.make
index cf1e3c0e4..15bd6bd49 100644
--- a/rules/liblzo.make
+++ b/rules/liblzo.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_LIBLZO) += liblzo
#
# Paths and names
#
-LIBLZO_VERSION := 2.08
-LIBLZO_MD5 := fcec64c26a0f4f4901468f360029678f
+LIBLZO_VERSION := 2.10
+LIBLZO_MD5 := 39d3f3f9c55c87b1e5d6888e1420f4b5
LIBLZO := lzo-$(LIBLZO_VERSION)
LIBLZO_SUFFIX := tar.gz
LIBLZO_URL := http://www.oberhumer.com/opensource/lzo/download/$(LIBLZO).$(LIBLZO_SUFFIX)
@@ -28,13 +28,11 @@ LIBLZO_LICENSE := GPL-2.0-or-later
# Prepare
# ----------------------------------------------------------------------------
-LIBLZO_PATH := PATH=$(CROSS_PATH)
-LIBLZO_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBLZO_AUTOCONF := \
+LIBLZO_CONF_TOOL := autoconf
+LIBLZO_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--enable-shared \
--disable-static
diff --git a/rules/libmad.make b/rules/libmad.make
index 7f7ced6dd..f0bf8d090 100644
--- a/rules/libmad.make
+++ b/rules/libmad.make
@@ -18,7 +18,7 @@ LIBMAD_VERSION := 0.15.1b
LIBMAD_MD5 := 1be543bc30c56fb6bea1d7bf6a64e66c
LIBMAD := libmad-$(LIBMAD_VERSION)
LIBMAD_SUFFIX := tar.gz
-LIBMAD_URL := ftp://ftp.mars.org/pub/mpeg/$(LIBMAD).$(LIBMAD_SUFFIX)
+LIBMAD_URL := $(call ptx/mirror, SF, mad/libmad/$(LIBMAD_VERSION)/$(LIBMAD).$(LIBMAD_SUFFIX))
LIBMAD_SOURCE := $(SRCDIR)/$(LIBMAD).$(LIBMAD_SUFFIX)
LIBMAD_DIR := $(BUILDDIR)/$(LIBMAD)
LIBMAD_LICENSE := GPL-2.0-or-later
@@ -27,23 +27,21 @@ LIBMAD_LICENSE := GPL-2.0-or-later
# Prepare
# ----------------------------------------------------------------------------
-LIBMAD_PATH := PATH=$(CROSS_PATH)
-LIBMAD_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBMAD_AUTOCONF := \
+LIBMAD_CONF_TOOL := autoconf
+LIBMAD_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-debugging \
--disable-profiling \
--disable-experimental
ifdef PTXCONF_LIBMAD__OPT_SPEED
-LIBMAD_AUTOCONF += --enable-speed
+LIBMAD_CONF_OPT += --enable-speed
endif
ifdef PTXCONF_LIBMAD__OPT_ACCURACY
-LIBMAD_AUTOCONF += --enable-accuracy
+LIBMAD_CONF_OPT += --enable-accuracy
endif
# ----------------------------------------------------------------------------
diff --git a/rules/libmbim.in b/rules/libmbim.in
index 2f5e21f02..01e222533 100644
--- a/rules/libmbim.in
+++ b/rules/libmbim.in
@@ -2,7 +2,7 @@
config LIBMBIM
tristate
- select HOST_SYSTEM_PYTHON3
+ select HOST_MESON
select GLIB
select UDEV
select LIBGUDEV
diff --git a/rules/libmbim.make b/rules/libmbim.make
index 1d7ac7deb..4ac026dcd 100644
--- a/rules/libmbim.make
+++ b/rules/libmbim.make
@@ -14,35 +14,33 @@ PACKAGES-$(PTXCONF_LIBMBIM) += libmbim
#
# Paths and names
#
-LIBMBIM_VERSION := 1.24.2
-LIBMBIM_MD5 := 6c2b490af87773c8446f37536e7411ac
-LIBMBIM := libmbim-$(LIBMBIM_VERSION)
-LIBMBIM_SUFFIX := tar.xz
-LIBMBIM_URL := http://www.freedesktop.org/software/libmbim/$(LIBMBIM).$(LIBMBIM_SUFFIX)
-LIBMBIM_SOURCE := $(SRCDIR)/$(LIBMBIM).$(LIBMBIM_SUFFIX)
-LIBMBIM_DIR := $(BUILDDIR)/$(LIBMBIM)
-LIBMBIM_LICENSE := GPL-2.0-or-later AND LGPL-2.1-or-later
+LIBMBIM_VERSION := 1.30.0
+LIBMBIM_MD5 := dcfb85bd4338f0aa8a851d5d80d123f7
+LIBMBIM := libmbim-$(LIBMBIM_VERSION)
+LIBMBIM_SUFFIX := tar.bz2
+LIBMBIM_URL := https://gitlab.freedesktop.org/mobile-broadband/libmbim/-/archive/$(LIBMBIM_VERSION)/$(LIBMBIM).$(LIBMBIM_SUFFIX)
+LIBMBIM_SOURCE := $(SRCDIR)/$(LIBMBIM).$(LIBMBIM_SUFFIX)
+LIBMBIM_DIR := $(BUILDDIR)/$(LIBMBIM)
+LIBMBIM_LICENSE := GPL-2.0-or-later AND LGPL-2.1-or-later
+LIBMBIM_LICENSE_FILES := \
+ file://LICENSES/GPL-2.0-or-later.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://LICENSES/LGPL-2.1-or-later.txt;md5=4fbd65380cdd255951079008b364516c
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-LIBMBIM_CONF_ENV := \
- $(CROSS_ENV) \
- ac_cv_path_PYTHON=$(SYSTEMPYTHON3)
#
-# autoconf
+# meson
#
-LIBMBIM_CONF_TOOL := autoconf
+LIBMBIM_CONF_TOOL := meson
LIBMBIM_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --disable-compile-warnings \
- --disable-Werror \
- --disable-gtk-doc \
- --disable-gtk-doc-html \
- --disable-gtk-doc-pdf \
- --disable-introspection \
- --with-udev-base-dir=/usr/lib/udev
+ $(CROSS_MESON_USR) \
+ -Dudevdir=/usr/lib/udev \
+ -Dintrospection=false \
+ -Dgtk_doc=false \
+ -Dman=false \
+ -Dbash_completion=false
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libmd.in b/rules/libmd.in
new file mode 100644
index 000000000..234f56a63
--- /dev/null
+++ b/rules/libmd.in
@@ -0,0 +1,7 @@
+## SECTION=system_libraries
+
+config LIBMD
+ tristate
+ prompt "libmd"
+ help
+ message digest functions from BSD systems
diff --git a/rules/libmd.make b/rules/libmd.make
new file mode 100644
index 000000000..d466ad49d
--- /dev/null
+++ b/rules/libmd.make
@@ -0,0 +1,59 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBMD) += libmd
+
+#
+# Paths and names
+#
+LIBMD_VERSION := 1.1.0
+LIBMD_MD5 := b2a0650c78d92c7a9632a2a3cdd4f6a6
+LIBMD := libmd-$(LIBMD_VERSION)
+LIBMD_SUFFIX := tar.xz
+LIBMD_URL := https://libbsd.freedesktop.org/releases/$(LIBMD).$(LIBMD_SUFFIX)
+LIBMD_SOURCE := $(SRCDIR)/$(LIBMD).$(LIBMD_SUFFIX)
+LIBMD_DIR := $(BUILDDIR)/$(LIBMD)
+LIBMD_LICENSE := BSD-3-Clause AND BSD-2-Clause AND ISC AND Beerware AND public_domain
+LIBMD_LICENSE_FILES := \
+ file://COPYING;md5=0436d4fb62a71f661d6e8b7812f9e1df
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+LIBMD_CONF_TOOL := autoconf
+LIBMD_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ $(GLOBAL_LARGE_FILE_OPTION)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libmd.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libmd)
+ @$(call install_fixup, libmd,PRIORITY,optional)
+ @$(call install_fixup, libmd,SECTION,base)
+ @$(call install_fixup, libmd,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, libmd,DESCRIPTION,missing)
+
+ @$(call install_lib, libmd, 0, 0, 0644, libmd)
+
+ @$(call install_finish, libmd)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libmemcache.make b/rules/libmemcache.make
index ac461f6e8..dc4680e24 100644
--- a/rules/libmemcache.make
+++ b/rules/libmemcache.make
@@ -26,7 +26,7 @@ LIBMEMCACHE_DIR := $(BUILDDIR)/$(LIBMEMCACHE)
# Prepare
# ----------------------------------------------------------------------------
-LIBMEMCACHE_ENV := \
+LIBMEMCACHE_CONF_ENV := \
$(CROSS_ENV) \
ac_cv_setsockopt_SO_RCVTIMEO=no \
ac_cv_setsockopt_SO_SNDTIMEO=no
@@ -34,9 +34,10 @@ LIBMEMCACHE_ENV := \
#
# autoconf
#
-LIBMEMCACHE_AUTOCONF := $(CROSS_AUTOCONF_USR)
+LIBMEMCACHE_CONF_TOOL := autoconf
+LIBMEMCACHE_CONF_OPT := $(CROSS_AUTOCONF_USR)
-LIBMEMCACHE_CFLAGS := -D_XOPEN_SOURCE=600
+LIBMEMCACHE_CFLAGS := -D_XOPEN_SOURCE=600
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libmemcached.in b/rules/libmemcached.in
index 340c84e0e..3c78bc592 100644
--- a/rules/libmemcached.in
+++ b/rules/libmemcached.in
@@ -14,8 +14,8 @@ menuconfig LIBMEMCACHED
implements several command line tools: memcat, memflush, memrm,
memstat, and memslap (for load generation). The library has been
designed to allow for different hashing methods on keys,
- partitioning by keys, and to use consistent hashing for
- distribution.
+ partitioning by keys, and to use consistent hashing for
+ distribution.
You can find more information here: http://tangent.org/552/libmemcached.html
config LIBMEMCACHED_LIBHASHKIT
diff --git a/rules/libmemcached.make b/rules/libmemcached.make
index 41111d922..4eafc5cae 100644
--- a/rules/libmemcached.make
+++ b/rules/libmemcached.make
@@ -28,17 +28,17 @@ LIBMEMCACHED_LICENSE_FILES := file://COPYING;md5=0b0ea33346dc4b11e1f4d1d7a698201
# Prepare
# ----------------------------------------------------------------------------
-LIBMEMCACHED_ENV := \
- $(CROSS_ENV)
-
-#We have libevent but disable it so clients/memslap doesn't build.
-#It fails to link because __sync_fetch_and_sub_4 is missing.
-LIBMEMCACHED_ENV += ac_cv_libevent=no
+# We have libevent but disable it so clients/memslap doesn't build.
+# It fails to link because __sync_fetch_and_sub_4 is missing.
+LIBMEMCACHED_CONF_ENV := \
+ $(CROSS_ENV) \
+ ac_cv_libevent=no
#
# autoconf
#
-LIBMEMCACHED_AUTOCONF := \
+LIBMEMCACHED_CONF_TOOL := autoconf
+LIBMEMCACHED_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-fat-binaries \
--disable-64bit \
@@ -62,6 +62,7 @@ LIBMEMCACHED_AUTOCONF := \
--without-debug \
--without-memcached \
--without-docs
+
# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
diff --git a/rules/libmicrohttpd.make b/rules/libmicrohttpd.make
index e79b29ce4..68952eb8d 100644
--- a/rules/libmicrohttpd.make
+++ b/rules/libmicrohttpd.make
@@ -15,14 +15,25 @@ PACKAGES-$(PTXCONF_LIBMICROHTTPD) += libmicrohttpd
#
# Paths and names
#
-LIBMICROHTTPD_VERSION := 0.9.66
-LIBMICROHTTPD_MD5 := ce4050e75cc40d68506e2b403e1a76f9
+LIBMICROHTTPD_VERSION := 0.9.75
+LIBMICROHTTPD_MD5 := aff64581937b53f3a23b05216ad2cd02
LIBMICROHTTPD := libmicrohttpd-$(LIBMICROHTTPD_VERSION)
LIBMICROHTTPD_SUFFIX := tar.gz
LIBMICROHTTPD_URL := $(call ptx/mirror, GNU, libmicrohttpd/$(LIBMICROHTTPD).$(LIBMICROHTTPD_SUFFIX))
LIBMICROHTTPD_SOURCE := $(SRCDIR)/$(LIBMICROHTTPD).$(LIBMICROHTTPD_SUFFIX)
LIBMICROHTTPD_DIR := $(BUILDDIR)/$(LIBMICROHTTPD)
+
+LIBMICROHTTPD_LICENSE_FILES := \
+ file://README;startline=10;endline=11;md5=c6f1444a4efd67e04f3452dc1e97c24d \
+ file://COPYING;md5=57d09285feac8a64efa878e692b14f36
+ifdef PTXCONF_LIBMICROHTTPD_HTTPS
+LIBMICROHTTPD_LICENSE := LGPL-2.1-only
+else
LIBMICROHTTPD_LICENSE := LGPL-2.1-only OR GPL-2.0-only WITH eCos-exception-2.0
+LIBMICROHTTPD_LICENSE_FILES += \
+ file://doc/gpl-2.0.texi;md5=677a43782a1741516a301d9bc9ba9bf6 \
+ file://doc/ecos.texi;md5=3d1924c9f32fb6f323cca650df416f54
+endif
# ----------------------------------------------------------------------------
# Prepare
@@ -34,13 +45,30 @@ LIBMICROHTTPD_LICENSE := LGPL-2.1-only OR GPL-2.0-only WITH eCos-exception-2.0
LIBMICROHTTPD_CONF_TOOL := autoconf
LIBMICROHTTPD_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
- $(GLOBAL_LARGE_FILE_OPTION) \
+ --disable-nls \
+ --disable-rpath \
+ --enable-gcc-hardening \
+ --enable-linker-hardening \
+ --disable-thread-names \
+ --disable-doc \
+ --disable-examples \
+ --disable-heavy-tests \
+ --enable-poll \
+ --enable-epoll \
+ --enable-itc=eventfd \
--disable-curl \
+ $(GLOBAL_LARGE_FILE_OPTION) \
+ --enable-sendfile \
--$(call ptx/endis, PTXCONF_LIBMICROHTTPD_MESSAGES)-messages \
+ --enable-postprocessor \
--$(call ptx/endis, PTXCONF_LIBMICROHTTPD_HTTPS)-https \
--enable-bauth \
--disable-dauth \
- --disable-coverage
+ --disable-httpupgrade \
+ --disable-coverage \
+ --enable-asserts \
+ --disable-sanitizers \
+ --disable-experimental
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libmng.make b/rules/libmng.make
index c89ff198a..37f9c37c6 100644
--- a/rules/libmng.make
+++ b/rules/libmng.make
@@ -21,18 +21,18 @@ LIBMNG_SUFFIX := tar.bz2
LIBMNG_URL := $(call ptx/mirror, SF, libmng/$(LIBMNG).$(LIBMNG_SUFFIX))
LIBMNG_SOURCE := $(SRCDIR)/$(LIBMNG).$(LIBMNG_SUFFIX)
LIBMNG_DIR := $(BUILDDIR)/$(LIBMNG)
+LIBMNG_LICENSE := custom
+LIBMNG_LICENSE_FILES := file://LICENSE;md5=32becdb8930f90eab219a8021130ec09
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-LIBMNG_PATH := PATH=$(CROSS_PATH)
-LIBMNG_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBMNG_AUTOCONF := \
+LIBMNG_CONF_TOOL := autoconf
+LIBMNG_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-jpeg \
--$(call ptx/wwo, PTXCONF_LIBMNG_LCMS)-lcms
diff --git a/rules/libmnl.make b/rules/libmnl.make
index f2ce45178..9106a5bf4 100644
--- a/rules/libmnl.make
+++ b/rules/libmnl.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBMNL) += libmnl
#
# Paths and names
#
-LIBMNL_VERSION := 1.0.4
-LIBMNL_MD5 := be9b4b5328c6da1bda565ac5dffadb2d
+LIBMNL_VERSION := 1.0.5
+LIBMNL_MD5 := 0bbb70573119ec5d49435114583e7a49
LIBMNL := libmnl-$(LIBMNL_VERSION)
LIBMNL_SUFFIX := tar.bz2
LIBMNL_URL := http://ftp.netfilter.org/pub/libmnl/$(LIBMNL).$(LIBMNL_SUFFIX)
diff --git a/rules/libmodbus.make b/rules/libmodbus.make
index 1335c85d0..3a709aa65 100644
--- a/rules/libmodbus.make
+++ b/rules/libmodbus.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_LIBMODBUS) += libmodbus
#
# Paths and names
#
-LIBMODBUS_VERSION := 2.0.4
-LIBMODBUS_MD5 := 6b3aa500ab441a953eeb73a8c58cdf76
+LIBMODBUS_VERSION := 3.0.8
+LIBMODBUS_MD5 := 69cb3ebe134d1f1e2768c2127ed9b5d6
LIBMODBUS := libmodbus-$(LIBMODBUS_VERSION)
LIBMODBUS_SUFFIX := tar.gz
-LIBMODBUS_URL := http://github.com/downloads/stephane/libmodbus/$(LIBMODBUS).$(LIBMODBUS_SUFFIX)
+LIBMODBUS_URL := https://libmodbus.org/releases/$(LIBMODBUS).$(LIBMODBUS_SUFFIX)
LIBMODBUS_SOURCE := $(SRCDIR)/$(LIBMODBUS).$(LIBMODBUS_SUFFIX)
LIBMODBUS_DIR := $(BUILDDIR)/$(LIBMODBUS)
LIBMODBUS_LICENSE := LGPL-3.0-only
@@ -28,13 +28,9 @@ LIBMODBUS_LICENSE := LGPL-3.0-only
# ----------------------------------------------------------------------------
-LIBMODBUS_PATH := PATH=$(CROSS_PATH)
-LIBMODBUS_ENV := $(CROSS_ENV)
-
-#
-# autoconf
-#
-LIBMODBUS_AUTOCONF := $(CROSS_AUTOCONF_USR)
+LIBMODBUS_CONF_TOOL := autoconf
+LIBMODBUS_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libmxml.make b/rules/libmxml.make
index 75c401692..32c12e8fa 100644
--- a/rules/libmxml.make
+++ b/rules/libmxml.make
@@ -12,16 +12,17 @@ PACKAGES-$(PTXCONF_LIBMXML) += libmxml
#
# Paths and names
#
-LIBMXML_VERSION := 2.12
-LIBMXML_MD5 := 35f8416ee2d27ceab653ea2ff64c794c
+LIBMXML_VERSION := 3.3.1
+LIBMXML_MD5 := 078dc38807d4f1b9e92c95515ff2aec3
LIBMXML := mxml-$(LIBMXML_VERSION)
LIBMXML_SUFFIX := tar.gz
LIBMXML_URL := https://github.com/michaelrsweet/mxml/releases/download/v$(LIBMXML_VERSION)/$(LIBMXML).$(LIBMXML_SUFFIX)
-# TODO: remove 'v2' with next version bump
-# needed for 2.12 because of incompatible tarball changes
-LIBMXML_SOURCE := $(SRCDIR)/$(LIBMXML)v2.$(LIBMXML_SUFFIX)
+LIBMXML_SOURCE := $(SRCDIR)/$(LIBMXML).$(LIBMXML_SUFFIX)
LIBMXML_DIR := $(BUILDDIR)/mxml-$(LIBMXML_VERSION)
-LIBMXML_LICENSE := LGPL-2.0-only
+LIBMXML_LICENSE := Apache-2.0 WITH custom-exception
+LIBMXML_LICENSE_FILES := \
+ file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327 \
+ file://NOTICE;md5=6fe66de3d1a8a73def255cf8944376f0
# ----------------------------------------------------------------------------
# Prepare
@@ -32,7 +33,9 @@ LIBMXML_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-debug \
--enable-threads \
- --enable-shared
+ --enable-shared \
+ --without-ansi \
+ --without-vsnprintf
# build static lib, too. make install will fail otherwise
LIBMXML_MAKE_OPT := \
diff --git a/rules/libndp.make b/rules/libndp.make
index 1711c508c..47cb268f1 100644
--- a/rules/libndp.make
+++ b/rules/libndp.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_LIBNDP) += libndp
#
# Paths and names
#
-LIBNDP_VERSION := 1.7
-LIBNDP_MD5 := ea4a2a3351991c1d561623772364ae14
-LIBNDP := libndp-$(LIBNDP_VERSION)
-LIBNDP_SUFFIX := tar.gz
-LIBNDP_URL := http://libndp.org/files/$(LIBNDP).$(LIBNDP_SUFFIX)
-LIBNDP_SOURCE := $(SRCDIR)/$(LIBNDP).$(LIBNDP_SUFFIX)
-LIBNDP_DIR := $(BUILDDIR)/$(LIBNDP)
-LIBNDP_LICENSE := LGPL-2.1-only
+LIBNDP_VERSION := 1.7
+LIBNDP_MD5 := ea4a2a3351991c1d561623772364ae14
+LIBNDP := libndp-$(LIBNDP_VERSION)
+LIBNDP_SUFFIX := tar.gz
+LIBNDP_URL := http://libndp.org/files/$(LIBNDP).$(LIBNDP_SUFFIX)
+LIBNDP_SOURCE := $(SRCDIR)/$(LIBNDP).$(LIBNDP_SUFFIX)
+LIBNDP_DIR := $(BUILDDIR)/$(LIBNDP)
+LIBNDP_LICENSE := LGPL-2.1-only
+LIBNDP_LICENSE_FILES := \
+ file://COPYING;md5=4fbd65380cdd255951079008b364516c
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/libnet.in b/rules/libnet.in
index f7270dd18..2eb2b9376 100644
--- a/rules/libnet.in
+++ b/rules/libnet.in
@@ -6,7 +6,7 @@ config LIBNET
help
Libnet is a generic networking API that provides
access to several protocols. It is not designed
- as a 'all in one' solution to networking. Currently
+ as an 'all in one' solution to networking. Currently
many features that are common in some network
protocols are not available with Libnet, such as
streaming via TCP/IP.
diff --git a/rules/libnetpbm.in b/rules/libnetpbm.in
deleted file mode 100644
index 76ca9a03b..000000000
--- a/rules/libnetpbm.in
+++ /dev/null
@@ -1,58 +0,0 @@
-## SECTION=multimedia_libs
-# netpbm configuration
-
-menuconfig LIBNETPBM
- tristate
- select LIBC_M
- select LIBPNG if LIBNETPBM_PNG2PNM
- prompt "libnetpbm "
- help
- libnetpbm is a C programming library for reading,
- writing, and manipulating Netpbm images. It also
- contains a few general graphics manipulation tools,
- but it is not intended to be a graphics tools library.
-
-if LIBNETPBM
-
-config LIBNETPBM_BUILD_FIASCO
- bool
- prompt "build fiasco"
- help
- FIASCO stands for Fractal Image and Sequence Codec.
-
-config LIBNETPBM_PBM2LJ
- bool
- prompt "pbmtolj"
- help
- Convert color pbm bitmaps to HP-PCL5
-
-config LIBNETPBM_PPM2LJ
- bool
- prompt "ppmtolj"
- help
- Convert monochrome ppm bitmaps to HP-PCL5
-
-config LIBNETPBM_PNG2PNM
- bool
- # broken with current libpng
- depends on BROKEN
- prompt "pngtopnm"
- help
- Convert png images to portable anymap.
-
-config LIBNETPBM_PNM2XWD
- bool
- prompt "pnmtoxwd"
- help
- Convert portable anymap to x window dump image
-
-config LIBNETPBM_XWD2PNM
- bool
- prompt "xwdtopnm"
- help
- Convert x window dump image to portable anymap
-
-# FIXME: add library support (TIFF, JPEG, ...)
-
-
-endif
diff --git a/rules/libnetpbm.make b/rules/libnetpbm.make
deleted file mode 100644
index 0e5eb27ba..000000000
--- a/rules/libnetpbm.make
+++ /dev/null
@@ -1,95 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2005 by Robert Schwebel
-# (C) 2010 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_LIBNETPBM) += libnetpbm
-
-#
-# Paths and names
-#
-LIBNETPBM_VERSION := 10.35.86
-LIBNETPBM_MD5 := f1b2411d77c7cfc48d80169193330451
-LIBNETPBM := netpbm-$(LIBNETPBM_VERSION)
-LIBNETPBM_SUFFIX := tgz
-LIBNETPBM_URL := $(call ptx/mirror, SF, netpbm/$(LIBNETPBM).$(LIBNETPBM_SUFFIX))
-LIBNETPBM_SOURCE := $(SRCDIR)/$(LIBNETPBM).$(LIBNETPBM_SUFFIX)
-LIBNETPBM_DIR := $(BUILDDIR)/$(LIBNETPBM)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-LIBNETPBM_MAKE_ENV := $(CROSS_ENV)
-LIBNETPBM_MAKE_PAR := NO
-LIBNETPBM_MAKE_OPT := XML2_LIBS=NONE
-ifndef PTXCONF_LIBNETPBM_PNG2PNM
-LIBNETPBM_MAKE_OPT += HAVE_PNGLIB=N
-endif
-LIBNETPBM_INSTALL_OPT := \
- $(LIBNETPBM_MAKE_OPT) \
- pkgdir=$(LIBNETPBM_PKGDIR)/usr \
- install-run install-dev
-
-
-$(STATEDIR)/libnetpbm.prepare:
- @$(call targetinfo)
-
- cp $(LIBNETPBM_DIR)/Makefile.config.in $(LIBNETPBM_DIR)/Makefile.config
-ifdef PTXCONF_LIBNETPBM_BUILD_FIASCO
- sed -i -e "s,^BUILD_FIASCO.*,BUILD_FIASCO=Y,g" $(LIBNETPBM_DIR)/Makefile.config
-else
- sed -i -e "s,^BUILD_FIASCO.*,BUILD_FIASCO=N,g" $(LIBNETPBM_DIR)/Makefile.config
-endif
- sed -i -e "s,^CC =.*,CC=$(CROSS_CC),g" $(LIBNETPBM_DIR)/Makefile.config
- sed -i -e "s,^LINKER_CAN_DO_EXPLICIT_LIBRARY.*,LINKER_CAN_DO_EXPLICIT_LIBRARY=Y,g" $(LIBNETPBM_DIR)/Makefile.config
- sed -i -e "s,^INTTYPES_H.*,INTTYPES_H = <stdint.h>,g" $(LIBNETPBM_DIR)/Makefile.config
- sed -i -e "s,^CC_FOR_BUILD.*,CC_FOR_BUILD=$(HOSTCC),g" $(LIBNETPBM_DIR)/Makefile.config
- sed -i -e "s,^LD_FOR_BUILD.*,LD_FOR_BUILD=$(HOSTCC),g" $(LIBNETPBM_DIR)/Makefile.config
- sed -i -e "s,^CFLAGS_FOR_BUILD.*,CFLAGS_FOR_BUILD=,g" $(LIBNETPBM_DIR)/Makefile.config
- sed -i -e "s,^CFLAGS_SHLIB.*,CFLAGS_SHLIB=-fPIC,g" $(LIBNETPBM_DIR)/Makefile.config
- echo "CFLAGS=$(CROSS_CFLAGS) $(CROSS_CPPFLAGS)" >> $(LIBNETPBM_DIR)/Makefile.config
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/libnetpbm.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, libnetpbm)
- @$(call install_fixup, libnetpbm,PRIORITY,optional)
- @$(call install_fixup, libnetpbm,SECTION,base)
- @$(call install_fixup, libnetpbm,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, libnetpbm,DESCRIPTION,missing)
-
- @$(call install_lib, libnetpbm, 0, 0, 0644, libnetpbm)
-
-ifdef PTXCONF_LIBNETPBM_PBM2LJ
- @$(call install_copy, libnetpbm, 0, 0, 0755, -, /usr/bin/pbmtolj)
-endif
-ifdef PTXCONF_LIBNETPBM_PPM2LJ
- @$(call install_copy, libnetpbm, 0, 0, 0755, -, /usr/bin/ppmtolj)
-endif
-ifdef PTXCONF_LIBNETPBM_PNG2PNM
- @$(call install_copy, libnetpbm, 0, 0, 0755, -, /usr/bin/pngtopnm)
-endif
-ifdef PTXCONF_LIBNETPBM_PNM2XWD
- @$(call install_copy, libnetpbm, 0, 0, 0755, -, /usr/bin/pnmtoxwd)
-endif
-ifdef PTXCONF_LIBNETPBM_XWD2PNM
- @$(call install_copy, libnetpbm, 0, 0, 0755, -, /usr/bin/xwdtopnm)
-endif
- @$(call install_finish, libnetpbm)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/libnfnetlink.in b/rules/libnfnetlink.in
index 91e68a5f4..1523b7d80 100644
--- a/rules/libnfnetlink.in
+++ b/rules/libnfnetlink.in
@@ -4,11 +4,11 @@ config LIBNFNETLINK
tristate
prompt "libnfnetlink"
help
- libnfnetlink is the low-level library for netfilter
- related kernel/userspace communication. It provides a generic
- messaging infrastructure for in-kernel netfilter subsystems
- (such as nfnetlink_log) and their respective users and/or
- management tools in userspace.
- This library is not meant as a public API for application
- developers. It is only used by other netfilter.org projects,
- such as libnetfilter_log,
+ libnfnetlink is the low-level library for netfilter
+ related kernel/userspace communication. It provides a generic
+ messaging infrastructure for in-kernel netfilter subsystems
+ (such as nfnetlink_log) and their respective users and/or
+ management tools in userspace.
+ This library is not meant as a public API for application
+ developers. It is only used by other netfilter.org projects,
+ such as libnetfilter_log,
diff --git a/rules/libnftnl.make b/rules/libnftnl.make
index 8ced28a0d..5369e6afa 100644
--- a/rules/libnftnl.make
+++ b/rules/libnftnl.make
@@ -14,10 +14,10 @@ PACKAGES-$(PTXCONF_LIBNFTNL) += libnftnl
#
# Paths and names
#
-LIBNFTNL_VERSION := 1.1.3
-LIBNFTNL_MD5 := e2a7af0a85c283b2cc837c09635b6bca
+LIBNFTNL_VERSION := 1.2.6
+LIBNFTNL_MD5 := 9bf28deba94430ee7a3dac0dc5c5026b
LIBNFTNL := libnftnl-$(LIBNFTNL_VERSION)
-LIBNFTNL_SUFFIX := tar.bz2
+LIBNFTNL_SUFFIX := tar.xz
LIBNFTNL_URL := http://ftp.netfilter.org/pub/libnftnl/$(LIBNFTNL).$(LIBNFTNL_SUFFIX)
LIBNFTNL_SOURCE := $(SRCDIR)/$(LIBNFTNL).$(LIBNFTNL_SUFFIX)
LIBNFTNL_DIR := $(BUILDDIR)/$(LIBNFTNL)
diff --git a/rules/libnghttp2.in b/rules/libnghttp2.in
new file mode 100644
index 000000000..ef5f879f2
--- /dev/null
+++ b/rules/libnghttp2.in
@@ -0,0 +1,8 @@
+## SECTION=networking
+
+config LIBNGHTTP2
+ tristate
+ select HOST_CMAKE
+ prompt "libnghttp2"
+ help
+ HTTP/2 C Library and tools
diff --git a/rules/libnghttp2.make b/rules/libnghttp2.make
new file mode 100644
index 000000000..cde2dc5de
--- /dev/null
+++ b/rules/libnghttp2.make
@@ -0,0 +1,77 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Bastian Krause <bst@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBNGHTTP2) += libnghttp2
+
+#
+# Paths and names
+#
+LIBNGHTTP2_VERSION := 1.50.0
+LIBNGHTTP2_MD5 := 4168ccacaa009665b6a7fe455842f95b
+LIBNGHTTP2 := nghttp2-$(LIBNGHTTP2_VERSION)
+LIBNGHTTP2_SUFFIX := tar.xz
+LIBNGHTTP2_URL := https://github.com/nghttp2/nghttp2/releases/download/v$(LIBNGHTTP2_VERSION)/$(LIBNGHTTP2).$(LIBNGHTTP2_SUFFIX)
+LIBNGHTTP2_SOURCE := $(SRCDIR)/$(LIBNGHTTP2).$(LIBNGHTTP2_SUFFIX)
+LIBNGHTTP2_DIR := $(BUILDDIR)/$(LIBNGHTTP2)
+LIBNGHTTP2_LICENSE := MIT
+LIBNGHTTP2_LICENSE_FILES := file://COPYING;md5=764abdf30b2eadd37ce47dcbce0ea1ec
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# cmake
+#
+LIBNGHTTP2_CONF_TOOL := cmake
+LIBNGHTTP2_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -DENABLE_APP=OFF \
+ -DENABLE_ASIO_LIB=OFF \
+ -DENABLE_DEBUG=OFF \
+ -DENABLE_DOC=OFF \
+ -DENABLE_EXAMPLES=OFF \
+ -DENABLE_FAILMALLOC=OFF \
+ -DENABLE_HPACK_TOOLS=OFF \
+ -DENABLE_HTTP3=OFF \
+ -DENABLE_LIB_ONLY=ON \
+ -DENABLE_PYTHON_BINDINGS=OFF \
+ -DENABLE_SHARED_LIB=ON \
+ -DENABLE_STATIC_CRT=OFF \
+ -DENABLE_STATIC_LIB=OFF \
+ -DENABLE_THREADS=ON \
+ -DENABLE_WERROR=OFF \
+ -DWITH_JEMALLOC=OFF \
+ -DWITH_LIBBPF=OFF \
+ -DWITH_LIBXML2=OFF \
+ -DWITH_MRUBY=OFF \
+ -DWITH_NEVERBLEED=OFF
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libnghttp2.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libnghttp2)
+ @$(call install_fixup, libnghttp2,PRIORITY,optional)
+ @$(call install_fixup, libnghttp2,SECTION,base)
+ @$(call install_fixup, libnghttp2,AUTHOR,"Bastian Krause <bst@pengutronix.de>")
+ @$(call install_fixup, libnghttp2,DESCRIPTION,missing)
+
+ @$(call install_lib, libnghttp2, 0, 0, 0644, libnghttp2)
+
+ @$(call install_finish, libnghttp2)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libnice.in b/rules/libnice.in
index 8aeb56f3c..ab10b43a9 100644
--- a/rules/libnice.in
+++ b/rules/libnice.in
@@ -3,9 +3,7 @@
config LIBNICE
tristate
prompt "libnice"
- # for autogen.sh
- select HOST_GTK_DOC
-
+ select HOST_MESON
select GLIB
select GSTREAMER1
select OPENSSL
diff --git a/rules/libnice.make b/rules/libnice.make
index f9efde424..c98ca4bfb 100644
--- a/rules/libnice.make
+++ b/rules/libnice.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBNICE) += libnice
#
# Paths and names
#
-LIBNICE_VERSION := 0.1.16
-LIBNICE_MD5 := 5ad936c43d3c6d33117b2c64982f2fd9
+LIBNICE_VERSION := 0.1.21
+LIBNICE_MD5 := fe43ff9ed4db2ecbb2d480c670bee855
LIBNICE := libnice-$(LIBNICE_VERSION)
LIBNICE_SUFFIX := tar.gz
LIBNICE_URL := https://libnice.freedesktop.org/releases/$(LIBNICE).$(LIBNICE_SUFFIX)
@@ -28,23 +28,18 @@ LIBNICE_LICENSE := MPL-1.1 OR LGPL-2.1-only
# ----------------------------------------------------------------------------
#
-# autoconf
+# meson
#
-LIBNICE_CONF_TOOL := autoconf
+LIBNICE_CONF_TOOL := meson
LIBNICE_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --enable-assert \
- --enable-compile-warnings=yes \
- --disable-gupnp \
- --disable-coverage \
- --disable-static-plugins \
- --disable-gtk-doc \
- --disable-gtk-doc-html \
- --disable-gtk-doc-pdf \
- --disable-introspection \
- --with-crypto-library=openssl \
- --with-gstreamer \
- --without-gstreamer-0.10
+ $(CROSS_MESON_USR) \
+ -Dcrypto-library=openssl \
+ -Dexamples=disabled \
+ -Dgstreamer=enabled \
+ -Dgtk_doc=disabled \
+ -Dgupnp=disabled \
+ -Dintrospection=disabled \
+ -Dtests=disabled
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libnih.in b/rules/libnih.in
deleted file mode 100644
index 84e8acf9f..000000000
--- a/rules/libnih.in
+++ /dev/null
@@ -1,18 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=system_libraries
-
-config LIBNIH
- tristate
- prompt "libnih"
- select LIBC_RT
- select LIBC_PTHREAD
- select DBUS
- select HOST_LIBNIH
- help
- libnih is a small library for C application development containing
- functions that, despite its name, are not implemented elsewhere in
- the standard library set.
-
- STAGING: remove in ptxdist-2021.06.0
- Obsolete, unused and dead for a long time. Fails to build with gcc 10.
diff --git a/rules/libnih.make b/rules/libnih.make
deleted file mode 100644
index 12dc74e70..000000000
--- a/rules/libnih.make
+++ /dev/null
@@ -1,60 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2010 by Tim Sander <tim.sander@hbm.com>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_LIBNIH) += libnih
-
-#
-# Paths and names
-#
-LIBNIH_VERSION := 1.0.2
-LIBNIH_MD5 := 89bf20db4ff3f005cc37482a4f050650
-LIBNIH := libnih-$(LIBNIH_VERSION)
-LIBNIH_SUFFIX := tar.gz
-LIBNIH_URL := http://launchpad.net/libnih/1.0/$(LIBNIH_VERSION)/+download/$(LIBNIH).$(LIBNIH_SUFFIX)
-LIBNIH_DIR := $(BUILDDIR)/$(LIBNIH)
-LIBNIH_SOURCE := $(SRCDIR)/$(LIBNIH).$(LIBNIH_SUFFIX)
-LIBNIH_LICENSE := GPL-2.0-or-later
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-LIBNIH_ENV := \
- $(CROSS_ENV) \
- NIH_DBUS_TOOL=${PTXDIST_SYSROOT_HOST}/bin/nih-dbus-tool
-
-#
-# autoconf
-#
-LIBNIH_AUTOCONF := \
- $(CROSS_AUTOCONF_USR)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/libnih.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, libnih)
- @$(call install_fixup, libnih, PRIORITY, optional)
- @$(call install_fixup, libnih, SECTION, base)
- @$(call install_fixup, libnih, AUTHOR, "Tim Sandet <tim.sander@hbm.com>")
- @$(call install_fixup, libnih, DESCRIPTION, missing)
-
- @$(call install_lib, libnih, 0, 0, 0644, libnih-dbus);
- @$(call install_lib, libnih, 0, 0, 0644, libnih);
-
- @$(call install_finish, libnih)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/libnl3.make b/rules/libnl3.make
index 191e00126..abb661b90 100644
--- a/rules/libnl3.make
+++ b/rules/libnl3.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBNL3) += libnl3
#
# Paths and names
#
-LIBNL3_VERSION := 3.5.0
-LIBNL3_MD5 := 74ba57b1b1d6f9f92268aa8141d8e8e4
+LIBNL3_VERSION := 3.9.0
+LIBNL3_MD5 := 27bffaccbb22ab9d8cff377b320f6014
LIBNL3 := libnl-$(LIBNL3_VERSION)
LIBNL3_RELEASE := libnl$(subst .,_,$(LIBNL3_VERSION))
LIBNL3_SUFFIX := tar.gz
@@ -126,7 +126,8 @@ ifdef PTXCONF_LIBNL3_ENABLE_CLI
endif
@$(foreach tool,$(LIBNL3_INSTALL_FILES-y), \
- $(call install_copy, libnl3, 0, 0, 0755, -, /usr/bin/$(tool));)
+ $(call install_copy, libnl3, 0, 0, 0755, -, \
+ /usr/bin/$(tool))$(ptx/nl))
@$(call install_alternative, libnl3, 0, 0, 0644, /etc/libnl/classid)
@$(call install_alternative, libnl3, 0, 0, 0644, /etc/libnl/pktloc)
diff --git a/rules/libnvme.in b/rules/libnvme.in
new file mode 100644
index 000000000..ac0bce9ff
--- /dev/null
+++ b/rules/libnvme.in
@@ -0,0 +1,11 @@
+## SECTION=system_libraries
+
+config LIBNVME
+ tristate
+ select HOST_MESON
+ prompt "libnvme"
+ help
+ libnvme provides type definitions for NVMe specification structures,
+ enumerations, and bit fields, helper functions to construct,
+ dispatch, and decode commands and payloads, and utilities to connect,
+ scan, and manage nvme devices on a Linux system.
diff --git a/rules/libnvme.make b/rules/libnvme.make
new file mode 100644
index 000000000..00636ece2
--- /dev/null
+++ b/rules/libnvme.make
@@ -0,0 +1,67 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBNVME) += libnvme
+
+#
+# Paths and names
+#
+LIBNVME_VERSION := 1.8
+LIBNVME_MD5 := ff72b83dc2ada1da0bd528570154eed3
+LIBNVME := libnvme-$(LIBNVME_VERSION)
+LIBNVME_SUFFIX := tar.gz
+LIBNVME_URL := https://github.com/linux-nvme/libnvme/archive/refs/tags/v$(LIBNVME_VERSION).$(LIBNVME_SUFFIX)
+LIBNVME_SOURCE := $(SRCDIR)/$(LIBNVME).$(LIBNVME_SUFFIX)
+LIBNVME_DIR := $(BUILDDIR)/$(LIBNVME)
+LIBNVME_LICENSE := LGPL-2.1-or-later AND GPL-2.0-or-later
+LIBNVME_LICENSE_FILES := \
+ file://COPYING;md5=4fbd65380cdd255951079008b364516c \
+ file://src/nvme/base64.c;startline=1;endline=2;md5=cfa333c28b94c54d228eecd95f238319
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# meson
+#
+LIBNVME_CONF_TOOL := meson
+LIBNVME_CONF_OPT := \
+ $(CROSS_MESON_USR)
+ -Ddocs=false \
+ -Ddocs-build=false \
+ -Djson-c=disabled \
+ -Dkeyutils=disabled \
+ -Dlibdbus=disabled \
+ -Dopenssl=disabled \
+ -Dpython=disabled \
+ -Dtests=false
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libnvme.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libnvme)
+ @$(call install_fixup, libnvme,PRIORITY,optional)
+ @$(call install_fixup, libnvme,SECTION,base)
+ @$(call install_fixup, libnvme,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, libnvme,DESCRIPTION,missing)
+
+ @$(call install_lib, libnvme, 0, 0, 0644, libnvme)
+
+ @$(call install_finish, libnvme)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libogg.make b/rules/libogg.make
index 89ddff6a4..410c33d23 100644
--- a/rules/libogg.make
+++ b/rules/libogg.make
@@ -14,26 +14,28 @@ PACKAGES-$(PTXCONF_LIBOGG) += libogg
#
# Paths and names
#
-LIBOGG_VERSION := 1.1.4
-LIBOGG_MD5 := 10200ec22543841d9d1c23e0aed4e5e9
+LIBOGG_VERSION := 1.3.5
+LIBOGG_MD5 := 3267127fe8d7ba77d3e00cb9d7ad578d
LIBOGG := libogg-$(LIBOGG_VERSION)
LIBOGG_SUFFIX := tar.gz
LIBOGG_URL := http://downloads.xiph.org/releases/ogg/$(LIBOGG).$(LIBOGG_SUFFIX)
LIBOGG_SOURCE := $(SRCDIR)/$(LIBOGG).$(LIBOGG_SUFFIX)
LIBOGG_DIR := $(BUILDDIR)/$(LIBOGG)
LIBOGG_LICENSE := BSD-3-Clause
+LIBOGG_LICENSE_FILES := \
+ file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-LIBOGG_PATH := PATH=$(CROSS_PATH)
-LIBOGG_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBOGG_AUTOCONF := $(CROSS_AUTOCONF_USR)
+LIBOGG_CONF_TOOL := autoconf
+LIBOGG_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --enable-crc
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/liboil.in b/rules/liboil.in
deleted file mode 100644
index 90aab26e0..000000000
--- a/rules/liboil.in
+++ /dev/null
@@ -1,13 +0,0 @@
-## SECTION=system_libraries
-config LIBOIL
- tristate
- prompt "liboil"
- select LIBC_M
- select LIBC_RT
- help
- Liboil is a library of simple functions that are optimized for
- various CPUs ("optimization of inner loops"). See the project
- homepage for details:
-
- http://liboil.freedesktop.org/wiki/
-
diff --git a/rules/liboil.make b/rules/liboil.make
deleted file mode 100644
index f8929d4f6..000000000
--- a/rules/liboil.make
+++ /dev/null
@@ -1,60 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Robert Schwebel <r.schwebel@pengutronix.de>
-# Pengutronix <info@pengutronix.de>, Germany
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_LIBOIL) += liboil
-
-#
-# Paths and names
-#
-LIBOIL_VERSION := 0.3.16
-LIBOIL_MD5 := febb1d9f9bc4c440fcf622dc90f8b6b7
-LIBOIL := liboil-$(LIBOIL_VERSION)
-LIBOIL_SUFFIX := tar.gz
-LIBOIL_URL := http://liboil.freedesktop.org/download/$(LIBOIL).$(LIBOIL_SUFFIX)
-LIBOIL_SOURCE := $(SRCDIR)/$(LIBOIL).$(LIBOIL_SUFFIX)
-LIBOIL_DIR := $(BUILDDIR)/$(LIBOIL)
-LIBOIL_LICENSE := BSD-2-Clause
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-LIBOIL_CONF_ENV := $(CROSS_ENV)
-ifdef PTXCONF_ARCH_ARM64
-LIBOIL_CONF_ENV += as_cv_unaligned_access=no
-endif
-
-#
-# autoconf
-#
-LIBOIL_CONF_TOOL := autoconf
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/liboil.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, liboil)
- @$(call install_fixup, liboil,PRIORITY,optional)
- @$(call install_fixup, liboil,SECTION,base)
- @$(call install_fixup, liboil,AUTHOR,"Guillaume GOURAT <guillaume.gourat@nexvision.fr>")
- @$(call install_fixup, liboil,DESCRIPTION,missing)
-
- @$(call install_lib, liboil, 0, 0, 0644, liboil-0.3)
-
- @$(call install_finish, liboil)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/liboop.make b/rules/liboop.make
index b0a728cbe..1e90f821e 100644
--- a/rules/liboop.make
+++ b/rules/liboop.make
@@ -29,7 +29,8 @@ LIBOOP_DIR := $(BUILDDIR)/$(LIBOOP)
#
# autoconf
#
-LIBOOP_AUTOCONF := \
+LIBOOP_CONF_TOOL := autoconf
+LIBOOP_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--enable-shared \
--enable-static \
diff --git a/rules/libp11.make b/rules/libp11.make
index 2c551b914..2bb789e89 100644
--- a/rules/libp11.make
+++ b/rules/libp11.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_LIBP11) += libp11
#
# Paths and names
#
-LIBP11_VERSION := 0.4.11
-LIBP11_MD5 := 8b907abd572b0eb8e63413549f68dbe1
-LIBP11 := libp11-$(LIBP11_VERSION)
-LIBP11_SUFFIX := tar.gz
-LIBP11_URL := https://github.com/OpenSC/libp11/releases/download/$(LIBP11)/$(LIBP11).$(LIBP11_SUFFIX)
-LIBP11_SOURCE := $(SRCDIR)/$(LIBP11).$(LIBP11_SUFFIX)
-LIBP11_DIR := $(BUILDDIR)/$(LIBP11)
-LIBP11_LICENSE := LGPL-2.1-only
+LIBP11_VERSION := 0.4.12
+LIBP11_MD5 := 2ec3c29523cc06ec60166b320c489c63
+LIBP11 := libp11-$(LIBP11_VERSION)
+LIBP11_SUFFIX := tar.gz
+LIBP11_URL := https://github.com/OpenSC/libp11/releases/download/$(LIBP11)/$(LIBP11).$(LIBP11_SUFFIX)
+LIBP11_SOURCE := $(SRCDIR)/$(LIBP11).$(LIBP11_SUFFIX)
+LIBP11_DIR := $(BUILDDIR)/$(LIBP11)
+LIBP11_LICENSE := LGPL-2.1-only
+LIBP11_LICENSE_FILES := \
+ file://COPYING;md5=fad9b3332be894bab9bc501572864b29
#
# autoconf
@@ -32,7 +34,7 @@ LIBP11_CONF_OPT := \
--disable-strict \
--disable-pedantic \
--disable-api-doc \
- --with-enginesdir=/usr/lib/engines-1.1 \
+ --with-enginesdir=/usr/lib/engines-3 \
--with-pkcs11-module=$(call ptx/ifdef,PTXCONF_LIBP11_PROXY_MODULE,p11-kit-proxy.so)
$(STATEDIR)/libp11.targetinstall:
@@ -46,11 +48,13 @@ $(STATEDIR)/libp11.targetinstall:
@$(call install_lib, libp11, 0, 0, 0644, libp11)
@$(call install_copy, libp11, 0, 0, 0644, -, \
- /usr/lib/engines-1.1/pkcs11.so)
+ /usr/lib/engines-3/pkcs11.so)
@$(call install_link, libp11, pkcs11.so, \
- /usr/lib/engines-1.1/libpkcs11.so)
+ /usr/lib/engines-3/libpkcs11.so)
@$(call install_finish, libp11)
@$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libpcap.make b/rules/libpcap.make
index c14ad9e38..23ab67563 100644
--- a/rules/libpcap.make
+++ b/rules/libpcap.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_LIBPCAP) += libpcap
#
# Paths and names
#
-LIBPCAP_VERSION := 1.8.1
-LIBPCAP_MD5 := 3d48f9cd171ff12b0efd9134b52f1447
+LIBPCAP_VERSION := 1.10.4
+LIBPCAP_MD5 := 0322e28dd76cda8066bb6d00fee5969b
LIBPCAP := libpcap-$(LIBPCAP_VERSION)
LIBPCAP_SUFFIX := tar.gz
-LIBPCAP_URL := http://www.tcpdump.org/release/$(LIBPCAP).$(LIBPCAP_SUFFIX)
+LIBPCAP_URL := https://www.tcpdump.org/release/$(LIBPCAP).$(LIBPCAP_SUFFIX)
LIBPCAP_SOURCE := $(SRCDIR)/$(LIBPCAP).$(LIBPCAP_SUFFIX)
LIBPCAP_DIR := $(BUILDDIR)/$(LIBPCAP)
LIBPCAP_LICENSE := BSD-3-Clause
@@ -27,15 +27,11 @@ LIBPCAP_LICENSE := BSD-3-Clause
# Prepare
# ----------------------------------------------------------------------------
-LIBPCAP_PATH := PATH=$(CROSS_PATH)
-LIBPCAP_ENV := \
+LIBPCAP_CONF_ENV := \
$(CROSS_ENV) \
- ac_cv_linux_vers=2 \
- ac_cv_lib_nl_nl_socket_alloc=no \
- ac_cv_lib_nl_nl_handle_alloc=no \
ac_cv_lbl_hci_channel_monitor_is_defined=no
-LIBPCAP_COMPILE_ENV := \
+LIBPCAP_MAKE_ENV := \
$(CROSS_ENV_CFLAGS) \
$(CROSS_ENV_CPPFLAGS) \
$(CROSS_ENV_LDFLAGS) \
@@ -44,32 +40,29 @@ LIBPCAP_COMPILE_ENV := \
#
# autoconf
#
-LIBPCAP_AUTOCONF := \
+LIBPCAP_CONF_TOOL := autoconf
+LIBPCAP_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
$(GLOBAL_LARGE_FILE_OPTION) \
--enable-protochain \
$(GLOBAL_IPV6_OPTION) \
+ --disable-remote \
--disable-optimizer-dbg \
--disable-yydebug \
--disable-universal \
--enable-shared \
--disable-usb \
+ --disable-netmap \
--$(call ptx/endis, PTXCONF_LIBPCAP_BLUETOOTH)-bluetooth \
--disable-dbus \
- --disable-packet-ring \
- --with-libnl=$(SYSROOT)/usr \
+ --disable-rdma \
+ --with-pcap=linux \
+ --with-libnl \
--without-dag \
--without-septel \
--without-snf \
--without-turbocap
-ifdef PTXCONF_ARCH_MINGW
-LIBPCAP_AUTOCONF += --with-pcap=null
-LIBPCAP_ENV += ac_cv_lbl_gcc_fixincludes=yes
-else
-LIBPCAP_AUTOCONF += --with-pcap=linux
-endif
-
# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
diff --git a/rules/libpciaccess.in b/rules/libpciaccess.in
index 03e6fcb76..efbd52913 100644
--- a/rules/libpciaccess.in
+++ b/rules/libpciaccess.in
@@ -2,26 +2,9 @@
menuconfig LIBPCIACCESS
tristate
- select ZLIB if LIBPCIACCESS_ZLIB
prompt "libpciaccess "
+ select HOST_MESON
+ select HWDATA
help
libpciaccess contains low level access functions to be used by
the xorg servers and video drivers.
-
-if LIBPCIACCESS
-
-config LIBPCIACCESS_MTRR
- bool
- prompt "MTRR support"
- help
- You should carefully check if your x86 target CPU supports MTRRs,
- and if so enable this menuentry.
- BTW: MTRR stands for "memory type range registers" and its used to
- optimize accesses to various memory types, like main memory
- or memory accessible via buses like video memory on PCI cards.
-
-config LIBPCIACCESS_ZLIB
- bool
- default PCIUTILS_COMPRESS
-
-endif
diff --git a/rules/libpciaccess.make b/rules/libpciaccess.make
index 20136d4a2..79b4f9263 100644
--- a/rules/libpciaccess.make
+++ b/rules/libpciaccess.make
@@ -14,10 +14,10 @@ PACKAGES-$(PTXCONF_LIBPCIACCESS) += libpciaccess
#
# Paths and names
#
-LIBPCIACCESS_VERSION := 0.16
-LIBPCIACCESS_MD5 := b34e2cbdd6aa8f9cc3fa613fd401a6d6
+LIBPCIACCESS_VERSION := 0.18.1
+LIBPCIACCESS_MD5 := 57c7efbeceedefde006123a77a7bc825
LIBPCIACCESS := libpciaccess-$(LIBPCIACCESS_VERSION)
-LIBPCIACCESS_SUFFIX := tar.bz2
+LIBPCIACCESS_SUFFIX := tar.xz
LIBPCIACCESS_URL := $(call ptx/mirror, XORG, individual/lib/$(LIBPCIACCESS).$(LIBPCIACCESS_SUFFIX))
LIBPCIACCESS_SOURCE := $(SRCDIR)/$(LIBPCIACCESS).$(LIBPCIACCESS_SUFFIX)
LIBPCIACCESS_DIR := $(BUILDDIR)/$(LIBPCIACCESS)
@@ -27,26 +27,15 @@ LIBPCIACCESS_LICENSE := MIT
# Prepare
# ----------------------------------------------------------------------------
-LIBPCIACCESS_CONF_ENV := $(CROSS_ENV)
-
-ifdef PTXCONF_LIBPCIACCESS_MTRR
-LIBPCIACCESS_CONF_ENV += ac_cv_file__usr_include_asm_mtrr_h=yes
-else
-LIBPCIACCESS_CONF_ENV += ac_cv_file__usr_include_asm_mtrr_h=no
-endif
-
#
-# autoconf
+# meson
#
-LIBPCIACCESS_CONF_TOOL := autoconf
+LIBPCIACCESS_CONF_TOOL := meson
LIBPCIACCESS_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --disable-selective-werror \
- --disable-strict-compilation \
- --disable-linux-rom-fallback \
- $(GLOBAL_LARGE_FILE_OPTION) \
- --with-pciids-path=/usr/share \
- --$(call ptx/wwo, PTXCONF_LIBPCIACCESS_ZLIB)-zlib
+ $(CROSS_MESON_USR) \
+ -Dlinux-rom-fallback=false \
+ -Dpci-ids=/usr/share \
+ -Dzlib=disabled
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libpcre.make b/rules/libpcre.make
index fa42b9870..ea61c0d94 100644
--- a/rules/libpcre.make
+++ b/rules/libpcre.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_LIBPCRE) += libpcre
#
# Paths and names
#
-LIBPCRE_VERSION := 8.44
-LIBPCRE_MD5 := cf7326204cc46c755b5b2608033d9d24
+LIBPCRE_VERSION := 8.45
+LIBPCRE_MD5 := 4452288e6a0eefb2ab11d36010a1eebb
LIBPCRE := pcre-$(LIBPCRE_VERSION)
LIBPCRE_SUFFIX := tar.bz2
LIBPCRE_URL := \
@@ -25,7 +25,7 @@ LIBPCRE_URL := \
LIBPCRE_SOURCE := $(SRCDIR)/$(LIBPCRE).$(LIBPCRE_SUFFIX)
LIBPCRE_DIR := $(BUILDDIR)/$(LIBPCRE)
LIBPCRE_LICENSE := BSD-3-Clause
-LIBPCRE_LICENSE_FILES := file://LICENCE;md5=3bb381a66a5385b246d4877922e7511e
+LIBPCRE_LICENSE_FILES := file://LICENCE;md5=b5d5d1a69a24ea2718263f1ff85a1c58
# ----------------------------------------------------------------------------
# Prepare
@@ -34,6 +34,7 @@ LIBPCRE_LICENSE_FILES := file://LICENCE;md5=3bb381a66a5385b246d4877922e7511e
#
# autoconf
#
+# Note: the --enable-newline-* options are broken. Only one should be used
LIBPCRE_CONF_TOOL := autoconf
LIBPCRE_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
@@ -46,11 +47,8 @@ LIBPCRE_CONF_OPT := \
--disable-rebuild-chartables \
--$(call ptx/endis, PTXCONF_LIBPCRE_ENABLE_UTF8)-utf \
--$(call ptx/endis, PTXCONF_LIBPCRE_ENABLE_UTF8)-unicode-properties \
- --disable-newline-is-cr \
- --$(call ptx/disen, PTXCONF_LIBPCRE_ENABLE_NEWLINE_IS_ANYCRLF)-newline-is-lf \
- --disable-newline-is-crlf \
- --$(call ptx/endis, PTXCONF_LIBPCRE_ENABLE_NEWLINE_IS_ANYCRLF)-newline-is-anycrlf \
- --disable-newline-is-any \
+ $(call ptx/ifdef, PTXCONF_LIBPCRE_ENABLE_NEWLINE_IS_ANYCRLF,,--enable-newline-is-lf) \
+ $(call ptx/ifdef, PTXCONF_LIBPCRE_ENABLE_NEWLINE_IS_ANYCRLF,--enable-newline-is-anycrlf) \
--disable-bsr-anycrlf \
--disable-ebcdic \
--disable-ebcdic-nl25 \
diff --git a/rules/libpng.make b/rules/libpng.make
index 0a1fbdee9..4a98c02a7 100644
--- a/rules/libpng.make
+++ b/rules/libpng.make
@@ -16,8 +16,8 @@ PACKAGES-$(PTXCONF_LIBPNG) += libpng
#
# Paths and names
#
-LIBPNG_VERSION := 1.6.37
-LIBPNG_MD5 := 015e8e15db1eecde5f2eb9eb5b6e59e9
+LIBPNG_VERSION := 1.6.43
+LIBPNG_MD5 := 22b8362d16c3724eba9c1fb8d187320a
LIBPNG := libpng-$(LIBPNG_VERSION)
LIBPNG_SUFFIX := tar.xz
LIBPNG_URL := $(call ptx/mirror, SF, libpng/$(LIBPNG).$(LIBPNG_SUFFIX))
@@ -34,13 +34,17 @@ LIBPNG_WRAPPER_BLACKLIST := TARGET_DEBUG_FULL
LIBPNG_CONF_TOOL:= autoconf
LIBPNG_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
+ --disable-tests \
+ --disable-tools \
--enable-unversioned-links \
--enable-unversioned-libpng-pc \
--enable-unversioned-libpng-config \
- --enable-arm-neon=$(call ptx/ifdef, PTXCONF_ARCH_ARM_NEON, check, no) \
+ --enable-arm-neon=$(call ptx/yesno, PTXCONF_ARCH_ARM_NEON) \
--disable-mips-msa \
+ --disable-mips-mmi \
--$(call ptx/endis, PTXCONF_ARCH_X86)-intel-sse \
--disable-powerpc-vsx \
+ --disable-loongarch-lsx \
--with-binconfigs
# ----------------------------------------------------------------------------
diff --git a/rules/libpopt.make b/rules/libpopt.make
index 4289d45f3..86259fd5e 100644
--- a/rules/libpopt.make
+++ b/rules/libpopt.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_LIBPOPT) += libpopt
#
# Paths and names
#
-LIBPOPT_VERSION := 1.18
-LIBPOPT_MD5 := 450f2f636e6a3aa527de803d0ae76c5a
+LIBPOPT_VERSION := 1.19
+LIBPOPT_MD5 := eaa2135fddb6eb03f2c87ee1823e5a78
LIBPOPT := popt-$(LIBPOPT_VERSION)
LIBPOPT_SUFFIX := tar.gz
LIBPOPT_URL := \
@@ -24,7 +24,7 @@ LIBPOPT_URL := \
LIBPOPT_SOURCE := $(SRCDIR)/$(LIBPOPT).$(LIBPOPT_SUFFIX)
LIBPOPT_DIR := $(BUILDDIR)/$(LIBPOPT)
LIBPOPT_LICENSE := MIT
-LIBPOPT_LICENSE_FILES := file://COPYING;md5=cb0613c30af2a8249b8dcc67d3edb06d
+LIBPOPT_LICENSE_FILES := file://COPYING;md5=e0206ac9471d06667e076212db20c5f4
# ----------------------------------------------------------------------------
# Prepare
@@ -39,7 +39,8 @@ LIBPOPT_CONF_OPT := \
$(GLOBAL_LARGE_FILE_OPTION) \
--disable-build-gcov \
--$(call ptx/endis, PTXCONF_LIBPOPT_NLS)-nls \
- --disable-rpath
+ --disable-rpath \
+ --disable-werror
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libpsl.make b/rules/libpsl.make
index d6e01b84d..9ece1a974 100644
--- a/rules/libpsl.make
+++ b/rules/libpsl.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_LIBPSL) += libpsl
#
# Paths and names
#
-LIBPSL_VERSION := 0.21.0
-LIBPSL_MD5 := 171e96d887709e36a57f4ee627bf82d2
+LIBPSL_VERSION := 0.21.2
+LIBPSL_MD5 := 2864d3eb744b378d68f5c4da25603459
LIBPSL := libpsl-$(LIBPSL_VERSION)
LIBPSL_SUFFIX := tar.gz
-LIBPSL_URL := https://github.com/rockdaboot/libpsl/releases/download/$(LIBPSL)/$(LIBPSL).$(LIBPSL_SUFFIX)
+LIBPSL_URL := https://github.com/rockdaboot/libpsl/releases/download/$(LIBPSL_VERSION)/$(LIBPSL).$(LIBPSL_SUFFIX)
LIBPSL_SOURCE := $(SRCDIR)/$(LIBPSL).$(LIBPSL_SUFFIX)
LIBPSL_DIR := $(BUILDDIR)/$(LIBPSL)
LIBPSL_LICENSE := MIT
+LIBPSL_LICENSE_FILES := \
+ file://COPYING;md5=6f40ab7fcf5ff18f3ff7f4b0860493fa
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/libpthread-stubs.make b/rules/libpthread-stubs.make
index 929660fb6..bd6c8dd4c 100644
--- a/rules/libpthread-stubs.make
+++ b/rules/libpthread-stubs.make
@@ -14,10 +14,10 @@ PACKAGES-$(PTXCONF_LIBPTHREAD_STUBS) += libpthread-stubs
#
# Paths and names
#
-LIBPTHREAD_STUBS_VERSION := 0.1
-LIBPTHREAD_STUBS_MD5 := 774eabaf33440d534efe108ef9130a7d
+LIBPTHREAD_STUBS_VERSION := 0.5
+LIBPTHREAD_STUBS_MD5 := d42052cb343c3e050ff40adc1675e79f
LIBPTHREAD_STUBS := libpthread-stubs-$(LIBPTHREAD_STUBS_VERSION)
-LIBPTHREAD_STUBS_SUFFIX := tar.bz2
+LIBPTHREAD_STUBS_SUFFIX := tar.xz
LIBPTHREAD_STUBS_URL := http://xcb.freedesktop.org/dist/$(LIBPTHREAD_STUBS).$(LIBPTHREAD_STUBS_SUFFIX)
LIBPTHREAD_STUBS_SOURCE := $(SRCDIR)/$(LIBPTHREAD_STUBS).$(LIBPTHREAD_STUBS_SUFFIX)
LIBPTHREAD_STUBS_DIR := $(BUILDDIR)/$(LIBPTHREAD_STUBS)
@@ -27,15 +27,11 @@ LIBPTHREAD_STUBS_LICENSE := MIT
# Prepare
# ----------------------------------------------------------------------------
-LIBPTHREAD_STUBS_PATH := PATH=$(CROSS_PATH)
-LIBPTHREAD_STUBS_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBPTHREAD_STUBS_AUTOCONF := \
- $(CROSS_AUTOCONF_USR) \
- --enable-shared=no
+LIBPTHREAD_CONF_TOOL := autoconf
+LIBPTHREAD_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libpv.in b/rules/libpv.in
deleted file mode 100644
index 34ac3ea84..000000000
--- a/rules/libpv.in
+++ /dev/null
@@ -1,54 +0,0 @@
-## SECTION=scientific
-
-menuconfig LIBPV
- tristate
- prompt "libpv "
- select LIBC_PTHREAD
- select LIBC_RT
- select GCCLIBS_GCC_S
- select LIBLIST if !LIBPV_XML_EXPAT
- select LIBXMLCONFIG if !LIBPV_XML_EXPAT
- select EXPAT if LIBPV_XML_EXPAT
- select PYTHON if LIBPV_PYTHON
- help
- libpv.so is a library that implements a user space shared memory for
- automation applications. The shared memory is being described by an
- XML file, the backing store can live on any mmapable file, for example
- on a persistent storage or on a RAM disc.
-
- The library has also an integrated JVisu socket server.
-
-if LIBPV
-
-config LIBPV_EVENT
- bool
- prompt "event support"
- help
- This switch enables support for the libpv event mechanism. If
- enabled it is possible to be notified when process variables have
- changed.
-
-config LIBPV_PYTHON
- bool
- depends on STAGING
- prompt "Python bindings"
- help
- Install libpv Python bindings, a Python module supporting
- PvEngine, PvEngineAttr and Pv.
-
-config LIBPV_PVTOOL
- bool
- prompt "install pvtool"
- help
- pvtool is a tool belonging to libpv. It is used to read, write
- and manipulate process variables in a standalone manner.
-
-config LIBPV_XML_EXPAT
- bool
- prompt "use expat instead of libxmlconfig"
- default y
- help
- If activated, use expat to parse the xml configuration instead
- of libxmlconfig.
-
-endif
diff --git a/rules/libpv.make b/rules/libpv.make
deleted file mode 100644
index 46152eb51..000000000
--- a/rules/libpv.make
+++ /dev/null
@@ -1,84 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2005 by Robert Schwebel
-# 2009 by Marc Kleine-Budde <mkl@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_LIBPV) += libpv
-
-#
-# Paths and names
-#
-LIBPV_VERSION := 1.4.2
-LIBPV_MD5 := 353f6d57278a2f7852255378f38be8b6
-LIBPV := libpv-$(LIBPV_VERSION)
-LIBPV_SUFFIX := tar.bz2
-LIBPV_URL := http://www.pengutronix.de/software/libpv/download/$(LIBPV).$(LIBPV_SUFFIX)
-LIBPV_SOURCE := $(SRCDIR)/$(LIBPV).$(LIBPV_SUFFIX)
-LIBPV_DIR := $(BUILDDIR)/$(LIBPV)
-
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-LIBPV_CONF_TOOL := autoconf
-
-# force disable xsltproc to avoid building docs
-LIBPV_CONF_ENV := \
- $(CROSS_ENV) \
- ac_cv_prog_XSLTPROC=false
-
-LIBPV_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --enable-shared \
- --enable-static \
- --disable-debug \
- --$(call ptx/endis, PTXCONF_LIBPV_EVENT)-event \
- --$(call ptx/endis, PTXCONF_LIBPV_PYTHON)-python \
- --$(call ptx/wwo, PTXCONF_LIBPV_XML_EXPAT)-expat
-
-LIBPV_MAKE_OPT = HOSTPYTHON=$(CROSS_PYTHON)
-LIBPV_INSTALL_OPT = $(LIBPV_MAKE_OPT) install
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/libpv.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, libpv)
- @$(call install_fixup, libpv,PRIORITY,optional)
- @$(call install_fixup, libpv,SECTION,base)
- @$(call install_fixup, libpv,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, libpv,DESCRIPTION,missing)
-
- @$(call install_lib, libpv, 0, 0, 0644, libpv)
-
-ifdef PTXCONF_LIBPV_PVTOOL
- @$(call install_copy, libpv, 0, 0, 0755, -, /usr/bin/pvtool)
-endif
-ifdef PTXCONF_LIBPV_EVENT
- @$(call install_copy, libpv, 0, 0, 0755, -, \
- /usr/bin/pv_eventd)
-endif
-
-ifdef PTXCONF_LIBPV_PYTHON
- @$(call install_copy, libpv, 0, 0, 0644, -, \
- /usr/lib/python$(PYTHON_MAJORMINOR)/site-packages/libpv.so)
-endif
- @$(call install_finish, libpv)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/libqmi.in b/rules/libqmi.in
index 9fe39036a..1b4c8c88c 100644
--- a/rules/libqmi.in
+++ b/rules/libqmi.in
@@ -2,7 +2,7 @@
menuconfig LIBQMI
tristate
- select HOST_SYSTEM_PYTHON3
+ select HOST_MESON
select GLIB
select LIBMBIM if LIBQMI_MBIM_QMUX
prompt "libqmi "
@@ -15,4 +15,7 @@ config LIBQMI_MBIM_QMUX
bool "enable mbim-qmux support"
default y if MODEMMANAGER
+config LIBQMI_FIRMWARE_UPDATE
+ bool "Add firmware update tool for QMI devices"
+
endif
diff --git a/rules/libqmi.make b/rules/libqmi.make
index d2d31ce18..2cc6695cb 100644
--- a/rules/libqmi.make
+++ b/rules/libqmi.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_LIBQMI) += libqmi
#
# Paths and names
#
-LIBQMI_VERSION := 1.28.2
-LIBQMI_MD5 := 825d7226e001cb2616e85d8a1e2a410f
+LIBQMI_VERSION := 1.34.0
+LIBQMI_MD5 := 677b5d1ab763a7b7285b82d1798ff93d
LIBQMI := libqmi-$(LIBQMI_VERSION)
-LIBQMI_SUFFIX := tar.xz
-LIBQMI_URL := http://www.freedesktop.org/software/libqmi/$(LIBQMI).$(LIBQMI_SUFFIX)
+LIBQMI_SUFFIX := tar.bz2
+LIBQMI_URL := https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/archive/$(LIBQMI_VERSION)/$(LIBQMI).$(LIBQMI_SUFFIX)
LIBQMI_SOURCE := $(SRCDIR)/$(LIBQMI).$(LIBQMI_SUFFIX)
LIBQMI_DIR := $(BUILDDIR)/$(LIBQMI)
LIBQMI_LICENSE := GPL-2.0-or-later AND LGPL-2.1-or-later
@@ -31,25 +31,23 @@ LIBQMI_LICENSE_FILES := \
# ----------------------------------------------------------------------------
#
-# autoconf
+# meson
#
-LIBQMI_CONF_TOOL := autoconf
+LIBQMI_CONF_TOOL := meson
LIBQMI_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --disable-compile-warnings \
- --disable-Werror \
- --disable-introspection \
- --enable-collection=full \
- --disable-firmware-update \
- --disable-mm-runtime-check \
- --disable-gtk-doc \
- --disable-gtk-doc-html \
- --disable-gtk-doc-pdf \
- --disable-qmi-username \
- --$(call ptx/endis, PTXCONF_LIBQMI_MBIM_QMUX)-mbim-qmux \
- --disable-qrtr \
- --without-udev \
- --with-udev-base-dir=/usr/lib/udev
+ $(CROSS_MESON_USR) \
+ -Dfirmware_update=$(call ptx/truefalse, PTXCONF_LIBQMI_FIRMWARE_UPDATE) \
+ -Dcollection=full \
+ -Dmbim_qmux=$(call ptx/truefalse, PTXCONF_LIBQMI_MBIM_QMUX) \
+ -Dmm_runtime_check=false \
+ -Dqrtr=false \
+ -Drmnet=false \
+ -Dudev=false \
+ -Dudevdir=/usr/lib/udev \
+ -Dintrospection=false \
+ -Dgtk_doc=false \
+ -Dman=false \
+ -Dbash_completion=false
# ----------------------------------------------------------------------------
# Target-Install
@@ -67,6 +65,10 @@ $(STATEDIR)/libqmi.targetinstall:
@$(call install_copy, libqmi, 0, 0, 0755, -, /usr/bin/qmicli)
@$(call install_copy, libqmi, 0, 0, 0755, -, /usr/bin/qmi-network)
+ifdef PTXCONF_LIBQMI_FIRMWARE_UPDATE
+ @$(call install_copy, libqmi, 0, 0, 0755, -, /usr/bin/qmi-firmware-update)
+endif
+
@$(call install_copy, libqmi, 0, 0, 0755, -, /usr/libexec/qmi-proxy)
@$(call install_lib, libqmi, 0, 0, 0644, libqmi-glib)
diff --git a/rules/librn.make b/rules/librn.make
index 69897e83b..1bd382560 100644
--- a/rules/librn.make
+++ b/rules/librn.make
@@ -27,13 +27,11 @@ LIBRN_DIR := $(BUILDDIR)/$(LIBRN)
# Prepare
# ----------------------------------------------------------------------------
-LIBRN_PATH := PATH=$(CROSS_PATH)
-LIBRN_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBRN_AUTOCONF := \
+LIBRN_CONF_TOOL := autoconf
+LIBRN_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-debug
diff --git a/rules/librsvg.cargo.make b/rules/librsvg.cargo.make
new file mode 100644
index 000000000..1fb60349a
--- /dev/null
+++ b/rules/librsvg.cargo.make
@@ -0,0 +1,1368 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2009 by Erwin Rol
+# 2010 by Marc Kleine-Budde <mkl@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# WARNING: This file is generated with 'ptxdist cargosync librsvg' and
+# should not be modified manually!
+#
+
+LIBRSVG_CARGO_LOCK_MD5 := bcdaa7303d2f2ae9e12de94443661144
+
+LIBRSVG_ADLER_1_0_2_MD5 := 669215548c64019c08c92b2c1afd3deb
+LIBRSVG_ADLER_1_0_2_URL := https://crates.io/api/v1/crates/adler/1.0.2/download
+LIBRSVG_ADLER_1_0_2_SOURCE := $(SRCDIR)/adler-1.0.2.crate
+LIBRSVG_PARTS += LIBRSVG_ADLER_1_0_2
+
+LIBRSVG_AHO_CORASICK_1_1_2_MD5 := 95e5f8d0b7ab37171b8d3118542ba06a
+LIBRSVG_AHO_CORASICK_1_1_2_URL := https://crates.io/api/v1/crates/aho-corasick/1.1.2/download
+LIBRSVG_AHO_CORASICK_1_1_2_SOURCE := $(SRCDIR)/aho-corasick-1.1.2.crate
+LIBRSVG_PARTS += LIBRSVG_AHO_CORASICK_1_1_2
+
+LIBRSVG_ANDROID_TZDATA_0_1_1_MD5 := e0a03581a6aea080315323651f272d65
+LIBRSVG_ANDROID_TZDATA_0_1_1_URL := https://crates.io/api/v1/crates/android-tzdata/0.1.1/download
+LIBRSVG_ANDROID_TZDATA_0_1_1_SOURCE := $(SRCDIR)/android-tzdata-0.1.1.crate
+LIBRSVG_PARTS += LIBRSVG_ANDROID_TZDATA_0_1_1
+
+LIBRSVG_ANDROID_SYSTEM_PROPERTIES_0_1_5_MD5 := bf23cd323c33a8c283c41bb9b79e4ce4
+LIBRSVG_ANDROID_SYSTEM_PROPERTIES_0_1_5_URL := https://crates.io/api/v1/crates/android_system_properties/0.1.5/download
+LIBRSVG_ANDROID_SYSTEM_PROPERTIES_0_1_5_SOURCE := $(SRCDIR)/android_system_properties-0.1.5.crate
+LIBRSVG_PARTS += LIBRSVG_ANDROID_SYSTEM_PROPERTIES_0_1_5
+
+LIBRSVG_ANES_0_1_6_MD5 := a5edbb16fb71d6000e6978cba3dbce14
+LIBRSVG_ANES_0_1_6_URL := https://crates.io/api/v1/crates/anes/0.1.6/download
+LIBRSVG_ANES_0_1_6_SOURCE := $(SRCDIR)/anes-0.1.6.crate
+LIBRSVG_PARTS += LIBRSVG_ANES_0_1_6
+
+LIBRSVG_ANSTREAM_0_6_5_MD5 := 2764314f4afc9f9751d60ebad48f6ea6
+LIBRSVG_ANSTREAM_0_6_5_URL := https://crates.io/api/v1/crates/anstream/0.6.5/download
+LIBRSVG_ANSTREAM_0_6_5_SOURCE := $(SRCDIR)/anstream-0.6.5.crate
+LIBRSVG_PARTS += LIBRSVG_ANSTREAM_0_6_5
+
+LIBRSVG_ANSTYLE_1_0_4_MD5 := b4f71ffecd3694a82ffb62c357d997a8
+LIBRSVG_ANSTYLE_1_0_4_URL := https://crates.io/api/v1/crates/anstyle/1.0.4/download
+LIBRSVG_ANSTYLE_1_0_4_SOURCE := $(SRCDIR)/anstyle-1.0.4.crate
+LIBRSVG_PARTS += LIBRSVG_ANSTYLE_1_0_4
+
+LIBRSVG_ANSTYLE_PARSE_0_2_3_MD5 := e188f6de00a35235da008cd39e1a003d
+LIBRSVG_ANSTYLE_PARSE_0_2_3_URL := https://crates.io/api/v1/crates/anstyle-parse/0.2.3/download
+LIBRSVG_ANSTYLE_PARSE_0_2_3_SOURCE := $(SRCDIR)/anstyle-parse-0.2.3.crate
+LIBRSVG_PARTS += LIBRSVG_ANSTYLE_PARSE_0_2_3
+
+LIBRSVG_ANSTYLE_QUERY_1_0_2_MD5 := b06d6c6d9a7bdcdd9bf78f20f2d08f01
+LIBRSVG_ANSTYLE_QUERY_1_0_2_URL := https://crates.io/api/v1/crates/anstyle-query/1.0.2/download
+LIBRSVG_ANSTYLE_QUERY_1_0_2_SOURCE := $(SRCDIR)/anstyle-query-1.0.2.crate
+LIBRSVG_PARTS += LIBRSVG_ANSTYLE_QUERY_1_0_2
+
+LIBRSVG_ANSTYLE_WINCON_3_0_2_MD5 := 87cc1a50f0dcc09d7223df42eae95119
+LIBRSVG_ANSTYLE_WINCON_3_0_2_URL := https://crates.io/api/v1/crates/anstyle-wincon/3.0.2/download
+LIBRSVG_ANSTYLE_WINCON_3_0_2_SOURCE := $(SRCDIR)/anstyle-wincon-3.0.2.crate
+LIBRSVG_PARTS += LIBRSVG_ANSTYLE_WINCON_3_0_2
+
+LIBRSVG_ANYHOW_1_0_75_MD5 := 39a78bec5a0ae75f210c1f67250152b0
+LIBRSVG_ANYHOW_1_0_75_URL := https://crates.io/api/v1/crates/anyhow/1.0.75/download
+LIBRSVG_ANYHOW_1_0_75_SOURCE := $(SRCDIR)/anyhow-1.0.75.crate
+LIBRSVG_PARTS += LIBRSVG_ANYHOW_1_0_75
+
+LIBRSVG_APPROX_0_5_1_MD5 := 9071f5790b873b983105cc5b2917caff
+LIBRSVG_APPROX_0_5_1_URL := https://crates.io/api/v1/crates/approx/0.5.1/download
+LIBRSVG_APPROX_0_5_1_SOURCE := $(SRCDIR)/approx-0.5.1.crate
+LIBRSVG_PARTS += LIBRSVG_APPROX_0_5_1
+
+LIBRSVG_ASSERT_CMD_2_0_12_MD5 := 74e97e374c0c05d2dffc9568b7e135b8
+LIBRSVG_ASSERT_CMD_2_0_12_URL := https://crates.io/api/v1/crates/assert_cmd/2.0.12/download
+LIBRSVG_ASSERT_CMD_2_0_12_SOURCE := $(SRCDIR)/assert_cmd-2.0.12.crate
+LIBRSVG_PARTS += LIBRSVG_ASSERT_CMD_2_0_12
+
+LIBRSVG_AUTOCFG_1_1_0_MD5 := 05d77ef52e90ad161fdd41b252420467
+LIBRSVG_AUTOCFG_1_1_0_URL := https://crates.io/api/v1/crates/autocfg/1.1.0/download
+LIBRSVG_AUTOCFG_1_1_0_SOURCE := $(SRCDIR)/autocfg-1.1.0.crate
+LIBRSVG_PARTS += LIBRSVG_AUTOCFG_1_1_0
+
+LIBRSVG_BIT_SET_0_5_3_MD5 := b174984f0ec889f5c32e90bddb80f674
+LIBRSVG_BIT_SET_0_5_3_URL := https://crates.io/api/v1/crates/bit-set/0.5.3/download
+LIBRSVG_BIT_SET_0_5_3_SOURCE := $(SRCDIR)/bit-set-0.5.3.crate
+LIBRSVG_PARTS += LIBRSVG_BIT_SET_0_5_3
+
+LIBRSVG_BIT_VEC_0_6_3_MD5 := 45a867175c81501378699f80724393c0
+LIBRSVG_BIT_VEC_0_6_3_URL := https://crates.io/api/v1/crates/bit-vec/0.6.3/download
+LIBRSVG_BIT_VEC_0_6_3_SOURCE := $(SRCDIR)/bit-vec-0.6.3.crate
+LIBRSVG_PARTS += LIBRSVG_BIT_VEC_0_6_3
+
+LIBRSVG_BITFLAGS_1_3_2_MD5 := a295edb6953237ebbdfa8e731229f9a3
+LIBRSVG_BITFLAGS_1_3_2_URL := https://crates.io/api/v1/crates/bitflags/1.3.2/download
+LIBRSVG_BITFLAGS_1_3_2_SOURCE := $(SRCDIR)/bitflags-1.3.2.crate
+LIBRSVG_PARTS += LIBRSVG_BITFLAGS_1_3_2
+
+LIBRSVG_BITFLAGS_2_4_1_MD5 := ebcf604c44976809506192718f439dc1
+LIBRSVG_BITFLAGS_2_4_1_URL := https://crates.io/api/v1/crates/bitflags/2.4.1/download
+LIBRSVG_BITFLAGS_2_4_1_SOURCE := $(SRCDIR)/bitflags-2.4.1.crate
+LIBRSVG_PARTS += LIBRSVG_BITFLAGS_2_4_1
+
+LIBRSVG_BLOCK_0_1_6_MD5 := ea2d23ceb9f98853a7dffc6c02884464
+LIBRSVG_BLOCK_0_1_6_URL := https://crates.io/api/v1/crates/block/0.1.6/download
+LIBRSVG_BLOCK_0_1_6_SOURCE := $(SRCDIR)/block-0.1.6.crate
+LIBRSVG_PARTS += LIBRSVG_BLOCK_0_1_6
+
+LIBRSVG_BSTR_1_8_0_MD5 := 494bc55e3713f1e861b0b6ae328a40f4
+LIBRSVG_BSTR_1_8_0_URL := https://crates.io/api/v1/crates/bstr/1.8.0/download
+LIBRSVG_BSTR_1_8_0_SOURCE := $(SRCDIR)/bstr-1.8.0.crate
+LIBRSVG_PARTS += LIBRSVG_BSTR_1_8_0
+
+LIBRSVG_BUMPALO_3_14_0_MD5 := d8cacbb844fca8c0ca102c7576946131
+LIBRSVG_BUMPALO_3_14_0_URL := https://crates.io/api/v1/crates/bumpalo/3.14.0/download
+LIBRSVG_BUMPALO_3_14_0_SOURCE := $(SRCDIR)/bumpalo-3.14.0.crate
+LIBRSVG_PARTS += LIBRSVG_BUMPALO_3_14_0
+
+LIBRSVG_BYTEMUCK_1_14_0_MD5 := 9dd8e437188fced85429d9d0d9db145f
+LIBRSVG_BYTEMUCK_1_14_0_URL := https://crates.io/api/v1/crates/bytemuck/1.14.0/download
+LIBRSVG_BYTEMUCK_1_14_0_SOURCE := $(SRCDIR)/bytemuck-1.14.0.crate
+LIBRSVG_PARTS += LIBRSVG_BYTEMUCK_1_14_0
+
+LIBRSVG_BYTEORDER_1_5_0_MD5 := 45339d90b2b3a4f123af5ec459954102
+LIBRSVG_BYTEORDER_1_5_0_URL := https://crates.io/api/v1/crates/byteorder/1.5.0/download
+LIBRSVG_BYTEORDER_1_5_0_SOURCE := $(SRCDIR)/byteorder-1.5.0.crate
+LIBRSVG_PARTS += LIBRSVG_BYTEORDER_1_5_0
+
+LIBRSVG_CAIRO_RS_0_18_3_MD5 := 375158cea461fbc8f2e17cc47944bc0c
+LIBRSVG_CAIRO_RS_0_18_3_URL := https://crates.io/api/v1/crates/cairo-rs/0.18.3/download
+LIBRSVG_CAIRO_RS_0_18_3_SOURCE := $(SRCDIR)/cairo-rs-0.18.3.crate
+LIBRSVG_PARTS += LIBRSVG_CAIRO_RS_0_18_3
+
+LIBRSVG_CAIRO_SYS_RS_0_18_2_MD5 := 8efc6bb9388d5ed76190e01abfad67e5
+LIBRSVG_CAIRO_SYS_RS_0_18_2_URL := https://crates.io/api/v1/crates/cairo-sys-rs/0.18.2/download
+LIBRSVG_CAIRO_SYS_RS_0_18_2_SOURCE := $(SRCDIR)/cairo-sys-rs-0.18.2.crate
+LIBRSVG_PARTS += LIBRSVG_CAIRO_SYS_RS_0_18_2
+
+LIBRSVG_CAST_0_3_0_MD5 := f686e99053239b98e9aca46c3e06c6f9
+LIBRSVG_CAST_0_3_0_URL := https://crates.io/api/v1/crates/cast/0.3.0/download
+LIBRSVG_CAST_0_3_0_SOURCE := $(SRCDIR)/cast-0.3.0.crate
+LIBRSVG_PARTS += LIBRSVG_CAST_0_3_0
+
+LIBRSVG_CC_1_0_83_MD5 := 9241fa90ea8b17c00010be46c9aa1ac5
+LIBRSVG_CC_1_0_83_URL := https://crates.io/api/v1/crates/cc/1.0.83/download
+LIBRSVG_CC_1_0_83_SOURCE := $(SRCDIR)/cc-1.0.83.crate
+LIBRSVG_PARTS += LIBRSVG_CC_1_0_83
+
+LIBRSVG_CFG_EXPR_0_15_5_MD5 := bcd9728d14742935c02bde4fc03db3ff
+LIBRSVG_CFG_EXPR_0_15_5_URL := https://crates.io/api/v1/crates/cfg-expr/0.15.5/download
+LIBRSVG_CFG_EXPR_0_15_5_SOURCE := $(SRCDIR)/cfg-expr-0.15.5.crate
+LIBRSVG_PARTS += LIBRSVG_CFG_EXPR_0_15_5
+
+LIBRSVG_CFG_IF_1_0_0_MD5 := 74634128440dbc3766bda76fdf0aaa05
+LIBRSVG_CFG_IF_1_0_0_URL := https://crates.io/api/v1/crates/cfg-if/1.0.0/download
+LIBRSVG_CFG_IF_1_0_0_SOURCE := $(SRCDIR)/cfg-if-1.0.0.crate
+LIBRSVG_PARTS += LIBRSVG_CFG_IF_1_0_0
+
+LIBRSVG_CHRONO_0_4_31_MD5 := ddca5e4cff2fcc78d99a9efe991c5cf2
+LIBRSVG_CHRONO_0_4_31_URL := https://crates.io/api/v1/crates/chrono/0.4.31/download
+LIBRSVG_CHRONO_0_4_31_SOURCE := $(SRCDIR)/chrono-0.4.31.crate
+LIBRSVG_PARTS += LIBRSVG_CHRONO_0_4_31
+
+LIBRSVG_CIBORIUM_0_2_1_MD5 := 43f8415008eb5775962023405a445462
+LIBRSVG_CIBORIUM_0_2_1_URL := https://crates.io/api/v1/crates/ciborium/0.2.1/download
+LIBRSVG_CIBORIUM_0_2_1_SOURCE := $(SRCDIR)/ciborium-0.2.1.crate
+LIBRSVG_PARTS += LIBRSVG_CIBORIUM_0_2_1
+
+LIBRSVG_CIBORIUM_IO_0_2_1_MD5 := aa7628187a64682bef0500d38db6b309
+LIBRSVG_CIBORIUM_IO_0_2_1_URL := https://crates.io/api/v1/crates/ciborium-io/0.2.1/download
+LIBRSVG_CIBORIUM_IO_0_2_1_SOURCE := $(SRCDIR)/ciborium-io-0.2.1.crate
+LIBRSVG_PARTS += LIBRSVG_CIBORIUM_IO_0_2_1
+
+LIBRSVG_CIBORIUM_LL_0_2_1_MD5 := 435b8bef0d3bd0b0ab5297728f1073c2
+LIBRSVG_CIBORIUM_LL_0_2_1_URL := https://crates.io/api/v1/crates/ciborium-ll/0.2.1/download
+LIBRSVG_CIBORIUM_LL_0_2_1_SOURCE := $(SRCDIR)/ciborium-ll-0.2.1.crate
+LIBRSVG_PARTS += LIBRSVG_CIBORIUM_LL_0_2_1
+
+LIBRSVG_CLAP_4_4_11_MD5 := c400ff01b6ca2ac3fc00742c2765d2d6
+LIBRSVG_CLAP_4_4_11_URL := https://crates.io/api/v1/crates/clap/4.4.11/download
+LIBRSVG_CLAP_4_4_11_SOURCE := $(SRCDIR)/clap-4.4.11.crate
+LIBRSVG_PARTS += LIBRSVG_CLAP_4_4_11
+
+LIBRSVG_CLAP_BUILDER_4_4_11_MD5 := 077e8f5390b3c1dac53fddca4556f9ff
+LIBRSVG_CLAP_BUILDER_4_4_11_URL := https://crates.io/api/v1/crates/clap_builder/4.4.11/download
+LIBRSVG_CLAP_BUILDER_4_4_11_SOURCE := $(SRCDIR)/clap_builder-4.4.11.crate
+LIBRSVG_PARTS += LIBRSVG_CLAP_BUILDER_4_4_11
+
+LIBRSVG_CLAP_COMPLETE_4_4_4_MD5 := 30e4024be60605f771fae98ebf38e441
+LIBRSVG_CLAP_COMPLETE_4_4_4_URL := https://crates.io/api/v1/crates/clap_complete/4.4.4/download
+LIBRSVG_CLAP_COMPLETE_4_4_4_SOURCE := $(SRCDIR)/clap_complete-4.4.4.crate
+LIBRSVG_PARTS += LIBRSVG_CLAP_COMPLETE_4_4_4
+
+LIBRSVG_CLAP_DERIVE_4_4_7_MD5 := 08b9a34eadbb01ac16e36694e53eb254
+LIBRSVG_CLAP_DERIVE_4_4_7_URL := https://crates.io/api/v1/crates/clap_derive/4.4.7/download
+LIBRSVG_CLAP_DERIVE_4_4_7_SOURCE := $(SRCDIR)/clap_derive-4.4.7.crate
+LIBRSVG_PARTS += LIBRSVG_CLAP_DERIVE_4_4_7
+
+LIBRSVG_CLAP_LEX_0_6_0_MD5 := 8f177f61a37d63f805acb925b30a0e58
+LIBRSVG_CLAP_LEX_0_6_0_URL := https://crates.io/api/v1/crates/clap_lex/0.6.0/download
+LIBRSVG_CLAP_LEX_0_6_0_SOURCE := $(SRCDIR)/clap_lex-0.6.0.crate
+LIBRSVG_PARTS += LIBRSVG_CLAP_LEX_0_6_0
+
+LIBRSVG_COLORCHOICE_1_0_0_MD5 := 010f6d0e98cc2a2b99907a23c6cd6bbc
+LIBRSVG_COLORCHOICE_1_0_0_URL := https://crates.io/api/v1/crates/colorchoice/1.0.0/download
+LIBRSVG_COLORCHOICE_1_0_0_SOURCE := $(SRCDIR)/colorchoice-1.0.0.crate
+LIBRSVG_PARTS += LIBRSVG_COLORCHOICE_1_0_0
+
+LIBRSVG_CONST_CSTR_0_3_0_MD5 := 03758a5255aae7adbb34bdae8aa8f44b
+LIBRSVG_CONST_CSTR_0_3_0_URL := https://crates.io/api/v1/crates/const-cstr/0.3.0/download
+LIBRSVG_CONST_CSTR_0_3_0_SOURCE := $(SRCDIR)/const-cstr-0.3.0.crate
+LIBRSVG_PARTS += LIBRSVG_CONST_CSTR_0_3_0
+
+LIBRSVG_CORE_FOUNDATION_SYS_0_8_6_MD5 := d7624e4ff046ae83eda8e82d90887bdb
+LIBRSVG_CORE_FOUNDATION_SYS_0_8_6_URL := https://crates.io/api/v1/crates/core-foundation-sys/0.8.6/download
+LIBRSVG_CORE_FOUNDATION_SYS_0_8_6_SOURCE := $(SRCDIR)/core-foundation-sys-0.8.6.crate
+LIBRSVG_PARTS += LIBRSVG_CORE_FOUNDATION_SYS_0_8_6
+
+LIBRSVG_CRC32FAST_1_3_2_MD5 := a9d6492a1bd21d93dbc27c32eabd0c70
+LIBRSVG_CRC32FAST_1_3_2_URL := https://crates.io/api/v1/crates/crc32fast/1.3.2/download
+LIBRSVG_CRC32FAST_1_3_2_SOURCE := $(SRCDIR)/crc32fast-1.3.2.crate
+LIBRSVG_PARTS += LIBRSVG_CRC32FAST_1_3_2
+
+LIBRSVG_CRITERION_0_5_1_MD5 := c3ca987d21c9d0af2c1e9794f70e7175
+LIBRSVG_CRITERION_0_5_1_URL := https://crates.io/api/v1/crates/criterion/0.5.1/download
+LIBRSVG_CRITERION_0_5_1_SOURCE := $(SRCDIR)/criterion-0.5.1.crate
+LIBRSVG_PARTS += LIBRSVG_CRITERION_0_5_1
+
+LIBRSVG_CRITERION_PLOT_0_5_0_MD5 := 4cb359fe1ce3ec8463a78cabc468037e
+LIBRSVG_CRITERION_PLOT_0_5_0_URL := https://crates.io/api/v1/crates/criterion-plot/0.5.0/download
+LIBRSVG_CRITERION_PLOT_0_5_0_SOURCE := $(SRCDIR)/criterion-plot-0.5.0.crate
+LIBRSVG_PARTS += LIBRSVG_CRITERION_PLOT_0_5_0
+
+LIBRSVG_CROSSBEAM_DEQUE_0_8_4_MD5 := b016421fcd102c907c2128bbf84e9eb5
+LIBRSVG_CROSSBEAM_DEQUE_0_8_4_URL := https://crates.io/api/v1/crates/crossbeam-deque/0.8.4/download
+LIBRSVG_CROSSBEAM_DEQUE_0_8_4_SOURCE := $(SRCDIR)/crossbeam-deque-0.8.4.crate
+LIBRSVG_PARTS += LIBRSVG_CROSSBEAM_DEQUE_0_8_4
+
+LIBRSVG_CROSSBEAM_EPOCH_0_9_16_MD5 := d996beff8aaae0581806c21219bd9e43
+LIBRSVG_CROSSBEAM_EPOCH_0_9_16_URL := https://crates.io/api/v1/crates/crossbeam-epoch/0.9.16/download
+LIBRSVG_CROSSBEAM_EPOCH_0_9_16_SOURCE := $(SRCDIR)/crossbeam-epoch-0.9.16.crate
+LIBRSVG_PARTS += LIBRSVG_CROSSBEAM_EPOCH_0_9_16
+
+LIBRSVG_CROSSBEAM_UTILS_0_8_17_MD5 := f990d49f0e0b507415b06dfac2b02a36
+LIBRSVG_CROSSBEAM_UTILS_0_8_17_URL := https://crates.io/api/v1/crates/crossbeam-utils/0.8.17/download
+LIBRSVG_CROSSBEAM_UTILS_0_8_17_SOURCE := $(SRCDIR)/crossbeam-utils-0.8.17.crate
+LIBRSVG_PARTS += LIBRSVG_CROSSBEAM_UTILS_0_8_17
+
+LIBRSVG_CSSPARSER_0_31_2_MD5 := 93c0cc4a57ec6f10b318d2959ff0d2cc
+LIBRSVG_CSSPARSER_0_31_2_URL := https://crates.io/api/v1/crates/cssparser/0.31.2/download
+LIBRSVG_CSSPARSER_0_31_2_SOURCE := $(SRCDIR)/cssparser-0.31.2.crate
+LIBRSVG_PARTS += LIBRSVG_CSSPARSER_0_31_2
+
+LIBRSVG_CSSPARSER_MACROS_0_6_1_MD5 := 1ef80eed9e451efa86bf09bb3fd44bc2
+LIBRSVG_CSSPARSER_MACROS_0_6_1_URL := https://crates.io/api/v1/crates/cssparser-macros/0.6.1/download
+LIBRSVG_CSSPARSER_MACROS_0_6_1_SOURCE := $(SRCDIR)/cssparser-macros-0.6.1.crate
+LIBRSVG_PARTS += LIBRSVG_CSSPARSER_MACROS_0_6_1
+
+LIBRSVG_CSTR_0_2_11_MD5 := e413c1207b1664c31ba54c65004c9f92
+LIBRSVG_CSTR_0_2_11_URL := https://crates.io/api/v1/crates/cstr/0.2.11/download
+LIBRSVG_CSTR_0_2_11_SOURCE := $(SRCDIR)/cstr-0.2.11.crate
+LIBRSVG_PARTS += LIBRSVG_CSTR_0_2_11
+
+LIBRSVG_DATA_URL_0_3_1_MD5 := 358fe1b3e28a599502a9f4815174f50d
+LIBRSVG_DATA_URL_0_3_1_URL := https://crates.io/api/v1/crates/data-url/0.3.1/download
+LIBRSVG_DATA_URL_0_3_1_SOURCE := $(SRCDIR)/data-url-0.3.1.crate
+LIBRSVG_PARTS += LIBRSVG_DATA_URL_0_3_1
+
+LIBRSVG_DERANGED_0_3_10_MD5 := 709169c64f36dead4f2ecfed45d02a29
+LIBRSVG_DERANGED_0_3_10_URL := https://crates.io/api/v1/crates/deranged/0.3.10/download
+LIBRSVG_DERANGED_0_3_10_SOURCE := $(SRCDIR)/deranged-0.3.10.crate
+LIBRSVG_PARTS += LIBRSVG_DERANGED_0_3_10
+
+LIBRSVG_DERIVE_MORE_0_99_17_MD5 := b4585736b4551ce939e025bce98973fc
+LIBRSVG_DERIVE_MORE_0_99_17_URL := https://crates.io/api/v1/crates/derive_more/0.99.17/download
+LIBRSVG_DERIVE_MORE_0_99_17_SOURCE := $(SRCDIR)/derive_more-0.99.17.crate
+LIBRSVG_PARTS += LIBRSVG_DERIVE_MORE_0_99_17
+
+LIBRSVG_DIFFLIB_0_4_0_MD5 := bebc8338ae113a87a04564c97c1e3f0c
+LIBRSVG_DIFFLIB_0_4_0_URL := https://crates.io/api/v1/crates/difflib/0.4.0/download
+LIBRSVG_DIFFLIB_0_4_0_SOURCE := $(SRCDIR)/difflib-0.4.0.crate
+LIBRSVG_PARTS += LIBRSVG_DIFFLIB_0_4_0
+
+LIBRSVG_DLIB_0_5_2_MD5 := 7c8ef8b5fc652fa97d3629d1ec8b18e8
+LIBRSVG_DLIB_0_5_2_URL := https://crates.io/api/v1/crates/dlib/0.5.2/download
+LIBRSVG_DLIB_0_5_2_SOURCE := $(SRCDIR)/dlib-0.5.2.crate
+LIBRSVG_PARTS += LIBRSVG_DLIB_0_5_2
+
+LIBRSVG_DOC_COMMENT_0_3_3_MD5 := dd1e49c76e9d5853e673a3b41ba02917
+LIBRSVG_DOC_COMMENT_0_3_3_URL := https://crates.io/api/v1/crates/doc-comment/0.3.3/download
+LIBRSVG_DOC_COMMENT_0_3_3_SOURCE := $(SRCDIR)/doc-comment-0.3.3.crate
+LIBRSVG_PARTS += LIBRSVG_DOC_COMMENT_0_3_3
+
+LIBRSVG_DTOA_1_0_9_MD5 := 311d0cb0e9dae7d698217ae974a04fcf
+LIBRSVG_DTOA_1_0_9_URL := https://crates.io/api/v1/crates/dtoa/1.0.9/download
+LIBRSVG_DTOA_1_0_9_SOURCE := $(SRCDIR)/dtoa-1.0.9.crate
+LIBRSVG_PARTS += LIBRSVG_DTOA_1_0_9
+
+LIBRSVG_DTOA_SHORT_0_3_4_MD5 := a057f06b8b62792bcfc17bf71e45b730
+LIBRSVG_DTOA_SHORT_0_3_4_URL := https://crates.io/api/v1/crates/dtoa-short/0.3.4/download
+LIBRSVG_DTOA_SHORT_0_3_4_SOURCE := $(SRCDIR)/dtoa-short-0.3.4.crate
+LIBRSVG_PARTS += LIBRSVG_DTOA_SHORT_0_3_4
+
+LIBRSVG_EITHER_1_9_0_MD5 := 3c3ab76bd9ed94de350152f1af4c61e8
+LIBRSVG_EITHER_1_9_0_URL := https://crates.io/api/v1/crates/either/1.9.0/download
+LIBRSVG_EITHER_1_9_0_SOURCE := $(SRCDIR)/either-1.9.0.crate
+LIBRSVG_PARTS += LIBRSVG_EITHER_1_9_0
+
+LIBRSVG_ENCODING_RS_0_8_33_MD5 := 5f9a3a8b7213c055342b2f423a213b3a
+LIBRSVG_ENCODING_RS_0_8_33_URL := https://crates.io/api/v1/crates/encoding_rs/0.8.33/download
+LIBRSVG_ENCODING_RS_0_8_33_SOURCE := $(SRCDIR)/encoding_rs-0.8.33.crate
+LIBRSVG_PARTS += LIBRSVG_ENCODING_RS_0_8_33
+
+LIBRSVG_EQUIVALENT_1_0_1_MD5 := bdf329a72ecd0605c296f25e53136706
+LIBRSVG_EQUIVALENT_1_0_1_URL := https://crates.io/api/v1/crates/equivalent/1.0.1/download
+LIBRSVG_EQUIVALENT_1_0_1_SOURCE := $(SRCDIR)/equivalent-1.0.1.crate
+LIBRSVG_PARTS += LIBRSVG_EQUIVALENT_1_0_1
+
+LIBRSVG_ERRNO_0_3_8_MD5 := 349e0ae5420f0b7e6ff835cd03cc7428
+LIBRSVG_ERRNO_0_3_8_URL := https://crates.io/api/v1/crates/errno/0.3.8/download
+LIBRSVG_ERRNO_0_3_8_SOURCE := $(SRCDIR)/errno-0.3.8.crate
+LIBRSVG_PARTS += LIBRSVG_ERRNO_0_3_8
+
+LIBRSVG_FASTRAND_2_0_1_MD5 := 80e1c1b89d858c93fc5946b4a8266504
+LIBRSVG_FASTRAND_2_0_1_URL := https://crates.io/api/v1/crates/fastrand/2.0.1/download
+LIBRSVG_FASTRAND_2_0_1_SOURCE := $(SRCDIR)/fastrand-2.0.1.crate
+LIBRSVG_PARTS += LIBRSVG_FASTRAND_2_0_1
+
+LIBRSVG_FDEFLATE_0_3_1_MD5 := b6ee3ebb3852ab6f846dc2bc8c981385
+LIBRSVG_FDEFLATE_0_3_1_URL := https://crates.io/api/v1/crates/fdeflate/0.3.1/download
+LIBRSVG_FDEFLATE_0_3_1_SOURCE := $(SRCDIR)/fdeflate-0.3.1.crate
+LIBRSVG_PARTS += LIBRSVG_FDEFLATE_0_3_1
+
+LIBRSVG_FLATE2_1_0_28_MD5 := 110e56f20886997bc288b6fea8617ce1
+LIBRSVG_FLATE2_1_0_28_URL := https://crates.io/api/v1/crates/flate2/1.0.28/download
+LIBRSVG_FLATE2_1_0_28_SOURCE := $(SRCDIR)/flate2-1.0.28.crate
+LIBRSVG_PARTS += LIBRSVG_FLATE2_1_0_28
+
+LIBRSVG_FLOAT_CMP_0_9_0_MD5 := 94f11861c538d1a2fd56c86d140e4358
+LIBRSVG_FLOAT_CMP_0_9_0_URL := https://crates.io/api/v1/crates/float-cmp/0.9.0/download
+LIBRSVG_FLOAT_CMP_0_9_0_SOURCE := $(SRCDIR)/float-cmp-0.9.0.crate
+LIBRSVG_PARTS += LIBRSVG_FLOAT_CMP_0_9_0
+
+LIBRSVG_FNV_1_0_7_MD5 := 8dab3b3ec00dc56cffde0b0c410d47b5
+LIBRSVG_FNV_1_0_7_URL := https://crates.io/api/v1/crates/fnv/1.0.7/download
+LIBRSVG_FNV_1_0_7_SOURCE := $(SRCDIR)/fnv-1.0.7.crate
+LIBRSVG_PARTS += LIBRSVG_FNV_1_0_7
+
+LIBRSVG_FORM_URLENCODED_1_2_1_MD5 := c3e51926c9853b714191ef1bec90e2ce
+LIBRSVG_FORM_URLENCODED_1_2_1_URL := https://crates.io/api/v1/crates/form_urlencoded/1.2.1/download
+LIBRSVG_FORM_URLENCODED_1_2_1_SOURCE := $(SRCDIR)/form_urlencoded-1.2.1.crate
+LIBRSVG_PARTS += LIBRSVG_FORM_URLENCODED_1_2_1
+
+LIBRSVG_FUTF_0_1_5_MD5 := b0aae97e900fcbe7fd48703d1ff16af4
+LIBRSVG_FUTF_0_1_5_URL := https://crates.io/api/v1/crates/futf/0.1.5/download
+LIBRSVG_FUTF_0_1_5_SOURCE := $(SRCDIR)/futf-0.1.5.crate
+LIBRSVG_PARTS += LIBRSVG_FUTF_0_1_5
+
+LIBRSVG_FUTURES_CHANNEL_0_3_29_MD5 := 9a62713f95cce68d8bb24513f4d0deb4
+LIBRSVG_FUTURES_CHANNEL_0_3_29_URL := https://crates.io/api/v1/crates/futures-channel/0.3.29/download
+LIBRSVG_FUTURES_CHANNEL_0_3_29_SOURCE := $(SRCDIR)/futures-channel-0.3.29.crate
+LIBRSVG_PARTS += LIBRSVG_FUTURES_CHANNEL_0_3_29
+
+LIBRSVG_FUTURES_CORE_0_3_29_MD5 := e99f92f8c331ae3ddf5431f32f631804
+LIBRSVG_FUTURES_CORE_0_3_29_URL := https://crates.io/api/v1/crates/futures-core/0.3.29/download
+LIBRSVG_FUTURES_CORE_0_3_29_SOURCE := $(SRCDIR)/futures-core-0.3.29.crate
+LIBRSVG_PARTS += LIBRSVG_FUTURES_CORE_0_3_29
+
+LIBRSVG_FUTURES_EXECUTOR_0_3_29_MD5 := fbe00c658538a77acc2d3c44ad0ac9eb
+LIBRSVG_FUTURES_EXECUTOR_0_3_29_URL := https://crates.io/api/v1/crates/futures-executor/0.3.29/download
+LIBRSVG_FUTURES_EXECUTOR_0_3_29_SOURCE := $(SRCDIR)/futures-executor-0.3.29.crate
+LIBRSVG_PARTS += LIBRSVG_FUTURES_EXECUTOR_0_3_29
+
+LIBRSVG_FUTURES_IO_0_3_29_MD5 := 84536da186dd4b8c1754bbce5e68fec3
+LIBRSVG_FUTURES_IO_0_3_29_URL := https://crates.io/api/v1/crates/futures-io/0.3.29/download
+LIBRSVG_FUTURES_IO_0_3_29_SOURCE := $(SRCDIR)/futures-io-0.3.29.crate
+LIBRSVG_PARTS += LIBRSVG_FUTURES_IO_0_3_29
+
+LIBRSVG_FUTURES_MACRO_0_3_29_MD5 := ce5325bc842f2173ce5e61060e0f445d
+LIBRSVG_FUTURES_MACRO_0_3_29_URL := https://crates.io/api/v1/crates/futures-macro/0.3.29/download
+LIBRSVG_FUTURES_MACRO_0_3_29_SOURCE := $(SRCDIR)/futures-macro-0.3.29.crate
+LIBRSVG_PARTS += LIBRSVG_FUTURES_MACRO_0_3_29
+
+LIBRSVG_FUTURES_TASK_0_3_29_MD5 := 4f0caabfe3e8182285d9ac3dfaa6244e
+LIBRSVG_FUTURES_TASK_0_3_29_URL := https://crates.io/api/v1/crates/futures-task/0.3.29/download
+LIBRSVG_FUTURES_TASK_0_3_29_SOURCE := $(SRCDIR)/futures-task-0.3.29.crate
+LIBRSVG_PARTS += LIBRSVG_FUTURES_TASK_0_3_29
+
+LIBRSVG_FUTURES_UTIL_0_3_29_MD5 := d3c1f8a8014bb137d68bfa6c8018d9c8
+LIBRSVG_FUTURES_UTIL_0_3_29_URL := https://crates.io/api/v1/crates/futures-util/0.3.29/download
+LIBRSVG_FUTURES_UTIL_0_3_29_SOURCE := $(SRCDIR)/futures-util-0.3.29.crate
+LIBRSVG_PARTS += LIBRSVG_FUTURES_UTIL_0_3_29
+
+LIBRSVG_FXHASH_0_2_1_MD5 := 3903eb92a9ffd398f49c39b8df8e3987
+LIBRSVG_FXHASH_0_2_1_URL := https://crates.io/api/v1/crates/fxhash/0.2.1/download
+LIBRSVG_FXHASH_0_2_1_SOURCE := $(SRCDIR)/fxhash-0.2.1.crate
+LIBRSVG_PARTS += LIBRSVG_FXHASH_0_2_1
+
+LIBRSVG_GDK_PIXBUF_0_18_3_MD5 := 175e85480cff517451d99f3b7a13983b
+LIBRSVG_GDK_PIXBUF_0_18_3_URL := https://crates.io/api/v1/crates/gdk-pixbuf/0.18.3/download
+LIBRSVG_GDK_PIXBUF_0_18_3_SOURCE := $(SRCDIR)/gdk-pixbuf-0.18.3.crate
+LIBRSVG_PARTS += LIBRSVG_GDK_PIXBUF_0_18_3
+
+LIBRSVG_GDK_PIXBUF_SYS_0_18_0_MD5 := 269e78642167e275629147152593e81b
+LIBRSVG_GDK_PIXBUF_SYS_0_18_0_URL := https://crates.io/api/v1/crates/gdk-pixbuf-sys/0.18.0/download
+LIBRSVG_GDK_PIXBUF_SYS_0_18_0_SOURCE := $(SRCDIR)/gdk-pixbuf-sys-0.18.0.crate
+LIBRSVG_PARTS += LIBRSVG_GDK_PIXBUF_SYS_0_18_0
+
+LIBRSVG_GETRANDOM_0_2_11_MD5 := 3b00daaa372df161c5c8eeaf16a741d1
+LIBRSVG_GETRANDOM_0_2_11_URL := https://crates.io/api/v1/crates/getrandom/0.2.11/download
+LIBRSVG_GETRANDOM_0_2_11_SOURCE := $(SRCDIR)/getrandom-0.2.11.crate
+LIBRSVG_PARTS += LIBRSVG_GETRANDOM_0_2_11
+
+LIBRSVG_GIO_0_18_4_MD5 := fdef32cfe3ea37ddac20e46130fe6132
+LIBRSVG_GIO_0_18_4_URL := https://crates.io/api/v1/crates/gio/0.18.4/download
+LIBRSVG_GIO_0_18_4_SOURCE := $(SRCDIR)/gio-0.18.4.crate
+LIBRSVG_PARTS += LIBRSVG_GIO_0_18_4
+
+LIBRSVG_GIO_SYS_0_18_1_MD5 := feb3f27af542e3b29388abd6ac1ec541
+LIBRSVG_GIO_SYS_0_18_1_URL := https://crates.io/api/v1/crates/gio-sys/0.18.1/download
+LIBRSVG_GIO_SYS_0_18_1_SOURCE := $(SRCDIR)/gio-sys-0.18.1.crate
+LIBRSVG_PARTS += LIBRSVG_GIO_SYS_0_18_1
+
+LIBRSVG_GLIB_0_18_4_MD5 := 1df178822bd33aac84c55049f9b40c33
+LIBRSVG_GLIB_0_18_4_URL := https://crates.io/api/v1/crates/glib/0.18.4/download
+LIBRSVG_GLIB_0_18_4_SOURCE := $(SRCDIR)/glib-0.18.4.crate
+LIBRSVG_PARTS += LIBRSVG_GLIB_0_18_4
+
+LIBRSVG_GLIB_MACROS_0_18_3_MD5 := 1b96b5b390a98bcd45b7ea2bc2b74bcc
+LIBRSVG_GLIB_MACROS_0_18_3_URL := https://crates.io/api/v1/crates/glib-macros/0.18.3/download
+LIBRSVG_GLIB_MACROS_0_18_3_SOURCE := $(SRCDIR)/glib-macros-0.18.3.crate
+LIBRSVG_PARTS += LIBRSVG_GLIB_MACROS_0_18_3
+
+LIBRSVG_GLIB_SYS_0_18_1_MD5 := 61e232717152635aee692616f9dde1c0
+LIBRSVG_GLIB_SYS_0_18_1_URL := https://crates.io/api/v1/crates/glib-sys/0.18.1/download
+LIBRSVG_GLIB_SYS_0_18_1_SOURCE := $(SRCDIR)/glib-sys-0.18.1.crate
+LIBRSVG_PARTS += LIBRSVG_GLIB_SYS_0_18_1
+
+LIBRSVG_GOBJECT_SYS_0_18_0_MD5 := eea153d36f50bce274394f8fbca9aeae
+LIBRSVG_GOBJECT_SYS_0_18_0_URL := https://crates.io/api/v1/crates/gobject-sys/0.18.0/download
+LIBRSVG_GOBJECT_SYS_0_18_0_SOURCE := $(SRCDIR)/gobject-sys-0.18.0.crate
+LIBRSVG_PARTS += LIBRSVG_GOBJECT_SYS_0_18_0
+
+LIBRSVG_HALF_1_8_2_MD5 := fea840ce07a32bdace46c59c41362f3b
+LIBRSVG_HALF_1_8_2_URL := https://crates.io/api/v1/crates/half/1.8.2/download
+LIBRSVG_HALF_1_8_2_SOURCE := $(SRCDIR)/half-1.8.2.crate
+LIBRSVG_PARTS += LIBRSVG_HALF_1_8_2
+
+LIBRSVG_HASHBROWN_0_14_3_MD5 := 3451a2e54a12d567bbb1bf2815aedc37
+LIBRSVG_HASHBROWN_0_14_3_URL := https://crates.io/api/v1/crates/hashbrown/0.14.3/download
+LIBRSVG_HASHBROWN_0_14_3_SOURCE := $(SRCDIR)/hashbrown-0.14.3.crate
+LIBRSVG_PARTS += LIBRSVG_HASHBROWN_0_14_3
+
+LIBRSVG_HECK_0_4_1_MD5 := b92fa50f56a1e06a7f1bf665442d4a73
+LIBRSVG_HECK_0_4_1_URL := https://crates.io/api/v1/crates/heck/0.4.1/download
+LIBRSVG_HECK_0_4_1_SOURCE := $(SRCDIR)/heck-0.4.1.crate
+LIBRSVG_PARTS += LIBRSVG_HECK_0_4_1
+
+LIBRSVG_HERMIT_ABI_0_3_3_MD5 := b5fc3a27c94dc7bab487e15228c82d58
+LIBRSVG_HERMIT_ABI_0_3_3_URL := https://crates.io/api/v1/crates/hermit-abi/0.3.3/download
+LIBRSVG_HERMIT_ABI_0_3_3_SOURCE := $(SRCDIR)/hermit-abi-0.3.3.crate
+LIBRSVG_PARTS += LIBRSVG_HERMIT_ABI_0_3_3
+
+LIBRSVG_IANA_TIME_ZONE_0_1_58_MD5 := ddb0ec63d657e9d1f95a314fdff0b260
+LIBRSVG_IANA_TIME_ZONE_0_1_58_URL := https://crates.io/api/v1/crates/iana-time-zone/0.1.58/download
+LIBRSVG_IANA_TIME_ZONE_0_1_58_SOURCE := $(SRCDIR)/iana-time-zone-0.1.58.crate
+LIBRSVG_PARTS += LIBRSVG_IANA_TIME_ZONE_0_1_58
+
+LIBRSVG_IANA_TIME_ZONE_HAIKU_0_1_2_MD5 := 87b1b7cb12ef4dfe842c212b98263048
+LIBRSVG_IANA_TIME_ZONE_HAIKU_0_1_2_URL := https://crates.io/api/v1/crates/iana-time-zone-haiku/0.1.2/download
+LIBRSVG_IANA_TIME_ZONE_HAIKU_0_1_2_SOURCE := $(SRCDIR)/iana-time-zone-haiku-0.1.2.crate
+LIBRSVG_PARTS += LIBRSVG_IANA_TIME_ZONE_HAIKU_0_1_2
+
+LIBRSVG_IDNA_0_5_0_MD5 := b5305bde14813da51d536a9df564db69
+LIBRSVG_IDNA_0_5_0_URL := https://crates.io/api/v1/crates/idna/0.5.0/download
+LIBRSVG_IDNA_0_5_0_SOURCE := $(SRCDIR)/idna-0.5.0.crate
+LIBRSVG_PARTS += LIBRSVG_IDNA_0_5_0
+
+LIBRSVG_INDEXMAP_2_1_0_MD5 := f429c89da1e2d0ba564a0cb5e2ed928c
+LIBRSVG_INDEXMAP_2_1_0_URL := https://crates.io/api/v1/crates/indexmap/2.1.0/download
+LIBRSVG_INDEXMAP_2_1_0_SOURCE := $(SRCDIR)/indexmap-2.1.0.crate
+LIBRSVG_PARTS += LIBRSVG_INDEXMAP_2_1_0
+
+LIBRSVG_IS_TERMINAL_0_4_9_MD5 := ad61af236140412c359cdfb6dc6ef39e
+LIBRSVG_IS_TERMINAL_0_4_9_URL := https://crates.io/api/v1/crates/is-terminal/0.4.9/download
+LIBRSVG_IS_TERMINAL_0_4_9_SOURCE := $(SRCDIR)/is-terminal-0.4.9.crate
+LIBRSVG_PARTS += LIBRSVG_IS_TERMINAL_0_4_9
+
+LIBRSVG_ITERTOOLS_0_10_5_MD5 := 20b9f5d97aaf06b0f580f12860b67ba8
+LIBRSVG_ITERTOOLS_0_10_5_URL := https://crates.io/api/v1/crates/itertools/0.10.5/download
+LIBRSVG_ITERTOOLS_0_10_5_SOURCE := $(SRCDIR)/itertools-0.10.5.crate
+LIBRSVG_PARTS += LIBRSVG_ITERTOOLS_0_10_5
+
+LIBRSVG_ITERTOOLS_0_11_0_MD5 := d629ca093dfd23b5e9b4262c5f801928
+LIBRSVG_ITERTOOLS_0_11_0_URL := https://crates.io/api/v1/crates/itertools/0.11.0/download
+LIBRSVG_ITERTOOLS_0_11_0_SOURCE := $(SRCDIR)/itertools-0.11.0.crate
+LIBRSVG_PARTS += LIBRSVG_ITERTOOLS_0_11_0
+
+LIBRSVG_ITOA_1_0_10_MD5 := 0403f58e42c94609207c40a310cfe78a
+LIBRSVG_ITOA_1_0_10_URL := https://crates.io/api/v1/crates/itoa/1.0.10/download
+LIBRSVG_ITOA_1_0_10_SOURCE := $(SRCDIR)/itoa-1.0.10.crate
+LIBRSVG_PARTS += LIBRSVG_ITOA_1_0_10
+
+LIBRSVG_JS_SYS_0_3_66_MD5 := 6b33b0539f6c25c66268868b6b61e240
+LIBRSVG_JS_SYS_0_3_66_URL := https://crates.io/api/v1/crates/js-sys/0.3.66/download
+LIBRSVG_JS_SYS_0_3_66_SOURCE := $(SRCDIR)/js-sys-0.3.66.crate
+LIBRSVG_PARTS += LIBRSVG_JS_SYS_0_3_66
+
+LIBRSVG_LANGUAGE_TAGS_0_3_2_MD5 := 3a15fc72d0826a93e4333b38de854a3b
+LIBRSVG_LANGUAGE_TAGS_0_3_2_URL := https://crates.io/api/v1/crates/language-tags/0.3.2/download
+LIBRSVG_LANGUAGE_TAGS_0_3_2_SOURCE := $(SRCDIR)/language-tags-0.3.2.crate
+LIBRSVG_PARTS += LIBRSVG_LANGUAGE_TAGS_0_3_2
+
+LIBRSVG_LAZY_STATIC_1_4_0_MD5 := fba3b040a55c01be7376d3dd5c4d4920
+LIBRSVG_LAZY_STATIC_1_4_0_URL := https://crates.io/api/v1/crates/lazy_static/1.4.0/download
+LIBRSVG_LAZY_STATIC_1_4_0_SOURCE := $(SRCDIR)/lazy_static-1.4.0.crate
+LIBRSVG_PARTS += LIBRSVG_LAZY_STATIC_1_4_0
+
+LIBRSVG_LIBC_0_2_151_MD5 := 181cb83a57d327b26ebc21db41b28480
+LIBRSVG_LIBC_0_2_151_URL := https://crates.io/api/v1/crates/libc/0.2.151/download
+LIBRSVG_LIBC_0_2_151_SOURCE := $(SRCDIR)/libc-0.2.151.crate
+LIBRSVG_PARTS += LIBRSVG_LIBC_0_2_151
+
+LIBRSVG_LIBLOADING_0_8_1_MD5 := feb5919f3a98172d047e10b0bc1ea5ae
+LIBRSVG_LIBLOADING_0_8_1_URL := https://crates.io/api/v1/crates/libloading/0.8.1/download
+LIBRSVG_LIBLOADING_0_8_1_SOURCE := $(SRCDIR)/libloading-0.8.1.crate
+LIBRSVG_PARTS += LIBRSVG_LIBLOADING_0_8_1
+
+LIBRSVG_LIBM_0_2_8_MD5 := 23fb13a7f6fb7b25a42d71c3bcaa5d7c
+LIBRSVG_LIBM_0_2_8_URL := https://crates.io/api/v1/crates/libm/0.2.8/download
+LIBRSVG_LIBM_0_2_8_SOURCE := $(SRCDIR)/libm-0.2.8.crate
+LIBRSVG_PARTS += LIBRSVG_LIBM_0_2_8
+
+LIBRSVG_LINKED_HASH_MAP_0_5_6_MD5 := ef352de59e1b26277213640319c87e88
+LIBRSVG_LINKED_HASH_MAP_0_5_6_URL := https://crates.io/api/v1/crates/linked-hash-map/0.5.6/download
+LIBRSVG_LINKED_HASH_MAP_0_5_6_SOURCE := $(SRCDIR)/linked-hash-map-0.5.6.crate
+LIBRSVG_PARTS += LIBRSVG_LINKED_HASH_MAP_0_5_6
+
+LIBRSVG_LINUX_RAW_SYS_0_4_12_MD5 := 1d1b2033b4272a22654e55447ae7f404
+LIBRSVG_LINUX_RAW_SYS_0_4_12_URL := https://crates.io/api/v1/crates/linux-raw-sys/0.4.12/download
+LIBRSVG_LINUX_RAW_SYS_0_4_12_SOURCE := $(SRCDIR)/linux-raw-sys-0.4.12.crate
+LIBRSVG_PARTS += LIBRSVG_LINUX_RAW_SYS_0_4_12
+
+LIBRSVG_LOCALE_CONFIG_0_3_0_MD5 := 6fa7c4b0da26b511570845e41527bc8f
+LIBRSVG_LOCALE_CONFIG_0_3_0_URL := https://crates.io/api/v1/crates/locale_config/0.3.0/download
+LIBRSVG_LOCALE_CONFIG_0_3_0_SOURCE := $(SRCDIR)/locale_config-0.3.0.crate
+LIBRSVG_PARTS += LIBRSVG_LOCALE_CONFIG_0_3_0
+
+LIBRSVG_LOCK_API_0_4_11_MD5 := cc1b0e90e372869ad03ef40bd53fa30f
+LIBRSVG_LOCK_API_0_4_11_URL := https://crates.io/api/v1/crates/lock_api/0.4.11/download
+LIBRSVG_LOCK_API_0_4_11_SOURCE := $(SRCDIR)/lock_api-0.4.11.crate
+LIBRSVG_PARTS += LIBRSVG_LOCK_API_0_4_11
+
+LIBRSVG_LOG_0_4_20_MD5 := 8ee79b4fe4c43d9ab09f16344612a656
+LIBRSVG_LOG_0_4_20_URL := https://crates.io/api/v1/crates/log/0.4.20/download
+LIBRSVG_LOG_0_4_20_SOURCE := $(SRCDIR)/log-0.4.20.crate
+LIBRSVG_PARTS += LIBRSVG_LOG_0_4_20
+
+LIBRSVG_LOPDF_0_31_0_MD5 := 9c323aa55e241eac141aea437ed53170
+LIBRSVG_LOPDF_0_31_0_URL := https://crates.io/api/v1/crates/lopdf/0.31.0/download
+LIBRSVG_LOPDF_0_31_0_SOURCE := $(SRCDIR)/lopdf-0.31.0.crate
+LIBRSVG_PARTS += LIBRSVG_LOPDF_0_31_0
+
+LIBRSVG_MAC_0_1_1_MD5 := 4f72232c91aa665fcc186acb4f0b2ff8
+LIBRSVG_MAC_0_1_1_URL := https://crates.io/api/v1/crates/mac/0.1.1/download
+LIBRSVG_MAC_0_1_1_SOURCE := $(SRCDIR)/mac-0.1.1.crate
+LIBRSVG_PARTS += LIBRSVG_MAC_0_1_1
+
+LIBRSVG_MALLOC_BUF_0_0_6_MD5 := 7c81e7a61ec172a229d6fdbc553e883d
+LIBRSVG_MALLOC_BUF_0_0_6_URL := https://crates.io/api/v1/crates/malloc_buf/0.0.6/download
+LIBRSVG_MALLOC_BUF_0_0_6_SOURCE := $(SRCDIR)/malloc_buf-0.0.6.crate
+LIBRSVG_PARTS += LIBRSVG_MALLOC_BUF_0_0_6
+
+LIBRSVG_MARKUP5EVER_0_11_0_MD5 := 8c63791a947768db9426d36548cf509e
+LIBRSVG_MARKUP5EVER_0_11_0_URL := https://crates.io/api/v1/crates/markup5ever/0.11.0/download
+LIBRSVG_MARKUP5EVER_0_11_0_SOURCE := $(SRCDIR)/markup5ever-0.11.0.crate
+LIBRSVG_PARTS += LIBRSVG_MARKUP5EVER_0_11_0
+
+LIBRSVG_MATCHES_0_1_10_MD5 := 1cf0db5ea492bd048cfac1327e8bfce0
+LIBRSVG_MATCHES_0_1_10_URL := https://crates.io/api/v1/crates/matches/0.1.10/download
+LIBRSVG_MATCHES_0_1_10_SOURCE := $(SRCDIR)/matches-0.1.10.crate
+LIBRSVG_PARTS += LIBRSVG_MATCHES_0_1_10
+
+LIBRSVG_MATRIXMULTIPLY_0_3_8_MD5 := dbff24434df55872d20e95853a39ef01
+LIBRSVG_MATRIXMULTIPLY_0_3_8_URL := https://crates.io/api/v1/crates/matrixmultiply/0.3.8/download
+LIBRSVG_MATRIXMULTIPLY_0_3_8_SOURCE := $(SRCDIR)/matrixmultiply-0.3.8.crate
+LIBRSVG_PARTS += LIBRSVG_MATRIXMULTIPLY_0_3_8
+
+LIBRSVG_MD5_0_7_0_MD5 := 65470cdfd1fa2a2de9fdf873a58d72aa
+LIBRSVG_MD5_0_7_0_URL := https://crates.io/api/v1/crates/md5/0.7.0/download
+LIBRSVG_MD5_0_7_0_SOURCE := $(SRCDIR)/md5-0.7.0.crate
+LIBRSVG_PARTS += LIBRSVG_MD5_0_7_0
+
+LIBRSVG_MEMCHR_2_6_4_MD5 := ab9a5f02cef3b8794d810332ebf26a03
+LIBRSVG_MEMCHR_2_6_4_URL := https://crates.io/api/v1/crates/memchr/2.6.4/download
+LIBRSVG_MEMCHR_2_6_4_SOURCE := $(SRCDIR)/memchr-2.6.4.crate
+LIBRSVG_PARTS += LIBRSVG_MEMCHR_2_6_4
+
+LIBRSVG_MEMOFFSET_0_9_0_MD5 := fb6241893b457ed69fae5c1ae19920da
+LIBRSVG_MEMOFFSET_0_9_0_URL := https://crates.io/api/v1/crates/memoffset/0.9.0/download
+LIBRSVG_MEMOFFSET_0_9_0_SOURCE := $(SRCDIR)/memoffset-0.9.0.crate
+LIBRSVG_PARTS += LIBRSVG_MEMOFFSET_0_9_0
+
+LIBRSVG_MINIMAL_LEXICAL_0_2_1_MD5 := 8b708bc4b33c5e1683467444c9ed41b0
+LIBRSVG_MINIMAL_LEXICAL_0_2_1_URL := https://crates.io/api/v1/crates/minimal-lexical/0.2.1/download
+LIBRSVG_MINIMAL_LEXICAL_0_2_1_SOURCE := $(SRCDIR)/minimal-lexical-0.2.1.crate
+LIBRSVG_PARTS += LIBRSVG_MINIMAL_LEXICAL_0_2_1
+
+LIBRSVG_MINIZ_OXIDE_0_7_1_MD5 := eb7e04508518ed8f29935ec874e1740a
+LIBRSVG_MINIZ_OXIDE_0_7_1_URL := https://crates.io/api/v1/crates/miniz_oxide/0.7.1/download
+LIBRSVG_MINIZ_OXIDE_0_7_1_SOURCE := $(SRCDIR)/miniz_oxide-0.7.1.crate
+LIBRSVG_PARTS += LIBRSVG_MINIZ_OXIDE_0_7_1
+
+LIBRSVG_NALGEBRA_0_32_3_MD5 := 781f29c9a946bb151d2e5c54f6c8e412
+LIBRSVG_NALGEBRA_0_32_3_URL := https://crates.io/api/v1/crates/nalgebra/0.32.3/download
+LIBRSVG_NALGEBRA_0_32_3_SOURCE := $(SRCDIR)/nalgebra-0.32.3.crate
+LIBRSVG_PARTS += LIBRSVG_NALGEBRA_0_32_3
+
+LIBRSVG_NALGEBRA_MACROS_0_2_1_MD5 := 71623a2bf0504cc7f52c7a419c134878
+LIBRSVG_NALGEBRA_MACROS_0_2_1_URL := https://crates.io/api/v1/crates/nalgebra-macros/0.2.1/download
+LIBRSVG_NALGEBRA_MACROS_0_2_1_SOURCE := $(SRCDIR)/nalgebra-macros-0.2.1.crate
+LIBRSVG_PARTS += LIBRSVG_NALGEBRA_MACROS_0_2_1
+
+LIBRSVG_NEW_DEBUG_UNREACHABLE_1_0_4_MD5 := 75b8063cab37a099b45204f2e6b1738f
+LIBRSVG_NEW_DEBUG_UNREACHABLE_1_0_4_URL := https://crates.io/api/v1/crates/new_debug_unreachable/1.0.4/download
+LIBRSVG_NEW_DEBUG_UNREACHABLE_1_0_4_SOURCE := $(SRCDIR)/new_debug_unreachable-1.0.4.crate
+LIBRSVG_PARTS += LIBRSVG_NEW_DEBUG_UNREACHABLE_1_0_4
+
+LIBRSVG_NOM_7_1_3_MD5 := f17aecb8887cf0ecd823623160aed7db
+LIBRSVG_NOM_7_1_3_URL := https://crates.io/api/v1/crates/nom/7.1.3/download
+LIBRSVG_NOM_7_1_3_SOURCE := $(SRCDIR)/nom-7.1.3.crate
+LIBRSVG_PARTS += LIBRSVG_NOM_7_1_3
+
+LIBRSVG_NORMALIZE_LINE_ENDINGS_0_3_0_MD5 := f9ddf92ded75c1df47b2dd1379a482fd
+LIBRSVG_NORMALIZE_LINE_ENDINGS_0_3_0_URL := https://crates.io/api/v1/crates/normalize-line-endings/0.3.0/download
+LIBRSVG_NORMALIZE_LINE_ENDINGS_0_3_0_SOURCE := $(SRCDIR)/normalize-line-endings-0.3.0.crate
+LIBRSVG_PARTS += LIBRSVG_NORMALIZE_LINE_ENDINGS_0_3_0
+
+LIBRSVG_NUM_COMPLEX_0_4_4_MD5 := 670e15fbe25a9b2966bdf0e6d6c08638
+LIBRSVG_NUM_COMPLEX_0_4_4_URL := https://crates.io/api/v1/crates/num-complex/0.4.4/download
+LIBRSVG_NUM_COMPLEX_0_4_4_SOURCE := $(SRCDIR)/num-complex-0.4.4.crate
+LIBRSVG_PARTS += LIBRSVG_NUM_COMPLEX_0_4_4
+
+LIBRSVG_NUM_INTEGER_0_1_45_MD5 := 073b4c53e303ccf2a807dfce7f5e986a
+LIBRSVG_NUM_INTEGER_0_1_45_URL := https://crates.io/api/v1/crates/num-integer/0.1.45/download
+LIBRSVG_NUM_INTEGER_0_1_45_SOURCE := $(SRCDIR)/num-integer-0.1.45.crate
+LIBRSVG_PARTS += LIBRSVG_NUM_INTEGER_0_1_45
+
+LIBRSVG_NUM_RATIONAL_0_4_1_MD5 := 00ebf3254ed74711c1f6717de3012350
+LIBRSVG_NUM_RATIONAL_0_4_1_URL := https://crates.io/api/v1/crates/num-rational/0.4.1/download
+LIBRSVG_NUM_RATIONAL_0_4_1_SOURCE := $(SRCDIR)/num-rational-0.4.1.crate
+LIBRSVG_PARTS += LIBRSVG_NUM_RATIONAL_0_4_1
+
+LIBRSVG_NUM_TRAITS_0_2_17_MD5 := 512bcd4470f351b2049adeb39cfcdec4
+LIBRSVG_NUM_TRAITS_0_2_17_URL := https://crates.io/api/v1/crates/num-traits/0.2.17/download
+LIBRSVG_NUM_TRAITS_0_2_17_SOURCE := $(SRCDIR)/num-traits-0.2.17.crate
+LIBRSVG_PARTS += LIBRSVG_NUM_TRAITS_0_2_17
+
+LIBRSVG_OBJC_0_2_7_MD5 := b4dcac855af5df71f3383d86c4a96b78
+LIBRSVG_OBJC_0_2_7_URL := https://crates.io/api/v1/crates/objc/0.2.7/download
+LIBRSVG_OBJC_0_2_7_SOURCE := $(SRCDIR)/objc-0.2.7.crate
+LIBRSVG_PARTS += LIBRSVG_OBJC_0_2_7
+
+LIBRSVG_OBJC_FOUNDATION_0_1_1_MD5 := aecd889de42c8168e1bc97a6f2720d8f
+LIBRSVG_OBJC_FOUNDATION_0_1_1_URL := https://crates.io/api/v1/crates/objc-foundation/0.1.1/download
+LIBRSVG_OBJC_FOUNDATION_0_1_1_SOURCE := $(SRCDIR)/objc-foundation-0.1.1.crate
+LIBRSVG_PARTS += LIBRSVG_OBJC_FOUNDATION_0_1_1
+
+LIBRSVG_OBJC_ID_0_1_1_MD5 := fd9aa273ad560dedd00ddcf3dbe808ce
+LIBRSVG_OBJC_ID_0_1_1_URL := https://crates.io/api/v1/crates/objc_id/0.1.1/download
+LIBRSVG_OBJC_ID_0_1_1_SOURCE := $(SRCDIR)/objc_id-0.1.1.crate
+LIBRSVG_PARTS += LIBRSVG_OBJC_ID_0_1_1
+
+LIBRSVG_ONCE_CELL_1_19_0_MD5 := 8390247ae7126c00e162732b249be9d7
+LIBRSVG_ONCE_CELL_1_19_0_URL := https://crates.io/api/v1/crates/once_cell/1.19.0/download
+LIBRSVG_ONCE_CELL_1_19_0_SOURCE := $(SRCDIR)/once_cell-1.19.0.crate
+LIBRSVG_PARTS += LIBRSVG_ONCE_CELL_1_19_0
+
+LIBRSVG_OORANDOM_11_1_3_MD5 := 6b79a1dbccc9351cbc297cfa3d98d651
+LIBRSVG_OORANDOM_11_1_3_URL := https://crates.io/api/v1/crates/oorandom/11.1.3/download
+LIBRSVG_OORANDOM_11_1_3_SOURCE := $(SRCDIR)/oorandom-11.1.3.crate
+LIBRSVG_PARTS += LIBRSVG_OORANDOM_11_1_3
+
+LIBRSVG_PANGO_0_18_3_MD5 := 5da6b7b8cb9ab76ddb0217b25c185420
+LIBRSVG_PANGO_0_18_3_URL := https://crates.io/api/v1/crates/pango/0.18.3/download
+LIBRSVG_PANGO_0_18_3_SOURCE := $(SRCDIR)/pango-0.18.3.crate
+LIBRSVG_PARTS += LIBRSVG_PANGO_0_18_3
+
+LIBRSVG_PANGO_SYS_0_18_0_MD5 := 835f90df0ade87bc2bd1b9fd136e1248
+LIBRSVG_PANGO_SYS_0_18_0_URL := https://crates.io/api/v1/crates/pango-sys/0.18.0/download
+LIBRSVG_PANGO_SYS_0_18_0_SOURCE := $(SRCDIR)/pango-sys-0.18.0.crate
+LIBRSVG_PARTS += LIBRSVG_PANGO_SYS_0_18_0
+
+LIBRSVG_PANGOCAIRO_0_18_0_MD5 := 040a1f16f86272a3e07b9e11091308ef
+LIBRSVG_PANGOCAIRO_0_18_0_URL := https://crates.io/api/v1/crates/pangocairo/0.18.0/download
+LIBRSVG_PANGOCAIRO_0_18_0_SOURCE := $(SRCDIR)/pangocairo-0.18.0.crate
+LIBRSVG_PARTS += LIBRSVG_PANGOCAIRO_0_18_0
+
+LIBRSVG_PANGOCAIRO_SYS_0_18_0_MD5 := 40fecdb267103bba66595311ae1bd7a9
+LIBRSVG_PANGOCAIRO_SYS_0_18_0_URL := https://crates.io/api/v1/crates/pangocairo-sys/0.18.0/download
+LIBRSVG_PANGOCAIRO_SYS_0_18_0_SOURCE := $(SRCDIR)/pangocairo-sys-0.18.0.crate
+LIBRSVG_PARTS += LIBRSVG_PANGOCAIRO_SYS_0_18_0
+
+LIBRSVG_PARKING_LOT_0_12_1_MD5 := 1be45f99109d447849f4244b58c5a470
+LIBRSVG_PARKING_LOT_0_12_1_URL := https://crates.io/api/v1/crates/parking_lot/0.12.1/download
+LIBRSVG_PARKING_LOT_0_12_1_SOURCE := $(SRCDIR)/parking_lot-0.12.1.crate
+LIBRSVG_PARTS += LIBRSVG_PARKING_LOT_0_12_1
+
+LIBRSVG_PARKING_LOT_CORE_0_9_9_MD5 := 7502c2f15026ee3e6a01f57b92942771
+LIBRSVG_PARKING_LOT_CORE_0_9_9_URL := https://crates.io/api/v1/crates/parking_lot_core/0.9.9/download
+LIBRSVG_PARKING_LOT_CORE_0_9_9_SOURCE := $(SRCDIR)/parking_lot_core-0.9.9.crate
+LIBRSVG_PARTS += LIBRSVG_PARKING_LOT_CORE_0_9_9
+
+LIBRSVG_PASTE_1_0_14_MD5 := 1781b204ec7b6b1ef9232d429e6a973a
+LIBRSVG_PASTE_1_0_14_URL := https://crates.io/api/v1/crates/paste/1.0.14/download
+LIBRSVG_PASTE_1_0_14_SOURCE := $(SRCDIR)/paste-1.0.14.crate
+LIBRSVG_PARTS += LIBRSVG_PASTE_1_0_14
+
+LIBRSVG_PERCENT_ENCODING_2_3_1_MD5 := 0ba30a94d7b8865c23e86d4d64e5b91e
+LIBRSVG_PERCENT_ENCODING_2_3_1_URL := https://crates.io/api/v1/crates/percent-encoding/2.3.1/download
+LIBRSVG_PERCENT_ENCODING_2_3_1_SOURCE := $(SRCDIR)/percent-encoding-2.3.1.crate
+LIBRSVG_PARTS += LIBRSVG_PERCENT_ENCODING_2_3_1
+
+LIBRSVG_PHF_0_10_1_MD5 := f4966d56bee9e121b38e48916ffea2bb
+LIBRSVG_PHF_0_10_1_URL := https://crates.io/api/v1/crates/phf/0.10.1/download
+LIBRSVG_PHF_0_10_1_SOURCE := $(SRCDIR)/phf-0.10.1.crate
+LIBRSVG_PARTS += LIBRSVG_PHF_0_10_1
+
+LIBRSVG_PHF_0_11_2_MD5 := 12613f90aab930b5317557b1b0a21e30
+LIBRSVG_PHF_0_11_2_URL := https://crates.io/api/v1/crates/phf/0.11.2/download
+LIBRSVG_PHF_0_11_2_SOURCE := $(SRCDIR)/phf-0.11.2.crate
+LIBRSVG_PARTS += LIBRSVG_PHF_0_11_2
+
+LIBRSVG_PHF_CODEGEN_0_10_0_MD5 := ee822e4d5d1edcb1a1974fe2b835b308
+LIBRSVG_PHF_CODEGEN_0_10_0_URL := https://crates.io/api/v1/crates/phf_codegen/0.10.0/download
+LIBRSVG_PHF_CODEGEN_0_10_0_SOURCE := $(SRCDIR)/phf_codegen-0.10.0.crate
+LIBRSVG_PARTS += LIBRSVG_PHF_CODEGEN_0_10_0
+
+LIBRSVG_PHF_GENERATOR_0_10_0_MD5 := b45c8b17e9948965c484a2ddfbea11ed
+LIBRSVG_PHF_GENERATOR_0_10_0_URL := https://crates.io/api/v1/crates/phf_generator/0.10.0/download
+LIBRSVG_PHF_GENERATOR_0_10_0_SOURCE := $(SRCDIR)/phf_generator-0.10.0.crate
+LIBRSVG_PARTS += LIBRSVG_PHF_GENERATOR_0_10_0
+
+LIBRSVG_PHF_GENERATOR_0_11_2_MD5 := d8b1713b722c482c78ceb961cf994d38
+LIBRSVG_PHF_GENERATOR_0_11_2_URL := https://crates.io/api/v1/crates/phf_generator/0.11.2/download
+LIBRSVG_PHF_GENERATOR_0_11_2_SOURCE := $(SRCDIR)/phf_generator-0.11.2.crate
+LIBRSVG_PARTS += LIBRSVG_PHF_GENERATOR_0_11_2
+
+LIBRSVG_PHF_MACROS_0_11_2_MD5 := 0981e58fddd9ca649d338c51c0f4c5a4
+LIBRSVG_PHF_MACROS_0_11_2_URL := https://crates.io/api/v1/crates/phf_macros/0.11.2/download
+LIBRSVG_PHF_MACROS_0_11_2_SOURCE := $(SRCDIR)/phf_macros-0.11.2.crate
+LIBRSVG_PARTS += LIBRSVG_PHF_MACROS_0_11_2
+
+LIBRSVG_PHF_SHARED_0_10_0_MD5 := d3aba74b592cfad9a1a43b22981fb1b2
+LIBRSVG_PHF_SHARED_0_10_0_URL := https://crates.io/api/v1/crates/phf_shared/0.10.0/download
+LIBRSVG_PHF_SHARED_0_10_0_SOURCE := $(SRCDIR)/phf_shared-0.10.0.crate
+LIBRSVG_PARTS += LIBRSVG_PHF_SHARED_0_10_0
+
+LIBRSVG_PHF_SHARED_0_11_2_MD5 := 3cbb110e799c18366fd19d05c66df6d7
+LIBRSVG_PHF_SHARED_0_11_2_URL := https://crates.io/api/v1/crates/phf_shared/0.11.2/download
+LIBRSVG_PHF_SHARED_0_11_2_SOURCE := $(SRCDIR)/phf_shared-0.11.2.crate
+LIBRSVG_PARTS += LIBRSVG_PHF_SHARED_0_11_2
+
+LIBRSVG_PIN_PROJECT_LITE_0_2_13_MD5 := ffc7c4e1b2639ba6c8579a1c47c5f97c
+LIBRSVG_PIN_PROJECT_LITE_0_2_13_URL := https://crates.io/api/v1/crates/pin-project-lite/0.2.13/download
+LIBRSVG_PIN_PROJECT_LITE_0_2_13_SOURCE := $(SRCDIR)/pin-project-lite-0.2.13.crate
+LIBRSVG_PARTS += LIBRSVG_PIN_PROJECT_LITE_0_2_13
+
+LIBRSVG_PIN_UTILS_0_1_0_MD5 := 07c75fec267864bcbb800ca7709ceae2
+LIBRSVG_PIN_UTILS_0_1_0_URL := https://crates.io/api/v1/crates/pin-utils/0.1.0/download
+LIBRSVG_PIN_UTILS_0_1_0_SOURCE := $(SRCDIR)/pin-utils-0.1.0.crate
+LIBRSVG_PARTS += LIBRSVG_PIN_UTILS_0_1_0
+
+LIBRSVG_PKG_CONFIG_0_3_27_MD5 := 73d4dff694f3acab34c217b4f4943a37
+LIBRSVG_PKG_CONFIG_0_3_27_URL := https://crates.io/api/v1/crates/pkg-config/0.3.27/download
+LIBRSVG_PKG_CONFIG_0_3_27_SOURCE := $(SRCDIR)/pkg-config-0.3.27.crate
+LIBRSVG_PARTS += LIBRSVG_PKG_CONFIG_0_3_27
+
+LIBRSVG_PLOTTERS_0_3_5_MD5 := 24171d9c31ec6e5ccb4cb2ab5494d0c0
+LIBRSVG_PLOTTERS_0_3_5_URL := https://crates.io/api/v1/crates/plotters/0.3.5/download
+LIBRSVG_PLOTTERS_0_3_5_SOURCE := $(SRCDIR)/plotters-0.3.5.crate
+LIBRSVG_PARTS += LIBRSVG_PLOTTERS_0_3_5
+
+LIBRSVG_PLOTTERS_BACKEND_0_3_5_MD5 := bd8a914851fd9e6351082f98b7e7fa84
+LIBRSVG_PLOTTERS_BACKEND_0_3_5_URL := https://crates.io/api/v1/crates/plotters-backend/0.3.5/download
+LIBRSVG_PLOTTERS_BACKEND_0_3_5_SOURCE := $(SRCDIR)/plotters-backend-0.3.5.crate
+LIBRSVG_PARTS += LIBRSVG_PLOTTERS_BACKEND_0_3_5
+
+LIBRSVG_PLOTTERS_SVG_0_3_5_MD5 := a6b32988425a3fcfa02e2330d47715a1
+LIBRSVG_PLOTTERS_SVG_0_3_5_URL := https://crates.io/api/v1/crates/plotters-svg/0.3.5/download
+LIBRSVG_PLOTTERS_SVG_0_3_5_SOURCE := $(SRCDIR)/plotters-svg-0.3.5.crate
+LIBRSVG_PARTS += LIBRSVG_PLOTTERS_SVG_0_3_5
+
+LIBRSVG_PNG_0_17_10_MD5 := 7b5035f3ae2acd6abe959249308bb5a1
+LIBRSVG_PNG_0_17_10_URL := https://crates.io/api/v1/crates/png/0.17.10/download
+LIBRSVG_PNG_0_17_10_SOURCE := $(SRCDIR)/png-0.17.10.crate
+LIBRSVG_PARTS += LIBRSVG_PNG_0_17_10
+
+LIBRSVG_POWERFMT_0_2_0_MD5 := 30eb4de1c1a3bd214d7649b891abf444
+LIBRSVG_POWERFMT_0_2_0_URL := https://crates.io/api/v1/crates/powerfmt/0.2.0/download
+LIBRSVG_POWERFMT_0_2_0_SOURCE := $(SRCDIR)/powerfmt-0.2.0.crate
+LIBRSVG_PARTS += LIBRSVG_POWERFMT_0_2_0
+
+LIBRSVG_PPV_LITE86_0_2_17_MD5 := 5c69337d37e58a380e00eac9ce0373bb
+LIBRSVG_PPV_LITE86_0_2_17_URL := https://crates.io/api/v1/crates/ppv-lite86/0.2.17/download
+LIBRSVG_PPV_LITE86_0_2_17_SOURCE := $(SRCDIR)/ppv-lite86-0.2.17.crate
+LIBRSVG_PARTS += LIBRSVG_PPV_LITE86_0_2_17
+
+LIBRSVG_PRECOMPUTED_HASH_0_1_1_MD5 := 452ac8d7c004b02e1ec30a9e390f9625
+LIBRSVG_PRECOMPUTED_HASH_0_1_1_URL := https://crates.io/api/v1/crates/precomputed-hash/0.1.1/download
+LIBRSVG_PRECOMPUTED_HASH_0_1_1_SOURCE := $(SRCDIR)/precomputed-hash-0.1.1.crate
+LIBRSVG_PARTS += LIBRSVG_PRECOMPUTED_HASH_0_1_1
+
+LIBRSVG_PREDICATES_3_0_4_MD5 := 21574d08e3527cc2d944698767770300
+LIBRSVG_PREDICATES_3_0_4_URL := https://crates.io/api/v1/crates/predicates/3.0.4/download
+LIBRSVG_PREDICATES_3_0_4_SOURCE := $(SRCDIR)/predicates-3.0.4.crate
+LIBRSVG_PARTS += LIBRSVG_PREDICATES_3_0_4
+
+LIBRSVG_PREDICATES_CORE_1_0_6_MD5 := be08d75820c528ad6143e9e42efccee0
+LIBRSVG_PREDICATES_CORE_1_0_6_URL := https://crates.io/api/v1/crates/predicates-core/1.0.6/download
+LIBRSVG_PREDICATES_CORE_1_0_6_SOURCE := $(SRCDIR)/predicates-core-1.0.6.crate
+LIBRSVG_PARTS += LIBRSVG_PREDICATES_CORE_1_0_6
+
+LIBRSVG_PREDICATES_TREE_1_0_9_MD5 := 175aaa67c5c9a4c8de2b944d51d0753d
+LIBRSVG_PREDICATES_TREE_1_0_9_URL := https://crates.io/api/v1/crates/predicates-tree/1.0.9/download
+LIBRSVG_PREDICATES_TREE_1_0_9_SOURCE := $(SRCDIR)/predicates-tree-1.0.9.crate
+LIBRSVG_PARTS += LIBRSVG_PREDICATES_TREE_1_0_9
+
+LIBRSVG_PROC_MACRO_CRATE_2_0_1_MD5 := 973691995e0a42575e43a8e5ba277fa9
+LIBRSVG_PROC_MACRO_CRATE_2_0_1_URL := https://crates.io/api/v1/crates/proc-macro-crate/2.0.1/download
+LIBRSVG_PROC_MACRO_CRATE_2_0_1_SOURCE := $(SRCDIR)/proc-macro-crate-2.0.1.crate
+LIBRSVG_PARTS += LIBRSVG_PROC_MACRO_CRATE_2_0_1
+
+LIBRSVG_PROC_MACRO_ERROR_1_0_4_MD5 := 6a32bab57772c3a1146d599b65ffb0cb
+LIBRSVG_PROC_MACRO_ERROR_1_0_4_URL := https://crates.io/api/v1/crates/proc-macro-error/1.0.4/download
+LIBRSVG_PROC_MACRO_ERROR_1_0_4_SOURCE := $(SRCDIR)/proc-macro-error-1.0.4.crate
+LIBRSVG_PARTS += LIBRSVG_PROC_MACRO_ERROR_1_0_4
+
+LIBRSVG_PROC_MACRO_ERROR_ATTR_1_0_4_MD5 := 7d76a523677de261dda1b65d29a93c4e
+LIBRSVG_PROC_MACRO_ERROR_ATTR_1_0_4_URL := https://crates.io/api/v1/crates/proc-macro-error-attr/1.0.4/download
+LIBRSVG_PROC_MACRO_ERROR_ATTR_1_0_4_SOURCE := $(SRCDIR)/proc-macro-error-attr-1.0.4.crate
+LIBRSVG_PARTS += LIBRSVG_PROC_MACRO_ERROR_ATTR_1_0_4
+
+LIBRSVG_PROC_MACRO2_1_0_70_MD5 := 3f210fd91912a2d7d2f0af5038704d17
+LIBRSVG_PROC_MACRO2_1_0_70_URL := https://crates.io/api/v1/crates/proc-macro2/1.0.70/download
+LIBRSVG_PROC_MACRO2_1_0_70_SOURCE := $(SRCDIR)/proc-macro2-1.0.70.crate
+LIBRSVG_PARTS += LIBRSVG_PROC_MACRO2_1_0_70
+
+LIBRSVG_PROPTEST_1_4_0_MD5 := 480d2d6c416df04f9eb728728932e9a2
+LIBRSVG_PROPTEST_1_4_0_URL := https://crates.io/api/v1/crates/proptest/1.4.0/download
+LIBRSVG_PROPTEST_1_4_0_SOURCE := $(SRCDIR)/proptest-1.4.0.crate
+LIBRSVG_PARTS += LIBRSVG_PROPTEST_1_4_0
+
+LIBRSVG_QUICK_ERROR_1_2_3_MD5 := 3181dca31efe33cbed29a45d0ec67848
+LIBRSVG_QUICK_ERROR_1_2_3_URL := https://crates.io/api/v1/crates/quick-error/1.2.3/download
+LIBRSVG_QUICK_ERROR_1_2_3_SOURCE := $(SRCDIR)/quick-error-1.2.3.crate
+LIBRSVG_PARTS += LIBRSVG_QUICK_ERROR_1_2_3
+
+LIBRSVG_QUICK_ERROR_2_0_1_MD5 := 3c1cc07f7d54984f8189eb08401b7a7e
+LIBRSVG_QUICK_ERROR_2_0_1_URL := https://crates.io/api/v1/crates/quick-error/2.0.1/download
+LIBRSVG_QUICK_ERROR_2_0_1_SOURCE := $(SRCDIR)/quick-error-2.0.1.crate
+LIBRSVG_PARTS += LIBRSVG_QUICK_ERROR_2_0_1
+
+LIBRSVG_QUOTE_1_0_33_MD5 := 0ddb8bccd3198892d0dd0ec7151f7cd3
+LIBRSVG_QUOTE_1_0_33_URL := https://crates.io/api/v1/crates/quote/1.0.33/download
+LIBRSVG_QUOTE_1_0_33_SOURCE := $(SRCDIR)/quote-1.0.33.crate
+LIBRSVG_PARTS += LIBRSVG_QUOTE_1_0_33
+
+LIBRSVG_RAND_0_8_5_MD5 := ee7a5f842c39bc47c474196e83b0df5f
+LIBRSVG_RAND_0_8_5_URL := https://crates.io/api/v1/crates/rand/0.8.5/download
+LIBRSVG_RAND_0_8_5_SOURCE := $(SRCDIR)/rand-0.8.5.crate
+LIBRSVG_PARTS += LIBRSVG_RAND_0_8_5
+
+LIBRSVG_RAND_CHACHA_0_3_1_MD5 := e30085994bbeb4b7f4895d48216d5476
+LIBRSVG_RAND_CHACHA_0_3_1_URL := https://crates.io/api/v1/crates/rand_chacha/0.3.1/download
+LIBRSVG_RAND_CHACHA_0_3_1_SOURCE := $(SRCDIR)/rand_chacha-0.3.1.crate
+LIBRSVG_PARTS += LIBRSVG_RAND_CHACHA_0_3_1
+
+LIBRSVG_RAND_CORE_0_6_4_MD5 := a1626b8f4d165b1b60d960862eba4cf0
+LIBRSVG_RAND_CORE_0_6_4_URL := https://crates.io/api/v1/crates/rand_core/0.6.4/download
+LIBRSVG_RAND_CORE_0_6_4_SOURCE := $(SRCDIR)/rand_core-0.6.4.crate
+LIBRSVG_PARTS += LIBRSVG_RAND_CORE_0_6_4
+
+LIBRSVG_RAND_XORSHIFT_0_3_0_MD5 := f9e79ef04a0f168cd981aaf93eb25272
+LIBRSVG_RAND_XORSHIFT_0_3_0_URL := https://crates.io/api/v1/crates/rand_xorshift/0.3.0/download
+LIBRSVG_RAND_XORSHIFT_0_3_0_SOURCE := $(SRCDIR)/rand_xorshift-0.3.0.crate
+LIBRSVG_PARTS += LIBRSVG_RAND_XORSHIFT_0_3_0
+
+LIBRSVG_RAWPOINTER_0_2_1_MD5 := d4a05ab09e96ee8767f7409721bf65b8
+LIBRSVG_RAWPOINTER_0_2_1_URL := https://crates.io/api/v1/crates/rawpointer/0.2.1/download
+LIBRSVG_RAWPOINTER_0_2_1_SOURCE := $(SRCDIR)/rawpointer-0.2.1.crate
+LIBRSVG_PARTS += LIBRSVG_RAWPOINTER_0_2_1
+
+LIBRSVG_RAYON_1_8_0_MD5 := 00056853ca41c1a1448253be06daf010
+LIBRSVG_RAYON_1_8_0_URL := https://crates.io/api/v1/crates/rayon/1.8.0/download
+LIBRSVG_RAYON_1_8_0_SOURCE := $(SRCDIR)/rayon-1.8.0.crate
+LIBRSVG_PARTS += LIBRSVG_RAYON_1_8_0
+
+LIBRSVG_RAYON_CORE_1_12_0_MD5 := 4311e7e5548d3aaa04ffea5334fc50e0
+LIBRSVG_RAYON_CORE_1_12_0_URL := https://crates.io/api/v1/crates/rayon-core/1.12.0/download
+LIBRSVG_RAYON_CORE_1_12_0_SOURCE := $(SRCDIR)/rayon-core-1.12.0.crate
+LIBRSVG_PARTS += LIBRSVG_RAYON_CORE_1_12_0
+
+LIBRSVG_RCTREE_0_5_0_MD5 := 01386e0000bb2040c755f740772ab9c6
+LIBRSVG_RCTREE_0_5_0_URL := https://crates.io/api/v1/crates/rctree/0.5.0/download
+LIBRSVG_RCTREE_0_5_0_SOURCE := $(SRCDIR)/rctree-0.5.0.crate
+LIBRSVG_PARTS += LIBRSVG_RCTREE_0_5_0
+
+LIBRSVG_REDOX_SYSCALL_0_4_1_MD5 := ff1d093069cfc9eb161907e17a51208b
+LIBRSVG_REDOX_SYSCALL_0_4_1_URL := https://crates.io/api/v1/crates/redox_syscall/0.4.1/download
+LIBRSVG_REDOX_SYSCALL_0_4_1_SOURCE := $(SRCDIR)/redox_syscall-0.4.1.crate
+LIBRSVG_PARTS += LIBRSVG_REDOX_SYSCALL_0_4_1
+
+LIBRSVG_REGEX_1_10_2_MD5 := e90f2809a34e2bea0bd5c1120475fb36
+LIBRSVG_REGEX_1_10_2_URL := https://crates.io/api/v1/crates/regex/1.10.2/download
+LIBRSVG_REGEX_1_10_2_SOURCE := $(SRCDIR)/regex-1.10.2.crate
+LIBRSVG_PARTS += LIBRSVG_REGEX_1_10_2
+
+LIBRSVG_REGEX_AUTOMATA_0_4_3_MD5 := 4f496143a21775fa7bd22bf329c37f37
+LIBRSVG_REGEX_AUTOMATA_0_4_3_URL := https://crates.io/api/v1/crates/regex-automata/0.4.3/download
+LIBRSVG_REGEX_AUTOMATA_0_4_3_SOURCE := $(SRCDIR)/regex-automata-0.4.3.crate
+LIBRSVG_PARTS += LIBRSVG_REGEX_AUTOMATA_0_4_3
+
+LIBRSVG_REGEX_SYNTAX_0_8_2_MD5 := 91b60a71d44302a8b05bd398eca56c37
+LIBRSVG_REGEX_SYNTAX_0_8_2_URL := https://crates.io/api/v1/crates/regex-syntax/0.8.2/download
+LIBRSVG_REGEX_SYNTAX_0_8_2_SOURCE := $(SRCDIR)/regex-syntax-0.8.2.crate
+LIBRSVG_PARTS += LIBRSVG_REGEX_SYNTAX_0_8_2
+
+LIBRSVG_RGB_0_8_37_MD5 := c030fc13239cdae2e725b3c78fc07c54
+LIBRSVG_RGB_0_8_37_URL := https://crates.io/api/v1/crates/rgb/0.8.37/download
+LIBRSVG_RGB_0_8_37_SOURCE := $(SRCDIR)/rgb-0.8.37.crate
+LIBRSVG_PARTS += LIBRSVG_RGB_0_8_37
+
+LIBRSVG_RUSTIX_0_38_28_MD5 := 47d0bafb79db67c4259e3420c62a986c
+LIBRSVG_RUSTIX_0_38_28_URL := https://crates.io/api/v1/crates/rustix/0.38.28/download
+LIBRSVG_RUSTIX_0_38_28_SOURCE := $(SRCDIR)/rustix-0.38.28.crate
+LIBRSVG_PARTS += LIBRSVG_RUSTIX_0_38_28
+
+LIBRSVG_RUSTY_FORK_0_3_0_MD5 := 13268e6ab4023043e6dd8e993ce8b88a
+LIBRSVG_RUSTY_FORK_0_3_0_URL := https://crates.io/api/v1/crates/rusty-fork/0.3.0/download
+LIBRSVG_RUSTY_FORK_0_3_0_SOURCE := $(SRCDIR)/rusty-fork-0.3.0.crate
+LIBRSVG_PARTS += LIBRSVG_RUSTY_FORK_0_3_0
+
+LIBRSVG_RYU_1_0_16_MD5 := ca664d757b2c95424cf3465e412cce90
+LIBRSVG_RYU_1_0_16_URL := https://crates.io/api/v1/crates/ryu/1.0.16/download
+LIBRSVG_RYU_1_0_16_SOURCE := $(SRCDIR)/ryu-1.0.16.crate
+LIBRSVG_PARTS += LIBRSVG_RYU_1_0_16
+
+LIBRSVG_SAFE_ARCH_0_7_1_MD5 := eca2425b09907bc2c5da3cbcf346c5b3
+LIBRSVG_SAFE_ARCH_0_7_1_URL := https://crates.io/api/v1/crates/safe_arch/0.7.1/download
+LIBRSVG_SAFE_ARCH_0_7_1_SOURCE := $(SRCDIR)/safe_arch-0.7.1.crate
+LIBRSVG_PARTS += LIBRSVG_SAFE_ARCH_0_7_1
+
+LIBRSVG_SAME_FILE_1_0_6_MD5 := 2d8d8b377d144f5e32b4f65a69eb0b24
+LIBRSVG_SAME_FILE_1_0_6_URL := https://crates.io/api/v1/crates/same-file/1.0.6/download
+LIBRSVG_SAME_FILE_1_0_6_SOURCE := $(SRCDIR)/same-file-1.0.6.crate
+LIBRSVG_PARTS += LIBRSVG_SAME_FILE_1_0_6
+
+LIBRSVG_SCOPEGUARD_1_2_0_MD5 := f1358be8c98b98837cbd2cf51e75f8b3
+LIBRSVG_SCOPEGUARD_1_2_0_URL := https://crates.io/api/v1/crates/scopeguard/1.2.0/download
+LIBRSVG_SCOPEGUARD_1_2_0_SOURCE := $(SRCDIR)/scopeguard-1.2.0.crate
+LIBRSVG_PARTS += LIBRSVG_SCOPEGUARD_1_2_0
+
+LIBRSVG_SELECTORS_0_25_0_MD5 := 045c48839ea2228c9b9bbb402ca2710f
+LIBRSVG_SELECTORS_0_25_0_URL := https://crates.io/api/v1/crates/selectors/0.25.0/download
+LIBRSVG_SELECTORS_0_25_0_SOURCE := $(SRCDIR)/selectors-0.25.0.crate
+LIBRSVG_PARTS += LIBRSVG_SELECTORS_0_25_0
+
+LIBRSVG_SERDE_1_0_193_MD5 := d6c1f2447aa984e398cdfdeb4cd75d44
+LIBRSVG_SERDE_1_0_193_URL := https://crates.io/api/v1/crates/serde/1.0.193/download
+LIBRSVG_SERDE_1_0_193_SOURCE := $(SRCDIR)/serde-1.0.193.crate
+LIBRSVG_PARTS += LIBRSVG_SERDE_1_0_193
+
+LIBRSVG_SERDE_DERIVE_1_0_193_MD5 := d43f1621c76532ffdc7990d23593c61b
+LIBRSVG_SERDE_DERIVE_1_0_193_URL := https://crates.io/api/v1/crates/serde_derive/1.0.193/download
+LIBRSVG_SERDE_DERIVE_1_0_193_SOURCE := $(SRCDIR)/serde_derive-1.0.193.crate
+LIBRSVG_PARTS += LIBRSVG_SERDE_DERIVE_1_0_193
+
+LIBRSVG_SERDE_JSON_1_0_108_MD5 := 3ed0ebc631b1840f3be21e1ba07fa4ed
+LIBRSVG_SERDE_JSON_1_0_108_URL := https://crates.io/api/v1/crates/serde_json/1.0.108/download
+LIBRSVG_SERDE_JSON_1_0_108_SOURCE := $(SRCDIR)/serde_json-1.0.108.crate
+LIBRSVG_PARTS += LIBRSVG_SERDE_JSON_1_0_108
+
+LIBRSVG_SERDE_SPANNED_0_6_4_MD5 := 07174ad3942b5dba8d02f628a4f56792
+LIBRSVG_SERDE_SPANNED_0_6_4_URL := https://crates.io/api/v1/crates/serde_spanned/0.6.4/download
+LIBRSVG_SERDE_SPANNED_0_6_4_SOURCE := $(SRCDIR)/serde_spanned-0.6.4.crate
+LIBRSVG_PARTS += LIBRSVG_SERDE_SPANNED_0_6_4
+
+LIBRSVG_SERVO_ARC_0_3_0_MD5 := 04868cb318f0b3ce90fad7b1e50b7c7c
+LIBRSVG_SERVO_ARC_0_3_0_URL := https://crates.io/api/v1/crates/servo_arc/0.3.0/download
+LIBRSVG_SERVO_ARC_0_3_0_SOURCE := $(SRCDIR)/servo_arc-0.3.0.crate
+LIBRSVG_PARTS += LIBRSVG_SERVO_ARC_0_3_0
+
+LIBRSVG_SIMBA_0_8_1_MD5 := e62fdc234e6f4844b863a31c6a876c0f
+LIBRSVG_SIMBA_0_8_1_URL := https://crates.io/api/v1/crates/simba/0.8.1/download
+LIBRSVG_SIMBA_0_8_1_SOURCE := $(SRCDIR)/simba-0.8.1.crate
+LIBRSVG_PARTS += LIBRSVG_SIMBA_0_8_1
+
+LIBRSVG_SIMD_ADLER32_0_3_7_MD5 := d0116882bd495f2b993495a8cf01f6fe
+LIBRSVG_SIMD_ADLER32_0_3_7_URL := https://crates.io/api/v1/crates/simd-adler32/0.3.7/download
+LIBRSVG_SIMD_ADLER32_0_3_7_SOURCE := $(SRCDIR)/simd-adler32-0.3.7.crate
+LIBRSVG_PARTS += LIBRSVG_SIMD_ADLER32_0_3_7
+
+LIBRSVG_SIPHASHER_0_3_11_MD5 := 6cda2bbb58357a02de1074d4ac9e3ab9
+LIBRSVG_SIPHASHER_0_3_11_URL := https://crates.io/api/v1/crates/siphasher/0.3.11/download
+LIBRSVG_SIPHASHER_0_3_11_SOURCE := $(SRCDIR)/siphasher-0.3.11.crate
+LIBRSVG_PARTS += LIBRSVG_SIPHASHER_0_3_11
+
+LIBRSVG_SLAB_0_4_9_MD5 := 5d8c25fc51ffebca67935516c2325860
+LIBRSVG_SLAB_0_4_9_URL := https://crates.io/api/v1/crates/slab/0.4.9/download
+LIBRSVG_SLAB_0_4_9_SOURCE := $(SRCDIR)/slab-0.4.9.crate
+LIBRSVG_PARTS += LIBRSVG_SLAB_0_4_9
+
+LIBRSVG_SMALLVEC_1_11_2_MD5 := a88ce3625ee63d53088ad83d8581b368
+LIBRSVG_SMALLVEC_1_11_2_URL := https://crates.io/api/v1/crates/smallvec/1.11.2/download
+LIBRSVG_SMALLVEC_1_11_2_SOURCE := $(SRCDIR)/smallvec-1.11.2.crate
+LIBRSVG_PARTS += LIBRSVG_SMALLVEC_1_11_2
+
+LIBRSVG_STABLE_DEREF_TRAIT_1_2_0_MD5 := 5988bad1543264a9f48b542192e7de9a
+LIBRSVG_STABLE_DEREF_TRAIT_1_2_0_URL := https://crates.io/api/v1/crates/stable_deref_trait/1.2.0/download
+LIBRSVG_STABLE_DEREF_TRAIT_1_2_0_SOURCE := $(SRCDIR)/stable_deref_trait-1.2.0.crate
+LIBRSVG_PARTS += LIBRSVG_STABLE_DEREF_TRAIT_1_2_0
+
+LIBRSVG_STRING_CACHE_0_8_7_MD5 := b43bc152495c09f4235e884b4d35c7a0
+LIBRSVG_STRING_CACHE_0_8_7_URL := https://crates.io/api/v1/crates/string_cache/0.8.7/download
+LIBRSVG_STRING_CACHE_0_8_7_SOURCE := $(SRCDIR)/string_cache-0.8.7.crate
+LIBRSVG_PARTS += LIBRSVG_STRING_CACHE_0_8_7
+
+LIBRSVG_STRING_CACHE_CODEGEN_0_5_2_MD5 := 7d09912f3223c11ae5df9f5723fd4fdc
+LIBRSVG_STRING_CACHE_CODEGEN_0_5_2_URL := https://crates.io/api/v1/crates/string_cache_codegen/0.5.2/download
+LIBRSVG_STRING_CACHE_CODEGEN_0_5_2_SOURCE := $(SRCDIR)/string_cache_codegen-0.5.2.crate
+LIBRSVG_PARTS += LIBRSVG_STRING_CACHE_CODEGEN_0_5_2
+
+LIBRSVG_STRSIM_0_10_0_MD5 := 82d98dc87dc8503400aa095f5aa70f13
+LIBRSVG_STRSIM_0_10_0_URL := https://crates.io/api/v1/crates/strsim/0.10.0/download
+LIBRSVG_STRSIM_0_10_0_SOURCE := $(SRCDIR)/strsim-0.10.0.crate
+LIBRSVG_PARTS += LIBRSVG_STRSIM_0_10_0
+
+LIBRSVG_SYN_1_0_109_MD5 := 64d9f46e9ba78f68c30c486be3d8b7df
+LIBRSVG_SYN_1_0_109_URL := https://crates.io/api/v1/crates/syn/1.0.109/download
+LIBRSVG_SYN_1_0_109_SOURCE := $(SRCDIR)/syn-1.0.109.crate
+LIBRSVG_PARTS += LIBRSVG_SYN_1_0_109
+
+LIBRSVG_SYN_2_0_41_MD5 := 6f0860e6bd66278b2008e8e55b83fe3f
+LIBRSVG_SYN_2_0_41_URL := https://crates.io/api/v1/crates/syn/2.0.41/download
+LIBRSVG_SYN_2_0_41_SOURCE := $(SRCDIR)/syn-2.0.41.crate
+LIBRSVG_PARTS += LIBRSVG_SYN_2_0_41
+
+LIBRSVG_SYSTEM_DEPS_6_2_0_MD5 := 5adeeae2556cf35ea01cf752b225023c
+LIBRSVG_SYSTEM_DEPS_6_2_0_URL := https://crates.io/api/v1/crates/system-deps/6.2.0/download
+LIBRSVG_SYSTEM_DEPS_6_2_0_SOURCE := $(SRCDIR)/system-deps-6.2.0.crate
+LIBRSVG_PARTS += LIBRSVG_SYSTEM_DEPS_6_2_0
+
+LIBRSVG_TARGET_LEXICON_0_12_12_MD5 := 70018e00fdada95c5bf1629133f07cdc
+LIBRSVG_TARGET_LEXICON_0_12_12_URL := https://crates.io/api/v1/crates/target-lexicon/0.12.12/download
+LIBRSVG_TARGET_LEXICON_0_12_12_SOURCE := $(SRCDIR)/target-lexicon-0.12.12.crate
+LIBRSVG_PARTS += LIBRSVG_TARGET_LEXICON_0_12_12
+
+LIBRSVG_TEMPFILE_3_8_1_MD5 := f80faded72df19d43134e2b44137376a
+LIBRSVG_TEMPFILE_3_8_1_URL := https://crates.io/api/v1/crates/tempfile/3.8.1/download
+LIBRSVG_TEMPFILE_3_8_1_SOURCE := $(SRCDIR)/tempfile-3.8.1.crate
+LIBRSVG_PARTS += LIBRSVG_TEMPFILE_3_8_1
+
+LIBRSVG_TENDRIL_0_4_3_MD5 := 216e0c4a9cff62b07ef888e911560e11
+LIBRSVG_TENDRIL_0_4_3_URL := https://crates.io/api/v1/crates/tendril/0.4.3/download
+LIBRSVG_TENDRIL_0_4_3_SOURCE := $(SRCDIR)/tendril-0.4.3.crate
+LIBRSVG_PARTS += LIBRSVG_TENDRIL_0_4_3
+
+LIBRSVG_TERMTREE_0_4_1_MD5 := b1372e62f53f0ad8d19a2be135c10c9d
+LIBRSVG_TERMTREE_0_4_1_URL := https://crates.io/api/v1/crates/termtree/0.4.1/download
+LIBRSVG_TERMTREE_0_4_1_SOURCE := $(SRCDIR)/termtree-0.4.1.crate
+LIBRSVG_PARTS += LIBRSVG_TERMTREE_0_4_1
+
+LIBRSVG_THISERROR_1_0_50_MD5 := 5cecda424a27e70fde695ea8978f81a8
+LIBRSVG_THISERROR_1_0_50_URL := https://crates.io/api/v1/crates/thiserror/1.0.50/download
+LIBRSVG_THISERROR_1_0_50_SOURCE := $(SRCDIR)/thiserror-1.0.50.crate
+LIBRSVG_PARTS += LIBRSVG_THISERROR_1_0_50
+
+LIBRSVG_THISERROR_IMPL_1_0_50_MD5 := faaccaab2081ca8765bec23ec90727ca
+LIBRSVG_THISERROR_IMPL_1_0_50_URL := https://crates.io/api/v1/crates/thiserror-impl/1.0.50/download
+LIBRSVG_THISERROR_IMPL_1_0_50_SOURCE := $(SRCDIR)/thiserror-impl-1.0.50.crate
+LIBRSVG_PARTS += LIBRSVG_THISERROR_IMPL_1_0_50
+
+LIBRSVG_TIME_0_3_30_MD5 := ffb1565690a7f38ad2135ac79405caaf
+LIBRSVG_TIME_0_3_30_URL := https://crates.io/api/v1/crates/time/0.3.30/download
+LIBRSVG_TIME_0_3_30_SOURCE := $(SRCDIR)/time-0.3.30.crate
+LIBRSVG_PARTS += LIBRSVG_TIME_0_3_30
+
+LIBRSVG_TIME_CORE_0_1_2_MD5 := 7818a75208424a6d05d1d868559f0adf
+LIBRSVG_TIME_CORE_0_1_2_URL := https://crates.io/api/v1/crates/time-core/0.1.2/download
+LIBRSVG_TIME_CORE_0_1_2_SOURCE := $(SRCDIR)/time-core-0.1.2.crate
+LIBRSVG_PARTS += LIBRSVG_TIME_CORE_0_1_2
+
+LIBRSVG_TIME_MACROS_0_2_15_MD5 := ba32227234281a5599e11672869a05ee
+LIBRSVG_TIME_MACROS_0_2_15_URL := https://crates.io/api/v1/crates/time-macros/0.2.15/download
+LIBRSVG_TIME_MACROS_0_2_15_SOURCE := $(SRCDIR)/time-macros-0.2.15.crate
+LIBRSVG_PARTS += LIBRSVG_TIME_MACROS_0_2_15
+
+LIBRSVG_TINYTEMPLATE_1_2_1_MD5 := a160b14e423954c978ca95aa78ca4210
+LIBRSVG_TINYTEMPLATE_1_2_1_URL := https://crates.io/api/v1/crates/tinytemplate/1.2.1/download
+LIBRSVG_TINYTEMPLATE_1_2_1_SOURCE := $(SRCDIR)/tinytemplate-1.2.1.crate
+LIBRSVG_PARTS += LIBRSVG_TINYTEMPLATE_1_2_1
+
+LIBRSVG_TINYVEC_1_6_0_MD5 := 5f0470696baaa4e5953bddbf196998f9
+LIBRSVG_TINYVEC_1_6_0_URL := https://crates.io/api/v1/crates/tinyvec/1.6.0/download
+LIBRSVG_TINYVEC_1_6_0_SOURCE := $(SRCDIR)/tinyvec-1.6.0.crate
+LIBRSVG_PARTS += LIBRSVG_TINYVEC_1_6_0
+
+LIBRSVG_TINYVEC_MACROS_0_1_1_MD5 := c678a7da0ee4b850ebde0474144a0415
+LIBRSVG_TINYVEC_MACROS_0_1_1_URL := https://crates.io/api/v1/crates/tinyvec_macros/0.1.1/download
+LIBRSVG_TINYVEC_MACROS_0_1_1_SOURCE := $(SRCDIR)/tinyvec_macros-0.1.1.crate
+LIBRSVG_PARTS += LIBRSVG_TINYVEC_MACROS_0_1_1
+
+LIBRSVG_TOML_0_8_2_MD5 := 596919e3c7ce206ff1c1eaf9dd60b092
+LIBRSVG_TOML_0_8_2_URL := https://crates.io/api/v1/crates/toml/0.8.2/download
+LIBRSVG_TOML_0_8_2_SOURCE := $(SRCDIR)/toml-0.8.2.crate
+LIBRSVG_PARTS += LIBRSVG_TOML_0_8_2
+
+LIBRSVG_TOML_DATETIME_0_6_3_MD5 := cedd4c0c821849a65af49836d6a1bb63
+LIBRSVG_TOML_DATETIME_0_6_3_URL := https://crates.io/api/v1/crates/toml_datetime/0.6.3/download
+LIBRSVG_TOML_DATETIME_0_6_3_SOURCE := $(SRCDIR)/toml_datetime-0.6.3.crate
+LIBRSVG_PARTS += LIBRSVG_TOML_DATETIME_0_6_3
+
+LIBRSVG_TOML_EDIT_0_20_2_MD5 := fbec88d125b17eec907c7c0e6eb836d4
+LIBRSVG_TOML_EDIT_0_20_2_URL := https://crates.io/api/v1/crates/toml_edit/0.20.2/download
+LIBRSVG_TOML_EDIT_0_20_2_SOURCE := $(SRCDIR)/toml_edit-0.20.2.crate
+LIBRSVG_PARTS += LIBRSVG_TOML_EDIT_0_20_2
+
+LIBRSVG_TYPENUM_1_17_0_MD5 := 6ebb8deee5a5a0d1c26b20eeee1926b3
+LIBRSVG_TYPENUM_1_17_0_URL := https://crates.io/api/v1/crates/typenum/1.17.0/download
+LIBRSVG_TYPENUM_1_17_0_SOURCE := $(SRCDIR)/typenum-1.17.0.crate
+LIBRSVG_PARTS += LIBRSVG_TYPENUM_1_17_0
+
+LIBRSVG_UNARRAY_0_1_4_MD5 := 00dda16f17b456d99fb1cafa9125ed22
+LIBRSVG_UNARRAY_0_1_4_URL := https://crates.io/api/v1/crates/unarray/0.1.4/download
+LIBRSVG_UNARRAY_0_1_4_SOURCE := $(SRCDIR)/unarray-0.1.4.crate
+LIBRSVG_PARTS += LIBRSVG_UNARRAY_0_1_4
+
+LIBRSVG_UNICODE_BIDI_0_3_14_MD5 := e74b10f7b4d0c167434d02bcc02ab18f
+LIBRSVG_UNICODE_BIDI_0_3_14_URL := https://crates.io/api/v1/crates/unicode-bidi/0.3.14/download
+LIBRSVG_UNICODE_BIDI_0_3_14_SOURCE := $(SRCDIR)/unicode-bidi-0.3.14.crate
+LIBRSVG_PARTS += LIBRSVG_UNICODE_BIDI_0_3_14
+
+LIBRSVG_UNICODE_IDENT_1_0_12_MD5 := ca65153603a1a7240bbd9d2ce19f2d67
+LIBRSVG_UNICODE_IDENT_1_0_12_URL := https://crates.io/api/v1/crates/unicode-ident/1.0.12/download
+LIBRSVG_UNICODE_IDENT_1_0_12_SOURCE := $(SRCDIR)/unicode-ident-1.0.12.crate
+LIBRSVG_PARTS += LIBRSVG_UNICODE_IDENT_1_0_12
+
+LIBRSVG_UNICODE_NORMALIZATION_0_1_22_MD5 := c12d182417999fc365f952e701f6071f
+LIBRSVG_UNICODE_NORMALIZATION_0_1_22_URL := https://crates.io/api/v1/crates/unicode-normalization/0.1.22/download
+LIBRSVG_UNICODE_NORMALIZATION_0_1_22_SOURCE := $(SRCDIR)/unicode-normalization-0.1.22.crate
+LIBRSVG_PARTS += LIBRSVG_UNICODE_NORMALIZATION_0_1_22
+
+LIBRSVG_URL_2_5_0_MD5 := e547b0e754cd61f24f9ef8c9e26fcd95
+LIBRSVG_URL_2_5_0_URL := https://crates.io/api/v1/crates/url/2.5.0/download
+LIBRSVG_URL_2_5_0_SOURCE := $(SRCDIR)/url-2.5.0.crate
+LIBRSVG_PARTS += LIBRSVG_URL_2_5_0
+
+LIBRSVG_UTF_8_0_7_6_MD5 := 60b1e46c5dd84e50d42cd5f68b041336
+LIBRSVG_UTF_8_0_7_6_URL := https://crates.io/api/v1/crates/utf-8/0.7.6/download
+LIBRSVG_UTF_8_0_7_6_SOURCE := $(SRCDIR)/utf-8-0.7.6.crate
+LIBRSVG_PARTS += LIBRSVG_UTF_8_0_7_6
+
+LIBRSVG_UTF8PARSE_0_2_1_MD5 := ceee1159c41351d05f4cf705490867b3
+LIBRSVG_UTF8PARSE_0_2_1_URL := https://crates.io/api/v1/crates/utf8parse/0.2.1/download
+LIBRSVG_UTF8PARSE_0_2_1_SOURCE := $(SRCDIR)/utf8parse-0.2.1.crate
+LIBRSVG_PARTS += LIBRSVG_UTF8PARSE_0_2_1
+
+LIBRSVG_VERSION_COMPARE_0_1_1_MD5 := d4e6a3f2d7286408592d08defd7de156
+LIBRSVG_VERSION_COMPARE_0_1_1_URL := https://crates.io/api/v1/crates/version-compare/0.1.1/download
+LIBRSVG_VERSION_COMPARE_0_1_1_SOURCE := $(SRCDIR)/version-compare-0.1.1.crate
+LIBRSVG_PARTS += LIBRSVG_VERSION_COMPARE_0_1_1
+
+LIBRSVG_VERSION_CHECK_0_9_4_MD5 := d18d362345c4fe512ef67b738b239fb8
+LIBRSVG_VERSION_CHECK_0_9_4_URL := https://crates.io/api/v1/crates/version_check/0.9.4/download
+LIBRSVG_VERSION_CHECK_0_9_4_SOURCE := $(SRCDIR)/version_check-0.9.4.crate
+LIBRSVG_PARTS += LIBRSVG_VERSION_CHECK_0_9_4
+
+LIBRSVG_WAIT_TIMEOUT_0_2_0_MD5 := 6708629acf3d2ecb7404e43255d2df85
+LIBRSVG_WAIT_TIMEOUT_0_2_0_URL := https://crates.io/api/v1/crates/wait-timeout/0.2.0/download
+LIBRSVG_WAIT_TIMEOUT_0_2_0_SOURCE := $(SRCDIR)/wait-timeout-0.2.0.crate
+LIBRSVG_PARTS += LIBRSVG_WAIT_TIMEOUT_0_2_0
+
+LIBRSVG_WALKDIR_2_4_0_MD5 := 96481ed810273371ed8b87f062a0dcda
+LIBRSVG_WALKDIR_2_4_0_URL := https://crates.io/api/v1/crates/walkdir/2.4.0/download
+LIBRSVG_WALKDIR_2_4_0_SOURCE := $(SRCDIR)/walkdir-2.4.0.crate
+LIBRSVG_PARTS += LIBRSVG_WALKDIR_2_4_0
+
+LIBRSVG_WASI_0_11_0_WASI_SNAPSHOT_PREVIEW1_MD5 := e972ea58ec203bfa6c79c1207852298b
+LIBRSVG_WASI_0_11_0_WASI_SNAPSHOT_PREVIEW1_URL := https://crates.io/api/v1/crates/wasi/0.11.0+wasi-snapshot-preview1/download
+LIBRSVG_WASI_0_11_0_WASI_SNAPSHOT_PREVIEW1_SOURCE := $(SRCDIR)/wasi-0.11.0+wasi-snapshot-preview1.crate
+LIBRSVG_PARTS += LIBRSVG_WASI_0_11_0_WASI_SNAPSHOT_PREVIEW1
+
+LIBRSVG_WASM_BINDGEN_0_2_89_MD5 := 7f115ec6580072e95e26ab41f3fabb84
+LIBRSVG_WASM_BINDGEN_0_2_89_URL := https://crates.io/api/v1/crates/wasm-bindgen/0.2.89/download
+LIBRSVG_WASM_BINDGEN_0_2_89_SOURCE := $(SRCDIR)/wasm-bindgen-0.2.89.crate
+LIBRSVG_PARTS += LIBRSVG_WASM_BINDGEN_0_2_89
+
+LIBRSVG_WASM_BINDGEN_BACKEND_0_2_89_MD5 := 27e1a4ac927346509cf010b024c79e87
+LIBRSVG_WASM_BINDGEN_BACKEND_0_2_89_URL := https://crates.io/api/v1/crates/wasm-bindgen-backend/0.2.89/download
+LIBRSVG_WASM_BINDGEN_BACKEND_0_2_89_SOURCE := $(SRCDIR)/wasm-bindgen-backend-0.2.89.crate
+LIBRSVG_PARTS += LIBRSVG_WASM_BINDGEN_BACKEND_0_2_89
+
+LIBRSVG_WASM_BINDGEN_MACRO_0_2_89_MD5 := 9202e1b9c6367013631774f38fdff707
+LIBRSVG_WASM_BINDGEN_MACRO_0_2_89_URL := https://crates.io/api/v1/crates/wasm-bindgen-macro/0.2.89/download
+LIBRSVG_WASM_BINDGEN_MACRO_0_2_89_SOURCE := $(SRCDIR)/wasm-bindgen-macro-0.2.89.crate
+LIBRSVG_PARTS += LIBRSVG_WASM_BINDGEN_MACRO_0_2_89
+
+LIBRSVG_WASM_BINDGEN_MACRO_SUPPORT_0_2_89_MD5 := 90f2e8c0ca989290eff37cd9b3ec2a87
+LIBRSVG_WASM_BINDGEN_MACRO_SUPPORT_0_2_89_URL := https://crates.io/api/v1/crates/wasm-bindgen-macro-support/0.2.89/download
+LIBRSVG_WASM_BINDGEN_MACRO_SUPPORT_0_2_89_SOURCE := $(SRCDIR)/wasm-bindgen-macro-support-0.2.89.crate
+LIBRSVG_PARTS += LIBRSVG_WASM_BINDGEN_MACRO_SUPPORT_0_2_89
+
+LIBRSVG_WASM_BINDGEN_SHARED_0_2_89_MD5 := f00d62969f597349b1d460c96b57136c
+LIBRSVG_WASM_BINDGEN_SHARED_0_2_89_URL := https://crates.io/api/v1/crates/wasm-bindgen-shared/0.2.89/download
+LIBRSVG_WASM_BINDGEN_SHARED_0_2_89_SOURCE := $(SRCDIR)/wasm-bindgen-shared-0.2.89.crate
+LIBRSVG_PARTS += LIBRSVG_WASM_BINDGEN_SHARED_0_2_89
+
+LIBRSVG_WEB_SYS_0_3_66_MD5 := e97f7d5779474c95cf1a1769013db24e
+LIBRSVG_WEB_SYS_0_3_66_URL := https://crates.io/api/v1/crates/web-sys/0.3.66/download
+LIBRSVG_WEB_SYS_0_3_66_SOURCE := $(SRCDIR)/web-sys-0.3.66.crate
+LIBRSVG_PARTS += LIBRSVG_WEB_SYS_0_3_66
+
+LIBRSVG_WEEZL_0_1_7_MD5 := 25bab6fb06aa99ec5e404f4b88fef3d4
+LIBRSVG_WEEZL_0_1_7_URL := https://crates.io/api/v1/crates/weezl/0.1.7/download
+LIBRSVG_WEEZL_0_1_7_SOURCE := $(SRCDIR)/weezl-0.1.7.crate
+LIBRSVG_PARTS += LIBRSVG_WEEZL_0_1_7
+
+LIBRSVG_WIDE_0_7_13_MD5 := 33844b9c82e307143c6aea05a5ccbdd5
+LIBRSVG_WIDE_0_7_13_URL := https://crates.io/api/v1/crates/wide/0.7.13/download
+LIBRSVG_WIDE_0_7_13_SOURCE := $(SRCDIR)/wide-0.7.13.crate
+LIBRSVG_PARTS += LIBRSVG_WIDE_0_7_13
+
+LIBRSVG_WINAPI_0_3_9_MD5 := 0498c4a11448bfc35dc7bb2caa64c753
+LIBRSVG_WINAPI_0_3_9_URL := https://crates.io/api/v1/crates/winapi/0.3.9/download
+LIBRSVG_WINAPI_0_3_9_SOURCE := $(SRCDIR)/winapi-0.3.9.crate
+LIBRSVG_PARTS += LIBRSVG_WINAPI_0_3_9
+
+LIBRSVG_WINAPI_I686_PC_WINDOWS_GNU_0_4_0_MD5 := db96b50050277bf05a3c68534bbb9586
+LIBRSVG_WINAPI_I686_PC_WINDOWS_GNU_0_4_0_URL := https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download
+LIBRSVG_WINAPI_I686_PC_WINDOWS_GNU_0_4_0_SOURCE := $(SRCDIR)/winapi-i686-pc-windows-gnu-0.4.0.crate
+LIBRSVG_PARTS += LIBRSVG_WINAPI_I686_PC_WINDOWS_GNU_0_4_0
+
+LIBRSVG_WINAPI_UTIL_0_1_6_MD5 := 306c0281447d1876e8220007b7a7e053
+LIBRSVG_WINAPI_UTIL_0_1_6_URL := https://crates.io/api/v1/crates/winapi-util/0.1.6/download
+LIBRSVG_WINAPI_UTIL_0_1_6_SOURCE := $(SRCDIR)/winapi-util-0.1.6.crate
+LIBRSVG_PARTS += LIBRSVG_WINAPI_UTIL_0_1_6
+
+LIBRSVG_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0_MD5 := 09de9d01e7331ff3da11f58be8bef0df
+LIBRSVG_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0_URL := https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download
+LIBRSVG_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0_SOURCE := $(SRCDIR)/winapi-x86_64-pc-windows-gnu-0.4.0.crate
+LIBRSVG_PARTS += LIBRSVG_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0
+
+LIBRSVG_WINDOWS_CORE_0_51_1_MD5 := d343f3cc25259c518e594b7bcd4f144b
+LIBRSVG_WINDOWS_CORE_0_51_1_URL := https://crates.io/api/v1/crates/windows-core/0.51.1/download
+LIBRSVG_WINDOWS_CORE_0_51_1_SOURCE := $(SRCDIR)/windows-core-0.51.1.crate
+LIBRSVG_PARTS += LIBRSVG_WINDOWS_CORE_0_51_1
+
+LIBRSVG_WINDOWS_SYS_0_48_0_MD5 := f2797ade0e36f1e5d6be9d11b5076582
+LIBRSVG_WINDOWS_SYS_0_48_0_URL := https://crates.io/api/v1/crates/windows-sys/0.48.0/download
+LIBRSVG_WINDOWS_SYS_0_48_0_SOURCE := $(SRCDIR)/windows-sys-0.48.0.crate
+LIBRSVG_PARTS += LIBRSVG_WINDOWS_SYS_0_48_0
+
+LIBRSVG_WINDOWS_SYS_0_52_0_MD5 := 2376de634160158ece40c4bc2ab3eb41
+LIBRSVG_WINDOWS_SYS_0_52_0_URL := https://crates.io/api/v1/crates/windows-sys/0.52.0/download
+LIBRSVG_WINDOWS_SYS_0_52_0_SOURCE := $(SRCDIR)/windows-sys-0.52.0.crate
+LIBRSVG_PARTS += LIBRSVG_WINDOWS_SYS_0_52_0
+
+LIBRSVG_WINDOWS_TARGETS_0_48_5_MD5 := 24c64817e85ef77765ed0f26c31c9b4c
+LIBRSVG_WINDOWS_TARGETS_0_48_5_URL := https://crates.io/api/v1/crates/windows-targets/0.48.5/download
+LIBRSVG_WINDOWS_TARGETS_0_48_5_SOURCE := $(SRCDIR)/windows-targets-0.48.5.crate
+LIBRSVG_PARTS += LIBRSVG_WINDOWS_TARGETS_0_48_5
+
+LIBRSVG_WINDOWS_TARGETS_0_52_0_MD5 := 7ff44db201b805c60b7894e6e51a5580
+LIBRSVG_WINDOWS_TARGETS_0_52_0_URL := https://crates.io/api/v1/crates/windows-targets/0.52.0/download
+LIBRSVG_WINDOWS_TARGETS_0_52_0_SOURCE := $(SRCDIR)/windows-targets-0.52.0.crate
+LIBRSVG_PARTS += LIBRSVG_WINDOWS_TARGETS_0_52_0
+
+LIBRSVG_WINDOWS_AARCH64_GNULLVM_0_48_5_MD5 := dae6d89034a6988042fd8be4cf5e037d
+LIBRSVG_WINDOWS_AARCH64_GNULLVM_0_48_5_URL := https://crates.io/api/v1/crates/windows_aarch64_gnullvm/0.48.5/download
+LIBRSVG_WINDOWS_AARCH64_GNULLVM_0_48_5_SOURCE := $(SRCDIR)/windows_aarch64_gnullvm-0.48.5.crate
+LIBRSVG_PARTS += LIBRSVG_WINDOWS_AARCH64_GNULLVM_0_48_5
+
+LIBRSVG_WINDOWS_AARCH64_GNULLVM_0_52_0_MD5 := cd2efc4af413b9d1380761255c7a22ff
+LIBRSVG_WINDOWS_AARCH64_GNULLVM_0_52_0_URL := https://crates.io/api/v1/crates/windows_aarch64_gnullvm/0.52.0/download
+LIBRSVG_WINDOWS_AARCH64_GNULLVM_0_52_0_SOURCE := $(SRCDIR)/windows_aarch64_gnullvm-0.52.0.crate
+LIBRSVG_PARTS += LIBRSVG_WINDOWS_AARCH64_GNULLVM_0_52_0
+
+LIBRSVG_WINDOWS_AARCH64_MSVC_0_48_5_MD5 := de2839e16d9d7a9fd1c397da62f62b4a
+LIBRSVG_WINDOWS_AARCH64_MSVC_0_48_5_URL := https://crates.io/api/v1/crates/windows_aarch64_msvc/0.48.5/download
+LIBRSVG_WINDOWS_AARCH64_MSVC_0_48_5_SOURCE := $(SRCDIR)/windows_aarch64_msvc-0.48.5.crate
+LIBRSVG_PARTS += LIBRSVG_WINDOWS_AARCH64_MSVC_0_48_5
+
+LIBRSVG_WINDOWS_AARCH64_MSVC_0_52_0_MD5 := 5b2c6ccb94c770d0ed85f7a844bf001e
+LIBRSVG_WINDOWS_AARCH64_MSVC_0_52_0_URL := https://crates.io/api/v1/crates/windows_aarch64_msvc/0.52.0/download
+LIBRSVG_WINDOWS_AARCH64_MSVC_0_52_0_SOURCE := $(SRCDIR)/windows_aarch64_msvc-0.52.0.crate
+LIBRSVG_PARTS += LIBRSVG_WINDOWS_AARCH64_MSVC_0_52_0
+
+LIBRSVG_WINDOWS_I686_GNU_0_48_5_MD5 := e0c35ffb8cfdb74a39bf799811f79304
+LIBRSVG_WINDOWS_I686_GNU_0_48_5_URL := https://crates.io/api/v1/crates/windows_i686_gnu/0.48.5/download
+LIBRSVG_WINDOWS_I686_GNU_0_48_5_SOURCE := $(SRCDIR)/windows_i686_gnu-0.48.5.crate
+LIBRSVG_PARTS += LIBRSVG_WINDOWS_I686_GNU_0_48_5
+
+LIBRSVG_WINDOWS_I686_GNU_0_52_0_MD5 := 467f51d4cfb646d0c8fecfa008dbf52d
+LIBRSVG_WINDOWS_I686_GNU_0_52_0_URL := https://crates.io/api/v1/crates/windows_i686_gnu/0.52.0/download
+LIBRSVG_WINDOWS_I686_GNU_0_52_0_SOURCE := $(SRCDIR)/windows_i686_gnu-0.52.0.crate
+LIBRSVG_PARTS += LIBRSVG_WINDOWS_I686_GNU_0_52_0
+
+LIBRSVG_WINDOWS_I686_MSVC_0_48_5_MD5 := d990172b607020701f9e84ca8e1c043c
+LIBRSVG_WINDOWS_I686_MSVC_0_48_5_URL := https://crates.io/api/v1/crates/windows_i686_msvc/0.48.5/download
+LIBRSVG_WINDOWS_I686_MSVC_0_48_5_SOURCE := $(SRCDIR)/windows_i686_msvc-0.48.5.crate
+LIBRSVG_PARTS += LIBRSVG_WINDOWS_I686_MSVC_0_48_5
+
+LIBRSVG_WINDOWS_I686_MSVC_0_52_0_MD5 := 9afb70c460db38399bf95ec015f07435
+LIBRSVG_WINDOWS_I686_MSVC_0_52_0_URL := https://crates.io/api/v1/crates/windows_i686_msvc/0.52.0/download
+LIBRSVG_WINDOWS_I686_MSVC_0_52_0_SOURCE := $(SRCDIR)/windows_i686_msvc-0.52.0.crate
+LIBRSVG_PARTS += LIBRSVG_WINDOWS_I686_MSVC_0_52_0
+
+LIBRSVG_WINDOWS_X86_64_GNU_0_48_5_MD5 := 0a68848588e847ceccf504891584d00b
+LIBRSVG_WINDOWS_X86_64_GNU_0_48_5_URL := https://crates.io/api/v1/crates/windows_x86_64_gnu/0.48.5/download
+LIBRSVG_WINDOWS_X86_64_GNU_0_48_5_SOURCE := $(SRCDIR)/windows_x86_64_gnu-0.48.5.crate
+LIBRSVG_PARTS += LIBRSVG_WINDOWS_X86_64_GNU_0_48_5
+
+LIBRSVG_WINDOWS_X86_64_GNU_0_52_0_MD5 := f34ea4d81690ec402b6f0d9e54e8baa4
+LIBRSVG_WINDOWS_X86_64_GNU_0_52_0_URL := https://crates.io/api/v1/crates/windows_x86_64_gnu/0.52.0/download
+LIBRSVG_WINDOWS_X86_64_GNU_0_52_0_SOURCE := $(SRCDIR)/windows_x86_64_gnu-0.52.0.crate
+LIBRSVG_PARTS += LIBRSVG_WINDOWS_X86_64_GNU_0_52_0
+
+LIBRSVG_WINDOWS_X86_64_GNULLVM_0_48_5_MD5 := 45b469ad607b912256b7c80141fa2d17
+LIBRSVG_WINDOWS_X86_64_GNULLVM_0_48_5_URL := https://crates.io/api/v1/crates/windows_x86_64_gnullvm/0.48.5/download
+LIBRSVG_WINDOWS_X86_64_GNULLVM_0_48_5_SOURCE := $(SRCDIR)/windows_x86_64_gnullvm-0.48.5.crate
+LIBRSVG_PARTS += LIBRSVG_WINDOWS_X86_64_GNULLVM_0_48_5
+
+LIBRSVG_WINDOWS_X86_64_GNULLVM_0_52_0_MD5 := 591c68ecc1dded36344429f427bbfabc
+LIBRSVG_WINDOWS_X86_64_GNULLVM_0_52_0_URL := https://crates.io/api/v1/crates/windows_x86_64_gnullvm/0.52.0/download
+LIBRSVG_WINDOWS_X86_64_GNULLVM_0_52_0_SOURCE := $(SRCDIR)/windows_x86_64_gnullvm-0.52.0.crate
+LIBRSVG_PARTS += LIBRSVG_WINDOWS_X86_64_GNULLVM_0_52_0
+
+LIBRSVG_WINDOWS_X86_64_MSVC_0_48_5_MD5 := 7799baff9a5664205d9110a2624e8989
+LIBRSVG_WINDOWS_X86_64_MSVC_0_48_5_URL := https://crates.io/api/v1/crates/windows_x86_64_msvc/0.48.5/download
+LIBRSVG_WINDOWS_X86_64_MSVC_0_48_5_SOURCE := $(SRCDIR)/windows_x86_64_msvc-0.48.5.crate
+LIBRSVG_PARTS += LIBRSVG_WINDOWS_X86_64_MSVC_0_48_5
+
+LIBRSVG_WINDOWS_X86_64_MSVC_0_52_0_MD5 := 29bbf3d9160d2545d528d0b2d7492333
+LIBRSVG_WINDOWS_X86_64_MSVC_0_52_0_URL := https://crates.io/api/v1/crates/windows_x86_64_msvc/0.52.0/download
+LIBRSVG_WINDOWS_X86_64_MSVC_0_52_0_SOURCE := $(SRCDIR)/windows_x86_64_msvc-0.52.0.crate
+LIBRSVG_PARTS += LIBRSVG_WINDOWS_X86_64_MSVC_0_52_0
+
+LIBRSVG_WINNOW_0_5_28_MD5 := a267eb65438e0e2304cf46bc49723f89
+LIBRSVG_WINNOW_0_5_28_URL := https://crates.io/api/v1/crates/winnow/0.5.28/download
+LIBRSVG_WINNOW_0_5_28_SOURCE := $(SRCDIR)/winnow-0.5.28.crate
+LIBRSVG_PARTS += LIBRSVG_WINNOW_0_5_28
+
+LIBRSVG_XML5EVER_0_17_0_MD5 := 1c02927b072719df2799cfce18526c59
+LIBRSVG_XML5EVER_0_17_0_URL := https://crates.io/api/v1/crates/xml5ever/0.17.0/download
+LIBRSVG_XML5EVER_0_17_0_SOURCE := $(SRCDIR)/xml5ever-0.17.0.crate
+LIBRSVG_PARTS += LIBRSVG_XML5EVER_0_17_0
+
+LIBRSVG_YESLOGIC_FONTCONFIG_SYS_4_0_1_MD5 := 77275be64997e24243cdbf6792d257d7
+LIBRSVG_YESLOGIC_FONTCONFIG_SYS_4_0_1_URL := https://crates.io/api/v1/crates/yeslogic-fontconfig-sys/4.0.1/download
+LIBRSVG_YESLOGIC_FONTCONFIG_SYS_4_0_1_SOURCE := $(SRCDIR)/yeslogic-fontconfig-sys-4.0.1.crate
+LIBRSVG_PARTS += LIBRSVG_YESLOGIC_FONTCONFIG_SYS_4_0_1
+
+
+# vim: syntax=make
diff --git a/rules/librsvg.in b/rules/librsvg.in
index 461dbaf95..876703d01 100644
--- a/rules/librsvg.in
+++ b/rules/librsvg.in
@@ -3,11 +3,13 @@
menuconfig LIBRSVG
tristate
prompt "librsvg "
- select GTK
+ select CAIRO
+ select CAIRO_GOBJECT
+ select GDK_PIXBUF
select LIBXML2
select LIBXML2_PUSH
+ select PANGO
select LIBGSF if LIBRSVG_SVGZ
- select LIBCROCO if LIBRSVG_CROCO
help
AX-based renderer library for SVG files
@@ -31,7 +33,7 @@ config LIBRSVG_SVGZ
config LIBRSVG_CROCO
bool
- depends on STAGING
+ depends on BROKEN
prompt "libcroco support"
help
Libcroco is a general CSS parsing and manipulation library.
diff --git a/rules/librsvg.make b/rules/librsvg.make
index af2cece09..15dd1f4d8 100644
--- a/rules/librsvg.make
+++ b/rules/librsvg.make
@@ -15,33 +15,44 @@ PACKAGES-$(PTXCONF_LIBRSVG) += librsvg
#
# Paths and names
#
-LIBRSVG_VERSION := 2.26.3
-LIBRSVG_MD5 := 8df68c2c02cdf2a96a92b43bf737bf9c
-LIBRSVG := librsvg-$(LIBRSVG_VERSION)
-LIBRSVG_SUFFIX := tar.bz2
-LIBRSVG_URL := $(call ptx/mirror, GNOME, librsvg/$(basename $(LIBRSVG_VERSION))/$(LIBRSVG).$(LIBRSVG_SUFFIX))
-LIBRSVG_SOURCE := $(SRCDIR)/$(LIBRSVG).$(LIBRSVG_SUFFIX)
-LIBRSVG_DIR := $(BUILDDIR)/$(LIBRSVG)
+LIBRSVG_VERSION := 2.57.2
+LIBRSVG_MD5 := 2f7db11bc9736c07775cf97f40b01784
+LIBRSVG := librsvg-$(LIBRSVG_VERSION)
+LIBRSVG_SUFFIX := tar.xz
+LIBRSVG_URL := $(call ptx/mirror, GNOME, librsvg/$(basename $(LIBRSVG_VERSION))/$(LIBRSVG).$(LIBRSVG_SUFFIX))
+LIBRSVG_SOURCE := $(SRCDIR)/$(LIBRSVG).$(LIBRSVG_SUFFIX)
+LIBRSVG_DIR := $(BUILDDIR)/$(LIBRSVG)
+LIBRSVG_CARGO_LOCK := Cargo.lock
+LIBRSVG_LICENSE := LGPL-2.1-or-later AND unknown
+LIBRSVG_LICENSE_FILES := \
+ file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-LIBRSVG_PATH := PATH=$(CROSS_PATH)
-LIBRSVG_ENV := $(CROSS_ENV)
+LIBRSVG_CONF_ENV := \
+ $(CROSS_ENV) \
+ RUST_TARGET=$(PTXCONF_RUST_TARGET) \
+ ac_cv_path_GDK_PIXBUF_QUERYLOADERS=: \
+ ac_cv_prog_RST2MAN=no
#
# autoconf
#
-LIBRSVG_AUTOCONF := \
+LIBRSVG_CONF_TOOL := autoconf
+LIBRSVG_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
- --disable-gtk-theme \
- --$(call ptx/endis, PTXCONF_LIBRSVG_PIXBUF_LOADER)-pixbuf-loader \
--disable-gtk-doc \
- --disable-tools \
- --$(call ptx/wwo, PTXCONF_LIBRSVG_SVGZ)-svgz \
- --$(call ptx/wwo, PTXCONF_LIBRSVG_CROCO)-croco \
- --without-x
+ --disable-installed-tests \
+ --disable-always-build-tests \
+ --$(call ptx/endis, PTXCONF_LIBRSVG_PIXBUF_LOADER)-pixbuf-loader \
+ --disable-debug \
+ --disable-introspection \
+ --disable-vala
+
+LIBRSVG_MAKE_ENV := \
+ $(CROSS_CARGO_ENV)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/librtlsdr.in b/rules/librtlsdr.in
new file mode 100644
index 000000000..9324dc7f2
--- /dev/null
+++ b/rules/librtlsdr.in
@@ -0,0 +1,29 @@
+## SECTION=system_libraries
+
+menuconfig LIBRTLSDR
+ tristate
+ prompt "librtlsdr "
+ select HOST_CMAKE
+ select LIBUSB
+ help
+ Realtek SDR (Software Defined Radio) library.
+
+if LIBRTLSDR
+
+comment "Install options ---"
+
+config LIBRTLSDR_TOOLS
+ bool
+ default y
+ prompt "Install tools "
+ help
+ Installs rtl-sdr tools.
+
+config LIBRTLSDR_UDEV
+ bool
+ default y
+ prompt "Install udev rules "
+ help
+ Installs udev rules.
+
+endif
diff --git a/rules/librtlsdr.make b/rules/librtlsdr.make
new file mode 100644
index 000000000..1242ed64a
--- /dev/null
+++ b/rules/librtlsdr.make
@@ -0,0 +1,65 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Christian Melki <christian.melki@t2data.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBRTLSDR) += librtlsdr
+
+#
+# Paths and names
+#
+LIBRTLSDR_VERSION := 0.8.0
+LIBRTLSDR_MD5 := 64f31f30f79cd91e4cd70b0a8edcff4e
+LIBRTLSDR := librtlsdr-$(LIBRTLSDR_VERSION)
+LIBRTLSDR_SUFFIX := tar.gz
+LIBRTLSDR_URL := https://github.com/librtlsdr/librtlsdr/archive/refs/tags/v$(LIBRTLSDR_VERSION).$(LIBRTLSDR_SUFFIX)
+LIBRTLSDR_SOURCE := $(SRCDIR)/$(LIBRTLSDR).$(LIBRTLSDR_SUFFIX)
+LIBRTLSDR_DIR := $(BUILDDIR)/$(LIBRTLSDR)
+LIBRTLSDR_LICENSE := GPL-2.0-only
+LIBRTLSDR_LICENSE_FILES := \
+ file://COPYING;md5=751419260aa954499f7abaabaa882bbe
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+LIBRTLSDR_CONF_TOOL := cmake
+LIBRTLSDR_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -DLIB_INSTALL_DIR=/usr/lib \
+ -DENABLE_SHARED=ON \
+ -DINSTALL_UDEV_RULES=ON
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/librtlsdr.targetinstall:
+ @$(call targetinfo)
+ @$(call install_init, librtlsdr)
+ @$(call install_fixup, librtlsdr,PRIORITY,optional)
+ @$(call install_fixup, librtlsdr,SECTION,base)
+ @$(call install_fixup, librtlsdr,AUTHOR,"Christian Melki <christian.melki@t2data.com>")
+ @$(call install_fixup, librtlsdr,DESCRIPTION,missing)
+ @$(call install_lib, librtlsdr, 0, 0, 0644, librtlsdr)
+
+ifdef PTXCONF_LIBRTLSDR_TOOLS
+ @$(call install_glob, librtlsdr, 0, 0, -, /usr/bin, *rtl_*,)
+endif
+
+ifdef PTXCONF_LIBRTLSDR_UDEV
+ @$(call install_copy, librtlsdr, 0, 0, 0644, \
+ $(LIBRTLSDR_PKGDIR)/etc/udev/rules.d/rtl-sdr.rules, \
+ /usr/lib/udev/rules.d/81-rtl-sdr.rules)
+endif
+
+ @$(call install_finish, librtlsdr)
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libseccomp.make b/rules/libseccomp.make
index 9eb54245c..48fbf8f7f 100644
--- a/rules/libseccomp.make
+++ b/rules/libseccomp.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_LIBSECCOMP) += libseccomp
#
# Paths and names
#
-LIBSECCOMP_VERSION := 2.5.1
-LIBSECCOMP_MD5 := 59f5563c532d3fa1df9db0516b36b1cd
-LIBSECCOMP := libseccomp-$(LIBSECCOMP_VERSION)
-LIBSECCOMP_SUFFIX := tar.gz
-LIBSECCOMP_URL := https://github.com/seccomp/libseccomp/releases/download/v$(LIBSECCOMP_VERSION)/$(LIBSECCOMP).$(LIBSECCOMP_SUFFIX)
-LIBSECCOMP_SOURCE := $(SRCDIR)/$(LIBSECCOMP).$(LIBSECCOMP_SUFFIX)
-LIBSECCOMP_DIR := $(BUILDDIR)/$(LIBSECCOMP)
-LIBSECCOMP_LICENSE := LGPL-2.1-only
+LIBSECCOMP_VERSION := 2.5.5
+LIBSECCOMP_MD5 := c27a5e43cae1e89e6ebfedeea734c9b4
+LIBSECCOMP := libseccomp-$(LIBSECCOMP_VERSION)
+LIBSECCOMP_SUFFIX := tar.gz
+LIBSECCOMP_URL := https://github.com/seccomp/libseccomp/releases/download/v$(LIBSECCOMP_VERSION)/$(LIBSECCOMP).$(LIBSECCOMP_SUFFIX)
+LIBSECCOMP_SOURCE := $(SRCDIR)/$(LIBSECCOMP).$(LIBSECCOMP_SUFFIX)
+LIBSECCOMP_DIR := $(BUILDDIR)/$(LIBSECCOMP)
+LIBSECCOMP_LICENSE := LGPL-2.1-only
+LIBSECCOMP_LICENSE_FILES := \
+ file://LICENSE;md5=7c13b3376cea0ce68d2d2da0a1b3a72c
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/libsepol.make b/rules/libsepol.make
index f58aa1739..cf5f4ef4d 100644
--- a/rules/libsepol.make
+++ b/rules/libsepol.make
@@ -30,6 +30,7 @@ LIBSEPOL_LICENSE := LGPL-2.1-or-later
LIBSEPOL_CONF_TOOL := NO
LIBSEPOL_MAKE_ENV := \
$(CROSS_ENV) \
+ SHLIBDIR=$(LIBSEPOL_PKGDIR)/usr/lib \
CFLAGS="-O2 -Wall -g"
# ----------------------------------------------------------------------------
diff --git a/rules/libshout.in b/rules/libshout.in
index a74d0dd32..d7045d894 100644
--- a/rules/libshout.in
+++ b/rules/libshout.in
@@ -4,6 +4,7 @@ menuconfig LIBSHOUT
tristate
prompt "libshout "
select LIBVORBIS
+ select OPENSSL
select LIBTHEORA if LIBSHOUT_THEORA
select SPEEX if LIBSHOUT_SPEEX
help
diff --git a/rules/libshout.make b/rules/libshout.make
index 4d94e7179..954818758 100644
--- a/rules/libshout.make
+++ b/rules/libshout.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBSHOUT) += libshout
#
# Paths and names
#
-LIBSHOUT_VERSION := 2.3.1
-LIBSHOUT_MD5 := 11765b2592e7ea623ccd93d3f8df172c
+LIBSHOUT_VERSION := 2.4.6
+LIBSHOUT_MD5 := 4a66a369a01ce790e578221fa2c8ea60
LIBSHOUT := libshout-$(LIBSHOUT_VERSION)
LIBSHOUT_SUFFIX := tar.gz
LIBSHOUT_URL := http://downloads.xiph.org/releases/libshout/$(LIBSHOUT).$(LIBSHOUT_SUFFIX)
@@ -33,7 +33,10 @@ LIBSHOUT_LICENSE := LGPL-2.0-or-later
LIBSHOUT_CONF_TOOL := autoconf
LIBSHOUT_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
+ --disable-examples \
+ --disable-tools \
--enable-thread \
+ --enable-vorbis \
--$(call ptx/endis, PTXCONF_LIBSHOUT_THEORA)-theora \
--$(call ptx/endis, PTXCONF_LIBSHOUT_SPEEX)-speex
diff --git a/rules/libsigcpp.make b/rules/libsigcpp.make
index d27521b84..db02f33d8 100644
--- a/rules/libsigcpp.make
+++ b/rules/libsigcpp.make
@@ -27,13 +27,11 @@ LIBSIGCPP_DIR := $(BUILDDIR)/$(LIBSIGCPP)
# Prepare
# ----------------------------------------------------------------------------
-LIBSIGCPP_PATH := PATH=$(CROSS_PATH)
-LIBSIGCPP_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBSIGCPP_AUTOCONF := \
+LIBSIGCPP_CONF_TOOL := autoconf
+LIBSIGCPP_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-documentation
diff --git a/rules/libslirp.in b/rules/libslirp.in
new file mode 100644
index 000000000..a078775a1
--- /dev/null
+++ b/rules/libslirp.in
@@ -0,0 +1,10 @@
+## SECTION=networking
+
+config LIBSLIRP
+ tristate
+ select HOST_MESON
+ select GLIB
+ prompt "libslirp"
+ help
+ libslirp is a user-mode networking library used by virtual machines,
+ containers or various tools, like qemu.
diff --git a/rules/libslirp.make b/rules/libslirp.make
new file mode 100644
index 000000000..210c32a69
--- /dev/null
+++ b/rules/libslirp.make
@@ -0,0 +1,58 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Roland Hieber <rhi@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBSLIRP) += libslirp
+
+#
+# Paths and names
+#
+LIBSLIRP_VERSION := 4.7.0
+LIBSLIRP_MD5 := b815c4de99265559caf5ef635a213609
+LIBSLIRP := libslirp-v$(LIBSLIRP_VERSION)
+LIBSLIRP_SUFFIX := tar.bz2
+LIBSLIRP_URL := https://gitlab.freedesktop.org/slirp/libslirp/-/archive/v4.7.0/$(LIBSLIRP).$(LIBSLIRP_SUFFIX)
+LIBSLIRP_SOURCE := $(SRCDIR)/$(LIBSLIRP).$(LIBSLIRP_SUFFIX)
+LIBSLIRP_DIR := $(BUILDDIR)/$(LIBSLIRP)
+LIBSLIRP_LICENSE := BSD-3-Clause AND MIT
+LIBSLIRP_LICENSE_FILES := \
+ file://src/main.h;startline=1;endline=4;md5=1e742c49b6e4dd48549742f8727faceb \
+ file://src/slirp.c;startline=1;endline=24;md5=1e11fddaa17f36215c1697d4bad0e70a \
+ file://COPYRIGHT;md5=bca0186b14e6b05e338e729f106db727
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# meson
+#
+LIBSLIRP_CONF_TOOL := meson
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libslirp.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libslirp)
+ @$(call install_fixup, libslirp,PRIORITY,optional)
+ @$(call install_fixup, libslirp,SECTION,base)
+ @$(call install_fixup, libslirp,AUTHOR,"Roland Hieber <rhi@pengutronix.de>")
+ @$(call install_fixup, libslirp,DESCRIPTION,missing)
+
+ @$(call install_lib, libslirp, 0, 0, 0644, libslirp)
+
+ @$(call install_finish, libslirp)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libsndfile.in b/rules/libsndfile.in
index 26cd8cb77..98f8874fd 100644
--- a/rules/libsndfile.in
+++ b/rules/libsndfile.in
@@ -3,6 +3,7 @@
menuconfig LIBSNDFILE
tristate
prompt "libsndfile "
+ select HOST_SYSTEM_PYTHON3
select LIBOGG if LIBSNDFILE_EXT_LIBS
select LIBVORBIS if LIBSNDFILE_EXT_LIBS
select FLAC if LIBSNDFILE_EXT_LIBS
diff --git a/rules/libsndfile.make b/rules/libsndfile.make
index b8b46e3ab..691fb911b 100644
--- a/rules/libsndfile.make
+++ b/rules/libsndfile.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_LIBSNDFILE) += libsndfile
#
# Paths and names
#
-LIBSNDFILE_VERSION := 1.0.25
-LIBSNDFILE_MD5 := e2b7bb637e01022c7d20f95f9c3990a2
+LIBSNDFILE_VERSION := 1.2.2
+LIBSNDFILE_MD5 := 04e2e6f726da7c5dc87f8cf72f250d04
LIBSNDFILE := libsndfile-$(LIBSNDFILE_VERSION)
-LIBSNDFILE_SUFFIX := tar.gz
-LIBSNDFILE_URL := http://www.mega-nerd.com/libsndfile/files/$(LIBSNDFILE).$(LIBSNDFILE_SUFFIX)
+LIBSNDFILE_SUFFIX := tar.xz
+LIBSNDFILE_URL := https://github.com/libsndfile/libsndfile/releases/download/$(LIBSNDFILE_VERSION)/$(LIBSNDFILE).$(LIBSNDFILE_SUFFIX)
LIBSNDFILE_SOURCE := $(SRCDIR)/$(LIBSNDFILE).$(LIBSNDFILE_SUFFIX)
LIBSNDFILE_DIR := $(BUILDDIR)/$(LIBSNDFILE)
LIBSNDFILE_LICENSE := LGPL-2.1-only
@@ -33,10 +33,21 @@ LIBSNDFILE_LICENSE := LGPL-2.1-only
LIBSNDFILE_CONF_TOOL := autoconf
LIBSNDFILE_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
- $(GLOBAL_LARGE_FILE_OPTION) \
- --disable-octave \
+ --disable-experimental \
+ --disable-werror \
+ --disable-cpu-clip \
+ --disable-bow-docs \
+ --disable-sqlite \
--disable-alsa \
- --$(call ptx/endis,PTXCONF_LIBSNDFILE_EXT_LIBS)-external-libs
+ --$(call ptx/endis,PTXCONF_LIBSNDFILE_EXT_LIBS)-external-libs \
+ --disable-mpeg \
+ --disable-octave \
+ --enable-full-suite \
+ --disable-test-coverage \
+ --disable-ossfuzzers \
+ $(GLOBAL_LARGE_FILE_OPTION) \
+ --without-mkoctfile \
+ --without-octave-config
# ----------------------------------------------------------------------------
# Target-Install
@@ -52,7 +63,6 @@ LIBSNDFILE_PROGS := \
sndfile-metadata-get \
sndfile-metadata-set \
sndfile-play \
- sndfile-regtest \
sndfile-salvage
$(STATEDIR)/libsndfile.targetinstall:
@@ -68,7 +78,8 @@ $(STATEDIR)/libsndfile.targetinstall:
ifdef PTXCONF_LIBSNDFILE_TOOLS
@$(foreach prog, $(LIBSNDFILE_PROGS), \
- $(call install_copy, libsndfile, 0, 0, 0755, -, /usr/bin/$(prog));)
+ $(call install_copy, libsndfile, 0, 0, 0755, -, \
+ /usr/bin/$(prog))$(ptx/nl))
endif
@$(call install_finish, libsndfile)
diff --git a/rules/libsocketcan.make b/rules/libsocketcan.make
index 957d5a05c..6704f0849 100644
--- a/rules/libsocketcan.make
+++ b/rules/libsocketcan.make
@@ -31,7 +31,8 @@ LIBSOCKETCAN_LICENSE_FILES := file://LICENSE;md5=4fbd65380cdd255951079008b364516
#
# autoconf
#
-LIBSOCKETCAN_AUTOCONF := $(CROSS_AUTOCONF_USR)
+LIBSOCKETCAN_CONF_TOOL := autoconf
+LIBSOCKETCAN_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libsodium.in b/rules/libsodium.in
index cfdd4fc3a..431715da0 100644
--- a/rules/libsodium.in
+++ b/rules/libsodium.in
@@ -1,7 +1,7 @@
## SECTION=system_libraries
config LIBSODIUM
- bool
+ tristate
select LIBC_PTHREAD
prompt "libsodium"
help
diff --git a/rules/libsodium.make b/rules/libsodium.make
index 97051557f..b0c3ba6b3 100644
--- a/rules/libsodium.make
+++ b/rules/libsodium.make
@@ -14,14 +14,15 @@ PACKAGES-$(PTXCONF_LIBSODIUM) += libsodium
#
# Paths and names
#
-LIBSODIUM_VERSION := 1.0.16
-LIBSODIUM_MD5 := 37b18839e57e7a62834231395c8e962b
+LIBSODIUM_VERSION := 1.0.18
+LIBSODIUM_MD5 := 3ca9ebc13b6b4735acae0a6a4c4f9a95
LIBSODIUM := libsodium-$(LIBSODIUM_VERSION)
LIBSODIUM_SUFFIX := tar.gz
-LIBSODIUM_URL := https://github.com/jedisct1/libsodium/releases/download/$(LIBSODIUM_VERSION)/$(LIBSODIUM).$(LIBSODIUM_SUFFIX)
+LIBSODIUM_URL := https://download.libsodium.org/libsodium/releases/$(LIBSODIUM).$(LIBSODIUM_SUFFIX)
LIBSODIUM_SOURCE := $(SRCDIR)/$(LIBSODIUM).$(LIBSODIUM_SUFFIX)
LIBSODIUM_DIR := $(BUILDDIR)/$(LIBSODIUM)
LIBSODIUM_LICENSE := ISC
+LIBSODIUM_LICENSE_FILES := file://LICENSE;md5=47203c753972e855179dfffe15188bee
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/libsoup.in b/rules/libsoup.in
index 42ee2b1d8..788d7985d 100644
--- a/rules/libsoup.in
+++ b/rules/libsoup.in
@@ -6,11 +6,8 @@ config LIBSOUP
select HOST_GLIB
select GLIB
select SQLITE
+ select LIBNGHTTP2
select LIBPSL
- select LIBXML2
- select LIBXML2_OUTPUT
- select LIBXML2_SAX1
- select HOST_INTLTOOL
select GOBJECT_INTROSPECTION if LIBSOUP_INTROSPECTION
prompt "libsoup"
help
diff --git a/rules/libsoup.make b/rules/libsoup.make
index 4a9da41f4..483c954c2 100644
--- a/rules/libsoup.make
+++ b/rules/libsoup.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_LIBSOUP) += libsoup
#
# Paths and names
#
-LIBSOUP_VERSION := 2.66.2
-LIBSOUP_MD5 := 66c2ae89d6031b01337d78a2c57c75d5
+LIBSOUP_VERSION := 3.4.4
+LIBSOUP_MD5 := a63ea04a9686e9e4470b127ffe1eb96b
LIBSOUP := libsoup-$(LIBSOUP_VERSION)
LIBSOUP_SUFFIX := tar.xz
LIBSOUP_URL := $(call ptx/mirror, GNOME, libsoup/$(basename $(LIBSOUP_VERSION))/$(LIBSOUP).$(LIBSOUP_SUFFIX))
LIBSOUP_SOURCE := $(SRCDIR)/$(LIBSOUP).$(LIBSOUP_SUFFIX)
LIBSOUP_DIR := $(BUILDDIR)/$(LIBSOUP)
LIBSOUP_LICENSE := LGPL-2.1-only
+LIBSOUP_LICENSE_FILES := \
+ file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2
# ----------------------------------------------------------------------------
# Prepare
@@ -33,16 +35,22 @@ LIBSOUP_LICENSE := LGPL-2.1-only
LIBSOUP_CONF_TOOL := meson
LIBSOUP_CONF_OPT := \
$(CROSS_MESON_USR) \
- -Dgssapi=false \
- -Ddoc=false \
- -Dgnome=true \
- -Dvapi=false \
- -Dintrospection=$(call ptx/truefalse, PTXCONF_LIBSOUP_INTROSPECTION) \
+ -Dautobahn=disabled \
+ -Dbrotli=disabled \
+ -Ddoc_tests=false \
+ -Ddocs=disabled \
+ -Dfuzzing=disabled \
+ -Dgssapi=disabled \
+ -Dinstalled_tests=false \
+ -Dintrospection=$(call ptx/endis, PTXCONF_LIBSOUP_INTROSPECTION)d \
-Dkrb5_config= \
- -Dntlm=false \
+ -Dntlm=disabled \
-Dntlm_auth=ntlm_auth \
+ -Dpkcs11_tests=disabled \
+ -Dsysprof=disabled \
-Dtests=false \
- -Dtls_check=false
+ -Dtls_check=false \
+ -Dvapi=disabled
# ----------------------------------------------------------------------------
# Target-Install
@@ -57,10 +65,10 @@ $(STATEDIR)/libsoup.targetinstall:
@$(call install_fixup, libsoup,AUTHOR,"Marc Kleine-Budde <mkl@pengutronix.de>")
@$(call install_fixup, libsoup,DESCRIPTION,missing)
- @$(call install_lib, libsoup, 0, 0, 0644, libsoup-2.4)
+ @$(call install_lib, libsoup, 0, 0, 0644, libsoup-3.0)
ifdef PTXCONF_LIBSOUP_INTROSPECTION
@$(call install_copy, libsoup, 0, 0, 0644, -, \
- /usr/lib/girepository-1.0/Soup-2.4.typelib)
+ /usr/lib/girepository-1.0/Soup-3.0.typelib)
endif
@$(call install_finish, libsoup)
diff --git a/rules/libsrtp.make b/rules/libsrtp.make
index d6dd1d924..d094ee577 100644
--- a/rules/libsrtp.make
+++ b/rules/libsrtp.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_LIBSRTP) += libsrtp
#
# Paths and names
#
-LIBSRTP_VERSION := 2.2.0
-LIBSRTP_MD5 := f77a27457d219f2991ea7aa2f0c11ec9
+LIBSRTP_VERSION := 2.5.0
+LIBSRTP_MD5 := 740557a07928be1886822ce307736e89
LIBSRTP := libsrtp-$(LIBSRTP_VERSION)
LIBSRTP_SUFFIX := tar.gz
LIBSRTP_URL := https://github.com/cisco/libsrtp/archive/v$(LIBSRTP_VERSION).$(LIBSRTP_SUFFIX)
LIBSRTP_SOURCE := $(SRCDIR)/$(LIBSRTP).$(LIBSRTP_SUFFIX)
LIBSRTP_DIR := $(BUILDDIR)/$(LIBSRTP)
LIBSRTP_LICENSE := BSD-3-Clause
+LIBSRTP_LICENSE_FILES := \
+ file://LICENSE;md5=2909fcf6f09ffff8430463d91c08c4e1
# ----------------------------------------------------------------------------
# Prepare
@@ -35,7 +37,9 @@ LIBSRTP_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-debug-logging \
--enable-openssl \
+ --disable-nss \
--disable-openssl-kdf \
+ --disable-pcap \
--enable-log-stdout
LIBSRTP_MAKE_OPT := shared_library
diff --git a/rules/libssh2.in b/rules/libssh2.in
index e5c30655b..9d4b49d33 100644
--- a/rules/libssh2.in
+++ b/rules/libssh2.in
@@ -7,7 +7,7 @@ config LIBSSH2
select OPENSSL
help
SSH2 client-side library
-
+
libssh2 is the thin library implementing client side of SSH2
protocol as defined by Internet Drafts SECSH-TRANS,
SECSH-USERAUTH, SECSH-CONNECTION, SECSH-ARCH,
diff --git a/rules/libssh2.make b/rules/libssh2.make
index 51c5c4e55..ef04cc01d 100644
--- a/rules/libssh2.make
+++ b/rules/libssh2.make
@@ -26,13 +26,11 @@ LIBSSH2_DIR := $(BUILDDIR)/$(LIBSSH2)
# Prepare
# ----------------------------------------------------------------------------
-LIBSSH2_PATH := PATH=$(CROSS_PATH)
-LIBSSH2_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBSSH2_AUTOCONF := \
+LIBSSH2_CONF_TOOL := autoconf
+LIBSSH2_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
$(GLOBAL_LARGE_FILE_OPTION) \
--disable-rpath \
@@ -49,7 +47,6 @@ LIBSSH2_AUTOCONF := \
--with-libssl-prefix=$(SYSROOT)/usr \
--with-libz-prefix=$(SYSROOT)/usr
-
# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
diff --git a/rules/libsysfs.in b/rules/libsysfs.in
index 68bfd2647..74f834cc0 100644
--- a/rules/libsysfs.in
+++ b/rules/libsysfs.in
@@ -19,5 +19,5 @@ config LIBSYSFS_SYSTOOL
to query sysfs entries: it can list devices
by bus, class, and topology.
-endif
+endif
diff --git a/rules/libsysfs.make b/rules/libsysfs.make
index 625cdf2e6..3373eb6b9 100644
--- a/rules/libsysfs.make
+++ b/rules/libsysfs.make
@@ -30,13 +30,11 @@ LIBSYSFS_LICENSE_FILES := \
# Prepare
# ----------------------------------------------------------------------------
-LIBSYSFS_PATH := PATH=$(CROSS_PATH)
-LIBSYSFS_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBSYSFS_AUTOCONF := $(CROSS_AUTOCONF_USR)
+LIBSYSFS_CONF_TOOL := autoconf
+LIBSYSFS_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libtag.in b/rules/libtag.in
new file mode 100644
index 000000000..1e703a201
--- /dev/null
+++ b/rules/libtag.in
@@ -0,0 +1,18 @@
+## SECTION=multimedia_libs
+
+menuconfig LIBTAG
+ tristate
+ prompt "libtag "
+ select HOST_CMAKE
+ select ZLIB if LIBTAG_ZLIB
+ help
+ A library for reading and editing the meta-data of several
+ popular audio formats.
+
+if LIBTAG
+
+config LIBTAG_ZLIB
+ bool
+ prompt "zlib support"
+
+endif
diff --git a/rules/libtag.make b/rules/libtag.make
new file mode 100644
index 000000000..8d26a56da
--- /dev/null
+++ b/rules/libtag.make
@@ -0,0 +1,60 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Ladislav Michl <ladis@linux-mips.org>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBTAG) += libtag
+
+#
+# Paths and names
+#
+LIBTAG_VERSION := 1.13.1
+LIBTAG_MD5 := 2fe6089da73ad414aa1b982b83415362
+LIBTAG := taglib-$(LIBTAG_VERSION)
+LIBTAG_SUFFIX := tar.gz
+LIBTAG_URL := https://taglib.org/releases/$(LIBTAG).$(LIBTAG_SUFFIX)
+LIBTAG_SOURCE := $(SRCDIR)/$(LIBTAG).$(LIBTAG_SUFFIX)
+LIBTAG_DIR := $(BUILDDIR)/$(LIBTAG)
+LIBTAG_LICENSE := LGPL-2.1-or-later
+LIBTAG_LICENSE_FILES := \
+ file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c \
+ file://COPYING.MPL;md5=bfe1f75d606912a4111c90743d6c7325
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+LIBTAG_CONF_TOOL := cmake
+LIBTAG_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -DBUILD_SHARED_LIBS=ON \
+ -DBUILD_TESTING=OFF \
+ -DBUILD_EXAMPLES=OFF \
+ -DWITH_ZLIB=$(call ptx/onoff, PTXCONF_LIBTAG_ZLIB)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libtag.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libtag)
+ @$(call install_fixup, libtag,PRIORITY,optional)
+ @$(call install_fixup, libtag,SECTION,base)
+ @$(call install_fixup, libtag,AUTHOR,"Ladislav Michl <ladis@linux-mips.org>")
+ @$(call install_fixup, libtag,DESCRIPTION,missing)
+
+ $(call install_lib, libtag, 0, 0, 0644, libtag)
+
+ @$(call install_finish, libtag)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libtahu.in b/rules/libtahu.in
new file mode 100644
index 000000000..451d40957
--- /dev/null
+++ b/rules/libtahu.in
@@ -0,0 +1,11 @@
+## SECTION=system_libraries
+
+config LIBTAHU
+ tristate
+ prompt "libtahu"
+ help
+ Eclipse Tahu C library for encoding and decoding Sparkplug B
+ messages.
+
+ A typical application will also require an MQTT library such
+ as "mosquitto".
diff --git a/rules/libtahu.make b/rules/libtahu.make
new file mode 100644
index 000000000..26c064c6d
--- /dev/null
+++ b/rules/libtahu.make
@@ -0,0 +1,83 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Ian Abbott <abbotti@mev.co.uk>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBTAHU) += libtahu
+
+#
+# Paths and names
+#
+LIBTAHU_VERSION := 1.0.1
+LIBTAHU_MD5 := 7e980ed17e34a78d6d61c000e4957292
+LIBTAHU := libtahu-$(LIBTAHU_VERSION)
+LIBTAHU_SUFFIX := tar.gz
+LIBTAHU_URL := https://github.com/eclipse/tahu/archive/refs/tags/v$(LIBTAHU_VERSION).$(LIBTAHU_SUFFIX)
+LIBTAHU_SOURCE := $(SRCDIR)/$(LIBTAHU).$(LIBTAHU_SUFFIX)
+LIBTAHU_DIR := $(BUILDDIR)/$(LIBTAHU)
+LIBTAHU_SUBDIR := c/core
+LIBTAHU_LICENSE := EPL-2.0
+LIBTAHU_LICENSE_FILES := \
+ file://LICENCE;md5=c7cc8aa73fb5717f8291fcec5ce9ed6c \
+ file://notice.html;md5=618d2440fc58e15450a9416cd6804477
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+LIBTAHU_CONF_TOOL := NO
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+#LIBTAHU_MAKE_ENV := $(CROSS_ENV)
+
+# Just build the dynamic library.
+LIBTAHU_MAKE_OPT := \
+ $(CROSS_ENV_PROGS) \
+ lib/libtahu.so
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libtahu.install:
+ @$(call targetinfo)
+ @install -m 644 -v -D -t "$(LIBTAHU_PKGDIR)/usr/lib" \
+ "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/lib/libtahu.so"
+ @install -m 644 -v -D -t "$(LIBTAHU_PKGDIR)/usr/include" \
+ "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/include/pb.h" \
+ "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/include/pb_common.h" \
+ "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/include/pb_decode.h" \
+ "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/include/pb_encode.h" \
+ "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/include/tahu.h" \
+ "$(LIBTAHU_DIR)/$(LIBTAHU_SUBDIR)/include/tahu.pb.h"
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libtahu.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libtahu)
+ @$(call install_fixup, libtahu,PRIORITY,optional)
+ @$(call install_fixup, libtahu,SECTION,base)
+ @$(call install_fixup, libtahu,AUTHOR,"Ian Abbott <abbotti@mev.co.uk>")
+ @$(call install_fixup, libtahu,DESCRIPTION,missing)
+
+ @$(call install_lib, libtahu, 0, 0, 0644, libtahu)
+
+ @$(call install_finish, libtahu)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libtasn1.in b/rules/libtasn1.in
index 4affbf81f..e752d83b3 100644
--- a/rules/libtasn1.in
+++ b/rules/libtasn1.in
@@ -9,8 +9,8 @@ config LIBTASN1
Manage ASN1 (Abstract Syntax Notation One) structures. The
main features of this library are:
* on-line ASN1 structure management that doesn't require any
- C code file generation.
+ C code file generation.
* off-line ASN1 structure management with C code file
- generation containing an array.
+ generation containing an array.
* DER (Distinguish Encoding Rules) encoding
* no limits for INTEGER and ENUMERATED values \ No newline at end of file
diff --git a/rules/libtasn1.make b/rules/libtasn1.make
index a2af741d4..ce06ddfe4 100644
--- a/rules/libtasn1.make
+++ b/rules/libtasn1.make
@@ -14,21 +14,25 @@ PACKAGES-$(PTXCONF_LIBTASN1) += libtasn1
#
# Paths and names
#
-LIBTASN1_VERSION := 4.16.0
-LIBTASN1_MD5 := 531208de3729d42e2af0a32890f08736
+LIBTASN1_VERSION := 4.19.0
+LIBTASN1_MD5 := f701ab57eb8e7d9c105b2cd5d809b29a
LIBTASN1 := libtasn1-$(LIBTASN1_VERSION)
LIBTASN1_SUFFIX := tar.gz
LIBTASN1_URL := $(call ptx/mirror, GNU, libtasn1/$(LIBTASN1).$(LIBTASN1_SUFFIX))
LIBTASN1_SOURCE := $(SRCDIR)/$(LIBTASN1).$(LIBTASN1_SUFFIX)
LIBTASN1_DIR := $(BUILDDIR)/$(LIBTASN1)
LIBTASN1_LICENSE := LGPL-2.1-only AND GPL-3.0-only
+LIBTASN1_LICENSE_FILES := \
+ file://COPYING;md5=75ac100ec923f959898182307970c360
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
+#
+# autoconf
+#
LIBTASN1_CONF_TOOL := autoconf
-
LIBTASN1_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-doc \
diff --git a/rules/libtheora.in b/rules/libtheora.in
index 689a3480e..5b162ba8b 100644
--- a/rules/libtheora.in
+++ b/rules/libtheora.in
@@ -2,9 +2,9 @@
menuconfig LIBTHEORA
tristate
- select LIBOGG if LIBTHEORA__OGG
- select LIBVORBIS if LIBTHEORA__VORBIS
- select SDL if LIBTHEORA__SDL
+ select LIBOGG
+ select LIBVORBIS if LIBTHEORA_VORBIS
+ select SDL if LIBTHEORA_SDL
prompt "libtheora "
help
Theora is an open video codec being developed by the Xiph.org Foundation
@@ -12,37 +12,23 @@ menuconfig LIBTHEORA
if LIBTHEORA
- config LIBTHEORA__OGG
- bool
- default y
- # no prompt, ogg support is selectable, but mandatory :-/
- # prompt "ogg support"
+config LIBTHEORA_VORBIS
+ bool
+ prompt "vorbis support"
- config LIBTHEORA__VORBIS
- bool
- prompt "vorbis support"
+config LIBTHEORA_SDL
+ bool
+ prompt "sdl support"
- config LIBTHEORA__SDL
- bool
- prompt "sdl support"
-
- config LIBTHEORA__FLOAT
- bool
- prompt "floating point support"
- help
- Disable use of floating point code. This might be a good idea on
- architectures which don't have an FPU.
-
- config LIBTHEORA__ENCODING
- bool
- prompt "encoding support"
+config LIBTHEORA_FLOAT
+ bool
+ prompt "floating point support"
+ help
+ Disable use of floating point code. This might be a good idea on
+ architectures which don't have an FPU.
- config LIBTHEORA__DOC
- bool
- prompt "build documentation"
- help
- To build the documentation and the API description you must
- have pdflatex, transfig, bibtex or doxygen be present on
- your host.
+config LIBTHEORA_ENCODING
+ bool
+ prompt "encoding support"
endif
diff --git a/rules/libtheora.make b/rules/libtheora.make
index b591c3320..7d49b70e3 100644
--- a/rules/libtheora.make
+++ b/rules/libtheora.make
@@ -23,18 +23,26 @@ LIBTHEORA_URL := http://downloads.xiph.org/releases/theora/$(LIBTHEORA).$(LIBTH
LIBTHEORA_SOURCE := $(SRCDIR)/$(LIBTHEORA).$(LIBTHEORA_SUFFIX)
LIBTHEORA_DIR := $(BUILDDIR)/$(LIBTHEORA)
LIBTHEORA_LICENSE := BSD-3-Clause
+LIBTHEORA_LICENSE_FILES := \
+ file://COPYING;md5=cf91718f59eb6a83d06dc7bcaf411132 \
+ file://LICENSE;md5=82ccf023e3ce1aa18043edc61f948e2c
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-LIBTHEORA_PATH := PATH=$(CROSS_PATH)
-LIBTHEORA_ENV := $(CROSS_ENV)
+LIBTHEORA_CONF_ENV := \
+ $(CROSS_ENV) \
+ ac_cv_prog_HAVE_DOXYGEN=false \
+ ac_cv_prog_HAVE_PDFLATEX=no \
+ ac_cv_prog_HAVE_BIBTEX=no \
+ ac_cv_prog_HAVE_TRANSFIG=no
#
# autoconf
#
-LIBTHEORA_AUTOCONF := \
+LIBTHEORA_CONF_TOOL := autoconf
+LIBTHEORA_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--enable-asm \
--disable-examples \
@@ -42,19 +50,11 @@ LIBTHEORA_AUTOCONF := \
--disable-valgrind-testing \
--disable-telemetry \
--disable-examples \
- --$(call ptx/endis, PTXCONF_LIBTHEORA__OGG)-ogg \
- --$(call ptx/endis, PTXCONF_LIBTHEORA__VORBIS)-vorbis \
- --$(call ptx/endis, PTXCONF_LIBTHEORA__SDL)-sdl \
- --$(call ptx/endis, PTXCONF_LIBTHEORA__FLOAT)-float \
- --$(call ptx/endis, PTXCONF_LIBTHEORA__ENCODING)-encode
-
-ifndef PTXCONF_LIBTHEORA__DOC
-LIBTHEORA_AUTOCONF += \
- ac_cv_prog_HAVE_DOXYGEN=false \
- ac_cv_prog_HAVE_PDFLATEX=no \
- ac_cv_prog_HAVE_BIBTEX=no \
- ac_cv_prog_HAVE_TRANSFIG=no
-endif
+ --enable-ogg \
+ --$(call ptx/endis, PTXCONF_LIBTHEORA_VORBIS)-vorbis \
+ --$(call ptx/endis, PTXCONF_LIBTHEORA_SDL)-sdl \
+ --$(call ptx/endis, PTXCONF_LIBTHEORA_FLOAT)-float \
+ --$(call ptx/endis, PTXCONF_LIBTHEORA_ENCODING)-encode
# ----------------------------------------------------------------------------
# Target-Install
@@ -71,7 +71,9 @@ $(STATEDIR)/libtheora.targetinstall:
@$(call install_lib, libtheora, 0, 0, 0644, libtheora)
@$(call install_lib, libtheora, 0, 0, 0644, libtheoradec)
+ifdef PTXCONF_LIBTHEORA_ENCODING
@$(call install_lib, libtheora, 0, 0, 0644, libtheoraenc)
+endif
@$(call install_finish, libtheora)
diff --git a/rules/libtiff.in b/rules/libtiff.in
new file mode 100644
index 000000000..4167f1af8
--- /dev/null
+++ b/rules/libtiff.in
@@ -0,0 +1,30 @@
+## SECTION=multimedia_libs
+
+menuconfig LIBTIFF
+ bool
+ select ZLIB if LIBTIFF_ZLIB
+ select LIBJPEG if LIBTIFF_JPEG
+ select LIBWEBP if LIBTIFF_WEBP
+ prompt "libtiff "
+ help
+ TIFF library
+
+if LIBTIFF
+
+config LIBTIFF_TOOLS
+ bool
+ prompt "install tools"
+
+config LIBTIFF_ZLIB
+ bool
+ prompt "support ZLIB compression"
+
+config LIBTIFF_JPEG
+ bool
+ prompt "support JPEG compression"
+
+config LIBTIFF_WEBP
+ bool
+ prompt "support WEBP compression"
+
+endif
diff --git a/rules/libtiff.make b/rules/libtiff.make
new file mode 100644
index 000000000..1f515e040
--- /dev/null
+++ b/rules/libtiff.make
@@ -0,0 +1,112 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Matthias Fend <matthias.fend@emfend.at>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBTIFF) += libtiff
+
+#
+# Paths and names
+#
+LIBTIFF_VERSION := 4.3.0
+LIBTIFF_MD5 := 0a2e4744d1426a8fc8211c0cdbc3a1b3
+LIBTIFF := tiff-$(LIBTIFF_VERSION)
+LIBTIFF_SUFFIX := tar.gz
+LIBTIFF_URL := http://download.osgeo.org/libtiff/$(LIBTIFF).$(LIBTIFF_SUFFIX)
+LIBTIFF_SOURCE := $(SRCDIR)/$(LIBTIFF).$(LIBTIFF_SUFFIX)
+LIBTIFF_DIR := $(BUILDDIR)/$(LIBTIFF)
+LIBTIFF_LICENSE := libtiff
+LIBTIFF_LICENSE_FILES := file://COPYRIGHT;md5=34da3db46fab7501992f9615d7e158cf
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+LIBTIFF_CONF_TOOL := autoconf
+
+LIBTIFF_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --enable-option-checking \
+ --disable-silent-rules \
+ --disable-maintainer-mode \
+ --enable-dependency-tracking \
+ --disable-ld-version-script \
+ --enable-libtool-lock \
+ --disable-rpath \
+ $(GLOBAL_LARGE_FILE_OPTION) \
+ --enable-ccitt \
+ --enable-packbits \
+ --enable-lzw \
+ --enable-thunder \
+ --enable-next \
+ --enable-logluv \
+ --enable-mdi \
+ --$(call ptx/endis, PTXCONF_LIBTIFF_ZLIB)-zlib \
+ --disable-libdeflate \
+ --$(call ptx/endis, PTXCONF_LIBTIFF_ZLIB)-pixarlog \
+ --$(call ptx/endis, PTXCONF_LIBTIFF_JPEG)-jpeg \
+ --$(call ptx/endis, PTXCONF_LIBTIFF_JPEG)-old-jpeg \
+ --disable-jbig \
+ --disable-lerc \
+ --disable-lzma \
+ --disable-zstd \
+ --$(call ptx/endis, PTXCONF_LIBTIFF_WEBP)-webp \
+ --disable-jpeg12 \
+ --disable-cxx \
+ --disable-win32-io \
+ --enable-strip-chopping \
+ --disable-defer-strile-load \
+ --disable-chunky-strip-read \
+ --enable-extrasample-as-alpha \
+ --enable-check-ycbcr-subsampling
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libtiff.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libtiff)
+ @$(call install_fixup, libtiff, PRIORITY, optional)
+ @$(call install_fixup, libtiff, SECTION, base)
+ @$(call install_fixup, libtiff, AUTHOR, "Matthias Fend <matthias.fend@emfend.at>")
+ @$(call install_fixup, libtiff, DESCRIPTION, missing)
+
+ @$(call install_lib, libtiff, 0, 0, 0644, libtiff)
+
+ifdef PTXCONF_LIBTIFF_TOOLS
+ @$(call install_copy, libtiff, 0, 0, 0755, -, /usr/bin/fax2ps)
+ @$(call install_copy, libtiff, 0, 0, 0755, -, /usr/bin/fax2tiff)
+ @$(call install_copy, libtiff, 0, 0, 0755, -, /usr/bin/pal2rgb)
+ @$(call install_copy, libtiff, 0, 0, 0755, -, /usr/bin/ppm2tiff)
+ @$(call install_copy, libtiff, 0, 0, 0755, -, /usr/bin/raw2tiff)
+ @$(call install_copy, libtiff, 0, 0, 0755, -, /usr/bin/tiff2bw)
+ @$(call install_copy, libtiff, 0, 0, 0755, -, /usr/bin/tiff2pdf)
+ @$(call install_copy, libtiff, 0, 0, 0755, -, /usr/bin/tiff2ps)
+ @$(call install_copy, libtiff, 0, 0, 0755, -, /usr/bin/tiff2rgba)
+ @$(call install_copy, libtiff, 0, 0, 0755, -, /usr/bin/tiffcmp)
+ @$(call install_copy, libtiff, 0, 0, 0755, -, /usr/bin/tiffcp)
+ @$(call install_copy, libtiff, 0, 0, 0755, -, /usr/bin/tiffcrop)
+ @$(call install_copy, libtiff, 0, 0, 0755, -, /usr/bin/tiffdither)
+ @$(call install_copy, libtiff, 0, 0, 0755, -, /usr/bin/tiffdump)
+ @$(call install_copy, libtiff, 0, 0, 0755, -, /usr/bin/tiffinfo)
+ @$(call install_copy, libtiff, 0, 0, 0755, -, /usr/bin/tiffmedian)
+ @$(call install_copy, libtiff, 0, 0, 0755, -, /usr/bin/tiffset)
+ @$(call install_copy, libtiff, 0, 0, 0755, -, /usr/bin/tiffsplit)
+endif
+
+ @$(call install_finish, libtiff)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libtirpc.make b/rules/libtirpc.make
index 98f7f5f55..639286687 100644
--- a/rules/libtirpc.make
+++ b/rules/libtirpc.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_LIBTIRPC) += libtirpc
#
# Paths and names
#
-LIBTIRPC_VERSION := 1.2.6
-LIBTIRPC_MD5 := b25f9cc18bfad50f7c446c77f4ae00bb
+LIBTIRPC_VERSION := 1.3.4
+LIBTIRPC_MD5 := 375dbe7ceb2d0300d173fb40321b49b6
LIBTIRPC := libtirpc-$(LIBTIRPC_VERSION)
LIBTIRPC_SUFFIX := tar.bz2
LIBTIRPC_URL := $(call ptx/mirror, SF, libtirpc/$(LIBTIRPC).$(LIBTIRPC_SUFFIX))
LIBTIRPC_SOURCE := $(SRCDIR)/$(LIBTIRPC).$(LIBTIRPC_SUFFIX)
LIBTIRPC_DIR := $(BUILDDIR)/$(LIBTIRPC)
LIBTIRPC_LICENSE := BSD-3-Clause
+LIBTIRPC_LICENSE_FILES := \
+ file://COPYING;md5=f835cce8852481e4b2bbbdd23b5e47f3
# ----------------------------------------------------------------------------
# Prepare
@@ -34,7 +36,9 @@ LIBTIRPC_CONF_TOOL := autoconf
LIBTIRPC_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-gssapi \
- $(GLOBAL_IPV6_OPTION)
+ --disable-authdes \
+ $(GLOBAL_IPV6_OPTION) \
+ --enable-symvers
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libtremor.make b/rules/libtremor.make
index 9d2c50939..bf56d2d11 100644
--- a/rules/libtremor.make
+++ b/rules/libtremor.make
@@ -11,11 +11,11 @@
#
PACKAGES-$(PTXCONF_LIBTREMOR) += libtremor
-LIBTREMOR_VERSION := 1.0.3
-LIBTREMOR_MD5 := 31074f67ca36a3f8e6c8225c9126cde0
+LIBTREMOR_VERSION := 2018-03-19-g7c30a6634619
+LIBTREMOR_MD5 := 927a8c737909e2176684fdf010fa1695
LIBTREMOR := libtremor-$(LIBTREMOR_VERSION)
LIBTREMOR_SUFFIX := tar.gz
-LIBTREMOR_URL := http://www.pengutronix.de/software/ptxdist/temporary-src/$(LIBTREMOR).$(LIBTREMOR_SUFFIX)
+LIBTREMOR_URL := https://gitlab.xiph.org/xiph/tremor/-/archive/$(LIBTREMOR).$(LIBTREMOR_SUFFIX)
LIBTREMOR_SOURCE := $(SRCDIR)/$(LIBTREMOR).$(LIBTREMOR_SUFFIX)
LIBTREMOR_DIR := $(BUILDDIR)/$(LIBTREMOR)
diff --git a/rules/libucdaemon.make b/rules/libucdaemon.make
index 77219e1d3..d56d035e4 100644
--- a/rules/libucdaemon.make
+++ b/rules/libucdaemon.make
@@ -26,13 +26,11 @@ LIBUCDAEMON_DIR := $(BUILDDIR)/$(LIBUCDAEMON)
# Prepare
# ----------------------------------------------------------------------------
-LIBUCDAEMON_PATH := PATH=$(CROSS_PATH)
-LIBUCDAEMON_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBUCDAEMON_AUTOCONF := $(CROSS_AUTOCONF_USR)
+LIBUCDAEMON_CONF_TOOL := autoconf
+LIBUCDAEMON_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libunwind.in b/rules/libunwind.in
index cde723130..e5cd0c6de 100644
--- a/rules/libunwind.in
+++ b/rules/libunwind.in
@@ -2,6 +2,7 @@
config LIBUNWIND
tristate
+ select ZLIB
prompt "libunwind"
help
Portable and efficient C programming interface to determine the
diff --git a/rules/libunwind.make b/rules/libunwind.make
index 513258a40..5eab56e29 100644
--- a/rules/libunwind.make
+++ b/rules/libunwind.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_LIBUNWIND) += libunwind
#
# Paths and names
#
-LIBUNWIND_VERSION := 1.4.0
-LIBUNWIND_MD5 := 5114504c74ac3992ac06aa551cd55678
+LIBUNWIND_VERSION := 1.8.1
+LIBUNWIND_MD5 := 10c96118ff30b88c9eeb6eac8e75599d
LIBUNWIND := libunwind-$(LIBUNWIND_VERSION)
LIBUNWIND_SUFFIX := tar.gz
-LIBUNWIND_URL := http://download.savannah.gnu.org/releases/libunwind/$(LIBUNWIND).$(LIBUNWIND_SUFFIX)
+LIBUNWIND_URL := https://github.com/libunwind/libunwind/releases/download/v$(LIBUNWIND_VERSION)/$(LIBUNWIND).$(LIBUNWIND_SUFFIX)
LIBUNWIND_SOURCE := $(SRCDIR)/$(LIBUNWIND).$(LIBUNWIND_SUFFIX)
LIBUNWIND_DIR := $(BUILDDIR)/$(LIBUNWIND)
LIBUNWIND_LICENSE := MIT
+LIBUNWIND_LICENSE_FILES := \
+ file://COPYING;md5=2d80c8ed4062b8339b715f90fa68cc9f
# ----------------------------------------------------------------------------
# Prepare
@@ -36,17 +38,22 @@ LIBUNWIND_CONF_OPT := \
--includedir=/usr/include/libunwind \
--$(call ptx/disen, PTXCONF_ARCH_PPC)-coredump \
--enable-ptrace \
+ --disable-nto \
--enable-setjmp \
- --disable-documentation \
+ --enable-weak-backtrace \
+ --enable-unwind-header \
+ --disable-per-thread-cache \
--disable-tests \
--disable-debug \
--disable-cxx-exceptions \
+ --disable-documentation \
--enable-debug-frame \
--enable-block-signals \
--enable-conservative-checks \
--disable-msabi-support \
--disable-minidebuginfo \
- --disable-per-thread-cache
+ --enable-zlibdebuginfo \
+ --without-testdriver
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/liburcu.in b/rules/liburcu.in
index 739e87137..dfc14561b 100644
--- a/rules/liburcu.in
+++ b/rules/liburcu.in
@@ -5,7 +5,7 @@ menuconfig LIBURCU
prompt "liburcu "
select GLIBC_PTHREAD
help
- liburcu is a LGPLv2.1 userspace RCU (read-copy-update) library. This
+ liburcu is an LGPLv2.1 userspace RCU (read-copy-update) library. This
data synchronization library provides read-side access which scales
linearly with the number of cores. It does so by allowing multiples
copies of a given data structure to live at the same time, and by
diff --git a/rules/liburing.make b/rules/liburing.make
index 456db40ba..80440662b 100644
--- a/rules/liburing.make
+++ b/rules/liburing.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBURING) += liburing
#
# Paths and names
#
-LIBURING_VERSION := 0.7
-LIBURING_MD5 := 5a045dbf48a7a3fac228d92a9a049424
+LIBURING_VERSION := 2.3
+LIBURING_MD5 := 2e8c3c23795415475654346484f5c4b8
LIBURING := liburing-$(LIBURING_VERSION)
LIBURING_SUFFIX := tar.gz
LIBURING_URL := https://github.com/axboe/liburing/archive/$(LIBURING).$(LIBURING_SUFFIX)
diff --git a/rules/libusb-compat.in b/rules/libusb-compat.in
index 852e5ce64..14ea4fee1 100644
--- a/rules/libusb-compat.in
+++ b/rules/libusb-compat.in
@@ -5,4 +5,4 @@ config LIBUSB_COMPAT
select LIBUSB
prompt "libusb-compat"
help
- libusb-0.1 compatibility layer ontop of libusb-1
+ libusb-0.1 compatibility layer on top of libusb-1
diff --git a/rules/libusb-compat.make b/rules/libusb-compat.make
index d5aa0ceb9..0b9daddd9 100644
--- a/rules/libusb-compat.make
+++ b/rules/libusb-compat.make
@@ -27,13 +27,11 @@ LIBUSB_COMPAT_LICENSE := LGPL-2.1-only
# Prepare
# ----------------------------------------------------------------------------
-LIBUSB_COMPAT_PATH := PATH=$(CROSS_PATH)
-LIBUSB_COMPAT_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBUSB_COMPAT_AUTOCONF := $(CROSS_AUTOCONF_USR)
+LIBUSB_COMPAT_CONF_TOOL := autoconf
+LIBUSB_COMPAT_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libusb.make b/rules/libusb.make
index e382b24f1..b33657c66 100644
--- a/rules/libusb.make
+++ b/rules/libusb.make
@@ -14,23 +14,32 @@ PACKAGES-$(PTXCONF_LIBUSB) += libusb
#
# Paths and names
#
-LIBUSB_VERSION := 1.0.23
-LIBUSB_MD5 := be79ed4a4a440169deec8beaac6aae33
+LIBUSB_VERSION := 1.0.27
+LIBUSB_MD5 := 1fb61afe370e94f902a67e03eb39c51f
LIBUSB := libusb-$(LIBUSB_VERSION)
LIBUSB_SUFFIX := tar.bz2
LIBUSB_URL := $(call ptx/mirror, SF, libusb/$(LIBUSB).$(LIBUSB_SUFFIX))
LIBUSB_SOURCE := $(SRCDIR)/$(LIBUSB).$(LIBUSB_SUFFIX)
LIBUSB_DIR := $(BUILDDIR)/$(LIBUSB)
-LIBUSB_LICENSE := LGPL-2.1-only
+LIBUSB_LICENSE := LGPL-2.1-or-later
+LIBUSB_LICENSE_FILES := \
+ file://libusb/core.c;startline=2;endline=21;md5=e2bc3b2209f8457532820f1fc033ebec \
+ file://COPYING;md5=fbc093901857fcd118f065f900982c24
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
#
# autoconf
#
-LIBUSB_AUTOCONF := \
+LIBUSB_CONF_TOOL := autoconf
+LIBUSB_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--enable-shared \
--disable-static \
--disable-udev \
+ --enable-eventfd \
--enable-timerfd \
--$(call ptx/endis, PTXCONF_LIBUSB_LOG)-log \
--$(call ptx/endis, PTXCONF_LIBUSB_DEBUG_LOG)-debug-log \
diff --git a/rules/libusbgx.in b/rules/libusbgx.in
index dc751ec46..e576f842e 100644
--- a/rules/libusbgx.in
+++ b/rules/libusbgx.in
@@ -2,13 +2,20 @@
menuconfig LIBUSBGX
bool
- prompt "libusbgx"
+ select LIBCONFIG if LIBUSBGX_SCHEMES
+ prompt "libusbgx "
help
libusbgx is a C library encapsulating the kernel USB gadget-configfs
userspace API functionality.
if LIBUSBGX
+config LIBUSBGX_SCHEMES
+ bool "enable schemes support"
+ help
+ With schemes support it is possible to export/import
+ configs layout to/from declerative scheme files
+
config SHOW_GADGETS
bool "install show-gadget tool"
help
diff --git a/rules/libusbgx.make b/rules/libusbgx.make
index b05724b1d..9ff06f83b 100644
--- a/rules/libusbgx.make
+++ b/rules/libusbgx.make
@@ -23,7 +23,12 @@ LIBUSBGX_URL := \
LIBUSBGX_SOURCE := \
$(SRCDIR)/$(LIBUSBGX).$(LIBUSBGX_SUFFIX)
LIBUSBGX_DIR := $(BUILDDIR)/$(LIBUSBGX)
-LIBUSBGX_LICENSE := GPLv2
+LIBUSBGX_LICENSE := GPL-2.0-or-later AND LGPL-2.1-or-later
+LIBUSBGX_LICENSE_FILES := \
+ file://examples/gadget-export.c;startline=6;endline=14;md5=89ff91d940b4bc09b6de0300b34a888f \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://src/usbg.c;startline=10;endline=18;md5=75c08ee73fa8cdd35281fdcbe8874ff5 \
+ file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c
# ----------------------------------------------------------------------------
# Prepare
@@ -37,9 +42,10 @@ LIBUSBGX_CONF_ENV := $(CROSS_ENV)
LIBUSBGX_CONF_TOOL := autoconf
LIBUSBGX_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
- --without-libconfig \
+ --$(call ptx/wwo, PTXCONF_LIBUSBGX_SCHEMES)-libconfig \
--enable-examples \
- --disable-gadget-schemes
+ --$(call ptx/endis, PTXCONF_LIBUSBGX_SCHEMES)-gadget-schemes \
+ --disable-doxygen-doc
# ----------------------------------------------------------------------------
# Target-Install
@@ -61,7 +67,7 @@ ifdef PTXCONF_SHOW_GADGETS
endif
ifdef PTXCONF_SHOW_UDCS
- @$(call install_copy, libusbgx, 0, 0, 0755, -, /usr/bin/show-gadgets)
+ @$(call install_copy, libusbgx, 0, 0, 0755, -, /usr/bin/show-udcs)
endif
ifdef PTXCONF_GADGET_VID_PID_REMOVE
diff --git a/rules/libuuid.in b/rules/libuuid.in
index f14106044..88b175520 100644
--- a/rules/libuuid.in
+++ b/rules/libuuid.in
@@ -3,12 +3,12 @@
config LIBUUID
tristate
select VIRTUAL
- select UTIL_LINUX_NG
- select UTIL_LINUX_NG_LIBUUID
+ select UTIL_LINUX
+ select UTIL_LINUX_LIBUUID
help
Helper to select the target packet containing a recent libuuid.so
library and its header.
-
+
The following packages provide libuuid:
- - e2fsprogs (older version)
- - utils-linux-ng (more recent version)
+ - e2fsprogs (older version)
+ - utils-linux (more recent version)
diff --git a/rules/libuv.make b/rules/libuv.make
index 96f22a042..542627693 100644
--- a/rules/libuv.make
+++ b/rules/libuv.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBUV) += libuv
#
# Paths and names
#
-LIBUV_VERSION := 1.34.0
-LIBUV_MD5 := 811ebe06c326e788ac7adf062328f3f1
+LIBUV_VERSION := 1.47.0
+LIBUV_MD5 := 968592dcd4e0f962720eb669a6352463
LIBUV := libuv-v$(LIBUV_VERSION)
LIBUV_SUFFIX := tar.gz
LIBUV_URL := https://dist.libuv.org/dist/v$(LIBUV_VERSION)/$(LIBUV).$(LIBUV_SUFFIX)
diff --git a/rules/libv4l2-python.in b/rules/libv4l2-python.in
deleted file mode 100644
index 9d80939bf..000000000
--- a/rules/libv4l2-python.in
+++ /dev/null
@@ -1,11 +0,0 @@
-## SECTION=python
-
-config LIBV4L2_PYTHON
- tristate
- select V4L_UTILS
- select V4L_UTILS_LIBV4L2
- select PYTHON
- select PYTHON_IMAGING
- prompt "libv4l2-python"
- help
- libv4l2 python bindings
diff --git a/rules/libv4l2-python.make b/rules/libv4l2-python.make
deleted file mode 100644
index 24ceb3402..000000000
--- a/rules/libv4l2-python.make
+++ /dev/null
@@ -1,68 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2011 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_LIBV4L2_PYTHON) += libv4l2-python
-
-#
-# Paths and names
-#
-LIBV4L2_PYTHON_VERSION := 0.8
-LIBV4L2_PYTHON_MD5 := 89ecc981925552e78cbe4620d62c2c81
-LIBV4L2_PYTHON := pyDataMatrixScanner
-LIBV4L2_PYTHON_SUFFIX := tar.gz
-LIBV4L2_PYTHON_URL := $(call ptx/mirror, SF, pydmscanner/$(LIBV4L2_PYTHON)-$(LIBV4L2_PYTHON_VERSION).$(LIBV4L2_PYTHON_SUFFIX))
-LIBV4L2_PYTHON_SOURCE := $(SRCDIR)/$(LIBV4L2_PYTHON)-$(LIBV4L2_PYTHON_VERSION).$(LIBV4L2_PYTHON_SUFFIX)
-LIBV4L2_PYTHON_DIR := $(BUILDDIR)/$(LIBV4L2_PYTHON)
-LIBV4L2_PYTHON_LICENSE := unknown
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-LIBV4L2_PYTHON_CONF_TOOL := NO
-LIBV4L2_PYTHON_MAKE_OPT := $(CROSS_ENV_CC) CFLAGS="-O2 $(CROSS_CPPFLAGS) $(CROSS_LDFLAGS)"
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/libv4l2-python.install:
- @$(call targetinfo)
- PATH=$(CROSS_PATH) $(CROSS_PYTHON) -m compileall $(LIBV4L2_PYTHON_DIR)
- install -D -m644 $(LIBV4L2_PYTHON_DIR)/pyv4l2.pyc \
- $(LIBV4L2_PYTHON_PKGDIR)/usr/lib/python$(PYTHON_MAJORMINOR)/site-packages/pyv4l2.pyc
- install -D -m644 $(LIBV4L2_PYTHON_DIR)/libpyv4l2.so \
- $(LIBV4L2_PYTHON_PKGDIR)/usr/lib/libpyv4l2.so
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/libv4l2-python.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, libv4l2-python)
- @$(call install_fixup, libv4l2-python,PRIORITY,optional)
- @$(call install_fixup, libv4l2-python,SECTION,base)
- @$(call install_fixup, libv4l2-python,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
- @$(call install_fixup, libv4l2-python,DESCRIPTION,missing)
-
- @$(call install_copy, libv4l2-python, 0, 0, 0644, -, \
- /usr/lib/python$(PYTHON_MAJORMINOR)/site-packages/pyv4l2.pyc)
- @$(call install_copy, libv4l2-python, 0, 0, 0644, -, \
- /usr/lib/libpyv4l2.so)
-
- @$(call install_finish, libv4l2-python)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/libva-utils.make b/rules/libva-utils.make
index cd3666895..eb97c02a1 100644
--- a/rules/libva-utils.make
+++ b/rules/libva-utils.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBVA_UTILS) += libva-utils
#
# Paths and names
#
-LIBVA_UTILS_VERSION := 2.7.1
-LIBVA_UTILS_MD5 := 528080ef0c01d992a4a8170e07cdba9d
+LIBVA_UTILS_VERSION := 2.12.0
+LIBVA_UTILS_MD5 := 6c145396b31503bf224a7953ae2cfaaf
LIBVA_UTILS := libva-utils-$(LIBVA_UTILS_VERSION)
LIBVA_UTILS_SUFFIX := tar.bz2
LIBVA_UTILS_URL := https://github.com/intel/libva-utils/releases/download/$(LIBVA_UTILS_VERSION)/$(LIBVA_UTILS).$(LIBVA_UTILS_SUFFIX)
diff --git a/rules/libva.in b/rules/libva.in
index 8dd222903..b0ba96e5c 100644
--- a/rules/libva.in
+++ b/rules/libva.in
@@ -4,12 +4,9 @@ menuconfig LIBVA
tristate
select HOST_MESON
select LIBDRM
- select XORG_LIB_X11 if LIBVA_X11 || LIBVA_GLX
+ select XORG_LIB_X11 if LIBVA_X11
select XORG_LIB_XEXT if LIBVA_X11
select XORG_LIB_XFIXES if LIBVA_X11
- select MESALIB if LIBVA_GLX
- select MESALIB_GLX if LIBVA_GLX
- select MESALIB_OPENGL if LIBVA_GLX
select WAYLAND if LIBVA_WAYLAND
prompt "libva "
help
@@ -21,11 +18,6 @@ config LIBVA_X11
bool
prompt "X11 API support"
-config LIBVA_GLX
- bool
- select LIBVA_X11
- prompt "GLX API support"
-
config LIBVA_WAYLAND
bool
prompt "Wayland API support"
diff --git a/rules/libva.make b/rules/libva.make
index ea7d82a8e..fddc77349 100644
--- a/rules/libva.make
+++ b/rules/libva.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_LIBVA) += libva
#
# Paths and names
#
-LIBVA_VERSION := 2.10.0
-LIBVA_MD5 := ad5d5cf8d86b5521944995bdf8a133cd
+LIBVA_VERSION := 2.18.0
+LIBVA_MD5 := b597a43395daebf65f23872b67bcd794
LIBVA := libva-$(LIBVA_VERSION)
LIBVA_SUFFIX := tar.bz2
LIBVA_URL := https://github.com/intel/libva/releases/download/$(LIBVA_VERSION)/$(LIBVA).$(LIBVA_SUFFIX)
LIBVA_SOURCE := $(SRCDIR)/$(LIBVA).$(LIBVA_SUFFIX)
LIBVA_DIR := $(BUILDDIR)/$(LIBVA)
LIBVA_LICENSE := MIT
+LIBVA_LICENSE_FILES := \
+ file://COPYING;md5=2e48940f94acb0af582e5ef03537800f
# ----------------------------------------------------------------------------
# Prepare
@@ -29,7 +31,6 @@ LIBVA_LICENSE := MIT
LIBVA_ENABLE-y := drm
LIBVA_ENABLE-$(PTXCONF_LIBVA_X11) += x11
-LIBVA_ENABLE-$(PTXCONF_LIBVA_GLX) += glx
LIBVA_ENABLE-$(PTXCONF_LIBVA_WAYLAND) += wayland
LIBVA_CONF_TOOL := meson
@@ -38,8 +39,7 @@ LIBVA_CONF_OPT := \
-Ddisable_drm=false \
-Ddriverdir='' \
-Denable_docs=false \
- -Denable_va_messaging=true \
- -Dwith_glx=$(call ptx/yesno, PTXCONF_LIBVA_GLX) \
+ -Dwith_glx=no \
-Dwith_wayland=$(call ptx/yesno, PTXCONF_LIBVA_WAYLAND) \
-Dwith_x11=$(call ptx/yesno, PTXCONF_LIBVA_X11)
@@ -59,7 +59,7 @@ $(STATEDIR)/libva.targetinstall:
@$(call install_lib, libva, 0, 0, 0644, libva)
@$(foreach api, $(LIBVA_ENABLE-y), \
- $(call install_lib, libva, 0, 0, 0644, libva-$(api));)
+ $(call install_lib, libva, 0, 0, 0644, libva-$(api))$(ptx/nl))
@$(call install_finish, libva)
diff --git a/rules/libvorbis.make b/rules/libvorbis.make
index 9b5342ac3..e70580d03 100644
--- a/rules/libvorbis.make
+++ b/rules/libvorbis.make
@@ -14,26 +14,26 @@ PACKAGES-$(PTXCONF_LIBVORBIS) += libvorbis
#
# Paths and names
#
-LIBVORBIS_VERSION := 1.3.3
-LIBVORBIS_MD5 := 6b1a36f0d72332fae5130688e65efe1f
+LIBVORBIS_VERSION := 1.3.7
+LIBVORBIS_MD5 := 9b8034da6edc1a17d18b9bc4542015c7
LIBVORBIS := libvorbis-$(LIBVORBIS_VERSION)
LIBVORBIS_SUFFIX := tar.gz
LIBVORBIS_URL := http://downloads.xiph.org/releases/vorbis/$(LIBVORBIS).$(LIBVORBIS_SUFFIX)
LIBVORBIS_SOURCE := $(SRCDIR)/$(LIBVORBIS).$(LIBVORBIS_SUFFIX)
LIBVORBIS_DIR := $(BUILDDIR)/$(LIBVORBIS)
LIBVORBIS_LICENSE := BSD-3-Clause
+LIBVORBIS_LICENSE_FILES := \
+ file://COPYING;md5=73d9c8942c60b846c3bad13cc6c2e520
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-LIBVORBIS_PATH := PATH=$(CROSS_PATH)
-LIBVORBIS_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBVORBIS_AUTOCONF := \
+LIBVORBIS_CONF_TOOL := autoconf
+LIBVORBIS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-docs \
--disable-examples \
diff --git a/rules/libwacom.in b/rules/libwacom.in
index ad0d800b5..6756d026f 100644
--- a/rules/libwacom.in
+++ b/rules/libwacom.in
@@ -3,6 +3,7 @@
config LIBWACOM
tristate
select HOST_MESON
+ select LIBEVDEV
select UDEV
select UDEV_LIBUDEV
select LIBGUDEV
diff --git a/rules/libwacom.make b/rules/libwacom.make
index b080ab3b7..e788cb966 100644
--- a/rules/libwacom.make
+++ b/rules/libwacom.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBWACOM) += libwacom
#
# Paths and names
#
-LIBWACOM_VERSION := 1.9
-LIBWACOM_MD5 := 79361dc08df3ee23a9366c3c0ddf3637
+LIBWACOM_VERSION := 2.9.0
+LIBWACOM_MD5 := 2824d1d0b3f8e4a5bc47acb5fca28d11
LIBWACOM := libwacom-$(LIBWACOM_VERSION)
LIBWACOM_SUFFIX := tar.gz
LIBWACOM_URL := https://github.com/linuxwacom/libwacom/archive/$(LIBWACOM).$(LIBWACOM_SUFFIX)
diff --git a/rules/libwebp.in b/rules/libwebp.in
index 88da36998..0d0dc5a44 100644
--- a/rules/libwebp.in
+++ b/rules/libwebp.in
@@ -22,10 +22,12 @@ config LIBWEBP_DEMUX
config LIBWEBP_CWEBP
bool
+ select LIBWEBP_DEMUX
prompt "install cwebp tool"
config LIBWEBP_DWEBP
bool
+ select LIBWEBP_DEMUX
prompt "install dwebp tool"
endif
diff --git a/rules/libwebp.make b/rules/libwebp.make
index 4c9a69c7f..33a3f557c 100644
--- a/rules/libwebp.make
+++ b/rules/libwebp.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBWEBP) += libwebp
#
# Paths and names
#
-LIBWEBP_VERSION := 1.0.2
-LIBWEBP_MD5 := 02c0c55f1dd8612cd4d462e3409ad35d
+LIBWEBP_VERSION := 1.3.2
+LIBWEBP_MD5 := 34869086761c0e2da6361035f7b64771
LIBWEBP := libwebp-$(LIBWEBP_VERSION)
LIBWEBP_SUFFIX := tar.gz
LIBWEBP_URL := http://downloads.webmproject.org/releases/webp/$(LIBWEBP).$(LIBWEBP_SUFFIX)
@@ -34,6 +34,11 @@ LIBWEBP_LICENSE_FILES := file://COPYING;md5=6e8dee932c26f2dab503abf70c96d8bb
LIBWEBP_CONF_TOOL := autoconf
LIBWEBP_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
+ --disable-everything \
+ --$(call ptx/endis, PTXCONF_LIBWEBP_MUX)-libwebpmux \
+ --$(call ptx/endis, PTXCONF_LIBWEBP_DEMUX)-libwebpdemux \
+ --$(call ptx/endis, PTXCONF_LIBWEBP_DECODER)-libwebpdecoder \
+ --disable-libwebpextras \
--disable-asserts \
--$(call ptx/endis, PTXCONF_ARCH_X86)-sse4.1 \
--$(call ptx/endis, PTXCONF_ARCH_X86)-sse2 \
@@ -48,11 +53,7 @@ LIBWEBP_CONF_OPT := \
--disable-gif \
--disable-wic \
--enable-swap-16bit-csp \
- --enable-near-lossless \
- --$(call ptx/endis, PTXCONF_LIBWEBP_MUX)-libwebpmux \
- --$(call ptx/endis, PTXCONF_LIBWEBP_DEMUX)-libwebpdemux \
- --$(call ptx/endis, PTXCONF_LIBWEBP_DECODER)-libwebpdecoder \
- --disable-libwebpextras
+ --enable-near-lossless
# ----------------------------------------------------------------------------
# Target-Install
@@ -71,6 +72,7 @@ $(STATEDIR)/libwebp.targetinstall:
@$(call install_fixup, libwebp,AUTHOR,"Steffen Trumtrar <s.trumtrar@pengutronix.de>")
@$(call install_fixup, libwebp,DESCRIPTION,missing)
+ @$(call install_lib, libwebp, 0, 0, 0644, libsharpyuv)
@$(call install_lib, libwebp, 0, 0, 0644, libwebp)
ifdef PTXCONF_LIBWEBP_DEMUX
@$(call install_lib, libwebp, 0, 0, 0644, libwebpdemux)
@@ -89,3 +91,5 @@ endif
@$(call install_finish, libwebp)
@$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libwebsockets.in b/rules/libwebsockets.in
deleted file mode 100644
index c8a8c43ef..000000000
--- a/rules/libwebsockets.in
+++ /dev/null
@@ -1,24 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=networking
-
-menuconfig LIBWEBSOCKETS
- tristate
- select HOST_CMAKE
- select ZLIB
- prompt "libwebsockets "
- help
- Libwebsockets is a lightweight pure C library for both websockets
- clients and servers built to use minimal CPU and memory resources
- and provide fast throughput in both directions.
-
- STAGING: remove in ptxdist-2021.05.0
- Old version that need to be updated. Fails to build with gcc >= 9.x.
-
-if LIBWEBSOCKETS
-
-config LIBWEBSOCKETS_TESTS
- bool
- prompt "install test applications"
-
-endif
diff --git a/rules/libwebsockets.make b/rules/libwebsockets.make
deleted file mode 100644
index ffec3d4b8..000000000
--- a/rules/libwebsockets.make
+++ /dev/null
@@ -1,85 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2014 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_LIBWEBSOCKETS) += libwebsockets
-
-#
-# Paths and names
-#
-LIBWEBSOCKETS_VERSION := v1.7.9
-LIBWEBSOCKETS_MD5 := 7b3692ead5ae00fd0e1d56c080170f07
-LIBWEBSOCKETS := libwebsockets-$(LIBWEBSOCKETS_VERSION)
-LIBWEBSOCKETS_SUFFIX := tar.gz
-LIBWEBSOCKETS_URL := https://github.com/warmcat/libwebsockets/archive/$(LIBWEBSOCKETS_VERSION).$(LIBWEBSOCKETS_SUFFIX)
-LIBWEBSOCKETS_SOURCE := $(SRCDIR)/$(LIBWEBSOCKETS).$(LIBWEBSOCKETS_SUFFIX)
-LIBWEBSOCKETS_DIR := $(BUILDDIR)/$(LIBWEBSOCKETS)
-LIBWEBSOCKETS_LICENSE := LGPL-2.1-only
-
-# ----------------------------------------------------------------------------
-# Get
-# ----------------------------------------------------------------------------
-
-LIBWEBSOCKETS_CONF_TOOL := cmake
-LIBWEBSOCKETS_CONF_OPT := \
- $(CROSS_CMAKE_USR) \
- -DLWS_WITH_SSL=OFF \
- -DLWS_SSL_CLIENT_USE_OS_CA_CERTS=ON \
- -DLWS_USE_EXTERNAL_ZLIB=ON \
- -DLWS_USE_CYASSL=OFF \
- -DLWS_WITHOUT_BUILTIN_GETIFADDRS=OFF \
- -DLWS_WITHOUT_CLIENT=OFF \
- -DLWS_WITHOUT_SERVER=OFF \
- -DLWS_LINK_TESTAPPS_DYNAMIC=ON \
- -DLWS_WITHOUT_TESTAPPS=$(call ptx/ifdef, PTXCONF_LIBWEBSOCKETS_TESTS,OFF,ON) \
- -DLWS_WITHOUT_TEST_SERVER=$(call ptx/ifdef, PTXCONF_LIBWEBSOCKETS_TESTS,OFF,ON) \
- -DLWS_WITHOUT_TEST_SERVER_EXTPOLL=$(call ptx/ifdef, PTXCONF_LIBWEBSOCKETS_TESTS,OFF,ON) \
- -DLWS_WITHOUT_TEST_PING=$(call ptx/ifdef, PTXCONF_LIBWEBSOCKETS_TESTS,OFF,ON) \
- -DLWS_WITHOUT_TEST_CLIENT=$(call ptx/ifdef, PTXCONF_LIBWEBSOCKETS_TESTS,OFF,ON) \
- -DLWS_WITHOUT_TEST_FRAGGLE=$(call ptx/ifdef, PTXCONF_LIBWEBSOCKETS_TESTS,OFF,ON) \
- -DLWS_WITHOUT_DEBUG=ON \
- -DLWS_WITHOUT_EXTENSIONS=OFF \
- -DLWS_WITH_LATENCY=OFF \
- -DLWS_WITHOUT_DAEMONIZE=OFF \
- -DLWS_WITH_LIBEV=OFF \
- -DLWS_IPV6=$(call ptx/onoff, PTXCONF_GLOBAL_IPV6) \
- -DLWS_WITH_HTTP2=OFF
-
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/libwebsockets.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, libwebsockets)
- @$(call install_fixup, libwebsockets,PRIORITY,optional)
- @$(call install_fixup, libwebsockets,SECTION,base)
- @$(call install_fixup, libwebsockets,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
- @$(call install_fixup, libwebsockets,DESCRIPTION,missing)
-
- @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets)
-ifdef PTXCONF_LIBWEBSOCKETS_TESTS
- @$(call install_copy, libwebsockets, 0, 0, 0755, -, /usr/bin/libwebsockets-test-client)
- @$(call install_copy, libwebsockets, 0, 0, 0755, -, /usr/bin/libwebsockets-test-echo)
- @$(call install_copy, libwebsockets, 0, 0, 0755, -, /usr/bin/libwebsockets-test-fraggle)
- @$(call install_copy, libwebsockets, 0, 0, 0755, -, /usr/bin/libwebsockets-test-ping)
- @$(call install_copy, libwebsockets, 0, 0, 0755, -, /usr/bin/libwebsockets-test-server)
- @$(call install_copy, libwebsockets, 0, 0, 0755, -, /usr/bin/libwebsockets-test-server-extpoll)
- @$(call install_tree, libwebsockets, 0, 0, -, /usr/share/libwebsockets-test-server)
-endif
-
- @$(call install_finish, libwebsockets)
-
- @$(call touch)
-
-
-# vim: syntax=make
diff --git a/rules/libwpe.in b/rules/libwpe.in
index 6b566d06a..53c317b67 100644
--- a/rules/libwpe.in
+++ b/rules/libwpe.in
@@ -3,8 +3,7 @@
config LIBWPE
tristate
prompt "libwpe"
- select HOST_CMAKE
- select HOST_NINJA
+ select HOST_MESON
select MESALIB
select MESALIB_EGL
select LIBXKBCOMMON
diff --git a/rules/libwpe.make b/rules/libwpe.make
index 5c6fb9054..edc921cfe 100644
--- a/rules/libwpe.make
+++ b/rules/libwpe.make
@@ -14,9 +14,9 @@ PACKAGES-$(PTXCONF_LIBWPE) += libwpe
#
# Paths and names
#
-LIBWPE_VERSION := 1.8.0
+LIBWPE_VERSION := 1.14.2
LIBWPE_LIBRARY_VERSION := 1.0
-LIBWPE_MD5 := 328ea59dd8dee9107a49353536d00844
+LIBWPE_MD5 := 61840e24ba0a0f5828194dff28db92ee
LIBWPE := libwpe-$(LIBWPE_VERSION)
LIBWPE_SUFFIX := tar.xz
LIBWPE_URL := https://wpewebkit.org/releases/$(LIBWPE).$(LIBWPE_SUFFIX)
@@ -32,12 +32,12 @@ LIBWPE_LICENSE_FILES := file://COPYING;md5=371a616eb4903c6cb79e9893a5f615cc
#
# cmake
#
-LIBWPE_CONF_TOOL := cmake
+LIBWPE_CONF_TOOL := meson
LIBWPE_CONF_OPT := \
- $(CROSS_CMAKE_USR) \
- -G Ninja \
- -DBUILD_DOCS=OFF \
- -DWPE_BACKEND= \
+ $(CROSS_MESON_USR) \
+ -Dbuild-docs=false \
+ -Ddefault-backend= \
+ -Denable-xkb=true
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libx86.in b/rules/libx86.in
deleted file mode 100644
index 128df6a8a..000000000
--- a/rules/libx86.in
+++ /dev/null
@@ -1,12 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=system_libraries
-
-config LIBX86
- tristate
- prompt "libx86"
- help
- A hardware-independent library for executing real-mode x86 code.
-
- STAGING: remove in PTXdist 2022.03.0
- Old and unused library. Upstream is gone.
diff --git a/rules/libx86.make b/rules/libx86.make
deleted file mode 100644
index d55e8e11c..000000000
--- a/rules/libx86.make
+++ /dev/null
@@ -1,58 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2008 by mol@pengutronix.de
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-ifndef PTXCONF_ARCH_X86_64
-PACKAGES-$(PTXCONF_ARCH_X86)-$(PTXCONF_LIBX86) += libx86
-endif
-
-#
-# Paths and names
-#
-LIBX86_VERSION := 1.1
-LIBX86_MD5 := 41bee1f8e22b82d82b5f7d7ba51abc2a
-LIBX86 := libx86-$(LIBX86_VERSION)
-LIBX86_SUFFIX := tar.gz
-LIBX86_URL := http://www.codon.org.uk/~mjg59/libx86/downloads/$(LIBX86).$(LIBX86_SUFFIX)
-LIBX86_SOURCE := $(SRCDIR)/$(LIBX86).$(LIBX86_SUFFIX)
-LIBX86_DIR := $(BUILDDIR)/$(LIBX86)
-
-# ----------------------------------------------------------------------------
-# Compile
-# ----------------------------------------------------------------------------
-
-LIBX86_PATH := PATH=$(CROSS_PATH)
-LIBX86_MAKE_ENV := $(CROSS_ENV)
-
-# use emulator on non x86 architectures
-ifndef PTXCONF_ARCH_X86
-LIBX86_MAKE_ENV += BACKEND=x86emu
-endif
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/libx86.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, libx86)
- @$(call install_fixup, libx86,PRIORITY,optional)
- @$(call install_fixup, libx86,SECTION,base)
- @$(call install_fixup, libx86,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, libx86,DESCRIPTION,missing)
-
- @$(call install_lib, libx86, 0, 0, 0644, libx86)
-
- @$(call install_finish, libx86)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/libxcb.in b/rules/libxcb.in
index 8e7170db3..ce7a8d3f0 100644
--- a/rules/libxcb.in
+++ b/rules/libxcb.in
@@ -6,7 +6,6 @@ config LIBXCB
select XCB_PROTO
select LIBPTHREAD_STUBS
select XORG_LIB_XAU
- select XORG_LIB_XDMCP if XORG_SERVER_EXT_XDMCP
select HOST_LIBXSLT
help
The X protocol C-language Binding (XCB) is a replacement for Xlib
diff --git a/rules/libxcb.make b/rules/libxcb.make
index e2154cd79..550db7979 100644
--- a/rules/libxcb.make
+++ b/rules/libxcb.make
@@ -14,24 +14,24 @@ PACKAGES-$(PTXCONF_LIBXCB) += libxcb
#
# Paths and names
#
-LIBXCB_VERSION := 1.13.1
-LIBXCB_MD5 := f33cdfc67346f7217a9326c0d8679975
+LIBXCB_VERSION := 1.16
+LIBXCB_MD5 := c769f93c254263077df62404661b710d
LIBXCB := libxcb-$(LIBXCB_VERSION)
-LIBXCB_SUFFIX := tar.bz2
+LIBXCB_SUFFIX := tar.xz
LIBXCB_URL := http://xcb.freedesktop.org/dist/$(LIBXCB).$(LIBXCB_SUFFIX)
LIBXCB_SOURCE := $(SRCDIR)/$(LIBXCB).$(LIBXCB_SUFFIX)
LIBXCB_DIR := $(BUILDDIR)/$(LIBXCB)
LIBXCB_LICENSE := MIT
+LIBXCB_LICENSE_FILES := \
+ file://COPYING;md5=d763b081cb10c223435b01e00dc0aba7
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-LIBXCB_CONF_ENV := $(CROSS_ENV) ac_cv_prog_BUILD_DOCS=no
-
-ifndef PTXCONF_XORG_SERVER_EXT_XDMCP
-LIBXCB_CONF_ENV += ac_cv_lib_Xdmcp_XdmcpWrap=no
-endif
+LIBXCB_CONF_ENV := \
+ $(CROSS_ENV) \
+ ac_cv_prog_BUILD_DOCS=no
#
# autoconf
@@ -45,6 +45,7 @@ LIBXCB_CONF_OPT := \
--disable-devel-docs \
--enable-composite \
--enable-damage \
+ --enable-dbe \
--enable-dpms \
--enable-dri2 \
--enable-dri3 \
@@ -71,7 +72,7 @@ LIBXCB_CONF_OPT := \
--enable-xv \
--enable-xvmc \
--without-doxygen \
- --without-launchd
+ --without-serverside-support
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libxcrypt.in b/rules/libxcrypt.in
new file mode 100644
index 000000000..01f9dd4b1
--- /dev/null
+++ b/rules/libxcrypt.in
@@ -0,0 +1,42 @@
+## SECTION=system_libraries
+
+menuconfig LIBXCRYPT
+ bool
+ prompt "libxcrypt "
+ help
+ Extended crypt library for descrypt, md5crypt, bcrypt, and others.
+
+ libxcrypt is a modern library for one-way hashing of passwords.
+ It supports a wide variety of both modern and historical hashing
+ methods: yescrypt, gost-yescrypt, scrypt, bcrypt, sha512crypt,
+ sha256crypt, md5crypt, SunMD5, sha1crypt, NT, bsdicrypt, bigcrypt,
+ and descrypt. It provides the traditional Unix crypt and crypt_r
+ interfaces, as well as a set of extended interfaces pioneered by
+ Openwall Linux, crypt_rn, crypt_ra, crypt_gensalt,
+ crypt_gensalt_rn, and crypt_gensalt_ra.
+
+ libxcrypt is intended to be used by login(1), passwd(1), and other
+ similar programs; that is, to hash a small number of passwords
+ during an interactive authentication dialogue with a human. It is
+ not suitable for use in bulk password-cracking applications, or in
+ any other situation where speed is more important than careful
+ handling of sensitive data. However, it is intended to be fast and
+ lightweight enough for use in servers that must field thousands of
+ login attempts per minute.
+
+if LIBXCRYPT
+
+config LIBXCRYPT_OBSOLETE_STUBS
+ bool
+ prompt "Replace obsolete functions with non-functional stubs"
+ help
+ If enabled, this option replaces the obsolete APIs (fcrypt,
+ encrypt{,_r}, and setkey{,_r}) with stubs that set errno to
+ ENOSYS and return without performing any real operations.
+
+ For security reasons, the encrypt{,r} functions will also
+ overwrite their data-block argument with random bits.
+
+ The fcrypt function will also always return NULL-pointer.
+
+endif
diff --git a/rules/libxcrypt.make b/rules/libxcrypt.make
new file mode 100644
index 000000000..e048968d0
--- /dev/null
+++ b/rules/libxcrypt.make
@@ -0,0 +1,71 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2019 by Bjoern Esser <bes@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBXCRYPT) += libxcrypt
+
+#
+# Paths and names
+#
+LIBXCRYPT_VERSION := 4.4.36
+LIBXCRYPT_MD5 := b84cd4104e08c975063ec6c4d0372446
+LIBXCRYPT := libxcrypt-$(LIBXCRYPT_VERSION)
+LIBXCRYPT_SUFFIX := tar.xz
+LIBXCRYPT_URL := https://github.com/besser82/libxcrypt/releases/download/v$(LIBXCRYPT_VERSION)/$(LIBXCRYPT).$(LIBXCRYPT_SUFFIX)
+LIBXCRYPT_SOURCE := $(SRCDIR)/$(LIBXCRYPT).$(LIBXCRYPT_SUFFIX)
+LIBXCRYPT_DIR := $(BUILDDIR)/$(LIBXCRYPT)
+LIBXCRYPT_LICENSE := LGPL-2.1-or-later AND BSD-3-Clause AND BSD-2-Clause AND 0BSD AND public_domain
+LIBXCRYPT_LICENSE_MD5 := file://LICENSING;md5=3bb6614cf5880cbf1b9dbd9e3d145e2c
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# options
+#
+
+# Hash methods enabled by default.
+HASH_METHODS := glibc,strong
+
+#
+# autoconf
+#
+LIBXCRYPT_CONF_TOOL := autoconf
+LIBXCRYPT_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --disable-failure-tokens \
+ --disable-static \
+ --disable-valgrind \
+ --enable-obsolete-api \
+ --enable-obsolete-api-enosys=$(call ptx/ifdef,PTXCONF_LIBXCRYPT_OBSOLETE_STUBS,yes,no) \
+ --enable-hashes=$(HASH_METHODS) \
+ --enable-xcrypt-compat-files
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libxcrypt.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libxcrypt)
+ @$(call install_fixup, libxcrypt,PRIORITY,optional)
+ @$(call install_fixup, libxcrypt,SECTION,base)
+ @$(call install_fixup, libxcrypt,AUTHOR,"Bjoern Esser <bes@pengutronix.de>")
+ @$(call install_fixup, libxcrypt,DESCRIPTION,Extended crypt library)
+
+ @$(call install_lib, libxcrypt, 0, 0, 0644, libcrypt)
+
+ @$(call install_finish, libxcrypt)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libxcvt.in b/rules/libxcvt.in
new file mode 100644
index 000000000..ee8086a5b
--- /dev/null
+++ b/rules/libxcvt.in
@@ -0,0 +1,19 @@
+## SECTION=multimedia_xorg_lib
+
+menuconfig LIBXCVT
+ tristate
+ select HOST_MESON
+ prompt "libxcvt "
+ help
+ libxcvt is a library providing a standalone version of the X server
+ implementation of the VESA CVT standard timing modelines generator.
+
+if LIBXCVT
+
+config LIBXCVT_TOOL
+ bool
+ prompt "install cvt cmdline tool"
+ help
+ Install cvt commandline tool to generate CVT timings.
+
+endif
diff --git a/rules/libxcvt.make b/rules/libxcvt.make
new file mode 100644
index 000000000..66ba622d0
--- /dev/null
+++ b/rules/libxcvt.make
@@ -0,0 +1,59 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Lucas Stach <l.stach@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBXCVT) += libxcvt
+
+#
+# Paths and names
+#
+LIBXCVT_VERSION := 0.1.2
+LIBXCVT_MD5 := b553fdb6024c5a137ff925bf4c337724
+LIBXCVT := libxcvt-$(LIBXCVT_VERSION)
+LIBXCVT_SUFFIX := tar.xz
+LIBXCVT_URL := https://www.x.org/pub/individual/lib/$(LIBXCVT).$(LIBXCVT_SUFFIX)
+LIBXCVT_SOURCE := $(SRCDIR)/$(LIBXCVT).$(LIBXCVT_SUFFIX)
+LIBXCVT_DIR := $(BUILDDIR)/$(LIBXCVT)
+LIBXCVT_LICENSE := MIT
+LIBXCVT_LICENSE_FILES := \
+ file://COPYING;md5=129947a06984d6faa6f9a9788fa2a03f
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+#
+# meson
+#
+LIBXCVT_CONF_TOOL := meson
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libxcvt.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libxcvt)
+ @$(call install_fixup, libxcvt,PRIORITY,optional)
+ @$(call install_fixup, libxcvt,SECTION,base)
+ @$(call install_fixup, libxcvt,AUTHOR,"Lucas Stach <l.stach@pengutronix.de>")
+ @$(call install_fixup, libxcvt,DESCRIPTION,missing)
+
+ @$(call install_lib, libxcvt, 0, 0, 0644, libxcvt)
+
+ifdef PTXCONF_LIBXCVT_TOOL
+ @$(call install_copy, libxcvt, 0, 0, 0755, -, /usr/bin/cvt)
+endif
+
+ @$(call install_finish, libxcvt)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/libxkbcommon.make b/rules/libxkbcommon.make
index f3540ea9b..ca54115a6 100644
--- a/rules/libxkbcommon.make
+++ b/rules/libxkbcommon.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBXKBCOMMON) += libxkbcommon
#
# Paths and names
#
-LIBXKBCOMMON_VERSION := 1.2.1
-LIBXKBCOMMON_MD5 := 36b2803f3beedd0aeeb265072e9c3e5d
+LIBXKBCOMMON_VERSION := 1.7.0
+LIBXKBCOMMON_MD5 := b05b1a0d473189efb2dd995dd944f152
LIBXKBCOMMON := libxkbcommon-$(LIBXKBCOMMON_VERSION)
LIBXKBCOMMON_SUFFIX := tar.xz
LIBXKBCOMMON_URL := http://xkbcommon.org/download/$(LIBXKBCOMMON).$(LIBXKBCOMMON_SUFFIX)
@@ -40,6 +40,7 @@ LIBXKBCOMMON_CONF_OPT := \
-Ddefault-rules='evdev' \
-Ddefault-variant='' \
-Denable-docs=false \
+ -Denable-tools=false \
-Denable-wayland=false \
-Denable-x11=$(call ptx/truefalse, PTXCONF_LIBXKBCOMMON_X11) \
-Denable-xkbregistry=false \
@@ -47,7 +48,6 @@ LIBXKBCOMMON_CONF_OPT := \
-Dxkb-config-extra-path=/etc/xkb \
-Dxkb-config-root=$(XORG_DATADIR)/X11/xkb \
-
# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
diff --git a/rules/libxml2.in b/rules/libxml2.in
index 9435c9008..54fdde42a 100644
--- a/rules/libxml2.in
+++ b/rules/libxml2.in
@@ -7,9 +7,8 @@ menuconfig LIBXML2
select LIBC_DL if LIBXML2_MODULES
select ZLIB if LIBXML2_ZLIB
select XZ if LIBXML2_LZMA
- select PYTHON if LIBXML2_PYTHON
help
- Libxml2 is a XML C parser and toolkit. XML itself is a
+ Libxml2 is an XML C parser and toolkit. XML itself is a
metalanguage to design markup languages, i.e. text
language where semantic and structure are added to the
content using extra "markup" information enclosed
@@ -51,13 +50,6 @@ config LIBXML2_DEBUG
help
Enable debugging support.
-config LIBXML2_DOCBOOK
- bool
- default y
- prompt "Docbook support"
- help
- Enable Docbook SGML support
-
config LIBXML2_FEXCEPTIONS
bool
prompt "C++ Exception Support"
@@ -138,14 +130,6 @@ config LIBXML2_PUSH
help
Add the PUSH parser interface.
-config LIBXML2_PYTHON
- bool
- prompt "Python bindings"
- depends on BROKEN
- depends on STAGING
- help
- Build Python bindings if found.
-
config LIBXML2_READER
bool
default y
@@ -275,7 +259,6 @@ config LIBXML2_LZMA
config LIBXML2_XMLLINT
bool
- default n
prompt "install xmllint"
help
Install xmllint tool
diff --git a/rules/libxml2.make b/rules/libxml2.make
index 9eb1993b0..5237f4b49 100644
--- a/rules/libxml2.make
+++ b/rules/libxml2.make
@@ -16,10 +16,10 @@ PACKAGES-$(PTXCONF_LIBXML2) += libxml2
#
# Paths and names
#
-LIBXML2_VERSION := 2.9.12
-LIBXML2_MD5 := f433a39be087a9f0b197eb2307ad9f75
+LIBXML2_VERSION := 2.11.7
+LIBXML2_MD5 := e22f0dfcbd3e37b8fb09dcd1b3e5e9ce
LIBXML2 := libxml2-$(LIBXML2_VERSION)
-LIBXML2_SUFFIX := tar.gz
+LIBXML2_SUFFIX := tar.xz
LIBXML2_SOURCE := $(SRCDIR)/$(LIBXML2).$(LIBXML2_SUFFIX)
LIBXML2_DIR := $(BUILDDIR)/$(LIBXML2)
LIBXML2_LICENSE := MIT AND ISC
@@ -29,20 +29,17 @@ LIBXML2_LICENSE_FILES := \
file://hash.c;startline=6;endline=15;md5=e77f77b12cb69e203d8b4090a0eee879
LIBXML2_URL := \
- ftp://xmlsoft.org/libxml2/$(LIBXML2).$(LIBXML2_SUFFIX) \
- ftp://xmlsoft.org/libxml2/old/$(LIBXML2).$(LIBXML2_SUFFIX)
+ https://download.gnome.org/sources/libxml2/$(basename $(LIBXML2_VERSION))/$(LIBXML2).$(LIBXML2_SUFFIX)
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-LIBXML2_PATH := PATH=$(CROSS_PATH)
-LIBXML2_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBXML2_AUTOCONF := \
+LIBXML2_CONF_TOOL := autoconf
+LIBXML2_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-static \
$(GLOBAL_IPV6_OPTION) \
@@ -50,7 +47,6 @@ LIBXML2_AUTOCONF := \
--$(call ptx/wwo, PTXCONF_LIBXML2_C14N)-c14n \
--$(call ptx/wwo, PTXCONF_LIBXML2_CATALOG)-catalog \
--$(call ptx/wwo, PTXCONF_LIBXML2_DEBUG)-debug \
- --$(call ptx/wwo, PTXCONF_LIBXML2_DOCBOOK)-docbook \
--$(call ptx/wwo, PTXCONF_LIBXML2_FEXCEPTIONS)-fexceptions \
--$(call ptx/wwo, PTXCONF_LIBXML2_FTP)-ftp \
--$(call ptx/wwo, PTXCONF_LIBXML2_HISTORY)-history \
@@ -64,6 +60,7 @@ LIBXML2_AUTOCONF := \
--$(call ptx/wwo, PTXCONF_LIBXML2_OUTPUT)-output \
--$(call ptx/wwo, PTXCONF_LIBXML2_PATTERN)-pattern \
--$(call ptx/wwo, PTXCONF_LIBXML2_PUSH)-push \
+ --without-python \
--$(call ptx/wwo, PTXCONF_LIBXML2_READER)-reader \
--$(call ptx/wwo, PTXCONF_LIBXML2_REGEXPS)-regexps \
--$(call ptx/wwo, PTXCONF_LIBXML2_RUN_DEBUG)-run-debug \
@@ -84,21 +81,15 @@ LIBXML2_AUTOCONF := \
ifdef PTXCONF_ICONV
# --with-iconv=yes -> does the right thing for libc-iconv
-LIBXML2_AUTOCONF += --with-iconv=yes
-else
-LIBXML2_AUTOCONF += --with-iconv=no
-endif
-
-ifdef PTXCONF_LIBXML2_PYTHON
-LIBXML2_AUTOCONF += --with-python=$(SYSROOT)/usr
+LIBXML2_CONF_OPT += --with-iconv=yes
else
-LIBXML2_AUTOCONF += --with-python=no
+LIBXML2_CONF_OPT += --with-iconv=no
endif
ifdef PTXCONF_LIBXML2_ZLIB
-LIBXML2_AUTOCONF += --with-zlib=$(SYSROOT)/usr
+LIBXML2_CONF_OPT += --with-zlib=$(SYSROOT)/usr
else
-LIBXML2_AUTOCONF += --without-zlib
+LIBXML2_CONF_OPT += --without-zlib
endif
# ----------------------------------------------------------------------------
diff --git a/rules/libxmlconfig.make b/rules/libxmlconfig.make
index 136c61c71..53315abb4 100644
--- a/rules/libxmlconfig.make
+++ b/rules/libxmlconfig.make
@@ -28,13 +28,11 @@ LIBXMLCONFIG_DIR := $(BUILDDIR)/$(LIBXMLCONFIG)
# Prepare
# ----------------------------------------------------------------------------
-LIBXMLCONFIG_PATH := PATH=$(CROSS_PATH)
-LIBXMLCONFIG_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LIBXMLCONFIG_AUTOCONF := $(CROSS_AUTOCONF_USR)
+LIBXMLCONFIG_CONF_TOOL := autoconf
+LIBXMLCONFIG_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/libxslt.in b/rules/libxslt.in
index b2f26d0c8..e3dd0b920 100644
--- a/rules/libxslt.in
+++ b/rules/libxslt.in
@@ -34,6 +34,10 @@ config LIBXSLT_DEBUG
bool
prompt "Add the debugging support"
+config LIBXSLT_PROFILER
+ bool
+ prompt "Add the profiling support"
+
comment "Install Components"
config LIBXSLT_LIBXSLT
diff --git a/rules/libxslt.make b/rules/libxslt.make
index 0ea879ead..8c64b330a 100644
--- a/rules/libxslt.make
+++ b/rules/libxslt.make
@@ -15,30 +15,32 @@ PACKAGES-$(PTXCONF_LIBXSLT) += libxslt
#
# Paths and names
#
-LIBXSLT_VERSION := 1.1.34
-LIBXSLT_MD5 := db8765c8d076f1b6caafd9f2542a304a
+LIBXSLT_VERSION := 1.1.39
+LIBXSLT_MD5 := 22e9eb7c23825124e786611b3760a3c7
LIBXSLT := libxslt-$(LIBXSLT_VERSION)
-LIBXSLT_SUFFIX := tar.gz
+LIBXSLT_SUFFIX := tar.xz
LIBXSLT_SOURCE := $(SRCDIR)/$(LIBXSLT).$(LIBXSLT_SUFFIX)
LIBXSLT_DIR := $(BUILDDIR)/$(LIBXSLT)
LIBXSLT_LICENSE := MIT
+LIBXSLT_LICENSE_FILES := \
+ file://Copyright;md5=0cd9a07afbeb24026c9b03aecfeba458
LIBXSLT_URL := \
- ftp://xmlsoft.org/libxslt/$(LIBXSLT).$(LIBXSLT_SUFFIX) \
- ftp://xmlsoft.org/libxslt/old/$(LIBXSLT).$(LIBXSLT_SUFFIX)
+ https://download.gnome.org/sources/libxslt/$(basename $(LIBXSLT_VERSION))/$(LIBXSLT).$(LIBXSLT_SUFFIX)
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-LIBXSLT_ENV := \
+LIBXSLT_CONF_ENV := \
$(CROSS_ENV) \
ac_cv_path_XML_CONFIG=xml2-config
#
# autoconf
#
-LIBXSLT_AUTOCONF := \
+LIBXSLT_CONF_TOOL := autoconf
+LIBXSLT_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-static \
--without-python \
@@ -46,7 +48,7 @@ LIBXSLT_AUTOCONF := \
--$(call ptx/wwo, PTXCONF_LIBXSLT_DEBUG)-debug \
--$(call ptx/wwo, PTXCONF_LIBXSLT_DEBUG)-mem-debug \
--$(call ptx/wwo, PTXCONF_LIBXSLT_DEBUG)-debugger \
- --without-profiler \
+ --$(call ptx/wwo, PTXCONF_LIBXSLT_PROFILER)-profiler \
--$(call ptx/wwo, PTXCONF_LIBXSLT_PLUGINS)-plugins
# ----------------------------------------------------------------------------
diff --git a/rules/libyaml.make b/rules/libyaml.make
index c075e5bd5..655d72e18 100644
--- a/rules/libyaml.make
+++ b/rules/libyaml.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LIBYAML) += libyaml
#
# Paths and names
#
-LIBYAML_VERSION := 0.1.7
-LIBYAML_MD5 := c966bdf434286e4f618d9ae8a5e8db97
+LIBYAML_VERSION := 0.2.5
+LIBYAML_MD5 := 163fc1e22153d3e2cebfe5cbb43a1769
LIBYAML := libyaml-$(LIBYAML_VERSION)
LIBYAML_SUFFIX := tar.gz
LIBYAML_URL := https://github.com/yaml/libyaml/archive/$(LIBYAML_VERSION).$(LIBYAML_SUFFIX)
diff --git a/rules/libzmq.in b/rules/libzmq.in
index c272f845d..f03831ecd 100644
--- a/rules/libzmq.in
+++ b/rules/libzmq.in
@@ -3,6 +3,7 @@
config LIBZMQ
tristate
prompt "libzmq"
+ select LIBSODIUM
help
The zeroMQ lightweight messaging kernel is a library which extends the
standard socket interfaces with features traditionally provided by
diff --git a/rules/libzmq.make b/rules/libzmq.make
index d96e7b420..94a5f84d8 100644
--- a/rules/libzmq.make
+++ b/rules/libzmq.make
@@ -14,14 +14,17 @@ PACKAGES-$(PTXCONF_LIBZMQ) += libzmq
#
# Paths and names
#
-LIBZMQ_VERSION := 4.0.4
-LIBZMQ_MD5 := f3c3defbb5ef6cc000ca65e529fdab3b
+LIBZMQ_VERSION := 4.3.4
+LIBZMQ_MD5 := c897d4005a3f0b8276b00b7921412379
LIBZMQ := zeromq-$(LIBZMQ_VERSION)
LIBZMQ_SUFFIX := tar.gz
-LIBZMQ_URL := http://download.zeromq.org/$(LIBZMQ).$(LIBZMQ_SUFFIX)
+LIBZMQ_URL := https://github.com/zeromq/libzmq/releases/download/v$(LIBZMQ_VERSION)/$(LIBZMQ).$(LIBZMQ_SUFFIX)
LIBZMQ_SOURCE := $(SRCDIR)/$(LIBZMQ).$(LIBZMQ_SUFFIX)
LIBZMQ_DIR := $(BUILDDIR)/$(LIBZMQ)
-LIBZMQ_LICENSE := LGPL-3.0-or-later
+LIBZMQ_LICENSE := LGPL-3.0-or-later WITH custom-exception
+LIBZMQ_LICENSE_FILES := \
+ file://COPYING;md5=f7b40df666d41e6508d03e1c207d498f \
+ file://COPYING.LESSER;md5=d5311495d952062e0e4fbba39cbf3de1
# ----------------------------------------------------------------------------
# Prepare
@@ -31,20 +34,68 @@ LIBZMQ_CONF_ENV := \
$(CROSS_ENV) \
ac_cv_lib_sodium_sodium_init=no
+# Assume these are always available:
+# - O_CLOEXEC (2007, kernel 2.6.23, glibc 2.7)
+# - EFD_CLOEXEC (2008, kernel 2.6.27, glibc 2.9)
+# - SOCK_CLOEXEC (2008, kernel 2.6.27, glibc 2.9)
+# - SO_BINDTODEVICE (2009, kernel 2.6.31)
+# - SO_KEEPALIVE (2009, kernel 2.6.31, glibc 1.x)
+# - SO_PRIORITY (2009, kernel 2.6.31)
+# - TCP_KEEPCNT (pre 2005/2013, pre kernel 2.6.12, glibc 2.18)
+# - TCP_KEEPIDLE (pre 2005/2013, pre kernel 2.6.12, glibc 2.18)
+# - TCP_KEEPINTVL (pre 2005/2013, pre kernel 2.6.12, glibc 2.18)
+# - getrandom (2014/2017, kernel 3.17, glibc 2.25)
+# Note: TCP_KEEPALIVE is not available in glibc/kernel.
+LIBZMQ_CONF_ENV += \
+ libzmq_cv_o_cloexec=yes \
+ libzmq_cv_efd_cloexec=yes \
+ libzmq_cv_sock_cloexec=yes \
+ libzmq_cv_so_bindtodevice=yes \
+ libzmq_cv_so_keepalive=yes \
+ libzmq_cv_so_priority=yes \
+ libzmq_cv_tcp_keepcnt=yes \
+ libzmq_cv_tcp_keepidle=yes \
+ libzmq_cv_tcp_keepintvl=yes \
+ libzmq_cv_getrandom=yes
+
#
# autoconf
#
LIBZMQ_CONF_TOOL := autoconf
LIBZMQ_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
+ --disable-code-coverage \
--disable-static \
--enable-shared \
+ --disable-valgrind \
+ --enable-symvers \
+ --disable-force-CXX98-compat \
--disable-debug \
- --with-gnu-ld \
+ --disable-pedantic \
+ --disable-thread-sanitizer \
+ --disable-address-sanitizer \
+ --disable-Werror \
+ --enable-eventfd \
+ --disable-perf \
+ --enable-curve-keygen \
+ --enable-curve \
+ --disable-ws \
+ --disable-libbsd \
+ --disable-drafts \
+ --disable-libunwind \
--without-gcov \
- --without-documentation \
+ --with-gnu-ld \
+ --without-militant \
+ --without-docs \
--with-poller=epoll \
- --without-pgm
+ --without-libgssapi_krb5 \
+ --with-libsodium \
+ --without-nss \
+ --without-tls \
+ --without-pgm \
+ --without-norm \
+ --without-vmci \
+ --without-fuzzing-engine
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/lighttpd.in b/rules/lighttpd.in
index 05dd5fae3..b782307f4 100644
--- a/rules/lighttpd.in
+++ b/rules/lighttpd.in
@@ -6,18 +6,16 @@ menuconfig LIGHTTPD
select LIBC_DL
select LIBC_CRYPT
select ZLIB if LIGHTTPD_ZLIB
+ select ZSTD if LIGHTTPD_ZSTD
select BZIP2 if LIGHTTPD_BZ2LIB
select BZIP2_LIBBZ2 if LIGHTTPD_BZ2LIB
select ATTR if LIGHTTPD_ATTR
select LIBPCRE if LIGHTTPD_PCRE
select LIBXML2 if LIGHTTPD_WEBDAV_PROPS
select SQLITE if LIGHTTPD_WEBDAV_PROPS
- select LIBUUID if LIGHTTPD_WEBDAV_LOCKS
select OPENSSL if LIGHTTPD_OPENSSL
- select LIBMEMCACHED if LIGHTTPD_MEMCACHED
select LUA if LIGHTTPD_LUA
select LUA_INSTALL_LIBLUA if LIGHTTPD_LUA
- select PHP5 if LIGHTTPD_MOD_FASTCGI_PHP && RUNTIME
select BUSYBOX_START_STOP_DAEMON if LIGHTTPD_STARTSCRIPT
select BUSYBOX_FEATURE_START_STOP_DAEMON_FANCY if LIGHTTPD_STARTSCRIPT
select BUSYBOX_FEATURE_START_STOP_DAEMON_LONG_OPTIONS if LIGHTTPD_STARTSCRIPT
@@ -52,14 +50,6 @@ config LIGHTTPD_LUA
help
lua engine for mod_cml and mod_magnet
-config LIGHTTPD_MEMCACHED
- bool
- prompt "memcached storage"
- # fails to build with current libmemcached version
- depends on BROKEN
- help
- memcached storage for mod_trigger_b4_dl and mod_cml
-
config LIGHTTPD_OPENSSL
bool
prompt "openssl support"
@@ -68,22 +58,16 @@ config LIGHTTPD_OPENSSL
config LIGHTTPD_PCRE
bool
- select LIBPCRE
prompt "pcre support"
help
Enable pcre support.
+ WARNING: pcre is no longer maintained. Please move to pcre2 instead!
+
endmenu
menu "modules "
-config LIGHTTPD_MOD_ACCESS
- bool
- prompt "mod_access"
- default y
- help
- Deny access to some files.
-
config LIGHTTPD_MOD_ACCESSLOG
bool
prompt "mod_accesslog"
@@ -91,12 +75,6 @@ config LIGHTTPD_MOD_ACCESSLOG
help
flexible logging of requests served
-config LIGHTTPD_MOD_ALIAS
- bool
- prompt "mod_alias"
- help
- Specify a special document-root for a given url-subset.
-
config LIGHTTPD_MOD_AUTH
bool
prompt "mod_auth"
@@ -104,52 +82,59 @@ config LIGHTTPD_MOD_AUTH
help
User authentication
-config LIGHTTPD_MOD_CML
- bool
- select LIGHTTPD_LUA
- prompt "mod_cml"
- help
- Cache Meta Language
-
-config LIGHTTPD_MOD_COMPRESS
+config LIGHTTPD_MOD_DEFLATE
bool
- prompt "mod_compress"
+ prompt "mod_deflate"
help
Output compression support.
-if LIGHTTPD_MOD_COMPRESS
+if LIGHTTPD_MOD_DEFLATE
config LIGHTTPD_ZLIB
bool
prompt "zlib support"
help
- Enable zlib support for mod_compress.
+ Enable zlib support for mod_deflate.
+
+config LIGHTTPD_ZSTD
+ bool
+ prompt "zstd support"
+ help
+ Enable zstd support for mod_deflate.
config LIGHTTPD_BZ2LIB
bool
prompt "bz2lib support"
help
- Enable bzip2 support for mod_compress.
+ Enable bzip2 support for mod_deflate.
endif
-config LIGHTTPD_MOD_FASTCGI
+config LIGHTTPD_MOD_DIRLISTING
bool
- prompt "mod_fastcgi"
-
-if LIGHTTPD_MOD_FASTCGI
+ prompt "mod_dirlisting"
+ default y
+ help
+ Creates an HTML page listing the contents of the target directory.
config LIGHTTPD_MOD_FASTCGI_PHP
bool
- depends on STAGING
+ depends on PHP8_SAPI_CGI
prompt "setup php handling with fastcgi"
help
Enables the necessary packages and configuration files
to enable PHP support in lighttpd
comment "PHP CGI SAPI must be enabled"
- depends on LIGHTTPD_MOD_FASTCGI_PHP && !PHP5_SAPI_CGI
+ depends on !PHP8_SAPI_CGI
-endif
+config LIGHTTPD_MOD_H2
+ bool
+ prompt "mod_h2"
+ default y
+ help
+ HTTP/2 support
+ To use lighttpd without HTTP/2 you need to disable it in the configuration file:
+ server.feature-flags += ( "server.h2proto" => "disable" )
config LIGHTTPD_MOD_MAGNET
bool
@@ -158,22 +143,6 @@ config LIGHTTPD_MOD_MAGNET
help
A module to control the request handling
-config LIGHTTPD_MOD_REWRITE
- bool
- prompt "mod_rewrite"
- help
- Module for URL rewriting
-
-config LIGHTTPD_MOD_TRIGGER_B4_DL
- bool
- select LIGHTTPD_MEMCACHED
- select LIGHTTPD_PCRE
- # needs (currently broken) LIGHTTPD_MEMCACHED
- depends on BROKEN
- prompt "mod_trigger_b4_dl"
- help
- Module for Anti Hotlinking
-
config LIGHTTPD_MOD_WEBDAV
bool
prompt "mod_webdav"
@@ -189,12 +158,6 @@ config LIGHTTPD_WEBDAV_PROPS
help
properties in mod_webdav
-config LIGHTTPD_WEBDAV_LOCKS
- bool
- select LIGHTTPD_WEBDAV_PROPS
- prompt "locks in mod_webdav"
- help
- locks in mod_webdav
endif
config LIGHTTPD_MOD_EXTRA
diff --git a/rules/lighttpd.make b/rules/lighttpd.make
index 6bb442d0b..96382b86a 100644
--- a/rules/lighttpd.make
+++ b/rules/lighttpd.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_LIGHTTPD) += lighttpd
#
# Paths and names
#
-LIGHTTPD_VERSION := 1.4.55
-LIGHTTPD_MD5 := be4bda2c28bcbdac6eb941528f6edf03
+LIGHTTPD_VERSION := 1.4.74
+LIGHTTPD_MD5 := f38c400232151c69cc608fca35e593a9
LIGHTTPD := lighttpd-$(LIGHTTPD_VERSION)
LIGHTTPD_SUFFIX := tar.xz
LIGHTTPD_URL := http://download.lighttpd.net/lighttpd/releases-1.4.x/$(LIGHTTPD).$(LIGHTTPD_SUFFIX)
@@ -25,8 +25,8 @@ LIGHTTPD_DIR := $(BUILDDIR)/$(LIGHTTPD)
LIGHTTPD_LICENSE := BSD-3-Clause AND OML AND RSA-MD
LIGHTTPD_LICENSE_FILES := \
file://COPYING;md5=e4dac5c6ab169aa212feb5028853a579 \
- file://src/fastcgi.h;startline=7;endline=15;md5=fe9ffe753772839aace9c90e814bc356 \
- file://src/md5.c;startline=6;endline=26;md5=b5be3b6afd4afa7bb89b16361244f9b6
+ file://src/compat/fastcgi.h;startline=7;endline=15;md5=fe9ffe753772839aace9c90e814bc356 \
+ file://src/algo_md5.c;startline=12;endline=32;md5=b5be3b6afd4afa7bb89b16361244f9b6
# ----------------------------------------------------------------------------
# Prepare
@@ -40,6 +40,7 @@ LIGHTTPD_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--libdir=/usr/lib/lighttpd \
--$(call ptx/endis, PTXCONF_GLOBAL_LARGE_FILE)-lfs \
+ $(GLOBAL_LARGE_FILE_OPTION) \
$(GLOBAL_IPV6_OPTION) \
--disable-mmap \
--enable-extra-warnings \
@@ -56,19 +57,24 @@ LIGHTTPD_CONF_OPT := \
--without-krb5 \
--$(call ptx/wwo, PTXCONF_LIGHTTPD_OPENSSL)-openssl \
--without-wolfssl \
+ --without-mbedtls \
+ --without-nettle \
+ --without-gnutls \
+ --without-nss \
--$(call ptx/wwo, PTXCONF_LIGHTTPD_PCRE)-pcre \
+ --without-pcre2 \
--$(call ptx/wwo, PTXCONF_LIGHTTPD_ZLIB)-zlib \
+ --$(call ptx/wwo, PTXCONF_LIGHTTPD_ZSTD)-zstd \
--$(call ptx/wwo, PTXCONF_LIGHTTPD_BZ2LIB)-bzip2 \
+ --without-brotli \
+ --without-libdeflate \
--without-fam \
--$(call ptx/wwo, PTXCONF_LIGHTTPD_WEBDAV_PROPS)-webdav-props \
--$(call ptx/wwo, PTXCONF_LIGHTTPD_WEBDAV_PROPS)-libxml \
--$(call ptx/wwo, PTXCONF_LIGHTTPD_WEBDAV_PROPS)-sqlite \
- --$(call ptx/wwo, PTXCONF_LIGHTTPD_WEBDAV_LOCKS)-webdav-locks \
- --$(call ptx/wwo, PTXCONF_LIGHTTPD_WEBDAV_LOCKS)-uuid \
- --without-gdbm \
- --without-geoip \
+ --without-webdav-locks \
+ --without-xxhash \
--without-maxminddb \
- --$(call ptx/wwo, PTXCONF_LIGHTTPD_MEMCACHED)-memcached \
--$(call ptx/wwo, PTXCONF_LIGHTTPD_LUA)-lua
# ----------------------------------------------------------------------------
@@ -86,26 +92,19 @@ $(STATEDIR)/lighttpd.install:
# ----------------------------------------------------------------------------
LIGHTTPD_MODULES-y :=
-LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_ACCESS) += mod_access
LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_ACCESSLOG) += mod_accesslog
-LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_ALIAS) += mod_alias
LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_AUTH) += mod_auth
LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_AUTH) += mod_authn_file
-LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_CML) += mod_cml
-LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_COMPRESS) += mod_compress
-LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_FASTCGI) += mod_fastcgi
+LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_DEFLATE) += mod_deflate
+LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_DIRLISTING) += mod_dirlisting
+LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_H2) += mod_h2
LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_MAGNET) += mod_magnet
LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_OPENSSL) += mod_openssl
-LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_REWRITE) += mod_rewrite
-LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_TRIGGER_B4_DL) += mod_trigger_b4_dl
LIGHTTPD_MODULES-$(PTXCONF_LIGHTTPD_MOD_WEBDAV) += mod_webdav
LIGHTTPD_MODULES-y += $(call remove_quotes,$(PTXCONF_LIGHTTPD_MOD_EXTRA))
LIGHTTPD_MODULE_STRING := $(subst $(space),$(comma),$(addsuffix \",$(addprefix \",$(LIGHTTPD_MODULES-y))))
-# add modules that are always loaded
-LIGHTTPD_MODULES_INSTALL := mod_indexfile mod_dirlisting mod_staticfile $(LIGHTTPD_MODULES-y)
-
$(STATEDIR)/lighttpd.targetinstall:
@$(call targetinfo)
@@ -122,8 +121,8 @@ $(STATEDIR)/lighttpd.targetinstall:
/usr/sbin/lighttpd-angel)
ifdef PTXCONF_LIGHTTPD_INSTALL_SELECTED_MODULES
- @$(foreach mod,$(LIGHTTPD_MODULES_INSTALL), \
- $(call install_lib, lighttpd, 0, 0, 0644, lighttpd/$(mod));)
+ @$(foreach mod,$(LIGHTTPD_MODULES-y), \
+ $(call install_lib, lighttpd, 0, 0, 0644, lighttpd/$(mod))$(ptx/nl))
else
# # modules
@$(call install_tree, lighttpd, 0, 0, -, /usr/lib/lighttpd)
@@ -137,6 +136,8 @@ endif
@$(call install_copy, lighttpd, 0, 0, 0755, /etc/lighttpd/conf.d)
@$(call install_replace, lighttpd, /etc/lighttpd/lighttpd.conf, \
@MODULES@, $(LIGHTTPD_MODULE_STRING))
+ @$(call install_replace, lighttpd, /etc/lighttpd/lighttpd.conf, \
+ @NOH2@, $(call ptx/ifdef, PTXCONF_LIGHTTPD_MOD_H2,"#",))
@$(call install_alternative, lighttpd, 0, 0, 0644, \
/etc/lighttpd/conf.d/mime.conf)
diff --git a/rules/links.make b/rules/links.make
index 1ee10d1b3..4d5049ef8 100644
--- a/rules/links.make
+++ b/rules/links.make
@@ -24,13 +24,11 @@ LINKS_DIR := $(BUILDDIR)/$(LINKS)
# Prepare
# ----------------------------------------------------------------------------
-LINKS_PATH := PATH=$(CROSS_PATH)
-LINKS_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LINKS_AUTOCONF := \
+LINKS_CONF_TOOL := autoconf
+LINKS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--$(call ptx/wwo, PTXCONF_LINKS_SSL)-ssl \
--without-gpm \
@@ -46,14 +44,16 @@ LINKS_AUTOCONF := \
--$(call ptx/wwo, PTXCONF_LINKS_LZMA)-lzma \
ifneq ($(PTXCONF_LINKS_X),)
-LINKS_AUTOCONF += --enable-graphics
+LINKS_CONF_OPT += --enable-graphics
else
-LINKS_AUTOCONF += --disable-graphics
+LINKS_CONF_OPT += --disable-graphics
endif
# Note: ./configure only support 'gpm' features auto-detection, so
# we use the autoconf trick (see Gentoo ebuild)
-LINKS_ENV += ac_cv_lib_gpm_Gpm_Open=no
+LINKS_CONF_ENV := \
+ $(CROSS_ENV) \
+ ac_cv_lib_gpm_Gpm_Open=no
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/linux-firmware.in b/rules/linux-firmware.in
new file mode 100644
index 000000000..b37d04781
--- /dev/null
+++ b/rules/linux-firmware.in
@@ -0,0 +1,32 @@
+## SECTION=system_libraries
+
+menuconfig LINUX_FIRMWARE
+ tristate
+ prompt "linux-firmware "
+ help
+ Linux firmware is a collection of firmwares that are used for various hardware.
+
+if LINUX_FIRMWARE
+
+config LINUX_FIRMWARE_SELECTED_LICENSES
+ string
+ prompt "Linux-firmware license files to include"
+ help
+ Set the firmware license files use.
+ Since there is no strict match between firmware files
+ and license files, this must be provided by the user.
+ Multiple license files are separated by space.
+ For example "LICENSE.amd-ucode LICENSE.amdgpu"
+
+config LINUX_FIRMWARE_SELECTED_FIRMWARES
+ string
+ prompt "Linux-firmware files to copy to target"
+ help
+ Set the firmware files to copy, with globs.
+ Since the firmware files can be large, this makes
+ it possible to do a fine grained copy.
+ Multiple firmware files are separated by space.
+ Remember that the glob MUST match the full path.
+ For example "*amd-ucode/* *amdgpu/*raven_* *amdgpu/*raven2*
+
+endif
diff --git a/rules/linux-firmware.make b/rules/linux-firmware.make
new file mode 100644
index 000000000..f12901f02
--- /dev/null
+++ b/rules/linux-firmware.make
@@ -0,0 +1,161 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Christian Melki <christian.melki@t2data.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LINUX_FIRMWARE) += linux-firmware
+
+#
+# Paths and names
+#
+LINUX_FIRMWARE_VERSION := 20240410
+LINUX_FIRMWARE_MD5 := 62c5622044539ca0a431a19d7c57bc02
+LINUX_FIRMWARE := linux-firmware-$(LINUX_FIRMWARE_VERSION)
+LINUX_FIRMWARE_SUFFIX := tar.gz
+LINUX_FIRMWARE_URL := $(call ptx/mirror, KERNEL, kernel/firmware/$(LINUX_FIRMWARE).$(LINUX_FIRMWARE_SUFFIX))
+LINUX_FIRMWARE_SOURCE := $(SRCDIR)/$(LINUX_FIRMWARE).$(LINUX_FIRMWARE_SUFFIX)
+LINUX_FIRMWARE_DIR := $(BUILDDIR)/$(LINUX_FIRMWARE)
+LINUX_FIRMWARE_DEVPKG := NO
+LINUX_FIRMWARE_LICENSE := proprietary
+
+# Order: find -type f \( -name "*LICENSE*" -o -name "*LICENCE*" \)
+LINUX_FIRMWARE_LICENSE_FILES := \
+ file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \
+ file://LICENCE.iwlwifi_firmware;md5=2ce6786e0fc11ac6e36b54bb9b799f1b \
+ file://LICENCE.mali_csffw;md5=e064aaec4d21ef856e1b76a6f5dc435f \
+ file://LICENSE.dib0700;md5=f7411825c8a555a1a3e5eab9ca773431 \
+ file://LICENCE.linaro;md5=936d91e71cf9cd30e733db4bf11661cc \
+ file://LICENCE.adsp_sst;md5=615c45b91a5a4a9fe046d6ab9a2df728 \
+ file://LICENCE.cadence;md5=009f46816f6956cfb75ede13d3e1cee0 \
+ file://LICENSE.amd-ucode;md5=6ca90c57f7b248de1e25c7f68ffc4698 \
+ file://LICENSE.atmel;md5=aa74ac0c60595dee4d4e239107ea77a3 \
+ file://LICENCE.fw_sst_0f28;md5=6353931c988ad52818ae733ac61cd293 \
+ file://LICENSE.amphion_vpu;md5=2bcdc00527b2d0542bd92b52aaec2b60 \
+ file://LICENSE.ivsc;md5=4f1f696a12c18dd058d3cc51006c640d \
+ file://LICENCE.cw1200;md5=f0f770864e7a8444a5c5aa9d12a3a7ed \
+ file://LICENSE.montage;md5=12a9f2b351f60fc9374da61c8b2f11ed \
+ file://LICENCE.moxa;md5=1086614767d8ccf744a923289d3d4261 \
+ file://LICENCE.NXP;md5=58bb8ba632cd729b9ba6183bc6aed36f \
+ file://LICENSE.i915;md5=2b0b2e0d20984affd4490ba2cba02570 \
+ file://LICENSE.ice_enhanced;md5=f305cfc31b64f95f774f9edd9df0224d \
+ file://LICENSE.qcom;md5=164e3362a538eb11d3ac51e8e134294b \
+ file://LICENCE.ibt_firmware;md5=fdbee1ddfe0fb7ab0b2fcd6b454a366b \
+ file://LICENCE.ueagle-atm4-firmware;md5=4ed7ea6b507ccc583b9d594417714118 \
+ file://LICENCE.ene_firmware;md5=ed67f0f62f8f798130c296720b7d3921 \
+ file://LICENCE.qla2xxx;md5=505855e921b75f1be4a437ad9b79dff0 \
+ file://LICENSE.sdma_firmware;md5=51e8c19ecc2270f4b8ea30341ad63ce9 \
+ file://LICENCE.qla1280;md5=d6895732e622d950609093223a2c4f5d \
+ file://LICENSE.ipu3_firmware;md5=38fe8238c06bf7dcfd0eedbebf452c3b \
+ file://LICENCE.go7007;md5=c0bb9f6aaaba55b0529ee9b30aa66beb \
+ file://LICENCE.mediatek;md5=7c1976b63217d76ce47d0a11d8a79cf2 \
+ file://LICENCE.cavium_liquidio;md5=c783d02784e08748de1bf0e543b68212 \
+ file://LICENCE.kaweth;md5=b1d876e562f4b3b8d391ad8395dfe03f \
+ file://LICENCE.Marvell;md5=28b6ed8bd04ba105af6e4dcd6e997772 \
+ file://LICENSE.QualcommAtheros_ar3k;md5=b5fe244fb2b532311de1472a3bc06da5 \
+ file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \
+ file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \
+ file://LICENCE.open-ath9k-htc-firmware;md5=1b33c9f4d17bc4d457bdb23727046837 \
+ file://LICENCE.nvidia;md5=4428a922ed3ba2ceec95f076a488ce07 \
+ file://LICENSE.powervr;md5=83045ed2a2cda15b4eaff682c98c9533 \
+ file://LICENCE.e100;md5=ec0f84136766df159a3ae6d02acdf5a8 \
+ file://LICENCE.ralink_a_mediatek_company_firmware;md5=728f1a85fd53fd67fa8d7afb080bc435 \
+ file://LICENCE.ti-keystone;md5=3a86335d32864b0bef996bee26cc0f2c \
+ file://LICENSE.amd-sev;md5=e750538791a8be0b7249c579edefb035 \
+ file://LICENSE.amdgpu;md5=a2589a05ea5b6bd2b7f4f623c7e7a649 \
+ file://LICENSE.nxp;md5=cca321ca1524d6a1e4fed87486cd82dc \
+ file://LICENSE.airoha;md5=fa3dedb960e2673aea51aa509f7b537d \
+ file://LICENCE.agere;md5=af0133de6b4a9b2522defd5f188afd31 \
+ file://LICENCE.siano;md5=4556c1bf830067f12ca151ad953ec2a5 \
+ file://LICENCE.broadcom_bcm43xx;md5=3160c14df7228891b868060e1951dfbc \
+ file://LICENCE.rtlwifi_firmware.txt;md5=00d06cfd3eddd5a2698948ead2ad54a5 \
+ file://LICENCE.ralink-firmware.txt;md5=ab2c269277c45476fb449673911a2dfd \
+ file://LICENSE.QualcommAtheros_ath10k;md5=cb42b686ee5f5cb890275e4321db60a8 \
+ file://LICENCE.cavium;md5=c37aaffb1ebe5939b2580d073a95daea \
+ file://LICENSE.amd_pmf;md5=a2589a05ea5b6bd2b7f4f623c7e7a649 \
+ file://LICENSE.amlogic_vdec;md5=dc44f59bf64a81643e500ad3f39a468a \
+ file://LICENCE.microchip;md5=db753b00305675dfbf120e3f24a47277 \
+ file://LICENSE.radeon;md5=68ec28bacb3613200bca44f404c69b16 \
+ file://LICENCE.cnm;md5=93b67e6bac7f8fec22b96b8ad0a1a9d0 \
+ file://LICENCE.wl1251;md5=ad3f81922bb9e197014bb187289d3b5b \
+ file://LICENCE.via_vt6656;md5=e4159694cba42d4377a912e78a6e850f \
+ file://LICENCE.chelsio_firmware;md5=819aa8c3fa453f1b258ed8d168a9d903 \
+ file://LICENSE.hfi1_firmware;md5=5e7b6e586ce7339d12689e49931ad444 \
+ file://LICENSE.Lontium;md5=4ec8dc582ff7295f39e2ca6a7b0be2b6 \
+ file://LICENCE.rockchip;md5=5fd70190c5ed39734baceada8ecced26 \
+ file://LICENSE.ixp4xx;md5=ddc5cd6cbc6745343926fe7ecc2cdeb2 \
+ file://LICENCE.it913x;md5=1fbf727bfb6a949810c4dbfa7e6ce4f8 \
+ file://LICENSE.qcom_yamato;md5=d0de0eeccaf1843a850bf7a6777eec5c \
+ file://LICENCE.OLPC;md5=5b917f9d8c061991be4f6f5f108719cd \
+ file://LICENCE.qat_firmware;md5=72de83dfd9b87be7685ed099a39fbea4 \
+ file://LICENSE.ice;md5=742ab4850f2670792940e6d15c974b2f \
+ file://LICENCE.myri10ge_firmware;md5=42e32fb89f6b959ca222e25ac8df8fed \
+ file://LICENCE.Netronome;md5=4add08f2577086d44447996503cddf5f \
+ file://LICENSE.cirrus;md5=662ea2c1a8888f7d79ed7f27c27472e1 \
+ file://LICENCE.phanfw;md5=954dcec0e051f9409812b561ea743bfa \
+ file://LICENCE.ca0132;md5=209b33e66ee5be0461f13d31da392198 \
+ file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \
+ file://LICENCE.atheros_firmware;md5=30a14c7823beedac9fa39c64fdd01a13 \
+ file://LICENCE.ti-connectivity;md5=c5e02be633f1499c109d1652514d85ec \
+ file://LICENSE.amlogic;md5=80e4e3f27def8bc4b232009c3a587c07 \
+ file://LICENSE.xe;md5=c674d38774242bc0c528214721488118 \
+ file://LICENCE.r8a779x_usb3;md5=4c1671656153025d7076105a5da7e498 \
+ file://LICENCE.cypress;md5=48cd9436c763bf873961f9ed7b5c147b \
+ file://wfx/LICENCE.wf200;md5=4d1beff00d902c05c9c7e95a5d8eb52d \
+ file://LICENSE.nxp_mc_firmware;md5=9dc97e4b279b3858cae8879ae2fe5dd7 \
+ file://LICENCE.IntcSST2;md5=9e7d8bea77612d7cc7d9e9b54b623062 \
+ file://LICENCE.ti-tspa;md5=d1a0eb27d0020752040190b9d51ad9be
+
+LINUX_FIRMWARE_SELECTED_LICENSES := $(call remove_quotes, $(PTXCONF_LINUX_FIRMWARE_SELECTED_LICENSES))
+ifneq ($(LINUX_FIRMWARE_SELECTED_LICENSES),)
+LINUX_FIRMWARE_LICENSE_FILES := $(filter $(addsuffix %,$(addprefix file://,$(LINUX_FIRMWARE_SELECTED_LICENSES))),$(LINUX_FIRMWARE_LICENSE_FILES))
+endif
+
+LINUX_FIRMWARE_SELECTED_FIRMWARES = $(call remove_quotes, $(PTXCONF_LINUX_FIRMWARE_SELECTED_FIRMWARES))
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+LINUX_FIRMWARE_INSTALL_OPT := \
+ install-nodedup
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+LINUX_FIRMWARE_CONF_TOOL := NO
+
+$(STATEDIR)/linux-firmware.compile:
+ @$(call targetinfo)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/linux-firmware.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, linux-firmware)
+ @$(call install_fixup, linux-firmware,PRIORITY,optional)
+ @$(call install_fixup, linux-firmware,SECTION,base)
+ @$(call install_fixup, linux-firmware,AUTHOR,"Christian Melki <christian.melki@t2data.com>")
+ @$(call install_fixup, linux-firmware,DESCRIPTION,missing)
+
+ifneq ($(LINUX_FIRMWARE_SELECTED_FIRMWARES),)
+ @$(foreach firmware, $(LINUX_FIRMWARE_SELECTED_FIRMWARES), \
+ $(call install_glob, linux-firmware, 0, 0, -, \
+ /lib/firmware, $(firmware),, n)$(ptx/nl))
+endif
+
+ @$(call install_finish, linux-firmware)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/linuxptp.make b/rules/linuxptp.make
index 7e94cb20d..425ba3925 100644
--- a/rules/linuxptp.make
+++ b/rules/linuxptp.make
@@ -15,14 +15,17 @@ PACKAGES-$(PTXCONF_LINUXPTP) += linuxptp
#
# Paths and names
#
-LINUXPTP_VERSION := 2.0
-LINUXPTP_MD5 := d8bb7374943bb747db7786ac26f17f11
+LINUXPTP_VERSION := 3.1.1
+LINUXPTP_MD5 := 3b79ab5e77c5b5cf06bc1c8350d405bb
LINUXPTP := linuxptp-$(LINUXPTP_VERSION)
LINUXPTP_SUFFIX := tgz
LINUXPTP_URL := $(call ptx/mirror, SF, linuxptp/$(LINUXPTP).$(LINUXPTP_SUFFIX))
LINUXPTP_SOURCE := $(SRCDIR)/$(LINUXPTP).$(LINUXPTP_SUFFIX)
LINUXPTP_DIR := $(BUILDDIR)/$(LINUXPTP)
LINUXPTP_LICENSE := GPL-2.0-or-later
+LINUXPTP_LICENSE_FILES := \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://version.c;startline=6;endline=14;md5=89ff91d940b4bc09b6de0300b34a888f
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/lldpd.make b/rules/lldpd.make
index 7dbda5ffa..b6e321a7c 100644
--- a/rules/lldpd.make
+++ b/rules/lldpd.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_LLDPD) += lldpd
#
# Paths and names
#
-LLDPD_VERSION := 1.0.4
-LLDPD_MD5 := 33e8d58623f99184e4e709cbbfe45db3
+LLDPD_VERSION := 1.0.13
+LLDPD_MD5 := 40fab1279e4203191dd32d2057f1c3fe
LLDPD := lldpd-$(LLDPD_VERSION)
LLDPD_SUFFIX := tar.gz
LLDPD_URL := http://media.luffy.cx/files/lldpd//$(LLDPD).$(LLDPD_SUFFIX)
diff --git a/rules/llvm.in b/rules/llvm.in
new file mode 100644
index 000000000..485a76d3c
--- /dev/null
+++ b/rules/llvm.in
@@ -0,0 +1,16 @@
+## SECTION=system_libraries
+
+config LLVM
+ tristate
+ select HOST_CMAKE
+ select HOST_NINJA
+ select HOST_LLVM
+ select HOST_SYSTEM_PYTHON3
+ select ZLIB
+ prompt "llvm"
+ help
+ The Low-Level Virtual Machine (LLVM) is a collection of libraries
+ and tools that make it easy to build compilers, optimizers,
+ Just-In-Time code generators, and many other compiler-related
+ programs.
+
diff --git a/rules/llvm.make b/rules/llvm.make
new file mode 100644
index 000000000..bf16fcf2a
--- /dev/null
+++ b/rules/llvm.make
@@ -0,0 +1,242 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2019 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LLVM) += llvm
+
+#
+# Paths and names
+#
+LLVM_VERSION := 17.0.1
+LLVM_MD5 := 78e1fbd14517f31f921b3224c0cd4e45
+LLVM := llvm-$(LLVM_VERSION)
+LLVM_SUFFIX := src.tar.xz
+LLVM_URL := \
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-$(LLVM_VERSION)/$(LLVM).$(LLVM_SUFFIX)
+LLVM_SOURCE := $(SRCDIR)/$(LLVM).$(LLVM_SUFFIX)
+LLVM_DIR := $(BUILDDIR)/$(LLVM)
+LLVM_SUBDIR := $(LLVM).src
+LLVM_STRIP_LEVEL := 0
+LLVM_LICENSE := Apache-2.0 WITH LLVM-exception AND NCSA
+LLVM_LICENSE_FILES := file://$(LLVM_SUBDIR)/LICENSE.TXT;md5=8a15a0759ef07f2682d2ba4b893c9afe
+
+LLVM_CMAKE_MD5 := d24373e1c78f3f1275b6150a0b748c1c
+LLVM_CMAKE_URL := \
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-$(LLVM_VERSION)/cmake-$(LLVM_VERSION).$(LLVM_SUFFIX)
+LLVM_CMAKE_SOURCE := $(SRCDIR)/cmake-$(LLVM_VERSION).$(LLVM_SUFFIX)
+LLVM_CMAKE_DIR := $(BUILDDIR)/$(LLVM)/cmake
+
+LLVM_PARTS += LLVM_CMAKE
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+LLVM_HOST_ARCH := X86
+
+ifdef PTXCONF_ARCH_ARM
+LLVM_TARGET_ARCH := ARM
+endif
+ifdef PTXCONF_ARCH_ARM64
+LLVM_TARGET_ARCH := AArch64
+endif
+ifdef PTXCONF_ARCH_X86
+LLVM_TARGET_ARCH := X86
+endif
+ifdef PTXCONF_ARCH_MIPS
+LLVM_TARGET_ARCH := Mips
+endif
+ifdef PTXCONF_ARCH_PPC
+LLVM_TARGET_ARCH := PowerPC
+endif
+
+ifdef PTXCONF_LLVM
+ifndef LLVM_TARGET_ARCH
+$(error Unsupported LLVM architecture $(PTXCONF_ARCH_STRING))
+endif
+endif
+
+LLVM_TARGETS_TO_BUILD := \
+ $(LLVM_TARGET_ARCH) \
+ AMDGPU
+
+LLVM_CONF_ENV := \
+ $(HOST_ENV)
+
+#
+# cmake
+#
+LLVM_CONF_TOOL := cmake
+LLVM_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -G Ninja \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DLLVM_ABI_BREAKING_CHECKS=WITH_ASSERTS \
+ -DLLVM_ALLOW_PROBLEMATIC_CONFIGURATIONS=OFF \
+ -DLLVM_APPEND_VC_REV=ON \
+ -DLLVM_BINUTILS_INCDIR= \
+ -DLLVM_BUILD_32_BITS=OFF \
+ -DLLVM_BUILD_BENCHMARKS=OFF \
+ -DLLVM_BUILD_DOCS=OFF \
+ -DLLVM_BUILD_EXAMPLES=OFF \
+ -DLLVM_BUILD_EXTERNAL_COMPILER_RT=OFF \
+ -DLLVM_BUILD_LLVM_C_DYLIB=OFF \
+ -DLLVM_BUILD_LLVM_DYLIB=ON \
+ -DLLVM_BUILD_RUNTIME=ON \
+ -DLLVM_BUILD_RUNTIMES=ON \
+ -DLLVM_BUILD_TESTS=OFF \
+ -DLLVM_BUILD_TOOLS=ON \
+ -DLLVM_BUILD_UTILS=OFF \
+ -DLLVM_CCACHE_BUILD=OFF \
+ -DLLVM_CODESIGNING_IDENTITY= \
+ -DLLVM_DEFAULT_TARGET_TRIPLE= \
+ -DLLVM_DEPENDENCY_DEBUGGING=OFF \
+ -DLLVM_ENABLE_ASSERTIONS=OFF \
+ -DLLVM_ENABLE_BACKTRACES=ON \
+ -DLLVM_ENABLE_BINDINGS=OFF \
+ -DLLVM_ENABLE_CRASH_DUMPS=OFF \
+ -DLLVM_ENABLE_CRASH_OVERRIDES=ON \
+ -DLLVM_ENABLE_CURL=OFF \
+ -DLLVM_ENABLE_DAGISEL_COV=OFF \
+ -DLLVM_ENABLE_DOXYGEN=OFF \
+ -DLLVM_ENABLE_DUMP=OFF \
+ -DLLVM_ENABLE_EH=OFF \
+ -DLLVM_ENABLE_EXPENSIVE_CHECKS=OFF \
+ -DLLVM_ENABLE_FFI=OFF \
+ -DLLVM_ENABLE_GISEL_COV=OFF \
+ -DLLVM_ENABLE_HTTPLIB=OFF \
+ -DLLVM_ENABLE_IDE=OFF \
+ -DLLVM_ENABLE_LIBCXX=OFF \
+ -DLLVM_ENABLE_LIBEDIT=OFF \
+ -DLLVM_ENABLE_LIBPFM=OFF \
+ -DLLVM_ENABLE_LIBXML2=OFF \
+ -DLLVM_ENABLE_LLD=OFF \
+ -DLLVM_ENABLE_LOCAL_SUBMODULE_VISIBILITY=ON \
+ -DLLVM_ENABLE_LTO=OFF \
+ -DLLVM_ENABLE_MODULES=OFF \
+ -DLLVM_ENABLE_MODULE_DEBUGGING=OFF \
+ -DLLVM_ENABLE_NEW_PASS_MANAGER=TRUE \
+ -DLLVM_ENABLE_OCAMLDOC=OFF \
+ -DLLVM_ENABLE_PEDANTIC=ON \
+ -DLLVM_ENABLE_PIC=ON \
+ -DLLVM_ENABLE_PLUGINS=ON \
+ -DLLVM_ENABLE_PROJECTS=\
+ -DLLVM_ENABLE_RTTI=ON \
+ -DLLVM_ENABLE_RUNTIMES= \
+ -DLLVM_ENABLE_SPHINX=OFF \
+ -DLLVM_ENABLE_STRICT_FIXED_SIZE_VECTORS=OFF \
+ -DLLVM_ENABLE_TERMINFO=OFF \
+ -DLLVM_ENABLE_THREADS=ON \
+ -DLLVM_ENABLE_UNWIND_TABLES=ON \
+ -DLLVM_ENABLE_WARNINGS=ON \
+ -DLLVM_ENABLE_WERROR=OFF \
+ -DLLVM_ENABLE_Z3_SOLVER=OFF \
+ -DLLVM_ENABLE_ZLIB=ON \
+ -DLLVM_ENABLE_ZSTD=OFF \
+ -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD= \
+ -DLLVM_EXPORT_SYMBOLS_FOR_PLUGINS=OFF \
+ -DLLVM_EXTERNALIZE_DEBUGINFO=OFF \
+ -DLLVM_FORCE_ENABLE_STATS=OFF \
+ -DLLVM_FORCE_USE_OLD_TOOLCHAIN=OFF \
+ -DLLVM_HAVE_TFLITE= \
+ -DLLVM_INCLUDE_BENCHMARKS=OFF \
+ -DLLVM_INCLUDE_DOCS=OFF \
+ -DLLVM_INCLUDE_EXAMPLES=OFF \
+ -DLLVM_INCLUDE_RUNTIMES=ON \
+ -DLLVM_INCLUDE_TESTS=OFF \
+ -DLLVM_INCLUDE_TOOLS=ON \
+ -DLLVM_INCLUDE_UTILS=OFF \
+ -DLLVM_INSTALL_BINUTILS_SYMLINKS=OFF \
+ -DLLVM_INSTALL_CCTOOLS_SYMLINKS=OFF \
+ -DLLVM_INSTALL_GTEST=OFF \
+ -DLLVM_INSTALL_MODULEMAPS=OFF \
+ -DLLVM_INSTALL_TOOLCHAIN_ONLY=OFF \
+ -DLLVM_INSTALL_UTILS=OFF \
+ -DLLVM_INTEGRATED_CRT_ALLOC= \
+ -DLLVM_LIBDIR_SUFFIX= \
+ -DLLVM_LIB_FUZZING_ENGINE= \
+ -DLLVM_LINK_LLVM_DYLIB=ON \
+ -DLLVM_LOCAL_RPATH= \
+ -DLLVM_OMIT_DAGISEL_COMMENTS=ON \
+ -DLLVM_OPTIMIZED_TABLEGEN=OFF \
+ -DLLVM_OPTIMIZE_SANITIZED_BUILDS=ON \
+ -DLLVM_PARALLEL_COMPILE_JOBS= \
+ -DLLVM_PARALLEL_LINK_JOBS= \
+ -DLLVM_PROFDATA_FILE= \
+ -DLLVM_SOURCE_PREFIX= \
+ -DLLVM_STATIC_LINK_CXX_STDLIB=OFF \
+ -DLLVM_TABLEGEN=$(PTXDIST_SYSROOT_HOST)/bin/llvm-tblgen \
+ -DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(LLVM_TARGETS_TO_BUILD))" \
+ -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=OFF \
+ -DLLVM_TOOL_BOLT_BUILD=OFF \
+ -DLLVM_TOOL_CLANG_BUILD=OFF \
+ -DLLVM_TOOL_COMPILER_RT_BUILD=OFF \
+ -DLLVM_TOOL_DRAGONEGG_BUILD=OFF \
+ -DLLVM_TOOL_FLANG_BUILD=OFF \
+ -DLLVM_TOOL_LIBCXXABI_BUILD=OFF \
+ -DLLVM_TOOL_LIBCXX_BUILD=OFF \
+ -DLLVM_TOOL_LIBC_BUILD=OFF \
+ -DLLVM_TOOL_LIBUNWIND_BUILD=OFF \
+ -DLLVM_TOOL_LLDB_BUILD=OFF \
+ -DLLVM_TOOL_LLD_BUILD=OFF \
+ -DLLVM_TOOL_MLIR_BUILD=OFF \
+ -DLLVM_TOOL_OPENMP_BUILD=OFF \
+ -DLLVM_TOOL_POLLY_BUILD=OFF \
+ -DLLVM_TOOL_PSTL_BUILD=OFF \
+ -DLLVM_UNREACHABLE_OPTIMIZE=ON \
+ -DLLVM_USE_FOLDERS=ON \
+ -DLLVM_USE_INTEL_JITEVENTS=OFF \
+ -DLLVM_USE_OPROFILE=OFF \
+ -DLLVM_USE_PERF=ON \
+ -DLLVM_USE_RELATIVE_PATHS_IN_DEBUG_INFO=OFF \
+ -DLLVM_USE_RELATIVE_PATHS_IN_FILES=OFF \
+ -DLLVM_USE_SANITIZER= \
+ -DLLVM_USE_SPLIT_DWARF=OFF \
+ -DLLVM_USE_STATIC_ZSTD=FALSE \
+ -DLLVM_USE_SYMLINKS=ON \
+ -DLLVM_VERSION_PRINTER_SHOW_HOST_TARGET_INFO=ON \
+ -DLLVM_WINDOWS_PREFER_FORWARD_SLASH=OFF
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+CROSS_LLVM_CONFIG := $(PTXDIST_SYSROOT_CROSS)/usr/bin/llvm-config
+
+$(STATEDIR)/llvm.install.post:
+ @$(call targetinfo)
+ @$(call world/install.post, LLVM)
+# # llvm-config must be in sysroot-target to generate the correct paths
+ @cp $(PTXDIST_SYSROOT_HOST)/usr/bin/llvm-config $(PTXDIST_SYSROOT_TARGET)/usr/bin/llvm-config
+ @echo '#!/bin/sh' > $(CROSS_LLVM_CONFIG)
+ @echo 'exec $(PTXDIST_SYSROOT_TARGET)/usr/bin/llvm-config "$${@}"' >> $(CROSS_LLVM_CONFIG)
+ @chmod +x $(CROSS_LLVM_CONFIG)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/llvm.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, llvm)
+ @$(call install_fixup, llvm,PACKAGE,llvm)
+ @$(call install_fixup, llvm,PRIORITY,optional)
+ @$(call install_fixup, llvm,SECTION,base)
+ @$(call install_fixup, llvm,AUTHOR,"Marian Cichy <m.cichy@pengutronix.de>")
+ @$(call install_fixup, llvm,DESCRIPTION,missing)
+
+ @$(call install_lib, llvm, 0, 0, 0644, libLLVM-$(basename $(basename $(LLVM_VERSION))))
+
+ @$(call install_finish, llvm)
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/lm_sensors.make b/rules/lm_sensors.make
index 07cc9a9e8..f4ab7012d 100644
--- a/rules/lm_sensors.make
+++ b/rules/lm_sensors.make
@@ -15,9 +15,9 @@ PACKAGES-$(PTXCONF_LM_SENSORS) += lm_sensors
#
# Paths and names
#
-LM_SENSORS_VERSION := 3.5.0
-LM_SENSORS_TAG := V3-5-0
-LM_SENSORS_MD5 := 37981f5d3a0f649381529cb41c0f1ff3
+LM_SENSORS_VERSION := 3.6.0
+LM_SENSORS_TAG := V$(subst .,-,$(LM_SENSORS_VERSION))
+LM_SENSORS_MD5 := f60e47b5eb50bbeed48a9f43bb08dd5e
LM_SENSORS := lm_sensors-$(LM_SENSORS_VERSION)
LM_SENSORS_SUFFIX := tar.gz
LM_SENSORS_URL := \
diff --git a/rules/lmbench.in b/rules/lmbench.in
index f3d78e8e6..0a2abd03b 100644
--- a/rules/lmbench.in
+++ b/rules/lmbench.in
@@ -1,14 +1,10 @@
-## SECTION=staging
-## old section:
-### SECTION=test_suites
+## SECTION=test_suites
config LMBENCH
tristate
select LIBC_M
select GCCLIBS_GCC_S
+ select LIBTIRPC
prompt "lmbench"
help
Various tools for performance analysis
-
- STAGING: remove in PTXdist 2022.01.0
- Upstream dead and fails to build with gcc 10.
diff --git a/rules/lmbench.make b/rules/lmbench.make
index 382a9793e..f277673e5 100644
--- a/rules/lmbench.make
+++ b/rules/lmbench.make
@@ -36,6 +36,52 @@ LMBENCH_CONF_TOOL := autoconf
# Target-Install
# ----------------------------------------------------------------------------
+LMBENCH_TOOLS_PROGS := \
+ bw_file_rd \
+ bw_mem \
+ bw_mmap_rd \
+ bw_pipe \
+ bw_tcp \
+ bw_unix \
+ disk \
+ enough \
+ flushdisk \
+ hello \
+ lat_connect \
+ lat_ctx \
+ lat_fcntl \
+ lat_fifo \
+ lat_fs \
+ lat_http \
+ lat_mem_rd \
+ lat_mmap \
+ lat_ops \
+ lat_pagefault \
+ lat_pipe \
+ lat_proc \
+ lat_rpc \
+ lat_select \
+ lat_sem \
+ lat_sig \
+ lat_syscall \
+ lat_tcp \
+ lat_udp \
+ lat_unix \
+ lat_unix_connect \
+ line \
+ lmdd \
+ lmhttp \
+ loop_o \
+ memsize \
+ mhz \
+ msleep \
+ par_mem \
+ par_ops \
+ stream \
+ timing_o \
+ tlb
+
+
$(STATEDIR)/lmbench.targetinstall:
@$(call targetinfo)
@@ -45,53 +91,9 @@ $(STATEDIR)/lmbench.targetinstall:
@$(call install_fixup, lmbench,AUTHOR,"Robert Schwebel")
@$(call install_fixup, lmbench,DESCRIPTION,missing)
- for file in \
- /usr/bin/par_mem \
- /usr/bin/lat_tcp \
- /usr/bin/par_ops \
- /usr/bin/lat_mmap \
- /usr/bin/hello \
- /usr/bin/bw_unix \
- /usr/bin/lat_syscall \
- /usr/bin/lat_sem \
- /usr/bin/lat_fs \
- /usr/bin/loop_o \
- /usr/bin/lat_fcntl \
- /usr/bin/lat_unix \
- /usr/bin/bw_tcp \
- /usr/bin/lat_rpc \
- /usr/bin/lat_unix_connect \
- /usr/bin/bw_file_rd \
- /usr/bin/disk \
- /usr/bin/lat_mem_rd \
- /usr/bin/lat_select \
- /usr/bin/lat_connect \
- /usr/bin/lat_fifo \
- /usr/bin/line \
- /usr/bin/timing_o \
- /usr/bin/lat_ctx \
- /usr/bin/bw_mem \
- /usr/bin/lat_sig \
- /usr/bin/lat_pipe \
- /usr/bin/lat_pagefault \
- /usr/bin/lmhttp \
- /usr/bin/tlb \
- /usr/bin/bw_pipe \
- /usr/bin/mhz \
- /usr/bin/lat_http \
- /usr/bin/msleep \
- /usr/bin/lat_ops \
- /usr/bin/lat_udp \
- /usr/bin/stream \
- /usr/bin/enough \
- /usr/bin/flushdisk \
- /usr/bin/lmdd \
- /usr/bin/lat_proc \
- /usr/bin/bw_mmap_rd \
- /usr/bin/memsize \
- ; do \
- $(call install_copy, lmbench, 0, 0, 0755, -, $$file); \
- done
+ @$(foreach prog, $(LMBENCH_TOOLS_PROGS), \
+ $(call install_copy, lmbench, 0, 0, 0755, -, \
+ /usr/bin/$(prog))$(ptx/nl))
@$(call install_lib, lmbench, 0, 0, 0644, liblmbench)
diff --git a/rules/log4cplus.in b/rules/log4cplus.in
index 0e6cfb245..6d23deaad 100644
--- a/rules/log4cplus.in
+++ b/rules/log4cplus.in
@@ -1,25 +1,14 @@
## SECTION=system_libraries
-menuconfig LOG4CPLUS
+config LOG4CPLUS
tristate
- prompt "log4cplus "
+ prompt "log4cplus"
select HOST_CMAKE
select GCCLIBS_GCC_S
select GCCLIBS_CXX
select GLIBC_PTHREAD
- select QT4 if LOG4CPLUS_QT4
help
The purpose of this project is to port the
excellent Log for Java (log4j) logging
library to C++.
-if LOG4CPLUS
-
-config LOG4CPLUS_QT4
- bool
- depends on STAGING
- prompt "Qt4 debug appender"
- help
- Build the log4cplus Qt4 debug appender
-
-endif
diff --git a/rules/log4cplus.make b/rules/log4cplus.make
index 3220196f1..809848c9b 100644
--- a/rules/log4cplus.make
+++ b/rules/log4cplus.make
@@ -31,11 +31,9 @@ LOG4CPLUS_LICENSE := Apache-2.0
LOG4CPLUS_CONF_TOOL := cmake
LOG4CPLUS_CONF_OPT := $(CROSS_CMAKE_USR)
-LOG4CPLUS_CONF_OPT += -DLOG4CPLUS_BUILD_TESTING=OFF
-
-ifdef PTXCONF_LOG4CPLUS_QT4
-LOG4CPLUS_CONF_OPT += -DLOG4CPLUS_QT4=ON
-endif
+LOG4CPLUS_CONF_OPT += \
+ -DLOG4CPLUS_BUILD_TESTING=OFF \
+ -DLOG4CPLUS_QT4=OFF
# ----------------------------------------------------------------------------
# Target-Install
@@ -54,10 +52,6 @@ $(STATEDIR)/log4cplus.targetinstall:
@$(call install_lib, log4cplus, 0, 0, 0644, liblog4cplus)
@$(call install_copy, log4cplus, 0, 0, 0755, -, /usr/bin/loggingserver)
-ifdef PTXCONF_LOG4CPLUS_QT4
- @$(call install_lib, log4cplus, 0, 0, 0644, liblog4cplusqt4debugappender)
-endif
-
@$(call install_finish, log4cplus)
@$(call touch)
diff --git a/rules/lpc21isp.in b/rules/lpc21isp.in
index d1f7efcfa..3c4b5be3d 100644
--- a/rules/lpc21isp.in
+++ b/rules/lpc21isp.in
@@ -4,5 +4,5 @@ config LPC21ISP
tristate
prompt "lpc21isp"
help
- In-circuit programming (ISP) tool for the NXP (Philips) LPC1300 /
- LPC1700 / LPC2000 series ARM7 / M0 / M3 microcontrollers
+ In-circuit programming (ISP) tool for the NXP (Philips) LPC1300 /
+ LPC1700 / LPC2000 series ARM7 / M0 / M3 microcontrollers
diff --git a/rules/lpc21isp.make b/rules/lpc21isp.make
index f18ad84ee..e6a9fb051 100644
--- a/rules/lpc21isp.make
+++ b/rules/lpc21isp.make
@@ -30,7 +30,7 @@ LPC21ISP_LICENSE := GPL-3.0-or-later
LPC21ISP_CONF_TOOL := NO
LPC21ISP_MAKE_ENV := $(CROSS_ENV)
-LPC21ISP_MAKEVARS := $(CROSS_ENV)
+LPC21ISP_MAKE_OPT := CC=$(CROSS_CC)
# ----------------------------------------------------------------------------
# Install
diff --git a/rules/lsh.in b/rules/lsh.in
deleted file mode 100644
index c744fa4bf..000000000
--- a/rules/lsh.in
+++ /dev/null
@@ -1,66 +0,0 @@
-## SECTION=networking
-# lsh configuration
-
-menuconfig LSH
- tristate
- prompt "lsh "
- select LIBC_CRYPT if LSH_LSHD
- select LIBGMP
- select LIBOOP
- select ZLIB
- help
- lsh is an SSH implementation.
-if LSH
-
-config LSH_EXECUV
- bool
- prompt "Install lsh-execuv"
- help
- lsh-execuv is a utility program for the lsh server that
- securely executes a program as a different user.
-
-config LSH_LSHD
- bool
- prompt "Install lshd"
- help
- lshd is a server for the SSH-2 (secsh) protocol.
-
-config LSH_SFTPD
- bool
- prompt "Install sftp-server"
- help
- Server for the sftp subsystem, see the --subsystems option
- to lshd.
-
-config LSH_MAKESEED
- bool
- prompt "Install lsh-make-seed"
- help
- lsh-make-seed - Creates an initial random seed file for
- the YARROW pseudorandomnessgenerator used by lsh.
-
-config LSH_KEYGEN
- bool
- prompt "Install lsh-keygen"
- help
- lsh-keygen - Generates a keypair and write it on stdout.
- Generates a new private key for the desired algorithm
- and security level and write it on stdout.
-
- You will usually want to pipe the new key into a program
- like lsh-writekey, to split it into its private and public
- parts, and optionally encrypt the private information.
-
-config LSH_WRITEKEY
- bool
- prompt "Install lsh-writekey"
- help
- lsh-writekey - Keypair split/store handler.
- Splits a keypair in one private and one public file,
- optionally encrypting the private file using a passphrase.
-
- Common usage is to pipe the output from lsh-keygen into
- this program.
-
-endif
-
diff --git a/rules/lsh.make b/rules/lsh.make
deleted file mode 100644
index d170a6fec..000000000
--- a/rules/lsh.make
+++ /dev/null
@@ -1,95 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2002-2008 by Pengutronix e.K., Hildesheim, Germany
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_LSH) += lsh
-
-#
-# Paths and names
-#
-LSH_VERSION := 2.0.4
-LSH_MD5 := 621f4442332bb772b92d397d17ccaf02
-LSH := lsh-$(LSH_VERSION)
-LSH_SUFFIX := tar.gz
-LSH_URL := http://www.lysator.liu.se/~nisse/archive/$(LSH).$(LSH_SUFFIX)
-LSH_SOURCE := $(SRCDIR)/$(LSH).$(LSH_SUFFIX)
-LSH_DIR := $(BUILDDIR)/$(LSH)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-LSH_CONF_ENV := \
- $(CROSS_ENV) \
- ac_cv_header_X11_Xauth_h=no \
- ac_cv_lib_Xau_XauGetAuthByAddr=no
-
-#
-# autoconf
-#
-LSH_CONF_TOOL := autoconf
-LSH_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- $(GLOBAL_IPV6_OPTION) \
- --sysconfdir=/etc/lsh \
- --includedir=/usr/include/lsh \
- --libdir=/usr/lib/lsh \
- --disable-kerberos \
- --disable-pam \
- --disable-tcp-forward \
- --disable-x11-forward \
- --disable-agent-forward \
- --disable-utmp \
- --without-x \
- --without-system-argp \
- --with-zlib
-
-LSH_CFLAGS := -std=c89
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/lsh.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, lsh)
- @$(call install_fixup, lsh,PRIORITY,optional)
- @$(call install_fixup, lsh,SECTION,base)
- @$(call install_fixup, lsh,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, lsh,DESCRIPTION,missing)
-
-ifdef PTXCONF_LSH_EXECUV
- @$(call install_copy, lsh, 0, 0, 0755, -, /usr/sbin/lsh-execuv)
-endif
-
-ifdef PTXCONF_LSH_LSHD
- @$(call install_copy, lsh, 0, 0, 0755, -, /usr/sbin/lshd)
-endif
-
-ifdef PTXCONF_LSH_SFTPD
- @$(call install_copy, lsh, 0, 0, 0755, -, /usr/sbin/sftp-server)
-endif
-
-ifdef PTXCONF_LSH_MAKESEED
- @$(call install_copy, lsh, 0, 0, 0755, -, /usr/bin/lsh-make-seed)
-endif
-
-ifdef PTXCONF_LSH_WRITEKEY
- @$(call install_copy, lsh, 0, 0, 0755, -, /usr/bin/lsh-writekey)
-endif
-
-ifdef PTXCONF_LSH_KEYGEN
- @$(call install_copy, lsh, 0, 0, 0755, -, /usr/bin/lsh-keygen)
-endif
- @$(call install_finish, lsh)
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/lshw.in b/rules/lshw.in
index 6911380f6..c8632f7b4 100644
--- a/rules/lshw.in
+++ b/rules/lshw.in
@@ -7,6 +7,9 @@ menuconfig LSHW
select GCCLIBS_CXX
select GCCLIBS_GCC_S
select GTK if LSHW_GUI
+ select HWDATA if !SYSTEMD_HWDB
+ select HWDATA_USB if !SYSTEMD_HWDB
+ select HWDATA_PCI if !SYSTEMD_HWDB
help
lshw (Hardware Lister) is a small tool to provide detailed information
on the hardware configuration of the machine. It can report exact
diff --git a/rules/lshw.make b/rules/lshw.make
index 28dbb6cb7..dbc911dfe 100644
--- a/rules/lshw.make
+++ b/rules/lshw.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LSHW) += lshw
#
# Paths and names
#
-LSHW_VERSION := B.02.14
-LSHW_MD5 := 8bed55768c5cb2ceff062b882a687e9b
+LSHW_VERSION := B.02.19.2
+LSHW_MD5 := 8c70d46e906688309095c73ecb9396e3
LSHW := lshw-$(LSHW_VERSION)
LSHW_SUFFIX := tar.gz
LSHW_URL := http://www.ezix.org/software/files/$(LSHW).$(LSHW_SUFFIX)
@@ -35,7 +35,7 @@ LSHW_CONF_TOOL := NO
# the "src" subdir avoids this.
LSHW_SUBDIR := src
-LSHW_MAKE_ENV := $(CROSS_ENV)
+LSHW_MAKE_ENV := $(CROSS_ENV) VERSION=$(LSHW_VERSION)
LSHW_MAKE_OPT := all
LSHW_INSTALL_OPT := install
@@ -59,12 +59,6 @@ $(STATEDIR)/lshw.targetinstall:
@$(call install_copy, lshw, 0, 0, 0755, -, /usr/sbin/lshw)
- @$(call install_copy, lshw, 0, 0, 0755, /usr/share/lshw)
- @$(call install_copy, lshw, 0, 0, 0644, -, /usr/share/lshw/pci.ids)
- @$(call install_copy, lshw, 0, 0, 0644, -, /usr/share/lshw/usb.ids)
- @$(call install_copy, lshw, 0, 0, 0644, -, /usr/share/lshw/oui.txt)
- @$(call install_copy, lshw, 0, 0, 0644, -, /usr/share/lshw/manuf.txt)
-
ifdef PTXCONF_LSHW_GUI
@$(call install_copy, lshw, 0, 0, 0755, -, /usr/sbin/gtk-lshw)
diff --git a/rules/lsof.make b/rules/lsof.make
index dacbbf2ce..cd933679f 100644
--- a/rules/lsof.make
+++ b/rules/lsof.make
@@ -22,6 +22,8 @@ LSOF_TARBALL := lsof_$(LSOF_VERSION).orig.$(LSOF_SUFFIX)
LSOF_URL := https://snapshot.debian.org/archive/debian/20190908T172415Z/pool/main/l/lsof/$(LSOF_TARBALL)
LSOF_SOURCE := $(SRCDIR)/$(LSOF_TARBALL)
LSOF_DIR := $(BUILDDIR)/$(LSOF)
+LSOF_LICENSE := custom
+LSOF_LICENSE_FILES := file://00README;startline=645;endline=676;md5=3161a245910921b0f58644299e268d39
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/lsuio.make b/rules/lsuio.make
index 888c63fc8..5bba1491c 100644
--- a/rules/lsuio.make
+++ b/rules/lsuio.make
@@ -28,13 +28,11 @@ LSUIO_LICENSE_FILES := file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f
# Prepare
# ----------------------------------------------------------------------------
-LSUIO_PATH := PATH=$(CROSS_PATH)
-LSUIO_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LSUIO_AUTOCONF := $(CROSS_AUTOCONF_USR)
+LSUIO_CONF_TOOL := autoconf
+LSUIO_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/ltt-control.make b/rules/ltt-control.make
index 7f72bd8a5..2b51ecab5 100644
--- a/rules/ltt-control.make
+++ b/rules/ltt-control.make
@@ -27,13 +27,11 @@ LTT_CONTROL_DIR := $(BUILDDIR)/$(LTT_CONTROL)
# Prepare
# ----------------------------------------------------------------------------
-LTT_CONTROL_PATH := PATH=$(CROSS_PATH)
-LTT_CONTROL_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-LTT_CONTROL_AUTOCONF := $(CROSS_AUTOCONF_USR)
+LTT_CONTROL_CONF_TOOL := autoconf
+LTT_CONTROL_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/lua.make b/rules/lua.make
index 73fc730df..1390a323d 100644
--- a/rules/lua.make
+++ b/rules/lua.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_LUA) += lua
#
# Paths and names
#
-LUA_VERSION := 5.3.4
-LUA_MD5 := 53a9c68bcc0eda58bdc2095ad5cdfc63
+LUA_VERSION := 5.4.4
+LUA_MD5 := bd8ce7069ff99a400efd14cf339a727b
LUA := lua-$(LUA_VERSION)
LUA_SUFFIX := tar.gz
LUA_URL := http://www.lua.org/ftp/$(LUA).$(LUA_SUFFIX)
diff --git a/rules/luaexpat.make b/rules/luaexpat.make
index 46d45fed3..ba7ff91fd 100644
--- a/rules/luaexpat.make
+++ b/rules/luaexpat.make
@@ -15,10 +15,10 @@ PACKAGES-$(PTXCONF_LUAEXPAT) += luaexpat
# Paths and names
#
LUAEXPAT_VERSION := 1.3.0
-LUAEXPAT_MD5 := 3c20b5795e7107f847f8da844fbfe2da
+LUAEXPAT_MD5 := 3c20b5795e7107f847f8da844fbfe2da 76ccc83114fc0c027f6cd45e0b4276d1
LUAEXPAT := luaexpat-$(LUAEXPAT_VERSION)
LUAEXPAT_SUFFIX := tar.gz
-LUAEXPAT_URL := http://matthewwild.co.uk/projects/luaexpat/$(LUAEXPAT).$(LUAEXPAT_SUFFIX)
+LUAEXPAT_URL := https://github.com/lunarmodules/luaexpat/archive/refs/tags/$(LUAEXPAT_VERSION).$(LUAEXPAT_SUFFIX)
LUAEXPAT_SOURCE := $(SRCDIR)/$(LUAEXPAT).$(LUAEXPAT_SUFFIX)
LUAEXPAT_DIR := $(BUILDDIR)/$(LUAEXPAT)
LUAEXPAT_LICENSE := MIT
diff --git a/rules/lvm2.in b/rules/lvm2.in
index 2f44e5df2..f0b8123fc 100644
--- a/rules/lvm2.in
+++ b/rules/lvm2.in
@@ -4,6 +4,7 @@ menuconfig LVM2
tristate
select LIBC_DL
select GCCLIBS_GCC_S
+ select LIBAIO
select READLINE
select NCURSES
select SYSTEMD if LVM2_SYSTEMD
@@ -28,7 +29,7 @@ config LVM2_STARTSCRIPT
bool
default y
depends on INITMETHOD_BBINIT
- prompt "install /etc/init.d/lvm2"
+ prompt "install /etc/init.d/lvm2"
endif
diff --git a/rules/lvm2.make b/rules/lvm2.make
index 2b568203b..a734214bb 100644
--- a/rules/lvm2.make
+++ b/rules/lvm2.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LVM2) += lvm2
#
# Paths and names
#
-LVM2_VERSION := 2.02.177
-LVM2_MD5 := ee6cfbc5a0c5696ffae79dac04ee7a2b
+LVM2_VERSION := 2.03.22
+LVM2_MD5 := a97cf533222a5760225dbd26c3982ca6
LVM2 := LVM2.$(LVM2_VERSION)
LVM2_SUFFIX := tgz
LVM2_URL := \
@@ -24,6 +24,10 @@ LVM2_URL := \
LVM2_SOURCE := $(SRCDIR)/$(LVM2).$(LVM2_SUFFIX)
LVM2_DIR := $(BUILDDIR)/$(LVM2)
LVM2_LICENSE := GPL-2.0-only, LGPL-2.1-only
+LVM2_LICENSE_FILES := \
+ file://COPYING;md5=12713b4d9386533feeb07d6e4831765a \
+ file://COPYING.LIB;md5=fbc093901857fcd118f065f900982c24
+
# ----------------------------------------------------------------------------
# Prepare
@@ -36,45 +40,45 @@ LVM2_CONF_TOOL := autoconf
LVM2_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-static_link \
- --disable-lvm1_fallback \
--disable-thin_check_needs_check \
--disable-cache_check_needs_check \
--enable-readline \
+ --disable-editline \
--enable-realtime \
--disable-ocf \
--disable-cmirrord \
--disable-debug \
--disable-profiling \
- --disable-testing \
--disable-valgrind-pool \
--enable-devmapper \
- --disable-lvmetad \
--disable-lvmpolld \
--disable-lvmlockd-sanlock \
--disable-lvmlockd-dlm \
+ --disable-lvmlockd-dlmcontrol \
+ --disable-lvmlockd-idm \
--disable-use-lvmlockd \
- --disable-use-lvmetad \
--disable-use-lvmpolld \
- --disable-dmfilemapd \
--disable-notify-dbus \
+ --$(call ptx/endis, PTXCONF_LVM2_SYSTEMD)-systemd-journal \
+ --$(call ptx/endis, PTXCONF_LVM2_SYSTEMD)-app-machineid \
--disable-blkid_wiping \
--$(call ptx/endis, PTXCONF_LVM2_SYSTEMD)-udev_sync \
--$(call ptx/endis, PTXCONF_LVM2_SYSTEMD)-udev_rules \
- --disable-compat \
+ --disable-udev-rule-exec-detection \
--disable-units-compat \
--enable-ioctl \
--enable-o_direct \
- --enable-applib \
--enable-cmdlib \
- --disable-python_bindings \
- --disable-python2_bindings \
- --disable-python3_bindings \
+ --disable-dbus-service \
--enable-pkgconfig \
--enable-write_install \
--enable-fsadm \
+ --disable-lvmimportvdo \
--enable-blkdeactivate \
--enable-dmeventd \
+ --disable-dmfilemapd \
--disable-selinux \
+ --enable-blkzeroout \
--disable-nls \
--with-device-uid=$(PTXCONF_LVM2_DEVICE_UID) \
--with-device-gid=$(PTXCONF_LVM2_DEVICE_GID) \
@@ -98,7 +102,6 @@ $(STATEDIR)/lvm2.targetinstall:
ifdef PTXCONF_LVM2_LVM_TOOLS
@$(call install_copy, lvm2, 0, 0, 0755, -, /usr/sbin/fsadm)
@$(call install_copy, lvm2, 0, 0, 0755, -, /usr/sbin/lvmdump)
- @$(call install_copy, lvm2, 0, 0, 0755, -, /usr/sbin/vgimportclone)
@$(call install_copy, lvm2, 0, 0, 0755, -, /usr/sbin/lvm)
@$(call install_link, lvm2, lvm, /usr/sbin/lvchange)
@@ -135,6 +138,7 @@ ifdef PTXCONF_LVM2_LVM_TOOLS
@$(call install_link, lvm2, lvm, /usr/sbin/vgexport)
@$(call install_link, lvm2, lvm, /usr/sbin/vgextend)
@$(call install_link, lvm2, lvm, /usr/sbin/vgimport)
+ @$(call install_link, lvm2, lvm, /usr/sbin/vgimportclone)
@$(call install_link, lvm2, lvm, /usr/sbin/vgmerge)
@$(call install_link, lvm2, lvm, /usr/sbin/vgmknodes)
@$(call install_link, lvm2, lvm, /usr/sbin/vgreduce)
diff --git a/rules/lz4.make b/rules/lz4.make
index 39e6a4b0a..4b9b2bb33 100644
--- a/rules/lz4.make
+++ b/rules/lz4.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_LZ4) += lz4
#
# Paths and names
#
-LZ4_VERSION := 1.9.2
-LZ4_MD5 := 3898c56c82fb3d9455aefd48db48eaad
+LZ4_VERSION := 1.9.4
+LZ4_MD5 := e9286adb64040071c5e23498bf753261
LZ4 := lz4-$(LZ4_VERSION)
LZ4_SUFFIX := tar.gz
LZ4_URL := https://github.com/Cyan4973/lz4/archive/v$(LZ4_VERSION).$(LZ4_SUFFIX)
@@ -23,8 +23,8 @@ LZ4_SOURCE := $(SRCDIR)/$(LZ4).$(LZ4_SUFFIX)
LZ4_DIR := $(BUILDDIR)/$(LZ4)
LZ4_LICENSE := BSD-2-Clause AND GPL-2.0-or-later
LZ4_LICENSE_FILES := \
- file://LICENSE;md5=d57c0d21cb917fb4e0af2454aa48b956 \
- file://lib/LICENSE;md5=ebc2ea4814a64de7708f1571904b32cc \
+ file://LICENSE;md5=c5cc3cd6f9274b4d32988096df9c3ec3 \
+ file://lib/LICENSE;md5=5cd5f851b52ec832b10eedb3f01f885a \
file://programs/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263
# ----------------------------------------------------------------------------
diff --git a/rules/machine-id.in b/rules/machine-id.in
index 9ad6db935..8db7cd381 100644
--- a/rules/machine-id.in
+++ b/rules/machine-id.in
@@ -4,8 +4,8 @@ menuconfig MACHINE_ID
tristate
prompt "create /etc/machine-id "
select RC_ONCE if MACHINE_ID_RC_ONCE && RUNTIME
- select UTIL_LINUX_NG if MACHINE_ID_RC_ONCE && !INITMETHOD_SYSTEMD
- select UTIL_LINUX_NG_UUIDGEN if MACHINE_ID_RC_ONCE && !INITMETHOD_SYSTEMD
+ select UTIL_LINUX if MACHINE_ID_RC_ONCE && !INITMETHOD_SYSTEMD
+ select UTIL_LINUX_UUIDGEN if MACHINE_ID_RC_ONCE && !INITMETHOD_SYSTEMD
help
Enable this to make sure there is always a unique /etc/machine-id
available in the system.
@@ -20,7 +20,7 @@ config MACHINE_ID_RC_ONCE
(default: empty file).
Systemd:
If /etc/machine-id exists and is empty, systemd will bind-mount
- a file containing the new machine-id over it and later try
+ a file containing the new machine-id over it and later try
to commit it to disk (if /etc/ is writable).
endif
diff --git a/rules/madplay.make b/rules/madplay.make
index 512bec1da..7f9c97d82 100644
--- a/rules/madplay.make
+++ b/rules/madplay.make
@@ -19,7 +19,7 @@ MADPLAY_VERSION := 0.15.2b
MADPLAY_MD5 := 6814b47ceaa99880c754c5195aa1aac1
MADPLAY := madplay-$(MADPLAY_VERSION)
MADPLAY_SUFFIX := tar.gz
-MADPLAY_URL := ftp://ftp.mars.org/pub/mpeg/$(MADPLAY).$(MADPLAY_SUFFIX)
+MADPLAY_URL := $(call ptx/mirror, SF, mad/madplay/$(MADPLAY_VERSION)/$(MADPLAY).$(MADPLAY_SUFFIX))
MADPLAY_SOURCE := $(SRCDIR)/$(MADPLAY).$(MADPLAY_SUFFIX)
MADPLAY_DIR := $(BUILDDIR)/$(MADPLAY)
@@ -28,13 +28,12 @@ MADPLAY_DIR := $(BUILDDIR)/$(MADPLAY)
# Prepare
# ----------------------------------------------------------------------------
-MADPLAY_PATH := PATH=$(CROSS_PATH)
-MADPLAY_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-MADPLAY_AUTOCONF := $(CROSS_AUTOCONF_USR) \
+MADPLAY_CONF_TOOL := autoconf
+MADPLAY_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
--disable-debugging \
--disable-profiling \
--disable-nls \
diff --git a/rules/mariadb.in b/rules/mariadb.in
index 06cf4b9ad..0bd6a35d9 100644
--- a/rules/mariadb.in
+++ b/rules/mariadb.in
@@ -19,7 +19,7 @@ config MARIADB
select ROOTFS_VAR_LIB if RUNTIME
prompt "mariadb" if ALLYES
help
- MariaDB, a SQL database engine
+ MariaDB, an SQL database engine
Note: on a read-only root filesystem this package still requires a
writable '/var/lib' for the database.
diff --git a/rules/mariadb.make b/rules/mariadb.make
index 52b55ff58..a5a357157 100644
--- a/rules/mariadb.make
+++ b/rules/mariadb.make
@@ -88,7 +88,7 @@ MARIADB_CONF_OPT := \
$(CROSS_CMAKE_USR) \
-DBUILD_CONFIG=mysql_release \
-DSTACK_DIRECTION=1 \
- -DIMPORT_EXECUTABLES=$(PTXDIST_SYSROOT_HOST)/share/mariadb/import_executables.cmake \
+ -DIMPORT_EXECUTABLES=$(PTXDIST_SYSROOT_HOST)/usr/share/mariadb/import_executables.cmake \
-DHAVE_LLVM_LIBCPP_EXITCODE=no \
-DCOMMUNITY_BUILD=ON \
-DCONNECT_WITH_JDBC=OFF \
@@ -140,6 +140,11 @@ MARIADB_CONF_OPT := \
-DDEFAULT_CHARSET=latin1 \
-DLZ4_LIBS=undefined
+# The check is broken with cmake 3.25.0 so just disable symbol versioning
+# We build everything from source, so it is not actually needed
+MARIADB_CONF_OPT += \
+ -DDISABLE_LIBMYSQLCLIENT_SYMBOL_VERSIONING=ON
+
ifneq ($(strip $(MARIADB_PLUGINS_ENABLES-y)),)
MARIADB_CONF_OPT += $(foreach plugin,$(MARIADB_PLUGINS_ENABLES-y),$(addprefix -DPLUGIN_,$(addsuffix =STATIC, $(plugin))))
endif
diff --git a/rules/mbedtls.make b/rules/mbedtls.make
index 0086492fc..e0213a3c3 100644
--- a/rules/mbedtls.make
+++ b/rules/mbedtls.make
@@ -1,6 +1,7 @@
# -*-makefile-*-
#
# Copyright (C) 2019 by Bjoern Esser <bes@pengutronix.de>
+# 2022 by Michael Olbrich <m.olbrich@pengutronix.de>
#
# For further information about the PTXdist project and license conditions
# see the README file.
@@ -14,15 +15,15 @@ PACKAGES-$(PTXCONF_MBEDTLS) += mbedtls
#
# Paths and names
#
-MBEDTLS_VERSION := 2.16.3
-MBEDTLS_MD5 := 90ce7c7a001d2514410280706b3ab1a7
+MBEDTLS_VERSION := 2.28.0
+MBEDTLS_MD5 := d64054513df877458493dbb28e2935fa
MBEDTLS := mbedtls-$(MBEDTLS_VERSION)
-MBEDTLS_SUFFIX := tgz
-MBEDTLS_URL := https://tls.mbed.org/download/$(MBEDTLS)-apache.$(MBEDTLS_SUFFIX)
+MBEDTLS_SUFFIX := tar.gz
+MBEDTLS_URL := https://github.com/Mbed-TLS/mbedtls/archive/refs/tags/v$(MBEDTLS_VERSION).$(MBEDTLS_SUFFIX)
MBEDTLS_SOURCE := $(SRCDIR)/$(MBEDTLS).$(MBEDTLS_SUFFIX)
MBEDTLS_DIR := $(BUILDDIR)/$(MBEDTLS)
MBEDTLS_LICENSE := Apache-2.0
-MBEDTLS_LICENSE_FILES := file://apache-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57
+MBEDTLS_LICENSE_FILES := file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57
# ----------------------------------------------------------------------------
# Prepare
@@ -39,6 +40,8 @@ MBEDTLS_CONF_OPT := \
-DENABLE_ZLIB_SUPPORT=ON \
-DINSTALL_MBEDTLS_HEADERS=ON \
-DLINK_WITH_PTHREAD=ON \
+ -DLINK_WITH_TRUSTED_STORAGE=OFF \
+ -DMBEDTLS_FATAL_WARNINGS=OFF \
-DUNSAFE_BUILD=OFF \
-DUSE_PKCS11_HELPER_LIBRARY=OFF \
-DUSE_SHARED_MBEDTLS_LIBRARY=ON \
@@ -64,3 +67,5 @@ $(STATEDIR)/mbedtls.targetinstall:
@$(call install_finish, mbedtls)
@$(call touch)
+
+# vim: syntax=make
diff --git a/rules/media-session.in b/rules/media-session.in
new file mode 100644
index 000000000..f26d23afd
--- /dev/null
+++ b/rules/media-session.in
@@ -0,0 +1,32 @@
+## SECTION=multimedia_pipewire
+
+config MEDIA_SESSION
+ tristate
+ select HOST_MESON
+ select DBUS
+ select ALSA_LIB
+ select ALSA_LIB_PCM
+ select ALSA_LIB_UCM
+ select ALSA_LIB_SEQ
+ select PIPEWIRE
+ select SYSTEMD if MEDIA_SESSION_SYSTEMD
+ prompt "media-session"
+ help
+ Example session manager for PipeWire
+
+if MEDIA_SESSION
+
+config MEDIA_SESSION_SYSTEMD
+ bool
+
+config MEDIA_SESSION_SYSTEMD_UNIT
+ bool
+ default PIPEWIRE_SYSTEMD_UNIT
+ select MEDIA_SESSION_SYSTEMD
+
+config MEDIA_SESSION_SYSTEMD_UNIT_USER
+ bool
+ default PIPEWIRE_SYSTEMD_UNIT_USER
+ select MEDIA_SESSION_SYSTEMD
+
+endif
diff --git a/rules/media-session.make b/rules/media-session.make
new file mode 100644
index 000000000..5aa90b2fb
--- /dev/null
+++ b/rules/media-session.make
@@ -0,0 +1,94 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Philipp Zabel <p.zabel@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_MEDIA_SESSION) += media-session
+
+#
+# Paths and names
+#
+MEDIA_SESSION_VERSION := 0.4.2
+MEDIA_SESSION_MD5 := d376f33ece8f8b074f2abeafc173b078
+MEDIA_SESSION := media-session-$(MEDIA_SESSION_VERSION)
+MEDIA_SESSION_SUFFIX := tar.bz2
+MEDIA_SESSION_URL := \
+ https://gitlab.freedesktop.org/pipewire/media-session/-/archive/$(MEDIA_SESSION_VERSION)/$(MEDIA_SESSION).$(MEDIA_SESSION_SUFFIX)
+MEDIA_SESSION_SOURCE := $(SRCDIR)/$(MEDIA_SESSION).$(MEDIA_SESSION_SUFFIX)
+MEDIA_SESSION_DIR := $(BUILDDIR)/$(MEDIA_SESSION)
+MEDIA_SESSION_LICENSE := MIT AND LGPL-2.1-or-later AND GPL-2.0-only
+MEDIA_SESSION_LICENSE_FILES := \
+ file://LICENSE;md5=647cfa0f759d97b208bfb5c1eb912071 \
+ file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+MEDIA_SESSION_CONF_ENV := \
+ PTXDIST_PKG_CONFIG_VAR_NO_SYSROOT=systemdsystemunitdir
+
+#
+# meson
+#
+MEDIA_SESSION_CONF_TOOL := meson
+MEDIA_SESSION_CONF_OPT := \
+ $(CROSS_MESON_USR) \
+ -Ddocdir= \
+ -Ddocs=disabled \
+ -Dinstalled_tests=disabled \
+ -Dsystemd=$(call ptx/endis,PTXCONF_MEDIA_SESSION_SYSTEMD)d \
+ -Dsystemd-system-service=$(call ptx/endis,PTXCONF_MEDIA_SESSION_SYSTEMD_UNIT)d \
+ -Dsystemd-user-service=$(call ptx/endis,PTXCONF_MEDIA_SESSION_SYSTEMD_UNIT_USER)d \
+ -Dsystemd-user-unit-dir= \
+ -Dtests=disabled \
+ -Dwith-module-sets=
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/media-session.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, media-session)
+ @$(call install_fixup, media-session,PRIORITY,optional)
+ @$(call install_fixup, media-session,SECTION,base)
+ @$(call install_fixup, media-session,AUTHOR,"Philipp Zabel <p.zabel@pengutronix.de>")
+ @$(call install_fixup, media-session,DESCRIPTION,missing)
+
+ @$(call install_copy, media-session, 0, 0, 755, -, /usr/bin/pipewire-media-session)
+
+ifdef PTXCONF_MEDIA_SESSION_SYSTEMD_UNIT
+ @$(call install_alternative, media-session, 0, 0, 0644, \
+ /usr/lib/systemd/system/pipewire-media-session.service)
+ @$(call install_link, media-session, ../pipewire-media-session.service, \
+ /usr/lib/systemd/system/pipewire.service.wants/pipewire-media-session.service)
+endif
+ifdef PTXCONF_MEDIA_SESSION_SYSTEMD_UNIT_USER
+ @$(call install_alternative, media-session, 0, 0, 0644, \
+ /usr/lib/systemd/user/pipewire-media-session.service)
+ @$(call install_link, media-session, ../pipewire-media-session.service, \
+ /usr/lib/systemd/user/pipewire.service.wants/pipewire-media-session.service)
+endif
+
+ @$(call install_alternative, media-session, 0, 0, 0644, \
+ /usr/share/pipewire/media-session.d/alsa-monitor.conf)
+ @$(call install_alternative, media-session, 0, 0, 0644, \
+ /usr/share/pipewire/media-session.d/bluez-monitor.conf)
+ @$(call install_alternative, media-session, 0, 0, 0644, \
+ /usr/share/pipewire/media-session.d/media-session.conf)
+ @$(call install_alternative, media-session, 0, 0, 0644, \
+ /usr/share/pipewire/media-session.d/v4l2-monitor.conf)
+
+ @$(call install_finish, media-session)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/memcached.in b/rules/memcached.in
deleted file mode 100644
index 1e7f2b7bd..000000000
--- a/rules/memcached.in
+++ /dev/null
@@ -1,17 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=networking
-
-config MEMCACHED
- tristate
- prompt "memcached"
- select LIBC_PTHREAD
- select LIBEVENT
- help
- Memcached is an in-memory key-value store for small chunks of
- arbitrary data (strings, objects) from results of database calls,
- API calls, or page rendering.
-
- STAGING: remove in PTXdist 2022.01.0
- Has not been touched here in a long time and fails to build with gcc 10.
- Needs updating and cleanup.
diff --git a/rules/memcached.make b/rules/memcached.make
deleted file mode 100644
index 309552f78..000000000
--- a/rules/memcached.make
+++ /dev/null
@@ -1,57 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2010 by NovaTech-LLC
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_MEMCACHED) += memcached
-
-#
-# Paths and names
-#
-MEMCACHED_VERSION := 1.4.13
-MEMCACHED_MD5 := 6d18c6d25da945442fcc1187b3b63b7f
-MEMCACHED := memcached-$(MEMCACHED_VERSION)
-MEMCACHED_SUFFIX := tar.gz
-MEMCACHED_URL := \
- https://www.memcached.org/files/$(MEMCACHED).$(MEMCACHED_SUFFIX) \
- https://www.memcached.org/files/old/$(MEMCACHED).$(MEMCACHED_SUFFIX)
-MEMCACHED_SOURCE := $(SRCDIR)/$(MEMCACHED).$(MEMCACHED_SUFFIX)
-MEMCACHED_DIR := $(BUILDDIR)/$(MEMCACHED)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-MEMCACHED_ENV := \
- $(CROSS_ENV) \
- ac_cv_c_alignment=need \
- ac_cv_c_endian=$(call ptx/ifdef, PTXCONF_ENDIAN_LITTLE, little, big)
-
-
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/memcached.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, memcached)
- @$(call install_fixup, memcached, PRIORITY, optional)
- @$(call install_fixup, memcached, SECTION, base)
- @$(call install_fixup, memcached, AUTHOR,"NovaTech-LLC")
- @$(call install_fixup, memcached, DESCRIPTION, missing)
-
- @$(call install_copy, memcached, 0, 0, 0755, -, /usr/bin/memcached)
-
- @$(call install_finish, memcached)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/memedit.make b/rules/memedit.make
index 6c82004a7..93fc938cb 100644
--- a/rules/memedit.make
+++ b/rules/memedit.make
@@ -29,13 +29,11 @@ MEMEDIT_DIR := $(BUILDDIR)/$(MEMEDIT)
# Prepare
# ----------------------------------------------------------------------------
-MEMEDIT_PATH := PATH=$(CROSS_PATH)
-MEMEDIT_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-MEMEDIT_AUTOCONF := $(CROSS_AUTOCONF_USR)
+MEMEDIT_CONF_TOOL := autoconf
+MEMEDIT_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/memstat.in b/rules/memstat.in
deleted file mode 100644
index 2ebb757b9..000000000
--- a/rules/memstat.in
+++ /dev/null
@@ -1,8 +0,0 @@
-## SECTION=shell_and_console
-
-config MEMSTAT
- tristate
- prompt "memstat"
- help
- memstat is a memory diagnosis tool which lets you find
- out which process uses how much virtual memory.
diff --git a/rules/memstat.make b/rules/memstat.make
deleted file mode 100644
index 61729fb7c..000000000
--- a/rules/memstat.make
+++ /dev/null
@@ -1,59 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2005 by Robert Schwebel
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_MEMSTAT) += memstat
-
-#
-# Paths and names
-#
-MEMSTAT_VERSION := 0.8
-MEMSTAT_MD5 := 8ba8c468a414dc1e7d38ea1eb832cf8c
-MEMSTAT := memstat_$(MEMSTAT_VERSION)
-MEMSTAT_SUFFIX := tar.gz
-MEMSTAT_URL := http://snapshot.debian.org/archive/debian/20090608T162846Z/pool/main/m/memstat/memstat_$(MEMSTAT_VERSION).$(MEMSTAT_SUFFIX)
-MEMSTAT_SOURCE := $(SRCDIR)/memstat_$(MEMSTAT_VERSION).$(MEMSTAT_SUFFIX)
-MEMSTAT_DIR := $(BUILDDIR)/memstat-$(MEMSTAT_VERSION)
-
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-MEMSTAT_PATH := PATH=$(CROSS_PATH)
-MEMSTAT_ENV := $(CROSS_ENV)
-
-MEMSTAT_MAKEVARS := $(CROSS_ENV_CC) DEB_BUILD_OPTIONS=debug,nostrip
-
-$(STATEDIR)/memstat.prepare:
- @$(call targetinfo)
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/memstat.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, memstat)
- @$(call install_fixup, memstat,PRIORITY,optional)
- @$(call install_fixup, memstat,SECTION,base)
- @$(call install_fixup, memstat,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, memstat,DESCRIPTION,missing)
-
- @$(call install_copy, memstat, 0, 0, 0644, -, /etc/memstat.conf, n)
- @$(call install_copy, memstat, 0, 0, 0755, -, /usr/bin/memstat)
-
- @$(call install_finish, memstat)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/memtest86p.in b/rules/memtest86p.in
index 7e0a3f42f..1b3bdad58 100644
--- a/rules/memtest86p.in
+++ b/rules/memtest86p.in
@@ -1,4 +1,6 @@
-## SECTION=debug_tools
+## SECTION=staging
+## old section:
+### SECTION=debug_tools
menuconfig MEMTEST86P
tristate
@@ -6,6 +8,9 @@ menuconfig MEMTEST86P
help
Memory tester based on memtest86
+ STAGING: remove in PTXdist 2025.04.0
+ Unmaintained in PTXdist and fails to build with current toolchains. Needs updating.
+
if MEMTEST86P
config MEMTEST86P_SERIAL
diff --git a/rules/memtest86p.make b/rules/memtest86p.make
index 8a4ccde1a..6d5d0c188 100644
--- a/rules/memtest86p.make
+++ b/rules/memtest86p.make
@@ -19,7 +19,7 @@ endif
MEMTEST86P_VERSION := 4.20
MEMTEST86P := memtest86+-$(MEMTEST86P_VERSION)
MEMTEST86P_SUFFIX := tar.gz
-MEMTEST86P_URL := http://www.memtest.org/download/$(MEMTEST86P_VERSION)/$(MEMTEST86P).$(MEMTEST86P_SUFFIX)
+MEMTEST86P_URL := http://www.memtest.org/download/archives/$(MEMTEST86P_VERSION)/$(MEMTEST86P).$(MEMTEST86P_SUFFIX)
MEMTEST86P_SOURCE := $(SRCDIR)/$(MEMTEST86P).$(MEMTEST86P_SUFFIX)
MEMTEST86P_DIR := $(BUILDDIR)/$(MEMTEST86P)
MEMTEST86P_LICENSE := GPL-2
@@ -46,7 +46,6 @@ endif
# Compile
# ----------------------------------------------------------------------------
-MEMTEST86P_PATH := PATH=$(CROSS_PATH)
MEMTEST86P_MAKE_OPT := $(CROSS_ENV_PROGS)
MEMTEST86P_CFLAGS := -fgnu89-inline
diff --git a/rules/memtester.make b/rules/memtester.make
index 222019f18..0158f1e2d 100644
--- a/rules/memtester.make
+++ b/rules/memtester.make
@@ -28,7 +28,6 @@ MEMTESTER_LICENSE := GPL-2.0-only
# Prepare
# ----------------------------------------------------------------------------
-MEMTESTER_PATH := PATH=$(CROSS_PATH)
MEMTESTER_MAKE_ENV := $(CROSS_ENV)
$(STATEDIR)/memtester.prepare:
diff --git a/rules/mesa-demos.make b/rules/mesa-demos.make
index d78c61587..2b7180a97 100644
--- a/rules/mesa-demos.make
+++ b/rules/mesa-demos.make
@@ -93,7 +93,8 @@ $(STATEDIR)/mesa-demos.targetinstall:
@$(call install_fixup, mesa-demos,DESCRIPTION,missing)
@$(foreach bin, $(MESA_DEMOS_BIN-y), \
- $(call install_copy, mesa-demos, 0, 0, 0755, -, /usr/bin/$(bin));)
+ $(call install_copy, mesa-demos, 0, 0, 0755, -, \
+ /usr/bin/$(bin))$(ptx/nl))
@$(call install_finish, mesa-demos)
diff --git a/rules/mesalib.in b/rules/mesalib.in
index af59bf974..984ee7806 100644
--- a/rules/mesalib.in
+++ b/rules/mesalib.in
@@ -8,18 +8,22 @@ menuconfig MESALIB
select HOST_MAKEDEPEND
select HOST_SYSTEM_PYTHON3
select HOST_SYSTEM_PYTHON3_MAKO
+ select HOST_GLSLANG if MESALIB_VULKAN_AMD
+ select HOST_GLSLANG if MESALIB_VULKAN_INTEL
select HOST_GLSLANG if MESALIB_VULKAN_OVERLAY
select GCCLIBS
select GCCLIBS_CXX
select LIBDRM
- select LIBDRM_INTEL if MESALIB_DRI_I915 || MESALIB_DRI_I965
+ select LIBVA if MESALIB_VA
select WAYLAND if MESALIB_EGL_WAYLAND
select WAYLAND_PROTOCOLS if MESALIB_EGL_WAYLAND
- select LIBDRM_RADEON if MESALIB_DRI_R200
+ select LIBDRM_AMDGPU if MESALIB_DRI_RADEONSI
select LIBDRM_RADEON if MESALIB_DRI_R300
select LIBDRM_RADEON if MESALIB_DRI_R600
select LIBDRM_RADEON if MESALIB_DRI_RADEONSI
- select LIBDRM_NOUVEAU if MESALIB_DRI_NOUVEAU || MESALIB_DRI_NOUVEAU_VIEUX
+ select LIBDRM_NOUVEAU if MESALIB_DRI_NOUVEAU
+ select LIBELF if MESALIB_DRI_RADEONSI
+ select LLVM if MESALIB_LLVM
select VULKAN_LOADER if MESALIB_DRI_ZINK
select LM_SENSORS if MESALIB_LMSENSORS
select XORGPROTO if MESALIB_GLX
@@ -32,7 +36,7 @@ menuconfig MESALIB
select XORG_LIB_XSHMFENCE if MESALIB_DRI3
select EXPAT
select ZLIB
- select ZSTD if MESALIB_ZSTD
+ select ZSTD if MESALIB_SHADER_CACHE
help
Mesa is a 3-D graphics library with an API which is very
similar to that of OpenGL. See the project homepage for
@@ -45,27 +49,16 @@ if MESALIB
config MESALIB_DRI3
bool
+config MESALIB_LLVM
+ bool
+
comment "Drivers"
config MESALIB_DRI_SWRAST
bool
+ select MESALIB_LLVM
prompt "Software Rasterizer"
-config MESALIB_DRI_I915
- bool
- select MESALIB_OPENGL
- prompt "Intel i915"
-
-config MESALIB_DRI_I965
- bool
- select MESALIB_OPENGL
- prompt "Intel i965"
-
-config MESALIB_DRI_R200
- bool
- select MESALIB_OPENGL
- prompt "AMD R200"
-
config MESALIB_DRI_R300
bool
prompt "AMD R300"
@@ -76,22 +69,24 @@ config MESALIB_DRI_R600
config MESALIB_DRI_RADEONSI
bool
- # needs LLVM
- depends on BROKEN
+ select MESALIB_LLVM
prompt "AMD RadeonSI"
-config MESALIB_DRI_NOUVEAU_VIEUX
- bool
- select MESALIB_OPENGL
- prompt "Nvidia <= GForce4"
-
config MESALIB_DRI_NOUVEAU
bool
prompt "Nvidia > GForce4"
config MESALIB_DRI_KMSRO
bool
- prompt "KMS renderonly"
+ default MESALIB_DRI_V3D || MESALIB_DRI_VC4 || MESALIB_DRI_ETNAVIV || MESALIB_DRI_PANFROST || MESALIB_DRI_LIMA || MESALIB_DRI_FREEDRENO
+
+config MESALIB_DRI_SVGA
+ bool
+ prompt "SVGA"
+
+config MESALIB_DRI_VIRGL
+ bool
+ prompt "VIRGL"
config MESALIB_DRI_FREEDRENO
bool
@@ -103,10 +98,12 @@ config MESALIB_DRI_ETNAVIV
config MESALIB_DRI_V3D
bool
+ select MESALIB_XMLCONFIG
prompt "v3d"
config MESALIB_DRI_VC4
bool
+ select MESALIB_XMLCONFIG
prompt "vc4"
config MESALIB_DRI_PANFROST
@@ -115,6 +112,7 @@ config MESALIB_DRI_PANFROST
config MESALIB_DRI_IRIS
bool
+ select MESALIB_XMLCONFIG
prompt "iris"
config MESALIB_DRI_LIMA
@@ -125,6 +123,17 @@ config MESALIB_DRI_ZINK
bool
prompt "zink"
+config MESALIB_DRI_ASAHI
+ bool
+ # needs libclc
+ depends on BROKEN
+ prompt "asahi"
+
+config MESALIB_DRI_CROCUS
+ bool
+ select MESALIB_XMLCONFIG
+ prompt "crocus"
+
comment "API Support"
config MESALIB_OPENGL
@@ -156,6 +165,51 @@ config MESALIB_GBM
bool
prompt "GBM"
+config MESALIB_VA
+ bool
+ depends on MESALIB_DRI_RADEONSI || MESALIB_DRI_R600 || MESALIB_DRI_NOUVEAU
+ prompt "VA"
+
+if MESALIB_VA
+
+menu "Patent encumbered video codecs"
+
+config MESALIB_VIDEO_VC1DEC
+ bool
+ prompt "VC-1 decoding"
+
+config MESALIB_VIDEO_H264DEC
+ bool
+ prompt "H.264 decoding"
+
+config MESALIB_VIDEO_H264ENC
+ bool
+ prompt "H.264 encoding"
+
+config MESALIB_VIDEO_H265DEC
+ bool
+ prompt "H.265 decoding"
+
+config MESALIB_VIDEO_H265ENC
+ bool
+ prompt "H.265 encoding"
+
+config MESALIB_VIDEO_AV1DEC
+ bool
+ prompt "AV1 decoding"
+
+config MESALIB_VIDEO_AV1ENC
+ bool
+ prompt "AV1 encoding"
+
+config MESALIB_VIDEO_VP9DEC
+ bool
+ prompt "VP9 decoding"
+
+endmenu
+
+endif
+
comment "Platforms"
config MESALIB_EGL_X11
@@ -189,29 +243,42 @@ comment "Vulkan drivers"
config MESALIB_VULKAN_AMD
bool
- # needs LLVM
- depends on BROKEN
+ select MESALIB_LLVM
prompt "AMD (Radv)"
config MESALIB_VULKAN_BROADCOM
bool
+ select MESALIB_XMLCONFIG
prompt "Broadcom"
config MESALIB_VULKAN_INTEL
bool
+ select MESALIB_XMLCONFIG
prompt "Intel (Anvil)"
+config MESALIB_VULKAN_INTEL_HASVK
+ bool
+ select MESALIB_XMLCONFIG
+ prompt "Intel (hasvk)"
+
config MESALIB_VULKAN_FREEDRENO
bool
prompt "Freedreno (Turnip)"
+config MESALIB_VULKAN_PANFROST
+ bool
+ prompt "Panfrost"
+
config MESALIB_VULKAN_SWRAST
bool
- # needs LLVM
- depends on BROKEN
select MESALIB_DRI_SWRAST
prompt "Software Rasterizer"
+config MESALIB_VULKAN_VIRTIO
+ bool
+ select MESALIB_XMLCONFIG
+ prompt "Virtio-GPU Venus"
+
comment "Vulkan layers"
config MESALIB_VULKAN_DEVICE_SELECT
@@ -226,9 +293,13 @@ config MESALIB_VULKAN_OVERLAY
bool
prompt "Overlay layer"
-config MESALIB_ZSTD
+config MESALIB_SHADER_CACHE
+ bool
+ prompt "enable shader cache"
+
+config MESALIB_XMLCONFIG
bool
- prompt "use Zstandard for shader cache compression"
+ prompt "build custom xmlconfig (driconf) support"
endif
diff --git a/rules/mesalib.make b/rules/mesalib.make
index f86da31f2..4a278f6a6 100644
--- a/rules/mesalib.make
+++ b/rules/mesalib.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_MESALIB) += mesalib
#
# Paths and names
#
-MESALIB_VERSION := 21.1.1
-MESALIB_MD5 := 69dc5839192f75991c5f5162d351587f
+MESALIB_VERSION := 24.0.5
+MESALIB_MD5 := 8d8c4bb8d938adcf1aaaaa9381570d45
MESALIB := mesa-$(MESALIB_VERSION)
MESALIB_SUFFIX := tar.xz
MESALIB_URL := \
@@ -24,21 +24,14 @@ MESALIB_SOURCE := $(SRCDIR)/$(MESALIB).$(MESALIB_SUFFIX)
MESALIB_DIR := $(BUILDDIR)/Mesa-$(MESALIB_VERSION)
MESALIB_LICENSE := MIT
MESALIB_LICENSE_FILES := \
- file://docs/license.rst;md5=17a4ea65de7a9ab42437f3131e616a7f
+ file://docs/license.rst;md5=63779ec98d78d823a9dc533a0735ef10
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-ifdef PTXCONF_ARCH_X86
-MESALIB_DRI_DRIVERS-$(PTXCONF_MESALIB_DRI_I915) += i915
-MESALIB_DRI_DRIVERS-$(PTXCONF_MESALIB_DRI_I965) += i965
-endif
-MESALIB_DRI_DRIVERS-$(PTXCONF_MESALIB_DRI_NOUVEAU_VIEUX)+= nouveau
-MESALIB_DRI_DRIVERS-$(PTXCONF_MESALIB_DRI_R200) += r200
-
-MESALIB_GALLIUM_DRIVERS-$(PTXCONF_MESALIB_DRI_KMSRO) += kmsro
-ifndef PTXCONF_ARCH_ARM # broken: https://bugs.freedesktop.org/show_bug.cgi?id=72064
+MESALIB_GALLIUM_DRIVERS-$(PTXCONF_MESALIB_DRI_VIRGL) += virgl
+ifndef PTXCONF_ARCH_ARM # broken: https://gitlab.freedesktop.org/mesa/mesa/-/issues/473
ifndef PTXCONF_ARCH_X86 # needs llvm
MESALIB_GALLIUM_DRIVERS-$(PTXCONF_MESALIB_DRI_R300) += r300
endif
@@ -59,41 +52,69 @@ ifdef PTXCONF_ARCH_X86
MESALIB_GALLIUM_DRIVERS-$(PTXCONF_MESALIB_DRI_IRIS) += iris
endif
MESALIB_GALLIUM_DRIVERS-$(PTXCONF_MESALIB_DRI_ZINK) += zink
-
-MESALIB_DRI_LIBS-y = \
- $(subst nouveau,nouveau_vieux,$(MESALIB_DRI_DRIVERS-y))
+MESALIB_GALLIUM_DRIVERS-$(PTXCONF_MESALIB_DRI_ASAHI) += asahi
+ifdef PTXCONF_ARCH_X86
+MESALIB_GALLIUM_DRIVERS-$(PTXCONF_MESALIB_DRI_CROCUS) += crocus
+MESALIB_GALLIUM_DRIVERS-$(PTXCONF_MESALIB_DRI_SVGA) += svga
+endif
MESALIB_DRI_GALLIUM_LIBS-y = \
- $(subst kmsro, \
+ $(call ptx/ifdef, PTXCONF_MESALIB_DRI_KMSRO, \
armada-drm \
exynos \
hx8357d \
ili9225 \
ili9341 \
+ imx-dcss \
imx-drm \
+ imx-lcdif \
ingenic-drm \
+ kirin \
+ komeda \
+ mali-dp \
mcde \
+ mediatek \
meson \
mi0283qt \
mxsfb-drm \
pl111 \
+ rcar-du \
repaper \
rockchip \
st7586 \
st7735r \
stm \
- sun4i-drm \
- ,$(subst freedreno,kgsl,$(MESALIB_GALLIUM_DRIVERS-y)))
+ sun4i-drm) \
+ $(subst swrast,swrast kms_swrast \
+ ,$(subst freedreno,kgsl msm \
+ ,$(subst svga,vmwgfx \
+ ,$(subst virgl,virtio_gpu \
+ ,$(MESALIB_GALLIUM_DRIVERS-y) \
+ ))))
+
+MESALIB_VIDEO_CODECS-$(PTXCONF_MESALIB_VIDEO_VC1DEC) += vc1dec
+MESALIB_VIDEO_CODECS-$(PTXCONF_MESALIB_VIDEO_H264DEC) += h264dec
+MESALIB_VIDEO_CODECS-$(PTXCONF_MESALIB_VIDEO_H264ENC) += h264enc
+MESALIB_VIDEO_CODECS-$(PTXCONF_MESALIB_VIDEO_H265DEC) += h265dec
+MESALIB_VIDEO_CODECS-$(PTXCONF_MESALIB_VIDEO_H265ENC) += h265enc
+MESALIB_VIDEO_CODECS-$(PTXCONF_MESALIB_VIDEO_AV1DEC) += av1dec
+MESALIB_VIDEO_CODECS-$(PTXCONF_MESALIB_VIDEO_AV1ENC) += av1enc
+MESALIB_VIDEO_CODECS-$(PTXCONF_MESALIB_VIDEO_VP9DEC) += vp9dec
ifdef PTXCONF_ARCH_X86
MESALIB_VULKAN_DRIVERS-$(PTXCONF_MESALIB_VULKAN_AMD) += amd
MESALIB_VULKAN_DRIVERS-$(PTXCONF_MESALIB_VULKAN_INTEL) += intel
+MESALIB_VULKAN_DRIVERS-$(PTXCONF_MESALIB_VULKAN_INTEL_HASVK) += intel_hasvk
endif
-ifdef PTXCONF_ARCH_ARM
+ifdef PTXCONF_ARCH_ARM_NEON
MESALIB_VULKAN_DRIVERS-$(PTXCONF_MESALIB_VULKAN_BROADCOM) += broadcom
+endif
+ifdef PTXCONF_ARCH_ARM
MESALIB_VULKAN_DRIVERS-$(PTXCONF_MESALIB_VULKAN_FREEDRENO) += freedreno
+MESALIB_VULKAN_DRIVERS-$(PTXCONF_MESALIB_VULKAN_PANFROST) += panfrost
endif
MESALIB_VULKAN_DRIVERS-$(PTXCONF_MESALIB_VULKAN_SWRAST) += swrast
+MESALIB_VULKAN_DRIVERS-$(PTXCONF_MESALIB_VULKAN_VIRTIO) += virtio
MESALIB_VULKAN_LIBS-y = $(subst amd,radeon,$(subst swrast,lvp,$(MESALIB_VULKAN_DRIVERS-y)))
@@ -108,34 +129,56 @@ MESALIB_LIBS-$(PTXCONF_MESALIB_GLES2) += libGLESv2
MESALIB_LIBS-$(PTXCONF_MESALIB_EGL) += libEGL
MESALIB_LIBS-$(PTXCONF_MESALIB_GBM) += libgbm
-MESALIBS_EGL_PLATFORMS-$(PTXCONF_MESALIB_EGL_X11) += x11
MESALIBS_EGL_PLATFORMS-$(PTXCONF_MESALIB_EGL_WAYLAND) += wayland
+MESALIBS_EGL_PLATFORMS-$(PTXCONF_MESALIB_EGL_X11) += x11
+
+ifdef PTXCONF_MESALIB_VA
+ifndef PTXCONF_ARCH_ARM # broken: https://gitlab.freedesktop.org/mesa/mesa/-/issues/473
+MESALIB_DRI_VA_LIBS-$(PTXCONF_MESALIB_DRI_R600) += r600
+MESALIB_DRI_VA_LIBS-$(PTXCONF_MESALIB_DRI_RADEONSI) += radeonsi
+endif
+MESALIB_DRI_VA_LIBS-$(PTXCONF_MESALIB_DRI_NOUVEAU) += nouveau
+endif
+
+MESALIB_MESON_CROSS_FILE := $(call ptx/get-alternative, config/meson, mesalib-cross-file.meson)
MESALIB_CONF_TOOL := meson
MESALIB_CONF_OPT := \
$(CROSS_MESON_USR) \
+ -Dallow-kcmp=enabled \
+ -Dandroid-libbacktrace=disabled \
+ -Dandroid-strict=true \
-Dandroid-stub=false \
-Dbuild-aco-tests=false \
-Dbuild-tests=false \
+ -Dcustom-shader-replacement= \
-Dd3d-drivers-path=/usr/lib/d3d \
+ -Ddatasources=auto \
-Ddraw-use-llvm=true \
- -Ddri-drivers=$(subst $(space),$(comma),$(MESALIB_DRI_DRIVERS-y)) \
-Ddri-drivers-path=/usr/lib/dri \
-Ddri-search-path=/usr/lib/dri \
-Ddri3=$(call ptx/endis, PTXCONF_MESALIB_DRI3)d \
-Degl=$(call ptx/endis, PTXCONF_MESALIB_EGL)d \
-Degl-lib-suffix= \
- -Dfreedreno-kgsl=false \
+ -Degl-native-platform=auto \
+ -Denable-glcpp-tests=false \
+ -Dexecmem=true \
+ -Dexpat=enabled \
+ -Dfreedreno-kmds=msm \
+ -Dgallium-d3d10umd=false \
+ -Dgallium-d3d12-video=disabled \
-Dgallium-drivers=$(subst $(space),$(comma),$(MESALIB_GALLIUM_DRIVERS-y)) \
-Dgallium-extra-hud=$(call ptx/truefalse, PTXCONF_MESALIB_EXTENDED_HUD) \
-Dgallium-nine=false \
-Dgallium-omx=disabled \
-Dgallium-opencl=disabled \
- -Dgallium-va=disabled \
+ -Dgallium-rusticl=false \
+ -Dgallium-va=$(call ptx/endis, PTXCONF_MESALIB_VA)d \
-Dgallium-vdpau=disabled \
+ -Dgallium-windows-dll-name=libgallium_wgl \
-Dgallium-xa=disabled \
- -Dgallium-xvmc=disabled \
-Dgbm=$(call ptx/endis, PTXCONF_MESALIB_GBM)d \
+ -Dgbm-backends-path= \
-Dgles-lib-suffix= \
-Dgles1=$(call ptx/endis, PTXCONF_MESALIB_GLES1)d \
-Dgles2=$(call ptx/endis, PTXCONF_MESALIB_GLES2)d \
@@ -144,51 +187,66 @@ MESALIB_CONF_OPT := \
-Dglx=$(call ptx/ifdef, PTXCONF_MESALIB_GLX, dri, disabled) \
-Dglx-direct=true \
-Dglx-read-only-text=false \
+ -Dgpuvis=false \
+ -Dimagination-srv=false \
-Dinstall-intel-gpu-tests=false \
+ -Dintel-clc=disabled \
-Dlibunwind=disabled \
- -Dllvm=disabled \
+ -Dllvm=$(call ptx/endis, PTXCONF_MESALIB_LLVM)d \
-Dlmsensors=$(call ptx/endis, PTXCONF_MESALIB_LMSENSORS)d \
-Dmicrosoft-clc=disabled \
+ -Dmin-windows-version=8 \
+ -Dmoltenvk-dir= \
-Domx-libs-path=/usr/lib/dri \
- -Dopencl-native=false \
+ -Dopencl-external-clang-headers=disabled \
-Dopencl-spirv=false \
-Dopengl=$(call ptx/truefalse, PTXCONF_MESALIB_OPENGL) \
-Dosmesa=false \
- -Dosmesa-bits=8 \
+ -Dperfetto=false \
-Dplatform-sdk-version=25 \
-Dplatforms=$(subst $(space),$(comma),$(MESALIBS_EGL_PLATFORMS-y)) \
-Dpower8=disabled \
- -Dprefer-iris=true \
+ -Dradv-build-id='' \
-Dselinux=false \
- -Dshader-cache=$(call ptx/endis, PTXCONF_MESALIB_VULKAN_AMD)d \
+ -Dshader-cache=$(call ptx/endis, PTXCONF_MESALIB_SHADER_CACHE)d \
-Dshader-cache-default=true \
-Dshader-cache-max-size=1G \
-Dshared-glapi=enabled \
- -Dshared-llvm=disabled \
- -Dshared-swr=true \
+ -Dshared-llvm=enabled \
-Dspirv-to-dxil=false \
-Dsse2=true \
-Dstatic-libclc=[] \
- -Dswr-arches=[] \
-Dtools=[] \
-Dva-libs-path=/usr/lib/dri \
-Dvalgrind=disabled \
-Dvdpau-libs-path=/usr/lib/vdpau \
+ -Dvideo-codecs=$(subst $(space),$(comma),$(MESALIB_VIDEO_CODECS-y)) \
+ -Dvmware-mks-stats=false \
+ -Dvulkan-beta=false \
-Dvulkan-drivers=$(subst $(space),$(comma),$(MESALIB_VULKAN_DRIVERS-y)) \
-Dvulkan-icd-dir=/etc/vulkan/icd.d \
-Dvulkan-layers=$(subst $(space),$(comma),$(MESALIB_VULKAN_LAYERS-y)) \
-Dxlib-lease=$(call ptx/endis, PTXCONF_MESALIB_EGL_X11)d \
- -Dxvmc-libs-path=/usr/lib \
+ -Dxmlconfig=$(call ptx/endis, PTXCONF_MESALIB_XMLCONFIG)d \
-Dzlib=enabled \
- -Dzstd=$(call ptx/endis, PTXCONF_MESALIB_ZSTD)d
+ -Dzstd=$(call ptx/endis, PTXCONF_MESALIB_SHADER_CACHE)d \
+ \
+ --cross-file $(MESALIB_MESON_CROSS_FILE)
# ----------------------------------------------------------------------------
# Compile
# ----------------------------------------------------------------------------
+ifdef PTXCONF_ARCH_ARM
+ifndef PTXCONF_ARCH_ARM_NEON
+# don't try to build NEON code on platforms that don't have NEON
+MESALIB_CFLAGS := -DNO_FORMAT_ASM
+endif
+endif
+
$(STATEDIR)/mesalib.compile:
@$(call targetinfo)
- cp $(PTXDIST_SYSROOT_HOST)/bin/mesa/glsl_compiler $(MESALIB_DIR)/src/compiler/
+ cp $(PTXDIST_SYSROOT_HOST)/usr/bin/mesa/glsl_compiler $(MESALIB_DIR)/src/compiler/
@$(call world/compile, MESALIB)
@$(call touch)
@@ -205,19 +263,28 @@ $(STATEDIR)/mesalib.targetinstall:
@$(call install_fixup, mesalib,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
@$(call install_fixup, mesalib,DESCRIPTION,missing)
- @$(foreach lib, $(MESALIB_DRI_LIBS-y), \
- $(call install_copy, mesalib, 0, 0, 0644, -, \
- /usr/lib/dri/$(lib)_dri.so)$(ptx/nl))
-
ifneq ($(strip $(MESALIB_DRI_GALLIUM_LIBS-y)),)
@$(call install_copy, mesalib, 0, 0, 0644, \
$(MESALIB_PKGDIR)/usr/lib/dri/$(firstword $(MESALIB_DRI_GALLIUM_LIBS-y))_dri.so, \
/usr/lib/dri/gallium_dri.so)
@$(foreach lib, $(MESALIB_DRI_GALLIUM_LIBS-y), \
+ test -f $(MESALIB_PKGDIR)/usr/lib/dri/$(lib)_dri.so || \
+ ptxd_bailout "missing gallium driver $(lib)_dri.so"$(ptx/nl) \
$(call install_link, mesalib, gallium_dri.so, \
/usr/lib/dri/$(lib)_dri.so)$(ptx/nl))
endif
+ifneq ($(strip $(MESALIB_DRI_VA_LIBS-y)),)
+ @$(call install_copy, mesalib, 0, 0, 0644, \
+ $(MESALIB_PKGDIR)/usr/lib/dri/$(firstword $(MESALIB_DRI_VA_LIBS-y))_drv_video.so, \
+ /usr/lib/dri/va_dri.so)
+
+ @$(foreach lib, $(MESALIB_DRI_VA_LIBS-y), \
+ test -f $(MESALIB_PKGDIR)/usr/lib/dri/$(lib)_drv_video.so || \
+ ptxd_bailout "missing va driver $(lib)_drv_video.so"$(ptx/nl) \
+ $(call install_link, mesalib, va_dri.so, \
+ /usr/lib/dri/$(lib)_drv_video.so)$(ptx/nl))
+endif
ifneq ($(strip $(MESALIB_VULKAN_LIBS-y)),)
@$(foreach lib, $(MESALIB_VULKAN_LIBS-y), \
diff --git a/rules/mgetty.in b/rules/mgetty.in
deleted file mode 100644
index b8c969773..000000000
--- a/rules/mgetty.in
+++ /dev/null
@@ -1,80 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=communication
-#
-menuconfig MGETTY
- tristate
- prompt "mgetty & sendfax "
- help
- mgetty+sendfax is a reliable and proven fax send and receive solution.
-
- mgetty is a modem-aware getty. It supports modems with the Hayes AT
- command set and is especially designed for supporting modems that
- are used to send faxes and to dial out as well as dial in. These
- features are not required for a serial console.
-
- Sendfax is designed to be able to send exactly one fax (consisting
- of multiple pages) to exactly one fax machine, but it is usable from
- within shell scripts. Its input are pages in "g3" format, either
- created with ghostscript or with pbm2g3.
-
- STAGING: remove in PTXdist 2021.05.0
-
- Really old version that needs to be updated, and license is unclear
- (README says "this is GPL" but doesn't say which version, and no GPL
- text is included)
-
-if MGETTY
-
-config MGETTY_CONFIG
- prompt "Name of policy.h file to be used"
- string
- default "${MGETTY_DIR}/policy.h-dist"
- help
- policy.h-dist is the default policy.h file provided by the
- distribution. It will be renamed to policy.h and used if
- no other policy.h file is supplied.
-
-config MGETTY_INSTALL_CONFIG
- prompt "Install default config files to ${ROOTDIR}/etc/mgetty+sendfax"
- bool
- default y
- help
- Enabling this option installs mgetty's default config files onto your target.
- Say N here if you want to use your own files and make sure they're installed
- by your vendortweaks.
-
-config SENDFAX
- prompt "Install sendfax and G3 helper tools"
- bool
- default y
- help
- Choose here if you want to install sendfax in addition
- to mgetty. If you only need mgetty for its getty
- functionality, but are not going to use faxes, you can
- opt to omit sendfax.
-
-config SENDFAX_SPOOL
- bool
- default y
- prompt "Install faxspooling programs"
- help
- This will install
- /usr/bin/faxspool
- /usr/bin/faxrunq
- /usr/bin/faxq
- /usr/bin/faxrm
- /usr/bin/faxrunqd
- /usr/lib/mgetty+sendfax/faxq-helper
-
-
-config MGETTY_CALLBACK
- prompt "Install callback program"
- bool
- help
- The callback utility of mgetty is able to call
- back after a login 'attempt' based on entries in
- /etc/mgetty+sendfax/login.conf
-
-endif
-
diff --git a/rules/mgetty.make b/rules/mgetty.make
deleted file mode 100644
index 657d544cc..000000000
--- a/rules/mgetty.make
+++ /dev/null
@@ -1,109 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2003 by BSP
-# (C) 2010 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_MGETTY) += mgetty
-
-#
-# Paths and names
-#
-MGETTY_VERSION := 1.1.36
-MGETTY_MD5 := 0320e98c6b86bcca48fc5f355b94ead4
-MGETTY_DATE := Jun15
-MGETTY := mgetty-$(MGETTY_VERSION)
-MGETTY_SUFFIX := tar.gz
-MGETTY_URL := ftp://alpha.greenie.net/pub/mgetty/source/1.1/mgetty$(MGETTY_VERSION)-$(MGETTY_DATE).$(MGETTY_SUFFIX)
-MGETTY_SOURCE := $(SRCDIR)/mgetty$(MGETTY_VERSION)-$(MGETTY_DATE).$(MGETTY_SUFFIX)
-MGETTY_DIR := $(BUILDDIR)/$(MGETTY)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/mgetty.prepare:
- @$(call targetinfo)
- cp $(PTXCONF_MGETTY_CONFIG) $(MGETTY_DIR)/policy.h
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Compile
-# ----------------------------------------------------------------------------
-
-MGETTY_DIRS := \
- prefix=/usr \
- CONFDIR=/etc/mgetty+sendfax
-
-MGETTY_MAKE_PAR := NO
-MGETTY_MAKE_OPT := \
- $(CROSS_ENV) \
- $(MGETTY_DIRS) \
- bin-all \
- mgetty.config \
- login.config \
- sendfax.config
-
-$(STATEDIR)/mgetty.compile:
- @$(call targetinfo)
-# FIXME: mol: this should be a host-tool
- cd $(MGETTY_DIR) && make mksed
- @$(call world/compile, MGETTY)
- @$(call touch)
-
-MGETTY_INSTALL_OPT := install.bin $(MGETTY_DIRS)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/mgetty.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, mgetty)
- @$(call install_fixup, mgetty,PRIORITY,optional)
- @$(call install_fixup, mgetty,SECTION,base)
- @$(call install_fixup, mgetty,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, mgetty,DESCRIPTION,missing)
-
- @$(call install_copy, mgetty, 0, 0, 0700, -, /usr/sbin/mgetty)
-
-ifdef PTXCONF_MGETTY_INSTALL_CONFIG
- @$(call install_copy, mgetty, 0, 0, 0600, -, /etc/mgetty+sendfax/login.config, n)
- @$(call install_copy, mgetty, 0, 0, 0600, -, /etc/mgetty+sendfax/mgetty.config, n)
- @$(call install_copy, mgetty, 0, 0, 0600, -, /etc/mgetty+sendfax/dialin.config, n)
-endif
-ifdef PTXCONF_MGETTY_CALLBACK
- @$(call install_copy, mgetty, 0, 0, 4755, -, /usr/sbin/callback)
-endif
-ifdef PTXCONF_SENDFAX
- @$(call install_copy, mgetty, 0, 0, 0755, -, /usr/sbin/sendfax)
- @$(call install_copy, mgetty, 0, 0, 0755, -, /usr/bin/pbm2g3)
- @$(call install_copy, mgetty, 0, 0, 0755, -, /usr/bin/g3cat)
- @$(call install_copy, mgetty, 0, 0, 0755, -, /usr/bin/g32pbm)
-ifdef PTXCONF_MGETTY_INSTALL_CONFIG
- @$(call install_copy, mgetty, 0, 0, 0644, -, /etc/mgetty+sendfax/sendfax.config, n)
-endif
-ifdef PTXCONF_SENDFAX_SPOOL
- @$(call install_copy, mgetty, 0, 0, 0755, -, /usr/bin/faxspool, n)
- @$(call install_copy, mgetty, 0, 0, 0755, -, /usr/bin/faxrunq, n)
- @$(call install_copy, mgetty, 0, 0, 0755, -, /usr/bin/faxq, n)
- @$(call install_copy, mgetty, 0, 0, 0755, -, /usr/bin/faxrm, n)
- @$(call install_copy, mgetty, 0, 0, 0755, -, /usr/sbin/faxrunqd, n)
- @$(call install_copy, mgetty, 0, 0, 0755, -, /usr/lib/mgetty+sendfax/faxq-helper)
-endif
-ifdef PTXCONF_MGETTY_INSTALL_CONFIG
- @$(call install_copy, mgetty, 0, 0, 0644, -, /etc/mgetty+sendfax/faxrunq.config, n)
-endif
-endif
- @$(call install_finish, mgetty)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/microcom.make b/rules/microcom.make
index d8ff76bb8..93dbe59d5 100644
--- a/rules/microcom.make
+++ b/rules/microcom.make
@@ -21,7 +21,7 @@ MICROCOM_SUFFIX := tar.xz
MICROCOM_URL := https://github.com/pengutronix/microcom/releases/download/v$(MICROCOM_VERSION)/microcom-$(MICROCOM_VERSION).$(MICROCOM_SUFFIX)
MICROCOM_SOURCE := $(SRCDIR)/$(MICROCOM).$(MICROCOM_SUFFIX)
MICROCOM_DIR := $(BUILDDIR)/$(MICROCOM)
-MICROCOM_LICENSE := GPL-2.0-only
+MICROCOM_LICENSE := GPL-2.0-or-later
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/mii-diag.make b/rules/mii-diag.make
index 541521de5..8536b51bb 100644
--- a/rules/mii-diag.make
+++ b/rules/mii-diag.make
@@ -29,9 +29,6 @@ MII_DIAG_LICENSE := GPL
# Prepare
# ----------------------------------------------------------------------------
-MII_DIAG_PATH := PATH=$(CROSS_PATH)
-MII_DIAG_ENV := $(CROSS_ENV)
-
MII_DIAG_MAKE_OPT := $(CROSS_ENV_CC) mii-diag
MII_DIAG_INSTALL_OPT := install-mii-diag
diff --git a/rules/minicom.in b/rules/minicom.in
index d3580bda0..da6816c03 100644
--- a/rules/minicom.in
+++ b/rules/minicom.in
@@ -4,10 +4,9 @@ menuconfig MINICOM
tristate
prompt "minicom "
select NCURSES
- select ROOTFS
select ROOTFS_VAR_LOCK
select CKERMIT if MINICOM_KERMIT
- help
+ help
friendly menu driven serial communication program
Minicom is a clone of the MS-DOS "Telix" communication
@@ -20,7 +19,7 @@ config MINICOM_DEFCONFIG
bool
prompt "install default config file"
help
- Install /etc/minirc.dfl config file from projectroot or ptxdist generic.
+ Install /etc/minirc.dfl config file from projectroot or ptxdist generic.
config MINICOM_KERMIT
bool
diff --git a/rules/minicom.make b/rules/minicom.make
index e757b3230..473a3668b 100644
--- a/rules/minicom.make
+++ b/rules/minicom.make
@@ -16,12 +16,11 @@ PACKAGES-$(PTXCONF_MINICOM) += minicom
#
# Paths and names
#
-MINICOM_VERSION := 2.8
-MINICOM_MD5 := d32eb2e615f286611c4d1877a25939be
+MINICOM_VERSION := 2.9
+MINICOM_MD5 := e61ea3d07e73e245513c119e91989254
MINICOM_SUFFIX := tar.bz2
MINICOM := minicom-$(MINICOM_VERSION)
-MINICOM_TARBALL := minicom_$(MINICOM_VERSION).orig.$(MINICOM_SUFFIX)
-MINICOM_URL := http://snapshot.debian.org/archive/debian/20210524T032801Z/pool/main/m/minicom/$(MINICOM_TARBALL)
+MINICOM_URL := https://salsa.debian.org/minicom-team/minicom/-/archive/$(MINICOM_VERSION)/$(MINICOM).$(MINICOM_SUFFIX)
MINICOM_SOURCE := $(SRCDIR)/$(MINICOM).$(MINICOM_SUFFIX)
MINICOM_DIR := $(BUILDDIR)/$(MINICOM)
MINICOM_LICENSE := LGPL-2.0-or-later AND xinetd AND GPL-2.0-or-later
@@ -41,9 +40,11 @@ MINICOM_LICENSE_FILES := \
MINICOM_CONF_TOOL := autoconf
MINICOM_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
+ $(GLOBAL_LARGE_FILE_OPTION) \
--disable-rpath \
--disable-music \
--enable-socket \
+ --enable-lockdev \
--enable-lock-dir=/var/lock \
--enable-dfl-port=/dev/modem \
--enable-dfl-baud=115200 \
diff --git a/rules/minisign.in b/rules/minisign.in
new file mode 100644
index 000000000..d1efe3b45
--- /dev/null
+++ b/rules/minisign.in
@@ -0,0 +1,13 @@
+## SECTION=applications
+
+config MINISIGN
+ tristate
+ prompt "minisign"
+ select HOST_CMAKE
+ select GCCLIBS_GCC_S
+ select LIBC_M
+ select LIBSODIUM
+ help
+ Minisign is a dead simple tool to sign files and verify signatures.
+ It is portable, lightweight, and uses the highly secure Ed25519
+ public-key signature system.
diff --git a/rules/minisign.make b/rules/minisign.make
new file mode 100644
index 000000000..a90cad200
--- /dev/null
+++ b/rules/minisign.make
@@ -0,0 +1,57 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Clemens Gruber <clemens.gruber@pqgruber.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_MINISIGN) += minisign
+
+#
+# Paths and names
+#
+MINISIGN_VERSION := 0.11
+MINISIGN_MD5 := 1565d40ec75b9602e84379c9f1e96371
+MINISIGN := minisign-$(MINISIGN_VERSION)
+MINISIGN_SUFFIX := tar.gz
+MINISIGN_URL := https://github.com/jedisct1/minisign/archive/refs/tags/$(MINISIGN_VERSION).$(MINISIGN_SUFFIX)
+MINISIGN_SOURCE := $(SRCDIR)/$(MINISIGN).$(MINISIGN_SUFFIX)
+MINISIGN_DIR := $(BUILDDIR)/$(MINISIGN)
+MINISIGN_LICENSE := ISC
+MINISIGN_LICENSE_FILES := file://LICENSE;md5=ae8e10a2c8237f13943f14fa3ffe437a
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# cmake
+#
+MINISIGN_CONF_TOOL := cmake
+MINISIGN_CONF_OPT := \
+ $(CROSS_CMAKE_USR)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/minisign.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, minisign)
+ @$(call install_fixup, minisign,PRIORITY,optional)
+ @$(call install_fixup, minisign,SECTION,base)
+ @$(call install_fixup, minisign,AUTHOR,"Clemens Gruber <clemens.gruber@pqgruber.com>")
+ @$(call install_fixup, minisign,DESCRIPTION,missing)
+
+ @$(call install_copy, minisign, 0, 0, 0755, -, /usr/bin/minisign)
+
+ @$(call install_finish, minisign)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/mlpack.in b/rules/mlpack.in
new file mode 100644
index 000000000..d34e50a4c
--- /dev/null
+++ b/rules/mlpack.in
@@ -0,0 +1,26 @@
+## SECTION=system_libraries
+
+menuconfig MLPACK
+ tristate
+ select HOST_CMAKE
+ select GCCLIBS_CXX
+ select GCCLIBS_GOMP
+ select ARMADILLO
+ select CEREAL
+ select ENSMALLEN
+ select OPENBLAS
+ prompt "mlpack "
+ help
+ Machine Learning Pack (mlpack) is an intuitive, fast, scalable C++
+ machine learning library, meant to be a machine learning analog to
+ LAPACK. It aims to implement a wide array of machine learning
+ methods and function as a “swiss army knife†for machine learning
+ researchers.
+
+if MLPACK
+
+config MLPACK_TOOLS
+ bool
+ prompt "install tools"
+
+endif
diff --git a/rules/mlpack.make b/rules/mlpack.make
new file mode 100644
index 000000000..f72add03f
--- /dev/null
+++ b/rules/mlpack.make
@@ -0,0 +1,80 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_MLPACK) += mlpack
+
+#
+# Paths and names
+#
+MLPACK_VERSION := 4.2.1
+MLPACK_MD5 := e1211d743ae36ec997393ee37da8bd47
+MLPACK := mlpack-$(MLPACK_VERSION)
+MLPACK_SUFFIX := tar.gz
+MLPACK_URL := http://mlpack.org/files/$(MLPACK).$(MLPACK_SUFFIX)
+MLPACK_SOURCE := $(SRCDIR)/$(MLPACK).$(MLPACK_SUFFIX)
+MLPACK_DIR := $(BUILDDIR)/$(MLPACK)
+MLPACK_LICENSE := BSD-3-Clause
+MLPACK_LICENSE_FILES := \
+ file://COPYRIGHT.txt;md5=da8e2867343cf541d8497084c566817e
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# cmake
+#
+MLPACK_CONF_TOOL := cmake
+MLPACK_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -G Ninja \
+ -DARMA_EXTRA_DEBUG=OFF \
+ -DBOARD_NAME=ptx \
+ -DBUILD_CLI_EXECUTABLES=ON \
+ -DBUILD_GO_BINDINGS=OFF \
+ -DBUILD_GO_SHLIB=OFF \
+ -DBUILD_JULIA_BINDINGS=OFF \
+ -DBUILD_MARKDOWN_BINDINGS=OFF \
+ -DBUILD_PYTHON_BINDINGS=OFF \
+ -DBUILD_R_BINDINGS=OFF \
+ -DBUILD_SHARED_LIBS=ON \
+ -DBUILD_TESTS=OFF \
+ -DCOTIRE_DEBUG=OFF \
+ -DCOTIRE_VERBOSE=OFF \
+ -DDEBUG=OFF \
+ -DDOWNLOAD_DEPENDENCIES=OFF \
+ -DMATHJAX=OFF \
+ -DPROFILE=OFF \
+ -DTEST_VERBOSE=OFF \
+ -DUSE_OPENMP=ON
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/mlpack.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, mlpack)
+ @$(call install_fixup, mlpack,PRIORITY,optional)
+ @$(call install_fixup, mlpack,SECTION,base)
+ @$(call install_fixup, mlpack,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, mlpack,DESCRIPTION,missing)
+
+ifdef PTXCONF_MLPACK_TOOLS
+ @$(call install_tree, mlpack, 0, 0, -, /usr/bin)
+endif
+
+ @$(call install_finish, mlpack)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/mmc-utils.make b/rules/mmc-utils.make
index 5929d0788..41d4e299e 100644
--- a/rules/mmc-utils.make
+++ b/rules/mmc-utils.make
@@ -15,14 +15,18 @@ PACKAGES-$(PTXCONF_MMC_UTILS) += mmc-utils
# Paths and names
#
# No tags: use a fake descriptive commit-ish to include the date
-MMC_UTILS_VERSION := 2019-10-04-g73d6c59af8d1
-MMC_UTILS_MD5 := 5d7c8db4f1735111d42773799e1a84bc
+MMC_UTILS_VERSION := 2022-09-27-gdfc3b6ecda84
+MMC_UTILS_MD5 := 791e4c512cb044045ae34d7f4b781ac1
MMC_UTILS := mmc-utils-$(MMC_UTILS_VERSION)
MMC_UTILS_SUFFIX := tar.gz
-MMC_UTILS_URL := https://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git;tag=$(MMC_UTILS_VERSION)
+MMC_UTILS_URL := https://git.kernel.org/pub/scm/utils/mmc/mmc-utils.git/snapshot/$(MMC_UTILS).$(MMC_UTILS_SUFFIX)
MMC_UTILS_SOURCE := $(SRCDIR)/$(MMC_UTILS).$(MMC_UTILS_SUFFIX)
MMC_UTILS_DIR := $(BUILDDIR)/$(MMC_UTILS)
MMC_UTILS_LICENSE := GPL-2.0-only AND BSD-3-Clause
+MMC_UTILS_LICENSE_FILES := \
+ file://README;startline=28;endline=31;md5=73e5e3ce638b21eca6e204e260201d4a \
+ file://mmc.c;startline=1;endline=20;md5=fae32792e20f4d27ade1c5a762d16b7d \
+ file://3rdparty/hmac_sha/sha2.h;startline=1;endline=36;md5=6ce341e87c5fcac36e417f4a0e283afd
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/mobile-broadband-provider-info.make b/rules/mobile-broadband-provider-info.make
index f5adb6a5c..57f992073 100644
--- a/rules/mobile-broadband-provider-info.make
+++ b/rules/mobile-broadband-provider-info.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_MOBILE_BROADBAND_PROVIDER_INFO) += mobile-broadband-provider-
#
# Paths and names
#
-MOBILE_BROADBAND_PROVIDER_INFO_VERSION := 20190618
-MOBILE_BROADBAND_PROVIDER_INFO_MD5 := ffd3ade88953ce3cac9e548949745609
-MOBILE_BROADBAND_PROVIDER_INFO := mobile-broadband-provider-info-$(MOBILE_BROADBAND_PROVIDER_INFO_VERSION)
-MOBILE_BROADBAND_PROVIDER_INFO_SUFFIX := tar.xz
-MOBILE_BROADBAND_PROVIDER_INFO_URL := $(call ptx/mirror, GNOME, mobile-broadband-provider-info/$(MOBILE_BROADBAND_PROVIDER_INFO_VERSION)/$(MOBILE_BROADBAND_PROVIDER_INFO).$(MOBILE_BROADBAND_PROVIDER_INFO_SUFFIX))
-MOBILE_BROADBAND_PROVIDER_INFO_SOURCE := $(SRCDIR)/$(MOBILE_BROADBAND_PROVIDER_INFO).$(MOBILE_BROADBAND_PROVIDER_INFO_SUFFIX)
-MOBILE_BROADBAND_PROVIDER_INFO_DIR := $(BUILDDIR)/$(MOBILE_BROADBAND_PROVIDER_INFO)
-MOBILE_BROADBAND_PROVIDER_INFO_LICENSE := public_domain
+MOBILE_BROADBAND_PROVIDER_INFO_VERSION := 20220725
+MOBILE_BROADBAND_PROVIDER_INFO_MD5 := f283369e5b1d46a77bded8f7754ad3c3
+MOBILE_BROADBAND_PROVIDER_INFO := mobile-broadband-provider-info-$(MOBILE_BROADBAND_PROVIDER_INFO_VERSION)
+MOBILE_BROADBAND_PROVIDER_INFO_SUFFIX := tar.xz
+MOBILE_BROADBAND_PROVIDER_INFO_URL := $(call ptx/mirror, GNOME, mobile-broadband-provider-info/$(MOBILE_BROADBAND_PROVIDER_INFO_VERSION)/$(MOBILE_BROADBAND_PROVIDER_INFO).$(MOBILE_BROADBAND_PROVIDER_INFO_SUFFIX))
+MOBILE_BROADBAND_PROVIDER_INFO_SOURCE := $(SRCDIR)/$(MOBILE_BROADBAND_PROVIDER_INFO).$(MOBILE_BROADBAND_PROVIDER_INFO_SUFFIX)
+MOBILE_BROADBAND_PROVIDER_INFO_DIR := $(BUILDDIR)/$(MOBILE_BROADBAND_PROVIDER_INFO)
+MOBILE_BROADBAND_PROVIDER_INFO_LICENSE := public_domain
+MOBILE_BROADBAND_PROVIDER_INFO_LICENSE_FILES := \
+ file://COPYING;md5=87964579b2a8ece4bc6744d2dc9a8b04
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/modemmanager.in b/rules/modemmanager.in
index 5b8d03016..bac104699 100644
--- a/rules/modemmanager.in
+++ b/rules/modemmanager.in
@@ -2,7 +2,8 @@
menuconfig MODEMMANAGER
tristate
- select DBUS if MODEMMANAGER_ALLOW_DBUS_AT_CMDS && RUNTIME
+ select HOST_MESON
+ select DBUS
select GLIB
select UDEV
select LIBGUDEV
diff --git a/rules/modemmanager.make b/rules/modemmanager.make
index 18191583c..27d2da805 100644
--- a/rules/modemmanager.make
+++ b/rules/modemmanager.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_MODEMMANAGER) += modemmanager
#
# Paths and names
#
-MODEMMANAGER_VERSION := 1.16.2
-MODEMMANAGER_MD5 := 83c5fc0bf65b8f321532b61b5f2b0b51
+MODEMMANAGER_VERSION := 1.20.6
+MODEMMANAGER_MD5 := 1c4554dd34a5ae7d02e7cb36cc9e2ec4
MODEMMANAGER := ModemManager-$(MODEMMANAGER_VERSION)
-MODEMMANAGER_SUFFIX := tar.xz
-MODEMMANAGER_URL := https://www.freedesktop.org/software/ModemManager/$(MODEMMANAGER).$(MODEMMANAGER_SUFFIX)
+MODEMMANAGER_SUFFIX := tar.bz2
+MODEMMANAGER_URL := https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/archive/$(MODEMMANAGER_VERSION)/$(MODEMMANAGER).$(MODEMMANAGER_SUFFIX)
MODEMMANAGER_SOURCE := $(SRCDIR)/$(MODEMMANAGER).$(MODEMMANAGER_SUFFIX)
MODEMMANAGER_DIR := $(BUILDDIR)/$(MODEMMANAGER)
MODEMMANAGER_LICENSE := GPL-2.0-or-later AND LGPL-2.1-or-later
@@ -30,37 +30,31 @@ MODEMMANAGER_LICENSE_FILES := \
# Prepare
# ----------------------------------------------------------------------------
-#MODEMMANAGER_CONF_ENV := $(CROSS_ENV)
-
#
-# autoconf
+# meson
#
-MODEMMANAGER_CONF_TOOL := autoconf
+MODEMMANAGER_CONF_TOOL := meson
MODEMMANAGER_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --disable-compile-warnings \
- --disable-Werror \
- --disable-gtk-doc \
- --disable-gtk-doc-html \
- --disable-gtk-doc-pdf \
- --disable-nls \
- --disable-rpath \
- --disable-code-coverage \
- --disable-introspection \
- --disable-vala \
- --enable-all-plugins \
- --with-gnu-ld \
- --without-gcov \
- --with-dbus-sys-dir=/usr/share/dbus-1/system.d \
- --with-udev-base-dir=/usr/lib/udev \
- --with-systemdsystemunitdir=/usr/lib/systemd/system \
- --with-udev \
- --$(call ptx/wwo, PTXCONF_INITMETHOD_SYSTEMD)-systemd-suspend-resume \
- --$(call ptx/wwo, PTXCONF_INITMETHOD_SYSTEMD)-systemd-journal \
- --without-polkit \
- --$(call ptx/wwo, PTXCONF_MODEMMANAGER_ALLOW_DBUS_AT_CMDS)-at-command-via-dbus \
- --with-mbim \
- --with-qmi
+ $(CROSS_MESON_USR) \
+ -Dudev=true \
+ -Dudevdir=/usr/lib/udev \
+ -Dtests=false \
+ -Ddbus_policy_dir=/usr/share/dbus-1/system.d \
+ -Dsystemdsystemunitdir=/usr/lib/systemd/system \
+ -Dsystemd_suspend_resume=$(call ptx/truefalse, PTXCONF_INITMETHOD_SYSTEMD) \
+ -Dpowerd_suspend_resume=false \
+ -Dsystemd_journal=$(call ptx/truefalse, PTXCONF_INITMETHOD_SYSTEMD) \
+ -Dpolkit=no \
+ -Dat_command_via_dbus=$(call ptx/truefalse, PTXCONF_MODEMMANAGER_ALLOW_DBUS_AT_CMDS) \
+ -Dmbim=true \
+ -Dqmi=true \
+ -Dqrtr=false \
+ -Dintrospection=false \
+ -Dvapi=false \
+ -Dgtk_doc=false \
+ -Dman=false \
+ -Dbash_completion=false \
+ -Dexamples=false
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/module-init-tools.in b/rules/module-init-tools.in
deleted file mode 100644
index 765de6b97..000000000
--- a/rules/module-init-tools.in
+++ /dev/null
@@ -1,86 +0,0 @@
-## SECTION=shell_and_console
-# module-init-tools configuration
-
-menuconfig MODULE_INIT_TOOLS
- tristate
- prompt "module-init-tools "
- help
- This package contains a set of programs for loading, inserting
- and removing kernel modules for Linux (versions 2.5.48 and
- above).
-
-if MODULE_INIT_TOOLS
-
-config MODULE_INIT_TOOLS_INSMOD
- bool
- prompt "Install insmod on target"
- depends on (!BUSYBOX_INSMOD && !LIBKMOD_INSMOD) || ALLYES
- help
- simple program to insert a module into the Linux Kernel
-
-comment "BusyBox' insmod is selected!"
- depends on BUSYBOX_INSMOD
-
-comment "kmod insmod is selected!"
- depends on LIBKMOD_INSMOD
-
-config MODULE_INIT_TOOLS_RMMOD
- bool
- prompt "Install rmmod on target"
- depends on (!BUSYBOX_RMMOD && !LIBKMOD_RMMOD) || ALLYES
- help
- simple program to remove a module from the Linux Kernel
-
-comment "BusyBox' rmmod is selected!"
- depends on BUSYBOX_RMMOD
-
-comment "kmod rmmod is selected!"
- depends on LIBKMOD_RMMOD
-
-config MODULE_INIT_TOOLS_LSMOD
- bool
- prompt "Install lsmod on target"
- depends on (!BUSYBOX_LSMOD && !LIBKMOD_LSMOD) || ALLYES
- help
- program to show the status of modules in the Linux Kernel
-
-comment "BusyBox' lsmod is selected!"
- depends on BUSYBOX_LSMOD
-
-comment "kmod lsmod is selected!"
- depends on LIBKMOD_LSMOD
-
-config MODULE_INIT_TOOLS_MODINFO
- bool
- prompt "Install modinfo on target"
- depends on (!BUSYBOX_MODINFO && !LIBKMOD_MODINFO) || ALLYES
- help
- program to show information about a Linux Kernel module
-
-comment "BusyBox' modinfo is selected!"
- depends on BUSYBOX_MODINFO
-
-comment "kmod modinfo is selected!"
- depends on LIBKMOD_MODINFO
-
-config MODULE_INIT_TOOLS_MODPROBE
- bool
- prompt "Install modprobe on target"
- depends on (!BUSYBOX_MODPROBE && !LIBKMOD_MODPROBE) || ALLYES
- help
- program to add and remove modules from the Linux Kernel
-
-comment "BusyBox' modprobe is selected!"
- depends on BUSYBOX_MODPROBE
-
-comment "kmod modprobe is selected!"
- depends on LIBKMOD_MODPROBE
-
-config MODULE_INIT_TOOLS_DEPMOD
- bool
- prompt "Install depmod on target"
- depends on (!BUSYBOX_DEPMOD && !LIBKMOD_DEPMOD) || ALLYES
- help
- program to generate modules.dep and map files
-
-endif
diff --git a/rules/module-init-tools.make b/rules/module-init-tools.make
deleted file mode 100644
index a4aa68175..000000000
--- a/rules/module-init-tools.make
+++ /dev/null
@@ -1,76 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2005 Ladislav Michl <ladis@linux-mips.org>
-# 2006, 2008, 2009 by Marc Kleine-Budde <mkl@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_MODULE_INIT_TOOLS) += module-init-tools
-
-#
-# Paths and names
-#
-MODULE_INIT_TOOLS_VERSION := 3.16
-MODULE_INIT_TOOLS_MD5 := bc44832c6e41707b8447e2847d2019f5
-MODULE_INIT_TOOLS := module-init-tools-$(MODULE_INIT_TOOLS_VERSION)
-MODULE_INIT_TOOLS_SUFFIX := tar.bz2
-MODULE_INIT_TOOLS_URL := $(call ptx/mirror, KERNEL, utils/kernel/module-init-tools/$(MODULE_INIT_TOOLS).$(MODULE_INIT_TOOLS_SUFFIX))
-MODULE_INIT_TOOLS_SOURCE := $(SRCDIR)/$(MODULE_INIT_TOOLS).$(MODULE_INIT_TOOLS_SUFFIX)
-MODULE_INIT_TOOLS_DIR := $(BUILDDIR)/$(MODULE_INIT_TOOLS)
-MODULE_INIT_TOOLS_LICENSE := GPL-2.0-only
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-MODULE_INIT_TOOLS_PATH := PATH=$(CROSS_PATH)
-MODULE_INIT_TOOLS_ENV := $(CROSS_ENV)
-MODULE_INIT_TOOLS_MAKEVARS := MAN5="" MAN8=""
-
-#
-# autoconf
-#
-MODULE_INIT_TOOLS_AUTOCONF := $(CROSS_AUTOCONF_USR)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/module-init-tools.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, module-init-tools)
- @$(call install_fixup, module-init-tools,PRIORITY,optional)
- @$(call install_fixup, module-init-tools,SECTION,base)
- @$(call install_fixup, module-init-tools,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, module-init-tools,DESCRIPTION,missing)
-
-ifdef PTXCONF_MODULE_INIT_TOOLS_INSMOD
- @$(call install_copy, module-init-tools, 0, 0, 0755, -, /usr/sbin/insmod)
-endif
-ifdef PTXCONF_MODULE_INIT_TOOLS_RMMOD
- @$(call install_copy, module-init-tools, 0, 0, 0755, -, /usr/sbin/rmmod)
-endif
-ifdef PTXCONF_MODULE_INIT_TOOLS_LSMOD
- @$(call install_copy, module-init-tools, 0, 0, 0755, -, /usr/bin/lsmod)
-endif
-ifdef PTXCONF_MODULE_INIT_TOOLS_MODINFO
- @$(call install_copy, module-init-tools, 0, 0, 0755, -, /usr/sbin/modinfo)
-endif
-ifdef PTXCONF_MODULE_INIT_TOOLS_MODPROBE
- @$(call install_copy, module-init-tools, 0, 0, 0755, -, /usr/sbin/modprobe)
-endif
-ifdef PTXCONF_MODULE_INIT_TOOLS_DEPMOD
- @$(call install_copy, module-init-tools, 0, 0, 0755, -, /usr/sbin/depmod)
-endif
-
- @$(call install_finish, module-init-tools)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/mongodb.in b/rules/mongodb.in
new file mode 100644
index 000000000..1d3167dd3
--- /dev/null
+++ b/rules/mongodb.in
@@ -0,0 +1,16 @@
+## SECTION=applications
+
+config MONGODB
+ tristate
+ select HOST_PYTHON3_SCONS
+ select HOST_SYSTEM_PYTHON3_CHEETAH3
+ select HOST_SYSTEM_PYTHON3_PSUTIL
+ select HOST_SYSTEM_PYTHON3_PYMONGO
+ select PCRE2
+ select OPENSSL
+ select ZLIB
+ select ZSTD
+ prompt "mongodb"
+ help
+ MongoDB is a document database designed for ease of application
+ development and scaling.
diff --git a/rules/mongodb.make b/rules/mongodb.make
new file mode 100644
index 000000000..291f1638d
--- /dev/null
+++ b/rules/mongodb.make
@@ -0,0 +1,114 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_ARCH_X86_64)-$(PTXCONF_MONGODB) += mongodb
+PACKAGES-$(PTXCONF_ARCH_ARM64)-$(PTXCONF_MONGODB) += mongodb
+PACKAGES-$(PTXCONF_ARCH_RISCV)-$(PTXCONF_MONGODB) += mongodb
+
+#
+# Paths and names
+#
+MONGODB_VERSION := 7.2.2
+MONGODB_MD5 := c46c7daf888a33e2b295c25ece6382a1
+MONGODB := mongodb-$(MONGODB_VERSION)
+MONGODB_SUFFIX := tar.gz
+MONGODB_URL := https://github.com/mongodb/mongo/archive/refs/tags/r$(MONGODB_VERSION).$(MONGODB_SUFFIX)
+MONGODB_SOURCE := $(SRCDIR)/$(MONGODB).$(MONGODB_SUFFIX)
+MONGODB_DIR := $(BUILDDIR)/$(MONGODB)
+MONGODB_BUILD_OOT := YES
+MONGODB_LICENSE := SSPL-1.0
+MONGODB_LICENSE_FILES := \
+ file://LICENSE-Community.txt;md5=3a865f27f11f43ecbe542d9ea387dcf1
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+MONGODB_CONF_ENV := \
+ $(CROSS_ENV)
+
+ifdef PTXCONF_TARGET_DEBUG_KEEP
+# disable debugging by default to reduce the memory useage at build-time
+MONGODB_CONF_ENV += \
+ PTXCONF_TARGET_DEBUG_OFF=y
+endif
+
+#
+# scons
+#
+MONGODB_CONF_TOOL := scons
+MONGODB_CONF_OPT := \
+ $(CROSS_ENV_CC) \
+ $(CROSS_ENV_CXX) \
+ MONGO_VERSION=$(MONGODB_VERSION) \
+ -C $(MONGODB_DIR) \
+ --build-profile=default \
+ --ninja=disabled \
+ --force-jobs \
+ --release \
+ --ssl=on \
+ --wiredtiger=on \
+ --ocsp-stapling=off \
+ --js-engine=mozjs \
+ --server-js=on \
+ --separate-debug=off \
+ --build-dir=$(MONGODB_DIR)-build \
+ --use-system-pcre2 \
+ --use-system-zlib \
+ --use-system-zstd \
+ --disable-warnings-as-errors \
+ --linker=gold \
+ --git-decider=off \
+ --use-libunwind=off \
+ --build-metrics="" \
+ install-mongod
+
+$(STATEDIR)/mongodb.prepare:
+ @$(call targetinfo)
+ @$(call world/prepare, MONGODB)
+ @$(call touch)
+
+MONGODB_CXXFLAGS := \
+ -Wno-non-virtual-dtor \
+ -Wno-interference-size
+
+MONGODB_INSTALL_OPT := \
+ $(MONGODB_CONF_OPT) \
+ DESTDIR=$(MONGODB_PKGDIR) \
+ PREFIX=/usr
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/mongodb.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, mongodb)
+ @$(call install_fixup, mongodb,PRIORITY,optional)
+ @$(call install_fixup, mongodb,SECTION,base)
+ @$(call install_fixup, mongodb,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, mongodb,DESCRIPTION,missing)
+
+ @$(call install_copy, mongodb, 0, 0, 0755, -, /usr/bin/mongod)
+
+ @$(call install_copy, mongodb, mongodb, mongodb, 0755, /var/lib/mongodb)
+
+ @$(call install_alternative, mongodb, 0, 0, 0644, \
+ /usr/lib/systemd/system/mongod.service)
+ @$(call install_link, mongodb, ../mongod.service, \
+ /usr/lib/systemd/system/multi-user.target.wants/mongod.service)
+
+ @$(call install_finish, mongodb)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/monit.in b/rules/monit.in
index 383433e78..8ce710ab3 100644
--- a/rules/monit.in
+++ b/rules/monit.in
@@ -3,6 +3,7 @@
menuconfig MONIT
tristate
prompt "monit "
+ select LIBC_CRYPT
select OPENSSL if MONIT_SSL
select ZLIB if MONIT_ZLIB
select BUSYBOX_START_STOP_DAEMON if MONIT_STARTSCRIPT
diff --git a/rules/monit.make b/rules/monit.make
index 13882770d..1d2ce57f8 100644
--- a/rules/monit.make
+++ b/rules/monit.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_MONIT) += monit
#
# Paths and names
#
-MONIT_VERSION := 5.27.1
-MONIT_MD5 := 200068f37847e3402f6a9b061c2d327e
+MONIT_VERSION := 5.32.0
+MONIT_MD5 := 4e3e9f9dd4a5094101e1cd24a292a4fb
MONIT := monit-$(MONIT_VERSION)
MONIT_SUFFIX := tar.gz
MONIT_URL := http://mmonit.com/monit/dist/$(MONIT).$(MONIT_SUFFIX)
@@ -29,6 +29,7 @@ MONIT_LICENSE_FILES := file://COPYING;md5=ea116a7defaf0e93b3bb73b2a34a3f51
# ----------------------------------------------------------------------------
MONIT_CONF_ENV := $(CROSS_ENV) \
+ ac_cv_lib_nsl_inet_addr=no \
libmonit_cv_setjmp_available=yes \
libmonit_cv_vsnprintf_c99_conformant=yes
@@ -36,6 +37,7 @@ MONIT_CONF_TOOL := autoconf
MONIT_CONF_OPT := $(CROSS_AUTOCONF_USR) \
$(GLOBAL_LARGE_FILE_OPTION) \
--enable-optimized \
+ --disable-werror \
--disable-profiling \
--disable-codesign \
--$(call ptx/wwo, PTXCONF_GLOBAL_IPV6)-ipv6 \
diff --git a/rules/mosh.make b/rules/mosh.make
index c04c452c1..29c0df550 100644
--- a/rules/mosh.make
+++ b/rules/mosh.make
@@ -18,7 +18,7 @@ MOSH_VERSION := 1.3.2
MOSH_MD5 := 5122f4d2b973ab7c38dcdac8c35cb61e
MOSH := mosh-$(MOSH_VERSION)
MOSH_SUFFIX := tar.gz
-MOSH_URL := https://mosh.mit.edu/$(MOSH).$(MOSH_SUFFIX)
+MOSH_URL := https://mosh.org/$(MOSH).$(MOSH_SUFFIX)
MOSH_SOURCE := $(SRCDIR)/$(MOSH).$(MOSH_SUFFIX)
MOSH_DIR := $(BUILDDIR)/$(MOSH)
MOSH_LICENSE := GPL-3.0-only
diff --git a/rules/mosquitto.make b/rules/mosquitto.make
index 125b96cd4..eedb5ca58 100644
--- a/rules/mosquitto.make
+++ b/rules/mosquitto.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_MOSQUITTO) += mosquitto
#
# Paths and names
#
-MOSQUITTO_VERSION := 2.0.5
-MOSQUITTO_MD5 := 8e70da210301d2f60627170a1064f8f3
+MOSQUITTO_VERSION := 2.0.14
+MOSQUITTO_MD5 := abe42d8cdb4ec973bdbecc6da29cb98f
MOSQUITTO := mosquitto-$(MOSQUITTO_VERSION)
MOSQUITTO_SUFFIX := tar.gz
MOSQUITTO_URL := https://mosquitto.org/files/source/$(MOSQUITTO).$(MOSQUITTO_SUFFIX)
@@ -25,8 +25,8 @@ MOSQUITTO_DIR := $(BUILDDIR)/$(MOSQUITTO)
MOSQUITTO_LICENSE := EPL-2.0 OR BSD-3-Clause
MOSQUITTO_LICENSE_FILES := \
file://LICENSE.txt;md5=ca9a8f366c6babf593e374d0d7d58749 \
- file://epl-v20;md5=d9fc0efef5228704e7f5b37f27192723 \
- file://edl-v10;md5=c09f121939f063aeb5235972be8c722c
+ file://epl-v20;md5=2dd765ca47a05140be15ebafddbeadfe \
+ file://edl-v10;md5=9f6accb1afcb570f8be65039e2fcd49e
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/mpfr.in b/rules/mpfr.in
new file mode 100644
index 000000000..7b88a1c16
--- /dev/null
+++ b/rules/mpfr.in
@@ -0,0 +1,9 @@
+## SECTION=system_libraries
+
+config MPFR
+ tristate
+ select LIBGMP
+ prompt "mpfr"
+ help
+ MPFR provides a library for multiple-precision floating-point
+ computation with correct rounding.
diff --git a/rules/mpfr.make b/rules/mpfr.make
new file mode 100644
index 000000000..4152325ee
--- /dev/null
+++ b/rules/mpfr.make
@@ -0,0 +1,70 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_MPFR) += mpfr
+
+#
+# Paths and names
+#
+MPFR_VERSION := 4.2.1
+MPFR_MD5 := 523c50c6318dde6f9dc523bc0244690a
+MPFR := mpfr-$(MPFR_VERSION)
+MPFR_SUFFIX := tar.xz
+MPFR_URL := https://www.mpfr.org/$(MPFR)/$(MPFR).$(MPFR_SUFFIX)
+MPFR_SOURCE := $(SRCDIR)/$(MPFR).$(MPFR_SUFFIX)
+MPFR_DIR := $(BUILDDIR)/$(MPFR)
+MPFR_LICENSE := LGPL-3.0-or-later
+MPFR_LICENSE_FILES := \
+ file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464 \
+ file://COPYING.LESSER;md5=3000208d539ec061b899bce1d9ce9404
+
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+MPFR_CONF_TOOL := autoconf
+MPFR_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --disable-gmp-internals \
+ --disable-assert \
+ --disable-logging \
+ --enable-thread-safe \
+ --disable-shared-cache \
+ --disable-warnings \
+ --disable-tune-for-coverage \
+ --disable-debug-prediction \
+ --disable-lto \
+ --disable-formally-proven-code
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/mpfr.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, mpfr)
+ @$(call install_fixup, mpfr,PRIORITY,optional)
+ @$(call install_fixup, mpfr,SECTION,base)
+ @$(call install_fixup, mpfr,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, mpfr,DESCRIPTION,missing)
+
+ @$(call install_lib, mpfr, 0, 0, 0644, libmpfr)
+
+ @$(call install_finish, mpfr)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/mpg123.in b/rules/mpg123.in
index 8c3148ed4..4a1967263 100644
--- a/rules/mpg123.in
+++ b/rules/mpg123.in
@@ -17,7 +17,6 @@ if MPG123
config MPG123_INT_QUALITY
bool
- default n
prompt "integer quality mode"
help
Use rounding instead of fast truncation for integer output.
diff --git a/rules/msmtp.in b/rules/msmtp.in
deleted file mode 100644
index bd56cc389..000000000
--- a/rules/msmtp.in
+++ /dev/null
@@ -1,44 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=networking
-
-menuconfig MSMTP
- tristate
- select OPENSSL if MSMTP_OPENSSL
- select GNUTLS if MSMTP_GNUTLS
- prompt "msmtp "
- help
- light SMTP client with support for server profiles
-
- STAGING: remove in ptxdist-2021.05.0
- Really old version and download broken. Must be updated to a new
- version. Project moved to https://marlam.de/msmtp/
-
-if MSMTP
-
-choice
- prompt "SSL Support"
-
-config MSMTP_NOSSL
- bool
- prompt "none"
-
-config MSMTP_OPENSSL
- bool
- # Fails to build with OpenSSL 1.1.x
- depends on BROKEN
- prompt "OpenSSL"
-
-config MSMTP_GNUTLS
- bool
- prompt "GnuTLS"
-
-endchoice
-
-config MSMTP_SSL
- string
- default "no" if MSMTP_NOSSL
- default "openssl" if MSMTP_OPENSSL
- default "gnutls" if MSMTP_GNUTLS
-
-endif
diff --git a/rules/msmtp.make b/rules/msmtp.make
deleted file mode 100644
index ff6cf19bc..000000000
--- a/rules/msmtp.make
+++ /dev/null
@@ -1,63 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2013 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_MSMTP) += msmtp
-
-#
-# Paths and names
-#
-MSMTP_VERSION := 1.4.30
-MSMTP_MD5 := 4d32724a2b03f07aa6d4ea9d49367ad3
-MSMTP := msmtp-$(MSMTP_VERSION)
-MSMTP_SUFFIX := tar.bz2
-MSMTP_URL := $(call ptx/mirror, SF, msmtp/$(MSMTP).$(MSMTP_SUFFIX))
-MSMTP_SOURCE := $(SRCDIR)/$(MSMTP).$(MSMTP_SUFFIX)
-MSMTP_DIR := $(BUILDDIR)/$(MSMTP)
-MSMTP_LICENSE := GPL-3.0-only
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-MSMTP_CONF_TOOL := autoconf
-MSMTP_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- $(GLOBAL_LARGE_FILE_OPTION) \
- --disable-nls \
- --disable-rpath \
- --with-ssl=$(PTXCONF_MSMTP_SSL) \
- --without-libgsasl \
- --without-libidn \
- --without-gnome-keyring
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/msmtp.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, msmtp)
- @$(call install_fixup, msmtp,PRIORITY,optional)
- @$(call install_fixup, msmtp,SECTION,base)
- @$(call install_fixup, msmtp,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
- @$(call install_fixup, msmtp,DESCRIPTION,missing)
-
- @$(call install_copy, msmtp, 0, 0, 0755, -, /usr/bin/msmtp)
-
- @$(call install_finish, msmtp)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/mtd-utils-bbinit.in b/rules/mtd-utils-bbinit.in
new file mode 100644
index 000000000..e6b628938
--- /dev/null
+++ b/rules/mtd-utils-bbinit.in
@@ -0,0 +1,9 @@
+## SECTION=initmethod_bbinit
+
+config MTD_UTILS_UBIHEALTHD_BBINIT_LINK
+ string
+ depends on MTD_UTILS_UBIHEALTHD_STARTSCRIPT
+ prompt "ubihealthd"
+ default "S83ubihealthd"
+
+# vim: ft=kconfig noet tw=72
diff --git a/rules/mtd-utils.in b/rules/mtd-utils.in
index 2cb2b88eb..8cc55caba 100644
--- a/rules/mtd-utils.in
+++ b/rules/mtd-utils.in
@@ -3,10 +3,11 @@
menuconfig MTD_UTILS
tristate
prompt "mtd-utils "
- select LIBC_M if MTD_UTILS_MKFS_UBIFS
+ select GCCLIBS_GCC_S if MTD_UTILS_UBIFORMAT
+ select LIBC_M if MTD_UTILS_MKFS_UBIFS
select ZLIB
- select LIBUUID if MTD_UTILS_UBIFS
- select LIBLZO if MTD_UTILS_USE_LIBLZO
+ select LIBUUID if MTD_UTILS_UBIFS
+ select LIBLZO if MTD_UTILS_USE_LIBLZO
help
Memory Technology Device Utilities
@@ -43,7 +44,7 @@ config MTD_UTILS_FLASH_ERASE
bool
prompt "flash_erase"
help
- Erase parts of a MTD device
+ Erase parts of an MTD device
config MTD_UTILS_FLASH_ERASEALL
bool
@@ -283,7 +284,6 @@ comment "busybox' ubidetach is selected!"
config MTD_UTILS_UBIFORMAT
bool
- select GCCLIBS_GCC_S
prompt "ubiformat"
help
Format an MTD device
@@ -294,12 +294,28 @@ config MTD_UTILS_UBIFS_MOUNTHELPER
help
Simplifies attaching an ubi and mounting an ubifs via /etc/fstab.
-config MTD_UTILS_UBIHEALTHD
+menuconfig MTD_UTILS_UBIHEALTHD
bool
prompt "ubihealthd"
help
Daemon that randomly scans each PEB of a UBI device to ensure that
filesystems with little reading do enough wear leveling.
+ Requires kernel >= 5.1 and glibc >= 2.25.
+
+if MTD_UTILS_UBIHEALTHD
+
+config MTD_UTILS_UBIHEALTHD_STARTSCRIPT
+ bool
+ prompt "install /etc/init.d/ubihealthd"
+ depends on INITMETHOD_BBINIT
+
+config MTD_UTILS_UBIHEALTHD_SYSTEMD_UNIT
+ bool
+ prompt "install systemd unit files"
+ default y
+ depends on SYSTEMD
+
+endif
config MTD_UTILS_UBIMKVOL
bool
@@ -353,6 +369,14 @@ config MTD_UTILS_UBIRMVOL
comment "busybox' ubirmvol is selected!"
depends on BUSYBOX_UBIRMVOL
+config MTD_UTILS_UBISCAN
+ bool
+ prompt "ubiscan"
+ help
+ ubiscan will scan the PEBs in a specific MTD device and print
+ a summary of the PEB erase counters and (optionally) details
+ about each PEB's status.
+
config MTD_UTILS_UBIUPDATEVOL
bool
prompt "ubiupdatevol"
@@ -370,12 +394,20 @@ config MTD_UTILS_MKFS_UBIFS
help
Create ubifs filesystems
+endif
+
config MTD_UTILS_MTDINFO
bool
prompt "mtdinfo"
help
- Print UBI specific information about MTD devices
+ Print information about MTD devices
-endif
+config MTD_UTILS_TESTS
+ bool
+ prompt "MTD test programs"
+ help
+ MTD test-suite with the following, potentially dangerous, test
+ programs: nandbiterrs, flash_speed, flash_stress, flash_readtest,
+ nandpagetest, nandsubpagetest, and flash_torture.
endif
diff --git a/rules/mtd-utils.make b/rules/mtd-utils.make
index e1a953c28..9722c20a5 100644
--- a/rules/mtd-utils.make
+++ b/rules/mtd-utils.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_MTD_UTILS) += mtd-utils
#
# Paths and names
#
-MTD_UTILS_VERSION := 2.1.2
-MTD_UTILS_MD5 := 19191bc0195a779c0bd1284c886084ab
+MTD_UTILS_VERSION := 2.2.0
+MTD_UTILS_MD5 := 35d71328107c54068c8df5a3b980c06e
MTD_UTILS := mtd-utils-$(MTD_UTILS_VERSION)
MTD_UTILS_SUFFIX := tar.bz2
MTD_UTILS_URL := https://infraroot.at/pub/mtd/$(MTD_UTILS).$(MTD_UTILS_SUFFIX)
@@ -34,9 +34,10 @@ MTD_UTILS_CONF_TOOL := autoconf
MTD_UTILS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-unit-tests \
- --disable-tests \
- --disable-install-tests \
- --$(call ptx/endis, PTXCONF_MTD_UTILS_LSMTD)-lsmtd \
+ $(GLOBAL_LARGE_FILE_OPTION) \
+ --$(call ptx/wwo,PTXCONF_MTD_UTILS_TESTS)-tests \
+ --$(call ptx/endis,PTXCONF_MTD_UTILS_UBIHEALTHD)-ubihealthd \
+ --$(call ptx/wwo, PTXCONF_MTD_UTILS_LSMTD)-lsmtd \
--$(call ptx/wwo, PTXCONF_MTD_UTILS_JFFS)-jffs \
--$(call ptx/wwo, PTXCONF_MTD_UTILS_UBIFS)-ubifs \
--without-xattr \
@@ -204,6 +205,20 @@ endif
ifdef PTXCONF_MTD_UTILS_UBIHEALTHD
@$(call install_copy, mtd-utils, 0, 0, 0755, -, \
/usr/sbin/ubihealthd)
+ifdef PTXCONF_MTD_UTILS_UBIHEALTHD_STARTSCRIPT
+ @$(call install_alternative, mtd-utils, 0, 0, 0755, \
+ /etc/init.d/ubihealthd)
+ifneq ($(call remove_quotes,$(PTXCONF_MTD_UTILS_UBIHEALTHD_BBINIT_LINK)),)
+ @$(call install_link, mtd-utils, ../init.d/ubihealthd, \
+ /etc/rc.d/$(PTXCONF_MTD_UTILS_UBIHEALTHD_BBINIT_LINK))
+endif
+endif
+ifdef PTXCONF_MTD_UTILS_UBIHEALTHD_SYSTEMD_UNIT
+ @$(call install_alternative, mtd-utils, 0, 0, 0644, \
+ /usr/lib/systemd/system/ubihealthd@.service)
+ @$(call install_link, mtd-utils, ../ubihealthd@.service, \
+ /usr/lib/systemd/system/multi-user.target.wants/ubihealthd@ubi0.service)
+endif
endif
ifdef PTXCONF_MTD_UTILS_UBIMKVOL
@$(call install_copy, mtd-utils, 0, 0, 0755, -, \
@@ -221,6 +236,10 @@ ifdef PTXCONF_MTD_UTILS_UBIRMVOL
@$(call install_copy, mtd-utils, 0, 0, 0755, -, \
/usr/sbin/ubirmvol)
endif
+ifdef PTXCONF_MTD_UTILS_UBISCAN
+ @$(call install_copy, mtd-utils, 0, 0, 0755, -, \
+ /usr/sbin/ubiscan)
+endif
ifdef PTXCONF_MTD_UTILS_UBIUPDATEVOL
@$(call install_copy, mtd-utils, 0, 0, 0755, -, \
/usr/sbin/ubiupdatevol)
@@ -245,6 +264,22 @@ ifdef PTXCONF_MTD_UTILS_MTDINFO
@$(call install_copy, mtd-utils, 0, 0, 0755, -, \
/usr/sbin/mtdinfo)
endif
+ifdef PTXCONF_MTD_UTILS_TESTS
+ @$(call install_copy, mtd-utils, 0, 0, 0755, -, \
+ /usr/libexec/mtd-utils/nandbiterrs)
+ @$(call install_copy, mtd-utils, 0, 0, 0755, -, \
+ /usr/libexec/mtd-utils/flash_speed)
+ @$(call install_copy, mtd-utils, 0, 0, 0755, -, \
+ /usr/libexec/mtd-utils/flash_stress)
+ @$(call install_copy, mtd-utils, 0, 0, 0755, -, \
+ /usr/libexec/mtd-utils/flash_readtest)
+ @$(call install_copy, mtd-utils, 0, 0, 0755, -, \
+ /usr/libexec/mtd-utils/nandpagetest)
+ @$(call install_copy, mtd-utils, 0, 0, 0755, -, \
+ /usr/libexec/mtd-utils/nandsubpagetest)
+ @$(call install_copy, mtd-utils, 0, 0, 0755, -, \
+ /usr/libexec/mtd-utils/flash_torture)
+endif
@$(call install_finish, mtd-utils)
diff --git a/rules/mtdev.make b/rules/mtdev.make
index 765ecd099..57f337baf 100644
--- a/rules/mtdev.make
+++ b/rules/mtdev.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_MTDEV) += mtdev
#
# Paths and names
#
-MTDEV_VERSION := 1.1.5
-MTDEV_MD5 := 52c9610b6002f71d1642dc1a1cca5ec1
+MTDEV_VERSION := 1.1.7
+MTDEV_MD5 := 483ed7fdf7c1e7b7375c05a62848cce7
MTDEV := mtdev-$(MTDEV_VERSION)
MTDEV_SUFFIX := tar.bz2
MTDEV_URL := http://bitmath.org/code/mtdev/$(MTDEV).$(MTDEV_SUFFIX)
MTDEV_SOURCE := $(SRCDIR)/$(MTDEV).$(MTDEV_SUFFIX)
MTDEV_DIR := $(BUILDDIR)/$(MTDEV)
MTDEV_LICENSE := MIT
+MTDEV_LICENSE_FILES := \
+ file://COPYING;md5=ea6bd0268bb0fcd6b27698616ceee5d6
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/mtr.in b/rules/mtr.in
deleted file mode 100644
index fb89f1f19..000000000
--- a/rules/mtr.in
+++ /dev/null
@@ -1,21 +0,0 @@
-## SECTION=networking
-
-config MTR
- tristate
- prompt "mtr"
- select LIBC_M
- select LIBC_RESOLV
- select NCURSES
- help
- Full screen ncurses traceroute tool
-
- mtr combines the functionality of the 'traceroute' and
- 'ping' programs in a asingle network diagnostic tool.
-
- As mtr starts, it investigates the network connection
- between the host mtr runs on and a user-specified
- destination host. After it determines the address of each
- network hop between the machines, it sends a sequence ICMP
- ECHO requests to each one to determine the quality of the
- link to each machine. As it does this, it prints running
- statistics about each machine.
diff --git a/rules/mtr.make b/rules/mtr.make
deleted file mode 100644
index c0056f72f..000000000
--- a/rules/mtr.make
+++ /dev/null
@@ -1,60 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2009 by Marc Kleine-Budde <mkl@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_MTR) += mtr
-
-#
-# Paths and names
-#
-MTR_VERSION := 0.75
-MTR_MD5 := 23baca52d0922c2ecba7eba05317868c
-MTR := mtr-$(MTR_VERSION)
-MTR_SUFFIX := tar.gz
-MTR_URL := ftp://ftp.bitwizard.nl/mtr/$(MTR).$(MTR_SUFFIX)
-MTR_SOURCE := $(SRCDIR)/$(MTR).$(MTR_SUFFIX)
-MTR_DIR := $(BUILDDIR)/$(MTR)
-MTR_LICENSE := GPL-2.0-or-later
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-MTR_PATH := PATH=$(CROSS_PATH)
-MTR_ENV := $(CROSS_ENV)
-
-#
-# autoconf
-#
-MTR_AUTOCONF := \
- $(CROSS_AUTOCONF_USR) \
- $(GLOBAL_IPV6_OPTION) \
- --without-gtk
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/mtr.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, mtr)
- @$(call install_fixup, mtr,PRIORITY,optional)
- @$(call install_fixup, mtr,SECTION,base)
- @$(call install_fixup, mtr,AUTHOR,"Marc Kleine-Budde <mkl@pengutronix.de>")
- @$(call install_fixup, mtr,DESCRIPTION,missing)
-
- @$(call install_copy, mtr, 0, 0, 4755, -, /usr/sbin/mtr)
-
- @$(call install_finish, mtr)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/munin.make b/rules/munin.make
index 94d09a072..f97082f1b 100644
--- a/rules/munin.make
+++ b/rules/munin.make
@@ -97,7 +97,8 @@ ifdef PTXCONF_MUNIN_MASTER
@$(call install_copy, munin, 0, 0, 0755, -, /usr/bin/munin-check)
@$(foreach tool, $(MONIN_TOOLS), \
- $(call install_copy, munin, 0, 0, 0755, -, /usr/lib/munin/$(tool));)
+ $(call install_copy, munin, 0, 0, 0755, -, \
+ /usr/lib/munin/$(tool))$(ptx/nl))
@$(call install_tree, munin, 0, 0, -, $(PERL_SITELIB)/Munin/Master)
endif
@@ -107,7 +108,7 @@ ifdef PTXCONF_MUNIN_NODE
@$(call install_copy, munin, 0, 0, 0755, /etc/munin/plugins/)
@$(foreach plugin, $(call remove_quotes,$(PTXCONF_MUNIN_NODE_PLUGINS)), \
$(call install_link, munin, /usr/lib/munin/plugins/$(plugin), \
- /etc/munin/plugins/$(plugin));)
+ /etc/munin/plugins/$(plugin))$(ptx/nl))
@$(call install_copy, munin, 0, 0, 0755, -, /usr/sbin/munin-node-configure)
@$(call install_copy, munin, 0, 0, 0755, -, /usr/sbin/munin-sched)
diff --git a/rules/mysql.in b/rules/mysql.in
deleted file mode 100644
index 1cc27ec26..000000000
--- a/rules/mysql.in
+++ /dev/null
@@ -1,30 +0,0 @@
-## SECTION=mysql
-
-config MYSQL
- tristate
- select HOST_CMAKE
- select HOST_MYSQL
- select LIBAIO
- select ZLIB
- select LIBC_PTHREAD
- select LIBC_RT
- select LIBC_M
- select LIBC_CRYPT
- select LIBC_DL
- select GCCLIBS_CXX
- select GCCLIBS_GCC_S
- select NCURSES
- select SYSTEMD if MYSQL_SYSTEMD
- prompt "mysql" if ALLYES
- help
- mySQL, an SQL database engine
-
-if MYSQL
-
-config MYSQL_SYSTEMD
- bool
- depends on INITMETHOD_SYSTEMD
- default y
- prompt "systemd support"
-
-endif
diff --git a/rules/mysql.make b/rules/mysql.make
deleted file mode 100644
index 28b640b1b..000000000
--- a/rules/mysql.make
+++ /dev/null
@@ -1,157 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2016 by Juergen Borleis <jbe@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-ifndef PTXCONF_ARCH_PPC
-PACKAGES-$(PTXCONF_MYSQL) += mysql
-endif
-
-#
-# Paths and names
-#
-MYSQL_VERSION := 5.7.11
-MYSQL_MD5 := f84d945a40ed876d10f8d5a7f4ccba32
-MYSQL := mysql-$(MYSQL_VERSION)
-MYSQL_SUFFIX := tar.gz
-MYSQL_URL := https://dev.mysql.com/get/Downloads/MySQL-5.7/$(MYSQL).tar.gz
-MYSQL_SOURCE := $(SRCDIR)/$(MYSQL).$(MYSQL_SUFFIX)
-MYSQL_DIR := $(BUILDDIR)/$(MYSQL)
-MYSQL_LICENSE := GPL-2.0-only
-
-# mySQL has a hard dependency to boost_1_59_0. Deal with it
-
-MYSQL_BOOST_VERSION := 1_59_0
-MYSQL_BOOST_MD5 := 6aa9a5c6a4ca1016edd0ed1178e3cb87
-MYSQL_BOOST := boost_$(MYSQL_BOOST_VERSION)
-MYSQL_BOOST_SUFFIX := tar.bz2
-MYSQL_BOOST_URL := $(call ptx/mirror, SF, boost/$(MYSQL_BOOST).$(MYSQL_BOOST_SUFFIX))
-MYSQL_BOOST_SOURCE := $(SRCDIR)/$(MYSQL_BOOST).$(MYSQL_BOOST_SUFFIX)
-$(MYSQL_BOOST_SOURCE) := MYSQL_BOOST
-MYSQL_BOOST_DIR := $(MYSQL_DIR)
-
-# we need more than one archive to download
-MYSQL_SOURCES := $(MYSQL_SOURCE) $(MYSQL_BOOST_SOURCE)
-
-# ----------------------------------------------------------------------------
-# Extract
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/mysql.extract:
- @$(call targetinfo)
- @$(call clean, $(MYSQL_DIR))
- @$(call extract, MYSQL)
- @$(call extract, MYSQL_BOOST)
- @$(call patchin, MYSQL)
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# cmake
-#
-MYSQL_CONF_TOOL := cmake
-MYSQL_CONF_OPT := \
- $(CROSS_CMAKE_USR) \
- -DINSTALL_LAYOUT=TARGZ \
- -DBUILD_CONFIG=mysql_release \
- -DSTACK_DIRECTION=1 \
- -DHAVE_LLVM_LIBCPP_EXITCODE=no \
- -DWITH_ZLIB=system \
- -DWITH_LZ4=bundled \
- -DWITH_SSL=bundled \
- -DCOMMUNITY_BUILD=ON \
- -DBOOST_INCLUDE_DIR=$(MYSQL_BOOST_DIR) \
- -DLOCAL_BOOST_DIR=$(MYSQL_BOOST_DIR) \
- -DMYSQL_DATADIR=/usr/local/mysql/data \
- -DMYSQL_KEYRINGDIR=/usr/local/mysql/keyring \
- -DSYSCONFDIR=/etc/mysql \
- -DSYSTEMD_PID_DIR=/run/mysql \
- -DTMPDIR=/tmp \
- -DWITH_EXTRA_CHARSETS=all \
- -DWITH_UNIT_TESTS=OFF \
- -DWITH_VALGRIND=OFF \
- -DWITH_SYSTEMD=$(call ptx/onoff, PTXCONF_MYSQL_SYSTEMD) \
- -DCOMPILATION_COMMENT=PTXdist \
- -DDEFAULT_CHARSET=latin1 \
- -DENABLE_DTRACE=OFF
-
-MYSQL_CXXFLAGS := -std=c++98
-
-# ----------------------------------------------------------------------------
-# Compile
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/mysql.compile:
- @$(call targetinfo)
-
- @install -v -m755 $(PTXDIST_SYSROOT_HOST)/bin/gen_lex_hash $(MYSQL_DIR)/sql/
- @install -v -m755 $(PTXDIST_SYSROOT_HOST)/bin/gen_lex_token $(MYSQL_DIR)/sql/
- @install -v -m755 $(PTXDIST_SYSROOT_HOST)/bin/lz4_decompress $(MYSQL_DIR)/extra/
- @install -v -m755 $(PTXDIST_SYSROOT_HOST)/bin/zlib_decompress $(MYSQL_DIR)/extra/
- @install -v -m755 $(PTXDIST_SYSROOT_HOST)/bin/comp_err $(MYSQL_DIR)/extra/
- @install -v -m755 $(PTXDIST_SYSROOT_HOST)/bin/comp_sql $(MYSQL_DIR)/scripts/
-
- @$(call world/compile, MYSQL)
- @$(call touch)
-
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/mysql.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, mysql)
- @$(call install_fixup, mysql,PRIORITY,optional)
- @$(call install_fixup, mysql,SECTION,base)
- @$(call install_fixup, mysql,AUTHOR,"Juergen Borleis <jbe@pengutronix.de>")
- @$(call install_fixup, mysql,DESCRIPTION,"mySQL service")
-
-# # server stuff
- @$(call install_copy, mysql, 0, 0, 0755, -, /usr/bin/mysqld)
-
- @$(call install_alternative, mysql, 0, 0, 0755, /usr/sbin/mysqlinit)
-ifdef PTXCONF_MYSQL_SYSTEMD
- @$(call install_alternative, mysql, 0, 0, 0644, /usr/lib/systemd/system/mysqldinit.service)
- @$(call install_link, mysql, ../mysqldinit.service, \
- /usr/lib/systemd/system/multi-user.target.wants/mysqldinit.service)
- @$(call install_alternative, mysql, 0, 0, 0644, /usr/lib/systemd/system/mysqld.service)
- @$(call install_link, mysql, ../mysqld.service, \
- /usr/lib/systemd/system/multi-user.target.wants/mysqld.service)
-endif
- @$(call install_alternative, mysql, 0, 0, 0644, /etc/mysql/my.cnf)
- @$(call install_copy, mysql, 0, 0, 0644, -, /usr/lib/plugin/keyring_file.so)
-
-# # TODO: do we need more languages?
- @$(call install_copy, mysql, 0, 0, 0644, -, /usr/share/english/errmsg.sys)
-
-# # TODO: do we need more charsets?
- @$(call install_copy, mysql, 0, 0, 0644, -, /usr/share/charsets/latin1.xml)
-
-# # client stuff
- @$(call install_copy, mysql, 0, 0, 0755, -, /usr/bin/mysql)
- @$(call install_copy, mysql, 0, 0, 0755, -, /usr/bin/mysqladmin)
- @$(call install_copy, mysql, 0, 0, 0755, -, /usr/bin/mysql_upgrade)
- @$(call install_copy, mysql, 0, 0, 0755, -, /usr/bin/mysqlcheck)
- @$(call install_copy, mysql, 0, 0, 0755, -, /usr/bin/mysqldump)
-
- @$(call install_lib, mysql, 0, 0, 0644, libmysqlclient)
-
-# # create a working directory which is writeable
- @$(call install_copy, mysql, mysql, mysql, 0755, /var/lib/mysql)
-
- @$(call install_finish, mysql)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/mysqldb.in b/rules/mysqldb.in
index 3f8af3fb0..620c0b2e4 100644
--- a/rules/mysqldb.in
+++ b/rules/mysqldb.in
@@ -3,7 +3,6 @@
menuconfig MYSQLDB
tristate
select VIRTUAL
- select MYSQL if MYSQLDB_MYSQL
select MARIADB if MYSQLDB_MARIADB
prompt "mysql/mariadb "
@@ -14,6 +13,7 @@ choice
config MYSQLDB_MYSQL
bool
+ depends on BROKEN
prompt "mysql "
config MYSQLDB_MARIADB
diff --git a/rules/nanocom.in b/rules/nanocom.in
deleted file mode 100644
index 7a1d7b7b6..000000000
--- a/rules/nanocom.in
+++ /dev/null
@@ -1,6 +0,0 @@
-## SECTION=shell_and_console
-config NANOCOM
- tristate
- prompt "nanocom"
- help
- This is a lightweight terminal emulator.
diff --git a/rules/nanocom.make b/rules/nanocom.make
deleted file mode 100644
index 74adbd255..000000000
--- a/rules/nanocom.make
+++ /dev/null
@@ -1,62 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2007 by Juergen Beisert
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_NANOCOM) += nanocom
-
-#
-# Paths and names
-#
-NANOCOM_VERSION := 1.0
-NANOCOM_MD5 := 6dd9cc4f4a2191952ee8b13da877dec5
-NANOCOM := nanocom-$(NANOCOM_VERSION)
-NANOCOM_SUFFIX := tar.bz2
-NANOCOM_URL := http://www.pengutronix.de/software/ptxdist/temporary-src/$(NANOCOM).$(NANOCOM_SUFFIX)
-NANOCOM_SOURCE := $(SRCDIR)/$(NANOCOM).$(NANOCOM_SUFFIX)
-NANOCOM_DIR := $(BUILDDIR)/$(NANOCOM)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-NANOCOM_CONF_TOOL := NO
-NANOCOM_MAKE_OPT := \
- $(CROSS_ENV_CC)
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/nanocom.install:
- @$(call targetinfo)
- @install -v -m 0755 -D $(NANOCOM_DIR)/nanocom \
- $(NANOCOM_PKGDIR)/usr/bin/nanocom
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/nanocom.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, nanocom)
- @$(call install_fixup, nanocom,PRIORITY,optional)
- @$(call install_fixup, nanocom,SECTION,base)
- @$(call install_fixup, nanocom,AUTHOR,"Juergen Beisert <juergen@kreuzholzen.de>")
- @$(call install_fixup, nanocom,DESCRIPTION,missing)
-
- @$(call install_copy, nanocom, 0, 0, 0755, -, /usr/bin/nanocom)
-
- @$(call install_finish, nanocom)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/nbd.in b/rules/nbd.in
index 2c59efa07..8b0024d8f 100644
--- a/rules/nbd.in
+++ b/rules/nbd.in
@@ -3,6 +3,7 @@
config NBD
tristate
select GLIB
+ select LIBNL3
prompt "NBD server and client"
help
NBD client and server utils.
diff --git a/rules/nbd.make b/rules/nbd.make
index f8ad4bfa7..ab5f2b7e9 100644
--- a/rules/nbd.make
+++ b/rules/nbd.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_NBD) += nbd
#
# Paths and names
#
-NBD_VERSION := 3.12.1
-NBD_MD5 := 055eb1c5a95cc6976256dcc84ae63abb
+NBD_VERSION := 3.25
+NBD_MD5 := fc885361c00ac4de2c45d651c48bd937
NBD := nbd-$(NBD_VERSION)
NBD_SUFFIX := tar.xz
-NBD_URL := $(call ptx/mirror, SF, nbd/$(NBD).$(NBD_SUFFIX))
+NBD_URL := https://github.com/NetworkBlockDevice/nbd/releases/download/$(NBD)/$(NBD).$(NBD_SUFFIX)
NBD_SOURCE := $(SRCDIR)/$(NBD).$(NBD_SUFFIX)
NBD_DIR := $(BUILDDIR)/$(NBD)
NBD_LICENSE := GPL-2.0-only
+NBD_LICENSE_FILES := \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263
#
# autoconf
@@ -32,9 +34,10 @@ NBD_CONF_OPT := \
--$(call ptx/endis, PTXCONF_GLOBAL_LARGE_FILE)-lfs \
--disable-syslog \
--disable-debug \
- --disable-sdp \
--disable-gznbd \
- --disable-glibtest
+ --disable-manpages \
+ --without-gnutls \
+ --with-libnl
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/ncftp.in b/rules/ncftp.in
deleted file mode 100644
index e7bd49e23..000000000
--- a/rules/ncftp.in
+++ /dev/null
@@ -1,36 +0,0 @@
-## SECTION=networking
-
-menuconfig NCFTP
- tristate
- select NCURSES if NCFTP_NCFTPBOOKMARKS
- prompt "ncftp "
- help
- A user-friendly and well-featured FTP client
-
- This program allows a user to transfer files to and from a
- remote network site, and offers additional features that are
- not found in the standard interface, ftp. This version has
- Readline support enabled.
-
-if NCFTP
-
-config NCFTP_NCTP
- bool "ncftp"
- default y
-
-config NCFTP_NCFTPBATCH_NCFTPSPOOLER
- bool "ncftpbatch/ncftpspooler"
-
-config NCFTP_NCFTPBOOKMARKS
- bool "ncftpbookmarks"
-
-config NCFTP_NCFTPGET
- bool "ncftpget"
-
-config NCFTP_NCFTPLS
- bool "ncftpls"
-
-config NCFTP_NCFTPPUT
- bool "ncftpput"
-
-endif
diff --git a/rules/ncftp.make b/rules/ncftp.make
deleted file mode 100644
index 67a9459e5..000000000
--- a/rules/ncftp.make
+++ /dev/null
@@ -1,71 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2013 by Marc Kleine-Budde <mkl@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_NCFTP) += ncftp
-
-#
-# Paths and names
-#
-NCFTP_VERSION := 3.2.6
-NCFTP_MD5 := 42d0f896d69a4d603ec097546444245f
-NCFTP := ncftp-$(NCFTP_VERSION)-src
-NCFTP_SUFFIX := tar.xz
-NCFTP_URL := ftp://ftp.ncftp.com/ncftp/$(NCFTP).$(NCFTP_SUFFIX)
-NCFTP_SOURCE := $(SRCDIR)/$(NCFTP).$(NCFTP_SUFFIX)
-NCFTP_DIR := $(BUILDDIR)/$(NCFTP)
-NCFTP_LICENSE := Clarified Artistic License
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-NCFTP_CONF_TOOL := autoconf
-NCFTP_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --without-socks5 \
- --without-dnssec-local-validation
-
-NCFTP_PROGS_y :=
-NCFTP_PROGS_$(PTXCONF_NCFTP_NCTP) += ncftp
-NCFTP_PROGS_$(PTXCONF_NCFTP_NCFTPBATCH_NCFTPSPOOLER) += ncftpbatch
-NCFTP_PROGS_$(PTXCONF_NCFTP_NCFTPBOOKMARKS) += ncftpbookmarks
-NCFTP_PROGS_$(PTXCONF_NCFTP_NCFTPGET) += ncftpget
-NCFTP_PROGS_$(PTXCONF_NCFTP_NCFTPLS) += ncftpls
-NCFTP_PROGS_$(PTXCONF_NCFTP_NCFTPPUT) += ncftpput
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/ncftp.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, ncftp)
- @$(call install_fixup, ncftp,PRIORITY,optional)
- @$(call install_fixup, ncftp,SECTION,base)
- @$(call install_fixup, ncftp,AUTHOR,"Marc Kleine-Budde <mkl@pengutronix.de>")
- @$(call install_fixup, ncftp,DESCRIPTION,missing)
-
- @$(foreach prog, $(NCFTP_PROGS_y), \
- $(call install_copy, ncftp, 0, 0, 0755, -, /usr/bin/$(prog));)
-
-ifdef PTXCONF_NCFTP_NCFTPBATCH_NCFTPSPOOLER
- @$(call install_link, ncftp, ncftpbatch, /usr/bin/ncftpspooler)
-endif
-
- @$(call install_finish, ncftp)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/ncurses.in b/rules/ncurses.in
index 4dfb7f77a..7485eadda 100644
--- a/rules/ncurses.in
+++ b/rules/ncurses.in
@@ -82,6 +82,6 @@ config NCURSES_PANEL
to go. It obviates the need of doing series of wnoutrefresh(),
doupdate() and relieves the burden of doing it correctly(bottom up).
The library maintains information about the order of windows, their
- overlapping and update the screen properly.
+ overlapping and update the screen properly.
endif
diff --git a/rules/ncurses.make b/rules/ncurses.make
index 38f9c01ff..923c4d5a2 100644
--- a/rules/ncurses.make
+++ b/rules/ncurses.make
@@ -13,16 +13,16 @@ PACKAGES-$(PTXCONF_NCURSES) += ncurses
#
# Paths and names
#
-NCURSES_VERSION := 6.2
+NCURSES_VERSION := 6.4
NCURSES_MAJOR := $(word 1,$(subst ., ,$(NCURSES_VERSION)))
-NCURSES_MD5 := e812da327b1c2214ac1aed440ea3ae8d
+NCURSES_MD5 := 5a62487b5d4ac6b132fe2bf9f8fad29b
NCURSES := ncurses-$(NCURSES_VERSION)
NCURSES_SUFFIX := tar.gz
NCURSES_URL := $(call ptx/mirror, GNU, ncurses/$(NCURSES).$(NCURSES_SUFFIX))
NCURSES_SOURCE := $(SRCDIR)/$(NCURSES).$(NCURSES_SUFFIX)
NCURSES_DIR := $(BUILDDIR)/$(NCURSES)
NCURSES_LICENSE := MIT
-NCURSES_LICENSE_FILES := file://COPYING;md5=910e05334f7e0b7631da6b4ebb1e1aab
+NCURSES_LICENSE_FILES := file://COPYING;md5=afd8d0a6ec9c24941eb06bc5e4017918
# ----------------------------------------------------------------------------
# Prepare
@@ -31,7 +31,7 @@ NCURSES_LICENSE_FILES := file://COPYING;md5=910e05334f7e0b7631da6b4ebb1e1aab
NCURSES_CONF_TOOL := autoconf
NCURSES_CONF_ENV := \
$(CROSS_ENV) \
- TIC_PATH="$(PTXDIST_SYSROOT_HOST)/bin/tic"
+ TIC_PATH="$(PTXDIST_SYSROOT_HOST)/usr/bin/tic"
NCURSES_SHARED_TARGET := y
NCURSES_SHARED_HOST :=
@@ -48,7 +48,7 @@ NCURSES_AUTOCONF_SHARED = \
--without-tack \
--without-tests \
--with-curses-h \
- --with-pkg-config-libdir=/usr/$(CROSS_LIB_DIR)/pkgconfig \
+ --with-pkg-config-libdir=/usr/lib/pkgconfig \
--$(call ptx/endis,$(1))-pc-files \
--enable-mixed-case \
--without-libtool \
@@ -70,12 +70,12 @@ NCURSES_AUTOCONF_SHARED = \
--$(call ptx/endis,PTXCONF_NCURSES_BIG_CORE)-big-core \
--disable-big-strings \
--$(call ptx/endis,PTXCONF_NCURSES_WIDE_CHAR)-widec \
+ --$(call ptx/endis,PTXCONF_NCURSES_WIDE_CHAR)-ext-colors \
$(GLOBAL_LARGE_FILE_OPTION) \
--enable-ext-funcs \
--enable-sp-funcs \
--disable-term-driver \
--enable-const \
- --enable-ext-colors \
--disable-ext-mouse \
--disable-ext-putwin \
--disable-no-padding \
@@ -125,15 +125,15 @@ ifdef PTXCONF_NCURSES_WIDE_CHAR
# For this, the links at runtime are required
#
@for lib in $(NCURSES_LIBRARY_LIST); do \
- echo "INPUT(-l$${lib}w)" > $(NCURSES_PKGDIR)/$(CROSS_LIB_DIR)/lib$${lib}.so ; \
+ echo "INPUT(-l$${lib}w)" > $(NCURSES_PKGDIR)/usr/lib/lib$${lib}.so ; \
done
- @echo "INPUT(-lncursesw)" > $(NCURSES_PKGDIR)/$(CROSS_LIB_DIR)/libcurses.so
+ @echo "INPUT(-lncursesw)" > $(NCURSES_PKGDIR)/usr/lib/libcurses.so
@ln -sf "ncursesw$(NCURSES_MAJOR)-config" \
"$(NCURSES_PKGDIR)/usr/bin/ncurses$(NCURSES_MAJOR)-config"
ifdef PTXCONF_NCURSES_BACKWARD_COMPATIBLE_NON_WIDE_CHAR
@for lib in $(NCURSES_LIBRARY_LIST); do \
- ln -vs "$${lib}w.pc" "$(NCURSES_PKGDIR)/usr/$(CROSS_LIB_DIR)/pkgconfig/$${lib}.pc"; \
+ ln -vs "$${lib}w.pc" "$(NCURSES_PKGDIR)/usr/lib/pkgconfig/$${lib}.pc"; \
done
endif
endif
@@ -142,7 +142,7 @@ endif
$(STATEDIR)/ncurses.install.post:
@$(call targetinfo)
@$(call world/install.post, NCURSES)
- @cp -dp -- "$(NCURSES_PKGDIR)/usr/bin/"*config* "$(PTXDIST_SYSROOT_CROSS)/bin"
+ @cp -dp -- "$(NCURSES_PKGDIR)/usr/bin/"*config* "$(PTXDIST_SYSROOT_CROSS)/usr/bin"
@$(call touch)
# ----------------------------------------------------------------------------
@@ -162,22 +162,22 @@ $(STATEDIR)/ncurses.targetinstall:
ifdef PTXCONF_NCURSES_BACKWARD_COMPATIBLE_NON_WIDE_CHAR
@$(call install_link, ncurses, libncursesw.so.$(NCURSES_VERSION), \
- /$(CROSS_LIB_DIR)/libncurses.so.$(NCURSES_VERSION))
+ /usr/lib/libncurses.so.$(NCURSES_VERSION))
@$(call install_link, ncurses, libncursesw.so.$(NCURSES_VERSION), \
- /$(CROSS_LIB_DIR)/libncurses.so.$(NCURSES_MAJOR))
+ /usr/lib/libncurses.so.$(NCURSES_MAJOR))
@$(call install_link, ncurses, libncursesw.so.$(NCURSES_VERSION), \
- /$(CROSS_LIB_DIR)/libncurses.so)
+ /usr/lib/libncurses.so)
endif
ifdef PTXCONF_NCURSES_FORM
@$(call install_lib, ncurses, 0, 0, 0644, libform$(NCURSES_WIDE))
ifdef PTXCONF_NCURSES_BACKWARD_COMPATIBLE_NON_WIDE_CHAR
@$(call install_link, ncurses, libformw.so.$(NCURSES_VERSION), \
- /$(CROSS_LIB_DIR)/libform.so.$(NCURSES_VERSION))
+ /usr/lib/libform.so.$(NCURSES_VERSION))
@$(call install_link, ncurses, libformw.so.$(NCURSES_VERSION), \
- /$(CROSS_LIB_DIR)/libform.so.$(NCURSES_MAJOR))
+ /usr/lib/libform.so.$(NCURSES_MAJOR))
@$(call install_link, ncurses, libformw.so.$(NCURSES_VERSION), \
- /$(CROSS_LIB_DIR)/libform.so)
+ /usr/lib/libform.so)
endif
endif
@@ -186,11 +186,11 @@ ifdef PTXCONF_NCURSES_MENU
@$(call install_lib, ncurses, 0, 0, 0644, libmenu$(NCURSES_WIDE))
ifdef PTXCONF_NCURSES_BACKWARD_COMPATIBLE_NON_WIDE_CHAR
@$(call install_link, ncurses, libmenuw.so.$(NCURSES_VERSION), \
- /$(CROSS_LIB_DIR)/libmenu.so.$(NCURSES_VERSION))
+ /usr/lib/libmenu.so.$(NCURSES_VERSION))
@$(call install_link, ncurses, libmenuw.so.$(NCURSES_VERSION), \
- /$(CROSS_LIB_DIR)/libmenu.so.$(NCURSES_MAJOR))
+ /usr/lib/libmenu.so.$(NCURSES_MAJOR))
@$(call install_link, ncurses, libmenuw.so.$(NCURSES_VERSION), \
- /$(CROSS_LIB_DIR)/libmenu.so)
+ /usr/lib/libmenu.so)
endif
endif
@@ -199,11 +199,11 @@ ifdef PTXCONF_NCURSES_PANEL
@$(call install_lib, ncurses, 0, 0, 0644, libpanel$(NCURSES_WIDE))
ifdef PTXCONF_NCURSES_BACKWARD_COMPATIBLE_NON_WIDE_CHAR
@$(call install_link, ncurses, libpanelw.so.$(NCURSES_VERSION), \
- /$(CROSS_LIB_DIR)/libpanel.so.$(NCURSES_VERSION))
+ /usr/lib/libpanel.so.$(NCURSES_VERSION))
@$(call install_link, ncurses, libpanelw.so.$(NCURSES_VERSION), \
- /$(CROSS_LIB_DIR)/libpanel.so.$(NCURSES_MAJOR))
+ /usr/lib/libpanel.so.$(NCURSES_MAJOR))
@$(call install_link, ncurses, libpanelw.so.$(NCURSES_VERSION), \
- /$(CROSS_LIB_DIR)/libpanel.so)
+ /usr/lib/libpanel.so)
endif
endif
diff --git a/rules/neatvnc.in b/rules/neatvnc.in
new file mode 100644
index 000000000..d962bf190
--- /dev/null
+++ b/rules/neatvnc.in
@@ -0,0 +1,44 @@
+## SECTION=system_libraries
+
+menuconfig NEATVNC
+ tristate
+ select HOST_MESON
+ select PIXMAN
+ select ZLIB
+ select AML
+ select LIBJPEG if NEATVNC_JPEG
+ select LIBJPEG_TURBO if NEATVNC_JPEG
+ select LIBDRM if BUILDTIME
+ select MESALIB if NEATVNC_GBM
+ select MESALIB_GBM if NEATVNC_GBM
+ select GNUTLS if NEATVNC_TLS
+ select NETTLE if NEATVNC_NETTLE
+ prompt "neatvnc "
+ help
+ VNC Server library
+
+if NEATVNC
+
+config NEATVNC_GBM
+ bool
+ prompt "enable gbm integration"
+
+config NEATVNC_JPEG
+ bool
+ prompt "enable jpeg compression"
+
+config NEATVNC_OPENH264
+ bool
+ # needs openh264
+ depends on BROKEN
+ prompt "enable open h264 encoding"
+
+config NEATVNC_TLS
+ bool
+ prompt "enable encryption and authentication"
+
+config NEATVNC_NETTLE
+ bool
+ prompt "enable websocket support"
+
+endif
diff --git a/rules/neatvnc.make b/rules/neatvnc.make
new file mode 100644
index 000000000..c4e63a225
--- /dev/null
+++ b/rules/neatvnc.make
@@ -0,0 +1,65 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2020 by Marian Cichy <m.cichy@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_NEATVNC) += neatvnc
+
+#
+# Paths and names
+#
+NEATVNC_VERSION := 0.7.1
+NEATVNC_MD5 := 230c9d236686d79d9f72e96c9842b70a
+NEATVNC := neatvnc-$(NEATVNC_VERSION)
+NEATVNC_SUFFIX := tar.gz
+NEATVNC_URL := https://github.com/any1/neatvnc/archive/refs/tags/v$(NEATVNC_VERSION).$(NEATVNC_SUFFIX)
+NEATVNC_SOURCE := $(SRCDIR)/$(NEATVNC).$(NEATVNC_SUFFIX)
+NEATVNC_DIR := $(BUILDDIR)/$(NEATVNC)
+NEATVNC_LICENSE := ISC
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# meson
+#
+NEATVNC_CONF_TOOL := meson
+NEATVNC_CONF_OPT := \
+ $(CROSS_MESON_USR) \
+ -Dbenchmarks=false \
+ -Dexamples=false \
+ -Dgbm=$(call ptx/endis,PTXCONF_NEATVNC_GBM)d \
+ -Dh264=$(call ptx/endis,PTXCONF_NEATVNC_OPENH264)d \
+ -Djpeg=$(call ptx/endis,PTXCONF_NEATVNC_JPEG)d \
+ -Dnettle=$(call ptx/endis,PTXCONF_NEATVNC_NETTLE)d \
+ -Dsystemtap=false \
+ -Dtests=false \
+ -Dtls=$(call ptx/endis,PTXCONF_NEATVNC_TLS)d
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/neatvnc.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, neatvnc)
+ @$(call install_fixup, neatvnc,PRIORITY,optional)
+ @$(call install_fixup, neatvnc,SECTION,base)
+ @$(call install_fixup, neatvnc,AUTHOR,"Marian Cichy <m.cichy@pengutronix.de>")
+ @$(call install_fixup, neatvnc,DESCRIPTION,missing)
+
+ @$(call install_lib, neatvnc, 0, 0, 0644, libneatvnc)
+
+ @$(call install_finish, neatvnc)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/net-snmp.make b/rules/net-snmp.make
index 6bea8c8c2..5c5463a56 100644
--- a/rules/net-snmp.make
+++ b/rules/net-snmp.make
@@ -16,8 +16,8 @@ PACKAGES-$(PTXCONF_NET_SNMP) += net-snmp
#
# Paths and names
#
-NET_SNMP_VERSION := 5.9
-NET_SNMP_MD5 := 382da80138897f294299badf9c62c699
+NET_SNMP_VERSION := 5.9.1
+NET_SNMP_MD5 := e5ee202dfb15000342354d64f1837d19
NET_SNMP := net-snmp-$(NET_SNMP_VERSION)
NET_SNMP_SUFFIX := tar.gz
NET_SNMP_URL := $(call ptx/mirror, SF, net-snmp/$(NET_SNMP).$(NET_SNMP_SUFFIX))
@@ -39,19 +39,20 @@ NET_SNMP_MIB_MODULES-$(PTXCONF_NET_SNMP_MIB_MODULES_UCD_SNMP) += ucd_snmp
NET_SNMP_MIB_MODULES-$(PTXCONF_NET_SNMP_MIB_MODULES_LM_SENSORS) += ucd-snmp/lmsensorsMib
-NET_SNMP_ENV := \
+NET_SNMP_CONF_ENV := \
$(CROSS_ENV) \
ac_cv_header_pcre_h=no
ifndef PTXCONF_NET_SNMP_PCI
-NET_SNMP_ENV += \
+NET_SNMP_CONF_ENV += \
netsnmp_cv_func_pci_lookup_name_LMIBLIBS=no
endif
#
# autoconf
#
-NET_SNMP_AUTOCONF := \
+NET_SNMP_CONF_TOOL := autoconf
+NET_SNMP_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--$(call ptx/endis, PTXCONF_NET_SNMP_AGENT)-agent \
--$(call ptx/endis, PTXCONF_NET_SNMP_APPLICATIONS)-applications \
diff --git a/rules/netcat.make b/rules/netcat.make
index 7dd209f61..c6ecc085d 100644
--- a/rules/netcat.make
+++ b/rules/netcat.make
@@ -28,9 +28,8 @@ NETCAT_LICENSE := BSD
# Prepare
# ----------------------------------------------------------------------------
-NETCAT_CONF_TOOL := NO
-NETCAT_MAKEVARS := \
- $(CROSS_ENV)
+NETCAT_CONF_TOOL := NO
+NETCAT_MAKE_ENV := $(CROSS_ENV)
# ----------------------------------------------------------------------------
# Install
diff --git a/rules/netkit-ftp.make b/rules/netkit-ftp.make
index d38ca4307..a6470ffc3 100644
--- a/rules/netkit-ftp.make
+++ b/rules/netkit-ftp.make
@@ -31,12 +31,11 @@ NETKIT_FTP_LICENSE := BSD
# Prepare
# ----------------------------------------------------------------------------
-NETKIT_FTP_PATH := PATH=$(CROSS_PATH)
-
#
# autoconf
#
-NETKIT_FTP_AUTOCONF := $(CROSS_AUTOCONF_USR)
+NETKIT_FTP_CONF_TOOL := autoconf
+NETKIT_FTP_CONF_OPT := $(CROSS_AUTOCONF_USR)
$(STATEDIR)/netkit-ftp.prepare:
@$(call targetinfo)
diff --git a/rules/netperf.in b/rules/netperf.in
deleted file mode 100644
index 61a7a3935..000000000
--- a/rules/netperf.in
+++ /dev/null
@@ -1,14 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=networking
-
-config NETPERF
- tristate
- prompt "netperf"
- select LIBC_M
- help
- netperf is a benchmark that can be used to measure the
- performance of many different types of networking.
-
- STAGING: remove in ptxdist-2021.06.0
- Upstream seems to be dead and fails to build with gcc 10.
diff --git a/rules/netperf.make b/rules/netperf.make
deleted file mode 100644
index dc9042445..000000000
--- a/rules/netperf.make
+++ /dev/null
@@ -1,74 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2016 by Clemens Gruber <clemens.gruber@pqgruber.com>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_NETPERF) += netperf
-
-#
-# Paths and names
-#
-NETPERF_VERSION := 2.7.0
-NETPERF_MD5 := e0d45b5bca1eee2aef0155de82366202
-NETPERF := netperf-$(NETPERF_VERSION)
-NETPERF_SUFFIX := tar.gz
-NETPERF_URL := \
- https://github.com/HewlettPackard/netperf/archive/$(NETPERF).$(NETPERF_SUFFIX)
-NETPERF_SOURCE := $(SRCDIR)/$(NETPERF).$(NETPERF_SUFFIX)
-NETPERF_DIR := $(BUILDDIR)/$(NETPERF)
-NETPERF_LICENSE := HP
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-NETPERF_CONF_TOOL := autoconf
-NETPERF_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- $(GLOBAL_LARGE_FILE_OPTION) \
- --disable-histogram \
- --disable-dirty \
- --enable-demo \
- --disable-unixdomain \
- --disable-dlpi \
- --disable-dccp \
- --enable-omni \
- --disable-xti \
- --disable-sdp \
- --disable-exs \
- --disable-sctp \
- --disable-intervals \
- --disable-spin \
- --enable-burst \
- --enable-cpuutil=procstat
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/netperf.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, netperf)
- @$(call install_fixup, netperf, PRIORITY, optional)
- @$(call install_fixup, netperf, SECTION, base)
- @$(call install_fixup, netperf, AUTHOR, "Clemens Gruber <clemens.gruber@pqgruber.com>")
- @$(call install_fixup, netperf, DESCRIPTION, missing)
-
- @$(call install_alternative, netperf, 0, 0, 0755, /usr/bin/netperf)
- @$(call install_alternative, netperf, 0, 0, 0755, /usr/bin/netserver)
-
- @$(call install_finish, netperf)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/nettle.make b/rules/nettle.make
index 7dddac0af..43e0b4158 100644
--- a/rules/nettle.make
+++ b/rules/nettle.make
@@ -14,13 +14,18 @@ PACKAGES-$(PTXCONF_NETTLE) += nettle
#
# Paths and names
#
-NETTLE_VERSION := 3.6
-NETTLE_MD5 := c45ee24ed7361dcda152a035d396fe8a
+NETTLE_VERSION := 3.8.1
+NETTLE_MD5 := e15c5fd5cc901f5dde6a271d7f2320d1
NETTLE := nettle-$(NETTLE_VERSION)
NETTLE_SUFFIX := tar.gz
NETTLE_SOURCE := $(SRCDIR)/$(NETTLE).$(NETTLE_SUFFIX)
NETTLE_DIR := $(BUILDDIR)/$(NETTLE)
-NETTLE_LICENSE := GPL-2.0-or-later
+NETTLE_LICENSE := GPL-2.0-or-later OR LGPL-3.0-or-later
+NETTLE_LICENSE_FILES := \
+ file://aes-decrypt-internal.c;startline=7;endline=31;md5=772749d9eca03de6e7c61a3dff9627d6 \
+ file://COPYINGv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYINGv3;md5=11cc2d3ee574f9d6b7ee797bdce4d423 \
+ file://COPYING.LESSERv3;md5=6a6a8e020838b23406c81b19c1d46df6
NETTLE_URL := \
http://www.lysator.liu.se/~nisse/archive/$(NETTLE).$(NETTLE_SUFFIX) \
diff --git a/rules/networkmanager.in b/rules/networkmanager.in
index 6c68d40cc..e0049274b 100644
--- a/rules/networkmanager.in
+++ b/rules/networkmanager.in
@@ -3,6 +3,7 @@
menuconfig NETWORKMANAGER
tristate
# intltool is unconditionally requested by configure
+ select GOBJECT_INTROSPECTION if NETWORKMANAGER_INTROSPECTION
select HOST_GLIB
select HOST_INTLTOOL
select HOST_LIBXSLT
@@ -23,6 +24,7 @@ menuconfig NETWORKMANAGER
select POLKIT if NETWORKMANAGER_POLKIT
select PPP if NETWORKMANAGER_PPP
select PPP_PLUGINS if NETWORKMANAGER_PPP
+ select PPP_MS_CHAP if NETWORKMANAGER_PPP
select READLINE if NETWORKMANAGER_NMCLI
select SYSTEMD if NETWORKMANAGER_SYSTEMD_UNIT
select UDEV
@@ -102,8 +104,20 @@ config NETWORKMANAGER_EXAMPLES
config NETWORKMANAGER_POLKIT
bool
+ depends on BROKEN
prompt "polkit support"
+config NETWORKMANAGER_MORE_LOGGING
+ bool
+ prompt "more logging"
+ help
+ Allows debug log level in NetworkManager.conf
+
+config NETWORKMANAGER_INTROSPECTION
+ bool
+ prompt "introspection support"
+ default GOBJECT_INTROSPECTION_HELPER
+
endif
menu "networkmanager plugins "
diff --git a/rules/networkmanager.make b/rules/networkmanager.make
index e2502b3f0..af310bd13 100644
--- a/rules/networkmanager.make
+++ b/rules/networkmanager.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_NETWORKMANAGER) += networkmanager
#
# Paths and names
#
-NETWORKMANAGER_VERSION := 1.26.2
-NETWORKMANAGER_MD5 := ad5332a7fe5d00db7c75b722337be62b
+NETWORKMANAGER_VERSION := 1.44.2
+NETWORKMANAGER_MD5 := bd6c9cb0ecd0fb7f516cde7bf4dee3fb
NETWORKMANAGER := NetworkManager-$(NETWORKMANAGER_VERSION)
NETWORKMANAGER_SUFFIX := tar.xz
NETWORKMANAGER_URL := $(call ptx/mirror, GNOME, NetworkManager/$(basename $(NETWORKMANAGER_VERSION))/$(NETWORKMANAGER).$(NETWORKMANAGER_SUFFIX))
@@ -47,17 +47,14 @@ NETWORKMANAGER_CONF_OPT = \
-Ddhcpcanon=false \
-Ddhcpcd=false \
-Ddnsmasq=/usr/sbin/dnsmasq \
- -Ddnssec_trigger=/bin/true \
-Ddocs=false \
-Debpf=false \
-Dfirewalld_zone=false \
-Dhostname_persist=default \
-Difcfg_rh=false \
-Difupdown=true \
- -Dintrospection=false \
- -Diptables=/usr/sbin/iptables \
+ -Dintrospection=$(call ptx/truefalse,PTXCONF_NETWORKMANAGER_INTROSPECTION) \
-Diwd=false \
- -Djson_validation=false \
-Dkernel_firmware_dir=/lib/firmware \
-Dld_gc=true \
-Dlibaudit=no \
@@ -65,7 +62,7 @@ NETWORKMANAGER_CONF_OPT = \
-Dmodem_manager=$(call ptx/truefalse,PTXCONF_NETWORKMANAGER_WWAN) \
-Dmodify_system=false \
-Dmore_asserts=no \
- -Dmore_logging=false \
+ -Dmore_logging=$(call ptx/truefalse,PTXCONF_NETWORKMANAGER_MORE_LOGGING) \
-Dnetconfig=false \
-Dnm_cloud_setup=false \
-Dnmcli=$(call ptx/truefalse,PTXCONF_NETWORKMANAGER_NMCLI) \
@@ -73,7 +70,7 @@ NETWORKMANAGER_CONF_OPT = \
-Dofono=false \
-Dovs=false \
-Dpolkit=$(call ptx/truefalse,PTXCONF_NETWORKMANAGER_POLKIT) \
- -Dpolkit_agent=false \
+ -Dpolkit_agent_helper_1=/usr/libexec/polkit-agent-helper-1 \
-Dppp=$(call ptx/truefalse,PTXCONF_NETWORKMANAGER_PPP) \
-Dpppd=/usr/sbin/pppd \
-Dpppd_plugin_dir=$(PPP_SHARED_INST_PATH) \
@@ -215,6 +212,10 @@ ifdef PTXCONF_NETWORKMANAGER_EXAMPLES
@$(call install_glob, networkmanager, 0, 0, -, /usr/bin, */nm-*-*)
endif
+ifdef PTXCONF_NETWORKMANAGER_INTROSPECTION
+ @$(call install_tree, networkmanager, 0, 0, -, /usr/lib/girepository-1.0)
+endif
+
@$(call install_finish, networkmanager)
@$(call touch)
diff --git a/rules/nfsutils.in b/rules/nfsutils.in
index 9a27ddead..f37f22506 100644
--- a/rules/nfsutils.in
+++ b/rules/nfsutils.in
@@ -6,12 +6,12 @@ menuconfig NFSUTILS
select GCCLIBS_GCC_S
select LIBBLKID
select LIBTIRPC
- select UTIL_LINUX_NG
- select UTIL_LINUX_NG_LIBMOUNT
+ select UTIL_LINUX
+ select UTIL_LINUX_LIBMOUNT
select RPCBIND if RUNTIME
select ROOTFS_PROTOCOLS if NFSUTILS_CLIENT
- select PYTHON3 if NFSUTILS_PYTHON && !PYTHON && RUNTIME
- select PYTHON3_SYMLINK if NFSUTILS_PYTHON && !PYTHON && RUNTIME
+ select PYTHON3 if NFSUTILS_PYTHON && RUNTIME
+ select PYTHON3_SYMLINK if NFSUTILS_PYTHON && RUNTIME
select ROOTFS_VAR_LIB if RUNTIME
help
The Sun Network Filesystem (NFS) protocol provides transparent remote
diff --git a/rules/nfsutils.make b/rules/nfsutils.make
index 77e6a7e6b..3e006e249 100644
--- a/rules/nfsutils.make
+++ b/rules/nfsutils.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_NFSUTILS) += nfsutils
#
# Paths and names
#
-NFSUTILS_VERSION := 2.5.3
-NFSUTILS_MD5 := e22d09701b4da853baa6ac7bae259732
+NFSUTILS_VERSION := 2.6.2
+NFSUTILS_MD5 := 36cbb17ca1f27d6d351a4f20ad25ba23
NFSUTILS := nfs-utils-$(NFSUTILS_VERSION)
NFSUTILS_SUFFIX := tar.gz
-NFSUTILS_URL := https://kernel.org/pub/linux/utils/nfs-utils/$(NFSUTILS_VERSION)/$(NFSUTILS).$(NFSUTILS_SUFFIX)
+NFSUTILS_URL := $(call ptx/mirror, KERNEL, utils/nfs-utils/$(NFSUTILS_VERSION)/$(NFSUTILS).$(NFSUTILS_SUFFIX))
NFSUTILS_SOURCE := $(SRCDIR)/$(NFSUTILS).$(NFSUTILS_SUFFIX)
NFSUTILS_DIR := $(BUILDDIR)/$(NFSUTILS)
NFSUTILS_LICENSE := GPL-2.0-or-later AND BSD-3-Clause
@@ -53,6 +53,7 @@ NFSUTILS_CONF_OPT := \
--disable-uuid \
--$(call ptx/endis, PTXCONF_NFSUTILS_CLIENT)-mount \
--$(call ptx/endis, PTXCONF_NFSUTILS_CLIENT)-libmount-mount \
+ --disable-sbin-override \
--disable-junction \
--enable-tirpc \
$(GLOBAL_IPV6_OPTION) \
@@ -68,7 +69,7 @@ NFSUTILS_CONF_OPT := \
--with-statdpath=/var/lib/nfs \
--with-statduser=rpcuser \
--with-systemd=/usr/lib/systemd/system \
- --with-rpcgen=$(PTXDIST_SYSROOT_HOST)/bin/rpcgen \
+ --with-rpcgen=$(PTXDIST_SYSROOT_HOST)/usr/bin/rpcgen \
--without-mountfile \
--without-tcp-wrappers \
--without-krb5 \
diff --git a/rules/nftables.make b/rules/nftables.make
index 542071d2c..e92e219d1 100644
--- a/rules/nftables.make
+++ b/rules/nftables.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_NFTABLES) += nftables
#
# Paths and names
#
-NFTABLES_VERSION := 0.8.3
-NFTABLES_MD5 := a604501c10a302fa417410b16f293d2c
+NFTABLES_VERSION := 1.0.4
+NFTABLES_MD5 := dcc3c263e00903037cf86d74477a9519
NFTABLES := nftables-$(NFTABLES_VERSION)
NFTABLES_SUFFIX := tar.bz2
NFTABLES_URL := http://ftp.netfilter.org/pub/nftables/$(NFTABLES).$(NFTABLES_SUFFIX)
@@ -36,10 +36,11 @@ NFTABLES_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--$(call ptx/endis, PTXCONF_NFTABLES_DEBUG)-debug \
--disable-man-doc \
- --disable-pdf-doc \
+ --disable-python \
--$(call ptx/wwo, PTXCONF_NFTABLES_MGMP)-mini-gmp \
--without-cli \
- --without-xtables
+ --without-xtables \
+ --without-json
# ----------------------------------------------------------------------------
# Target-Install
@@ -56,6 +57,7 @@ $(STATEDIR)/nftables.targetinstall:
@$(call install_copy, nftables, 0, 0, 0755, -, /usr/sbin/nft)
@$(call install_alternative, nftables, 0, 0, 0755, /etc/nftables.conf)
+ @$(call install_lib, nftables, 0, 0, 0644, libnftables)
ifdef PTXCONF_NFTABLES_STARTSCRIPT
@$(call install_alternative, nftables, 0, 0, 0755, /etc/init.d/nftables)
diff --git a/rules/nginx.in b/rules/nginx.in
index e9296ecb8..ca043460c 100644
--- a/rules/nginx.in
+++ b/rules/nginx.in
@@ -89,7 +89,7 @@ config NGINX_HTTP_SCGI_MODULE
bool
prompt "ngx_http_scgi_module"
help
- ngx_http_scgi_module allows passing requests to a SCGI
+ ngx_http_scgi_module allows passing requests to an SCGI
server.
config NGINX_HTTP_SSL_MODULE
diff --git a/rules/nginx.make b/rules/nginx.make
index fe12acf2e..5b5669de0 100644
--- a/rules/nginx.make
+++ b/rules/nginx.make
@@ -15,15 +15,15 @@ PACKAGES-$(PTXCONF_NGINX) += nginx
#
# Paths and names
#
-NGINX_VERSION := 1.18.0
-NGINX_MD5 := b2d33d24d89b8b1f87ff5d251aa27eb8
+NGINX_VERSION := 1.24.0
+NGINX_MD5 := f95835b55b3cbf05a4368e7bccbb8a46
NGINX := nginx-$(NGINX_VERSION)
NGINX_SUFFIX := tar.gz
NGINX_URL := https://nginx.org/download/$(NGINX).$(NGINX_SUFFIX)
NGINX_SOURCE := $(SRCDIR)/$(NGINX).$(NGINX_SUFFIX)
NGINX_DIR := $(BUILDDIR)/$(NGINX)
NGINX_LICENSE := BSD-2-Clause
-NGINX_LICENSE_FILES := file://LICENSE;md5=52e384aaac868b755b93ad5535e2d075
+NGINX_LICENSE_FILES := file://LICENSE;md5=175abb631c799f54573dc481454c8632
# ----------------------------------------------------------------------------
# Prepare
@@ -44,86 +44,81 @@ NGINX_CONF_ENV := \
ngx_force_have_map_devzero=yes \
ngx_force_have_sysvshm=yes \
ngx_force_have_posix_sem=yes \
+ \
ngx_force_ipv6=$(call ptx/yesno, PTXCONF_GLOBAL_IPV6)
-ifdef PTXCONF_ENDIAN_LITTLE
-NGINX_CONF_ENV += ngx_force_have_little_endian=yes
-endif
+# Note: Settings and module options are *not* symmetric.
+# If a module is on by default, a without option exists.
+# If it is off by default, a with option exists.
NGINX_CONF_TOOL := autoconf
NGINX_CONF_OPT := \
--crossbuild=Linux::$(PTXCONF_ARCH_STRING) \
- --with-cc=$(CROSS_CC) \
- --with-cpp=$(CROSS_CC) \
- --with-cc-opt="-O2 -Wno-error" \
--prefix=/usr/share/nginx \
- --conf-path=/etc/nginx/nginx.conf \
--sbin-path=/usr/sbin/nginx \
+ --conf-path=/etc/nginx/nginx.conf \
+ --error-log-path=stderr \
--pid-path=/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--user=www \
--group=www \
- --error-log-path=stderr \
- --http-log-path=/var/log/nginx \
- --http-client-body-temp-path=/var/tmp/nginx/client-body \
- --http-proxy-temp-path=/var/tmp/nginx/proxy \
- --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi \
- --http-scgi-temp-path=/var/tmp/nginx/scgi \
- --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
- --$(call ptx/wwo, PTXCONF_NGINX_PCRE)-pcre \
- --without-http_browser_module \
+ --force-endianness=$(call ptx/ifdef,PTXCONF_ENDIAN_LITTLE,little,big) \
+ $(call ptx/ifdef, PTXCONF_NGINX_THREADS,--with-threads) \
+ $(call ptx/ifdef, PTXCONF_NGINX_HTTP_SSL_MODULE,--with-http_ssl_module) \
+ $(call ptx/ifdef, PTXCONF_NGINX_HTTP_V2_MODULE,--with-http_v2_module) \
+ --with-http_sub_module \
+ $(call ptx/ifdef, PTXCONF_NGINX_HTTP_GZIP_STATIC_MODULE,--with-http_gzip_static_module) \
--without-http_charset_module \
- --without-http_empty_gif_module \
+ $(call ptx/ifdef, PTXCONF_NGINX_HTTP_GZIP_MODULE,,--without-http_gzip_module) \
+ --without-http_ssi_module \
+ --without-http_userid_module \
+ $(call ptx/ifdef, PTXCONF_NGINX_HTTP_ACCESS_MODULE,,--without-http_access_module) \
+ $(call ptx/ifdef, PTXCONF_NGINX_HTTP_AUTH_BASIC_MODULE,,--without-http_auth_basic_module) \
+ --without-http_mirror_module \
+ $(call ptx/ifdef, PTXCONF_NGINX_HTTP_AUTOINDEX_MODULE,,--without-http_autoindex_module) \
--without-http_geo_module \
+ --without-http_split_clients_module \
+ --without-http_referer_module \
+ $(call ptx/ifdef, PTXCONF_NGINX_HTTP_REWRITE_MODULE,,--without-http_rewrite_module) \
+ $(call ptx/ifdef, PTXCONF_NGINX_HTTP_PROXY_MODULE,,--without-http_proxy_module) \
+ $(call ptx/ifdef, PTXCONF_NGINX_HTTP_FASTCGI_MODULE,,--without-http_fastcgi_module) \
+ $(call ptx/ifdef, PTXCONF_NGINX_HTTP_UWSGI_MODULE,,--without-http_uwsgi_module) \
+ $(call ptx/ifdef, PTXCONF_NGINX_HTTP_SCGI_MODULE,,--without-http_scgi_module) \
+ $(call ptx/ifdef, PTXCONF_NGINX_HTTP_GRPC_MODULE,,--without-http_grpc_module) \
+ --without-http_memcached_module \
--without-http_limit_conn_module \
--without-http_limit_req_module \
- --without-http_map_module \
- --without-http_memcached_module \
- --without-http_mirror_module \
- --without-http_referer_module \
- --without-http_split_clients_module \
- --without-http_ssi_module \
+ --without-http_empty_gif_module \
+ --without-http_browser_module \
--without-http_upstream_hash_module \
--without-http_upstream_ip_hash_module \
- --without-http_upstream_keepalive_module \
--without-http_upstream_least_conn_module \
+ --without-http_upstream_keepalive_module \
--without-http_upstream_zone_module \
- --without-http_userid_module \
- --without-mail_imap_module \
+ --http-log-path=/var/log/nginx \
+ --http-client-body-temp-path=/var/tmp/nginx/client-body \
+ --http-proxy-temp-path=/var/tmp/nginx/proxy \
+ --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi \
+ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
+ --http-scgi-temp-path=/var/tmp/nginx/scgi \
--without-mail_pop3_module \
+ --without-mail_imap_module \
--without-mail_smtp_module \
+ --without-stream_limit_conn_module \
--without-stream_access_module \
--without-stream_geo_module \
- --without-stream_limit_conn_module \
--without-stream_map_module \
- --without-stream_return_module \
--without-stream_split_clients_module \
+ --without-stream_return_module \
--without-stream_upstream_hash_module \
--without-stream_upstream_least_conn_module \
- --without-stream_upstream_zone_module
-
-# Note: Settings and module options are *not* symmetric.
-# If a module is on by default, a without option exists.
-# If it is off by default, a with option exists.
-
-# Opt-in
-NGINX_CONF_OPTIN-$(PTXCONF_NGINX_HTTP_GZIP_STATIC_MODULE) := http_gzip_static_module
-NGINX_CONF_OPTIN-$(PTXCONF_NGINX_HTTP_SSL_MODULE) += http_ssl_module
-NGINX_CONF_OPTIN-$(PTXCONF_NGINX_HTTP_V2_MODULE) += http_v2_module
-NGINX_CONF_OPTIN-$(PTXCONF_NGINX_PCRE_JIT) += pcre-jit
-NGINX_CONF_OPTIN-$(PTXCONF_NGINX_THREADS) += threads
-
-# Opt-out
-NGINX_CONF_OPTOUT-$(PTXCONF_NGINX_HTTP_ACCESS_MODULE) := http_access_module
-NGINX_CONF_OPTOUT-$(PTXCONF_NGINX_HTTP_AUTH_BASIC_MODULE) += http_auth_basic_module
-NGINX_CONF_OPTOUT-$(PTXCONF_NGINX_HTTP_AUTOINDEX_MODULE) += http_autoindex_module
-NGINX_CONF_OPTOUT-$(PTXCONF_NGINX_HTTP_FASTCGI_MODULE) += http_fastcgi_module
-NGINX_CONF_OPTOUT-$(PTXCONF_NGINX_HTTP_GRPC_MODULE) += http_grpc_module
-NGINX_CONF_OPTOUT-$(PTXCONF_NGINX_HTTP_GZIP_MODULE) += http_gzip_module
-NGINX_CONF_OPTOUT-$(PTXCONF_NGINX_HTTP_PROXY_MODULE) += http_proxy_module
-NGINX_CONF_OPTOUT-$(PTXCONF_NGINX_HTTP_REWRITE_MODULE) += http_rewrite_module
-NGINX_CONF_OPTOUT-$(PTXCONF_NGINX_HTTP_SCGI_MODULE) += http_scgi_module
-NGINX_CONF_OPTOUT-$(PTXCONF_NGINX_HTTP_UWSGI_MODULE) += http_uwsgi_module
+ --without-stream_upstream_zone_module \
+ --with-cc=$(CROSS_CC) \
+ --with-cpp=$(CROSS_CC) \
+ --with-cc-opt="-O2 -Wno-error" \
+ --$(call ptx/wwo, PTXCONF_NGINX_PCRE)-pcre \
+ $(call ptx/ifdef, PTXCONF_NGINX_PCRE_JIT,--with-pcre-jit) \
+ --without-pcre2
NGINX_CONF_OPT += \
$(addprefix --with-,$(NGINX_CONF_OPTIN-y)) \
diff --git a/rules/nlohmann-json.in b/rules/nlohmann-json.in
new file mode 100644
index 000000000..af2f688ce
--- /dev/null
+++ b/rules/nlohmann-json.in
@@ -0,0 +1,21 @@
+## SECTION=system_libraries
+
+menuconfig NLOHMANN_JSON
+ tristate
+ prompt "JSON for Modern C++ "
+ select HOST_CMAKE
+ help
+ Modern C++11 JSON library with intuitive syntax, trivial
+ integration, and serious testing.
+
+ https://json.nlohmann.me/
+
+if NLOHMANN_JSON
+
+config NLOHMANN_JSON_BUILD_TESTS
+ bool
+ prompt "Build the unit tests"
+
+endif
+
+# vim: ft=kconfig noet tw=72 ts=8 sw=8
diff --git a/rules/nlohmann-json.make b/rules/nlohmann-json.make
new file mode 100644
index 000000000..392fbd57a
--- /dev/null
+++ b/rules/nlohmann-json.make
@@ -0,0 +1,42 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Alexander Dahl <ada@thorsis.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_NLOHMANN_JSON) += nlohmann-json
+
+#
+# Paths and names
+#
+NLOHMANN_JSON_VERSION := 3.11.3
+NLOHMANN_JSON_MD5 := d603041cbc6051edbaa02ebb82cf0aa9
+NLOHMANN_JSON := nlohmann-json-$(NLOHMANN_JSON_VERSION)
+NLOHMANN_JSON_SUFFIX := tar.gz
+NLOHMANN_JSON_URL := https://github.com/nlohmann/json/archive/refs/tags/v$(NLOHMANN_JSON_VERSION).$(NLOHMANN_JSON_SUFFIX)
+NLOHMANN_JSON_SOURCE := $(SRCDIR)/$(NLOHMANN_JSON).$(NLOHMANN_JSON_SUFFIX)
+NLOHMANN_JSON_DIR := $(BUILDDIR)/$(NLOHMANN_JSON)
+NLOHMANN_JSON_LICENSE := MIT
+NLOHMANN_JSON_LICENSE_FILES := file://LICENSE.MIT;md5=f969127d7b7ed0a8a63c2bbeae002588
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+NLOHMANN_JSON_CONF_TOOL := cmake
+NLOHMANN_JSON_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -DJSON_BuildTests:BOOL=$(call ptx/onoff, PTXCONF_NLOHMANN_JSON_BUILD_TESTS) \
+ -DJSON_CI:BOOL=OFF \
+ -DJSON_Diagnostics:BOOL=OFF \
+ -DJSON_ImplicitConversions:BOOL=ON \
+ -DJSON_Install:BOOL=ON \
+ -DJSON_MultipleHeaders:BOOL=OFF \
+ -DJSON_SystemInclude:BOOL=OFF
+
+# vim: ft=make noet tw=72 ts=8 sw=8
diff --git a/rules/nmap.in b/rules/nmap.in
index 19de078ac..cb68a1af2 100644
--- a/rules/nmap.in
+++ b/rules/nmap.in
@@ -15,7 +15,7 @@ menuconfig NMAP
if NMAP
config NMAP_OPENSSL
- bool "openssl support"
+ bool "openssl support"
config NMAP_NPING
bool "build and install nping"
diff --git a/rules/nmap.make b/rules/nmap.make
index cb65c2615..1b19e5c16 100644
--- a/rules/nmap.make
+++ b/rules/nmap.make
@@ -15,11 +15,11 @@ PACKAGES-$(PTXCONF_NMAP) += nmap
#
# Paths and names
#
-NMAP_VERSION := 7.70
-NMAP_MD5 := 84eb6fbe788e0d4918c2b1e39421bf79
+NMAP_VERSION := 7.93
+NMAP_MD5 := 9027eac4b8ca57574012cb061ba9ce4d
NMAP := nmap-$(NMAP_VERSION)
NMAP_SUFFIX := tar.bz2
-NMAP_URL := http://nmap.org/dist/$(NMAP).$(NMAP_SUFFIX)
+NMAP_URL := https://nmap.org/dist/$(NMAP).$(NMAP_SUFFIX)
NMAP_SOURCE := $(SRCDIR)/$(NMAP).$(NMAP_SUFFIX)
NMAP_DIR := $(BUILDDIR)/$(NMAP)
@@ -44,9 +44,7 @@ NMAP_CONF_OPT := \
--with-libdnet=included \
--without-liblua \
--with-liblinear=included \
- --without-ncat \
- --without-nmap-update \
- --without-subversion \
+ --without-ncat
# ----------------------------------------------------------------------------
diff --git a/rules/nodejs.in b/rules/nodejs.in
index 7a5e51962..ba6b871a5 100644
--- a/rules/nodejs.in
+++ b/rules/nodejs.in
@@ -3,8 +3,10 @@
config NODEJS
tristate
prompt "Node.js "
- select HOST_SYSTEM_PYTHON
- select HOST_NODEJS
+ select HOST_SYSTEM_PYTHON3
+ select HOST_QEMU
+ select HOST_QEMU_USR
+ select BROTLI
select C_ARES
select LIBUV
select OPENSSL
diff --git a/rules/nodejs.make b/rules/nodejs.make
index 2330e98a3..111f94af7 100644
--- a/rules/nodejs.make
+++ b/rules/nodejs.make
@@ -17,24 +17,16 @@ endif
#
# Paths and names
#
-NODEJS_VERSION := v12.16.1
-NODEJS_MD5 := 549582c075072c689c245ba12ecac54a
+NODEJS_VERSION := v20.11.0
+NODEJS_MD5 := e112c8d089843052639ac5c438149c4e
NODEJS := node-$(NODEJS_VERSION)
NODEJS_SUFFIX := tar.xz
NODEJS_URL := http://nodejs.org/dist/$(NODEJS_VERSION)/$(NODEJS).$(NODEJS_SUFFIX)
NODEJS_SOURCE := $(SRCDIR)/$(NODEJS).$(NODEJS_SUFFIX)
NODEJS_DIR := $(BUILDDIR)/$(NODEJS)
-NODEJS_LICENSE := MIT AND ISC AND BSD-3-Clause
+NODEJS_LICENSE := MIT AND ISC AND BSD-3-Clause AND BSD-2-Clause AND Apache-2.0
NODEJS_LICENSE_FILES := \
- file://LICENSE;md5=126890df35936bbffe9fa00c90ad4870
-
-NODEJS_HOST_TOOLS := \
- bytecode_builtins_list_generator \
- gen-regexp-special-case \
- mkcodecache \
- mksnapshot \
- node_mksnapshot \
- torque
+ file://LICENSE;md5=78ad16dab3c1d15d4878c81770be0be7
node/env = \
$(CROSS_ENV) \
@@ -67,32 +59,34 @@ endif
NODEJS_CONF_OPT := \
--prefix=/usr \
--dest-cpu=$(NODEJS_ARCH) \
- --no-cross-compiling \
+ --cross-compiling \
--dest-os=linux \
$(call ptx/ifdef,PTXCONF_ARCH_ARM,--with-arm-float-abi=$(NODEJS_ARM_FLOAT_ABI)) \
$(call ptx/ifdef,PTXCONF_ARCH_ARM,--with-arm-fpu=$(NODEJS_ARM_FPU)) \
- --without-dtrace \
- --without-etw \
--without-npm \
--shared \
--shared-libuv \
--shared-openssl \
--shared-zlib \
+ --shared-brotli \
--shared-cares \
- --with-intl=none \
- --without-snapshot
+ --with-intl=none
+
+ifdef PTXCONF_GLOBAL_LARGE_FILE
+# these flags are supposed to come from libuv but that does not work with shared libuv
+NODEJS_CPPFLAGS := \
+ -D_LARGEFILE_SOURCE \
+ -D_FILE_OFFSET_BITS=64
+endif
$(STATEDIR)/nodejs.prepare:
@$(call targetinfo)
-# # Using a patch here isn't enough, as we need absolute paths
-# # to the pre-built host tool binaries, which are different for
-# # each individual checkout of a BSP. -_-
- $(foreach f,$(NODEJS_HOST_TOOLS), \
- sed -i -e "s#<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)$(f)<(EXECUTABLE_SUFFIX)#$(PTXDIST_SYSROOT_HOST)/bin/$(f)#" \
- $(NODEJS_DIR)/node.gyp $(NODEJS_DIR)/tools/v8_gypfiles/v8.gyp $(ptx/nl))
-
- @$(call world/prepare, NODEJS)
+ @$(call world/execute, NODEJS, \
+ python3 ./configure $(NODEJS_CONF_OPT))
+ @mkdir -p $(NODEJS_DIR)/out/Release/
+ @ ln -svf $(PTXDIST_SYSROOT_CROSS)/usr/bin/qemu-cross \
+ $(NODEJS_DIR)/out/Release/tool-wrapper
@$(call touch)
diff --git a/rules/npth.make b/rules/npth.make
index 68ec2694a..48b7501a5 100644
--- a/rules/npth.make
+++ b/rules/npth.make
@@ -14,11 +14,13 @@ PACKAGES-$(PTXCONF_NPTH) += npth
#
# Paths and names
#
-NPTH_VERSION := 1.5
-NPTH_MD5 := 9ba2dc4302d2f32c66737c43ed191b1b
+NPTH_VERSION := 1.6
+NPTH_MD5 := 375d1a15ad969f32d25f1a7630929854
NPTH := npth-$(NPTH_VERSION)
NPTH_SUFFIX := tar.bz2
-NPTH_URL := ftp://ftp.gnupg.org/gcrypt/npth/$(NPTH).$(NPTH_SUFFIX)
+NPTH_URL := \
+ https://www.gnupg.org/ftp/gcrypt/npth/$(NPTH).$(NPTH_SUFFIX) \
+ ftp://ftp.gnupg.org/gcrypt/npth/$(NPTH).$(NPTH_SUFFIX)
NPTH_SOURCE := $(SRCDIR)/$(NPTH).$(NPTH_SUFFIX)
NPTH_DIR := $(BUILDDIR)/$(NPTH)
NPTH_LICENSE := LGPL-2.1-only
@@ -32,7 +34,8 @@ NPTH_LICENSE_FILES := \
#
# autoconf
#
-NPTH_AUTOCONF := \
+NPTH_CONF_TOOL := autoconf
+NPTH_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-tests \
--enable-build-timestamp="$(PTXDIST_BUILD_TIMESTAMP)"
diff --git a/rules/nspr.make b/rules/nspr.make
index 936dce2b4..945fb5c5f 100644
--- a/rules/nspr.make
+++ b/rules/nspr.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_NSPR) += nspr
#
# Paths and names
#
-NSPR_VERSION := 4.30
-NSPR_MD5 := 99780f9ffa3459392c1143f1408e0e08
+NSPR_VERSION := 4.35
+NSPR_MD5 := 5e0acf9fbdde85181bddd510f4624841
NSPR := nspr-$(NSPR_VERSION)
NSPR_SUFFIX := tar.gz
NSPR_URL := https://ftp.mozilla.org/pub/nspr/releases/v$(NSPR_VERSION)/src/$(NSPR).$(NSPR_SUFFIX)
diff --git a/rules/nss.make b/rules/nss.make
index 83ca07814..8a0d72500 100644
--- a/rules/nss.make
+++ b/rules/nss.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_NSS) += nss
#
# Paths and names
#
-NSS_VERSION := 3.63
-NSS_MD5 := 0249fc462d8b0ec716965919db86ecce
+NSS_VERSION := 3.98
+NSS_MD5 := 4502fcae1b32da310fffdfb3c67f6985
NSS := nss-$(NSS_VERSION)
NSS_SUFFIX := tar.gz
NSS_URL := https://ftp.mozilla.org/pub/security/nss/releases/NSS_$(subst .,_,$(NSS_VERSION))_RTM/src/$(NSS).$(NSS_SUFFIX)
@@ -63,7 +63,7 @@ NSS_MAKE_ENV := \
NSS_MAKE_OPT := \
OS_ARCH=Linux \
- OS_RELEASE=$(PTXCONF_KERNEL_VERSION) \
+ OS_RELEASE=$(KERNEL_VERSION) \
OS_TEST=$(NSS_ARCH) \
all
@@ -92,7 +92,7 @@ $(STATEDIR)/nss.install:
@$(call world/install, NSS)
@$(foreach lib,$(NSS_LIBS), \
- install -v -m644 -D $(NSS_DIR)/dist/Linux$(PTXCONF_KERNEL_VERSION)_$(NSS_ARCH)_*/lib/$(lib).so \
+ install -v -m644 -D $(NSS_DIR)/dist/Linux$(KERNEL_VERSION)_$(NSS_ARCH)_*/lib/$(lib).so \
$(NSS_PKGDIR)/usr/lib/$(lib).so$(ptx/nl))
install -d $(NSS_PKGDIR)/usr/lib/pkgconfig/
diff --git a/rules/ntfs-3g.in b/rules/ntfs-3g.in
index a61d6a374..3749565eb 100644
--- a/rules/ntfs-3g.in
+++ b/rules/ntfs-3g.in
@@ -3,8 +3,7 @@
config NTFS_3G
tristate
prompt "ntfs-3g"
- select FUSE
- select FUSE_LIB
+ select FUSE3 if RUNTIME
select LIBUUID
help
The NTFS-3G driver is an open source, freely available NTFS driver
diff --git a/rules/ntfs-3g.make b/rules/ntfs-3g.make
index 9748b3c8d..1720fd2cb 100644
--- a/rules/ntfs-3g.make
+++ b/rules/ntfs-3g.make
@@ -14,16 +14,16 @@ PACKAGES-$(PTXCONF_NTFS_3G) += ntfs-3g
#
# Paths and names
#
-NTFS_3G_VERSION := 2017.3.23
-NTFS_3G_MD5 := d97474ae1954f772c6d2fa386a6f462c
+NTFS_3G_VERSION := 2022.10.3
+NTFS_3G_MD5 := a038af61be7584b79f8922ff11244090
NTFS_3G := ntfs-3g_ntfsprogs-$(NTFS_3G_VERSION)
NTFS_3G_SUFFIX := tgz
-NTFS_3G_URL := https://download.tuxera.com/opensource/$(NTFS_3G).$(NTFS_3G_SUFFIX)
+NTFS_3G_URL := https://tuxera.com/opensource/$(NTFS_3G).$(NTFS_3G_SUFFIX)
NTFS_3G_SOURCE := $(SRCDIR)/$(NTFS_3G).$(NTFS_3G_SUFFIX)
NTFS_3G_DIR := $(BUILDDIR)/$(NTFS_3G)
NTFS_3G_LICENSE := GPL-2.0-or-later AND LGPL-2.0-only
NTFS_3G_LICENSE_FILES := \
- file://README;startline=35;endline=42;md5=a3204cfad57631a62a347096d10f3498 \
+ file://README;startline=37;endline=44;md5=692018652fb43fb27bfde6a919c68388 \
file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
file://COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a
@@ -43,8 +43,8 @@ NTFS_3G_CONF_OPT := \
--disable-pedantic \
--disable-really-static \
--disable-mount-helper \
- --disable-ldconfig \
--disable-ldscript \
+ --disable-ldconfig \
--disable-library \
--disable-mtab \
--disable-posix-acls \
@@ -54,13 +54,13 @@ NTFS_3G_CONF_OPT := \
--enable-ntfs-3g \
--disable-ntfsprogs \
--disable-crypto \
- --disable-quarantined \
--disable-extras \
+ --disable-quarantined \
--disable-nfconv \
- --with-fuse=external \
+ $(GLOBAL_LARGE_FILE_OPTION) \
+ --with-fuse=internal \
--with-uuid \
- --without-hd \
- $(GLOBAL_LARGE_FILE_OPTION)
+ --without-hd
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/ntp.make b/rules/ntp.make
index 3236eb189..b813df9db 100644
--- a/rules/ntp.make
+++ b/rules/ntp.make
@@ -15,15 +15,15 @@ PACKAGES-$(PTXCONF_NTP) += ntp
#
# Paths and names
#
-NTP_VERSION := 4.2.8p12
-NTP_MD5 := 1522d66574bae14abb2622746dad2bdc
+NTP_VERSION := 4.2.8p17
+NTP_MD5 := a15558df580bd1b955a105a8b91c078f
NTP := ntp-$(NTP_VERSION)
NTP_SUFFIX := tar.gz
NTP_URL := http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/$(NTP).$(NTP_SUFFIX)
NTP_SOURCE := $(SRCDIR)/$(NTP).$(NTP_SUFFIX)
NTP_DIR := $(BUILDDIR)/$(NTP)
NTP_LICENSE := ntp
-NTP_LICENSE_FILES := file://COPYRIGHT;md5=e877a1d567a6a58996d2b66e3e387003
+NTP_LICENSE_FILES := file://COPYRIGHT;md5=3a8ffebbcad335abf2c39fec38671eec
# ----------------------------------------------------------------------------
# Prepare
@@ -31,6 +31,7 @@ NTP_LICENSE_FILES := file://COPYRIGHT;md5=e877a1d567a6a58996d2b66e3e387003
NTP_CONF_ENV := \
$(CROSS_ENV) \
+ ac_cv_search_MD5Init=no \
libopts_cv_test_dev_zero=yes \
ntp_cv_vsnprintf_percent_m=yes
@@ -135,6 +136,8 @@ NTP_CONF_OPT := \
--disable-kernel-fll-bug \
--enable-bug1243-fix \
--enable-bug3020-fix \
+ --enable-bug3527-fix \
+ --enable-bug3767-fix \
--$(call ptx/endis, PTXCONF_NTP_IRIG_SAWTOOTH)-irig-sawtooth \
--$(call ptx/endis, PTXCONF_NTP_NIST)-nist \
--disable-ntp-signd \
@@ -144,7 +147,6 @@ NTP_CONF_OPT := \
--disable-saveconfig \
--disable-leap-smear \
--disable-dynamic-interleave \
- --without-gtest \
--disable-problem-tests
# ----------------------------------------------------------------------------
diff --git a/rules/ntpclient.in b/rules/ntpclient.in
index 9698f33f0..96288307e 100644
--- a/rules/ntpclient.in
+++ b/rules/ntpclient.in
@@ -1,4 +1,7 @@
-## SECTION=networking
+## SECTION=staging
+## old section:
+### SECTION=networking
+
menuconfig NTPCLIENT
tristate
prompt "ntpclient "
@@ -19,6 +22,9 @@ menuconfig NTPCLIENT
See http://doolittle.icarus.com/ntpclient/ for details.
+ STAGING: remove in PTXdist 2025.05.0
+ Unmaintained in PTXdist. Upstream and URL are dead.
+
if NTPCLIENT
diff --git a/rules/ntpclient.make b/rules/ntpclient.make
index 944968711..bf943e35d 100644
--- a/rules/ntpclient.make
+++ b/rules/ntpclient.make
@@ -15,21 +15,22 @@ PACKAGES-$(PTXCONF_NTPCLIENT) += ntpclient
#
# Paths and names
#
-NTPCLIENT_VERSION := 365
-NTPCLIENT_MD5 := cb98711f11769cdd22fc592844cef414
+NTPCLIENT_VERSION := 2015_365
+NTPCLIENT_MD5 := e0d0e6089dd3300b6958055340a7796f
NTPCLIENT_SUFFIX := tar.gz
-NTPCLIENT := ntpclient-2007
-NTPCLIENT_TARBALL := ntpclient_2007_$(NTPCLIENT_VERSION).$(NTPCLIENT_SUFFIX)
+NTPCLIENT := ntpclient_$(NTPCLIENT_VERSION)
+NTPCLIENT_TARBALL := $(NTPCLIENT).$(NTPCLIENT_SUFFIX)
NTPCLIENT_URL := http://doolittle.icarus.com/ntpclient/$(NTPCLIENT_TARBALL)
NTPCLIENT_SOURCE := $(SRCDIR)/$(NTPCLIENT_TARBALL)
NTPCLIENT_DIR := $(BUILDDIR)/$(NTPCLIENT)
NTPCLIENT_LICENSE := GPL-2.0-only
+NTPCLIENT_LICENSE_FILES := \
+ file://ntpclient.c;startline=6;endline=16;md5=3c2ff3dfb1e4846d1a114bd3b2e9fdbd
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-NTPCLIENT_PATH := PATH=$(CROSS_PATH)
NTPCLIENT_MAKE_OPT := \
CC="$(CROSS_CC)"
diff --git a/rules/numactl.in b/rules/numactl.in
new file mode 100644
index 000000000..66e2645f2
--- /dev/null
+++ b/rules/numactl.in
@@ -0,0 +1,18 @@
+## SECTION=shell_and_console
+
+menuconfig NUMACTL
+ tristate
+ prompt "numactl "
+ help
+ NUMA policy support for Linux.
+ Consists of a 'numactl' program and a 'libnuma' shared library.
+
+if NUMACTL
+
+config NUMACTL_NUMACTL
+ bool
+ prompt "numactl"
+ help
+ Program to run other programs with a specific NUMA policy.
+
+endif
diff --git a/rules/numactl.make b/rules/numactl.make
new file mode 100644
index 000000000..6db1c2707
--- /dev/null
+++ b/rules/numactl.make
@@ -0,0 +1,59 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Alexander Dahl <ada@thorsis.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_NUMACTL) += numactl
+
+#
+# Paths and names
+#
+NUMACTL_VERSION := 2.0.14
+NUMACTL_MD5 := f65f3501a82df8c3ee7cc74dc6a55636
+NUMACTL := numactl-$(NUMACTL_VERSION)
+NUMACTL_SUFFIX := tar.gz
+NUMACTL_URL := https://github.com/numactl/numactl/releases/download/v$(NUMACTL_VERSION)/$(NUMACTL).$(NUMACTL_SUFFIX)
+NUMACTL_SOURCE := $(SRCDIR)/$(NUMACTL).$(NUMACTL_SUFFIX)
+NUMACTL_DIR := $(BUILDDIR)/$(NUMACTL)
+NUMACTL_LICENSE := LGPL-2.1 AND GPL-2.0
+NUMACTL_LICENSE_FILES := \
+ file://README.md;startline=25;endline=47;md5=0ca89e009b5e838824a114916c20e382 \
+ file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
+ file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+NUMACTL_CONF_TOOL := autoconf
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/numactl.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, numactl)
+ @$(call install_fixup, numactl,PRIORITY,optional)
+ @$(call install_fixup, numactl,SECTION,base)
+ @$(call install_fixup, numactl,AUTHOR,"Alexander Dahl <ada@thorsis.com>")
+ @$(call install_fixup, numactl,DESCRIPTION,missing)
+
+ifdef PTXCONF_NUMACTL_NUMACTL
+ @$(call install_copy, numactl, 0, 0, 0755, -, /usr/bin/numactl)
+endif
+
+ @$(call install_lib, numactl, 0, 0, 0644, libnuma)
+
+ @$(call install_finish, numactl)
+
+ @$(call touch)
+
+# vim: ft=make noet tw=72 ts=8 sw=8
diff --git a/rules/nvtop.in b/rules/nvtop.in
new file mode 100644
index 000000000..af4287415
--- /dev/null
+++ b/rules/nvtop.in
@@ -0,0 +1,34 @@
+## SECTION=shell_and_console
+
+menuconfig NVTOP
+ bool
+ prompt "nvtop"
+ select HOST_CMAKE
+ select NCURSES
+ select LIBDRM if NVTOP_AMDGPU || NVTOP_MSM
+ select LIBDRM_AMDGPU if NVTOP_AMDGPU
+ select SYSTEMD if NVTOP_AMDGPU || NVTOP_INTEL
+ help
+ Interactive GPU process monitor
+
+if NVTOP
+
+config NVTOP_NVIDIA
+ bool
+ # needs libnvml
+ depends on BROKEN
+ prompt "build support for NVIDIA GPUs"
+
+config NVTOP_AMDGPU
+ bool
+ prompt "build support for AMD GPUs using the amdgpu driver"
+
+config NVTOP_INTEL
+ bool
+ prompt "build support for Intel GPUs using the i915 driver"
+
+config NVTOP_MSM
+ bool
+ prompt "build support for Adreno GPUs using the msm driver"
+
+endif
diff --git a/rules/nvtop.make b/rules/nvtop.make
new file mode 100644
index 000000000..738b7a013
--- /dev/null
+++ b/rules/nvtop.make
@@ -0,0 +1,62 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Philipp Zabel <p.zabel@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_NVTOP) += nvtop
+
+#
+# Paths and names
+#
+NVTOP_VERSION := 3.0.2
+NVTOP_MD5 := fdf9bc33c2240ba99cee0d726d267427
+NVTOP := nvtop-$(NVTOP_VERSION)
+NVTOP_SUFFIX := tar.gz
+NVTOP_URL := https://github.com/Syllo/nvtop/archive/refs/tags/$(NVTOP_VERSION).$(NVTOP_SUFFIX)
+NVTOP_SOURCE := $(SRCDIR)/$(NVTOP).$(NVTOP_SUFFIX)
+NVTOP_DIR := $(BUILDDIR)/$(NVTOP)
+NVTOP_LICENSE := GPL-3.0-or-later
+NVTOP_LICENSE_FILES := \
+ file://COPYING;md5=d32239bcb673463ab874e80d47fae504
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# cmake
+#
+NVTOP_CONF_TOOL := cmake
+NVTOP_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -DNVIDIA_SUPPORT=$(call ptx/onoff, PTXCONF_NVTOP_NVIDIA) \
+ -DAMDGPU_SUPPORT=$(call ptx/onoff, PTXCONF_NVTOP_AMDGPU) \
+ -DINTEL_SUPPORT=$(call ptx/onoff, PTXCONF_NVTOP_INTEL) \
+ -DMSM_SUPPORT=$(call ptx/onoff, PTXCONF_NVTOP_MSM)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/nvtop.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, nvtop)
+ @$(call install_fixup, nvtop, PRIORITY, optional)
+ @$(call install_fixup, nvtop, SECTION, base)
+ @$(call install_fixup, nvtop, AUTHOR, "Philipp Zabel <p.zabel@pengutronix.de>")
+ @$(call install_fixup, nvtop, DESCRIPTION, missing)
+
+ @$(call install_copy, nvtop, 0, 0, 0755, -, /usr/bin/nvtop)
+
+ @$(call install_finish, nvtop)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/ofono.make b/rules/ofono.make
index 83b2177b1..0524d7e83 100644
--- a/rules/ofono.make
+++ b/rules/ofono.make
@@ -58,7 +58,8 @@ OFONO_CONF_OPT := \
--disable-provision \
--disable-upower \
--disable-external-ell \
- --enable-datafiles
+ --enable-datafiles \
+ --with-systemdunitdir=/usr/lib/systemd/system
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/open62541.in b/rules/open62541.in
index 74ee011e2..dc35921ea 100644
--- a/rules/open62541.in
+++ b/rules/open62541.in
@@ -9,5 +9,5 @@ config OPEN62541
select LIBC_PTHREAD
select MBEDTLS
help
- The open62541 project is an open source implementation of the OPC UA
- communication infrastructure which is used in industrial control.
+ The open62541 project is an open source implementation of the OPC UA
+ communication infrastructure which is used in industrial control.
diff --git a/rules/open62541.make b/rules/open62541.make
index ac2b58829..7c06794dd 100644
--- a/rules/open62541.make
+++ b/rules/open62541.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_OPEN62541) += open62541
#
# Paths and names
#
-OPEN62541_VERSION := 1.2
-OPEN62541_MD5 := 90034b0cf1714f9bf1d94ec2b17f3086
+OPEN62541_VERSION := 1.3.4
+OPEN62541_MD5 := a3871da1723b0d436564d643e169879e
OPEN62541 := open62541-$(OPEN62541_VERSION)
OPEN62541_SUFFIX := tar.gz
OPEN62541_URL := https://github.com/open62541/open62541/archive/v$(OPEN62541_VERSION)/$(OPEN62541).$(OPEN62541_SUFFIX)
@@ -25,33 +25,21 @@ OPEN62541_DIR := $(BUILDDIR)/$(OPEN62541)
OPEN62541_LICENSE := MPL-2.0
OPEN62541_LICENSE_FILES := file://LICENSE;md5=815ca599c9df247a0c7f619bab123dad
+# use tarballs instead of git submodules
+# see https://github.com/open62541/open62541/tree/v$(version)/deps
OPEN62541_MDNSD_VERSION := 3151afe5899dba5125dffa9f4cf3ae1fe2edc0f0
OPEN62541_MDNSD_MD5 := 75c45c7913b33f92a7be460bce593991
OPEN62541_MDNSD := open62541-mdnsd-$(OPEN62541_MDNSD_VERSION)
OPEN62541_MDNSD_SUFFIX := tar.gz
OPEN62541_MDNSD_URL := https://github.com/Pro/mdnsd/archive/$(OPEN62541_MDNSD_VERSION)/$(OPEN62541_MDNSD).$(OPEN62541_MDNSD_SUFFIX)
OPEN62541_MDNSD_SOURCE := $(SRCDIR)/$(OPEN62541_MDNSD).$(OPEN62541_MDNSD_SUFFIX)
-$(OPEN62541_MDNSD_SOURCE) := OPEN62541_MDNSD
OPEN62541_MDNSD_DIR := $(OPEN62541_DIR)/deps/mdnsd
OPEN62541_MDNSD_LICENSE := BSD-3-Clause
OPEN62541_MDNSD_LICENSE_FILES := file://LICENSE;md5=3bb4047dc4095cd7336de3e2a9be94f0
OPEN62541_DEVPKG := NO
-OPEN62541_SOURCES := $(OPEN62541_SOURCE) $(OPEN62541_MDNSD_SOURCE)
-
-
-# ----------------------------------------------------------------------------
-# Extract
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/open62541.extract:
- @$(call targetinfo)
- @$(call clean, $(OPEN62541_DIR))
- @$(call extract, OPEN62541)
- @$(call extract, OPEN62541_MDNSD)
- @$(call patchin, OPEN62541)
- @$(call touch)
+OPEN62541_PARTS += OPEN62541_MDNSD
# ----------------------------------------------------------------------------
# Prepare
@@ -78,40 +66,44 @@ OPEN62541_CONF_OPT := \
-DUA_ENABLE_AMALGAMATION=OFF \
-DUA_ENABLE_COVERAGE=OFF \
-DUA_ENABLE_DA=ON \
- -DUA_ENABLE_CUSTOM_NODESTORE=OFF \
-DUA_ENABLE_DETERMINISTIC_RNG=OFF \
+ -DUA_ENABLE_DIAGNOSTICS=OFF \
-DUA_ENABLE_DISCOVERY=ON \
-DUA_ENABLE_DISCOVERY_MULTICAST=ON \
-DUA_ENABLE_DISCOVERY_SEMAPHORE=ON \
-DUA_ENABLE_ENCRYPTION=ON \
-DUA_ENABLE_EXPERIMENTAL_HISTORIZING=OFF \
-DUA_ENABLE_HARDENING=ON \
+ -DUA_ENABLE_ENCRYPTION_TPM2=OFF \
-DUA_ENABLE_HISTORIZING=ON \
-DUA_ENABLE_IMMUTABLE_NODES=ON \
-DUA_ENABLE_JSON_ENCODING=OFF \
-DUA_ENABLE_MALLOC_SINGLETON=OFF \
-DUA_ENABLE_METHODCALLS=ON \
- -DUA_ENABLE_MICRO_EMB_DEV_PROFILE=ON \
- -DUA_ENABLE_MULTITHREADING=200 \
-DUA_ENABLE_NODEMANAGEMENT=ON \
-DUA_ENABLE_NODESET_COMPILER_DESCRIPTIONS=ON \
-DUA_ENABLE_PUBSUB=ON \
+ -DUA_ENABLE_PUBSUB_DELTAFRAMES=ON \
-DUA_ENABLE_PUBSUB_ETH_UADP=ON \
-DUA_ENABLE_PUBSUB_DELTAFRAMES=ON \
-DUA_ENABLE_PUBSUB_INFORMATIONMODEL=ON \
-DUA_ENABLE_PUBSUB_INFORMATIONMODEL_METHODS=ON \
- -DUA_ENABLE_PUBSUB_CUSTOM_PUBLISH_HANDLING=OFF \
-DUA_ENABLE_QUERY=ON \
-DUA_ENABLE_STATIC_ANALYZER=OFF \
-DUA_ENABLE_STATUSCODE_DESCRIPTIONS=ON \
-DUA_ENABLE_SUBSCRIPTIONS=ON \
-DUA_ENABLE_SUBSCRIPTIONS_EVENTS=ON \
- -DUA_ENABLE_TYPENAMES=ON \
-DUA_ENABLE_UNIT_TEST_FAILURE_HOOKS=OFF \
-DUA_ENABLE_UNIT_TESTS_MEMCHECK=OFF \
-DUA_ENABLE_VALGRIND_INTERACTIVE=OFF \
- -DUA_COMPILE_AS_CXX=OFF \
-DUA_FILE_NS0="" \
+ -DUA_FORCE_WERROR=OFF \
+ -DUA_LOGLEVEL=$(OPEN62541_LOGLEVEL) \
+ -DUA_MSVC_FORCE_STATIC_CRT=OFF \
+ -DUA_MULTITHREADING=200 \
+ -DUA_NAMESPACE_ZERO=FULL \
+ -DUA_NODESET_DIR="$(PTXDIST_SYSROOT_HOST)/usr/share/ua-nodeset" \
+ -DUA_PACK_DEBIAN=OFF
-DUA_LOGLEVEL=$(OPEN62541_LOGLEVEL) \
-DUA_MSVC_FORCE_STATIC_CRT=OFF \
-DUA_NAMESPACE_ZERO=FULL \
diff --git a/rules/openblas.in b/rules/openblas.in
new file mode 100644
index 000000000..c84bcce4f
--- /dev/null
+++ b/rules/openblas.in
@@ -0,0 +1,19 @@
+## SECTION=system_libraries
+
+menuconfig OPENBLAS
+ tristate
+ select HOST_CMAKE
+ select HOST_NINJA
+ select GCCLIBS_GFORTRAN if !OPENBLAS_C_LAPACK
+ prompt "OpenBLAS "
+ help
+ OpenBLAS is an optimized BLAS (Basic Linear Algebra Subprograms)
+ library based on GotoBLAS2 1.13 BSD version.
+
+if OPENBLAS
+
+config OPENBLAS_C_LAPACK
+ bool
+ prompt "Build LAPACK from C instead of Fortran"
+
+endif
diff --git a/rules/openblas.make b/rules/openblas.make
new file mode 100644
index 000000000..80a8cf1eb
--- /dev/null
+++ b/rules/openblas.make
@@ -0,0 +1,103 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_OPENBLAS) += openblas
+
+#
+# Paths and names
+#
+OPENBLAS_VERSION := 0.3.24
+OPENBLAS_MD5 := 23599a30e4ce887590957d94896789c8
+OPENBLAS := openblas-$(OPENBLAS_VERSION)
+OPENBLAS_SUFFIX := tar.gz
+OPENBLAS_URL := https://github.com/OpenMathLib/OpenBLAS/archive/refs/tags/v$(OPENBLAS_VERSION).$(OPENBLAS_SUFFIX)
+OPENBLAS_SOURCE := $(SRCDIR)/$(OPENBLAS).$(OPENBLAS_SUFFIX)
+OPENBLAS_DIR := $(BUILDDIR)/$(OPENBLAS)
+OPENBLAS_LICENSE := BSD-2-Clause AND BSD-3-Clause
+OPENBLAS_LICENSE_FILES := \
+ file://benchmark/linpack.c;startline=1;endline=37;md5=6e154d722b840bdd9d105c4a84e07d9d \
+ file://LICENSE;md5=5adf4792c949a00013ce25d476a2abc0
+
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+ifdef PTXCONF_ARCH_ARM
+OPENBLAS_TARGET := ARMV5
+ifdef PTXCONF_ARCH_ARM_V7
+OPENBLAS_TARGET := ARMV7
+endif
+ifdef PTXCONF_ARCH_ARM_V6
+OPENBLAS_TARGET := ARMV6
+endif
+endif
+ifdef PTXCONF_ARCH_ARM64
+OPENBLAS_TARGET := ARMV8
+endif
+ifdef PTXCONF_ARCH_RISCV
+OPENBLAS_TARGET := RISCV64_GENERIC
+endif
+ifdef PTXCONF_ARCH_X86
+ifdef PTXCONF_ARCH_X86_64
+# not optimized but at least it compiles
+OPENBLAS_TARGET := PRESCOTT
+OPENBLAS_CFLAGS := -DGENERIC
+else
+OPENBLAS_TARGET := ATOM
+endif
+endif
+
+OPENBLAS_CONF_TOOL := cmake
+OPENBLAS_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -G Ninja \
+ -DBUILD_LAPACK_DEPRECATED=ON \
+ -DBUILD_RELAPACK=OFF \
+ -DBUILD_STATIC_LIBS=OFF \
+ -DBUILD_TESTING=OFF \
+ -DBUILD_WITHOUT_CBLAS=OFF \
+ -DBUILD_WITHOUT_LAPACK=OFF \
+ -DCPP_THREAD_SAFETY_GEMV=OFF \
+ -DCPP_THREAD_SAFETY_TEST=OFF \
+ -DC_LAPACK=$(call ptx/onoff,PTXCONF_OPENBLAS_C_LAPACK) \
+ -DDYNAMIC_ARCH=OFF \
+ -DDYNAMIC_OLDER=OFF \
+ -DNO_AFFINITY=ON \
+ -DNO_WARMUP=ON \
+ -DSYMBOLPREFIX= \
+ -DSYMBOLSUFFIX= \
+ -DUSE_LOCKING=OFF \
+ -DUSE_PERL=OFF \
+ \
+ -DBUILD_SHARED_LIBS=ON \
+ -DTARGET=$(OPENBLAS_TARGET)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/openblas.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, openblas)
+ @$(call install_fixup, openblas,PRIORITY,optional)
+ @$(call install_fixup, openblas,SECTION,base)
+ @$(call install_fixup, openblas,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, openblas,DESCRIPTION,missing)
+
+ @$(call install_lib, openblas, 0, 0, 0644, libopenblas)
+
+ @$(call install_finish, openblas)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/opencv.in b/rules/opencv.in
index bbf907b64..c700b2216 100644
--- a/rules/opencv.in
+++ b/rules/opencv.in
@@ -12,7 +12,8 @@ menuconfig OPENCV
select QT5 if OPENCV_QT
select QT5_TEST if OPENCV_QT
select QT5_GUI if OPENCV_QT
- select GSTREAMER if OPENCV_GSTREAMER
+ select GSTREAMER1 if OPENCV_GSTREAMER
+ select GST_PLUGINS_BASE1 if OPENCV_GSTREAMER
select V4L_UTILS if OPENCV_V4L_LIBV4L2
select V4L_UTILS_LIBV4L1 if OPENCV_V4L_LIBV4L2
select V4L_UTILS_LIBV4L2 if OPENCV_V4L_LIBV4L2
@@ -114,7 +115,6 @@ config OPENCV_DNN
config OPENCV_GSTREAMER
bool
- depends on STAGING
prompt "gstreamer"
help
Gstreamer Support
diff --git a/rules/opencv.make b/rules/opencv.make
index baa8cd7b2..f4a044307 100644
--- a/rules/opencv.make
+++ b/rules/opencv.make
@@ -38,6 +38,13 @@ endif
# Prepare
# ----------------------------------------------------------------------------
+# set PKG_CONFIG_LIBDIR to something, otherwise opencv will not use
+# pkg-config when cross-compiling. The value does not matter, the wrapper
+# overwrites it anyways.
+OPENCV_CONF_ENV := \
+ $(CROSS_ENV) \
+ PKG_CONFIG_LIBDIR=not-empty
+
OPENCV_CONF_TOOL := cmake
# Note: configure_helper.py does not show some options that are only
@@ -139,7 +146,7 @@ OPENCV_CONF_OPT := \
-DOPENCV_PYTHON3_VERSION=$(PYTHON3_MAJORMINOR) \
-DOPENCV_WARNINGS_ARE_ERRORS=OFF \
-DPROTOBUF_UPDATE_FILES=OFF \
- -DPYTHON3_EXECUTABLE=$(PTXDIST_SYSROOT_CROSS)/bin/python$(PYTHON3_MAJORMINOR) \
+ -DPYTHON3_EXECUTABLE=$(PTXDIST_SYSROOT_CROSS)/usr/bin/python$(PYTHON3_MAJORMINOR) \
-DPYTHON3_NUMPY_INCLUDE_DIRS=$(PTXDIST_SYSROOT_TARGET)$(PYTHON3_SITEPACKAGES)/numpy/core/include/ \
-DWITH_1394=OFF \
-DWITH_ADE=OFF \
@@ -211,10 +218,12 @@ OPENCV_CONF_OPT := \
\
-DCMAKE_SKIP_RPATH=ON \
-DBUILD_opencv_python2=OFF \
- -DPYTHON_INCLUDE_DIR=$(PTXDIST_SYSROOT_TARGET)/usr/include/python$(PYTHON3_MAJORMINOR)m \
+ -DPYTHON_INCLUDE_DIR=$(PTXDIST_SYSROOT_TARGET)/usr/include/python$(PYTHON3_MAJORMINOR) \
-DPYTHON_LIBRARY=$(PTXDIST_SYSROOT_TARGET)/bin/python$(PYTHON3_MAJORMINOR) \
-DOPENCV_PYTHON3_INSTALL_PATH=$(PYTHON3_SITEPACKAGES) \
- -DOPENCV_SKIP_PYTHON_LOADER=ON
+ -DOPENCV_SKIP_PYTHON_LOADER=ON \
+ -DOPENCV_LAPACK_FIND_PACKAGE_ONLY=ON \
+ -DCMAKE_DISABLE_FIND_PACKAGE_LAPACK=ON
$(STATEDIR)/opencv.install:
diff --git a/rules/openfortivpn.in b/rules/openfortivpn.in
index e18643322..602f57cb1 100644
--- a/rules/openfortivpn.in
+++ b/rules/openfortivpn.in
@@ -1,8 +1,8 @@
## SECTION=networking
-menuconfig OPENFORTIVPN
+config OPENFORTIVPN
tristate
- prompt "openfortivpn "
+ prompt "openfortivpn"
select LIBC_PTHREAD
select LIBC_UTIL
select OPENSSL
@@ -18,8 +18,8 @@ menuconfig OPENFORTIVPN
if OPENFORTIVPN
config OPENFORTIVPN_SYSTEMD
- bool
- default INITMETHOD_SYSTEMD
+ bool
+ default INITMETHOD_SYSTEMD
endif
diff --git a/rules/openldap.in b/rules/openldap.in
index b967d1dff..b8f9937fb 100644
--- a/rules/openldap.in
+++ b/rules/openldap.in
@@ -4,6 +4,7 @@ menuconfig OPENLDAP
tristate
prompt "openldap "
select ZLIB
+ select LIBC_CRYPT if OPENLDAP_SLAPD
select LIBC_RESOLV
select LIBC_PTHREAD
select OPENSSL if OPENLDAP_TLS_OPENSSL
diff --git a/rules/openldap.make b/rules/openldap.make
index 4cfc07bfb..3d8207cdb 100644
--- a/rules/openldap.make
+++ b/rules/openldap.make
@@ -14,16 +14,17 @@ PACKAGES-$(PTXCONF_OPENLDAP) += openldap
#
# Paths and names
#
-OPENLDAP_VERSION := 2.4.47
-OPENLDAP_LIBVERSION := 2.4
-OPENLDAP_MD5 := e508f97bfd778fec7799f286e5c07176
+OPENLDAP_VERSION := 2.6.3
+OPENLDAP_MD5 := 6b7229396b335dd5ab2d24841d7f4b53
OPENLDAP := openldap-$(OPENLDAP_VERSION)
OPENLDAP_SUFFIX := tgz
-OPENLDAP_URL := ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/$(OPENLDAP).$(OPENLDAP_SUFFIX)
+OPENLDAP_URL := https://www.openldap.org/software/download/OpenLDAP/openldap-release/$(OPENLDAP).$(OPENLDAP_SUFFIX)
OPENLDAP_SOURCE := $(SRCDIR)/$(OPENLDAP).$(OPENLDAP_SUFFIX)
OPENLDAP_DIR := $(BUILDDIR)/$(OPENLDAP)
-# http://www.openldap.org/software/release/license.html
-OPENLDAP_LICENSE := OpenLDAP Public License
+OPENLDAP_LICENSE := OLDAP-2.8
+OPENLDAP_LICENSE_FILES := \
+ file://COPYRIGHT;md5=beceb5ac7100b6430640c61655b25c1f \
+ file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972
# ----------------------------------------------------------------------------
# Prepare
@@ -31,6 +32,7 @@ OPENLDAP_LICENSE := OpenLDAP Public License
OPENLDAP_CONF_ENV := \
$(CROSS_ENV) \
+ ac_cv_header_unicode_utypes_h=no \
ac_cv_header_uuid_uuid_h=no
OPENLDAP_TLS_CONF_OPT-$(PTXCONF_OPENLDAP_TLS_GNUTLS) := gnutls
@@ -43,49 +45,47 @@ OPENLDAP_TLS_CONF_OPT-$(PTXCONF_OPENLDAP_TLS_DISABLED) := no
OPENLDAP_CONF_TOOL := autoconf
OPENLDAP_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
- --$(call ptx/endis, PTXCONF_GLOBAL_IPV6)-ipv6 \
+ --disable-debug \
+ --enable-dynamic \
--enable-syslog \
+ --$(call ptx/endis, PTXCONF_GLOBAL_IPV6)-ipv6 \
--enable-local \
- --enable-proctitle \
- --enable-dynamic \
\
--$(call ptx/endis, PTXCONF_OPENLDAP_SLAPD)-slapd \
--disable-dynacl \
--disable-aci \
--enable-cleartext \
--enable-crypt \
- --disable-lmpasswd \
--disable-spasswd \
--disable-modules \
- --enable-rewrite \
--disable-rlookups \
--disable-slapi \
--disable-slp \
--disable-wrappers \
\
- --enable-hdb=no \
+ --disable-backends \
--enable-dnssrv=no \
- --enable-bdb=no \
--enable-ldap=yes \
--enable-mdb=yes \
--enable-meta=no \
- --enable-monitor=yes \
- --enable-ndb=no \
+ --enable-asyncmeta=no \
--enable-null=yes \
--enable-passwd=yes \
--enable-perl=no \
--enable-relay=yes \
- --enable-shell=no \
--enable-sock=no \
--enable-sql=no \
+ --enable-wt=no \
\
--enable-overlays=no \
\
--without-cyrus-sasl \
+ --without-systemd \
--without-fetch \
- --with-yielding_select=yes \
--with-threads \
- --with-tls=$(OPENLDAP_TLS_CONF_OPT-y)
+ --with-tls=$(OPENLDAP_TLS_CONF_OPT-y) \
+ --with-yielding_select=yes \
+ --with-mp=longlong
# ----------------------------------------------------------------------------
@@ -118,9 +118,8 @@ endif
# libraries
- @$(call install_lib, openldap, 0, 0, 0644, liblber-$(OPENLDAP_LIBVERSION))
- @$(call install_lib, openldap, 0, 0, 0644, libldap-$(OPENLDAP_LIBVERSION))
- @$(call install_lib, openldap, 0, 0, 0644, libldap_r-$(OPENLDAP_LIBVERSION))
+ @$(call install_lib, openldap, 0, 0, 0644, liblber)
+ @$(call install_lib, openldap, 0, 0, 0644, libldap)
# tools
diff --git a/rules/opennhrp.in b/rules/opennhrp.in
deleted file mode 100644
index 6554e9dd8..000000000
--- a/rules/opennhrp.in
+++ /dev/null
@@ -1,9 +0,0 @@
-## SECTION=networking
-
-config OPENNHRP
- tristate
- select C_ARES
- prompt "opennhrp"
- help
- OpenNHRP implements NBMA Next Hop Resolution Protocol
- (as defined in RFC 2332)
diff --git a/rules/opennhrp.make b/rules/opennhrp.make
deleted file mode 100644
index 73167137e..000000000
--- a/rules/opennhrp.make
+++ /dev/null
@@ -1,62 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2014 Dr. Neuhaus Telekommunikation GmbH, Hamburg Germany, Oliver Graute <oliver.graute@neuhaus.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_OPENNHRP) += opennhrp
-
-#
-# Paths and names
-#
-OPENNHRP_VERSION := 0.14.1
-OPENNHRP_MD5 := eb42ddb13e07ceb415b9ebb8eaca28ee
-OPENNHRP := opennhrp-$(OPENNHRP_VERSION)
-OPENNHRP_SUFFIX := tar.bz2
-OPENNHRP_URL := $(call ptx/mirror, SF, opennhrp/$(OPENNHRP).$(OPENNHRP_SUFFIX))
-OPENNHRP_SOURCE := $(SRCDIR)/$(OPENNHRP).$(OPENNHRP_SUFFIX)
-OPENNHRP_DIR := $(BUILDDIR)/$(OPENNHRP)
-OPENNHRP_LICENSE := MIT
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-OPENNHRP_CONF_TOOL := NO
-OPENNHRP_MAKE_OPT := \
- $(CROSS_ENV_CC) \
- PREFIX=/usr
-
-OPENNHRP_INSTALL_OPT := \
- $(OPENNHRP_MAKE_OPT) \
- install
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/opennhrp.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, opennhrp)
- @$(call install_fixup, opennhrp,PRIORITY,optional)
- @$(call install_fixup, opennhrp,SECTION,base)
- @$(call install_fixup, opennhrp,AUTHOR,"<oliver.graute@neuhaus.de>")
- @$(call install_fixup, opennhrp,DESCRIPTION,missing)
-
- @$(call install_copy, opennhrp, 0, 0, 0755, -, /usr/sbin/opennhrp)
- @$(call install_copy, opennhrp, 0, 0, 0755, -, /usr/sbin/opennhrpctl)
- @$(call install_alternative, opennhrp, 0, 0, 0644, /etc/opennhrp/opennhrp.conf)
- @$(call install_alternative, opennhrp, 0, 0, 0755, /etc/opennhrp/racoon-ph1dead.sh)
- @$(call install_alternative, opennhrp, 0, 0, 0755, /etc/opennhrp/racoon-ph1down.sh)
-
- @$(call install_finish, opennhrp)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/openntpd.make b/rules/openntpd.make
index 05584bf83..bf54bf2d8 100644
--- a/rules/openntpd.make
+++ b/rules/openntpd.make
@@ -21,6 +21,8 @@ OPENNTPD_SUFFIX := tar.gz
OPENNTPD_URL := http://ftp.eu.openbsd.org/pub/OpenBSD/OpenNTPD/$(OPENNTPD).$(OPENNTPD_SUFFIX)
OPENNTPD_SOURCE := $(SRCDIR)/$(OPENNTPD).$(OPENNTPD_SUFFIX)
OPENNTPD_DIR := $(BUILDDIR)/$(OPENNTPD)
+OPENNTPD_LICENSE := ISC AND custom AND BSD-2-Clause AND BSD-3-Clause
+OPENNTPD_LICENSE_FILES := file://LICENCE;md5=4b4f5158007cc97e6b0e2325bb99854a
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/opensc.make b/rules/opensc.make
index 80f578d03..dac5c3ecb 100644
--- a/rules/opensc.make
+++ b/rules/opensc.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_OPENSC) += opensc
#
# Paths and names
#
-OPENSC_VERSION := 0.19.0
-OPENSC_MD5 := 40734b2343cf83c62c4c403f8a37475e
+OPENSC_VERSION := 0.23.0
+OPENSC_MD5 := 35c599e673ae9205550974e2dcbe0825
OPENSC := OpenSC-$(OPENSC_VERSION)
OPENSC_SUFFIX := tar.gz
OPENSC_URL := https://github.com/OpenSC/OpenSC/releases/download/$(OPENSC_VERSION)/$(OPENSC).$(OPENSC_SUFFIX)
@@ -56,7 +56,7 @@ OPENSC_CONF_OPT := \
--disable-doc \
--disable-dnie-ui \
--disable-notify \
- --$(call ptx/endis,PTXCONF_OPENSC_TESTSUITE)-tests \
+ --$(call ptx/endis,PTXCONF_OPENSC_TESTSUITE)-cmocka \
--disable-static
# ----------------------------------------------------------------------------
@@ -132,7 +132,7 @@ ifdef PTXCONF_OPENSC_TESTSUITE
@$(call install_copy, opensc, 0, 0, 0755, /usr/lib/opensc/tests/regression)
@$(foreach prog, $(OPENSC_TESTS), \
$(call install_copy, opensc, 0, 0, 0755, $(OPENSC_DIR)/src/tests/$(prog), \
- /usr/lib/opensc/tests/$(prog));)
+ /usr/lib/opensc/tests/$(prog))$(ptx/nl))
@$(call install_copy, opensc, 0, 0, 0644, $(OPENSC_DIR)/src/tests/regression/bintest, \
/usr/lib/opensc/tests/regression/bintest)
diff --git a/rules/openssh.make b/rules/openssh.make
index d85771a9e..5381cbca5 100644
--- a/rules/openssh.make
+++ b/rules/openssh.make
@@ -15,18 +15,19 @@ PACKAGES-$(PTXCONF_OPENSSH) += openssh
#
# Paths and names
#
-OPENSSH_VERSION := 8.6p1
-OPENSSH_MD5 := 805f7048aec6dd752584e570383a6f00
+OPENSSH_VERSION := 9.7p1
+OPENSSH_MD5 := 1100f170ca1bc669038ca3743e074094
OPENSSH := openssh-$(OPENSSH_VERSION)
OPENSSH_SUFFIX := tar.gz
OPENSSH_URL := \
https://ftp.halifax.rwth-aachen.de/openbsd/OpenSSH/portable/$(OPENSSH).$(OPENSSH_SUFFIX) \
- https://mirror.hs-esslingen.de/pub/OpenBSD/OpenSSH/portable/$(OPENSSH).$(OPENSSH_SUFFIX)
+ https://mirror.hs-esslingen.de/pub/OpenBSD/OpenSSH/portable/$(OPENSSH).$(OPENSSH_SUFFIX) \
+ https://ftp.lysator.liu.se/pub/OpenBSD/OpenSSH/portable/$(OPENSSH).$(OPENSSH_SUFFIX)
OPENSSH_SOURCE := $(SRCDIR)/$(OPENSSH).$(OPENSSH_SUFFIX)
OPENSSH_DIR := $(BUILDDIR)/$(OPENSSH)
-OPENSSH_LICENSE := BSD AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause AND MIT AND Beerware AND ISC
-OPENSSH_LICENSE_FILES := file://LICENCE;md5=d9d2753bdef9f19466dc7bc959114b11
+OPENSSH_LICENSE := BSD AND BSD-2-Clause AND BSD-3-Clause AND MIT AND Beerware AND ISC
+OPENSSH_LICENSE_FILES := file://LICENCE;md5=072979064e691d342002f43cd89c0394
# ----------------------------------------------------------------------------
# Prepare
@@ -34,12 +35,12 @@ OPENSSH_LICENSE_FILES := file://LICENCE;md5=d9d2753bdef9f19466dc7bc959114b11
OPENSSH_CONF_ENV := \
$(CROSS_ENV) \
- select_works_with_rlimit=yes \
+ ac_cv_search_SHA256Update=no \
LD=$(COMPILER_PREFIX)gcc
OPENSSH_SANDBOX-y := seccomp_filter
# seccomp_filter sandbox is not supported for ppc
-OPENSSH_SANDBOX-$(PTXCONF_ARCH_PPC) := rlimit
+OPENSSH_SANDBOX-$(PTXCONF_ARCH_PPC) := no
#
# autoconf
@@ -77,8 +78,7 @@ OPENSSH_CONF_OPT := \
--with-privsep-user=sshd \
--with-sandbox=$(OPENSSH_SANDBOX-y) \
--$(call ptx/wwo, PTXCONF_GLOBAL_SELINUX)-selinux \
- --with-privsep-path=/var/run/sshd \
- --without-md5-passwords
+ --with-privsep-path=/var/run/sshd
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/openssl.in b/rules/openssl.in
index 629ee3057..4c00e1e05 100644
--- a/rules/openssl.in
+++ b/rules/openssl.in
@@ -35,4 +35,10 @@ config OPENSSL_CRYPTODEV
help
Enable the BSD cryptodev engine even if we are not using BSD.
+config OPENSSL_KTLS
+ bool
+ prompt "enable OpenSSL kTLS support"
+ help
+ Whether to build OpenSSL with kTLS support.
+
endif
diff --git a/rules/openssl.make b/rules/openssl.make
index f8fbf5725..fbc6424e0 100644
--- a/rules/openssl.make
+++ b/rules/openssl.make
@@ -16,18 +16,18 @@ PACKAGES-$(PTXCONF_OPENSSL) += openssl
#
# Paths and names
#
-OPENSSL_BASE := 1.1.1
-OPENSSL_BUGFIX := k
-OPENSSL_VERSION := $(OPENSSL_BASE)$(OPENSSL_BUGFIX)
-OPENSSL_MD5 := c4e7d95f782b08116afa27b30393dd27
-OPENSSL := openssl-$(OPENSSL_VERSION)
-OPENSSL_SUFFIX := tar.gz
-OPENSSL_URL := \
- http://www.openssl.org/source/$(OPENSSL).$(OPENSSL_SUFFIX) \
- http://www.openssl.org/source/old/$(OPENSSL_BASE)/$(OPENSSL).$(OPENSSL_SUFFIX)
-OPENSSL_SOURCE := $(SRCDIR)/$(OPENSSL).$(OPENSSL_SUFFIX)
-OPENSSL_DIR := $(BUILDDIR)/$(OPENSSL)
-OPENSSL_LICENSE := OpenSSL
+OPENSSL_VERSION := 3.2.1
+OPENSSL_MD5 := c239213887804ba00654884918b37441
+OPENSSL := openssl-$(OPENSSL_VERSION)
+OPENSSL_SUFFIX := tar.gz
+OPENSSL_URL := \
+ https://www.openssl.org/source/$(OPENSSL).$(OPENSSL_SUFFIX) \
+ https://www.openssl.org/source/old/$(basename $(OPENSSL_VERSION))/$(OPENSSL).$(OPENSSL_SUFFIX)
+OPENSSL_SOURCE := $(SRCDIR)/$(OPENSSL).$(OPENSSL_SUFFIX)
+OPENSSL_DIR := $(BUILDDIR)/$(OPENSSL)
+OPENSSL_LICENSE := Apache-2.0
+OPENSSL_LICENSE_FILES := \
+ file://LICENSE.txt;md5=c75985e733726beaba57bc5253e96d04
# ----------------------------------------------------------------------------
# Prepare
@@ -65,10 +65,11 @@ endif
#
OPENSSL_CONF_OPT := \
--prefix=/usr \
- --libdir=/usr/$(CROSS_LIB_DIR) \
- --openssldir=/usr/$(CROSS_LIB_DIR)/ssl \
+ --libdir=/usr/lib \
+ --openssldir=/usr/lib/ssl \
shared \
$(call ptx/ifdef, PTXCONF_OPENSSL_CRYPTODEV, enable-devcryptoeng, no-devcryptoeng) \
+ $(call ptx/ifdef, PTXCONF_OPENSSL_KTLS, enable-ktls, no-ktls) \
no-idea \
no-mdc2 \
no-rc5 \
@@ -106,7 +107,7 @@ ifdef PTXCONF_OPENSSL_BIN
endif
@$(call install_alternative, openssl, 0, 0, 0644, \
- /usr/$(CROSS_LIB_DIR)/ssl/openssl.cnf)
+ /usr/lib/ssl/openssl.cnf)
@$(call install_lib, openssl, 0, 0, 0644, libssl)
@$(call install_lib, openssl, 0, 0, 0644, libcrypto)
diff --git a/rules/openvpn.in b/rules/openvpn.in
index 568c8a9d2..0ef6af5af 100644
--- a/rules/openvpn.in
+++ b/rules/openvpn.in
@@ -4,6 +4,7 @@ menuconfig OPENVPN
tristate
prompt "openvpn "
select OPENSSL
+ select LIBCAP_NG
select LIBLZO if OPENVPN_LZO
select SYSTEMD if OPENVPN_SYSTEMD
select IPTABLES if OPENVPN_INSTALL_SAMPLE_CONFIGS && RUNTIME
diff --git a/rules/openvpn.make b/rules/openvpn.make
index 46cca64ca..c2cc4fb47 100644
--- a/rules/openvpn.make
+++ b/rules/openvpn.make
@@ -14,20 +14,21 @@ PACKAGES-$(PTXCONF_OPENVPN) += openvpn
#
# Paths and names
#
-OPENVPN_VERSION := 2.4.6
-OPENVPN_MD5 := 3a1f3f63bdaede443b4df49957df9405
+OPENVPN_VERSION := 2.6.9
+OPENVPN_MD5 := e5beda906a40e997e26766f0de09ecbf
OPENVPN := openvpn-$(OPENVPN_VERSION)
-OPENVPN_SUFFIX := tar.xz
-OPENVPN_URL := http://swupdate.openvpn.org/community/releases/$(OPENVPN).$(OPENVPN_SUFFIX)
+OPENVPN_SUFFIX := tar.gz
+OPENVPN_URL := https://github.com/OpenVPN/openvpn/releases/download/v$(OPENVPN_VERSION)/$(OPENVPN).$(OPENVPN_SUFFIX)
OPENVPN_SOURCE := $(SRCDIR)/$(OPENVPN).$(OPENVPN_SUFFIX)
OPENVPN_DIR := $(BUILDDIR)/$(OPENVPN)
-OPENVPN_LICENSE := GPL-2.0-only WITH openvpn-openssl-exception AND BSD-2-Clause AND BSD-3-Clause
+OPENVPN_LICENSE := GPL-2.0-only WITH (openvpn-openssl-exception AND custom-exception) AND BSD-2-Clause AND BSD-3-Clause AND ((GPL-2.0-only WITH Linux-syscall-note) OR MIT)
OPENVPN_LICENSE_FILES := \
- file://COPYING;md5=7aee596ed2deefe3e8a861e24292abba \
+ file://COPYING;md5=4b34e946059f80dcfd811e8dd471b5ed \
file://COPYRIGHT.GPL;md5=52cadf4008002e3c314a47a54fa7306c \
- file://src/openvpn/openvpn.c;startline=2;endline=21;md5=0f37ee042b428e513bda42b430344d42 \
+ file://src/openvpn/openvpn.c;startline=2;endline=21;md5=b9fb1976bc6d8ad5e02a251351dc58f2 \
file://src/openvpn/base64.c;startline=2;endline=31;md5=f4debd767645b13107fc5912faf2ad8f \
- file://src/compat/compat-lz4.c;startline=13;endline=38;md5=5f66cf078523624965e41518eed881e2
+ file://src/openvpn/ovpn_dco_linux.h;startline=1;endline=1;md5=b317f96dbe63f35baef28266acb68512 \
+ file://src/openvpn/ovpn_dco_freebsd.h;startline=1;endline=1;md5=a7ba62aad20f9685c53b0565a263af30
# ----------------------------------------------------------------------------
# Prepare
@@ -43,8 +44,11 @@ OPENVPN_CONF_ENV := \
IFCONFIG=/usr/sbin/ifconfig \
IPROUTE=/usr/sbin/ip \
NETSTAT=/usr/bin/netstat \
- ROUTE=/usr/sbin/route \
- SYSTEMD_ASK_PASSWORD=/usr/bin/systemd-ask-password
+ ROUTE=/usr/sbin/route
+
+ifdef PTXCONF_OPENVPN_SYSTEMD
+OPENVPN_CONF_ENV += SYSTEMD_ASK_PASSWORD=/usr/bin/systemd-ask-password
+endif
#
# autoconf
@@ -55,23 +59,20 @@ OPENVPN_CONF_OPT := \
--$(call ptx/endis, PTXCONF_OPENVPN_LZO)-lzo \
--disable-lz4 \
--disable-comp-stub \
- --enable-crypto \
--enable-ofb-cfb \
--disable-x509-alt-username \
- --enable-server \
--disable-plugins \
--enable-management \
--disable-pkcs11 \
--enable-fragment \
- --enable-multihome \
--enable-port-share \
--disable-debug \
--$(call ptx/endis, PTXCONF_OPENVPN_SMALL)-small \
+ --disable-dco \
--enable-iproute2 \
- --enable-def-auth \
- --enable-pf \
--disable-plugin-auth-pam \
--enable-plugin-down-root \
+ --disable-pam-dlopen \
--disable-strict \
--disable-pedantic \
--disable-werror \
@@ -79,17 +80,20 @@ OPENVPN_CONF_OPT := \
--disable-selinux \
--$(call ptx/endis, PTXCONF_OPENVPN_SYSTEMD)-systemd \
--disable-async-push \
- --with-crypto-library=openssl
+ --disable-wolfssl-options-h \
+ --disable-unit-tests \
+ --with-crypto-library=openssl \
+ --with-openssl-engine
OPENVPN_INSTALL_SAMPLE_CONFIG_FILES := \
client.conf loopback-client loopback-server README server.conf \
- static-home.conf static-office.conf tls-home.conf tls-office.conf \
- xinetd-client-config xinetd-server-config
+ tls-home.conf tls-office.conf
OPENVPN_INSTALL_SAMPLE_CONFIG_SCRIPTS := \
firewall.sh home.up office.up openvpn-shutdown.sh openvpn-startup.sh
-OPENVPN_INSTALL_SAMPLE_SCRIPTS := bridge-start bridge-stop
+OPENVPN_INSTALL_SAMPLE_SCRIPTS := auth-pam.pl bridge-start bridge-stop ucn.pl \
+ verify-cn
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/opkg.in b/rules/opkg.in
index c9160509c..fa913537c 100644
--- a/rules/opkg.in
+++ b/rules/opkg.in
@@ -4,7 +4,6 @@ menuconfig OPKG
tristate
select LIBARCHIVE
select LIBCURL if OPKG_CURL
- select OPENSSL if OPKG_OPENSSL
prompt "opkg "
help
Opkg is a lightweight package management system based on Ipkg.
@@ -13,21 +12,6 @@ menuconfig OPKG
if OPKG
-config OPKG_PATHFINDER
- bool
- prompt "pathfinder support"
- # needs pathfinder-openssl
- depends on BROKEN
- help
- Pathfinder is designed to provide a mechanism for any
- program to perform RFC3280-compliant path validation
- of X.509 certificates, even when some of the intermediate
- certificates are not present on the local machine. It will
- automatically download any such certificates (and their
- CRLs) from the Internet as needed using the AIA and CRL
- distribution point extensions of the certificate it is
- processing.
-
config OPKG_CURL
bool
prompt "libcurl support"
@@ -42,12 +26,6 @@ config OPKG_SHA256
help
FIXME
-config OPKG_OPENSSL
- bool
- prompt "openssl signature checking"
- help
- FIXME
-
config OPKG_SSL_CURL
bool
prompt "libcurl certificate authentication"
@@ -57,8 +35,6 @@ config OPKG_SSL_CURL
config OPKG_GPG
bool
prompt "signature checking with gpg"
- # gpg and openssl are mutually exclusive
- depends on ! OPKG_OPENSSL
# needs gpgme
depends on BROKEN
help
@@ -97,17 +73,6 @@ config OPKG_OPKG_CONF_URL
If you don't want to use this feature, keep the whole entry empty.
-config OPKG_OPKG_CONF_CHECKSIG
- bool
- prompt "enable repository signature checking"
- depends on OPKG_OPENSSL
- help
- Set the following options in opkg.conf:
- option check_signature 1
- option signature_ca_path /etc/ssl/certs
- option signature_ca_file /etc/ssl/certs/opkg.crt
-
- Repository will only be used if it's signature can be validated.
endif
endif
diff --git a/rules/opkg.make b/rules/opkg.make
index 23390ce0f..9e80a0494 100644
--- a/rules/opkg.make
+++ b/rules/opkg.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_OPKG) += opkg
#
# Paths and names
#
-OPKG_VERSION := 0.4.1
-OPKG_MD5 := ba0c21305fc93b26e844981ef100dc85
+OPKG_VERSION := 0.6.3
+OPKG_MD5 := 8be4d6ec7557c40e7604d37ba33fdd34
OPKG := opkg-$(OPKG_VERSION)
OPKG_SUFFIX := tar.gz
OPKG_URL := http://downloads.yoctoproject.org/releases/opkg/$(OPKG).$(OPKG_SUFFIX)
@@ -38,16 +38,16 @@ OPKG_CONF_OPT := \
$(GLOBAL_LARGE_FILE_OPTION) \
--disable-libopkg-api \
--disable-static \
- --$(call ptx/endis, PTXCONF_OPKG_PATHFINDER)-pathfinder \
--disable-xz \
--disable-bzip2 \
+ --disable-lz4 \
+ --disable-zstd \
--$(call ptx/endis, PTXCONF_OPKG_CURL)-curl \
--$(call ptx/endis, PTXCONF_OPKG_SHA256)-sha256 \
- --$(call ptx/endis, PTXCONF_OPKG_OPENSSL)-openssl \
--$(call ptx/endis, PTXCONF_OPKG_SSL_CURL)-ssl-curl \
--$(call ptx/endis, PTXCONF_OPKG_GPG)-gpg \
- --without-libsolv \
- --without-static-libopkg
+ --without-static-libopkg \
+ --without-libsolv
# ----------------------------------------------------------------------------
# Target-Install
@@ -75,31 +75,12 @@ endif
@$(call install_lib, opkg, 0, 0, 0644, libopkg)
-ifdef PTXCONF_IMAGE_IPKG_SIGN_OPENSSL
- @$(call install_copy, opkg, 0, 0, 0644, $(PTXCONF_IMAGE_IPKG_SIGN_OPENSSL_SIGNER), /etc/ssl/certs/opkg.crt)
-endif
-
ifdef PTXCONF_OPKG_OPKG_CONF
@$(call install_alternative, opkg, 0, 0, 0644, /etc/opkg/opkg.conf)
@$(call install_replace, opkg, /etc/opkg/opkg.conf, @SRC@, \
$(PTXCONF_OPKG_OPKG_CONF_URL))
@$(call install_replace, opkg, /etc/opkg/opkg.conf, @ARCH@, \
$(PTXDIST_IPKG_ARCH_STRING))
-ifdef PTXCONF_OPKG_OPKG_CONF_CHECKSIG
- @$(call install_replace, opkg, /etc/opkg/opkg.conf, @CHECKSIG@, \
- "option check_signature 1")
- @$(call install_replace, opkg, /etc/opkg/opkg.conf, @CAPATH@, \
- "option signature_ca_path /etc/ssl/certs")
- @$(call install_replace, opkg, /etc/opkg/opkg.conf, @CAFILE@, \
- "option signature_ca_file /etc/ssl/certs/opkg.crt")
-else
- @$(call install_replace, opkg, /etc/opkg/opkg.conf, @CHECKSIG@, \
- "#option check_signature 0")
- @$(call install_replace, opkg, /etc/opkg/opkg.conf, @CAPATH@, \
- "#option signature_ca_path /etc/ssl/certs")
- @$(call install_replace, opkg, /etc/opkg/opkg.conf, @CAFILE@, \
- "#option signature_ca_file /etc/ssl/certs/opkg.crt")
-endif
endif
@$(call install_finish, opkg)
diff --git a/rules/oprofile.in b/rules/oprofile.in
index 6463eae7e..b83ba21dd 100644
--- a/rules/oprofile.in
+++ b/rules/oprofile.in
@@ -1,4 +1,6 @@
-## SECTION=debug_tools
+## SECTION=staging
+## old section:
+### SECTION=debug_tools
menuconfig OPROFILE
tristate
@@ -16,16 +18,20 @@ menuconfig OPROFILE
select BUSYBOX_TR
select BINUTILS
select BINUTILS_OBJDUMP
+ select KERNEL if OPROFILE_VMLINUX && RUNTIME
+ select KERNEL_VMLINUX if OPROFILE_VMLINUX && RUNTIME
prompt "oprofile "
help
oprofile user space executables including opcontrol, opreport and others
+ STAGING: remove in PTXdist 2025.04.0
+ Upstream is dead, unmaintained in ptxdist and fails to build with newer
+ toolchains.
+
if OPROFILE
config OPROFILE_VMLINUX
bool
- select KERNEL
- select KERNEL_VMLINUX
prompt "Install vmlinux"
help
Disabled by default.
diff --git a/rules/optee-client.in b/rules/optee-client.in
index be97b3689..d1acb6be5 100644
--- a/rules/optee-client.in
+++ b/rules/optee-client.in
@@ -2,6 +2,7 @@
menuconfig OPTEE_CLIENT
tristate
+ select LIBUUID
prompt "optee-client "
help
Open Portable Trusted Execution Environment Client API.
diff --git a/rules/optee-client.make b/rules/optee-client.make
index 7fbebf1f1..1258fe84f 100644
--- a/rules/optee-client.make
+++ b/rules/optee-client.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_OPTEE_CLIENT) += optee-client
#
# Paths and names
#
-OPTEE_CLIENT_VERSION := 3.5.0
-OPTEE_CLIENT_MD5 := 2738729cb2457f2b4993ef6b91a6519d
+OPTEE_CLIENT_VERSION := 4.0.0
+OPTEE_CLIENT_MD5 := e47b2d0cc95b3d1089e5373d3b477c35
OPTEE_CLIENT := optee-client-$(OPTEE_CLIENT_VERSION)
OPTEE_CLIENT_SUFFIX := tar.gz
OPTEE_CLIENT_URL := https://github.com/OP-TEE/optee_client/archive/$(OPTEE_CLIENT_VERSION).$(OPTEE_CLIENT_SUFFIX)
@@ -32,7 +32,8 @@ OPTEE_CLIENT_MAKE_ENV := \
$(CROSS_ENV) \
LIBDIR=/usr/lib \
INCLUDEDIR=/usr/include \
- CFG_TEE_CLIENT_LOAD_PATH=/usr/lib/
+ CFG_TEE_CLIENT_LOAD_PATH=/usr/lib/ \
+ CFG_TEE_SUPP_PLUGINS=n
# ----------------------------------------------------------------------------
# Target-Install
@@ -48,6 +49,7 @@ $(STATEDIR)/optee-client.targetinstall:
@$(call install_fixup, optee-client,DESCRIPTION,missing)
@$(call install_lib, optee-client, 0, 0, 0644, libteec)
+ @$(call install_lib, optee-client, 0, 0, 0644, libckteec)
@$(call install_copy, optee-client, 0, 0, 0755, -, /usr/sbin/tee-supplicant)
ifdef PTXCONF_OPTEE_CLIENT_SYSTEMD_UNIT
@$(call install_alternative, optee-client, 0, 0, 0644, \
diff --git a/rules/optee-examples.make b/rules/optee-examples.make
index 84e423c1e..a9fa36832 100644
--- a/rules/optee-examples.make
+++ b/rules/optee-examples.make
@@ -16,8 +16,8 @@ endif
#
# Paths and names
#
-OPTEE_EXAMPLES_VERSION := 3.5.0
-OPTEE_EXAMPLES_MD5 := 31773eafc5d84b3ca18f00ed9e4915c3
+OPTEE_EXAMPLES_VERSION := 4.0.0
+OPTEE_EXAMPLES_MD5 := 3a0f520f527d0f3ccc336c73baa4b83d
OPTEE_EXAMPLES := optee-examples-$(OPTEE_EXAMPLES_VERSION)
OPTEE_EXAMPLES_SUFFIX := tar.gz
OPTEE_EXAMPLES_URL := https://github.com/linaro-swg/optee_examples/archive/$(OPTEE_EXAMPLES_VERSION).$(OPTEE_EXAMPLES_SUFFIX)
diff --git a/rules/optee-test.in b/rules/optee-test.in
index b6ef19cc0..ceb342bea 100644
--- a/rules/optee-test.in
+++ b/rules/optee-test.in
@@ -1,6 +1,4 @@
-## SECTION=staging
-## old section:
-### SECTION=security
+## SECTION=security
config OPTEE_TEST
tristate
@@ -12,6 +10,3 @@ config OPTEE_TEST
The optee_test git contains the source code for the TEE sanity
testsuite in Linux using the ARM(R) TrustZone(R) technology. It is
distributed under the GPLv2 and BSD 2-clause open-source licenses.
-
- STAGING: remove in ptxdist-2021.05.0
- Old version that need to be updated. Fails to build with gcc >= 9.x.
diff --git a/rules/optee-test.make b/rules/optee-test.make
index 488e217a0..e8f6483fc 100644
--- a/rules/optee-test.make
+++ b/rules/optee-test.make
@@ -16,8 +16,8 @@ endif
#
# Paths and names
#
-OPTEE_TEST_VERSION := 3.5.0
-OPTEE_TEST_MD5 := e75893492a92ea835e8f7e22eaa9697e
+OPTEE_TEST_VERSION := 4.0.0
+OPTEE_TEST_MD5 := d2d1436ce8324ad81b58493dbee13be9
OPTEE_TEST := optee-test-$(OPTEE_TEST_VERSION)
OPTEE_TEST_SUFFIX := tar.gz
OPTEE_TEST_URL := https://github.com/OP-TEE/optee_test/archive/$(OPTEE_TEST_VERSION).$(OPTEE_TEST_SUFFIX)
@@ -38,6 +38,9 @@ OPTEE_TEST_MAKE_ENV := \
OPTEE_CLIENT_EXPORT=$(PTXDIST_SYSROOT_TARGET)/usr \
COMPILE_NS_USER=32 OPTEE_OPENSSL_EXPORT=$(PTXDIST_SYSROOT_TARGET)/usr/lib
+OPTEE_TEST_CFLAGS := \
+ -Wno-error=deprecated-declarations
+
# ----------------------------------------------------------------------------
# Install
# ----------------------------------------------------------------------------
diff --git a/rules/optee.in b/rules/optee.in
index 27cb1ad72..0e0f3230d 100644
--- a/rules/optee.in
+++ b/rules/optee.in
@@ -2,5 +2,3 @@
config OPTEE
tristate
- select HOST_SYSTEM_PYTHON
- select HOST_SYSTEM_PYTHON_CRYPTO
diff --git a/rules/optee.make b/rules/optee.make
index 4d9913143..bfffa750a 100644
--- a/rules/optee.make
+++ b/rules/optee.make
@@ -16,8 +16,8 @@ endif
#
# Paths and names
#
-OPTEE_VERSION := 3.5.0
-OPTEE_MD5 := 18dac7e462abe072956a4a9e9139d1d5
+OPTEE_VERSION := 4.0.0
+OPTEE_MD5 := f7e9e874481dfb6b6b0998e1acb4e215
OPTEE := optee-$(OPTEE_VERSION)
OPTEE_SUFFIX := tar.gz
OPTEE_URL := https://github.com/OP-TEE/optee_os/archive/$(OPTEE_VERSION).$(OPTEE_SUFFIX)
@@ -33,12 +33,16 @@ OPTEE_DEVPKG := NO
OPTEE_WRAPPER_BLACKLIST := \
$(PTXDIST_LOWLEVEL_WRAPPER_BLACKLIST)
+OPTEE_PLATFORM := $(call remove_quotes,$(PTXCONF_OPTEE_PLATFORM))
+OPTEE_PLATFORM_FLAVOUR := $(call remove_quotes,$(PTXCONF_OPTEE_PLATFORM_FLAVOUR))
+OPTEE_PLATFORM_FLAVOUR := $(if $(OPTEE_PLATFORM_FLAVOUR),-$(OPTEE_PLATFORM_FLAVOUR))
+
OPTEE_CONF_TOOL := NO
OPTEE_MAKE_ENV += \
PATH=$(CROSS_PATH) \
CROSS_COMPILE=$(COMPILER_PREFIX) \
$(call ptx/ifdef,PTXCONF_ARCH_ARM64,CFG_ARM64_core=y) \
- PLATFORM=$(call remove_quotes,$(PTXCONF_OPTEE_PLATFORM))-$(call remove_quotes,$(PTXCONF_OPTEE_PLATFORM_FLAVOUR)) \
+ PLATFORM=$(OPTEE_PLATFORM)$(OPTEE_PLATFORM_FLAVOUR) \
$(call remove_quotes,$(PTXCONF_OPTEE_CFG))
# ----------------------------------------------------------------------------
diff --git a/rules/opus.in b/rules/opus.in
index 7412eb76a..df7e71569 100644
--- a/rules/opus.in
+++ b/rules/opus.in
@@ -1,7 +1,35 @@
## SECTION=multimedia_libs
-config OPUS
+menuconfig OPUS
tristate
prompt "opus"
+ select HOST_SYSTEM_PERL
+ select HOST_MESON
help
Opus is a totally open, royalty-free, highly versatile audio codec.
+
+if OPUS
+
+config OPUS_DEEP_PLC
+ bool
+ prompt "enable deep packet loss concealment (PLC)"
+ help
+ Improves voice quality under sporadic packet loss, by using a deep
+ neural network to help with filling in short audio gaps in the
+ decoder. The decoder complexity needs to be set to 5 or more for this.
+ Increases binary size by about 1 MiB.
+ For details, see https://opus-codec.org/demo/opus-1.5/.
+
+config OPUS_OSCE
+ bool
+ prompt "enable opus speech coding enhancement (OSCE)"
+ help
+ Improves voice quality of low-bitrate streams by applying voice
+ enhancements in the decoder.
+ A Linear Adaptive Coding Enhancer (LACE, ~100 MFLOPS) is used at
+ decoder complexity setting 6, and a Non-Linear variation (NoLACE,
+ ~400 MFLOPS) is used at decoder complexity setting 7.
+ Increases binary size by about 1.6 MiB.
+ For details, see https://opus-codec.org/demo/opus-1.5/.
+
+endif
diff --git a/rules/opus.make b/rules/opus.make
index 2ee347ad9..707889c79 100644
--- a/rules/opus.make
+++ b/rules/opus.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_OPUS) += opus
#
# Paths and names
#
-OPUS_VERSION := 1.3.1
-OPUS_MD5 := d7c07db796d21c9cf1861e0c2b0c0617
+OPUS_VERSION := 1.5.1
+OPUS_MD5 := 06c0e626ea3ad72f7b006e9130c8b15d
OPUS := opus-$(OPUS_VERSION)
OPUS_SUFFIX := tar.gz
OPUS_URL := http://downloads.xiph.org/releases/opus/$(OPUS).$(OPUS_SUFFIX)
@@ -27,28 +27,46 @@ OPUS_LICENSE := BSD-3-Clause
# Prepare
# ----------------------------------------------------------------------------
-#
-# autoconf
-#
-OPUS_CONF_TOOL := autoconf
+OPUS_INTRINSICS := y
+ifdef PTXCONF_ARCH_PPC
+OPUS_INTRINSICS :=
+endif
+ifdef PTXCONF_ARCH_ARM
+ifndef PTXCONF_ARCH_ARM_NEON
+OPUS_INTRINSICS :=
+endif
+endif
+ifeq ($(OPUS_INTRINSICS),)
+OPUS_ASM := y
+endif
+ifdef PTXCONF_ARCH_PPC
+OPUS_ASM :=
+endif
+OPUS_RTCD := $(if $(OPUS_INTRINSICS)$(OPUS_ASM),y)
+
+OPUS_CONF_TOOL := meson
OPUS_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --disable-static \
- --$(call ptx/disen, PTXCONF_HAS_HARDFLOAT)-fixed-point \
- --disable-fixed-point-debug \
- --enable-float-api \
- --disable-custom-modes \
- --enable-float-approx \
- --enable-asm \
- --enable-rtcd \
- --enable-intrinsics \
- --disable-assertions \
- --enable-hardening \
- --disable-fuzzing \
- --disable-check-asm \
- --disable-doc \
- --disable-extra-programs \
- --enable-rfc8251
+ $(CROSS_MESON_USR) \
+ -Dasm=$(call ptx/endis, OPUS_ASM)d \
+ -Dassertions=false \
+ -Dcheck-asm=false \
+ -Dcustom-modes=false \
+ -Ddocdir=doc/opus \
+ -Ddocs=disabled \
+ -Denable-deep-plc=$(call ptx/truefalse, PTXCONF_OPUS_DEEP_PLC) \
+ -Denable-dnn-debug-float=false \
+ -Denable-dred=false \
+ -Denable-osce=$(call ptx/truefalse, PTXCONF_OPUS_OSCE) \
+ -Dextra-programs=disabled \
+ -Dfixed-point=$(call ptx/falsetrue, PTXCONF_HAS_HARDFLOAT) \
+ -Dfixed-point-debug=false \
+ -Dfloat-api=true \
+ -Dfloat-approx=true \
+ -Dfuzzing=false \
+ -Dhardening=true \
+ -Dintrinsics=$(call ptx/endis, OPUS_INTRINSICS)d \
+ -Drtcd=$(call ptx/endis, OPUS_RTCD)d \
+ -Dtests=disabled
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/orc.make b/rules/orc.make
index aa30e5027..fd3b5bf36 100644
--- a/rules/orc.make
+++ b/rules/orc.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_ORC) += orc
#
# Paths and names
#
-ORC_VERSION := 0.4.32
-ORC_MD5 := 4fd61be43bb222fac1ecc486f4d055db
+ORC_VERSION := 0.4.38
+ORC_MD5 := 309ed9f12724e861bed05e8e84e22968
ORC := orc-$(ORC_VERSION)
ORC_SUFFIX := tar.xz
ORC_URL := http://gstreamer.freedesktop.org/data/src/orc/$(ORC).$(ORC_SUFFIX)
diff --git a/rules/other/Toplevel.make b/rules/other/Toplevel.make
index acbf72a2c..ac2289431 100644
--- a/rules/other/Toplevel.make
+++ b/rules/other/Toplevel.make
@@ -40,7 +40,7 @@ $(file $(1),$(2))
endef
endif
-# allow skiping thing for the second make all with --progress
+# allow skipping thing for the second make all with --progress
ifeq ($(wildcard $(PTXDIST_TEMPDIR)/setup-once),)
PTXDIST_SETUP_ONCE := 1
$(call ptx/file,>>$(PTXDIST_TEMPDIR)/setup-once)
@@ -147,6 +147,7 @@ PTX_PACKAGES_INSTALL := \
export \
PTX_PACKAGES_ALL \
+ PTX_PACKAGES_VIRTUAL \
PTX_PACKAGES_SELECTED \
PTX_PACKAGES_DISABLED \
PTX_PACKAGES_INSTALL
@@ -202,7 +203,7 @@ endif
#
# Pattern target to allow printing variable
# $(filter ..) is used to match against all existing variables so patterns
-# containing '%' can be uses to print multiple variables.
+# containing '%' can be used to print multiple variables.
# In verbose mode, '<name>=<value>' is printed.
# Trying to print undefined variables results in an error unless '-k' is
# used. In this case an empty value is printed.
@@ -211,7 +212,7 @@ endif
@:$(call ptx/print-vars,$(*))
#
-# As above but tread the variable value as another variable and prints
+# As above but treat the variable value as another variable and prints
# the value of this variable.
# Patterns are expanded as above on both levels.
# Printing stops at the first error.
diff --git a/rules/owfs.in b/rules/owfs.in
index d08bf9a11..59ea7fbca 100644
--- a/rules/owfs.in
+++ b/rules/owfs.in
@@ -16,9 +16,9 @@ menuconfig OWFS
select FUSE_LIB if OWFS_OWFS
depends on !BUSYBOX_MOUNT || ALLYES
depends on !BUSYBOX_UMOUNT || ALLYES
- select UTIL_LINUX_NG if OWFS_OWFS
- select UTIL_LINUX_NG_MOUNT if OWFS_OWFS
- select UTIL_LINUX_NG_UMOUNT if OWFS_OWFS
+ select UTIL_LINUX if OWFS_OWFS
+ select UTIL_LINUX_MOUNT if OWFS_OWFS
+ select UTIL_LINUX_UMOUNT if OWFS_OWFS
help
OWFS is the 1-Wire file system. It is used by Dallas 1-Wire and iButton
chips with standard linux commands. Create temperature loggers. Monitor
diff --git a/rules/p11-kit.make b/rules/p11-kit.make
index 9e877ee51..bae849ad1 100644
--- a/rules/p11-kit.make
+++ b/rules/p11-kit.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_P11_KIT) += p11-kit
#
# Paths and names
#
-P11_KIT_VERSION := 0.23.15
-P11_KIT_MD5 := c4c3eecfe6bd6e62e436f62b51980749
-P11_KIT := p11-kit-$(P11_KIT_VERSION)
-P11_KIT_SUFFIX := tar.gz
-P11_KIT_URL := https://github.com/p11-glue/p11-kit/releases/download/$(P11_KIT_VERSION)/$(P11_KIT).$(P11_KIT_SUFFIX)
-P11_KIT_SOURCE := $(SRCDIR)/$(P11_KIT).$(P11_KIT_SUFFIX)
-P11_KIT_DIR := $(BUILDDIR)/$(P11_KIT)
-P11_KIT_LICENSE := BSD-3-Clause
+P11_KIT_VERSION := 0.23.15
+P11_KIT_MD5 := c4c3eecfe6bd6e62e436f62b51980749
+P11_KIT := p11-kit-$(P11_KIT_VERSION)
+P11_KIT_SUFFIX := tar.gz
+P11_KIT_URL := https://github.com/p11-glue/p11-kit/releases/download/$(P11_KIT_VERSION)/$(P11_KIT).$(P11_KIT_SUFFIX)
+P11_KIT_SOURCE := $(SRCDIR)/$(P11_KIT).$(P11_KIT_SUFFIX)
+P11_KIT_DIR := $(BUILDDIR)/$(P11_KIT)
+P11_KIT_LICENSE := BSD-3-Clause
+P11_KIT_LICENSE_FILES := \
+ file://COPYING;md5=02933887f609807fbb57aa4237d14a50
#
# autoconf
diff --git a/rules/p7zip.in b/rules/p7zip.in
deleted file mode 100644
index 768d91a9f..000000000
--- a/rules/p7zip.in
+++ /dev/null
@@ -1,18 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=shell_and_console
-
-config P7ZIP
- tristate
- select LIBC_M
- select LIBC_PTHREAD
- select GCCLIBS_GCC_S
- select GCCLIBS_CXX
- prompt "p7zip"
- help
- p7zip is a port of 7za.exe for POSIX systems like Unix
- (Linux, Solaris, OpenBSD, FreeBSD, Cygwin, AIX, ...),
- MacOS X and also for BeOS and Amiga.
-
- STAGING: remove in PTXdist 2022.01.0
- Needs updating and fails to build with gcc 10.
diff --git a/rules/p7zip.make b/rules/p7zip.make
deleted file mode 100644
index fbe36f9d8..000000000
--- a/rules/p7zip.make
+++ /dev/null
@@ -1,61 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2012 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_P7ZIP) += p7zip
-
-#
-# Paths and names
-#
-P7ZIP_VERSION := 9.20.1
-P7ZIP_MD5 := bd6caaea567dc0d995c990c5cc883c89
-P7ZIP := p7zip_$(P7ZIP_VERSION)
-P7ZIP_SUFFIX := tar.bz2
-P7ZIP_URL := $(call ptx/mirror, SF, p7zip/$(P7ZIP)_src_all.$(P7ZIP_SUFFIX))
-P7ZIP_SOURCE := $(SRCDIR)/$(P7ZIP)_src_all.$(P7ZIP_SUFFIX)
-P7ZIP_DIR := $(BUILDDIR)/$(P7ZIP)
-P7ZIP_LICENSE := unknown
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-
-P7ZIP_CONF_TOOL := NO
-P7ZIP_MAKE_ENV := $(CROSS_ENV)
-P7ZIP_MAKE_OPT := \
- CXX='$(CROSS_CXX) $$(ALLFLAGS)' \
- CC='$(CROSS_CC) $$(ALLFLAGS)'
-
-P7ZIP_INSTALL_OPT := \
- DEST_HOME=/usr \
- DEST_DIR=$(P7ZIP_PKGDIR) \
- install
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/p7zip.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, p7zip)
- @$(call install_fixup, p7zip,PRIORITY,optional)
- @$(call install_fixup, p7zip,SECTION,base)
- @$(call install_fixup, p7zip,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
- @$(call install_fixup, p7zip,DESCRIPTION,missing)
-
- @$(call install_copy, p7zip, 0, 0, 0755, -, /usr/bin/7za)
-
- @$(call install_finish, p7zip)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/paho-mqtt-c.make b/rules/paho-mqtt-c.make
index 8e229cfe2..4eaaa4134 100644
--- a/rules/paho-mqtt-c.make
+++ b/rules/paho-mqtt-c.make
@@ -14,18 +14,18 @@ PACKAGES-$(PTXCONF_PAHO_MQTT_C) += paho-mqtt-c
#
# Paths and names
#
-PAHO_MQTT_C_VERSION := 1.3.0
-PAHO_MQTT_C_MD5 := 8fac1bff9b0d5a74fa1caf8db0501fca
+PAHO_MQTT_C_VERSION := 1.3.12
+PAHO_MQTT_C_MD5 := cc71dd5243d9fd2db6b0369be661a5c9
PAHO_MQTT_C := paho.mqtt.c-$(PAHO_MQTT_C_VERSION)
PAHO_MQTT_C_SUFFIX := tar.gz
PAHO_MQTT_C_URL := https://github.com/eclipse/paho.mqtt.c/archive/v$(PAHO_MQTT_C_VERSION).$(PAHO_MQTT_C_SUFFIX)
PAHO_MQTT_C_SOURCE := $(SRCDIR)/$(PAHO_MQTT_C).$(PAHO_MQTT_C_SUFFIX)
PAHO_MQTT_C_DIR := $(BUILDDIR)/$(PAHO_MQTT_C)
# "Eclipse Distribution License - v 1.0" is in fact BSD-3-Clause
-PAHO_MQTT_C_LICENSE := EPL-1.0 AND BSD-3-Clause
+PAHO_MQTT_C_LICENSE := EPL-2.0 AND BSD-3-Clause
PAHO_MQTT_C_LICENSE_FILES := \
- file://LICENSE;md5=f2001efbb1450daa099206651f80d39c \
- file://epl-v10;md5=659c8e92a40b6df1d9e3dccf5ae45a08 \
+ file://LICENSE;md5=fd3b896dadaeec3410d753ffaeadcfac \
+ file://epl-v20;md5=d9fc0efef5228704e7f5b37f27192723 \
file://edl-v10;md5=3adfcc70f5aeb7a44f3f9b495aa1fbf3
# ----------------------------------------------------------------------------
@@ -51,7 +51,14 @@ $(STATEDIR)/paho-mqtt-c.targetinstall:
@$(call install_fixup, paho-mqtt-c,AUTHOR,"Marc Kleine-Budde <mkl@pengutronix.de>")
@$(call install_fixup, paho-mqtt-c,DESCRIPTION,missing)
+# # async library without ssh
+ @$(call install_lib, paho-mqtt-c, 0, 0, 0644, libpaho-mqtt3a)
+# # async library with ssh
@$(call install_lib, paho-mqtt-c, 0, 0, 0644, libpaho-mqtt3as)
+# # client library without ssl
+ @$(call install_lib, paho-mqtt-c, 0, 0, 0644, libpaho-mqtt3c)
+# # client library with ssl
+ @$(call install_lib, paho-mqtt-c, 0, 0, 0644, libpaho-mqtt3cs)
@$(call install_finish, paho-mqtt-c)
diff --git a/rules/pam.make b/rules/pam.make
index 2f3ac3fb4..df86c8da0 100644
--- a/rules/pam.make
+++ b/rules/pam.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_PAM) += pam
#
# Paths and names
#
-PAM_VERSION := 1.3.1
-PAM_MD5 := 558ff53b0fc0563ca97f79e911822165
+PAM_VERSION := 1.5.2
+PAM_MD5 := 895e8adfa14af334f679bbeb28503f66
PAM := Linux-PAM-$(PAM_VERSION)
PAM_SUFFIX := tar.xz
PAM_URL := https://github.com/linux-pam/linux-pam/releases/download/v$(PAM_VERSION)/$(PAM).$(PAM_SUFFIX)
@@ -30,6 +30,10 @@ PAM_LICENSE_FILES := \
# Prepare
# ----------------------------------------------------------------------------
+PAM_CONF_ENV := \
+ $(CROSS_ENV) \
+ ac_cv_lib_nsl_yp_match=no
+
#
# autoconf
#
@@ -37,15 +41,20 @@ PAM_CONF_TOOL := autoconf
PAM_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
$(GLOBAL_LARGE_FILE_OPTION) \
+ --disable-Werror \
+ --disable-doc \
--disable-lckpwdf \
- --disable-cracklib \
--disable-audit \
--$(call ptx/endis, PTXCONF_PAM_DB)-db \
--$(call ptx/endis, PTXCONF_PAM_NIS)-nis \
+ --disable-usergroups \
--disable-selinux \
+ --disable-econf \
+ --disable-openssl \
--disable-regenerate-docu \
--disable-nls \
- --disable-rpath
+ --disable-rpath \
+ --enable-unix
# ----------------------------------------------------------------------------
# Target-Install
@@ -64,7 +73,7 @@ $(STATEDIR)/pam.targetinstall:
@$(call install_lib, pam, 0, 0, 0644, libpam_misc)
@$(call install_lib, pam, 0, 0, 0644, libpam)
- @$(call install_tree, pam, 0, 0, -, /usr/$(CROSS_LIB_DIR)/security)
+ @$(call install_tree, pam, 0, 0, -, /usr/lib/security)
@$(call install_alternative, pam, 0, 0, 0644, /etc/environment)
@$(call install_alternative, pam, 0, 0, 0644, /etc/security/access.conf)
@@ -75,6 +84,8 @@ $(STATEDIR)/pam.targetinstall:
@$(call install_alternative, pam, 0, 0, 0644, /etc/security/pam_env.conf)
@$(call install_alternative, pam, 0, 0, 0644, /etc/security/time.conf)
+ @$(call install_alternative, pam, 0, 0, 0755, /sbin/mkhomedir_helper)
+
@$(call install_finish, pam)
@$(call touch)
diff --git a/rules/pango.make b/rules/pango.make
index 3421eff56..1d9d5cc7b 100644
--- a/rules/pango.make
+++ b/rules/pango.make
@@ -16,14 +16,17 @@ PACKAGES-$(PTXCONF_PANGO) += pango
#
# Paths and names
#
-PANGO_VERSION := 1.43.0
-PANGO_MD5 := 2df040d3f6a4ed9bc316a70b35adcd8b
+PANGO_VERSION := 1.50.12
+PANGO_MD5 := fd4b0b23915d6a0255317f811bea4215
PANGO := pango-$(PANGO_VERSION)
PANGO_SUFFIX := tar.xz
PANGO_URL := $(call ptx/mirror, GNOME, pango/$(basename $(PANGO_VERSION))/$(PANGO).$(PANGO_SUFFIX))
PANGO_SOURCE := $(SRCDIR)/$(PANGO).$(PANGO_SUFFIX)
PANGO_DIR := $(BUILDDIR)/$(PANGO)
PANGO_LICENSE := LGPL-2.0-or-later
+PANGO_LICENSE_FILES := \
+ file://pango/pango.h;startline=4;endline=19;md5=c77448008291979d480c86aa699c1f13 \
+ file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7
# ----------------------------------------------------------------------------
# Prepare
@@ -32,8 +35,15 @@ PANGO_LICENSE := LGPL-2.0-or-later
PANGO_CONF_TOOL := meson
PANGO_CONF_OPT := \
$(CROSS_MESON_USR) \
- -Denable_docs=false \
- -Dgir=$(call ptx/truefalse,PTXCONF_PANGO_INTROSPECTION)
+ -Dcairo=enabled \
+ -Dfontconfig=enabled \
+ -Dfreetype=enabled \
+ -Dgtk_doc=false \
+ -Dinstall-tests=false \
+ -Dintrospection=$(call ptx/endis,PTXCONF_PANGO_INTROSPECTION)d \
+ -Dlibthai=disabled \
+ -Dsysprof=disabled \
+ -Dxft=disabled
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/pangomm.in b/rules/pangomm.in
deleted file mode 100644
index 36c4b4d7f..000000000
--- a/rules/pangomm.in
+++ /dev/null
@@ -1,10 +0,0 @@
-## SECTION=multimedia_gtk
-
-config PANGOMM
- tristate
- select PANGO
- select GLIBMM
- select CAIROMM
- prompt "pangomm"
- help
- c++ bindings for pango
diff --git a/rules/pangomm.make b/rules/pangomm.make
deleted file mode 100644
index 1c41826b1..000000000
--- a/rules/pangomm.make
+++ /dev/null
@@ -1,58 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2009 by Robert Schwebel <r.schwebel@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_PANGOMM) += pangomm
-
-#
-# Paths and names
-#
-PANGOMM_VERSION := 2.28.4
-PANGOMM_MD5 := 40b3b34dbbefbc411a81d05dba5275ca
-PANGOMM := pangomm-$(PANGOMM_VERSION)
-PANGOMM_SUFFIX := tar.bz2
-PANGOMM_URL := http://ftp.acc.umu.se/pub/GNOME/sources/pangomm/2.28/$(PANGOMM).$(PANGOMM_SUFFIX)
-PANGOMM_SOURCE := $(SRCDIR)/$(PANGOMM).$(PANGOMM_SUFFIX)
-PANGOMM_DIR := $(BUILDDIR)/$(PANGOMM)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-PANGOMM_PATH := PATH=$(CROSS_PATH)
-PANGOMM_ENV := $(CROSS_ENV)
-
-#
-# autoconf
-#
-PANGOMM_AUTOCONF := \
- $(CROSS_AUTOCONF_USR) \
- --disable-documentation
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/pangomm.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, pangomm)
- @$(call install_fixup, pangomm,PRIORITY,optional)
- @$(call install_fixup, pangomm,SECTION,base)
- @$(call install_fixup, pangomm,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, pangomm,DESCRIPTION,missing)
-
- @$(call install_lib, pangomm, 0, 0, 0644, libpangomm-1.4)
-
- @$(call install_finish, pangomm)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/pciutils.in b/rules/pciutils.in
index 9f9e93ee7..7b9bf53d7 100644
--- a/rules/pciutils.in
+++ b/rules/pciutils.in
@@ -1,7 +1,9 @@
## SECTION=shell_and_console
menuconfig PCIUTILS
- select ZLIB if PCIUTILS_COMPRESS
- select LIBKMOD if PCIUTILS_LIBKMOD
+ select LIBKMOD if PCIUTILS_LIBKMOD
+ select HWDATA if !PCIUTILS_HWDB
+ select HWDATA_PCI if !PCIUTILS_HWDB
+ select SYSTEMD if PCIUTILS_HWDB
tristate
prompt "pciutils "
help
@@ -11,6 +13,10 @@ menuconfig PCIUTILS
if PCIUTILS
+config PCIUTILS_HWDB
+ bool
+ default SYSTEMD_HWDB
+
config PCIUTILS_TOOLS
bool
default y
@@ -36,13 +42,5 @@ config PCIUTILS_LIBPCI
help
Generate and install the shared libpci library.
-config PCIUTILS_COMPRESS
- bool
- default y
- prompt "compress pci_ids"
- help
- Save storage space by compressing the pci-id database. Access will
- be a little bit slower then.
-
endif
diff --git a/rules/pciutils.make b/rules/pciutils.make
index 6f472e63d..20e2b7f7e 100644
--- a/rules/pciutils.make
+++ b/rules/pciutils.make
@@ -15,11 +15,11 @@ PACKAGES-$(PTXCONF_PCIUTILS) += pciutils
#
# Paths and names
#
-PCIUTILS_VERSION := 3.7.0
-PCIUTILS_MD5 := e6e20482b4f25c5186e6a753c5edc361
+PCIUTILS_VERSION := 3.12.0
+PCIUTILS_MD5 := f6607d41eb8ce0f676368a1012b5fe5c
PCIUTILS := pciutils-$(PCIUTILS_VERSION)
-PCIUTILS_SUFFIX := tar.xz
-PCIUTILS_URL := $(call ptx/mirror, KERNEL, ../software/utils/pciutils/$(PCIUTILS).$(PCIUTILS_SUFFIX))
+PCIUTILS_SUFFIX := tar.gz
+PCIUTILS_URL := https://github.com/pciutils/pciutils/archive/refs/tags/v$(PCIUTILS_VERSION).$(PCIUTILS_SUFFIX)
PCIUTILS_SOURCE := $(SRCDIR)/$(PCIUTILS).$(PCIUTILS_SUFFIX)
PCIUTILS_DIR := $(BUILDDIR)/$(PCIUTILS)
PCIUTILS_LICENSE := GPL-2.0-or-later
@@ -39,12 +39,12 @@ PCIUTILS_MAKE_OPT := \
SBINDIR=/usr/bin \
HOST=$(PTXCONF_ARCH_STRING)-linux \
RELEASE=$(KERNEL_HEADER_VERSION) \
- ZLIB=$(call ptx/yesno, PTXCONF_PCIUTILS_COMPRESS) \
+ ZLIB=no \
LIBKMOD=$(call ptx/yesno, PTXCONF_PCIUTILS_LIBKMOD) \
SHARED=$(call ptx/yesno, PTXCONF_PCIUTILS_LIBPCI) \
STRIP= \
DNS=no \
- HWDB=no
+ HWDB=$(call ptx/yesno, PTXCONF_PCIUTILS_HWDB)
PCIUTILS_INSTALL_OPT := \
$(PCIUTILS_MAKE_OPT) \
@@ -67,20 +67,12 @@ $(STATEDIR)/pciutils.targetinstall:
ifdef PTXCONF_PCIUTILS_TOOLS
@$(call install_copy, pciutils, 0, 0, 0755, -, /usr/bin/lspci)
@$(call install_copy, pciutils, 0, 0, 0755, -, /usr/bin/setpci)
- @$(call install_copy, pciutils, 0, 0, 0755, -, /usr/bin/update-pciids)
endif
ifdef PTXCONF_PCIUTILS_LIBPCI
@$(call install_lib, pciutils, 0, 0, 0644, libpci)
endif
-ifdef PTXCONF_PCIUTILS_COMPRESS
- @$(call install_copy, pciutils, 0, 0, 0644, -, \
- /usr/share/pci.ids.gz, n)
-else
- @$(call install_copy, pciutils, 0, 0, 0644, -, \
- /usr/share/pci.ids, n)
-endif
@$(call install_finish, pciutils)
@$(call touch)
diff --git a/rules/pcmciautils.make b/rules/pcmciautils.make
index 4e6564057..dcdd342d5 100644
--- a/rules/pcmciautils.make
+++ b/rules/pcmciautils.make
@@ -27,15 +27,12 @@ PCMCIAUTILS_DIR := $(BUILDDIR)/$(PCMCIAUTILS)
# Prepare
# ----------------------------------------------------------------------------
-PCMCIAUTILS_PATH := PATH=$(CROSS_PATH)
-PCMCIAUTILS_ENV := $(CROSS_ENV)
-
-PCMCIAUTILS_COMPILE_ENV := \
+PCMCIAUTILS_MAKE_ENV := \
$(CROSS_ENV_CFLAGS) \
$(CROSS_ENV_CPPFLAGS) \
$(CROSS_ENV_LDFLAGS)
-PCMCIAUTILS_MAKEVARS := \
+PCMCIAUTILS_MAKE_OPT := \
prefix=/usr \
mandir=/usr/share/man \
CROSS=$(COMPILER_PREFIX) \
@@ -43,6 +40,10 @@ PCMCIAUTILS_MAKEVARS := \
STRIP=echo \
$(call ptx/ifdef, PTXCONF_PCMCIAUTILS_STARTUP, STARTUP=true, STARTUP=false)
+PCMCIAUTILS_INSTALL_OPT := \
+ $(PCMCIAUTILS_MAKE_OPT) \
+ install
+
PCMCIAUTILS_MAKE_PAR := NO
$(STATEDIR)/pcmciautils.prepare:
diff --git a/rules/pcre2.in b/rules/pcre2.in
new file mode 100644
index 000000000..c9b246437
--- /dev/null
+++ b/rules/pcre2.in
@@ -0,0 +1,24 @@
+## SECTION=system_libraries
+
+menuconfig PCRE2
+ tristate
+ prompt "pcre2 "
+ help
+ New Perl Compatible Regular Expression Library
+
+if PCRE2
+
+config PCRE2_8
+ bool
+ prompt "enable 8 bit character support"
+ default y
+
+config PCRE2_16
+ bool
+ prompt "enable 16 bit character support"
+
+config PCRE2_32
+ bool
+ prompt "enable 32 bit character support"
+
+endif
diff --git a/rules/pcre2.make b/rules/pcre2.make
new file mode 100644
index 000000000..5d7494d66
--- /dev/null
+++ b/rules/pcre2.make
@@ -0,0 +1,89 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PCRE2) += pcre2
+
+#
+# Paths and names
+#
+PCRE2_VERSION := 10.43
+PCRE2_MD5 := c8e2043cbc4abb80e76dba323f7c409f
+PCRE2 := pcre2-$(PCRE2_VERSION)
+PCRE2_SUFFIX := tar.bz2
+PCRE2_URL := https://github.com/PCRE2Project/pcre2/releases/download/$(PCRE2)/$(PCRE2).$(PCRE2_SUFFIX)
+PCRE2_SOURCE := $(SRCDIR)/$(PCRE2).$(PCRE2_SUFFIX)
+PCRE2_DIR := $(BUILDDIR)/$(PCRE2)
+PCRE2_LICENSE := BSD-3-Clause
+PCRE2_LICENSE_FILES := file://LICENCE;md5=321a5eb46acae6b6c1ff2c7a866d836a
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+PCRE2_CONF_TOOL := autoconf
+PCRE2_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --$(call ptx/endis,PTXCONF_PCRE2_8)-pcre2-8 \
+ --$(call ptx/endis,PTXCONF_PCRE2_16)-pcre2-16 \
+ --$(call ptx/endis,PTXCONF_PCRE2_32)-pcre2-32 \
+ --disable-debug \
+ --disable-jit \
+ --disable-jit-sealloc \
+ --enable-pcre2grep-jit \
+ --enable-pcre2grep-callout \
+ --enable-pcre2grep-callout-fork \
+ --disable-rebuild-chartables \
+ --enable-unicode \
+ --enable-newline-is-lf \
+ --disable-bsr-anycrlf \
+ --disable-never-backslash-C \
+ --disable-ebcdic \
+ --disable-ebcdic-nl25 \
+ --disable-pcre2grep-libz \
+ --disable-pcre2grep-libbz2 \
+ --disable-pcre2test-libedit \
+ --disable-pcre2test-libreadline \
+ --disable-valgrind \
+ --disable-coverage \
+ --disable-fuzz-support \
+ --enable-percent-zt
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/pcre2.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, pcre2)
+ @$(call install_fixup, pcre2,PRIORITY,optional)
+ @$(call install_fixup, pcre2,SECTION,base)
+ @$(call install_fixup, pcre2,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, pcre2,DESCRIPTION,missing)
+
+ifdef PTXCONF_PCRE2_8
+ @$(call install_lib, pcre2, 0, 0, 0644, libpcre2-8)
+endif
+ifdef PTXCONF_PCRE2_16
+ @$(call install_lib, pcre2, 0, 0, 0644, libpcre2-16)
+endif
+ifdef PTXCONF_PCRE2_32
+ @$(call install_lib, pcre2, 0, 0, 0644, libpcre2-32)
+endif
+
+ @$(call install_finish, pcre2)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/pcsc-lite.make b/rules/pcsc-lite.make
index 128489aa6..d773a8bb6 100644
--- a/rules/pcsc-lite.make
+++ b/rules/pcsc-lite.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_PCSC_LITE) += pcsc-lite
#
# Paths and names
#
-PCSC_LITE_VERSION := 1.8.23
-PCSC_LITE_MD5 := 3ba4b45456a500b5f1f22bf56a2dee38
+PCSC_LITE_VERSION := 1.9.8
+PCSC_LITE_MD5 := d063c6ca17c17fab39a85132811e155d
PCSC_LITE_SUFFIX := tar.bz2
PCSC_LITE := pcsc-lite-$(PCSC_LITE_VERSION)
PCSC_LITE_URL := https://pcsclite.apdu.fr/files/$(PCSC_LITE).$(PCSC_LITE_SUFFIX)
diff --git a/rules/pelts_tests.in b/rules/pelts_tests.in
index 9d623321d..138d3d63e 100644
--- a/rules/pelts_tests.in
+++ b/rules/pelts_tests.in
@@ -1,6 +1,6 @@
## SECTION=test_suites
config PELTS_TESTS
- tristate
- prompt "pelts tests"
- help
- Pengutronix Embedded Linux Test Suite binary test programs
+ tristate
+ prompt "pelts tests"
+ help
+ Pengutronix Embedded Linux Test Suite binary test programs
diff --git a/rules/pelts_tests.make b/rules/pelts_tests.make
index 4e2aac542..77f646992 100644
--- a/rules/pelts_tests.make
+++ b/rules/pelts_tests.make
@@ -27,13 +27,11 @@ PELTS_TESTS_DIR := $(BUILDDIR)/$(PELTS_TESTS)
# Prepare
# ----------------------------------------------------------------------------
-PELTS_TESTS_PATH := PATH=$(CROSS_PATH)
-PELTS_TESTS_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-PELTS_TESTS_AUTOCONF := $(CROSS_AUTOCONF_USR)
+PELTS_TESTS_CONF_TOOL := autoconf
+PELTS_TESTS_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/perl.make b/rules/perl.make
index b55ebffa7..3c57bc226 100644
--- a/rules/perl.make
+++ b/rules/perl.make
@@ -28,29 +28,16 @@ PERLCROSS_VERSION := 5.18.2-cross-0.8.5
PERLCROSS_MD5 := 4744dbfd87bc1a694bc6f17ad4c2414f
PERLCROSS_URL := https://raw.github.com/arsv/perl-cross/releases/perl-$(PERLCROSS_VERSION).tar.gz
PERLCROSS_SOURCE := $(SRCDIR)/perlcross-$(PERLCROSS_VERSION).tar.gz
-$(PERLCROSS_SOURCE) := PERLCROSS
PERLCROSS_DIR := $(PERL_DIR)
-PERL_SOURCES := $(PERL_SOURCE) $(PERLCROSS_SOURCE)
+PERL_PARTS += PERLCROSS
# cross perl need the source dir
PERL_DEVPKG := NO
# use by perl modules
PERL_SITELIB := /usr/lib/perl5/site_perl/$(PERL_VERSION)
-CROSS_PERL= $(PTXDIST_SYSROOT_CROSS)/bin/cross-perl
-
-# ----------------------------------------------------------------------------
-# Extract
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/perl.extract:
- @$(call targetinfo)
- @$(call clean, $(PERL_DIR))
- @$(call extract, PERL)
- @$(call extract, PERLCROSS)
- @$(call patchin, PERL)
- @$(call touch)
+CROSS_PERL= $(PTXDIST_SYSROOT_CROSS)/usr/bin/cross-perl
# ----------------------------------------------------------------------------
# Prepare
@@ -102,7 +89,6 @@ PERL_PROGRAMS := \
instmodsh \
json_pp \
libnetcfg \
- perl \
perl$(PERL_VERSION) \
perlivp \
perlthanks \
@@ -130,9 +116,12 @@ $(STATEDIR)/perl.targetinstall:
@$(call install_fixup, perl,DESCRIPTION,missing)
@$(foreach prog, $(PERL_PROGRAMS), \
- $(call install_copy, perl, 0, 0, 0755, -, /usr/bin/$(prog));)
+ $(call install_copy, perl, 0, 0, 0755, -, \
+ /usr/bin/$(prog))$(ptx/nl))
+
+ @$(call install_link, perl, perl$(PERL_VERSION), /usr/bin/perl)
- @$(call install_tree, perl, 0, 0, -, /usr/lib/perl5)
+ @$(call install_glob, perl, 0, 0, -, /usr/lib/perl5,, */CORE)
@$(call install_finish, perl)
diff --git a/rules/php5.in b/rules/php5.in
deleted file mode 100644
index f937f4e6b..000000000
--- a/rules/php5.in
+++ /dev/null
@@ -1,300 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=scripting_languages
-# php5 configuration
-
-menuconfig PHP5
- tristate
- prompt "php5 "
- select LIBCURL if PHP5_EXT_CURL
- select LIBXML2 if PHP5_XML_LIBXML2
- select LIBXML2_C14N if PHP5_XML_LIBXML2
- select LIBXML2_DTD if PHP5_XML_LIBXML2
- select LIBXML2_XINCLUDE if PHP5_XML_LIBXML2
- select LIBXML2_READER if PHP5_XML_LIBXML2_READER
- select LIBXML2_WRITER if PHP5_XML_LIBXML2_WRITER
- select LIBXSLT if PHP5_XML_LIBXML2_XSLT
- select MYSQLDB if PHP5_EXT_MYSQL
- select PHP5_XML if PHP5_EXT_SOAP
- select SQLITE if PHP5_EXT_SQLITE3
- select ZLIB if PHP5_EXT_ZLIB
- select OPENSSL if PHP5_EXT_OPENSSL
- help
- STAGING: remove in ptxdist-2021.05.0
- Old version that need to be updated. Fails to build with gcc >= 9.x on
- on some architectures (AArch64).
-
-if PHP5
-
-config PHP5_INI
- bool
- prompt "install /etc/php5/php.ini"
- default y
- help
- Installs (if present) the
- "./projectroot/etc/php5/php.ini" file from your
- workspace, otherwise a generic one from the ptxdist
- directory.
-
-# ----------------------------------------------------------------------------
-# SAPI Modules
-# ----------------------------------------------------------------------------
-
-choice
- prompt "SAPI Module"
- default PHP5_SAPI_NONE
-
-config PHP5_SAPI_AOLSERVER
- bool
- prompt "aolserver"
- depends on BROKEN
- help
- Use AOLserver.
-
-config PHP5_SAPI_APXS2FILTER
- bool
- # needs apache
- depends on BROKEN
- prompt "apxs2filter"
- help
- EXPERIMENTAL: Build shared Apache 2.0 Filter module. FILE is the optional
- pathname to the Apache apxs tool [apxs]
-
-config PHP5_SAPI_APXS2
- bool
- # needs apache
- depends on BROKEN
- prompt "apache mod_php (apxs2)"
- help
- Build shared Apache 2.0 Handler module.
-
-config PHP5_SAPI_CAUDIUM
- bool
- prompt "caudium"
- depends on BROKEN
- help
- Build PHP as a Pike module for use with Caudium.
-
-config PHP5_SAPI_CONTINUITY
- bool
- prompt "continuity"
- depends on BROKEN
- help
- Build PHP as Continuity Server module.
-
-config PHP5_SAPI_EMBEDDED
- bool
- prompt "embedded"
- help
- Enable building of embedded SAPI library.
-
-config PHP5_SAPI_ISAPI
- bool
- prompt "isapi"
- depends on BROKEN
- help
- Build PHP as an ISAPI module for use with Zeus
-
-config PHP5_SAPI_MILTER
- bool
- prompt "milter"
- depends on BROKEN
- help
- Build PHP as Milter application.
-
-config PHP5_SAPI_NSAPI
- bool
- prompt "nsapi"
- depends on BROKEN
- help
- Build PHP as NSAPI module for Netscape/iPlanet/SunONE.
-
-config PHP5_SAPI_PHTTPD
- bool
- prompt "phttpd"
- depends on BROKEN
- help
- Build PHP as phttpd module.
-
-config PHP5_SAPI_PI3WEB
- bool
- prompt "pi3web"
- depends on BROKEN
- help
- Build PHP as Pi3Web module
-
-config PHP5_SAPI_ROXEN
- bool
- prompt "roxen"
- depends on BROKEN
- help
- Build PHP as a Pike module. DIR is the base Roxen
-
-config PHP5_SAPI_ROXEN_ZTS
- bool
- prompt "roxen-zts"
- depends on BROKEN
- help
- Build the Roxen module using Zend Thread Safety.
-
-config PHP5_SAPI_THTTPD
- bool
- prompt "thttpd"
- depends on BROKEN
- help
- Build PHP as thttpd module
-
-config PHP5_SAPI_TUX
- bool
- prompt "tux"
- depends on BROKEN
- help
- Build PHP as a TUX module.
-
-config PHP5_SAPI_WEBJAMES
- bool
- prompt "webjames"
- depends on BROKEN
- help
- Build PHP as a WebJames module (RISC OS only).
-
-config PHP5_SAPI_CGI
- bool
- prompt "cgi"
- help
- Build CGI version of PHP.
-
-config PHP5_SAPI_NONE
- bool
- prompt "none"
- select PHP5_SAPI_CLI
-
-endchoice
-
-config PHP5_SAPI_CLI
- bool
- prompt "cli"
- help
- Build CLI (commandline interface) version of PHP
-
-# ----------------------------------------------------------------------------
-# General Settings
-# ----------------------------------------------------------------------------
-
-menuconfig PHP5_XML
- bool
- prompt "xml support "
- help
- Support for XML.
-
-if PHP5_XML
-
-choice
- prompt "xml library"
-
- config PHP5_XML_LIBXML2
- bool "libxml2"
- help
- Use libxml2 as xml backend.
-endchoice
-
-if PHP5_XML_LIBXML2
-
-config PHP5_XML_LIBXML2_READER
- bool
- prompt "xml reader support"
- help
- XMLReader support
-
-config PHP5_XML_LIBXML2_WRITER
- bool
- select LIBXML2_WRITER
- prompt "xml writer support"
- help
- XMLWriter support
-
-config PHP5_XML_LIBXML2_DOM
- bool
- select LIBXML2_DOM
- prompt "DOM support"
- help
- libxml2 DOM support
-
-config PHP5_XML_LIBXML2_XSLT
- bool
- select PHP5_XML_LIBXML2_DOM
- prompt "xslt support"
- help
- XMLWriter support
-
-config PHP5_XML_LIBXML2_SIMPLEXML
- bool
- prompt "simple xml support"
- help
- simple xml support
-
-endif # PHP5_XML_LIBXML2
-
-endif # PHP5_XML
-
-# ----------------------------------------------------------------------------
-# Extensions
-# ----------------------------------------------------------------------------
-
-menu "Extensions "
-
-config PHP5_EXT_CURL
- bool
- prompt "curl"
- help
- Enable CURL support for PHP.
-
-config PHP5_EXT_MYSQL
- bool
- prompt "mysql"
- help
- Enable MySQL database support for PHP.
-
-config PHP5_EXT_SOAP
- bool
- prompt "soap"
- select PHP5_XML
- help
- Enable SOAP support for PHP.
-
-config PHP5_EXT_SOCKETS
- bool
- prompt "sockets"
- help
- Enable sockets support for PHP.
-
-config PHP5_EXT_SQLITE3
- bool
- prompt "sqlite3"
- help
- Enable sqlite3 support for PHP.
-
-config PHP5_EXT_ZLIB
- bool
- prompt "zlib"
- help
- Enable zlib support for PHP.
-
-config PHP5_EXT_OPENSSL
- bool
- # Fails to build with OpenSSL 1.1.x
- depends on BROKEN
- prompt "openssl"
- help
- Enable openssl support for PHP.
-
-config PHP5_EXT_PEAR
- bool
- prompt "pear [BROKEN]"
- depends on BROKEN
- help
- pear
-
-endmenu
-
-endif
diff --git a/rules/php5.make b/rules/php5.make
deleted file mode 100644
index d2e80c009..000000000
--- a/rules/php5.make
+++ /dev/null
@@ -1,302 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006-2008 by Robert Schwebel
-# 2009, 2012 by Marc Kleine-Budde <mkl@pengutronix.de>
-# 2015 by Bruno Thomsen <bth@kamstrup.com>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_PHP5) += php5
-
-#
-# Paths and names
-#
-PHP5_VERSION := 5.6.40
-PHP5_MD5 := c7dde3afb16ce7b761abf2805125d372
-PHP5 := php-$(PHP5_VERSION)
-PHP5_SUFFIX := tar.xz
-PHP5_SOURCE := $(SRCDIR)/$(PHP5).$(PHP5_SUFFIX)
-PHP5_DIR := $(BUILDDIR)/$(PHP5)
-
-#
-# Note: older releases are moved to the 'museum', but the 'de.php.net'
-# response with a HTML file instead of the archive. So, try the 'museum'
-# URL first
-#
-PHP5_URL := \
- http://museum.php.net/php5/$(PHP5).$(PHP5_SUFFIX) \
- http://de.php.net/distributions/$(PHP5).$(PHP5_SUFFIX)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-PHP5_CONF_ENV := \
- $(CROSS_ENV) \
- ac_cv_prog_cc_cross=yes \
- ac_cv_c_bigendian_php=$(call ptx/yesno, PTXCONF_ENDIAN_BIG)
-
-#
-# autoconf
-#
-PHP5_AUTOCONF := \
- $(CROSS_AUTOCONF_USR) \
- --disable-phar \
- --with-config-file-path=/etc/php5 \
- --enable-opcache=no \
- --disable-fileinfo \
- --without-xmlrpc \
- --without-iconv
-
-# FIXME: php5 doesn't interprete "with_foo=no" correctly, so we cannot
-# give --without-foo options. Should be fixed in php5's configure.in.
-
-# ------------
-# SAPI Modules
-# ------------
-
-ifdef PTXCONF_PHP5_SAPI_AOLSERVER
-PHP5_AUTOCONF += --with-aolserver=FIXME
-else
-PHP5_AUTOCONF += --without-aolserver
-endif
-
-ifdef PTXCONF_PHP5_SAPI_APXS2FILTER
-PHP5_AUTOCONF += --with-apxs2filter=$(PTXDIST_SYSROOT_TARGET)/usr/bin/apxs
-else
-#PHP5_AUTOCONF += --without-apxs2filter
-endif
-
-ifdef PTXCONF_PHP5_SAPI_APXS2
-PHP5_AUTOCONF += --with-apxs2=$(PTXDIST_SYSROOT_TARGET)/usr/bin/apxs
-else
-# PHP5_AUTOCONF += --without-apxs2
-endif
-
-ifdef PTXCONF_PHP5_SAPI_CAUDIUM
-PHP5_AUTOCONF += --with-caudium
-else
-# PHP5_AUTOCONF += --without-caudium
-endif
-
-ifdef PTXCONF_PHP5_SAPI_CLI
-PHP5_AUTOCONF += --enable-cli
-else
-PHP5_AUTOCONF += --disable-cli
-endif
-
-ifdef PTXCONF_PHP5_SAPI_CONTINUITY
-PHP5_AUTOCONF += --with-continuity
-else
-#PHP5_AUTOCONF += --without-continuity
-endif
-
-ifdef PTXCONF_PHP5_SAPI_EMBEDDED
-PHP5_AUTOCONF += --enable-embed
-else
-#PHP5_AUTOCONF += --disable-embed
-endif
-
-ifdef PTXCONF_PHP5_SAPI_ISAPI
-PHP5_AUTOCONF += --with-isapi
-else
-#PHP5_AUTOCONF += --without-isapi
-endif
-
-ifdef PTXCONF_PHP5_SAPI_MILTER
-PHP5_AUTOCONF += --with-milter
-else
-#PHP5_AUTOCONF += --without-milter
-endif
-
-ifdef PTXCONF_PHP5_SAPI_NSAPI
-PHP5_AUTOCONF += --with-nsapi
-else
-#PHP5_AUTOCONF += --without-nsapi
-endif
-
-ifdef PTXCONF_PHP5_SAPI_PHTTPD
-PHP5_AUTOCONF += --with-phttpd
-else
-#PHP5_AUTOCONF += --without-phttpd
-endif
-
-ifdef PTXCONF_PHP5_SAPI_PI3WEB
-PHP5_AUTOCONF += --with-pi3web
-else
-#PHP5_AUTOCONF += --without-pi3web
-endif
-
-ifdef PTXCONF_PHP5_SAPI_ROXEN
-PHP5_AUTOCONF += --with-roxen
-else
-#PHP5_AUTOCONF += --without-roxen
-endif
-
-ifdef PTXCONF_PHP5_SAPI_ROXEN_ZTS
-PHP5_AUTOCONF += --with-roxen-zts
-else
-#PHP5_AUTOCONF += --without-roxen-zts
-endif
-
-ifdef PTXCONF_PHP5_SAPI_THTTPD
-PHP5_AUTOCONF += --with-thttpd
-else
-#PHP5_AUTOCONF += --without-thttpd
-endif
-
-ifdef PTXCONF_PHP5_SAPI_TUX
-PHP5_AUTOCONF += --with-tux
-else
-#PHP5_AUTOCONF += --without-tux
-endif
-
-ifdef PTXCONF_PHP5_SAPI_CGI
-PHP5_AUTOCONF += --enable-cgi
-else
-PHP5_AUTOCONF += --disable-cgi
-endif
-
-# ---------------
-# General Options
-# ---------------
-
-ifdef PTXCONF_PHP5_XML
-PHP5_AUTOCONF += --enable-xml
-else
-PHP5_AUTOCONF += --disable-xml
-endif
-
-ifdef PTXCONF_PHP5_XML_LIBXML2
-PHP5_AUTOCONF += \
- --enable-libxml \
- --with-libxml-dir=$(SYSROOT)/usr
-else
-PHP5_AUTOCONF += --disable-libxml
-endif
-
-ifdef PTXCONF_PHP5_XML_LIBXML2_READER
-PHP5_AUTOCONF += --enable-xmlreader
-else
-PHP5_AUTOCONF += --disable-xmlreader
-endif
-
-ifdef PTXCONF_PHP5_XML_LIBXML2_WRITER
-PHP5_AUTOCONF += --enable-xmlwriter
-else
-PHP5_AUTOCONF += --disable-xmlwriter
-endif
-
-ifdef PTXCONF_PHP5_XML_LIBXML2_DOM
-PHP5_AUTOCONF += --enable-dom
-else
-PHP5_AUTOCONF += --disable-dom
-endif
-
-ifdef PTXCONF_PHP5_XML_LIBXML2_XSLT
-PHP5_AUTOCONF += --with-xsl=$(SYSROOT)/usr
-else
-PHP5_AUTOCONF += --without-xsl
-endif
-
-ifdef PTXCONF_PHP5_XML_LIBXML2_SIMPLEXML
-PHP5_AUTOCONF += --enable-simplexml
-else
-PHP5_AUTOCONF += --disable-simplexml
-endif
-
-ifdef PTXCONF_PHP5_EXT_ZLIB
-PHP5_AUTOCONF += --with-zlib=$(SYSROOT)/usr
-else
-PHP5_AUTOCONF += --without-zlib
-endif
-
-ifdef PTXCONF_PHP5_EXT_OPENSSL
-PHP5_AUTOCONF += --with-openssl=$(SYSROOT)/usr
-else
-PHP5_AUTOCONF += --without-openssl
-endif
-
-ifdef PTXCONF_PHP5_EXT_CURL
-PHP5_AUTOCONF += \
- --with-curl=$(SYSROOT)/usr
-else
-PHP5_AUTOCONF += --without-curl
-endif
-
-ifdef PTXCONF_PHP5_EXT_MYSQL
-PHP5_AUTOCONF += \
- --with-mysql=$(SYSROOT)/usr \
- --with-pdo-mysql=$(SYSROOT)/usr
-else
-PHP5_AUTOCONF += --without-mysql
-endif
-
-ifdef PTXCONF_PHP5_EXT_SOAP
-PHP5_AUTOCONF += --enable-soap
-else
-PHP5_AUTOCONF += --disable-soap
-endif
-
-ifdef PTXCONF_PHP5_EXT_SOCKETS
-PHP5_AUTOCONF += --enable-sockets
-else
-PHP5_AUTOCONF += --disable-sockets
-endif
-
-ifdef PTXCONF_PHP5_EXT_SQLITE3
-PHP5_AUTOCONF += --with-sqlite3=$(PTXDIST_SYSROOT_TARGET)/usr --with-pdo-sqlite
-# broken config system: sqlite3 (local copy) uses it
-# but it is only linked to if used by external dependencies
-PHP5_CONF_ENV += PHP_LDFLAGS="-ldl -lpthread"
-else
-PHP5_AUTOCONF += --without-sqlite3 --without-pdo-sqlite
-endif
-
-ifdef PTXCONF_PHP5_EXT_PEAR
-PHP5_AUTOCONF += --with-pear=FIXME
-else
-PHP5_AUTOCONF += --without-pear
-endif
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/php5.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, php5)
- @$(call install_fixup, php5,PRIORITY,optional)
- @$(call install_fixup, php5,SECTION,base)
- @$(call install_fixup, php5,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, php5,DESCRIPTION,missing)
-
-ifdef PTXCONF_PHP5_SAPI_APXS2
- @$(call install_copy, php5, 0, 0, 0644, -, \
- /usr/modules/libphp5.so)
-endif
-
-ifdef PTXCONF_PHP5_SAPI_CLI
- @$(call install_copy, php5, 0, 0, 0755, $(PHP5_PKGDIR)/usr/bin/php, \
- /usr/bin/php5)
-endif
-
-ifdef PTXCONF_PHP5_SAPI_CGI
- @$(call install_copy, php5, 0, 0, 0755, -, /usr/bin/php-cgi)
-endif
-
-ifdef PTXCONF_PHP5_INI
- @$(call install_alternative, php5, 0, 0, 0644, /etc/php5/php.ini)
-endif
-
- @$(call install_finish, php5)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/php8.in b/rules/php8.in
new file mode 100644
index 000000000..68d64bd83
--- /dev/null
+++ b/rules/php8.in
@@ -0,0 +1,75 @@
+## SECTION=scripting_languages
+# php6 configuration
+
+menuconfig PHP8
+ tristate
+ prompt "php8 "
+ select GLIBC_M
+ help
+ PHP, which stands for "PHP: Hypertext Preprocessor" is a widely-used
+ general-purpose scripting language that is especially suited for web
+ development and can be embedded into HTML.
+
+if PHP8
+
+config PHP8_INI
+ bool
+ prompt "install /etc/php8/php.ini"
+ default y
+ help
+ Installs (if present) the
+ "./projectroot/etc/php8/php.ini" file from your
+ workspace, otherwise a generic one from the ptxdist
+ directory.
+
+# ----------------------------------------------------------------------------
+# SAPI Modules (add more on demand)
+# ----------------------------------------------------------------------------
+
+choice
+ prompt "SAPI Module"
+ default PHP8_SAPI_NONE
+ help
+ Select one of the SAP (Server Application Programming) Interfaces to
+ be supported at run-time. It is possible to select no SAP interface
+ here, then your PHP supports a command line interface (CLI) only.
+
+config PHP8_SAPI_CGI
+ bool
+ prompt "cgi"
+ help
+ Build standard CGI version of PHP.
+
+config PHP8_SAPI_NONE
+ bool
+ prompt "none"
+ select PHP8_SAPI_CLI
+ help
+ This forces a command line interface variant only.
+
+endchoice
+
+config PHP8_SESSION
+ bool
+ prompt "session support"
+ default y
+ help
+ A session is a way to store information to be used across multiple
+ pages. The information is stored locally only.
+
+config PHP8_FILTER
+ bool
+ prompt "filter support"
+ default y
+ help
+ This extension filters data by either validating or sanitizing it.
+ This is especially useful when the data source contains unknown (or foreign) data, like user supplied input.
+ For example, this data may come from an HTML form.
+
+config PHP8_SAPI_CLI
+ bool
+ prompt "cli"
+ help
+ Build command line interface (CLI) version of PHP
+
+endif
diff --git a/rules/php8.make b/rules/php8.make
new file mode 100644
index 000000000..52aae8d03
--- /dev/null
+++ b/rules/php8.make
@@ -0,0 +1,249 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2006-2008 by Robert Schwebel
+# 2009, 2012 by Marc Kleine-Budde <mkl@pengutronix.de>
+# 2015 by Bruno Thomsen <bth@kamstrup.com>
+# 2021 by Juergen Borleis <jbe@pengutronix.de>
+# 2022 by Andreas Helmcke <ahelmcke@ela-soft.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PHP8) += php8
+
+#
+# Paths and names
+#
+PHP8_VERSION := 8.3.3
+PHP8_MD5 := f8e821c23e4da0cd52710181532cb853
+PHP8 := php-$(PHP8_VERSION)
+PHP8_SUFFIX := tar.xz
+PHP8_SOURCE := $(SRCDIR)/$(PHP8).$(PHP8_SUFFIX)
+PHP8_DIR := $(BUILDDIR)/$(PHP8)
+PHP8_LICENSE := PHP-3.01
+PHP8_LICENSE_FILES := file://LICENSE;md5=fd469cce1a919f0cc95bab7afb28d19d
+
+#
+# Note: older releases are moved to the 'museum', but the 'de.php.net'
+# response with a HTML file instead of the archive. So, try the 'museum'
+# URL first
+#
+PHP8_URL := \
+ http://museum.php.net/php8/$(PHP8).$(PHP8_SUFFIX) \
+ http://de.php.net/distributions/$(PHP8).$(PHP8_SUFFIX)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+PHP8_CONF_TOOL := autoconf
+PHP8_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --disable-rpath \
+ --disable-re2c-cgoto \
+ --disable-gcc-global-regs \
+ --without-apxs2 \
+ --$(call ptx/endis, PTXCONF_PHP8_SAPI_CLI)-cli \
+ --without-pear \
+ --disable-embed \
+ --disable-fpm \
+ --without-fpm-user \
+ --without-fpm-group \
+ --without-fpm-systemd \
+ --without-fpm-acl \
+ --without-fpm-apparmor \
+ --without-fpm-selinux \
+ --disable-fuzzer \
+ --disable-litespeed \
+ --disable-phpdbg \
+ --disable-phpdbg-debug \
+ --disable-phpdbg-readline \
+ --$(call ptx/endis, PTXCONF_PHP8_SAPI_CGI)-cgi \
+ --without-valgrind \
+ --disable-gcov \
+ --disable-debug \
+ --disable-debug-assertions \
+ --disable-zts \
+ --disable-rtld-now \
+ --without-layout \
+ --with-config-file-path=/etc/php8 \
+ --without-config-file-scan-dir \
+ --disable-sigchild \
+ --disable-libgcc \
+ --enable-short-tags \
+ --disable-dmalloc \
+ --$(call ptx/endis, PTXCONF_GLOBAL_IPV6)-ipv6 \
+ --disable-dtrace \
+ --disable-fd-setsize \
+ --disable-werror \
+ --disable-memory-sanitizer \
+ --disable-address-sanitizer \
+ --disable-undefined-sanitizer \
+ --disable-all \
+ --without-libxml \
+ --without-openssl \
+ --without-kerberos \
+ --without-system-ciphers \
+ --without-external-pcre \
+ --without-pcre-jit \
+ --without-sqlite3 \
+ --without-zlib \
+ --disable-bcmath \
+ --without-bz2 \
+ --disable-calendar \
+ --disable-ctype \
+ --without-curl \
+ --disable-dba \
+ --without-qdbm \
+ --without-gdbm \
+ --without-ndbm \
+ --without-db4 \
+ --without-db3 \
+ --without-db2 \
+ --without-db1 \
+ --without-dbm \
+ --without-tcadb \
+ --without-lmdb \
+ --without-cdb \
+ --disable-inifile \
+ --disable-flatfile \
+ --disable-dl-test \
+ --disable-dom \
+ --without-enchant \
+ --disable-exif \
+ --without-ffi \
+ --disable-fileinfo \
+ --$(call ptx/endis, PTXCONF_PHP8_FILTER)-filter \
+ --disable-ftp \
+ --without-openssl-dir \
+ --disable-gd \
+ --without-external-gd \
+ --without-avif \
+ --without-webp \
+ --without-jpeg \
+ --without-xpm \
+ --without-freetype \
+ --disable-gd-jis-conv \
+ --without-gettext \
+ --without-gmp \
+ --without-mhash \
+ --without-iconv \
+ --without-imap \
+ --without-imap-ssl \
+ --disable-intl \
+ --without-ldap \
+ --without-ldap-sasl \
+ --disable-mbstring \
+ --disable-mbregex \
+ --without-mysqli \
+ --without-mysql-sock \
+ --without-oci8 \
+ --without-odbcver \
+ --without-adabas \
+ --without-sapdb \
+ --without-solid \
+ --without-ibm-db2 \
+ --without-empress \
+ --without-empress-bcs \
+ --without-custom-odbc \
+ --without-iodbc \
+ --without-esoob \
+ --without-unixODBC \
+ --without-dbmaker \
+ --disable-opcache \
+ --disable-huge-code-pages \
+ --disable-opcache-jit \
+ --without-capstone \
+ --disable-pcntl \
+ --disable-pdo \
+ --without-pdo-dblib \
+ --without-pdo-firebird \
+ --without-pdo-mysql \
+ --without-zlib-dir \
+ --without-pdo-oci \
+ --without-pdo-odbc \
+ --without-pdo-pgsql \
+ --without-pdo-sqlite \
+ --without-pgsql \
+ --disable-phar \
+ --disable-posix \
+ --without-pspell \
+ --without-libedit \
+ --without-readline \
+ --$(call ptx/endis, PTXCONF_PHP8_SESSION)-session \
+ --without-mm \
+ --disable-shmop \
+ --disable-simplexml \
+ --without-snmp \
+ --disable-soap \
+ --disable-sockets \
+ --without-sodium \
+ --without-external-libcrypt \
+ --without-password-argon2 \
+ --disable-sysvmsg \
+ --disable-sysvsem \
+ --disable-sysvshm \
+ --without-tidy \
+ --disable-tokenizer \
+ --disable-xml \
+ --without-expat \
+ --disable-xmlreader \
+ --disable-xmlwriter \
+ --without-xsl \
+ --disable-zend-test \
+ --without-zip \
+ --disable-mysqlnd \
+ --disable-mysqlnd-compression-support \
+ --without-pear \
+ --disable-fiber-asm \
+ --disable-zend-signals \
+ --disable-zend-max-execution-timers
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/php8.install:
+ @$(call targetinfo)
+ @$(call world/install, PHP8)
+ @install -vD -m644 $(PHP8_DIR)/php.ini-production \
+ $(PHP8_PKGDIR)/etc/php8/php.ini
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/php8.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, php8)
+ @$(call install_fixup, php8,PRIORITY,optional)
+ @$(call install_fixup, php8,SECTION,base)
+ @$(call install_fixup, php8,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
+ @$(call install_fixup, php8,DESCRIPTION,missing)
+
+ifdef PTXCONF_PHP8_SAPI_CLI
+ @$(call install_copy, php8, 0, 0, 0755, -, /usr/bin/php)
+endif
+
+ifdef PTXCONF_PHP8_SAPI_CGI
+ @$(call install_copy, php8, 0, 0, 0755, -, /usr/bin/php-cgi)
+endif
+
+ifdef PTXCONF_PHP8_INI
+ @$(call install_alternative, php8, 0, 0, 0644, /etc/php8/php.ini)
+endif
+
+ @$(call install_finish, php8)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/picocom.in b/rules/picocom.in
index 6023a3a04..727d8d924 100644
--- a/rules/picocom.in
+++ b/rules/picocom.in
@@ -4,4 +4,4 @@ config PICOCOM
tristate
prompt "picocom"
help
- picocom is a minimal dumb-terminal emulation program
+ picocom is a minimal dumb-terminal emulation program
diff --git a/rules/piglit.in b/rules/piglit.in
index 397585c5d..72cd20e89 100644
--- a/rules/piglit.in
+++ b/rules/piglit.in
@@ -24,6 +24,8 @@ menuconfig PIGLIT
select XORG if PIGLIT_TESTS_OPENGL
select MESALIB_GLES1 if PIGLIT_TESTS_OPENGLES1
select MESALIB_GLES2 if PIGLIT_TESTS_OPENGLES2 || PIGLIT_TESTS_OPENGLES3
+ select VULKAN_LOADER if PIGLIT_TESTS_VULKAN
+ select VKRUNNER if PIGLIT_TESTS_VULKAN && RUNTIME
help
Piglit is the opensource OpenGL/OpenCL test suite.
@@ -51,4 +53,8 @@ config PIGLIT_TESTS_OPENGLES3
bool
prompt "build OpenGL ES3 tests"
+config PIGLIT_TESTS_VULKAN
+ bool
+ prompt "build Vulkan tests"
+
endif
diff --git a/rules/piglit.make b/rules/piglit.make
index 9be282649..a84216567 100644
--- a/rules/piglit.make
+++ b/rules/piglit.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_PIGLIT) += piglit
#
# Paths and names
#
-PIGLIT_VERSION := 2020-02-22-g6c0de1646ec0
-PIGLIT_MD5 := 7ff7552117bd1e5fc05ed7ab2077b77c
+PIGLIT_VERSION := 2024-03-09-gb32186ee5313
+PIGLIT_MD5 := 404aec6973480d5ac54588c01f0c8fd4
PIGLIT := piglit-$(PIGLIT_VERSION)
PIGLIT_SUFFIX := tar.gz
PIGLIT_URL := https://gitlab.freedesktop.org/mesa/piglit/-/archive/$(PIGLIT_VERSION)/$(PIGLIT).$(PIGLIT_SUFFIX)
@@ -32,6 +32,7 @@ PIGLIT_CONF_TOOL := cmake
PIGLIT_CONF_OPT := $(CROSS_CMAKE_USR) \
-G Ninja \
+ -DCMAKE_DISABLE_FIND_PACKAGE_Git=TRUE \
-DPYTHON_EXECUTABLE:FILEPATH=$(SYSTEMPYTHON3) \
-DPIGLIT_USE_WAFFLE=1 \
-DPIGLIT_BUILD_GL_TESTS=$(call ptx/ifdef, PTXCONF_PIGLIT_TESTS_OPENGL,1,0) \
@@ -39,6 +40,7 @@ PIGLIT_CONF_OPT := $(CROSS_CMAKE_USR) \
-DPIGLIT_BUILD_GLES2_TESTS=$(call ptx/ifdef, PTXCONF_PIGLIT_TESTS_OPENGLES2,1,0) \
-DPIGLIT_BUILD_GLES3_TESTS=$(call ptx/ifdef, PTXCONF_PIGLIT_TESTS_OPENGLES3,1,0) \
-DPIGLIT_BUILD_CL_TESTS=0 \
+ -DPIGLIT_BUILD_VK_TESTS=$(call ptx/ifdef, PTXCONF_PIGLIT_TESTS_VULKAN,1,0) \
-DHAVE_LIBCACA:BOOL=NO
PIGLIT_MAKE_ENV := \
diff --git a/rules/pipewire.in b/rules/pipewire.in
new file mode 100644
index 000000000..9d1b920b4
--- /dev/null
+++ b/rules/pipewire.in
@@ -0,0 +1,75 @@
+## SECTION=multimedia_pipewire
+
+menuconfig PIPEWIRE
+ tristate
+ select HOST_MESON
+ select DBUS
+ select ALSA_LIB
+ select ALSA_LIB_PCM
+ select ALSA_LIB_UCM
+ select ALSA_LIB_SEQ
+ select GLIB if PIPEWIRE_GSTREAMER
+ select GSTREAMER1 if PIPEWIRE_GSTREAMER
+ select GST_PLUGINS_BASE1 if PIPEWIRE_GSTREAMER
+ select LIBCAMERA if PIPEWIRE_LIBCAMERA
+ select LIBSNDFILE
+ select READLINE if PIPEWIRE_PW_CTL
+ select NCURSES if PIPEWIRE_PW_TOP
+ select NCURSES_WIDE_CHAR if PIPEWIRE_PW_TOP
+ select OPENSSL if PIPEWIRE_RAOP
+ select SYSTEMD if PIPEWIRE_SYSTEMD
+ select UDEV
+ select UDEV_LIBUDEV
+ prompt "pipewire "
+ help
+ PipeWire is a server and user space API to deal with multimedia
+ pipelines. This includes:
+ - Making available sources of video (such as from a capture devices or
+ application provided streams) and multiplexing this with clients.
+ - Accessing sources of video for consumption.
+ - Generating graphs for audio and video processing.
+
+if PIPEWIRE
+
+config PIPEWIRE_GSTREAMER
+ bool
+ prompt "build and install gstreamer plugins"
+
+config PIPEWIRE_PW_CTL
+ bool
+ prompt "build and install pw-cli, requires readline"
+
+config PIPEWIRE_PW_TOP
+ bool
+ prompt "build and install pw-top, requires ncurses"
+
+config PIPEWIRE_SYSTEMD
+ bool
+
+config PIPEWIRE_PULSEAUDIO
+ bool
+ prompt "install pulseaudio compatibility service"
+
+config PIPEWIRE_LIBCAMERA
+ bool
+ prompt "build and install libcamera plugin"
+
+config PIPEWIRE_RAOP
+ bool
+ prompt "enable Remote Audio Output Protocol module"
+
+config PIPEWIRE_SYSTEMD_UNIT
+ bool
+ default y
+ depends on INITMETHOD_SYSTEMD
+ select PIPEWIRE_SYSTEMD
+ prompt "install systemd system unit file for pipewire"
+
+config PIPEWIRE_SYSTEMD_UNIT_USER
+ bool
+ default y
+ depends on INITMETHOD_SYSTEMD
+ select PIPEWIRE_SYSTEMD
+ prompt "install systemd user unit file for pipewire"
+
+endif
diff --git a/rules/pipewire.make b/rules/pipewire.make
new file mode 100644
index 000000000..8747ebe6c
--- /dev/null
+++ b/rules/pipewire.make
@@ -0,0 +1,284 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2019 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PIPEWIRE) += pipewire
+
+#
+# Paths and names
+#
+PIPEWIRE_VERSION := 1.0.1
+PIPEWIRE_MD5 := d70bde8000d62df6c03c6dd928ab8948
+PIPEWIRE := pipewire-$(PIPEWIRE_VERSION)
+PIPEWIRE_SUFFIX := tar.bz2
+PIPEWIRE_URL := https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/$(PIPEWIRE_VERSION)/$(PIPEWIRE).$(PIPEWIRE_SUFFIX)
+PIPEWIRE_SOURCE := $(SRCDIR)/$(PIPEWIRE).$(PIPEWIRE_SUFFIX)
+PIPEWIRE_DIR := $(BUILDDIR)/$(PIPEWIRE)
+PIPEWIRE_LICENSE := MIT AND LGPL-2.1-or-later
+PIPEWIRE_LICENSE_FILES := \
+ file://LICENSE;md5=2158739e172e58dc9ab1bdd2d6ec9c72 \
+ file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# meson
+#
+PIPEWIRE_CONF_TOOL := meson
+PIPEWIRE_CONF_OPT := \
+ $(CROSS_MESON_USR) \
+ -Dalsa=enabled \
+ -Daudioconvert=enabled \
+ -Daudiomixer=enabled \
+ -Daudiotestsrc=enabled \
+ -Davahi=disabled \
+ -Davb=disabled \
+ -Dbluez5=disabled \
+ -Dbluez5-backend-hfp-native=disabled \
+ -Dbluez5-backend-hsp-native=disabled \
+ -Dbluez5-backend-hsphfpd=disabled \
+ -Dbluez5-backend-native-mm=disabled \
+ -Dbluez5-backend-ofono=disabled \
+ -Dbluez5-codec-aac=disabled \
+ -Dbluez5-codec-aptx=disabled \
+ -Dbluez5-codec-lc3=disabled \
+ -Dbluez5-codec-lc3plus=disabled \
+ -Dbluez5-codec-ldac=disabled \
+ -Dbluez5-codec-opus=disabled \
+ -Dcompress-offload=disabled \
+ -Dcontrol=enabled \
+ -Ddbus=enabled \
+ -Ddocdir= \
+ -Ddocs=disabled \
+ -Decho-cancel-webrtc=disabled \
+ -Devl=disabled \
+ -Dexamples=enabled \
+ -Dffmpeg=disabled \
+ -Dflatpak=disabled \
+ -Dgsettings=disabled \
+ -Dgstreamer=$(call ptx/endis,PTXCONF_PIPEWIRE_GSTREAMER)d \
+ -Dgstreamer-device-provider=$(call ptx/endis,PTXCONF_PIPEWIRE_GSTREAMER)d \
+ -Dinstalled_tests=disabled \
+ -Djack=disabled \
+ -Djack-devel=false \
+ -Dlegacy-rtkit=false \
+ -Dlibcamera=$(call ptx/endis,PTXCONF_PIPEWIRE_LIBCAMERA)d \
+ -Dlibcanberra=disabled \
+ -Dlibffado=disabled \
+ -Dlibjack-path= \
+ -Dlibmysofa=disabled \
+ -Dlibpulse=disabled \
+ -Dlibusb=disabled \
+ -Dlibv4l2-path= \
+ -Dlv2=disabled \
+ -Dman=disabled \
+ -Dopus=disabled \
+ -Dpam-defaults-install=false \
+ -Dpam-memlock-default=8192 \
+ -Dpipewire-alsa=enabled \
+ -Dpipewire-jack=disabled \
+ -Dpipewire-v4l2=disabled \
+ -Dpw-cat=enabled \
+ -Dpw-cat-ffmpeg=disabled \
+ -Draop=$(call ptx/endis,PTXCONF_PIPEWIRE_RAOP)d \
+ -Dreadline=$(call ptx/endis,PTXCONF_PIPEWIRE_PW_CTL)d \
+ -Drlimits-install=false \
+ -Drlimits-match=@pipewire \
+ -Drlimits-memlock=4194304 \
+ -Drlimits-nice=-19 \
+ -Drlimits-rtprio=95 \
+ -Droc=disabled \
+ -Dsdl2=disabled \
+ -Dselinux=disabled \
+ -Dsession-managers= \
+ -Dsndfile=enabled \
+ -Dspa-plugins=enabled \
+ -Dsupport=enabled \
+ -Dsystemd=$(call ptx/endis,PTXCONF_PIPEWIRE_SYSTEMD)d \
+ -Dsystemd-system-service=$(call ptx/endis,PTXCONF_PIPEWIRE_SYSTEMD_UNIT)d \
+ -Dsystemd-system-unit-dir=/usr/lib/systemd/system \
+ -Dsystemd-user-service=$(call ptx/endis,PTXCONF_PIPEWIRE_SYSTEMD_UNIT_USER)d \
+ -Dsystemd-user-unit-dir=/usr/lib/systemd/user \
+ -Dtest=disabled \
+ -Dtests=disabled \
+ -Dudev=enabled \
+ -Dudevrulesdir=/usr/lib/udev/rules.d \
+ -Dv4l2=enabled \
+ -Dvideoconvert=disabled \
+ -Dvideotestsrc=enabled \
+ -Dvolume=enabled \
+ -Dvulkan=disabled \
+ -Dx11=disabled \
+ -Dx11-xfixes=disabled
+
+PIPEWIRE_CPPFLAGS = -isystem $(KERNEL_HEADERS_INCLUDE_DIR)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+PIPEWIRE_MODULES-y := \
+ access \
+ adapter \
+ client-device \
+ client-node \
+ combine-stream \
+ echo-cancel \
+ netjack2-driver \
+ netjack2-manager \
+ fallback-sink \
+ filter-chain \
+ link-factory \
+ loopback \
+ metadata \
+ pipe-tunnel \
+ portal \
+ profiler \
+ protocol-native \
+ protocol-pulse \
+ protocol-simple \
+ rt \
+ session-manager \
+ rtp-sap \
+ rtp-source \
+ rtp-sink \
+ spa-device \
+ spa-device-factory \
+ spa-node \
+ spa-node-factory \
+ vban-send \
+ vban-recv
+
+PIPEWIRE_MODULES-$(PTXCONF_PIPEWIRE_RAOP) += raop-sink
+
+PIPEWIRE_SPA_MODULES := \
+ alsa/libspa-alsa \
+ audioconvert/libspa-audioconvert \
+ audiomixer/libspa-audiomixer \
+ audiotestsrc/libspa-audiotestsrc \
+ control/libspa-control \
+ $(call ptx/ifdef,PTXCONF_PIPEWIRE_LIBCAMERA,libcamera/libspa-libcamera) \
+ support/libspa-dbus \
+ $(call ptx/ifdef,PTXCONF_PIPEWIRE_SYSTEMD,support/libspa-journal) \
+ support/libspa-support \
+ v4l2/libspa-v4l2 \
+ videotestsrc/libspa-videotestsrc \
+ volume/libspa-volume
+
+$(STATEDIR)/pipewire.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, pipewire)
+ @$(call install_fixup, pipewire,PRIORITY,optional)
+ @$(call install_fixup, pipewire,SECTION,base)
+ @$(call install_fixup, pipewire,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, pipewire,DESCRIPTION,missing)
+
+ @$(call install_lib, pipewire, 0, 0, 644, libpipewire-0.3)
+
+ @$(call install_copy, pipewire, 0, 0, 755, -, /usr/bin/pipewire)
+ifdef PTXCONF_PIPEWIRE_PULSEAUDIO
+ @$(call install_link, pipewire, pipewire, /usr/bin/pipewire-pulse)
+endif
+ @$(call install_copy, pipewire, 0, 0, 755, -, /usr/bin/pw-cat)
+ifdef PTXCONF_PIPEWIRE_PW_CTL
+ @$(call install_copy, pipewire, 0, 0, 755, -, /usr/bin/pw-cli)
+endif
+ @$(call install_copy, pipewire, 0, 0, 755, -, /usr/bin/pw-config)
+ @$(call install_copy, pipewire, 0, 0, 755, -, /usr/bin/pw-dot)
+ @$(call install_copy, pipewire, 0, 0, 755, -, /usr/bin/pw-dump)
+ @$(call install_copy, pipewire, 0, 0, 755, -, /usr/bin/pw-link)
+ @$(call install_copy, pipewire, 0, 0, 755, -, /usr/bin/pw-loopback)
+ @$(call install_copy, pipewire, 0, 0, 755, -, /usr/bin/pw-metadata)
+ @$(call install_copy, pipewire, 0, 0, 755, -, /usr/bin/pw-mididump)
+ @$(call install_copy, pipewire, 0, 0, 755, -, /usr/bin/pw-mon)
+ @$(call install_copy, pipewire, 0, 0, 755, -, /usr/bin/pw-profiler)
+ @$(call install_copy, pipewire, 0, 0, 755, -, /usr/bin/pw-reserve)
+ifdef PTXCONF_PIPEWIRE_PW_TOP
+ @$(call install_copy, pipewire, 0, 0, 755, -, /usr/bin/pw-top)
+endif
+ @$(call install_copy, pipewire, 0, 0, 755, -, /usr/bin/spa-acp-tool)
+ @$(call install_copy, pipewire, 0, 0, 755, -, /usr/bin/spa-inspect)
+ @$(call install_copy, pipewire, 0, 0, 755, -, /usr/bin/spa-json-dump)
+ @$(call install_copy, pipewire, 0, 0, 755, -, /usr/bin/spa-monitor)
+ @$(call install_copy, pipewire, 0, 0, 755, -, /usr/bin/spa-resample)
+
+ @$(call install_link, pipewire, pw-cat, /usr/bin/pw-dsdplay)
+ @$(call install_link, pipewire, pw-cat, /usr/bin/pw-midiplay)
+ @$(call install_link, pipewire, pw-cat, /usr/bin/pw-midirecord)
+ @$(call install_link, pipewire, pw-cat, /usr/bin/pw-play)
+ @$(call install_link, pipewire, pw-cat, /usr/bin/pw-record)
+
+ @$(foreach module, $(PIPEWIRE_MODULES-y), \
+ $(call install_lib, pipewire, 0, 0, 644, \
+ pipewire-0.3/libpipewire-module-$(module))$(ptx/nl))
+
+ @$(foreach module, $(PIPEWIRE_SPA_MODULES), \
+ $(call install_lib, pipewire, 0, 0, 644, \
+ spa-0.2/$(module))$(ptx/nl))
+
+ @$(call install_alternative, pipewire, 0, 0, 644, /usr/share/pipewire/client.conf)
+ @$(call install_alternative, pipewire, 0, 0, 644, /usr/share/pipewire/client-rt.conf)
+ @$(call install_alternative, pipewire, 0, 0, 644, /usr/share/pipewire/filter-chain.conf)
+ @$(call install_alternative, pipewire, 0, 0, 644, /usr/share/pipewire/filter-chain/demonic.conf)
+ @$(call install_alternative, pipewire, 0, 0, 644, /usr/share/pipewire/filter-chain/sink-dolby-surround.conf)
+ @$(call install_alternative, pipewire, 0, 0, 644, /usr/share/pipewire/filter-chain/sink-eq6.conf)
+ @$(call install_alternative, pipewire, 0, 0, 644, /usr/share/pipewire/filter-chain/sink-make-LFE.conf)
+ @$(call install_alternative, pipewire, 0, 0, 644, /usr/share/pipewire/filter-chain/sink-matrix-spatialiser.conf)
+ @$(call install_alternative, pipewire, 0, 0, 644, /usr/share/pipewire/filter-chain/sink-mix-FL-FR.conf)
+ @$(call install_alternative, pipewire, 0, 0, 644, /usr/share/pipewire/filter-chain/sink-virtual-surround-5.1-kemar.conf)
+ @$(call install_alternative, pipewire, 0, 0, 644, /usr/share/pipewire/filter-chain/sink-virtual-surround-7.1-hesuvi.conf)
+ @$(call install_alternative, pipewire, 0, 0, 644, /usr/share/pipewire/filter-chain/source-duplicate-FL.conf)
+ @$(call install_alternative, pipewire, 0, 0, 644, /usr/share/pipewire/filter-chain/source-rnnoise.conf)
+ @$(call install_alternative, pipewire, 0, 0, 644, /usr/share/pipewire/pipewire.conf)
+ @$(call install_alternative, pipewire, 0, 0, 644, /usr/share/pipewire/minimal.conf)
+
+ @$(call install_tree, pipewire, 0, 0, -, /usr/share/alsa-card-profile)
+ @$(call install_alternative, pipewire, 0, 0, 644, \
+ /usr/lib/udev/rules.d/90-pipewire-alsa.rules)
+ifdef PTXCONF_PIPEWIRE_PULSEAUDIO
+ @$(call install_alternative, pipewire, 0, 0, 644, /usr/share/pipewire/pipewire-pulse.conf)
+endif
+
+ifdef PTXCONF_PIPEWIRE_GSTREAMER
+ @$(call install_lib, pipewire, 0, 0, 644, gstreamer-1.0/libgstpipewire)
+endif
+ifdef PTXCONF_PIPEWIRE_SYSTEMD_UNIT_USER
+ @$(call install_alternative, pipewire, 0, 0, 0644, \
+ /usr/lib/systemd/user/pipewire.service)
+ @$(call install_alternative, pipewire, 0, 0, 0644, \
+ /usr/lib/systemd/user/pipewire.socket)
+ @$(call install_link, pipewire, ../pipewire.socket, \
+ /usr/lib/systemd/user/sockets.target.wants/pipewire.socket)
+ifdef PTXCONF_PIPEWIRE_PULSEAUDIO
+ @$(call install_alternative, pipewire, 0, 0, 0644, \
+ /usr/lib/systemd/user/pipewire-pulse.service)
+ @$(call install_alternative, pipewire, 0, 0, 0644, \
+ /usr/lib/systemd/user/pipewire-pulse.socket)
+ @$(call install_link, pipewire, ../pipewire-pulse.socket, \
+ /usr/lib/systemd/user/sockets.target.wants/pipewire-pulse.socket)
+endif
+endif
+ifdef PTXCONF_PIPEWIRE_SYSTEMD_UNIT
+ @$(call install_alternative, pipewire, 0, 0, 0644, \
+ /usr/lib/systemd/system/pipewire.service)
+ @$(call install_alternative, pipewire, 0, 0, 0644, \
+ /usr/lib/systemd/system/pipewire.socket)
+ @$(call install_link, pipewire, ../pipewire.socket, \
+ /usr/lib/systemd/system/sockets.target.wants/pipewire.socket)
+endif
+
+ @$(call install_finish, pipewire)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/pixman.make b/rules/pixman.make
index 32685bc73..5ebbcb059 100644
--- a/rules/pixman.make
+++ b/rules/pixman.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_PIXMAN) += pixman
#
# Paths and names
#
-PIXMAN_VERSION := 0.40.0
-PIXMAN_MD5 := ee642c14f4f18934246c57a440da9ca2
+PIXMAN_VERSION := 0.43.4
+PIXMAN_MD5 := ca6767b8056637d690cd17970daf4b18
PIXMAN := pixman-$(PIXMAN_VERSION)
PIXMAN_SUFFIX := tar.xz
PIXMAN_URL := $(call ptx/mirror, XORG, individual/lib/$(PIXMAN).$(PIXMAN_SUFFIX))
@@ -33,7 +33,10 @@ PIXMAN_LICENSE := MIT
PIXMAN_CONF_TOOL := meson
PIXMAN_CONF_OPT := \
$(CROSS_MESON_USR) \
+ -Da64-neon=$(call ptx/endis, PTXCONF_ARCH_ARM64)d \
-Darm-simd=$(call ptx/endis, PTXCONF_ARCH_ARM_V6)d \
+ -Dcpu-features-path= \
+ -Ddemos=disabled \
-Dgnu-inline-asm=disabled \
-Dgnuplot=false \
-Dgtk=disabled \
@@ -47,6 +50,7 @@ PIXMAN_CONF_OPT := \
-Dopenmp=disabled \
-Dsse2=$(call ptx/endis, PTXCONF_ARCH_X86)d \
-Dssse3=$(call ptx/endis, PTXCONF_ARCH_X86)d \
+ -Dtests=disabled \
-Dtimers=false \
-Dvmx=disabled
diff --git a/rules/ply.make b/rules/ply.make
index a6a9532b5..336f1a98e 100644
--- a/rules/ply.make
+++ b/rules/ply.make
@@ -41,8 +41,8 @@ PLY_CONF_ENV := \
PLY_CONF_TOOL := autoconf
ifdef PTXCONF_PLY
-ifdef PTXCONF_KERNEL
-ifneq ($(call remove_quotes,$(PTXCONF_KERNEL_HEADER_VERSION)),$(call remove_quotes,$(PTXCONF_KERNEL_VERSION)))
+ifneq ($(KERNEL_VERSION),undefined)
+ifneq ($(KERNEL_HEADER_VERSION),$(KERNEL_VERSION))
$(call ptx/error, ply only works if the kernel header version matches the kernel version)
endif
endif
diff --git a/rules/pnputils.in b/rules/pnputils.in
index 82232fa00..778d6a353 100644
--- a/rules/pnputils.in
+++ b/rules/pnputils.in
@@ -3,8 +3,8 @@ menuconfig PNPUTILS
tristate
prompt "pnputils "
help
- Builds the pnputils to show debugging information about PNP
- devices in your hardware. This is useful for x86 targets only.
+ Builds the pnputils to show debugging information about PNP
+ devices in your hardware. This is useful for x86 targets only.
if PNPUTILS
diff --git a/rules/pnputils.make b/rules/pnputils.make
index 0a63a4db3..3222b3a05 100644
--- a/rules/pnputils.make
+++ b/rules/pnputils.make
@@ -26,7 +26,6 @@ PNPUTILS_DIR := $(BUILDDIR)/$(PNPUTILS)
# Compile
# ----------------------------------------------------------------------------
-PNPUTILS_PATH := PATH=$(CROSS_PATH)
PNPUTILS_MAKE_ENV := $(CROSS_ENV)
# ----------------------------------------------------------------------------
diff --git a/rules/poco.in b/rules/poco.in
deleted file mode 100644
index 7bd859a14..000000000
--- a/rules/poco.in
+++ /dev/null
@@ -1,92 +0,0 @@
-## SECTION=system_libraries
-
-menuconfig POCO
- tristate
- select GCCLIBS_CXX
- select GCCLIBS_GCC_S
- select ZLIB
- select LIBPCRE
- select EXPAT if POCO_XML
- select SQLITE if POCO_DATA_SQLITE
- select MYSQLDB if POCO_DATA_MYSQL
- select OPENSSL if POCO_CRYPTO
- prompt "poco "
- help
- The POCO C++ Libraries (POrtable COmponents) are open source C++ class
- libraries that simplify and accelerate the development of
- network-centric, portable applications in C++.
-
-
-if POCO
-
-config POCO_POQUITO
- bool
- prompt "smaller code-size"
- help
- Omit a few features for smaller codesize.
-
-config POCO_ENCODINGS
- bool
- prompt "double-byte encodings library"
-
-config POCO_XML
- bool
- prompt "XML library"
-
-config POCO_JSON
- bool
- prompt "JSON library"
-
-config POCO_UTIL
- bool
- prompt "Util library"
-
-config POCO_NET
- bool
- prompt "Networking library"
-
-if POCO_NET && POCO_CRYPTO && POCO_UTIL
-
-config POCO_NETSSL_OPENSSL
- bool
- prompt "TLS using OpenSSL"
-
-endif
-
-config POCO_CRYPTO
- bool
- prompt "Crypto library"
-
-config POCO_DATA
- bool
- prompt "Database abstraction library"
-
-if POCO_DATA
-
-config POCO_DATA_SQLITE
- bool
- prompt "SQLite backend"
-
-config POCO_DATA_MYSQL
- bool
- prompt "MySQL backend"
-
-endif
-
-config POCO_ZIP
- bool
- prompt "Zip library"
-
-if POCO_NET
-
-config POCO_MONGODB
- bool
- prompt "MongoDB support"
-
-config POCO_REDIS
- bool
- prompt "Redis support"
-
-endif
-
-endif
diff --git a/rules/poco.make b/rules/poco.make
deleted file mode 100644
index f629fcee1..000000000
--- a/rules/poco.make
+++ /dev/null
@@ -1,89 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2010 by Robert Schwebel <r.schwebel@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_POCO) += poco
-
-#
-# Paths and names
-#
-POCO_VERSION := 1.9.0
-POCO_MD5 := 9047586e0ba393bfeced96e3b7ae6286
-POCO := poco-$(POCO_VERSION)
-POCO_SUFFIX := tar.gz
-POCO_URL := http://pocoproject.org/releases/$(POCO)/$(POCO)-all.$(POCO_SUFFIX)
-POCO_SOURCE := $(SRCDIR)/$(POCO).$(POCO_SUFFIX)
-POCO_DIR := $(call ptx/sh, readlink -f "$(BUILDDIR)/$(POCO)")
-POCO_LICENSE := BSL-1.0
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-POCO_LIBS- := CppUnit
-POCO_LIBS- += CppUnit/WinTestRunner
-POCO_LIBS- += Data/ODBC
-POCO_LIBS- += PageCompiler
-POCO_LIBS- += PageCompiler/File2Page
-
-POCO_LIBS-y += Foundation
-POCO_LIBS-$(PTXCONF_POCO_ENCODINGS) += Encodings
-POCO_LIBS-$(PTXCONF_POCO_XML) += XML
-POCO_LIBS-$(PTXCONF_POCO_JSON) += JSON
-POCO_LIBS-$(PTXCONF_POCO_UTIL) += Util
-POCO_LIBS-$(PTXCONF_POCO_NET) += Net
-POCO_LIBS-$(PTXCONF_POCO_NETSSL_OPENSSL) += NetSSL_OpenSSL
-POCO_LIBS-$(PTXCONF_POCO_CRYPTO) += Crypto
-POCO_LIBS-$(PTXCONF_POCO_DATA) += Data
-POCO_LIBS-$(PTXCONF_POCO_DATA_SQLITE) += Data/SQLite
-POCO_LIBS-$(PTXCONF_POCO_DATA_MYSQL) += Data/MySQL
-POCO_LIBS-$(PTXCONF_POCO_ZIP) += Zip
-POCO_LIBS-$(PTXCONF_POCO_MONGODB) += MongoDB
-POCO_LIBS-$(PTXCONF_POCO_REDIS) += Redis
-
-POCO_CONF_TOOL := autoconf
-POCO_CONF_OPT := \
- --config=Linux \
- --prefix=/usr \
- --no-tests \
- --no-samples \
- --omit=$(subst $(ptx/def/space),$(ptx/def/comma),$(POCO_LIBS-)) \
- $(call ptx/ifdef, PTXCONF_POCO_POQUITO,--poquito) \
- --unbundled \
- --shared
-
-POCO_MAKE_ENV := \
- $(CROSS_ENV) \
- CROSS_COMPILE=$(PTXCONF_COMPILER_PREFIX) \
- POCO_TARGET_OSNAME=Linux \
- POCO_TARGET_OSARCH=$(PTXCONF_ARCH_STRING)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/poco.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, poco)
- @$(call install_fixup, poco,PRIORITY,optional)
- @$(call install_fixup, poco,SECTION,base)
- @$(call install_fixup, poco,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, poco,DESCRIPTION,missing)
-
- @$(foreach lib, $(POCO_LIBS-y), \
- $(call install_lib, poco, 0, 0, 0644, \
- libPoco$(subst /,,$(subst _OpenSSL,,$(lib))));)
-
- @$(call install_finish, poco)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/poke.in b/rules/poke.in
new file mode 100644
index 000000000..6b1637716
--- /dev/null
+++ b/rules/poke.in
@@ -0,0 +1,17 @@
+## SECTION=editors
+
+config POKE
+ tristate
+ prompt "poke"
+ select BDWGC
+ select NCURSES
+ select READLINE
+ help
+ GNU poke is an interactive, extensible editor for binary data.
+ Not limited to editing basic entities such as bits and bytes,
+ it provides a full-fledged procedural, interactive programming
+ language designed to describe data structures and to operate
+ on them.
+ https://jemarch.net/poke
+
+# vim: ft=kconfig noet tw=72 ts=8 sw=8
diff --git a/rules/poke.make b/rules/poke.make
new file mode 100644
index 000000000..bfd67396c
--- /dev/null
+++ b/rules/poke.make
@@ -0,0 +1,71 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Alexander Dahl <ada@thorsis.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_POKE) += poke
+
+#
+# Paths and names
+#
+POKE_VERSION := 3.3
+POKE_MD5 := 25461e6e9032fa4d3ed089576990c159
+POKE := poke-$(POKE_VERSION)
+POKE_SUFFIX := tar.gz
+POKE_URL := $(call ptx/mirror, GNU, poke/$(POKE).$(POKE_SUFFIX))
+POKE_SOURCE := $(SRCDIR)/$(POKE).$(POKE_SUFFIX)
+POKE_DIR := $(BUILDDIR)/$(POKE)
+POKE_LICENSE := GPL-3.0-or-later
+POKE_LICENSE_FILES := \
+ file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://jitter/COPYING;md5=d32239bcb673463ab874e80d47fae504
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+POKE_CONF_TOOL := autoconf
+POKE_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --enable-threads=posix \
+ --disable-rpath \
+ --enable-curses \
+ --disable-nls \
+ --disable-pvm-profiling \
+ --disable-libnbd \
+ --enable-hserver \
+ --$(call ptx/endis, PTXDIST_Y2038)-year2038 \
+ --$(call ptx/endis, PTXCONF_GLOBAL_LARGE_FILE)-largefile \
+ --with-libreadline-prefix="$(PTXDIST_SYSROOT_TARGET)/usr" \
+ --with-jitter-dispatch=best \
+ --without-vimdir \
+ --without-lispdir
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/poke.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, poke)
+ @$(call install_fixup, poke,PRIORITY,optional)
+ @$(call install_fixup, poke,SECTION,base)
+ @$(call install_fixup, poke,AUTHOR,"Alexander Dahl <ada@thorsis.com>")
+ @$(call install_fixup, poke,DESCRIPTION,missing)
+
+ @$(call install_lib, poke, 0, 0, 0644, libpoke)
+ @$(call install_copy, poke, 0, 0, 0755, -, /usr/bin/poke)
+ @$(call install_tree, poke, 0, 0, -, /usr/share/poke)
+
+ @$(call install_finish, poke)
+
+ @$(call touch)
+
+# vim: ft=make noet tw=72 ts=8 sw=8
diff --git a/rules/polkit.in b/rules/polkit.in
index 6085fbf78..aecc4f2e1 100644
--- a/rules/polkit.in
+++ b/rules/polkit.in
@@ -3,13 +3,12 @@
menuconfig POLKIT
tristate
prompt "policykit-1 "
- select LIBC_CRYPT
+ select HOST_MESON
select HOST_GETTEXT
- select HOST_INTLTOOL
- select HOST_GTK_DOC
- select EXPAT
+ select LIBC_CRYPT
+ select DUKTAPE if POLKIT_POLKITD
+ select EXPAT if POLKIT_POLKITD
select GLIB
- select HOST_GLIB
select SYSTEMD if POLKIT_SYSTEMD
select SYSTEMD_LOGIND if POLKIT_SYSTEMD
select ROOTFS_VAR_LIB if RUNTIME
@@ -22,6 +21,17 @@ menuconfig POLKIT
if POLKIT
+config POLKIT_POLKITD
+ bool
+ default y
+ prompt "install polkitd"
+ help
+ Installthe daemon and helper tools and not just the libraries.
+ This is optional for use-cases with packages where the PolicyKit
+ cannot be disabled but PolicyKit is not actually used at runtime.
+
+if POLKIT_POLKITD
+
config POLKIT_SYSTEMD
bool "systemd based session tracking"
depends on INITMETHOD_SYSTEMD
@@ -29,4 +39,15 @@ config POLKIT_SYSTEMD
help
Use systemd for session tracking, else ConsoleKit is used
+comment "install options ---"
+
+config POLKIT_PKEXEC
+ bool
+ prompt "Install pkexec"
+ help
+ pkexec - Execute a command as another user or with elevated privileges.
+
+ Old and obsolete tool. Use 'sudo' for this kind of task.
+
+endif
endif
diff --git a/rules/polkit.make b/rules/polkit.make
index 4fa8d9c0e..646d6e080 100644
--- a/rules/polkit.make
+++ b/rules/polkit.make
@@ -14,39 +14,46 @@ PACKAGES-$(PTXCONF_POLKIT) += polkit
#
# Paths and names
#
-POLKIT_VERSION := 0.105
-POLKIT_MD5 := 9c29e1b6c214f0bd6f1d4ee303dfaed9
+POLKIT_VERSION := 124
+POLKIT_MD5 := 97db655618e1483706fbc764787c7d6e
POLKIT := polkit-$(POLKIT_VERSION)
POLKIT_SUFFIX := tar.gz
-POLKIT_URL := https://www.freedesktop.org/software/polkit/releases/$(POLKIT).$(POLKIT_SUFFIX)
+POLKIT_URL := https://github.com/polkit-org/polkit/archive/refs/tags/$(POLKIT_VERSION).$(POLKIT_SUFFIX)
POLKIT_SOURCE := $(SRCDIR)/$(POLKIT).$(POLKIT_SUFFIX)
POLKIT_DIR := $(BUILDDIR)/$(POLKIT)
-POLKIT_LICENSE := GPL-2.0-or-later
+POLKIT_LICENSE := LGPL-2.0-or-later
POLKIT_LICENSE_FILES := \
file://COPYING;md5=155db86cdbafa7532b41f390409283eb \
- file://src/polkitd/main.c;startline=1;endline=20;md5=4a13d29c09d1ef6fa53a5c79ac2c6a28
+ file://src/polkitbackend/polkitd.c;startline=1;endline=20;md5=4a13d29c09d1ef6fa53a5c79ac2c6a28
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-POLKIT_CONF_TOOL := autoconf
+# prepare fails when systemdsystemunitdir is specified explicitly
+POLKIT_CONF_ENV := \
+ $(CROSS_ENV) \
+ PTXDIST_PKG_CONFIG_VAR_NO_SYSROOT="systemdsystemunitdir sysusers_dir"
+
+POLKIT_CONF_TOOL := meson
POLKIT_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- $(GLOBAL_LARGE_FILE_OPTION) \
- --disable-ansi \
- --disable-verbose-mode \
- --disable-man-pages \
- --disable-gtk-doc \
- --disable-gtk-doc-html \
- --$(call ptx/endis, PTXCONF_POLKIT_SYSTEMD)-systemd \
- --disable-introspection \
- --disable-examples \
- --disable-nls \
- --with-gnu-ld \
- --with-systemdsystemunitdir=$(call ptx/ifdef,PTXCONF_POLKIT_SYSTEMD,/usr/lib/systemd/system) \
- --with-authfw=shadow \
- --with-os-type=ptxdist
+ $(CROSS_MESON_USR) \
+ -Dauthfw=shadow \
+ -Dexamples=false \
+ -Dgtk_doc=false \
+ -Dintrospection=false \
+ -Djs_engine=duktape \
+ -Dlibs-only=$(call ptx/falsetrue,PTXCONF_POLKIT_POLKITD) \
+ -Dman=false \
+ -Dos_type=redhat \
+ -Dpam_include=no-pam \
+ -Dpam_module_dir=/usr/lib/security \
+ -Dpam_prefix=/usr/lib/pam.d \
+ -Dpolkitd_uid=- \
+ -Dpolkitd_user=polkitd \
+ -Dsession_tracking=$(call ptx/ifdef,PTXCONF_POLKIT_SYSTEMD,libsystemd-login,ConsoleKit) \
+ -Dsystemdsystemunitdir= \
+ -Dtests=false
# ----------------------------------------------------------------------------
# Target-Install
@@ -61,47 +68,36 @@ $(STATEDIR)/polkit.targetinstall:
@$(call install_fixup, polkit,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
@$(call install_fixup, polkit,DESCRIPTION,missing)
-# dbus
+ @$(call install_lib, polkit, 0, 0, 0644, libpolkit-gobject-1)
+ @$(call install_lib, polkit, 0, 0, 0644, libpolkit-agent-1)
+
+ifdef PTXCONF_POLKIT_POLKITD
@$(call install_copy, polkit, 0, 0, 0644, -, \
/usr/share/dbus-1/system.d/org.freedesktop.PolicyKit1.conf)
@$(call install_copy, polkit, 0, 0, 0644, -, \
/usr/share/dbus-1/system-services/org.freedesktop.PolicyKit1.service)
-# config
- @$(call install_copy, polkit, 0, 0, 0700, /etc/polkit-1/localauthority)
- @$(call install_copy, polkit, 0, 0, 0644, -, \
- /etc/polkit-1/localauthority.conf.d/50-localauthority.conf)
- @$(call install_copy, polkit, 0, 0, 0644, -, \
- /etc/polkit-1/nullbackend.conf.d/50-nullbackend.conf)
@$(call install_copy, polkit, 0, 0, 0644, -, \
/usr/share/polkit-1/actions/org.freedesktop.policykit.policy)
+ @$(call install_alternative, polkit, 0, 0, 0644, \
+ /usr/share/polkit-1/rules.d/50-default.rules)
ifdef PTXCONF_POLKIT_SYSTEMD
@$(call install_copy, polkit, 0, 0, 0644, -, \
/usr/lib/systemd/system/polkit.service)
endif
-# libs
- @$(call install_lib, polkit, 0, 0, 0644, libpolkit-agent-1)
- @$(call install_lib, polkit, 0, 0, 0644, libpolkit-backend-1)
- @$(call install_lib, polkit, 0, 0, 0644, libpolkit-gobject-1)
-
- @$(call install_copy, polkit, 0, 0, 0644, -, \
- /usr/lib/polkit-1/extensions/libnullbackend.so)
-
-# binaries
@$(call install_copy, polkit, 0, 0, 0755, -, /usr/bin/pkaction)
@$(call install_copy, polkit, 0, 0, 0755, -, /usr/bin/pkcheck)
- @$(call install_copy, polkit, 0, 0, 0755, -, /usr/libexec/polkitd)
+ @$(call install_copy, polkit, 0, 0, 0755, -, /usr/lib/polkit-1/polkitd)
-# binaries with suid
+ifdef PTXCONF_POLKIT_PKEXEC
@$(call install_copy, polkit, 0, 0, 4755, -, /usr/bin/pkexec)
+endif
@$(call install_copy, polkit, 0, 0, 4755, -, \
- /usr/libexec/polkit-agent-helper-1)
-
-# run-time
- @$(call install_copy, polkit, 0, 0, 0700, /var/lib/polkit-1)
+ /usr/lib/polkit-1/polkit-agent-helper-1)
+endif
@$(call install_finish, polkit)
diff --git a/rules/pop3spam.make b/rules/pop3spam.make
index 3c645afde..34eb19726 100644
--- a/rules/pop3spam.make
+++ b/rules/pop3spam.make
@@ -28,13 +28,11 @@ POP3SPAM_DIR := $(BUILDDIR)/$(POP3SPAM)
# Prepare
# ----------------------------------------------------------------------------
-POP3SPAM_PATH := PATH=$(CROSS_PATH)
-POP3SPAM_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-POP3SPAM_AUTOCONF := $(CROSS_AUTOCONF_USR)
+POP3SPAM_CONF_TOOL := autoconf
+POP3SPAM_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/poppler.in b/rules/poppler.in
deleted file mode 100644
index 87e1f60c4..000000000
--- a/rules/poppler.in
+++ /dev/null
@@ -1,174 +0,0 @@
-## SECTION=multimedia_gtk
-
-menuconfig POPPLER
- tristate
- prompt "poppler "
- select HOST_CMAKE
- select FONTCONFIG
- select FREETYPE
- select LIBC_PTHREAD
- select POPPLER_DATA if POPPLER_WITH_DATA
- select GLIB if POPPLER_GLIB
- select HOST_GLIB if POPPLER_GLIB
- select GOBJECT_INTROSPECTION if POPPLER_INTROSPECTION
- select LIBPNG if POPPLER_PNG
- select LIBJPEG if POPPLER_JPEG
- select CAIRO if POPPLER_CAIRO
- select CAIRO_FREETYPE if POPPLER_CAIRO
- select ZLIB if POPPLER_ZLIB
- select LIBCURL if POPPLER_CURL
- select LCMS if POPPLER_CMS
- select QT5 if POPPLER_QT5
- select QT5_GUI if POPPLER_QT5
- select QT5_MODULE_QTBASE if POPPLER_QT5
- select QT5_MODULE_QTBASE_WIDGETS if POPPLER_QT5
- help
- Poppler is a PDF rendering library based on the xpdf-3.0 code base.
-
-if POPPLER
-
-comment "--- Install components ---"
-
-config POPPLER_BIN
- bool
- prompt "install poppler utilities"
- help
- installs command line utilies coming with poppler package, contains
- pdffonts, pdfimages, pdfinfo, pdftoabw, pdftohtml, pdftoppm, pdftops,
- pdftotext.
-
-config POPPLER_XPDF
- bool
-
-config POPPLER_WITH_DATA
- bool
- prompt "install poppler-data"
- help
- poppler-data contains the encoding files which enable poppler to
- correctly render CJK and Cyrillic.
-
-comment "--- Wrappers ---"
-
-config POPPLER_CPP
- bool
- prompt "enable CPP wrapper"
-
-config POPPLER_GLIB
- select POPPLER_CAIRO
- bool
- prompt "enable Glib wrapper"
- help
- build poppler glib wrapper.
-
-config POPPLER_INTROSPECTION
- select POPPLER_GLIB
- default GOBJECT_INTROSPECTION_HELPER
- bool
-
-config POPPLER_QT4
- bool
- prompt "enable Qt4 wrapper"
- help
- build poppler Qt4 wrapper.
-
-config POPPLER_QT5
- bool
- prompt "enable Qt5 wrapper"
- help
- build poppler Qt5 wrapper.
-
-comment "--- Rendering Backends ---"
-
-comment "at least one rendering backend should be selected"
- depends on !(POPPLER_CAIRO || POPPLER_SPLASH)
-
-config POPPLER_CAIRO
- bool
- prompt "enable cairo backend"
- help
- build cairo graphics backend
-
-config POPPLER_SPLASH
- bool
- prompt "enable Splash backend"
- help
- build the Splash graphics backend
-
-if POPPLER_SPLASH
-
-config POPPLER_SPLASH_CMYK
- bool
- prompt "enable CMYK raster support"
-
-config POPPLER_SPLASH_DOUBLE
- bool
- prompt "use double precision float arithmetic"
- help
- Use double precision floating point arithmetic in Splash backend
-
-config POPPLER_SPLASH_SINGLE
- bool
- prompt "use single precision float arithmetic"
- depends on !POPPLER_SPLASH_DOUBLE
- help
- Use single precision instead of double precision floating point
- arithmetic in Splash backend
-
-endif # POPPLER_SPLASH
-
-comment "--- Features --- "
-
-config POPPLER_PNG
- bool
- prompt "enable PNG support"
- help
- compile poppler with png support via libpng
-
-config POPPLER_JPEG
- bool
- prompt "enable JPEG support"
- help
- compile poppler with jpeg support via libjpeg
-
-config POPPLER_OPENJPEG
- bool
- depends on BROKEN
- prompt "enable JPEG2000 support"
- help
- compile poppler with jpeg2000 (JPX) support via libopenjpeg
-
-config POPPLER_TIFF
- bool
- depends on BROKEN
- prompt "enable TIFF support"
- help
- compile poppler with support for TIFF via libtiff
-
-config POPPLER_NSS
- bool
- depends on BROKEN
- prompt "enable NSS support"
- help
- compile poppler with support for signed PDFs via libnss
-
-config POPPLER_ZLIB
- bool
- prompt "enable zlib support"
- help
- compile poppler with zlib support.
-
-config POPPLER_CURL
- bool
- prompt "enable curl support"
- help
- compile poppler with libcurl support.
-
-config POPPLER_CMS
- bool
- prompt "enable color management support"
- help
- compile poppler with color management support via libcms
-
-endif
-
-# vim: ft=kconfig ts=8 noet tw=80
diff --git a/rules/poppler.make b/rules/poppler.make
deleted file mode 100644
index 90e81d0e1..000000000
--- a/rules/poppler.make
+++ /dev/null
@@ -1,128 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2007 by Luotao Fu <l.fu@pengutronix.de>
-# 2009 by Robert Schwebel
-# 2017 by Roland Hieber <r.hieber@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-# TODOs for improvement:
-# - package libnss for signature support in PDFs
-# - package libtiff for additional TIFF support
-# - runtime-test the Qt5 backend
-# - package libopenjpeg and build with --enable-libopenjpeg
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_POPPLER) += poppler
-
-#
-# Paths and names
-#
-POPPLER_VERSION := 0.80.0
-POPPLER_MD5 := 8ff9964d1fcc9c334a9c66f6f426ab9c
-POPPLER := poppler-$(POPPLER_VERSION)
-POPPLER_SUFFIX := tar.xz
-POPPLER_URL := http://poppler.freedesktop.org/$(POPPLER).$(POPPLER_SUFFIX)
-POPPLER_SOURCE := $(SRCDIR)/$(POPPLER).$(POPPLER_SUFFIX)
-POPPLER_DIR := $(BUILDDIR)/$(POPPLER)
-POPPLER_LICENSE := GPL-2.0-only OR GPL-3.0-only
-POPPLER_LICENSE_FILES := \
- file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
- file://COPYING3;md5=d32239bcb673463ab874e80d47fae504
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-POPPLER_PATH := PATH=$(CROSS_PATH)
-POPPLER_ENV := $(CROSS_ENV)
-
-#
-# CMake
-#
-POPPLER_CONF_TOOL := cmake
-POPPLER_CONF_OPT := \
- $(CROSS_CMAKE_USR) \
- -DBUILD_CPP_TESTS=NO \
- -DBUILD_GTK_TESTS=NO \
- -DBUILD_QT5_TESTS=NO \
- -DBUILD_SHARED_LIBS=ON \
- -DENABLE_CMS=$(call ptx/ifdef,PTXCONF_POPPLER_CMS,lcms2,none) \
- -DENABLE_CPP=$(call ptx/onoff,PTXCONF_POPPLER_CPP) \
- -DENABLE_DCTDECODER=$(call ptx/ifdef,PTXCONF_POPPLER_JPEG,libjpeg,none) \
- -DENABLE_GLIB=$(call ptx/onoff,PTXCONF_POPPLER_GLIB) \
- -DENABLE_GOBJECT_INTROSPECTION=$(call ptx/onoff,PTXCONF_POPPLER_INTROSPECTION) \
- -DENABLE_GTK_DOC=NO \
- -DENABLE_LIBCURL=$(call ptx/onoff,PTXCONF_POPPLER_CURL) \
- -DENABLE_LIBOPENJPEG=$(call ptx/ifdef,PTXCONF_POPPLER_OPENJPEG,openjpeg2,none) \
- -DENABLE_QT5=$(call ptx/onoff,PTXCONF_POPPLER_QT5) \
- -DENABLE_QT_STRICT_ITERATORS=ON \
- -DENABLE_SPLASH=$(call ptx/onoff,PTXCONF_POPPLER_SPLASH) \
- -DENABLE_UNSTABLE_API_ABI_HEADERS=OFF \
- -DENABLE_UTILS=$(call ptx/onoff,PTXCONF_POPPLER_BIN) \
- -DENABLE_XPDF_HEADERS=$(call ptx/onoff,PTXCONF_POPPLER_XPDF) \
- -DENABLE_ZLIB=$(call ptx/onoff,PTXCONF_POPPLER_ZLIB) \
- -DENABLE_ZLIB_UNCOMPRESS=NO \
- -DEXTRA_WARN=NO \
- -DFONT_CONFIGURATION=fontconfig \
- -DSPLASH_CMYK=$(call ptx/onoff,PTXCONF_POPPLER_SPLASH_CMYK) \
- -DTESTDATADIR=. \
- -DUSE_FLOAT=$(call ptx/onoff,PTXCONF_POPPLER_SPLASH_SINGLE) \
- -DWITH_Cairo=$(call ptx/onoff,PTXCONF_POPPLER_CAIRO) \
- -DWITH_GLIB=$(call ptx/onoff,PTXCONF_POPPLER_GLIB) \
- -DWITH_GObjectIntrospection=$(call ptx/onoff,PTXCONF_POPPLER_INTROSPECTION) \
- -DWITH_GTK=NO \
- -DWITH_Iconv=ON \
- -DWITH_JPEG=$(call ptx/onoff,PTXCONF_POPPLER_JPEG) \
- -DWITH_NSS3=$(call ptx/onoff,PTXCONF_POPPLER_NSS) \
- -DWITH_PNG=$(call ptx/onoff,PTXCONF_POPPLER_PNG) \
- -DWITH_TIFF=$(call ptx/onoff,PTXCONF_POPPLER_TIFF)
-
-ifdef PTXCONF_POPPLER_QT5
-POPPLER_COMPILE_ENV := \
- ICECC_REMOTE_CPP=0
-endif
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/poppler.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, poppler)
- @$(call install_fixup, poppler, PRIORITY, optional)
- @$(call install_fixup, poppler, SECTION, base)
- @$(call install_fixup, poppler, AUTHOR, "r.schwebel@pengutronix.de")
- @$(call install_fixup, poppler, DESCRIPTION, missing)
-
- @$(call install_lib, poppler, 0, 0, 0644, libpoppler)
-
-ifdef PTXCONF_POPPLER_BIN
- @cd $(PKGDIR)/$(POPPLER)/usr/bin/ && \
- for i in *; do\
- $(call install_copy, poppler, 0, 0, 0755, -, /usr/bin/$$i); \
- done
-endif
-ifdef PTXCONF_POPPLER_CPP
- @$(call install_lib, poppler, 0, 0, 0644, libpoppler-cpp)
-endif
-ifdef PTXCONF_POPPLER_GLIB
- @$(call install_lib, poppler, 0, 0, 0644, libpoppler-glib)
-endif
-ifdef PTXCONF_POPPLER_QT5
- @$(call install_lib, poppler, 0, 0, 0644, libpoppler-qt5)
-endif
-ifdef PTXCONF_POPPLER_INTROSPECTION
- @$(call install_copy, poppler, 0, 0, 0644, -, \
- /usr/share/gir-1.0/Poppler-0.18.gir)
- @$(call install_copy, poppler, 0, 0, 0644, -, \
- /usr/lib/girepository-1.0/Poppler-0.18.typelib)
-endif
- @$(call install_finish, poppler)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/portmap-bbinit.in b/rules/portmap-bbinit.in
deleted file mode 100644
index dfd023ebf..000000000
--- a/rules/portmap-bbinit.in
+++ /dev/null
@@ -1,8 +0,0 @@
-## SECTION=initmethod_bbinit
-
-config PORTMAP_BBINIT_LINK
- string
- depends on PORTMAP_STARTSCRIPT
- prompt "portmap"
- default ""
-
diff --git a/rules/portmap.in b/rules/portmap.in
deleted file mode 100644
index 88a6a6a9f..000000000
--- a/rules/portmap.in
+++ /dev/null
@@ -1,25 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=networking
-
-menuconfig PORTMAP
- tristate
- prompt "portmapper "
- help
- Portmap is a server that converts RPC program numbers into DARPA protocol
- port numbers. It must be running in order to make RPC calls.
-
- Its needed for at least NFS service
-
- STAGING: remove in PTXdist 2022.01.0
- Old and obsolete. Portmap has been replaced by rpcbind a long time ago.
-
-if PORTMAP
-
-config PORTMAP_STARTSCRIPT
- bool
- default y
- depends on INITMETHOD_BBINIT
- prompt "install /etc/init.d/portmap"
-
-endif
diff --git a/rules/portmap.make b/rules/portmap.make
deleted file mode 100644
index 18a7790c7..000000000
--- a/rules/portmap.make
+++ /dev/null
@@ -1,71 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2002 by Pengutronix e.K., Hildesheim, Germany
-# 2009 by Marc Kleine-Budde <mkl@pengutronix.de>
-# 2010 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_PORTMAP) += portmap
-
-#
-# Paths and names
-#
-PORTMAP_VERSION := 6.0
-PORTMAP_MD5 := ac108ab68bf0f34477f8317791aaf1ff
-PORTMAP := portmap_$(PORTMAP_VERSION)
-PORTMAP_SUFFIX := tgz
-PORTMAP_URL := http://fossies.org/linux/misc/old/portmap-$(PORTMAP_VERSION).$(PORTMAP_SUFFIX)
-PORTMAP_SOURCE := $(SRCDIR)/portmap-$(PORTMAP_VERSION).$(PORTMAP_SUFFIX)
-PORTMAP_DIR := $(BUILDDIR)/$(PORTMAP)
-PORTMAP_LICENSE := BSD-4-Clause-UC AND unknown
-PORTMAP_LICENSE_FILES := \
- file://portmap.c;startline=1;endline=32;md5=eab9bc1a44f8936c130f91f7a079ff54 \
- file://portmap.c;startline=45;endline=77;md5=031846750f4058d98079ec93d1a46d8b
-
-# ----------------------------------------------------------------------------
-# Compile
-# ----------------------------------------------------------------------------
-
-PORTMAP_ENV := $(CROSS_ENV)
-PORTMAP_PATH := PATH=$(CROSS_PATH)
-PORTMAP_MAKE_OPT := CC=$(CROSS_CC) NO_TCP_WRAPPER=yes
-
-PORTMAP_INSTALL_OPT := BASEDIR=$(PORTMAP_PKGDIR) install
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/portmap.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, portmap)
- @$(call install_fixup, portmap,PRIORITY,optional)
- @$(call install_fixup, portmap,SECTION,base)
- @$(call install_fixup, portmap,AUTHOR,"Juergen Beisert <jbeisert@netscape.net>")
- @$(call install_fixup, portmap,DESCRIPTION,missing)
-
- @$(call install_copy, portmap, 0, 0, 0755, -, /sbin/portmap)
-
- #
- # busybox init
- #
-ifdef PTXCONF_PORTMAP_STARTSCRIPT
- @$(call install_alternative, portmap, 0, 0, 0755, /etc/init.d/portmapd, n)
-
-ifneq ($(call remove_quotes,$(PTXCONF_PORTMAP_BBINIT_LINK)),)
- @$(call install_link, portmap, \
- ../init.d/portmapd, \
- /etc/rc.d/$(PTXCONF_PORTMAP_BBINIT_LINK))
-endif
-endif
- @$(call install_finish, portmap)
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/portmap.postinst b/rules/portmap.postinst
deleted file mode 100644
index 441d6ef02..000000000
--- a/rules/portmap.postinst
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-# generate inetd.conf
-if [ "$(echo $DESTDIR/etc/inetd.conf.d/*)" != "$DESTDIR/etc/inetd.conf.d/*" ]; then
- cat $DESTDIR/etc/inetd.conf.d/* > $DESTDIR/etc/inetd.conf
-fi
-
diff --git a/rules/post/dts.make b/rules/post/dts.make
deleted file mode 100644
index ffa8bf2fc..000000000
--- a/rules/post/dts.make
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2012 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# defined in post/ to make sure PTXCONF_DTC_OFTREE_DTS is fully defined
-#
-$(foreach dts, $(call remove_quotes,$(PTXCONF_DTC_OFTREE_DTS)), \
- $(eval $(IMAGEDIR)/$(call ptx/dtb, $(dts)): DTB_DTS=$(dts)))
-
-# vim: syntax=make
diff --git a/rules/post/dump.make b/rules/post/dump.make
deleted file mode 100644
index 6959fc99b..000000000
--- a/rules/post/dump.make
+++ /dev/null
@@ -1,66 +0,0 @@
-# -*-makefile-*-
-
-ifneq ($(filter dump,$(MAKECMDGOALS)),)
-# ----------------------------------------------------------------------------
-# environment export to plugins and shell scripts
-# ----------------------------------------------------------------------------
-# If you run 'ptxdist make dump', you will get two files:
-# $(STATEDIR)/environment.symbols <- A list of all internal Variable
-# Symbols in the main PTXdist Makefile
-# $(STATEDIR)/environment.bash <- A selection of Variables in bash
-# syntax. Please adjust M2B_DUMP_VARIABLES
-# and M2B_DUMP_SUFFIXES to your needs.
-# ----------------------------------------------------------------------------
-#
-# dump all internal make symbols
-#
-
-#
-# Make to bash export (M2B):
-#
-M2B=$(STATEDIR)/environment
-
-#
-# Select make variables for export to shell (by full name)
-#
-M2B_DUMP_VARIABLES := \
- PTXCONF_CONFIGFILE_VERSION \
- PTXCONFIG PTXCONF_SYSROOT_TARGET PTXCONF_PROJECT PTXCONF_PROJECT_VERSION \
- PTXDIST_WORKSPACE PTXDIST_TOPDIR \
- PTXDIST PTXDIST_VERSION_FULL \
- RULESDIR SCRIPTSDIR STATEDIR SYSROOT WORKDIR \
- PACKAGES- PACKAGES-y PACKAGES-m
-
-#
-# Select make variables for export to shell (by suffix)
-#
-M2B_DUMP_SUFFIXES := _URL _DIR _VERSION _SOURCE
-
-$(M2B).symbols:
- @echo "$(.VARIABLES)" \
- | sed s/\ /\\n/g \
- | egrep -v "[^A-Z0-9_-]|^_$$" \
- | sort -u > $@
-
-dump-symbols: $(M2B).symbols
-
-#
-# dump selected symbols with value
-#
-packages := $(PACKAGES-) $(PACKAGES-y) $(PACKAGES-m)
-prefixes := $(shell echo $(packages) | tr "a-z-" "A-Z_")
-symbols := $(foreach prefix,$(prefixes),$(foreach suffix,$(M2B_DUMP_SUFFIXES),$(prefix)$(suffix)))
-allsymbols := $(prefixes) $(shell echo $(symbols) | tr "a-z-" "A-Z_") $(M2B_DUMP_VARIABLES)
-
-$(addprefix dump-,$(sort $(allsymbols))): $(M2B).symbols
- @echo 'M2B_$(call remove_quotes,$(*))="$(call remove_quotes,$($(*)))"' >> $(M2B).bash.tmp
- @echo '$(call remove_quotes,$(*)) $(call remove_quotes,$($(*)))' >> $(M2B).tmp
-
-dump: $(addprefix dump-,$(allsymbols))
- @mv $(M2B).bash.tmp $(M2B).bash
- @mv $(M2B).tmp $(M2B)
-
-endif
-
-# vim600:set foldmethod=marker:
-# vim600:set syntax=make:
diff --git a/rules/post/export_src.make b/rules/post/export_src.make
index 9697a5ad3..7c250bb34 100644
--- a/rules/post/export_src.make
+++ b/rules/post/export_src.make
@@ -3,17 +3,17 @@
# input: source=PACKAGE_NAME_SOURCE, output: full path to the source archive
# [HOST|CROSS]_FOO_SOURCE may be empty; try FOO_SOURCE in that case
define ptx/export/get_source
-$(if $($(source)),$($(source)),$($(subst CROSS_,,$(subst HOST_,,$(source)))))
+$(if $($(1)),$($(1)),$($(subst CROSS_,,$(subst HOST_,,$(1)))))
endef
# iterate over $(PACKAGES_SELECTED) "bash busybox" ->
-# convert to "BASH_SOURCE BUSYBOX_SOURCE"
-_ptx_export_packages := $(foreach source,$(PTX_PACKAGES_SELECTED),$(PTX_MAP_TO_PACKAGE_$(source))_SOURCES)
+# convert to "BASH BUSYBOX" including all sub-packages
+_ptx_export_packages := $(foreach pkg,$(PTX_PACKAGES_SELECTED),$($(PTX_MAP_TO_PACKAGE_$(pkg))_PARTS))
-# iterate over $(_ptx_export_packages) "BASH_SOURCES BUSYBOX_SOURCES" ->
+# iterate over $(_ptx_export_packages) "BASH BUSYBOX" ->
# convert to "/path/to/bash.tar.bz2 /path/to/busybox.tar.bz2"
# remove duplicates
-_ptx_export_packages_src := $(sort $(foreach source,$(_ptx_export_packages),$(ptx/export/get_source)))
+_ptx_export_packages_src := $(sort $(foreach source,$(_ptx_export_packages),$(call ptx/export/get_source,$(source)_SOURCE)))
# iterate over $(_ptx_export_packages_src) "/path/to/bash.tar.bz2 /path/to/busybox.tar.bz2" ->
# convert to "/export/bash.tar.bz2 /export/busybox.tar.bz2"
diff --git a/rules/post/install.make b/rules/post/install.make
index d718e68e0..67c79de7f 100644
--- a/rules/post/install.make
+++ b/rules/post/install.make
@@ -179,8 +179,9 @@ install_archive = \
GRP=$(strip $(3)); \
DIR=$(strip $(4)); \
DST=$(strip $(5)); \
+ STRIP=$(strip $(6)); \
$(call install_check, install_archive); \
- echo "ptxd_install_archive '$$DIR' '$$DST' '$$OWN' '$$GRP'" >> "$(STATEDIR)/$$XPKG.cmds"
+ echo "ptxd_install_archive '$$DIR' '$$DST' '$$OWN' '$$GRP' '$$STRIP'" >> "$(STATEDIR)/$$XPKG.cmds"
#
# install_glob
@@ -232,9 +233,9 @@ install_spec = \
#
# install_package
#
-# Installs usefull files and directories in an archive with user/group ownership and
+# Installs useful files and directories in an archive with user/group ownership and
# permissions via fakeroot.
-# Usefull means binaries, libs + links, etc.
+# Useful means binaries, libs + links, etc.
#
#
# $1: xpkg label
diff --git a/rules/post/ptx_oldconfig.make b/rules/post/ptx_oldconfig.make
index c3db9d18c..bcded9d80 100644
--- a/rules/post/ptx_oldconfig.make
+++ b/rules/post/ptx_oldconfig.make
@@ -3,7 +3,7 @@
#
# ptx_oldconfig
#
-# execute "make oldconfig" on a programm. Mainly used for
+# execute "make oldconfig" on a program. Mainly used for
# kconfig based packages.
#
define ptx/oldconfig
@@ -11,4 +11,9 @@ define ptx/oldconfig
$(filter-out --output-sync%,$($(strip $(1))_MAKEVARS) $($(strip $(1))_MAKE_OPT)) oldconfig)
endef
+all_oldconfig: $(addsuffix _oldconfig,$(PTX_PACKAGES_SELECTED))
+
+%_oldconfig:
+ @:
+
# vim: syntax=make
diff --git a/rules/post/ptxd_make_cmake_toolchain.make b/rules/post/ptxd_make_cmake_toolchain.make
index 95ca14c87..0178daa09 100644
--- a/rules/post/ptxd_make_cmake_toolchain.make
+++ b/rules/post/ptxd_make_cmake_toolchain.make
@@ -16,4 +16,9 @@ $(PTXDIST_CMAKE_TOOLCHAIN_HOST):
PTXDIST_SYSROOT_HOST="${PTXDIST_SYSROOT_HOST}" \
ptxd_make_cmake_toolchain_host "${@}"
+$(PTXDIST_CMAKE_TOOLCHAIN_CROSS):
+ @$(HOST_ENV) \
+ PTXDIST_SYSROOT_CROSS="${PTXDIST_SYSROOT_CROSS}" \
+ ptxd_make_cmake_toolchain_cross "${@}"
+
# vim: syntax=make
diff --git a/rules/post/ptxd_make_debug.make b/rules/post/ptxd_make_debug.make
new file mode 100644
index 000000000..1779f7589
--- /dev/null
+++ b/rules/post/ptxd_make_debug.make
@@ -0,0 +1,15 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+dump-hash-%:
+ @cat $(PTXDIST_TEMPDIR)/pkghash-$(PTX_MAP_TO_PACKAGE_$*)
+
+dump-srchash-%:
+ @cat $(PTXDIST_TEMPDIR)/pkghash-$(PTX_MAP_TO_PACKAGE_$*)_EXTRACT
+
+# vim: syntax=make
diff --git a/rules/post/ptxd_make_image_common.make b/rules/post/ptxd_make_image_common.make
index 3ad573700..aefff54e9 100644
--- a/rules/post/ptxd_make_image_common.make
+++ b/rules/post/ptxd_make_image_common.make
@@ -19,7 +19,8 @@ world/image/env/impl = \
image_pkgs="$(call ptx/escape,$($(1)_PKGS))" \
image_files="$(call ptx/escape,$($(1)_FILES))" \
image_image="$(call ptx/escape,$($(1)_IMAGE))" \
- image_label="$(call ptx/escape,$($(1)_LABEL))"
+ image_label="$(call ptx/escape,$($(1)_LABEL))" \
+ image_reports="$(call ptx/escape,$($(1)_REPORTS))"
world/image/env = \
$(call world/image/env/impl,$(strip $(1)))
diff --git a/rules/post/ptxd_make_meson_toolchain.make b/rules/post/ptxd_make_meson_toolchain.make
index ba31cf69c..bda455ccc 100644
--- a/rules/post/ptxd_make_meson_toolchain.make
+++ b/rules/post/ptxd_make_meson_toolchain.make
@@ -9,6 +9,7 @@
$(PTXDIST_MESON_CROSS_FILE):
@$(CROSS_ENV) \
PTXCONF_ARCH_STRING=${PTXCONF_ARCH_STRING} \
+ PTXCONF_RUST_TARGET=$(PTXCONF_RUST_TARGET) \
ENDIAN=$(call ptx/ifdef, PTXCONF_ENDIAN_LITTLE, little, big) \
ptxd_make_meson_cross_file "${@}"
diff --git a/rules/post/ptxd_make_report.make b/rules/post/ptxd_make_report.make
new file mode 100644
index 000000000..eecd2a577
--- /dev/null
+++ b/rules/post/ptxd_make_report.make
@@ -0,0 +1,38 @@
+#!/bin/bash
+#
+# Copyright (C) 2022 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+ptx/report-env = \
+ $(image/env) \
+ ptx_report_target="$(strip $(1))" \
+ ptx_packages_selected="$(filter-out $(IMAGE_PACKAGES),$(PTX_PACKAGES_SELECTED))" \
+ ptx_image_packages="$(IMAGE_PACKAGES)"
+
+PHONY += full-bsp-report
+full-bsp-report: $(RELEASEDIR)/full-bsp-report.yaml
+
+#
+# The full report needs the 'report' stage for license files and the
+# targetinstall stage for the list of ipkgs
+#
+$(RELEASEDIR)/full-bsp-report.yaml: \
+ $(addprefix $(STATEDIR)/,$(addsuffix .report,$(PTX_PACKAGES_SELECTED))) \
+ $(addprefix $(STATEDIR)/,$(addsuffix .targetinstall,$(PTX_PACKAGES_SELECTED)))
+ @$(call targetinfo)
+ @$(call ptx/report-env, $@) ptxd_make_full_bsp_report
+ @$(call finish)
+
+PHONY += fast-bsp-report
+fast-bsp-report: $(RELEASEDIR)/fast-bsp-report.yaml
+
+
+$(RELEASEDIR)/fast-bsp-report.yaml: $(addprefix $(STATEDIR)/,$(addsuffix .fast-report,$(PTX_PACKAGES_SELECTED)))
+ @$(call targetinfo)
+ @$(call ptx/report-env, $@) ptxd_make_fast_bsp_report
+ @$(call finish)
+
+# vim: syntax=make
diff --git a/rules/post/ptxd_make_world_cargo.make b/rules/post/ptxd_make_world_cargo.make
new file mode 100644
index 000000000..806b5ca40
--- /dev/null
+++ b/rules/post/ptxd_make_world_cargo.make
@@ -0,0 +1,18 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+world/cargo-sync = \
+ $(call world/env, $(1)) \
+ ptxd_make_world_cargo_sync
+
+$(STATEDIR)/%.cargosync:
+ @$(call targetinfo)
+ @$(call world/cargo-sync, $(PTX_MAP_TO_PACKAGE_$(*)))
+ @$(call finish)
+
+# vim: syntax=make:
diff --git a/rules/post/ptxd_make_world_clean.make b/rules/post/ptxd_make_world_clean.make
index 30236e964..b5e063feb 100644
--- a/rules/post/ptxd_make_world_clean.make
+++ b/rules/post/ptxd_make_world_clean.make
@@ -28,4 +28,11 @@ world/clean = \
clean_pkg = \
$(call world/clean, $(1))
+#
+# image-clean
+#
+world/image-clean = \
+ $(call world/image/env, $(1)) \
+ ptxd_make_world_image_clean
+
# vim: syntax=make
diff --git a/rules/post/ptxd_make_world_common.make b/rules/post/ptxd_make_world_common.make
index e5cf50214..046a52723 100644
--- a/rules/post/ptxd_make_world_common.make
+++ b/rules/post/ptxd_make_world_common.make
@@ -37,16 +37,19 @@ ptx/env = \
\
ptx_path_cross="$(call ptx/escape,$(HOST_CROSS_PATH))" \
ptx_conf_env_cross="$(call ptx/escape,$(HOST_CROSS_ENV))" \
+ ptx_conf_opt_cmake_cross="$(call ptx/escape,$(HOST_CROSS_CMAKE_OPT))" \
ptx_conf_opt_autoconf_cross="$(call ptx/escape,$(HOST_CROSS_AUTOCONF))" \
ptx_conf_opt_autoconf_cross_sysroot="$(call ptx/escape,$(HOST_CROSS_AUTOCONF_SYSROOT))"\
\
ptx_python_target="$(call ptx/escape,$(CROSS_PYTHON))" \
ptx_python3_target="$(call ptx/escape,$(CROSS_PYTHON3))" \
ptx_install_opt_python_target="$(call ptx/escape,$(CROSS_PYTHON_INSTALL))"\
+ ptx_python3_sitepackages="$(call ptx/escape,$(PYTHON3_SITEPACKAGES))" \
\
ptx_python_host="$(call ptx/escape,$(HOSTPYTHON))" \
ptx_python3_host="$(call ptx/escape,$(HOSTPYTHON3))" \
ptx_install_opt_python_host="$(call ptx/escape,$(HOST_PYTHON_INSTALL))" \
+ ptx_install_opt_python_host_system="$(call ptx/escape,$(HOST_SYSTEM_PYTHON_INSTALL))"\
\
ptx_conf_opt_meson_target="$(call ptx/escape,$(CROSS_MESON_USR))" \
ptx_conf_env_meson_target="$(call ptx/escape,$(CROSS_MESON_ENV))" \
@@ -54,6 +57,11 @@ ptx/env = \
ptx_conf_opt_meson_host="$(call ptx/escape,$(HOST_MESON_OPT))" \
ptx_conf_env_meson_host="$(call ptx/escape,$(HOST_ENV))" \
\
+ ptx_make_opt_cargo_target="$(call ptx/escape,$(CROSS_CARGO_OPT))" \
+ ptx_make_env_cargo_target="$(call ptx/escape,$(CROSS_CARGO_ENV))" \
+ \
+ ptx_make_opt_cargo_host="$(call ptx/escape,$(HOST_CARGO_OPT))" \
+ \
ptx_xpkg_extra_args=$(PTXCONF_IMAGE_XPKG_EXTRA_ARGS)
world/env/impl = \
@@ -67,18 +75,23 @@ world/env/impl = \
pkg_run_deps_all="$(call ptx/escape,$(PTX_MAP_R_dep_all_$(1)))" \
pkg_license_files="$(call ptx/escape,$($(1)_LICENSE_FILES))" \
pkg_makefile="$(call ptx/escape,$($(1)_MAKEFILE))" \
+ pkg_extra_makefiles="$(call ptx/escape,$($(1)_EXTRA_MAKEFILES))" \
pkg_infile="$(call ptx/escape,$($(1)_INFILE))" \
\
+ pkg_PKG="$(call ptx/escape,$(1))" \
pkg_pkg="$(call ptx/escape,$($(1)))" \
pkg_version="$(call ptx/escape,$($(1)_VERSION))" \
pkg_config="$(call ptx/escape,$($(1)_CONFIG))" \
pkg_ref_config="$(call ptx/escape,$($(1)_REF_CONFIG))" \
+ pkg_cargo_lock="$(call ptx/escape,$($(1)_CARGO_LOCK))" \
+ pkg_cargo_lock_md5="$(call ptx/escape,$($(1)_CARGO_LOCK_MD5))" \
pkg_path="$(call ptx/escape,$($(1)_PATH))" \
pkg_patch_series="$(call ptx/escape,$(call remove_quotes, $(PTXCONF_$(strip $(1))_SERIES)))"\
pkg_patch_dir="$(call ptx/escape,$($(1)_PATCH_DIR))" \
+ pkg_parts="$(call ptx/escape,$($(1)_PARTS))" \
pkg_src="$(call ptx/escape,$($(1)_SOURCE))" \
pkg_srcs="$(call ptx/escape,$($(1)_SOURCES))" \
- pkg_md5s="$(call ptx/escape,$(foreach s,$($(1)_SOURCES),$($($(s))_MD5):))"\
+ pkg_md5s="$(call ptx/escape,$(foreach s,$($(1)_PARTS),$($(s)_MD5):))" \
pkg_md5="$(call ptx/escape,$($(1)_MD5))" \
pkg_url="$(call ptx/escape,$($(1)_URL))" \
pkg_cfghash="$(call ptx/escape,$($(1)_CFGHASH))" \
@@ -87,6 +100,7 @@ world/env/impl = \
pkg_dir="$(call ptx/escape,$($(1)_DIR))" \
pkg_subdir="$(call ptx/escape,$($(1)_SUBDIR))" \
pkg_strip_level="$(call ptx/escape,$($(1)_STRIP_LEVEL))" \
+ pkg_src_filter="$(call ptx/escape,$($(1)_SRC_FILTER))" \
\
pkg_tags_opt="$(call ptx/escape,$($(1)_TAGS_OPT))" \
\
@@ -95,6 +109,7 @@ world/env/impl = \
\
pkg_wrapper_blacklist="$(call ptx/escape,$($(1)_WRAPPER_BLACKLIST))" \
pkg_flags_blacklist="$(call ptx/escape,$($(1)_FLAGS_BLACKLIST))" \
+ pkg_wrapper_accept_paths="$(call ptx/escape,$($(1)_WRAPPER_ACCEPT_PATHS))"\
\
pkg_cppflags="$(call ptx/escape,$($(1)_CPPFLAGS))" \
pkg_cflags="$(call ptx/escape,$($(1)_CFLAGS))" \
diff --git a/rules/post/ptxd_make_world_dtb.make b/rules/post/ptxd_make_world_dtb.make
new file mode 100644
index 000000000..37468c0be
--- /dev/null
+++ b/rules/post/ptxd_make_world_dtb.make
@@ -0,0 +1,19 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2020 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+world/dtb/env = \
+ $(call world/env, $(1)) \
+ pkg_dts_path="$($(1)_DTS_PATH)" \
+ pkg_dts="$($(1)_DTS)" \
+ pkg_arch="$(GENERIC_KERNEL_ARCH)"
+
+world/dtb = \
+ $(call world/dtb/env,$(strip $(1))) \
+ ptxd_make_world_dtb
+
+# vim: syntax=make
diff --git a/rules/post/ptxd_make_world_dtbo.make b/rules/post/ptxd_make_world_dtbo.make
new file mode 100644
index 000000000..e484f35c5
--- /dev/null
+++ b/rules/post/ptxd_make_world_dtbo.make
@@ -0,0 +1,22 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2020 by Michael Tretter <m.tretter@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+world/dtbo/env = \
+ $(call world/env, $(1)) \
+ pkg_dtso_path="$($(1)_DTSO_PATH)" \
+ pkg_dtso="$($(1)_DTSO)" \
+ pkg_dtbo_dir="$($(1)_DTBO_DIR)" \
+ pkg_kernel_dir="$($(1)_KERNEL_DIR)" \
+ pkg_kernel_build_dir="$($(1)_KERNEL_DIR)" \
+ pkg_arch="$(GENERIC_KERNEL_ARCH)"
+
+world/dtbo = \
+ $(call world/dtbo/env,$(strip $(1))) \
+ ptxd_make_world_dtbo
+
+# vim: syntax=make
diff --git a/rules/post/ptxd_make_world_extract.make b/rules/post/ptxd_make_world_extract.make
index 4d1b717e3..6dde7e6d8 100644
--- a/rules/post/ptxd_make_world_extract.make
+++ b/rules/post/ptxd_make_world_extract.make
@@ -30,6 +30,10 @@ extract = \
pkg_deprecated_extract_dir="$(call ptx/escape, $(strip $(2)))" \
ptxd_make_world_extract
+extract-all = \
+ $(foreach part, $($(strip $(1))_PARTS), \
+ $(call extract, $(part))$(ptx/nl))
+
world/patchin/post = \
$(call world/env, $(1)) \
ptxd_make_world_patchin_post
@@ -37,7 +41,7 @@ world/patchin/post = \
$(STATEDIR)/%.extract:
@$(call targetinfo)
@$(call clean, $($(PTX_MAP_TO_PACKAGE_$(*))_DIR))
- @$(call extract, $(PTX_MAP_TO_PACKAGE_$(*)))
+ @$(call extract-all, $(PTX_MAP_TO_PACKAGE_$(*)))
@$(call patchin, $(PTX_MAP_TO_PACKAGE_$(*)), $($(PTX_MAP_TO_PACKAGE_$(*))_DIR))
@$(call touch)
diff --git a/rules/post/ptxd_make_world_fonts.make b/rules/post/ptxd_make_world_fonts.make
index f63d5913c..7542dbff8 100644
--- a/rules/post/ptxd_make_world_fonts.make
+++ b/rules/post/ptxd_make_world_fonts.make
@@ -15,13 +15,7 @@ world/install-fonts = \
install -m 755 -d $${PKGFONTDIR} && \
find $${DIR} -name "$${FILTER}" | \
while read file; do \
- install -m 644 $${file} $${PKGFONTDIR} && \
- if [ "$(PTXCONF_XORG_FONTS_QT4_LINKS)" = "y" ]; then \
- name=$$(basename $${file}) && \
- install -m 755 -d $${PKGDIR}/usr/lib/fonts && \
- ln -s ../../..$($(strip $(1)_FONTDIR))/$${name} \
- $${PKGDIR}/usr/lib/fonts/$${name} || break; \
- fi; \
+ install -m 644 $${file} $${PKGFONTDIR} || break; \
done && \
mkfontdir $${PKGFONTDIR} && \
mkfontscale $${PKGFONTDIR}
diff --git a/rules/post/ptxd_make_world_get.make b/rules/post/ptxd_make_world_get.make
index 6ec369a75..3cbdf41b0 100644
--- a/rules/post/ptxd_make_world_get.make
+++ b/rules/post/ptxd_make_world_get.make
@@ -21,21 +21,12 @@ $(call remove_quotes, $(PTXCONF_PROJECT_DEVPKGDIR))/%-dev.tar.gz:
@$(call getdev, $@)
endif
-#
-# Use the current package for the primary source file.
-# This avoids strange effects when multiple packages share a source file.
-# For anything else $($(src)) is special and must be used.
-#
-define _ptx_source_to_pkg
-$(if $(filter $($(PTX_MAP_TO_PACKAGE_$(1))_SOURCE),$(2)),$(PTX_MAP_TO_PACKAGE_$(1)),$($(2)))
-endef
-
$(STATEDIR)/%.get:
@$(call targetinfo)
- @$(foreach src,$($(PTX_MAP_TO_PACKAGE_$(*))_SOURCES), \
- $(call world/get, $(call _ptx_source_to_pkg,$(*),$(src)))$(ptx/nl))
- @$(foreach src,$($(PTX_MAP_TO_PACKAGE_$(*))_SOURCES), \
- $(call world/check_src, $(call _ptx_source_to_pkg,$(*),$(src)))$(ptx/nl))
+ @$(foreach part,$($(PTX_MAP_TO_PACKAGE_$(*))_PARTS), \
+ $(call world/get, $(part))$(ptx/nl))
+ @$(foreach part,$($(PTX_MAP_TO_PACKAGE_$(*))_PARTS), \
+ $(call world/check_src, $(part))$(ptx/nl))
@$(call touch)
world/get = \
@@ -49,8 +40,8 @@ world/check_src = \
$(STATEDIR)/%.urlcheck:
@$(call targetinfo)
- @$(foreach src,$($(PTX_MAP_TO_PACKAGE_$(*))_SOURCES), \
- $(call world/urlcheck, $(call _ptx_source_to_pkg,$(*),$(src)))$(ptx/nl))
+ @$(foreach part,$($(PTX_MAP_TO_PACKAGE_$(*))_PARTS), \
+ $(call world/urlcheck, $(part))$(ptx/nl))
@$(call touch)
world/urlcheck = \
diff --git a/rules/post/ptxd_make_world_inject.make b/rules/post/ptxd_make_world_inject.make
new file mode 100644
index 000000000..b7d28e92f
--- /dev/null
+++ b/rules/post/ptxd_make_world_inject.make
@@ -0,0 +1,19 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Michael Riesch <michael.riesch@wolfvision.net>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+world/inject/env = \
+ $(call world/env, $(1)) \
+ pkg_inject_path="$($(1)_INJECT_PATH)" \
+ pkg_inject_files="$($(1)_INJECT_FILES)" \
+ pkg_source="$($(1)_DIR)"
+
+world/inject = \
+ $(call world/inject/env,$(strip $(1))) \
+ ptxd_make_world_inject
+
+# vim: syntax=make
diff --git a/rules/post/ptxd_make_world_install.make b/rules/post/ptxd_make_world_install.make
index 7e971b425..0c28d6a6c 100644
--- a/rules/post/ptxd_make_world_install.make
+++ b/rules/post/ptxd_make_world_install.make
@@ -34,19 +34,7 @@ world/install.post = \
$(call world/env, $1) \
ptxd_make_world_install_post
-#
-# Perform standard install actions
-#
-# $1: label of the packet
-# $2: optional: alternative directory
-# $3: optional: "h" = install as a host tool
-# $4: optional: args to pass to make install call
-#
-install = \
- pkg_deprecated_install_builddir="$(call ptx/escape, $(2))" \
- pkg_deprecated_install_hosttool="$(call ptx/escape, $(3))" \
- pkg_deprecated_install_opt="$(call ptx/escape, $(4))" \
- $(call world/install, $(1))
+install = ptxd_bailout "install is gone, use world/install instead"
$(STATEDIR)/%.install:
@$(call targetinfo)
diff --git a/rules/post/ptxd_make_world_license.make b/rules/post/ptxd_make_world_license.make
index b31b0de33..33c8c9103 100644
--- a/rules/post/ptxd_make_world_license.make
+++ b/rules/post/ptxd_make_world_license.make
@@ -6,10 +6,15 @@
# see the README file.
#
+world/license-part = \
+ $(call world/env, $(1)) \
+ ptxd_make_world_report_yaml_fragment
+
#
# world/license
#
world/license = \
+ $(foreach part, $($(strip $(1))_PARTS),$(call world/license-part,$(part))$(ptx/nl)) \
$(call world/env, $(1)) \
ptxd_make_world_license
@@ -30,6 +35,30 @@ $(STATEDIR)/%.report:
@$(call world/license, $(PTX_MAP_TO_PACKAGE_$(*)))
@$(call touch)
+#
+# world/fast-report
+#
+world/fast-report = \
+ $(call world/env, $(1)) \
+ ptxd_make_world_fast_report
+
+#
+# image/fast-report
+#
+image/fast-report = \
+ $(call world/image/env, $(1)) \
+ ptxd_make_world_fast_report
+
+$(STATEDIR)/image-%.fast-report:
+ @$(call targetinfo)
+ @$(call image/fast-report, $(PTX_MAP_TO_PACKAGE_image-$(*)))
+ @$(call touch)
+
+$(STATEDIR)/%.fast-report:
+ @$(call targetinfo)
+ @$(call world/fast-report, $(PTX_MAP_TO_PACKAGE_$(*)))
+ @$(call touch)
+
# create a "release" of all required information including licenses, sources and patches
world/release = \
diff --git a/rules/post/ptxd_make_world_nested.make b/rules/post/ptxd_make_world_nested.make
new file mode 100644
index 000000000..70f568d78
--- /dev/null
+++ b/rules/post/ptxd_make_world_nested.make
@@ -0,0 +1,15 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+world/nested = \
+ +$(call world/env, $(1)) \
+ pkg_workspace="$(call ptx/escape,$($(strip $(1))_WORKSPACE))" \
+ ptxd_make_nested_ptxdist $(2)
+
+
+# vim: syntax=make:
diff --git a/rules/post/ptxd_make_world_prepare.make b/rules/post/ptxd_make_world_prepare.make
index a91f00b8a..1a0556a84 100644
--- a/rules/post/ptxd_make_world_prepare.make
+++ b/rules/post/ptxd_make_world_prepare.make
@@ -6,6 +6,10 @@
# see the README file.
#
+world/compile-commands = \
+ $(call world/env, $(1)) \
+ ptxd_make_world_compile_commands $(2)
+
world/cfghash = \
+$(call world/env, $1) \
ptxd_make_world_hash cfghash
diff --git a/rules/post/ptxd_make_world_report.make b/rules/post/ptxd_make_world_report.make
new file mode 100644
index 000000000..b939a22c5
--- /dev/null
+++ b/rules/post/ptxd_make_world_report.make
@@ -0,0 +1,44 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# image/reports
+#
+image/reports = \
+ $(call world/image/env,$(1)) \
+ ptxd_make_image_reports
+
+$(STATEDIR)/image-%.reports: $(RELEASEDIR)/full-bsp-report.yaml
+ @$(call targetinfo)
+ @$(call image/reports, $(PTX_MAP_TO_PACKAGE_image-$(*)))
+ @$(call touch)
+
+define _generate_report_impl
+$(strip $(if $($(1)_PKGS),$(if $(filter NO,$($(1)_REPORTS)),,y)))
+endef
+
+define _generate_report
+$(strip $(call _generate_report_impl,$(PTX_MAP_TO_PACKAGE_$(strip $(1)))))
+endef
+
+PTX_IMAGES_REPORT += $(strip $(foreach image,$(IMAGE_PACKAGES),$(if $(call _generate_report,$(image)),$(image))))
+
+$(if $(PTXDIST_OVERRIDE_REPORTS), \
+$(foreach image,$(PTX_IMAGES_REPORT), \
+$(eval $(PTX_MAP_TO_PACKAGE_$(image))_REPORTS := $(PTXDIST_OVERRIDE_REPORTS)) \
+))
+
+PTXDIST_DEFAULT_REPORTS ?= license-compliance
+
+$(foreach image,$(PTX_IMAGES_REPORT), \
+$(eval $(PTX_MAP_TO_PACKAGE_$(image))_REPORTS ?= $(PTXDIST_DEFAULT_REPORTS)) \
+)
+
+image-reports: $(addprefix $(STATEDIR)/,$(addsuffix .reports,$(PTX_IMAGES_REPORT)))
+
+# vim: syntax=make
diff --git a/rules/post/ptxd_make_world_targetinstall.make b/rules/post/ptxd_make_world_targetinstall.make
index d199c2280..8c55671ce 100644
--- a/rules/post/ptxd_make_world_targetinstall.make
+++ b/rules/post/ptxd_make_world_targetinstall.make
@@ -14,4 +14,16 @@ $(STATEDIR)/%.targetinstall.post:
@$(call targetinfo)
@$(call touch)
+ptx/image-install = \
+ $(call world/env, $(1)) \
+ pkg_file="$(strip $(2))" \
+ pkg_image="$(strip $(3))" \
+ ptxd_make_image_install
+
+ptx/image-install-link = \
+ $(call world/env, $(1)) \
+ pkg_file="$(strip $(2))" \
+ pkg_image="$(strip $(3))" \
+ ptxd_make_image_install_link
+
# vim: syntax=make
diff --git a/rules/post/ptxd_make_xpkg_common.make b/rules/post/ptxd_make_xpkg_common.make
index 30c06b393..ee2e74f25 100644
--- a/rules/post/ptxd_make_xpkg_common.make
+++ b/rules/post/ptxd_make_xpkg_common.make
@@ -14,6 +14,7 @@
xpkg/env/impl = \
$(call world/env, $(2)) \
CROSS_STRIP="$(call ptx/escape,$(CROSS_STRIP))" \
+ CROSS_NM="$(call ptx/escape,$(CROSS_NM))" \
CROSS_OBJCOPY="$(call ptx/escape,$(CROSS_OBJCOPY))" \
CROSS_READELF="$(call ptx/escape,$(CROSS_READELF))" \
pkg_xpkg="$(call ptx/escape,$(1))" \
diff --git a/rules/post/virtual.make b/rules/post/virtual.make
index 609fd700d..a27371e95 100644
--- a/rules/post/virtual.make
+++ b/rules/post/virtual.make
@@ -29,8 +29,8 @@ ifdef PTXCONF_HOST_DUMMY_INSTALL_INFO
$(STATEDIR)/virtual-host-tools.install: $(STATEDIR)/host-dummy-install-info.install.post
endif
-ifdef PTXCONF_HOST_PKG_CONFIG
-$(STATEDIR)/virtual-host-tools.install: $(STATEDIR)/host-pkg-config.install.post
+ifdef PTXCONF_HOST_PKGCONF
+$(STATEDIR)/virtual-host-tools.install: $(STATEDIR)/host-pkgconf.install.post
endif
ifdef PTXCONF_HOST_CHRPATH
diff --git a/rules/postgresql.make b/rules/postgresql.make
index 7f4643683..b7ce0c70a 100644
--- a/rules/postgresql.make
+++ b/rules/postgresql.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_POSTGRESQL) += postgresql
#
# Paths and names
#
-POSTGRESQL_VERSION := 11.5
-POSTGRESQL_MD5 := 580da94f6d85046ff2a228785ab2cc89
+POSTGRESQL_VERSION := 13.3
+POSTGRESQL_MD5 := edf0e016fc53025bcabc7e793920f1c1
POSTGRESQL := postgresql-$(POSTGRESQL_VERSION)
POSTGRESQL_SUFFIX := tar.bz2
POSTGRESQL_URL := https://ftp.postgresql.org/pub/source/v$(POSTGRESQL_VERSION)/$(POSTGRESQL).$(POSTGRESQL_SUFFIX)
@@ -42,7 +42,6 @@ POSTGRESQL_CONF_OPT := \
--disable-rpath \
--enable-spinlocks \
--enable-atomics \
- --enable-strong-random \
--disable-debug \
--disable-profiling \
--disable-coverage \
@@ -52,8 +51,6 @@ POSTGRESQL_CONF_OPT := \
--disable-cassert \
--enable-thread-safety \
--enable-largefile \
- --disable-float4-byval \
- --disable-float8-byval \
--without-llvm \
--without-icu \
--without-tcl \
diff --git a/rules/powertop.in b/rules/powertop.in
index 2b6b3b8aa..3418bef1b 100644
--- a/rules/powertop.in
+++ b/rules/powertop.in
@@ -3,6 +3,8 @@
menuconfig POWERTOP
tristate
prompt "powertop "
+ select HOST_GETTEXT
+ select HOST_AUTOTOOLS_AUTOCONF_ARCHIVE
select NCURSES
select LIBNL3
select LIBC_RESOLV
@@ -37,5 +39,5 @@ config POWERTOP_PCI_SUPPORT
endif
comment "BusyBox' powertop is selected!"
- depends on BUSYBOX_POWERTOP
+ depends on BUSYBOX_POWERTOP
diff --git a/rules/powertop.make b/rules/powertop.make
index bf2094df1..0e9e4593d 100644
--- a/rules/powertop.make
+++ b/rules/powertop.make
@@ -15,11 +15,11 @@ PACKAGES-$(PTXCONF_POWERTOP) += powertop
#
# Paths and names
#
-POWERTOP_VERSION := 2.9
-POWERTOP_MD5 := 583518c5c4434c6e9b9c58c3920950b6
+POWERTOP_VERSION := 2.15
+POWERTOP_MD5 := a8008e2b16fb648c03faeec3c1047521
POWERTOP := powertop-v$(POWERTOP_VERSION)
POWERTOP_SUFFIX := tar.gz
-POWERTOP_URL := https://01.org/sites/default/files/downloads/powertop/$(POWERTOP).$(POWERTOP_SUFFIX)
+POWERTOP_URL := https://github.com/fenrus75/powertop/archive/refs/tags/v$(POWERTOP_VERSION).$(POWERTOP_SUFFIX)
POWERTOP_SOURCE := $(SRCDIR)/$(POWERTOP).$(POWERTOP_SUFFIX)
POWERTOP_DIR := $(BUILDDIR)/$(POWERTOP)
POWERTOP_LICENSE := GPL-2.0-only
diff --git a/rules/ppp.in b/rules/ppp.in
index 02f932341..a8cdafb00 100644
--- a/rules/ppp.in
+++ b/rules/ppp.in
@@ -9,6 +9,9 @@ menuconfig PPP
select LIBC_CRYPT
select LIBC_RESOLV if PPP_PLUGINS
select LIBPCAP if PPP_FILTER
+ select BUSYBOX_KILL if BUSYBOX && PPP_STARTSCRIPT
+ select BUSYBOX_TEST if BUSYBOX && PPP_STARTSCRIPT
+ select BUSYBOX_SLEEP if BUSYBOX && PPP_STARTSCRIPT
select OPENSSL
help
Point-to-Point Protocol (PPP) - daemon
@@ -172,7 +175,7 @@ config PPP_WINBIND
prompt "winbind"
help
WINBIND plugin for pppd. Performs PAP, CHAP, MS-CHAP, MS-CHAPv2
- authentication using WINBIND to contact a NT-style PDC.
+ authentication using WINBIND to contact an NT-style PDC.
endif
@@ -209,9 +212,6 @@ config PPP_INST_PONOFF
config PPP_STARTSCRIPT
bool
depends on INITMETHOD_BBINIT
- select BUSYBOX_KILL if BUSYBOX
- select BUSYBOX_TEST if BUSYBOX
- select BUSYBOX_SLEEP if BUSYBOX
default y
prompt "install /etc/init.d/pppd"
help
diff --git a/rules/ppp.make b/rules/ppp.make
index 8bfb88b55..e39b87b45 100644
--- a/rules/ppp.make
+++ b/rules/ppp.make
@@ -16,11 +16,11 @@ PACKAGES-$(PTXCONF_PPP) += ppp
#
# Paths and names
#
-PPP_VERSION := 2.4.7
-PPP_MD5 := 78818f40e6d33a1d1de68a1551f6595a
+PPP_VERSION := 2.4.9
+PPP_MD5 := c88153ae3d16ae114152cd3c15c7301d
PPP := ppp-$(PPP_VERSION)
PPP_SUFFIX := tar.gz
-PPP_URL := http://ftp.samba.org/pub/ppp/$(PPP).$(PPP_SUFFIX)
+PPP_URL := https://www.samba.org/ftp/pub/ppp/$(PPP).$(PPP_SUFFIX)
PPP_SOURCE := $(SRCDIR)/$(PPP).$(PPP_SUFFIX)
PPP_DIR := $(BUILDDIR)/$(PPP)
PPP_LICENSE := BSD AND GPL-2.0-only
@@ -55,9 +55,10 @@ PPP_SHARED_INST_PATH := /usr/lib/pppd/$(PPP_VERSION)
$(STATEDIR)/ppp.prepare:
@$(call targetinfo)
@cd $(PPP_DIR) && $(PPP_PATH) $(PPP_CONF_ENV) \
- ./configure --prefix=/usr --sysconfdir=/etc
+ ./configure --prefix=/usr --sysconfdir=/etc --cc=$(CROSS_CC)
@$(call disable_sh,$(PPP_DIR)/pppd/Makefile,USE_PAM=y)
+ @$(call disable_sh,$(PPP_DIR)/pppd/Makefile,SYSTEMD=y)
ifdef PTXCONF_GLOBAL_IPV6
@$(call enable_sh,$(PPP_DIR)/pppd/Makefile,HAVE_INET6=y)
@@ -127,6 +128,7 @@ ifdef PTXCONF_PPP_PLUGINS
else
@$(call disable_sh,$(PPP_DIR)/pppd/Makefile,PLUGIN=y)
endif
+
@$(call touch)
diff --git a/rules/pps-tools.make b/rules/pps-tools.make
index 65a06c7d1..789659154 100644
--- a/rules/pps-tools.make
+++ b/rules/pps-tools.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_PPS_TOOLS) += pps-tools
#
# Paths and names
#
-PPS_TOOLS_VERSION := 1.0.2
-PPS_TOOLS_MD5 := 6eddfeb151cffe8751f4766e428b8eb7
+PPS_TOOLS_VERSION := 1.0.3
+PPS_TOOLS_MD5 := 9b18c55efe020d02c26cd8c759ac258d
PPS_TOOLS := pps-tools-$(PPS_TOOLS_VERSION)
PPS_TOOLS_SUFFIX := tar.gz
PPS_TOOLS_URL := https://github.com/redlab-i/pps-tools/archive/v$(PPS_TOOLS_VERSION).$(PPS_TOOLS_SUFFIX)
diff --git a/rules/pre/000-cfghash.make b/rules/pre/000-cfghash.make
index de212089b..81fc14b05 100644
--- a/rules/pre/000-cfghash.make
+++ b/rules/pre/000-cfghash.make
@@ -23,4 +23,19 @@ ptx/cfghash :=
ptx/cfghash-file :=
endif
+#
+# Add the specified file to the cfghash for the package.
+# Only add files from the BSP, not the build tree.
+#
+define ptx/dts-cfghash-file
+$(foreach dts,$(filter-out $(PTXDIST_PLATFORMDIR)/%,\
+$(call ptx/in-path,$(strip $(1))_DTS_PATH,$(2))),\
+$(call ptx/cfghash-file,$(1),$(dts)))
+endef
+
+define world/dts-cfghash-file
+$(foreach dts,$($(strip $(1))_DTS),\
+$(call ptx/dts-cfghash-file,$(strip $(1)),$(dts)))
+endef
+
# vim: syntax=make
diff --git a/rules/pre/000-option-disabled.make b/rules/pre/000-option-disabled.make
index fa0e8a294..9a068b39c 100644
--- a/rules/pre/000-option-disabled.make
+++ b/rules/pre/000-option-disabled.make
@@ -146,6 +146,18 @@ $(call ptx/ifdef, $(1), yes, no)
endef
+#
+# $(call ptx/noyes, PTXCONF_SYMBOL) returns "no" or "yes"
+# depending on the symbol is defined or not
+#
+# $(call ptx/noyes, PTXCONF_SYMBOL)
+# $1
+#
+define ptx/noyes
+$(call ptx/ifdef, $(1), no, yes)
+endef
+
+
define ptx/config-foo
$(strip $(if $($(strip $(1))),
$(if $(call remove_quotes,$($(2))),
diff --git a/rules/pre/000-ptx-search.make b/rules/pre/000-ptx-search.make
index 8676732d9..a1ed0acd7 100644
--- a/rules/pre/000-ptx-search.make
+++ b/rules/pre/000-ptx-search.make
@@ -22,7 +22,7 @@ $(call ptx/in-path3,
$(foreach path,$(1),$(if $(filter-out /%,$(path)),
$(call ptx/in-path-all,PTXDIST_PATH_LAYERS,$(path)),$(path))),$(2))
endef
-# create a path ist from the variable with ':' separated paths
+# create a path from the variable with ':' separated paths
define ptx/in-path-all
$(call ptx/in-path2,$(subst :,$(ptx/def/space),$($(strip $(1)))),$(2))
endef
diff --git a/rules/pre/010-code-signing.make b/rules/pre/010-code-signing.make
index 370595600..6141a7b19 100644
--- a/rules/pre/010-code-signing.make
+++ b/rules/pre/010-code-signing.make
@@ -7,9 +7,9 @@
#
CODE_SIGNING_ENV = \
- SO_PATH=$(PTXDIST_SYSROOT_HOST)/lib/engines-1.1/pkcs11.so \
- OPENSSL_CONF="$(PTXDIST_SYSROOT_HOST)/ssl/openssl.cnf" \
- OPENSSL_ENGINES="$(PTXDIST_SYSROOT_HOST)/lib/engines-1.1"
+ SO_PATH=$(PTXDIST_SYSROOT_HOST)/usr/lib/engines-3/pkcs11.so \
+ OPENSSL_CONF="$(PTXDIST_SYSROOT_HOST)/usr/ssl/openssl.cnf" \
+ OPENSSL_ENGINES="$(PTXDIST_SYSROOT_HOST)/usr/lib/engines-3"
#
# This macro is used to allow a code signing provider
diff --git a/rules/pre/020-code-signing-softhsm.make b/rules/pre/020-code-signing-softhsm.make
index 7d9cae556..62e3ab331 100644
--- a/rules/pre/020-code-signing-softhsm.make
+++ b/rules/pre/020-code-signing-softhsm.make
@@ -9,7 +9,7 @@
ifdef PTXCONF_HOST_SOFTHSM
SOFTHSM_CODE_SIGNING_ENV = \
SOFTHSM2_CONF="$(PTXDIST_SYSROOT_HOST)/etc/softhsm2.conf" \
- PKCS11_MODULE_PATH=$(PTXDIST_SYSROOT_HOST)/lib/softhsm/libsofthsm2.so
+ PKCS11_MODULE_PATH=$(PTXDIST_SYSROOT_HOST)/usr/lib/softhsm/libsofthsm2.so
CODE_SIGNING_ENV += \
$(SOFTHSM_CODE_SIGNING_ENV)
diff --git a/rules/pre/Rules.make b/rules/pre/Rules.make
index e132cc33d..f6b190050 100644
--- a/rules/pre/Rules.make
+++ b/rules/pre/Rules.make
@@ -9,12 +9,12 @@
# FIXME: cleanup
-GNU_BUILD := $(call ptx/force-sh, $(SCRIPTSDIR)/autoconf/config.guess)
+GNU_BUILD := $(call ptx/force-sh, $(SCRIPTSDIR)/autoconf/config.guess | sed s/-pc-/-unknown-/)
GNU_HOST := $(call ptx/force-sh, echo $(GNU_BUILD) | sed s/-[a-zA-Z0-9_]*-/-host-/)
INSTALL := install
-FAKEROOT := $(PTXDIST_SYSROOT_HOST)/bin/fakeroot
+FAKEROOT := $(PTXDIST_SYSROOT_HOST)/usr/bin/fakeroot
CHECK_PIPE_STATUS := \
for i in "$${PIPESTATUS[@]}"; do [ $$i -gt 0 ] && { \
@@ -29,7 +29,7 @@ CHECK_PIPE_STATUS := \
#
# prepare the search path when cross compiling
#
-CROSS_PATH := $(PTXDIST_SYSROOT_CROSS)/bin:$(PTXDIST_SYSROOT_CROSS)/sbin:$(PATH)
+CROSS_PATH := $(PTXDIST_SYSROOT_CROSS)/usr/bin:$(PTXDIST_SYSROOT_CROSS)/usr/sbin:$(PATH)
# ----------------------------------------------------------------------------
@@ -46,6 +46,7 @@ CROSS_NM := $(PTXCONF_COMPILER_PREFIX)nm
CROSS_CC := $(PTXCONF_COMPILER_PREFIX)gcc
CROSS_CXX := $(PTXCONF_COMPILER_PREFIX)g++
CROSS_CPP := "$(PTXCONF_COMPILER_PREFIX)gcc -E"
+CROSS_FC := $(PTXCONF_COMPILER_PREFIX)gfortran
CROSS_RANLIB := $(PTXCONF_COMPILER_PREFIX)ranlib
CROSS_READELF := $(PTXCONF_COMPILER_PREFIX)readelf
CROSS_OBJCOPY := $(PTXCONF_COMPILER_PREFIX)objcopy
@@ -73,6 +74,7 @@ CROSS_ENV_NM := NM=$(CROSS_NM)
CROSS_ENV_CC := CC=$(CROSS_CC)
CROSS_ENV_CXX := CXX=$(CROSS_CXX)
CROSS_ENV_CPP := CPP=$(CROSS_CPP)
+CROSS_ENV_FC := FC=$(CROSS_FC)
CROSS_ENV_RANLIB := RANLIB=$(CROSS_RANLIB)
CROSS_ENV_READELF := READELF=$(CROSS_READELF)
CROSS_ENV_OBJCOPY := OBJCOPY=$(CROSS_OBJCOPY)
@@ -113,6 +115,7 @@ CROSS_ENV_PROGS := \
$(CROSS_ENV_CC) \
$(CROSS_ENV_CXX) \
$(CROSS_ENV_CPP) \
+ $(CROSS_ENV_FC) \
$(CROSS_ENV_RANLIB) \
$(CROSS_ENV_READELF) \
$(CROSS_ENV_OBJCOPY) \
@@ -136,7 +139,8 @@ CROSS_ENV_PROGS := \
$(CROSS_ENV_LINK_FOR_BUILD) \
$(CROSS_ENV_PKG_CONFIG)
-CROSS_LIB_DIR := $(shell ptxd_get_lib_dir)
+CROSS_LIB_DIR := lib
+CROSS_LINKER_LIB_DIR := $(shell ptxd_get_lib_dir)
#
@@ -219,10 +223,10 @@ CROSS_ENV := \
#
CROSS_AUTOCONF_SYSROOT_USR := \
- --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=/usr/$(CROSS_LIB_DIR)
+ --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib
CROSS_AUTOCONF_SYSROOT_ROOT := \
- --libdir=/$(CROSS_LIB_DIR) --prefix=
+ --libdir=/lib --prefix=
CROSS_AUTOCONF_ARCH := \
--build=$(GNU_HOST) \
@@ -233,14 +237,15 @@ CROSS_AUTOCONF_ROOT := $(CROSS_AUTOCONF_SYSROOT_ROOT) $(CROSS_AUTOCONF_ARCH)
CROSS_CMAKE_USR := \
-DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=/usr/$(CROSS_LIB_DIR) \
-DCMAKE_INSTALL_SYSCONFDIR=/etc \
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo \
+ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DCMAKE_TOOLCHAIN_FILE='${PTXDIST_CMAKE_TOOLCHAIN_TARGET}'
CROSS_CMAKE_ROOT := \
-DCMAKE_INSTALL_PREFIX=/ \
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo \
+ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DCMAKE_TOOLCHAIN_FILE='${PTXDIST_CMAKE_TOOLCHAIN_TARGET}'
CROSS_QMAKE_OPT := \
@@ -248,19 +253,31 @@ CROSS_QMAKE_OPT := \
$(if $(filter 0,$(PTXDIST_VERBOSE)),CONFIG+=silent)
CROSS_PYTHON_INSTALL := install --prefix=/usr
-HOST_PYTHON_INSTALL := install --prefix=/.
+HOST_PYTHON_INSTALL := install --prefix=/usr
+HOST_SYSTEM_PYTHON_INSTALL := install --prefix=/usr/lib/system-python3
CROSS_MESON_USR := \
--cross-file '${PTXDIST_MESON_CROSS_FILE}' \
--wrap-mode nodownload \
-Dbackend=ninja \
-Dbuildtype=debugoptimized \
- -Dlibdir=$(CROSS_LIB_DIR) \
+ -Dpkgconfig.relocatable=true \
+ -Dlibdir=lib \
-Dprefix=/usr
CROSS_MESON_ENV = \
$(HOST_ENV_PROGS)
+CROSS_CARGO_ENV := \
+ CARGO_BUILD_TARGET=$(PTXCONF_RUST_TARGET) \
+ RUST_TARGET_PATH=$(PTXDIST_PLATFORMDIR)/selected_toolchain
+
+CROSS_CARGO_OPT := \
+ build \
+ --target $(PTXCONF_RUST_TARGET) \
+ --release \
+ --frozen
+
ifdef PTXCONF_GLOBAL_IPV6
GLOBAL_IPV6_OPTION := --enable-ipv6
else
@@ -309,16 +326,25 @@ HOST_ENV := \
$(HOST_ENV_PKG_CONFIG)
-HOST_AUTOCONF := --prefix=
-HOST_AUTOCONF_SYSROOT := --prefix=$(PTXDIST_SYSROOT_HOST)
+HOST_AUTOCONF := \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libdir=/usr/lib
+
+HOST_AUTOCONF_SYSROOT := \
+ --prefix=$(PTXDIST_SYSROOT_HOST)/usr \
+ --sysconfdir=$(PTXDIST_SYSROOT_HOST)/etc \
+ --libdir=$(PTXDIST_SYSROOT_HOST)/usr/lib
HOST_CMAKE_OPT := \
- -DCMAKE_INSTALL_PREFIX= \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo \
-DCMAKE_TOOLCHAIN_FILE='${PTXDIST_CMAKE_TOOLCHAIN_HOST}'
HOST_CMAKE_OPT_SYSROOT := \
- -DCMAKE_INSTALL_PREFIX=$(PTXDIST_SYSROOT_HOST) \
+ -DCMAKE_INSTALL_PREFIX=$(PTXDIST_SYSROOT_HOST)/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo \
-DCMAKE_TOOLCHAIN_FILE='${PTXDIST_CMAKE_TOOLCHAIN_HOST}'
@@ -327,7 +353,12 @@ HOST_MESON_OPT := \
-Dbackend=ninja \
-Dbuildtype=debugoptimized \
-Dlibdir=lib \
- -Dprefix=/
+ -Dprefix=/usr
+
+HOST_CARGO_OPT := \
+ build \
+ --release \
+ --frozen
# ----------------------------------------------------------------------------
# HOST_CROSS stuff
@@ -340,8 +371,23 @@ HOST_CROSS_ENV := $(HOST_ENV)
HOST_CROSS_AUTOCONF_ARCH := --target=$(PTXCONF_GNU_TARGET)
-HOST_CROSS_AUTOCONF := --prefix= $(HOST_CROSS_AUTOCONF_ARCH)
-HOST_CROSS_AUTOCONF_SYSROOT := --prefix=$(PTXDIST_SYSROOT_CROSS) $(HOST_CROSS_AUTOCONF_ARCH)
+HOST_CROSS_AUTOCONF := \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libdir=/usr/lib \
+ $(HOST_CROSS_AUTOCONF_ARCH)
+
+HOST_CROSS_AUTOCONF_SYSROOT := \
+ --prefix=$(PTXDIST_SYSROOT_CROSS)/usr \
+ --sysconfdir=$(PTXDIST_SYSROOT_CROSS)/etc \
+ --libdir=$(PTXDIST_SYSROOT_CROSS)/usr/lib \
+ $(HOST_CROSS_AUTOCONF_ARCH)
+
+HOST_CROSS_CMAKE_OPT := \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo \
+ -DCMAKE_TOOLCHAIN_FILE='${PTXDIST_CMAKE_TOOLCHAIN_CROSS}'
# ----------------------------------------------------------------------------
# Convenience macros
@@ -351,11 +397,11 @@ HOST_CROSS_AUTOCONF_SYSROOT := --prefix=$(PTXDIST_SYSROOT_CROSS) $(HOST_CROSS_AU
# add_locale
#
# add locale support to locales-archive, if not exist, a new locale
-# archive will be created automaticly
+# archive will be created automatically
#
# $1: localename: localename (i.E. zh_CN or zh_CN.GBK)
# $2: localedef; locale definition file (i.E. de_DE or de_DE@euro)
-# $3: charmap; charachter encoding map (i.E. ISO-8859-1)
+# $3: charmap; character encoding map (i.E. ISO-8859-1)
# $4: prefix; installation prefix for locales-archive
#
#
@@ -375,7 +421,7 @@ add_locale = \
fi; \
${CROSS_ENV_CC} $(CROSS_ENV_STRIP) \
$(SCRIPTSDIR)/make_locale.sh \
- -e $(PTXDIST_SYSROOT_HOST)/bin/localedef \
+ -e $(PTXDIST_SYSROOT_HOST)/usr/bin/localedef \
-f $$CHARMAP -i $$LOCALE_DEF \
-p $$PREF \
-n $$LOCALE_NAME \
diff --git a/rules/pre/kernel.make b/rules/pre/kernel.make
index f4cb5283b..0be2db2ab 100644
--- a/rules/pre/kernel.make
+++ b/rules/pre/kernel.make
@@ -86,7 +86,8 @@ PTXDIST_LOWLEVEL_WRAPPER_BLACKLIST := \
TARGET_HARDEN_GLIBCXX_ASSERTIONS \
TARGET_DEBUG \
TARGET_BUILD_ID \
- TARGET_COMPILER_RECORD_SWITCHES
+ TARGET_COMPILER_RECORD_SWITCHES \
+ PTXDIST_Y2038
#
# handle special compiler
diff --git a/rules/pre/mirror.make b/rules/pre/mirror.make
index 66eaf1b36..a8cd6aa07 100644
--- a/rules/pre/mirror.make
+++ b/rules/pre/mirror.make
@@ -8,6 +8,8 @@
ptx/mirror = $(foreach mirror,$(PTXCONF_SETUP_$(strip $(1))MIRROR),$(mirror)/$(strip $(2)))
-ptx/mirror-pypi = $(foreach mirror, $(call ptx/mirror,PYPI,$(shell echo $(1) | head -c1)/$(strip $(1))/$(strip $(2))),$(mirror))
+_chars = 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 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
+ptx/mirror-pypi-chars = $(strip $(foreach c,$(_chars),$(if $(filter $(c)%,$(1)),$(c))))
+ptx/mirror-pypi = $(foreach mirror, $(call ptx/mirror,PYPI,$(call ptx/mirror-pypi-chars,$(1))/$(strip $(1))/$(strip $(2))),$(mirror))
# vim: syntax=make
diff --git a/rules/pre/xorg-dirs.make b/rules/pre/xorg-dirs.make
index ddfa0086d..bbb31f69a 100644
--- a/rules/pre/xorg-dirs.make
+++ b/rules/pre/xorg-dirs.make
@@ -18,4 +18,14 @@ XORG_OPTIONS_DOCS := \
--without-fop \
--without-xsltproc
+XORG_FONT_DIRS := \
+ misc \
+ truetype \
+ opentype \
+ 100dpi \
+ Type1 \
+ 75dpi \
+ cyrillic \
+ Speedo
+
# vim: syntax=make
diff --git a/rules/prelink.make b/rules/prelink.make
index 7633d7b81..4ee4c421f 100644
--- a/rules/prelink.make
+++ b/rules/prelink.make
@@ -28,13 +28,11 @@ PRELINK_LICENSE := GPL-2.0-only
# Prepare
# ----------------------------------------------------------------------------
-PRELINK_PATH := PATH=$(CROSS_PATH)
-PRELINK_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-PRELINK_AUTOCONF := $(CROSS_AUTOCONF_USR)
+PRELINK_CONF_TOOL := autoconf
+PRELINK_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/procps.in b/rules/procps.in
index 8aee7d8ae..1084ede59 100644
--- a/rules/procps.in
+++ b/rules/procps.in
@@ -23,7 +23,6 @@ config PROCPS_WITH_SYSTEMD
prompt "Enable systemd support"
depends on INITMETHOD_SYSTEMD
default y
- select SYSTEMD
help
Enable systemd support to show information about systemd units, slices
and containers in tools like ps. Recommended when using systemd.
diff --git a/rules/procps.make b/rules/procps.make
index 17efd0c26..40110d909 100644
--- a/rules/procps.make
+++ b/rules/procps.make
@@ -17,8 +17,8 @@ PACKAGES-$(PTXCONF_PROCPS) += procps
#
# Paths and names
#
-PROCPS_VERSION := 3.3.16
-PROCPS_MD5 := e8dc8455e573bdc40b8381d572bbb89b
+PROCPS_VERSION := 4.0.4
+PROCPS_MD5 := 2f747fc7df8ccf402d03e375c565cf96
PROCPS := procps-ng-$(PROCPS_VERSION)
PROCPS_SUFFIX := tar.xz
PROCPS_URL := $(call ptx/mirror, SF, procps-ng/Production/$(PROCPS).$(PROCPS_SUFFIX))
@@ -40,14 +40,16 @@ PROCPS_CONF_TOOL := autoconf
PROCPS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
$(GLOBAL_LARGE_FILE_OPTION) \
+ --disable-nls \
--enable-shared \
--disable-static \
- --disable-nls \
--disable-rpath \
--disable-watch8bit \
--disable-libselinux \
+ --disable-harden-flags \
--$(call ptx/endis, PTXCONF_PROCPS_PIDOF)-pidof \
--disable-kill \
+ --$(call ptx/endis, PTXCONF_PROCPS_W)-w \
--disable-skill \
--disable-examples \
--disable-sigwinch \
@@ -63,7 +65,6 @@ PROCPS_CONF_OPT := \
--$(call ptx/wwo, PTXCONF_PROCPS_WITH_SYSTEMD)-systemd \
--without-elogind
-
# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
@@ -77,7 +78,7 @@ $(STATEDIR)/procps.targetinstall:
@$(call install_fixup, procps,AUTHOR,"Clemens Gruber <clemens.gruber@pqgruber.com>")
@$(call install_fixup, procps,DESCRIPTION,missing)
- @$(call install_lib, procps, 0, 0, 0644, libprocps)
+ @$(call install_lib, procps, 0, 0, 0644, libproc2)
ifdef PTXCONF_PROCPS_FREE
@$(call install_copy, procps, 0, 0, 0755, -, /usr/bin/free)
diff --git a/rules/proftpd.make b/rules/proftpd.make
index 8cc9893d1..889a9fef8 100644
--- a/rules/proftpd.make
+++ b/rules/proftpd.make
@@ -27,42 +27,20 @@ PROFTPD_DIR := $(BUILDDIR)/$(PROFTPD)
# Prepare
# ----------------------------------------------------------------------------
-PROFTPD_PATH := PATH=$(CROSS_PATH)
-PROFTPD_ENV := $(CROSS_ENV)
-
-PROFTPD_COMPILE_ENV := $(CROSS_ENV_CC_FOR_BUILD)
+PROFTPD_MAKE_ENV := $(CROSS_ENV_CC_FOR_BUILD)
#
# autoconf
#
-PROFTPD_AUTOCONF := \
+PROFTPD_CONF_TOOL := autoconf
+PROFTPD_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
$(GLOBAL_IPV6_OPTION) \
- --disable-cap
-
-ifdef PTXCONF_PROFTPD_PAM
-PROFTPD_AUTOCONF += --enable-auth-pam
-else
-PROFTPD_AUTOCONF += --disable-auth-pam
-endif
-
-ifdef PTXCONF_PROFTPD_SENDFILE
-PROFTPD_AUTOCONF += --enable-sendfile
-else
-PROFTPD_AUTOCONF += --disable-sendfile
-endif
-
-ifdef PTXCONF_PROFTPD_SHADOW
-PROFTPD_AUTOCONF += --enable-shadow
-else
-PROFTPD_AUTOCONF += --disable-shadow
-endif
-
-ifdef PTXCONF_PROFTPD_AUTOSHADOW
-PROFTPD_AUTOCONF += --enable-autoshadow
-else
-PROFTPD_AUTOCONF += --disable-autoshadow
-endif
+ --disable-cap \
+ --$(call ptx/endis, PTXCONF_PROFTPD_PAM)-auth-pam \
+ --$(call ptx/endis, PTXCONF_PROFTPD_SENDFILE)-sendfile \
+ --$(call ptx/endis, PTXCONF_PROFTPD_SHADOW)-shadow \
+ --$(call ptx/endis, PTXCONF_PROFTPD_AUTOSHADOW)-autoshadow
PROFTPD_MAKE_PAR := NO
diff --git a/rules/project-name.in b/rules/project-name.in
index 6566c3257..de3379909 100644
--- a/rules/project-name.in
+++ b/rules/project-name.in
@@ -81,6 +81,25 @@ config PROJECT_CHECK_LICENSES
process. As a result all specified md5 sums for license files are
verified.
+config PROJECT_GENERATE_REPORTS
+ bool
+ prompt "generate reports with all relevant images"
+ help
+ If this es enabled <image>.reports is build before the
+ corresponding image. This is only relevant for images that are
+ build from packages since the document covers all packages that
+ are part of the image.
+
+config PROJECT_STORE_SOURCE_GIT_COMMITS
+ bool
+ prompt "query and store git commits for source archives"
+ help
+ PTXdist usually downloads source archives. But if that comes from a
+ git server then it can be possible to determine the corresponding git
+ commit.
+ If enabled, the git commit will be determined if possible and stored
+ with the source archive.
+
comment "------------------------------------"
comment "reproducible builds"
comment "------------------------------------"
diff --git a/rules/protobuf-c.in b/rules/protobuf-c.in
new file mode 100644
index 000000000..921f70471
--- /dev/null
+++ b/rules/protobuf-c.in
@@ -0,0 +1,13 @@
+## SECTION=system_libraries
+
+config PROTOBUF_C
+ tristate
+ select HOST_PROTOBUF_C
+ prompt "protobuf-c "
+ help
+ A C implementation of the Protocol Buffers data serialization
+ format.
+
+ NOTE: This installs the libprotobuf-c shared library for the
+ target. The host package includes the code generator plug-in
+ for the protoc command.
diff --git a/rules/protobuf-c.make b/rules/protobuf-c.make
new file mode 100644
index 000000000..60f7f6494
--- /dev/null
+++ b/rules/protobuf-c.make
@@ -0,0 +1,59 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Ian Abbott <abbotti@mev.co.uk>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PROTOBUF_C) += protobuf-c
+
+#
+# Paths and names
+#
+PROTOBUF_C_VERSION := 1.4.1
+PROTOBUF_C_MD5 := 4c17d70317ce9fc4cca9690377284659
+PROTOBUF_C := protobuf-c-$(PROTOBUF_C_VERSION)
+PROTOBUF_C_SUFFIX := tar.gz
+PROTOBUF_C_URL := https://github.com/protobuf-c/protobuf-c/releases/download/v$(PROTOBUF_C_VERSION)/protobuf-c-$(PROTOBUF_C_VERSION).$(PROTOBUF_C_SUFFIX)
+PROTOBUF_C_SOURCE := $(SRCDIR)/$(PROTOBUF_C).$(PROTOBUF_C_SUFFIX)
+PROTOBUF_C_DIR := $(BUILDDIR)/$(PROTOBUF_C)
+PROTOBUF_C_LICENSE := BSD-2-Clause
+PROTOBUF_C_LICENSE_FILES := file://LICENSE;md5=9f725889e0d77383e26cb42b0b62cea2
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+PROTOBUF_C_CONF_TOOL := autoconf
+PROTOBUF_C_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --disable-protoc \
+ --disable-static
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/protobuf-c.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, protobuf-c)
+ @$(call install_fixup, protobuf-c,PRIORITY,optional)
+ @$(call install_fixup, protobuf-c,SECTION,base)
+ @$(call install_fixup, protobuf-c,AUTHOR,"Ian Abbott <abbotti@mev.co.uk>")
+ @$(call install_fixup, protobuf-c,DESCRIPTION,missing)
+
+ @$(call install_lib, protobuf-c, 0, 0, 0644, libprotobuf-c)
+
+ @$(call install_finish, protobuf-c)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/protobuf.make b/rules/protobuf.make
index a5c126443..f66811b26 100644
--- a/rules/protobuf.make
+++ b/rules/protobuf.make
@@ -36,7 +36,7 @@ PROTOBUF_CONF_OPT := \
--disable-64bit-solaris \
--disable-static \
--$(call ptx/wwo, PTXCONF_PROTOBUF_ZLIB)-zlib \
- --with-protoc=$(PTXDIST_SYSROOT_HOST)/bin/protoc
+ --with-protoc=$(PTXDIST_SYSROOT_HOST)/usr/bin/protoc
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/ps3-utils.make b/rules/ps3-utils.make
index 92cd7c8b1..ad8842782 100644
--- a/rules/ps3-utils.make
+++ b/rules/ps3-utils.make
@@ -30,7 +30,8 @@ PS3_UTILS_DIR := $(BUILDDIR)/$(PS3_UTILS)
#
# autoconf
#
-PS3_UTILS_AUTOCONF := $(CROSS_AUTOCONF_USR)
+PS3_UTILS_CONF_TOOL := autoconf
+PS3_UTILS_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/psmisc.in b/rules/psmisc.in
index 1c3a61414..3d3c7a802 100644
--- a/rules/psmisc.in
+++ b/rules/psmisc.in
@@ -1,18 +1,48 @@
## SECTION=shell_and_console
-config PSMISC
+menuconfig PSMISC
tristate
- depends on ( !BUSYBOX_FUSER && !BUSYBOX_KILLALL && !BUSYBOX_PSTREE ) || ALLYES
select NCURSES
- prompt "psmisc"
+ prompt "psmisc "
help
utilities that use the proc file system
-comment "BusyBox' fuser is selected! (psmisc)"
+if PSMISC
+
+config PSMISC_FUSER
+ bool
+ prompt "fuser"
+ depends on !BUSYBOX_FUSER || ALLYES
+
+comment "BusyBox' fuser is selected!"
depends on BUSYBOX_FUSER
-comment "BusyBox' killall is selected! (psmisc)"
+config PSMISC_KILLALL
+ bool
+ prompt "killall"
+ depends on !BUSYBOX_KILLALL || ALLYES
+
+comment "BusyBox' killall is selected!"
depends on BUSYBOX_KILLALL
-comment "BusyBox' pstree is selected! (psmisc)"
+config PSMISC_PEEKFD
+ bool
+ prompt "peekfd"
+
+config PSMISC_PRTSTAT
+ bool
+ prompt "prtstat"
+
+config PSMISC_PSLOG
+ bool
+ prompt "pslog"
+
+config PSMISC_PSTREE
+ bool
+ prompt "pstree"
+ depends on !BUSYBOX_PSTREE || ALLYES
+
+comment "BusyBox' pstree is selected!"
depends on BUSYBOX_PSTREE
+
+endif
diff --git a/rules/psmisc.make b/rules/psmisc.make
index 58852bb39..d95e97d74 100644
--- a/rules/psmisc.make
+++ b/rules/psmisc.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_PSMISC) += psmisc
#
# Paths and names
#
-PSMISC_VERSION := 23.2
-PSMISC_MD5 := 0524258861f00be1a02d27d39d8e5e62
+PSMISC_VERSION := 23.5
+PSMISC_MD5 := 014f0b5d5ab32478a2c57812ad01e1fb
PSMISC := psmisc-$(PSMISC_VERSION)
PSMISC_SUFFIX := tar.xz
PSMISC_URL := $(call ptx/mirror, SF, psmisc/$(PSMISC).$(PSMISC_SUFFIX))
@@ -44,6 +44,16 @@ PSMISC_CONF_OPT := \
# Target-Install
# ----------------------------------------------------------------------------
+PSMISC_BIN-y :=
+PSMISC_BIN-$(PTXCONF_PSMISC_FUSER) += fuser
+PSMISC_BIN-$(PTXCONF_PSMISC_KILLALL) += killall
+ifndef PTXCONF_ARCH_ARM64
+PSMISC_BIN-$(PTXCONF_PSMISC_PEEKFD) += peekfd
+endif
+PSMISC_BIN-$(PTXCONF_PSMISC_PRTSTAT) += prtstat
+PSMISC_BIN-$(PTXCONF_PSMISC_PSLOG) += pslog
+PSMISC_BIN-$(PTXCONF_PSMISC_PSTREE) += pstree
+
$(STATEDIR)/psmisc.targetinstall:
@$(call targetinfo)
@@ -53,13 +63,9 @@ $(STATEDIR)/psmisc.targetinstall:
@$(call install_fixup, psmisc,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
@$(call install_fixup, psmisc,DESCRIPTION,missing)
- @$(call install_copy, psmisc, 0, 0, 0755, -, /usr/bin/fuser)
- @$(call install_copy, psmisc, 0, 0, 0755, -, /usr/bin/killall)
-ifndef PTXCONF_ARCH_ARM64
- @$(call install_copy, psmisc, 0, 0, 0755, -, /usr/bin/peekfd)
-endif
- @$(call install_copy, psmisc, 0, 0, 0755, -, /usr/bin/prtstat)
- @$(call install_copy, psmisc, 0, 0, 0755, -, /usr/bin/pstree)
+ @$(foreach tool, $(PSMISC_BIN-y), \
+ $(call install_copy, psmisc, 0, 0, 0755, -, \
+ /usr/bin/$(tool))$(ptx/nl))
@$(call install_finish, psmisc)
diff --git a/rules/pulseaudio.in b/rules/pulseaudio.in
index 3c925f70f..d00c56d9e 100644
--- a/rules/pulseaudio.in
+++ b/rules/pulseaudio.in
@@ -11,9 +11,9 @@ menuconfig PULSEAUDIO
select ALSA_LIB_MIXER
select ALSA_LIB_UCM
select LIBCAP
- select LIBLTDL
select LIBSNDFILE
select ORC
+ select LIBLTDL if PULSEAUDIO_DAEMON
select SYSTEMD if PULSEAUDIO_SYSTEMD
select SBC if PULSEAUDIO_BLUETOOTH
select DBUS if PULSEAUDIO_BLUETOOTH
@@ -21,7 +21,7 @@ menuconfig PULSEAUDIO
select BLUEZ_LIBBLUETOOTH if PULSEAUDIO_BLUETOOTH
select SPEEXDSP if PULSEAUDIO_SPEEX
select SPEEXDSP_FLOAT_API if PULSEAUDIO_SPEEX
- select WEBRTC_AUDIO_PROCESSING if PULSEAUDIO_WEBRTC_AEC
+ select WEBRTC_AUDIO_PROCESSING1 if PULSEAUDIO_WEBRTC_AEC
select UDEV
select UDEV_LIBUDEV
prompt "pulseaudio "
@@ -37,14 +37,28 @@ config PULSEAUDIO_SYSTEMD
bool
default INITMETHOD_SYSTEMD
-config PULSEAUDIO_SYSTEMD_USER
+config PULSEAUDIO_DAEMON
bool
+ default y
+ prompt "install pulseaudio daemon"
+
+if PULSEAUDIO_DAEMON
+
+config PULSEAUDIO_SYSTEMD_UNIT
+ bool
+ default !SYSTEMD_UNITS_USER
depends on PULSEAUDIO_SYSTEMD
- default y if SYSTEMD_UNITS_USER
+ prompt "install systemd system unit file"
+
+config PULSEAUDIO_SYSTEMD_UNIT_USER
+ bool
+ default y
+ depends on PULSEAUDIO_SYSTEMD && SYSTEMD_UNITS_USER
+ prompt "install systemd user unit file"
config PULSEAUDIO_BLUETOOTH
- bool
- prompt "enable bluetooth support"
+ bool
+ prompt "enable bluetooth support"
config PULSEAUDIO_SPEEX
bool
@@ -63,3 +77,4 @@ config PULSEAUDIO_WEBRTC_AEC
provides better quality than the builtin 'Adrian' echo canceller.
endif
+endif
diff --git a/rules/pulseaudio.make b/rules/pulseaudio.make
index 59a9fdda0..f2e57dcd2 100644
--- a/rules/pulseaudio.make
+++ b/rules/pulseaudio.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_PULSEAUDIO) += pulseaudio
#
# Paths and names
#
-PULSEAUDIO_VERSION := 13.0
-PULSEAUDIO_MD5 := e41d606f90254ed45c90520faf83d95c
+PULSEAUDIO_VERSION := 17.0
+PULSEAUDIO_MD5 := c4a3596a26ff4b9dcd0c394dd1d4f8ee
PULSEAUDIO := pulseaudio-$(PULSEAUDIO_VERSION)
PULSEAUDIO_SUFFIX := tar.xz
PULSEAUDIO_URL := http://freedesktop.org/software/pulseaudio/releases/$(PULSEAUDIO).$(PULSEAUDIO_SUFFIX)
@@ -37,9 +37,6 @@ PULSEAUDIO_CONF_ENV := \
$(CROSS_MESON_ENV) \
ORCC=orcc
-#
-# autoconf
-#
PULSEAUDIO_CONF_TOOL := meson
PULSEAUDIO_CONF_OPT := \
$(CROSS_MESON_USR) \
@@ -50,15 +47,22 @@ PULSEAUDIO_CONF_OPT := \
-Datomic-arm-linux-helpers=true \
-Datomic-arm-memory-barrier=true \
-Davahi=disabled \
- -Dbluez5=$(call ptx/truefalse, PTXCONF_PULSEAUDIO_BLUETOOTH) \
+ -Dbluez5=$(call ptx/endis, PTXCONF_PULSEAUDIO_BLUETOOTH)d \
+ -Dbluez5-gstreamer=disabled \
-Dbluez5-native-headset=$(call ptx/truefalse, PTXCONF_PULSEAUDIO_BLUETOOTH) \
-Dbluez5-ofono-headset=false \
+ -Dclient=true \
+ -Ddaemon=$(call ptx/truefalse, PTXCONF_PULSEAUDIO_DAEMON) \
-Ddatabase=simple \
-Ddbus=$(call ptx/endis, PTXCONF_PULSEAUDIO_BLUETOOTH)d \
+ -Ddoxygen=false \
+ -Delogind=disabled \
+ -Denable-smoother-2=true \
-Dfftw=disabled \
-Dgcov=false \
-Dglib=disabled \
-Dgsettings=disabled \
+ -Dgstreamer=disabled \
-Dgtk=disabled \
-Dhal-compat=false \
-Dipv6=$(call ptx/truefalse, PTXCONF_GLOBAL_IPV6) \
@@ -69,24 +73,32 @@ PULSEAUDIO_CONF_OPT := \
-Dmodlibexecdir=/usr/lib/pulse-$(PULSEAUDIO_VERSION)/modules \
-Dopenssl=disabled \
-Dorc=enabled \
+ -Doss-output=disabled \
-Dpadsplibdir= \
-Dpulsedsp-location= \
-Drunning-from-build-tree=false \
-Dsamplerate=disabled \
-Dsoxr=disabled \
-Dspeex=$(call ptx/endis, PTXCONF_PULSEAUDIO_SPEEX)d \
+ -Dstream-restore-clear-old-devices=false \
-Dsystem_group= \
-Dsystem_user= \
-Dsystemd=$(call ptx/endis, PTXCONF_PULSEAUDIO_SYSTEMD)d \
-Dsystemduserunitdir=/usr/lib/systemd/user \
+ -Dtcpwrap=disabled \
-Dtests=false \
-Dudev=enabled \
- -Dudevrulesdir=/lib/udev/rules.d \
+ -Dudevrulesdir=/usr/lib/udev/rules.d \
+ -Dvalgrind=disabled \
-Dwebrtc-aec=$(call ptx/endis, PTXCONF_PULSEAUDIO_WEBRTC_AEC)d \
-Dx11=disabled \
-Dzshcompletiondir=
+ifdef PTXCONF_PULSEAUDIO_DAEMON
PULSEAUDIO_LDFLAGS := -Wl,-rpath,/usr/lib/pulseaudio:/usr/lib/pulse-$(PULSEAUDIO_VERSION)/modules
+else
+PULSEAUDIO_LDFLAGS := -Wl,-rpath,/usr/lib/pulseaudio
+endif
# ----------------------------------------------------------------------------
# Install
@@ -110,25 +122,25 @@ $(STATEDIR)/pulseaudio.targetinstall:
@$(call install_fixup, pulseaudio,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
@$(call install_fixup, pulseaudio,DESCRIPTION,missing)
- @$(call install_alternative, pulseaudio, 0, 0, 0644, /etc/pulse/client.conf)
+ifdef PTXCONF_PULSEAUDIO_DAEMON
@$(call install_alternative, pulseaudio, 0, 0, 0644, /etc/pulse/daemon.conf)
@$(call install_alternative, pulseaudio, 0, 0, 0644, /etc/pulse/system.pa)
@$(call install_alternative, pulseaudio, 0, 0, 0644, /etc/pulse/default.pa)
ifdef PTXCONF_PULSEAUDIO_BLUETOOTH
@$(call install_alternative, pulseaudio, 0, 0, 0644, \
- /etc/dbus-1/system.d/pulseaudio-system.conf)
+ /usr/share/dbus-1/system.d/pulseaudio-system.conf)
endif
-ifdef PTXCONF_PULSEAUDIO_SYSTEMD
-ifndef PTXCONF_PULSEAUDIO_SYSTEMD_USER
+ifdef PTXCONF_PULSEAUDIO_SYSTEMD_UNIT
@$(call install_alternative, pulseaudio, 0, 0, 0644, \
/usr/lib/systemd/system/pulseaudio.service)
@$(call install_alternative, pulseaudio, 0, 0, 0644, \
/usr/lib/systemd/system/pulseaudio.socket)
@$(call install_link, pulseaudio, ../pulseaudio.socket, \
/usr/lib/systemd/system/sockets.target.wants/pulseaudio.socket)
-else
+endif
+ifdef PTXCONF_PULSEAUDIO_SYSTEMD_UNIT_USER
@$(call install_alternative, pulseaudio, 0, 0, 0644, \
/usr/lib/systemd/user/pulseaudio.service)
@$(call install_alternative, pulseaudio, 0, 0, 0644, \
@@ -136,11 +148,18 @@ else
@$(call install_link, pulseaudio, ../pulseaudio.socket, \
/usr/lib/systemd/user/sockets.target.wants/pulseaudio.socket)
endif
+ @$(call install_copy, pulseaudio, 0, 0, 0755, -, /usr/bin/pulseaudio)
+ @$(call install_copy, pulseaudio, 0, 0, 0755, -, /usr/bin/pacmd)
+
+ @$(call install_lib, pulseaudio, 0, 0, 0644, pulseaudio/libpulsecore-$(PULSEAUDIO_VERSION))
+
+ @$(call install_tree, pulseaudio, 0, 0, -, /usr/lib/pulse-$(PULSEAUDIO_VERSION)/modules)
+ @$(call install_tree, pulseaudio, 0, 0, -, /usr/share/pulseaudio)
endif
- @$(call install_copy, pulseaudio, 0, 0, 0755, -, /usr/bin/pulseaudio)
+ @$(call install_alternative, pulseaudio, 0, 0, 0644, /etc/pulse/client.conf)
+
@$(call install_copy, pulseaudio, 0, 0, 0755, -, /usr/bin/pactl)
- @$(call install_copy, pulseaudio, 0, 0, 0755, -, /usr/bin/pacmd)
@$(call install_copy, pulseaudio, 0, 0, 0755, -, /usr/bin/pacat)
@$(call install_link, pulseaudio, pacat, /usr/bin/pamon)
@$(call install_link, pulseaudio, pacat, /usr/bin/paplay)
@@ -149,11 +168,7 @@ endif
@$(call install_lib, pulseaudio, 0, 0, 0644, libpulse)
@$(call install_lib, pulseaudio, 0, 0, 0644, libpulse-simple)
- @$(call install_lib, pulseaudio, 0, 0, 0644, pulseaudio/libpulsecore-$(PULSEAUDIO_VERSION))
@$(call install_lib, pulseaudio, 0, 0, 0644, pulseaudio/libpulsecommon-$(PULSEAUDIO_VERSION))
- @$(call install_tree, pulseaudio, 0, 0, -, /usr/lib/pulse-$(PULSEAUDIO_VERSION)/modules)
-
- @$(call install_tree, pulseaudio, 0, 0, -, /usr/share/pulseaudio)
@$(call install_finish, pulseaudio)
diff --git a/rules/pureftpd.in b/rules/pureftpd.in
index c9a8a8060..84698c99b 100644
--- a/rules/pureftpd.in
+++ b/rules/pureftpd.in
@@ -11,7 +11,7 @@ menuconfig PUREFTPD
bandwidth throttling, ratios, fortune files, Apache-like log
files, fast standalone mode, atomic uploads, text / HTML /
XML real-time status report, virtual users, virtual quotas,
- privilege separation, SSL/TLS and more.
+ privilege separation, SSL/TLS and more.
if PUREFTPD
diff --git a/rules/pureftpd.make b/rules/pureftpd.make
index 229ceeb0b..8f447b528 100644
--- a/rules/pureftpd.make
+++ b/rules/pureftpd.make
@@ -30,7 +30,8 @@ PUREFTPD_DIR := $(BUILDDIR)/$(PUREFTPD)
#
# autoconf
#
-PUREFTPD_AUTOCONF := \
+PUREFTPD_CONF_TOOL := autoconf
+PUREFTPD_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--without-dmalloc \
--with-standalone \
diff --git a/rules/pv.make b/rules/pv.make
index f762e9b5e..0213816e9 100644
--- a/rules/pv.make
+++ b/rules/pv.make
@@ -26,14 +26,13 @@ PV_DIR := $(BUILDDIR)/$(PV)
# Prepare
# ----------------------------------------------------------------------------
-PV_PATH := PATH=$(CROSS_PATH)
-PV_ENV := $(CROSS_ENV)
-PV_MAKEVARS := $(CROSS_ENV_LD)
+PV_MAKE_OPT := $(CROSS_ENV_LD)
#
# autoconf
#
-PV_AUTOCONF := \
+PV_CONF_TOOL := autoconf
+PV_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-nls \
--disable-splice \
diff --git a/rules/pygobject.in b/rules/pygobject.in
deleted file mode 100644
index a5be13e7d..000000000
--- a/rules/pygobject.in
+++ /dev/null
@@ -1,10 +0,0 @@
-## SECTION=python
-
-config PYGOBJECT
- tristate
- select LIBFFI
- select PYTHON
- select GLIB
- prompt "python-gobject"
- help
- This package contains the Python bindings for GObject.
diff --git a/rules/pygobject.make b/rules/pygobject.make
deleted file mode 100644
index 711593bbf..000000000
--- a/rules/pygobject.make
+++ /dev/null
@@ -1,84 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2010 by Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_PYGOBJECT) += pygobject
-
-#
-# Paths and names
-#
-PYGOBJECT_VERSION := 2.21.5
-PYGOBJECT_MD5 := ef1ef7def7faa407c07b4bbd6d068ff2
-PYGOBJECT := pygobject-$(PYGOBJECT_VERSION)
-PYGOBJECT_SUFFIX := tar.gz
-PYGOBJECT_URL := $(call ptx/mirror, GNOME, pygobject/$(basename $(PYGOBJECT_VERSION))/$(PYGOBJECT).$(PYGOBJECT_SUFFIX))
-PYGOBJECT_SOURCE := $(SRCDIR)/$(PYGOBJECT).$(PYGOBJECT_SUFFIX)
-PYGOBJECT_DIR := $(BUILDDIR)/$(PYGOBJECT)
-PYGOBJECT_LICENSE := LGPL-2.1-or-later
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-PYGOBJECT_CONF_ENV = \
- $(CROSS_ENV) \
- PYTHON=$(CROSS_PYTHON)
-
-PYGOBJECT_CONF_TOOL := autoconf
-PYGOBJECT_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --disable-docs \
- --disable-introspection \
- --disable-silent-rules \
- --enable-thread \
- --with-ffi
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/pygobject.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, pygobject)
- @$(call install_fixup, pygobject,PRIORITY,optional)
- @$(call install_fixup, pygobject,VERSION,$(PYGOBJECT_VERSION))
- @$(call install_fixup, pygobject,SECTION,base)
- @$(call install_fixup, pygobject,AUTHOR,"Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>")
- @$(call install_fixup, pygobject,DESCRIPTION,missing)
-
- @$(call install_lib, pygobject, 0, 0, 0644, libpyglib-2.0-python$(PYTHON_MAJORMINOR))
-
- @$(call install_copy, pygobject, 0, 0, 0644, -, $(PYTHON_SITEPACKAGES)/pygtk.pth)
-
- @$(foreach pyc, \
- pygtk.pyc \
- gtk-2.0/glib/option.pyc \
- gtk-2.0/glib/__init__.pyc \
- gtk-2.0/gobject/__init__.pyc \
- gtk-2.0/gobject/constants.pyc \
- gtk-2.0/gobject/propertyhelper.pyc \
- gtk-2.0/dsextras.pyc \
- gtk-2.0/gio/__init__.pyc, \
- $(call install_copy, pygobject, 0, 0, 0644, -, $(PYTHON_SITEPACKAGES)/$(pyc)); \
- )
-
- @$(foreach pyso, \
- gtk-2.0/glib/_glib.so \
- gtk-2.0/gobject/_gobject.so \
- gtk-2.0/gio/_gio.so \
- gtk-2.0/gio/unix.so, \
- $(call install_copy, pygobject, 0, 0, 0644, -, $(PYTHON_SITEPACKAGES)/$(pyso)); \
- )
-
- @$(call install_finish, pygobject)
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/pyserial.in b/rules/pyserial.in
deleted file mode 100644
index c67a69bac..000000000
--- a/rules/pyserial.in
+++ /dev/null
@@ -1,41 +0,0 @@
-## SECTION=python
-
-menuconfig PYSERIAL
- tristate
- select PYTHON
- prompt "pyserial "
- help
- This module encapsulates the access for the serial port. It provides
- backends for Python running on Windows, Linux, BSD (possibly any
- POSIX compliant system), Jython and IronPython (.NET and Mono). The
- module named "serial" automatically selects the appropriate backend.
-
- - Project Homepage: http://pyserial.sourceforge.net
- - Project page on SourceForge: http://sourceforge.net/projects/pyserial/
- - SVN repository: http://sourceforge.net/svn/?group_id=46487
- - Download Page: http://sourceforge.net/project/showfiles.php?group_id=46487
-
-if PYSERIAL
-
-config PYSERIAL_MINITERM
- bool
- prompt "Install 'miniterm'"
- help
- Install the miniterm script coming with this package.
-
-config PYSERIAL_EXAMPLES
- bool
- prompt "Install usage examples"
- help
- Install the examples coming with this package (for example a serial
- to network forwarder).
-
-config PYSERIAL_TESTS
- bool
- prompt "Install test scripts"
- help
- Install the test scripts coming with this package. They could be useful
- to check if the installation is complete and working. So, they are
- more for development or debugging. Nothing really required.
-
-endif
diff --git a/rules/pyserial.make b/rules/pyserial.make
deleted file mode 100644
index 1431ffc7b..000000000
--- a/rules/pyserial.make
+++ /dev/null
@@ -1,89 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2011 by Juergen Beisert <jbe@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_PYSERIAL) += pyserial
-
-#
-# Paths and names
-#
-PYSERIAL_VERSION := 2.7
-PYSERIAL_MD5 := 794506184df83ef2290de0d18803dd11
-PYSERIAL := pyserial-$(PYSERIAL_VERSION)
-PYSERIAL_SUFFIX := tar.gz
-PYSERIAL_URL := https://pypi.python.org/packages/source/p/pyserial/$(PYSERIAL).$(PYSERIAL_SUFFIX)
-PYSERIAL_SOURCE := $(SRCDIR)/$(PYSERIAL).$(PYSERIAL_SUFFIX)
-PYSERIAL_DIR := $(BUILDDIR)/$(PYSERIAL)
-PYSERIAL_LICENSE := BSD
-ifdef PTXCONF_PYSERIAL_EXAMPLES
-PYSERIAL_DEVPKG := NO
-endif
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-PYSERIAL_CONF_TOOL := python
-PYSERIAL_MAKE_OPT = build -e "/usr/bin/python$(PYTHON_MAJORMINOR)"
-
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/pyserial.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, pyserial)
- @$(call install_fixup, pyserial,PRIORITY,optional)
- @$(call install_fixup, pyserial,SECTION,base)
- @$(call install_fixup, pyserial,AUTHOR,"Juergen Beisert <jbe@pengutronix.de>")
- @$(call install_fixup, pyserial,DESCRIPTION, "Serial Communication for Python")
-
- @$(call install_copy, pyserial, 0, 0, 0755, $(PYTHON_SITEPACKAGES))
- @$(call install_copy, pyserial, 0, 0, 0755, $(PYTHON_SITEPACKAGES)/serial)
- @$(call install_copy, pyserial, 0, 0, 0755, $(PYTHON_SITEPACKAGES)/serial/tools)
- @$(call install_copy, pyserial, 0, 0, 0755, $(PYTHON_SITEPACKAGES)/serial/urlhandler)
-
- @for file in $(shell cd $(PYSERIAL_PKGDIR) && find . -name "*.pyc"); \
- do \
- $(call install_copy, pyserial, 0, 0, 0644, -, /$$file); \
- done
-
-ifdef PTXCONF_PYSERIAL_MINITERM
- $(call install_copy, pyserial, 0, 0, 0755, -, /usr/bin/miniterm.py)
-endif
-
-# there are some examples that could be useful to check and understand this package
-ifdef PTXCONF_PYSERIAL_EXAMPLES
- @for file in run_all_tests.py test_high_load.py test.py test_url.py \
- test_advanced.py test_iolib.py test_readline.py; \
- do \
- $(call install_copy, pyserial, 0, 0, 0755, \
- $(PYSERIAL_DIR)/test/$$file, /usr/bin/$$file); \
- done
-endif
-
-# there are some test scripts that could be useful to check the installation
-ifdef PTXCONF_PYSERIAL_TESTS
- @for file in enhancedserial.py scanlinux.py setup-miniterm-py2exe.py \
- tcp_serial_redirect.py port_publisher.py scan.py \
- setup-rfc2217_server-py2exe.py wxSerialConfigDialog.py \
- rfc2217_server.py scanwin32.py setup-wxTerminal-py2exe.py; \
- do \
- $(call install_copy, pyserial, 0, 0, 0644, \
- $(PYSERIAL_DIR)/examples/$$file, /usr/share/pyserial/$$file); \
- done
-endif
- @$(call install_finish, pyserial)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/pyserial3.make b/rules/pyserial3.make
index f5abf971f..4770e7e1d 100644
--- a/rules/pyserial3.make
+++ b/rules/pyserial3.make
@@ -22,7 +22,9 @@ PYSERIAL3_SUFFIX := tar.gz
PYSERIAL3_URL := https://github.com/pyserial/pyserial/archive/v$(PYSERIAL3_VERSION).$(PYSERIAL3_SUFFIX)
PYSERIAL3_SOURCE := $(SRCDIR)/$(PYSERIAL3).$(PYSERIAL3_SUFFIX)
PYSERIAL3_DIR := $(BUILDDIR)/$(PYSERIAL3)
-PYSERIAL3_LICENSE := BSD
+PYSERIAL3_LICENSE := BSD-3-Clause
+PYSERIAL3_LICENSE_FILES := \
+ file://LICENSE.txt;md5=d476d94926db6e0008a5b3860d1f5c0d
# ----------------------------------------------------------------------------
# Extract
diff --git a/rules/python-imaging.in b/rules/python-imaging.in
deleted file mode 100644
index c64d79e74..000000000
--- a/rules/python-imaging.in
+++ /dev/null
@@ -1,24 +0,0 @@
-## SECTION=python
-
-menuconfig PYTHON_IMAGING
- tristate
- select PYTHON
- select ZLIB
- select FREETYPE if PYTHON_IMAGING_FREETYPE
- select LIBJPEG if PYTHON_IMAGING_JPEG
- prompt "python-imaging "
- help
- FIXME
-
-if PYTHON_IMAGING
-
-config PYTHON_IMAGING_FREETYPE
- bool
- prompt "FreeType support"
-
-config PYTHON_IMAGING_JPEG
- bool
- prompt "jpeg support"
-
-endif
-
diff --git a/rules/python-imaging.make b/rules/python-imaging.make
deleted file mode 100644
index d94fdd59f..000000000
--- a/rules/python-imaging.make
+++ /dev/null
@@ -1,55 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2011 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_PYTHON_IMAGING) += python-imaging
-
-#
-# Paths and names
-#
-PYTHON_IMAGING_VERSION := 1.1.7
-PYTHON_IMAGING_MD5 := fc14a54e1ce02a0225be8854bfba478e
-PYTHON_IMAGING := Imaging-$(PYTHON_IMAGING_VERSION)
-PYTHON_IMAGING_SUFFIX := tar.gz
-PYTHON_IMAGING_URL := http://effbot.org/downloads/$(PYTHON_IMAGING).$(PYTHON_IMAGING_SUFFIX)
-PYTHON_IMAGING_SOURCE := $(SRCDIR)/$(PYTHON_IMAGING).$(PYTHON_IMAGING_SUFFIX)
-PYTHON_IMAGING_DIR := $(BUILDDIR)/$(PYTHON_IMAGING)
-PYTHON_IMAGING_LICENSE := unknown
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-PYTHON_IMAGING_CONF_TOOL := python
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/python-imaging.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, python-imaging)
- @$(call install_fixup, python-imaging,PRIORITY,optional)
- @$(call install_fixup, python-imaging,SECTION,base)
- @$(call install_fixup, python-imaging,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
- @$(call install_fixup, python-imaging,DESCRIPTION,missing)
-
- @for file in `find $(PYTHON_IMAGING_PKGDIR)/usr/lib/python$(PYTHON_MAJORMINOR)/site-packages/PIL \
- ! -type d ! -name "*.py" -printf "%f\n"`; do \
- $(call install_copy, python-imaging, 0, 0, 0644, -, \
- /usr/lib/python$(PYTHON_MAJORMINOR)/site-packages/PIL/$$file); \
- done
-
- @$(call install_finish, python-imaging)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/python-protobuf.in b/rules/python-protobuf.in
deleted file mode 100644
index b22bc715c..000000000
--- a/rules/python-protobuf.in
+++ /dev/null
@@ -1,13 +0,0 @@
-## SECTION=python
-
-config PYTHON_PROTOBUF
- tristate
- select PROTOBUF
- select PYTHON
- select HOST_PYTHON_SETUPTOOLS
- prompt "python-protobuf"
- help
- Protocol Buffers are a way of encoding structured data in an
- efficient yet extensible format.
- This package contains the Python bindings for protobuf.
-
diff --git a/rules/python-protobuf.make b/rules/python-protobuf.make
deleted file mode 100644
index d9ea6e5d0..000000000
--- a/rules/python-protobuf.make
+++ /dev/null
@@ -1,58 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2014 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_PYTHON_PROTOBUF) += python-protobuf
-
-#
-# Paths and names
-#
-PYTHON_PROTOBUF_VERSION = $(PROTOBUF_VERSION)
-PYTHON_PROTOBUF_MD5 = $(PROTOBUF_MD5)
-PYTHON_PROTOBUF = python-$(PROTOBUF)
-PYTHON_PROTOBUF_SUFFIX = $(PROTOBUF_SUFFIX)
-PYTHON_PROTOBUF_URL = $(PROTOBUF_URL)
-PYTHON_PROTOBUF_SOURCE = $(SRCDIR)/$(PROTOBUF).$(PYTHON_PROTOBUF_SUFFIX)
-PYTHON_PROTOBUF_DIR = $(BUILDDIR)/$(PYTHON_PROTOBUF)
-PYTHON_PROTOBUF_SUBDIR = python
-PYTHON_PROTOBUF_LICENSE = $(PROTOBUF_LICENSE)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-PYTHON_PROTOBUF_CONF_TOOL := python
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/python-protobuf.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, python-protobuf)
- @$(call install_fixup, python-protobuf,PRIORITY,optional)
- @$(call install_fixup, python-protobuf,SECTION,base)
- @$(call install_fixup, python-protobuf,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
- @$(call install_fixup, python-protobuf,DESCRIPTION,missing)
-
- @for file in `find $(PYTHON_PROTOBUF_PKGDIR)/usr/lib/python$(PYTHON_MAJORMINOR)/site-packages/google \
- ! -type d ! -name "*.py" -printf "%P\n"`; do \
- $(call install_copy, python-protobuf, 0, 0, 0644, -, \
- /usr/lib/python$(PYTHON_MAJORMINOR)/site-packages/google/$$file); \
- done
- @$(call install_copy, python-protobuf, 0, 0, 0644, -, \
- /usr/lib/python$(PYTHON_MAJORMINOR)/site-packages/protobuf-$(PYTHON_PROTOBUF_VERSION)-py$(PYTHON_MAJORMINOR)-nspkg.pth)
-
- @$(call install_finish, python-protobuf)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/python-pyro.in b/rules/python-pyro.in
deleted file mode 100644
index 83e6ab947..000000000
--- a/rules/python-pyro.in
+++ /dev/null
@@ -1,20 +0,0 @@
-## SECTION=python
-
-config PYTHON_PYRO
- tristate
- prompt "python-pyro"
- select PYTHON
- select HOST_PYTHON_SETUPTOOLS
-
- help
- Pyro is a library that enables you to build applications
- in which objects can talk to each other over the network,
- with minimal programming effort. You can just use normal
- Python method calls, with almost every possible parameter
- and return value type, and Pyro takes care of locating the
- right object on the right computer to execute the method.
- It is designed to be very easy to use, and to generally stay
- out of your way. But it also provides a set of powerful features
- that enables you to build distributed applications rapidly and
- effortlessly. Pyro is written in 100% pure Python and therefore
- runs on many platforms and Python versions, including Python 3.x
diff --git a/rules/python-pyro.make b/rules/python-pyro.make
deleted file mode 100644
index fd39c73dc..000000000
--- a/rules/python-pyro.make
+++ /dev/null
@@ -1,56 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2019 by Niklas Reisser <niklas.reisser@de.bosch.com>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_PYTHON_PYRO) += python-pyro
-
-#
-# Paths and names
-#
-
-PYTHON_PYRO_VERSION := 4.76
-PYTHON_PYRO := Pyro4-$(PYTHON_PYRO_VERSION)
-PYTHON_PYRO_MD5 := 03a09990328c9f2388ac806fa734689c
-PYTHON_PYRO_SUFFIX := tar.gz
-PYTHON_PYRO_URL := https://github.com/irmen/Pyro4/archive/$(PYTHON_PYRO_VERSION).$(PYTHON_PYRO_SUFFIX)
-PYTHON_PYRO_SOURCE := $(SRCDIR)/$(PYTHON_PYRO).$(PYTHON_PYRO_SUFFIX)
-PYTHON_PYRO_DIR := $(BUILDDIR)/$(PYTHON_PYRO)
-PYTHON_PYRO_DEVPKG := NO
-PYTHON_PYRO_LICENSE := MIT
-PYTHON_PYRO_LICENSE_FILES := file://LICENSE;md5=cd13dafd4eeb0802bb6efea6b4a4bdbc
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-PYTHON_PYRO_CONF_TOOL := python
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/python-pyro.targetinstall:
- @$(call targetinfo)
- @$(call install_init, python-pyro)
-
- @$(call install_fixup, python-pyro, PRIORITY, optional)
- @$(call install_fixup, python-pyro, VERSION, $(PYTHON_PYRO_VERSION))
- @$(call install_fixup, python-pyro, AUTHOR, "Niklas Reisser <niklas.reisser@de.bosch.com>")
- @$(call install_fixup, python-pyro, DESCRIPTION, missing)
- @$(call install_fixup, python-pyro, DEPENDS, )
-
- @$(call install_glob, python-pyro, 0, 0, -, \
- /usr/lib/python$(PYTHON_MAJORMINOR)/site-packages/Pyro4,, *.py)
-
- @$(call install_finish,python-pyro)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/python-routing.in b/rules/python-routing.in
deleted file mode 100644
index 5a2c62aaa..000000000
--- a/rules/python-routing.in
+++ /dev/null
@@ -1,14 +0,0 @@
-## SECTION=python
-
-config PYTHON_ROUTING
- tristate
- select HOST_CYTHON
- select PYTHON
- select LIBNL3
- select LIBNL3_ENABLE_CLI
- prompt "python-routing"
- help
- This is yet another python binding for the libnl3. This bidning
- was written to encompass the "route" module which isn't encompassed
- by any other libnl3 python binding. The special route module is
- necessary for the simpleRPL implementation.
diff --git a/rules/python-routing.make b/rules/python-routing.make
deleted file mode 100644
index 71cf24315..000000000
--- a/rules/python-routing.make
+++ /dev/null
@@ -1,50 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2014 by Alexander Aring <aar@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_PYTHON_ROUTING) += python-routing
-
-#
-# Paths and names
-#
-PYTHON_ROUTING_VERSION := 1.0
-PYTHON_ROUTING_MD5 := 2ef6adf2ab6a2f303600999546198a69
-PYTHON_ROUTING := python_routing-$(PYTHON_ROUTING_VERSION)
-PYTHON_ROUTING_SUFFIX := tar.gz
-PYTHON_ROUTING_URL := http://cakelab.org/~eintopf/RPL/$(PYTHON_ROUTING).$(PYTHON_ROUTING_SUFFIX)
-PYTHON_ROUTING_SOURCE := $(SRCDIR)/$(PYTHON_ROUTING).$(PYTHON_ROUTING_SUFFIX)
-PYTHON_ROUTING_DIR := $(BUILDDIR)/$(PYTHON_ROUTING)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-PYTHON_ROUTING_CONF_TOOL := python
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/python-routing.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, python-routing)
- @$(call install_fixup, python-routing,PRIORITY,optional)
- @$(call install_fixup, python-routing,SECTION,base)
- @$(call install_fixup, python-routing,AUTHOR,"Alexander Aring <aar@pengutronix.de>")
- @$(call install_fixup, python-routing,DESCRIPTION,missing)
-
- @$(call install_copy, python-routing, 0, 0, 0644, -, $(PYTHON_SITEPACKAGES)/Routing.so)
-
- @$(call install_finish, python-routing)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/python-rplicmp.in b/rules/python-rplicmp.in
deleted file mode 100644
index 75fedc509..000000000
--- a/rules/python-rplicmp.in
+++ /dev/null
@@ -1,11 +0,0 @@
-## SECTION=python
-
-config PYTHON_RPLICMP
- tristate
- prompt "python-rplicmp"
- select HOST_CYTHON
- select PYTHON
- select LIBCAP
- help
- This module allows easy creation of ICMPv6 socket in Python tailored to
- send RPL messages.
diff --git a/rules/python-rplicmp.make b/rules/python-rplicmp.make
deleted file mode 100644
index b231bae09..000000000
--- a/rules/python-rplicmp.make
+++ /dev/null
@@ -1,50 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2014 by Alexander Aring <aar@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_PYTHON_RPLICMP) += python-rplicmp
-
-#
-# Paths and names
-#
-PYTHON_RPLICMP_VERSION := 1.0
-PYTHON_RPLICMP_MD5 := b2d9a93beb095826fce6e4752fb63491
-PYTHON_RPLICMP := python_rplicmp-$(PYTHON_RPLICMP_VERSION)
-PYTHON_RPLICMP_SUFFIX := tar.gz
-PYTHON_RPLICMP_URL := http://cakelab.org/~eintopf/RPL/$(PYTHON_RPLICMP).$(PYTHON_RPLICMP_SUFFIX)
-PYTHON_RPLICMP_SOURCE := $(SRCDIR)/$(PYTHON_RPLICMP).$(PYTHON_RPLICMP_SUFFIX)
-PYTHON_RPLICMP_DIR := $(BUILDDIR)/$(PYTHON_RPLICMP)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-PYTHON_RPLICMP_CONF_TOOL := python
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/python-rplicmp.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, python-rplicmp)
- @$(call install_fixup, python-rplicmp,PRIORITY,optional)
- @$(call install_fixup, python-rplicmp,SECTION,base)
- @$(call install_fixup, python-rplicmp,AUTHOR,"Alexander Aring <aar@pengutronix.de>")
- @$(call install_fixup, python-rplicmp,DESCRIPTION,missing)
-
- @$(call install_copy, python-rplicmp, 0, 0, 0644, -, $(PYTHON_SITEPACKAGES)/RplIcmp.so)
-
- @$(call install_finish, python-rplicmp)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/python.in b/rules/python.in
deleted file mode 100644
index 9574bff54..000000000
--- a/rules/python.in
+++ /dev/null
@@ -1,70 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=scripting_languages
-
-menuconfig PYTHON
- tristate "python "
- select LIBC_DL
- select LIBC_UTIL
- select LIBC_PTHREAD
- select HOST_PYTHON
- select GCCLIBS_CXX
- select EXPAT
- select LIBFFI
- select NCURSES if PYTHON_NCURSES
- select SQLITE if PYTHON_SQLITE
- select BZIP2 if PYTHON_BZ2
- select BZIP2_LIBBZ2 if PYTHON_BZ2
- select ZLIB if PYTHON_ZLIB
- select READLINE if PYTHON_READLINE
- select DB if PYTHON_DB
- select OPENSSL if PYTHON_HASHLIB
- help
- Python is a dynamic object-oriented programming
- language that can be used for many kinds of
- software development. It offers strong support
- for integration with other languages and tools,
- comes with extensive standard libraries, and
- can be learned in a few days.
-
- STAGING: remove in PTXdist 2022.01.0
- Python 2.7 EOL was a year ago.
-
-if PYTHON
-
-config PYTHON_NCURSES
- bool "ncurses bindings"
-
-config PYTHON_SQLITE
- bool "sqlite bindings"
-
-config PYTHON_BZ2
- bool "libbz2 bindings"
-
-config PYTHON_ZLIB
- bool "zlib bindings"
-
-config PYTHON_READLINE
- bool "readline bindings"
-
-config PYTHON_DB
- bool "db bindings"
-
-config PYTHON_SYMLINK
- bool
- prompt "install symbolic link /usr/bin/python"
- default y
-
-config PYTHON_DISTUTILS
- bool
- prompt "Include distutils packages"
-
-config PYTHON_HASHLIB
- bool
- prompt "Include hashlib package"
-
-endif
-
-menu "python Extra Modules "
-source "generated/python.in"
-endmenu
diff --git a/rules/python.make b/rules/python.make
deleted file mode 100644
index 6bb9ae8fd..000000000
--- a/rules/python.make
+++ /dev/null
@@ -1,210 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2009 by Marc Kleine-Budde <mkl@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_PYTHON) += python
-
-#
-# Paths and names
-#
-PYTHON_VERSION := 2.7.18
-PYTHON_MD5 := fd6cc8ec0a78c44036f825e739f36e5a
-PYTHON_MAJORMINOR := $(basename $(PYTHON_VERSION))
-PYTHON_SITEPACKAGES := /usr/lib/python$(PYTHON_MAJORMINOR)/site-packages
-PYTHON := Python-$(PYTHON_VERSION)
-PYTHON_SUFFIX := tar.xz
-PYTHON_SOURCE := $(SRCDIR)/$(PYTHON).$(PYTHON_SUFFIX)
-PYTHON_DIR := $(BUILDDIR)/$(PYTHON)
-PYTHON_LICENSE := PYTHON
-PYTHON_DEVPKG := NO
-
-PYTHON_URL := \
- http://python.org/ftp/python/$(PYTHON_VERSION)/$(PYTHON).$(PYTHON_SUFFIX) \
- http://python.org/ftp/python/$(PYTHON_MAJORMINOR)/$(PYTHON).$(PYTHON_SUFFIX)
-
-CROSS_PYTHON := $(PTXDIST_SYSROOT_CROSS)/bin/python$(PYTHON_MAJORMINOR)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-PYTHON_PATH := PATH=$(CROSS_PATH)
-PYTHON_CONF_ENV := \
- $(CROSS_ENV) \
- PYTHON_FOR_BUILD=$(PTXDIST_SYSROOT_CROSS)/bin/build-python \
- ac_sys_system=Linux \
- ac_sys_release=2 \
- MACHDEP=linux2 \
- ac_cv_have_chflags=no \
- ac_cv_have_lchflags=no \
- ac_cv_have_size_t_format=yes \
- ac_cv_broken_sem_getvalue=no \
- ac_cv_buggy_getaddrinfo=no \
- ac_cv_file__dev_ptmx=yes \
- ac_cv_file__dev_ptc=no \
- ac_cv_have_long_long_format=yes
-
-PYTHON_BINCONFIG_GLOB := ""
-
-#
-# autoconf
-#
-PYTHON_AUTOCONF := \
- $(CROSS_AUTOCONF_USR) \
- --enable-shared \
- --disable-profiling \
- --disable-optimizations \
- --disable-toolbox-glue \
- $(GLOBAL_IPV6_OPTION) \
- --without-pydebug \
- --without-lto \
- --with-system-expat \
- --with-system-ffi \
- --with-signal-module \
- --with-threads \
- --without-doc-strings \
- --with-pymalloc \
- --without-valgrind \
- --with-wctype-functions \
- --with-fpectl \
- --with-computed-gotos \
- --without-ensurepip
-
-PYTHON_BUILD_PYTHONPATH := \
- $(PTXDIST_SYSROOT_HOST)/lib/python$(PYTHON_MAJORMINOR)/lib-dynload \
- $(PYTHON_DIR)/build/lib.linux2-$(PTXCONF_ARCH_STRING)-$(PYTHON_MAJORMINOR) \
- $(PYTHON_DIR)/Lib \
- $(PYTHON_DIR)/Lib/plat-linux2
-
-$(STATEDIR)/python.prepare:
- @$(call targetinfo)
-
- @rm -f $(PTXDIST_SYSROOT_CROSS)/bin/{link,build}-python
- @ln -s $(PTXDIST_SYSROOT_HOST)/bin/python$(PYTHON_MAJORMINOR) \
- $(PTXDIST_SYSROOT_CROSS)/bin/link-python
- @echo '#!/bin/sh' >> $(PTXDIST_SYSROOT_CROSS)/bin/build-python
- @echo '' >> $(PTXDIST_SYSROOT_CROSS)/bin/build-python
- @echo '_PYTHON_PROJECT_BASE="$(PYTHON_DIR)"' >> $(PTXDIST_SYSROOT_CROSS)/bin/build-python
- @echo '_PYTHON_HOST_PLATFORM=linux2-$(PTXCONF_ARCH_STRING)' >> $(PTXDIST_SYSROOT_CROSS)/bin/build-python
- @echo 'PYTHONPATH=$(subst $(space),:,$(PYTHON_BUILD_PYTHONPATH))' \
- >> $(PTXDIST_SYSROOT_CROSS)/bin/build-python
- @echo 'export _PYTHON_PROJECT_BASE _PYTHON_HOST_PLATFORM PYTHONPATH' \
- >> $(PTXDIST_SYSROOT_CROSS)/bin/build-python
- @echo '' >> $(PTXDIST_SYSROOT_CROSS)/bin/build-python
- @echo 'exec $(PTXDIST_SYSROOT_CROSS)/bin/link-python "$${@}"' >> $(PTXDIST_SYSROOT_CROSS)/bin/build-python
- @chmod a+x $(PTXDIST_SYSROOT_CROSS)/bin/build-python
-
- @$(call world/prepare, PYTHON)
- @$(call touch)
-
-PYTHON_MAKE_OPT := \
- PGEN_FOR_BUILD=$(PTXDIST_SYSROOT_HOST)/bin/pgen
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/python.install:
- @$(call targetinfo)
- @$(call install, PYTHON)
- @sed -i \
- -e "s:$(SYSROOT):@SYSROOT@:g" \
- -e "s:$(PTXDIST_SYSROOT_HOST):@SYSROOT_HOST@:g" \
- $(PYTHON_PKGDIR)/usr/lib/python$(PYTHON_MAJORMINOR)/config/Makefile
- @$(call touch)
-
-PYTHON_PYTHONPATH := \
- $(SYSROOT)/usr/lib/python$(PYTHON_MAJORMINOR) \
- $(SYSROOT)/usr/lib/python$(PYTHON_MAJORMINOR)/plat-linux2 \
- $(PTXDIST_SYSROOT_HOST)/lib/python$(PYTHON_MAJORMINOR)/lib-dynload \
- $(PTXDIST_SYSROOT_HOST)/lib/python$(PYTHON_MAJORMINOR)/site-packages
-
-$(STATEDIR)/python.install.post:
- @$(call targetinfo)
- @sed -i \
- -e "s:@SYSROOT@:$(SYSROOT):g" \
- -e "s:@SYSROOT_HOST@:$(PTXDIST_SYSROOT_HOST):g" \
- $(PYTHON_PKGDIR)/usr/lib/python$(PYTHON_MAJORMINOR)/config/Makefile
-
- @$(call world/install.post, PYTHON)
- @rm -f "$(CROSS_PYTHON)"
- @echo '#!/bin/sh' >> "$(CROSS_PYTHON)"
- @echo '' >> "$(CROSS_PYTHON)"
- @echo 'PYTHONHOME=$(SYSROOT)/usr' >> "$(CROSS_PYTHON)"
- @echo '_PYTHON_HOST_PLATFORM=linux2-$(PTXCONF_ARCH_STRING)' >> "$(CROSS_PYTHON)"
- @echo 'PYTHONPATH=$(subst $(space),:,$(PYTHON_PYTHONPATH))' >> "$(CROSS_PYTHON)"
- @echo 'export _PYTHON_HOST_PLATFORM PYTHONPATH PYTHONHOME' >> "$(CROSS_PYTHON)"
- @echo '' >> "$(CROSS_PYTHON)"
- @echo 'exec $(PTXDIST_SYSROOT_HOST)/bin/python$(PYTHON_MAJORMINOR) "$${@}"' \
- >> "$(CROSS_PYTHON)"
- @chmod a+x "$(CROSS_PYTHON)"
-
- @echo "#!/bin/sh" \
- > "$(CROSS_PYTHON)-config"
- @echo "exec \
- \"$(CROSS_PYTHON)\" \
- \"$(PTXDIST_SYSROOT_HOST)/bin/python$(PYTHON_MAJORMINOR)-config\" \
- \"\$${@}\"" \
- >> "$(CROSS_PYTHON)-config"
- @chmod a+x "$(CROSS_PYTHON)-config"
- @ln -sf "python$(PYTHON_MAJORMINOR)-config" \
- "$(PTXDIST_SYSROOT_CROSS)/bin/python-config"
-
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-PYTHON_SKIP-y := lib-tk idlelib
-PYTHON_SKIP-$(call ptx/opt-dis, PTXCONF_PYTHON_DISTUTILS) += distutils
-
-ifneq ($(PYTHON_SKIP-y),)
-PYTHON_SKIP_LIST_PRE :=-a \! -wholename $(quote)*/
-PYTHON_SKIP_LIST_POST :=/*$(quote)
-
-PYTHON_SKIP_LIST := $(subst $(space),$(PYTHON_SKIP_LIST_POST) $(PYTHON_SKIP_LIST_PRE),$(PYTHON_SKIP-y))
-PYTHON_SKIP_LIST := $(PYTHON_SKIP_LIST_PRE)$(PYTHON_SKIP_LIST)$(PYTHON_SKIP_LIST_POST)
-endif
-
-# may add extra dependencies and is not useful for embedded
-PYTHON_SKIP_LIST += -a \! -name nis.*
-
-$(STATEDIR)/python.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, python)
- @$(call install_fixup, python,PRIORITY,optional)
- @$(call install_fixup, python,SECTION,base)
- @$(call install_fixup, python,AUTHOR,"Marc Kleine-Budde <mkl@pengutronix.de>")
- @$(call install_fixup, python,DESCRIPTION,missing)
-
- @cd $(PYTHON_PKGDIR) && \
- find ./usr/lib/python$(PYTHON_MAJORMINOR) \
- \! -wholename "*/test/*" -a \! -wholename "*/tests/*" \
- $(PYTHON_SKIP_LIST) \
- -a \( -name "*.so" -o -name "*.pyc" \) | \
- while read file; do \
- $(call install_copy, python, 0, 0, 0644, -, $${file##.}); \
- done
-
- @$(call install_copy, python, 0, 0, 0755, -, /usr/bin/python$(PYTHON_MAJORMINOR))
- @$(call install_link, python, python$(PYTHON_MAJORMINOR), /usr/bin/python2)
- @$(call install_lib, python, 0, 0, 0644, libpython$(PYTHON_MAJORMINOR))
-
-ifdef PTXCONF_PYTHON_SYMLINK
- @$(call install_link, python, python$(PYTHON_MAJORMINOR), /usr/bin/python)
-endif
-
- @$(call install_finish, python)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/python3-adbus.make b/rules/python3-adbus.make
index 6f0dd91b7..9aec636de 100644
--- a/rules/python3-adbus.make
+++ b/rules/python3-adbus.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_PYTHON3_ADBUS) += python3-adbus
#
# Paths and names
#
-PYTHON3_ADBUS_VERSION := 1.1.3
-PYTHON3_ADBUS_MD5 := 6802bdf83110edaf3b76dcd00f7aadbf
+PYTHON3_ADBUS_VERSION := 1.2.0
+PYTHON3_ADBUS_MD5 := 4056b5f7820d928a1716426e50aef6bd
PYTHON3_ADBUS := adbus-$(PYTHON3_ADBUS_VERSION)
PYTHON3_ADBUS_SUFFIX := tar.gz
PYTHON3_ADBUS_URL := $(call ptx/mirror-pypi, adbus, $(PYTHON3_ADBUS).$(PYTHON3_ADBUS_SUFFIX))
diff --git a/rules/python3-aiofiles.make b/rules/python3-aiofiles.make
index 8974572b5..30117ac9d 100644
--- a/rules/python3-aiofiles.make
+++ b/rules/python3-aiofiles.make
@@ -14,14 +14,15 @@ PACKAGES-$(PTXCONF_PYTHON3_AIOFILES) += python3-aiofiles
#
# Paths and names
#
-PYTHON3_AIOFILES_VERSION := 0.3.2
-PYTHON3_AIOFILES_MD5 := 726de778d9e4b1c6d5e4d04994a03505
+PYTHON3_AIOFILES_VERSION := 23.1.0
+PYTHON3_AIOFILES_MD5 := d648a31366030470c97401741747065f
PYTHON3_AIOFILES := aiofiles-$(PYTHON3_AIOFILES_VERSION)
PYTHON3_AIOFILES_SUFFIX := tar.gz
-PYTHON3_AIOFILES_URL := https://pypi.python.org/packages/a4/49/f983f0bc7572edad5bbbaf0f91087f1448aee8ba55046f15bb464fb8bb63/$(PYTHON3_AIOFILES).$(PYTHON3_AIOFILES_SUFFIX)
+PYTHON3_AIOFILES_URL := $(call ptx/mirror-pypi, aiofiles, $(PYTHON3_AIOFILES).$(PYTHON3_AIOFILES_SUFFIX))
PYTHON3_AIOFILES_SOURCE := $(SRCDIR)/$(PYTHON3_AIOFILES).$(PYTHON3_AIOFILES_SUFFIX)
PYTHON3_AIOFILES_DIR := $(BUILDDIR)/$(PYTHON3_AIOFILES)
PYTHON3_AIOFILES_LICENSE := Apache-2.0
+PYTHON3_AIOFILES_LICENSE_FILES := file://LICENSE;md5=d2794c0df5b907fdace235a619d80314
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/python3-aiohttp-json-rpc.make b/rules/python3-aiohttp-json-rpc.make
index f8df71e53..3c1dd7c63 100644
--- a/rules/python3-aiohttp-json-rpc.make
+++ b/rules/python3-aiohttp-json-rpc.make
@@ -18,7 +18,7 @@ PYTHON3_AIOHTTP_JSON_RPC_VERSION := 0.11.2
PYTHON3_AIOHTTP_JSON_RPC_MD5 := b1c50cd12a19183c568fea8dbb45fefe
PYTHON3_AIOHTTP_JSON_RPC := aiohttp-json-rpc-$(PYTHON3_AIOHTTP_JSON_RPC_VERSION)
PYTHON3_AIOHTTP_JSON_RPC_SUFFIX := tar.gz
-PYTHON3_AIOHTTP_JSON_RPC_URL := https://pypi.io/packages/source/a/aiohttp-json-rpc/$(PYTHON3_AIOHTTP_JSON_RPC).$(PYTHON3_AIOHTTP_JSON_RPC_SUFFIX)
+PYTHON3_AIOHTTP_JSON_RPC_URL := $(call ptx/mirror-pypi, aiohttp-json-rpc, $(PYTHON3_AIOHTTP_JSON_RPC).$(PYTHON3_AIOHTTP_JSON_RPC_SUFFIX))
PYTHON3_AIOHTTP_JSON_RPC_SOURCE := $(SRCDIR)/$(PYTHON3_AIOHTTP_JSON_RPC).$(PYTHON3_AIOHTTP_JSON_RPC_SUFFIX)
PYTHON3_AIOHTTP_JSON_RPC_DIR := $(BUILDDIR)/$(PYTHON3_AIOHTTP_JSON_RPC)
PYTHON3_AIOHTTP_JSON_RPC_LICENSE := Apache-2.0
diff --git a/rules/python3-aiohttp.in b/rules/python3-aiohttp.in
index 6e9d4a2db..333d78e58 100644
--- a/rules/python3-aiohttp.in
+++ b/rules/python3-aiohttp.in
@@ -9,6 +9,9 @@ config PYTHON3_AIOHTTP
select PYTHON3_YARL if RUNTIME
select PYTHON3_ASYNC_TIMEOUT if RUNTIME
select PYTHON3_ATTRS if RUNTIME
+ select PYTHON3_IDNA_SSL if RUNTIME
+ select PYTHON3_CHARSET_NORMALIZER if RUNTIME
+ select PYTHON3_AIOSIGNAL if RUNTIME
prompt "aiohttp"
help
http client/server for asyncio
diff --git a/rules/python3-aiohttp.make b/rules/python3-aiohttp.make
index 7ced97fd3..a49f8f3cc 100644
--- a/rules/python3-aiohttp.make
+++ b/rules/python3-aiohttp.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_PYTHON3_AIOHTTP) += python3-aiohttp
#
# Paths and names
#
-PYTHON3_AIOHTTP_VERSION := 3.6.2
-PYTHON3_AIOHTTP_MD5 := ca40144c199a09fc1a141960cf6295f0
+PYTHON3_AIOHTTP_VERSION := 3.8.4
+PYTHON3_AIOHTTP_MD5 := 8208bc4b519ac4520720577f93561855
PYTHON3_AIOHTTP := aiohttp-$(PYTHON3_AIOHTTP_VERSION)
PYTHON3_AIOHTTP_SUFFIX := tar.gz
PYTHON3_AIOHTTP_URL := $(call ptx/mirror-pypi, aiohttp, $(PYTHON3_AIOHTTP).$(PYTHON3_AIOHTTP_SUFFIX))
diff --git a/rules/python3-aiosignal.in b/rules/python3-aiosignal.in
new file mode 100644
index 000000000..15ed37188
--- /dev/null
+++ b/rules/python3-aiosignal.in
@@ -0,0 +1,9 @@
+## SECTION=python3
+
+config PYTHON3_AIOSIGNAL
+ tristate
+ select PYTHON3
+ select PYTHON3_FROZENLIST if RUNTIME
+ prompt "aiosignal"
+ help
+ A project to manage callbacks in asyncio projects
diff --git a/rules/python3-aiosignal.make b/rules/python3-aiosignal.make
new file mode 100644
index 000000000..46979c6bd
--- /dev/null
+++ b/rules/python3-aiosignal.make
@@ -0,0 +1,54 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Enrico Jorns <e.joern@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_AIOSIGNAL) += python3-aiosignal
+
+#
+# Paths and names
+#
+PYTHON3_AIOSIGNAL_VERSION := 1.2.0
+PYTHON3_AIOSIGNAL_MD5 := 011700c3acc576a3a38deade6a4860cb
+PYTHON3_AIOSIGNAL := aiosignal-$(PYTHON3_AIOSIGNAL_VERSION)
+PYTHON3_AIOSIGNAL_SUFFIX := tar.gz
+PYTHON3_AIOSIGNAL_URL := $(call ptx/mirror-pypi, aiosignal, $(PYTHON3_AIOSIGNAL).$(PYTHON3_AIOSIGNAL_SUFFIX))
+PYTHON3_AIOSIGNAL_SOURCE := $(SRCDIR)/$(PYTHON3_AIOSIGNAL).$(PYTHON3_AIOSIGNAL_SUFFIX)
+PYTHON3_AIOSIGNAL_DIR := $(BUILDDIR)/$(PYTHON3_AIOSIGNAL)
+PYTHON3_AIOSIGNAL_LICENSE := Apache-2.0
+PYTHON3_AIOSIGNAL_LICENSE_FILES := \
+ file://LICENSE;md5=cf056e8e7a0a5477451af18b7b5aa98c
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_AIOSIGNAL_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-aiosignal.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-aiosignal)
+ @$(call install_fixup, python3-aiosignal,PRIORITY,optional)
+ @$(call install_fixup, python3-aiosignal,SECTION,base)
+ @$(call install_fixup, python3-aiosignal,AUTHOR,"Enrico Jorns <e.joern@pengutronix.de>")
+ @$(call install_fixup, python3-aiosignal,DESCRIPTION,"A project to manage callbacks in asyncio projects")
+
+ @$(call install_glob, python3-aiosignal, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES),, *.py)
+
+ @$(call install_finish, python3-aiosignal)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-aiosqlite.in b/rules/python3-aiosqlite.in
new file mode 100644
index 000000000..199da0449
--- /dev/null
+++ b/rules/python3-aiosqlite.in
@@ -0,0 +1,12 @@
+## SECTION=python3
+
+config PYTHON3_AIOSQLITE
+ tristate
+ select PYTHON3
+ select PYTHON3_SQLITE
+ prompt "aiosqlite"
+ help
+ aiosqlite provides a friendly, async interface to sqlite databases.
+ It replicates the standard sqlite3 module,
+ but with async versions of all the standard connection and cursor methods,
+ plus context managers for automatically closing connections and cursors
diff --git a/rules/python3-aiosqlite.make b/rules/python3-aiosqlite.make
new file mode 100644
index 000000000..f8795022c
--- /dev/null
+++ b/rules/python3-aiosqlite.make
@@ -0,0 +1,53 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Artur Wiebe <artur@4wiebe.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_AIOSQLITE) += python3-aiosqlite
+
+#
+# Paths and names
+#
+PYTHON3_AIOSQLITE_VERSION := 0.18.0
+PYTHON3_AIOSQLITE_MD5 := 1ebed736d07d246f473d0e09a5d1cbf7
+PYTHON3_AIOSQLITE := aiosqlite-$(PYTHON3_AIOSQLITE_VERSION)
+PYTHON3_AIOSQLITE_SUFFIX := tar.gz
+PYTHON3_AIOSQLITE_URL := $(call ptx/mirror-pypi, aiosqlite, $(PYTHON3_AIOSQLITE).$(PYTHON3_AIOSQLITE_SUFFIX))
+PYTHON3_AIOSQLITE_SOURCE := $(SRCDIR)/$(PYTHON3_AIOSQLITE).$(PYTHON3_AIOSQLITE_SUFFIX)
+PYTHON3_AIOSQLITE_DIR := $(BUILDDIR)/$(PYTHON3_AIOSQLITE)
+PYTHON3_AIOSQLITE_LICENSE := MIT
+PYTHON3_AIOSQLITE_LICENSE_FILES := file://LICENSE;md5=f0c422eaa1f23d09f8203dc0af3e2d54
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_AIOSQLITE_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-aiosqlite.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-aiosqlite)
+ @$(call install_fixup, python3-aiosqlite,PRIORITY,optional)
+ @$(call install_fixup, python3-aiosqlite,SECTION,base)
+ @$(call install_fixup, python3-aiosqlite,AUTHOR,"Artur Wiebe <artur@4wiebe.de>")
+ @$(call install_fixup, python3-aiosqlite,DESCRIPTION,missing)
+
+ @$(call install_glob, python3-aiosqlite, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES)/aiosqlite,, *.py)
+
+ @$(call install_finish, python3-aiosqlite)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-async-timeout.make b/rules/python3-async-timeout.make
index 38a751ed4..fe773876e 100644
--- a/rules/python3-async-timeout.make
+++ b/rules/python3-async-timeout.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_PYTHON3_ASYNC_TIMEOUT) += python3-async-timeout
#
# Paths and names
#
-PYTHON3_ASYNC_TIMEOUT_VERSION := 3.0.1
-PYTHON3_ASYNC_TIMEOUT_MD5 := 305c4fa529f2485c403d0dbe14390175
+PYTHON3_ASYNC_TIMEOUT_VERSION := 4.0.2
+PYTHON3_ASYNC_TIMEOUT_MD5 := 10571272b2e0fab839ec23f8293bf482
PYTHON3_ASYNC_TIMEOUT := async-timeout-$(PYTHON3_ASYNC_TIMEOUT_VERSION)
PYTHON3_ASYNC_TIMEOUT_SUFFIX := tar.gz
PYTHON3_ASYNC_TIMEOUT_URL := $(call ptx/mirror-pypi, async-timeout, $(PYTHON3_ASYNC_TIMEOUT).$(PYTHON3_ASYNC_TIMEOUT_SUFFIX))
diff --git a/rules/python3-asyncua.in b/rules/python3-asyncua.in
new file mode 100644
index 000000000..552a139ee
--- /dev/null
+++ b/rules/python3-asyncua.in
@@ -0,0 +1,15 @@
+## SECTION=python3
+
+config PYTHON3_ASYNCUA
+ tristate
+ select PYTHON3
+ select PYTHON3_AIOFILES if RUNTIME
+ select PYTHON3_AIOSQLITE if RUNTIME
+ select PYTHON3_DATEUTIL if RUNTIME
+ select PYTHON3_PYTZ if RUNTIME
+ select PYTHON3_CRYPTOGRAPHY if RUNTIME
+ select PYTHON3_SORTEDCONTAINERS if RUNTIME
+ select PYTHON3_PYOPENSSL if RUNTIME
+ prompt "asyncua"
+ help
+ OPC UA / IEC 62541 Client and Server for Python
diff --git a/rules/python3-asyncua.make b/rules/python3-asyncua.make
new file mode 100644
index 000000000..0fbf3e4fe
--- /dev/null
+++ b/rules/python3-asyncua.make
@@ -0,0 +1,54 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Artur Wiebe <artur@4wiebe.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_ASYNCUA) += python3-asyncua
+
+#
+# Paths and names
+#
+PYTHON3_ASYNCUA_VERSION := 1.1.0
+PYTHON3_ASYNCUA_MD5 := 3131bf0f9554f91c4f63cbdc019fce8b
+PYTHON3_ASYNCUA := asyncua-$(PYTHON3_ASYNCUA_VERSION)
+PYTHON3_ASYNCUA_SUFFIX := tar.gz
+PYTHON3_ASYNCUA_URL := $(call ptx/mirror-pypi, asyncua, $(PYTHON3_ASYNCUA).$(PYTHON3_ASYNCUA_SUFFIX))
+PYTHON3_ASYNCUA_SOURCE := $(SRCDIR)/$(PYTHON3_ASYNCUA).$(PYTHON3_ASYNCUA_SUFFIX)
+PYTHON3_ASYNCUA_DIR := $(BUILDDIR)/$(PYTHON3_ASYNCUA)
+PYTHON3_ASYNCUA_LICENSE := LGPL-3.0-or-later
+PYTHON3_ASYNCUA_LICENSE_FILES := file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_ASYNCUA_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-asyncua.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-asyncua)
+ @$(call install_fixup, python3-asyncua,PRIORITY,optional)
+ @$(call install_fixup, python3-asyncua,SECTION,base)
+ @$(call install_fixup, python3-asyncua,AUTHOR,"Artur Wiebe <artur@4wiebe.de>")
+ @$(call install_fixup, python3-asyncua,DESCRIPTION,missing)
+
+ # asyncua needs its $(PYTHON3_SITEPACKAGES)/*.egg-info directory!
+ @$(call install_glob, python3-asyncua, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES),, *.py)
+
+ @$(call install_finish, python3-asyncua)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-cffi.in b/rules/python3-cffi.in
index e26714d51..78e3d915f 100644
--- a/rules/python3-cffi.in
+++ b/rules/python3-cffi.in
@@ -3,6 +3,7 @@
config PYTHON3_CFFI
tristate
select PYTHON3
+ select PYTHON3_PYCPARSER if RUNTIME
prompt "python3-cffi"
help
Foreign Function Interface for Python calling C code.
diff --git a/rules/python3-cffi.make b/rules/python3-cffi.make
index 261284916..7edf9fb6f 100644
--- a/rules/python3-cffi.make
+++ b/rules/python3-cffi.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_PYTHON3_CFFI) += python3-cffi
#
# Paths and names
#
-PYTHON3_CFFI_VERSION := 1.13.2
-PYTHON3_CFFI_MD5 := 652203cf99faa254efff7fab23c2f3a2
+PYTHON3_CFFI_VERSION := 1.16.0
+PYTHON3_CFFI_MD5 := 0bcaed453da3004d0bea103038345c1e
PYTHON3_CFFI := cffi-$(PYTHON3_CFFI_VERSION)
PYTHON3_CFFI_SUFFIX := tar.gz
-PYTHON3_CFFI_URL := https://pypi.python.org/packages/source/c/cffi/$(PYTHON3_CFFI).$(PYTHON3_CFFI_SUFFIX)
+PYTHON3_CFFI_URL := $(call ptx/mirror-pypi, cffi, $(PYTHON3_CFFI).$(PYTHON3_CFFI_SUFFIX))
PYTHON3_CFFI_SOURCE := $(SRCDIR)/$(PYTHON3_CFFI).$(PYTHON3_CFFI_SUFFIX)
PYTHON3_CFFI_DIR := $(BUILDDIR)/$(PYTHON3_CFFI)
PYTHON3_CFFI_LICENSE := MIT
diff --git a/rules/python3-charset-normalizer.in b/rules/python3-charset-normalizer.in
new file mode 100644
index 000000000..58167da25
--- /dev/null
+++ b/rules/python3-charset-normalizer.in
@@ -0,0 +1,8 @@
+## SECTION=python3
+
+config PYTHON3_CHARSET_NORMALIZER
+ tristate
+ select PYTHON3
+ prompt "charset-normalizer"
+ help
+ Truly universal encoding detector in pure Python
diff --git a/rules/python3-charset-normalizer.make b/rules/python3-charset-normalizer.make
new file mode 100644
index 000000000..95c93bf55
--- /dev/null
+++ b/rules/python3-charset-normalizer.make
@@ -0,0 +1,53 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Enrico Jorns <e.joerns@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_CHARSET_NORMALIZER) += python3-charset-normalizer
+
+#
+# Paths and names
+#
+PYTHON3_CHARSET_NORMALIZER_VERSION := 2.0.12
+PYTHON3_CHARSET_NORMALIZER_MD5 := f6664e0e90dbb3cc9cfc154a980f9864
+PYTHON3_CHARSET_NORMALIZER := charset-normalizer-$(PYTHON3_CHARSET_NORMALIZER_VERSION)
+PYTHON3_CHARSET_NORMALIZER_SUFFIX := tar.gz
+PYTHON3_CHARSET_NORMALIZER_URL := $(call ptx/mirror-pypi, charset-normalizer, $(PYTHON3_CHARSET_NORMALIZER).$(PYTHON3_CHARSET_NORMALIZER_SUFFIX))
+PYTHON3_CHARSET_NORMALIZER_SOURCE := $(SRCDIR)/$(PYTHON3_CHARSET_NORMALIZER).$(PYTHON3_CHARSET_NORMALIZER_SUFFIX)
+PYTHON3_CHARSET_NORMALIZER_DIR := $(BUILDDIR)/$(PYTHON3_CHARSET_NORMALIZER)
+PYTHON3_CHARSET_NORMALIZER_LICENSE := MIT
+PYTHON3_CHARSET_NORMALIZER_LICENSE_FILES := file://LICENSE;md5=0974a390827087287db39928f7c524b5
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_CHARSET_NORMALIZER_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-charset-normalizer.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-charset-normalizer)
+ @$(call install_fixup, python3-charset-normalizer,PRIORITY,optional)
+ @$(call install_fixup, python3-charset-normalizer,SECTION,base)
+ @$(call install_fixup, python3-charset-normalizer,AUTHOR,"Enrico Jorns <e.joerns@pengutronix.de>")
+ @$(call install_fixup, python3-charset-normalizer,DESCRIPTION,"Truly universal encoding detector in pure Python")
+
+ @$(call install_glob, python3-charset-normalizer, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES),, *.py)
+
+ @$(call install_finish, python3-charset-normalizer)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-configshell.make b/rules/python3-configshell.make
index 60642b987..907ac2fa4 100644
--- a/rules/python3-configshell.make
+++ b/rules/python3-configshell.make
@@ -18,7 +18,7 @@ PYTHON3_CONFIGSHELL_VERSION := 1.1.28
PYTHON3_CONFIGSHELL_MD5 := effc6c44784e5cd77e2eacd07bef494d
PYTHON3_CONFIGSHELL := configshell-fb-$(PYTHON3_CONFIGSHELL_VERSION)
PYTHON3_CONFIGSHELL_SUFFIX := tar.gz
-PYTHON3_CONFIGSHELL_URL := https://pypi.io/packages/source/c/configshell-fb/$(PYTHON3_CONFIGSHELL).$(PYTHON3_CONFIGSHELL_SUFFIX)
+PYTHON3_CONFIGSHELL_URL := $(call ptx/mirror-pypi, configshell-fb, $(PYTHON3_CONFIGSHELL).$(PYTHON3_CONFIGSHELL_SUFFIX))
PYTHON3_CONFIGSHELL_SOURCE := $(SRCDIR)/$(PYTHON3_CONFIGSHELL).$(PYTHON3_CONFIGSHELL_SUFFIX)
PYTHON3_CONFIGSHELL_DIR := $(BUILDDIR)/$(PYTHON3_CONFIGSHELL)
PYTHON3_CONFIGSHELL_LICENSE := Apache-2.0
diff --git a/rules/python3-cryptography.cargo.make b/rules/python3-cryptography.cargo.make
new file mode 100644
index 000000000..8864c1eac
--- /dev/null
+++ b/rules/python3-cryptography.cargo.make
@@ -0,0 +1,287 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Artur Wiebe <artur@4wiebe.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# WARNING: This file is generated with 'ptxdist cargosync python3-cryptography' and
+# should not be modified manually!
+#
+
+PYTHON3_CRYPTOGRAPHY_CARGO_LOCK_MD5 := 0fed108832cd2e6f383e680053feeadc
+
+PYTHON3_CRYPTOGRAPHY_INFLECTOR_0_11_4_MD5 := b7f1a4cd029f5b6ffbc31b3acd5ae605
+PYTHON3_CRYPTOGRAPHY_INFLECTOR_0_11_4_URL := https://crates.io/api/v1/crates/Inflector/0.11.4/download
+PYTHON3_CRYPTOGRAPHY_INFLECTOR_0_11_4_SOURCE := $(SRCDIR)/Inflector-0.11.4.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_INFLECTOR_0_11_4
+
+PYTHON3_CRYPTOGRAPHY_ALIASABLE_0_1_3_MD5 := f02c179eca8c70ccdfa3f17b5c33563a
+PYTHON3_CRYPTOGRAPHY_ALIASABLE_0_1_3_URL := https://crates.io/api/v1/crates/aliasable/0.1.3/download
+PYTHON3_CRYPTOGRAPHY_ALIASABLE_0_1_3_SOURCE := $(SRCDIR)/aliasable-0.1.3.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_ALIASABLE_0_1_3
+
+PYTHON3_CRYPTOGRAPHY_ASN1_0_15_2_MD5 := eab04ea9e3f12685eb2c7e3d720f38ee
+PYTHON3_CRYPTOGRAPHY_ASN1_0_15_2_URL := https://crates.io/api/v1/crates/asn1/0.15.2/download
+PYTHON3_CRYPTOGRAPHY_ASN1_0_15_2_SOURCE := $(SRCDIR)/asn1-0.15.2.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_ASN1_0_15_2
+
+PYTHON3_CRYPTOGRAPHY_ASN1_DERIVE_0_15_2_MD5 := ec8b3e5e64b9602b3a99118e42bd8266
+PYTHON3_CRYPTOGRAPHY_ASN1_DERIVE_0_15_2_URL := https://crates.io/api/v1/crates/asn1_derive/0.15.2/download
+PYTHON3_CRYPTOGRAPHY_ASN1_DERIVE_0_15_2_SOURCE := $(SRCDIR)/asn1_derive-0.15.2.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_ASN1_DERIVE_0_15_2
+
+PYTHON3_CRYPTOGRAPHY_AUTOCFG_1_1_0_MD5 := 05d77ef52e90ad161fdd41b252420467
+PYTHON3_CRYPTOGRAPHY_AUTOCFG_1_1_0_URL := https://crates.io/api/v1/crates/autocfg/1.1.0/download
+PYTHON3_CRYPTOGRAPHY_AUTOCFG_1_1_0_SOURCE := $(SRCDIR)/autocfg-1.1.0.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_AUTOCFG_1_1_0
+
+PYTHON3_CRYPTOGRAPHY_BASE64_0_13_1_MD5 := 3d192a852cb456a965c5d64db624c915
+PYTHON3_CRYPTOGRAPHY_BASE64_0_13_1_URL := https://crates.io/api/v1/crates/base64/0.13.1/download
+PYTHON3_CRYPTOGRAPHY_BASE64_0_13_1_SOURCE := $(SRCDIR)/base64-0.13.1.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_BASE64_0_13_1
+
+PYTHON3_CRYPTOGRAPHY_BITFLAGS_1_3_2_MD5 := a295edb6953237ebbdfa8e731229f9a3
+PYTHON3_CRYPTOGRAPHY_BITFLAGS_1_3_2_URL := https://crates.io/api/v1/crates/bitflags/1.3.2/download
+PYTHON3_CRYPTOGRAPHY_BITFLAGS_1_3_2_SOURCE := $(SRCDIR)/bitflags-1.3.2.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_BITFLAGS_1_3_2
+
+PYTHON3_CRYPTOGRAPHY_BITFLAGS_2_4_1_MD5 := ebcf604c44976809506192718f439dc1
+PYTHON3_CRYPTOGRAPHY_BITFLAGS_2_4_1_URL := https://crates.io/api/v1/crates/bitflags/2.4.1/download
+PYTHON3_CRYPTOGRAPHY_BITFLAGS_2_4_1_SOURCE := $(SRCDIR)/bitflags-2.4.1.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_BITFLAGS_2_4_1
+
+PYTHON3_CRYPTOGRAPHY_CC_1_0_79_MD5 := 7d83f411bb22318c65fec8bbee937ece
+PYTHON3_CRYPTOGRAPHY_CC_1_0_79_URL := https://crates.io/api/v1/crates/cc/1.0.79/download
+PYTHON3_CRYPTOGRAPHY_CC_1_0_79_SOURCE := $(SRCDIR)/cc-1.0.79.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_CC_1_0_79
+
+PYTHON3_CRYPTOGRAPHY_CFG_IF_1_0_0_MD5 := 74634128440dbc3766bda76fdf0aaa05
+PYTHON3_CRYPTOGRAPHY_CFG_IF_1_0_0_URL := https://crates.io/api/v1/crates/cfg-if/1.0.0/download
+PYTHON3_CRYPTOGRAPHY_CFG_IF_1_0_0_SOURCE := $(SRCDIR)/cfg-if-1.0.0.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_CFG_IF_1_0_0
+
+PYTHON3_CRYPTOGRAPHY_FOREIGN_TYPES_0_3_2_MD5 := 78c898fdaa3968e23904bf8538c4a271
+PYTHON3_CRYPTOGRAPHY_FOREIGN_TYPES_0_3_2_URL := https://crates.io/api/v1/crates/foreign-types/0.3.2/download
+PYTHON3_CRYPTOGRAPHY_FOREIGN_TYPES_0_3_2_SOURCE := $(SRCDIR)/foreign-types-0.3.2.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_FOREIGN_TYPES_0_3_2
+
+PYTHON3_CRYPTOGRAPHY_FOREIGN_TYPES_SHARED_0_1_1_MD5 := 667e86b8b8d96ab4e9605627ce7dcc9a
+PYTHON3_CRYPTOGRAPHY_FOREIGN_TYPES_SHARED_0_1_1_URL := https://crates.io/api/v1/crates/foreign-types-shared/0.1.1/download
+PYTHON3_CRYPTOGRAPHY_FOREIGN_TYPES_SHARED_0_1_1_SOURCE := $(SRCDIR)/foreign-types-shared-0.1.1.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_FOREIGN_TYPES_SHARED_0_1_1
+
+PYTHON3_CRYPTOGRAPHY_INDOC_1_0_9_MD5 := fdcf3e32adfea2bf0b3f735d50c280be
+PYTHON3_CRYPTOGRAPHY_INDOC_1_0_9_URL := https://crates.io/api/v1/crates/indoc/1.0.9/download
+PYTHON3_CRYPTOGRAPHY_INDOC_1_0_9_SOURCE := $(SRCDIR)/indoc-1.0.9.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_INDOC_1_0_9
+
+PYTHON3_CRYPTOGRAPHY_LIBC_0_2_144_MD5 := 33c452823523a366024100022fef0988
+PYTHON3_CRYPTOGRAPHY_LIBC_0_2_144_URL := https://crates.io/api/v1/crates/libc/0.2.144/download
+PYTHON3_CRYPTOGRAPHY_LIBC_0_2_144_SOURCE := $(SRCDIR)/libc-0.2.144.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_LIBC_0_2_144
+
+PYTHON3_CRYPTOGRAPHY_LOCK_API_0_4_9_MD5 := 426eb9e22cbb36480e13fd265be87b4c
+PYTHON3_CRYPTOGRAPHY_LOCK_API_0_4_9_URL := https://crates.io/api/v1/crates/lock_api/0.4.9/download
+PYTHON3_CRYPTOGRAPHY_LOCK_API_0_4_9_SOURCE := $(SRCDIR)/lock_api-0.4.9.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_LOCK_API_0_4_9
+
+PYTHON3_CRYPTOGRAPHY_MEMOFFSET_0_8_0_MD5 := 39d0921acf528bffa1feaad05c9a421d
+PYTHON3_CRYPTOGRAPHY_MEMOFFSET_0_8_0_URL := https://crates.io/api/v1/crates/memoffset/0.8.0/download
+PYTHON3_CRYPTOGRAPHY_MEMOFFSET_0_8_0_SOURCE := $(SRCDIR)/memoffset-0.8.0.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_MEMOFFSET_0_8_0
+
+PYTHON3_CRYPTOGRAPHY_ONCE_CELL_1_17_2_MD5 := 2adf2202de74dace3d3aeef5c92e4a9d
+PYTHON3_CRYPTOGRAPHY_ONCE_CELL_1_17_2_URL := https://crates.io/api/v1/crates/once_cell/1.17.2/download
+PYTHON3_CRYPTOGRAPHY_ONCE_CELL_1_17_2_SOURCE := $(SRCDIR)/once_cell-1.17.2.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_ONCE_CELL_1_17_2
+
+PYTHON3_CRYPTOGRAPHY_OPENSSL_0_10_60_MD5 := 7e75e2c5f22d667601da5e1dd9fa3b62
+PYTHON3_CRYPTOGRAPHY_OPENSSL_0_10_60_URL := https://crates.io/api/v1/crates/openssl/0.10.60/download
+PYTHON3_CRYPTOGRAPHY_OPENSSL_0_10_60_SOURCE := $(SRCDIR)/openssl-0.10.60.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_OPENSSL_0_10_60
+
+PYTHON3_CRYPTOGRAPHY_OPENSSL_MACROS_0_1_1_MD5 := 28d34115cfbbe0e8f80333591f2cdd84
+PYTHON3_CRYPTOGRAPHY_OPENSSL_MACROS_0_1_1_URL := https://crates.io/api/v1/crates/openssl-macros/0.1.1/download
+PYTHON3_CRYPTOGRAPHY_OPENSSL_MACROS_0_1_1_SOURCE := $(SRCDIR)/openssl-macros-0.1.1.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_OPENSSL_MACROS_0_1_1
+
+PYTHON3_CRYPTOGRAPHY_OPENSSL_SYS_0_9_96_MD5 := 6f57aed50edee9e129e4ea8bdd7edcda
+PYTHON3_CRYPTOGRAPHY_OPENSSL_SYS_0_9_96_URL := https://crates.io/api/v1/crates/openssl-sys/0.9.96/download
+PYTHON3_CRYPTOGRAPHY_OPENSSL_SYS_0_9_96_SOURCE := $(SRCDIR)/openssl-sys-0.9.96.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_OPENSSL_SYS_0_9_96
+
+PYTHON3_CRYPTOGRAPHY_OUROBOROS_0_15_6_MD5 := 69383ea645c535b2e64ffb25b4bfbd5e
+PYTHON3_CRYPTOGRAPHY_OUROBOROS_0_15_6_URL := https://crates.io/api/v1/crates/ouroboros/0.15.6/download
+PYTHON3_CRYPTOGRAPHY_OUROBOROS_0_15_6_SOURCE := $(SRCDIR)/ouroboros-0.15.6.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_OUROBOROS_0_15_6
+
+PYTHON3_CRYPTOGRAPHY_OUROBOROS_MACRO_0_15_6_MD5 := c6c0ed49f82c35ea9f79e4f2774007ee
+PYTHON3_CRYPTOGRAPHY_OUROBOROS_MACRO_0_15_6_URL := https://crates.io/api/v1/crates/ouroboros_macro/0.15.6/download
+PYTHON3_CRYPTOGRAPHY_OUROBOROS_MACRO_0_15_6_SOURCE := $(SRCDIR)/ouroboros_macro-0.15.6.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_OUROBOROS_MACRO_0_15_6
+
+PYTHON3_CRYPTOGRAPHY_PARKING_LOT_0_12_1_MD5 := 1be45f99109d447849f4244b58c5a470
+PYTHON3_CRYPTOGRAPHY_PARKING_LOT_0_12_1_URL := https://crates.io/api/v1/crates/parking_lot/0.12.1/download
+PYTHON3_CRYPTOGRAPHY_PARKING_LOT_0_12_1_SOURCE := $(SRCDIR)/parking_lot-0.12.1.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_PARKING_LOT_0_12_1
+
+PYTHON3_CRYPTOGRAPHY_PARKING_LOT_CORE_0_9_7_MD5 := 1dd7189bccf7a3cfb69fd1dc213f660e
+PYTHON3_CRYPTOGRAPHY_PARKING_LOT_CORE_0_9_7_URL := https://crates.io/api/v1/crates/parking_lot_core/0.9.7/download
+PYTHON3_CRYPTOGRAPHY_PARKING_LOT_CORE_0_9_7_SOURCE := $(SRCDIR)/parking_lot_core-0.9.7.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_PARKING_LOT_CORE_0_9_7
+
+PYTHON3_CRYPTOGRAPHY_PEM_1_1_1_MD5 := 557c4864171a3d830774b152c14782d3
+PYTHON3_CRYPTOGRAPHY_PEM_1_1_1_URL := https://crates.io/api/v1/crates/pem/1.1.1/download
+PYTHON3_CRYPTOGRAPHY_PEM_1_1_1_SOURCE := $(SRCDIR)/pem-1.1.1.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_PEM_1_1_1
+
+PYTHON3_CRYPTOGRAPHY_PKG_CONFIG_0_3_27_MD5 := 73d4dff694f3acab34c217b4f4943a37
+PYTHON3_CRYPTOGRAPHY_PKG_CONFIG_0_3_27_URL := https://crates.io/api/v1/crates/pkg-config/0.3.27/download
+PYTHON3_CRYPTOGRAPHY_PKG_CONFIG_0_3_27_SOURCE := $(SRCDIR)/pkg-config-0.3.27.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_PKG_CONFIG_0_3_27
+
+PYTHON3_CRYPTOGRAPHY_PROC_MACRO_ERROR_1_0_4_MD5 := 6a32bab57772c3a1146d599b65ffb0cb
+PYTHON3_CRYPTOGRAPHY_PROC_MACRO_ERROR_1_0_4_URL := https://crates.io/api/v1/crates/proc-macro-error/1.0.4/download
+PYTHON3_CRYPTOGRAPHY_PROC_MACRO_ERROR_1_0_4_SOURCE := $(SRCDIR)/proc-macro-error-1.0.4.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_PROC_MACRO_ERROR_1_0_4
+
+PYTHON3_CRYPTOGRAPHY_PROC_MACRO_ERROR_ATTR_1_0_4_MD5 := 7d76a523677de261dda1b65d29a93c4e
+PYTHON3_CRYPTOGRAPHY_PROC_MACRO_ERROR_ATTR_1_0_4_URL := https://crates.io/api/v1/crates/proc-macro-error-attr/1.0.4/download
+PYTHON3_CRYPTOGRAPHY_PROC_MACRO_ERROR_ATTR_1_0_4_SOURCE := $(SRCDIR)/proc-macro-error-attr-1.0.4.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_PROC_MACRO_ERROR_ATTR_1_0_4
+
+PYTHON3_CRYPTOGRAPHY_PROC_MACRO2_1_0_64_MD5 := d9b529d1f01beba7ebe7df8452ce2695
+PYTHON3_CRYPTOGRAPHY_PROC_MACRO2_1_0_64_URL := https://crates.io/api/v1/crates/proc-macro2/1.0.64/download
+PYTHON3_CRYPTOGRAPHY_PROC_MACRO2_1_0_64_SOURCE := $(SRCDIR)/proc-macro2-1.0.64.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_PROC_MACRO2_1_0_64
+
+PYTHON3_CRYPTOGRAPHY_PYO3_0_18_3_MD5 := 6cc431e87a2dec2d87cdd8e3ec61f94b
+PYTHON3_CRYPTOGRAPHY_PYO3_0_18_3_URL := https://crates.io/api/v1/crates/pyo3/0.18.3/download
+PYTHON3_CRYPTOGRAPHY_PYO3_0_18_3_SOURCE := $(SRCDIR)/pyo3-0.18.3.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_PYO3_0_18_3
+
+PYTHON3_CRYPTOGRAPHY_PYO3_BUILD_CONFIG_0_18_3_MD5 := c2e466b71c216e80985e39a0004ea250
+PYTHON3_CRYPTOGRAPHY_PYO3_BUILD_CONFIG_0_18_3_URL := https://crates.io/api/v1/crates/pyo3-build-config/0.18.3/download
+PYTHON3_CRYPTOGRAPHY_PYO3_BUILD_CONFIG_0_18_3_SOURCE := $(SRCDIR)/pyo3-build-config-0.18.3.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_PYO3_BUILD_CONFIG_0_18_3
+
+PYTHON3_CRYPTOGRAPHY_PYO3_FFI_0_18_3_MD5 := aca47a8b2c3d4b654e06a4a483217282
+PYTHON3_CRYPTOGRAPHY_PYO3_FFI_0_18_3_URL := https://crates.io/api/v1/crates/pyo3-ffi/0.18.3/download
+PYTHON3_CRYPTOGRAPHY_PYO3_FFI_0_18_3_SOURCE := $(SRCDIR)/pyo3-ffi-0.18.3.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_PYO3_FFI_0_18_3
+
+PYTHON3_CRYPTOGRAPHY_PYO3_MACROS_0_18_3_MD5 := 7409392d3ae73161d38de3486f7371bc
+PYTHON3_CRYPTOGRAPHY_PYO3_MACROS_0_18_3_URL := https://crates.io/api/v1/crates/pyo3-macros/0.18.3/download
+PYTHON3_CRYPTOGRAPHY_PYO3_MACROS_0_18_3_SOURCE := $(SRCDIR)/pyo3-macros-0.18.3.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_PYO3_MACROS_0_18_3
+
+PYTHON3_CRYPTOGRAPHY_PYO3_MACROS_BACKEND_0_18_3_MD5 := e4d720318c91b4c1797d92aa5865d25b
+PYTHON3_CRYPTOGRAPHY_PYO3_MACROS_BACKEND_0_18_3_URL := https://crates.io/api/v1/crates/pyo3-macros-backend/0.18.3/download
+PYTHON3_CRYPTOGRAPHY_PYO3_MACROS_BACKEND_0_18_3_SOURCE := $(SRCDIR)/pyo3-macros-backend-0.18.3.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_PYO3_MACROS_BACKEND_0_18_3
+
+PYTHON3_CRYPTOGRAPHY_QUOTE_1_0_28_MD5 := a44fba1024d0f9892cc5a41e9ca5cfdb
+PYTHON3_CRYPTOGRAPHY_QUOTE_1_0_28_URL := https://crates.io/api/v1/crates/quote/1.0.28/download
+PYTHON3_CRYPTOGRAPHY_QUOTE_1_0_28_SOURCE := $(SRCDIR)/quote-1.0.28.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_QUOTE_1_0_28
+
+PYTHON3_CRYPTOGRAPHY_REDOX_SYSCALL_0_2_16_MD5 := 16111f31a29feae4ce4a324b83dc0189
+PYTHON3_CRYPTOGRAPHY_REDOX_SYSCALL_0_2_16_URL := https://crates.io/api/v1/crates/redox_syscall/0.2.16/download
+PYTHON3_CRYPTOGRAPHY_REDOX_SYSCALL_0_2_16_SOURCE := $(SRCDIR)/redox_syscall-0.2.16.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_REDOX_SYSCALL_0_2_16
+
+PYTHON3_CRYPTOGRAPHY_SCOPEGUARD_1_1_0_MD5 := b4a0a98a54439a5a37952c8879187ee3
+PYTHON3_CRYPTOGRAPHY_SCOPEGUARD_1_1_0_URL := https://crates.io/api/v1/crates/scopeguard/1.1.0/download
+PYTHON3_CRYPTOGRAPHY_SCOPEGUARD_1_1_0_SOURCE := $(SRCDIR)/scopeguard-1.1.0.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_SCOPEGUARD_1_1_0
+
+PYTHON3_CRYPTOGRAPHY_SMALLVEC_1_10_0_MD5 := a8014a7c865aa54f305e8cda3ef02019
+PYTHON3_CRYPTOGRAPHY_SMALLVEC_1_10_0_URL := https://crates.io/api/v1/crates/smallvec/1.10.0/download
+PYTHON3_CRYPTOGRAPHY_SMALLVEC_1_10_0_SOURCE := $(SRCDIR)/smallvec-1.10.0.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_SMALLVEC_1_10_0
+
+PYTHON3_CRYPTOGRAPHY_SYN_1_0_109_MD5 := 64d9f46e9ba78f68c30c486be3d8b7df
+PYTHON3_CRYPTOGRAPHY_SYN_1_0_109_URL := https://crates.io/api/v1/crates/syn/1.0.109/download
+PYTHON3_CRYPTOGRAPHY_SYN_1_0_109_SOURCE := $(SRCDIR)/syn-1.0.109.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_SYN_1_0_109
+
+PYTHON3_CRYPTOGRAPHY_SYN_2_0_18_MD5 := bd8c0b43f8eda422cfa6b58cca1a5f5b
+PYTHON3_CRYPTOGRAPHY_SYN_2_0_18_URL := https://crates.io/api/v1/crates/syn/2.0.18/download
+PYTHON3_CRYPTOGRAPHY_SYN_2_0_18_SOURCE := $(SRCDIR)/syn-2.0.18.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_SYN_2_0_18
+
+PYTHON3_CRYPTOGRAPHY_TARGET_LEXICON_0_12_7_MD5 := f54e48899dfc5e4ad80643a69ebead3b
+PYTHON3_CRYPTOGRAPHY_TARGET_LEXICON_0_12_7_URL := https://crates.io/api/v1/crates/target-lexicon/0.12.7/download
+PYTHON3_CRYPTOGRAPHY_TARGET_LEXICON_0_12_7_SOURCE := $(SRCDIR)/target-lexicon-0.12.7.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_TARGET_LEXICON_0_12_7
+
+PYTHON3_CRYPTOGRAPHY_UNICODE_IDENT_1_0_9_MD5 := 2e6f3d2a4c7414137fa48dfd73678840
+PYTHON3_CRYPTOGRAPHY_UNICODE_IDENT_1_0_9_URL := https://crates.io/api/v1/crates/unicode-ident/1.0.9/download
+PYTHON3_CRYPTOGRAPHY_UNICODE_IDENT_1_0_9_SOURCE := $(SRCDIR)/unicode-ident-1.0.9.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_UNICODE_IDENT_1_0_9
+
+PYTHON3_CRYPTOGRAPHY_UNINDENT_0_1_11_MD5 := 255df9d792160d53311df4d00faded0f
+PYTHON3_CRYPTOGRAPHY_UNINDENT_0_1_11_URL := https://crates.io/api/v1/crates/unindent/0.1.11/download
+PYTHON3_CRYPTOGRAPHY_UNINDENT_0_1_11_SOURCE := $(SRCDIR)/unindent-0.1.11.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_UNINDENT_0_1_11
+
+PYTHON3_CRYPTOGRAPHY_VCPKG_0_2_15_MD5 := e900a384ac7dbb320fe6a7279fbfef89
+PYTHON3_CRYPTOGRAPHY_VCPKG_0_2_15_URL := https://crates.io/api/v1/crates/vcpkg/0.2.15/download
+PYTHON3_CRYPTOGRAPHY_VCPKG_0_2_15_SOURCE := $(SRCDIR)/vcpkg-0.2.15.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_VCPKG_0_2_15
+
+PYTHON3_CRYPTOGRAPHY_VERSION_CHECK_0_9_4_MD5 := d18d362345c4fe512ef67b738b239fb8
+PYTHON3_CRYPTOGRAPHY_VERSION_CHECK_0_9_4_URL := https://crates.io/api/v1/crates/version_check/0.9.4/download
+PYTHON3_CRYPTOGRAPHY_VERSION_CHECK_0_9_4_SOURCE := $(SRCDIR)/version_check-0.9.4.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_VERSION_CHECK_0_9_4
+
+PYTHON3_CRYPTOGRAPHY_WINDOWS_SYS_0_45_0_MD5 := b58284cb8ce52b8de07e09f4f8fb9653
+PYTHON3_CRYPTOGRAPHY_WINDOWS_SYS_0_45_0_URL := https://crates.io/api/v1/crates/windows-sys/0.45.0/download
+PYTHON3_CRYPTOGRAPHY_WINDOWS_SYS_0_45_0_SOURCE := $(SRCDIR)/windows-sys-0.45.0.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_WINDOWS_SYS_0_45_0
+
+PYTHON3_CRYPTOGRAPHY_WINDOWS_TARGETS_0_42_2_MD5 := a369d510325342310c7ab159bd181dae
+PYTHON3_CRYPTOGRAPHY_WINDOWS_TARGETS_0_42_2_URL := https://crates.io/api/v1/crates/windows-targets/0.42.2/download
+PYTHON3_CRYPTOGRAPHY_WINDOWS_TARGETS_0_42_2_SOURCE := $(SRCDIR)/windows-targets-0.42.2.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_WINDOWS_TARGETS_0_42_2
+
+PYTHON3_CRYPTOGRAPHY_WINDOWS_AARCH64_GNULLVM_0_42_2_MD5 := 7968284877e481b58df1569b68b5dc26
+PYTHON3_CRYPTOGRAPHY_WINDOWS_AARCH64_GNULLVM_0_42_2_URL := https://crates.io/api/v1/crates/windows_aarch64_gnullvm/0.42.2/download
+PYTHON3_CRYPTOGRAPHY_WINDOWS_AARCH64_GNULLVM_0_42_2_SOURCE := $(SRCDIR)/windows_aarch64_gnullvm-0.42.2.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_WINDOWS_AARCH64_GNULLVM_0_42_2
+
+PYTHON3_CRYPTOGRAPHY_WINDOWS_AARCH64_MSVC_0_42_2_MD5 := 34d06a94727c506c11e4710160e90f32
+PYTHON3_CRYPTOGRAPHY_WINDOWS_AARCH64_MSVC_0_42_2_URL := https://crates.io/api/v1/crates/windows_aarch64_msvc/0.42.2/download
+PYTHON3_CRYPTOGRAPHY_WINDOWS_AARCH64_MSVC_0_42_2_SOURCE := $(SRCDIR)/windows_aarch64_msvc-0.42.2.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_WINDOWS_AARCH64_MSVC_0_42_2
+
+PYTHON3_CRYPTOGRAPHY_WINDOWS_I686_GNU_0_42_2_MD5 := 017691b927b405669e1139b054a35f4a
+PYTHON3_CRYPTOGRAPHY_WINDOWS_I686_GNU_0_42_2_URL := https://crates.io/api/v1/crates/windows_i686_gnu/0.42.2/download
+PYTHON3_CRYPTOGRAPHY_WINDOWS_I686_GNU_0_42_2_SOURCE := $(SRCDIR)/windows_i686_gnu-0.42.2.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_WINDOWS_I686_GNU_0_42_2
+
+PYTHON3_CRYPTOGRAPHY_WINDOWS_I686_MSVC_0_42_2_MD5 := f56c70fbae23f08fb0912284333f7851
+PYTHON3_CRYPTOGRAPHY_WINDOWS_I686_MSVC_0_42_2_URL := https://crates.io/api/v1/crates/windows_i686_msvc/0.42.2/download
+PYTHON3_CRYPTOGRAPHY_WINDOWS_I686_MSVC_0_42_2_SOURCE := $(SRCDIR)/windows_i686_msvc-0.42.2.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_WINDOWS_I686_MSVC_0_42_2
+
+PYTHON3_CRYPTOGRAPHY_WINDOWS_X86_64_GNU_0_42_2_MD5 := d20c2b0f45a62cc15c503ea610706a8f
+PYTHON3_CRYPTOGRAPHY_WINDOWS_X86_64_GNU_0_42_2_URL := https://crates.io/api/v1/crates/windows_x86_64_gnu/0.42.2/download
+PYTHON3_CRYPTOGRAPHY_WINDOWS_X86_64_GNU_0_42_2_SOURCE := $(SRCDIR)/windows_x86_64_gnu-0.42.2.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_WINDOWS_X86_64_GNU_0_42_2
+
+PYTHON3_CRYPTOGRAPHY_WINDOWS_X86_64_GNULLVM_0_42_2_MD5 := ec7e437088dc741e6a0653e553abca4e
+PYTHON3_CRYPTOGRAPHY_WINDOWS_X86_64_GNULLVM_0_42_2_URL := https://crates.io/api/v1/crates/windows_x86_64_gnullvm/0.42.2/download
+PYTHON3_CRYPTOGRAPHY_WINDOWS_X86_64_GNULLVM_0_42_2_SOURCE := $(SRCDIR)/windows_x86_64_gnullvm-0.42.2.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_WINDOWS_X86_64_GNULLVM_0_42_2
+
+PYTHON3_CRYPTOGRAPHY_WINDOWS_X86_64_MSVC_0_42_2_MD5 := 8cec8a187df7a7b971009a7693f60140
+PYTHON3_CRYPTOGRAPHY_WINDOWS_X86_64_MSVC_0_42_2_URL := https://crates.io/api/v1/crates/windows_x86_64_msvc/0.42.2/download
+PYTHON3_CRYPTOGRAPHY_WINDOWS_X86_64_MSVC_0_42_2_SOURCE := $(SRCDIR)/windows_x86_64_msvc-0.42.2.crate
+PYTHON3_CRYPTOGRAPHY_PARTS += PYTHON3_CRYPTOGRAPHY_WINDOWS_X86_64_MSVC_0_42_2
+
+
+# vim: syntax=make
diff --git a/rules/python3-cryptography.in b/rules/python3-cryptography.in
new file mode 100644
index 000000000..3fcfc82cd
--- /dev/null
+++ b/rules/python3-cryptography.in
@@ -0,0 +1,15 @@
+## SECTION=python3
+
+config PYTHON3_CRYPTOGRAPHY
+ tristate
+ select HOST_PYTHON3_SETUPTOOLS_RUST
+ select HOST_PYTHON3_CFFI
+ select PYTHON3
+ select PYTHON3_SSL
+ select PYTHON3_CFFI if RUNTIME
+ select LIBC_PTHREAD
+ select LIBC_CRYPT
+ prompt "cryptography"
+ help
+ Cryptography is a package which provides cryptographic recipes and primitives to Python developers.
+ Our goal is for it to be your “cryptographic standard libraryâ€
diff --git a/rules/python3-cryptography.make b/rules/python3-cryptography.make
new file mode 100644
index 000000000..71ea35db5
--- /dev/null
+++ b/rules/python3-cryptography.make
@@ -0,0 +1,62 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Artur Wiebe <artur@4wiebe.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_CRYPTOGRAPHY) += python3-cryptography
+
+#
+# Paths and names
+#
+PYTHON3_CRYPTOGRAPHY_VERSION := 41.0.7
+PYTHON3_CRYPTOGRAPHY_MD5 := c06f01c4bc95327c2e4378589ed5a193
+PYTHON3_CRYPTOGRAPHY := cryptography-$(PYTHON3_CRYPTOGRAPHY_VERSION)
+PYTHON3_CRYPTOGRAPHY_SUFFIX := tar.gz
+PYTHON3_CRYPTOGRAPHY_URL := $(call ptx/mirror-pypi, cryptography, $(PYTHON3_CRYPTOGRAPHY).$(PYTHON3_CRYPTOGRAPHY_SUFFIX))
+PYTHON3_CRYPTOGRAPHY_SOURCE := $(SRCDIR)/$(PYTHON3_CRYPTOGRAPHY).$(PYTHON3_CRYPTOGRAPHY_SUFFIX)
+PYTHON3_CRYPTOGRAPHY_DIR := $(BUILDDIR)/$(PYTHON3_CRYPTOGRAPHY)
+PYTHON3_CRYPTOGRAPHY_CARGO_LOCK := src/rust/Cargo.lock
+# licenses for the rust dependencies are missing
+PYTHON3_CRYPTOGRAPHY_LICENSE := ( Apache-2.0 OR BSD-3-Clause ) AND unknown
+PYTHON3_CRYPTOGRAPHY_LICENSE_FILES := \
+ file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4 \
+ file://LICENSE.APACHE;md5=4e168cce331e5c827d4c2b68a6200e1b \
+ file://LICENSE.BSD;md5=5ae30ba4123bc4f2fa49aa0b0dce887b
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_CRYPTOGRAPHY_CONF_TOOL := python3
+PYTHON3_CRYPTOGRAPHY_CONF_ENV = $(CROSS_ENV) \
+ OPENSSL_DIR="$(PTXDIST_SYSROOT_TARGET)/usr" \
+ PYO3_CROSS_LIB_DIR="$(PTXDIST_SYSROOT_TARGET)/usr/lib" \
+ PYO3_PYTHON="python$(PYTHON3_MAJORMINOR)"
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-cryptography.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-cryptography)
+ @$(call install_fixup, python3-cryptography,PRIORITY,optional)
+ @$(call install_fixup, python3-cryptography,SECTION,base)
+ @$(call install_fixup, python3-cryptography,AUTHOR,"Artur Wiebe <artur@4wiebe.de>")
+ @$(call install_fixup, python3-cryptography,DESCRIPTION,missing)
+
+ @$(call install_glob, python3-cryptography, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES)/cryptography,, *.py)
+
+ @$(call install_finish, python3-cryptography)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-dateutil.make b/rules/python3-dateutil.make
index 0e4cbfcfc..4571a3e20 100644
--- a/rules/python3-dateutil.make
+++ b/rules/python3-dateutil.make
@@ -11,14 +11,15 @@
#
PACKAGES-$(PTXCONF_PYTHON3_DATEUTIL) += python3-dateutil
-PYTHON3_DATEUTIL_VERSION := 2.7.3
-PYTHON3_DATEUTIL_MD5 := 175b7c1a3cc0cb01151eced07c61c0b8
+PYTHON3_DATEUTIL_VERSION := 2.8.2
+PYTHON3_DATEUTIL_MD5 := 5970010bb72452344df3d76a10281b65
PYTHON3_DATEUTIL := python-dateutil-$(PYTHON3_DATEUTIL_VERSION)
PYTHON3_DATEUTIL_SUFFIX := tar.gz
-PYTHON3_DATEUTIL_URL := https://pypi.python.org/packages/a0/b0/a4e3241d2dee665fea11baec21389aec6886655cd4db7647ddf96c3fad15/$(PYTHON3_DATEUTIL).$(PYTHON3_DATEUTIL_SUFFIX)\#md5=$(PYTHON3_DATEUTIL_MD5)
+PYTHON3_DATEUTIL_URL := $(call ptx/mirror-pypi, python-dateutil, $(PYTHON3_DATEUTIL).$(PYTHON3_DATEUTIL_SUFFIX))
PYTHON3_DATEUTIL_SOURCE := $(SRCDIR)/$(PYTHON3_DATEUTIL).$(PYTHON3_DATEUTIL_SUFFIX)
PYTHON3_DATEUTIL_DIR := $(BUILDDIR)/$(PYTHON3_DATEUTIL)
PYTHON3_DATEUTIL_LICENSE := Apache-2.0
+PYTHON3_DATEUTIL_LICENSE_FILES := file://LICENSE;md5=e3155c7bdc71f66e02678411d2abf996
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/python3-decorator.make b/rules/python3-decorator.make
index 98f200ab6..316ff9ed5 100644
--- a/rules/python3-decorator.make
+++ b/rules/python3-decorator.make
@@ -18,7 +18,7 @@ PYTHON3_DECORATOR_VERSION := 4.0.6
PYTHON3_DECORATOR_MD5 := b17bfa17c294d33022a89de0f61d38fe
PYTHON3_DECORATOR := decorator-$(PYTHON3_DECORATOR_VERSION)
PYTHON3_DECORATOR_SUFFIX := tar.gz
-PYTHON3_DECORATOR_URL := https://pypi.python.org/packages/source/d/decorator/$(PYTHON3_DECORATOR).$(PYTHON3_DECORATOR_SUFFIX)#md5=$(PYTHON3_DECORATOR_MD5)
+PYTHON3_DECORATOR_URL := $(call ptx/mirror-pypi, decorator, $(PYTHON3_DECORATOR).$(PYTHON3_DECORATOR_SUFFIX))
PYTHON3_DECORATOR_SOURCE := $(SRCDIR)/$(PYTHON3_DECORATOR).$(PYTHON3_DECORATOR_SUFFIX)
PYTHON3_DECORATOR_DIR := $(BUILDDIR)/$(PYTHON3_DECORATOR)
PYTHON3_DECORATOR_LICENSE := BSD-2-Clause
diff --git a/rules/python3-falcon.in b/rules/python3-falcon.in
new file mode 100644
index 000000000..eac42244e
--- /dev/null
+++ b/rules/python3-falcon.in
@@ -0,0 +1,12 @@
+## SECTION=python3
+
+config PYTHON3_FALCON
+ bool
+ select PYTHON3
+ select PYTHON3_GUNICORN
+ prompt "falcon"
+ help
+ The Falcon Web Framework.
+ Falcon is a minimalist ASGI/WSGI framework for building
+ mission-critical REST APIs and microservices, with a focus
+ on reliability, correctness, and performance at scale.
diff --git a/rules/python3-falcon.make b/rules/python3-falcon.make
new file mode 100644
index 000000000..ee81c6c02
--- /dev/null
+++ b/rules/python3-falcon.make
@@ -0,0 +1,54 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Bruno Thomsen <bruno.thomsen@gmail.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_FALCON) += python3-falcon
+
+#
+# Paths and names
+#
+PYTHON3_FALCON_VERSION := 3.1.0
+PYTHON3_FALCON_MD5 := 0172450908573a4449a5937810d512b9
+PYTHON3_FALCON := falcon-$(PYTHON3_FALCON_VERSION)
+PYTHON3_FALCON_SUFFIX := tar.gz
+PYTHON3_FALCON_URL := $(call ptx/mirror-pypi, falcon, $(PYTHON3_FALCON).$(PYTHON3_FALCON_SUFFIX))
+PYTHON3_FALCON_SOURCE := $(SRCDIR)/$(PYTHON3_FALCON).$(PYTHON3_FALCON_SUFFIX)
+PYTHON3_FALCON_DIR := $(BUILDDIR)/$(PYTHON3_FALCON)
+PYTHON3_FALCON_LICENSE := Apache-2.0
+PYTHON3_FALCON_LICENSE_FILES := \
+ file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_FALCON_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-falcon.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-falcon)
+ @$(call install_fixup, python3-falcon,PRIORITY,optional)
+ @$(call install_fixup, python3-falcon,SECTION,base)
+ @$(call install_fixup, python3-falcon,AUTHOR,"Bruno Thomsen <bruno.thomsen@gmail.com>")
+ @$(call install_fixup, python3-falcon,DESCRIPTION,missing)
+
+ @$(call install_glob, python3-falcon, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES),, *.py)
+
+ @$(call install_finish, python3-falcon)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-frozenlist.in b/rules/python3-frozenlist.in
new file mode 100644
index 000000000..15cb97d6b
--- /dev/null
+++ b/rules/python3-frozenlist.in
@@ -0,0 +1,9 @@
+## SECTION=python3
+
+config PYTHON3_FROZENLIST
+ tristate
+ select PYTHON3
+ prompt "frozenlist"
+ help
+ A list-like structure which implements
+ collections.abc.MutableSequence, and which can be made immutable.
diff --git a/rules/python3-frozenlist.make b/rules/python3-frozenlist.make
new file mode 100644
index 000000000..6a7114274
--- /dev/null
+++ b/rules/python3-frozenlist.make
@@ -0,0 +1,54 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Enrico Jorns <e.joerns@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_FROZENLIST) += python3-frozenlist
+
+#
+# Paths and names
+#
+PYTHON3_FROZENLIST_VERSION := 1.3.3
+PYTHON3_FROZENLIST_MD5 := 14e9ffd849c6a1dfa3c6b1fb1ff77b14
+PYTHON3_FROZENLIST := frozenlist-$(PYTHON3_FROZENLIST_VERSION)
+PYTHON3_FROZENLIST_SUFFIX := tar.gz
+PYTHON3_FROZENLIST_URL := $(call ptx/mirror-pypi, frozenlist, $(PYTHON3_FROZENLIST).$(PYTHON3_FROZENLIST_SUFFIX))
+PYTHON3_FROZENLIST_SOURCE := $(SRCDIR)/$(PYTHON3_FROZENLIST).$(PYTHON3_FROZENLIST_SUFFIX)
+PYTHON3_FROZENLIST_DIR := $(BUILDDIR)/$(PYTHON3_FROZENLIST)
+PYTHON3_FROZENLIST_LICENSE := Apache-2.0
+PYTHON3_FROZENLIST_LICENSE_FILES:= \
+ file://LICENSE;md5=cf056e8e7a0a5477451af18b7b5aa98c
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_FROZENLIST_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-frozenlist.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-frozenlist)
+ @$(call install_fixup, python3-frozenlist,PRIORITY,optional)
+ @$(call install_fixup, python3-frozenlist,SECTION,base)
+ @$(call install_fixup, python3-frozenlist,AUTHOR,"Enrico Jorns <e.joerns@pengutronix.de>")
+ @$(call install_fixup, python3-frozenlist,DESCRIPTION,missing)
+
+ @$(call install_glob, python3-frozenlist, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES),, *.py)
+
+ @$(call install_finish, python3-frozenlist)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-gbulb.make b/rules/python3-gbulb.make
index 3db63a4a8..fbfc80cde 100644
--- a/rules/python3-gbulb.make
+++ b/rules/python3-gbulb.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_PYTHON3_GBULB) += python3-gbulb
#
# Paths and names
#
-PYTHON3_GBULB_VERSION := 0.6.1
-PYTHON3_GBULB_MD5 := f3389e58474bdcd80ec2bae0292f2652
+PYTHON3_GBULB_VERSION := 0.6.4
+PYTHON3_GBULB_MD5 := c7ad3d6c3dfede5c9f90a257010d9675
PYTHON3_GBULB := gbulb-$(PYTHON3_GBULB_VERSION)
PYTHON3_GBULB_SUFFIX := zip
-PYTHON3_GBULB_URL := https://github.com/nathan-hoad/gbulb/archive/$(PYTHON3_GBULB_VERSION).$(PYTHON3_GBULB_SUFFIX)
+PYTHON3_GBULB_URL := https://github.com/beeware/gbulb/archive/refs/tags/v$(PYTHON3_GBULB_VERSION).$(PYTHON3_GBULB_SUFFIX)
PYTHON3_GBULB_SOURCE := $(SRCDIR)/$(PYTHON3_GBULB).$(PYTHON3_GBULB_SUFFIX)
PYTHON3_GBULB_DIR := $(BUILDDIR)/$(PYTHON3_GBULB)
PYTHON3_GBULB_LICENSE := Apache-2.0
+PYTHON3_GBULB_LICENSE_FILES := \
+ file://LICENSE;md5=edfe3d91d4b439ac8a8c23cebbf00501
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/python3-gi.in b/rules/python3-gi.in
index bf9e0ce7d..5441bec6d 100644
--- a/rules/python3-gi.in
+++ b/rules/python3-gi.in
@@ -2,6 +2,7 @@
config PYTHON3_GI
tristate
+ select HOST_MESON
select LIBFFI
select PYTHON3
select GOBJECT_INTROSPECTION_HELPER
diff --git a/rules/python3-gi.make b/rules/python3-gi.make
index 969b6445e..b7b625064 100644
--- a/rules/python3-gi.make
+++ b/rules/python3-gi.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_PYTHON3_GI) += python3-gi
#
# Paths and names
#
-PYTHON3_GI_VERSION := 3.28.3
-PYTHON3_GI_MD5 := 3bac63c86bb963aa401f97859464aa90
+PYTHON3_GI_VERSION := 3.42.1
+PYTHON3_GI_MD5 := 8b2fa857229aaf526781376a20367ba8
PYTHON3_GI := pygobject-$(PYTHON3_GI_VERSION)
PYTHON3_GI_SUFFIX := tar.xz
PYTHON3_GI_URL := $(call ptx/mirror, GNOME, pygobject/$(basename $(PYTHON3_GI_VERSION))/$(PYTHON3_GI).$(PYTHON3_GI_SUFFIX))
@@ -28,19 +28,14 @@ PYTHON3_GI_LICENSE := LGPL-2.1-or-later
# ----------------------------------------------------------------------------
#
-# autoconf
+# meson
#
-PYTHON3_GI_CONF_TOOL := autoconf
+PYTHON3_GI_CONF_TOOL := meson
PYTHON3_GI_CONF_OPT = \
- $(CROSS_AUTOCONF_USR) \
- --disable-glibtest \
- --disable-cairo \
- --enable-introspection \
- --enable-compile-warnings \
- --disable-Werror \
- --disable-code-coverage \
- --with-python=$(CROSS_PYTHON3) \
- --without-common
+ $(CROSS_MESON_USR) \
+ -Dpycairo=disabled \
+ -Dpython=$(CROSS_PYTHON3) \
+ -Dtests=false
# ----------------------------------------------------------------------------
# Install
@@ -66,7 +61,7 @@ $(STATEDIR)/python3-gi.targetinstall:
@$(call install_fixup, python3-gi,DESCRIPTION,missing)
@$(call install_glob, python3-gi, 0, 0, -, \
- $(PYTHON3_SITEPACKAGES)/gi,, *.py *.la)
+ $(PYTHON3_SITEPACKAGES)/gi,, *.la)
@$(call install_finish, python3-gi)
diff --git a/rules/python3-gunicorn.in b/rules/python3-gunicorn.in
new file mode 100644
index 000000000..d010ea900
--- /dev/null
+++ b/rules/python3-gunicorn.in
@@ -0,0 +1,11 @@
+## SECTION=python3
+
+config PYTHON3_GUNICORN
+ bool
+ select PYTHON3
+ prompt "gunicorn"
+ help
+ Gunicorn 'Green Unicorn' is a Python WSGI HTTP Server for UNIX.
+ It's a pre-fork worker model. The Gunicorn server is broadly
+ compatible with various web frameworks, simply implemented,
+ light on server resources, and fairly speedy.
diff --git a/rules/python3-gunicorn.make b/rules/python3-gunicorn.make
new file mode 100644
index 000000000..e6959d557
--- /dev/null
+++ b/rules/python3-gunicorn.make
@@ -0,0 +1,57 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Bruno Thomsen <bruno.thomsen@gmail.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_GUNICORN) += python3-gunicorn
+
+#
+# Paths and names
+#
+PYTHON3_GUNICORN_VERSION := 20.1.0
+PYTHON3_GUNICORN_MD5 := db8a7c5c2064000af70286534803bf1d
+PYTHON3_GUNICORN := gunicorn-$(PYTHON3_GUNICORN_VERSION)
+PYTHON3_GUNICORN_SUFFIX := tar.gz
+PYTHON3_GUNICORN_URL := $(call ptx/mirror-pypi, gunicorn, $(PYTHON3_GUNICORN).$(PYTHON3_GUNICORN_SUFFIX))
+PYTHON3_GUNICORN_SOURCE := $(SRCDIR)/$(PYTHON3_GUNICORN).$(PYTHON3_GUNICORN_SUFFIX)
+PYTHON3_GUNICORN_DIR := $(BUILDDIR)/$(PYTHON3_GUNICORN)
+PYTHON3_GUNICORN_LICENSE := MIT
+PYTHON3_GUNICORN_LICENSE_FILES := \
+ file://LICENSE;md5=f75f3fb94cdeab1d607e2adaa6077752
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_GUNICORN_CONF_TOOL := python3
+PYTHON3_GUNICORN_MAKE_OPT := install_scripts
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-gunicorn.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-gunicorn)
+ @$(call install_fixup, python3-gunicorn,PRIORITY,optional)
+ @$(call install_fixup, python3-gunicorn,SECTION,base)
+ @$(call install_fixup, python3-gunicorn,AUTHOR,"Bruno Thomsen <bruno.thomsen@gmail.com>")
+ @$(call install_fixup, python3-gunicorn,DESCRIPTION,missing)
+
+ @$(call install_glob, python3-gunicorn, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES),, *.py)
+
+ @$(call install_copy, python3-gunicorn, 0, 0, 0775, -, /usr/bin/gunicorn)
+
+ @$(call install_finish, python3-gunicorn)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-idna-ssl.in b/rules/python3-idna-ssl.in
new file mode 100644
index 000000000..1c1469294
--- /dev/null
+++ b/rules/python3-idna-ssl.in
@@ -0,0 +1,8 @@
+## SECTION=python3
+
+config PYTHON3_IDNA_SSL
+ tristate
+ select PYTHON3
+ prompt "python3-idna-ssl"
+ help
+ Patch ssl.match_hostname for Unicode(idna) domains support
diff --git a/rules/python3-idna-ssl.make b/rules/python3-idna-ssl.make
new file mode 100644
index 000000000..f9b097f4d
--- /dev/null
+++ b/rules/python3-idna-ssl.make
@@ -0,0 +1,54 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Enrico Joerns <e.joerns@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_IDNA_SSL) += python3-idna-ssl
+
+#
+# Paths and names
+#
+PYTHON3_IDNA_SSL_VERSION := 1.1.0
+PYTHON3_IDNA_SSL_MD5 := dd44ec53bac36e68446766fd8d3835bd
+PYTHON3_IDNA_SSL := idna-ssl-$(PYTHON3_IDNA_SSL_VERSION)
+PYTHON3_IDNA_SSL_SUFFIX := tar.gz
+PYTHON3_IDNA_SSL_URL := https://pypi.python.org/packages/source/i/idna_ssl/$(PYTHON3_IDNA_SSL).$(PYTHON3_IDNA_SSL_SUFFIX)
+PYTHON3_IDNA_SSL_SOURCE := $(SRCDIR)/$(PYTHON3_IDNA_SSL).$(PYTHON3_IDNA_SSL_SUFFIX)
+PYTHON3_IDNA_SSL_DIR := $(BUILDDIR)/$(PYTHON3_IDNA_SSL)
+PYTHON3_IDNA_SSL_LICENSE := MIT
+PYTHON3_ATTRS_LICENSE_FILES := \
+ file://LICENSE;md5=d4ab25949a73fe7d4fdee93bcbdbf8ff
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+PYTHON3_IDNA_SSL_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-idna-ssl.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-idna-ssl)
+ @$(call install_fixup, python3-idna-ssl,PRIORITY,optional)
+ @$(call install_fixup, python3-idna-ssl,SECTION,base)
+ @$(call install_fixup, python3-idna-ssl,AUTHOR,"Enrico Joerns <e.joerns@pengutronix.de>")
+ @$(call install_fixup, python3-idna-ssl,DESCRIPTION,missing)
+
+ @$(call install_copy, python3-idna-ssl, 0, 0, 0644, -, \
+ /usr/lib/python$(PYTHON3_MAJORMINOR)/site-packages/idna_ssl.py)
+
+ @$(call install_finish, python3-idna-ssl)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-ifaddr.in b/rules/python3-ifaddr.in
new file mode 100644
index 000000000..250b8b417
--- /dev/null
+++ b/rules/python3-ifaddr.in
@@ -0,0 +1,9 @@
+## SECTION=python3
+
+config PYTHON3_IFADDR
+ tristate
+ select PYTHON3
+ prompt "ifaddr"
+ help
+ ifaddr is a small Python library that allows you to find all
+ the Ethernet and IP addresses of the computer.
diff --git a/rules/python3-ifaddr.make b/rules/python3-ifaddr.make
new file mode 100644
index 000000000..3f3e3faa9
--- /dev/null
+++ b/rules/python3-ifaddr.make
@@ -0,0 +1,53 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by David Jander <david@protonic.nl>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_IFADDR) += python3-ifaddr
+
+#
+# Paths and names
+#
+PYTHON3_IFADDR_VERSION := 0.1.7
+PYTHON3_IFADDR_MD5 := 97c4eb7505643b5f1fe17733cb42abd9
+PYTHON3_IFADDR := ifaddr-$(PYTHON3_IFADDR_VERSION)
+PYTHON3_IFADDR_SUFFIX := tar.gz
+PYTHON3_IFADDR_URL := $(call ptx/mirror-pypi, ifaddr, $(PYTHON3_IFADDR).$(PYTHON3_IFADDR_SUFFIX))
+PYTHON3_IFADDR_SOURCE := $(SRCDIR)/$(PYTHON3_IFADDR).$(PYTHON3_IFADDR_SUFFIX)
+PYTHON3_IFADDR_DIR := $(BUILDDIR)/$(PYTHON3_IFADDR)
+PYTHON3_IFADDR_LICENSE := MIT
+PYTHON3_IFADDR_LICENSE_FILES := file://LICENSE.txt;md5=8debe8d42320ec0ff24665319b625a5e
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_IFADDR_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-ifaddr.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-ifaddr)
+ @$(call install_fixup, python3-ifaddr,PRIORITY,optional)
+ @$(call install_fixup, python3-ifaddr,SECTION,base)
+ @$(call install_fixup, python3-ifaddr,AUTHOR,"David Jander <david@protonic.nl>")
+ @$(call install_fixup, python3-ifaddr,DESCRIPTION,missing)
+
+ @$(call install_glob, python3-ifaddr, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES),, *.py)
+
+ @$(call install_finish, python3-ifaddr)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-importlib-metadata.make b/rules/python3-importlib-metadata.make
index c429a6943..1426b5035 100644
--- a/rules/python3-importlib-metadata.make
+++ b/rules/python3-importlib-metadata.make
@@ -18,7 +18,7 @@ PYTHON3_IMPORTLIB_METADATA_VERSION := 1.7.0
PYTHON3_IMPORTLIB_METADATA_MD5 := 4505ea85600cca1e693a4f8f5dd27ba8
PYTHON3_IMPORTLIB_METADATA := importlib_metadata-$(PYTHON3_IMPORTLIB_METADATA_VERSION)
PYTHON3_IMPORTLIB_METADATA_SUFFIX := tar.gz
-PYTHON3_IMPORTLIB_METADATA_URL := https://pypi.python.org/packages/source/i/importlib_metadata/$(PYTHON3_IMPORTLIB_METADATA).$(PYTHON3_IMPORTLIB_METADATA_SUFFIX)
+PYTHON3_IMPORTLIB_METADATA_URL := $(call ptx/mirror-pypi, importlib_metadata, $(PYTHON3_IMPORTLIB_METADATA).$(PYTHON3_IMPORTLIB_METADATA_SUFFIX))
PYTHON3_IMPORTLIB_METADATA_SOURCE := $(SRCDIR)/$(PYTHON3_IMPORTLIB_METADATA).$(PYTHON3_IMPORTLIB_METADATA_SUFFIX)
PYTHON3_IMPORTLIB_METADATA_DIR := $(BUILDDIR)/$(PYTHON3_IMPORTLIB_METADATA)
PYTHON3_IMPORTLIB_METADATA_LICENSE := Apache-2.0
diff --git a/rules/python3-iniherit.make b/rules/python3-iniherit.make
index 3a1a80f31..54c11e867 100644
--- a/rules/python3-iniherit.make
+++ b/rules/python3-iniherit.make
@@ -18,7 +18,7 @@ PYTHON3_INIHERIT_VERSION := 0.3.9
PYTHON3_INIHERIT_MD5 := 0e501d38a1ad7c9bde7bff9387d4a582
PYTHON3_INIHERIT := iniherit-$(PYTHON3_INIHERIT_VERSION)
PYTHON3_INIHERIT_SUFFIX := tar.gz
-PYTHON3_INIHERIT_URL := https://files.pythonhosted.org/packages/source/i/iniherit/$(PYTHON3_INIHERIT).$(PYTHON3_INIHERIT_SUFFIX)
+PYTHON3_INIHERIT_URL := $(call ptx/mirror-pypi, iniherit, $(PYTHON3_INIHERIT).$(PYTHON3_INIHERIT_SUFFIX))
PYTHON3_INIHERIT_SOURCE := $(SRCDIR)/$(PYTHON3_INIHERIT).$(PYTHON3_INIHERIT_SUFFIX)
PYTHON3_INIHERIT_DIR := $(BUILDDIR)/$(PYTHON3_INIHERIT)
PYTHON3_INIHERIT_LICENSE := MIT
diff --git a/rules/python3-ipython-genutils.make b/rules/python3-ipython-genutils.make
index 9a49b7502..15af28320 100644
--- a/rules/python3-ipython-genutils.make
+++ b/rules/python3-ipython-genutils.make
@@ -18,7 +18,7 @@ PYTHON3_IPYTHON_GENUTILS_VERSION := 0.1.0
PYTHON3_IPYTHON_GENUTILS_MD5 := 9a8afbe0978adbcbfcb3b35b2d015a56
PYTHON3_IPYTHON_GENUTILS := ipython_genutils-$(PYTHON3_IPYTHON_GENUTILS_VERSION)
PYTHON3_IPYTHON_GENUTILS_SUFFIX := tar.gz
-PYTHON3_IPYTHON_GENUTILS_URL := https://pypi.python.org/packages/source/i/ipython_genutils/$(PYTHON3_IPYTHON_GENUTILS).$(PYTHON3_IPYTHON_GENUTILS_SUFFIX)\#md5=$(PYTHON3_IPYTHON_GENUTILS_MD5)
+PYTHON3_IPYTHON_GENUTILS_URL := $(call ptx/mirror-pypi, ipython_genutils, $(PYTHON3_IPYTHON_GENUTILS).$(PYTHON3_IPYTHON_GENUTILS_SUFFIX))
PYTHON3_IPYTHON_GENUTILS_SOURCE := $(SRCDIR)/$(PYTHON3_IPYTHON_GENUTILS).$(PYTHON3_IPYTHON_GENUTILS_SUFFIX)
PYTHON3_IPYTHON_GENUTILS_DIR := $(BUILDDIR)/$(PYTHON3_IPYTHON_GENUTILS)
PYTHON3_IPYTHON_GENUTILS_LICENSE := BSD-3-Clause
diff --git a/rules/python3-ipython.make b/rules/python3-ipython.make
index 3ad3705ac..5d73d018b 100644
--- a/rules/python3-ipython.make
+++ b/rules/python3-ipython.make
@@ -18,7 +18,7 @@ PYTHON3_IPYTHON_VERSION := 4.1.1
PYTHON3_IPYTHON_MD5 := 3da622447b3b7ca7d41c868c80bb8b0e
PYTHON3_IPYTHON := ipython-$(PYTHON3_IPYTHON_VERSION)
PYTHON3_IPYTHON_SUFFIX := tar.gz
-PYTHON3_IPYTHON_URL := https://pypi.python.org/packages/source/i/ipython/$(PYTHON3_IPYTHON).$(PYTHON3_IPYTHON_SUFFIX)\#md5=3da622447b3b7ca7d41c868c80bb8b0e
+PYTHON3_IPYTHON_URL := $(call ptx/mirror-pypi, ipython, $(PYTHON3_IPYTHON).$(PYTHON3_IPYTHON_SUFFIX))
PYTHON3_IPYTHON_SOURCE := $(SRCDIR)/$(PYTHON3_IPYTHON).$(PYTHON3_IPYTHON_SUFFIX)
PYTHON3_IPYTHON_DIR := $(BUILDDIR)/$(PYTHON3_IPYTHON)
PYTHON3_IPYTHON_LICENSE := BSD-3-Clause
diff --git a/rules/python3-jinja2.make b/rules/python3-jinja2.make
index 3e9c8586c..445d0ea72 100644
--- a/rules/python3-jinja2.make
+++ b/rules/python3-jinja2.make
@@ -11,8 +11,8 @@
#
PACKAGES-$(PTXCONF_PYTHON3_JINJA2) += python3-jinja2
-PYTHON3_JINJA2_VERSION := 2.11.2
-PYTHON3_JINJA2_MD5 := 0362203b22547abca06ed1082bc1e7b4
+PYTHON3_JINJA2_VERSION := 3.1.3
+PYTHON3_JINJA2_MD5 := caf5418c851eac59e70a78d9730d4cea
PYTHON3_JINJA2 := Jinja2-$(PYTHON3_JINJA2_VERSION)
PYTHON3_JINJA2_SUFFIX := tar.gz
PYTHON3_JINJA2_URL := $(call ptx/mirror-pypi, jinja2, $(PYTHON3_JINJA2).$(PYTHON3_JINJA2_SUFFIX))
diff --git a/rules/python3-joblib.in b/rules/python3-joblib.in
new file mode 100644
index 000000000..e78af3ea7
--- /dev/null
+++ b/rules/python3-joblib.in
@@ -0,0 +1,10 @@
+## SECTION=python3
+
+config PYTHON3_JOBLIB
+ tristate
+ select PYTHON3
+ select PYTHON3_NUMPY
+ prompt "joblib"
+ help
+ Joblib is a set of tools to provide lightweight pipelining in
+ Python.
diff --git a/rules/python3-joblib.make b/rules/python3-joblib.make
new file mode 100644
index 000000000..39a81d956
--- /dev/null
+++ b/rules/python3-joblib.make
@@ -0,0 +1,53 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_JOBLIB) += python3-joblib
+
+#
+# Paths and names
+#
+PYTHON3_JOBLIB_VERSION := 1.3.2
+PYTHON3_JOBLIB_MD5 := d3b410f1d0681e5ad48a83b0d692e0fd
+PYTHON3_JOBLIB := joblib-$(PYTHON3_JOBLIB_VERSION)
+PYTHON3_JOBLIB_SUFFIX := tar.gz
+PYTHON3_JOBLIB_URL := $(call ptx/mirror-pypi, joblib, $(PYTHON3_JOBLIB).$(PYTHON3_JOBLIB_SUFFIX))
+PYTHON3_JOBLIB_SOURCE := $(SRCDIR)/$(PYTHON3_JOBLIB).$(PYTHON3_JOBLIB_SUFFIX)
+PYTHON3_JOBLIB_DIR := $(BUILDDIR)/$(PYTHON3_JOBLIB)
+PYTHON3_JOBLIB_LICENSE := BSD-3-Clause
+PYTHON3_JOBLIB_LICENSE_FILES := file://LICENSE.txt;md5=2e481820abf0a70a18011a30153df066
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_JOBLIB_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-joblib.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-joblib)
+ @$(call install_fixup, python3-joblib,PRIORITY,optional)
+ @$(call install_fixup, python3-joblib,SECTION,base)
+ @$(call install_fixup, python3-joblib,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, python3-joblib,DESCRIPTION,missing)
+
+ @$(call install_glob, python3-joblib, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES),, *.py */test/*)
+
+ @$(call install_finish, python3-joblib)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-lxml.in b/rules/python3-lxml.in
index cf7eeb963..fa091d184 100644
--- a/rules/python3-lxml.in
+++ b/rules/python3-lxml.in
@@ -7,6 +7,7 @@ config PYTHON3_LXML
select LIBXML2_SCHEMAS
select LIBXSLT
select LIBXSLT_LIBEXSLT
+ select LIBXSLT_PROFILER
prompt "lxml"
help
lxml is a Pythonic, mature binding for the libxml2 and libxslt libraries.
diff --git a/rules/python3-lxml.make b/rules/python3-lxml.make
index d3afee9a9..9c28bc6d8 100644
--- a/rules/python3-lxml.make
+++ b/rules/python3-lxml.make
@@ -11,11 +11,11 @@
#
PACKAGES-$(PTXCONF_PYTHON3_LXML) += python3-lxml
-PYTHON3_LXML_VERSION := 4.4.2
-PYTHON3_LXML_MD5 := 235c1a22d97a174144e76b66ce62ae46
+PYTHON3_LXML_VERSION := 4.9.2
+PYTHON3_LXML_MD5 := aa84a7ce47581b43cb827145340505c6
PYTHON3_LXML := lxml-$(PYTHON3_LXML_VERSION)
PYTHON3_LXML_SUFFIX := tar.gz
-PYTHON3_LXML_URL := https://files.pythonhosted.org/packages/source/l/lxml/$(PYTHON3_LXML).$(PYTHON3_LXML_SUFFIX)
+PYTHON3_LXML_URL := $(call ptx/mirror-pypi, lxml, $(PYTHON3_LXML).$(PYTHON3_LXML_SUFFIX))
PYTHON3_LXML_SOURCE := $(SRCDIR)/$(PYTHON3_LXML).$(PYTHON3_LXML_SUFFIX)
PYTHON3_LXML_DIR := $(BUILDDIR)/$(PYTHON3_LXML)
PYTHON3_LXML_LICENSE := BSD
diff --git a/rules/python3-mako.in b/rules/python3-mako.in
index f2fc44866..b6042c519 100644
--- a/rules/python3-mako.in
+++ b/rules/python3-mako.in
@@ -4,6 +4,8 @@ config PYTHON3_MAKO
tristate
prompt "python3-mako"
select PYTHON3
+ select HOST_PYTHON3_PYBUILD
+ select HOST_PYTHON3_WHEEL
help
Mako is a template library written in Python. It provides a
familiar, non-XML syntax which compiles into Python modules
diff --git a/rules/python3-mako.make b/rules/python3-mako.make
index c896ba74b..f3d4d2b0e 100644
--- a/rules/python3-mako.make
+++ b/rules/python3-mako.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_PYTHON3_MAKO) += python3-mako
#
# Paths and names
#
-PYTHON3_MAKO_VERSION := 1.0.6
-PYTHON3_MAKO_MD5 := a28e22a339080316b2acc352b9ee631c
+PYTHON3_MAKO_VERSION := 1.3.2
+PYTHON3_MAKO_MD5 := 0500a3df18f02c9e53fe3a9314c1a1ae
PYTHON3_MAKO := Mako-$(PYTHON3_MAKO_VERSION)
PYTHON3_MAKO_SUFFIX := tar.gz
-PYTHON3_MAKO_URL := https://pypi.python.org/packages/56/4b/cb75836863a6382199aefb3d3809937e21fa4cb0db15a4f4ba0ecc2e7e8e/$(PYTHON3_MAKO).$(PYTHON3_MAKO_SUFFIX)
+PYTHON3_MAKO_URL := $(call ptx/mirror-pypi, Mako, $(PYTHON3_MAKO).$(PYTHON3_MAKO_SUFFIX))
PYTHON3_MAKO_SOURCE := $(SRCDIR)/$(PYTHON3_MAKO).$(PYTHON3_MAKO_SUFFIX)
PYTHON3_MAKO_DIR := $(BUILDDIR)/python3-$(PYTHON3_MAKO)
PYTHON3_MAKO_LICENSE := MIT
diff --git a/rules/python3-markupsafe.make b/rules/python3-markupsafe.make
index e70c63558..0d8fb2a83 100644
--- a/rules/python3-markupsafe.make
+++ b/rules/python3-markupsafe.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_PYTHON3_MARKUPSAFE) += python3-markupsafe
#
# Paths and names
#
-PYTHON3_MARKUPSAFE_VERSION := 1.1.1
-PYTHON3_MARKUPSAFE_MD5 := 43fd756864fe42063068e092e220c57b
+PYTHON3_MARKUPSAFE_VERSION := 2.1.5
+PYTHON3_MARKUPSAFE_MD5 := 8fe7227653f2fb9b1ffe7f9f2058998a
PYTHON3_MARKUPSAFE := MarkupSafe-$(PYTHON3_MARKUPSAFE_VERSION)
PYTHON3_MARKUPSAFE_SUFFIX := tar.gz
PYTHON3_MARKUPSAFE_URL := $(call ptx/mirror-pypi, MarkupSafe, $(PYTHON3_MARKUPSAFE).$(PYTHON3_MARKUPSAFE_SUFFIX))
diff --git a/rules/python3-more-itertools.make b/rules/python3-more-itertools.make
index f73c3a311..fb5393399 100644
--- a/rules/python3-more-itertools.make
+++ b/rules/python3-more-itertools.make
@@ -18,7 +18,7 @@ PYTHON3_MORE_ITERTOOLS_VERSION := 8.4.0
PYTHON3_MORE_ITERTOOLS_MD5 := 0912041c05148ed079984cff69af2e99
PYTHON3_MORE_ITERTOOLS := more-itertools-$(PYTHON3_MORE_ITERTOOLS_VERSION)
PYTHON3_MORE_ITERTOOLS_SUFFIX := tar.gz
-PYTHON3_MORE_ITERTOOLS_URL := https://pypi.python.org/packages/source/m/more-itertools/$(PYTHON3_MORE_ITERTOOLS).$(PYTHON3_MORE_ITERTOOLS_SUFFIX)
+PYTHON3_MORE_ITERTOOLS_URL := $(call ptx/mirror-pypi, more-itertools, $(PYTHON3_MORE_ITERTOOLS).$(PYTHON3_MORE_ITERTOOLS_SUFFIX))
PYTHON3_MORE_ITERTOOLS_SOURCE := $(SRCDIR)/$(PYTHON3_MORE_ITERTOOLS).$(PYTHON3_MORE_ITERTOOLS_SUFFIX)
PYTHON3_MORE_ITERTOOLS_DIR := $(BUILDDIR)/$(PYTHON3_MORE_ITERTOOLS)
PYTHON3_MORE_ITERTOOLS_LICENSE := MIT
diff --git a/rules/python3-msgpack.make b/rules/python3-msgpack.make
index b2056be54..6c14688ed 100644
--- a/rules/python3-msgpack.make
+++ b/rules/python3-msgpack.make
@@ -18,7 +18,7 @@ PYTHON3_MSGPACK_VERSION := 0.4.8
PYTHON3_MSGPACK_MD5 := dcd854fb41ee7584ebbf35e049e6be98
PYTHON3_MSGPACK := msgpack-python-$(PYTHON3_MSGPACK_VERSION)
PYTHON3_MSGPACK_SUFFIX := tar.gz
-PYTHON3_MSGPACK_URL := https://pypi.python.org/packages/21/27/8a1d82041c7a2a51fcc73675875a5f9ea06c2663e02fcfeb708be1d081a0/$(PYTHON3_MSGPACK).$(PYTHON3_MSGPACK_SUFFIX)\#md5=$(PYTHON3_MSGPACK_MD5)
+PYTHON3_MSGPACK_URL := $(call ptx/mirror-pypi, msgpack-python, $(PYTHON3_MSGPACK).$(PYTHON3_MSGPACK_SUFFIX))
PYTHON3_MSGPACK_SOURCE := $(SRCDIR)/$(PYTHON3_MSGPACK).$(PYTHON3_MSGPACK_SUFFIX)
PYTHON3_MSGPACK_DIR := $(BUILDDIR)/$(PYTHON3_MSGPACK)
PYTHON3_MSGPACK_LICENSE := Apache-2.0
diff --git a/rules/python3-netifaces.in b/rules/python3-netifaces.in
new file mode 100644
index 000000000..3899ba697
--- /dev/null
+++ b/rules/python3-netifaces.in
@@ -0,0 +1,9 @@
+## SECTION=python3
+
+config PYTHON3_NETIFACES
+ tristate
+ select PYTHON3
+ prompt "python3-netifaces"
+ help
+ netifaces provides an easy way to get the address(es) of the
+ machine’s network interfaces in Python.
diff --git a/rules/python3-netifaces.make b/rules/python3-netifaces.make
new file mode 100644
index 000000000..1c0a98624
--- /dev/null
+++ b/rules/python3-netifaces.make
@@ -0,0 +1,53 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Matthias Fend <matthias.fend@emfend.at>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_NETIFACES) += python3-netifaces
+
+#
+# Paths and names
+#
+PYTHON3_NETIFACES_VERSION := 0.11.0
+PYTHON3_NETIFACES_MD5 := 3146dcb3297dd018ae5eb9a52b440419
+PYTHON3_NETIFACES := netifaces-$(PYTHON3_NETIFACES_VERSION)
+PYTHON3_NETIFACES_SUFFIX := tar.gz
+PYTHON3_NETIFACES_URL := $(call ptx/mirror-pypi, netifaces, $(PYTHON3_NETIFACES).$(PYTHON3_NETIFACES_SUFFIX))
+PYTHON3_NETIFACES_SOURCE := $(SRCDIR)/$(PYTHON3_NETIFACES).$(PYTHON3_NETIFACES_SUFFIX)
+PYTHON3_NETIFACES_DIR := $(BUILDDIR)/$(PYTHON3_NETIFACES)
+PYTHON3_NETIFACES_LICENSE := MIT
+PYTHON3_NETIFACES_LICENSE_FILES := file://LICENSE;md5=e4677613c25bf3673bfee98c0cc52202
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_NETIFACES_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-netifaces.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-netifaces)
+ @$(call install_fixup, python3-netifaces, PRIORITY, optional)
+ @$(call install_fixup, python3-netifaces, SECTION, base)
+ @$(call install_fixup, python3-netifaces, AUTHOR, "Matthias Fend <matthias.fend@emfend.at>")
+ @$(call install_fixup, python3-netifaces, DESCRIPTION, missing)
+
+ @$(call install_glob, python3-netifaces, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES),, *.py)
+
+ @$(call install_finish, python3-netifaces)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-numpy.in b/rules/python3-numpy.in
index 174a2bae1..cb60100ff 100644
--- a/rules/python3-numpy.in
+++ b/rules/python3-numpy.in
@@ -2,7 +2,11 @@
config PYTHON3_NUMPY
tristate
+ select HOST_CYTHON3
+ select GCCLIBS_CXX
select PYTHON3
+ select PYTHON3_SSL
+ select OPENBLAS
prompt "python3-numpy"
help
NumPy is the fundamental package for scientific computing with
diff --git a/rules/python3-numpy.make b/rules/python3-numpy.make
index b8b0a19ef..4c8ba240f 100644
--- a/rules/python3-numpy.make
+++ b/rules/python3-numpy.make
@@ -14,26 +14,37 @@ PACKAGES-$(PTXCONF_PYTHON3_NUMPY) += python3-numpy
#
# Paths and names
#
-PYTHON3_NUMPY_VERSION := 1.17.4
-PYTHON3_NUMPY_MD5 := d7d3563cca0b99ba68a3f064a9e46ebe
+PYTHON3_NUMPY_VERSION := 1.26.0
+PYTHON3_NUMPY_MD5 := 69bd28f07afbeed2bb6ecd467afcd469
PYTHON3_NUMPY := numpy-$(PYTHON3_NUMPY_VERSION)
-PYTHON3_NUMPY_SUFFIX := zip
-PYTHON3_NUMPY_URL := https://pypi.python.org/packages/source/n/numpy/$(PYTHON3_NUMPY).$(PYTHON3_NUMPY_SUFFIX)
+PYTHON3_NUMPY_SUFFIX := tar.gz
+PYTHON3_NUMPY_URL := $(call ptx/mirror-pypi, numpy, $(PYTHON3_NUMPY).$(PYTHON3_NUMPY_SUFFIX))
PYTHON3_NUMPY_SOURCE := $(SRCDIR)/$(PYTHON3_NUMPY).$(PYTHON3_NUMPY_SUFFIX)
PYTHON3_NUMPY_DIR := $(BUILDDIR)/$(PYTHON3_NUMPY)
-PYTHON3_NUMPY_LICENSE := BSD-3-Clause AND MIT
+PYTHON3_NUMPY_LICENSE := BSD-3-Clause AND MIT AND Zlib
PYTHON3_NUMPY_LICENSE_FILES := \
- file://LICENSE.txt;md5=1a32aba007a415aa8a1c708a0e2b86a1 \
+ file://LICENSE.txt;md5=a752eb20459cf74a9d84ee4825e8317c \
file://tools/npy_tempita/license.txt;md5=c66b85ddcd09296abff87601467724fd \
- file://numpy/core/src/multiarray/dragon4.c;startline=2;endline=20;md5=7f70862b43e17922c5adf18ec84fb720
+ file://numpy/core/src/multiarray/dragon4.c;startline=2;endline=20;md5=7f70862b43e17922c5adf18ec84fb720 \
+ file://numpy/core/include/numpy/libdivide/LICENSE.txt;md5=e1c97b70a98c8ec5aff0aa275fdb2c91
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
+PYTHON3_NUMPY_CONF_ENV := \
+ $(CROSS_ENV) \
+ SETUPTOOLS_USE_DISTUTILS=stdlib \
+ NPY_LAPACK_ORDER=openblas \
+ OPENBLAS=$(SYSROOT)/usr/lib \
+ NPY_DISABLE_SVML=1
+
PYTHON3_NUMPY_CONF_TOOL := python3
+PYTHON3_NUMPY_CXXFLAGS := \
+ -std=c++11
+
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
diff --git a/rules/python3-opcua.make b/rules/python3-opcua.make
index e1d0b5dec..d71116c96 100644
--- a/rules/python3-opcua.make
+++ b/rules/python3-opcua.make
@@ -15,7 +15,7 @@ PYTHON3_OPCUA_VERSION := 0.98.7
PYTHON3_OPCUA_MD5 := beca06f61d4acd4349a118b81fc37aad
PYTHON3_OPCUA := opcua-$(PYTHON3_OPCUA_VERSION)
PYTHON3_OPCUA_SUFFIX := tar.gz
-PYTHON3_OPCUA_URL := https://files.pythonhosted.org/packages/source/o/opcua/$(PYTHON3_OPCUA).$(PYTHON3_OPCUA_SUFFIX)
+PYTHON3_OPCUA_URL := $(call ptx/mirror-pypi, opcua, $(PYTHON3_OPCUA).$(PYTHON3_OPCUA_SUFFIX))
PYTHON3_OPCUA_SOURCE := $(SRCDIR)/$(PYTHON3_OPCUA).$(PYTHON3_OPCUA_SUFFIX)
PYTHON3_OPCUA_DIR := $(BUILDDIR)/$(PYTHON3_OPCUA)
PYTHON3_OPCUA_LICENSE := LGPL-3.0-only
diff --git a/rules/python3-packaging.make b/rules/python3-packaging.make
index e8e2e79b9..b9c636090 100644
--- a/rules/python3-packaging.make
+++ b/rules/python3-packaging.make
@@ -18,7 +18,7 @@ PYTHON3_PACKAGING_VERSION := 20.4
PYTHON3_PACKAGING_MD5 := 3208229da731c5d8e29d4d8941e75005
PYTHON3_PACKAGING := packaging-$(PYTHON3_PACKAGING_VERSION)
PYTHON3_PACKAGING_SUFFIX := tar.gz
-PYTHON3_PACKAGING_URL := https://pypi.python.org/packages/source/p/packaging/$(PYTHON3_PACKAGING).$(PYTHON3_PACKAGING_SUFFIX)
+PYTHON3_PACKAGING_URL := $(call ptx/mirror-pypi, packaging, $(PYTHON3_PACKAGING).$(PYTHON3_PACKAGING_SUFFIX))
PYTHON3_PACKAGING_SOURCE := $(SRCDIR)/$(PYTHON3_PACKAGING).$(PYTHON3_PACKAGING_SUFFIX)
PYTHON3_PACKAGING_DIR := $(BUILDDIR)/$(PYTHON3_PACKAGING)
PYTHON3_PACKAGING_LICENSE := BSD-2-Clause OR Apache-2.0
diff --git a/rules/python3-paho-mqtt.in b/rules/python3-paho-mqtt.in
new file mode 100644
index 000000000..8f8ece378
--- /dev/null
+++ b/rules/python3-paho-mqtt.in
@@ -0,0 +1,9 @@
+## SECTION=python3
+
+config PYTHON3_PAHO_MQTT
+ tristate
+ select PYTHON3
+ prompt "paho-mqtt"
+ help
+ Eclipse Paho MQTT Python client library, which implements
+ versions 5.0, 3.1.1, and 3.1 of the MQTT protocol.
diff --git a/rules/python3-paho-mqtt.make b/rules/python3-paho-mqtt.make
new file mode 100644
index 000000000..2e82b1fbf
--- /dev/null
+++ b/rules/python3-paho-mqtt.make
@@ -0,0 +1,55 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Bruno Thomsen <bruno.thomsen@gmail.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_PAHO_MQTT) += python3-paho-mqtt
+
+#
+# Paths and names
+#
+PYTHON3_PAHO_MQTT_VERSION := 1.6.1
+PYTHON3_PAHO_MQTT_MD5 := bdb20f88db291fdb4a0fe804c0f29316
+PYTHON3_PAHO_MQTT := paho-mqtt-$(PYTHON3_PAHO_MQTT_VERSION)
+PYTHON3_PAHO_MQTT_SUFFIX := tar.gz
+PYTHON3_PAHO_MQTT_URL := $(call ptx/mirror-pypi, paho-mqtt, $(PYTHON3_PAHO_MQTT).$(PYTHON3_PAHO_MQTT_SUFFIX))
+PYTHON3_PAHO_MQTT_SOURCE := $(SRCDIR)/$(PYTHON3_PAHO_MQTT).$(PYTHON3_PAHO_MQTT_SUFFIX)
+PYTHON3_PAHO_MQTT_DIR := $(BUILDDIR)/$(PYTHON3_PAHO_MQTT)
+PYTHON3_PAHO_MQTT_LICENSE := EPL-2.0 OR BSD-3-Clause
+PYTHON3_PAHO_MQTT_LICENSE_FILES := \
+ file://LICENSE.txt;md5=8e5f264c6988aec56808a3a11e77b913 \
+ file://edl-v10;md5=c09f121939f063aeb5235972be8c722c
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_PAHO_MQTT_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-paho-mqtt.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-paho-mqtt)
+ @$(call install_fixup, python3-paho-mqtt,PRIORITY,optional)
+ @$(call install_fixup, python3-paho-mqtt,SECTION,base)
+ @$(call install_fixup, python3-paho-mqtt,AUTHOR,"Bruno Thomsen <bruno.thomsen@gmail.com>")
+ @$(call install_fixup, python3-paho-mqtt,DESCRIPTION,missing)
+
+ @$(call install_glob, python3-paho-mqtt, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES),, *.py)
+
+ @$(call install_finish, python3-paho-mqtt)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-path-py.make b/rules/python3-path-py.make
index b7fef082f..9c5d58f1c 100644
--- a/rules/python3-path-py.make
+++ b/rules/python3-path-py.make
@@ -18,7 +18,7 @@ PYTHON3_PATH_PY_VERSION := 8.1.2
PYTHON3_PATH_PY_MD5 := 31d07ac861284f8148a9041064852371
PYTHON3_PATH_PY := path.py-$(PYTHON3_PATH_PY_VERSION)
PYTHON3_PATH_PY_SUFFIX := tar.gz
-PYTHON3_PATH_PY_URL := https://pypi.python.org/packages/source/p/path.py/$(PYTHON3_PATH_PY).$(PYTHON3_PATH_PY_SUFFIX)\#md5=$(PYTHON3_PATH_PY_MD5)
+PYTHON3_PATH_PY_URL := $(call ptx/mirror-pypi, path.py, $(PYTHON3_PATH_PY).$(PYTHON3_PATH_PY_SUFFIX))
PYTHON3_PATH_PY_SOURCE := $(SRCDIR)/$(PYTHON3_PATH_PY).$(PYTHON3_PATH_PY_SUFFIX)
PYTHON3_PATH_PY_DIR := $(BUILDDIR)/$(PYTHON3_PATH_PY)
PYTHON3_PATH_PY_LICENSE := MIT
diff --git a/rules/python3-pickleshare.make b/rules/python3-pickleshare.make
index f25ece57c..927edb00a 100644
--- a/rules/python3-pickleshare.make
+++ b/rules/python3-pickleshare.make
@@ -18,7 +18,7 @@ PYTHON3_PICKLESHARE_VERSION := 0.6
PYTHON3_PICKLESHARE_MD5 := 7fadddce8b1b0110c4ef905be795001a
PYTHON3_PICKLESHARE := pickleshare-$(PYTHON3_PICKLESHARE_VERSION)
PYTHON3_PICKLESHARE_SUFFIX := tar.gz
-PYTHON3_PICKLESHARE_URL := https://pypi.python.org/packages/source/p/pickleshare/$(PYTHON3_PICKLESHARE).$(PYTHON3_PICKLESHARE_SUFFIX)\#md5=$(PYTHON3_PICKLESHARE_MD5)
+PYTHON3_PICKLESHARE_URL := $(call ptx/mirror-pypi, pickleshare, $(PYTHON3_PICKLESHARE).$(PYTHON3_PICKLESHARE_SUFFIX))
PYTHON3_PICKLESHARE_SOURCE := $(SRCDIR)/$(PYTHON3_PICKLESHARE).$(PYTHON3_PICKLESHARE_SUFFIX)
PYTHON3_PICKLESHARE_DIR := $(BUILDDIR)/$(PYTHON3_PICKLESHARE)
PYTHON3_PICKLESHARE_LICENSE := MIT
diff --git a/rules/python3-pip.make b/rules/python3-pip.make
index d570f7605..852cddc36 100644
--- a/rules/python3-pip.make
+++ b/rules/python3-pip.make
@@ -18,7 +18,7 @@ PYTHON3_PIP_VERSION := 21.0.1
PYTHON3_PIP_MD5 := 246523bd34dd356e7506adf54d206b12
PYTHON3_PIP := pip-$(PYTHON3_PIP_VERSION)
PYTHON3_PIP_SUFFIX := tar.gz
-PYTHON3_PIP_URL := https://pypi.python.org/packages/source/p/pip/$(PYTHON3_PIP).$(PYTHON3_PIP_SUFFIX)
+PYTHON3_PIP_URL := $(call ptx/mirror-pypi, pip, $(PYTHON3_PIP).$(PYTHON3_PIP_SUFFIX))
PYTHON3_PIP_SOURCE := $(SRCDIR)/$(PYTHON3_PIP).$(PYTHON3_PIP_SUFFIX)
PYTHON3_PIP_DIR := $(BUILDDIR)/$(PYTHON3_PIP)
PYTHON3_PIP_LICENSE := MIT
@@ -57,7 +57,7 @@ $(STATEDIR)/python3-pip.targetinstall:
$(PYTHON3_SITEPACKAGES),, *.py *.exe)
# accessed at runtime by .../pip/_vendor/pep517/wrappers.py
@$(call install_copy, python3-pip, 0, 0, 0644, -, \
- /usr/lib/python3.7/site-packages/pip/_vendor/pep517/_in_process.py)
+ /usr/lib/python$(PYTHON3_MAJORMINOR)/site-packages/pip/_vendor/pep517/_in_process.py)
@$(call install_finish, python3-pip)
diff --git a/rules/python3-pluggy.in b/rules/python3-pluggy.in
index 0b76f2023..8b2da10c4 100644
--- a/rules/python3-pluggy.in
+++ b/rules/python3-pluggy.in
@@ -2,6 +2,7 @@
config PYTHON3_PLUGGY
tristate
+ select HOST_PYTHON3_PIP
select PYTHON3
select PYTHON3_IMPORTLIB_METADATA if RUNTIME
prompt "pluggy"
diff --git a/rules/python3-pluggy.make b/rules/python3-pluggy.make
index e1ce33765..33fcaea6f 100644
--- a/rules/python3-pluggy.make
+++ b/rules/python3-pluggy.make
@@ -18,7 +18,7 @@ PYTHON3_PLUGGY_VERSION := 0.13.1
PYTHON3_PLUGGY_MD5 := 7f610e28b8b34487336b585a3dfb803d
PYTHON3_PLUGGY := pluggy-$(PYTHON3_PLUGGY_VERSION)
PYTHON3_PLUGGY_SUFFIX := tar.gz
-PYTHON3_PLUGGY_URL := https://pypi.python.org/packages/source/p/pluggy/$(PYTHON3_PLUGGY).$(PYTHON3_PLUGGY_SUFFIX)
+PYTHON3_PLUGGY_URL := $(call ptx/mirror-pypi, pluggy, $(PYTHON3_PLUGGY).$(PYTHON3_PLUGGY_SUFFIX))
PYTHON3_PLUGGY_SOURCE := $(SRCDIR)/$(PYTHON3_PLUGGY).$(PYTHON3_PLUGGY_SUFFIX)
PYTHON3_PLUGGY_DIR := $(BUILDDIR)/$(PYTHON3_PLUGGY)
PYTHON3_PLUGGY_LICENSE := MIT
diff --git a/rules/python3-ply.make b/rules/python3-ply.make
index 5e2aa6aa0..e5deab4f7 100644
--- a/rules/python3-ply.make
+++ b/rules/python3-ply.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_PYTHON3_PLY) += python3-ply
#
# Paths and names
#
-PYTHON3_PLY_VERSION := 3.4
-PYTHON3_PLY_MD5 := ffdc95858819347bf92d7c2acc074894
+PYTHON3_PLY_VERSION := 3.11
+PYTHON3_PLY_MD5 := 6465f602e656455affcd7c5734c638f8
PYTHON3_PLY := ply-$(PYTHON3_PLY_VERSION)
PYTHON3_PLY_SUFFIX := tar.gz
-PYTHON3_PLY_URL := https://pypi.python.org/packages/source/p/ply/$(PYTHON3_PLY).$(PYTHON3_PLY_SUFFIX)
+PYTHON3_PLY_URL := $(call ptx/mirror-pypi, ply, $(PYTHON3_PLY).$(PYTHON3_PLY_SUFFIX))
PYTHON3_PLY_SOURCE := $(SRCDIR)/$(PYTHON3_PLY).$(PYTHON3_PLY_SUFFIX)
PYTHON3_PLY_DIR := $(BUILDDIR)/$(PYTHON3_PLY)
PYTHON3_PLY_LICENSE := BSD
diff --git a/rules/python3-posix_ipc.in b/rules/python3-posix_ipc.in
new file mode 100644
index 000000000..ace39885d
--- /dev/null
+++ b/rules/python3-posix_ipc.in
@@ -0,0 +1,10 @@
+## SECTION=python3
+
+config PYTHON3_POSIX_IPC
+ tristate
+ select PYTHON3
+ prompt "posix_ipc"
+ help
+ posix_ipc is a Python module (written in C) that permits
+ creation and manipulation of POSIX inter-process
+ semaphores, shared memory and message queues
diff --git a/rules/python3-posix_ipc.make b/rules/python3-posix_ipc.make
new file mode 100644
index 000000000..9a45d48c4
--- /dev/null
+++ b/rules/python3-posix_ipc.make
@@ -0,0 +1,53 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Artur Wiebe <artur@4wiebe.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_POSIX_IPC) += python3-posix_ipc
+
+#
+# Paths and names
+#
+PYTHON3_POSIX_IPC_VERSION := 1.1.1
+PYTHON3_POSIX_IPC_MD5 := 523a31c4dbd56e0d4fd677f33e126e5d
+PYTHON3_POSIX_IPC := posix_ipc-$(PYTHON3_POSIX_IPC_VERSION)
+PYTHON3_POSIX_IPC_SUFFIX := tar.gz
+PYTHON3_POSIX_IPC_URL := $(call ptx/mirror-pypi, posix_ipc, $(PYTHON3_POSIX_IPC).$(PYTHON3_POSIX_IPC_SUFFIX))
+PYTHON3_POSIX_IPC_SOURCE := $(SRCDIR)/$(PYTHON3_POSIX_IPC).$(PYTHON3_POSIX_IPC_SUFFIX)
+PYTHON3_POSIX_IPC_DIR := $(BUILDDIR)/$(PYTHON3_POSIX_IPC)
+PYTHON3_POSIX_IPC_LICENSE := BSD
+PYTHON3_POSIX_IPC_LICENSE_FILES := file://LICENSE;md5=513d94a7390d4d72f3475e2d45c739b5
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_POSIX_IPC_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-posix_ipc.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-posix_ipc)
+ @$(call install_fixup, python3-posix_ipc,PRIORITY,optional)
+ @$(call install_fixup, python3-posix_ipc,SECTION,base)
+ @$(call install_fixup, python3-posix_ipc,AUTHOR,"Artur Wiebe <artur@4wiebe.de>")
+ @$(call install_fixup, python3-posix_ipc,DESCRIPTION,missing)
+
+ @$(call install_glob, python3-posix_ipc, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES), *.so,)
+
+ @$(call install_finish, python3-posix_ipc)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-psutil.make b/rules/python3-psutil.make
index 44e58ffc9..54f63435d 100644
--- a/rules/python3-psutil.make
+++ b/rules/python3-psutil.make
@@ -18,7 +18,7 @@ PYTHON3_PSUTIL_VERSION := 5.7.2
PYTHON3_PSUTIL_MD5 := 50bf39b4faa268ba1da8a9730bb38bb6
PYTHON3_PSUTIL := psutil-$(PYTHON3_PSUTIL_VERSION)
PYTHON3_PSUTIL_SUFFIX := tar.gz
-PYTHON3_PSUTIL_URL := https://pypi.python.org/packages/source/p/psutil/$(PYTHON3_PSUTIL).$(PYTHON3_PSUTIL_SUFFIX)
+PYTHON3_PSUTIL_URL := $(call ptx/mirror-pypi, psutil, $(PYTHON3_PSUTIL).$(PYTHON3_PSUTIL_SUFFIX))
PYTHON3_PSUTIL_SOURCE := $(SRCDIR)/$(PYTHON3_PSUTIL).$(PYTHON3_PSUTIL_SUFFIX)
PYTHON3_PSUTIL_DIR := $(BUILDDIR)/$(PYTHON3_PSUTIL)
PYTHON3_PSUTIL_LICENSE := BSD-3-Clause
diff --git a/rules/python3-py.in b/rules/python3-py.in
index 2adfa1714..efdc895ff 100644
--- a/rules/python3-py.in
+++ b/rules/python3-py.in
@@ -2,6 +2,7 @@
config PYTHON3_PY
tristate
+ select HOST_PYTHON3_PIP
select PYTHON3
prompt "py"
help
diff --git a/rules/python3-py.make b/rules/python3-py.make
index 74e866724..5d81fe395 100644
--- a/rules/python3-py.make
+++ b/rules/python3-py.make
@@ -18,7 +18,7 @@ PYTHON3_PY_VERSION := 1.9.0
PYTHON3_PY_MD5 := b80db4e61eef724f49feb4d20b649e62
PYTHON3_PY := py-$(PYTHON3_PY_VERSION)
PYTHON3_PY_SUFFIX := tar.gz
-PYTHON3_PY_URL := https://pypi.python.org/packages/source/p/py/$(PYTHON3_PY).$(PYTHON3_PY_SUFFIX)
+PYTHON3_PY_URL := $(call ptx/mirror-pypi, py, $(PYTHON3_PY).$(PYTHON3_PY_SUFFIX))
PYTHON3_PY_SOURCE := $(SRCDIR)/$(PYTHON3_PY).$(PYTHON3_PY_SUFFIX)
PYTHON3_PY_DIR := $(BUILDDIR)/$(PYTHON3_PY)
PYTHON3_PY_LICENSE := MIT
diff --git a/rules/python3-pyalsaaudio.make b/rules/python3-pyalsaaudio.make
index fc957b94d..fc52920d2 100644
--- a/rules/python3-pyalsaaudio.make
+++ b/rules/python3-pyalsaaudio.make
@@ -18,7 +18,7 @@ PYTHON3_PYALSAAUDIO_VERSION := 0.8.4
PYTHON3_PYALSAAUDIO_MD5 := b46f69561bc85fc52e698b2440ca251e
PYTHON3_PYALSAAUDIO := python3-pyalsaaudio-$(PYTHON3_PYALSAAUDIO_VERSION)
PYTHON3_PYALSAAUDIO_SUFFIX := tar.gz
-PYTHON3_PYALSAAUDIO_URL := https://pypi.python.org/packages/52/b6/44871791929d9d7e11325af0b7be711388dfeeab17147988f044a41a6d83/pyalsaaudio-$(PYTHON3_PYALSAAUDIO_VERSION).$(PYTHON3_PYALSAAUDIO_SUFFIX)
+PYTHON3_PYALSAAUDIO_URL := $(call ptx/mirror-pypi, pyalsaaudio, pyalsaaudio-$(PYTHON3_PYALSAAUDIO_VERSION).$(PYTHON3_PYALSAAUDIO_SUFFIX))
PYTHON3_PYALSAAUDIO_SOURCE := $(SRCDIR)/$(PYTHON3_PYALSAAUDIO).$(PYTHON3_PYALSAAUDIO_SUFFIX)
PYTHON3_PYALSAAUDIO_DIR := $(BUILDDIR)/$(PYTHON3_PYALSAAUDIO)
PYTHON3_PYALSAAUDIO_LICENSE := PSF
diff --git a/rules/python3-pyasn1.in b/rules/python3-pyasn1.in
new file mode 100644
index 000000000..a28e4e355
--- /dev/null
+++ b/rules/python3-pyasn1.in
@@ -0,0 +1,9 @@
+## SECTION=python3
+
+config PYTHON3_PYASN1
+ bool
+ prompt "pyasn1"
+ select PYTHON3
+ select HOST_PYTHON3_SETUPTOOLS
+ help
+ Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)
diff --git a/rules/python3-pyasn1.make b/rules/python3-pyasn1.make
new file mode 100644
index 000000000..f440e727a
--- /dev/null
+++ b/rules/python3-pyasn1.make
@@ -0,0 +1,53 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Lars Pedersen <lapeddk@gmail.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_PYASN1) += python3-pyasn1
+
+#
+# Paths and names
+#
+PYTHON3_PYASN1_VERSION := 0.4.8
+PYTHON3_PYASN1_MD5 := dffae4ff9f997a83324b3f33fe62be54
+PYTHON3_PYASN1 := pyasn1-$(PYTHON3_PYASN1_VERSION)
+PYTHON3_PYASN1_SUFFIX := tar.gz
+PYTHON3_PYASN1_URL := $(call ptx/mirror-pypi, pyasn1, $(PYTHON3_PYASN1).$(PYTHON3_PYASN1_SUFFIX))
+PYTHON3_PYASN1_SOURCE := $(SRCDIR)/$(PYTHON3_PYASN1).$(PYTHON3_PYASN1_SUFFIX)
+PYTHON3_PYASN1_DIR := $(BUILDDIR)/$(PYTHON3_PYASN1)
+PYTHON3_PYASN1_LICENSE := BSD-2-Clause
+PYTHON3_PYASN1_LICENSE_FILES := \
+ file://LICENSE.rst;md5=a14482d15c2249de3b6f0e8a47e021fd
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_PYASN1_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+$(STATEDIR)/python3-pyasn1.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-pyasn1)
+ @$(call install_fixup, python3-pyasn1,PRIORITY,optional)
+ @$(call install_fixup, python3-pyasn1,SECTION,base)
+ @$(call install_fixup, python3-pyasn1,AUTHOR,"Lars Pedersen <lapeddk@gmail.com>")
+ @$(call install_fixup, python3-pyasn1,DESCRIPTION,missing)
+
+ @$(call install_glob,python3-pyasn1, 0, 0, -, \
+ /usr/lib/python$(PYTHON3_MAJORMINOR)/site-packages,, *.py)
+
+ @$(call install_finish, python3-pyasn1)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-pybind11.in b/rules/python3-pybind11.in
new file mode 100644
index 000000000..1269c979d
--- /dev/null
+++ b/rules/python3-pybind11.in
@@ -0,0 +1,13 @@
+## SECTION=python3
+
+config PYTHON3_PYBIND11
+ tristate
+ select HOST_CMAKE
+ select PYTHON3
+ prompt "pybind11"
+ help
+ pybind11 is a lightweight header-only library that exposes C++
+ types in Python and vice versa, mainly to create Python bindings
+ of existing C++ code.
+
+
diff --git a/rules/python3-pybind11.make b/rules/python3-pybind11.make
new file mode 100644
index 000000000..0688f4f54
--- /dev/null
+++ b/rules/python3-pybind11.make
@@ -0,0 +1,38 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_PYBIND11) += python3-pybind11
+
+#
+# Paths and names
+#
+PYTHON3_PYBIND11_VERSION := 2.11.1
+PYTHON3_PYBIND11_MD5 := 49e92f92244021912a56935918c927d0
+PYTHON3_PYBIND11 := pybind11-$(PYTHON3_PYBIND11_VERSION)
+PYTHON3_PYBIND11_SUFFIX := tar.gz
+PYTHON3_PYBIND11_URL := https://github.com/pybind/pybind11/archive/refs/tags/v$(PYTHON3_PYBIND11_VERSION).$(PYTHON3_PYBIND11_SUFFIX)
+PYTHON3_PYBIND11_SOURCE := $(SRCDIR)/$(PYTHON3_PYBIND11).$(PYTHON3_PYBIND11_SUFFIX)
+PYTHON3_PYBIND11_DIR := $(BUILDDIR)/$(PYTHON3_PYBIND11)
+PYTHON3_PYBIND11_LICENSE := BSD-3-Clause
+PYTHON3_PYBIND11_LICENSE_FILES := \
+ file://LICENSE;md5=774f65abd8a7fe3124be2cdf766cd06f
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_PYBIND11_CONF_TOOL := cmake
+PYTHON3_PYBIND11_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -DPYBIND11_FINDPYTHON=ON \
+ -DPYBIND11_TEST=OFF
+
+# vim: syntax=make
diff --git a/rules/python3-pycparser.in b/rules/python3-pycparser.in
index 07cd9960e..0593e25e0 100644
--- a/rules/python3-pycparser.in
+++ b/rules/python3-pycparser.in
@@ -5,6 +5,6 @@ config PYTHON3_PYCPARSER
select PYTHON3
prompt "python3-pycparser"
help
- pycparser is a complete parser of the C language, written in pure
- Python using the PLY parsing library. It parses C code into an AST
- and can serve as a front-end for C compilers or analysis tools.
+ pycparser is a complete parser of the C language, written in pure
+ Python using the PLY parsing library. It parses C code into an AST
+ and can serve as a front-end for C compilers or analysis tools.
diff --git a/rules/python3-pycparser.make b/rules/python3-pycparser.make
index 3751af220..a4a644778 100644
--- a/rules/python3-pycparser.make
+++ b/rules/python3-pycparser.make
@@ -14,16 +14,16 @@ PACKAGES-$(PTXCONF_PYTHON3_PYCPARSER) += python3-pycparser
#
# Paths and names
#
-PYTHON3_PYCPARSER_VERSION := 2.18
-PYTHON3_PYCPARSER_MD5 := 72370da54358202a60130e223d488136
+PYTHON3_PYCPARSER_VERSION := 2.21
+PYTHON3_PYCPARSER_MD5 := 48f7d743bf018f7bb2ffc5fb976d1492
PYTHON3_PYCPARSER := pycparser-$(PYTHON3_PYCPARSER_VERSION)
PYTHON3_PYCPARSER_SUFFIX := tar.gz
-PYTHON3_PYCPARSER_URL := https://pypi.python.org/packages/source/p/pycparser/$(PYTHON3_PYCPARSER).$(PYTHON3_PYCPARSER_SUFFIX)
+PYTHON3_PYCPARSER_URL := $(call ptx/mirror-pypi, pycparser, $(PYTHON3_PYCPARSER).$(PYTHON3_PYCPARSER_SUFFIX))
PYTHON3_PYCPARSER_SOURCE := $(SRCDIR)/$(PYTHON3_PYCPARSER).$(PYTHON3_PYCPARSER_SUFFIX)
PYTHON3_PYCPARSER_DIR := $(BUILDDIR)/$(PYTHON3_PYCPARSER)
PYTHON3_PYCPARSER_LICENSE := BSD-3-Clause
PYTHON3_PYCPARSER_LICENSE_FILES := \
- file://LICENSE;md5=86f1cedb4e6410a88ce8e30b91079169
+ file://LICENSE;md5=2c28cdeabcb88f5843d934381b4b4fea
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/python3-pycryptodomex.in b/rules/python3-pycryptodomex.in
new file mode 100644
index 000000000..045c9f44e
--- /dev/null
+++ b/rules/python3-pycryptodomex.in
@@ -0,0 +1,9 @@
+## SECTION=python3
+
+config PYTHON3_PYCRYPTODOMEX
+ tristate
+ select PYTHON3
+ select HOST_PYTHON3_SETUPTOOLS
+ prompt "pycryptodomex"
+ help
+ PyCryptodome is a self-contained Python package of low-level cryptographic primitives
diff --git a/rules/python3-pycryptodomex.make b/rules/python3-pycryptodomex.make
new file mode 100644
index 000000000..69fcd1f3a
--- /dev/null
+++ b/rules/python3-pycryptodomex.make
@@ -0,0 +1,57 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Lars Pedersen <lapeddk@gmail.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_PYCRYPTODOMEX) += python3-pycryptodomex
+
+#
+# Paths and names
+#
+PYTHON3_PYCRYPTODOMEX_VERSION := 3.10.1
+PYTHON3_PYCRYPTODOMEX_MD5 := 91b86ca7fa80d41179d7735067c7347a
+PYTHON3_PYCRYPTODOMEX := pycryptodomex-$(PYTHON3_PYCRYPTODOMEX_VERSION)
+PYTHON3_PYCRYPTODOMEX_SUFFIX := tar.gz
+PYTHON3_PYCRYPTODOMEX_URL := $(call ptx/mirror-pypi, pycryptodomex, $(PYTHON3_PYCRYPTODOMEX).$(PYTHON3_PYCRYPTODOMEX_SUFFIX))
+PYTHON3_PYCRYPTODOMEX_SOURCE := $(SRCDIR)/$(PYTHON3_PYCRYPTODOMEX).$(PYTHON3_PYCRYPTODOMEX_SUFFIX)
+PYTHON3_PYCRYPTODOMEX_DIR := $(BUILDDIR)/$(PYTHON3_PYCRYPTODOMEX)
+PYTHON3_PYCRYPTODOMEX_LICENSE := Unlicense AND BSD-2-Clause and custom
+PYTHON3_PYCRYPTODOMEX_LICENSE_FILES := \
+ file://LICENSE.rst;md5=accfa6aeaceb3ba96676edf18e78302c \
+ file://Doc/ocb/license1.pdf;md5=e33fa8dcf4d10e5c0d9a9e9291714d3d \
+ file://Doc/ocb/license2.pdf;md5=68cfc4690fbbaa0d89d3ea3abcc60b0f \
+ file://Doc/ocb/license3.pdf;md5=2124679d48d559681738985e040ae388
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_PYCRYPTODOMEX_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-pycryptodomex.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-pycryptodomex)
+ @$(call install_fixup, python3-pycryptodomex,PRIORITY,optional)
+ @$(call install_fixup, python3-pycryptodomex,SECTION,base)
+ @$(call install_fixup, python3-pycryptodomex,AUTHOR,"Lars Pedersen <lapeddk@gmail.com>")
+ @$(call install_fixup, python3-pycryptodomex,DESCRIPTION,missing)
+
+ @$(call install_glob, python3-pycryptodomex, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES),, *.py *SelfTest*)
+
+ @$(call install_finish, python3-pycryptodomex)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-pyopenssl.in b/rules/python3-pyopenssl.in
new file mode 100644
index 000000000..6157b9649
--- /dev/null
+++ b/rules/python3-pyopenssl.in
@@ -0,0 +1,9 @@
+## SECTION=python3
+
+config PYTHON3_PYOPENSSL
+ tristate
+ select PYTHON3
+ select PYTHON3_SSL
+ prompt "pyOpenSSL"
+ help
+ High-level wrapper around a subset of the OpenSSL library.
diff --git a/rules/python3-pyopenssl.make b/rules/python3-pyopenssl.make
new file mode 100644
index 000000000..ce7f570b9
--- /dev/null
+++ b/rules/python3-pyopenssl.make
@@ -0,0 +1,53 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Artur Wiebe <artur@4wiebe.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_PYOPENSSL) += python3-pyopenssl
+
+#
+# Paths and names
+#
+PYTHON3_PYOPENSSL_VERSION := 24.0.0
+PYTHON3_PYOPENSSL_MD5 := e4e9f1519cbb54dfb6426bde212ca922
+PYTHON3_PYOPENSSL := pyOpenSSL-$(PYTHON3_PYOPENSSL_VERSION)
+PYTHON3_PYOPENSSL_SUFFIX := tar.gz
+PYTHON3_PYOPENSSL_URL := $(call ptx/mirror-pypi, pyopenssl, $(PYTHON3_PYOPENSSL).$(PYTHON3_PYOPENSSL_SUFFIX))
+PYTHON3_PYOPENSSL_SOURCE := $(SRCDIR)/$(PYTHON3_PYOPENSSL).$(PYTHON3_PYOPENSSL_SUFFIX)
+PYTHON3_PYOPENSSL_DIR := $(BUILDDIR)/$(PYTHON3_PYOPENSSL)
+PYTHON3_PYOPENSSL_LICENSE := Apache-2.0
+PYTHON3_PYOPENSSL_LICENSE_FILES := file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_PYOPENSSL_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-pyopenssl.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-pyopenssl)
+ @$(call install_fixup, python3-pyopenssl,PRIORITY,optional)
+ @$(call install_fixup, python3-pyopenssl,SECTION,base)
+ @$(call install_fixup, python3-pyopenssl,AUTHOR,"Artur Wiebe <artur@4wiebe.de>")
+ @$(call install_fixup, python3-pyopenssl,DESCRIPTION,missing)
+
+ @$(call install_glob, python3-pyopenssl, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES),, *.py)
+
+ @$(call install_finish, python3-pyopenssl)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-pyparsing.make b/rules/python3-pyparsing.make
index 51dbed7a4..39ad2ab4b 100644
--- a/rules/python3-pyparsing.make
+++ b/rules/python3-pyparsing.make
@@ -18,7 +18,7 @@ PYTHON3_PYPARSING_VERSION := 2.4.7
PYTHON3_PYPARSING_MD5 := f0953e47a0112f7a65aec2305ffdf7b4
PYTHON3_PYPARSING := pyparsing-$(PYTHON3_PYPARSING_VERSION)
PYTHON3_PYPARSING_SUFFIX := tar.gz
-PYTHON3_PYPARSING_URL := https://pypi.python.org/packages/source/p/pyparsing/$(PYTHON3_PYPARSING).$(PYTHON3_PYPARSING_SUFFIX)
+PYTHON3_PYPARSING_URL := $(call ptx/mirror-pypi, pyparsing, $(PYTHON3_PYPARSING).$(PYTHON3_PYPARSING_SUFFIX))
PYTHON3_PYPARSING_SOURCE := $(SRCDIR)/$(PYTHON3_PYPARSING).$(PYTHON3_PYPARSING_SUFFIX)
PYTHON3_PYPARSING_DIR := $(BUILDDIR)/$(PYTHON3_PYPARSING)
PYTHON3_PYPARSING_LICENSE := MIT
diff --git a/rules/python3-pyro.make b/rules/python3-pyro.make
index 4751931d2..a49fb6fa3 100644
--- a/rules/python3-pyro.make
+++ b/rules/python3-pyro.make
@@ -16,11 +16,11 @@ PACKAGES-$(PTXCONF_PYTHON3_PYRO) += python3-pyro
# Paths and names
#
-PYTHON3_PYRO_VERSION := 4.76
+PYTHON3_PYRO_VERSION := 4.80
PYTHON3_PYRO := Pyro4-$(PYTHON3_PYRO_VERSION)
-PYTHON3_PYRO_MD5 := 03a09990328c9f2388ac806fa734689c
+PYTHON3_PYRO_MD5 := e31fc077e06de9fc0bb061e357401954
PYTHON3_PYRO_SUFFIX := tar.gz
-PYTHON3_PYRO_URL := $(call ptx/mirror-pypi, pyro4, $(PYTHON3_PYRO_VERSION).$(PYTHON3_PYRO_SUFFIX))
+PYTHON3_PYRO_URL := $(call ptx/mirror-pypi, pyro4, $(PYTHON3_PYRO).$(PYTHON3_PYRO_SUFFIX))
PYTHON3_PYRO_SOURCE := $(SRCDIR)/$(PYTHON3_PYRO).$(PYTHON3_PYRO_SUFFIX)
PYTHON3_PYRO_DIR := $(BUILDDIR)/$(PYTHON3_PYRO)
PYTHON3_PYRO_LICENSE := MIT
diff --git a/rules/python3-pyside.in b/rules/python3-pyside.in
deleted file mode 100644
index 66333dc5f..000000000
--- a/rules/python3-pyside.in
+++ /dev/null
@@ -1,17 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=qt
-
-
-config PYTHON3_PYSIDE
- tristate
- prompt "python3-pyside-qt4"
- select QT4
- select PYTHON3_SHIBOKEN
- select HOST_CMAKE
- help
- PySide provides Python bindings for the Qt cross-platform
- application and UI framework.
-
- STAGING: remove in PTXdist 2022.01.0
- Qt4 has been replaces by Qt5 a long time ago.
diff --git a/rules/python3-pyside.make b/rules/python3-pyside.make
deleted file mode 100644
index 58155f29b..000000000
--- a/rules/python3-pyside.make
+++ /dev/null
@@ -1,60 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2016 by Robin van der Gracht <robin@protonic.nl>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_PYTHON3_PYSIDE) += python3-pyside
-
-#
-# Paths and names
-#
-PYTHON3_PYSIDE_VERSION := 4.8+1.2.2
-PYTHON3_PYSIDE_MD5 := 1969c2ff90eefaa4b200d234059d2287
-PYTHON3_PYSIDE := pyside-qt$(PYTHON3_PYSIDE_VERSION)
-PYTHON3_PYSIDE_SUFFIX := tar.bz2
-PYTHON3_PYSIDE_URL := http://download.qt-project.org/official_releases/pyside/$(PYTHON3_PYSIDE).$(PYTHON3_PYSIDE_SUFFIX)
-PYTHON3_PYSIDE_SOURCE := $(SRCDIR)/$(PYTHON3_PYSIDE).$(PYTHON3_PYSIDE_SUFFIX)
-PYTHON3_PYSIDE_DIR := $(BUILDDIR)/$(PYTHON3_PYSIDE)
-PYTHON3_PYSIDE_LICENSE := LGPL-2.1-only
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# cmake
-#
-PYTHON3_PYSIDE_CONF_TOOL := cmake
-PYTHON3_PYSIDE_CONF_OPT := \
- $(CROSS_CMAKE_USR) \
- -DUSE_PYTHON3:BOOL=ON
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/python3-pyside.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, python3-pyside)
- @$(call install_fixup, python3-pyside, PRIORITY, optional)
- @$(call install_fixup, python3-pyside, SECTION, base)
- @$(call install_fixup, python3-pyside, AUTHOR, "Robin van der Gracht <robin@protonic.nl>")
- @$(call install_fixup, python3-pyside, DESCRIPTION, missing)
-
- @$(call install_lib, python3-pyside, 0, 0, 0644, \
- libpyside.cpython-*)
- @$(call install_tree, python3-pyside, 0, 0, -,\
- $(PYTHON3_SITEPACKAGES)/PySide)
-
- @$(call install_finish, python3-pyside)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/python3-pysmi.in b/rules/python3-pysmi.in
new file mode 100644
index 000000000..a02d1b62d
--- /dev/null
+++ b/rules/python3-pysmi.in
@@ -0,0 +1,9 @@
+## SECTION=python3
+
+config PYTHON3_PYSMI
+ tristate
+ select PYTHON3
+ select HOST_PYTHON3_SETUPTOOLS
+ prompt "pysmi"
+ help
+ A pure-Python implementation of SNMP/SMI MIB parsing and conversion library.
diff --git a/rules/python3-pysmi.make b/rules/python3-pysmi.make
new file mode 100644
index 000000000..67448e2f7
--- /dev/null
+++ b/rules/python3-pysmi.make
@@ -0,0 +1,54 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Lars Pedersen <lapeddk@gmail.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_PYSMI) += python3-pysmi
+
+#
+# Paths and names
+#
+PYTHON3_PYSMI_VERSION := 0.3.4
+PYTHON3_PYSMI_MD5 := 10a9dd140ad512eed9f37344df83ce9d
+PYTHON3_PYSMI := pysmi-$(PYTHON3_PYSMI_VERSION)
+PYTHON3_PYSMI_SUFFIX := tar.gz
+PYTHON3_PYSMI_URL := $(call ptx/mirror-pypi, pysmi, $(PYTHON3_PYSMI).$(PYTHON3_PYSMI_SUFFIX))
+PYTHON3_PYSMI_SOURCE := $(SRCDIR)/$(PYTHON3_PYSMI).$(PYTHON3_PYSMI_SUFFIX)
+PYTHON3_PYSMI_DIR := $(BUILDDIR)/$(PYTHON3_PYSMI)
+PYTHON3_PYSMI_LICENSE := BSD-2-Clause
+PYTHON3_PYSMI_LICENSE_FILES := \
+ file://LICENSE.rst;md5=a088b5c72b59d51a5368ad3b18e219bf
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_PYSMI_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-pysmi.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-pysmi)
+ @$(call install_fixup, python3-pysmi,PRIORITY,optional)
+ @$(call install_fixup, python3-pysmi,SECTION,base)
+ @$(call install_fixup, python3-pysmi,AUTHOR,"Lars Pedersen <lapeddk@gmail.com>")
+ @$(call install_fixup, python3-pysmi,DESCRIPTION,missing)
+
+ @$(call install_glob, python3-pysmi, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES),, *.py)
+
+ @$(call install_finish, python3-pysmi)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-pysnmp.in b/rules/python3-pysnmp.in
new file mode 100644
index 000000000..09e9b2b0a
--- /dev/null
+++ b/rules/python3-pysnmp.in
@@ -0,0 +1,13 @@
+## SECTION=python3
+
+config PYTHON3_PYSNMP
+ bool
+ prompt "pysnmp"
+ select PYTHON3
+ select HOST_PYTHON3_SETUPTOOLS
+ select PYTHON3_PLY
+ select PYTHON3_PYASN1
+ select PYTHON3_PYCRYPTODOMEX
+ select PYTHON3_PYSMI
+ help
+ pySNMP is a cross-platform, pure-Python SNMP engine implementation.
diff --git a/rules/python3-pysnmp.make b/rules/python3-pysnmp.make
new file mode 100644
index 000000000..cb08668b3
--- /dev/null
+++ b/rules/python3-pysnmp.make
@@ -0,0 +1,55 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Lars Pedersen <lapeddk@gmail.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_PYSNMP) += python3-pysnmp
+
+#
+# Paths and names
+#
+PYTHON3_PYSNMP_VERSION := 4.4.12
+PYTHON3_PYSNMP_MD5 := 2222880259daf6e2cb322e938c818276
+PYTHON3_PYSNMP := pysnmp-$(PYTHON3_PYSNMP_VERSION)
+PYTHON3_PYSNMP_SUFFIX := tar.gz
+PYTHON3_PYSNMP_URL := $(call ptx/mirror-pypi, pysnmp, $(PYTHON3_PYSNMP).$(PYTHON3_PYSNMP_SUFFIX))
+PYTHON3_PYSNMP_SOURCE := $(SRCDIR)/$(PYTHON3_PYSNMP).$(PYTHON3_PYSNMP_SUFFIX)
+PYTHON3_PYSNMP_DIR := $(BUILDDIR)/$(PYTHON3_PYSNMP)
+PYTHON3_PYSNMP_LICENSE := BSD-2-Clause
+PYTHON3_PYSNMP_LICENSE_FILES := \
+ file://LICENSE.rst;md5=b15d29f500f748d1c2a15709769090a8
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_PYSNMP_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-pysnmp.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-pysnmp)
+ @$(call install_fixup, python3-pysnmp,PRIORITY,optional)
+ @$(call install_fixup, python3-pysnmp,SECTION,base)
+ @$(call install_fixup, python3-pysnmp,AUTHOR,"Lars Pedersen <lapeddk@gmail.com>")
+ @$(call install_fixup, python3-pysnmp,DESCRIPTION,missing)
+
+ # Install py files instead of pyc because of runtime marshal error
+ @$(call install_glob,python3-pysnmp, 0, 0, -, \
+ /usr/lib/python$(PYTHON3_MAJORMINOR)/site-packages,, *.pyc)
+
+ @$(call install_finish, python3-pysnmp)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-pytest.make b/rules/python3-pytest.make
index d629b58c1..3ec88a6a5 100644
--- a/rules/python3-pytest.make
+++ b/rules/python3-pytest.make
@@ -18,7 +18,7 @@ PYTHON3_PYTEST_VERSION := 5.4.3
PYTHON3_PYTEST_MD5 := 4b6b06b2818516c7c400d4cafe3b9257
PYTHON3_PYTEST := pytest-$(PYTHON3_PYTEST_VERSION)
PYTHON3_PYTEST_SUFFIX := tar.gz
-PYTHON3_PYTEST_URL := https://pypi.python.org/packages/source/p/pytest/$(PYTHON3_PYTEST).$(PYTHON3_PYTEST_SUFFIX)
+PYTHON3_PYTEST_URL := $(call ptx/mirror-pypi, pytest, $(PYTHON3_PYTEST).$(PYTHON3_PYTEST_SUFFIX))
PYTHON3_PYTEST_SOURCE := $(SRCDIR)/$(PYTHON3_PYTEST).$(PYTHON3_PYTEST_SUFFIX)
PYTHON3_PYTEST_DIR := $(BUILDDIR)/$(PYTHON3_PYTEST)
PYTHON3_PYTEST_LICENSE := MIT
diff --git a/rules/python3-pytz.make b/rules/python3-pytz.make
index b0a05a476..2c01f769e 100644
--- a/rules/python3-pytz.make
+++ b/rules/python3-pytz.make
@@ -11,14 +11,15 @@
#
PACKAGES-$(PTXCONF_PYTHON3_PYTZ) += python3-pytz
-PYTHON3_PYTZ_VERSION := 2020.1
-PYTHON3_PYTZ_MD5 := 0349106ac02f2bfe565dd6d5594e3a15
-PYTHON3_PYTZ := pytz-$(PYTHON3_PYTZ_VERSION)
-PYTHON3_PYTZ_SUFFIX := tar.gz
-PYTHON3_PYTZ_URL := $(call ptx/mirror-pypi, pytz, $(PYTHON3_PYTZ).$(PYTHON3_PYTZ_SUFFIX))
-PYTHON3_PYTZ_SOURCE := $(SRCDIR)/$(PYTHON3_PYTZ).$(PYTHON3_PYTZ_SUFFIX)
-PYTHON3_PYTZ_DIR := $(BUILDDIR)/$(PYTHON3_PYTZ)
-PYTHON3_PYTZ_LICENSE := MIT
+PYTHON3_PYTZ_VERSION := 2023.3
+PYTHON3_PYTZ_MD5 := fe54c8f8a1544b4e78b523b264ab071b
+PYTHON3_PYTZ := pytz-$(PYTHON3_PYTZ_VERSION)
+PYTHON3_PYTZ_SUFFIX := tar.gz
+PYTHON3_PYTZ_URL := $(call ptx/mirror-pypi, pytz, $(PYTHON3_PYTZ).$(PYTHON3_PYTZ_SUFFIX))
+PYTHON3_PYTZ_SOURCE := $(SRCDIR)/$(PYTHON3_PYTZ).$(PYTHON3_PYTZ_SUFFIX)
+PYTHON3_PYTZ_DIR := $(BUILDDIR)/$(PYTHON3_PYTZ)
+PYTHON3_PYTZ_LICENSE := MIT
+PYTHON3_PYTZ_LICENSE_FILES := file://LICENSE.txt;md5=1a67fc46c1b596cce5d21209bbe75999
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/python3-pyusb.in b/rules/python3-pyusb.in
new file mode 100644
index 000000000..c20b081f3
--- /dev/null
+++ b/rules/python3-pyusb.in
@@ -0,0 +1,10 @@
+## SECTION=python3
+
+config PYTHON3_PYUSB
+ tristate
+ select HOST_PYTHON3_SETUPTOOLS_SCM
+ select PYTHON3
+ select LIBUSB
+ prompt "pyusb"
+ help
+ Easy USB access for Python
diff --git a/rules/python3-pyusb.make b/rules/python3-pyusb.make
new file mode 100644
index 000000000..a717e7883
--- /dev/null
+++ b/rules/python3-pyusb.make
@@ -0,0 +1,54 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Jan Luebbe <jlu@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_PYUSB) += python3-pyusb
+
+#
+# Paths and names
+#
+PYTHON3_PYUSB_VERSION := 1.2.1
+PYTHON3_PYUSB_MD5 := 880008dff32dac8f58076b4e534492d9
+PYTHON3_PYUSB := pyusb-$(PYTHON3_PYUSB_VERSION)
+PYTHON3_PYUSB_SUFFIX := tar.gz
+PYTHON3_PYUSB_URL := $(call ptx/mirror-pypi, pyusb, $(PYTHON3_PYUSB).$(PYTHON3_PYUSB_SUFFIX))
+PYTHON3_PYUSB_SOURCE := $(SRCDIR)/$(PYTHON3_PYUSB).$(PYTHON3_PYUSB_SUFFIX)
+PYTHON3_PYUSB_DIR := $(BUILDDIR)/$(PYTHON3_PYUSB)
+PYTHON3_PYUSB_LICENSE := BSD-3-Clause
+PYTHON3_PYUSB_LICENSE_FILES := \
+ file://LICENSE;md5=e64a29fcd3c3dd356a24e235dfcb3905
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_PYUSB_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-pyusb.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-pyusb)
+ @$(call install_fixup, python3-pyusb,PRIORITY,optional)
+ @$(call install_fixup, python3-pyusb,SECTION,base)
+ @$(call install_fixup, python3-pyusb,AUTHOR,"Jan Luebbe <jlu@pengutronix.de>")
+ @$(call install_fixup, python3-pyusb,DESCRIPTION,missing)
+
+ @$(call install_glob, python3-pyusb, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES),, *.py)
+
+ @$(call install_finish, python3-pyusb)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-pyyaml.make b/rules/python3-pyyaml.make
index 971fc79a9..f6f64dfc9 100644
--- a/rules/python3-pyyaml.make
+++ b/rules/python3-pyyaml.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_PYTHON3_PYYAML) += python3-pyyaml
#
# Paths and names
#
-PYTHON3_PYYAML_VERSION := 3.12
-PYTHON3_PYYAML_MD5 := 5c41a91fae3da4f5302e25e5d8f4deeb
+PYTHON3_PYYAML_VERSION := 6.0
+PYTHON3_PYYAML_MD5 := 7e2a4c6deb449dbe33c521a1871333a0
PYTHON3_PYYAML := pyyaml-$(PYTHON3_PYYAML_VERSION)
PYTHON3_PYYAML_SUFFIX := tar.gz
PYTHON3_PYYAML_URL := https://github.com/yaml/pyyaml/archive/$(PYTHON3_PYYAML_VERSION).$(PYTHON3_PYYAML_SUFFIX)
@@ -43,7 +43,7 @@ $(STATEDIR)/python3-pyyaml.targetinstall:
@$(call install_fixup, python3-pyyaml, DESCRIPTION, missing)
@$(call install_glob, python3-pyyaml, 0, 0, -, \
- $(PYTHON3_SITEPACKAGES)/yaml,, *.py)
+ $(PYTHON3_SITEPACKAGES), *.pyc *.so,)
@$(call install_finish, python3-pyyaml)
diff --git a/rules/python3-scikit-learn.in b/rules/python3-scikit-learn.in
new file mode 100644
index 000000000..1a77a57d1
--- /dev/null
+++ b/rules/python3-scikit-learn.in
@@ -0,0 +1,14 @@
+## SECTION=python3
+
+config PYTHON3_SCIKIT_LEARN
+ tristate
+ select GCCLIBS_CXX
+ select GCCLIBS_GOMP
+ select PYTHON3
+ select PYTHON3_JOBLIB
+ select PYTHON3_THREADPOOLCTL
+ select PYTHON3_SCIPY
+ prompt "scikit-learn"
+ help
+ scikit-learn is a Python module for machine learning built on
+ top of SciPy.
diff --git a/rules/python3-scikit-learn.make b/rules/python3-scikit-learn.make
new file mode 100644
index 000000000..df9e09b77
--- /dev/null
+++ b/rules/python3-scikit-learn.make
@@ -0,0 +1,58 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_SCIKIT_LEARN) += python3-scikit-learn
+
+#
+# Paths and names
+#
+PYTHON3_SCIKIT_LEARN_VERSION := 1.3.1
+PYTHON3_SCIKIT_LEARN_MD5 := 7f53fc2b70a4c1df207e1efc9ddbae33
+PYTHON3_SCIKIT_LEARN := scikit-learn-$(PYTHON3_SCIKIT_LEARN_VERSION)
+PYTHON3_SCIKIT_LEARN_SUFFIX := tar.gz
+PYTHON3_SCIKIT_LEARN_URL := $(call ptx/mirror-pypi, scikit-learn, $(PYTHON3_SCIKIT_LEARN).$(PYTHON3_SCIKIT_LEARN_SUFFIX))
+PYTHON3_SCIKIT_LEARN_SOURCE := $(SRCDIR)/$(PYTHON3_SCIKIT_LEARN).$(PYTHON3_SCIKIT_LEARN_SUFFIX)
+PYTHON3_SCIKIT_LEARN_DIR := $(BUILDDIR)/$(PYTHON3_SCIKIT_LEARN)
+PYTHON3_SCIKIT_LEARN_LICENSE := BSD-3-Clause
+PYTHON3_SCIKIT_LEARN_LICENSE_FILES := \
+ file://COPYING;md5=e087d8348a7a6d2b63e1f305d7acf1a9
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_SCIKIT_LEARN_CONF_ENV := \
+ $(CROSS_ENV) \
+ PYTHON_CROSSENV=1
+
+PYTHON3_SCIKIT_LEARN_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-scikit-learn.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-scikit-learn)
+ @$(call install_fixup, python3-scikit-learn,PRIORITY,optional)
+ @$(call install_fixup, python3-scikit-learn,SECTION,base)
+ @$(call install_fixup, python3-scikit-learn,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, python3-scikit-learn,DESCRIPTION,missing)
+
+ @$(call install_glob, python3-scikit-learn, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES),, *.py)
+
+ @$(call install_finish, python3-scikit-learn)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-scipy.in b/rules/python3-scipy.in
new file mode 100644
index 000000000..629e5013e
--- /dev/null
+++ b/rules/python3-scipy.in
@@ -0,0 +1,19 @@
+## SECTION=python3
+
+config PYTHON3_SCIPY
+ tristate
+ select HOST_MESON
+ select HOST_CYTHON3
+ select HOST_PYTHON3_NUMPY
+ select GCCLIBS_CXX
+ select GCCLIBS_GFORTRAN
+ select OPENBLAS
+ select PYTHON3
+ select PYTHON3_NUMPY
+ select PYTHON3_PYBIND11
+ prompt "scipy"
+ help
+ SciPy (pronounced “Sigh Pieâ€) is an open-source software for
+ mathematics, science, and engineering. It includes modules for
+ statistics, optimization, integration, linear algebra, Fourier
+ transforms, signal and image processing, ODE solvers, and more.
diff --git a/rules/python3-scipy.make b/rules/python3-scipy.make
new file mode 100644
index 000000000..eb882d701
--- /dev/null
+++ b/rules/python3-scipy.make
@@ -0,0 +1,69 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_SCIPY) += python3-scipy
+
+#
+# Paths and names
+#
+PYTHON3_SCIPY_VERSION := 1.11.3
+PYTHON3_SCIPY_MD5 := 9f618e66c4b12b702793cdfd2b7b3847
+PYTHON3_SCIPY := scipy-$(PYTHON3_SCIPY_VERSION)
+PYTHON3_SCIPY_SUFFIX := tar.gz
+PYTHON3_SCIPY_URL := $(call ptx/mirror-pypi, scipy, $(PYTHON3_SCIPY).$(PYTHON3_SCIPY_SUFFIX))
+PYTHON3_SCIPY_SOURCE := $(SRCDIR)/$(PYTHON3_SCIPY).$(PYTHON3_SCIPY_SUFFIX)
+PYTHON3_SCIPY_DIR := $(BUILDDIR)/$(PYTHON3_SCIPY)
+PYTHON3_SCIPY_LICENSE := BSD-3-Clause AND MIT AND BSD-3-Clause-LBNL AND BSL-1.0
+PYTHON3_SCIPY_LICENSE_FILES := \
+ file://LICENSE.txt;md5=3387f60dd97ca5d8ea2a907e50aec3a0 \
+ file://LICENSES_bundled.txt;md5=9ceb3fe44aa9de7b9c7e4d5f8ae037b8
+
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_SCIPY_MESON_CROSS_FILE := $(call ptx/get-alternative, config/meson, python3-scipy-cross-file.meson)
+
+PYTHON3_SCIPY_CONF_ENV = \
+ $(CROSS_ENV) \
+ PTXDIST_PYTHON3=$(PTXDIST_SYSROOT_HOST)/lib/wrapper/python$(PYTHON3_MAJORMINOR)
+
+PYTHON3_SCIPY_CONF_TOOL := meson
+PYTHON3_SCIPY_CONF_OPT = \
+ $(CROSS_MESON_USR) \
+ -Duse-pythran=false \
+ -Dpython3=$(CROSS_PYTHON3) \
+ \
+ --cross-file $(PYTHON3_SCIPY_MESON_CROSS_FILE)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-scipy.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-scipy)
+ @$(call install_fixup, python3-scipy,PRIORITY,optional)
+ @$(call install_fixup, python3-scipy,SECTION,base)
+ @$(call install_fixup, python3-scipy,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, python3-scipy,DESCRIPTION,missing)
+
+# # does not load when .py files are missing so install .py and .pyc
+ @$(call install_tree, python3-scipy, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES))
+
+ @$(call install_finish, python3-scipy)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-semantic-version.in b/rules/python3-semantic-version.in
new file mode 100644
index 000000000..0bb578534
--- /dev/null
+++ b/rules/python3-semantic-version.in
@@ -0,0 +1,9 @@
+## SECTION=python3
+
+config PYTHON3_SEMANTIC_VERSION
+ tristate
+ select PYTHON3
+ prompt "semantic-version"
+ help
+ This small python library provides a few tools to handle SemVer in Python.
+ It follows strictly the 2.0.0 version of the SemVer scheme.
diff --git a/rules/python3-semantic-version.make b/rules/python3-semantic-version.make
new file mode 100644
index 000000000..8ace780bb
--- /dev/null
+++ b/rules/python3-semantic-version.make
@@ -0,0 +1,53 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Artur Wiebe <artur@4wiebe.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_SEMANTIC_VERSION) += python3-semantic-version
+
+#
+# Paths and names
+#
+PYTHON3_SEMANTIC_VERSION_VERSION := 2.10.0
+PYTHON3_SEMANTIC_VERSION_MD5 := e48abef93ba69abcd4eaf4640edfc38b
+PYTHON3_SEMANTIC_VERSION := semantic_version-$(PYTHON3_SEMANTIC_VERSION_VERSION)
+PYTHON3_SEMANTIC_VERSION_SUFFIX := tar.gz
+PYTHON3_SEMANTIC_VERSION_URL := $(call ptx/mirror-pypi, semantic_version, $(PYTHON3_SEMANTIC_VERSION).$(PYTHON3_SEMANTIC_VERSION_SUFFIX))
+PYTHON3_SEMANTIC_VERSION_SOURCE := $(SRCDIR)/$(PYTHON3_SEMANTIC_VERSION).$(PYTHON3_SEMANTIC_VERSION_SUFFIX)
+PYTHON3_SEMANTIC_VERSION_DIR := $(BUILDDIR)/$(PYTHON3_SEMANTIC_VERSION)
+PYTHON3_SEMANTIC_VERSION_LICENSE := BSD
+PYTHON3_SEMANTIC_VERSION_LICENSE_FILES := file://LICENSE;md5=4fb31e3c1c7eeb8b5e8c07657cdd54e2
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_SEMANTIC_VERSION_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-semantic-version.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-semantic-version)
+ @$(call install_fixup, python3-semantic-version,PRIORITY,optional)
+ @$(call install_fixup, python3-semantic-version,SECTION,base)
+ @$(call install_fixup, python3-semantic-version,AUTHOR,"Artur Wiebe <artur@4wiebe.de>")
+ @$(call install_fixup, python3-semantic-version,DESCRIPTION,missing)
+
+ @$(call install_glob, python3-semantic-version, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES)/semantic_version,, *.py)
+
+ @$(call install_finish, python3-semantic-version)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-setuptools.make b/rules/python3-setuptools.make
index ca97f2a95..9e2cabccc 100644
--- a/rules/python3-setuptools.make
+++ b/rules/python3-setuptools.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_PYTHON3_SETUPTOOLS) += python3-setuptools
#
# Paths and names
#
-PYTHON3_SETUPTOOLS_VERSION := 54.1.0
-PYTHON3_SETUPTOOLS_MD5 := a39914ec4d991aeb3397cd2f37dda66c
+PYTHON3_SETUPTOOLS_VERSION := 67.4.0
+PYTHON3_SETUPTOOLS_MD5 := a15e7546790b932a94fd9ccca7f839de
PYTHON3_SETUPTOOLS := setuptools-$(PYTHON3_SETUPTOOLS_VERSION)
PYTHON3_SETUPTOOLS_SUFFIX := tar.gz
-PYTHON3_SETUPTOOLS_URL := https://files.pythonhosted.org/packages/source/s/setuptools/$(PYTHON3_SETUPTOOLS).$(PYTHON3_SETUPTOOLS_SUFFIX)
+PYTHON3_SETUPTOOLS_URL := $(call ptx/mirror-pypi, setuptools, $(PYTHON3_SETUPTOOLS).$(PYTHON3_SETUPTOOLS_SUFFIX))
PYTHON3_SETUPTOOLS_SOURCE := $(SRCDIR)/$(PYTHON3_SETUPTOOLS).$(PYTHON3_SETUPTOOLS_SUFFIX)
PYTHON3_SETUPTOOLS_DIR := $(BUILDDIR)/$(PYTHON3_SETUPTOOLS)
PYTHON3_SETUPTOOLS_LICENSE := MIT
@@ -45,7 +45,7 @@ $(STATEDIR)/python3-setuptools.targetinstall:
@$(call install_fixup, python3-setuptools,DESCRIPTION,missing)
@$(call install_glob,python3-setuptools, 0, 0, -, \
- $(PYTHON3_SITEPACKAGES),, *.py)
+ $(PYTHON3_SITEPACKAGES),, *.py *.exe)
@$(call install_finish, python3-setuptools)
diff --git a/rules/python3-shiboken.in b/rules/python3-shiboken.in
deleted file mode 100644
index 6462995e8..000000000
--- a/rules/python3-shiboken.in
+++ /dev/null
@@ -1,19 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=qt
-
-config PYTHON3_SHIBOKEN
- tristate
- prompt "python3-shiboken"
- select HOST_CMAKE
- select HOST_PYTHON3_SHIBOKEN
- select LIBXML2
- select LIBXSLT
- select PYTHON3
- select QT4
- select QT4_BUILD_XML
- help
- Shiboken generates bindings for C++ libraries using CPython source code.
-
- STAGING: remove in PTXdist 2022.01.0
- Qt4 has been replaces by Qt5 a long time ago.
diff --git a/rules/python3-shiboken.make b/rules/python3-shiboken.make
deleted file mode 100644
index 8c7d3eaaa..000000000
--- a/rules/python3-shiboken.make
+++ /dev/null
@@ -1,89 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2016 by Robin van der Gracht <robin@protonic.nl>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_PYTHON3_SHIBOKEN) += python3-shiboken
-
-#
-# Paths and names
-#
-PYTHON3_SHIBOKEN_VERSION := 1.2.2
-PYTHON3_SHIBOKEN_MD5 := 9f5bee9d414ce51be07ff7a20054a48d
-PYTHON3_SHIBOKEN := shiboken-$(PYTHON3_SHIBOKEN_VERSION)
-PYTHON3_SHIBOKEN_SUFFIX := tar.bz2
-PYTHON3_SHIBOKEN_URL := https://download.qt.io/official_releases/pyside/shiboken-$(PYTHON3_SHIBOKEN_VERSION).$(PYTHON3_SHIBOKEN_SUFFIX)
-PYTHON3_SHIBOKEN_SOURCE := $(SRCDIR)/$(PYTHON3_SHIBOKEN).$(PYTHON3_SHIBOKEN_SUFFIX)
-PYTHON3_SHIBOKEN_DIR := $(BUILDDIR)/$(PYTHON3_SHIBOKEN)
-PYTHON3_SHIBOKEN_LICENSE := GPL-2.0-only
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# cmake
-#
-PYTHON3_SHIBOKEN_CONF_TOOL := cmake
-PYTHON3_SHIBOKEN_CONF_OPT = \
- $(CROSS_CMAKE_USR) \
- -DBUILD_TESTS:BOOL=OFF \
- -DUSE_PYTHON3:BOOL=ON \
- -DPython3_PREFERRED_VERSION=python$(PYTHON3_MAJORMINOR)
-
-PYTHON3_SHIBOKEN_MAKE_OPT := -C libshiboken
-PYTHON3_SHIBOKEN_INSTALL_OPT := -C libshiboken install
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/python3-shiboken.install:
- @$(call targetinfo)
- @$(call world/install, PYTHON3_SHIBOKEN)
- @cd $(PYTHON3_SHIBOKEN_DIR)-build && $(MAKE) -C data install DESTDIR='$(PYTHON3_SHIBOKEN_PKGDIR)'
- @sed -i -e 's,"$(SYSROOT)/usr,"SYSROOT/usr,g' \
- -e 's,"$(PTXDIST_SYSROOT_CROSS),"SYSROOT_CROSS,g' \
- $(PYTHON3_SHIBOKEN_PKGDIR)/usr/lib/cmake/Shiboken-$(PYTHON3_SHIBOKEN_VERSION)/ShibokenConfig.cpython*.cmake
- @$(call touch)
-
-$(STATEDIR)/python3-shiboken.install.post:
- @$(call targetinfo)
- @$(call world/install.post, PYTHON3_SHIBOKEN)
- @sed -i -e 's,(/usr,($(SYSROOT)/usr,g' \
- '$(SYSROOT)/usr/lib/cmake/Shiboken-$(PYTHON3_SHIBOKEN_VERSION)/ShibokenConfig.cmake'
- @sed -i -e 's,"SYSROOT_CROSS,"@$(PTXDIST_SYSROOT_CROSS),g' \
- -e 's,"SYSROOT/usr,"@$(SYSROOT)/usr,g' \
- -e 's,"/usr/bin,"@$(PTXDIST_SYSROOT_HOST)/bin,g' \
- -e 's,"/usr,"@$(SYSROOT)/usr,g' \
- -e 's,"@,",g' \
- $(SYSROOT)/usr/lib/cmake/Shiboken-$(PYTHON3_SHIBOKEN_VERSION)/ShibokenConfig.cpython*.cmake
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/python3-shiboken.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, python3-shiboken)
- @$(call install_fixup, python3-shiboken, PRIORITY, optional)
- @$(call install_fixup, python3-shiboken, SECTION, base)
- @$(call install_fixup, python3-shiboken, AUTHOR, "Robin van der Gracht <robin@protonic.nl>")
- @$(call install_fixup, python3-shiboken, DESCRIPTION, missing)
-
- @$(call install_lib, python3-shiboken, 0, 0, 0644, \
- libshiboken.cpython-*)
-
- @$(call install_finish, python3-shiboken)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/python3-simplegeneric.make b/rules/python3-simplegeneric.make
index b0428959e..f9ec5cd0d 100644
--- a/rules/python3-simplegeneric.make
+++ b/rules/python3-simplegeneric.make
@@ -18,7 +18,7 @@ PYTHON3_SIMPLEGENERIC_VERSION := 0.8.1
PYTHON3_SIMPLEGENERIC_MD5 := f9c1fab00fd981be588fc32759f474e3
PYTHON3_SIMPLEGENERIC := simplegeneric-$(PYTHON3_SIMPLEGENERIC_VERSION)
PYTHON3_SIMPLEGENERIC_SUFFIX := zip
-PYTHON3_SIMPLEGENERIC_URL := https://pypi.python.org/packages/source/s/simplegeneric/$(PYTHON3_SIMPLEGENERIC).$(PYTHON3_SIMPLEGENERIC_SUFFIX)\#md5=$(PYTHON3_SIMPLEGENERIC_MD5)
+PYTHON3_SIMPLEGENERIC_URL := $(call ptx/mirror-pypi, simplegeneric, $(PYTHON3_SIMPLEGENERIC).$(PYTHON3_SIMPLEGENERIC_SUFFIX))
PYTHON3_SIMPLEGENERIC_SOURCE := $(SRCDIR)/$(PYTHON3_SIMPLEGENERIC).$(PYTHON3_SIMPLEGENERIC_SUFFIX)
PYTHON3_SIMPLEGENERIC_DIR := $(BUILDDIR)/$(PYTHON3_SIMPLEGENERIC)
PYTHON3_SIMPLEGENERIC_LICENSE := ZPL-2.1
diff --git a/rules/python3-six.make b/rules/python3-six.make
index 7ce952964..21f474781 100644
--- a/rules/python3-six.make
+++ b/rules/python3-six.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_PYTHON3_SIX) += python3-six
#
# Paths and names
#
-PYTHON3_SIX_VERSION := 1.10.0
-PYTHON3_SIX_MD5 := 34eed507548117b2ab523ab14b2f8b55
+PYTHON3_SIX_VERSION := 1.16.0
+PYTHON3_SIX_MD5 := a7c927740e4964dd29b72cebfc1429bb
PYTHON3_SIX := six-$(PYTHON3_SIX_VERSION)
PYTHON3_SIX_SUFFIX := tar.gz
-PYTHON3_SIX_URL := https://pypi.python.org/packages/b3/b2/238e2590826bfdd113244a40d9d3eb26918bd798fc187e2360a8367068db/$(PYTHON3_SIX).$(PYTHON3_SIX_SUFFIX)
+PYTHON3_SIX_URL := $(call ptx/mirror-pypi, six, $(PYTHON3_SIX).$(PYTHON3_SIX_SUFFIX))
PYTHON3_SIX_SOURCE := $(SRCDIR)/$(PYTHON3_SIX).$(PYTHON3_SIX_SUFFIX)
PYTHON3_SIX_DIR := $(BUILDDIR)/python3-$(PYTHON3_SIX)
PYTHON3_SIX_LICENSE := MIT
diff --git a/rules/python3-snmpclitools.in b/rules/python3-snmpclitools.in
new file mode 100644
index 000000000..369b2bd65
--- /dev/null
+++ b/rules/python3-snmpclitools.in
@@ -0,0 +1,9 @@
+## SECTION=python3
+
+config PYTHON3_SNMPCLITOOLS
+ tristate
+ select PYTHON3
+ select PYTHON3_PYSNMP
+ prompt "snmpclitools"
+ help
+ This is a collection of command-line SNMP tools written in pure-Python
diff --git a/rules/python3-snmpclitools.make b/rules/python3-snmpclitools.make
new file mode 100644
index 000000000..7c2917187
--- /dev/null
+++ b/rules/python3-snmpclitools.make
@@ -0,0 +1,56 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Lars Pedersen <lapeddk@gmail.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_SNMPCLITOOLS) += python3-snmpclitools
+
+#
+# Paths and names
+#
+PYTHON3_SNMPCLITOOLS_VERSION := 0.6.4
+PYTHON3_SNMPCLITOOLS_MD5 := 132b100f5e7b80715e6c1d424e89687c
+PYTHON3_SNMPCLITOOLS := snmpclitools-$(PYTHON3_SNMPCLITOOLS_VERSION)
+PYTHON3_SNMPCLITOOLS_SUFFIX := tar.gz
+PYTHON3_SNMPCLITOOLS_URL := $(call ptx/mirror-pypi, snmpclitools, $(PYTHON3_SNMPCLITOOLS).$(PYTHON3_SNMPCLITOOLS_SUFFIX))
+PYTHON3_SNMPCLITOOLS_SOURCE := $(SRCDIR)/$(PYTHON3_SNMPCLITOOLS).$(PYTHON3_SNMPCLITOOLS_SUFFIX)
+PYTHON3_SNMPCLITOOLS_DIR := $(BUILDDIR)/$(PYTHON3_SNMPCLITOOLS)
+PYTHON3_SNMPCLITOOLS_LICENSE := BSD-2-Clause
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_SNMPCLITOOLS_CONF_TOOL := python3
+PYTHON3_SNMPCLITOOLS_MAKE_OPT := install_scripts
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-snmpclitools.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-snmpclitools)
+ @$(call install_fixup, python3-snmpclitools,PRIORITY,optional)
+ @$(call install_fixup, python3-snmpclitools,SECTION,base)
+ @$(call install_fixup, python3-snmpclitools,AUTHOR,"Lars Pedersen <lapeddk@gmail.com>")
+ @$(call install_fixup, python3-snmpclitools,DESCRIPTION,missing)
+
+ @$(call install_glob, python3-snmpclitools, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES),, *.py)
+
+ @$(call install_glob,python3-snmpclitools, 0, 0, -, \
+ /usr/bin/,*.py,)
+
+ @$(call install_finish, python3-snmpclitools)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-sortedcontainers.in b/rules/python3-sortedcontainers.in
new file mode 100644
index 000000000..8380dbdb4
--- /dev/null
+++ b/rules/python3-sortedcontainers.in
@@ -0,0 +1,9 @@
+## SECTION=python3
+
+config PYTHON3_SORTEDCONTAINERS
+ tristate
+ select PYTHON3
+ prompt "sortedcontainers"
+ help
+ Sorted Containers is an Apache2 licensed sorted collections library,
+ written in pure-Python, and fast as C-extensions.
diff --git a/rules/python3-sortedcontainers.make b/rules/python3-sortedcontainers.make
new file mode 100644
index 000000000..8956c617f
--- /dev/null
+++ b/rules/python3-sortedcontainers.make
@@ -0,0 +1,53 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Artur Wiebe <artur@4wiebe.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_SORTEDCONTAINERS) += python3-sortedcontainers
+
+#
+# Paths and names
+#
+PYTHON3_SORTEDCONTAINERS_VERSION := 2.4.0
+PYTHON3_SORTEDCONTAINERS_MD5 := 50eeb6cb739568b590b28f9a3f445c78
+PYTHON3_SORTEDCONTAINERS := sortedcontainers-$(PYTHON3_SORTEDCONTAINERS_VERSION)
+PYTHON3_SORTEDCONTAINERS_SUFFIX := tar.gz
+PYTHON3_SORTEDCONTAINERS_URL := $(call ptx/mirror-pypi, sortedcontainers, $(PYTHON3_SORTEDCONTAINERS).$(PYTHON3_SORTEDCONTAINERS_SUFFIX))
+PYTHON3_SORTEDCONTAINERS_SOURCE := $(SRCDIR)/$(PYTHON3_SORTEDCONTAINERS).$(PYTHON3_SORTEDCONTAINERS_SUFFIX)
+PYTHON3_SORTEDCONTAINERS_DIR := $(BUILDDIR)/$(PYTHON3_SORTEDCONTAINERS)
+PYTHON3_SORTEDCONTAINERS_LICENSE := Apache-2.0
+PYTHON3_SORTEDCONTAINERS_LICENSE_FILES := file://LICENSE;md5=7c7c6a1a12ec816da16c1839137d53ae
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_SORTEDCONTAINERS_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-sortedcontainers.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-sortedcontainers)
+ @$(call install_fixup, python3-sortedcontainers,PRIORITY,optional)
+ @$(call install_fixup, python3-sortedcontainers,SECTION,base)
+ @$(call install_fixup, python3-sortedcontainers,AUTHOR,"Artur Wiebe <artur@4wiebe.de>")
+ @$(call install_fixup, python3-sortedcontainers,DESCRIPTION,missing)
+
+ @$(call install_glob, python3-sortedcontainers, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES)/sortedcontainers,, *.py)
+
+ @$(call install_finish, python3-sortedcontainers)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-sqlparse.make b/rules/python3-sqlparse.make
index 5590e9473..4a0cef488 100644
--- a/rules/python3-sqlparse.make
+++ b/rules/python3-sqlparse.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_PYTHON3_SQLPARSE) += python3-sqlparse
#
# Paths and names
#
-PYTHON3_SQLPARSE_VERSION := 0.3.1
-PYTHON3_SQLPARSE_MD5 := 423047887a3590b04dd18f8caf843a2f
+PYTHON3_SQLPARSE_VERSION := 0.4.1
+PYTHON3_SQLPARSE_MD5 := eebbc6b5f1033054873033e54b0c1266
PYTHON3_SQLPARSE := sqlparse-$(PYTHON3_SQLPARSE_VERSION)
PYTHON3_SQLPARSE_SUFFIX := tar.gz
PYTHON3_SQLPARSE_URL := $(call ptx/mirror-pypi, sqlparse, $(PYTHON3_SQLPARSE).$(PYTHON3_SQLPARSE_SUFFIX))
PYTHON3_SQLPARSE_SOURCE := $(SRCDIR)/$(PYTHON3_SQLPARSE).$(PYTHON3_SQLPARSE_SUFFIX)
PYTHON3_SQLPARSE_DIR := $(BUILDDIR)/$(PYTHON3_SQLPARSE)
PYTHON3_SQLPARSE_LICENSE := BSD-3-Clause
+PYTHON3_SQLPARSE_LICENSE_FILES := \
+ file://LICENSE;md5=2b136f573f5386001ea3b7b9016222fc \
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/python3-systemd.make b/rules/python3-systemd.make
index fe20b0959..e522d9700 100644
--- a/rules/python3-systemd.make
+++ b/rules/python3-systemd.make
@@ -14,14 +14,15 @@ PACKAGES-$(PTXCONF_PYTHON3_SYSTEMD) += python3-systemd
#
# Paths and names
#
-PYTHON3_SYSTEMD_VERSION := 234
-PYTHON3_SYSTEMD_MD5 := 752929b651d1c6b2a42d454f58b94974
-PYTHON3_SYSTEMD := python3-systemd-$(PYTHON3_SYSTEMD_VERSION)
-PYTHON3_SYSTEMD_SUFFIX := tar.gz
-PYTHON3_SYSTEMD_URL := https://github.com/systemd/python-systemd/archive/v$(PYTHON3_SYSTEMD_VERSION).$(PYTHON3_SYSTEMD_SUFFIX)
-PYTHON3_SYSTEMD_SOURCE := $(SRCDIR)/$(PYTHON3_SYSTEMD).$(PYTHON3_SYSTEMD_SUFFIX)
-PYTHON3_SYSTEMD_DIR := $(BUILDDIR)/$(PYTHON3_SYSTEMD)
-PYTHON3_SYSTEMD_LICENSE := LGPL-2.1-or-later
+PYTHON3_SYSTEMD_VERSION := 235
+PYTHON3_SYSTEMD_MD5 := 760003406e2fac84ff1bcc40ae696af6
+PYTHON3_SYSTEMD := python3-systemd-$(PYTHON3_SYSTEMD_VERSION)
+PYTHON3_SYSTEMD_SUFFIX := tar.gz
+PYTHON3_SYSTEMD_URL := https://github.com/systemd/python-systemd/archive/v$(PYTHON3_SYSTEMD_VERSION).$(PYTHON3_SYSTEMD_SUFFIX)
+PYTHON3_SYSTEMD_SOURCE := $(SRCDIR)/$(PYTHON3_SYSTEMD).$(PYTHON3_SYSTEMD_SUFFIX)
+PYTHON3_SYSTEMD_DIR := $(BUILDDIR)/$(PYTHON3_SYSTEMD)
+PYTHON3_SYSTEMD_LICENSE := LGPL-2.1-or-later
+PYTHON3_SYSTEMD_LICENSE_FILES := file://LICENSE.txt;md5=4fbd65380cdd255951079008b364516c
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/python3-tabulate.in b/rules/python3-tabulate.in
new file mode 100644
index 000000000..cbca26140
--- /dev/null
+++ b/rules/python3-tabulate.in
@@ -0,0 +1,8 @@
+## SECTION=python3
+
+config PYTHON3_TABULATE
+ tristate
+ select PYTHON3
+ prompt "tabulate"
+ help
+ Pretty-print tabular data in Python, a library and a command-line utility
diff --git a/rules/python3-tabulate.make b/rules/python3-tabulate.make
new file mode 100644
index 000000000..3665e1e45
--- /dev/null
+++ b/rules/python3-tabulate.make
@@ -0,0 +1,54 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Lars Pedersen <lapeddk@gmail.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_TABULATE) += python3-tabulate
+
+#
+# Paths and names
+#
+PYTHON3_TABULATE_VERSION := 0.8.9
+PYTHON3_TABULATE_MD5 := 71e6f214512ceda2892be47767156754
+PYTHON3_TABULATE := tabulate-$(PYTHON3_TABULATE_VERSION)
+PYTHON3_TABULATE_SUFFIX := tar.gz
+PYTHON3_TABULATE_URL := $(call ptx/mirror-pypi, tabulate, $(PYTHON3_TABULATE).$(PYTHON3_TABULATE_SUFFIX))
+PYTHON3_TABULATE_SOURCE := $(SRCDIR)/$(PYTHON3_TABULATE).$(PYTHON3_TABULATE_SUFFIX)
+PYTHON3_TABULATE_DIR := $(BUILDDIR)/$(PYTHON3_TABULATE)
+PYTHON3_TABULATE_LICENSE := MIT
+PYTHON3_TABULATE_LICENSE_FILES := \
+ file://LICENSE;md5=fad5a39bdfe452b13775adda41023ba7
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_TABULATE_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-tabulate.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-tabulate)
+ @$(call install_fixup, python3-tabulate,PRIORITY,optional)
+ @$(call install_fixup, python3-tabulate,SECTION,base)
+ @$(call install_fixup, python3-tabulate,AUTHOR,"Lars Pedersen <lapeddk@gmail.com>")
+ @$(call install_fixup, python3-tabulate,DESCRIPTION,missing)
+
+ @$(call install_glob, python3-tabulate, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES),, *.py)
+
+ @$(call install_finish, python3-tabulate)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-text-unidecode.make b/rules/python3-text-unidecode.make
index 60534ad45..3b9d020b9 100644
--- a/rules/python3-text-unidecode.make
+++ b/rules/python3-text-unidecode.make
@@ -18,7 +18,7 @@ PYTHON3_TEXT_UNIDECODE_VERSION := 1.3
PYTHON3_TEXT_UNIDECODE_MD5 := 53a0a6c5aef8f5eb5834e78e0fdf0499
PYTHON3_TEXT_UNIDECODE := text-unidecode-$(PYTHON3_TEXT_UNIDECODE_VERSION)
PYTHON3_TEXT_UNIDECODE_SUFFIX := tar.gz
-PYTHON3_TEXT_UNIDECODE_URL := https://files.pythonhosted.org/packages/source/t/text-unidecode/$(PYTHON3_TEXT_UNIDECODE).$(PYTHON3_TEXT_UNIDECODE_SUFFIX)
+PYTHON3_TEXT_UNIDECODE_URL := $(call ptx/mirror-pypi, text-unidecode, $(PYTHON3_TEXT_UNIDECODE).$(PYTHON3_TEXT_UNIDECODE_SUFFIX))
PYTHON3_TEXT_UNIDECODE_SOURCE := $(SRCDIR)/$(PYTHON3_TEXT_UNIDECODE).$(PYTHON3_TEXT_UNIDECODE_SUFFIX)
PYTHON3_TEXT_UNIDECODE_DIR := $(BUILDDIR)/$(PYTHON3_TEXT_UNIDECODE)
PYTHON3_TEXT_UNIDECODE_LICENSE := ClArtistic
diff --git a/rules/python3-threadpoolctl.in b/rules/python3-threadpoolctl.in
new file mode 100644
index 000000000..b28b6062c
--- /dev/null
+++ b/rules/python3-threadpoolctl.in
@@ -0,0 +1,9 @@
+## SECTION=python3
+
+config PYTHON3_THREADPOOLCTL
+ tristate
+ select PYTHON3
+ select HOST_PYTHON3_PYBUILD
+ prompt "threadpoolctl"
+ help
+ FIXME
diff --git a/rules/python3-threadpoolctl.make b/rules/python3-threadpoolctl.make
new file mode 100644
index 000000000..a9ab66de3
--- /dev/null
+++ b/rules/python3-threadpoolctl.make
@@ -0,0 +1,53 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_THREADPOOLCTL) += python3-threadpoolctl
+
+#
+# Paths and names
+#
+PYTHON3_THREADPOOLCTL_VERSION := 3.2.0
+PYTHON3_THREADPOOLCTL_MD5 := b1d5f56e410df7022c38883d51b6a24c
+PYTHON3_THREADPOOLCTL := threadpoolctl-$(PYTHON3_THREADPOOLCTL_VERSION)
+PYTHON3_THREADPOOLCTL_SUFFIX := tar.gz
+PYTHON3_THREADPOOLCTL_URL := $(call ptx/mirror-pypi, threadpoolctl, $(PYTHON3_THREADPOOLCTL).$(PYTHON3_THREADPOOLCTL_SUFFIX))
+PYTHON3_THREADPOOLCTL_SOURCE := $(SRCDIR)/$(PYTHON3_THREADPOOLCTL).$(PYTHON3_THREADPOOLCTL_SUFFIX)
+PYTHON3_THREADPOOLCTL_DIR := $(BUILDDIR)/$(PYTHON3_THREADPOOLCTL)
+PYTHON3_THREADPOOLCTL_LICENSE := BSD-3-Clause
+PYTHON3_THREADPOOLCTL_LICENSE_FILES := file://LICENSE;md5=8f2439cfddfbeebdb5cac3ae4ae80eaf
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_THREADPOOLCTL_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-threadpoolctl.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-threadpoolctl)
+ @$(call install_fixup, python3-threadpoolctl,PRIORITY,optional)
+ @$(call install_fixup, python3-threadpoolctl,SECTION,base)
+ @$(call install_fixup, python3-threadpoolctl,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, python3-threadpoolctl,DESCRIPTION,missing)
+
+ @$(call install_tree, python3-threadpoolctl, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES))
+
+ @$(call install_finish, python3-threadpoolctl)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-tornado.make b/rules/python3-tornado.make
index ba37df435..8cd89651e 100644
--- a/rules/python3-tornado.make
+++ b/rules/python3-tornado.make
@@ -11,14 +11,16 @@
#
PACKAGES-$(PTXCONF_PYTHON3_TORNADO) += python3-tornado
-PYTHON3_TORNADO_VERSION := 6.1
-PYTHON3_TORNADO_MD5 := f324f5e7607798552359d6ab054c4321
+PYTHON3_TORNADO_VERSION := 6.4
+PYTHON3_TORNADO_MD5 := 460b467761e5ff74202b5bf8054c8116
PYTHON3_TORNADO := tornado-$(PYTHON3_TORNADO_VERSION)
PYTHON3_TORNADO_SUFFIX := tar.gz
PYTHON3_TORNADO_URL := $(call ptx/mirror-pypi, tornado, $(PYTHON3_TORNADO).$(PYTHON3_TORNADO_SUFFIX))
PYTHON3_TORNADO_SOURCE := $(SRCDIR)/$(PYTHON3_TORNADO).$(PYTHON3_TORNADO_SUFFIX)
PYTHON3_TORNADO_DIR := $(BUILDDIR)/$(PYTHON3_TORNADO)
PYTHON3_TORNADO_LICENSE := Apache-2.0
+PYTHON3_TORNADO_LICENSE_FILES:= \
+ file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/python3-traitlets.make b/rules/python3-traitlets.make
index 712624950..2dbb3fa4b 100644
--- a/rules/python3-traitlets.make
+++ b/rules/python3-traitlets.make
@@ -18,7 +18,7 @@ PYTHON3_TRAITLETS_VERSION := 4.1.0
PYTHON3_TRAITLETS_MD5 := 2ebf5e11a19f82f25395b4a793097080
PYTHON3_TRAITLETS := traitlets-$(PYTHON3_TRAITLETS_VERSION)
PYTHON3_TRAITLETS_SUFFIX := tar.gz
-PYTHON3_TRAITLETS_URL := https://pypi.python.org/packages/source/t/traitlets/$(PYTHON3_TRAITLETS).$(PYTHON3_TRAITLETS_SUFFIX)\#md5=$(PYTHON3_TRAITLETS_MD5)
+PYTHON3_TRAITLETS_URL := $(call ptx/mirror-pypi, traitlets, $(PYTHON3_TRAITLETS).$(PYTHON3_TRAITLETS_SUFFIX))
PYTHON3_TRAITLETS_SOURCE := $(SRCDIR)/$(PYTHON3_TRAITLETS).$(PYTHON3_TRAITLETS_SUFFIX)
PYTHON3_TRAITLETS_DIR := $(BUILDDIR)/$(PYTHON3_TRAITLETS)
PYTHON3_TRAITLETS_LICENSE := BSD-3-Clause
diff --git a/rules/python3-urllib3.make b/rules/python3-urllib3.make
index 365c9e87e..0bf952463 100644
--- a/rules/python3-urllib3.make
+++ b/rules/python3-urllib3.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_PYTHON3_URLLIB3) += python3-urllib3
#
# Paths and names
#
-PYTHON3_URLLIB3_VERSION := 1.25.11
-PYTHON3_URLLIB3_MD5 := d47dd21a6e66a03c3633cac468ffd010
+PYTHON3_URLLIB3_VERSION := 1.26.6
+PYTHON3_URLLIB3_MD5 := 3a88ec3bcb761ca23df2c3583949be37
PYTHON3_URLLIB3 := urllib3-$(PYTHON3_URLLIB3_VERSION)
PYTHON3_URLLIB3_SUFFIX := tar.gz
PYTHON3_URLLIB3_URL := $(call ptx/mirror-pypi, urllib3, $(PYTHON3_URLLIB3).$(PYTHON3_URLLIB3_SUFFIX))
@@ -23,7 +23,7 @@ PYTHON3_URLLIB3_SOURCE := $(SRCDIR)/$(PYTHON3_URLLIB3).$(PYTHON3_URLLIB3_SUFFIX)
PYTHON3_URLLIB3_DIR := $(BUILDDIR)/$(PYTHON3_URLLIB3)
PYTHON3_URLLIB3_LICENSE := MIT
PYTHON3_URLLIB3_LICENSE_FILES := \
- file://LICENSE.txt;md5=65715c2eb961313d71b297dd5a04f85e \
+ file://LICENSE.txt;md5=c2823cb995439c984fd62a973d79815c \
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/python3-uvloop.in b/rules/python3-uvloop.in
new file mode 100644
index 000000000..6f937a31b
--- /dev/null
+++ b/rules/python3-uvloop.in
@@ -0,0 +1,10 @@
+## SECTION=python3
+
+config PYTHON3_UVLOOP
+ tristate
+ select PYTHON3
+ select HOST_CYTHON3
+ select LIBUV
+ prompt "python3-uvloop"
+ help
+ Ultra fast asyncio event loop
diff --git a/rules/python3-uvloop.make b/rules/python3-uvloop.make
new file mode 100644
index 000000000..a6b266b53
--- /dev/null
+++ b/rules/python3-uvloop.make
@@ -0,0 +1,57 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2019 by David Jander <david@protonic.nl>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_UVLOOP) += python3-uvloop
+
+#
+# Paths and names
+#
+PYTHON3_UVLOOP_VERSION := v0.17.0
+PYTHON3_UVLOOP_MD5 := d64fa7d6f7ca753132e076106592bf1c
+PYTHON3_UVLOOP := python3-uvloop-$(PYTHON3_UVLOOP_VERSION)
+PYTHON3_UVLOOP_SUFFIX := tar.gz
+PYTHON3_UVLOOP_URL := https://github.com/MagicStack/uvloop/archive/$(PYTHON3_UVLOOP_VERSION).$(PYTHON3_UVLOOP_SUFFIX)
+PYTHON3_UVLOOP_SOURCE := $(SRCDIR)/$(PYTHON3_UVLOOP).$(PYTHON3_UVLOOP_SUFFIX)
+PYTHON3_UVLOOP_DIR := $(BUILDDIR)/$(PYTHON3_UVLOOP)
+PYTHON3_UVLOOP_LICENSE := Apache-2.0 OR MIT
+PYTHON3_UVLOOP_LICENSE_FILES := \
+ file://LICENSE-APACHE;md5=bb92739ddad0a2811957bd98bdb90474 \
+ file://LICENSE-MIT;md5=489c8bc34154e4b59f5c58e664f7d70f
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_UVLOOP_CONF_TOOL := python3
+PYTHON3_UVLOOP_MAKE_OPT := build build_py build_ext --use-system-libuv
+PYTHON3_UVLOOP_INSTALL_OPT := build_ext --use-system-libuv install --prefix=/usr
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-uvloop.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-uvloop)
+ @$(call install_fixup, python3-uvloop, PRIORITY, optional)
+ @$(call install_fixup, python3-uvloop, SECTION, base)
+ @$(call install_fixup, python3-uvloop, AUTHOR, "David Jander <david@protonic.nl>")
+ @$(call install_fixup, python3-uvloop, DESCRIPTION, missing)
+
+ @$(call install_glob, python3-uvloop, 0, 0, -, \
+ /usr/lib/python$(PYTHON3_MAJORMINOR)/site-packages/uvloop, *.pyc *.so)
+
+ @$(call install_finish, python3-uvloop)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-wcwidth.make b/rules/python3-wcwidth.make
index 1040b480e..2ece74a55 100644
--- a/rules/python3-wcwidth.make
+++ b/rules/python3-wcwidth.make
@@ -18,7 +18,7 @@ PYTHON3_WCWIDTH_VERSION := 0.2.5
PYTHON3_WCWIDTH_MD5 := a07a75f99d316e14838ac760c831ea37
PYTHON3_WCWIDTH := wcwidth-$(PYTHON3_WCWIDTH_VERSION)
PYTHON3_WCWIDTH_SUFFIX := tar.gz
-PYTHON3_WCWIDTH_URL := https://pypi.python.org/packages/source/w/wcwidth/$(PYTHON3_WCWIDTH).$(PYTHON3_WCWIDTH_SUFFIX)
+PYTHON3_WCWIDTH_URL := $(call ptx/mirror-pypi, wcwidth, $(PYTHON3_WCWIDTH).$(PYTHON3_WCWIDTH_SUFFIX))
PYTHON3_WCWIDTH_SOURCE := $(SRCDIR)/$(PYTHON3_WCWIDTH).$(PYTHON3_WCWIDTH_SUFFIX)
PYTHON3_WCWIDTH_DIR := $(BUILDDIR)/$(PYTHON3_WCWIDTH)
PYTHON3_WCWIDTH_LICENSE := MIT
diff --git a/rules/python3-websocket-client.in b/rules/python3-websocket-client.in
new file mode 100644
index 000000000..a4da32f81
--- /dev/null
+++ b/rules/python3-websocket-client.in
@@ -0,0 +1,12 @@
+## SECTION=python3
+
+config PYTHON3_WEBSOCKET_CLIENT
+ tristate
+ select PYTHON3
+ select PYTHON3_SSL
+ prompt "python3-websocket-client"
+ help
+ A WebSocket client for Python. It provides access to low level
+ APIs for WebSockets. websocket-client implements version hybi-13
+ of the WebSocket protocol. This client does not currently support
+ the permessage-deflate extension from RFC 7692.
diff --git a/rules/python3-websocket-client.make b/rules/python3-websocket-client.make
new file mode 100644
index 000000000..b7acafe16
--- /dev/null
+++ b/rules/python3-websocket-client.make
@@ -0,0 +1,52 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Matthias Fend <matthias.fend@emfend.at>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_WEBSOCKET_CLIENT) += python3-websocket-client
+
+#
+# Paths and names
+#
+PYTHON3_WEBSOCKET_CLIENT_VERSION := 1.2.1
+PYTHON3_WEBSOCKET_CLIENT_MD5 := a043b9a04dc10a7c9f333cf55f6222df
+PYTHON3_WEBSOCKET_CLIENT := websocket-client-$(PYTHON3_WEBSOCKET_CLIENT_VERSION)
+PYTHON3_WEBSOCKET_CLIENT_SUFFIX := tar.gz
+PYTHON3_WEBSOCKET_CLIENT_URL := $(call ptx/mirror-pypi, websocket-client, $(PYTHON3_WEBSOCKET_CLIENT).$(PYTHON3_WEBSOCKET_CLIENT_SUFFIX))
+PYTHON3_WEBSOCKET_CLIENT_SOURCE := $(SRCDIR)/$(PYTHON3_WEBSOCKET_CLIENT).$(PYTHON3_WEBSOCKET_CLIENT_SUFFIX)
+PYTHON3_WEBSOCKET_CLIENT_DIR := $(BUILDDIR)/$(PYTHON3_WEBSOCKET_CLIENT)
+PYTHON3_WEBSOCKET_CLIENT_LICENSE := Apache-2.0
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_WEBSOCKET_CLIENT_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-websocket-client.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-websocket-client)
+ @$(call install_fixup, python3-websocket-client, PRIORITY, optional)
+ @$(call install_fixup, python3-websocket-client, SECTION, base)
+ @$(call install_fixup, python3-websocket-client, AUTHOR, "Matthias Fend <matthias.fend@emfend.at>")
+ @$(call install_fixup, python3-websocket-client, DESCRIPTION, missing)
+
+ @$(call install_glob, python3-websocket-client, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES),, *.py)
+
+ @$(call install_finish, python3-websocket-client)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-yarl.make b/rules/python3-yarl.make
index d6831493f..0f6f2d8e3 100644
--- a/rules/python3-yarl.make
+++ b/rules/python3-yarl.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_PYTHON3_YARL) += python3-yarl
#
# Paths and names
#
-PYTHON3_YARL_VERSION := 1.5.1
-PYTHON3_YARL_MD5 := a9b20bf0b8a6962e1101b28908a67bf8
+PYTHON3_YARL_VERSION := 1.8.2
+PYTHON3_YARL_MD5 := 57c82725b9f4895eecee45faf5e61a54
PYTHON3_YARL := yarl-$(PYTHON3_YARL_VERSION)
PYTHON3_YARL_SUFFIX := tar.gz
PYTHON3_YARL_URL := $(call ptx/mirror-pypi, yarl, $(PYTHON3_YARL).$(PYTHON3_YARL_SUFFIX))
diff --git a/rules/python3-yoyo-migrations.in b/rules/python3-yoyo-migrations.in
new file mode 100644
index 000000000..d01286d0b
--- /dev/null
+++ b/rules/python3-yoyo-migrations.in
@@ -0,0 +1,13 @@
+## SECTION=python3
+
+config PYTHON3_YOYO_MIGRATIONS
+ tristate
+ prompt "python3-yoyo-migrations"
+ select PYTHON3
+ select PYTHON3_SETUPTOOLS
+ select PYTHON3_INIHERIT
+ select PYTHON3_TEXT_UNIDECODE
+ select PYTHON3_SQLPARSE
+ select PYTHON3_TABULATE
+ help
+ Yoyo is a database schema migration tool using python.
diff --git a/rules/python3-yoyo-migrations.make b/rules/python3-yoyo-migrations.make
new file mode 100644
index 000000000..d6f9c3c2b
--- /dev/null
+++ b/rules/python3-yoyo-migrations.make
@@ -0,0 +1,70 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Lars Pedersen <lapeddk@gmail.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_YOYO_MIGRATIONS) += python3-yoyo-migrations
+
+#
+# Paths and names
+#
+PYTHON3_YOYO_MIGRATIONS_VERSION := 7.3.2
+PYTHON3_YOYO_MIGRATIONS_MD5 := bf1f70e0198a8dae5eb78e864d545456
+PYTHON3_YOYO_MIGRATIONS := yoyo-migrations-$(PYTHON3_YOYO_MIGRATIONS_VERSION)
+PYTHON3_YOYO_MIGRATIONS_SUFFIX := tar.gz
+PYTHON3_YOYO_MIGRATIONS_URL := $(call ptx/mirror-pypi, yoyo-migrations, $(PYTHON3_YOYO_MIGRATIONS).$(PYTHON3_YOYO_MIGRATIONS_SUFFIX))
+PYTHON3_YOYO_MIGRATIONS_SOURCE := $(SRCDIR)/$(PYTHON3_YOYO_MIGRATIONS).$(PYTHON3_YOYO_MIGRATIONS_SUFFIX)
+PYTHON3_YOYO_MIGRATIONS_DIR := $(BUILDDIR)/$(PYTHON3_YOYO_MIGRATIONS)
+PYTHON3_YOYO_MIGRATIONS_LICENSE := Apache-2.0
+PYTHON3_YOYO_MIGRATIONS_LICENSE_FILES := \
+ file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_YOYO_MIGRATIONS_CONF_TOOL := python3
+PYTHON3_YOYO_MIGRATIONS_MAKE_OPT := install_scripts
+
+# ----------------------------------------------------------------------------
+# Install post
+# ----------------------------------------------------------------------------
+
+# Fix python shebang from an absolute path in yoyo and yoyo-migrate install_scripts
+$(STATEDIR)/python3-yoyo-migrations.install.post:
+ @$(call targetinfo)
+ @sed -i -e '1s,^.*$$,\#\!\/usr\/bin\/python3,g' "$(PTXDIST_PLATFORMDIR)/packages/$(PYTHON3_YOYO_MIGRATIONS)/usr/bin/yoyo"
+ @sed -i -e '1s,^.*$$,\#\!\/usr\/bin\/python3,g' "$(PTXDIST_PLATFORMDIR)/packages/$(PYTHON3_YOYO_MIGRATIONS)/usr/bin/yoyo-migrate"
+
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-yoyo-migrations.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-yoyo-migrations)
+ @$(call install_fixup, python3-yoyo-migrations,PRIORITY,optional)
+ @$(call install_fixup, python3-yoyo-migrations,SECTION,base)
+ @$(call install_fixup, python3-yoyo-migrations,Lars Pedersen,"<lapeddk@gmail.com>")
+ @$(call install_fixup, python3-yoyo-migrations,DESCRIPTION,missing)
+
+ @$(call install_glob,python3-yoyo-migrations, 0, 0, -, \
+ /usr/lib/python$(PYTHON3_MAJORMINOR)/site-packages,, *.py)
+
+ @$(call install_copy, python3-yoyo-migrations, 0, 0, 0775, -, /usr/bin/yoyo)
+ @$(call install_copy, python3-yoyo-migrations, 0, 0, 0775, -, /usr/bin/yoyo-migrate)
+
+ @$(call install_finish, python3-yoyo-migrations)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-zeroconf.in b/rules/python3-zeroconf.in
new file mode 100644
index 000000000..5b6d7090f
--- /dev/null
+++ b/rules/python3-zeroconf.in
@@ -0,0 +1,9 @@
+## SECTION=python3
+
+config PYTHON3_ZEROCONF
+ tristate
+ select PYTHON3
+ select PYTHON3_IFADDR
+ prompt "zeroconf"
+ help
+ Multicast DNS Service Discovery for Python.
diff --git a/rules/python3-zeroconf.make b/rules/python3-zeroconf.make
new file mode 100644
index 000000000..433ce971a
--- /dev/null
+++ b/rules/python3-zeroconf.make
@@ -0,0 +1,53 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by David Jander <david@protonic.nl>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_ZEROCONF) += python3-zeroconf
+
+#
+# Paths and names
+#
+PYTHON3_ZEROCONF_VERSION := 0.26.1
+PYTHON3_ZEROCONF_MD5 := 86a217cb3ef200c7afb104c9253aa0b7
+PYTHON3_ZEROCONF := zeroconf-$(PYTHON3_ZEROCONF_VERSION)
+PYTHON3_ZEROCONF_SUFFIX := tar.gz
+PYTHON3_ZEROCONF_URL := $(call ptx/mirror-pypi, zeroconf, $(PYTHON3_ZEROCONF).$(PYTHON3_ZEROCONF_SUFFIX))
+PYTHON3_ZEROCONF_SOURCE := $(SRCDIR)/$(PYTHON3_ZEROCONF).$(PYTHON3_ZEROCONF_SUFFIX)
+PYTHON3_ZEROCONF_DIR := $(BUILDDIR)/$(PYTHON3_ZEROCONF)
+PYTHON3_ZEROCONF_LICENSE := LGPL-2.1-or-later
+PYTHON3_ZEROCONF_LICENSE_FILES := file://COPYING;md5=27818cd7fd83877a8e3ef82b82798ef4
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+PYTHON3_ZEROCONF_CONF_TOOL := python3
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-zeroconf.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, python3-zeroconf)
+ @$(call install_fixup, python3-zeroconf,PRIORITY,optional)
+ @$(call install_fixup, python3-zeroconf,SECTION,base)
+ @$(call install_fixup, python3-zeroconf,AUTHOR,"David Jander <david@protonic.nl>")
+ @$(call install_fixup, python3-zeroconf,DESCRIPTION,missing)
+
+ @$(call install_glob, python3-zeroconf, 0, 0, -, \
+ $(PYTHON3_SITEPACKAGES),, *.py)
+
+ @$(call install_finish, python3-zeroconf)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/python3-zipp.make b/rules/python3-zipp.make
index 217ffba2e..45cdadb50 100644
--- a/rules/python3-zipp.make
+++ b/rules/python3-zipp.make
@@ -18,7 +18,7 @@ PYTHON3_ZIPP_VERSION := 3.1.0
PYTHON3_ZIPP_MD5 := 199da7385f080ec45da6c1942e2b5996
PYTHON3_ZIPP := zipp-$(PYTHON3_ZIPP_VERSION)
PYTHON3_ZIPP_SUFFIX := tar.gz
-PYTHON3_ZIPP_URL := https://pypi.python.org/packages/source/z/zipp/$(PYTHON3_ZIPP).$(PYTHON3_ZIPP_SUFFIX)
+PYTHON3_ZIPP_URL := $(call ptx/mirror-pypi, zipp, $(PYTHON3_ZIPP).$(PYTHON3_ZIPP_SUFFIX))
PYTHON3_ZIPP_SOURCE := $(SRCDIR)/$(PYTHON3_ZIPP).$(PYTHON3_ZIPP_SUFFIX)
PYTHON3_ZIPP_DIR := $(BUILDDIR)/$(PYTHON3_ZIPP)
PYTHON3_ZIPP_LICENSE := MIT
diff --git a/rules/python3.in b/rules/python3.in
index cf4314cb6..3de2b77fd 100644
--- a/rules/python3.in
+++ b/rules/python3.in
@@ -54,15 +54,18 @@ config PYTHON3_SSL
bool "ssl & hashlib bindings"
config PYTHON3_SYMLINK
- depends on !PYTHON_SYMLINK
bool
prompt "install symbolic link /usr/bin/python"
- default y if !PYTHON_SYMLINK
+ default y
config PYTHON3_DISTUTILS
bool
prompt "Include distutils packages"
+config PYTHON3_KEEP_ENSUREPIP
+ bool
+ prompt "Include ensurepip module"
+
endif
menu "python3 Extra Modules "
diff --git a/rules/python3.make b/rules/python3.make
index 976d6935c..771ac0e46 100644
--- a/rules/python3.make
+++ b/rules/python3.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_PYTHON3) += python3
#
# Paths and names
#
-PYTHON3_VERSION := 3.7.10
-PYTHON3_MD5 := 9e34914bc804ab2e7d955b49c5e1e391
+PYTHON3_VERSION := 3.11.6
+PYTHON3_MD5 := d0c5a1a31efe879723e51addf56dd206
PYTHON3_MAJORMINOR := $(basename $(PYTHON3_VERSION))
PYTHON3_SITEPACKAGES := /usr/lib/python$(PYTHON3_MAJORMINOR)/site-packages
PYTHON3 := Python-$(PYTHON3_VERSION)
@@ -26,10 +26,10 @@ PYTHON3_DIR := $(BUILDDIR)/$(PYTHON3)
PYTHON3_DEVPKG := NO
PYTHON3_URL := \
- http://python.org/ftp/python/$(PYTHON3_VERSION)/$(PYTHON3).$(PYTHON3_SUFFIX) \
+ https://www.python.org/ftp/python/$(PYTHON3_VERSION)/$(PYTHON3).$(PYTHON3_SUFFIX) \
http://python.org/ftp/python/$(PYTHON3_MAJORMINOR)/$(PYTHON3).$(PYTHON3_SUFFIX)
-CROSS_PYTHON3 := $(PTXDIST_SYSROOT_CROSS)/bin/python$(PYTHON3_MAJORMINOR)
+CROSS_PYTHON3 := $(PTXDIST_SYSROOT_CROSS)/usr/bin/python$(PYTHON3_MAJORMINOR)
# ----------------------------------------------------------------------------
# Prepare
@@ -46,6 +46,7 @@ PYTHON3_CONF_ENV := \
ac_cv_broken_sem_getvalue=no \
ac_cv_file__dev_ptmx=no \
ac_cv_file__dev_ptc=no \
+ ac_cv_lib_bsd_flock=no \
ac_cv_working_tzset=yes \
ac_cv_header_bluetooth_bluetooth_h=no \
LDFLAGS="-L$(PTXDIST_SYSROOT_TARGET)/usr/lib"
@@ -76,7 +77,8 @@ PYTHON3_CONF_OPT := \
--without-dtrace \
--with-computed-gotos \
--without-ensurepip \
- --with-openssl=$(SYSROOT)/usr
+ --with-openssl=$(SYSROOT)/usr \
+ --with-build-python=$(PTXDIST_SYSROOT_HOST)/usr/bin/python$(PYTHON3_MAJORMINOR)
# Keep dictionary order in .pyc files stable
PYTHON3_MAKE_ENV := \
@@ -92,9 +94,16 @@ $(STATEDIR)/python3.install:
# # remove unneeded stuff
@find $(PYTHON3_DIR) \( -name test -o -name tests \) -print0 | xargs -0 rm -vrf
- @$(call install, PYTHON3)
+ @$(call world/install, PYTHON3)
- @rm -vrf $(PYTHON3_PKGDIR)/usr/lib/python$(PYTHON3_MAJORMINOR)/config-$(PYTHON3_MAJORMINOR)m
+# # grab the host binary modules for cross-building
+ @install -v -m644 -t \
+ $(PYTHON3_PKGDIR)/usr/lib/python$(PYTHON3_MAJORMINOR)/lib-dynload/ \
+ $(PTXDIST_SYSROOT_HOST)/usr/lib/python$(PYTHON3_MAJORMINOR)/lib-dynload/*-x86_64-host-gnu.so
+ @chrpath -r '$${ORIGIN}/../../../../../sysroot-host/usr/lib' \
+ $(PYTHON3_PKGDIR)/usr/lib/python$(PYTHON3_MAJORMINOR)/lib-dynload/*-x86_64-host-gnu.so
+
+ @rm -vrf $(PYTHON3_PKGDIR)/usr/lib/python$(PYTHON3_MAJORMINOR)/config-$(PYTHON3_MAJORMINOR)*
@$(call world/env, PYTHON3) ptxd_make_world_install_python_cleanup
@$(call touch)
@@ -104,33 +113,40 @@ ifdef PTXCONF_ARCH_ARM64
PYTHON3_PLATFORM := arm
endif
+define PYTHON3_CROSS_PYTHON_DATA
+#!/bin/sh
+PYTHONEXECUTABLE=$(PTXDIST_SYSROOT_TARGET)/usr/bin/python$(PYTHON3_MAJORMINOR)
+_PYTHON_HOST_PLATFORM=linux-$(PYTHON3_PLATFORM)
+_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata__linux_@arch@
+PYTHONPATH="$(PTXDIST_SYSROOT_HOST)/usr/lib/python$(PYTHON3_MAJORMINOR)/site-packages:$(PTXDIST_SYSROOT_HOST)/usr/lib/python3/site-packages"
+PYTHONHASHSEED=0
+export PYTHONEXECUTABLE _PYTHON_HOST_PLATFORM
+export _PYTHON_SYSCONFIGDATA_NAME PYTHONPATH
+export PYTHONHASHSEED
+exec $(HOSTPYTHON3) "$${@}"
+endef
+
$(STATEDIR)/python3.install.post:
@$(call targetinfo)
@$(call world/install.post, PYTHON3)
+ @$(file > $(PTXDIST_TEMPDIR)/cross-python,$(PYTHON3_CROSS_PYTHON_DATA))
@rm -f "$(CROSS_PYTHON3)"
- @echo '#!/bin/sh' >> "$(CROSS_PYTHON3)"
- @echo '_PYTHON_PROJECT_BASE=$(PYTHON3_DIR)' >> "$(CROSS_PYTHON3)"
- @echo '_PYTHON_HOST_PLATFORM=linux-$(PYTHON3_PLATFORM)' >> "$(CROSS_PYTHON3)"
@m=`sed -n 's/^MULTIARCH=[\t ]*\(.*\)/\1/p' $(PYTHON3_DIR)/Makefile` && \
- d=`cat $(PYTHON3_DIR)/pybuilddir.txt` && \
- cross_dir="$(PTXDIST_SYSROOT_CROSS)/lib/python$(PYTHON3_MAJORMINOR)" && \
- mkdir -p "$${cross_dir}" && \
- cp "$(PYTHON3_DIR)/$$d/_sysconfigdata_m_linux_$${m}.py" "$${cross_dir}" && \
- echo "_PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_m_linux_$$m" >> "$(CROSS_PYTHON3)" && \
- echo "PYTHONPATH=$${cross_dir}" >> "$(CROSS_PYTHON3)"
- @echo 'PYTHONHASHSEED=0' >> "$(CROSS_PYTHON3)"
- @echo 'export _PYTHON_PROJECT_BASE _PYTHON_HOST_PLATFORM' >> "$(CROSS_PYTHON3)"
- @echo 'export _PYTHON_SYSCONFIGDATA_NAME PYTHONPATH' >> "$(CROSS_PYTHON3)"
- @echo 'export PYTHONHASHSEED' >> "$(CROSS_PYTHON3)"
- @echo 'exec $(HOSTPYTHON3) "$${@}"' >> "$(CROSS_PYTHON3)"
+ sed -i "s;'\(/usr/include\);'$(PTXDIST_SYSROOT_TARGET)\1;g" \
+ $(PTXDIST_SYSROOT_TARGET)/usr/lib/python$(PYTHON3_MAJORMINOR)/_sysconfigdata__linux_$$m.py && \
+ sed "s;@arch@;$$m;" $(PTXDIST_TEMPDIR)/cross-python > "$(CROSS_PYTHON3)"
@chmod a+x "$(CROSS_PYTHON3)"
@sed -e 's;prefix_real=.*;prefix_real=$(SYSROOT)/usr;' \
"$(PTXDIST_SYSROOT_TARGET)/usr/bin/python$(PYTHON3_MAJORMINOR)-config" \
- > "$(PTXDIST_SYSROOT_CROSS)/bin/python$(PYTHON3_MAJORMINOR)-config"
- @chmod +x "$(PTXDIST_SYSROOT_CROSS)/bin/python$(PYTHON3_MAJORMINOR)-config"
+ > "$(PTXDIST_SYSROOT_CROSS)/usr/bin/python$(PYTHON3_MAJORMINOR)-config"
+ @chmod +x "$(PTXDIST_SYSROOT_CROSS)/usr/bin/python$(PYTHON3_MAJORMINOR)-config"
+
+# # make sure executing $PYTHONEXECUTABLE works
+ @ln -sf ../../../sysroot-cross/usr/bin/python$(PYTHON3_MAJORMINOR) \
+ $(PTXDIST_SYSROOT_TARGET)/usr/bin/python$(PYTHON3_MAJORMINOR)
-# # make sure grammer pickle is generated to avoid parallel building issues
+# # make sure grammar pickle is generated to avoid parallel building issues
@"$(CROSS_PYTHON3)" -c 'from setuptools.command import build_py'
@$(call touch)
@@ -150,6 +166,7 @@ PYTHON3_SKIP-$(call ptx/opt-dis, PTXCONF_PYTHON3_READLINE) += */readline*so
PYTHON3_SKIP-$(call ptx/opt-dis, PTXCONF_PYTHON3_SQLITE) += */sqlite3 */_sqlite3*.so
PYTHON3_SKIP-$(call ptx/opt-dis, PTXCONF_PYTHON3_SSL) += */ssl.pyc */_ssl*.so */hashlib.pyc */_hashlib*.so
PYTHON3_SKIP-$(call ptx/opt-dis, PTXCONF_PYTHON3_DISTUTILS) += */distutils
+PYTHON3_SKIP-$(call ptx/opt-dis, PTXCONF_PYTHON3_KEEP_ENSUREPIP)+= */ensurepip
$(STATEDIR)/python3.targetinstall:
@$(call targetinfo)
@@ -161,11 +178,11 @@ $(STATEDIR)/python3.targetinstall:
@$(call install_fixup, python3,DESCRIPTION,missing)
@$(call install_glob, python3, 0, 0, -, /usr/lib/python$(PYTHON3_MAJORMINOR), \
- *.so *.pyc *.whl, */test */tests */__pycache__ $(PYTHON3_SKIP-y))
+ *.so *.pyc *.whl, *-x86_64-host-gnu.so */test */tests */__pycache__ $(PYTHON3_SKIP-y))
@$(call install_copy, python3, 0, 0, 0755, -, /usr/bin/python$(PYTHON3_MAJORMINOR))
@$(call install_link, python3, python$(PYTHON3_MAJORMINOR), /usr/bin/python3)
- @$(call install_lib, python3, 0, 0, 0644, libpython$(PYTHON3_MAJORMINOR)m)
+ @$(call install_lib, python3, 0, 0, 0644, libpython$(PYTHON3_MAJORMINOR))
@$(call install_copy, python3, 0, 0, 0644, -, /usr/lib/python$(PYTHON3_MAJORMINOR)/venv/scripts/common/activate)
@@ -186,8 +203,8 @@ $(STATEDIR)/python3.clean:
@$(call clean_pkg, PYTHON3)
@rm -vf \
"$(CROSS_PYTHON3)" \
- "$(PTXDIST_SYSROOT_CROSS)/bin/python3" \
- "$(PTXDIST_SYSROOT_CROSS)/bin/python$(PYTHON3_MAJORMINOR)-config" \
- "$(PTXDIST_SYSROOT_CROSS)/lib/python$(PYTHON3_MAJORMINOR)/"_sysconfigdata_m_linux_*.py
+ "$(PTXDIST_SYSROOT_CROSS)/usr/bin/python3" \
+ "$(PTXDIST_SYSROOT_CROSS)/usr/bin/python$(PYTHON3_MAJORMINOR)-config" \
+ "$(PTXDIST_SYSROOT_CROSS)/usr/lib/python$(PYTHON3_MAJORMINOR)/"_sysconfigdata_m_linux_*.py
# vim: syntax=make
diff --git a/rules/pyzmq.in b/rules/pyzmq.in
deleted file mode 100644
index 322f7432b..000000000
--- a/rules/pyzmq.in
+++ /dev/null
@@ -1,11 +0,0 @@
-## SECTION=python
-
-config PYZMQ
- tristate
- prompt "pyzmq"
- select LIBZMQ
- select HOST_CYTHON
- select PYTHON
- help
- PyZMQ is the official Python binding for the ZeroMQ Messaging Library
- (http://www.zeromq.org).
diff --git a/rules/pyzmq.make b/rules/pyzmq.make
deleted file mode 100644
index c0f5c2b69..000000000
--- a/rules/pyzmq.make
+++ /dev/null
@@ -1,70 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2014 by Alexander Aring <aar@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_PYZMQ) += pyzmq
-
-#
-# Paths and names
-#
-PYZMQ_VERSION := 14.1.0
-PYZMQ_MD5 := 174901a85e4574629d4e586b5d37acc4
-PYZMQ := pyzmq-$(PYZMQ_VERSION)
-PYZMQ_SUFFIX := tar.gz
-PYZMQ_URL := https://pypi.python.org/packages/source/p/pyzmq/$(PYZMQ).$(PYZMQ_SUFFIX)
-PYZMQ_SOURCE := $(SRCDIR)/$(PYZMQ).$(PYZMQ_SUFFIX)
-PYZMQ_DIR := $(BUILDDIR)/$(PYZMQ)
-PYZMQ_LICENSE := BSD
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-PYZMQ_CONF_TOOL := python
-
-# ----------------------------------------------------------------------------
-# Compile
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/pyzmq.compile:
- @$(call targetinfo)
- @mkdir -p $(PYZMQ_DIR)/build
- echo '{ "have_sys_un_h": true, "no_libzmq_extension": true, "libzmq_extension": false, "skip_check_zmq": true }' > $(PYZMQ_DIR)/build/config.json
- @$(call world/compile, PYZMQ)
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/pyzmq.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, pyzmq)
- @$(call install_fixup, pyzmq,PRIORITY,optional)
- @$(call install_fixup, pyzmq,SECTION,base)
- @$(call install_fixup, pyzmq,AUTHOR,"Alexander Aring <aar@pengutronix.de>")
- @$(call install_fixup, pyzmq,DESCRIPTION,missing)
-
- @for file in $(shell cd $(PYZMQ_PKGDIR) && find . -name "*.pyc"); \
- do \
- $(call install_copy, pyzmq, 0, 0, 0644, -, /$$file); \
- done
-
- @for file in $(shell cd $(PYZMQ_PKGDIR) && find . -name "*.so"); \
- do \
- $(call install_copy, pyzmq, 0, 0, 0755, -, /$$file); \
- done
-
- @$(call install_finish, pyzmq)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/qemu.in b/rules/qemu.in
new file mode 100644
index 000000000..bc74e0537
--- /dev/null
+++ b/rules/qemu.in
@@ -0,0 +1,90 @@
+## SECTION=bytecode_engines
+
+menuconfig QEMU
+ tristate
+ prompt "qemu "
+ select HOST_MESON
+ select HOST_NINJA
+ select HOST_SYSTEM_PYTHON3
+ select GCCLIBS_CXX
+ select DTC
+ select GLIB
+ select LIBCAP_NG
+ select LIBSLIRP
+ select ZLIB
+ select SDL2 if QEMU_SDL
+ select GTK if QEMU_GTK
+ select LIBUSB if QEMU_SYS
+ select PIXMAN if QEMU_SYS
+ select PULSEAUDIO if QEMU_PULSEAUDIO
+ select ALSA_LIB if QEMU_ALSA
+ select PIPEWIRE if QEMU_PIPEWIRE
+ help
+ QEMU is a generic and open source machine emulator and
+ virtualizer.
+
+if QEMU
+
+config QEMU_TARGETS
+ string
+ prompt "QEMU targets"
+ default "i386 x86_64 arm aarch64"
+ help
+ The list of QEMU user and system targets you want to build.
+ Only use the prefixes.
+
+config QEMU_SDL
+ bool
+ prompt "Enable SDL graphical output support."
+ default y
+ help
+ Say y to build with SDL support.
+
+config QEMU_GTK
+ bool
+ prompt "Enable GTK graphical output support."
+ help
+ Say y to build with GTK support.
+
+config QEMU_PULSEAUDIO
+ bool
+ prompt "Enable pulseaudio output support."
+ help
+ Say y to build with pa support.
+
+config QEMU_ALSA
+ bool
+ prompt "Enable alsa audio output support."
+ help
+ Say y to build with alsa support.
+
+config QEMU_PIPEWIRE
+ bool
+ prompt "Enable pipewire audio output support."
+ help
+ Say y to build with pipewire support.
+
+config QEMU_TOOLS
+ bool
+ prompt "Enable tools"
+ default y
+ help
+ Say y here to include tools.
+
+config QEMU_EDK2_FIRMWARE
+ bool
+ prompt "Enable edk2 firmware"
+ default y
+ help
+ Say n here to drop the edk2 (UEFI) firmware files.
+ They can be substantial in size (> 100M).
+
+config QEMU_SYS
+ bool
+ prompt "system emulation"
+
+config QEMU_USR
+ bool
+ prompt "user-space emulation"
+
+endif
diff --git a/rules/qemu.make b/rules/qemu.make
new file mode 100644
index 000000000..19d07a599
--- /dev/null
+++ b/rules/qemu.make
@@ -0,0 +1,306 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Christian Melki <christian.melki@t2data.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_QEMU) += qemu
+
+#
+# Paths and names
+#
+QEMU_VERSION := 8.2.2
+QEMU_MD5 := e43091262671c1728b09522932b75b1d
+QEMU := qemu-$(QEMU_VERSION)
+QEMU_SUFFIX := tar.xz
+QEMU_URL := https://download.qemu.org/$(QEMU).$(QEMU_SUFFIX)
+QEMU_SOURCE := $(SRCDIR)/$(QEMU).$(QEMU_SUFFIX)
+QEMU_DIR := $(BUILDDIR)/$(QEMU)
+QEMU_LICENSE := GPL-2.0-only AND GPL-2.0-or-later AND MIT AND BSD-1-Clause AND BSD-2-Clause AND BSD-3-Clause
+QEMU_BUILD_OOT := YES
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+QEMU_MAKE_OPT := V=$(filter 1,$(PTXDIST_VERBOSE))
+
+QEMU_TARGETS := $(call remove_quotes,$(PTXCONF_QEMU_TARGETS))
+
+QEMU_SYS_TARGETS := $(foreach target, $(QEMU_TARGETS), $(patsubst %,%-softmmu,$(target)))
+QEMU_USR_TARGETS := $(foreach target, $(QEMU_TARGETS), $(patsubst %,%-linux-user,$(target)))
+
+QEMU_AUDIO_DRIVER-y :=
+QEMU_AUDIO_DRIVER-$(PTXCONF_QEMU_ALSA) += alsa
+QEMU_AUDIO_DRIVER-$(PTXCONF_QEMU_PULSEAUDIO) += pa
+QEMU_AUDIO_DRIVER-$(PTXCONF_QEMU_PIPEWIRE) += pipewire
+
+QEMU_CONF_TOOL := autoconf
+# Note: not really autoconf:
+# e.g. there is --enable-debug but not --disable-debug
+QEMU_CONF_OPT := \
+ --prefix=/usr \
+ --target-list=$(subst $(space),$(comma),$(strip \
+ $(call ptx/ifdef, PTXCONF_QEMU_SYS,$(QEMU_SYS_TARGETS),) \
+ $(call ptx/ifdef, PTXCONF_QEMU_USR,$(QEMU_USR_TARGETS),))) \
+ --cross-prefix=$(CROSS_COMPILE) \
+ --ninja=ninja \
+ --disable-download \
+ --disable-sanitizers \
+ --disable-tsan \
+ --disable-werror \
+ --enable-stack-protector \
+ --with-coroutine=auto \
+ --disable-plugins \
+ --disable-containers \
+ --audio-drv-list=$(subst $(space),$(comma),$(strip $(QEMU_AUDIO_DRIVER-y))) \
+ --block-drv-ro-whitelist= \
+ --block-drv-rw-whitelist= \
+ --enable-coroutine-pool \
+ --disable-cfi \
+ --disable-debug-mutex \
+ --enable-fdt=system \
+ --disable-fuzzing \
+ --disable-lto \
+ --disable-module-upgrades \
+ --disable-qom-cast-debug \
+ --disable-rng-none \
+ --disable-strip \
+ --disable-tcg-interpreter \
+ --enable-trace-backends=nop \
+ --tls-priority=NORMAL \
+ --$(call ptx/endis, PTXCONF_QEMU_ALSA)-alsa \
+ --enable-attr \
+ --disable-auth-pam \
+ --disable-blkio \
+ --disable-bochs \
+ --disable-bpf \
+ --disable-brlapi \
+ --disable-bzip2 \
+ --disable-canokey \
+ --enable-cap-ng \
+ --disable-capstone \
+ --disable-cloop \
+ --disable-cocoa \
+ --disable-coreaudio \
+ --disable-crypto-afalg \
+ --disable-curl \
+ --disable-curses \
+ --disable-dmg \
+ --disable-docs \
+ --disable-dsound \
+ --disable-fuse \
+ --disable-fuse-lseek \
+ --disable-gcrypt \
+ --disable-gettext \
+ --disable-gio \
+ --disable-glusterfs \
+ --disable-gnutls \
+ --$(call ptx/endis, PTXCONF_QEMU_GTK)-gtk \
+ --$(call ptx/endis, PTXCONF_QEMU_GTK)-gtk-clipboard \
+ --disable-guest-agent \
+ --disable-guest-agent-msi \
+ --disable-hvf \
+ --enable-iconv \
+ --disable-jack \
+ --disable-keyring \
+ --enable-kvm \
+ --disable-l2tpv3 \
+ --disable-libdaxctl \
+ --disable-libdw \
+ --disable-libiscsi \
+ --disable-libnfs \
+ --disable-libpmem \
+ --disable-libssh \
+ --disable-libudev \
+ --$(call ptx/endis, PTXCONF_QEMU_SYS)-libusb \
+ --disable-libvduse \
+ --disable-linux-aio \
+ --disable-linux-io-uring \
+ --disable-live-block-migration \
+ --disable-lzfse \
+ --disable-lzo \
+ --enable-malloc-trim \
+ --enable-membarrier \
+ --disable-mpath \
+ --enable-multiprocess \
+ --disable-netmap \
+ --disable-nettle \
+ --disable-numa \
+ --disable-nvmm \
+ --disable-opengl \
+ --disable-oss \
+ --$(call ptx/endis, PTXCONF_QEMU_PULSEAUDIO)-pa \
+ --$(call ptx/endis, PTXCONF_QEMU_PIPEWIRE)-pipewire \
+ --disable-parallels \
+ --disable-png \
+ --disable-pvrdma \
+ --disable-qcow1 \
+ --disable-qed \
+ --disable-qga-vss \
+ --disable-rbd \
+ --disable-rdma \
+ --disable-replication \
+ --$(call ptx/endis, PTXCONF_QEMU_SDL)-sdl \
+ --disable-sdl-image \
+ --disable-seccomp \
+ --disable-selinux \
+ --enable-slirp \
+ --disable-slirp-smbd \
+ --disable-smartcard \
+ --disable-snappy \
+ --disable-sndio \
+ --disable-sparse \
+ --disable-spice \
+ --disable-spice-protocol \
+ --enable-tcg \
+ --$(call ptx/endis, PTXCONF_QEMU_TOOLS)-tools \
+ --disable-tpm \
+ --disable-u2f \
+ --disable-usb-redir \
+ --disable-vde \
+ --disable-vdi \
+ --disable-vduse-blk-export \
+ --disable-vfio-user-server \
+ --disable-vhost-crypto \
+ --enable-vhost-kernel \
+ --enable-vhost-net \
+ --disable-vhost-user \
+ --disable-vhost-user-blk-server \
+ --disable-vhost-vdpa \
+ --disable-virglrenderer \
+ --$(call ptx/endis, PTXCONF_QEMU_SYS)-virtfs \
+ --disable-vmnet \
+ --disable-vnc \
+ --disable-vnc-jpeg \
+ --disable-vnc-sasl \
+ --disable-vte \
+ --disable-vvfat \
+ --disable-whpx \
+ --disable-xen \
+ --disable-xen-pci-passthrough \
+ --disable-xkbcommon \
+ --disable-zstd \
+ --$(call ptx/endis, PTXCONF_QEMU_SYS)-system \
+ --disable-user \
+ --$(call ptx/endis, PTXCONF_QEMU_USR)-linux-user \
+ --disable-bsd-user \
+ --enable-pie \
+ --disable-modules \
+ --disable-debug-tcg \
+ --disable-debug-info \
+ --disable-safe-stack
+
+ifdef PTXCONF_QEMU_PULSEAUDIO
+QEMU_LDFLAGS := \
+ -Wl,-rpath-link,$(SYSROOT)/usr/lib/pulseaudio
+endif
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/qemu.install:
+ @$(call targetinfo)
+ @$(call world/install, QEMU)
+ifdef PTXCONF_QEMU_SYS
+# necessary for qemu to find its ROM files
+ @ln -vsf usr/share/qemu $(QEMU_PKGDIR)/pc-bios
+endif
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/qemu.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, qemu)
+ @$(call install_fixup, qemu,PRIORITY,optional)
+ @$(call install_fixup, qemu,SECTION,base)
+ @$(call install_fixup, qemu,AUTHOR,"Christian Melki <christian.melki@t2data.com>")
+ @$(call install_fixup, qemu,DESCRIPTION,missing)
+
+ @$(call install_copy, qemu, 0, 0, 0755, /usr/share/qemu)
+ @$(call install_copy, qemu, 0, 0, 0755, /usr/share/qemu/firmware)
+
+ifdef PTXCONF_QEMU_SYS
+ @$(foreach target, $(QEMU_TARGETS), \
+ @$(call install_copy, qemu, 0, 0, 0755, -, /usr/bin/qemu-system-$(target))$(ptx/nl))
+
+ifdef PTXCONF_QEMU_TOOLS
+ @$(call install_copy, qemu, 0, 0, 0755, -, /usr/libexec/virtfs-proxy-helper)
+ @$(call install_copy, qemu, 0, 0, 0755, -, /usr/libexec/qemu-bridge-helper)
+endif
+
+ifneq ($(filter i386 x86_64,$(QEMU_TARGETS)),)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/bios-256k.bin)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/bios-microvm.bin)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/bios.bin)
+ifdef PTXCONF_QEMU_EDK2_FIRMWARE
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/edk2-i386-code.fd)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/edk2-i386-secure-code.fd)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/edk2-i386-vars.fd)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/edk2-x86_64-code.fd)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/edk2-x86_64-secure-code.fd)
+endif
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/linuxboot.bin)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/linuxboot_dma.bin)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/pxe-e1000.rom)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/pxe-eepro100.rom)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/pxe-virtio.rom)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/vgabios-ati.bin)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/vgabios-cirrus.bin)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/vgabios-stdvga.bin)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/vgabios-virtio.bin)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/vgabios-vmware.bin)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/vgabios.bin)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/kvmvapic.bin)
+ @$(call install_glob, qemu, 0, 0, -, /usr/share/qemu/firmware, *i386*,)
+ @$(call install_glob, qemu, 0, 0, -, /usr/share/qemu/firmware, *x86_64*,)
+endif
+
+ifneq ($(filter arm aarch64,$(QEMU_TARGETS)),)
+ifdef PTXCONF_QEMU_EDK2_FIRMWARE
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/edk2-aarch64-code.fd)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/edk2-arm-code.fd)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/edk2-arm-vars.fd)
+endif
+ @$(call install_glob, qemu, 0, 0, -, /usr/share/qemu/firmware, *arm*,)
+ @$(call install_glob, qemu, 0, 0, -, /usr/share/qemu/firmware, *aarch64*,)
+endif
+
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/efi-e1000.rom)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/efi-e1000e.rom)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/efi-eepro100.rom)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/efi-virtio.rom)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/pvh.bin)
+endif
+
+ifdef PTXCONF_QEMU_USR
+ @$(foreach target, $(QEMU_TARGETS), \
+ @$(call install_copy, qemu, 0, 0, 0755, -, /usr/bin/qemu-$(target))$(ptx/nl))
+endif
+
+ifdef PTXCONF_QEMU_TOOLS
+ @$(call install_copy, qemu, 0, 0, 0755, -, /usr/bin/qemu-edid)
+ @$(call install_copy, qemu, 0, 0, 0755, -, /usr/bin/qemu-img)
+ @$(call install_copy, qemu, 0, 0, 0755, -, /usr/bin/qemu-io)
+ @$(call install_copy, qemu, 0, 0, 0755, -, /usr/bin/qemu-pr-helper)
+ @$(call install_copy, qemu, 0, 0, 0755, -, /usr/bin/qemu-storage-daemon)
+endif
+
+ @$(call install_copy, qemu, 0, 0, 0755, /usr/share/qemu/keymaps)
+ @$(call install_copy, qemu, 0, 0, 0644, -, /usr/share/qemu/keymaps/en-us)
+
+ @$(call install_finish, qemu)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/qt4-demos.in b/rules/qt4-demos.in
deleted file mode 100644
index 69c27556b..000000000
--- a/rules/qt4-demos.in
+++ /dev/null
@@ -1,352 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=qt
-# WARNING: this file is generated with qt4_mk_demos.sh
-# do not edit
-
-menuconfig QT4_DEMOS
- tristate
- select QT4
- select QT4_PREPARE_EXAMPLES
- prompt "Qt Embedded Demos "
-
-if QT4_DEMOS
-
-config QT4_DEMOS_INSTALL_DIR
- string
- default "/usr/bin/qt4-demos"
- prompt "install dir"
-
-config QT4_DEMOS_AFFINE
- bool
- prompt "affine"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_BOOKS
- bool
- prompt "books"
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_BOXES
- bool
- prompt "boxes"
- depends on !QT4_OPENGL_NONE
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_BROWSER
- bool
- prompt "browser"
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_WEBKIT
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_CHIP
- bool
- prompt "chip"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_COMPOSITION
- bool
- prompt "composition"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-menuconfig QT4_DEMOS_DECLARATIVE
- bool
- prompt "declarative "
-
-if QT4_DEMOS_DECLARATIVE
-
-config QT4_DEMOS_DECLARATIVE_CALCULATOR
- bool
- prompt "calculator"
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_DECLARATIVE_FLICKR
- bool
- prompt "flickr"
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_DECLARATIVE_MINEHUNT
- bool
- prompt "minehunt"
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_DECLARATIVE_PHOTOVIEWER
- bool
- prompt "photoviewer"
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_DECLARATIVE_RSSNEWS
- bool
- prompt "rssnews"
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_DECLARATIVE_SAMEGAME
- bool
- prompt "samegame"
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_DECLARATIVE_SNAKE
- bool
- prompt "snake"
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_DECLARATIVE_TWITTER
- bool
- prompt "twitter"
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_DECLARATIVE_WEBBROWSER
- bool
- prompt "webbrowser"
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-endif
-
-config QT4_DEMOS_DEFORM
- bool
- prompt "deform"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-menuconfig QT4_DEMOS_EMBEDDED
- bool
- prompt "embedded "
-
-if QT4_DEMOS_EMBEDDED
-
-config QT4_DEMOS_EMBEDDED_ANOMALY
- bool
- prompt "anomaly"
- depends on QT4_BUILD_WEBKIT
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_EMBEDDED_DESKTOPSERVICES
- bool
- prompt "desktopservices"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_EMBEDDED_DIGIFLIP
- bool
- prompt "digiflip"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_EMBEDDED_EMBEDDEDSVGVIEWER
- bool
- prompt "embeddedsvgviewer"
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_EMBEDDED_FLICKABLE
- bool
- prompt "flickable"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_EMBEDDED_FLIGHTINFO
- bool
- prompt "flightinfo"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_EMBEDDED_FLUIDLAUNCHER
- bool
- prompt "fluidlauncher"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-if QT4_DEMOS_EMBEDDED_FLUIDLAUNCHER
-config QT4_DEMOS_EMBEDDED_FLUIDLAUNCHER_LOCALCONFIG
- bool
- prompt "install local config"
- help
- install config.xml, slides and screenshots from projectroot
-endif
-config QT4_DEMOS_EMBEDDED_LIGHTMAPS
- bool
- prompt "lightmaps"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_EMBEDDED_RAYCASTING
- bool
- prompt "raycasting"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_EMBEDDED_STYLEDEMO
- bool
- prompt "styledemo"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_EMBEDDED_WEATHERINFO
- bool
- prompt "weatherinfo"
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-endif
-
-config QT4_DEMOS_EMBEDDEDDIALOGS
- bool
- prompt "embeddeddialogs"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_GLHYPNOTIZER
- bool
- prompt "glhypnotizer"
- depends on QT4_BUILD_SVG
- depends on !QT4_OPENGL_NONE
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_GRADIENTS
- bool
- prompt "gradients"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_INTERVIEW
- bool
- prompt "interview"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_MAINWINDOW
- bool
- prompt "mainwindow"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_PATHSTROKE
- bool
- prompt "pathstroke"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_QMEDIAPLAYER
- bool
- prompt "qmediaplayer"
- depends on BROKEN
- depends on QT4_DBUS_LOAD || QT4_DBUS_LINK
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_QTDEMO
- bool
- prompt "qtdemo"
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_SPREADSHEET
- bool
- prompt "spreadsheet"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_SQLBROWSER
- bool
- prompt "sqlbrowser"
- depends on BROKEN
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_SUB_ATTAQ
- bool
- prompt "sub-attaq"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_TEXTEDIT
- bool
- prompt "textedit"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_DEMOS_UNDO
- bool
- prompt "undo"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-endif
-
diff --git a/rules/qt4-demos.make b/rules/qt4-demos.make
deleted file mode 100644
index 8ac4b6c66..000000000
--- a/rules/qt4-demos.make
+++ /dev/null
@@ -1,301 +0,0 @@
-# WARNING: this file is generated with qt4_mk_demos.sh
-# do not edit
-
-ifdef PTXCONF_QT4_DEMOS
-$(STATEDIR)/qt4.targetinstall: $(STATEDIR)/qt4.targetinstall3
-endif
-
-$(STATEDIR)/qt4.targetinstall3: $(STATEDIR)/qt4.install.post
- @$(call targetinfo)
- @$(call install_init, qt4-demos)
- @$(call install_fixup, qt4-demos,PRIORITY,optional)
- @$(call install_fixup, qt4-demos,SECTION,base)
- @$(call install_fixup, qt4-demos,AUTHOR,"Christian Hemp <c.hemp@phytec.de")
- @$(call install_fixup, qt4-demos,DESCRIPTION,missing)
-
-ifdef PTXCONF_QT4_DEMOS_AFFINE
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/affine/affine, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/affine/affine)
-endif
-
-ifdef PTXCONF_QT4_DEMOS_BOOKS
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/books/books, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/books/books)
-endif
-
-ifdef PTXCONF_QT4_DEMOS_BOXES
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/boxes/boxes, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/boxes/boxes)
-endif
-
-ifdef PTXCONF_QT4_DEMOS_BROWSER
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/browser/browser, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/browser/browser)
-endif
-
-ifdef PTXCONF_QT4_DEMOS_CHIP
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/chip/chip, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/chip/chip)
-endif
-
-ifdef PTXCONF_QT4_DEMOS_COMPOSITION
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/composition/composition, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/composition/composition)
-endif
-
-ifdef PTXCONF_QT4_DEMOS_DECLARATIVE_CALCULATOR
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/declarative/calculator/calculator, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/declarative/calculator/calculator)
-
-endif
-
-ifdef PTXCONF_QT4_DEMOS_DECLARATIVE_FLICKR
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/declarative/flickr/flickr, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/declarative/flickr/flickr)
-
-endif
-
-ifdef PTXCONF_QT4_DEMOS_DECLARATIVE_MINEHUNT
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/declarative/minehunt/minehunt, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/declarative/minehunt/minehunt)
-
-endif
-
-ifdef PTXCONF_QT4_DEMOS_DECLARATIVE_PHOTOVIEWER
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/declarative/photoviewer/photoviewer, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/declarative/photoviewer/photoviewer)
-
-endif
-
-ifdef PTXCONF_QT4_DEMOS_DECLARATIVE_RSSNEWS
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/declarative/rssnews/rssnews, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/declarative/rssnews/rssnews)
-
-endif
-
-ifdef PTXCONF_QT4_DEMOS_DECLARATIVE_SAMEGAME
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/declarative/samegame/samegame, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/declarative/samegame/samegame)
-
-endif
-
-ifdef PTXCONF_QT4_DEMOS_DECLARATIVE_SNAKE
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/declarative/snake/snake, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/declarative/snake/snake)
-
-endif
-
-ifdef PTXCONF_QT4_DEMOS_DECLARATIVE_TWITTER
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/declarative/twitter/twitter, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/declarative/twitter/twitter)
-
-endif
-
-ifdef PTXCONF_QT4_DEMOS_DECLARATIVE_WEBBROWSER
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/declarative/webbrowser/webbrowser, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/declarative/webbrowser/webbrowser)
-
-endif
-
-ifdef PTXCONF_QT4_DEMOS_DEFORM
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/deform/deform, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/deform/deform)
-endif
-
-ifdef PTXCONF_QT4_DEMOS_EMBEDDED_ANOMALY
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/embedded/anomaly/anomaly, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/embedded/anomaly/anomaly)
-
-endif
-
-ifdef PTXCONF_QT4_DEMOS_EMBEDDED_DESKTOPSERVICES
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/embedded/desktopservices/desktopservices, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/embedded/desktopservices/desktopservices)
-
-endif
-
-ifdef PTXCONF_QT4_DEMOS_EMBEDDED_DIGIFLIP
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/embedded/digiflip/digiflip, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/embedded/digiflip/digiflip)
-
-endif
-
-ifdef PTXCONF_QT4_DEMOS_EMBEDDED_EMBEDDEDSVGVIEWER
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/embedded/embeddedsvgviewer/embeddedsvgviewer, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/embedded/embeddedsvgviewer/embeddedsvgviewer)
-
-endif
-
-ifdef PTXCONF_QT4_DEMOS_EMBEDDED_FLICKABLE
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/embedded/flickable/flickable, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/embedded/flickable/flickable)
-
-endif
-
-ifdef PTXCONF_QT4_DEMOS_EMBEDDED_FLIGHTINFO
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/embedded/flightinfo/flightinfo, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/embedded/flightinfo/flightinfo)
-
-endif
-
-ifdef PTXCONF_QT4_DEMOS_EMBEDDED_FLUIDLAUNCHER
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/embedded/fluidlauncher/fluidlauncher, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/embedded/fluidlauncher/fluidlauncher)
-
-ifdef PTXCONF_QT4_DEMOS_EMBEDDED_FLUIDLAUNCHER_LOCALCONFIG
- @$(call install_tree, qt4-demos, 0, 0, \
- ${PTXDIST_WORKSPACE}/projectroot$(PTXCONF_QT4_DEMOS_INSTALL_DIR)/embedded/fluidlauncher/screenshots, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/embedded/fluidlauncher/screenshots)
- @$(call install_tree, qt4-demos, 0, 0, \
- ${PTXDIST_WORKSPACE}/projectroot$(PTXCONF_QT4_DEMOS_INSTALL_DIR)/embedded/fluidlauncher/slides, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/embedded/fluidlauncher/slides)
- @$(call install_alternative, qt4-demos, 0, 0, 0644, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/embedded/fluidlauncher/config.xml)
-else
- @$(call install_tree, qt4-demos, 0, 0, \
- $(QT4_DIR)/demos/embedded/fluidlauncher/screenshots, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/embedded/fluidlauncher/screenshots)
- @$(call install_tree, qt4-demos, 0, 0, \
- $(QT4_DIR)/demos/embedded/fluidlauncher/slides, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/embedded/fluidlauncher/slides)
- @$(call install_copy, qt4-demos, 0, 0, 0644, \
- $(QT4_DIR)/demos/embedded/fluidlauncher/config.xml, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/embedded/fluidlauncher/config.xml)
-endif
-
-endif
-
-ifdef PTXCONF_QT4_DEMOS_EMBEDDED_LIGHTMAPS
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/embedded/lightmaps/lightmaps, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/embedded/lightmaps/lightmaps)
-
-endif
-
-ifdef PTXCONF_QT4_DEMOS_EMBEDDED_RAYCASTING
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/embedded/raycasting/raycasting, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/embedded/raycasting/raycasting)
-
-endif
-
-ifdef PTXCONF_QT4_DEMOS_EMBEDDED_STYLEDEMO
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/embedded/styledemo/styledemo, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/embedded/styledemo/styledemo)
-
-endif
-
-ifdef PTXCONF_QT4_DEMOS_EMBEDDED_WEATHERINFO
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/embedded/weatherinfo/weatherinfo, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/embedded/weatherinfo/weatherinfo)
-
-endif
-
-ifdef PTXCONF_QT4_DEMOS_EMBEDDEDDIALOGS
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/embeddeddialogs/embeddeddialogs, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/embeddeddialogs/embeddeddialogs)
-endif
-
-ifdef PTXCONF_QT4_DEMOS_GLHYPNOTIZER
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/glhypnotizer/glhypnotizer, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/glhypnotizer/glhypnotizer)
-endif
-
-ifdef PTXCONF_QT4_DEMOS_GRADIENTS
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/gradients/gradients, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/gradients/gradients)
-endif
-
-ifdef PTXCONF_QT4_DEMOS_INTERVIEW
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/interview/interview, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/interview/interview)
-endif
-
-ifdef PTXCONF_QT4_DEMOS_MAINWINDOW
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/mainwindow/mainwindow, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/mainwindow/mainwindow)
-endif
-
-ifdef PTXCONF_QT4_DEMOS_PATHSTROKE
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/pathstroke/pathstroke, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/pathstroke/pathstroke)
-endif
-
-ifdef PTXCONF_QT4_DEMOS_QMEDIAPLAYER
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/qmediaplayer/qmediaplayer, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/qmediaplayer/qmediaplayer)
-endif
-
-ifdef PTXCONF_QT4_DEMOS_QTDEMO
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/qtdemo/../../bin/qtdemo, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/qtdemo/../../bin/qtdemo)
-endif
-
-ifdef PTXCONF_QT4_DEMOS_SPREADSHEET
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/spreadsheet/spreadsheet, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/spreadsheet/spreadsheet)
-endif
-
-ifdef PTXCONF_QT4_DEMOS_SQLBROWSER
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/sqlbrowser/sqlbrowser, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/sqlbrowser/sqlbrowser)
-endif
-
-ifdef PTXCONF_QT4_DEMOS_SUB_ATTAQ
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/sub-attaq/sub-attaq, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/sub-attaq/sub-attaq)
-endif
-
-ifdef PTXCONF_QT4_DEMOS_TEXTEDIT
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/textedit/textedit, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/textedit/textedit)
-endif
-
-ifdef PTXCONF_QT4_DEMOS_UNDO
- @$(call install_copy, qt4-demos, 0, 0, 0755, \
- $(QT4_DIR)-build/demos/undo/undo, \
- $(PTXCONF_QT4_DEMOS_INSTALL_DIR)/undo/undo)
-endif
-
-
- @$(call install_finish, qt4-demos)
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/qt4-examples.in b/rules/qt4-examples.in
deleted file mode 100644
index c7899ebec..000000000
--- a/rules/qt4-examples.in
+++ /dev/null
@@ -1,3501 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=qt
-# WARNING: this file is generated with qt4_mk_examples.sh
-# do not edit
-
-menuconfig QT4_EXAMPLES
- tristate
- select QT4
- select QT4_PREPARE_EXAMPLES
- prompt "Qt Embedded Examples "
-
-if QT4_EXAMPLES
-
-config QT4_EXAMPLES_INSTALL_DIR
- string
- default "/usr/bin/qt4-examples"
- prompt "install dir"
-
-
-menuconfig QT4_EXAMPLES_ANIMATION
- bool
- prompt "animation "
-
-if QT4_EXAMPLES_ANIMATION
-
-config QT4_EXAMPLES_ANIMATION_ANIMATEDTILES
- bool
- prompt "animatedtiles"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ANIMATION_APPCHOOSER
- bool
- prompt "appchooser"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ANIMATION_EASING
- bool
- prompt "easing"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ANIMATION_MOVEBLOCKS
- bool
- prompt "moveblocks"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ANIMATION_STATES
- bool
- prompt "states"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ANIMATION_STICKMAN
- bool
- prompt "stickman"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DBUS
- bool
- prompt "dbus "
-
-if QT4_EXAMPLES_DBUS
-
-config QT4_EXAMPLES_DBUS_COMPLEXPING
- bool
- prompt "complexping"
- # strange broken .pro files
- depends on BROKEN
- depends on QT4_DBUS_LOAD || QT4_DBUS_LINK
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DBUS_COMPLEXPONG
- bool
- prompt "complexpong"
- # strange broken .pro files
- depends on BROKEN
- depends on QT4_DBUS_LOAD || QT4_DBUS_LINK
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DBUS_DBUS_CHAT
- bool
- prompt "dbus-chat"
- depends on QT4_DBUS_LOAD || QT4_DBUS_LINK
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DBUS_LISTNAMES
- bool
- prompt "listnames"
- depends on QT4_DBUS_LOAD || QT4_DBUS_LINK
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DBUS_PING
- bool
- prompt "ping"
- # strange broken .pro files
- depends on BROKEN
- depends on QT4_DBUS_LOAD || QT4_DBUS_LINK
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DBUS_PONG
- bool
- prompt "pong"
- # strange broken .pro files
- depends on BROKEN
- depends on QT4_DBUS_LOAD || QT4_DBUS_LINK
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DBUS_REMOTECONTROLLEDCAR
- bool
- prompt "dbus/remotecontrolledcar "
-
-if QT4_EXAMPLES_DBUS_REMOTECONTROLLEDCAR
-
-config QT4_EXAMPLES_DBUS_REMOTECONTROLLEDCAR_CAR
- bool
- prompt "car"
- depends on QT4_DBUS_LOAD || QT4_DBUS_LINK
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DBUS_REMOTECONTROLLEDCAR_CONTROLLER
- bool
- prompt "controller"
- depends on QT4_DBUS_LOAD || QT4_DBUS_LINK
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_ANIMATION_BASICS
- bool
- prompt "declarative/animation/basics"
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_ANIMATION_BASICS
-
-config QT4_EXAMPLES_DECLARATIVE_ANIMATION_BASICS_COLOR_ANIMATION
- bool
- prompt "color-animation"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_ANIMATION_BASICS_PROPERTY_ANIMATION
- bool
- prompt "property-animation"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_ANIMATION_BEHAVIORS
- bool
- prompt "declarative/animation/behaviors"
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_ANIMATION_BEHAVIORS
-
-config QT4_EXAMPLES_DECLARATIVE_ANIMATION_BEHAVIORS_BEHAVIOR_EXAMPLE
- bool
- prompt "behavior-example"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_ANIMATION_BEHAVIORS_WIGGLYTEXT
- bool
- prompt "wigglytext"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_ANIMATION
- bool
- prompt "declarative/animation "
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_ANIMATION
-
-config QT4_EXAMPLES_DECLARATIVE_ANIMATION_EASING
- bool
- prompt "easing"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_ANIMATION_STATES
- bool
- prompt "states"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS
- bool
- prompt "declarative/cppextensions "
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS
-
-config QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_NETWORKACCESSMANAGERFACTORY
- bool
- prompt "networkaccessmanagerfactory"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_QGRAPHICSLAYOUTS
- bool
- prompt "declarative/cppextensions/qgraphicslayouts"
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_QGRAPHICSLAYOUTS
-
-config QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_QGRAPHICSLAYOUTS_LAYOUTITEM
- bool
- prompt "layoutitem"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_QGRAPHICSLAYOUTS_QGRAPHICSGRIDLAYOUT
- bool
- prompt "qgraphicsgridlayout"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_QGRAPHICSLAYOUTS_QGRAPHICSLINEARLAYOUT
- bool
- prompt "qgraphicslinearlayout"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES
- bool
- prompt "declarative/cppextensions/referenceexamples"
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES
-
-config QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_ADDING
- bool
- prompt "adding"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_ATTACHED
- bool
- prompt "attached"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_BINDING
- bool
- prompt "binding"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_COERCION
- bool
- prompt "coercion"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_DEFAULT
- bool
- prompt "default"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_EXTENDED
- bool
- prompt "extended"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_GROUPED
- bool
- prompt "grouped"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_METHODS
- bool
- prompt "methods"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_PROPERTIES
- bool
- prompt "properties"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_SIGNAL
- bool
- prompt "signal"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_VALUESOURCE
- bool
- prompt "valuesource"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE
- bool
- prompt "declarative "
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE
-
-config QT4_EXAMPLES_DECLARATIVE_I18N
- bool
- prompt "i18n"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_IMAGEELEMENTS
- bool
- prompt "declarative/imageelements "
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_IMAGEELEMENTS
-
-config QT4_EXAMPLES_DECLARATIVE_IMAGEELEMENTS_BORDERIMAGE
- bool
- prompt "borderimage"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_IMAGEELEMENTS_IMAGE
- bool
- prompt "image"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_IMAGEELEMENTS_SHADOWS
- bool
- prompt "shadows"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_KEYINTERACTION
- bool
- prompt "declarative/keyinteraction "
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_KEYINTERACTION
-
-config QT4_EXAMPLES_DECLARATIVE_KEYINTERACTION_FOCUS
- bool
- prompt "focus"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_MODELVIEWS
- bool
- prompt "declarative/modelviews "
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_MODELVIEWS
-
-config QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_ABSTRACTITEMMODEL
- bool
- prompt "abstractitemmodel"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_GRIDVIEW
- bool
- prompt "gridview"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_LISTVIEW
- bool
- prompt "declarative/modelviews/listview"
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_LISTVIEW
-
-config QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_LISTVIEW_DYNAMICLIST
- bool
- prompt "dynamiclist"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_LISTVIEW_EXPANDINGDELEGATES
- bool
- prompt "expandingdelegates"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_LISTVIEW_HIGHLIGHT
- bool
- prompt "highlight"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_LISTVIEW_HIGHLIGHTRANGES
- bool
- prompt "highlightranges"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_LISTVIEW_SECTIONS
- bool
- prompt "sections"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_MODELVIEWS
- bool
- prompt "declarative/modelviews "
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_MODELVIEWS
-
-config QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_OBJECTLISTMODEL
- bool
- prompt "objectlistmodel"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_PACKAGE
- bool
- prompt "package"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_PARALLAX
- bool
- prompt "parallax"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_PATHVIEW
- bool
- prompt "pathview"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_STRINGLISTMODEL
- bool
- prompt "stringlistmodel"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_VISUALITEMMODEL
- bool
- prompt "visualitemmodel"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_WEBVIEW
- bool
- prompt "declarative/modelviews/webview"
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_WEBVIEW
-
-config QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_WEBVIEW_ALERTS
- bool
- prompt "alerts"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_WEBVIEW_AUTOSIZE
- bool
- prompt "autosize"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_WEBVIEW_GOOGLEMAPS
- bool
- prompt "googlemaps"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_WEBVIEW_INLINEHTML
- bool
- prompt "inlinehtml"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_WEBVIEW_NEWWINDOWS
- bool
- prompt "newwindows"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE
- bool
- prompt "declarative "
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE
-
-config QT4_EXAMPLES_DECLARATIVE_POSITIONERS
- bool
- prompt "positioners"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_RIGHTTOLEFT
- bool
- prompt "declarative/righttoleft "
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_RIGHTTOLEFT
-
-config QT4_EXAMPLES_DECLARATIVE_RIGHTTOLEFT_LAYOUTDIRECTION
- bool
- prompt "layoutdirection"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_RIGHTTOLEFT_LAYOUTMIRRORING
- bool
- prompt "layoutmirroring"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_RIGHTTOLEFT_TEXTALIGNMENT
- bool
- prompt "textalignment"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE
- bool
- prompt "declarative "
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE
-
-config QT4_EXAMPLES_DECLARATIVE_SHADEREFFECTS
- bool
- prompt "shadereffects"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on !QT4_OPENGL_NONE
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_SQLLOCALSTORAGE
- bool
- prompt "sqllocalstorage"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_TEXT_FONTS
- bool
- prompt "declarative/text/fonts "
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_TEXT_FONTS
-
-config QT4_EXAMPLES_DECLARATIVE_TEXT_FONTS_AVAILABLEFONTS
- bool
- prompt "availableFonts"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_TEXT_FONTS_BANNER
- bool
- prompt "banner"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_TEXT_FONTS_FONTS
- bool
- prompt "fonts"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_TEXT_FONTS_HELLO
- bool
- prompt "hello"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_TEXT
- bool
- prompt "declarative/text "
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_TEXT
-
-config QT4_EXAMPLES_DECLARATIVE_TEXT_TEXTSELECTION
- bool
- prompt "textselection"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_THREADING
- bool
- prompt "declarative/threading "
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_THREADING
-
-config QT4_EXAMPLES_DECLARATIVE_THREADING_THREADEDLISTMODEL
- bool
- prompt "threadedlistmodel"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_THREADING_WORKERSCRIPT
- bool
- prompt "workerscript"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_TOUCHINTERACTION_GESTURES
- bool
- prompt "declarative/touchinteraction/gestures"
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_TOUCHINTERACTION_GESTURES
-
-config QT4_EXAMPLES_DECLARATIVE_TOUCHINTERACTION_GESTURES_EXPERIMENTALGESTURES
- bool
- prompt "experimentalgestures"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_TOUCHINTERACTION_MOUSEAREA
- bool
- prompt "declarative/touchinteraction/mousearea"
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_TOUCHINTERACTION_MOUSEAREA
-
-config QT4_EXAMPLES_DECLARATIVE_TOUCHINTERACTION_MOUSEAREA_MOUSEAREAEXAMPLE
- bool
- prompt "mouseareaexample"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_TOUCHINTERACTION
- bool
- prompt "declarative/touchinteraction"
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_TOUCHINTERACTION
-
-config QT4_EXAMPLES_DECLARATIVE_TOUCHINTERACTION_PINCHAREA
- bool
- prompt "pincharea"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_TOYS
- bool
- prompt "declarative/toys "
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_TOYS
-
-config QT4_EXAMPLES_DECLARATIVE_TOYS_CLOCKS
- bool
- prompt "clocks"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_TOYS_CORKBOARDS
- bool
- prompt "corkboards"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_TOYS_DYNAMICSCENE
- bool
- prompt "dynamicscene"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_TOYS_TIC_TAC_TOE
- bool
- prompt "tic-tac-toe"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_TOYS_TVTENNIS
- bool
- prompt "tvtennis"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_TUTORIALS_EXTENDING
- bool
- prompt "declarative/tutorials/extending"
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_TUTORIALS_EXTENDING
-
-config QT4_EXAMPLES_DECLARATIVE_TUTORIALS_EXTENDING_CHAPTER1_BASICS
- bool
- prompt "chapter1-basics"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_TUTORIALS_EXTENDING_CHAPTER2_METHODS
- bool
- prompt "chapter2-methods"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_TUTORIALS_EXTENDING_CHAPTER3_BINDINGS
- bool
- prompt "chapter3-bindings"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_TUTORIALS_EXTENDING_CHAPTER4_CUSTOMPROPERTYTYPES
- bool
- prompt "chapter4-customPropertyTypes"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_TUTORIALS_EXTENDING_CHAPTER5_LISTPROPERTIES
- bool
- prompt "chapter5-listproperties"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_UI_COMPONENTS
- bool
- prompt "declarative/ui-components "
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_UI_COMPONENTS
-
-config QT4_EXAMPLES_DECLARATIVE_UI_COMPONENTS_DIALCONTROL
- bool
- prompt "dialcontrol"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_UI_COMPONENTS_FLIPABLE
- bool
- prompt "flipable"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_UI_COMPONENTS_MAIN
- bool
- prompt "main"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_UI_COMPONENTS_PROGRESSBAR
- bool
- prompt "progressbar"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_UI_COMPONENTS_SCROLLBAR
- bool
- prompt "scrollbar"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_UI_COMPONENTS_SEARCHBOX
- bool
- prompt "searchbox"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_UI_COMPONENTS_SLIDESWITCH
- bool
- prompt "slideswitch"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_UI_COMPONENTS_SPINNER
- bool
- prompt "spinner"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DECLARATIVE_UI_COMPONENTS_TABWIDGET
- bool
- prompt "tabwidget"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DECLARATIVE_XML
- bool
- prompt "declarative/xml "
- # installing everything must be fixed first
- depends on BROKEN
-
-if QT4_EXAMPLES_DECLARATIVE_XML
-
-config QT4_EXAMPLES_DECLARATIVE_XML_XMLHTTPREQUESTEXAMPLE
- bool
- prompt "xmlhttprequestexample"
- # installing everything must be fixed first
- depends on BROKEN
- depends on QT4_BUILD_DECLARATIVE
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DESIGNER
- bool
- prompt "designer "
-
-if QT4_EXAMPLES_DESIGNER
-
-config QT4_EXAMPLES_DESIGNER_CALCULATORBUILDER
- bool
- prompt "calculatorbuilder"
- depends on QT4_BUILD_DESIGNERLIBS
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DESIGNER_CALCULATORFORM
- bool
- prompt "calculatorform"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DESIGNER_WORLDTIMECLOCKBUILDER
- bool
- prompt "worldtimeclockbuilder"
- depends on QT4_BUILD_DESIGNERLIBS
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DESKTOP
- bool
- prompt "desktop "
-
-if QT4_EXAMPLES_DESKTOP
-
-config QT4_EXAMPLES_DESKTOP_SCREENSHOT
- bool
- prompt "screenshot"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DESKTOP_SYSTRAY
- bool
- prompt "systray"
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DIALOGS
- bool
- prompt "dialogs "
-
-if QT4_EXAMPLES_DIALOGS
-
-config QT4_EXAMPLES_DIALOGS_CLASSWIZARD
- bool
- prompt "classwizard"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DIALOGS_CONFIGDIALOG
- bool
- prompt "configdialog"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DIALOGS_EXTENSION
- bool
- prompt "extension"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DIALOGS_FINDFILES
- bool
- prompt "findfiles"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DIALOGS_LICENSEWIZARD
- bool
- prompt "licensewizard"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DIALOGS_STANDARDDIALOGS
- bool
- prompt "standarddialogs"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DIALOGS_TABDIALOG
- bool
- prompt "tabdialog"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DIALOGS_TRIVIALWIZARD
- bool
- prompt "trivialwizard"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_DRAGANDDROP
- bool
- prompt "draganddrop "
-
-if QT4_EXAMPLES_DRAGANDDROP
-
-config QT4_EXAMPLES_DRAGANDDROP_DELAYEDENCODING
- bool
- prompt "delayedencoding"
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DRAGANDDROP_DRAGGABLEICONS
- bool
- prompt "draggableicons"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DRAGANDDROP_DRAGGABLETEXT
- bool
- prompt "draggabletext"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DRAGANDDROP_DROPSITE
- bool
- prompt "dropsite"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DRAGANDDROP_FRIDGEMAGNETS
- bool
- prompt "fridgemagnets"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_DRAGANDDROP_PUZZLE
- bool
- prompt "puzzle"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_EFFECTS
- bool
- prompt "effects "
-
-if QT4_EXAMPLES_EFFECTS
-
-config QT4_EXAMPLES_EFFECTS_BLURPICKER
- bool
- prompt "blurpicker"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_EFFECTS_FADEMESSAGE
- bool
- prompt "fademessage"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_EFFECTS_LIGHTING
- bool
- prompt "lighting"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_GESTURES
- bool
- prompt "gestures "
-
-if QT4_EXAMPLES_GESTURES
-
-config QT4_EXAMPLES_GESTURES_IMAGEGESTURES
- bool
- prompt "imagegestures"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_GRAPHICSVIEW
- bool
- prompt "graphicsview "
-
-if QT4_EXAMPLES_GRAPHICSVIEW
-
-config QT4_EXAMPLES_GRAPHICSVIEW_ANCHORLAYOUT
- bool
- prompt "anchorlayout"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_GRAPHICSVIEW_BASICGRAPHICSLAYOUTS
- bool
- prompt "basicgraphicslayouts"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_GRAPHICSVIEW_COLLIDINGMICE
- bool
- prompt "collidingmice"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_GRAPHICSVIEW_DIAGRAMSCENE
- bool
- prompt "diagramscene"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_GRAPHICSVIEW_DRAGDROPROBOT
- bool
- prompt "dragdroprobot"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_GRAPHICSVIEW_ELASTICNODES
- bool
- prompt "elasticnodes"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_GRAPHICSVIEW_FLOWLAYOUT
- bool
- prompt "flowlayout"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_GRAPHICSVIEW_PADNAVIGATOR
- bool
- prompt "padnavigator"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_GRAPHICSVIEW_WEATHERANCHORLAYOUT
- bool
- prompt "weatheranchorlayout"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_HELP
- bool
- prompt "help "
-
-if QT4_EXAMPLES_HELP
-
-config QT4_EXAMPLES_HELP_CONTEXTSENSITIVEHELP
- bool
- prompt "contextsensitivehelp"
- depends on QT4_BUILD_TOOLS
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_HELP_REMOTECONTROL
- bool
- prompt "remotecontrol"
- depends on QT4_BUILD_TOOLS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_HELP_SIMPLETEXTVIEWER
- bool
- prompt "simpletextviewer"
- depends on QT4_BUILD_TOOLS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_IPC
- bool
- prompt "ipc "
-
-if QT4_EXAMPLES_IPC
-
-config QT4_EXAMPLES_IPC_LOCALFORTUNECLIENT
- bool
- prompt "localfortuneclient"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_IPC_LOCALFORTUNESERVER
- bool
- prompt "localfortuneserver"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_IPC_SHAREDMEMORY
- bool
- prompt "sharedmemory"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_ITEMVIEWS
- bool
- prompt "itemviews "
-
-if QT4_EXAMPLES_ITEMVIEWS
-
-config QT4_EXAMPLES_ITEMVIEWS_ADDRESSBOOK
- bool
- prompt "addressbook"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ITEMVIEWS_BASICSORTFILTERMODEL
- bool
- prompt "basicsortfiltermodel"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ITEMVIEWS_CHART
- bool
- prompt "chart"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ITEMVIEWS_COLOREDITORFACTORY
- bool
- prompt "coloreditorfactory"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ITEMVIEWS_COMBOWIDGETMAPPER
- bool
- prompt "combowidgetmapper"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ITEMVIEWS_CUSTOMSORTFILTERMODEL
- bool
- prompt "customsortfiltermodel"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ITEMVIEWS_DIRVIEW
- bool
- prompt "dirview"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ITEMVIEWS_EDITABLETREEMODEL
- bool
- prompt "editabletreemodel"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ITEMVIEWS_FETCHMORE
- bool
- prompt "fetchmore"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ITEMVIEWS_FROZENCOLUMN
- bool
- prompt "frozencolumn"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ITEMVIEWS_PIXELATOR
- bool
- prompt "pixelator"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ITEMVIEWS_PUZZLE
- bool
- prompt "puzzle"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ITEMVIEWS_SIMPLEDOMMODEL
- bool
- prompt "simpledommodel"
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ITEMVIEWS_SIMPLETREEMODEL
- bool
- prompt "simpletreemodel"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ITEMVIEWS_SIMPLEWIDGETMAPPER
- bool
- prompt "simplewidgetmapper"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ITEMVIEWS_SPINBOXDELEGATE
- bool
- prompt "spinboxdelegate"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_ITEMVIEWS_STARDELEGATE
- bool
- prompt "stardelegate"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_LAYOUTS
- bool
- prompt "layouts "
-
-if QT4_EXAMPLES_LAYOUTS
-
-config QT4_EXAMPLES_LAYOUTS_BASICLAYOUTS
- bool
- prompt "basiclayouts"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_LAYOUTS_BORDERLAYOUT
- bool
- prompt "borderlayout"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_LAYOUTS_DYNAMICLAYOUTS
- bool
- prompt "dynamiclayouts"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_LAYOUTS_FLOWLAYOUT
- bool
- prompt "flowlayout"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_LINGUIST
- bool
- prompt "linguist "
-
-if QT4_EXAMPLES_LINGUIST
-
-config QT4_EXAMPLES_LINGUIST_ARROWPAD
- bool
- prompt "arrowpad"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_LINGUIST_HELLOTR
- bool
- prompt "hellotr"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_LINGUIST_TROLLPRINT
- bool
- prompt "trollprint"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_MAINWINDOWS
- bool
- prompt "mainwindows "
-
-if QT4_EXAMPLES_MAINWINDOWS
-
-config QT4_EXAMPLES_MAINWINDOWS_APPLICATION
- bool
- prompt "application"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_MAINWINDOWS_DOCKWIDGETS
- bool
- prompt "dockwidgets"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_MAINWINDOWS_MDI
- bool
- prompt "mdi"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_MAINWINDOWS_MENUS
- bool
- prompt "menus"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_MAINWINDOWS_RECENTFILES
- bool
- prompt "recentfiles"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_MAINWINDOWS_SDI
- bool
- prompt "sdi"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_MULTIMEDIA
- bool
- prompt "multimedia "
-
-if QT4_EXAMPLES_MULTIMEDIA
-
-config QT4_EXAMPLES_MULTIMEDIA_AUDIODEVICES
- bool
- prompt "audiodevices"
- depends on QT4_BUILD_MULTIMEDIA
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_MULTIMEDIA_AUDIOINPUT
- bool
- prompt "audioinput"
- depends on QT4_BUILD_MULTIMEDIA
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_MULTIMEDIA_AUDIOOUTPUT
- bool
- prompt "audiooutput"
- depends on QT4_BUILD_MULTIMEDIA
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_MULTIMEDIA_VIDEOGRAPHICSITEM
- bool
- prompt "videographicsitem"
- depends on QT4_BUILD_MULTIMEDIA
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_MULTIMEDIA_VIDEOWIDGET
- bool
- prompt "videowidget"
- depends on QT4_BUILD_MULTIMEDIA
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_NETWORK
- bool
- prompt "network "
-
-if QT4_EXAMPLES_NETWORK
-
-config QT4_EXAMPLES_NETWORK_BEARERCLOUD
- bool
- prompt "bearercloud"
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_NETWORK_BEARERMONITOR
- bool
- prompt "bearermonitor"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_NETWORK_BLOCKINGFORTUNECLIENT
- bool
- prompt "blockingfortuneclient"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_NETWORK_BROADCASTRECEIVER
- bool
- prompt "broadcastreceiver"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_NETWORK_BROADCASTSENDER
- bool
- prompt "broadcastsender"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_NETWORK_DOWNLOAD
- bool
- prompt "download"
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_NETWORK_DOWNLOADMANAGER
- bool
- prompt "downloadmanager"
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_NETWORK_FORTUNECLIENT
- bool
- prompt "fortuneclient"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_NETWORK_FORTUNESERVER
- bool
- prompt "fortuneserver"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_NETWORK_GOOGLESUGGEST
- bool
- prompt "googlesuggest"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_NETWORK_HTTP
- bool
- prompt "http"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_NETWORK_LOOPBACK
- bool
- prompt "loopback"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_NETWORK_MULTICASTRECEIVER
- bool
- prompt "multicastreceiver"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_NETWORK_MULTICASTSENDER
- bool
- prompt "multicastsender"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_NETWORK_NETWORK_CHAT
- bool
- prompt "network-chat"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_NETWORK_QFTP
- bool
- prompt "qftp"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_NETWORK_SECURESOCKETCLIENT
- bool
- prompt "securesocketclient"
- depends on QT4_OPENSSL
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_NETWORK_THREADEDFORTUNESERVER
- bool
- prompt "threadedfortuneserver"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_NETWORK_TORRENT
- bool
- prompt "torrent"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_OPENGL
- bool
- prompt "opengl "
-
-if QT4_EXAMPLES_OPENGL
-
-config QT4_EXAMPLES_OPENGL_2DPAINTING
- bool
- prompt "2dpainting"
- depends on !QT4_OPENGL_NONE
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_OPENGL_CUBE
- bool
- prompt "cube"
- depends on !QT4_OPENGL_NONE
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_OPENGL_FRAMEBUFFEROBJECT
- bool
- prompt "framebufferobject"
- depends on !QT4_OPENGL_NONE
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_OPENGL_FRAMEBUFFEROBJECT2
- bool
- prompt "framebufferobject2"
- depends on !QT4_OPENGL_NONE
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_OPENGL_GRABBER
- bool
- prompt "grabber"
- depends on !QT4_OPENGL_NONE
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_OPENGL_HELLOGL
- bool
- prompt "hellogl"
- depends on !QT4_OPENGL_NONE
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_OPENGL_HELLOGL_ES
- bool
- prompt "hellogl_es"
- depends on QT4_OPENGL_ES1
- depends on !QT4_OPENGL_NONE
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_OPENGL_HELLOGLESTWO
- bool
- prompt "helloglestwo"
- depends on !QT4_OPENGL_NONE
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_OPENGL_OVERPAINTING
- bool
- prompt "overpainting"
- depends on !QT4_OPENGL_NONE
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_OPENGL_PBUFFERS
- bool
- prompt "pbuffers"
- depends on !QT4_OPENGL_NONE
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_OPENGL_PBUFFERS2
- bool
- prompt "pbuffers2"
- depends on !QT4_OPENGL_NONE
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_OPENGL_SAMPLEBUFFERS
- bool
- prompt "samplebuffers"
- depends on !QT4_OPENGL_NONE
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_OPENGL_TEXTURES
- bool
- prompt "textures"
- depends on !QT4_OPENGL_NONE
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_OPENVG
- bool
- prompt "openvg "
-
-if QT4_EXAMPLES_OPENVG
-
-config QT4_EXAMPLES_OPENVG_STAR
- bool
- prompt "star"
- depends on BROKEN
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_PAINTING
- bool
- prompt "painting "
-
-if QT4_EXAMPLES_PAINTING
-
-config QT4_EXAMPLES_PAINTING_BASICDRAWING
- bool
- prompt "basicdrawing"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_PAINTING_CONCENTRICCIRCLES
- bool
- prompt "concentriccircles"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_PAINTING_FONTSAMPLER
- bool
- prompt "fontsampler"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_PAINTING_IMAGECOMPOSITION
- bool
- prompt "imagecomposition"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_PAINTING_PAINTERPATHS
- bool
- prompt "painterpaths"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_PAINTING_SVGGENERATOR
- bool
- prompt "svggenerator"
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_PAINTING_SVGVIEWER
- bool
- prompt "svgviewer"
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_PAINTING_TRANSFORMATIONS
- bool
- prompt "transformations"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_PHONON
- bool
- prompt "phonon "
-
-if QT4_EXAMPLES_PHONON
-
-config QT4_EXAMPLES_PHONON_CAPABILITIES
- bool
- prompt "capabilities"
- depends on QT4_BUILD_PHONON
- depends on QT4_DBUS_LOAD || QT4_DBUS_LINK
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_PHONON_QMUSICPLAYER
- bool
- prompt "qmusicplayer"
- depends on QT4_BUILD_PHONON
- depends on QT4_DBUS_LOAD || QT4_DBUS_LINK
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_QTCONCURRENT
- bool
- prompt "qtconcurrent "
-
-if QT4_EXAMPLES_QTCONCURRENT
-
-config QT4_EXAMPLES_QTCONCURRENT_IMAGESCALING
- bool
- prompt "imagescaling"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_QTCONCURRENT_MAPDEMO
- bool
- prompt "mapdemo"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_QTCONCURRENT_PROGRESSDIALOG
- bool
- prompt "progressdialog"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_QTCONCURRENT_RUNFUNCTION
- bool
- prompt "runfunction"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_QTCONCURRENT_WORDCOUNT
- bool
- prompt "wordcount"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_QTESTLIB
- bool
- prompt "qtestlib "
-
-if QT4_EXAMPLES_QTESTLIB
-
-config QT4_EXAMPLES_QTESTLIB_TUTORIAL1
- bool
- prompt "tutorial1"
- depends on QT4_BUILD_QTESTLIB
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_QTESTLIB_TUTORIAL2
- bool
- prompt "tutorial2"
- depends on QT4_BUILD_QTESTLIB
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_QTESTLIB_TUTORIAL3
- bool
- prompt "tutorial3"
- depends on QT4_BUILD_QTESTLIB
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_QTESTLIB_TUTORIAL4
- bool
- prompt "tutorial4"
- depends on QT4_BUILD_QTESTLIB
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_QTESTLIB_TUTORIAL5
- bool
- prompt "tutorial5"
- depends on QT4_BUILD_QTESTLIB
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_QWS
- bool
- prompt "qws "
-
-if QT4_EXAMPLES_QWS
-
-config QT4_EXAMPLES_QWS_FRAMEBUFFER
- bool
- prompt "framebuffer"
- depends on QT4_PLATFORM_EMBEDDED
-
-config QT4_EXAMPLES_QWS_MOUSECALIBRATION
- bool
- prompt "mousecalibration"
- depends on QT4_PLATFORM_EMBEDDED
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_QWS_SIMPLEDECORATION
- bool
- prompt "simpledecoration"
- depends on QT4_PLATFORM_EMBEDDED
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_RICHTEXT
- bool
- prompt "richtext "
-
-if QT4_EXAMPLES_RICHTEXT
-
-config QT4_EXAMPLES_RICHTEXT_CALENDARAPP
- bool
- prompt "calendarapp"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_RICHTEXT_ORDERFORM
- bool
- prompt "orderform"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_RICHTEXT_SYNTAXHIGHLIGHTER
- bool
- prompt "syntaxhighlighter"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_RICHTEXT_TEXTOBJECT
- bool
- prompt "textobject"
- depends on QT4_BUILD_SVG
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_SCRIPT
- bool
- prompt "script "
-
-if QT4_EXAMPLES_SCRIPT
-
-config QT4_EXAMPLES_SCRIPT_CONTEXT2D
- bool
- prompt "context2d"
- depends on QT4_BUILD_SCRIPTTOOLS
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_SCRIPT_CUSTOMCLASS
- bool
- prompt "customclass"
- depends on QT4_BUILD_SCRIPT
-
-config QT4_EXAMPLES_SCRIPT_DEFAULTPROTOTYPES
- bool
- prompt "defaultprototypes"
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_SCRIPT_HELLOSCRIPT
- bool
- prompt "helloscript"
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_SCRIPT_MARSHAL
- bool
- prompt "marshal"
- depends on QT4_BUILD_SCRIPT
-
-config QT4_EXAMPLES_SCRIPT_QSCRIPT
- bool
- prompt "qscript"
- depends on QT4_BUILD_SCRIPT
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_SQL
- bool
- prompt "sql "
-
-if QT4_EXAMPLES_SQL
-
-config QT4_EXAMPLES_SQL_CACHEDTABLE
- bool
- prompt "cachedtable"
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_SQL_DRILLDOWN
- bool
- prompt "drilldown"
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_SQL_MASTERDETAIL
- bool
- prompt "masterdetail"
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_SQL_QUERYMODEL
- bool
- prompt "querymodel"
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_SQL_RELATIONALTABLEMODEL
- bool
- prompt "relationaltablemodel"
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_SQL_SQLWIDGETMAPPER
- bool
- prompt "sqlwidgetmapper"
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_SQL_TABLEMODEL
- bool
- prompt "tablemodel"
- depends on QT4_BUILD_SQL
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_STATEMACHINE
- bool
- prompt "statemachine "
-
-if QT4_EXAMPLES_STATEMACHINE
-
-config QT4_EXAMPLES_STATEMACHINE_EVENTTRANSITIONS
- bool
- prompt "eventtransitions"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_STATEMACHINE_FACTORIAL
- bool
- prompt "factorial"
-
-config QT4_EXAMPLES_STATEMACHINE_PINGPONG
- bool
- prompt "pingpong"
-
-config QT4_EXAMPLES_STATEMACHINE_ROGUE
- bool
- prompt "rogue"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_STATEMACHINE_TRAFFICLIGHT
- bool
- prompt "trafficlight"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_STATEMACHINE_TWOWAYBUTTON
- bool
- prompt "twowaybutton"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_THREADS
- bool
- prompt "threads "
-
-if QT4_EXAMPLES_THREADS
-
-config QT4_EXAMPLES_THREADS_MANDELBROT
- bool
- prompt "mandelbrot"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_THREADS_SEMAPHORES
- bool
- prompt "semaphores"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_THREADS_WAITCONDITIONS
- bool
- prompt "waitconditions"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_TOOLS
- bool
- prompt "tools "
-
-if QT4_EXAMPLES_TOOLS
-
-config QT4_EXAMPLES_TOOLS_CODECS
- bool
- prompt "codecs"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TOOLS_COMPLETER
- bool
- prompt "completer"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TOOLS_CONTIGUOUSCACHE
- bool
- prompt "contiguouscache"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TOOLS_CUSTOMCOMPLETER
- bool
- prompt "customcompleter"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_TOOLS_ECHOPLUGIN
- bool
- prompt "tools/echoplugin "
-
-if QT4_EXAMPLES_TOOLS_ECHOPLUGIN
-
-config QT4_EXAMPLES_TOOLS_ECHOPLUGIN_ECHOPLUGIN
- bool
- prompt "echoplugin"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_TOOLS
- bool
- prompt "tools "
-
-if QT4_EXAMPLES_TOOLS
-
-config QT4_EXAMPLES_TOOLS_I18N
- bool
- prompt "i18n"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TOOLS_INPUTPANEL
- bool
- prompt "inputpanel"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TOOLS_PLUGANDPAINT
- bool
- prompt "plugandpaint"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TOOLS_REGEXP
- bool
- prompt "regexp"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TOOLS_SETTINGSEDITOR
- bool
- prompt "settingseditor"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_TOOLS_STYLEPLUGIN
- bool
- prompt "tools/styleplugin "
-
-if QT4_EXAMPLES_TOOLS_STYLEPLUGIN
-
-config QT4_EXAMPLES_TOOLS_STYLEPLUGIN_STYLEPLUGIN
- bool
- prompt "styleplugin"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_TOOLS
- bool
- prompt "tools "
-
-if QT4_EXAMPLES_TOOLS
-
-config QT4_EXAMPLES_TOOLS_TREEMODELCOMPLETER
- bool
- prompt "treemodelcompleter"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TOOLS_UNDOFRAMEWORK
- bool
- prompt "undoframework"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_TOUCH
- bool
- prompt "touch "
-
-if QT4_EXAMPLES_TOUCH
-
-config QT4_EXAMPLES_TOUCH_DIALS
- bool
- prompt "dials"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TOUCH_FINGERPAINT
- bool
- prompt "fingerpaint"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TOUCH_KNOBS
- bool
- prompt "knobs"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TOUCH_PINCHZOOM
- bool
- prompt "pinchzoom"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_TUTORIALS_ADDRESSBOOK
- bool
- prompt "tutorials/addressbook "
-
-if QT4_EXAMPLES_TUTORIALS_ADDRESSBOOK
-
-config QT4_EXAMPLES_TUTORIALS_ADDRESSBOOK_PART1
- bool
- prompt "part1"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_ADDRESSBOOK_PART2
- bool
- prompt "part2"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_ADDRESSBOOK_PART3
- bool
- prompt "part3"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_ADDRESSBOOK_PART4
- bool
- prompt "part4"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_ADDRESSBOOK_PART5
- bool
- prompt "part5"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_ADDRESSBOOK_PART6
- bool
- prompt "part6"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_ADDRESSBOOK_PART7
- bool
- prompt "part7"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_TUTORIALS_GETTINGSTARTED_GSQT
- bool
- prompt "tutorials/gettingStarted/gsQt"
- depends on BROKEN
-
-if QT4_EXAMPLES_TUTORIALS_GETTINGSTARTED_GSQT
-
-config QT4_EXAMPLES_TUTORIALS_GETTINGSTARTED_GSQT_PART1
- bool
- prompt "part1"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_GETTINGSTARTED_GSQT_PART2
- bool
- prompt "part2"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_GETTINGSTARTED_GSQT_PART3
- bool
- prompt "part3"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_GETTINGSTARTED_GSQT_PART4
- bool
- prompt "part4"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_GETTINGSTARTED_GSQT_PART5
- bool
- prompt "part5"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_TUTORIALS_MODELVIEW
- bool
- prompt "tutorials/modelview "
-
-if QT4_EXAMPLES_TUTORIALS_MODELVIEW
-
-config QT4_EXAMPLES_TUTORIALS_MODELVIEW_MV_READONLY
- bool
- prompt "mv_readonly"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_MODELVIEW_MV_FORMATTING
- bool
- prompt "mv_formatting"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_MODELVIEW_MV_CHANGINGMODEL
- bool
- prompt "mv_changingmodel"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_MODELVIEW_MV_HEADERS
- bool
- prompt "mv_headers"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_MODELVIEW_MV_EDIT
- bool
- prompt "mv_edit"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_MODELVIEW_MV_TREE
- bool
- prompt "mv_tree"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_MODELVIEW_MV_SELECTIONS
- bool
- prompt "mv_selections"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_TUTORIALS_THREADS
- bool
- prompt "tutorials/threads "
-
-if QT4_EXAMPLES_TUTORIALS_THREADS
-
-config QT4_EXAMPLES_TUTORIALS_THREADS_CLOCK
- bool
- prompt "clock"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_THREADS_HELLOCONCURRENT
- bool
- prompt "helloconcurrent"
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_THREADS_HELLOTHREAD
- bool
- prompt "hellothread"
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_THREADS_HELLOTHREADPOOL
- bool
- prompt "hellothreadpool"
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_THREADS_MOVEDOBJECT
- bool
- prompt "movedobject"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_TUTORIALS_WIDGETS
- bool
- prompt "tutorials/widgets "
-
-if QT4_EXAMPLES_TUTORIALS_WIDGETS
-
-config QT4_EXAMPLES_TUTORIALS_WIDGETS_CHILDWIDGET
- bool
- prompt "childwidget"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_WIDGETS_NESTEDLAYOUTS
- bool
- prompt "nestedlayouts"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_WIDGETS_TOPLEVEL
- bool
- prompt "toplevel"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_TUTORIALS_WIDGETS_WINDOWLAYOUT
- bool
- prompt "windowlayout"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_UITOOLS
- bool
- prompt "uitools "
-
-if QT4_EXAMPLES_UITOOLS
-
-config QT4_EXAMPLES_UITOOLS_MULTIPLEINHERITANCE
- bool
- prompt "multipleinheritance"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_UITOOLS_TEXTFINDER
- bool
- prompt "textfinder"
- depends on QT4_BUILD_DESIGNERLIBS
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_WEBKIT
- bool
- prompt "webkit "
-
-if QT4_EXAMPLES_WEBKIT
-
-config QT4_EXAMPLES_WEBKIT_DOMTRAVERSAL
- bool
- prompt "domtraversal"
- depends on QT4_BUILD_WEBKIT
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WEBKIT_FANCYBROWSER
- bool
- prompt "fancybrowser"
- depends on QT4_BUILD_WEBKIT
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WEBKIT_FORMEXTRACTOR
- bool
- prompt "formextractor"
- depends on QT4_BUILD_WEBKIT
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WEBKIT_IMAGEANALYZER
- bool
- prompt "imageanalyzer"
- depends on QT4_BUILD_WEBKIT
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WEBKIT_PREVIEWER
- bool
- prompt "previewer"
- depends on QT4_BUILD_WEBKIT
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WEBKIT_SIMPLESELECTOR
- bool
- prompt "simpleselector"
- depends on QT4_BUILD_WEBKIT
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WEBKIT_SIMPLEWEBPLUGIN
- bool
- prompt "simplewebplugin"
- depends on QT4_BUILD_WEBKIT
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WEBKIT_WEBFTPCLIENT
- bool
- prompt "webftpclient"
- depends on QT4_BUILD_WEBKIT
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WEBKIT_WEBPLUGIN
- bool
- prompt "webplugin"
- depends on QT4_BUILD_WEBKIT
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_WIDGETS
- bool
- prompt "widgets "
-
-if QT4_EXAMPLES_WIDGETS
-
-config QT4_EXAMPLES_WIDGETS_ANALOGCLOCK
- bool
- prompt "analogclock"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_APPLICATIONICON
- bool
- prompt "applicationicon"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_CALCULATOR
- bool
- prompt "calculator"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_CALENDARWIDGET
- bool
- prompt "calendarwidget"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_CHARACTERMAP
- bool
- prompt "charactermap"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_CODEEDITOR
- bool
- prompt "codeeditor"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_DIGITALCLOCK
- bool
- prompt "digitalclock"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_ELIDEDLABEL
- bool
- prompt "elidedlabel"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_GROUPBOX
- bool
- prompt "groupbox"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_ICONS
- bool
- prompt "icons"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_IMAGEVIEWEREXAMPLE
- bool
- prompt "imageviewerexample"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_LINEEDITS
- bool
- prompt "lineedits"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_MOVIE
- bool
- prompt "movie"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_ORIENTATION
- bool
- prompt "orientation"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_SCRIBBLE
- bool
- prompt "scribble"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_SHAPEDCLOCK
- bool
- prompt "shapedclock"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_SLIDERS
- bool
- prompt "sliders"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_SPINBOXES
- bool
- prompt "spinboxes"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_STYLES
- bool
- prompt "styles"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_STYLESHEET
- bool
- prompt "stylesheet"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_TABLET
- bool
- prompt "tablet"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_TETRIX
- bool
- prompt "tetrix"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_TOOLTIPS
- bool
- prompt "tooltips"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_VALIDATORS
- bool
- prompt "validators"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_WIGGLY
- bool
- prompt "wiggly"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_WIDGETS_WINDOWFLAGS
- bool
- prompt "windowflags"
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_XML
- bool
- prompt "xml "
-
-if QT4_EXAMPLES_XML
-
-config QT4_EXAMPLES_XML_DOMBOOKMARKS
- bool
- prompt "dombookmarks"
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_XML_HTMLINFO
- bool
- prompt "htmlinfo"
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_XML_RSSLISTING
- bool
- prompt "rsslisting"
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_XML_SAXBOOKMARKS
- bool
- prompt "saxbookmarks"
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_XML_STREAMBOOKMARKS
- bool
- prompt "streambookmarks"
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_XML_XMLSTREAMLINT
- bool
- prompt "xmlstreamlint"
- depends on QT4_BUILD_XML
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-menuconfig QT4_EXAMPLES_XMLPATTERNS
- bool
- prompt "xmlpatterns "
-
-if QT4_EXAMPLES_XMLPATTERNS
-
-config QT4_EXAMPLES_XMLPATTERNS_FILETREE
- bool
- prompt "filetree"
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_XMLPATTERNS_QOBJECTXMLMODEL
- bool
- prompt "qobjectxmlmodel"
- depends on QT4_BUILD_WEBKIT
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_XMLPATTERNS_RECIPES
- bool
- prompt "recipes"
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_XMLPATTERNS_SCHEMA
- bool
- prompt "schema"
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-config QT4_EXAMPLES_XMLPATTERNS_TRAFFICINFO
- bool
- prompt "trafficinfo"
- depends on QT4_BUILD_QTXMLPATTERNS
- depends on QT4_BUILD_GUI
- depends on QT4_BUILD_NETWORK
-
-
-endif
-
-
-endif
-
diff --git a/rules/qt4-examples.make b/rules/qt4-examples.make
deleted file mode 100644
index fb217f0cb..000000000
--- a/rules/qt4-examples.make
+++ /dev/null
@@ -1,2072 +0,0 @@
-# WARNING: this file is generated with qt4_mk_examples.sh
-# do not edit
-
-ifdef PTXCONF_QT4_EXAMPLES
-$(STATEDIR)/qt4.targetinstall: $(STATEDIR)/qt4.targetinstall2
-endif
-
-$(STATEDIR)/qt4.targetinstall2: $(STATEDIR)/qt4.install.post
- @$(call targetinfo)
- @$(call install_init, qt4-examples)
- @$(call install_fixup, qt4-examples,PRIORITY,optional)
- @$(call install_fixup, qt4-examples,SECTION,base)
- @$(call install_fixup, qt4-examples,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, qt4-examples,DESCRIPTION,missing)
-
-ifdef PTXCONF_QT4_EXAMPLES_ANIMATION_ANIMATEDTILES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/animation/animatedtiles/animatedtiles, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/animation/animatedtiles/animatedtiles)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ANIMATION_APPCHOOSER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/animation/appchooser/appchooser, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/animation/appchooser/appchooser)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ANIMATION_EASING
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/animation/easing/easing, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/animation/easing/easing)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ANIMATION_MOVEBLOCKS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/animation/moveblocks/moveblocks, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/animation/moveblocks/moveblocks)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ANIMATION_STATES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/animation/states/states, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/animation/states/states)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ANIMATION_STICKMAN
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/animation/stickman/stickman, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/animation/stickman/stickman)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DBUS_COMPLEXPING
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/dbus/complexpingpong/complexping, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/dbus/complexpingpong/complexping)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DBUS_COMPLEXPONG
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/dbus/complexpingpong/complexping, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/dbus/complexpingpong/complexping)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DBUS_DBUS_CHAT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/dbus/dbus-chat/dbus-chat, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/dbus/dbus-chat/dbus-chat)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DBUS_LISTNAMES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/dbus/listnames/listnames, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/dbus/listnames/listnames)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DBUS_PING
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/dbus/pingpong/pong, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/dbus/pingpong/pong)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DBUS_PONG
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/dbus/pingpong/pong, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/dbus/pingpong/pong)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DBUS_REMOTECONTROLLEDCAR_CAR
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/dbus/remotecontrolledcar/car/car, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/dbus/remotecontrolledcar/car/car)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DBUS_REMOTECONTROLLEDCAR_CONTROLLER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/dbus/remotecontrolledcar/controller/controller, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/dbus/remotecontrolledcar/controller/controller)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_ANIMATION_BASICS_COLOR_ANIMATION
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/animation/basics/color-animation/color-animation, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/animation/basics/color-animation/color-animation)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_ANIMATION_BASICS_PROPERTY_ANIMATION
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/animation/basics/property-animation/property-animation, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/animation/basics/property-animation/property-animation)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_ANIMATION_BEHAVIORS_BEHAVIOR_EXAMPLE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/animation/behaviors/behavior-example/behavior-example, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/animation/behaviors/behavior-example/behavior-example)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_ANIMATION_BEHAVIORS_WIGGLYTEXT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/animation/behaviors/wigglytext/wigglytext, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/animation/behaviors/wigglytext/wigglytext)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_ANIMATION_EASING
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/animation/easing/easing, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/animation/easing/easing)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_ANIMATION_STATES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/animation/states/states, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/animation/states/states)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_NETWORKACCESSMANAGERFACTORY
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/cppextensions/networkaccessmanagerfactory/networkaccessmanagerfactory, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/cppextensions/networkaccessmanagerfactory/networkaccessmanagerfactory)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_QGRAPHICSLAYOUTS_LAYOUTITEM
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/cppextensions/qgraphicslayouts/layoutitem/layoutitem, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/cppextensions/qgraphicslayouts/layoutitem/layoutitem)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_QGRAPHICSLAYOUTS_QGRAPHICSGRIDLAYOUT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/qgraphicsgridlayout, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/qgraphicsgridlayout)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_QGRAPHICSLAYOUTS_QGRAPHICSLINEARLAYOUT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/qgraphicslinearlayout, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/qgraphicslinearlayout)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_ADDING
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/cppextensions/referenceexamples/adding/adding, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/cppextensions/referenceexamples/adding/adding)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_ATTACHED
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/cppextensions/referenceexamples/attached/attached, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/cppextensions/referenceexamples/attached/attached)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_BINDING
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/cppextensions/referenceexamples/binding/binding, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/cppextensions/referenceexamples/binding/binding)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_COERCION
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/cppextensions/referenceexamples/coercion/coercion, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/cppextensions/referenceexamples/coercion/coercion)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_DEFAULT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/cppextensions/referenceexamples/default/default, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/cppextensions/referenceexamples/default/default)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_EXTENDED
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/cppextensions/referenceexamples/extended/extended, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/cppextensions/referenceexamples/extended/extended)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_GROUPED
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/cppextensions/referenceexamples/grouped/grouped, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/cppextensions/referenceexamples/grouped/grouped)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_METHODS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/cppextensions/referenceexamples/methods/methods, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/cppextensions/referenceexamples/methods/methods)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_PROPERTIES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/cppextensions/referenceexamples/properties/properties, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/cppextensions/referenceexamples/properties/properties)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_SIGNAL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/cppextensions/referenceexamples/signal/signal, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/cppextensions/referenceexamples/signal/signal)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_CPPEXTENSIONS_REFERENCEEXAMPLES_VALUESOURCE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/cppextensions/referenceexamples/valuesource/valuesource, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/cppextensions/referenceexamples/valuesource/valuesource)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_I18N
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/i18n/i18n, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/i18n/i18n)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_IMAGEELEMENTS_BORDERIMAGE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/imageelements/borderimage/borderimage, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/imageelements/borderimage/borderimage)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_IMAGEELEMENTS_IMAGE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/imageelements/image/image, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/imageelements/image/image)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_IMAGEELEMENTS_SHADOWS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/imageelements/shadows/shadows, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/imageelements/shadows/shadows)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_KEYINTERACTION_FOCUS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/keyinteraction/focus/focus, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/keyinteraction/focus/focus)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_ABSTRACTITEMMODEL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/modelviews/abstractitemmodel/abstractitemmodel, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/modelviews/abstractitemmodel/abstractitemmodel)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_GRIDVIEW
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/modelviews/gridview/gridview, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/modelviews/gridview/gridview)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_LISTVIEW_DYNAMICLIST
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/modelviews/listview/dynamiclist/dynamiclist, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/modelviews/listview/dynamiclist/dynamiclist)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_LISTVIEW_EXPANDINGDELEGATES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/modelviews/listview/expandingdelegates/expandingdelegates, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/modelviews/listview/expandingdelegates/expandingdelegates)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_LISTVIEW_HIGHLIGHT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/modelviews/listview/highlight/highlight, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/modelviews/listview/highlight/highlight)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_LISTVIEW_HIGHLIGHTRANGES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/modelviews/listview/highlightranges/highlightranges, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/modelviews/listview/highlightranges/highlightranges)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_LISTVIEW_SECTIONS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/modelviews/listview/sections/sections, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/modelviews/listview/sections/sections)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_OBJECTLISTMODEL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/modelviews/objectlistmodel/objectlistmodel, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/modelviews/objectlistmodel/objectlistmodel)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_PACKAGE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/modelviews/package/package, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/modelviews/package/package)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_PARALLAX
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/modelviews/parallax/parallax, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/modelviews/parallax/parallax)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_PATHVIEW
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/modelviews/pathview/pathview, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/modelviews/pathview/pathview)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_STRINGLISTMODEL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/modelviews/stringlistmodel/stringlistmodel, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/modelviews/stringlistmodel/stringlistmodel)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_VISUALITEMMODEL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/modelviews/visualitemmodel/visualitemmodel, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/modelviews/visualitemmodel/visualitemmodel)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_WEBVIEW_ALERTS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/modelviews/webview/alerts/alerts, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/modelviews/webview/alerts/alerts)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_WEBVIEW_AUTOSIZE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/modelviews/webview/autosize/autosize, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/modelviews/webview/autosize/autosize)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_WEBVIEW_GOOGLEMAPS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/modelviews/webview/googlemaps/googlemaps, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/modelviews/webview/googlemaps/googlemaps)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_WEBVIEW_INLINEHTML
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/modelviews/webview/inlinehtml/inlinehtml, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/modelviews/webview/inlinehtml/inlinehtml)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_MODELVIEWS_WEBVIEW_NEWWINDOWS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/modelviews/webview/newwindows/newwindows, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/modelviews/webview/newwindows/newwindows)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_POSITIONERS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/positioners/positioners, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/positioners/positioners)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_RIGHTTOLEFT_LAYOUTDIRECTION
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/righttoleft/layoutdirection/layoutdirection, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/righttoleft/layoutdirection/layoutdirection)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_RIGHTTOLEFT_LAYOUTMIRRORING
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/righttoleft/layoutmirroring/layoutmirroring, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/righttoleft/layoutmirroring/layoutmirroring)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_RIGHTTOLEFT_TEXTALIGNMENT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/righttoleft/textalignment/textalignment, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/righttoleft/textalignment/textalignment)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_SHADEREFFECTS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/shadereffects/shadereffects, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/shadereffects/shadereffects)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_SQLLOCALSTORAGE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/sqllocalstorage/sqllocalstorage, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/sqllocalstorage/sqllocalstorage)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_TEXT_FONTS_AVAILABLEFONTS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/text/fonts/availableFonts/availableFonts, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/text/fonts/availableFonts/availableFonts)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_TEXT_FONTS_BANNER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/text/fonts/banner/banner, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/text/fonts/banner/banner)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_TEXT_FONTS_FONTS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/text/fonts/fonts/fonts, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/text/fonts/fonts/fonts)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_TEXT_FONTS_HELLO
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/text/fonts/hello/hello, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/text/fonts/hello/hello)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_TEXT_TEXTSELECTION
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/text/textselection/textselection, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/text/textselection/textselection)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_THREADING_THREADEDLISTMODEL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/threading/threadedlistmodel/threadedlistmodel, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/threading/threadedlistmodel/threadedlistmodel)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_THREADING_WORKERSCRIPT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/threading/workerscript/workerscript, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/threading/workerscript/workerscript)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_TOUCHINTERACTION_GESTURES_EXPERIMENTALGESTURES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/touchinteraction/gestures/experimental-gestures/experimentalgestures, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/touchinteraction/gestures/experimental-gestures/experimentalgestures)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_TOUCHINTERACTION_MOUSEAREA_MOUSEAREAEXAMPLE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/touchinteraction/mousearea/mousearea-example/mouseareaexample, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/touchinteraction/mousearea/mousearea-example/mouseareaexample)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_TOUCHINTERACTION_PINCHAREA
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/touchinteraction/pincharea/pincharea, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/touchinteraction/pincharea/pincharea)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_TOYS_CLOCKS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/toys/clocks/clocks, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/toys/clocks/clocks)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_TOYS_CORKBOARDS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/toys/corkboards/corkboards, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/toys/corkboards/corkboards)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_TOYS_DYNAMICSCENE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/toys/dynamicscene/dynamicscene, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/toys/dynamicscene/dynamicscene)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_TOYS_TIC_TAC_TOE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/toys/tic-tac-toe/tic-tac-toe, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/toys/tic-tac-toe/tic-tac-toe)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_TOYS_TVTENNIS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/toys/tvtennis/tvtennis, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/toys/tvtennis/tvtennis)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_TUTORIALS_EXTENDING_CHAPTER1_BASICS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/tutorials/extending/chapter1-basics/chapter1-basics, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/tutorials/extending/chapter1-basics/chapter1-basics)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_TUTORIALS_EXTENDING_CHAPTER2_METHODS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/tutorials/extending/chapter2-methods/chapter2-methods, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/tutorials/extending/chapter2-methods/chapter2-methods)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_TUTORIALS_EXTENDING_CHAPTER3_BINDINGS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/tutorials/extending/chapter3-bindings/chapter3-bindings, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/tutorials/extending/chapter3-bindings/chapter3-bindings)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_TUTORIALS_EXTENDING_CHAPTER4_CUSTOMPROPERTYTYPES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/chapter4-customPropertyTypes, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/tutorials/extending/chapter4-customPropertyTypes/chapter4-customPropertyTypes)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_TUTORIALS_EXTENDING_CHAPTER5_LISTPROPERTIES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/tutorials/extending/chapter5-listproperties/chapter5-listproperties, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/tutorials/extending/chapter5-listproperties/chapter5-listproperties)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_UI_COMPONENTS_DIALCONTROL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/ui-components/dialcontrol/dialcontrol, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/ui-components/dialcontrol/dialcontrol)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_UI_COMPONENTS_FLIPABLE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/ui-components/flipable/flipable, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/ui-components/flipable/flipable)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_UI_COMPONENTS_MAIN
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/ui-components/main/main, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/ui-components/main/main)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_UI_COMPONENTS_PROGRESSBAR
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/ui-components/progressbar/progressbar, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/ui-components/progressbar/progressbar)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_UI_COMPONENTS_SCROLLBAR
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/ui-components/scrollbar/scrollbar, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/ui-components/scrollbar/scrollbar)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_UI_COMPONENTS_SEARCHBOX
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/ui-components/searchbox/searchbox, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/ui-components/searchbox/searchbox)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_UI_COMPONENTS_SLIDESWITCH
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/ui-components/slideswitch/slideswitch, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/ui-components/slideswitch/slideswitch)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_UI_COMPONENTS_SPINNER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/ui-components/spinner/spinner, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/ui-components/spinner/spinner)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_UI_COMPONENTS_TABWIDGET
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/ui-components/tabwidget/tabwidget, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/ui-components/tabwidget/tabwidget)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DECLARATIVE_XML_XMLHTTPREQUESTEXAMPLE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/declarative/xml/xmlhttprequest-example/xmlhttprequestexample, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/declarative/xml/xmlhttprequest-example/xmlhttprequestexample)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DESIGNER_CALCULATORBUILDER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/designer/calculatorbuilder/calculatorbuilder, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/designer/calculatorbuilder/calculatorbuilder)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DESIGNER_CALCULATORFORM
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/designer/calculatorform/calculatorform, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/designer/calculatorform/calculatorform)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DESIGNER_WORLDTIMECLOCKBUILDER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/designer/worldtimeclockbuilder/worldtimeclockbuilder, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/designer/worldtimeclockbuilder/worldtimeclockbuilder)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DESKTOP_SCREENSHOT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/desktop/screenshot/screenshot, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/desktop/screenshot/screenshot)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DESKTOP_SYSTRAY
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/desktop/systray/systray, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/desktop/systray/systray)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DIALOGS_CLASSWIZARD
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/dialogs/classwizard/classwizard, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/dialogs/classwizard/classwizard)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DIALOGS_CONFIGDIALOG
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/dialogs/configdialog/configdialog, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/dialogs/configdialog/configdialog)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DIALOGS_EXTENSION
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/dialogs/extension/extension, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/dialogs/extension/extension)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DIALOGS_FINDFILES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/dialogs/findfiles/findfiles, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/dialogs/findfiles/findfiles)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DIALOGS_LICENSEWIZARD
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/dialogs/licensewizard/licensewizard, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/dialogs/licensewizard/licensewizard)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DIALOGS_STANDARDDIALOGS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/dialogs/standarddialogs/standarddialogs, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/dialogs/standarddialogs/standarddialogs)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DIALOGS_TABDIALOG
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/dialogs/tabdialog/tabdialog, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/dialogs/tabdialog/tabdialog)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DIALOGS_TRIVIALWIZARD
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/dialogs/trivialwizard/trivialwizard, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/dialogs/trivialwizard/trivialwizard)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DRAGANDDROP_DELAYEDENCODING
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/draganddrop/delayedencoding/delayedencoding, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/draganddrop/delayedencoding/delayedencoding)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DRAGANDDROP_DRAGGABLEICONS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/draganddrop/draggableicons/draggableicons, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/draganddrop/draggableicons/draggableicons)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DRAGANDDROP_DRAGGABLETEXT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/draganddrop/draggabletext/draggabletext, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/draganddrop/draggabletext/draggabletext)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DRAGANDDROP_DROPSITE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/draganddrop/dropsite/dropsite, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/draganddrop/dropsite/dropsite)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DRAGANDDROP_FRIDGEMAGNETS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/draganddrop/fridgemagnets/fridgemagnets, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/draganddrop/fridgemagnets/fridgemagnets)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_DRAGANDDROP_PUZZLE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/draganddrop/puzzle/puzzle, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/draganddrop/puzzle/puzzle)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_EFFECTS_BLURPICKER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/effects/blurpicker/blurpicker, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/effects/blurpicker/blurpicker)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_EFFECTS_FADEMESSAGE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/effects/fademessage/fademessage, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/effects/fademessage/fademessage)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_EFFECTS_LIGHTING
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/effects/lighting/lighting, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/effects/lighting/lighting)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_GESTURES_IMAGEGESTURES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/gestures/imagegestures/imagegestures, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/gestures/imagegestures/imagegestures)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_GRAPHICSVIEW_ANCHORLAYOUT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/graphicsview/anchorlayout/anchorlayout, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/graphicsview/anchorlayout/anchorlayout)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_GRAPHICSVIEW_BASICGRAPHICSLAYOUTS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/graphicsview/basicgraphicslayouts/basicgraphicslayouts, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/graphicsview/basicgraphicslayouts/basicgraphicslayouts)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_GRAPHICSVIEW_COLLIDINGMICE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/graphicsview/collidingmice/collidingmice, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/graphicsview/collidingmice/collidingmice)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_GRAPHICSVIEW_DIAGRAMSCENE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/graphicsview/diagramscene/diagramscene, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/graphicsview/diagramscene/diagramscene)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_GRAPHICSVIEW_DRAGDROPROBOT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/graphicsview/dragdroprobot/dragdroprobot, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/graphicsview/dragdroprobot/dragdroprobot)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_GRAPHICSVIEW_ELASTICNODES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/graphicsview/elasticnodes/elasticnodes, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/graphicsview/elasticnodes/elasticnodes)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_GRAPHICSVIEW_FLOWLAYOUT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/graphicsview/flowlayout/flowlayout, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/graphicsview/flowlayout/flowlayout)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_GRAPHICSVIEW_PADNAVIGATOR
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/graphicsview/padnavigator/padnavigator, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/graphicsview/padnavigator/padnavigator)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_GRAPHICSVIEW_WEATHERANCHORLAYOUT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/graphicsview/weatheranchorlayout/weatheranchorlayout, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/graphicsview/weatheranchorlayout/weatheranchorlayout)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_HELP_CONTEXTSENSITIVEHELP
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/help/contextsensitivehelp/contextsensitivehelp, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/help/contextsensitivehelp/contextsensitivehelp)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_HELP_REMOTECONTROL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/help/remotecontrol/remotecontrol, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/help/remotecontrol/remotecontrol)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_HELP_SIMPLETEXTVIEWER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/help/simpletextviewer/simpletextviewer, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/help/simpletextviewer/simpletextviewer)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_IPC_LOCALFORTUNECLIENT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/ipc/localfortuneclient/localfortuneclient, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/ipc/localfortuneclient/localfortuneclient)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_IPC_LOCALFORTUNESERVER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/ipc/localfortuneserver/localfortuneserver, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/ipc/localfortuneserver/localfortuneserver)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_IPC_SHAREDMEMORY
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/ipc/sharedmemory/sharedmemory, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/ipc/sharedmemory/sharedmemory)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ITEMVIEWS_ADDRESSBOOK
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/itemviews/addressbook/addressbook, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/itemviews/addressbook/addressbook)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ITEMVIEWS_BASICSORTFILTERMODEL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/itemviews/basicsortfiltermodel/basicsortfiltermodel, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/itemviews/basicsortfiltermodel/basicsortfiltermodel)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ITEMVIEWS_CHART
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/itemviews/chart/chart, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/itemviews/chart/chart)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ITEMVIEWS_COLOREDITORFACTORY
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/itemviews/coloreditorfactory/coloreditorfactory, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/itemviews/coloreditorfactory/coloreditorfactory)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ITEMVIEWS_COMBOWIDGETMAPPER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/itemviews/combowidgetmapper/combowidgetmapper, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/itemviews/combowidgetmapper/combowidgetmapper)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ITEMVIEWS_CUSTOMSORTFILTERMODEL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/itemviews/customsortfiltermodel/customsortfiltermodel, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/itemviews/customsortfiltermodel/customsortfiltermodel)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ITEMVIEWS_DIRVIEW
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/itemviews/dirview/dirview, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/itemviews/dirview/dirview)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ITEMVIEWS_EDITABLETREEMODEL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/itemviews/editabletreemodel/editabletreemodel, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/itemviews/editabletreemodel/editabletreemodel)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ITEMVIEWS_FETCHMORE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/itemviews/fetchmore/fetchmore, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/itemviews/fetchmore/fetchmore)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ITEMVIEWS_FROZENCOLUMN
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/itemviews/frozencolumn/frozencolumn, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/itemviews/frozencolumn/frozencolumn)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ITEMVIEWS_PIXELATOR
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/itemviews/pixelator/pixelator, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/itemviews/pixelator/pixelator)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ITEMVIEWS_PUZZLE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/itemviews/puzzle/puzzle, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/itemviews/puzzle/puzzle)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ITEMVIEWS_SIMPLEDOMMODEL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/itemviews/simpledommodel/simpledommodel, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/itemviews/simpledommodel/simpledommodel)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ITEMVIEWS_SIMPLETREEMODEL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/itemviews/simpletreemodel/simpletreemodel, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/itemviews/simpletreemodel/simpletreemodel)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ITEMVIEWS_SIMPLEWIDGETMAPPER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/itemviews/simplewidgetmapper/simplewidgetmapper, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/itemviews/simplewidgetmapper/simplewidgetmapper)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ITEMVIEWS_SPINBOXDELEGATE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/itemviews/spinboxdelegate/spinboxdelegate, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/itemviews/spinboxdelegate/spinboxdelegate)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_ITEMVIEWS_STARDELEGATE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/itemviews/stardelegate/stardelegate, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/itemviews/stardelegate/stardelegate)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_LAYOUTS_BASICLAYOUTS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/layouts/basiclayouts/basiclayouts, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/layouts/basiclayouts/basiclayouts)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_LAYOUTS_BORDERLAYOUT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/layouts/borderlayout/borderlayout, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/layouts/borderlayout/borderlayout)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_LAYOUTS_DYNAMICLAYOUTS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/layouts/dynamiclayouts/dynamiclayouts, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/layouts/dynamiclayouts/dynamiclayouts)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_LAYOUTS_FLOWLAYOUT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/layouts/flowlayout/flowlayout, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/layouts/flowlayout/flowlayout)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_LINGUIST_ARROWPAD
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/linguist/arrowpad/arrowpad, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/linguist/arrowpad/arrowpad)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_LINGUIST_HELLOTR
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/linguist/hellotr/hellotr, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/linguist/hellotr/hellotr)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_LINGUIST_TROLLPRINT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/linguist/trollprint/trollprint, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/linguist/trollprint/trollprint)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_MAINWINDOWS_APPLICATION
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/mainwindows/application/application, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/mainwindows/application/application)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_MAINWINDOWS_DOCKWIDGETS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/mainwindows/dockwidgets/dockwidgets, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/mainwindows/dockwidgets/dockwidgets)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_MAINWINDOWS_MDI
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/mainwindows/mdi/mdi, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/mainwindows/mdi/mdi)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_MAINWINDOWS_MENUS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/mainwindows/menus/menus, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/mainwindows/menus/menus)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_MAINWINDOWS_RECENTFILES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/mainwindows/recentfiles/recentfiles, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/mainwindows/recentfiles/recentfiles)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_MAINWINDOWS_SDI
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/mainwindows/sdi/sdi, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/mainwindows/sdi/sdi)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_MULTIMEDIA_AUDIODEVICES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/multimedia/audiodevices/audiodevices, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/multimedia/audiodevices/audiodevices)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_MULTIMEDIA_AUDIOINPUT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/multimedia/audioinput/audioinput, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/multimedia/audioinput/audioinput)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_MULTIMEDIA_AUDIOOUTPUT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/multimedia/audiooutput/audiooutput, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/multimedia/audiooutput/audiooutput)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_MULTIMEDIA_VIDEOGRAPHICSITEM
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/multimedia/videographicsitem/videographicsitem, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/multimedia/videographicsitem/videographicsitem)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_MULTIMEDIA_VIDEOWIDGET
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/multimedia/videowidget/videowidget, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/multimedia/videowidget/videowidget)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_NETWORK_BEARERCLOUD
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/network/bearercloud/bearercloud, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/network/bearercloud/bearercloud)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_NETWORK_BEARERMONITOR
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/network/bearermonitor/bearermonitor, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/network/bearermonitor/bearermonitor)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_NETWORK_BLOCKINGFORTUNECLIENT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/network/blockingfortuneclient/blockingfortuneclient, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/network/blockingfortuneclient/blockingfortuneclient)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_NETWORK_BROADCASTRECEIVER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/network/broadcastreceiver/broadcastreceiver, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/network/broadcastreceiver/broadcastreceiver)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_NETWORK_BROADCASTSENDER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/network/broadcastsender/broadcastsender, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/network/broadcastsender/broadcastsender)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_NETWORK_DOWNLOAD
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/network/download/download, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/network/download/download)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_NETWORK_DOWNLOADMANAGER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/network/downloadmanager/downloadmanager, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/network/downloadmanager/downloadmanager)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_NETWORK_FORTUNECLIENT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/network/fortuneclient/fortuneclient, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/network/fortuneclient/fortuneclient)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_NETWORK_FORTUNESERVER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/network/fortuneserver/fortuneserver, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/network/fortuneserver/fortuneserver)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_NETWORK_GOOGLESUGGEST
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/network/googlesuggest/googlesuggest, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/network/googlesuggest/googlesuggest)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_NETWORK_HTTP
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/network/http/http, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/network/http/http)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_NETWORK_LOOPBACK
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/network/loopback/loopback, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/network/loopback/loopback)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_NETWORK_MULTICASTRECEIVER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/network/multicastreceiver/multicastreceiver, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/network/multicastreceiver/multicastreceiver)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_NETWORK_MULTICASTSENDER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/network/multicastsender/multicastsender, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/network/multicastsender/multicastsender)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_NETWORK_NETWORK_CHAT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/network/network-chat/network-chat, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/network/network-chat/network-chat)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_NETWORK_QFTP
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/network/qftp/qftp, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/network/qftp/qftp)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_NETWORK_SECURESOCKETCLIENT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/network/securesocketclient/securesocketclient, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/network/securesocketclient/securesocketclient)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_NETWORK_THREADEDFORTUNESERVER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/network/threadedfortuneserver/threadedfortuneserver, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/network/threadedfortuneserver/threadedfortuneserver)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_NETWORK_TORRENT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/network/torrent/torrent, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/network/torrent/torrent)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_OPENGL_2DPAINTING
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/opengl/2dpainting/2dpainting, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/opengl/2dpainting/2dpainting)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_OPENGL_CUBE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/opengl/cube/cube, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/opengl/cube/cube)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_OPENGL_FRAMEBUFFEROBJECT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/opengl/framebufferobject/framebufferobject, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/opengl/framebufferobject/framebufferobject)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_OPENGL_FRAMEBUFFEROBJECT2
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/opengl/framebufferobject2/framebufferobject2, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/opengl/framebufferobject2/framebufferobject2)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_OPENGL_GRABBER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/opengl/grabber/grabber, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/opengl/grabber/grabber)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_OPENGL_HELLOGL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/opengl/hellogl/hellogl, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/opengl/hellogl/hellogl)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_OPENGL_HELLOGL_ES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/opengl/hellogl_es/hellogl_es, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/opengl/hellogl_es/hellogl_es)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_OPENGL_HELLOGLESTWO
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/opengl/hellogl_es2/hellogl_es2, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/opengl/hellogl_es2/hellogl_es2)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_OPENGL_OVERPAINTING
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/opengl/overpainting/overpainting, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/opengl/overpainting/overpainting)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_OPENGL_PBUFFERS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/opengl/pbuffers/pbuffers, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/opengl/pbuffers/pbuffers)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_OPENGL_PBUFFERS2
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/opengl/pbuffers2/pbuffers2, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/opengl/pbuffers2/pbuffers2)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_OPENGL_SAMPLEBUFFERS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/opengl/samplebuffers/samplebuffers, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/opengl/samplebuffers/samplebuffers)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_OPENGL_TEXTURES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/opengl/textures/textures, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/opengl/textures/textures)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_OPENVG_STAR
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/openvg/star/star, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/openvg/star/star)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_PAINTING_BASICDRAWING
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/painting/basicdrawing/basicdrawing, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/painting/basicdrawing/basicdrawing)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_PAINTING_CONCENTRICCIRCLES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/painting/concentriccircles/concentriccircles, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/painting/concentriccircles/concentriccircles)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_PAINTING_FONTSAMPLER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/painting/fontsampler/fontsampler, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/painting/fontsampler/fontsampler)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_PAINTING_IMAGECOMPOSITION
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/painting/imagecomposition/imagecomposition, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/painting/imagecomposition/imagecomposition)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_PAINTING_PAINTERPATHS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/painting/painterpaths/painterpaths, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/painting/painterpaths/painterpaths)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_PAINTING_SVGGENERATOR
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/painting/svggenerator/svggenerator, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/painting/svggenerator/svggenerator)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_PAINTING_SVGVIEWER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/painting/svgviewer/svgviewer, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/painting/svgviewer/svgviewer)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_PAINTING_TRANSFORMATIONS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/painting/transformations/transformations, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/painting/transformations/transformations)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_PHONON_CAPABILITIES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/phonon/capabilities/capabilities, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/phonon/capabilities/capabilities)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_PHONON_QMUSICPLAYER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/phonon/qmusicplayer/qmusicplayer, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/phonon/qmusicplayer/qmusicplayer)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_QTCONCURRENT_IMAGESCALING
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/qtconcurrent/imagescaling/imagescaling, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/qtconcurrent/imagescaling/imagescaling)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_QTCONCURRENT_MAPDEMO
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/qtconcurrent/map/mapdemo, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/qtconcurrent/map/mapdemo)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_QTCONCURRENT_PROGRESSDIALOG
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/qtconcurrent/progressdialog/progressdialog, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/qtconcurrent/progressdialog/progressdialog)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_QTCONCURRENT_RUNFUNCTION
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/qtconcurrent/runfunction/runfunction, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/qtconcurrent/runfunction/runfunction)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_QTCONCURRENT_WORDCOUNT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/qtconcurrent/wordcount/wordcount, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/qtconcurrent/wordcount/wordcount)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_QTESTLIB_TUTORIAL1
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/qtestlib/tutorial1/tutorial1, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/qtestlib/tutorial1/tutorial1)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_QTESTLIB_TUTORIAL2
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/qtestlib/tutorial2/tutorial2, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/qtestlib/tutorial2/tutorial2)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_QTESTLIB_TUTORIAL3
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/qtestlib/tutorial3/tutorial3, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/qtestlib/tutorial3/tutorial3)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_QTESTLIB_TUTORIAL4
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/qtestlib/tutorial4/tutorial4, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/qtestlib/tutorial4/tutorial4)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_QTESTLIB_TUTORIAL5
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/qtestlib/tutorial5/tutorial5, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/qtestlib/tutorial5/tutorial5)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_QWS_FRAMEBUFFER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/qws/framebuffer/framebuffer, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/qws/framebuffer/framebuffer)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_QWS_MOUSECALIBRATION
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/qws/mousecalibration/mousecalibration, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/qws/mousecalibration/mousecalibration)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_QWS_SIMPLEDECORATION
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/qws/simpledecoration/simpledecoration, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/qws/simpledecoration/simpledecoration)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_RICHTEXT_CALENDARAPP
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/richtext/calendar/calendar, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/richtext/calendar/calendar)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_RICHTEXT_ORDERFORM
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/richtext/orderform/orderform, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/richtext/orderform/orderform)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_RICHTEXT_SYNTAXHIGHLIGHTER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/richtext/syntaxhighlighter/syntaxhighlighter, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/richtext/syntaxhighlighter/syntaxhighlighter)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_RICHTEXT_TEXTOBJECT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/richtext/textobject/textobject, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/richtext/textobject/textobject)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_SCRIPT_CONTEXT2D
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/script/context2d/context2d, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/script/context2d/context2d)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_SCRIPT_CUSTOMCLASS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/script/customclass/customclass, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/script/customclass/customclass)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_SCRIPT_DEFAULTPROTOTYPES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/script/defaultprototypes/defaultprototypes, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/script/defaultprototypes/defaultprototypes)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_SCRIPT_HELLOSCRIPT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/script/helloscript/helloscript, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/script/helloscript/helloscript)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_SCRIPT_MARSHAL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/script/marshal/marshal, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/script/marshal/marshal)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_SCRIPT_QSCRIPT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/script/qscript/qscript, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/script/qscript/qscript)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_SQL_CACHEDTABLE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/sql/cachedtable/cachedtable, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/sql/cachedtable/cachedtable)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_SQL_DRILLDOWN
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/sql/drilldown/drilldown, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/sql/drilldown/drilldown)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_SQL_MASTERDETAIL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/sql/masterdetail/masterdetail, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/sql/masterdetail/masterdetail)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_SQL_QUERYMODEL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/sql/querymodel/querymodel, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/sql/querymodel/querymodel)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_SQL_RELATIONALTABLEMODEL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/sql/relationaltablemodel/relationaltablemodel, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/sql/relationaltablemodel/relationaltablemodel)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_SQL_SQLWIDGETMAPPER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/sql/sqlwidgetmapper/sqlwidgetmapper, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/sql/sqlwidgetmapper/sqlwidgetmapper)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_SQL_TABLEMODEL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/sql/tablemodel/tablemodel, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/sql/tablemodel/tablemodel)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_STATEMACHINE_EVENTTRANSITIONS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/statemachine/eventtransitions/eventtransitions, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/statemachine/eventtransitions/eventtransitions)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_STATEMACHINE_FACTORIAL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/statemachine/factorial/factorial, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/statemachine/factorial/factorial)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_STATEMACHINE_PINGPONG
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/statemachine/pingpong/pingpong, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/statemachine/pingpong/pingpong)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_STATEMACHINE_ROGUE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/statemachine/rogue/rogue, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/statemachine/rogue/rogue)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_STATEMACHINE_TRAFFICLIGHT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/statemachine/trafficlight/trafficlight, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/statemachine/trafficlight/trafficlight)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_STATEMACHINE_TWOWAYBUTTON
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/statemachine/twowaybutton/twowaybutton, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/statemachine/twowaybutton/twowaybutton)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_THREADS_MANDELBROT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/threads/mandelbrot/mandelbrot, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/threads/mandelbrot/mandelbrot)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_THREADS_SEMAPHORES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/threads/semaphores/semaphores, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/threads/semaphores/semaphores)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_THREADS_WAITCONDITIONS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/threads/waitconditions/waitconditions, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/threads/waitconditions/waitconditions)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TOOLS_CODECS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tools/codecs/codecs, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tools/codecs/codecs)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TOOLS_COMPLETER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tools/completer/completer, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tools/completer/completer)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TOOLS_CONTIGUOUSCACHE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tools/contiguouscache/contiguouscache, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tools/contiguouscache/contiguouscache)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TOOLS_CUSTOMCOMPLETER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tools/customcompleter/customcompleter, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tools/customcompleter/customcompleter)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TOOLS_ECHOPLUGIN_ECHOPLUGIN
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tools/echoplugin/echowindow/../echoplugin, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tools/echoplugin/echowindow/../echoplugin)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TOOLS_I18N
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tools/i18n/i18n, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tools/i18n/i18n)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TOOLS_INPUTPANEL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tools/inputpanel/inputpanel, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tools/inputpanel/inputpanel)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TOOLS_PLUGANDPAINT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tools/plugandpaint/plugandpaint, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tools/plugandpaint/plugandpaint)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TOOLS_REGEXP
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tools/regexp/regexp, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tools/regexp/regexp)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TOOLS_SETTINGSEDITOR
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tools/settingseditor/settingseditor, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tools/settingseditor/settingseditor)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TOOLS_STYLEPLUGIN_STYLEPLUGIN
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tools/styleplugin/stylewindow/../styleplugin, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tools/styleplugin/stylewindow/../styleplugin)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TOOLS_TREEMODELCOMPLETER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tools/treemodelcompleter/treemodelcompleter, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tools/treemodelcompleter/treemodelcompleter)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TOOLS_UNDOFRAMEWORK
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tools/undoframework/undoframework, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tools/undoframework/undoframework)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TOUCH_DIALS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/touch/dials/dials, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/touch/dials/dials)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TOUCH_FINGERPAINT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/touch/fingerpaint/fingerpaint, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/touch/fingerpaint/fingerpaint)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TOUCH_KNOBS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/touch/knobs/knobs, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/touch/knobs/knobs)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TOUCH_PINCHZOOM
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/touch/pinchzoom/pinchzoom, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/touch/pinchzoom/pinchzoom)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_ADDRESSBOOK_PART1
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/addressbook/part1/part1, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/addressbook/part1/part1)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_ADDRESSBOOK_PART2
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/addressbook/part2/part2, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/addressbook/part2/part2)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_ADDRESSBOOK_PART3
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/addressbook/part3/part3, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/addressbook/part3/part3)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_ADDRESSBOOK_PART4
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/addressbook/part4/part4, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/addressbook/part4/part4)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_ADDRESSBOOK_PART5
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/addressbook/part5/part5, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/addressbook/part5/part5)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_ADDRESSBOOK_PART6
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/addressbook/part6/part6, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/addressbook/part6/part6)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_ADDRESSBOOK_PART7
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/addressbook/part7/part7, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/addressbook/part7/part7)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_GETTINGSTARTED_GSQT_PART1
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/gettingStarted/gsQt/part1/part1, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/gettingStarted/gsQt/part1/part1)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_GETTINGSTARTED_GSQT_PART2
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/gettingStarted/gsQt/part2/part2, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/gettingStarted/gsQt/part2/part2)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_GETTINGSTARTED_GSQT_PART3
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/gettingStarted/gsQt/part3/part3, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/gettingStarted/gsQt/part3/part3)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_GETTINGSTARTED_GSQT_PART4
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/gettingStarted/gsQt/part4/part4, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/gettingStarted/gsQt/part4/part4)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_GETTINGSTARTED_GSQT_PART5
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/gettingStarted/gsQt/part5/part5, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/gettingStarted/gsQt/part5/part5)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_MODELVIEW_MV_READONLY
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/modelview/1_readonly/mv_readonly, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/modelview/1_readonly/mv_readonly)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_MODELVIEW_MV_FORMATTING
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/modelview/2_formatting/mv_formatting, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/modelview/2_formatting/mv_formatting)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_MODELVIEW_MV_CHANGINGMODEL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/modelview/3_changingmodel/mv_changingmodel, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/modelview/3_changingmodel/mv_changingmodel)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_MODELVIEW_MV_HEADERS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/modelview/4_headers/mv_headers, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/modelview/4_headers/mv_headers)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_MODELVIEW_MV_EDIT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/modelview/5_edit/mv_edit, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/modelview/5_edit/mv_edit)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_MODELVIEW_MV_TREE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/modelview/6_treeview/mv_tree, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/modelview/6_treeview/mv_tree)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_MODELVIEW_MV_SELECTIONS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/modelview/7_selections/mv_selections, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/modelview/7_selections/mv_selections)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_THREADS_CLOCK
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/threads/clock/clock, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/threads/clock/clock)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_THREADS_HELLOCONCURRENT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/threads/helloconcurrent/helloconcurrent, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/threads/helloconcurrent/helloconcurrent)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_THREADS_HELLOTHREAD
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/threads/hellothread/hellothread, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/threads/hellothread/hellothread)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_THREADS_HELLOTHREADPOOL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/threads/hellothreadpool/hellothreadpool, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/threads/hellothreadpool/hellothreadpool)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_THREADS_MOVEDOBJECT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/threads/movedobject/movedobject, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/threads/movedobject/movedobject)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_WIDGETS_CHILDWIDGET
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/widgets/childwidget/childwidget, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/widgets/childwidget/childwidget)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_WIDGETS_NESTEDLAYOUTS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/widgets/nestedlayouts/nestedlayouts, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/widgets/nestedlayouts/nestedlayouts)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_WIDGETS_TOPLEVEL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/widgets/toplevel/toplevel, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/widgets/toplevel/toplevel)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_TUTORIALS_WIDGETS_WINDOWLAYOUT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/tutorials/widgets/windowlayout/windowlayout, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/tutorials/widgets/windowlayout/windowlayout)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_UITOOLS_MULTIPLEINHERITANCE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/uitools/multipleinheritance/multipleinheritance, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/uitools/multipleinheritance/multipleinheritance)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_UITOOLS_TEXTFINDER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/uitools/textfinder/textfinder, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/uitools/textfinder/textfinder)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WEBKIT_DOMTRAVERSAL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/webkit/domtraversal/domtraversal, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/webkit/domtraversal/domtraversal)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WEBKIT_FANCYBROWSER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/webkit/fancybrowser/fancybrowser, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/webkit/fancybrowser/fancybrowser)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WEBKIT_FORMEXTRACTOR
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/webkit/formextractor/formextractor, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/webkit/formextractor/formextractor)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WEBKIT_IMAGEANALYZER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/webkit/imageanalyzer/imageanalyzer, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/webkit/imageanalyzer/imageanalyzer)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WEBKIT_PREVIEWER
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/webkit/previewer/previewer, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/webkit/previewer/previewer)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WEBKIT_SIMPLESELECTOR
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/webkit/simpleselector/simpleselector, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/webkit/simpleselector/simpleselector)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WEBKIT_SIMPLEWEBPLUGIN
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/webkit/simplewebplugin/simplewebplugin, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/webkit/simplewebplugin/simplewebplugin)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WEBKIT_WEBFTPCLIENT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/webkit/webftpclient/webftpclient, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/webkit/webftpclient/webftpclient)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WEBKIT_WEBPLUGIN
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/webkit/webplugin/webplugin, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/webkit/webplugin/webplugin)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_ANALOGCLOCK
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/analogclock/analogclock, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/analogclock/analogclock)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_APPLICATIONICON
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/applicationicon/applicationicon, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/applicationicon/applicationicon)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_CALCULATOR
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/calculator/calculator, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/calculator/calculator)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_CALENDARWIDGET
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/calendarwidget/calendarwidget, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/calendarwidget/calendarwidget)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_CHARACTERMAP
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/charactermap/charactermap, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/charactermap/charactermap)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_CODEEDITOR
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/codeeditor/codeeditor, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/codeeditor/codeeditor)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_DIGITALCLOCK
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/digitalclock/digitalclock, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/digitalclock/digitalclock)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_ELIDEDLABEL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/elidedlabel/elidedlabel, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/elidedlabel/elidedlabel)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_GROUPBOX
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/groupbox/groupbox, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/groupbox/groupbox)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_ICONS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/icons/icons, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/icons/icons)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_IMAGEVIEWEREXAMPLE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/imageviewer/imageviewer, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/imageviewer/imageviewer)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_LINEEDITS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/lineedits/lineedits, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/lineedits/lineedits)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_MOVIE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/movie/movie, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/movie/movie)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_ORIENTATION
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/orientation/orientation, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/orientation/orientation)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_SCRIBBLE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/scribble/scribble, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/scribble/scribble)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_SHAPEDCLOCK
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/shapedclock/shapedclock, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/shapedclock/shapedclock)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_SLIDERS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/sliders/sliders, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/sliders/sliders)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_SPINBOXES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/spinboxes/spinboxes, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/spinboxes/spinboxes)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_STYLES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/styles/styles, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/styles/styles)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_STYLESHEET
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/stylesheet/stylesheet, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/stylesheet/stylesheet)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_TABLET
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/tablet/tablet, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/tablet/tablet)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_TETRIX
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/tetrix/tetrix, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/tetrix/tetrix)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_TOOLTIPS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/tooltips/tooltips, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/tooltips/tooltips)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_VALIDATORS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/validators/validators, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/validators/validators)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_WIGGLY
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/wiggly/wiggly, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/wiggly/wiggly)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_WIDGETS_WINDOWFLAGS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/widgets/windowflags/windowflags, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/widgets/windowflags/windowflags)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_XML_DOMBOOKMARKS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/xml/dombookmarks/dombookmarks, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/xml/dombookmarks/dombookmarks)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_XML_HTMLINFO
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/xml/htmlinfo/htmlinfo, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/xml/htmlinfo/htmlinfo)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_XML_RSSLISTING
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/xml/rsslisting/rsslisting, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/xml/rsslisting/rsslisting)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_XML_SAXBOOKMARKS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/xml/saxbookmarks/saxbookmarks, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/xml/saxbookmarks/saxbookmarks)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_XML_STREAMBOOKMARKS
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/xml/streambookmarks/streambookmarks, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/xml/streambookmarks/streambookmarks)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_XML_XMLSTREAMLINT
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/xml/xmlstreamlint/xmlstreamlint, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/xml/xmlstreamlint/xmlstreamlint)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_XMLPATTERNS_FILETREE
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/xmlpatterns/filetree/filetree, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/xmlpatterns/filetree/filetree)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_XMLPATTERNS_QOBJECTXMLMODEL
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/xmlpatterns/qobjectxmlmodel/qobjectxmlmodel, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/xmlpatterns/qobjectxmlmodel/qobjectxmlmodel)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_XMLPATTERNS_RECIPES
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/xmlpatterns/recipes/recipes, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/xmlpatterns/recipes/recipes)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_XMLPATTERNS_SCHEMA
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/xmlpatterns/schema/schema, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/xmlpatterns/schema/schema)
-endif
-
-ifdef PTXCONF_QT4_EXAMPLES_XMLPATTERNS_TRAFFICINFO
- @$(call install_copy, qt4-examples, 0, 0, 0755, \
- $(QT4_DIR)-build/examples/xmlpatterns/trafficinfo/trafficinfo, \
- $(PTXCONF_QT4_EXAMPLES_INSTALL_DIR)/xmlpatterns/trafficinfo/trafficinfo)
-endif
-
-
- @$(call install_finish, qt4-examples)
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/qt4.in b/rules/qt4.in
deleted file mode 100644
index 7996e97e1..000000000
--- a/rules/qt4.in
+++ /dev/null
@@ -1,977 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=qt
-
-menuconfig QT4
- tristate
- select LIBC_PTHREAD
- select LIBC_DL
- select LIBC_RT
- select LIBC_M
- select GCCLIBS_CXX
- select GCCLIBS_GCC_S
- select HOST_QT4
- select TSLIB if QT4_MOUSE_TSLIB
- select DBUS if QT4_DBUS
- select HOST_QT4_DBUS if QT4_DBUS
- select GLIB if QT4_GLIB
- select ZLIB if QT4_ZLIB_SYSTEM
- select FREETYPE if QT4_FREETYPE_SYSTEM
- select LIBPNG if QT4_PNG_SYSTEM
- select LIBJPEG if QT4_JPG_SYSTEM
- select SQLITE if QT4_SQLITE_SYSTEM
- select GSTREAMER if QT4_BUILD_PHONON
- select GST_PLUGINS_BASE if QT4_BUILD_PHONON
- select OPENSSL if QT4_OPENSSL
- select MESALIB if QT4_OPENGL_DESKTOP
- select ALSA_LIB if QT4_BUILD_MULTIMEDIA
-# libsvga is currently not in ptxdist
-# select LIBSVGA if QT4_GFX_SVGA_PLUGIN
-
- select XORG_LIB_X11 if QT4_PLATFORM_X11
- select XORG_LIB_SM if QT4_X11_SM
- select XORGPROTO if QT4_PLATFORM_X11
- select XORG_LIB_XINERAMA if QT4_X11_XINERAMA
- select XORG_LIB_XCURSOR if QT4_X11_XCURSOR
- select XORG_LIB_XFIXES if QT4_X11_XFIXES
- select XORG_LIB_XRANDR if QT4_X11_XRANDR
- select XORG_LIB_XRENDER if QT4_X11_XRENDER
- select FONTCONFIG if QT4_X11_FONTCONFIG
- select FREETYPE if QT4_X11_FONTCONFIG
- select XORG_LIB_XI if QT4_X11_XINPUT
- select XORG_LIB_XKBUI if QT4_X11_XKB
-
- prompt "qt "
- help
- Qt is Nokia's Widget Library for Linux.
-
- STAGING: remove in PTXdist 2022.01.0
- Qt4 has been replaces by Qt5 a long time ago.
-
-if QT4
-
-menu "build options "
-
-config QT4_SHARED
- bool
- default y
- prompt "build shared libraries"
- help
- If selected the shared Qt Libraries are built
- and installed.
-
-choice
- prompt "platform "
- default QT4_PLATFORM_EMBEDDED
-
- config QT4_PLATFORM_EMBEDDED
- bool
- prompt "embedded"
- help
- Build Qt for embedded
-
- config QT4_PLATFORM_X11
- bool
- prompt "X11 "
- help
- Build Qt for X11
-endchoice
-
-endmenu
-
-if QT4_PLATFORM_EMBEDDED
-
-menu "graphics driver "
-
-choice
- prompt "ahi "
- default QT4_GFX_AHI_NULL
- help
- FIXME
-
- config QT4_GFX_AHI_NULL
- bool
- prompt "none "
- help
- Don't build the driver
-
-# only as plugin
-
- config QT4_GFX_AHI_PLUGIN
- bool
- prompt "plugin "
- depends on BROKEN
- help
- Load the driver at runtime
-endchoice
-
-choice
- prompt "eglnullws "
- default QT4_GFX_EGLNULLWS_NULL
- help
- Accelerated driver using eglnullws
-
- config QT4_GFX_EGLNULLWS_NULL
- bool
- prompt "none "
- help
- Don't build the driver
-
-# only as plugin
-
- config QT4_GFX_EGLNULLWS_PLUGIN
- bool
- depends on QT4_BUILD_OPENGL
- prompt "plugin "
- help
- Load the driver at runtime
-endchoice
-
-choice
- prompt "LinuxFb "
- default QT4_GFX_LINUXFB_NONE
- help
- Unaccelerated linux framebuffer driver
-
- config QT4_GFX_LINUXFB_NONE
- bool
- prompt "none "
- help
- Don't build the driver
-
- config QT4_GFX_LINUXFB_BUILTIN
- bool
- prompt "builtin"
- help
- Link the driver into QtGui
-
- config QT4_GFX_LINUXFB_PLUGIN
- bool
- prompt "plugin "
- help
- Load the driver at runtime
-endchoice
-
-choice
- prompt "PowerVR "
- default QT4_GFX_POWERVR_NULL
- help
- FIXME
-
- config QT4_GFX_POWERVR_NULL
- bool
- prompt "none "
- help
- Don't build the driver
-
-# only as plugin
-
- config QT4_GFX_POWERVR_PLUGIN
- bool
- prompt "plugin "
- help
- Load the driver at runtime
-endchoice
-
-choice
- prompt "Qt Virtual Fb "
- default QT4_GFX_QVFB_NONE
- help
- The Qt Virtual Framebuffer can be used to test Qt Embedded applications.
- It must be used in combination with the QVFb tool which is part of Qt/X11
-
- config QT4_GFX_QVFB_NONE
- bool
- prompt "none "
- help
- Don't build the driver
-
- config QT4_GFX_QVFB_BUILTIN
- bool
- prompt "builtin"
- help
- Link the driver into QtGui
-
- config QT4_GFX_QVFB_PLUGIN
- bool
- prompt "plugin "
- help
- Load the driver at runtime
-endchoice
-
-choice
- prompt "SVGA "
- depends on BROKEN
- default QT4_GFX_SVGA_NONE
- help
- Unaccelerated driver using svgalib.
-
-
- config QT4_GFX_SVGA_NONE
- bool
- prompt "none "
- help
- Don't build the driver
-
-# only as plugin
-
- config QT4_GFX_SVGA_PLUGIN
- bool
- prompt "plugin "
- depends on BROKEN
- help
- Load the driver at runtime
-endchoice
-
-choice
- prompt "VNC "
- default QT4_GFX_VNC_NONE
- help
- The VNC driver provides a VNC server. It can also be used in
- combination with other drivers.
-
-
- config QT4_GFX_VNC_NONE
- bool
- prompt "none "
- help
- Don't build the driver
-
- config QT4_GFX_VNC_BUILTIN
- bool
- prompt "builtin"
- help
- Link the driver into QtGui
-
- config QT4_GFX_VNC_PLUGIN
- bool
- prompt "plugin "
- help
- Load the driver at runtime
-endchoice
-
-choice
- prompt "Transformed "
- default QT4_GFX_TRANSFORMED_NONE
- help
- Transformed is a meta driver that delegates the drawing to another driver
- after rotating the contents
-
-
- config QT4_GFX_TRANSFORMED_NONE
- bool
- prompt "none "
- help
- Don't build the driver
-
- config QT4_GFX_TRANSFORMED_BUILTIN
- bool
- prompt "builtin"
- help
- Link the driver into QtGui
-
- config QT4_GFX_TRANSFORMED_PLUGIN
- bool
- prompt "plugin "
- help
- Load the driver at runtime
-endchoice
-
-choice
- prompt "Multi "
- default QT4_GFX_MULTISCREEN_NONE
- help
- Multi is a meta driver that delegates the drawing to multiple other
- drivers.
-
- config QT4_GFX_MULTISCREEN_NONE
- bool
- prompt "none "
- help
- Don't build the driver
-
- config QT4_GFX_MULTISCREEN_BUILTIN
- bool
- prompt "builtin"
- help
- Link the driver into QtGui
-
-# not as plugin
-endchoice
-
-choice
- prompt "hybrid "
- default QT4_GFX_HYBRID_NULL
-
- config QT4_GFX_HYBRID_NULL
- bool
- prompt "none "
- help
- Don't build the driver
-
-# only as plugin
-
- config QT4_GFX_HYBRID_PLUGIN
- bool
- prompt "plugin [BROKEN]"
- # needs GLES/egl.h and others
- depends on BROKEN
- help
- Load the driver at runtime
-endchoice
-
-endmenu
-
-menu "keyboard drivers "
-
-config QT4_KBD_TTY
- bool
- prompt "tty"
- help
- Generic console (tty) driver
-
-config QT4_KBD_INPUT
- bool
- prompt "Linux Input"
- help
- Generic Linux Input driver
-
-config QT4_KBD_QVFB
- bool
- prompt "Qt Virtual Framebuffer"
- help
- Keyboard driver for the Qt Virtual Framebuffer
-
-endmenu
-
-menu "mouse drivers "
-
-config QT4_MOUSE_PC
- bool
- prompt "Generic Mouse Driver"
- help
- Generic driver for the MouseMan, IntelliMouse, Microsoft and MouseSystems
- protocols.
-
-config QT4_MOUSE_INPUT
- bool
- prompt "Linux Input"
-
-config QT4_MOUSE_LINUXTP
- bool
- prompt "Linux Touch Panel"
-
-config QT4_MOUSE_TSLIB
- bool
- prompt "Tslib"
- help
- Driver for the universal touch screen library, tslib.
-
-config QT4_MOUSE_QVFB
- bool
- prompt "Qt Virtual Framebuffer"
- help
- Mouse driver for the Qt Virtual Framebuffer
-
-endmenu
-
-endif # QT4_PLATFORM_EMBEDDED
-
-if QT4_PLATFORM_X11
-
-menu "X11 feature options "
-
-config QT4_X11_SM
- bool
- prompt "X Session Management"
- help
- Support X Session Management, links in -lSM -lICE.
-
-config QT4_X11_XSHAPE
- bool
- prompt "XShape"
- help
- Compile XShape support. Requires X11/extensions/shape.h.
-
-config QT4_X11_XSYNC
- bool
- prompt "XSync"
- help
- Compile XSync support. Requires X11/extensions/sync.h.
-
-config QT4_X11_XINERAMA
- bool
- prompt "Xinerama"
- help
- Compile Xinerama support. Requires X11/extensions/Xinerama.h
- and libXinerama. By default, Xinerama support will be compiled if
- available and the shared libraries are dynamically loaded at
- runtime.
-
-config QT4_X11_XCURSOR
- bool
- prompt "Xcursor"
- help
- Compile Xcursor support. Requires X11/Xcursor/Xcursor.h and
- libXcursor. By default, Xcursor support will be compiled if
- available and the shared libraries are dynamically loaded
- at runtime.
-
-config QT4_X11_XFIXES
- bool
- prompt "Xfixes"
- help
- Compile Xfixes support. Requires X11/extensions/Xfixes.h and
- libXfixes. By default, Xfixes support will be compiled if
- available and the shared libraries are dynamically loaded at
- runtime.
-
-config QT4_X11_XRANDR
- bool
- prompt "Xrandr"
- help
- Compile Xrandr support. Requires X11/extensions/Xrandr.h
- and libXrandr.
-
-config QT4_X11_XRENDER
- bool
- prompt "Xrender"
- help
- Compile Xrender support. Requires X11/extensions/Xrender.h
- and libXrender.
-
-config QT4_X11_MITSHM
- bool
- prompt "MIT-SHM"
- help
- Compile MIT-SHM support. Requires sys/ipc.h, sys/shm.h
- and X11/extensions/XShm.h
-
-config QT4_X11_FONTCONFIG
- bool
- prompt "FontConfig"
- help
- Compile FontConfig (anti-aliased font) support. Requires
- fontconfig/fontconfig.h, libfontconfig, freetype.h and
- libfreetype.
-
-config QT4_X11_XINPUT
- bool
- prompt "Xinput"
- help
- ompile Xinput support. This also enabled tablet support
- which requires IRIX with wacom.h and libXi or XFree86 with
- X11/extensions/XInput.h and libXi.
-
-config QT4_X11_XKB
- bool
- prompt "XKB"
- help
- Compile XKB (X KeyBoard extension) support.
-
-endmenu
-
-endif # QT4_PLATFORM_X11
-
-# prepare the build system to build the examples
-# selected by QT4_EXAMPLES
-config QT4_PREPARE_EXAMPLES
- bool
-
-menu "feature options "
-
-choice
- prompt "zlib support "
- default QT4_ZLIB_SYSTEM
- help
- zlib support is required for at least the PNG graphic format
-
-config QT4_ZLIB_INTERNAL
- bool "internal"
- help
- This uses the embedded zlib support
-
-config QT4_ZLIB_SYSTEM
- bool "system "
- help
- Use system's zlib
-endchoice
-
-choice
- prompt "freetype support "
- default QT4_FREETYPE_SYSTEM
- help
- Control freetype support
-
-config QT4_FREETYPE_NONE
- bool "none "
- help
- This disables freeetype support entirely
-
-config QT4_FREETYPE_INTERNAL
- bool "internal"
- help
- This uses the embedded freetype support
-
-config QT4_FREETYPE_SYSTEM
- bool "system "
- help
- Use system's freetype
-endchoice
-
-choice
- prompt "ICO support "
- default QT4_ICO_NONE
- help
- Control support for the ICO File Format
-
-config QT4_ICO_NONE
- bool "none "
- help
- This disables entirely any ICO support
-
-config QT4_ICO_INTERNAL
- bool "internal"
- help
- This uses the embedded ICO support
-endchoice
-
-choice
- prompt "PNG support "
- default QT4_PNG_SYSTEM
- help
- Control support for the Portable Network Graphics format
-
-config QT4_PNG_NONE
- bool "none "
- help
- This disables entirely any PNG support
-
-config QT4_PNG_INTERNAL
- bool "internal"
- help
- This uses the embedded PNG support
-
-config QT4_PNG_SYSTEM
- bool "system "
- help
- Use system's PNG library
-endchoice
-
-choice
- prompt "MNG support "
- default QT4_MNG_NONE
- help
- Control support for the Multiple-image Network Graphics format
-
-config QT4_MNG_NONE
- bool "none "
- help
- This disables entirely any MNG support
-
-config QT4_MNG_INTERNAL
- bool "internal"
- help
- This uses the embedded MNG support
-
-# there is currently no support for MNG in ptxdist
-#config QT4_MNG_SYSTEM
-# bool "system "
-# help
-# Use system's MNG library
-
-endchoice
-
-choice
- prompt "TIFF support "
- default QT4_TIFF_NONE
- help
- Control support for the Tag Image File Format
-
-config QT4_TIFF_NONE
- bool "none "
- help
- This disables entirely any TIFF support
-
-config QT4_TIFF_INTERNAL
- bool "internal"
- help
- This uses the embedded TIFF support
-
-# there is currently no support for TIFF in ptxdist
-#config QT4_TIFF_SYSTEM
-# bool "system "
-# help
-# Use system's TIFF library
-
-endchoice
-
-choice
- prompt "GIF support "
- default QT4_GIF_NONE
- help
- Control support for the "Graphics Interchange Format" format
-
-config QT4_GIF_NONE
- bool "none "
- help
- This disables entirely any GIF support
-
-config QT4_GIF_NULL
- # note: NULL == no configure option. There is only -no-gif
- bool "internal"
- help
- This uses the embedded GIF support
-
-endchoice
-
-choice
- prompt "JPG support "
- default QT4_JPG_NONE
-
-config QT4_JPG_NONE
- bool "none "
- help
- This disables entirely any JPG support
-
-config QT4_JPG_INTERNAL
- bool "internal"
- help
- This uses the embedded JPG support
-
-config QT4_JPG_SYSTEM
- bool "system "
- help
- Use system's JPG library
-
-endchoice
-
-config QT4_STL
- bool
- prompt "stl support"
- help
- Add Qt support for standard template library.
-
-config QT4_GLIB
- bool
- prompt "glib support"
- help
- Add Qt support for glib.
-
-config QT4_OPENSSL
- bool
- # fails to build with OpenSSL 1.1.x
- depends on BROKEN
- prompt "openssl support"
- help
- Add Qt support for openssl.
-
-config QT4_DBUS
- bool
- prompt "dbus support"
- help
- Build D-Bus bindings for Qt
-
-choice
- prompt "dbus support "
- depends on QT4_DBUS
- default QT4_DBUS_LOAD
- help
- Qt dbus support.
-
-config QT4_DBUS_LOAD
- bool "load "
- select QT4_BUILD_XML
- help
- Build Qt dbus support and dynamically load libdbus-1.
-
-config QT4_DBUS_LINK
- bool "link "
- select QT4_BUILD_XML
- help
- Build Qt dbus support and link to libdbus-1.
-endchoice
-
-config QT4_ACCESSIBILITY
- bool
- prompt "accessibility"
- help
- Compile Accessibility support.
-
-endmenu
-
-config QT4_BUILD_OPENGL
- bool
-
-choice
- prompt "OpenGL support "
- help
- Add Qt support for OpenGL
-
-config QT4_OPENGL_NONE
- bool "none "
-
-config QT4_OPENGL_DESKTOP
- bool "Desktop "
- depends on QT4_PLATFORM_X11
- select QT4_BUILD_OPENGL
-
-config QT4_OPENGL_ES1
- bool "ES 1.x "
- select QT4_BUILD_OPENGL
-
-config QT4_OPENGL_ES2
- bool "ES 2.x "
- select QT4_BUILD_OPENGL
-
-endchoice
-
-config QT4_OPENGL_EGL
- bool "use EGL"
- depends on QT4_BUILD_OPENGL && !QT4_OPENGL_DESKTOP
-
-menu "optional libraries "
-
-config QT4_BUILD_GUI
- bool
- select QT4_BUILD_NETWORK
- prompt "QtGui"
- help
- The QtGui module provides the classes necessary for a graphical user interface.
-
-config QT4_BUILD_NETWORK
- bool
- prompt "QtNetwork"
- help
- The QtNetwork module offers classes that allow you to write TCP/IP
- clients and servers.
-
-menuconfig QT4_BUILD_SQL
- bool
- prompt "QtSql "
- help
- The QtSql module helps you provide seamless database integration
- to your Qt applications.
- The SQL classes are divided into three layers:
- - Driver Layer: Provides the low-level bridge between the specific
- databases and the SQL API layer.
- - SQL API Layer: Provides a Qt API for SQL
- - UI Layer: These classes link the data from a database to
- data-aware widgets.
-
-if QT4_BUILD_SQL
-
-choice
- prompt "SQLITE support "
- default QT4_SQLITE_NULL
-
-config QT4_SQLITE_NULL
- bool "none "
- help
- This disables entirely any SQLITE support
-
-config QT4_SQLITE_BUILTIN
- bool "builtin"
- help
- Link the driver into QtSql
-
-config QT4_SQLITE_PLUGIN
- bool "plugin "
- help
- Load the driver at runtime
-endchoice
-
-config QT4_SQLITE_SYSTEM
- bool
- depends on !QT4_SQLITE_NULL
- prompt "use system sqlite"
-
-endif # QT4_BUILD_SQL
-
-# make sure this symbol exists even if QT4_BUILD_SQL if disabled
-config QT4_SQLITE_NONE
- bool
- default QT4_SQLITE_NULL || !QT4_BUILD_SQL
-
-
-config QT4_BUILD_SCRIPT
- bool
- default y
- prompt "QtScript"
- help
- The QtScript module provides classes for making Qt applications scriptable.
- Qt Script is based on the ECMAScript scripting language, as defined in
- standard ECMA-262.
-
-config QT4_BUILD_SVG
- bool
- default y
- select QT4_BUILD_XML
- select QT4_BUILD_GUI
- prompt "QtSvg"
- help
- The QtSvg module provides classes for displaying the contents of SVG files.
-
-config QT4_BUILD_XML
- bool
- prompt "QtXml"
- help
- The QtXml module provides a stream reader and writer for XML documents,
- and C++ implementations of SAX and DOM.
-
-config QT4_BUILD_DESIGNERLIBS
- bool
- select QT4_BUILD_XML
- select QT4_BUILD_TOOLS
- prompt "Qt Designer Libraries"
- help
- This option enables two libraries:
- - QtDesigner: Provides classes that allow you to create your own custom widget
- plugins for Qt Designer, and classes that enable you to access
- Qt Designer's components.
- - QtUiTools: Allows standalone applications dynamically create user interfaces
- at run-time using the information stored in .ui files or specified
- plugin paths
-
-config QT4_BUILD_ASSISTANTLIB
- bool
- select QT4_BUILD_NETWORK
- select QT4_BUILD_XML
- select QT4_BUILD_SQL
- select QT4_BUILD_TOOLS
- prompt "QtAssistant"
- help
- The QtAssistant module provides a means of launching Qt Assistant to provide
- online help.
-
-config QT4_BUILD_QTESTLIB
- bool
- prompt "QtTest"
- help
- he QtTest module provides classes for unit testing Qt applications and libraries.
-
-config QT4_BUILD_QTXMLPATTERNS
- bool
- select QT4_BUILD_NETWORK
- prompt "QtXmlPatterns"
- help
- XQuery 1.0 and XPath 2.0 support for Qt
-
-config QT4_BUILD_MULTIMEDIA
- bool
- select QT4_BUILD_GUI
- select QT4_BUILD_NETWORK
- prompt "Multimedia"
- help
- The Multimedia API provides media playback and playlist support for
- Qt Applications. Play music and movies through a single interface
- with selectable output for movies to widgets or graphics view.
-
-config QT4_BUILD_PHONON
- bool
- depends on STAGING
- select QT4_BUILD_GUI
- select QT4_GLIB
- prompt "Phonon"
- help
- Phonon is a cross-platform multimedia framework that enables the use
- of audio and video content in Qt applications.
-
-config QT4_BUILD_WEBKIT
- bool
- select QT4_BUILD_XML
- select QT4_BUILD_GUI
- select QT4_BUILD_NETWORK
- select QT4_BUILD_SQL
- select QT4_X11_XRENDER if QT4_PLATFORM_X11
- prompt "Webkit"
- help
- QtWebKit provides a Web browser engine that makes it easy to embed
- content from the World Wide Web into your Qt application. At the
- same time Web content can be enhanced with native controls.
-
-config QT4_BUILD_SCRIPTTOOLS
- bool
- select QT4_BUILD_GUI
- select QT4_BUILD_SCRIPT
- prompt "ScriptTools"
- help
- QtScriptTools provides additional components for applications that
- use Qt Script.
-
-config QT4_BUILD_DECLARATIVE
- bool
- prompt "Declarative"
- select QT4_BUILD_GUI
- select QT4_BUILD_SQL
- select QT4_BUILD_SCRIPT
- select QT4_BUILD_NETWORK
- help
- QtDeclarative is a C++ library that provides the underlying engine,
- which translates the declarative description of the UI in QML into
- items on a QGraphicsScene. The library also provides APIs to bind
- custom C++ types and elements to QML, and to connect the QML UI with
- the underlying application logic written in C++.
-
-config QT4_INSTALL_QMLVIEWER
- bool
- prompt "install qmlviewer"
- select QT4_BUILD_SQL
- select QT4_BUILD_TOOLS
- depends on QT4_BUILD_DECLARATIVE
-
-endmenu
-
-config QT4_BUILD_TOOLS
- bool
-
-if QT4_PLATFORM_EMBEDDED
-
-menu "Install Fonts "
-
- config QT4_FONT_DEJAVU
- bool
- prompt "DejaVu"
-
- config QT4_FONT_UT
- bool
- prompt "UT"
-
- config QT4_FONT_VERA
- bool
- prompt "Vera"
-
- config QT4_FONT_C0
- bool
- prompt "c0"
-
- config QT4_FONT_COUR
- bool
- prompt "cour"
-
- config QT4_FONT_CURSOR
- bool
- prompt "cursor"
-
- config QT4_FONT_FIXED
- bool
- prompt "fixed"
-
- config QT4_FONT_HELVETICA
- bool
- prompt "helvetica"
-
- config QT4_FONT_JAPANESE
- bool
- prompt "japanese"
-
- config QT4_FONT_L04
- bool
- prompt "l04"
-
-endmenu
-
-endif
-
-endif
-
diff --git a/rules/qt4.make b/rules/qt4.make
deleted file mode 100644
index 21f9d92b9..000000000
--- a/rules/qt4.make
+++ /dev/null
@@ -1,598 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2008 by Juergen Beisert
-# 2009-2011 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_QT4) += qt4
-
-#
-# Paths and names
-#
-QT4_VERSION := 4.8.7
-QT4_MD5 := d990ee66bf7ab0c785589776f35ba6ad
-QT4 := qt-everywhere-opensource-src-$(QT4_VERSION)
-QT4_SUFFIX := tar.gz
-QT4_URL := \
- http://download.qt.io/official_releases/qt/4.8/$(QT4_VERSION)/$(QT4).$(QT4_SUFFIX) \
- http://download.qt.io/archive/qt/4.8/$(QT4_VERSION)/$(QT4).$(QT4_SUFFIX)
-QT4_SOURCE := $(SRCDIR)/$(QT4).$(QT4_SUFFIX)
-QT4_DIR := $(BUILDDIR)/$(QT4)
-QT4_BUILD_OOT := YES
-QT4_LICENSE := GPL3 AND LGPL-2.1-only
-ifdef PTXCONF_QT4_EXAMPLES
-QT4_DEVPKG := NO
-endif
-
-# ----------------------------------------------------------------------------
-# Extract
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/qt4.extract:
- @$(call targetinfo)
- @$(call clean, $(QT4_DIR))
- @$(call extract, QT4)
- @$(call patchin, QT4)
- @for file in $(QT4_DIR)/mkspecs/{qws/,}linux-ptx-g++/*.in; do \
- sed -e "s,@COMPILER_PREFIX@,$(COMPILER_PREFIX),g" \
- -e "s,@CPPFLAGS@,$(CROSS_CPPFLAGS),g" \
- -e "s,@CFLAGS@,$(CROSS_CFLAGS),g" \
- -e "s,@CXXFLAGS@,$(CROSS_CXXFLAGS) -std=gnu++98,g" \
- -e "s,@INCDIR@,$(SYSROOT)/include $(SYSROOT)/usr/include,g" \
- -e "s,@LIBDIR@,$(SYSROOT)/usr/lib,g" \
- -e "s#@LDFLAGS@#$(strip $(CROSS_LDFLAGS))#g" \
- -e "s#@QMAKE_LIBS_OPENGL_ES1@#$(strip $(QT4_QMAKE_LIBS_OPENGL_ES1))#g" \
- -e "s#@QMAKE_LIBS_OPENGL_ES1CL@#$(strip $(QT4_QMAKE_LIBS_OPENGL_ES1CL))#g" \
- -e "s#@QMAKE_LIBS_OPENGL_ES2@#$(strip $(QT4_QMAKE_LIBS_OPENGL_ES2))#g" \
- $$file > $${file%%.in}; \
- done
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-# the extra section seems to confuse the Webkit JIT code
-QT4_WRAPPER_BLACKLIST := \
- TARGET_COMPILER_RECORD_SWITCHES
-
-# don't use CROSS_ENV. Qt uses mkspecs for instead.
-# 'strip' is our special wrapper to avoid stripping
-QT4_ENV := $(CROSS_ENV_PKG_CONFIG) STRIP=strip MAKEFLAGS="$(PARALLELMFLAGS)"
-QT4_INSTALL_OPT := INSTALL_ROOT=$(QT4_PKGDIR)
-
-ifdef PTXCONF_ARCH_ARM_NEON
-ifdef PTXCONF_QT4_BUILD_WEBKIT
-# HACK: WebKit fails to build with thumb + NEON
-QT4_CXXFLAGS := -marm
-endif
-endif
-
-ifdef PTXCONF_ARCH_ARM_V6
-QT4_ARCH = armv6
-else
-QT4_ARCH = $(call remove_quotes, $(PTXCONF_ARCH_STRING))
-endif
-ifeq ($(QT4_ARCH),ppc)
-QT4_ARCH = powerpc
-endif
-
-define ptx/qt-plugin
-$(call ptx/ifdef, PTXCONF_QT4_$(strip $(1))_NONE,no,)$(call ptx/ifdef, PTXCONF_QT4_$(strip $(1))_PLUGIN,plugin,)$(call ptx/ifdef, PTXCONF_QT4_$(strip $(1))_BUILTIN,qt,)
-endef
-define ptx/qt
-$(call ptx/ifdef, PTXCONF_QT4_$(strip $(1)),qt,no)
-endef
-define ptx/qt-no
-$(call ptx/ifdef, PTXCONF_QT4_$(strip $(1)),y,no)
-endef
-define ptx/qt-system
-$(call ptx/ifdef, PTXCONF_QT4_$(strip $(1))_NONE,no,)$(call ptx/ifdef, PTXCONF_QT4_$(strip $(1))_SYSTEM,system,)$(call ptx/ifdef, PTXCONF_QT4_$(strip $(1))_INTERNAL,qt,)
-endef
-
-#
-# autoconf
-#
-# Important: Use "-no-fast" here. Otherwise qmake will be called during
-# the compile stage when the environment is not properly set!
-QT4_AUTOCONF := \
- -opensource \
- -confirm-license \
- -release \
- -no-rpath \
- -no-fast \
- -no-sql-ibase \
- -no-sql-mysql \
- -no-sql-odbc \
- -no-sql-psql \
- -no-sql-sqlite2 \
- -no-qt3support \
- -no-mmx \
- -no-3dnow \
- -no-sse \
- -no-sse2 \
- -no-sse3 \
- -no-ssse3 \
- -no-sse4.1 \
- -no-sse4.2 \
- -no-avx \
- -no-optimized-qmake \
- -no-nis \
- -no-cups \
- -no-pch \
- -reduce-relocations \
- -force-pkg-config \
- -prefix /usr \
- -no-armfpa \
- -make libs \
- -nomake docs
-
-QT4_AUTOCONF-$(call ptx/ifdef, PTXCONF_QT4_ACCESSIBILITY,y,no) += accessibility
-QT4_AUTOCONF-$(call ptx/ifdef, PTXCONF_ICONV,y,no) += iconv
-QT4_AUTOCONF-$(call ptx/ifdef, PTXCONF_GLOBAL_LARGE_FILE,y,no) += largefile
-QT4_AUTOCONF-$(call ptx/ifdef, PTXCONF_ARCH_ARM_NEON,,no) += neon
-
-QT4_AUTOCONF += -$(call ptx/ifdef, PTXCONF_ENDIAN_LITTLE, little, big)-endian
-
-
-ifdef PTXCONF_QT4_PLATFORM_EMBEDDED
-QT4_AUTOCONF += \
- -embedded $(QT4_ARCH) \
- -qt-decoration-styled \
- -depths all \
- -xplatform qws/linux-ptx-g++
-
-# graphics drivers
-QT4_AUTOCONF-$(call ptx/qt-plugin, GFX_AHI) += gfx-ahi
-QT4_AUTOCONF-$(call ptx/qt-plugin, GFX_EGLNULLWS) += gfx-eglnullws
-QT4_AUTOCONF-$(call ptx/qt-plugin, GFX_LINUXFB) += gfx-linuxfb
-QT4_AUTOCONF-$(call ptx/qt-plugin, GFX_POWERVR) += gfx-powervr
-QT4_AUTOCONF-$(call ptx/qt-plugin, GFX_SVGA) += gfx-svgalib
-QT4_AUTOCONF-$(call ptx/qt-plugin, GFX_TRANSFORMED) += gfx-transformed
-QT4_AUTOCONF-$(call ptx/qt-plugin, GFX_QVFB) += gfx-qvfb
-QT4_AUTOCONF-$(call ptx/qt-plugin, GFX_VNC) += gfx-vnc
-QT4_AUTOCONF-$(call ptx/qt-plugin, GFX_MULTISCREEN) += gfx-multiscreen
-QT4_AUTOCONF-$(call ptx/qt-plugin, GFX_HYBRID) += gfx-hybrid
-
-# keyboard drivers
-QT4_AUTOCONF-$(call ptx/qt, KBD_TTY) += kbd-tty
-QT4_AUTOCONF-$(call ptx/qt, KBD_INPUT) += kbd-linuxinput
-QT4_AUTOCONF-$(call ptx/qt, KBD_QVFB) += kbd-qvfb
-
-# mouse drivers
-QT4_AUTOCONF-$(call ptx/qt, MOUSE_PC) += mouse-pc
-QT4_AUTOCONF-$(call ptx/qt, MOUSE_INPUT) += mouse-linuxinput
-QT4_AUTOCONF-$(call ptx/qt, MOUSE_LINUXTP) += mouse-linuxtp
-QT4_AUTOCONF-$(call ptx/qt, MOUSE_TSLIB) += mouse-tslib
-QT4_AUTOCONF-$(call ptx/qt, MOUSE_QVFB) += mouse-qvfb
-
-endif # PTXCONF_QT4_PLATFORM_EMBEDDED
-
-ifdef PTXCONF_QT4_PLATFORM_X11
-QT4_AUTOCONF += \
- -x11 \
- -arch $(QT4_ARCH) \
- -xplatform linux-ptx-g++ \
- -no-gtkstyle \
- -no-nas-sound \
- -no-openvg
-
-QT4_AUTOCONF-$(call ptx/qt-no, X11_SM) += sm
-QT4_AUTOCONF-$(call ptx/qt-no, X11_XSHAPE) += xshape
-QT4_AUTOCONF-$(call ptx/qt-no, X11_XSYNC) += xsync
-QT4_AUTOCONF-$(call ptx/qt-no, X11_XINERAMA) += xinerama
-QT4_AUTOCONF-$(call ptx/qt-no, X11_XCURSOR) += xcursor
-QT4_AUTOCONF-$(call ptx/qt-no, X11_XFIXES) += xfixes
-QT4_AUTOCONF-$(call ptx/qt-no, X11_XRANDR) += xrandr
-QT4_AUTOCONF-$(call ptx/qt-no, X11_XRENDER) += xrender
-QT4_AUTOCONF-$(call ptx/qt-no, X11_MITSHM) += mitshm
-QT4_AUTOCONF-$(call ptx/qt-no, X11_FONTCONFIG) += fontconfig
-QT4_AUTOCONF-$(call ptx/qt-no, X11_XINPUT) += xinput
-QT4_AUTOCONF-$(call ptx/qt-no, X11_XKB) += xkb
-
-endif # PTXCONF_QT4_PLATFORM_X11
-
-QT4_AUTOCONF-$(call ptx/qt-system, PNG) += libpng
-QT4_AUTOCONF-$(call ptx/qt-system, MNG) += libmng
-QT4_AUTOCONF-$(call ptx/qt-system, TIFF) += libtiff
-QT4_AUTOCONF-$(call ptx/qt-system, GIF) += gif
-QT4_AUTOCONF-$(call ptx/qt-system, JPG) += libjpeg
-QT4_AUTOCONF-$(call ptx/qt-system, ZLIB) += zlib
-QT4_AUTOCONF-$(call ptx/qt-system, FREETYPE) += freetype
-ifdef PTXCONF_QT4_FREETYPE_SYSTEM
-QT4_AUTOCONF += -I$(SYSROOT)/usr/include/freetype2
-endif
-
-QT4_AUTOCONF-$(call ptx/qt-no, STL) += stl
-QT4_AUTOCONF-$(call ptx/qt-no, GLIB) += glib
-QT4_AUTOCONF-$(call ptx/qt-no, OPENSSL) += openssl
-QT4_AUTOCONF-$(call ptx/qt-no, OPENGL_EGL) += egl
-QT4_AUTOCONF-$(call ptx/qt-no, BUILD_QTXMLPATTERNS) += xmlpatterns exceptions
-QT4_AUTOCONF-$(call ptx/qt-no, BUILD_MULTIMEDIA) += multimedia audio-backend
-QT4_AUTOCONF-$(call ptx/qt-no, BUILD_PHONON) += phonon phonon-backend
-# QtWebKit need QtScript headers but not the lib.
-QT4_AUTOCONF-$(call ptx/qt-no, BUILD_WEBKIT) += webkit script
-QT4_AUTOCONF-$(call ptx/qt-no, BUILD_SCRIPTTOOLS) += scripttools
-QT4_AUTOCONF-$(call ptx/qt-no, BUILD_SVG) += svg
-QT4_AUTOCONF-$(call ptx/qt-no, BUILD_SCRIPT) += script
-QT4_AUTOCONF-$(call ptx/qt-no, BUILD_DECLARATIVE) += declarative
-
-QT4_AUTOCONF-$(call ptx/qt-plugin, SQLITE) += sql-sqlite
-ifdef QT4_SQLITE_SYSTEM
-QT4_AUTOCONF += -system-sqlite
-endif
-
-QT4_AUTOCONF-no := $(filter-out $(QT4_AUTOCONF-y),$(QT4_AUTOCONF-no))
-
-QT4_AUTOCONF += $(foreach opt,$(QT4_AUTOCONF-y),-$(opt))
-QT4_AUTOCONF += $(foreach opt,$(QT4_AUTOCONF-qt),-qt-$(opt))
-QT4_AUTOCONF += $(foreach opt,$(QT4_AUTOCONF-plugin),-plugin-$(opt))
-QT4_AUTOCONF += $(foreach opt,$(QT4_AUTOCONF-system),-system-$(opt))
-QT4_AUTOCONF += $(foreach opt,$(QT4_AUTOCONF-no),-no-$(opt))
-
-ifdef PTXCONF_QT4_DBUS_LOAD
-QT4_AUTOCONF += -dbus
-endif
-ifdef PTXCONF_QT4_DBUS_LINK
-QT4_AUTOCONF += -dbus-linked
-endif
-ifndef PTXCONF_QT4_DBUS
-QT4_AUTOCONF += -no-qdbus
-endif
-
-ifdef PTXCONF_QT4_OPENGL_DESKTOP
-QT4_AUTOCONF += -opengl
-endif
-ifdef PTXCONF_QT4_OPENGL_ES1
-QT4_AUTOCONF += -opengl es1
-endif
-ifdef PTXCONF_QT4_OPENGL_ES2
-QT4_AUTOCONF += -opengl es2
-endif
-ifdef PTXCONF_QT4_OPENGL_NONE
-QT4_AUTOCONF += -no-opengl
-endif
-
-ifdef PTXCONF_QT4_SHARED
-QT4_AUTOCONF += -shared
-QT4_PLUGIN_EXT := so
-else
-QT4_AUTOCONF += -static
-QT4_PLUGIN_EXT := a
-endif
-
-ifdef PTXCONF_QT4_BUILD_TOOLS
-QT4_AUTOCONF += -make tools
-else
-QT4_AUTOCONF += -nomake tools
-endif
-
-ifdef PTXCONF_QT4_PREPARE_EXAMPLES
-QT4_AUTOCONF += -make examples -make demos
-else
-QT4_AUTOCONF += -nomake examples -nomake demos
-endif
-
-# ----------------------------------------------------------------------------
-# Compile
-# ----------------------------------------------------------------------------
-
-QT4_BUILD-y := moc rcc corelib plugins
-QT4_BUILD-$(PTXCONF_QT4_BUILD_XML) += xml
-QT4_BUILD-$(PTXCONF_QT4_BUILD_GUI) += gui
-QT4_BUILD-$(PTXCONF_QT4_BUILD_SQL) += sql
-QT4_BUILD-$(PTXCONF_QT4_BUILD_NETWORK) += network
-QT4_BUILD-$(PTXCONF_QT4_BUILD_SVG) += svg
-QT4_BUILD-$(PTXCONF_QT4_BUILD_SCRIPT) += script
-QT4_BUILD-$(PTXCONF_QT4_BUILD_QTESTLIB) += testlib
-QT4_BUILD-$(PTXCONF_QT4_BUILD_DECLARATIVE) += declarative imports
-QT4_BUILD-$(PTXCONF_QT4_BUILD_QTXMLPATTERNS) += xmlpatterns
-QT4_BUILD-$(PTXCONF_QT4_BUILD_MULTIMEDIA) += multimedia
-QT4_BUILD-$(PTXCONF_QT4_BUILD_PHONON) += phonon
-QT4_BUILD-$(PTXCONF_QT4_BUILD_WEBKIT) += webkit script
-QT4_BUILD-$(PTXCONF_QT4_BUILD_SCRIPTTOOLS) += scripttools
-# qmlviewer does not need xml but we cannot built sub-tools without it
-QT4_BUILD-$(PTXCONF_QT4_BUILD_TOOLS) += xml
-
-QT4_BUILD_TARGETS := $(foreach lib, $(QT4_BUILD-y),sub-$(lib))
-
-ifdef PTXCONF_QT4_BUILD_TOOLS
-QT4_BUILD_TOOLS_TARGETS = sub-tools
-QT4_INSTALL_OPT += sub-tools-install_subtargets
-endif
-
-$(STATEDIR)/qt4.compile:
- @$(call targetinfo)
- @$(call compile, QT4, tools)
- @$(call compile, QT4, $(QT4_BUILD_TARGETS))
-
-# # These targets don't have the correct dependencies.
-# # We have to build them later
-ifneq ($(strip $(QT4_BUILD_TOOLS_TARGETS)),)
- @$(call compile, QT4, $(QT4_BUILD_TOOLS_TARGETS))
-endif
-ifdef PTXCONF_QT4_PREPARE_EXAMPLES
-# # FIXME: use "-k" and " || true" for now.
-# # some examples will may fail to build because of missing libraries
-# # these cannot be installed but all are built
- @$(call compile, QT4, -k sub-examples) || true
- @$(call compile, QT4, -k sub-demos) || true
-endif
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-QT4_INSTALL_OPT += install_mkspecs install_qmake
-QT4_INSTALL_OPT += $(foreach lib, $(QT4_BUILD-y),sub-$(lib)-install_subtargets)
-
-$(STATEDIR)/qt4.install:
- @$(call targetinfo)
- @$(call install, QT4)
- @find "$(QT4_PKGDIR)" -name "*.la" -print0 | xargs -r -0 -- \
- sed -i -e "/^dependency_libs/s:\( \|-L\|-R\)$(QT4_PKGDIR)\(/lib\|/usr/lib\):\1$(SYSROOT)\2:g"
- @find "$(QT4_PKGDIR)" -name "*.prl" -print0 | xargs -r -0 -- \
- sed -i -e "/^QMAKE_PRL_LIBS/s:\( \|-L\|-R\)$(QT4_PKGDIR)\(/lib\|/usr/lib\):\1$(SYSROOT)\2:g"
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-QT4_LIBS-y := QtCore
-QT4_LIBS-$(PTXCONF_QT4_BUILD_XML) += QtXml
-QT4_LIBS-$(PTXCONF_QT4_BUILD_GUI) += QtGui
-QT4_LIBS-$(PTXCONF_QT4_BUILD_SQL) += QtSql
-QT4_LIBS-$(PTXCONF_QT4_BUILD_NETWORK) += QtNetwork
-QT4_LIBS-$(PTXCONF_QT4_BUILD_SVG) += QtSvg
-QT4_LIBS-$(PTXCONF_QT4_BUILD_SCRIPT) += QtScript
-QT4_LIBS-$(PTXCONF_QT4_BUILD_QTESTLIB) += QtTest
-QT4_LIBS-$(PTXCONF_QT4_BUILD_DECLARATIVE) += QtDeclarative
-QT4_LIBS-$(PTXCONF_QT4_BUILD_ASSISTANTLIB) += QtCLucene QtHelp
-QT4_LIBS-$(PTXCONF_QT4_DBUS) += QtDBus
-QT4_LIBS-$(PTXCONF_QT4_BUILD_DESIGNERLIBS) += QtDesigner
-QT4_LIBS-$(PTXCONF_QT4_BUILD_WEBKIT) += QtWebKit
-QT4_LIBS-$(PTXCONF_QT4_BUILD_SCRIPTTOOLS) += QtScriptTools
-QT4_LIBS-$(PTXCONF_QT4_BUILD_QTXMLPATTERNS) += QtXmlPatterns
-QT4_LIBS-$(PTXCONF_QT4_BUILD_MULTIMEDIA) += QtMultimedia
-QT4_LIBS-$(PTXCONF_QT4_BUILD_OPENGL) += QtOpenGL
-QT4_LIBS-$(PTXCONF_QT4_BUILD_PHONON) += phonon
-
-# builtin for static Qt
-ifdef PTXCONF_QT4_SHARED
-QT4_IMAGEFORMATS-$(PTXCONF_QT4_GIF_NONE) += gif
-QT4_IMAGEFORMATS-$(PTXCONF_QT4_JPG_NONE) += jpeg
-QT4_IMAGEFORMATS-$(PTXCONF_QT4_MNG_NONE) += mng
-QT4_IMAGEFORMATS-$(PTXCONF_QT4_TIFF_NONE) += tiff
-endif
-QT4_IMAGEFORMATS-$(PTXCONF_QT4_ICO_NONE) += ico
-ifdef PTXCONF_QT4_BUILD_SVG
-QT4_IMAGEFORMATS- += svg
-endif
-
-QT4_GFXDRIVERS-$(call ptx/qt-plugin, GFX_EGLNULLWS) += eglnullws
-QT4_GFXDRIVERS-$(call ptx/qt-plugin, GFX_LINUXFB) += screenlinuxfb
-QT4_GFXDRIVERS-$(call ptx/qt-plugin, GFX_POWERVR) += gfxpvregl
-QT4_GFXDRIVERS-$(call ptx/qt-plugin, GFX_TRANSFORMED) += gfxtransformed
-QT4_GFXDRIVERS-$(call ptx/qt-plugin, GFX_QVFB) += screenvfb
-QT4_GFXDRIVERS-$(call ptx/qt-plugin, GFX_VNC) += gfxvnc
-
-ifdef PTXCONF_QT4_FONT_DEJAVU
-QT4_FONTS += \
- DejaVuSans-Bold.ttf \
- DejaVuSans-BoldOblique.ttf \
- DejaVuSans-Oblique.ttf \
- DejaVuSans.ttf \
- DejaVuSansMono-Bold.ttf \
- DejaVuSansMono-BoldOblique.ttf \
- DejaVuSansMono-Oblique.ttf \
- DejaVuSansMono.ttf \
- DejaVuSerif-Bold.ttf \
- DejaVuSerif-BoldOblique.ttf \
- DejaVuSerif-Oblique.ttf \
- DejaVuSerif.ttf
-endif
-ifdef PTXCONF_QT4_FONT_UT
-QT4_FONTS += \
- 'UTBI____.pfa' \
- 'UTB_____.pfa' \
- 'UTI_____.pfa' \
- 'UTRG____.pfa'
-endif
-
-ifdef PTXCONF_QT4_FONT_VERA
-QT4_FONTS += \
- Vera.ttf \
- VeraBI.ttf \
- VeraBd.ttf \
- VeraIt.ttf \
- VeraMoBI.ttf \
- VeraMoBd.ttf \
- VeraMoIt.ttf \
- VeraMono.ttf \
- VeraSe.ttf \
- VeraSeBd.ttf
-endif
-
-ifdef PTXCONF_QT4_FONT_C0
-QT4_FONTS += \
- c0419bt_.pfb \
- c0582bt_.pfb \
- c0583bt_.pfb \
- c0611bt_.pfb \
- c0632bt_.pfb \
- c0633bt_.pfb \
- c0648bt_.pfb \
- c0649bt_.pfb
-endif
-
-ifdef PTXCONF_QT4_FONT_COUR
-QT4_FONTS += \
- cour.pfa \
- courb.pfa \
- courbi.pfa \
- couri.pfa
-endif
-
-ifdef PTXCONF_QT4_FONT_CURSOR
-QT4_FONTS += \
- cursor.pfa
-endif
-
-ifdef PTXCONF_QT4_FONT_FIXED
-QT4_FONTS += \
- fixed_120_50.qpf \
- fixed_70_50.qpf
-endif
-
-ifdef PTXCONF_QT4_FONT_HELVETICA
-QT4_FONTS += \
- helvetica_100_50.qpf \
- helvetica_100_50i.qpf \
- helvetica_100_75.qpf \
- helvetica_100_75i.qpf \
- helvetica_120_50.qpf \
- helvetica_120_50i.qpf \
- helvetica_120_75.qpf \
- helvetica_120_75i.qpf \
- helvetica_140_50.qpf \
- helvetica_140_50i.qpf \
- helvetica_140_75.qpf \
- helvetica_140_75i.qpf \
- helvetica_180_50.qpf \
- helvetica_180_50i.qpf \
- helvetica_180_75.qpf \
- helvetica_180_75i.qpf \
- helvetica_240_50.qpf \
- helvetica_240_50i.qpf \
- helvetica_240_75.qpf \
- helvetica_240_75i.qpf \
- helvetica_80_50.qpf \
- helvetica_80_50i.qpf \
- helvetica_80_75.qpf \
- helvetica_80_75i.qpf
-endif
-
-ifdef PTXCONF_QT4_FONT_JAPANESE
-QT4_FONTS += \
- japanese_230_50.qpf
-endif
-
-ifdef PTXCONF_QT4_FONT_L04
-QT4_FONTS += \
- l047013t.pfa \
- l047016t.pfa \
- l047033t.pfa \
- l047036t.pfa \
- l048013t.pfa \
- l048016t.pfa \
- l048033t.pfa \
- l048036t.pfa \
- l049013t.pfa \
- l049016t.pfa \
- l049033t.pfa \
- l049036t.pfa
-endif
-
-$(STATEDIR)/qt4.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, qt4)
- @$(call install_fixup, qt4,PRIORITY,optional)
- @$(call install_fixup, qt4,SECTION,base)
- @$(call install_fixup, qt4,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
- @$(call install_fixup, qt4,DESCRIPTION,missing)
-
-ifdef PTXCONF_QT4_SHARED
- @$(foreach lib, $(QT4_LIBS-y), \
- $(call install_lib, qt4, 0, 0, 0644, lib$(lib));)
-
-endif #PTXCONF_QT4_SHARED
-
-ifdef PTXCONF_QT4_BUILD_DECLARATIVE
-ifdef PTXCONF_QT4_BUILD_WEBKIT
- @$(call install_copy, qt4, 0, 0, 0644, -, \
- /usr/imports/QtWebKit/qmldir)
- @$(call install_copy, qt4, 0, 0, 0644, -, \
- /usr/imports/QtWebKit/libqmlwebkitplugin.$(QT4_PLUGIN_EXT))
-endif
- @$(call install_copy, qt4, 0, 0, 0644, -, \
- /usr/imports/Qt/labs/folderlistmodel/qmldir)
- @$(call install_copy, qt4, 0, 0, 0644, -, \
- /usr/imports/Qt/labs/folderlistmodel/libqmlfolderlistmodelplugin.$(QT4_PLUGIN_EXT))
-
- @$(call install_copy, qt4, 0, 0, 0644, -, \
- /usr/imports/Qt/labs/gestures/qmldir)
- @$(call install_copy, qt4, 0, 0, 0644, -, \
- /usr/imports/Qt/labs/gestures/libqmlgesturesplugin.$(QT4_PLUGIN_EXT))
-
- @$(call install_copy, qt4, 0, 0, 0644, -, \
- /usr/imports/Qt/labs/particles/qmldir)
- @$(call install_copy, qt4, 0, 0, 0644, -, \
- /usr/imports/Qt/labs/particles/libqmlparticlesplugin.$(QT4_PLUGIN_EXT))
-endif
-ifdef PTXCONF_QT4_SQLITE_PLUGIN
- @$(call install_copy, qt4, 0, 0, 0644, -, \
- /usr/plugins/sqldrivers/libqsqlite.$(QT4_PLUGIN_EXT))
-endif
- @$(foreach lib, $(QT4_GFXDRIVERS-plugin), \
- $(call install_copy, qt4, 0, 0, 0644, -, \
- /usr/plugins/gfxdrivers/libq$(lib).$(QT4_PLUGIN_EXT));)
-ifdef PTXCONF_QT4_GFX_POWERVR_PLUGIN
- @$(call install_lib, qt4, 0, 0, 0644, libpvrQWSWSEGL)
-endif
-
-ifdef PTXCONF_QT4_DBUS
-ifdef PTXCONF_QT4_BUILD_SCRIPT
- @$(call install_copy, qt4, 0, 0, 0644, -, \
- /usr/plugins/script/libqtscriptdbus.$(QT4_PLUGIN_EXT))
-endif
-endif
-
-# # not *_NONE is used here
- @$(foreach lib, $(QT4_IMAGEFORMATS-), \
- $(call install_copy, qt4, 0, 0, 0644, -, \
- /usr/plugins/imageformats/libq$(lib).$(QT4_PLUGIN_EXT));)
-ifdef PTXCONF_QT4_BUILD_SVG
- @$(call install_copy, qt4, 0, 0, 0644, -, \
- /usr/plugins/iconengines/libqsvgicon.$(QT4_PLUGIN_EXT))
-endif
-
-ifdef PTXCONF_QT4_BUILD_NETWORK
- @$(call install_copy, qt4, 0, 0, 0644, -, \
- /usr/plugins/bearer/libqgenericbearer.$(QT4_PLUGIN_EXT))
-ifdef PTXCONF_QT4_DBUS
- @$(call install_copy, qt4, 0, 0, 0644, -, \
- /usr/plugins/bearer/libqnmbearer.$(QT4_PLUGIN_EXT))
-endif
-endif
-ifdef PTXCONF_QT4_BUILD_PHONON
- @$(call install_copy, qt4, 0, 0, 0644, -, \
- /usr/plugins/phonon_backend/libphonon_gstreamer.$(QT4_PLUGIN_EXT))
-endif
-ifdef PTXCONF_QT4_INSTALL_QMLVIEWER
- @$(call install_copy, qt4, 0, 0, 0755, -, \
- /usr/bin/qmlviewer)
-endif
-
- @$(foreach font, $(QT4_FONTS), \
- $(call install_copy, qt4, 0, 0, 0644, -, \
- /usr/lib/fonts/$(font));)
-
-ifdef PTXCONF_PRELINK
- @$(call install_alternative, qt4, 0, 0, 0644, \
- /etc/prelink.conf.d/qt4)
-endif
-
- @$(call install_finish, qt4)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/qt5.in b/rules/qt5.in
index 527f5e962..ff0246c2a 100644
--- a/rules/qt5.in
+++ b/rules/qt5.in
@@ -3,9 +3,7 @@
menuconfig QT5
tristate
select HOST_SYSTEM_PERL
- # python2 or python3 works for QtDeclarative but QtWebengine need python2
- select HOST_SYSTEM_PYTHON3 if QT5_MODULE_QTDECLARATIVE && !QT5_MODULE_QTWEBENGINE
- select HOST_SYSTEM_PYTHON if QT5_MODULE_QTWEBENGINE
+ select HOST_SYSTEM_PYTHON3 if QT5_MODULE_QTDECLARATIVE || QT5_MODULE_QTWEBENGINE
select LIBC_PTHREAD
select LIBC_DL
select LIBC_RT
@@ -19,6 +17,7 @@ menuconfig QT5
select HOST_LIBPNG if QT5_MODULE_QTWEBENGINE
select LIBJPEG if QT5_LIBJPEG || QT5_MODULE_QTWEBENGINE
select LIBMNG if QT5_LIBMNG
+ select LIBTIFF if QT5_MODULE_QTIMAGEFORMATS
select LIBWEBP if QT5_MODULE_QTIMAGEFORMATS
select ICU if QT5_ICU
select SYSTEMD if QT5_JOURNALD
@@ -53,6 +52,7 @@ menuconfig QT5
select XORG_LIB_XEXT if QT5_XV
select XORG_LIB_XCOMPOSITE if QT5_MODULE_QTWEBENGINE && QT5_PLATFORM_XCB
select XORG_LIB_XCURSOR if QT5_MODULE_QTWEBENGINE && QT5_PLATFORM_XCB
+ select XORG_LIB_XKBFILE if QT5_MODULE_QTWEBENGINE && QT5_PLATFORM_XCB
select XORG_LIB_XRANDR if QT5_MODULE_QTWEBENGINE && QT5_PLATFORM_XCB
select XORG_LIB_XSCRNSAVER if QT5_MODULE_QTWEBENGINE && QT5_PLATFORM_XCB
select XORG_LIB_XTST if QT5_MODULE_QTWEBENGINE && QT5_PLATFORM_XCB
@@ -62,6 +62,7 @@ menuconfig QT5
select NSS if QT5_MODULE_QTWEBENGINE
select HOST_NSS if QT5_MODULE_QTWEBENGINE
select HOST_NINJA if QT5_MODULE_QTWEBENGINE
+ select HOST_NODEJS if QT5_MODULE_QTWEBENGINE
select ALSA_LIB if QT5_MODULE_QTMULTIMEDIA || QT5_MODULE_QTWEBENGINE_MEDIA
select ALSA_LIB_MIXER if QT5_MODULE_QTWEBENGINE_MEDIA
select ALSA_LIB_HWDEP if QT5_MODULE_QTWEBENGINE_MEDIA
@@ -373,6 +374,8 @@ config QT5_MODULE_QTBASE_SQL_SQLITE
config QT5_MODULE_QTBASE_SQL_MYSQL
bool
+ # fails to build with current MariaDB
+ depends on BROKEN
prompt "mySQL backend"
endif
@@ -461,6 +464,7 @@ config QT5_MODULE_QTGAMEPAD_QUICK
config QT5_MODULE_QTGRAPHICALEFFECTS
bool
depends on QT5_GUI
+ select QT5_OPENGL
select QT5_MODULE_QTDECLARATIVE
prompt "QtGraphicalEffects"
@@ -526,6 +530,7 @@ config QT5_MODULE_QTQUICKCONTROLS
config QT5_MODULE_QTQUICKCONTROLS2
bool
+ select QT5_LIBPNG
select QT5_MODULE_QTDECLARATIVE
select QT5_MODULE_QTGRAPHICALEFFECTS
prompt "QtQuickControls2"
@@ -636,8 +641,6 @@ config QT5_MODULE_QTVIRTUALKEYBOARD
config QT5_MODULE_QTWAYLAND
bool
depends on QT5_GUI
- # HACK: we get link errors without this
- select QT5_PLATFORM_EGLFS if QT5_OPENGL_ES2
prompt "QtWayland"
if QT5_MODULE_QTWAYLAND
diff --git a/rules/qt5.make b/rules/qt5.make
index 0aff502a9..918381e8b 100644
--- a/rules/qt5.make
+++ b/rules/qt5.make
@@ -14,9 +14,9 @@ PACKAGES-$(PTXCONF_QT5) += qt5
#
# Paths and names
#
-QT5_VERSION := 5.15.2
-QT5_MD5 := e1447db4f06c841d8947f0a6ce83a7b5
-QT5 := qt-everywhere-src-$(QT5_VERSION)
+QT5_VERSION := 5.15.12
+QT5_MD5 := 3fb1cd4f763f5d50d491508b7b99fb77
+QT5 := qt-everywhere-opensource-src-$(QT5_VERSION)
QT5_SUFFIX := tar.xz
QT5_URL := \
http://download.qt-project.org/archive/qt/$(basename $(QT5_VERSION))/$(QT5_VERSION)/single/$(QT5).$(QT5_SUFFIX) \
@@ -78,7 +78,7 @@ QT5_PKG_CONFIG_ENV := \
# target options are provided via mkspecs
QT5_CONF_ENV := \
$(QT5_PKG_CONFIG_ENV) \
- MAKEFLAGS="$(PARALLELMFLAGS)" \
+ MAKEFLAGS="$(PARALLELMFLAGS) --output-sync=none" \
COMPILER_PREFIX=$(COMPILER_PREFIX)
ifdef PTXCONF_QT5_MODULE_QTWEBENGINE
@@ -113,6 +113,7 @@ QT5_CONF_OPT := \
-opensource \
-confirm-license \
-release \
+ -no-feature-relocatable \
--disable-optimized-tools \
--disable-separate-debug-info \
--disable-gdb-index \
@@ -235,6 +236,13 @@ QT5_CONF_OPT := \
--$(call ptx/endis, PTXCONF_QT5_MODULE_QTBASE_SQL_SQLITE)-sql-sqlite \
$(call ptx/qt5-system, PTXCONF_QT5_MODULE_QTBASE_SQL_SQLITE)-sqlite
+ifdef PTXCONF_ARCH_X86
+ifndef PTXCONF_ARCH_X86_64
+QT5_CONF_OPT += \
+ --disable-sse2
+endif
+endif
+
# Note: these options are not listed in '--help' but they exist
QT5_CONF_OPT += \
--disable-sm \
@@ -334,7 +342,7 @@ ifdef PTXCONF_QT5_MODULE_QTWEBENGINE
ifndef PTXCONF_ARCH_LP64
@echo "Checking for 32bit g++ host compiler ..."
@$(call world/execute, QT5, \
- echo -e '#include <list>\n int main() { std::list<int> a; return 0; }' | \
+ echo -e '#include <list>\n#include <errno.h>\n int main() { std::list<int> a; return 0; }' | \
g++ -x c++ - -o /dev/null -m32 &> /dev/null || \
ptxd_bailout "32bit g++ host compiler is missing (needed for QtWebengine)." \
"Please install g++-multilib (debian)")
@@ -370,19 +378,19 @@ $(STATEDIR)/qt5.install.post:
@find $(QT5_PKGDIR) -name '*.pri' -o -name '*.cmake' | \
xargs sed -i 's;@WORKSPACE@;$(PTXDIST_WORKSPACE);g'
@$(call world/install.post, QT5)
- @echo "[Paths]" > $(QT5_QT_CONF)
- @echo "HostPrefix=$(SYSROOT)/usr" >> $(QT5_QT_CONF)
- @echo "HostData=$(SYSROOT)/usr/lib/qt5" >> $(QT5_QT_CONF)
- @echo "HostBinaries=$(PTXDIST_SYSROOT_CROSS)/bin/qt5" >> $(QT5_QT_CONF)
- @echo "Prefix=/usr" >> $(QT5_QT_CONF)
- @echo "Headers=$(SYSROOT)/usr/include/qt5" >> $(QT5_QT_CONF)
- @echo "Libraries=$(SYSROOT)/usr/lib" >> $(QT5_QT_CONF)
- @echo "Imports=/usr/lib/qt5/imports" >> $(QT5_QT_CONF)
- @echo "Qml2Imports=/usr/lib/qt5/qml" >> $(QT5_QT_CONF)
- @echo "" >> $(QT5_QT_CONF)
+ @echo "[Paths]" > $(QT5_QT_CONF)
+ @echo "HostPrefix=$(SYSROOT)/usr" >> $(QT5_QT_CONF)
+ @echo "HostData=$(SYSROOT)/usr/lib/qt5" >> $(QT5_QT_CONF)
+ @echo "HostBinaries=$(PTXDIST_SYSROOT_CROSS)/usr/bin/qt5" >> $(QT5_QT_CONF)
+ @echo "Prefix=/usr" >> $(QT5_QT_CONF)
+ @echo "Headers=$(SYSROOT)/usr/include/qt5" >> $(QT5_QT_CONF)
+ @echo "Libraries=$(SYSROOT)/usr/lib" >> $(QT5_QT_CONF)
+ @echo "Imports=/usr/lib/qt5/imports" >> $(QT5_QT_CONF)
+ @echo "Qml2Imports=/usr/lib/qt5/qml" >> $(QT5_QT_CONF)
+ @echo "" >> $(QT5_QT_CONF)
# # qmake is found in sysroot-cross (via PATH) and sysroot target (via cmake)
- @rm -rf $(PTXDIST_SYSROOT_CROSS)/bin/qt5
- @cp -a $(SYSROOT)/usr/bin/qt5 $(PTXDIST_SYSROOT_CROSS)/bin/qt5
+ @rm -rf $(PTXDIST_SYSROOT_CROSS)/usr/bin/qt5
+ @cp -a $(SYSROOT)/usr/bin/qt5 $(PTXDIST_SYSROOT_CROSS)/usr/bin/qt5
@$(call touch)
diff --git a/rules/qt5examples.in b/rules/qt5examples.in
index 1523777a0..ba7dd08f1 100644
--- a/rules/qt5examples.in
+++ b/rules/qt5examples.in
@@ -1937,6 +1937,7 @@ config QT5_EXAMPLES_QT3D_SCENE2D
depends on QT5_MODULE_QT3D
depends on QT5_MODULE_QTBASE
depends on QT5_MODULE_QTBASE_GUI
+ depends on QT5_MODULE_QTDECLARATIVE_QUICK
config QT5_EXAMPLES_QT3D_SCENE3D
bool
diff --git a/rules/qt5examples.make b/rules/qt5examples.make
index efcdeea82..d8f4fb255 100644
--- a/rules/qt5examples.make
+++ b/rules/qt5examples.make
@@ -2493,6 +2493,8 @@ endif
endif
ifneq ($(strip $(PTXCONF_QT5_MODULE_QTREMOTEOBJECTS)),)
ifdef PTXCONF_QT5_EXAMPLES_REMOTEOBJECTS_SSL_SSLSERVER
+ @$(call install_copy, qt5-examples, 0, 0, 0644, -, \
+ /usr/lib/qt5/examples/remoteobjects/ssl/sslserver/cert/readme)
@$(call install_copy, qt5-examples, 0, 0, 0755, -, \
/usr/lib/qt5/examples/remoteobjects/ssl/sslserver/sslserver)
endif
diff --git a/rules/qt6.in b/rules/qt6.in
new file mode 100644
index 000000000..36c2bddf1
--- /dev/null
+++ b/rules/qt6.in
@@ -0,0 +1,578 @@
+## SECTION=qt
+
+menuconfig QT6
+ tristate
+ select HOST_CMAKE
+ select HOST_NINJA
+ select HOST_FONTCONFIG if QT6_MODULE_QTWEBENGINE
+ select HOST_FREETYPE if QT6_MODULE_QTWEBENGINE
+ select HOST_LIBJPEG if QT6_MODULE_QTWEBENGINE
+ select HOST_LIBPNG if QT6_MODULE_QTWEBENGINE
+ select HOST_LIBWEBP if QT6_MODULE_QTWEBENGINE
+ select HOST_NINJA if QT6_MODULE_QTWEBENGINE
+ select HOST_NODEJS if QT6_MODULE_QTWEBENGINE
+ select HOST_NSPR if QT6_MODULE_QTWEBENGINE
+ select HOST_NSS if QT6_MODULE_QTWEBENGINE
+ select HOST_QT6
+ select HOST_QT6_DBUS if QT6_DBUS
+ select HOST_QT6_QTDECLARATIVE if QT6_MODULE_QTDECLARATIVE
+ select HOST_QT6_QTQUICK3D if QT6_MODULE_QTQUICK3D
+ select HOST_QT6_QTREMOTEOBJECTS if QT6_MODULE_QTREMOTEOBJECTS
+ select HOST_QT6_QTSCXML if QT6_MODULE_QTSCXML
+ select HOST_QT6_QTSHADERTOOLS if QT6_MODULE_QTSHADERTOOLS
+ select HOST_QT6_QTWAYLAND if QT6_MODULE_QTWAYLAND
+ select HOST_QT6_QTWEBENGINE if QT6_MODULE_QTWEBENGINE
+ select HOST_SYSTEM_PERL
+ select HOST_SYSTEM_PYTHON3 if QT6_MODULE_QTDECLARATIVE || QT6_MODULE_QTWEBENGINE
+ select HOST_SYSTEM_PYTHON3_HTML5LIB if QT6_MODULE_QTWEBENGINE
+ select LIBC_PTHREAD
+ select LIBC_DL
+ select LIBC_RT
+ select LIBC_M
+ select GCCLIBS_CXX
+ select GCCLIBS_GCC_S
+ select PCRE2
+ select PCRE2_16
+ select ZLIB
+ select ALSA_LIB if QT6_MODULE_QTMULTIMEDIA || QT6_MODULE_QTWEBENGINE_MEDIA
+ select ALSA_LIB_HWDEP if QT6_MODULE_QTWEBENGINE_MEDIA
+ select ALSA_LIB_MIXER if QT6_MODULE_QTWEBENGINE_MEDIA
+ select ALSA_LIB_PCM if QT6_MODULE_QTMULTIMEDIA || QT6_MODULE_QTWEBENGINE_MEDIA
+ select ALSA_LIB_RAWMIDI if QT6_MODULE_QTWEBENGINE_MEDIA
+ select ALSA_LIB_SEQ if QT6_MODULE_QTWEBENGINE_MEDIA
+ select BLUEZ if QT6_MODULE_QTCONNECTIVITY
+ select BLUEZ_LIBBLUETOOTH if QT6_MODULE_QTCONNECTIVITY
+ select DBUS if QT6_DBUS || QT6_MODULE_QTWEBENGINE || QT6_MODULE_QTCONNECTIVITY
+ select FONTCONFIG if QT6_GUI || QT6_MODULE_QTWEBENGINE
+ select FREETYPE if QT6_GUI || QT6_MODULE_QTWEBENGINE
+ select GLIB if QT6_GLIB
+ select GSTREAMER1 if QT6_MODULE_QTMULTIMEDIA_GST
+ select GST_PLUGINS_BASE1 if QT6_MODULE_QTMULTIMEDIA_GST
+ select GST_PLUGINS_BASE1_APP if QT6_MODULE_QTMULTIMEDIA_GST
+ select GST_PLUGINS_BASE1_GL if QT6_MODULE_QTMULTIMEDIA_GST && QT6_OPENGL
+ select HARFBUZZ if QT6_GUI
+ select ICU if QT6_ICU
+ select LIBDRM if QT6_PLATFORM_EGLFS
+ select LIBINPUT if QT6_INPUT_LIBINPUT
+ select LIBJPEG if QT6_LIBJPEG || QT6_MODULE_QTWEBENGINE
+ select LIBMNG if QT6_LIBMNG
+ select LIBPNG if QT6_LIBPNG || QT6_MODULE_QTWEBENGINE
+ select LIBTIFF if QT6_MODULE_QTIMAGEFORMATS || QT6_MODULE_QTWEBENGINE
+ select LIBWEBP if QT6_MODULE_QTIMAGEFORMATS || QT6_MODULE_QTWEBENGINE
+ select LIBWEBP_DEMUX if QT6_MODULE_QTIMAGEFORMATS || QT6_MODULE_QTWEBENGINE
+ select LIBWEBP_MUX if QT6_MODULE_QTIMAGEFORMATS || QT6_MODULE_QTWEBENGINE
+ select LIBXKBCOMMON if QT6_LIBXKBCOMMON
+ select MESALIB if QT6_PLATFORM_EGLFS
+ select MESALIB_EGL if QT6_PLATFORM_EGLFS || QT6_MODULE_QTWAYLAND_MESA
+ select MESALIB_EGL_DRM if QT6_PLATFORM_EGLFS
+ select MESALIB_EGL_WAYLAND if QT6_MODULE_QTWAYLAND_MESA
+ select MESALIB_GBM if QT6_PLATFORM_EGLFS
+ select MYSQLDB if QT6_MODULE_QTBASE_SQL_MYSQL
+ select NSPR if QT6_MODULE_QTWEBENGINE
+ select NSS if QT6_MODULE_QTWEBENGINE
+ select OPENSSL if QT6_OPENSSL
+ select OPUS if QT6_MODULE_QTWEBENGINE
+ select PLATFORM_OPENGL if QT6_OPENGL
+ select SQLITE if QT6_MODULE_QTBASE_SQL_SQLITE
+ select SYSTEMD if QT6_JOURNALD
+ select UDEV if QT6_LIBUDEV
+ select UDEV_LIBUDEV if QT6_LIBUDEV
+ select WAYLAND if QT6_MODULE_QTWAYLAND
+
+ select QT6_MODULE_QTBASE
+ select QT6_MODULE_QTBASE_SQL if QT6_MODULE_QTDECLARATIVE
+ prompt "qt6 "
+ help
+ Qt is a full development framework with tools designed to
+ streamline the creation of applications and user interfaces
+ for desktop, embedded and mobile platforms.
+
+if QT6
+
+config QT6_LIBXKBCOMMON
+ bool
+ default QT6_MODULE_QTWAYLAND || QT6_INPUT_LIBINPUT || QT6_MODULE_QTWEBENGINE
+
+menu "Feature Options "
+
+config QT6_GIF
+ bool
+ prompt "gif support"
+
+config QT6_LIBJPEG
+ bool
+ prompt "JPEG support"
+
+config QT6_LIBMNG
+ bool
+ select QT6_MODULE_QTIMAGEFORMATS
+ prompt "MNG support"
+
+config QT6_LIBPNG
+ bool
+ prompt "PNG support"
+
+comment "----------------------------"
+
+config QT6_ACCESSIBILITY
+ bool
+ prompt "accessibility support"
+
+config QT6_ICU
+ bool
+ prompt "ICU support"
+
+config QT6_DBUS
+ bool
+ select QT6_GLIB
+ prompt "D-Bus support"
+
+config QT6_GLIB
+ bool
+ prompt "glib support"
+
+config QT6_LIBUDEV
+ bool
+
+config QT6_JOURNALD
+ bool
+ depends on INITMETHOD_SYSTEMD
+ default y
+ prompt "journald support"
+
+config QT6_OPENSSL
+ bool
+ prompt "OpenSSL support"
+
+config QT6_OPENGL
+ bool
+ prompt "OpenGL ES2 support"
+
+config QT6_TEST
+ bool
+ prompt "Testing support"
+
+endmenu
+
+menuconfig QT6_GUI
+ bool
+ select QT6_LIBUDEV
+ prompt "GUI Platform Plugins "
+
+if QT6_GUI
+
+comment "supported plugins"
+
+config QT6_PLATFORM_DEFAULT
+ string
+ default "eglfs" if QT6_PLATFORM_DEFAULT_EGLFS
+ default "wayland" if QT6_PLATFORM_DEFAULT_WAYLAND
+
+config QT6_PLATFORM_EGLFS
+ bool
+ prompt "eglfs"
+ select QT6_OPENGL
+
+comment "default plugin"
+
+choice
+ prompt "selected"
+ help
+ At least one GUI platform plugin must be selected here to be used as
+ the default. Don't keep this entry as '--nothing--'.
+
+config QT6_PLATFORM_DEFAULT_MISSING
+ bool
+ prompt "--nothing--"
+ depends on !QT6_PLATFORM_EGLFS
+ depends on !QT6_MODULE_QTWAYLAND
+
+config QT6_PLATFORM_DEFAULT_EGLFS
+ bool
+ depends on QT6_PLATFORM_EGLFS
+ prompt "eglfs"
+
+config QT6_PLATFORM_DEFAULT_WAYLAND
+ bool
+ depends on QT6_MODULE_QTWAYLAND
+ prompt "wayland"
+
+endchoice
+
+endif
+
+# add this here so 'Input Plugins' is sorted into the correct menu
+config QT6_WIDGETS
+ bool
+
+if QT6_GUI
+
+menu "Input Plugins "
+
+config QT6_INPUT_EVDEV
+ bool
+ select QT6_LIBUDEV
+ default y
+ prompt "evdev"
+
+config QT6_INPUT_LIBINPUT
+ bool
+ select QT6_LIBUDEV
+ prompt "libinput"
+
+endmenu
+
+endif
+
+menu "Modules "
+
+config QT6_MODULE_QT3D
+ bool
+ select QT6_GUI
+ select QT6_OPENGL
+ select QT6_MODULE_QTDECLARATIVE
+ prompt "Qt3D"
+
+config QT6_MODULE_QT3D_QUICK
+ bool
+ depends on QT6_MODULE_QT3D
+ default QT6_MODULE_QTDECLARATIVE
+
+config QT6_MODULE_QT5COMPAT
+ bool
+ prompt "Qt5Compat"
+
+config QT6_MODULE_QT5COMPAT_QUICK
+ bool
+ depends on QT6_MODULE_QT5COMPAT
+ default QT6_MODULE_QTDECLARATIVE
+
+config QT6_MODULE_QTBASE
+ bool
+ prompt "QtBase"
+
+if QT6_MODULE_QTBASE
+
+config QT6_MODULE_QTBASE_GUI
+ bool
+ default QT6_GUI
+
+config QT6_MODULE_QTBASE_WIDGETS
+ bool
+ select QT6_GUI
+ select QT6_WIDGETS
+ select QT6_LIBPNG
+ prompt "QtWidgets"
+
+config QT6_MODULE_QTBASE_PRINT
+ bool
+ select QT6_MODULE_QTBASE_WIDGETS
+ prompt "printing support"
+
+config QT6_MODULE_QTBASE_SQL
+ bool
+ prompt "QtSQL"
+
+if QT6_MODULE_QTBASE_SQL
+
+config QT6_MODULE_QTBASE_SQL_SQLITE
+ bool
+ prompt "SQLite backend"
+
+config QT6_MODULE_QTBASE_SQL_MYSQL
+ bool
+ # fails to build with current MariaDB
+ depends on BROKEN
+ prompt "mySQL backend"
+
+endif
+
+endif
+
+config QT6_MODULE_QTCHARTS
+ bool
+ select QT6_MODULE_QTBASE_WIDGETS
+ prompt "QtCharts"
+
+config QT6_MODULE_QTCHARTS_QUICK
+ bool
+ depends on QT6_MODULE_QTCHARTS
+ default QT6_MODULE_QTDECLARATIVE
+
+config QT6_MODULE_QTCOAP
+ bool
+ prompt "QtCoap"
+
+config QT6_MODULE_QTCONNECTIVITY
+ bool
+ select QT6_DBUS
+ prompt "QtConnectivity"
+
+config QT6_MODULE_QTCONNECTIVITY_QUICK
+ bool
+ depends on QT6_MODULE_QTCONNECTIVITY
+ default QT6_MODULE_QTDECLARATIVE
+
+config QT6_MODULE_QTDATAVIS3D
+ bool
+ select QT6_MODULE_QTBASE_WIDGETS
+ select QT6_MODULE_QTDECLARATIVE
+ select QT6_OPENGL
+ prompt "QtDataVisualization"
+
+config QT6_MODULE_QTDECLARATIVE
+ bool
+ # FIXME: fails to build without QT6_TEST
+ select QT6_TEST
+ select QT6_MODULE_QTSHADERTOOLS
+ prompt "QtDeclarative"
+
+if QT6_MODULE_QTDECLARATIVE
+
+config QT6_MODULE_QTDECLARATIVE_QML
+ bool
+ prompt "install qml"
+ help
+ Commandline application that replaces qmlscene.
+
+config QT6_MODULE_QTDECLARATIVE_QMLSCENE
+ bool
+ prompt "install qmlscene (deprecated)"
+
+config QT6_MODULE_QTDECLARATIVE_DEBUG
+ bool
+ prompt "QML debugging"
+
+config QT6_MODULE_QTDECLARATIVE_QUICK
+ bool
+ default QT6_GUI
+
+if QT6_MODULE_QTDECLARATIVE_QUICK
+
+config QT6_MODULE_QTDECLARATIVE_QUICK_WIDGETS
+ bool
+ default QT6_WIDGETS
+
+config QT6_MODULE_QTDECLARATIVE_QUICK_DEBUG
+ bool
+ default QT6_MODULE_QTDECLARATIVE_DEBUG
+
+config QT6_MODULE_QTDECLARATIVE_QUICK_PARTICLES
+ bool
+ default QT6_OPENGL
+
+endif
+endif
+
+config QT6_MODULE_QTGRAPHS
+ bool
+ select QT6_GUI
+ select QT6_MODULE_QTDECLARATIVE
+ prompt"QtGraphs"
+
+config QT6_MODULE_QTHTTPSERVER
+ bool
+ prompt"QtHttpServer"
+
+config QT6_MODULE_QTIMAGEFORMATS
+ bool
+ prompt "QtImageFormats"
+
+config QT6_MODULE_QTLOTTIE
+ bool
+ select QT6_MODULE_QTDECLARATIVE
+ prompt "QtLottie"
+
+config QT6_MODULE_QTMQTT
+ bool
+ select QT6_MODULE_QTDECLARATIVE
+ prompt "QtMqtt"
+
+config QT6_MODULE_QTMULTIMEDIA
+ bool
+ select QT6_GUI
+ select QT6_MODULE_QTSHADERTOOLS
+ prompt "QtMultimedia"
+
+if QT6_MODULE_QTMULTIMEDIA
+
+config QT6_MODULE_QTMULTIMEDIA_GST
+ bool
+ default y
+ prompt "gstreamer backend"
+
+config QT6_MODULE_QTMULTIMEDIA_QUICK
+ bool
+ default QT6_MODULE_QTDECLARATIVE_QUICK
+
+config QT6_MODULE_QTMULTIMEDIA_WIDGETS
+ bool
+ default QT6_WIDGETS
+
+endif
+
+config QT6_MODULE_QTNETWORKAUTH
+ bool
+ prompt "QtNetworkAuth"
+
+config QT6_MODULE_QTOPCUA
+ bool
+ select QT6_MODULE_QTDECLARATIVE
+ prompt "QtOpcua"
+
+config QT6_MODULE_QTOPCUA_QUICK
+ bool
+ depends on QT6_MODULE_QTOPCUA
+ default QT6_MODULE_QTDECLARATIVE
+
+config QT6_MODULE_QTPOSITIONING
+ bool
+ prompt "QtPositioning"
+
+config QT6_MODULE_QTPOSITIONING_QUICK
+ bool
+ depends on QT6_MODULE_QTPOSITIONING
+ default QT6_MODULE_QTDECLARATIVE
+
+config QT6_MODULE_QTQUICK3D
+ bool
+ select QT6_MODULE_QTDECLARATIVE
+ select QT6_MODULE_QTQUICKTIMELINE
+ select QT6_MODULE_QTSHADERTOOLS
+ prompt "QtQuick3D"
+
+config QT6_MODULE_QTQUICK3DPHYSICS
+ bool
+ select QT6_MODULE_QTQUICK3D
+ prompt "QtQuick3DPhysics"
+
+config QT6_MODULE_QTQUICKTIMELINE
+ bool
+ select QT6_MODULE_QTDECLARATIVE
+ prompt "QtQuickTimeline"
+
+config QT6_MODULE_QTREMOTEOBJECTS
+ bool
+ prompt "QtRemoteObjects"
+
+config QT6_MODULE_QTREMOTEOBJECTS_QUICK
+ bool
+ depends on QT6_MODULE_QTREMOTEOBJECTS
+ default QT6_MODULE_QTDECLARATIVE
+
+config QT6_MODULE_QTSCXML
+ bool
+ prompt "QtScxml"
+
+config QT6_MODULE_QTSCXML_QUICK
+ bool
+ depends on QT6_MODULE_QTSCXML
+ default QT6_MODULE_QTDECLARATIVE
+
+config QT6_MODULE_QTSENSORS
+ bool
+ prompt "QtSensors"
+
+config QT6_MODULE_QTSENSORS_QUICK
+ bool
+ depends on QT6_MODULE_QTSENSORS
+ default QT6_MODULE_QTDECLARATIVE
+
+config QT6_MODULE_QTSERIALBUS
+ bool
+ select QT6_MODULE_QTSERIALPORT
+ prompt "QtSerialBus"
+
+config QT6_MODULE_QTSERIALPORT
+ bool
+ prompt "QtSerialPort"
+
+config QT6_MODULE_QTSHADERTOOLS
+ bool
+ prompt "QtShaderTools"
+
+config QT6_MODULE_QTSVG
+ bool
+ prompt "QtSvg"
+
+config QT6_MODULE_QTSVG_WIDGETS
+ bool
+ depends on QT6_MODULE_QTSVG
+ default QT6_WIDGETS
+
+config QT6_MODULE_QTVIRTUALKEYBOARD
+ bool
+ select QT6_MODULE_QTSVG
+ select QT6_MODULE_QTDECLARATIVE
+ prompt "QtVirtualKeyboard"
+
+config QT6_MODULE_QTWAYLAND
+ bool
+ select QT6_GUI
+ prompt "QtWayland"
+
+if QT6_MODULE_QTWAYLAND
+
+config QT6_MODULE_QTWAYLAND_MESA
+ bool
+ default MESALIB && QT6_OPENGL
+
+config QT6_MODULE_QTWAYLAND_QUICK
+ bool
+ default QT6_MODULE_QTDECLARATIVE
+
+endif
+
+config QT6_MODULE_QTWEBCHANNEL
+ bool
+ select QT6_GUI
+ prompt "QtWebChannel"
+
+config QT6_MODULE_QTWEBCHANNEL_QUICK
+ bool
+ depends on QT6_MODULE_QTWEBCHANNEL
+ default QT6_MODULE_QTDECLARATIVE
+
+config QT6_MODULE_QTWEBENGINE
+ bool
+ # undefined symbols if accessibility is not enabled
+ select QT6_ACCESSIBILITY
+ select QT6_GLIB
+ select QT6_GUI
+ select QT6_LIBJPEG
+ select QT6_LIBPNG
+ select QT6_OPENSSL
+ select QT6_MODULE_QTDECLARATIVE
+ select QT6_MODULE_QTWEBCHANNEL
+ prompt "QtWebEngine"
+
+if QT6_MODULE_QTWEBENGINE
+
+config QT6_MODULE_QTWEBENGINE_WIDGETS
+ bool
+ default QT6_WIDGETS
+
+config QT6_MODULE_QTWEBENGINE_MEDIA
+ bool
+ prompt "audio/video support"
+
+endif
+
+config QT6_MODULE_QTWEBSOCKETS
+ bool
+ prompt "QtWebSockets"
+
+config QT6_MODULE_QTWEBSOCKETS_QUICK
+ bool
+ depends on QT6_MODULE_QTWEBSOCKETS
+ default QT6_MODULE_QTDECLARATIVE
+
+config QT6_MODULE_QTWEBVIEW
+ bool
+ select QT6_MODULE_QTDECLARATIVE
+ select QT6_MODULE_QTWEBENGINE
+ prompt "QtWebView"
+
+endmenu
+
+endif
diff --git a/rules/qt6.make b/rules/qt6.make
new file mode 100644
index 000000000..fa1f49969
--- /dev/null
+++ b/rules/qt6.make
@@ -0,0 +1,1235 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2012 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_QT6) += qt6
+
+#
+# Paths and names
+#
+QT6_VERSION := 6.6.2
+QT6_MD5 := b92112e12298f4b27050ef7060658191
+QT6 := qt-everywhere-src-$(QT6_VERSION)
+QT6_SUFFIX := tar.xz
+QT6_URL := \
+ http://download.qt-project.org/archive/qt/$(basename $(QT6_VERSION))/$(QT6_VERSION)/single/$(QT6).$(QT6_SUFFIX) \
+ http://download.qt-project.org/development_releases/qt/$(basename $(QT6_VERSION))/$(QT6_VERSION)/single/$(QT6).$(QT6_SUFFIX)
+QT6_SOURCE := $(SRCDIR)/$(QT6).$(QT6_SUFFIX)
+QT6_DIR := $(realpath $(BUILDDIR))/$(QT6)
+QT6_BUILD_OOT := YES
+# "GPL-3.0-only WITH Qt-GPL-exception-1.0" for tools
+# "GFDL-1.3-no-invariants-only" for documentation
+QT6_LICENSE := (LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only) AND (GPL-3.0-only WITH Qt-GPL-exception-1.0) AND GFDL-1.3-no-invariants-only
+QT6_LICENSE_FILES := \
+ file://qtbase/LICENSES/GPL-2.0-only.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://qtbase/LICENSES/GPL-3.0-only.txt;md5=d32239bcb673463ab874e80d47fae504 \
+ file://qtbase/LICENSES/Qt-GPL-exception-1.0.txt;md5=9a13522cd91a88fba784baf16ea66af8 \
+ file://qtbase/LICENSES/LGPL-3.0-only.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+ file://qtbase/LICENSES/GFDL-1.3-no-invariants-only.txt;md5=a22d0be1ce2284b67950a4d1673dd1b0
+QT6_MKSPECS := $(call ptx/get-alternative, config/qt6, linux-ptx-g++)
+
+ifdef PTXCONF_QT6
+ifeq ($(strip $(QT6_MKSPECS)),)
+$(call ptx/error, Qt6 mkspecs are missing)
+endif
+endif
+
+# QtWebengine is not supported on PPC
+ifdef PTXCONF_ARCH_PPC
+PTXCONF_QT6_MODULE_QTWEBENGINE :=
+PTXCONF_QT6_MODULE_QTWEBENGINE_WIDGETS :=
+PTXCONF_QT6_MODULE_QTWEBVIEW :=
+endif
+
+# QtWebengine is not supported on 32-bit x86
+ifdef PTXCONF_ARCH_X86
+ifndef PTXCONF_ARCH_X86_64
+PTXCONF_QT6_MODULE_QTWEBENGINE :=
+PTXCONF_QT6_MODULE_QTWEBENGINE_WIDGETS :=
+PTXCONF_QT6_MODULE_QTWEBVIEW :=
+endif
+endif
+
+# QtWebEngine needs at least ARMv6
+ifdef PTXCONF_ARCH_ARM
+ifndef PTXCONF_ARCH_ARM_V6
+PTXCONF_QT6_MODULE_QTWEBENGINE :=
+PTXCONF_QT6_MODULE_QTWEBENGINE_WIDGETS :=
+PTXCONF_QT6_MODULE_QTWEBVIEW :=
+endif
+endif
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+# the extra section seems to confuse the Webkit JIT code
+QT6_WRAPPER_BLACKLIST := \
+ TARGET_COMPILER_RECORD_SWITCHES
+
+QT6_CONF_ENV := \
+ $(CROSS_ENV) \
+ COMPILER_PREFIX=$(COMPILER_PREFIX)
+
+ifdef PTXCONF_QT6_MODULE_QTWEBENGINE
+QT6_CONF_ENV += \
+ PKG_CONFIG_HOST=$(PTXDIST_SYSROOT_HOST)/usr/bin/pkg-config \
+ PTX_CMAKE_CFLAGS="$(filter -m%,$(shell ptxd_cross_cc_v | sed -n -e "s/'//g" -e "/^COLLECT_GCC_OPTIONS=/{s/[^=]*=\(.*\)/\1/p;q}"))"
+endif
+
+QT6_MODULES-y :=
+QT6_MODULES- :=
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QT3D) += qt3d
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QT5COMPAT) += qt5compat
+QT6_MODULES- += qtactiveqt
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTBASE) += qtbase
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTCHARTS) += qtcharts
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTCOAP) += qtcoap
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTCONNECTIVITY) += qtconnectivity
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTDATAVIS3D) += qtdatavis3d
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTDECLARATIVE) += qtdeclarative
+QT6_MODULES- += qtgrpc
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTGRAPHS) += qtgraphs
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTHTTPSERVER) += qthttpserver
+QT6_MODULES- += qtdoc
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTIMAGEFORMATS) += qtimageformats
+QT6_MODULES- += qtlanguageserver
+QT6_MODULES- += qtlocation
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTLOTTIE) += qtlottie
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTMQTT) += qtmqtt
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTMULTIMEDIA) += qtmultimedia
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTNETWORKAUTH) += qtnetworkauth
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTOPCUA) += qtopcua
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTPOSITIONING) += qtpositioning
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTQUICK3D) += qtquick3d
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTQUICK3DPHYSICS) += qtquick3dphysics
+QT6_MODULES- += qtquickeffectmaker
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTQUICKTIMELINE) += qtquicktimeline
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTREMOTEOBJECTS) += qtremoteobjects
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTSCXML) += qtscxml
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTSENSORS) += qtsensors
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTSERIALBUS) += qtserialbus
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTSERIALPORT) += qtserialport
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTSHADERTOOLS) += qtshadertools
+QT6_MODULES- += qtspeech
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTSVG) += qtsvg
+QT6_MODULES- += qttools
+QT6_MODULES- += qttranslations
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTVIRTUALKEYBOARD) += qtvirtualkeyboard
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTWAYLAND) += qtwayland
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTWEBCHANNEL) += qtwebchannel
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTWEBENGINE) += qtwebengine
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTWEBSOCKETS) += qtwebsockets
+QT6_MODULES-$(PTXCONF_QT6_MODULE_QTWEBVIEW) += qtwebview
+
+#
+# cmake
+#
+QT6_CONF_OPT := \
+ -DQT_HOST_PATH=$(PTXDIST_SYSROOT_HOST)/usr \
+ -DBUILD_SHARED_LIBS=ON \
+ $(foreach module,$(QT6_MODULES-y),-DBUILD_$(module)=ON) \
+ $(foreach module,$(QT6_MODULES-),-DBUILD_$(module)=OFF) \
+ -DQT_BUILD_SUBMODULES="$(subst $(space),;,$(sort $(QT6_MODULES-) $(QT6_MODULES-y)))" \
+ -DINSTALL_ARCHDATADIR=lib/qt6 \
+ -DINSTALL_DATADIR=share/qt6 \
+ -DINSTALL_EXAMPLESDIR=lib/qt6/examples \
+ -DINSTALL_INCLUDEDIR=include/qt6 \
+ -DINSTALL_MKSPECSDIR=lib/qt6/mkspecs
+
+ifdef PTXCONF_QT6_MODULE_QTBASE
+QT6_CONF_OPT += \
+ -DFEATURE_accessibility=$(call ptx/onoff,PTXCONF_QT6_ACCESSIBILITY) \
+ -DFEATURE_accessibility_atspi_bridge=OFF \
+ -DFEATURE_action=ON \
+ -DFEATURE_animation=ON \
+ -DFEATURE_appstore_compliant=OFF \
+ -DFEATURE_backtrace=OFF \
+ -DFEATURE_brotli=OFF \
+ -DFEATURE_cborstreamreader=ON \
+ -DFEATURE_cborstreamwriter=ON \
+ -DFEATURE_ccache=OFF \
+ -DFEATURE_clipboard=ON \
+ -DFEATURE_colornames=ON \
+ -DFEATURE_commandlineparser=ON \
+ -DFEATURE_concatenatetablesproxymodel=ON \
+ -DFEATURE_concurrent=ON \
+ -DFEATURE_cross_compile=ON \
+ -DFEATURE_cssparser=ON \
+ -DFEATURE_cursor=ON \
+ -DFEATURE_datestring=ON \
+ -DFEATURE_datetimeparser=ON \
+ -DFEATURE_dbus=$(call ptx/onoff,PTXCONF_QT6_DBUS) \
+ -DFEATURE_dbus_linked=$(call ptx/onoff,PTXCONF_QT6_DBUS) \
+ -DFEATURE_debug=OFF \
+ -DFEATURE_debug_and_release=OFF \
+ -DFEATURE_desktopservices=ON \
+ -DFEATURE_developer_build=OFF \
+ -DFEATURE_directfb=OFF \
+ -DFEATURE_dlopen=ON \
+ -DFEATURE_dnslookup=ON \
+ -DFEATURE_dom=ON \
+ -DFEATURE_doubleconversion=ON \
+ -DFEATURE_draganddrop=ON \
+ -DFEATURE_drm_atomic=ON \
+ -DFEATURE_dtls=$(call ptx/onoff,PTXCONF_QT6_OPENSSL) \
+ -DFEATURE_dynamicgl=OFF \
+ -DFEATURE_easingcurve=ON \
+ -DFEATURE_egl=$(call ptx/onoff,PTXCONF_QT6_OPENGL) \
+ -DFEATURE_egl_x11=OFF \
+ -DFEATURE_eglfs=$(call ptx/onoff,PTXCONF_QT6_PLATFORM_EGLFS) \
+ -DFEATURE_eglfs_brcm=OFF \
+ -DFEATURE_eglfs_egldevice=OFF \
+ -DFEATURE_eglfs_gbm=$(call ptx/onoff,PTXCONF_QT6_PLATFORM_EGLFS) \
+ -DFEATURE_eglfs_mali=OFF \
+ -DFEATURE_eglfs_openwfd=OFF \
+ -DFEATURE_eglfs_rcar=OFF \
+ -DFEATURE_eglfs_viv=OFF \
+ -DFEATURE_eglfs_viv_wl=OFF \
+ -DFEATURE_eglfs_vsp2=OFF \
+ -DFEATURE_eglfs_x11=OFF \
+ -DFEATURE_enable_gdb_index=OFF \
+ -DFEATURE_etw=OFF \
+ -DFEATURE_evdev=$(call ptx/onoff,PTXCONF_QT6_INPUT_EVDEV) \
+ -DFEATURE_f16c=OFF \
+ -DFEATURE_filesystemiterator=ON \
+ -DFEATURE_filesystemmodel=ON \
+ -DFEATURE_filesystemwatcher=ON \
+ -DFEATURE_fontconfig=$(call ptx/onoff,PTXCONF_QT6_GUI) \
+ -DFEATURE_force_asserts=OFF \
+ -DFEATURE_force_debug_info=OFF \
+ -DFEATURE_framework=OFF \
+ -DFEATURE_freetype=$(call ptx/onoff,PTXCONF_QT6_GUI) \
+ -DFEATURE_future=ON \
+ -DFEATURE_gbm=$(call ptx/onoff,PTXCONF_QT6_OPENGL) \
+ -DFEATURE_gc_binaries=OFF \
+ -DFEATURE_gestures=ON \
+ -DFEATURE_gif=$(call ptx/onoff,PTXCONF_QT6_GIF) \
+ -DFEATURE_glib=$(call ptx/onoff,PTXCONF_QT6_GLIB) \
+ -DFEATURE_glibc=ON \
+ -DFEATURE_gssapi=OFF \
+ -DFEATURE_gui=$(call ptx/onoff,PTXCONF_QT6_GUI) \
+ -DFEATURE_harfbuzz=$(call ptx/onoff,PTXCONF_QT6_GUI) \
+ -DFEATURE_headersclean=OFF \
+ -DFEATURE_highdpiscaling=ON \
+ -DFEATURE_hijricalendar=ON \
+ -DFEATURE_http=ON \
+ -DFEATURE_ico=ON \
+ -DFEATURE_icu=$(call ptx/onoff,PTXCONF_QT6_ICU) \
+ -DFEATURE_identityproxymodel=ON \
+ -DFEATURE_im=ON \
+ -DFEATURE_image_heuristic_mask=ON \
+ -DFEATURE_image_text=ON \
+ -DFEATURE_imageformat_bmp=ON \
+ -DFEATURE_imageformat_jpeg=$(call ptx/onoff,PTXCONF_QT6_LIBJPEG) \
+ -DFEATURE_imageformat_png=$(call ptx/onoff,PTXCONF_QT6_LIBPNG) \
+ -DFEATURE_imageformat_ppm=ON \
+ -DFEATURE_imageformat_xbm=ON \
+ -DFEATURE_imageformat_xpm=ON \
+ -DFEATURE_imageformatplugin=ON \
+ -DFEATURE_imageio_text_loading=ON \
+ -DFEATURE_inotify=ON \
+ -DFEATURE_integrityfb=OFF \
+ -DFEATURE_integrityhid=OFF \
+ -DFEATURE_islamiccivilcalendar=ON \
+ -DFEATURE_itemmodel=ON \
+ -DFEATURE_itemmodeltester=OFF \
+ -DFEATURE_jalalicalendar=ON \
+ -DFEATURE_journald=$(call ptx/onoff,PTXCONF_QT6_JOURNALD) \
+ -DFEATURE_jpeg=$(call ptx/onoff,PTXCONF_QT6_LIBJPEG) \
+ -DFEATURE_kms=ON \
+ -DFEATURE_largefile=$(call ptx/onoff,PTXCONF_GLOBAL_LARGE_FILE) \
+ -DFEATURE_libinput=$(call ptx/onoff,PTXCONF_QT6_INPUT_LIBINPUT) \
+ -DFEATURE_libproxy=OFF \
+ -DFEATURE_library=ON \
+ -DFEATURE_libudev=$(call ptx/onoff,PTXCONF_QT6_LIBUDEV) \
+ -DFEATURE_linux_netlink=ON \
+ -DFEATURE_linuxfb=OFF \
+ -DFEATURE_localserver=ON \
+ -DFEATURE_lttng=OFF \
+ -DFEATURE_macdeployqt=OFF \
+ -DFEATURE_mimetype=ON \
+ -DFEATURE_mimetype_database=ON \
+ -DFEATURE_movie=ON \
+ -DFEATURE_msvc_obj_debug_info=OFF \
+ -DFEATURE_mtdev=OFF \
+ -DFEATURE_multiprocess=ON \
+ -DFEATURE_network=ON \
+ -DFEATURE_networkdiskcache=ON \
+ -DFEATURE_networkinterface=ON \
+ -DFEATURE_networklistmanager=OFF \
+ -DFEATURE_networkproxy=ON \
+ -DFEATURE_no_prefix=OFF \
+ -DFEATURE_ocsp=$(call ptx/onoff,PTXCONF_QT6_OPENSSL) \
+ -DFEATURE_opengl=$(call ptx/onoff,PTXCONF_QT6_OPENGL) \
+ -DFEATURE_opengl_desktop=OFF \
+ -DFEATURE_opengl_dynamic=OFF \
+ -DFEATURE_opengles2=ON \
+ -DFEATURE_opengles3=OFF \
+ -DFEATURE_opengles31=OFF \
+ -DFEATURE_opengles32=OFF \
+ -DFEATURE_openssl=$(call ptx/onoff,PTXCONF_QT6_OPENSSL) \
+ -DFEATURE_openssl_hash=$(call ptx/onoff,PTXCONF_QT6_OPENSSL) \
+ -DFEATURE_openssl_linked=$(call ptx/onoff,PTXCONF_QT6_OPENSSL) \
+ -DFEATURE_openssl_runtime=OFF \
+ -DFEATURE_opensslv11=OFF \
+ -DFEATURE_opensslv30=$(call ptx/onoff,PTXCONF_QT6_OPENSSL) \
+ -DFEATURE_openvg=OFF \
+ -DFEATURE_optimize_debug=OFF \
+ -DFEATURE_optimize_full=OFF \
+ -DFEATURE_optimize_size=OFF \
+ -DFEATURE_pcre2=ON \
+ -DFEATURE_pdf=ON \
+ -DFEATURE_permissions=OFF \
+ -DFEATURE_picture=ON \
+ -DFEATURE_pkg_config=ON \
+ -DFEATURE_png=$(call ptx/onoff,PTXCONF_QT6_LIBPNG) \
+ -DFEATURE_printsupport=$(call ptx/onoff,PTXCONF_QT6_MODULE_QTBASE_PRINT) \
+ -DFEATURE_private_tests=OFF \
+ -DFEATURE_process=ON \
+ -DFEATURE_processenvironment=ON \
+ -DFEATURE_proxymodel=ON \
+ -DFEATURE_publicsuffix_qt=ON \
+ -DFEATURE_publicsuffix_system=ON \
+ -DFEATURE_qmake=ON \
+ -DFEATURE_qreal=OFF \
+ -DFEATURE_raster_64bit=ON \
+ -DFEATURE_raster_fp=ON \
+ -DFEATURE_reduce_exports=ON \
+ -DFEATURE_regularexpression=ON \
+ -DFEATURE_relocatable=OFF \
+ -DFEATURE_rpath=OFF \
+ -DFEATURE_sanitize_address=OFF \
+ -DFEATURE_sanitize_fuzzer_no_link=OFF \
+ -DFEATURE_sanitize_memory=OFF \
+ -DFEATURE_sanitize_thread=OFF \
+ -DFEATURE_sanitize_undefined=OFF \
+ -DFEATURE_sanitizer=OFF \
+ -DFEATURE_schannel=OFF \
+ -DFEATURE_sctp=OFF \
+ -DFEATURE_securetransport=OFF \
+ -DFEATURE_separate_debug_info=OFF \
+ -DFEATURE_sessionmanager=OFF \
+ -DFEATURE_settings=ON \
+ -DFEATURE_shared=ON \
+ -DFEATURE_sharedmemory=ON \
+ -DFEATURE_shortcut=ON \
+ -DFEATURE_signaling_nan=ON \
+ -DFEATURE_simulator_and_device=OFF \
+ -DFEATURE_slog2=OFF \
+ -DFEATURE_socks5=ON \
+ -DFEATURE_sortfilterproxymodel=ON \
+ -DFEATURE_sql=$(call ptx/onoff,PTXCONF_QT6_MODULE_QTBASE_SQL) \
+ -DFEATURE_sql_db2=OFF \
+ -DFEATURE_sql_ibase=OFF \
+ -DFEATURE_sql_mimer=OFF \
+ -DFEATURE_sql_mysql=$(call ptx/onoff,PTXCONF_QT6_MODULE_QTBASE_SQL_MYSQL) \
+ -DFEATURE_sql_oci=OFF \
+ -DFEATURE_sql_odbc=OFF \
+ -DFEATURE_sql_psql=OFF \
+ -DFEATURE_sql_sqlite=$(call ptx/onoff,PTXCONF_QT6_MODULE_QTBASE_SQL_SQLITE) \
+ -DFEATURE_sqlmodel=ON \
+ -DFEATURE_ssl=$(call ptx/onoff,PTXCONF_QT6_OPENSSL) \
+ -DFEATURE_sspi=OFF \
+ -DFEATURE_stack_protector_strong=OFF \
+ -DFEATURE_standarditemmodel=ON \
+ -DFEATURE_static=OFF \
+ -DFEATURE_stdlib_libcpp=OFF \
+ -DFEATURE_stringlistmodel=ON \
+ -DFEATURE_syslog=OFF \
+ -DFEATURE_system_doubleconversion=OFF \
+ -DFEATURE_system_freetype=$(call ptx/onoff,PTXCONF_QT6_GUI) \
+ -DFEATURE_system_harfbuzz=$(call ptx/onoff,PTXCONF_QT6_GUI) \
+ -DFEATURE_system_jpeg=$(call ptx/onoff,PTXCONF_QT6_LIBJPEG) \
+ -DFEATURE_system_libb2=OFF \
+ -DFEATURE_system_pcre2=ON \
+ -DFEATURE_system_png=$(call ptx/onoff,PTXCONF_QT6_LIBPNG) \
+ -DFEATURE_system_proxies=ON \
+ -DFEATURE_system_sqlite=$(call ptx/onoff,PTXCONF_QT6_MODULE_QTBASE_SQL_SQLITE) \
+ -DFEATURE_system_textmarkdownreader=OFF \
+ -DFEATURE_system_zlib=ON \
+ -DFEATURE_systemtrayicon=ON \
+ -DFEATURE_tabletevent=ON \
+ -DFEATURE_temporaryfile=ON \
+ -DFEATURE_testcocoon=OFF \
+ -DFEATURE_testlib=$(call ptx/onoff,PTXCONF_QT6_TEST) \
+ -DFEATURE_testlib_selfcover=OFF \
+ -DFEATURE_textdate=ON \
+ -DFEATURE_texthtmlparser=ON \
+ -DFEATURE_textmarkdownreader=OFF \
+ -DFEATURE_textmarkdownwriter=OFF \
+ -DFEATURE_textodfwriter=ON \
+ -DFEATURE_thread=ON \
+ -DFEATURE_timezone=ON \
+ -DFEATURE_topleveldomain=ON \
+ -DFEATURE_translation=ON \
+ -DFEATURE_transposeproxymodel=ON \
+ -DFEATURE_tslib=OFF \
+ -DFEATURE_tuiotouch=ON \
+ -DFEATURE_udpsocket=ON \
+ -DFEATURE_undocommand=ON \
+ -DFEATURE_undogroup=ON \
+ -DFEATURE_undostack=ON \
+ -DFEATURE_valgrind=OFF \
+ -DFEATURE_validator=ON \
+ -DFEATURE_vkgen=OFF \
+ -DFEATURE_vkkhrdisplay=OFF \
+ -DFEATURE_vnc=OFF \
+ -DFEATURE_vsp2=OFF \
+ -DFEATURE_vulkan=OFF \
+ -DFEATURE_whatsthis=ON \
+ -DFEATURE_wheelevent=ON \
+ -DFEATURE_widgets=$(call ptx/onoff,PTXCONF_QT6_WIDGETS) \
+ -DFEATURE_windeployqt=OFF \
+ -DFEATURE_xcb=OFF \
+ -DFEATURE_xcb_xlib=OFF \
+ -DFEATURE_xkbcommon=$(call ptx/onoff,PTXCONF_QT6_LIBXKBCOMMON) \
+ -DFEATURE_xkbcommon_x11=OFF \
+ -DFEATURE_xlib=OFF \
+ -DFEATURE_xml=ON \
+ -DFEATURE_xmlstream=ON \
+ -DFEATURE_xmlstreamreader=ON \
+ -DFEATURE_xmlstreamwriter=ON \
+ -DFEATURE_zstd=OFF \
+ -DQT_ALLOW_DOWNLOAD=OFF \
+ -DQT_BUILD_BENCHMARKS=OFF \
+ -DQT_BUILD_EXAMPLES=OFF \
+ -DQT_BUILD_EXAMPLES_AS_EXTERNAL=OFF \
+ -DQT_BUILD_EXAMPLES_BY_DEFAULT=OFF \
+ -DQT_BUILD_MANUAL_TESTS=OFF \
+ -DQT_BUILD_MINIMAL_STATIC_TESTS=OFF \
+ -DQT_BUILD_TESTS=OFF \
+ -DQT_BUILD_TESTS_BY_DEFAULT=OFF \
+ -DQT_BUILD_TOOLS_BY_DEFAULT=OFF \
+ -DQT_CMAKE_DEBUG_EXTEND_TARGET=OFF \
+ -DQT_CREATE_VERSIONED_HARD_LINK=OFF \
+ -DQT_QPA_DEFAULT_EGLFS_INTEGRATION=eglfs_kms \
+ -DQT_QPA_DEFAULT_PLATFORM=$(PTXCONF_QT6_PLATFORM_DEFAULT) \
+ -DQT_USE_CCACHE=OFF \
+ -DQT_WILL_INSTALL=ON \
+ -DWARNINGS_ARE_ERRORS=OFF
+
+ifdef PTXCONF_QT6_WIDGETS
+QT6_CONF_OPT += \
+ -DFEATURE_abstractbutton=ON \
+ -DFEATURE_abstractslider=ON \
+ -DFEATURE_buttongroup=ON \
+ -DFEATURE_calendarwidget=ON \
+ -DFEATURE_checkbox=ON \
+ -DFEATURE_colordialog=ON \
+ -DFEATURE_columnview=ON \
+ -DFEATURE_combobox=ON \
+ -DFEATURE_commandlinkbutton=ON \
+ -DFEATURE_completer=ON \
+ -DFEATURE_contextmenu=ON \
+ -DFEATURE_cups=OFF \
+ -DFEATURE_cupsjobwidget=OFF \
+ -DFEATURE_cupspassworddialog=OFF \
+ -DFEATURE_datawidgetmapper=ON \
+ -DFEATURE_datetimeedit=ON \
+ -DFEATURE_dial=ON \
+ -DFEATURE_dialog=ON \
+ -DFEATURE_dialogbuttonbox=ON \
+ -DFEATURE_dockwidget=ON \
+ -DFEATURE_effects=OFF \
+ -DFEATURE_errormessage=ON \
+ -DFEATURE_filedialog=ON \
+ -DFEATURE_fontcombobox=ON \
+ -DFEATURE_fontdialog=ON \
+ -DFEATURE_formlayout=ON \
+ -DFEATURE_fscompleter=ON \
+ -DFEATURE_graphicseffect=ON \
+ -DFEATURE_graphicsview=ON \
+ -DFEATURE_groupbox=ON \
+ -DFEATURE_gtk3=OFF \
+ -DFEATURE_inputdialog=ON \
+ -DFEATURE_itemviews=ON \
+ -DFEATURE_keysequenceedit=ON \
+ -DFEATURE_label=ON \
+ -DFEATURE_lcdnumber=ON \
+ -DFEATURE_lineedit=ON \
+ -DFEATURE_listview=ON \
+ -DFEATURE_listwidget=ON \
+ -DFEATURE_mainwindow=ON \
+ -DFEATURE_mdiarea=ON \
+ -DFEATURE_menu=ON \
+ -DFEATURE_menubar=ON \
+ -DFEATURE_messagebox=ON \
+ -DFEATURE_printdialog=ON \
+ -DFEATURE_printer=ON \
+ -DFEATURE_printpreviewdialog=ON \
+ -DFEATURE_printpreviewwidget=ON \
+ -DFEATURE_progressbar=ON \
+ -DFEATURE_progressdialog=ON \
+ -DFEATURE_pushbutton=ON \
+ -DFEATURE_radiobutton=ON \
+ -DFEATURE_resizehandler=ON \
+ -DFEATURE_rubberband=ON \
+ -DFEATURE_scrollarea=ON \
+ -DFEATURE_scrollbar=ON \
+ -DFEATURE_scroller=ON \
+ -DFEATURE_sizegrip=ON \
+ -DFEATURE_slider=ON \
+ -DFEATURE_spinbox=ON \
+ -DFEATURE_splashscreen=ON \
+ -DFEATURE_splitter=ON \
+ -DFEATURE_stackedwidget=ON \
+ -DFEATURE_statusbar=ON \
+ -DFEATURE_statustip=ON \
+ -DFEATURE_style_android=OFF \
+ -DFEATURE_style_fusion=ON \
+ -DFEATURE_style_mac=OFF \
+ -DFEATURE_style_stylesheet=ON \
+ -DFEATURE_style_windows=ON \
+ -DFEATURE_style_windowsvista=OFF \
+ -DFEATURE_syntaxhighlighter=ON \
+ -DFEATURE_tabbar=ON \
+ -DFEATURE_tableview=ON \
+ -DFEATURE_tablewidget=ON \
+ -DFEATURE_tabwidget=ON \
+ -DFEATURE_textbrowser=ON \
+ -DFEATURE_textedit=ON \
+ -DFEATURE_toolbar=ON \
+ -DFEATURE_toolbox=ON \
+ -DFEATURE_toolbutton=ON \
+ -DFEATURE_tooltip=ON \
+ -DFEATURE_treeview=ON \
+ -DFEATURE_treewidget=ON \
+ -DFEATURE_undoview=ON \
+ -DFEATURE_widgettextcontrol=ON \
+ -DFEATURE_wizard=ON
+endif
+endif
+
+ifdef PTXCONF_QT6_MODULE_QT3D
+QT6_CONF_OPT += \
+ -DFEATURE_qt3d_animation=ON \
+ -DFEATURE_qt3d_assimp=ON \
+ -DFEATURE_qt3d_extras=ON \
+ -DFEATURE_qt3d_fbxsdk=OFF \
+ -DFEATURE_qt3d_input=ON \
+ -DFEATURE_qt3d_logic=ON \
+ -DFEATURE_qt3d_opengl_renderer=ON \
+ -DFEATURE_qt3d_render=ON \
+ -DFEATURE_qt3d_rhi_renderer=ON \
+ -DFEATURE_qt3d_system_assimp=OFF \
+ -DFEATURE_qt3d_vulkan=OFF
+endif
+
+ifdef PTXCONF_QT6_MODULE_QTCHARTS
+QT6_CONF_OPT += \
+ -DFEATURE_charts_area_chart=ON \
+ -DFEATURE_charts_bar_chart=ON \
+ -DFEATURE_charts_boxplot_chart=ON \
+ -DFEATURE_charts_candlestick_chart=ON \
+ -DFEATURE_charts_datetime_axis=ON \
+ -DFEATURE_charts_line_chart=ON \
+ -DFEATURE_charts_pie_chart=ON \
+ -DFEATURE_charts_scatter_chart=ON \
+ -DFEATURE_charts_spline_chart=ON
+endif
+
+ifdef PTXCONF_QT6_MODULE_QT5COMPAT
+QT6_CONF_OPT += \
+ -DFEATURE_big_codecs=ON \
+ -DFEATURE_codecs=ON \
+ -DFEATURE_iconv=OFF \
+ -DFEATURE_textcodec=ON
+endif
+
+ifdef PTXCONF_QT6_MODULE_QTCONNECTIVITY
+QT6_CONF_OPT += \
+ -DFEATURE_bluez=ON \
+ -DFEATURE_bluez_le=ON \
+ -DFEATURE_pcsclite=OFF
+endif
+
+ifdef PTXCONF_QT6_MODULE_QTDECLARATIVE
+QT6_QML_JIT := ON
+ifdef PTXCONF_ARCH_ARM
+ifndef PTXCONF_ARCH_ARM_V7
+QT6_QML_JIT := OFF
+endif
+endif
+ifdef PTXCONF_ARCH_PPC
+QT6_QML_JIT := OFF
+endif
+
+QT6_CONF_OPT += \
+ -DFEATURE_qml_animation=ON \
+ -DFEATURE_qml_debug=ON \
+ -DFEATURE_qml_delegate_model=ON \
+ -DFEATURE_qml_itemmodel=ON \
+ -DFEATURE_qml_jit=$(QT6_QML_JIT) \
+ -DFEATURE_qml_list_model=ON \
+ -DFEATURE_qml_locale=ON \
+ -DFEATURE_qml_network=ON \
+ -DFEATURE_qml_object_model=ON \
+ -DFEATURE_qml_preview=ON \
+ -DFEATURE_qml_profiler=$(call ptx/onoff,PTXCONF_QT6_MODULE_QTDECLARATIVE_DEBUG) \
+ -DFEATURE_qml_python=ON \
+ -DFEATURE_qml_table_model=ON \
+ -DFEATURE_qml_worker_script=ON \
+ -DFEATURE_qml_xml_http_request=ON \
+ -DFEATURE_qml_xmllistmodel=ON
+
+# not documented but prevents broken rpaths in qml plugins
+QT6_CONF_OPT += \
+ -DQT_NO_QML_PLUGIN_RPATH=ON
+
+ifdef PTXCONF_QT6_MODULE_QTDECLARATIVE_QUICK
+QT6_CONF_OPT += \
+ -DFEATURE_quick_animatedimage=ON \
+ -DFEATURE_quick_canvas=ON \
+ -DFEATURE_quick_designer=ON \
+ -DFEATURE_quick_draganddrop=ON \
+ -DFEATURE_quick_flipable=ON \
+ -DFEATURE_quick_gridview=ON \
+ -DFEATURE_quick_itemview=ON \
+ -DFEATURE_quick_listview=ON \
+ -DFEATURE_quick_particles=ON \
+ -DFEATURE_quick_path=ON \
+ -DFEATURE_quick_pathview=ON \
+ -DFEATURE_quick_pixmap_cache_threaded_download=ON \
+ -DFEATURE_quick_positioners=ON \
+ -DFEATURE_quick_repeater=ON \
+ -DFEATURE_quick_shadereffect=ON \
+ -DFEATURE_quick_sprite=ON \
+ -DFEATURE_quick_tableview=ON \
+ -DFEATURE_quick_treeview=ON \
+ -DFEATURE_quick_viewtransitions=ON \
+ -DFEATURE_quickcontrols2_basic=ON \
+ -DFEATURE_quickcontrols2_fusion=ON \
+ -DFEATURE_quickcontrols2_imagine=ON \
+ -DFEATURE_quickcontrols2_ios=OFF \
+ -DFEATURE_quickcontrols2_macos=OFF \
+ -DFEATURE_quickcontrols2_material=ON \
+ -DFEATURE_quickcontrols2_universal=ON \
+ -DFEATURE_quickcontrols2_windows=OFF \
+ -DFEATURE_quicktemplates2_calendar=ON \
+ -DFEATURE_quicktemplates2_hover=ON \
+ -DFEATURE_quicktemplates2_multitouch=ON
+endif
+endif
+
+ifdef PTXCONF_QT6_MODULE_QTIMAGEFORMATS
+QT6_CONF_OPT += \
+ -DFEATURE_jasper=OFF \
+ -DFEATURE_mng=$(call ptx/onoff,PTXCONF_QT6_LIBMNG) \
+ -DFEATURE_system_tiff=ON \
+ -DFEATURE_system_webp=ON \
+ -DFEATURE_tiff=ON \
+ -DFEATURE_webp=ON
+endif
+
+ifdef PTXCONF_QT6_MODULE_QTMULTIMEDIA
+ifdef PTXCONF_QT6_MODULE_QTMULTIMEDIA_GST
+QT6_MODULE_QTMULTIMEDIA_GST_GL := $(PTXCONF_QT6_OPENGL)
+endif
+QT6_CONF_OPT += \
+ -DFEATURE_alsa=OFF \
+ -DFEATURE_avfoundation=OFF \
+ -DFEATURE_evr=OFF \
+ -DFEATURE_ffmpeg=OFF \
+ -DFEATURE_gpu_vivante=OFF \
+ -DFEATURE_gstreamer=$(call ptx/onoff,PTXCONF_QT6_MODULE_QTMULTIMEDIA_GST) \
+ -DFEATURE_gstreamer_1_0=$(call ptx/onoff,PTXCONF_QT6_MODULE_QTMULTIMEDIA_GST) \
+ -DFEATURE_gstreamer_app=$(call ptx/onoff,PTXCONF_QT6_MODULE_QTMULTIMEDIA_GST) \
+ -DFEATURE_gstreamer_gl=$(call ptx/onoff,QT6_MODULE_QTMULTIMEDIA_GST_GL) \
+ -DFEATURE_gstreamer_photography=OFF \
+ -DFEATURE_linux_dmabuf=$(call ptx/onoff,PTXCONF_QT6_OPENGL) \
+ -DFEATURE_linux_v4l=ON \
+ -DFEATURE_pulseaudio=OFF \
+ -DFEATURE_spatialaudio=OFF \
+ -DFEATURE_spatialaudio_quick3d=OFF \
+ -DFEATURE_vaapi=OFF \
+ -DFEATURE_videotoolbox=OFF \
+ -DFEATURE_wasm=OFF \
+ -DFEATURE_wmf=OFF \
+ -DFEATURE_wmsdk=OFF
+endif
+
+ifdef PTXCONF_QT6_MODULE_QTOPCUA
+QT6_CONF_OPT += \
+ -DFEATURE_gds=$(call ptx/onoff,PTXCONF_QT6_OPENSSL) \
+ -DFEATURE_ns0idgenerator=OFF \
+ -DFEATURE_ns0idnames=ON \
+ -DFEATURE_open62541=OFF \
+ -DFEATURE_open62541_security=OFF \
+ -DFEATURE_system_open62541=OFF \
+ -DFEATURE_uacpp=OFF
+endif
+
+ifdef PTXCONF_QT6_MODULE_QTPOSITIONING
+QT6_CONF_OPT += \
+ -DFEATURE_gypsy=OFF
+endif
+
+ifdef PTXCONF_QT6_MODULE_QTQUICK3D
+QT6_CONF_OPT += \
+ -DFEATURE_quick3d_assimp=ON \
+ -DFEATURE_system_assimp=OFF
+endif
+
+ifdef PTXCONF_QT6_MODULE_QTSERIALBUS
+QT6_CONF_OPT += \
+ -DFEATURE_modbus_serialport=ON \
+ -DFEATURE_ntddmodm=OFF \
+ -DFEATURE_socketcan=ON \
+ -DFEATURE_socketcan_fd=ON
+endif
+
+ifdef PTXCONF_QT6_MODULE_QTSCXML
+QT6_CONF_OPT += \
+ -DFEATURE_qeventtransition=$(call ptx/onoff,PTXCONF_QT6_GUI) \
+ -DFEATURE_scxml_ecmascriptdatamodel=$(call ptx/onoff,PTXCONF_QT6_MODULE_QTSCXML_QUICK) \
+ -DFEATURE_statemachine=ON
+endif
+
+ifdef PTXCONF_QT6_MODULE_QTSENSORS
+QT6_CONF_OPT += \
+ -DFEATURE_sensorfw=OFF
+endif
+
+ifdef PTXCONF_QT6_MODULE_QTVIRTUALKEYBOARD
+QT6_CONF_OPT += \
+ -DFEATURE_3rdparty_hunspell=OFF \
+ -DFEATURE_cangjie=OFF \
+ -DFEATURE_cerence_hwr=OFF \
+ -DFEATURE_cerence_hwr_alphabetic=OFF \
+ -DFEATURE_cerence_hwr_cjk=OFF \
+ -DFEATURE_cerence_sdk=OFF \
+ -DFEATURE_cerence_xt9=OFF \
+ -DFEATURE_example_hwr=OFF \
+ -DFEATURE_hangul=ON \
+ -DFEATURE_hunspell=OFF \
+ -DFEATURE_myscript=OFF \
+ -DFEATURE_openwnn=ON \
+ -DFEATURE_pinyin=ON \
+ -DFEATURE_system_hunspell=OFF \
+ -DFEATURE_tcime=ON \
+ -DFEATURE_thai=ON \
+ -DFEATURE_vkb_layouts=ON \
+ -DFEATURE_vkb_no_builtin_style=OFF \
+ -DFEATURE_vkb_no_bundle_pinyin=OFF \
+ -DFEATURE_vkb_no_bundle_tcime=OFF \
+ -DFEATURE_vkb_record_trace_input=OFF \
+ -DFEATURE_vkb_retro_style=OFF \
+ -DFEATURE_vkb_sensitive_debug=OFF \
+ -DFEATURE_zhuyin=ON
+endif
+
+ifdef PTXCONF_QT6_MODULE_QTWAYLAND
+QT6_CONF_OPT += \
+ -DFEATURE_egl_extension_platform_wayland=$(call ptx/onoff,PTXCONF_QT6_OPENGL) \
+ -DFEATURE_wayland_brcm=OFF \
+ -DFEATURE_wayland_client=ON \
+ -DFEATURE_wayland_client_fullscreen_shell_v1=ON \
+ -DFEATURE_wayland_client_ivi_shell=ON \
+ -DFEATURE_wayland_client_primary_selection=ON \
+ -DFEATURE_wayland_client_qt_shell=ON \
+ -DFEATURE_wayland_client_wl_shell=OFF \
+ -DFEATURE_wayland_client_xdg_shell=ON \
+ -DFEATURE_wayland_datadevice=ON \
+ -DFEATURE_wayland_dmabuf_server_buffer=$(call ptx/onoff,PTXCONF_QT6_OPENGL) \
+ -DFEATURE_wayland_drm_egl_server_buffer=$(call ptx/onoff,PTXCONF_QT6_OPENGL) \
+ -DFEATURE_wayland_egl=$(call ptx/onoff,PTXCONF_QT6_OPENGL) \
+ -DFEATURE_wayland_libhybris_egl_server_buffer=OFF \
+ -DFEATURE_wayland_server=OFF \
+ -DFEATURE_wayland_shm_emulation_server_buffer=OFF \
+ -DFEATURE_wayland_text_input_v4_wip=OFF \
+ -DFEATURE_wayland_vulkan_server_buffer=OFF
+endif
+
+ifdef PTXCONF_QT6_MODULE_QTWEBENGINE
+QT6_CONF_OPT += \
+ -DQT_HOST_GN_PATH=$(PTXDIST_SYSROOT_HOST)/usr/bin/gn \
+ -DFEATURE_qtpdf_build=OFF \
+ -DFEATURE_qtpdf_quick_build=OFF \
+ -DFEATURE_qtpdf_widgets_build=OFF \
+ -DFEATURE_qtwebengine_build=ON \
+ -DFEATURE_qtwebengine_core_build=ON \
+ -DFEATURE_qtwebengine_quick_build=ON \
+ -DFEATURE_qtwebengine_widgets_build=$(call ptx/onoff,PTXCONF_QT6_MODULE_QTWEBENGINE_WIDGETS) \
+ -DFEATURE_webengine_build_gn=ON \
+ -DFEATURE_webengine_build_ninja=OFF \
+ -DFEATURE_webengine_developer_build=OFF \
+ -DFEATURE_webengine_embedded_build=ON \
+ -DFEATURE_webengine_extensions=OFF \
+ -DFEATURE_webengine_geolocation=$(call ptx/onoff,PTXCONF_QT6_MODULE_QTPOSITIONING) \
+ -DFEATURE_webengine_jumbo_build=ON \
+ -DFEATURE_webengine_kerberos=OFF \
+ -DFEATURE_webengine_native_spellchecker=OFF \
+ -DFEATURE_webengine_ozone_x11=OFF \
+ -DFEATURE_webengine_pepper_plugins=OFF \
+ -DFEATURE_webengine_printing_and_pdf=OFF \
+ -DFEATURE_webengine_proprietary_codecs=OFF \
+ -DFEATURE_webengine_qt_freetype=OFF \
+ -DFEATURE_webengine_qt_harfbuzz=OFF \
+ -DFEATURE_webengine_qt_libjpeg=OFF \
+ -DFEATURE_webengine_qt_libpng=OFF \
+ -DFEATURE_webengine_qt_zlib=OFF \
+ -DFEATURE_webengine_sanitizer=OFF \
+ -DFEATURE_webengine_spellchecker=OFF \
+ -DFEATURE_webengine_system_alsa=$(call ptx/onoff,PTXCONF_QT6_MODULE_QTWEBENGINE_MEDIA) \
+ -DFEATURE_webengine_system_ffmpeg=OFF \
+ -DFEATURE_webengine_system_freetype=ON \
+ -DFEATURE_webengine_system_glib=ON \
+ -DFEATURE_webengine_system_harfbuzz=OFF \
+ -DFEATURE_webengine_system_icu=OFF \
+ -DFEATURE_webengine_system_lcms2=OFF \
+ -DFEATURE_webengine_system_libevent=OFF \
+ -DFEATURE_webengine_system_libjpeg=ON \
+ -DFEATURE_webengine_system_libopenjpeg2=OFF \
+ -DFEATURE_webengine_system_libpci=OFF \
+ -DFEATURE_webengine_system_libpng=ON \
+ -DFEATURE_webengine_system_libtiff=ON \
+ -DFEATURE_webengine_system_libvpx=OFF \
+ -DFEATURE_webengine_system_libwebp=ON \
+ -DFEATURE_webengine_system_libxml=OFF \
+ -DFEATURE_webengine_system_minizip=OFF \
+ -DFEATURE_webengine_system_opus=ON \
+ -DFEATURE_webengine_system_poppler=OFF \
+ -DFEATURE_webengine_system_pulseaudio=OFF \
+ -DFEATURE_webengine_system_re2=OFF \
+ -DFEATURE_webengine_system_snappy=OFF \
+ -DFEATURE_webengine_system_zlib=ON \
+ -DFEATURE_webengine_v8_context_snapshot=OFF \
+ -DFEATURE_webengine_vaapi=OFF \
+ -DFEATURE_webengine_vulkan=OFF \
+ -DFEATURE_webengine_webchannel=ON \
+ -DFEATURE_webengine_webrtc=OFF \
+ -DFEATURE_webengine_webrtc_pipewire=OFF \
+ -DFEATURE_webenginequick_ui_delegates=ON
+endif
+
+QT6_CONF_TOOL := cmake
+QT6_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -G Ninja \
+ --log-level=$(if $(filter 1,$(PTXDIST_VERBOSE)),TRACE,STATUS) \
+ -DPython3_EXECUTABLE=$(PTXDIST_SYSROOT_HOST)/usr/lib/wrapper/$(SYSTEMPYTHON3) \
+ $(sort $(QT6_CONF_OPT))
+
+ifdef PTXCONF_QT6_GUI
+ifndef PTXCONF_QT6_PLATFORM_DEFAULT
+$(call ptx/error, Qt6: select at least one GUI platform!)
+endif
+endif
+
+# change default C++ standard
+# the detected standard is not used for configure and examples
+QT6_CXXFLAGS := -std=c++11
+
+$(STATEDIR)/qt6.prepare:
+ @$(call targetinfo)
+ @rm -rf "$(QT6_DIR)/qtbase/mkspecs/linux-ptx-g++"
+ @mkdir "$(QT6_DIR)/qtbase/mkspecs/linux-ptx-g++"
+ @$(foreach file, $(wildcard $(QT6_MKSPECS)/*), \
+ $(QT6_CONF_ENV) ptxd_replace_magic "$(file)" > \
+ "$(QT6_DIR)/qtbase/mkspecs/linux-ptx-g++/$(notdir $(file))"$(ptx/nl))
+
+ifdef PTXCONF_QT6_MODULE_QTWEBENGINE
+ifndef PTXCONF_ARCH_LP64
+ @echo "Checking for 32bit g++ host compiler ..."
+ @$(call world/execute, QT6, \
+ echo -e '#include <list>\n int main() { std::list<int> a; return 0; }' | \
+ g++ -x c++ - -o /dev/null -m32 &> /dev/null || \
+ ptxd_bailout "32bit g++ host compiler is missing (needed for QtWebengine)." \
+ "Please install g++-multilib (debian)")
+endif
+endif
+ @+$(call world/prepare, QT6)
+ @$(call touch)
+
+# some macro magic fails with icecc remote cpp on ARM/ARM64
+ifneq ($(PTXCONF_ARCH_ARM64)$(PTXCONF_ARCH_ARM),)
+ifdef PTXCONF_QT6_MODULE_QTWEBENGINE
+QT6_MAKE_ENV := \
+ ICECC_REMOTE_CPP=0
+endif
+endif
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/qt6.install:
+ @$(call targetinfo)
+ @$(call world/install, QT6)
+ @find $(QT6_PKGDIR) -name '*.qmltypes' | xargs -r rm
+ @find $(QT6_PKGDIR) -name '*.pri' -o -name '*.cmake' | \
+ xargs sed -i -e 's;$(PTXDIST_WORKSPACE);@WORKSPACE@;g' \
+ -e 's;$(shell readlink -f $(PTXDIST_WORKSPACE));@WORKSPACE@;g'
+ @$(call touch)
+
+QT6_QT_CONF := $(PTXDIST_SYSROOT_TARGET)/usr/bin/target_qt.conf
+
+QT6_CROSS_TOOLS := \
+ qmake \
+ qt-cmake \
+ qt-cmake-private \
+ qt-cmake-standalone-test \
+ qt-configure-module \
+ qtpaths
+
+QT6_BUILD_TOOLS := \
+ moc \
+ rcc \
+ uic
+
+$(STATEDIR)/qt6.install.post:
+ @$(call targetinfo)
+ @find $(QT6_PKGDIR) -name '*.pri' -o -name '*.cmake' | \
+ xargs sed -i 's;@WORKSPACE@;$(PTXDIST_WORKSPACE);g'
+ @$(call world/install.post, QT6)
+ @echo "[Paths]" > $(QT6_QT_CONF)
+ @echo "Prefix=/usr" >> $(QT6_QT_CONF)
+ @echo "HostPrefix=$(PTXDIST_SYSROOT_HOST)/usr" >> $(QT6_QT_CONF)
+ @echo "HostBinaries=$(PTXDIST_SYSROOT_CROSS)/usr/bin/qt6" >> $(QT6_QT_CONF)
+ @echo "HostLibraryExecutables=lib/qt6/libexec" >> $(QT6_QT_CONF)
+ @echo "HostData=$(SYSROOT)/usr/lib/qt6" >> $(QT6_QT_CONF)
+ @echo "Sysroot=" >> $(QT6_QT_CONF)
+ @echo "SysrootifyPrefix=false" >> $(QT6_QT_CONF)
+ @echo "TargetSpec=linux-ptx-g++" >> $(QT6_QT_CONF)
+ @echo "HostSpec=" >> $(QT6_QT_CONF)
+ @echo "Headers=$(SYSROOT)/usr/include/qt6" >> $(QT6_QT_CONF)
+ @echo "Libraries=$(SYSROOT)/usr/lib" >> $(QT6_QT_CONF)
+ @echo "Imports=/usr/lib/qt6/imports" >> $(QT6_QT_CONF)
+ @echo "Qml2Imports=/usr/lib/qt6/qml" >> $(QT6_QT_CONF)
+ @echo "" >> $(QT6_QT_CONF)
+# # qmake is found in sysroot-cross (via PATH) and sysroot target (via cmake)
+ @rm -rf $(PTXDIST_SYSROOT_CROSS)/bin/qt6
+ @mkdir $(PTXDIST_SYSROOT_CROSS)/bin/qt6
+ @$(foreach tool,$(QT6_CROSS_TOOLS), \
+ echo -e '#!/bin/sh\nexec $(PTXDIST_SYSROOT_TARGET)/usr/bin/$(tool) "$${@}"' > \
+ $(PTXDIST_SYSROOT_CROSS)/bin/qt6/$(tool)$(ptx/nl) \
+ chmod +x $(PTXDIST_SYSROOT_CROSS)/bin/qt6/$(tool)$(ptx/nl))
+ @$(foreach tool, $(QT6_BUILD_TOOLS), \
+ $(if $(wildcard $(PTXDIST_SYSROOT_HOST)/usr/lib/qt6/libexec/$(tool)), \
+ ln -vsf ../../../sysroot-host/lib/qt6/libexec/$(tool) $(PTXDIST_SYSROOT_CROSS)/usr/bin/$(tool)6$(ptx/nl)))
+ @$(call touch)
+
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+QT6_LIBS-y :=
+QT6_QML-y :=
+
+### Qt3d ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QT3D) += Qt63DAnimation Qt63DCore Qt63DExtras Qt63DInput Qt63DLogic Qt63DRender
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QT3D_QUICK) += Qt63DQuick Qt63DQuickAnimation Qt63DQuickExtras Qt63DQuickInput Qt63DQuickRender Qt63DQuickScene2D
+QT6_QML-$(PTXCONF_QT6_MODULE_QT3D_QUICK) += Qt3D
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QT3D) += geometryloaders/libdefaultgeometryloader
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QT3D) += geometryloaders/libgltfgeometryloader
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QT3D) += sceneparsers/libgltfsceneexport
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QT3D) += sceneparsers/libgltfsceneimport
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QT3D) += renderers/libopenglrenderer
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QT3D) += renderers/librhirenderer
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QT3D_QUICK) += renderplugins/libscene2d
+
+### Qt5Compat ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QT5COMPAT) += Qt6Core5Compat
+QT6_QML-$(PTXCONF_QT6_MODULE_QT5COMPAT_QUICK) += Qt5Compat
+
+### QtBase ###
+QT6_LIBS-y += Qt6Core
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTBASE) += Qt6Concurrent
+QT6_LIBS-$(PTXCONF_QT6_DBUS) += Qt6DBus
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTBASE_GUI) += Qt6Gui
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTBASE) += Qt6Network
+QT6_LIBS-$(PTXCONF_QT6_OPENGL) += Qt6OpenGL
+ifdef PTXCONF_QT6_OPENGL
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTBASE_WIDGETS) += Qt6OpenGLWidgets
+endif
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTBASE_PRINT) += Qt6PrintSupport
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTBASE_SQL) += Qt6Sql
+ifdef PTXCONF_QT6_TEST
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTBASE_WIDGETS) += Qt6Test
+endif
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTBASE_WIDGETS) += Qt6Widgets
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTBASE) += Qt6Xml
+QT6_LIBS-$(PTXCONF_QT6_PLATFORM_EGLFS) += Qt6EglFSDeviceIntegration
+QT6_LIBS-$(PTXCONF_QT6_PLATFORM_EGLFS) += Qt6EglFsKmsGbmSupport
+QT6_LIBS-$(PTXCONF_QT6_PLATFORM_EGLFS) += Qt6EglFsKmsSupport
+QT6_PLUGINS-$(PTXCONF_QT6_INPUT_EVDEV) += generic/libqevdevkeyboardplugin
+QT6_PLUGINS-$(PTXCONF_QT6_INPUT_EVDEV) += generic/libqevdevmouseplugin
+QT6_PLUGINS-$(PTXCONF_QT6_INPUT_EVDEV) += generic/libqevdevtabletplugin
+QT6_PLUGINS-$(PTXCONF_QT6_INPUT_EVDEV) += generic/libqevdevtouchplugin
+QT6_PLUGINS-$(PTXCONF_QT6_INPUT_LIBINPUT) += generic/libqlibinputplugin
+QT6_PLUGINS-$(PTXCONF_QT6_GIF) += imageformats/libqgif
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTBASE_GUI) += imageformats/libqico
+QT6_PLUGINS-$(PTXCONF_QT6_LIBJPEG) += imageformats/libqjpeg
+QT6_PLUGINS-$(PTXCONF_QT6_PLATFORM_EGLFS) += platforms/libqeglfs
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTBASE_GUI) += platforms/libqminimal
+QT6_PLUGINS-$(PTXCONF_QT6_PLATFORM_EGLFS) += platforms/libqminimalegl
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTBASE_GUI) += platforms/libqoffscreen
+QT6_PLUGINS-$(PTXCONF_QT6_PLATFORM_EGLFS) += egldeviceintegrations/libqeglfs-kms-integration
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTBASE_SQL_MYSQL) += sqldrivers/libqsqlmysql
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTBASE_SQL_SQLITE) += sqldrivers/libqsqlite
+QT6_PLUGINS-$(PTXCONF_QT6_GLIB) += networkinformation/libqglib
+QT6_PLUGINS-$(PTXCONF_QT6_DBUS) += networkinformation/libqnetworkmanager
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTBASE) += tls/libqcertonlybackend
+QT6_PLUGINS-$(PTXCONF_QT6_OPENSSL) += tls/libqopensslbackend
+
+### QtCharts ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTCHARTS) += Qt6Charts
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTCHARTS_QUICK) += Qt6ChartsQml
+QT6_QML-$(PTXCONF_QT6_MODULE_QTCHARTS_QUICK) += QtCharts
+
+### QtCoap ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTCOAP) += Qt6Coap
+
+### QtConnectivity ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTCONNECTIVITY) += Qt6Bluetooth
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTCONNECTIVITY) += Qt6Nfc
+
+### QtDataVisualization ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDATAVIS3D) += Qt6DataVisualization
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDATAVIS3D) += Qt6DataVisualizationQml
+QT6_QML-$(PTXCONF_QT6_MODULE_QTDATAVIS3D) += QtDataVisualization
+
+### QtDeclarative ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE) += Qt6Qml
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE) += Qt6QmlCore
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE) += Qt6QmlLocalStorage
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE) += Qt6QmlXmlListModel
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_QUICK) += Qt6QmlModels
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_QUICK) += Qt6QmlWorkerScript
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_QUICK) += Qt6Quick
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_QUICK) += Qt6QuickControls2
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_QUICK) += Qt6QuickControls2Impl
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_QUICK) += Qt6QuickDialogs2
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_QUICK) += Qt6QuickDialogs2Utils
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_QUICK) += Qt6QuickDialogs2QuickImpl
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_QUICK) += Qt6QuickEffects
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_QUICK) += Qt6QuickLayouts
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_QUICK) += Qt6QuickShapes
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_QUICK) += Qt6QuickTemplates2
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_QUICK_WIDGETS) += Qt6QuickWidgets
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_QUICK_PARTICLES) += Qt6QuickParticles
+ifdef PTXCONF_QT6_TEST
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_QUICK) += Qt6QuickTest
+endif
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_DEBUG) += qmltooling/libqmldbg_debugger
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_DEBUG) += qmltooling/libqmldbg_local
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_DEBUG) += qmltooling/libqmldbg_messages
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_DEBUG) += qmltooling/libqmldbg_native
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_DEBUG) += qmltooling/libqmldbg_nativedebugger
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_DEBUG) += qmltooling/libqmldbg_preview
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_DEBUG) += qmltooling/libqmldbg_profiler
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_QUICK_DEBUG) += qmltooling/libqmldbg_quickprofiler
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_DEBUG) += qmltooling/libqmldbg_server
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_DEBUG) += qmltooling/libqmldbg_tcp
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_QUICK_DEBUG) += qmltooling/libqmldbg_inspector
+QT6_QML-$(PTXCONF_QT6_MODULE_QTDECLARATIVE) += Qt
+QT6_QML-$(PTXCONF_QT6_MODULE_QTDECLARATIVE) += QtCore
+QT6_QML-$(PTXCONF_QT6_MODULE_QTDECLARATIVE) += QtQml
+QT6_QML-$(PTXCONF_QT6_MODULE_QTDECLARATIVE) += QtQuick
+ifdef PTXCONF_QT6_TEST
+QT6_QML-$(PTXCONF_QT6_MODULE_QTDECLARATIVE_QUICK) += QtTest
+endif
+
+### QtGraphs ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTGRAPHS) += Qt6Graphs
+QT6_QML-$(PTXCONF_QT6_MODULE_QTGRAPHS) += QtGraphs
+
+### QtHttpServer ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTHTTPSERVER) += Qt6HttpServer
+
+### QtImageFormats ###
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTIMAGEFORMATS) += imageformats/libqicns
+QT6_PLUGINS-$(PTXCONF_QT6_LIBMNG) += imageformats/libqmng
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTIMAGEFORMATS) += imageformats/libqtga
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTIMAGEFORMATS) += imageformats/libqtiff
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTIMAGEFORMATS) += imageformats/libqwbmp
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTIMAGEFORMATS) += imageformats/libqwebp
+
+### QtLottie ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTLOTTIE) += Qt6Bodymovin
+
+### QtMqtt ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTMQTT) += Qt6Mqtt
+
+### QtMultimedia ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTMULTIMEDIA) += Qt6Multimedia
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTMULTIMEDIA_QUICK) += Qt6MultimediaQuick
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTMULTIMEDIA_WIDGETS) += Qt6MultimediaWidgets
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTMULTIMEDIA_GST) += multimedia/libgstreamermediaplugin
+QT6_QML-$(PTXCONF_QT6_MODULE_QTMULTIMEDIA_QUICK) += QtMultimedia
+
+### QtNetworkAuth ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTNETWORKAUTH) += Qt6NetworkAuth
+
+### QtOpcua ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTOPCUA) += Qt6OpcUa
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTOPCUA_QUICK) += Qt6DeclarativeOpcua
+QT6_QML-$(PTXCONF_QT6_MODULE_QTOPCUA_QUICK) += QtOpcUa
+
+### QtPositioning ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTPOSITIONING) += Qt6Positioning
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTPOSITIONING_QUICK) += Qt6PositioningQuick
+QT6_QML-$(PTXCONF_QT6_MODULE_QTPOSITIONING_QUICK) += QtPositioning
+
+### QtQuick3D ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTQUICK3D) += Qt6Quick3D
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTQUICK3D) += Qt6Quick3DAssetImport
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTQUICK3D) += Qt6Quick3DAssetUtils
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTQUICK3D) += Qt6Quick3DEffects
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTQUICK3D) += Qt6Quick3DGlslParser
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTQUICK3D) += Qt6Quick3DHelpers
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTQUICK3D) += Qt6Quick3DHelpersImpl
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTQUICK3D) += Qt6Quick3DIblBaker
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTQUICK3D) += Qt6Quick3DParticleEffects
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTQUICK3D) += Qt6Quick3DParticles
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTQUICK3D) += Qt6Quick3DRuntimeRender
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTQUICK3D) += Qt6Quick3DUtils
+QT6_QML-$(PTXCONF_QT6_MODULE_QTQUICK3D) += QtQuick3D
+
+### QtQuick3DPhysics ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTQUICK3DPHYSICS) += Qt6Quick3DPhysics
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTQUICK3DPHYSICS) += Qt6Quick3DPhysicsHelpers
+
+### QtQuickTimeline ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTQUICKTIMELINE) += Qt6QuickTimeline
+
+### QtRemoteObjects ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTREMOTEOBJECTS) += Qt6RemoteObjects
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTREMOTEOBJECTS_QUICK) += Qt6RemoteObjectsQml
+QT6_QML-$(PTXCONF_QT6_MODULE_QTREMOTEOBJECTS_QUICK) += QtRemoteObjects
+
+### QtShaderTools ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTSHADERTOOLS) += Qt6ShaderTools
+
+### QtScxml ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTSCXML) += Qt6Scxml
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTSCXML) += Qt6StateMachine
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTSCXML_QUICK) += Qt6StateMachineQml
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTSCXML_QUICK) += Qt6ScxmlQml
+QT6_QML-$(PTXCONF_QT6_MODULE_QTSCXML_QUICK) += QtScxml
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTSCXML_QUICK) += scxmldatamodel/libqscxmlecmascriptdatamodel
+
+### QtSensors ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTSENSORS) += Qt6Sensors
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTSENSORS_QUICK) += Qt6SensorsQuick
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTSENSORS) += sensors/libqtsensors_generic
+ifdef PTXCONF_QT6_DBUS
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTSENSORS) += sensors/libqtsensors_iio-sensor-proxy
+endif
+QT6_QML-$(PTXCONF_QT6_MODULE_QTSENSORS_QUICK) += QtSensors
+
+### QtSerialBus ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTSERIALBUS) += Qt6SerialBus
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTSERIALBUS) += canbus/libqtsocketcanbus
+
+### QtSerialPort ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTSERIALPORT) += Qt6SerialPort
+
+### QtSvg ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTSVG) += Qt6Svg
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTSVG_WIDGETS) += Qt6SvgWidgets
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTSVG_WIDGETS) += iconengines/libqsvgicon
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTSVG) += imageformats/libqsvg
+
+### QtVirtualKeyboard ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTVIRTUALKEYBOARD) += Qt6VirtualKeyboard
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTVIRTUALKEYBOARD) += platforminputcontexts/libqtvirtualkeyboardplugin
+
+### QtWayland ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTWAYLAND) += Qt6WaylandClient
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTWAYLAND) += platforms/libqwayland-generic
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTWAYLAND_MESA) += Qt6WaylandEglClientHwIntegration
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTWAYLAND_MESA) += platforms/libqwayland-egl
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTWAYLAND_MESA) += wayland-graphics-integration-client/libqt-plugin-wayland-egl
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTWAYLAND_MESA) += wayland-graphics-integration-client/libdmabuf-server
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTWAYLAND_MESA) += wayland-graphics-integration-client/libdrm-egl-server
+
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTWAYLAND) += wayland-shell-integration/libfullscreen-shell-v1
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTWAYLAND) += wayland-shell-integration/libivi-shell
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTWAYLAND) += wayland-shell-integration/libqt-shell
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTWAYLAND) += wayland-shell-integration/libxdg-shell
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTWAYLAND) += wayland-decoration-client/libbradient
+
+### QtWebChannel ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTWEBCHANNEL) += Qt6WebChannel
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTWEBCHANNEL_QUICK) += Qt6WebChannelQuick
+QT6_QML-$(PTXCONF_QT6_MODULE_QTWEBCHANNEL_QUICK) += QtWebChannel
+
+### QtWebEngine ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTWEBENGINE) += Qt6WebEngineCore
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTWEBENGINE) += Qt6WebEngineQuick
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTWEBENGINE) += Qt6WebEngineQuickDelegatesQml
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTWEBENGINE_WIDGETS) += Qt6WebEngineWidgets
+QT6_QML-$(PTXCONF_QT6_MODULE_QTWEBENGINE) += QtWebEngine
+
+### QtWebSockets ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTWEBSOCKETS) += Qt6WebSockets
+QT6_QML-$(PTXCONF_QT6_MODULE_QTWEBSOCKETS_QUICK) += QtWebSockets
+
+### QtWebView ###
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTWEBVIEW) += Qt6WebView
+QT6_LIBS-$(PTXCONF_QT6_MODULE_QTWEBVIEW) += Qt6WebViewQuick
+QT6_QML-$(PTXCONF_QT6_MODULE_QTWEBVIEW) += QtWebView
+QT6_PLUGINS-$(PTXCONF_QT6_MODULE_QTWEBVIEW) += webview/libqtwebview_webengine
+
+
+$(STATEDIR)/qt6.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, qt6)
+ @$(call install_fixup, qt6,PRIORITY,optional)
+ @$(call install_fixup, qt6,SECTION,base)
+ @$(call install_fixup, qt6,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, qt6,DESCRIPTION,missing)
+
+ @$(foreach lib, $(QT6_LIBS-y), \
+ $(call install_lib, qt6, 0, 0, 0644, lib$(lib))$(ptx/nl))
+
+ifdef PTXCONF_QT6_MODULE_QTWEBENGINE
+ @$(call install_copy, qt6, 0, 0, 0755, -, \
+ /usr/lib/qt6/libexec/QtWebEngineProcess)
+ @$(call install_copy, qt6, 0, 0, 0644, -, \
+ /usr/share/qt6/resources/icudtl.dat)
+ @$(call install_copy, qt6, 0, 0, 0644, -, \
+ /usr/share/qt6/resources/qtwebengine_devtools_resources.pak)
+ @$(call install_copy, qt6, 0, 0, 0644, -, \
+ /usr/share/qt6/resources/qtwebengine_resources.pak)
+ @$(call install_copy, qt6, 0, 0, 0644, -, \
+ /usr/share/qt6/resources/qtwebengine_resources_100p.pak)
+ @$(call install_copy, qt6, 0, 0, 0644, -, \
+ /usr/share/qt6/resources/qtwebengine_resources_200p.pak)
+endif
+
+ @$(foreach plugin, $(QT6_PLUGINS-y), \
+ $(call install_copy, qt6, 0, 0, 0644, -, \
+ /usr/lib/qt6/plugins/$(plugin).so)$(ptx/nl))
+
+ @$(foreach import, $(QT6_IMPORTS-y), \
+ $(call install_tree, qt6, 0, 0, -, \
+ /usr/lib/qt6/imports/$(import))$(ptx/nl))
+
+ @$(foreach qml, $(QT6_QML-y), \
+ $(call install_glob, qt6, 0, 0, -, \
+ /usr/lib/qt6/qml/$(qml),,*/labs */test)$(ptx/nl))
+
+ifdef PTXCONF_QT6_MODULE_QTDECLARATIVE_QML
+ @$(call install_copy, qt6, 0, 0, 0755, -, /usr/bin/qml)
+endif
+ifdef PTXCONF_QT6_MODULE_QTDECLARATIVE_QMLSCENE
+ @$(call install_copy, qt6, 0, 0, 0755, -, /usr/bin/qmlscene)
+endif
+
+ @$(call install_finish, qt6)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/quagga.in b/rules/quagga.in
deleted file mode 100644
index 6858ebb39..000000000
--- a/rules/quagga.in
+++ /dev/null
@@ -1,106 +0,0 @@
-## SECTION=networking
-
-menuconfig QUAGGA
- tristate
- select NET_SNMP
- select NET_SNMP_MIB_MODULES_AGENTX
- select C_ARES if QUAGGA_NHRPD
- select READLINE if QUAGGA_VTYSH
- select TERMCAP if QUAGGA_VTYSH
- prompt "quagga "
- help
- Quagga Routing Suite. Quagga is a routing software suite, providing
- implementations of OSPFv2, OSPFv3, RIP v1 and v2, RIPng and BGP-4
- for Unix platforms, particularly FreeBSD, Linux, Solaris and NetBSD.
- Quagga is a fork of GNU Zebra which was developed by Kunihiro
- Ishiguro. The Quagga tree aims to build a more involved community
- around Quagga than the current centralised model of GNU Zebra.
-
-if QUAGGA
-
-config QUAGGA_VTYSH
- bool
- default y
- prompt "Install vtysh"
- help
- Disable the vtysh component if you do not need it
-
-config QUAGGA_ZEBRA
- bool
- default y
- prompt "Install zebra"
- help
- Disable the zebra component if you do not need it
-
-config QUAGGA_BGPD
- bool
- default y
- prompt "Install bgpd"
- help
- Disable the bgpd component if you do not need it
-
-config QUAGGA_RIPD
- bool
- default y
- prompt "Install ripd"
- help
- Disable the ripd component if you do not need it
-
-config QUAGGA_RIPNGD
- bool
- default y
- prompt "Install ripngd"
- help
- Disable the ripngd component if you do not need it
-
-config QUAGGA_OSPF
- bool
- default y
- select QUAGGA_OSPFD
- prompt "Install ospfclient"
- help
- Disable the ospfclient component if you do not need it
-
-config QUAGGA_OSPFD
- bool
- default y
- prompt "Install ospfd"
- help
- Disable the ospfd component if you do not need it
-
-config QUAGGA_OSPF6D
- bool
- default y
- prompt "Install ospf6d"
- help
- Disable the ospf6d component if you do not need it
-
-config QUAGGA_NHRPD
- bool
- default y
- prompt "Install nhrpd"
- help
- Disable the nhrpd component if you do not need it
-
-config QUAGGA_WATCHQUAGGA
- bool
- default y
- prompt "Install watchquagga"
- help
- Disable the watchquagga component if you do not need it
-
-config QUAGGA_ISISD
- bool
- default y
- prompt "Install isisd"
- help
- Disable the isisd component if you do not need it
-
-config QUAGGA_PIMD
- bool
- default y
- prompt "Install pimd"
- help
- Disable the pimd component if you do not need it
-
-endif
diff --git a/rules/quagga.make b/rules/quagga.make
deleted file mode 100644
index ad0fd4029..000000000
--- a/rules/quagga.make
+++ /dev/null
@@ -1,141 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2015 Dr. Neuhaus Telekommunikation GmbH, Hamburg Germany, Oliver Graute <oliver.graute@neuhaus.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_QUAGGA) += quagga
-
-#
-# Paths and names
-#
-QUAGGA_VERSION := 1.2.4
-QUAGGA_MD5 := eced21b054d71c9e1b7c6ac43286a166
-QUAGGA := quagga-$(QUAGGA_VERSION)
-QUAGGA_SUFFIX := tar.gz
-QUAGGA_URL := http://download.savannah.gnu.org/releases/quagga/$(QUAGGA).$(QUAGGA_SUFFIX)
-QUAGGA_SOURCE := $(SRCDIR)/$(QUAGGA).$(QUAGGA_SUFFIX)
-QUAGGA_DIR := $(BUILDDIR)/$(QUAGGA)
-QUAGGA_LICENSE := GPL-2.0-only
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-QUAGGA_CONF_TOOL := autoconf
-QUAGGA_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- $(GLOBAL_LARGE_FILE_OPTION) \
- --$(call ptx/endis, PTXCONF_QUAGGA_VTYSH)-vtysh \
- --$(call ptx/endis, PTXCONF_QUAGGA_ZEBRA)-zebra \
- --$(call ptx/endis, PTXCONF_QUAGGA_BGPD)-bgpd \
- --$(call ptx/endis, PTXCONF_QUAGGA_RIPD)-ripd \
- --$(call ptx/endis, PTXCONF_QUAGGA_RIPNGD)-ripngd \
- --$(call ptx/endis, PTXCONF_QUAGGA_OSPFD)-ospfd \
- --$(call ptx/endis, PTXCONF_QUAGGA_OSPF6D)-ospf6d \
- --$(call ptx/endis, PTXCONF_QUAGGA_NHRPD)-nhrpd \
- --$(call ptx/endis, PTXCONF_QUAGGA_WATCHQUAGGA)-watchquagga \
- --$(call ptx/endis, PTXCONF_QUAGGA_ISISD)-isisd \
- --$(call ptx/endis, PTXCONF_QUAGGA_PIMD)-pimd \
- --disable-doc \
- --disable-bgp-announce \
- --enable-snmp=agentx \
- --enable-tcp-zebra \
- --$(call ptx/endis, PTXCONF_QUAGGA_OSPF)-ospfapi \
- --$(call ptx/endis, PTXCONF_QUAGGA_OSPF)-ospfclient \
- --enable-multipath=1 \
- --enable-user=user \
- --enable-group=group \
- --enable-vty-group=no \
- --enable-configfile-mask=-600 \
- --enable-logfile-mask=-600 \
- --disable-rtadv \
- --enable-irdp \
- --enable-isis-topology \
- --disable-capabilities \
- --disable-rusage \
- --enable-gcc-ultra-verbose \
- --enable-linux24-tcp-md5 \
- --enable-gcc-rdynamic \
- --disable-backtrace \
- --disable-time-check \
- --enable-pcreposix \
- --enable-fpm
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/quagga.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, quagga)
- @$(call install_fixup, quagga,PRIORITY,optional)
- @$(call install_fixup, quagga,SECTION,base)
- @$(call install_fixup, quagga,AUTHOR,"<oliver.graute@neuhaus.de>")
- @$(call install_fixup, quagga,DESCRIPTION,missing)
-
- @$(call install_lib, quagga, 0, 0, 0644, libzebra)
-
-ifdef PTXCONF_QUAGGA_RIPD
- @$(call install_copy, quagga, 0, 0, 0755, -, /usr/sbin/ripd)
- @$(call install_alternative, quagga, 0, 0, 0644, /etc/quagga/ripd.conf)
-endif
-ifdef PTXCONF_QUAGGA_RIPNGD
- @$(call install_copy, quagga, 0, 0, 0755, -, /usr/sbin/ripngd)
- @$(call install_alternative, quagga, 0, 0, 0644, /etc/quagga/ripngd.conf)
-endif
-ifdef PTXCONF_QUAGGA_NHRPD
- @$(call install_copy, quagga, 0, 0, 0755, -, /usr/sbin/nhrpd)
- @$(call install_alternative, quagga, 0, 0, 0644, /etc/quagga/nhrpd.conf)
-endif
-ifdef PTXCONF_QUAGGA_BGPD
- @$(call install_copy, quagga, 0, 0, 0755, -, /usr/sbin/bgpd)
- @$(call install_alternative, quagga, 0, 0, 0644, /etc/quagga/bgpd.conf)
-endif
-ifdef PTXCONF_QUAGGA_ZEBRA
- @$(call install_copy, quagga, 0, 0, 0755, -, /usr/sbin/zebra)
- @$(call install_alternative, quagga, 0, 0, 0644, /etc/quagga/zebra.conf)
-endif
-ifdef PTXCONF_QUAGGA_OSPFD
- @$(call install_lib, quagga, 0, 0, 0644, libospf)
- @$(call install_copy, quagga, 0, 0, 0755, -, /usr/sbin/ospfd)
- @$(call install_alternative, quagga, 0, 0, 0644, /etc/quagga/ospfd.conf)
-endif
-ifdef PTXCONF_QUAGGA_OSPF6D
- @$(call install_copy, quagga, 0, 0, 0755, -, /usr/sbin/ospf6d)
- @$(call install_alternative, quagga, 0, 0, 0644, /etc/quagga/ospf6d.conf)
-endif
-ifdef PTXCONF_QUAGGA_WATCHQUAGGA
- @$(call install_copy, quagga, 0, 0, 0755, -, /usr/sbin/watchquagga)
-endif
-ifdef PTXCONF_QUAGGA_VTYSH
- @$(call install_copy, quagga, 0, 0, 0755, -, /usr/bin/vtysh)
- @$(call install_alternative, quagga, 0, 0, 0644, /etc/quagga/vtysh.conf)
-endif
-ifdef PTXCONF_QUAGGA_ISISD
- @$(call install_copy, quagga, 0, 0, 0755, -, /usr/sbin/isisd)
- @$(call install_alternative, quagga, 0, 0, 0644, /etc/quagga/isisd.conf)
-endif
-ifdef PTXCONF_QUAGGA_PIMD
- @$(call install_copy, quagga, 0, 0, 0755, -, /usr/sbin/pimd)
- @$(call install_alternative, quagga, 0, 0, 0644, /etc/quagga/pimd.conf)
-endif
-ifdef PTXCONF_QUAGGA_OSPF
- @$(call install_lib, quagga, 0, 0, 0644, libospfapiclient)
- @$(call install_copy, quagga, 0, 0, 0755, -, /usr/sbin/ospfclient)
-endif
-
- @$(call install_finish, quagga)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/quota-tools.in b/rules/quota-tools.in
index 18175defe..171afb738 100644
--- a/rules/quota-tools.in
+++ b/rules/quota-tools.in
@@ -3,7 +3,6 @@
menuconfig QUOTA_TOOLS
tristate
prompt "quota tools "
- select LIBTIRPC
select E2FSPROGS if QUOTA_TOOLS_QUOTACHECK_EXT2
select E2FSPROGS_LIBEXT2FS if QUOTA_TOOLS_QUOTACHECK_EXT2
select E2FSPROGS_LIBCOM_ERR if QUOTA_TOOLS_QUOTACHECK_EXT2
diff --git a/rules/quota-tools.make b/rules/quota-tools.make
index 091da876b..553cad049 100644
--- a/rules/quota-tools.make
+++ b/rules/quota-tools.make
@@ -27,8 +27,7 @@ QUOTA_TOOLS_LICENSE := GPL-2.0-only
# autoconf
#
QUOTA_TOOLS_CONF_TOOL := autoconf
-
-QUOTA_TOOLS_AUTOCONF := \
+QUOTA_TOOLS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
$(GLOBAL_LARGE_FILE_OPTION) \
--disable-nls \
diff --git a/rules/qwt.in b/rules/qwt.in
deleted file mode 100644
index d15fceceb..000000000
--- a/rules/qwt.in
+++ /dev/null
@@ -1,28 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=qt
-
-menuconfig QWT
- tristate
- prompt "qwt "
- select QT4
- select QT4_BUILD_GUI
- select QT4_BUILD_SVG if QWT_SVG
- help
- The Qwt library contains GUI Components and utility classes
- which are primarily useful for programs with a technical
- background. Beside a 2D plot widget it provides scales, sliders,
- dials, compasses, thermometers, wheels and knobs to control or
- display values, arrays, or ranges of type double.
-
- STAGING: remove in PTXdist 2022.01.0
- Qt4 has been replaces by Qt5 a long time ago.
-
-if QWT
-
-config QWT_SVG
- bool
- prompt "SVG support"
-
-endif
-
diff --git a/rules/qwt.make b/rules/qwt.make
deleted file mode 100644
index cb62d7248..000000000
--- a/rules/qwt.make
+++ /dev/null
@@ -1,54 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2009,2011 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_QWT) += qwt
-
-#
-# Paths and names
-#
-QWT_VERSION := 6.0.1
-QWT_MD5 := ace68558eab873e2da7e641179c4ef0c
-QWT := qwt-$(QWT_VERSION)
-QWT_SUFFIX := tar.bz2
-QWT_URL := $(call ptx/mirror, SF, qwt/$(QWT).$(QWT_SUFFIX))
-QWT_SOURCE := $(SRCDIR)/$(QWT).$(QWT_SUFFIX)
-QWT_DIR := $(BUILDDIR)/$(QWT)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-QWT_CONF_OPT := $(CROSS_QMAKE_OPT)
-
-ifdef PTXCONF_QWT_SVG
-QWT_CONF_OPT += QWT_CONFIG+=QwtSvg
-endif
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/qwt.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, qwt)
- @$(call install_fixup, qwt,PRIORITY,optional)
- @$(call install_fixup, qwt,SECTION,base)
- @$(call install_fixup, qwt,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
- @$(call install_fixup, qwt,DESCRIPTION,missing)
-
- @$(call install_lib, qwt, 0, 0, 0644, libqwt)
-
- @$(call install_finish, qwt)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/qwt5.in b/rules/qwt5.in
index d3cd609a8..6444fcafd 100644
--- a/rules/qwt5.in
+++ b/rules/qwt5.in
@@ -7,7 +7,7 @@ menuconfig QWT5
select QT5_GUI
select QT5_OPENGL
select QT5_MODULE_QTBASE_WIDGETS
- select QT5_MODULE_QTSVG if QWT_SVG
+ select QT5_MODULE_QTSVG if QWT5_SVG
help
The Qwt library contains GUI Components and utility classes
which are primarily useful for programs with a technical
diff --git a/rules/qwt5.make b/rules/qwt5.make
index fb7d2be58..716a38137 100644
--- a/rules/qwt5.make
+++ b/rules/qwt5.make
@@ -28,7 +28,7 @@ QWT5_LICENSE := LGPL-2.1-only AND QWT-1.0
# Prepare
# ----------------------------------------------------------------------------
-QWT5_PATH := PATH=$(PTXDIST_SYSROOT_CROSS)/bin/qt5:$(CROSS_PATH)
+QWT5_PATH := PATH=$(PTXDIST_SYSROOT_CROSS)/usr/bin/qt5:$(CROSS_PATH)
QWT5_CONF_OPT := $(CROSS_QMAKE_OPT) TARGET_TEMPLATE=lib
diff --git a/rules/rapidjson.in b/rules/rapidjson.in
index 7127f9db5..352340383 100644
--- a/rules/rapidjson.in
+++ b/rules/rapidjson.in
@@ -7,4 +7,4 @@ config RAPIDJSON
help
A fast JSON parser/generator for C++ with both SAX/DOM style API
- NOTE: This library is header-only, so there's no target package.
+ NOTE: This library is header-only, so there's no target package.
diff --git a/rules/rauc-hawkbit-updater.make b/rules/rauc-hawkbit-updater.make
index f8557f039..9fda3e027 100644
--- a/rules/rauc-hawkbit-updater.make
+++ b/rules/rauc-hawkbit-updater.make
@@ -14,17 +14,16 @@ PACKAGES-$(PTXCONF_RAUC_HAWKBIT_UPDATER) += rauc-hawkbit-updater
#
# Paths and names
#
-RAUC_HAWKBIT_UPDATER_VERSION := 2020-09-09-gb38f5a5
-RAUC_HAWKBIT_UPDATER_MD5 := c2accd9bdcab813dbf9850e6ed63085e
+RAUC_HAWKBIT_UPDATER_VERSION := 1.2
+RAUC_HAWKBIT_UPDATER_MD5 := b28ec46961572dafca4afe7ac9992cf2
RAUC_HAWKBIT_UPDATER := rauc-hawkbit-updater-$(RAUC_HAWKBIT_UPDATER_VERSION)
RAUC_HAWKBIT_UPDATER_SUFFIX := tar.gz
-RAUC_HAWKBIT_UPDATER_URL := https://github.com/rauc/rauc-hawkbit-updater/archive/$(RAUC_HAWKBIT_UPDATER).$(RAUC_HAWKBIT_UPDATER_SUFFIX)
+RAUC_HAWKBIT_UPDATER_URL := https://github.com/rauc/rauc-hawkbit-updater/releases/download/v$(RAUC_HAWKBIT_UPDATER_VERSION)/$(RAUC_HAWKBIT_UPDATER).$(RAUC_HAWKBIT_UPDATER_SUFFIX)
RAUC_HAWKBIT_UPDATER_SOURCE := $(SRCDIR)/$(RAUC_HAWKBIT_UPDATER).$(RAUC_HAWKBIT_UPDATER_SUFFIX)
RAUC_HAWKBIT_UPDATER_DIR := $(BUILDDIR)/$(RAUC_HAWKBIT_UPDATER)
RAUC_HAWKBIT_UPDATER_LICENSE := LGPL-2.1-only
RAUC_HAWKBIT_UPDATER_LICENSE_FILES := \
- file://LICENSE;md5=1a6d268fd218675ffea8be556788b780 \
- file://src/rauc-hawkbit-updater.c;startline=2;endline=18;md5=77f866ecbd1a16747812cee95cdfcf44
+ file://LICENSE;md5=1a6d268fd218675ffea8be556788b780
# ----------------------------------------------------------------------------
# Prepare
@@ -38,8 +37,8 @@ RAUC_HAWKBIT_UPDATER_CONF_OPT := \
$(CROSS_CMAKE_USR) \
-DWITH_SYSTEMD=$(call ptx/onoff,PTXCONF_RAUC_HAWKBIT_UPDATER_SYSTEMD_UNIT) \
-DBUILD_DOC=OFF \
- -DQA_BUILD=ON \
- --with-systemdsystemunitdir=/usr/lib/systemd/system
+ -DQA_BUILD=OFF \
+ -DSYSTEMD_SERVICES_INSTALL_DIR=/usr/lib/systemd/system
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/rauc.in b/rules/rauc.in
index 744bc95d9..ee9c3f955 100644
--- a/rules/rauc.in
+++ b/rules/rauc.in
@@ -2,7 +2,8 @@
menuconfig RAUC
tristate
- prompt "Rauc Update Tool "
+ prompt "RAUC Update Tool "
+ select HOST_MESON
select OPENSSL
select GLIB
select GLIB_LIBMOUNT
@@ -13,7 +14,9 @@ menuconfig RAUC
select BUSYBOX_FEATURE_SEAMLESS_GZ if BUSYBOX_TAR
select DBUS if RAUC_SERVICE
select LIBCURL if RAUC_NETWORK
+ select LIBNL3 if RAUC_STREAMING
select JSON_GLIB if RAUC_JSON
+ select UTIL_LINUX_LIBFDISK if RAUC_GPT
select SQUASHFS_TOOLS if RUNTIME
select SQUASHFS_TOOLS_UNSQUASHFS if RUNTIME
select DT_UTILS if RUNTIME && RAUC_BAREBOX
@@ -25,6 +28,15 @@ menuconfig RAUC
if RAUC
+config RAUC_CREATE
+ bool
+ prompt "Enable bundle creation support on target"
+ help
+ Enables support for creating bundles on target.
+ Disabling this will remove functionality required for bundle
+ creation which is not required on the target in most cases and thus
+ allows to save space.
+
config RAUC_SERVICE
bool
prompt "Enable service (D-Bus) support"
@@ -43,6 +55,15 @@ config RAUC_NETWORK
Note that network is primarily designed to be used for RAUC'S casync
capabilities, not for fetching full bundles.
+config RAUC_STREAMING
+ bool
+ prompt "Enable streaming support"
+ select RAUC_NETWORK
+ help
+ Enables built-in HTTP(S) streaming support that allows RAUC to
+ access remote bundles via http/https and write images without the
+ need for intermediate storage on the target.
+
config RAUC_JSON
bool
prompt "JSON support"
@@ -50,6 +71,16 @@ config RAUC_JSON
Enables JSON output format for 'rauc info' and 'rauc status'.
Output format can be selected via '--output-format=<json/json-pretty>'
+config RAUC_GPT
+ bool
+ prompt "Support atomic EFI/bootloader partition updates (GPT)"
+ help
+ Enables support for atomic bootloader updates on first GPT (EFI)
+ partition (slot type 'boot-gpt-switch').
+ For details, see
+ https://rauc.readthedocs.io/en/latest/advanced.html#update-boot-partition-in-gpt
+
+
config RAUC_CONFIGURATION
bool
prompt "Install RAUC configuration in /etc/rauc"
@@ -74,13 +105,6 @@ config RAUC_COMPATIBLE
Only if the compatible in the targets RAUC system.conf file and those
in the Bundle's manifest match exactly, an update will be performed
-config RAUC_BUNDLE_VERSION
- string
- prompt "RAUC Bundle Version"
- default "${PTXDIST_BSP_AUTOVERSION}"
- help
- Overwrite the bundle version if needed.
-
endif
config RAUC_BAREBOX
diff --git a/rules/rauc.make b/rules/rauc.make
index 08df6336a..50b1ec35d 100644
--- a/rules/rauc.make
+++ b/rules/rauc.make
@@ -1,6 +1,6 @@
# -*-makefile-*-
#
-# Copyright (C) 2015 by Enrico Joerns <e.joerns@pengutronix.de>
+# Copyright (C) 2015-2023 by Enrico Joerns <e.joerns@pengutronix.de>
#
# For further information about the PTXdist project and license conditions
# see the README file.
@@ -14,39 +14,42 @@ PACKAGES-$(PTXCONF_RAUC) += rauc
#
# Paths and names
#
-RAUC_VERSION := 1.5.1
-RAUC_MD5 := e1c1fad12d81b955784968c37130d272
-RAUC := rauc-$(RAUC_VERSION)
-RAUC_SUFFIX := tar.xz
-RAUC_URL := https://github.com/rauc/rauc/releases/download/v$(RAUC_VERSION)/$(RAUC).$(RAUC_SUFFIX)
-RAUC_SOURCE := $(SRCDIR)/$(RAUC).$(RAUC_SUFFIX)
-RAUC_DIR := $(BUILDDIR)/$(RAUC)
-RAUC_LICENSE := LGPL-2.1-only
+RAUC_VERSION := 1.11.1
+RAUC_MD5 := 16e193e5e396a419a7ceee5777e7c077
+RAUC := rauc-$(RAUC_VERSION)
+RAUC_SUFFIX := tar.xz
+RAUC_URL := https://github.com/rauc/rauc/releases/download/v$(RAUC_VERSION)/$(RAUC).$(RAUC_SUFFIX)
+RAUC_SOURCE := $(SRCDIR)/$(RAUC).$(RAUC_SUFFIX)
+RAUC_DIR := $(BUILDDIR)/$(RAUC)
+RAUC_LICENSE := LGPL-2.1-or-later
+RAUC_LICENSE_FILES := \
+ file://README.rst;startline=281;endline=294;md5=d98e15259a1a004b59d4701b3d49cf44 \
+ file://COPYING;md5=4fbd65380cdd255951079008b364516c
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-RAUC_CONF_ENV := \
- $(CROSS_ENV) \
- PTXDIST_PKG_CONFIG_VAR_NO_SYSROOT=interfaces_dir
-
#
-# autoconf
+# meson
#
-RAUC_CONF_TOOL := autoconf
+RAUC_CONF_TOOL := meson
RAUC_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --enable-debug=info \
- $(GLOBAL_LARGE_FILE_OPTION) \
- --disable-code-coverage \
- --disable-valgrind \
- --$(call ptx/endis,PTXCONF_RAUC_SERVICE)-service \
- --$(call ptx/endis,PTXCONF_RAUC_NETWORK)-network \
- --$(call ptx/endis,PTXCONF_RAUC_JSON)-json \
- --with-systemdunitdir=/usr/lib/systemd/system \
- --with-dbuspolicydir=/usr/share/dbus-1/system.d \
- --with-dbussystemservicedir=/usr/share/dbus-1/system-services
+ $(CROSS_MESON_USR) \
+ -Dcreate=$(call ptx/truefalse,PTXCONF_RAUC_CREATE) \
+ -Ddbusinterfacesdir=/usr/share/dbus-1/interfaces \
+ -Ddbuspolicydir=/usr/share/dbus-1/system.d \
+ -Ddbussystemservicedir=/usr/share/dbus-1/system-services \
+ -Dfuzzing=false \
+ -Dgpt=$(call ptx/endis,PTXCONF_RAUC_GPT)d \
+ -Dhtmldocs=false \
+ -Djson=$(call ptx/endis,PTXCONF_RAUC_JSON)d \
+ -Dnetwork=$(call ptx/truefalse,PTXCONF_RAUC_NETWORK) \
+ -Dservice=$(call ptx/truefalse,PTXCONF_RAUC_SERVICE) \
+ -Dstreaming=$(call ptx/truefalse,PTXCONF_RAUC_STREAMING) \
+ -Dstreaming_user=nobody \
+ -Dsystemdunitdir=/usr/lib/systemd/system \
+ -Dtests=false
$(STATEDIR)/rauc.prepare:
@$(call targetinfo)
@@ -87,7 +90,6 @@ ifdef PTXCONF_RAUC_SERVICE
/usr/share/dbus-1/system-services/de.pengutronix.rauc.service)
@$(call install_copy, rauc, 0, 0, 0644, -, \
/usr/share/dbus-1/system.d/de.pengutronix.rauc.conf)
-endif
ifdef PTXCONF_INITMETHOD_SYSTEMD
@$(call install_alternative, rauc, 0, 0, 0644, \
@@ -101,6 +103,7 @@ else
@$(call install_copy, rauc, 0, 0, 0755, -, \
/usr/libexec/rauc-service.sh)
endif
+endif
@$(call install_finish, rauc)
diff --git a/rules/rawrec.in b/rules/rawrec.in
index b5013cf35..31905d343 100644
--- a/rules/rawrec.in
+++ b/rules/rawrec.in
@@ -6,10 +6,10 @@ config RAWREC
select LIBC_M
select LIBC_PTHREAD
help
- rawrec and rawplay are GPL'd utilities designed to provide
- the user with a simple way of recording or playing raw audio data from
- or to their sound card under intel Linux (I haven't tested other
- architectures, but its written to be portable, I think)
+ rawrec and rawplay are GPL'd utilities designed to provide
+ the user with a simple way of recording or playing raw audio data from
+ or to their sound card under intel Linux (I haven't tested other
+ architectures, but its written to be portable, I think)
- Details: http://rawrec.sourceforge.net
+ Details: http://rawrec.sourceforge.net
diff --git a/rules/rawrec.make b/rules/rawrec.make
index 81064ab1d..513e4895d 100644
--- a/rules/rawrec.make
+++ b/rules/rawrec.make
@@ -27,7 +27,6 @@ RAWREC_DIR := $(BUILDDIR)/$(RAWREC)
# Compile
# ----------------------------------------------------------------------------
-RAWREC_PATH := PATH=$(CROSS_PATH)
RAWREC_MAKE_ENV := $(CROSS_ENV)
RAWREC_MAKE_OPT := CC=$(CROSS_CC)
RAWREC_SUBDIR := src
diff --git a/rules/readline.in b/rules/readline.in
index 036860409..7673ce749 100644
--- a/rules/readline.in
+++ b/rules/readline.in
@@ -2,6 +2,7 @@
menuconfig READLINE
tristate
select NCURSES if READLINE_NCURSES
+ select NCURSES_BACKWARD_COMPATIBLE_NON_WIDE_CHAR if READLINE_NCURSES && NCURSES_WIDE_CHAR
select TERMCAP if READLINE_TERMCAP
select GCCLIBS_GCC_S
prompt "readline "
diff --git a/rules/readline.make b/rules/readline.make
index 14b89cfb9..69993112a 100644
--- a/rules/readline.make
+++ b/rules/readline.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_READLINE) += readline
#
# Paths and names
#
-READLINE_VERSION := 8.0
-READLINE_MD5 := 7e6c1f16aee3244a69aba6e438295ca3
+READLINE_VERSION := 8.2
+READLINE_MD5 := 4aa1b31be779e6b84f9a96cb66bc50f6
READLINE := readline-$(READLINE_VERSION)
READLINE_SUFFIX := tar.gz
READLINE_URL := $(call ptx/mirror, GNU, readline/$(READLINE).$(READLINE_SUFFIX))
@@ -29,12 +29,14 @@ READLINE_LICENSE_FILES := file://COPYING;md5=d32239bcb673463ab874e80d47fae504
# Prepare
# ----------------------------------------------------------------------------
-READLINE_AUTOCONF := \
+READLINE_CONF_TOOL := autoconf
+READLINE_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-multibyte \
--enable-shared \
--disable-static\
--disable-install-examples \
+ --enable-bracketed-paste-default \
$(GLOBAL_LARGE_FILE_OPTION) \
--$(call ptx/wwo,PTXCONF_READLINE_NCURSES)-curses
diff --git a/rules/redis.in b/rules/redis.in
new file mode 100644
index 000000000..3cf67ea89
--- /dev/null
+++ b/rules/redis.in
@@ -0,0 +1,27 @@
+## SECTION=system_libraries
+menuconfig REDIS
+ tristate
+ prompt "redis "
+ select GCCLIBS_GCC_S
+ select LIBC_DL
+ select LIBC_PTHREAD
+ select LIBC_CRYPT
+ select SYSTEMD if REDIS_SYSTEMD
+ help
+ Redis is an open source (BSD licensed), in-memory data
+ structure store, used as a database, cache, and message
+ broker.
+
+if REDIS
+
+config REDIS_SYSTEMD
+ bool
+ default INITMETHOD_SYSTEMD
+
+config REDIS_SYSTEMD_UNIT
+ bool
+ default y
+ depends on SYSTEMD
+ prompt "Unit file for systemd"
+
+endif
diff --git a/rules/redis.make b/rules/redis.make
new file mode 100644
index 000000000..d0c9bec48
--- /dev/null
+++ b/rules/redis.make
@@ -0,0 +1,104 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Clemens Gruber <clemens.gruber@pqgruber.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_REDIS) += redis
+
+#
+# Paths and names
+#
+REDIS_VERSION := 7.2.2
+REDIS_MD5 := 5ece867a53b30f31266a2130fd10568d
+REDIS := redis-$(REDIS_VERSION)
+REDIS_SUFFIX := tar.gz
+REDIS_URL := https://download.redis.io/releases/$(REDIS).$(REDIS_SUFFIX)
+REDIS_SOURCE := $(SRCDIR)/$(REDIS).$(REDIS_SUFFIX)
+REDIS_DIR := $(BUILDDIR)/$(REDIS)
+REDIS_LICENSE := BSD-3-Clause
+REDIS_LICENSE_FILES := file://COPYING;md5=8ffdd6c926faaece928cf9d9640132d2
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+REDIS_CONF_TOOL := NO
+
+REDIS_MAKE_ENV := \
+ $(CROSS_ENV)
+
+REDIS_ARCH := $(PTXCONF_ARCH_STRING)
+# the relevant check is for armv*, so there is no need for special v6/v7
+# handling
+ifdef PTXCONF_ARCH_ARM
+REDIS_ARCH := armv5
+endif
+
+REDIS_MAKE_OPT := \
+ CC=$(CROSS_CC) \
+ PREFIX=/usr \
+ USE_JEMALLOC=no \
+ USE_SYSTEMD=$(call ptx/ifdef,PTXCONF_REDIS_SYSTEMD,yes,no) \
+ uname_M=$(REDIS_ARCH) \
+ uname_S=Linux \
+ all
+
+REDIS_INSTALL_OPT := \
+ PREFIX=$(REDIS_PKGDIR)/usr \
+ install
+
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/redis.install:
+ @$(call targetinfo)
+ @$(call world/install, REDIS)
+ @install -v -D -m644 $(REDIS_DIR)/redis.conf \
+ $(REDIS_PKGDIR)/etc/redis.conf
+ @$(call touch)
+
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/redis.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, redis)
+ @$(call install_fixup, redis,PRIORITY,optional)
+ @$(call install_fixup, redis,SECTION,base)
+ @$(call install_fixup, redis,AUTHOR,"Clemens Gruber <clemens.gruber@pqgruber.com>")
+ @$(call install_fixup, redis,DESCRIPTION,"An in-memory database that persists on disk")
+
+ @$(call install_copy, redis, 0, 0, 0755, -, /usr/bin/redis-benchmark)
+ @$(call install_copy, redis, 0, 0, 0755, -, /usr/bin/redis-cli)
+ @$(call install_copy, redis, 0, 0, 0755, -, /usr/bin/redis-server)
+
+ @$(call install_link, redis, /usr/bin/redis-server, /usr/bin/redis-check-aof)
+ @$(call install_link, redis, /usr/bin/redis-server, /usr/bin/redis-check-rdb)
+
+ @$(call install_alternative, redis, 0, 0, 0644, /etc/redis.conf)
+
+ @$(call install_copy, redis, 0, 0, 0700, /var/lib/redis)
+
+ifdef PTXCONF_REDIS_SYSTEMD_UNIT
+ @$(call install_alternative, redis, 0, 0, 0644, /usr/lib/systemd/system/redis.service)
+ @$(call install_link, redis, ../redis.service, \
+ /usr/lib/systemd/system/multi-user.target.wants/redis.service)
+endif
+ @$(call install_alternative, redis, 0, 0, 0644, /usr/lib/tmpfiles.d/redis.conf)
+
+ @$(call install_finish, redis)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/rng-tools.in b/rules/rng-tools.in
index 24bcd048f..89ade1fda 100644
--- a/rules/rng-tools.in
+++ b/rules/rng-tools.in
@@ -3,9 +3,8 @@
menuconfig RNG_TOOLS
tristate
prompt "rng-tools rngd "
- select LIBSYSFS
select LIBC_PTHREAD
- select LIBGCRYPT
+ select OPENSSL
help
random number generator daemon - seed kernel random from hwrng
@@ -25,18 +24,19 @@ config RNG_TOOLS_RNGD
config RNG_TOOLS_STARTSCRIPT
bool
default y
- depends on RNG_TOOLS && INITMETHOD_BBINIT
+ select RNG_TOOLS_RNGD
+ depends on INITMETHOD_BBINIT
prompt "install /etc/init.d/rngd"
config RNG_TOOLS_SYSTEMD_UNIT
bool
default y
- depends on SYSTEMD
+ depends on INITMETHOD_SYSTEMD
+ select RNG_TOOLS_RNGD
prompt "install systemd unit files"
config RNG_TOOLS_RNGTEST
bool
- default n
prompt "install rngtest"
endif
diff --git a/rules/rng-tools.make b/rules/rng-tools.make
index 5d8a09cee..8436fb159 100644
--- a/rules/rng-tools.make
+++ b/rules/rng-tools.make
@@ -9,14 +9,18 @@
PACKAGES-$(PTXCONF_RNG_TOOLS) += rng-tools
-RNG_TOOLS_VERSION := 6.5
-RNG_TOOLS_MD5 := c153517cc73f7f2a899bf59df06ed1ce
+RNG_TOOLS_VERSION := 6.14
+RNG_TOOLS_MD5 := 917d21dd2b06816b0484e220dfb5ba4b
RNG_TOOLS := rng-tools-$(RNG_TOOLS_VERSION)
RNG_TOOLS_SUFFIX := tar.gz
RNG_TOOLS_URL := https://github.com/nhorman/rng-tools/archive/v$(RNG_TOOLS_VERSION).$(RNG_TOOLS_SUFFIX)
RNG_TOOLS_SOURCE := $(SRCDIR)/$(RNG_TOOLS).$(RNG_TOOLS_SUFFIX)
RNG_TOOLS_DIR := $(BUILDDIR)/$(RNG_TOOLS)
RNG_TOOLS_LICENSE := GPL-2.0-or-later
+RNG_TOOLS_LICENSE_FILES := \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://rngd.c;startline=12;endline=26;md5=8737e0a69b00f9cb52b9411c81aaa1d5 \
+ file://rngtest.c;startline=7;endline=21;md5=0bf96e235e77c1ff6cab766073094c7f
# ----------------------------------------------------------------------------
# Prepare
@@ -25,8 +29,11 @@ RNG_TOOLS_LICENSE := GPL-2.0-or-later
RNG_TOOLS_CONF_TOOL := autoconf
RNG_TOOLS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
- --with-libgcrypt \
- --without-nistbeacon
+ --disable-jitterentropy \
+ --without-nistbeacon \
+ --without-pkcs11 \
+ --without-rtlsdr \
+ --without-libargp
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/rootfs.in b/rules/rootfs.in
index f9951ffec..2b7c50363 100644
--- a/rules/rootfs.in
+++ b/rules/rootfs.in
@@ -135,7 +135,7 @@ config ROOTFS_MNT
prompt "/mnt"
default y
help
- This is a common directory to temporarely mount external media. Its
+ This is a common directory to temporarily mount external media. Its
always a good idea to select this entry.
config ROOTFS_PROC
@@ -178,7 +178,7 @@ config ROOTFS_VAR_OVERLAYFS
help
This lets the whole '/var' content be writable transparently via an
'overlayfs'.
- Reading content happens from the underlaying root filesystem, while
+ Reading content happens from the underlying root filesystem, while
changed content gets stored into a RAM disk instead. This enables all
applications to read initial data (configuration files for example)
and let them change this data even if the root filesystem is read-only.
@@ -382,9 +382,9 @@ config ROOTFS_MODPROBE_CONF
config ROOTFS_NSSWITCH_CONF
bool
default y
- prompt "install /etc/nsswitch"
+ prompt "install /etc/nsswitch.conf"
help
- If enabled, it installs the "./projectroot/etc/nsswitch" file if
+ If enabled, it installs the "./projectroot/etc/nsswitch.conf" file if
present, else a generic one from the ptxdist directory.
config ROOTFS_PROFILE
diff --git a/rules/rrdtool.make b/rules/rrdtool.make
index 239c443a9..675ec156a 100644
--- a/rules/rrdtool.make
+++ b/rules/rrdtool.make
@@ -18,7 +18,7 @@ RRDTOOL_VERSION := 1.7.0
RRDTOOL_MD5 := 2f37eeb613bed11077470c9e2057010e
RRDTOOL := rrdtool-$(RRDTOOL_VERSION)
RRDTOOL_SUFFIX := tar.gz
-RRDTOOL_URL := http://oss.oetiker.ch/rrdtool/pub/$(RRDTOOL).$(RRDTOOL_SUFFIX)
+RRDTOOL_URL := https://github.com/oetiker/rrdtool-1.x/releases/download/v$(RRDTOOL_VERSION)/$(RRDTOOL).$(RRDTOOL_SUFFIX)
RRDTOOL_SOURCE := $(SRCDIR)/$(RRDTOOL).$(RRDTOOL_SUFFIX)
RRDTOOL_DIR := $(BUILDDIR)/$(RRDTOOL)
RRDTOOL_LICENSE := GPL-2.0-or-later
diff --git a/rules/rsync.in b/rules/rsync.in
index a20c5add5..5841d4964 100644
--- a/rules/rsync.in
+++ b/rules/rsync.in
@@ -35,7 +35,7 @@ choice
bool
prompt "inetd driven"
help
- Install a inetd rule for rsync. This option adds the following line
+ Install an inetd rule for rsync. This option adds the following line
to /etc/inetd.conf.d/rsync:
rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon @CONFIG@
@@ -66,7 +66,7 @@ config RSYNC_INETD_STRING
default "rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon @CONFIG@"
help
This string is added to the inetd configuration /etc/inetd.conf.d/rsync.
- @CONFIG@ in this string will be replaced with the --config option, and the
+ @CONFIG@ in this string will be replaced with the --config option, and the
path given above for configuration
endif
diff --git a/rules/rsync.make b/rules/rsync.make
index be5079168..b59d4d549 100644
--- a/rules/rsync.make
+++ b/rules/rsync.make
@@ -18,7 +18,7 @@ RSYNC_VERSION := 2.6.9
RSYNC_MD5 := 996d8d8831dbca17910094e56dcb5942
RSYNC := rsync-$(RSYNC_VERSION)
RSYNC_SUFFIX := tar.gz
-RSYNC_URL := http://samba.org/ftp/rsync/src/$(RSYNC).$(RSYNC_SUFFIX)
+RSYNC_URL := https://www.samba.org/ftp/rsync/src/$(RSYNC).$(RSYNC_SUFFIX)
RSYNC_SOURCE := $(SRCDIR)/$(RSYNC).$(RSYNC_SUFFIX)
RSYNC_DIR := $(BUILDDIR)/$(RSYNC)
@@ -26,15 +26,15 @@ RSYNC_DIR := $(BUILDDIR)/$(RSYNC)
# Prepare
# ----------------------------------------------------------------------------
-RSYNC_PATH := PATH=$(CROSS_PATH)
-RSYNC_ENV := \
+RSYNC_CONF_ENV := \
$(CROSS_ENV) \
rsync_cv_HAVE_GETTIMEOFDAY_TZ=yes
#
# autoconf
#
-RSYNC_AUTOCONF := \
+RSYNC_CONF_TOOL := autoconf
+RSYNC_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
$(GLOBAL_IPV6_OPTION) \
$(GLOBAL_LARGE_FILE_OPTION) \
@@ -44,7 +44,7 @@ RSYNC_AUTOCONF := \
--disable-locale
ifneq ($(call remove_quotes,$(PTXCONF_RSYNC_CONFIG_FILE)),)
-RSYNC_AUTOCONF += --with-rsyncd-conf=$(PTXCONF_RSYNC_CONFIG_FILE)
+RSYNC_CONF_OPT += --with-rsyncd-conf=$(PTXCONF_RSYNC_CONFIG_FILE)
endif
# ----------------------------------------------------------------------------
diff --git a/rules/rsync3.in b/rules/rsync3.in
index 856a282c3..a847224e4 100644
--- a/rules/rsync3.in
+++ b/rules/rsync3.in
@@ -6,7 +6,6 @@ menuconfig RSYNC3
select OPENSSH if RUNTIME
select OPENSSH_SSH
select ACL if RSYNC3_ACL
- select ATTR if RSYNC3_ATTR
select ZSTD if RSYNC3_ZSTD
help
rsync is a program that behaves in much the same way that rcp does,
diff --git a/rules/rsync3.make b/rules/rsync3.make
index 12188551a..68eadc2aa 100644
--- a/rules/rsync3.make
+++ b/rules/rsync3.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_RSYNC3) += rsync3
#
# Paths and names
#
-RSYNC3_VERSION := 3.2.3
-RSYNC3_MD5 := 209f8326f5137d8817a6276d9577a2f1
+RSYNC3_VERSION := 3.2.7
+RSYNC3_MD5 := f216f350ef56b9ba61bc313cb6ec2ed6
RSYNC3 := rsync-$(RSYNC3_VERSION)
RSYNC3_SUFFIX := tar.gz
RSYNC3_URL := https://download.samba.org/pub/rsync/src/$(RSYNC3).$(RSYNC3_SUFFIX)
@@ -27,22 +27,28 @@ RSYNC3_LICENSE := GPL-3.0-only
# Prepare
# ----------------------------------------------------------------------------
+RSYNC3_CONF_ENV := \
+ $(CROSS_ENV) \
+ ac_cv_lib_attr_getxattr=no
+
#
# autoconf
#
-RSYNC3_AUTOCONF := \
+RSYNC3_CONF_TOOL := autoconf
+RSYNC3_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-debug \
--disable-profile \
--disable-md2man \
- --disable-simd \
- --disable-asm \
+ --disable-roll-simd \
$(GLOBAL_LARGE_FILE_OPTION) \
$(GLOBAL_IPV6_OPTION) \
--disable-locale \
--disable-openssl \
+ --$(call ptx/endis, PTXCONF_ARCH_X86_64)-md5-asm \
+ --$(call ptx/endis, PTXCONF_ARCH_X86_64)-roll-asm \
--disable-xxhash \
- --$(call ptx/endis, PTXCONF_ZSTD)-zstd \
+ --$(call ptx/endis, PTXCONF_RSYNC3_ZSTD)-zstd \
--disable-lz4 \
--$(call ptx/endis, PTXCONF_ICONV)-iconv-open \
--$(call ptx/endis, PTXCONF_ICONV)-iconv \
@@ -50,7 +56,7 @@ RSYNC3_AUTOCONF := \
--$(call ptx/endis, PTXCONF_RSYNC3_ATTR)-xattr-support \
--with-included-popt \
--without-included-zlib \
- --with-protected-args
+ --with-secluded-args
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/rsyslog.make b/rules/rsyslog.make
index 46fe7046a..25c09f549 100644
--- a/rules/rsyslog.make
+++ b/rules/rsyslog.make
@@ -18,7 +18,7 @@ RSYSLOG_VERSION := 8.2012.0
RSYSLOG_MD5 := 2a64947e3d157c0198609aabd37be42f
RSYSLOG := rsyslog-$(RSYSLOG_VERSION)
RSYSLOG_SUFFIX := tar.gz
-RSYSLOG_URL := http://www.rsyslog.com/files/download/rsyslog/$(RSYSLOG).$(RSYSLOG_SUFFIX)
+RSYSLOG_URL := https://www.rsyslog.com/files/download/rsyslog/$(RSYSLOG).$(RSYSLOG_SUFFIX)
RSYSLOG_SOURCE := $(SRCDIR)/$(RSYSLOG).$(RSYSLOG_SUFFIX)
RSYSLOG_DIR := $(BUILDDIR)/$(RSYSLOG)
RSYSLOG_LICENSE := GPL-3.0-or-later AND LGPL-3.0-or-later AND Apache-2.0
diff --git a/rules/rt-tests.in b/rules/rt-tests.in
index 1cb29b712..5eacf4c40 100644
--- a/rules/rt-tests.in
+++ b/rules/rt-tests.in
@@ -5,6 +5,7 @@ menuconfig RT_TESTS
select LIBC_PTHREAD
select LIBC_RT
select LIBC_DL
+ select NUMACTL
select GCCLIBS_GCC_S if RT_TESTS_RT_MIGRATE_TEST
prompt "rt-tests "
help
@@ -68,10 +69,6 @@ config RT_TESTS_RT_MIGRATE_TEST
bool
prompt "rt-migrate-test"
-config RT_TESTS_SENDME
- bool
- prompt "sendme"
-
config RT_TESTS_SIGNALTEST
bool
prompt "signaltest"
diff --git a/rules/rt-tests.make b/rules/rt-tests.make
index 7ce4aadbb..4b38186e9 100644
--- a/rules/rt-tests.make
+++ b/rules/rt-tests.make
@@ -17,8 +17,8 @@ PACKAGES-$(PTXCONF_RT_TESTS) += rt-tests
#
# Paths and names
#
-RT_TESTS_VERSION := 1.0
-RT_TESTS_MD5 := 3818d2d0a3069291864bf85fde40883b
+RT_TESTS_VERSION := 2.3
+RT_TESTS_MD5 := 28e8b92be0579a2c6e8c7c2ff1bb2947
RT_TESTS := rt-tests-$(RT_TESTS_VERSION)
RT_TESTS_SUFFIX := tar.xz
RT_TESTS_URL := \
@@ -34,7 +34,7 @@ RT_TESTS_LICENSE_FILES := file://COPYING;md5=751419260aa954499f7abaabaa882bbe
# ----------------------------------------------------------------------------
RT_TESTS_CONF_TOOL := NO
-RT_TESTS_MAKE_OPT := $(CROSS_ENV_CC) prefix=/usr NUMA=0
+RT_TESTS_MAKE_OPT := $(CROSS_ENV_CC) prefix=/usr
RT_TESTS_MAKE_ENV := $(CROSS_ENV_FLAGS)
RT_TESTS_INSTALL_OPT := $(RT_TESTS_MAKE_OPT) install
@@ -49,7 +49,6 @@ RT_TESTS_BIN-$(PTXCONF_RT_TESTS_PI_STRESS) += pi_stress
RT_TESTS_BIN-$(PTXCONF_RT_TESTS_PMQTEST) += pmqtest
RT_TESTS_BIN-$(PTXCONF_RT_TESTS_PTSEMATEST) += ptsematest
RT_TESTS_BIN-$(PTXCONF_RT_TESTS_RT_MIGRATE_TEST) += rt-migrate-test
-RT_TESTS_BIN-$(PTXCONF_RT_TESTS_SENDME) += sendme
RT_TESTS_BIN-$(PTXCONF_RT_TESTS_SIGNALTEST) += signaltest
RT_TESTS_BIN-$(PTXCONF_RT_TESTS_SIGWAITTEST) += sigwaittest
RT_TESTS_BIN-$(PTXCONF_RT_TESTS_SVSEMATEST) += svsematest
@@ -66,7 +65,7 @@ $(STATEDIR)/rt-tests.targetinstall:
@$(foreach tool, $(RT_TESTS_BIN-y), \
$(call install_copy, rt-tests, 0, 0, 0755, -, \
- /usr/bin/$(tool));)
+ /usr/bin/$(tool))$(ptx/nl))
@$(call install_finish, rt-tests)
diff --git a/rules/rtmpdump.make b/rules/rtmpdump.make
index d2b7dd81f..81127c23f 100644
--- a/rules/rtmpdump.make
+++ b/rules/rtmpdump.make
@@ -15,14 +15,19 @@ PACKAGES-$(PTXCONF_RTMPDUMP) += rtmpdump
# Paths and names
#
# No tags: use a fake descriptive commit-ish to include the date
-RTMPDUMP_VERSION := 2019-03-30-0-gc5f04a58fc2a
-RTMPDUMP_MD5 := d782da2c8b6e7d5eb4f7688b35c2ee89
+RTMPDUMP_VERSION := 2021-02-19-gf1b83c10d8be
+RTMPDUMP_MD5 := 33390d59c4eac5ae34ac155804d44fb6 b0f9380fc56d42e5a12094c467188de9
RTMPDUMP := rtmpdump-$(RTMPDUMP_VERSION)
-RTMPDUMP_SUFFIX := tar.xz
-RTMPDUMP_URL := git://git.ffmpeg.org/rtmpdump.git;tag=$(RTMPDUMP_VERSION)
+RTMPDUMP_SUFFIX := tar.gz
+RTMPDUMP_URL := git+https://git.ffmpeg.org/rtmpdump.git;tag=$(RTMPDUMP_VERSION)
RTMPDUMP_SOURCE := $(SRCDIR)/$(RTMPDUMP).$(RTMPDUMP_SUFFIX)
RTMPDUMP_DIR := $(BUILDDIR)/$(RTMPDUMP)
RTMPDUMP_LICENSE := LGPL-2.1-or-later AND GPL-2.0-or-later
+RTMPDUMP_LICENSE_FILES := \
+ file://librtmp/rtmp.c;startline=1;endline=24;md5=96a5f261b5569d2c1daf56477675485a \
+ file://librtmp/COPYING;md5=e344c8fa836c3a41c4cbd79d7bd3a379 \
+ file://rtmpdump.c;startline=1;endline=21;md5=f5d34dc0445bc1d3984f7efcfeaab1cf \
+ file://COPYING;md5=751419260aa954499f7abaabaa882bbe
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/samba.in b/rules/samba.in
index dd952cbe6..e8eec97a0 100644
--- a/rules/samba.in
+++ b/rules/samba.in
@@ -31,7 +31,7 @@ menuconfig SAMBA
Windows operating systems. Samba is freely available under the
GNU General Public License
- See http://www.samba.org for details.
+ See https://www.samba.org for details.
Note: on a read-only root filesystem this package still requires a
writable '/var/lib' and '/var/cache'.
@@ -52,6 +52,7 @@ config SAMBA_SERVER
config SAMBA_CLIENT
bool
select SAMBA_COMMON
+ select SAMBA_LIBCLIENT
prompt "Samba client"
help
Installs some client components of the Samba suite.
diff --git a/rules/samba.make b/rules/samba.make
index 0e84dec39..af1d6f0eb 100644
--- a/rules/samba.make
+++ b/rules/samba.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_SAMBA) += samba
#
# Paths and names
#
-SAMBA_VERSION := 4.12.6
-SAMBA_MD5 := 0fa8bdd6826659c642bf1d255545d78d
+SAMBA_VERSION := 4.14.6
+SAMBA_MD5 := 0e6b5607ad37209a5a10235579fa9765
SAMBA := samba-$(SAMBA_VERSION)
SAMBA_SUFFIX := tar.gz
SAMBA_URL := https://download.samba.org/pub/samba/stable/$(SAMBA).$(SAMBA_SUFFIX)
@@ -24,7 +24,7 @@ SAMBA_SOURCE := $(SRCDIR)/$(SAMBA).$(SAMBA_SUFFIX)
SAMBA_DIR := $(BUILDDIR)/$(SAMBA)
SAMBA_LICENSE := GPL-3.0-or-later AND LGPL-3.0-or-later
# cross-compile runtime checks. Initial file generated with
-# --cross-execute=$(PTXDIST_SYSROOT_CROSS)/bin/qemu-cross
+# --cross-execute=$(PTXDIST_SYSROOT_CROSS)/usr/bin/qemu-cross
SAMBA_CONFIG = $(call ptx/get-alternative, config/samba, cross-answers)
# ----------------------------------------------------------------------------
@@ -39,6 +39,7 @@ SAMBA_CONF_OPT := \
--without-gettext \
--disable-python \
--without-gpgme \
+ --with-shared-modules="!vfs_snapper" \
--without-winbind \
--without-ads \
--without-ldap \
@@ -79,12 +80,11 @@ SAMBA_CONF_OPT := \
--disable-rpath-install \
--enable-auto-reconfigure \
--cross-compile \
- --cross-execute=/does/not/exist/and/triggers/exceptions \
--cross-answers=$(SAMBA_DIR)/cross-answers \
--hostcc=$(HOSTCC) \
--enable-fhs \
- --with-piddir=/run/samba \
--with-lockdir=/var/lib/samba/lock \
+ --with-piddir=/run/samba \
$(call ptx/ifdef,PTXCONF_SAMBA_SYSTEMD_UNIT,--systemd-install-services,) \
--with-systemddir=/usr/lib/systemd/system
@@ -98,7 +98,7 @@ $(STATEDIR)/samba.prepare:
@$(call world/execute, SAMBA, $(SYSTEMPYTHON3) ./buildtools/bin/waf configure $(SAMBA_CONF_OPT))
@$(call touch)
-SAMBA_COMPILE_ENV := \
+SAMBA_MAKE_ENV := \
PTXDIST_ICECC=$(PTXDIST_ICERUN)
# ----------------------------------------------------------------------------
@@ -108,6 +108,7 @@ SAMBA_COMPILE_ENV := \
SAMBA_COMMON_LIBS := \
libdcerpc \
libdcerpc-binding \
+ libdcerpc-server-core \
libndr-krb5pac \
libndr-nbt \
libndr-standard \
diff --git a/rules/schedtool.in b/rules/schedtool.in
index 0a814f58f..65b03e16b 100644
--- a/rules/schedtool.in
+++ b/rules/schedtool.in
@@ -4,4 +4,4 @@ config SCHEDTOOL
tristate
prompt "schedtool"
help
- schedtool can be used to query or alter a process' scheduling policy under linux
+ schedtool can be used to query or alter a process's scheduling policy under linux
diff --git a/rules/screen.make b/rules/screen.make
index 39a96dae2..766bf79d3 100644
--- a/rules/screen.make
+++ b/rules/screen.make
@@ -14,26 +14,26 @@ PACKAGES-$(PTXCONF_SCREEN) += screen
#
# Paths and names
#
-SCREEN_VERSION := 4.5.0
-SCREEN_MD5 := a32105a91359afab1a4349209a028e31
-SCREEN := screen-$(SCREEN_VERSION)
-SCREEN_SUFFIX := tar.gz
-SCREEN_URL := $(call ptx/mirror, GNU, screen/$(SCREEN).$(SCREEN_SUFFIX))
-SCREEN_SOURCE := $(SRCDIR)/$(SCREEN).$(SCREEN_SUFFIX)
-SCREEN_DIR := $(BUILDDIR)/$(SCREEN)
-SCREEN_LICENSE := GPL-2.0-or-later
+SCREEN_VERSION := 4.9.1
+SCREEN_MD5 := 9a9bdc956bd93e4f0cb9e48678889e26
+SCREEN := screen-$(SCREEN_VERSION)
+SCREEN_SUFFIX := tar.gz
+SCREEN_URL := $(call ptx/mirror, GNU, screen/$(SCREEN).$(SCREEN_SUFFIX))
+SCREEN_SOURCE := $(SRCDIR)/$(SCREEN).$(SCREEN_SUFFIX)
+SCREEN_DIR := $(BUILDDIR)/$(SCREEN)
+SCREEN_LICENSE := GPL-2.0-or-later
+SCREEN_LICENSE_FILES := \
+ file://COPYING;md5=d32239bcb673463ab874e80d47fae504
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-SCREEN_PATH := PATH=$(CROSS_PATH)
-SCREEN_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-SCREEN_AUTOCONF := \
+SCREEN_CONF_TOOL := autoconf
+SCREEN_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-use-locale \
--with-sys-screenrc=/etc/screenrc
diff --git a/rules/sdbus-cpp.make b/rules/sdbus-cpp.make
index 618873bbe..238030c31 100644
--- a/rules/sdbus-cpp.make
+++ b/rules/sdbus-cpp.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_SDBUS_CPP) += sdbus-cpp
#
# Paths and names
#
-SDBUS_CPP_VERSION := 0.8.2
-SDBUS_CPP_MD5 := 29b02ecce98adbb34d8dcd22bc26cc53
+SDBUS_CPP_VERSION := 1.0.0
+SDBUS_CPP_MD5 := cf53be4342605419ba8d60d261a89466
SDBUS_CPP := sdbus-cpp-$(SDBUS_CPP_VERSION)
SDBUS_CPP_SUFFIX := tar.gz
SDBUS_CPP_URL := https://github.com/Kistler-Group/sdbus-cpp/archive/v$(SDBUS_CPP_VERSION).$(SDBUS_CPP_SUFFIX)
diff --git a/rules/sdl-gfx.make b/rules/sdl-gfx.make
index b66f61fad..ef6d5bc65 100644
--- a/rules/sdl-gfx.make
+++ b/rules/sdl-gfx.make
@@ -26,13 +26,11 @@ SDL_GFX_DIR := $(BUILDDIR)/$(SDL_GFX)
# Prepare
# ----------------------------------------------------------------------------
-SDL_GFX_PATH := PATH=$(CROSS_PATH)
-SDL_GFX_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-SDL_GFX_AUTOCONF := \
+SDL_GFX_CONF_TOOL := autoconf
+SDL_GFX_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-sdl-prefix=$(SYSROOT)/usr \
--disable-mmx \
diff --git a/rules/sdl-ttf.make b/rules/sdl-ttf.make
index 730884593..2fcae7cd9 100644
--- a/rules/sdl-ttf.make
+++ b/rules/sdl-ttf.make
@@ -27,15 +27,15 @@ SDL_TTF_LICENSE := zlib
# Prepare
# ----------------------------------------------------------------------------
-SDL_TTF_PATH := PATH=$(CROSS_PATH)
-SDL_TTF_ENV := \
+SDL_TTF_CONF_ENV := \
$(CROSS_ENV) \
sdl_cv_lib_opengl=no
#
# autoconf
#
-SDL_TTF_AUTOCONF := \
+SDL_TTF_CONF_TOOL := autoconf
+SDL_TTF_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-sdl-prefix=$(SYSROOT)/usr \
--disable-sdltest \
diff --git a/rules/sdl2-image.in b/rules/sdl2-image.in
index db234b153..cd4ad3446 100644
--- a/rules/sdl2-image.in
+++ b/rules/sdl2-image.in
@@ -7,6 +7,7 @@ menuconfig SDL2_IMAGE
select LIBPNG if SDL2_IMAGE_PNG
select LIBJPEG if SDL2_IMAGE_JPG
select LIBWEBP if SDL2_IMAGE_WEBP
+ select LIBTIFF if SDL2_IMAGE_TIF
help
This is a simple library to load images of various
formats as SDL surfaces. This library currently supports
diff --git a/rules/sdl2-image.make b/rules/sdl2-image.make
index 77468ffad..bf9167d29 100644
--- a/rules/sdl2-image.make
+++ b/rules/sdl2-image.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_SDL2_IMAGE) += sdl2-image
#
# Paths and names
#
-SDL2_IMAGE_VERSION := 2.0.5
-SDL2_IMAGE_MD5 := f26f3a153360a8f09ed5220ef7b07aea
+SDL2_IMAGE_VERSION := 2.8.2
+SDL2_IMAGE_MD5 := 8464c8aaad39fe9be6a9c1e85b370cd1
SDL2_IMAGE := SDL2_image-$(SDL2_IMAGE_VERSION)
SDL2_IMAGE_SUFFIX := tar.gz
-SDL2_IMAGE_URL := https://www.libsdl.org/projects/SDL_image/release/$(SDL2_IMAGE).$(SDL2_IMAGE_SUFFIX)
+SDL2_IMAGE_URL := https://github.com/libsdl-org/SDL_image/releases/download/release-$(SDL2_IMAGE_VERSION)/$(SDL2_IMAGE).$(SDL2_IMAGE_SUFFIX)
SDL2_IMAGE_SOURCE := $(SRCDIR)/$(SDL2_IMAGE).$(SDL2_IMAGE_SUFFIX)
SDL2_IMAGE_DIR := $(BUILDDIR)/$(SDL2_IMAGE)
SDL2_IMAGE_LICENSE := zlib
@@ -33,15 +33,21 @@ SDL2_IMAGE_CONF_OPT := \
--enable-shared \
--disable-static \
--disable-imageio \
- --disable-sdltest \
+ --disable-stb-image \
+ --disable-avif \
+ --disable-avif-shared \
--$(call ptx/endis, PTXCONF_SDL2_IMAGE_BMP)-bmp \
--$(call ptx/endis, PTXCONF_SDL2_IMAGE_GIF)-gif \
--$(call ptx/endis, PTXCONF_SDL2_IMAGE_JPG)-jpg \
--disable-jpg-shared \
+ --enable-save-jpg \
+ --disable-jxl \
+ --disable-jxl-shared \
--$(call ptx/endis, PTXCONF_SDL2_IMAGE_LBM)-lbm \
--$(call ptx/endis, PTXCONF_SDL2_IMAGE_PCX)-pcx \
--$(call ptx/endis, PTXCONF_SDL2_IMAGE_PNG)-png \
--disable-png-shared \
+ --enable-save-png \
--$(call ptx/endis, PTXCONF_SDL2_IMAGE_PNM)-pnm \
--$(call ptx/endis, PTXCONF_SDL2_IMAGE_SVG)-svg \
--$(call ptx/endis, PTXCONF_SDL2_IMAGE_TGA)-tga \
@@ -51,7 +57,11 @@ SDL2_IMAGE_CONF_OPT := \
--$(call ptx/endis, PTXCONF_SDL2_IMAGE_XPM)-xpm \
--$(call ptx/endis, PTXCONF_SDL2_IMAGE_XV)-xv \
--$(call ptx/endis, PTXCONF_SDL2_IMAGE_WEBP)-webp \
- --disable-webp-shared
+ --disable-webp-shared \
+ --disable-qoi \
+ --disable-tests \
+ --disable-installed-tests \
+ --disable-sdltest
ifdef PTXCONF_SDL2_PULSEAUDIO
SDL2_IMAGE_LDFLAGS := \
diff --git a/rules/sdl2-mixer.in b/rules/sdl2-mixer.in
index dd45b8d50..0b4d2aeba 100644
--- a/rules/sdl2-mixer.in
+++ b/rules/sdl2-mixer.in
@@ -5,7 +5,7 @@ config SDL2_MIXER
select SDL2
prompt "SDL2 mixer"
help
- SDL_mixer is a sample multi-channel audio mixer library. It supports any
- number of simultaneously playing channels of 16 bit stereo audio, plus a
- single channel of music, in FLAC, Ogg Vorbis, MP3, MOD, and MIDI
- formats.
+ SDL_mixer is a sample multi-channel audio mixer library. It supports any
+ number of simultaneously playing channels of 16 bit stereo audio, plus a
+ single channel of music, in FLAC, Ogg Vorbis, MP3, MOD, and MIDI
+ formats.
diff --git a/rules/sdl2-test.make b/rules/sdl2-test.make
index 8529bf2e7..f5ecd9354 100644
--- a/rules/sdl2-test.make
+++ b/rules/sdl2-test.make
@@ -28,7 +28,7 @@ SDL2_TESTS_LICENSE := zlib
# Prepare
# ----------------------------------------------------------------------------
-SDL2_TEST_ENV := \
+SDL2_TEST_CONF_ENV := \
$(CROSS_ENV) \
SDL_LIBS="-lSDL2 -lunwind -lunwind-generic"
diff --git a/rules/sdl2-ttf.in b/rules/sdl2-ttf.in
index a14676933..4dafa09ae 100644
--- a/rules/sdl2-ttf.in
+++ b/rules/sdl2-ttf.in
@@ -1,12 +1,24 @@
## SECTION=multimedia_sdl
-config SDL2_TTF
+menuconfig SDL2_TTF
tristate
select SDL2
select FREETYPE
- prompt "SDL2 ttf"
+ select HARFBUZZ if SDL2_TTF_HARFBUZZ
+ prompt "SDL2 ttf "
help
This is a sample library which allows you to use TrueType
fonts in your SDL applications. It comes with an example
program "showfont" which displays an example string for a
given TrueType font file.
+
+if SDL2_TTF
+
+config SDL2_TTF_HARFBUZZ
+ bool
+ prompt "enable harfbuzz support"
+ help
+ Enable support for Harfbuzz (meaning open type, in Persian),
+ the open type shaping engine.
+
+endif
diff --git a/rules/sdl2-ttf.make b/rules/sdl2-ttf.make
index 161dbf838..386c734f8 100644
--- a/rules/sdl2-ttf.make
+++ b/rules/sdl2-ttf.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_SDL2_TTF) += sdl2-ttf
#
# Paths and names
#
-SDL2_TTF_VERSION := 2.0.15
-SDL2_TTF_MD5 := 04fe06ff7623d7bdcb704e82f5f88391
+SDL2_TTF_VERSION := 2.22.0
+SDL2_TTF_MD5 := 686e685caaa215d8fa1ac7bb02b2cf54
SDL2_TTF := SDL2_ttf-$(SDL2_TTF_VERSION)
-SDL2_TTF_SUFFIX := tar.gz
+SDL2_TTF_SUFFIX := tar.gz
SDL2_TTF_URL := https://www.libsdl.org/projects/SDL_ttf/release/$(SDL2_TTF).$(SDL2_TTF_SUFFIX)
-SDL2_TTF_SOURCE := $(SRCDIR)/$(SDL2_TTF).$(SDL2_TTF_SUFFIX)
+SDL2_TTF_SOURCE := $(SRCDIR)/$(SDL2_TTF).$(SDL2_TTF_SUFFIX)
SDL2_TTF_DIR := $(BUILDDIR)/$(SDL2_TTF)
-SDL2_TTF_LICENSE := unknown
+SDL2_TTF_LICENSE := zlib
+SDL2_TTF_LICENSE_FILES := \
+ file://LICENSE.txt;md5=2f6d9e01c97958aa851954ed5acf82ee
# ----------------------------------------------------------------------------
# Prepare
@@ -30,7 +32,12 @@ SDL2_TTF_LICENSE := unknown
SDL2_TTF_CONF_TOOL := autoconf
SDL2_TTF_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
- --$(call ptx/endis,PTXCONF_SDL2_OPENGL)-opengl
+ $(GLOBAL_LARGE_FILE_OPTION) \
+ --disable-sdltest \
+ --disable-freetype-builtin \
+ --disable-freetypetest \
+ --$(call ptx/endis,PTXCONF_SDL2_TTF_HARFBUZZ)-harfbuzz \
+ --disable-harfbuzz-builtin
ifdef PTXCONF_SDL2_PULSEAUDIO
SDL2_TTF_LDFLAGS := \
diff --git a/rules/sdl2.in b/rules/sdl2.in
index b9c797c27..94aa97294 100644
--- a/rules/sdl2.in
+++ b/rules/sdl2.in
@@ -16,7 +16,6 @@ menuconfig SDL2
select XORG_LIB_XRANDR if SDL2_XORG
select XORG_LIB_XCURSOR if SDL2_XORG
select XORG_LIB_XI if SDL2_XORG
- select TSLIB if SDL2_TSLIB
select DBUS if SDL2_DBUS
select LIBDRM if SDL2_WAYLAND
select MESALIB if SDL2_WAYLAND || SDL2_OPENGL || SDL2_OPENGLES || SDL2_KMS
@@ -131,12 +130,6 @@ config SDL2_OPENGLES2
endif
-config SDL2_TSLIB
- bool
- prompt "tslib Support"
- help
- Turn on support for the touchscreen library 'tslib'
-
config SDL2_UDEV
bool
prompt "udev Support"
diff --git a/rules/sdl2.make b/rules/sdl2.make
index cfb16c8ad..4959560a0 100644
--- a/rules/sdl2.make
+++ b/rules/sdl2.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_SDL2) += sdl2
#
# Paths and names
#
-SDL2_VERSION := 2.0.12
-SDL2_MD5 := 783b6f2df8ff02b19bb5ce492b99c8ff
+SDL2_VERSION := 2.30.2
+SDL2_MD5 := 08667937c83fada423dacc7cd90f3ec8
SDL2 := SDL2-$(SDL2_VERSION)
SDL2_SUFFIX := tar.gz
SDL2_URL := https://www.libsdl.org/release/$(SDL2).$(SDL2_SUFFIX)
@@ -27,12 +27,16 @@ SDL2_LICENSE := zlib
# Prepare
# ----------------------------------------------------------------------------
+# Only x86, not x86-64.
+OLDER_X86 := $(if $(PTXCONF_ARCH_X86_64),,$(PTXCONF_ARCH_X86))
+
#
# autoconf
#
SDL2_CONF_TOOL := autoconf
SDL2_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
+ $(GLOBAL_LARGE_FILE_OPTION) \
--enable-shared \
--disable-static \
--enable-libtool-lock \
@@ -50,19 +54,20 @@ SDL2_CONF_OPT := \
--enable-sensor \
--disable-power \
--disable-filesystem \
- --enable-threads \
--enable-timers \
--enable-file \
--enable-loadso \
--enable-cpuinfo \
--enable-assembly \
- --disable-ssemath \
- --disable-mmx \
+ --$(call ptx/endis,PTXCONF_ARCH_X86)-ssemath \
+ --$(call ptx/endis,OLDER_X86)-mmx \
--disable-3dnow \
- --disable-sse \
- --disable-sse2 \
- --disable-sse3 \
- --disable-altivec \
+ --$(call ptx/endis,PTXCONF_ARCH_X86)-sse \
+ --$(call ptx/endis,PTXCONF_ARCH_X86_64)-sse2 \
+ --$(call ptx/endis,PTXCONF_ARCH_X86_64)-sse3 \
+ --$(call ptx/endis,PTXCONF_ARCH_PPC_ALTIVEC)-altivec \
+ --disable-lsx \
+ --disable-lasx \
--$(call ptx/endis,PTXCONF_SDL2_OSS)-oss \
--$(call ptx/endis,PTXCONF_SDL2_ALSA)-alsa \
--disable-alsatest \
@@ -72,6 +77,8 @@ SDL2_CONF_OPT := \
--disable-esd \
--disable-esdtest \
--disable-esd-shared \
+ --disable-pipewire \
+ --disable-pipewire-shared \
--$(call ptx/endis,PTXCONF_SDL2_PULSEAUDIO)-pulseaudio \
--$(call ptx/endis,PTXCONF_SDL2_PULSEAUDIO)-pulseaudio-shared \
--disable-arts \
@@ -91,17 +98,18 @@ SDL2_CONF_OPT := \
--$(call ptx/endis,PTXCONF_SDL2_WAYLAND)-video-wayland \
--disable-video-wayland-qt-touch \
--$(call ptx/endis,PTXCONF_SDL2_WAYLAND)-wayland-shared \
+ --disable-libdecor \
+ --disable-libdecor-shared \
--disable-video-rpi \
--$(call ptx/endis,PTXCONF_SDL2_XORG)-video-x11 \
--disable-x11-shared \
--$(call ptx/endis,PTXCONF_SDL2_XORG)-video-x11-xcursor \
--disable-video-x11-xdbe \
- --disable-video-x11-xinerama \
--$(call ptx/endis,PTXCONF_SDL2_XORG)-video-x11-xinput \
+ --disable-video-x11-xfixes \
--$(call ptx/endis,PTXCONF_SDL2_XORG)-video-x11-xrandr \
--disable-video-x11-scrnsaver \
--disable-video-x11-xshape \
- --$(call ptx/endis,PTXCONF_SDL2_XORG)-video-x11-vm \
--disable-video-vivante \
--disable-video-cocoa \
--disable-video-metal \
@@ -111,6 +119,7 @@ SDL2_CONF_OPT := \
--$(call ptx/endis,PTXCONF_SDL2_KMS)-video-kmsdrm \
--$(call ptx/endis,PTXCONF_SDL2_KMS)-kmsdrm-shared \
--enable-video-dummy \
+ --enable-video-offscreen \
--$(call ptx/endis,PTXCONF_SDL2_OPENGL)-video-opengl \
--$(call ptx/endis,PTXCONF_SDL2_OPENGLES)-video-opengles \
--$(call ptx/endis,PTXCONF_SDL2_OPENGLES1)-video-opengles1 \
@@ -121,17 +130,19 @@ SDL2_CONF_OPT := \
--disable-ime \
--disable-ibus \
--disable-fcitx \
- --$(call ptx/endis,PTXCONF_SDL2_TSLIB)-input-tslib \
+ --disable-joystick-mfi \
--enable-pthreads \
--enable-pthread-sem \
--disable-directx \
+ --$(call ptx/endis,PTXCONF_SDL2_XORG)-xinput \
--disable-wasapi \
- --enable-sdl-dlopen \
--enable-hidapi \
+ --disable-hidapi-libusb \
--enable-clock_gettime \
--disable-rpath \
--disable-backgrounding-signal \
--disable-foregrounding-signal \
+ --disable-joystick-virtual \
--disable-render-d3d \
--disable-sdl2-config \
--$(call ptx/wwo,PTXCONF_SDL2_XORG)-x
diff --git a/rules/sdl_image.in b/rules/sdl_image.in
index 9bb18502c..26f8ada55 100644
--- a/rules/sdl_image.in
+++ b/rules/sdl_image.in
@@ -6,7 +6,8 @@ menuconfig SDL_IMAGE
prompt "SDL image "
select LIBPNG if SDL_IMAGE__PNG
select LIBJPEG if SDL_IMAGE__JPG
- help
+ select LIBTIFF if SDL_IMAGE__TIF
+ help
This is a simple library to load images of various
formats as SDL surfaces. This library currently supports
BMP, PPM, PCX, GIF, JPEG, PNG, TIFF, and XPM formats.
diff --git a/rules/sdl_image.make b/rules/sdl_image.make
index a74f8380a..48ad7f056 100644
--- a/rules/sdl_image.make
+++ b/rules/sdl_image.make
@@ -27,13 +27,11 @@ SDL_IMAGE_LICENSE := LGPL-2.1-only
# Prepare
# ----------------------------------------------------------------------------
-SDL_IMAGE_PATH := PATH=$(CROSS_PATH)
-SDL_IMAGE_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-SDL_IMAGE_AUTOCONF := \
+SDL_IMAGE_CONF_TOOL := autoconf
+SDL_IMAGE_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-sdl-prefix=$(SYSROOT)/usr \
--disable-sdltest \
diff --git a/rules/sdl_mixer.make b/rules/sdl_mixer.make
index fa7fbff63..8fb754ded 100644
--- a/rules/sdl_mixer.make
+++ b/rules/sdl_mixer.make
@@ -28,63 +28,26 @@ SDL_MIXER_LICENSE := LGPL-2.1-only
# Prepare
# ----------------------------------------------------------------------------
-SDL_MIXER_PATH := PATH=$(CROSS_PATH)
-SDL_MIXER_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-SDL_MIXER_AUTOCONF := \
+SDL_MIXER_CONF_TOOL := autoconf
+SDL_MIXER_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-sdl-prefix=$(SYSROOT)/usr \
- --disable-music-mp3
-
-ifdef PTXCONF_SDL_MIXER_WAVE
-SDL_MIXER_AUTOCONF += --enable-music-wave
-else
-SDL_MIXER_AUTOCONF += --disable-music-wave
-endif
-
-ifdef PTXCONF_SDL_MIXER_MOD
-SDL_MIXER_AUTOCONF += --enable-music-mod
-else
-SDL_MIXER_AUTOCONF += --disable-music-mod
-endif
+ --disable-music-mp3 \
+ --$(call ptx/endis, PTXCONF_SDL_MIXER_WAVE)-music-wave \
+ --$(call ptx/endis, PTXCONF_SDL_MIXER_MOD)-music-mod \
+ --$(call ptx/endis, PTXCONF_SDL_MIXER_MIDI_TIMIDITY)-music-timidity-midi \
+ --$(call ptx/endis, PTXCONF_SDL_MIXER_MIDI_NATIVE)-music-native-midi-gpl \
+ --$(call ptx/endis, PTXCONF_SDL_MIXER_OGG)-music-ogg \
+ --$(call ptx/endis, PTXCONF_SDL_MIXER_FLAC)-music-flac \
+ --$(call ptx/endis, PTXCONF_SDL_MIXER_MP3)-music-mp3-mad-gpl
ifneq ($(PTXCONF_SDL_MIXER_MIDI_TIMIDITY)$(PTXCONF_SDL_MIXER_MIDI_NATIVE),)
-SDL_MIXER_AUTOCONF += --enable-music-midi
-else
-SDL_MIXER_AUTOCONF += --disable-music-midi
-endif
-
-ifdef PTXCONF_SDL_MIXER_MIDI_TIMIDITY
-SDL_MIXER_AUTOCONF += --enable-music-timidity-midi
-else
-SDL_MIXER_AUTOCONF += --disable-music-timidity-midi
-endif
-
-ifdef PTXCONF_SDL_MIXER_MIDI_NATIVE
-SDL_MIXER_AUTOCONF += --enable-music-native-midi-gpl
-else
-SDL_MIXER_AUTOCONF += --disable-music-native-midi-gpl
-endif
-
-ifdef PTXCONF_SDL_MIXER_OGG
-SDL_MIXER_AUTOCONF += --enable-music-ogg
-else
-SDL_MIXER_AUTOCONF += --disable-music-ogg
-endif
-
-ifdef PTXCONF_SDL_MIXER_FLAC
-SDL_MIXER_AUTOCONF += --enable-music-flac
-else
-SDL_MIXER_AUTOCONF += --disable-music-flac
-endif
-
-ifdef PTXCONF_SDL_MIXER_MP3
-SDL_MIXER_AUTOCONF += --enable-music-mp3-mad-gpl
+SDL_MIXER_CONF_OPT += --enable-music-midi
else
-SDL_MIXER_AUTOCONF += --disable-music-mp3-mad-gpl
+SDL_MIXER_CONF_OPT += --disable-music-midi
endif
# ----------------------------------------------------------------------------
diff --git a/rules/sdparm.make b/rules/sdparm.make
index 472efdbd0..64aaa5ee7 100644
--- a/rules/sdparm.make
+++ b/rules/sdparm.make
@@ -26,13 +26,11 @@ SDPARM_DIR := $(BUILDDIR)/$(SDPARM)
# Prepare
# ----------------------------------------------------------------------------
-SDPARM_PATH := PATH=$(CROSS_PATH)
-SDPARM_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-SDPARM_AUTOCONF := $(CROSS_AUTOCONF_USR)
+SDPARM_CONF_TOOL := autoconf
+SDPARM_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/seatd.in b/rules/seatd.in
new file mode 100644
index 000000000..98e823547
--- /dev/null
+++ b/rules/seatd.in
@@ -0,0 +1,35 @@
+## SECTION=system_libraries
+
+menuconfig SEATD
+ tristate
+ select HOST_MESON
+ select SYSTEMD if SEATD_SYSTEMD_LOGIND
+ select SYSTEMD_LOGIND if SEATD_SYSTEMD_LOGIND
+ prompt "libseat "
+ help
+ A minimal seat management daemon, and a universal seat management library.
+
+if SEATD
+
+config SEATD_SYSTEMD_LOGIND
+ bool
+ default INITMETHOD_SYSTEMD
+ prompt "logind support"
+
+config SEATD_SEATD
+ bool
+ default y
+ prompt "seatd server"
+ help
+ The seatd server is an alternative to systemd-logind to provide the
+ seat. If you are using systemd-logind, you don't need the seatd
+ server. If both are installed and running, libseat will prefer the
+ seatd server.
+
+config SEATD_SEATD_SYSTEMD_UNIT
+ bool
+ default y
+ depends on SEATD_SEATD && INITMETHOD_SYSTEMD
+ prompt "install seatd service file"
+
+endif
diff --git a/rules/seatd.make b/rules/seatd.make
new file mode 100644
index 000000000..b5bdb23a0
--- /dev/null
+++ b/rules/seatd.make
@@ -0,0 +1,77 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Philipp Zabel <p.zabel@pengutronix.de>
+# 2021 by Michael Tretter <m.tretter@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_SEATD) += seatd
+
+#
+# Paths and names
+#
+SEATD_VERSION := 0.8.0
+SEATD_MD5 := 7c687ded0fa4db2352a8c9a6b41abca7
+SEATD := seatd-$(SEATD_VERSION)
+SEATD_SUFFIX := tar.gz
+SEATD_URL := https://git.sr.ht/~kennylevinsen/seatd/archive/$(SEATD_VERSION).$(SEATD_SUFFIX)
+SEATD_SOURCE := $(SRCDIR)/$(SEATD).$(SEATD_SUFFIX)
+SEATD_DIR := $(BUILDDIR)/$(SEATD)
+SEATD_LICENSE := MIT
+SEATD_LICENSE_FILES := file://LICENSE;md5=715a99d2dd552e6188e74d4ed2914d5a
+
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# meson
+#
+SEATD_CONF_TOOL := meson
+SEATD_CONF_OPT := \
+ $(CROSS_MESON_USR) \
+ -Ddefaultpath= \
+ -Dexamples=disabled \
+ -Dlibseat-builtin=disabled \
+ -Dlibseat-logind=$(call ptx/ifdef,PTXCONF_SEATD_SYSTEMD_LOGIND,systemd,disabled) \
+ -Dlibseat-seatd=$(call ptx/endis,PTXCONF_SEATD_SEATD)d \
+ -Dman-pages=disabled \
+ -Dserver=$(call ptx/endis,PTXCONF_SEATD_SEATD)d
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/seatd.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, seatd)
+ @$(call install_fixup, seatd,PRIORITY,optional)
+ @$(call install_fixup, seatd,SECTION,base)
+ @$(call install_fixup, seatd,AUTHOR,"Philipp Zabel <p.zabel@pengutronix.de>")
+ @$(call install_fixup, seatd,DESCRIPTION,missing)
+
+ @$(call install_lib, seatd, 0, 0, 0644, libseat)
+
+ifdef PTXCONF_SEATD_SEATD
+ @$(call install_copy, seatd, 0, 0, 0755, -, /usr/bin/seatd)
+ @$(call install_copy, seatd, 0, 0, 0755, -, /usr/bin/seatd-launch)
+ifdef PTXCONF_SEATD_SEATD_SYSTEMD_UNIT
+ @$(call install_alternative, seatd, 0, 0, 0644, \
+ /usr/lib/systemd/system/seatd.service)
+ @$(call install_link, seatd, ../seatd.service, \
+ /usr/lib/systemd/system/multi-user.target.wants/seatd.service)
+endif
+endif
+
+ @$(call install_finish, seatd)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/sed.make b/rules/sed.make
index b7ac7ed07..1ab10350b 100644
--- a/rules/sed.make
+++ b/rules/sed.make
@@ -15,35 +15,34 @@ PACKAGES-$(PTXCONF_SED) += sed
#
# Paths and names
#
-SED_VERSION := 4.2.2
-SED_MD5 := 7ffe1c7cdc3233e1e0c4b502df253974
+SED_VERSION := 4.8
+SED_MD5 := 4b9b442ae2527ac316d2915facc41622
SED := sed-$(SED_VERSION)
-SED_SUFFIX := tar.bz2
+SED_SUFFIX := tar.gz
SED_URL := $(call ptx/mirror, GNU, sed/$(SED).$(SED_SUFFIX))
SED_SOURCE := $(SRCDIR)/$(SED).$(SED_SUFFIX)
SED_DIR := $(BUILDDIR)/$(SED)
-SED_LICENSE := GPL-3.0-only AND GNU Free Documentation License
+SED_LICENSE := GPL-3.0-only
SED_LICENSE_FILES := \
- file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
- file://COPYING.DOC;md5=10b9de612d532fdeeb7fe8fcd1435cc6
+ file://COPYING;md5=c678957b0c8e964aa6c70fd77641a71e
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-SED_PATH := PATH=$(CROSS_PATH)
-SED_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-SED_AUTOCONF := \
+SED_CONF_TOOL := autoconf
+SED_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
$(GLOBAL_LARGE_FILE_OPTION) \
--disable-acl \
--disable-nls \
--disable-rpath \
- --without-selinux
+ --without-selinux \
+ --enable-threads=posix \
+ --disable-assert
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/serdisplib.in b/rules/serdisplib.in
index 2f1e33440..d54712f5b 100644
--- a/rules/serdisplib.in
+++ b/rules/serdisplib.in
@@ -13,5 +13,5 @@ config SERDISPLIB_TESTSERDISP
depends on SERDISPLIB
help
If selected, the testserdisp test program will be installed on
- the target.
+ the target.
diff --git a/rules/setmixer.make b/rules/setmixer.make
index cb9fc4517..7be800c1e 100644
--- a/rules/setmixer.make
+++ b/rules/setmixer.make
@@ -28,7 +28,6 @@ SETMIXER_DIR := $(BUILDDIR)/setmixer-27DEC94ds1.orig
# Prepare
# ----------------------------------------------------------------------------
-SETMIXER_PATH := PATH=$(CROSS_PATH)
SETMIXER_MAKE_ENV := $(CROSS_ENV)
SETMIXER_MAKE_OPT := CC=$(CROSS_CC)
diff --git a/rules/shaderc.in b/rules/shaderc.in
index bd6c65c09..2c2328a4c 100644
--- a/rules/shaderc.in
+++ b/rules/shaderc.in
@@ -2,7 +2,7 @@
menuconfig SHADERC
tristate
- prompt "shaderc"
+ prompt "shaderc "
select HOST_CMAKE
select HOST_SYSTEM_PYTHON3
help
diff --git a/rules/shaderc.make b/rules/shaderc.make
index aff32ce21..aedc79f30 100644
--- a/rules/shaderc.make
+++ b/rules/shaderc.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_SHADERC) += shaderc
#
# Paths and names
#
-SHADERC_VERSION := v2021.0
-SHADERC_MD5 := 0391f2345f0cfdd6a9995535606d66b3
+SHADERC_VERSION := v2024.0
+SHADERC_MD5 := c29fbe8f3c10fc0097e04327e1f64a73
SHADERC := shaderc-$(SHADERC_VERSION)
SHADERC_SUFFIX := tar.gz
SHADERC_URL := \
@@ -44,25 +44,10 @@ SHADERC_SPIRV_HEADERS_URL = $(SPIRV_HEADERS_URL)
SHADERC_SPIRV_HEADERS_SOURCE = $(SPIRV_HEADERS_SOURCE)
SHADERC_SPIRV_HEADERS_DIR = $(SHADERC_DIR)/third_party/spirv-tools/external/spirv-headers
-SHADERC_SOURCES = \
- $(SHADERC_SOURCE) \
- $(SHADERC_GLSLANG_SOURCE) \
- $(SHADERC_SPIRV_TOOLS_SOURCE) \
- $(SHADERC_SPIRV_HEADERS_SOURCE)
-
-# ----------------------------------------------------------------------------
-# Extract
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/shaderc.extract:
- @$(call targetinfo)
- @$(call clean, $(SHADERC_DIR))
- @$(call extract, SHADERC)
- @$(call extract, SHADERC_GLSLANG)
- @$(call extract, SHADERC_SPIRV_TOOLS)
- @$(call extract, SHADERC_SPIRV_HEADERS)
- @$(call patchin, SHADERC)
- @$(call touch)
+SHADERC_PARTS += \
+ SHADERC_GLSLANG \
+ SHADERC_SPIRV_TOOLS \
+ SHADERC_SPIRV_HEADERS
# ----------------------------------------------------------------------------
# Prepare
@@ -72,10 +57,46 @@ SHADERC_CONF_TOOL := cmake
SHADERC_CONF_OPT := \
$(CROSS_CMAKE_USR) \
-DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_LIBDIR=/usr/lib \
+ -DALLOW_EXTERNAL_SPIRV_TOOLS=OFF \
+ -DASCIIDOCTOR_EXE=ASCIIDOCTOR_EXE-NOTFOUND \
+ -DBUILD_EXTERNAL=ON \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DBUILD_WERROR=OFF \
+ -DDISABLE_EXCEPTIONS=OFF \
+ -DDISABLE_RTTI=OFF \
+ -DENABLE_EXCEPTIONS=OFF \
+ -DENABLE_EXCEPTIONS_ON_MSVC=ON \
+ -DENABLE_GLSLANG_BINARIES=ON \
+ -DENABLE_GLSLANG_JS=OFF \
+ -DENABLE_HLSL=ON \
+ -DENABLE_OPT=ON \
+ -DENABLE_PCH=ON \
+ -DENABLE_RTTI=OFF \
+ -DENABLE_SPVREMAPPER=ON \
+ -DSHADERC_ENABLE_WERROR_COMPILE=ON \
+ -DSHADERC_ENABLE_WGSL_OUTPUT=OFF \
+ -DSHADERC_SKIP_COPYRIGHT_CHECK=OFF \
+ -DSHADERC_SKIP_EXAMPLES=ON \
-DSHADERC_SKIP_INSTALL=OFF \
-DSHADERC_SKIP_TESTS=ON \
- -DSHADERC_ENABLE_WERROR_COMPILE=ON
+ -DSPIRV_ALLOW_TIMERS=ON \
+ -DSPIRV_BUILD_COMPRESSION=OFF \
+ -DSPIRV_BUILD_FUZZER=OFF \
+ -DSPIRV_BUILD_LIBFUZZER_TARGETS=OFF \
+ -DSPIRV_CHECK_CONTEXT=ON \
+ -DSPIRV_COLOR_TERMINAL=ON \
+ -DSPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS=OFF \
+ -DSPIRV_LIB_FUZZING_ENGINE_LINK_OPTIONS= \
+ -DSPIRV_LOG_DEBUG=OFF \
+ -DSPIRV_SKIP_EXECUTABLES=OFF \
+ -DSPIRV_SKIP_TESTS=ON \
+ -DSPIRV_TOOLS_BUILD_STATIC=ON \
+ -DSPIRV_TOOLS_INSTALL_EMACS_HELPERS=OFF \
+ -DSPIRV_WARN_EVERYTHING=OFF \
+ -DSPIRV_WERROR=ON \
+ \
+ -DPython_EXECUTABLE=$(PTXDIST_SYSROOT_HOST)/usr/lib/wrapper/$(SYSTEMPYTHON3) \
+ -DPython3_EXECUTABLE=$(PTXDIST_SYSROOT_HOST)/usr/lib/wrapper/$(SYSTEMPYTHON3)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/shadow.in b/rules/shadow.in
index 1a77f21e5..b3979ebd3 100644
--- a/rules/shadow.in
+++ b/rules/shadow.in
@@ -1,6 +1,6 @@
## SECTION=shell_and_console
comment "BusyBox' loginutils selected!"
- depends on BUSYBOX_ADDUSER || BUSYBOX_ADDGROUP || BUSYBOX_LOGIN || BUSYBOX_PASSWD || BUSYBOX_SU
+ depends on BUSYBOX_ADDUSER || BUSYBOX_ADDGROUP || BUSYBOX_LOGIN || BUSYBOX_PASSWD || BUSYBOX_SU
menuconfig SHADOW
tristate
diff --git a/rules/simplerpl.in b/rules/simplerpl.in
deleted file mode 100644
index 463d60244..000000000
--- a/rules/simplerpl.in
+++ /dev/null
@@ -1,18 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=networking
-
-config SIMPLERPL
- tristate
- prompt "simplerpl"
- select PYTHON_ROUTING
- select PYTHON_RPLICMP
- select PYZMQ
- help
- SimpleRPL is Linux-based implementation of the Routing Protocol for
- Low-Power and Lossy Networks (RPL) as defined in RFC 6550. It aims
- to complete the Linux Wireless Sensor Network ecosystem by bringing
- a (hopefully) fully-compliant RPL implementation
-
- STAGING: remove in PTXdist 2022.01.0
- Python 2.7 EOL was a year ago.
diff --git a/rules/simplerpl.make b/rules/simplerpl.make
deleted file mode 100644
index 4dad7465b..000000000
--- a/rules/simplerpl.make
+++ /dev/null
@@ -1,57 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2014 by Alexander Aring <aar@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_SIMPLERPL) += simplerpl
-
-#
-# Paths and names
-#
-SIMPLERPL_VERSION := 1.0
-SIMPLERPL_MD5 := 8544a9f7414e98cd2d17ff15332c8eee
-SIMPLERPL := simplerpl-$(SIMPLERPL_VERSION)
-SIMPLERPL_SUFFIX := tar.gz
-SIMPLERPL_URL := http://cakelab.org/~eintopf/RPL/$(SIMPLERPL).$(SIMPLERPL_SUFFIX)
-SIMPLERPL_SOURCE := $(SRCDIR)/$(SIMPLERPL).$(SIMPLERPL_SUFFIX)
-SIMPLERPL_DIR := $(BUILDDIR)/$(SIMPLERPL)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-SIMPLERPL_CONF_TOOL := python
-SIMPLERPL_MAKE_OPT = build -e "/usr/bin/python$(PYTHON_MAJORMINOR)"
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/simplerpl.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, simplerpl)
- @$(call install_fixup, simplerpl,PRIORITY,optional)
- @$(call install_fixup, simplerpl,SECTION,base)
- @$(call install_fixup, simplerpl,AUTHOR,"Alexander Aring <aar@pengutronix.de>")
- @$(call install_fixup, simplerpl,DESCRIPTION,missing)
-
- @for file in $(shell cd $(SIMPLERPL_PKGDIR) && find . -name "*.pyc"); \
- do \
- $(call install_copy, simplerpl, 0, 0, 0644, -, /$$file); \
- done
-
- @$(call install_copy, simplerpl, 0, 0, 0755, -, /usr/bin/cliRPL.py)
- @$(call install_copy, simplerpl, 0, 0, 0755, -, /usr/bin/simpleRPL.py)
-
- @$(call install_finish, simplerpl)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/smartmontools.in b/rules/smartmontools.in
index 782b8f914..d43a78bb9 100644
--- a/rules/smartmontools.in
+++ b/rules/smartmontools.in
@@ -3,7 +3,8 @@
menuconfig SMARTMONTOOLS
tristate
prompt "smartmontools "
- select BUSYBOX_START_STOP_DAEMON if SMARTMONTOOLS_SMARTD_INITD
+ select BUSYBOX_START_STOP_DAEMON if SMARTMONTOOLS_SMARTD_INITD
+ select SYSTEMD if SMARTMONTOOLS_SYSTEMD_UNIT
select LIBC_M
select GCCLIBS_CXX
select GCCLIBS_GCC_S
@@ -24,7 +25,6 @@ config SMARTMONTOOLS_SMARTCTL
config SMARTMONTOOLS_SMARTD
bool
- default n
prompt "install smartd"
help
SMART Disk Monitoring Daemon
@@ -32,7 +32,6 @@ config SMARTMONTOOLS_SMARTD
config SMARTMONTOOLS_SMARTD_CONFIG
bool
depends on SMARTMONTOOLS_SMARTD
- default n
prompt "install smartd.conf"
help
SMART Disk Monitoring Daemon Configuration File
@@ -40,7 +39,6 @@ config SMARTMONTOOLS_SMARTD_CONFIG
config SMARTMONTOOLS_SMARTD_INITD
bool
depends on SMARTMONTOOLS_SMARTD
- default n
prompt "install /etc/init.d/smartd"
help
SMART Disk Monitoring Daemon Configuration File
@@ -48,7 +46,7 @@ config SMARTMONTOOLS_SMARTD_INITD
config SMARTMONTOOLS_SYSTEMD_UNIT
bool
default y
- depends on SMARTMONTOOLS_SMARTD && SYSTEMD
+ depends on SMARTMONTOOLS_SMARTD && INITMETHOD_SYSTEMD
prompt "install systemd unit file for smartd"
endif
diff --git a/rules/smartmontools.make b/rules/smartmontools.make
index a672271e9..515bdf4fd 100644
--- a/rules/smartmontools.make
+++ b/rules/smartmontools.make
@@ -14,14 +14,17 @@ PACKAGES-$(PTXCONF_SMARTMONTOOLS) += smartmontools
#
# Paths and names
#
-SMARTMONTOOLS_VERSION := 6.6
-SMARTMONTOOLS_MD5 := 9ae2c6e7131cd2813edcc65cbe5f223f
+SMARTMONTOOLS_VERSION := 7.2
+SMARTMONTOOLS_MD5 := e8d134c69ae4959a05cb56b31172ffb1
SMARTMONTOOLS := smartmontools-$(SMARTMONTOOLS_VERSION)
SMARTMONTOOLS_SUFFIX := tar.gz
SMARTMONTOOLS_URL := $(call ptx/mirror, SF, smartmontools/$(SMARTMONTOOLS).$(SMARTMONTOOLS_SUFFIX))
SMARTMONTOOLS_SOURCE := $(SRCDIR)/$(SMARTMONTOOLS).$(SMARTMONTOOLS_SUFFIX)
SMARTMONTOOLS_DIR := $(BUILDDIR)/$(SMARTMONTOOLS)
-SMARTMONTOOLS_LICENSE := GPL-2.0-only
+SMARTMONTOOLS_LICENSE := GPL-2.0-or-later
+SMARTMONTOOLS_LICENSE_FILES := \
+ file://smartctl.cpp;startline=6;endline=10;md5=cf81e7daba6234e2c6674a2a20344e55 \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263
# ----------------------------------------------------------------------------
# Prepare
@@ -31,11 +34,15 @@ SMARTMONTOOLS_CONF_TOOL := autoconf
SMARTMONTOOLS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-sample \
- --with-systemdsystemunitdir=/usr/lib/systemd/system \
+ --disable-scsi-cdb-check \
+ --enable-fast-lebe \
--without-update-smart-drivedb \
--without-gnupg \
--without-selinux \
--without-libcap-ng \
+ --$(call ptx/wwo, PTXCONF_SMARTMONTOOLS_SYSTEMD_UNIT)-libsystemd \
+ $(call ptx/ifdef, PTXCONF_SMARTMONTOOLS_SYSTEMD_UNIT,--with-systemdsystemunitdir=/usr/lib/systemd/system) \
+ --without-systemdenvfile \
--without-nvme-devicescan
# ----------------------------------------------------------------------------
diff --git a/rules/smcroute.in b/rules/smcroute.in
index e9fa8f9d2..1035c2a16 100644
--- a/rules/smcroute.in
+++ b/rules/smcroute.in
@@ -7,7 +7,7 @@ menuconfig SMCROUTE
select LIBCAP if SMCROUTE_LIBCAP
help
SMCRoute is a daemon and command line tool to manipulate
- the multicast routing table in the UNIX kernel.
+ the multicast routing table in the UNIX kernel.
SMCRoute can be used as an alternative to dynamic multicast
routing daemons like mrouted or pimd when (only) static
multicast routes should be maintained and/or no proper
diff --git a/rules/socat.make b/rules/socat.make
index 4c6eb4dd8..74eb6240c 100644
--- a/rules/socat.make
+++ b/rules/socat.make
@@ -27,6 +27,10 @@ SOCAT_LICENSE := GPL-2.0-only
# Prepare
# ----------------------------------------------------------------------------
+SOCAT_CONF_ENV := \
+ $(CROSS_ENV) \
+ ac_cv_lib_bsd_openpty=no
+
#
# autoconf
#
diff --git a/rules/sockperf.in b/rules/sockperf.in
new file mode 100644
index 000000000..91851c2ed
--- /dev/null
+++ b/rules/sockperf.in
@@ -0,0 +1,8 @@
+## SECTION=test_suites
+
+config SOCKPERF
+ tristate
+ select GCCLIBS_CXX
+ prompt "sockperf"
+ help
+ Network benchmarking utility over socket API
diff --git a/rules/sockperf.make b/rules/sockperf.make
new file mode 100644
index 000000000..55b96875d
--- /dev/null
+++ b/rules/sockperf.make
@@ -0,0 +1,60 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Mellanox Technologies Ltd.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_SOCKPERF) += sockperf
+
+#
+# Paths and names
+#
+SOCKPERF_VERSION := 3.10
+SOCKPERF_MD5 := c589f072adf8c00eb95ef83c2d371f28
+SOCKPERF := sockperf-$(SOCKPERF_VERSION)
+SOCKPERF_SUFFIX := tar.gz
+SOCKPERF_URL := https://github.com/Mellanox/sockperf/archive/refs/tags/$(SOCKPERF_VERSION).$(SOCKPERF_SUFFIX)
+SOCKPERF_SOURCE := $(SRCDIR)/$(SOCKPERF).$(SOCKPERF_SUFFIX)
+SOCKPERF_DIR := $(BUILDDIR)/$(SOCKPERF)
+SOCKPERF_LICENSE := BSD-3-Clause
+SOCKPERF_LICENSE_FILES := file://copying;md5=13ab6d8129b2b03a18ec815d88b545ce
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+SOCKPERF_CONF_TOOL := autoconf
+SOCKPERF_CONF_ENV := $(CROSS_ENV) GIT_CEILING_DIRECTORIES="$(BUILDDIR)"
+SOCKPERF_MAKE_ENV := $(CROSS_ENV) GIT_CEILING_DIRECTORIES="$(BUILDDIR)"
+
+$(STATEDIR)/sockperf.prepare:
+ @$(call targetinfo)
+ @$(call world/execute, SOCKPERF, ./autogen.sh)
+ @$(call world/prepare, SOCKPERF)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/sockperf.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, sockperf)
+ @$(call install_fixup, sockperf,PRIORITY,optional)
+ @$(call install_fixup, sockperf,SECTION,base)
+ @$(call install_fixup, sockperf,AUTHOR,"Mellanox Technologies Ltd.")
+ @$(call install_fixup, sockperf,DESCRIPTION,missing)
+
+ @$(call install_copy, sockperf, 0, 0, 0755, -, /usr/bin/sockperf)
+
+ @$(call install_finish, sockperf)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/sparsehash.make b/rules/sparsehash.make
index a9ae1fd23..b53979504 100644
--- a/rules/sparsehash.make
+++ b/rules/sparsehash.make
@@ -19,13 +19,11 @@ SPARSEHASH_DIR := $(BUILDDIR)/$(SPARSEHASH)
# Prepare
# ----------------------------------------------------------------------------
-SPARSEHASH_PATH := PATH=$(CROSS_PATH)
-SPARSEHASH_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-SPARSEHASH_AUTOCONF := $(CROSS_AUTOCONF_USR)
+SPARSEHASH_CONF_TOOL := autoconf
+SPARSEHASH_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/spawn-fcgi.in b/rules/spawn-fcgi.in
index 9cf6489bc..7aa51f12e 100644
--- a/rules/spawn-fcgi.in
+++ b/rules/spawn-fcgi.in
@@ -5,7 +5,7 @@ config SPAWN_FCGI
prompt "spawn-fcgi"
help
spawn-fcgi is used to spawn FastCGI applications
-
+
https://redmine.lighttpd.net/projects/spawn-fcgi
# vim: ft=kconfig noet tw=72 ts=8 sw=8
diff --git a/rules/speex.make b/rules/speex.make
index 2a8c3b3ae..afb2374cb 100644
--- a/rules/speex.make
+++ b/rules/speex.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_SPEEX) += speex
#
# Paths and names
#
-SPEEX_VERSION := 1.2.0
-SPEEX_MD5 := 8ab7bb2589110dfaf0ed7fa7757dc49c
+SPEEX_VERSION := 1.2.1
+SPEEX_MD5 := fe7bf610883ff202092b92c72fe0fe3e
SPEEX := speex-$(SPEEX_VERSION)
SPEEX_SUFFIX := tar.gz
SPEEX_URL := http://downloads.xiph.org/releases/speex/$(SPEEX).$(SPEEX_SUFFIX)
diff --git a/rules/speexdsp.make b/rules/speexdsp.make
index f7a599b2d..92d2c6634 100644
--- a/rules/speexdsp.make
+++ b/rules/speexdsp.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_SPEEXDSP) += speexdsp
#
# Paths and names
#
-SPEEXDSP_VERSION := 1.2.0
-SPEEXDSP_MD5 := b722df341576dc185d897131321008fc
+SPEEXDSP_VERSION := 1.2.1
+SPEEXDSP_MD5 := e6eb5ddef743a362c8018f260b91dca5
SPEEXDSP := speexdsp-$(SPEEXDSP_VERSION)
SPEEXDSP_SUFFIX := tar.gz
SPEEXDSP_URL := http://downloads.xiph.org/releases/speex//$(SPEEXDSP).$(SPEEXDSP_SUFFIX)
@@ -36,7 +36,6 @@ SPEEXDSP_FFT-$(PTXCONF_SPEEXDSP_FFT_SMALLFT) += smallft
SPEEXDSP_CONF_TOOL := autoconf
SPEEXDSP_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
- --disable-valgrind \
--$(call ptx/endis, PTXCONF_ARCH_X86)-sse \
--$(call ptx/endis, PTXCONF_ARCH_ARMV7_NEON)-neon \
--$(call ptx/endis, PTXCONF_SPEEXDSP_FIXED_POINT)-fixed-point \
diff --git a/rules/spirv-headers.in b/rules/spirv-headers.in
new file mode 100644
index 000000000..a8780f62a
--- /dev/null
+++ b/rules/spirv-headers.in
@@ -0,0 +1,8 @@
+## SECTION=multimedia_libs
+
+config SPIRV_HEADERS
+ tristate
+ prompt "spirv-headers"
+ select HOST_CMAKE
+ help
+ SPIR-V Headers
diff --git a/rules/spirv-headers.make b/rules/spirv-headers.make
new file mode 100644
index 000000000..aab2edd40
--- /dev/null
+++ b/rules/spirv-headers.make
@@ -0,0 +1,37 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Philipp Zabel <p.zabel@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_SPIRV_HEADERS) += spirv-headers
+
+#
+# Paths and names
+#
+SPIRV_HEADERS_VERSION := 1.3.280.0
+SPIRV_HEADERS_MD5 := 438892138fe25c123cdacd05eb4a4b17
+SPIRV_HEADERS := spirv-headers-$(SPIRV_HEADERS_VERSION)
+SPIRV_HEADERS_SUFFIX := tar.gz
+SPIRV_HEADERS_URL := https://github.com/KhronosGroup/SPIRV-Headers/archive/vulkan-sdk-$(SPIRV_HEADERS_VERSION).$(SPIRV_HEADERS_SUFFIX)
+SPIRV_HEADERS_SOURCE := $(SRCDIR)/spirv-headers-$(SPIRV_HEADERS_VERSION).$(SPIRV_HEADERS_SUFFIX)
+SPIRV_HEADERS_DIR := $(BUILDDIR)/$(SPIRV_HEADERS)
+SPIRV_HEADERS_LICENSE := custom AND MIT
+SPIRV_HEADERS_LICENSE_FILES := file://LICENSE;md5=d14ee3b13f42e9c9674acc5925c3d741
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+SPIRV_HEADERS_CONF_TOOL := cmake
+SPIRV_HEADERS_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -DSPIRV_HEADERS_ENABLE_INSTALL=ON \
+ -DSPIRV_HEADERS_ENABLE_TESTS=OFF
+
+# vim: syntax=make
diff --git a/rules/spirv-tools.in b/rules/spirv-tools.in
index 9719e46ab..d7d4bf036 100644
--- a/rules/spirv-tools.in
+++ b/rules/spirv-tools.in
@@ -2,7 +2,7 @@
menuconfig SPIRV_TOOLS
tristate
- prompt "spirv-tools"
+ prompt "spirv-tools "
select HOST_CMAKE
select HOST_SYSTEM_PYTHON3
help
diff --git a/rules/spirv-tools.make b/rules/spirv-tools.make
index f26eaeaef..9df598a84 100644
--- a/rules/spirv-tools.make
+++ b/rules/spirv-tools.make
@@ -14,37 +14,23 @@ PACKAGES-$(PTXCONF_SPIRV_TOOLS) += spirv-tools
#
# Paths and names
#
-SPIRV_TOOLS_VERSION := 2021.1
-SPIRV_TOOLS_MD5 := 0ce8a1a505e541d8842266f0ac7df299
+SPIRV_TOOLS_VERSION := 1.3.280.0
+SPIRV_TOOLS_MD5 := d55af678b61667313d478db9399c09d4
SPIRV_TOOLS := spirv-tools-$(SPIRV_TOOLS_VERSION)
SPIRV_TOOLS_SUFFIX := tar.gz
-SPIRV_TOOLS_URL := https://github.com/KhronosGroup/SPIRV-Tools/archive/v$(SPIRV_TOOLS_VERSION).$(SPIRV_TOOLS_SUFFIX)
+SPIRV_TOOLS_URL := https://github.com/KhronosGroup/SPIRV-Tools/archive/vulkan-sdk-$(SPIRV_TOOLS_VERSION).$(SPIRV_TOOLS_SUFFIX)
SPIRV_TOOLS_SOURCE := $(SRCDIR)/$(SPIRV_TOOLS).$(SPIRV_TOOLS_SUFFIX)
SPIRV_TOOLS_DIR := $(BUILDDIR)/$(SPIRV_TOOLS)
+SPIRV_TOOLS_BUILD_DIR := $(SPIRV_TOOLS_DIR)-build
SPIRV_TOOLS_LICENSE := Apache-2.0
SPIRV_TOOLS_LICENSE_FILES := file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57
-SPIRV_HEADERS_VERSION := 2021-04-14-gdafead1765f6
-SPIRV_HEADERS_MD5 := 93cdc69c2d0cb9f097541c1bac0fde0d
-SPIRV_HEADERS_SUFFIX := tar.gz
-SPIRV_HEADERS_URL := https://github.com/KhronosGroup/SPIRV-Headers/archive/$(SPIRV_HEADERS_VERSION).$(SPIRV_HEADERS_SUFFIX)
-SPIRV_HEADERS_SOURCE := $(SRCDIR)/spirv-headers-$(SPIRV_HEADERS_VERSION).$(SPIRV_HEADERS_SUFFIX)
-$(SPIRV_HEADERS_SOURCE) := SPIRV_HEADERS
-SPIRV_HEADERS_DIR := $(SPIRV_TOOLS_DIR)/external/spirv-headers
+SPIRV_TOOLS_SPIRV_HEADERS_MD5 = $(SPIRV_HEADERS_MD5)
+SPIRV_TOOLS_SPIRV_HEADERS_URL = $(SPIRV_HEADERS_URL)
+SPIRV_TOOLS_SPIRV_HEADERS_SOURCE = $(SPIRV_HEADERS_SOURCE)
+SPIRV_TOOLS_SPIRV_HEADERS_DIR = $(SPIRV_TOOLS_DIR)/external/spirv-headers
-SPIRV_TOOLS_SOURCES := $(SPIRV_TOOLS_SOURCE) $(SPIRV_HEADERS_SOURCE)
-
-# ----------------------------------------------------------------------------
-# Extract
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/spirv-tools.extract:
- @$(call targetinfo)
- @$(call clean, $(SPIRV_TOOLS_DIR))
- @$(call extract, SPIRV_TOOLS)
- @$(call extract, SPIRV_HEADERS)
- @$(call patchin, SPIRV_TOOLS)
- @$(call touch)
+SPIRV_TOOLS_PARTS += SPIRV_TOOLS_SPIRV_HEADERS
# ----------------------------------------------------------------------------
# Prepare
@@ -53,30 +39,23 @@ $(STATEDIR)/spirv-tools.extract:
SPIRV_TOOLS_CONF_TOOL := cmake
SPIRV_TOOLS_CONF_OPT := \
$(CROSS_CMAKE_USR) \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_LIBDIR=/usr/lib \
- -DSPIRV_ALLOW_TIMERS=ON \
+ -DENABLE_RTTI=OFF \
-DSKIP_SPIRV_TOOLS_INSTALL=OFF \
- -DSPIRV_WERROR=OFF \
- -DSPIRV_WARN_EVERYTHING=OFF \
+ -DSPIRV_ALLOW_TIMERS=ON \
+ -DSPIRV_BUILD_COMPRESSION=OFF \
+ -DSPIRV_BUILD_FUZZER=OFF \
+ -DSPIRV_BUILD_LIBFUZZER_TARGETS=OFF \
+ -DSPIRV_CHECK_CONTEXT=ON \
-DSPIRV_COLOR_TERMINAL=ON \
+ -DSPIRV_HEADERS_ENABLE_INSTALL=OFF \
+ -DSPIRV_HEADERS_ENABLE_TESTS=OFF \
+ -DSPIRV_LIB_FUZZING_ENGINE_LINK_OPTIONS= \
-DSPIRV_LOG_DEBUG=OFF \
-DSPIRV_SKIP_EXECUTABLES=ON \
- -DSPIRV_SKIP_TESTS=ON
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/spirv-tools.install:
- @$(call targetinfo)
- @install -vD -m 644 $(SPIRV_TOOLS_DIR)-build/source/libSPIRV-Tools.a $(SPIRV_TOOLS_PKGDIR)/usr/lib/libSPIRV-Tools.a
- @install -vD -m 644 $(SPIRV_TOOLS_DIR)-build/source/opt/libSPIRV-Tools-opt.a $(SPIRV_TOOLS_PKGDIR)/usr/lib/libSPIRV-Tools-opt.a
- @install -vD -m 644 $(SPIRV_TOOLS_DIR)-build/source/libSPIRV-Tools-shared.so $(SPIRV_TOOLS_PKGDIR)/usr/lib/libSPIRV-Tools-shared.so
- @mkdir -p $(SPIRV_TOOLS_PKGDIR)/usr/include
- @cp -r $(SPIRV_HEADERS_DIR)/include/spirv $(SPIRV_TOOLS_PKGDIR)/usr/include
- @cp -r $(SPIRV_TOOLS_DIR)/include/spirv-tools $(SPIRV_TOOLS_PKGDIR)/usr/include
- $(call touch)
+ -DSPIRV_TOOLS_BUILD_STATIC=ON \
+ -DSPIRV_TOOLS_INSTALL_EMACS_HELPERS=OFF \
+ -DSPIRV_WARN_EVERYTHING=OFF \
+ -DSPIRV_WERROR=OFF
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/sqlite.make b/rules/sqlite.make
index eb866118a..ea57e9042 100644
--- a/rules/sqlite.make
+++ b/rules/sqlite.make
@@ -19,11 +19,11 @@ PACKAGES-$(PTXCONF_SQLITE) += sqlite
#
# Paths and names
#
-SQLITE_VERSION := 3350500
-SQLITE_MD5 := d1d1aba394c8e0443077dc9f1a681bb8
+SQLITE_VERSION := 3400000
+SQLITE_MD5 := c833d61da768a116fa16d910f43cfd9a
SQLITE := sqlite-autoconf-$(SQLITE_VERSION)
SQLITE_SUFFIX := tar.gz
-SQLITE_URL := https://www.sqlite.org/2021/$(SQLITE).$(SQLITE_SUFFIX)
+SQLITE_URL := https://www.sqlite.org/2022/$(SQLITE).$(SQLITE_SUFFIX)
SQLITE_SOURCE := $(SRCDIR)/$(SQLITE).$(SQLITE_SUFFIX)
SQLITE_DIR := $(BUILDDIR)/$(SQLITE)
SQLITE_LICENSE := public_domain
@@ -62,7 +62,6 @@ SQLITE_CONF_OPT := \
--enable-fts4 \
--enable-fts3 \
--disable-fts5 \
- --enable-json1 \
--enable-rtree \
--disable-session \
--disable-debug \
diff --git a/rules/squashfs-tools.make b/rules/squashfs-tools.make
index 4b9581883..91adfc2ee 100644
--- a/rules/squashfs-tools.make
+++ b/rules/squashfs-tools.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_SQUASHFS_TOOLS) += squashfs-tools
#
# Paths and names
#
-SQUASHFS_TOOLS_VERSION := 4.4
-SQUASHFS_TOOLS_MD5 := 5033bea6cd522ef54b13755feea6c858
+SQUASHFS_TOOLS_VERSION := 4.5.1
+SQUASHFS_TOOLS_MD5 := 399513f5dbfbf2ceec52db0b1b30f648
SQUASHFS_TOOLS := squashfs$(SQUASHFS_TOOLS_VERSION)
SQUASHFS_TOOLS_SUFFIX := tar.gz
SQUASHFS_TOOLS_URL := $(call ptx/mirror, SF, squashfs/$(SQUASHFS_TOOLS).$(SQUASHFS_TOOLS_SUFFIX))
@@ -23,6 +23,8 @@ SQUASHFS_TOOLS_SOURCE := $(SRCDIR)/$(SQUASHFS_TOOLS).$(SQUASHFS_TOOLS_SUFFIX)
SQUASHFS_TOOLS_DIR := $(BUILDDIR)/$(SQUASHFS_TOOLS)
SQUASHFS_TOOLS_SUBDIR := squashfs-tools
SQUASHFS_TOOLS_LICENSE := GPL-2.0-or-later
+SQUASHFS_TOOLS_LICENSE_FILES := \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263
# ----------------------------------------------------------------------------
# Prepare
diff --git a/rules/sshfs.make b/rules/sshfs.make
index e701d2d69..ffb0ea7a6 100644
--- a/rules/sshfs.make
+++ b/rules/sshfs.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_SSHFS) += sshfs
#
# Paths and names
#
-SSHFS_VERSION := 3.5.1
-SSHFS_MD5 := cae9508b97c938727e354448b40693cc
+SSHFS_VERSION := 3.7.3
+SSHFS_MD5 := f704f0d1800bdb5214030a1603e8c6d6
SSHFS := sshfs-$(SSHFS_VERSION)
SSHFS_SUFFIX := tar.xz
SSHFS_URL := https://github.com/libfuse/sshfs/releases/download/$(SSHFS)/$(SSHFS).$(SSHFS_SUFFIX)
diff --git a/rules/sshpass.in b/rules/sshpass.in
new file mode 100644
index 000000000..7c5fc5786
--- /dev/null
+++ b/rules/sshpass.in
@@ -0,0 +1,22 @@
+## SECTION=networking
+
+config SSHPASS
+ tristate
+ prompt "sshpass"
+ help
+ sshpass is a tool for non-interactively performing password
+ authentication with SSH's so called "interactive keyboard
+ password authentication".
+ Most user should use SSH's more secure public key
+ authentication instead.
+
+ SECURITY NOTE: There is a reason OpenSSH insists that
+ passwords be typed interactively.
+ Passwords are harder to store securely and to pass around
+ securely between programs.
+ If you have not looked into solving your needs using SSH's
+ "public key authentication", perhaps in conjunction with the
+ ssh agent (RTFM ssh-add), please do so before being tempted
+ into using this package.
+
+# vim: ft=kconfig noet tw=72 ts=8 sw=8
diff --git a/rules/sshpass.make b/rules/sshpass.make
new file mode 100644
index 000000000..7fe27d1e6
--- /dev/null
+++ b/rules/sshpass.make
@@ -0,0 +1,52 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Alexander Dahl <ada@thorsis.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_SSHPASS) += sshpass
+
+#
+# Paths and names
+#
+SSHPASS_VERSION := 1.10
+SSHPASS_MD5 := e435c55deb6e2e410508ecc5da3066f8
+SSHPASS := sshpass-$(SSHPASS_VERSION)
+SSHPASS_SUFFIX := tar.gz
+SSHPASS_URL := $(call ptx/mirror, SF, sshpass/$(SSHPASS).$(SSHPASS_SUFFIX))
+SSHPASS_SOURCE := $(SRCDIR)/$(SSHPASS).$(SSHPASS_SUFFIX)
+SSHPASS_DIR := $(BUILDDIR)/$(SSHPASS)
+SSHPASS_LICENSE := GPL-2.0-or-later
+SSHPASS_LICENSE_FILES := file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+SSHPASS_CONF_TOOL := autoconf
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/sshpass.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, sshpass)
+ @$(call install_fixup, sshpass,PRIORITY,optional)
+ @$(call install_fixup, sshpass,SECTION,base)
+ @$(call install_fixup, sshpass,AUTHOR,"Alexander Dahl <ada@thorsis.com>")
+ @$(call install_fixup, sshpass,DESCRIPTION,missing)
+
+ @$(call install_copy, sshpass, 0, 0, 0755, -, /usr/bin/sshpass)
+
+ @$(call install_finish, sshpass)
+
+ @$(call touch)
+
+# vim: ft=make noet tw=72 ts=8 sw=8
diff --git a/rules/ssmtp.make b/rules/ssmtp.make
index 63c9c14b2..2752ac15d 100644
--- a/rules/ssmtp.make
+++ b/rules/ssmtp.make
@@ -29,9 +29,6 @@ SSMTP_LICENSE := GPL-2.0-or-later
# Prepare
# ----------------------------------------------------------------------------
-SSMTP_PATH := PATH=$(CROSS_PATH)
-SSMTP_CONF_ENV := $(CROSS_ENV)
-
#
# autoconf
#
diff --git a/rules/strace.make b/rules/strace.make
index 09aa6678d..697b1495a 100644
--- a/rules/strace.make
+++ b/rules/strace.make
@@ -16,14 +16,19 @@ PACKAGES-$(PTXCONF_STRACE) += strace
#
# Paths and names
#
-STRACE_VERSION := 5.8
-STRACE_MD5 := 1a808c5917f0d91169e377c90faee6dd
+STRACE_VERSION := 6.8
+STRACE_MD5 := 1c7aca3fad1f309fdb54031866fad6d9
STRACE := strace-$(STRACE_VERSION)
STRACE_SUFFIX := tar.xz
STRACE_URL := https://strace.io/files/$(STRACE_VERSION)/$(STRACE).$(STRACE_SUFFIX)
STRACE_SOURCE := $(SRCDIR)/$(STRACE).$(STRACE_SUFFIX)
STRACE_DIR := $(BUILDDIR)/$(STRACE)
-STRACE_LICENSE := BSD-3-Clause
+STRACE_LICENSE := LGPL-2.1-or-later AND GPL-2.0-only WITH Linux-syscall-note
+STRACE_LICENSE_FILES := \
+ file://COPYING;md5=2433d82e1432a76dc3eadd9002bfe304\
+ file://bundled/linux/COPYING;md5=391c7a5bbfb151ad3dbe0a7fb5791a46 \
+ file://bundled/linux/GPL-2.0;md5=e6a75371ba4d16749254a51215d13f97 \
+ file://LGPL-2.1-or-later;md5=9e4c7a7a5be83d7f3da645ac5d466052
# ----------------------------------------------------------------------------
# Prepare
@@ -33,10 +38,12 @@ STRACE_CONF_TOOL := autoconf
STRACE_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-code-coverage \
+ --enable-bundled=check \
--disable-arm-oabi \
--disable-gcc-Werror \
--disable-stacktrace \
--disable-mpers \
+ --enable-install-tests=no \
--disable-valgrind \
--disable-valgrind-memcheck \
--disable-valgrind-helgrind \
@@ -45,8 +52,8 @@ STRACE_CONF_OPT := \
--without-gcov \
--without-libdw \
--without-libunwind \
- --without-libiberty
-
+ --without-libiberty \
+ --without-libselinux
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/stress-ng.in b/rules/stress-ng.in
index d5c71196a..426d58cc8 100644
--- a/rules/stress-ng.in
+++ b/rules/stress-ng.in
@@ -4,8 +4,11 @@ config STRESS_NG
tristate
prompt "stress-ng"
select GCCLIBS_ATOMIC
+ select LIBC_CRYPT
select LIBAIO
select LIBBSD
+ select LIBJPEG
+ select XXHASH
select ZLIB
help
stress-ng will stress test a computer system in various selectable
diff --git a/rules/stress-ng.make b/rules/stress-ng.make
index 296a0558b..610a82b55 100644
--- a/rules/stress-ng.make
+++ b/rules/stress-ng.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_STRESS_NG) += stress-ng
#
# Paths and names
#
-STRESS_NG_VERSION := 0.11.15
-STRESS_NG_MD5 := 5f644470500040281201995828459cca
+STRESS_NG_VERSION := 0.14.06
+STRESS_NG_MD5 := 641d3be771a0350d0234d89cbab8834d
STRESS_NG := stress-ng-$(STRESS_NG_VERSION)
-STRESS_NG_SUFFIX := tar.xz
-STRESS_NG_URL := http://kernel.ubuntu.com/~cking/tarballs/stress-ng/$(STRESS_NG).$(STRESS_NG_SUFFIX)
+STRESS_NG_SUFFIX := tar.gz
+STRESS_NG_URL := https://github.com/ColinIanKing/stress-ng/archive/refs/tags/V$(STRESS_NG_VERSION).$(STRESS_NG_SUFFIX)
STRESS_NG_SOURCE := $(SRCDIR)/$(STRESS_NG).$(STRESS_NG_SUFFIX)
STRESS_NG_DIR := $(BUILDDIR)/$(STRESS_NG)
STRESS_NG_LICENSE := GPL-2.0-or-later
@@ -29,6 +29,14 @@ STRESS_NG_LICENSE := GPL-2.0-or-later
STRESS_NG_CONF_TOOL := NO
+$(STATEDIR)/stress-ng.prepare:
+ @$(call targetinfo)
+ @mkdir -p $(STRESS_NG_DIR)/configs
+ @: > $(STRESS_NG_DIR)/configs/HAVE_LIB_KMOD
+ @: > $(STRESS_NG_DIR)/configs/HAVE_LIB_EGL
+ @$(call touch)
+
+
# ----------------------------------------------------------------------------
# Compile
# ----------------------------------------------------------------------------
diff --git a/rules/strongswan.in b/rules/strongswan.in
index 8b1adff65..dca4cac99 100644
--- a/rules/strongswan.in
+++ b/rules/strongswan.in
@@ -26,7 +26,6 @@ config STRONGSWAN_LIBCURL
config STRONGSWAN_OPENSSL
bool
- default n
prompt "OpenSSL crypto library for IKE"
help
This will add Elliptic Curve support in IKE Diffie-Hellman key exchange.
@@ -50,6 +49,7 @@ config STRONGSWAN_SYSTEMD_UNIT
bool
default y
depends on INITMETHOD_SYSTEMD
+ select STRONGSWAN_SWANCTL
prompt "install systemd service file"
config STRONGSWAN_SWANCTL
diff --git a/rules/strongswan.make b/rules/strongswan.make
index 59de1cfdb..de657eaf7 100644
--- a/rules/strongswan.make
+++ b/rules/strongswan.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_STRONGSWAN) += strongswan
#
# Paths and names
#
-STRONGSWAN_VERSION := 5.8.4
-STRONGSWAN_MD5 := 0634e7f40591bd3f6770e583c3f27d29
+STRONGSWAN_VERSION := 5.9.14
+STRONGSWAN_MD5 := 21ca3fc7c18456405d03b77266ba630a
STRONGSWAN := strongswan-$(STRONGSWAN_VERSION)
STRONGSWAN_SUFFIX := tar.bz2
STRONGSWAN_URL := https://download.strongswan.org/$(STRONGSWAN).$(STRONGSWAN_SUFFIX)
@@ -54,7 +54,7 @@ STRONGSWAN_CONF_OPT := \
--enable-hmac \
--disable-md4 \
--disable-md5 \
- --disable-mgf1 \
+ --enable-mgf1 \
--disable-newhope \
--enable-nonce \
--disable-ntru \
@@ -193,8 +193,7 @@ STRONGSWAN_CONF_OPT := \
--disable-medcli \
--disable-medsrv \
--disable-nm \
- --enable-pki \
- --$(call ptx/disen, PTXCONF_STRONGSWAN_SWANCTL)-scepclient \
+ --disable-pki \
--enable-scripts \
--disable-svc \
--$(call ptx/endis, PTXCONF_STRONGSWAN_SYSTEMD_UNIT)-systemd \
@@ -221,8 +220,12 @@ STRONGSWAN_CONF_OPT := \
--disable-log-thread-ids \
--disable-monolithic \
--disable-defaults \
+ --enable-kdf \
--enable-dependency-tracking \
--enable-shared \
+ --disable-warnings \
+ --disable-asan \
+ --$(call ptx/endis, PTXCONF_GLOBAL_SELINUX)-selinux \
--$(call ptx/endis, PTXCONF_STRONGSWAN_SWANCTL)-swanctl \
--with-ipseclibdir=/usr/lib \
--with-systemdsystemunitdir=/usr/lib/systemd/system
@@ -234,6 +237,7 @@ STRONGSWAN_LDFLAGS := -Wl,-rpath,/usr/lib/plugins
# ----------------------------------------------------------------------------
STRONGSWAN_PLUGINS := \
+ libstrongswan-acert.so \
libstrongswan-aes.so \
libstrongswan-attr.so \
libstrongswan-cmac.so \
@@ -243,7 +247,9 @@ STRONGSWAN_PLUGINS := \
libstrongswan-gcm.so \
libstrongswan-gmp.so \
libstrongswan-hmac.so \
+ libstrongswan-kdf.so \
libstrongswan-kernel-netlink.so \
+ libstrongswan-mgf1.so \
libstrongswan-nonce.so \
libstrongswan-pem.so \
libstrongswan-pgp.so \
@@ -289,7 +295,6 @@ $(STATEDIR)/strongswan.targetinstall:
@$(call install_alternative, strongswan, 0, 0, 0644, /etc/strongswan.conf)
- @$(call install_tree, strongswan, 0, 0, -, /usr/bin)
@$(call install_tree, strongswan, 0, 0, -, /usr/libexec)
@$(call install_tree, strongswan, 0, 0, -, /usr/sbin)
@@ -298,7 +303,7 @@ $(STATEDIR)/strongswan.targetinstall:
@$(foreach plugin, $(STRONGSWAN_PLUGINS), \
$(call install_copy, strongswan, 0, 0, 0644, -, \
- /usr/lib/plugins/$(plugin));)
+ /usr/lib/plugins/$(plugin))$(ptx/nl))
ifdef PTXCONF_STRONGSWAN_SYSTEMD_UNIT
@$(call install_alternative, strongswan, 0, 0, 0644, \
@@ -309,7 +314,6 @@ endif
ifdef PTXCONF_STRONGSWAN_SWANCTL
@$(call install_lib, strongswan, 0, 0, 0644, libvici)
- @$(call install_tree, strongswan, 0, 0, -, /etc/strongswan.d)
@$(call install_alternative, strongswan, 0, 0, 0644, /etc/swanctl/swanctl.conf)
@$(call install_copy, strongswan, 0, 0, 0750, /etc/swanctl/bliss)
@$(call install_copy, strongswan, 0, 0, 0750, /etc/swanctl/ecdsa)
@@ -326,6 +330,7 @@ ifdef PTXCONF_STRONGSWAN_SWANCTL
@$(call install_copy, strongswan, 0, 0, 0755, /etc/swanctl/x509ocsp)
endif
+ @$(call install_tree, strongswan, 0, 0, -, /etc/strongswan.d)
@$(call install_copy, strongswan, 0, 0, 0644, /etc/ipsec.d/aacerts)
@$(call install_copy, strongswan, 0, 0, 0644, /etc/ipsec.d/acerts)
@$(call install_copy, strongswan, 0, 0, 0644, /etc/ipsec.d/cacerts)
diff --git a/rules/stunnel.in b/rules/stunnel.in
index b6c552b10..dba0e890f 100644
--- a/rules/stunnel.in
+++ b/rules/stunnel.in
@@ -3,6 +3,9 @@
config STUNNEL
tristate
select OPENSSL
+ select LIBC_UTIL
+ select LIBC_PTHREAD
+ select LIBC_CRYPT
prompt "stunnel"
help
The stunnel program is designed to work as an SSL encryption
diff --git a/rules/stunnel.make b/rules/stunnel.make
index eabe2290f..2d7d4ef2d 100644
--- a/rules/stunnel.make
+++ b/rules/stunnel.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_STUNNEL) += stunnel
#
# Paths and names
#
-STUNNEL_VERSION := 5.46
-STUNNEL_MD5 := 2836e0740d4a16fa489445d969ec0b7d
+STUNNEL_VERSION := 5.65
+STUNNEL_MD5 := b05d5e07a59eb6c3c0b7d26d1281e5c6
STUNNEL := stunnel-$(STUNNEL_VERSION)
STUNNEL_SUFFIX := tar.gz
STUNNEL_URL := \
@@ -33,7 +33,7 @@ STUNNEL_LICENSE := stunnel (GPL2 or later with openssl exception)
# autoconf
#
STUNNEL_CONF_TOOL := autoconf
-STUNNEL_AUTOCONF := \
+STUNNEL_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
$(GLOBAL_LARGE_FILE_OPTION) \
$(GLOBAL_IPV6_OPTION) \
diff --git a/rules/sudo.in b/rules/sudo.in
index 480c90cd9..bdb100649 100644
--- a/rules/sudo.in
+++ b/rules/sudo.in
@@ -10,7 +10,7 @@ menuconfig SUDO
Sudo is a program designed to allow a sysadmin
to give limited root privileges to users and log
root activity. The basic philosophy is to give
- as few privileges as possible but still allow
+ as few privileges as possible but still allow
people to get their work done.
if SUDO
diff --git a/rules/sudo.make b/rules/sudo.make
index a10969da5..83c3e7f8e 100644
--- a/rules/sudo.make
+++ b/rules/sudo.make
@@ -15,34 +15,35 @@ PACKAGES-$(PTXCONF_SUDO) += sudo
#
# Paths and names
#
-SUDO_VERSION := 1.9.5p2
-SUDO_MD5 := e6bc4c18c06346e6b3431637a2b5f3d5
+SUDO_VERSION := 1.9.15p5
+SUDO_MD5 := 4166279cb188ecb6641c7a2ba5f68270
SUDO := sudo-$(SUDO_VERSION)
SUDO_SUFFIX := tar.gz
SUDO_URL := \
- http://www.sudo.ws/sudo/dist/$(SUDO).$(SUDO_SUFFIX) \
- http://www.sudo.ws/sudo/dist/OLD/$(SUDO).$(SUDO_SUFFIX)
+ https://www.sudo.ws/sudo/dist/$(SUDO).$(SUDO_SUFFIX) \
+ https://www.sudo.ws/sudo/dist/OLD/$(SUDO).$(SUDO_SUFFIX)
SUDO_SOURCE := $(SRCDIR)/$(SUDO).$(SUDO_SUFFIX)
SUDO_DIR := $(BUILDDIR)/$(SUDO)
SUDO_LICENSE := ISC AND BSD-3-Clause AND BSD-2-Clause-NetBSD AND Zlib
-SUDO_LICENSE_FILES := file://doc/LICENSE;md5=fdff64d4fd19126330aa81b94d167173
+SUDO_LICENSE_FILES := file://LICENSE.md;md5=5100e20d35f9015f9eef6bdb27ba194f
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-SUDO_PATH := PATH=$(CROSS_PATH)
-SUDO_ENV := \
+SUDO_CONF_ENV := \
$(CROSS_ENV) \
sudo_cv_func_fnmatch=yes \
sudo_cv_func_unsetenv_void=no \
ac_cv_have_working_snprintf=yes \
- ac_cv_have_working_vsnprintf=yes
+ ac_cv_have_working_vsnprintf=yes \
+ ac_cv_lib_md_SHA224Update=no
#
# autoconf
#
-SUDO_AUTOCONF = \
+SUDO_CONF_TOOL := autoconf
+SUDO_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--enable-authentication \
--disable-root-mailer \
@@ -63,7 +64,6 @@ SUDO_AUTOCONF = \
--disable-gcrypt \
--enable-hardening \
--enable-pie \
- --disable-asan \
--enable-poll \
--disable-admin-flag \
--disable-nls \
@@ -94,21 +94,21 @@ SUDO_AUTOCONF = \
--without-pam
ifdef PTXCONF_SUDO_USE_SENDMAIL
-SUDO_AUTOCONF += --with-sendmail
+SUDO_CONF_OPT += --with-sendmail
else
-SUDO_AUTOCONF += --without-sendmail
+SUDO_CONF_OPT += --without-sendmail
endif
ifdef PTXCONF_SUDO_INSTALL_VISUDO
ifneq ($(PTXCONF_SUDO_DEFAULT_EDITOR),"")
-SUDO_AUTOCONF += --with-editor=$(PTXCONF_SUDO_DEFAULT_EDITOR)
+SUDO_CONF_OPT += --with-editor=$(PTXCONF_SUDO_DEFAULT_EDITOR)
endif
endif
ifdef PTXCONF_SUDO_USE_ENV_EDITOR
-SUDO_AUTOCONF += --with-env-editor
+SUDO_CONF_OPT += --with-env-editor
else
-SUDO_AUTOCONF += --without-env-editor
+SUDO_CONF_OPT += --without-env-editor
endif
# ----------------------------------------------------------------------------
diff --git a/rules/supertux.in b/rules/supertux.in
index 0a44c02fc..21ea82b12 100644
--- a/rules/supertux.in
+++ b/rules/supertux.in
@@ -12,7 +12,7 @@ config SUPERTUX
select SDL_IMAGE__JPG
select SDL_IMAGE__XPM
help
- SuperTux is a classic 2D jump 'n run sidescroller game in
+ SuperTux is a classic 2D jump 'n run sidescroller game in
a similar style like the original SuperMario games. This
release of SuperTux features 9 enemies, 26 playable levels,
software and OpenGL rendering modes, configurable joystick
diff --git a/rules/supertux.make b/rules/supertux.make
index 5285b8fe7..b94153eb4 100644
--- a/rules/supertux.make
+++ b/rules/supertux.make
@@ -26,18 +26,16 @@ SUPERTUX_DIR := $(BUILDDIR)/$(SUPERTUX)
# Prepare
# ----------------------------------------------------------------------------
-SUPERTUX_PATH := PATH=$(CROSS_PATH)
-SUPERTUX_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-SUPERTUX_AUTOCONF := \
+SUPERTUX_CONF_TOOL := autoconf
+SUPERTUX_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-opengl \
--with-sdl-prefix=$(SYSROOT)/usr
-SUPERTUX_CXXFLAGS := -std=c++98
+SUPERTUX_CXXFLAGS := -std=c++98
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/svgalib.make b/rules/svgalib.make
index 7e50afc29..01aea363b 100644
--- a/rules/svgalib.make
+++ b/rules/svgalib.make
@@ -52,23 +52,22 @@ endif
# Install
# ----------------------------------------------------------------------------
+SVGALIB_INSTALL_OPT := \
+ prefix=$(SVGALIB_PKGDIR)/usr \
+ datadir=$(SVGALIB_PKGDIR)/etc/vga \
+ installheaders \
+ installsharedlib \
+ installconfig
+
$(STATEDIR)/svgalib.install:
@$(call targetinfo)
- mkdir -p $(SVGALIB_PKGDIR)/usr/lib
- cp "$(SVGALIB_DIR)/sharedlib/libvga.so.$(SVGALIB_VERSION)" "$(SVGALIB_PKGDIR)/usr/lib"
- ln -sf libvga.so.$(SVGALIB_VERSION) $(SVGALIB_PKGDIR)/usr/lib/libvga.so.1
- ln -sf libvga.so.$(SVGALIB_VERSION) $(SVGALIB_PKGDIR)/usr/lib/libvga.so
- cp "$(SVGALIB_DIR)/sharedlib/libvgagl.so.$(SVGALIB_VERSION)" "$(SVGALIB_PKGDIR)/usr/lib"
- ln -sf libvgagl.so.$(SVGALIB_VERSION) $(SVGALIB_PKGDIR)/usr/lib/libvgagl.so.1
- ln -sf libvgagl.so.$(SVGALIB_VERSION) $(SVGALIB_PKGDIR)/usr/lib/libvgagl.so
+ @$(call world/install, SVGALIB)
+ @ln -sf libvga.so.$(SVGALIB_VERSION) $(SVGALIB_PKGDIR)/usr/lib/libvga.so.1
+ @ln -sf libvgagl.so.$(SVGALIB_VERSION) $(SVGALIB_PKGDIR)/usr/lib/libvgagl.so.1
ifdef PTXCONF_SVGALIB_VGATEST
- mkdir -p $(SVGALIB_PKGDIR)/usr/bin
- cp "$(SVGALIB_DIR)/demos/vgatest" "$(SVGALIB_PKGDIR)/usr/bin/vgatest"
+ @install -vd -m755 $(SVGALIB_PKGDIR)/usr/bin
+ install -vD -m755 $(SVGALIB_DIR)/demos/vgatest $(SVGALIB_PKGDIR)/usr/bin/vgatest
endif
- install -d $(SYSROOT)/include
- install $(SVGALIB_DIR)/include/vga.h $(SYSROOT)/include
- install $(SVGALIB_DIR)/include/vgamouse.h $(SYSROOT)/include
- install $(SVGALIB_DIR)/include/vgakeyboard.h $(SYSROOT)/include
@$(call touch)
# ----------------------------------------------------------------------------
diff --git a/rules/sysklogd-bbinit.in b/rules/sysklogd-bbinit.in
new file mode 100644
index 000000000..ea8f80832
--- /dev/null
+++ b/rules/sysklogd-bbinit.in
@@ -0,0 +1,8 @@
+## SECTION=initmethod_bbinit
+
+config SYSKLOGD_BBINIT_LINK
+ string
+ depends on SYSKLOGD_STARTSCRIPT
+ prompt "syslogd"
+ default "S10syslogd"
+
diff --git a/rules/sysklogd.in b/rules/sysklogd.in
new file mode 100644
index 000000000..8d50300e6
--- /dev/null
+++ b/rules/sysklogd.in
@@ -0,0 +1,41 @@
+## SECTION=networking
+
+menuconfig SYSKLOGD
+ tristate
+ prompt "sysklogd "
+ depends on !BUSYBOX_SYSLOGD || ALLYES
+ depends on !BUSYBOX_LOGGER || ALLYES
+ help
+ The venerable BSD syslogd and klogd rolled into one syslogd.
+ This is a maintained and updated variant of the same.
+
+if SYSKLOGD
+
+comment "runtime options ---"
+
+config SYSKLOGD_SYSTEMD
+ bool
+ default y
+ prompt "Enable systemd support"
+ depends on INITMETHOD_SYSTEMD
+ help
+ Installs the systemd service file and enables support for the
+ systemd-journal
+
+config SYSKLOGD_STARTSCRIPT
+ bool
+ default y
+ depends on INITMETHOD_BBINIT
+ help
+ Installs (if present) the
+ "./projectroot/etc/init.d/syslogd" startscript from your
+ workspace, otherwise a generic one from the ptxdist
+ installation ("<PTXDIST>/projectroot/etc/init.d/syslogd").
+
+endif
+
+comment "BusyBox' syslogd is selected!"
+ depends on BUSYBOX_SYSLOGD
+
+comment "BusyBox' logger is selected!"
+ depends on BUSYBOX_LOGGER
diff --git a/rules/sysklogd.make b/rules/sysklogd.make
new file mode 100644
index 000000000..9fdd36e4b
--- /dev/null
+++ b/rules/sysklogd.make
@@ -0,0 +1,93 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Christian Melki <christian.melki@t2data.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_SYSKLOGD) += sysklogd
+
+#
+# Paths and names
+#
+SYSKLOGD_VERSION := 2.5.2
+SYSKLOGD_MD5 := 8d731aa7215a899f1070029c9794b423
+SYSKLOGD := sysklogd-$(SYSKLOGD_VERSION)
+SYSKLOGD_SUFFIX := tar.gz
+SYSKLOGD_URL := https://github.com/troglobit/sysklogd/releases/download/v$(SYSKLOGD_VERSION)/$(SYSKLOGD).$(SYSKLOGD_SUFFIX)
+SYSKLOGD_SOURCE := $(SRCDIR)/$(SYSKLOGD).$(SYSKLOGD_SUFFIX)
+SYSKLOGD_DIR := $(BUILDDIR)/$(SYSKLOGD)
+SYSKLOGD_LICENSE := BSD-3-Clause
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+SYSKLOGD_CONF_TOOL = autoconf
+SYSKLOGD_CONF_OPT = \
+ $(CROSS_AUTOCONF_USR) \
+ --without-suspend-time \
+ --with-systemd=/usr/lib/systemd/system \
+ --with-logger
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/sysklogd.install:
+ @$(call targetinfo)
+ @$(call world/install, SYSKLOGD)
+ @install -vD -m 644 $(SYSKLOGD_DIR)/syslog.conf \
+ $(SYSKLOGD_PKGDIR)/etc/syslog.conf
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/sysklogd.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, sysklogd)
+ @$(call install_fixup, sysklogd,PRIORITY,optional)
+ @$(call install_fixup, sysklogd,SECTION,base)
+ @$(call install_fixup, sysklogd,AUTHOR,"Christian Melki <christian.melki@t2data.com>")
+ @$(call install_fixup, sysklogd,DESCRIPTION,missing)
+
+ @$(call install_copy, sysklogd, 0, 0, 0755, -, /usr/bin/logger)
+ @$(call install_copy, sysklogd, 0, 0, 0755, -, /usr/sbin/syslogd)
+ @$(call install_lib, sysklogd, 0, 0, 0644, libsyslog)
+
+ @$(call install_alternative, sysklogd, 0, 0, 0644, /etc/syslog.conf)
+
+ifdef PTXCONF_SYSKLOGD_STARTSCRIPT
+ @$(call install_alternative, sysklogd, 0, 0, 0755, /etc/init.d/syslogd)
+
+ifneq ($(call remove_quotes,$(PTXCONF_SYSKLOGD_BBINIT_LINK)),)
+ @$(call install_link, sysklogd, \
+ ../init.d/syslogd, \
+ /etc/rc.d/$(PTXCONF_SYSKLOGD_BBINIT_LINK))
+endif
+endif
+
+ifdef PTXCONF_INITMETHOD_SYSTEMD
+ @$(call install_alternative, sysklogd, 0, 0, 0644, \
+ /usr/lib/systemd/system/syslogd.service)
+ @$(call install_link, sysklogd, ../syslogd.service, \
+ /usr/lib/systemd/system/multi-user.target.wants/syslogd.service)
+ @$(call install_link, sysklogd, syslogd.service, \
+ /usr/lib/systemd/system/syslog.service)
+endif
+
+ @$(call install_finish, sysklogd)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/syslinux.make b/rules/syslinux.make
index 550fa35a8..0d17470d3 100644
--- a/rules/syslinux.make
+++ b/rules/syslinux.make
@@ -32,8 +32,7 @@ SYSLINUX_MAKE_ENV := \
ICECC=no
SYSLINUX_WRAPPER_BLACKLIST := \
- TARGET_HARDEN_STACKCLASH \
- TARGET_HARDEN_PIE
+ $(PTXDIST_LOWLEVEL_WRAPPER_BLACKLIST)
SYSLINUX_MAKE_OPT := $(CROSS_ENV_PROGS)
SYSLINUX_INSTALL_OPT := install INSTALLROOT=$(SYSLINUX_PKGDIR)
diff --git a/rules/syslogng.in b/rules/syslogng.in
index e75444d65..0044905db 100644
--- a/rules/syslogng.in
+++ b/rules/syslogng.in
@@ -13,20 +13,12 @@ menuconfig SYSLOGNG
select LIBC_RT
select LIBNET if SYSLOGNG_SPOOF_SOURCE
select LIBPCRE
- select TCPWRAPPER if SYSLOGNG_TCP_WRAPPER
select SYSTEMD if SYSLOGNG_SYSTEMD
help
The next generation syslog daemon.
if SYSLOGNG
-config SYSLOGNG_TCP_WRAPPER
- bool
- depends on STAGING
- prompt "tcpwrapper support"
- help
- Support /etc/hosts.deny and /etc/hosts.allow.
-
config SYSLOGNG_SPOOF_SOURCE
bool
prompt "spoof_source feature"
diff --git a/rules/syslogng.make b/rules/syslogng.make
index feaa7bee1..0786b68f7 100644
--- a/rules/syslogng.make
+++ b/rules/syslogng.make
@@ -30,17 +30,21 @@ SYSLOGNG_LICENSE := GPL-2.0-or-later AND LGPL-2.1-only
# Prepare
# ----------------------------------------------------------------------------
-SYSLOGNG_ENV = \
+SYSLOGNG_CONF_ENV := \
$(CROSS_ENV) \
ac_cv_lib_nsl_gethostbyname=no \
+ am_cv_python_version=$(PYTHON3_MAJORMINOR) \
ac_cv_path_PYTHON=$(CROSS_PYTHON3)
#
# autoconf
#
-SYSLOGNG_AUTOCONF = \
+SYSLOGNG_CONF_TOOL := autoconf
+SYSLOGNG_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--localstatedir=/var/run \
+ --with-module-dir=/usr/lib/syslog-ng \
+ --with-module-path=/usr/lib/syslog-ng \
--enable-forced-server-mode \
--disable-debug \
--enable-force-gnu99 \
@@ -51,7 +55,7 @@ SYSLOGNG_AUTOCONF = \
--enable-dynamic-linking \
--disable-mixed-linking \
$(GLOBAL_IPV6_OPTION) \
- --$(call ptx/endis, PTXCONF_SYSLOGNG_TCP_WRAPPER)-tcp-wrapper \
+ --disable-tcp-wrapper \
--$(call ptx/endis, PTXCONF_SYSLOGNG_SPOOF_SOURCE)-spoof-source \
--disable-sun-streams \
--disable-openbsd-system-source \
@@ -70,7 +74,7 @@ SYSLOGNG_AUTOCONF = \
--$(call ptx/endis, PTXCONF_SYSLOGNG_SYSTEMD)-systemd \
--disable-geoip2 \
--disable-riemann \
- --with-python=$(PYTHON3_MAJORMINOR) \
+ --with-python=auto \
--$(call ptx/endis, PTXCONF_SYSLOGNG_PYTHON_DESTINATION)-python \
--disable-kafka \
--disable-manpages \
diff --git a/rules/sysstat.make b/rules/sysstat.make
index 1ef28a1f7..3f3310aba 100644
--- a/rules/sysstat.make
+++ b/rules/sysstat.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_SYSSTAT) += sysstat
#
# Paths and names
#
-SYSSTAT_VERSION := 12.0.4
-SYSSTAT_MD5 := 237ae1ba7a2073628b2cd7444ae3aed8
+SYSSTAT_VERSION := 12.7.4
+SYSSTAT_MD5 := db7efd76e0d0b2bf120ba7b92594eddd
SYSSTAT := sysstat-$(SYSSTAT_VERSION)
-SYSSTAT_SUFFIX := tar.xz
-SYSSTAT_URL := http://pagesperso-orange.fr/sebastien.godard/$(SYSSTAT).$(SYSSTAT_SUFFIX)
+SYSSTAT_SUFFIX := tar.gz
+SYSSTAT_URL := https://github.com/sysstat/sysstat/archive/refs/tags/v$(SYSSTAT_VERSION).$(SYSSTAT_SUFFIX)
SYSSTAT_SOURCE := $(SRCDIR)/$(SYSSTAT).$(SYSSTAT_SUFFIX)
SYSSTAT_DIR := $(BUILDDIR)/$(SYSSTAT)
SYSSTAT_LICENSE := GPL-2.0-or-later
diff --git a/rules/systemd-hwdb.make b/rules/systemd-hwdb.make
index 81d49ea02..ba1c52a6e 100644
--- a/rules/systemd-hwdb.make
+++ b/rules/systemd-hwdb.make
@@ -22,14 +22,14 @@ SYSTEMD_HWDB_LICENSE := ignore
$(STATEDIR)/systemd-hwdb.install:
@$(call targetinfo)
@$(call world/execute, SYSTEMD_HWDB, \
- install -vd -m 755 $(SYSTEMD_HWDB_PKGDIR)/usr/lib/udev)
+ install -vd -m 755 $(SYSTEMD_HWDB_PKGDIR)/usr/lib/udev/hwdb.d)
@$(call execute, SYSTEMD_HWDB, \
- ln -s $(SYSROOT)/usr/lib/udev/hwdb.d $(SYSTEMD_HWDB_PKGDIR)/usr/lib/udev/)
+ cp $(SYSROOT)/usr/lib/udev/hwdb.d/* $(SYSTEMD_HWDB_PKGDIR)/usr/lib/udev/hwdb.d/)
@$(call execute, SYSTEMD_HWDB, \
- $(PTXDIST_SYSROOT_HOST)/bin/systemd-hwdb update --usr --root $(SYSTEMD_HWDB_PKGDIR))
-# # remove the link again, it conficts with the directory in sysroot
+ $(PTXDIST_SYSROOT_HOST)/usr/bin/systemd-hwdb update --usr --root $(SYSTEMD_HWDB_PKGDIR))
+# # remove the files again, they are already in sysroot
@$(call execute, SYSTEMD_HWDB, \
- rm $(SYSTEMD_HWDB_PKGDIR)/usr/lib/udev/hwdb.d)
+ rm -r $(SYSTEMD_HWDB_PKGDIR)/usr/lib/udev/hwdb.d)
@$(call touch)
# ----------------------------------------------------------------------------
diff --git a/rules/systemd.in b/rules/systemd.in
index 854c344d5..1e42bd86c 100644
--- a/rules/systemd.in
+++ b/rules/systemd.in
@@ -1,12 +1,21 @@
## SECTION=shell_and_console
-menuconfig SYSTEMD
+menuconfig SYSTEMD_HELPER
+ tristate
+ prompt "systemd "
+
+if SYSTEMD_HELPER
+
+config SYSTEMD
tristate
depends on INITMETHOD_SYSTEMD
+ default SYSTEMD_HELPER
select HOST_SYSTEM_PYTHON3
+ select HOST_SYSTEM_PYTHON3_JINJA2
select HOST_MESON
select HOST_GPERF
select ROOTFS_RUN
+ select LIBC_CRYPT
select LIBC_PTHREAD
select LIBC_RT
select LIBC_DL if SYSTEMD_NETWORK
@@ -15,24 +24,26 @@ menuconfig SYSTEMD
select LIBCAP
select LIBKMOD
select LIBKMOD_TOOLS
- select UTIL_LINUX_NG
- select UTIL_LINUX_NG_LIBMOUNT
+ select UTIL_LINUX
+ select UTIL_LINUX_LIBMOUNT
+ select UTIL_LINUX_LIBFDISK if SYSTEMD_REPART
select MACHINE_ID if RUNTIME
select XZ if SYSTEMD_XZ
select LZ4 if SYSTEMD_LZ4
select ZSTD if SYSTEMD_ZSTD
+ select PCRE2 if SYSTEMD_PCRE2
select LIBMICROHTTPD if SYSTEMD_MICROHTTPD
select LIBSECCOMP if SYSTEMD_SECCOMP
select IPTABLES if SYSTEMD_IPMASQUERADE
select LIBELF if SYSTEMD_COREDUMP
select LIBELF_LIBDW if SYSTEMD_COREDUMP
+ select OPENSSL if SYSTEMD_OPENSSL
# for udev:
select ROOTFS_DEV
select LIBBLKID
select ROOTFS_VAR_LIB if RUNTIME
select ROOTFS_VAR_CACHE if RUNTIME
select ROOTFS_VAR_SPOOL if RUNTIME
- prompt "systemd "
help
systemd is a system and session manager for Linux, compatible with SysV
and LSB init scripts. systemd provides aggressive parallelization
@@ -48,19 +59,21 @@ menuconfig SYSTEMD
Note: on a read-only root filesystem this package still requires a
writable '/var/lib' and '/var/cache' for its run-time information.
-if SYSTEMD
-
comment "D-Bus is needed for the enabled features"
depends on SYSTEMD_DBUS && !DBUS
config SYSTEMD_DBUS
bool
+config SYSTEMD_DBUS_SERVICES
+ bool
+
config SYSTEMD_MICROHTTPD
bool
config SYSTEMD_LOCALES
bool
+ select SYSTEMD_DBUS_SERVICES
default LOCALES
config SYSTEMD_VCONSOLE
@@ -77,9 +90,19 @@ config SYSTEMD_DISABLE_RANDOM_SEED
the random seed is not possible.
Warning: enabling this option may be insecure.
+config SYSTEMD_HOSTNAMED
+ bool
+ default y
+ select SYSTEMD_DBUS_SERVICES
+ prompt "hostname daemon"
+ help
+ A tiny daemon that can be used to control the hostname and related
+ machine meta data from user programs.
+
config SYSTEMD_LOGIND
bool
select SYSTEMD_DBUS
+ select SYSTEMD_DBUS_SERVICES
prompt "login daemon"
config SYSTEMD_UNITS_USER
@@ -89,8 +112,15 @@ config SYSTEMD_UNITS_USER
config SYSTEMD_NETWORK
bool
+ select SYSTEMD_DBUS_SERVICES
prompt "network configuration with systemd"
+config SYSTEMD_OPENSSL
+ bool
+ prompt "openssl support"
+ help
+ OpenSSL is needed for DNSSEC support in systemd-resolved
+
config SYSTEMD_IPMASQUERADE
bool
depends on SYSTEMD_NETWORK
@@ -102,10 +132,22 @@ config SYSTEMD_TIMEDATE
bool
default y
select SYSTEMD_DBUS
+ select SYSTEMD_DBUS_SERVICES
prompt "date/time handling"
help
NTP client for time synchronization and local timezone handling.
+config SYSTEMD_TIMEDATE_VOLATILE
+ bool
+ prompt "volatile systemd-timesyncd"
+ help
+ If this option is enabled then ptxdist assumes that
+ /var/lib/systemd/timesync is not writeable at runtime and
+ systemd-timesyncd cannot save the synchronized time.
+ PTXdist will prevent systemd from trying to create this directory.
+ This helps with nfsroot where incorrect permissions of the directory
+ prevent systemd-timesyncd from starting.
+
config SYSTEMD_COREDUMP
bool
prompt "enable generating coredumps"
@@ -120,7 +162,34 @@ config SYSTEMD_SECCOMP
config SYSTEMD_POLKIT
bool
- default POLKIT
+ default POLKIT_POLKITD
+
+config SYSTEMD_QUOTACHECK
+ bool
+ default y
+ prompt "disk quota support"
+ help
+ File system quota checker logic
+
+config SYSTEMD_NSPAWN
+ bool
+ prompt "install systemd-nspawn"
+
+config SYSTEMD_REPART
+ bool
+ prompt "install systemd-repart"
+ help
+ systemd-repart repartitions the disk on system boot if configuration
+ files are present. You should install these files in a separate
+ PTXdist package, or call systemd-repart explicitly.
+
+config SYSTEMD_DEFAULT_NET_NAMING_SCHEME
+ string
+ prompt "default net.naming-scheme= value"
+ default "latest"
+ help
+ Preserve the naming scheme for network interfaces of the given
+ systemd version.
menu "journald "
@@ -136,6 +205,10 @@ config SYSTEMD_ZSTD
bool
prompt "ZSTD compressed journal support"
+config SYSTEMD_PCRE2
+ bool
+ prompt "regexp matching support using pcre2"
+
config SYSTEMD_JOURNAL_REMOTE
bool
select SYSTEMD_MICROHTTPD
@@ -151,17 +224,6 @@ menu "udev "
menu "install options "
-config SYSTEMD_UDEV_DRIVERS_RULES
- bool
- default y
- prompt "install udev driver rules"
- help
- This will install the generic udev drivers rules files from the udev package
- under '/usr/lib/udev/rules.d/',
- These rules are required to automatically load kernel modules on
- udev start.
- If unsure say Y.
-
config SYSTEMD_UDEV_HWDB
bool
select SYSTEMD_HWDB
diff --git a/rules/systemd.make b/rules/systemd.make
index 3a3621fe7..f0d4ba947 100644
--- a/rules/systemd.make
+++ b/rules/systemd.make
@@ -15,9 +15,9 @@ PACKAGES-$(PTXCONF_SYSTEMD) += systemd
#
# Paths and names
#
-SYSTEMD_VERSION := 248
+SYSTEMD_VERSION := 255.4
SYSTEMD_VERSION_MAJOR := $(firstword $(subst -, ,$(subst ., ,$(SYSTEMD_VERSION))))
-SYSTEMD_MD5 := 00131adf0e98c1fd8a7fde4eb47f10c8
+SYSTEMD_MD5 := fda0291dffa4a3255b99be184d13e710
SYSTEMD := systemd-$(SYSTEMD_VERSION)
SYSTEMD_SUFFIX := tar.gz
ifeq ($(SYSTEMD_VERSION),$(SYSTEMD_VERSION_MAJOR))
@@ -50,22 +50,26 @@ endif
SYSTEMD_CONF_TOOL := meson
SYSTEMD_CONF_OPT := \
$(CROSS_MESON_USR) \
- -Dacl=$(call ptx/truefalse,PTXCONF_SYSTEMD_UNITS_USER) \
+ -Dacl=$(call ptx/endis,PTXCONF_SYSTEMD_UNITS_USER)d \
-Dadm-group=true \
-Danalyze=true \
- -Dapparmor=false \
- -Daudit=false \
+ -Dapparmor=disabled \
+ -Daudit=disabled \
-Dbacklight=false \
-Dbinfmt=false \
- -Dblkid=true \
+ -Dblkid=enabled \
+ -Dbootloader=disabled \
+ -Dbpf-framework=disabled \
-Dbump-proc-sys-fs-file-max=true \
-Dbump-proc-sys-fs-nr-open=true \
- -Dbzip2=false \
+ -Dbzip2=disabled \
-Dcertificate-root=/etc/ssl \
+ -Dclock-valid-range-usec-max=$(call ptx/ifdef, PTXDIST_Y2038,946728000000000,473364000000000) \
-Dcompat-mutable-uid-boundaries=false \
-Dcoredump=$(call ptx/truefalse,PTXCONF_SYSTEMD_COREDUMP) \
-Dcreate-log-dirs=false \
- -Ddbus=false \
+ -Dcryptolib=auto \
+ -Ddbus=disabled \
-Ddbuspolicydir=/usr/share/dbus-1/system.d \
-Ddbussessionservicedir=/usr/share/dbus-1/services \
-Ddbussystemservicedir=/usr/share/dbus-1/system-services \
@@ -76,59 +80,64 @@ SYSTEMD_CONF_OPT := \
-Ddefault-llmnr=yes \
-Ddefault-locale=C \
-Ddefault-mdns=yes \
- -Ddefault-net-naming-scheme=latest \
+ -Ddefault-net-naming-scheme=$(call remove_quotes,$(PTXCONF_SYSTEMD_DEFAULT_NET_NAMING_SCHEME)) \
+ -Ddefault-network=false \
-Ddev-kvm-mode=0660 \
-Ddns-over-tls=false \
-Ddns-servers= \
-Defi=false \
- -Delfutils=$(call ptx/truefalse,PTXCONF_SYSTEMD_COREDUMP) \
+ -Delfutils=$(call ptx/endis,PTXCONF_SYSTEMD_COREDUMP)d \
-Denvironment-d=false \
-Dfallback-hostname=$(call ptx/ifdef,PTXCONF_ROOTFS_ETC_HOSTNAME,$(PTXCONF_ROOTFS_ETC_HOSTNAME),ptxdist) \
- -Dfdisk=false \
+ -Dfdisk=$(call ptx/endis,PTXCONF_SYSTEMD_REPART)d \
-Dfexecve=false \
-Dfirstboot=false \
-Dfuzz-tests=false \
- -Dgcrypt=false \
- -Dglib=false \
- -Dgnutls=false \
+ -Dgcrypt=disabled \
+ -Dglib=disabled \
+ -Dgnutls=disabled \
-Dgroup-render-mode=0666 \
-Dgshadow=false \
-Dhibernate=false \
- -Dhomed=false \
- -Dhostnamed=true \
- -Dhtml=false \
+ -Dhomed=disabled \
+ -Dhostnamed=$(call ptx/truefalse,PTXCONF_SYSTEMD_HOSTNAMED) \
+ -Dhtml=disabled \
-Dhwdb=$(call ptx/truefalse,PTXCONF_SYSTEMD_UDEV_HWDB) \
-Didn=false \
-Dima=false \
- -Dimportd=false \
+ -Dimportd=disabled \
-Dinitrd=false \
-Dinstall-sysconfdir=true \
-Dinstall-tests=false \
-Dkernel-install=false \
-Dkexec-path=/usr/sbin/kexec \
- -Dkmod=true \
+ -Dkmod=enabled \
-Dkmod-path=/usr/bin/kmod \
-Dldconfig=false \
- -Dlibcryptsetup=false \
- -Dlibcurl=false \
- -Dlibfido2=false \
- -Dlibidn=false \
- -Dlibidn2=false \
- -Dlibiptc=$(call ptx/truefalse,PTXCONF_SYSTEMD_IPMASQUERADE) \
+ -Dlibcryptsetup=disabled \
+ -Dlibcurl=disabled \
+ -Dlibfido2=disabled \
+ -Dlibidn=disabled \
+ -Dlibidn2=disabled \
+ -Dlibiptc=$(call ptx/endis,PTXCONF_SYSTEMD_IPMASQUERADE)d \
+ -Dlink-boot-shared=true \
+ -Dlink-journalctl-shared=true \
-Dlink-networkd-shared=true \
+ -Dlink-portabled-shared=true \
-Dlink-systemctl-shared=true \
-Dlink-timesyncd-shared=true \
-Dlink-udev-shared=true \
-Dllvm-fuzz=false \
-Dloadkeys-path=/usr/bin/loadkeys \
-Dlocaled=$(call ptx/truefalse,PTXCONF_SYSTEMD_LOCALES) \
+ -Dlog-message-verification=disabled \
-Dlog-trace=false \
-Dlogind=$(call ptx/truefalse,PTXCONF_SYSTEMD_LOGIND) \
- -Dlz4=$(call ptx/truefalse,PTXCONF_SYSTEMD_LZ4) \
- -Dmachined=false \
- -Dman=false \
+ -Dlz4=$(call ptx/endis,PTXCONF_SYSTEMD_LZ4)d \
+ -Dmachined=$(call ptx/truefalse,PTXCONF_SYSTEMD_NSPAWN) \
+ -Dman=disabled \
-Dmemory-accounting-default=true \
- -Dmicrohttpd=$(call ptx/truefalse,PTXCONF_SYSTEMD_MICROHTTPD) \
+ -Dmicrohttpd=$(call ptx/endis,PTXCONF_SYSTEMD_MICROHTTPD)d \
-Dmode=release \
-Dmount-path=/usr/bin/mount \
-Dnetworkd=$(call ptx/truefalse,PTXCONF_SYSTEMD_NETWORK) \
@@ -136,42 +145,44 @@ SYSTEMD_CONF_OPT := \
-Dnobody-user=nobody \
-Dnscd=false \
-Dnss-myhostname=true \
- -Dnss-mymachines=false \
- -Dnss-resolve=$(call ptx/truefalse,PTXCONF_SYSTEMD_NETWORK) \
+ -Dnss-mymachines=$(call ptx/endis,PTXCONF_SYSTEMD_NSPAWN)d \
+ -Dnss-resolve=$(call ptx/endis,PTXCONF_SYSTEMD_NETWORK)d \
-Dnss-systemd=true \
-Dntp-servers= \
-Dok-color=green \
-Doomd=false \
- -Dopenssl=false \
+ -Dopenssl=$(call ptx/endis,PTXCONF_SYSTEMD_OPENSSL)d \
-Doss-fuzz=false \
- -Dp11kit=false \
- -Dpam=false \
- -Dpcre2=false \
- -Dpolkit=$(call ptx/truefalse,PTXCONF_SYSTEMD_POLKIT) \
+ -Dp11kit=disabled \
+ -Dpam=disabled \
+ -Dpasswdqc=disabled \
+ -Dpcre2=$(call ptx/endis,PTXCONF_SYSTEMD_PCRE2)d \
+ -Dpolkit=$(call ptx/endis,PTXCONF_SYSTEMD_POLKIT)d \
-Dportabled=false \
-Dpstore=false \
- -Dpwquality=false \
- -Dqrencode=false \
- -Dquotacheck=true \
+ -Dpwquality=disabled \
+ -Dqrencode=disabled \
+ -Dquotacheck=$(call ptx/truefalse,PTXCONF_SYSTEMD_QUOTACHECK) \
-Dquotacheck-path=/usr/sbin/quotacheck \
-Dquotaon-path=/usr/sbin/quotaon \
-Drandomseed=$(call ptx/falsetrue,PTXCONF_SYSTEMD_DISABLE_RANDOM_SEED) \
-Dremote=$(call ptx/ifdef,PTXCONF_SYSTEMD_JOURNAL_REMOTE,auto,false) \
- -Drepart=false \
+ -Drepart=$(call ptx/endis,PTXCONF_SYSTEMD_REPART)d \
-Dresolve=$(call ptx/truefalse,PTXCONF_SYSTEMD_NETWORK) \
-Drfkill=false \
- -Dseccomp=$(call ptx/truefalse,PTXCONF_SYSTEMD_SECCOMP) \
- -Dselinux=$(call ptx/truefalse,PTXCONF_GLOBAL_SELINUX) \
+ -Dseccomp=$(call ptx/endis,PTXCONF_SYSTEMD_SECCOMP)d \
+ -Dselinux=$(call ptx/endis,PTXCONF_GLOBAL_SELINUX)d \
-Dservice-watchdog=3min \
-Dsetfont-path=/usr/bin/setfont \
+ -Dshared-lib-tag=$(SYSTEMD_VERSION_MAJOR) \
-Dslow-tests=false \
-Dsmack=false \
-Dsplit-bin=true \
- -Dsplit-usr=false \
-Dstandalone-binaries=false \
-Dstatic-libsystemd=false \
-Dstatic-libudev=false \
-Dstatus-unit-format-default=name \
+ -Dstoragetm=false \
-Dsulogin-path=/sbin/sulogin \
-Dsupport-url=https://www.ptxdist.org/ \
-Dsysext=false \
@@ -189,21 +200,25 @@ SYSTEMD_CONF_OPT := \
-Dtimesyncd=$(call ptx/truefalse,PTXCONF_SYSTEMD_TIMEDATE) \
-Dtmpfiles=true \
-Dtpm=false \
- -Dtpm2=false \
+ -Dtpm2=disabled \
+ -Dtranslations=false \
-Dtty-gid=112 \
+ -Dukify=disabled \
-Dumount-path=/usr/bin/umount \
+ -Durlify=false \
-Duserdb=false \
-Dusers-gid=-1 \
-Dutmp=false \
- -Dvalgrind=false \
-Dvconsole=$(call ptx/truefalse,PTXCONF_SYSTEMD_VCONSOLE) \
+ -Dvmspawn=$(call ptx/endis,PTXCONF_SYSTEMD_NSPAWN)d \
-Dversion-tag=$(SYSTEMD_VERSION) \
-Dwheel-group=false \
-Dxdg-autostart=false \
- -Dxkbcommon=false \
- -Dxz=$(call ptx/truefalse,PTXCONF_SYSTEMD_XZ) \
- -Dzlib=false \
- -Dzstd=$(call ptx/truefalse,PTXCONF_SYSTEMD_ZSTD)
+ -Dxenctrl=disabled \
+ -Dxkbcommon=disabled \
+ -Dxz=$(call ptx/endis,PTXCONF_SYSTEMD_XZ)d \
+ -Dzlib=disabled \
+ -Dzstd=$(call ptx/endis,PTXCONF_SYSTEMD_ZSTD)d
# FIXME kernel from systemd README:
# - devtmpfs, cgroups are mandatory.
@@ -243,21 +258,22 @@ endif
SYSTEMD_HELPER := \
systemd \
- systemd-ac-power \
systemd-cgroups-agent \
$(call ptx/ifdef, PTXCONF_SYSTEMD_COREDUMP,systemd-coredump) \
+ systemd-executor \
systemd-fsck \
systemd-growfs \
- systemd-hostnamed \
+ $(call ptx/ifdef, PTXCONF_SYSTEMD_HOSTNAMED,systemd-hostnamed) \
systemd-journald \
$(call ptx/ifdef, PTXCONF_SYSTEMD_JOURNAL_REMOTE,systemd-journal-remote) \
$(call ptx/ifdef, PTXCONF_SYSTEMD_LOCALES,systemd-localed) \
$(call ptx/ifdef, PTXCONF_SYSTEMD_LOGIND,systemd-logind) \
+ $(call ptx/ifdef, PTXCONF_SYSTEMD_NSPAWN,systemd-machined) \
systemd-makefs \
systemd-modules-load \
$(call ptx/ifdef, PTXCONF_SYSTEMD_NETWORK,systemd-networkd) \
$(call ptx/ifdef, PTXCONF_SYSTEMD_NETWORK,systemd-networkd-wait-online) \
- systemd-quotacheck \
+ $(call ptx/ifdef, PTXCONF_SYSTEMD_QUOTACHECK,systemd-quotacheck) \
$(call ptx/ifdef, PTXCONF_SYSTEMD_DISABLE_RANDOM_SEED,,systemd-random-seed) \
systemd-remount-fs \
systemd-reply-password \
@@ -270,7 +286,6 @@ SYSTEMD_HELPER := \
$(call ptx/ifdef, PTXCONF_SYSTEMD_TIMEDATE,systemd-time-wait-sync) \
$(call ptx/ifdef, PTXCONF_SYSTEMD_TIMEDATE,systemd-timedated) \
$(call ptx/ifdef, PTXCONF_SYSTEMD_TIMEDATE,systemd-timesyncd) \
- systemd-udevd \
systemd-update-done \
$(call ptx/ifdef, PTXCONF_SYSTEMD_UNITS_USER,systemd-user-runtime-dir) \
$(call ptx/ifdef, PTXCONF_SYSTEMD_VCONSOLE,systemd-vconsole-setup)
@@ -289,6 +304,7 @@ SYSTEMD_UDEV_RULES-y := \
50-udev-default.rules \
60-persistent-alsa.rules \
60-persistent-input.rules \
+ 60-persistent-storage-mtd.rules \
60-persistent-storage-tape.rules \
60-persistent-storage.rules \
60-block.rules \
@@ -298,6 +314,7 @@ SYSTEMD_UDEV_RULES-y := \
64-btrfs.rules \
75-net-description.rules \
78-sound-card.rules \
+ 80-drivers.rules \
80-net-setup-link.rules \
99-systemd.rules
@@ -322,7 +339,6 @@ SYSTEMD_UDEV_RULES-$(PTXCONF_SYSTEMD_UDEV_PERSISTENT_FIDO) += 60-fido-id.rules
SYSTEMD_UDEV_RULES-$(PTXCONF_SYSTEMD_UDEV_PERSISTENT_V4L) += 60-persistent-v4l.rules
SYSTEMD_UDEV_RULES-$(PTXCONF_ARCH_X86) += 70-memory.rules
SYSTEMD_UDEV_RULES-$(PTXCONF_SYSTEMD_UDEV_MTD_PROBE) += 75-probe_mtd.rules
-SYSTEMD_UDEV_RULES-$(PTXCONF_SYSTEMD_UDEV_DRIVERS_RULES) += 80-drivers.rules
$(STATEDIR)/systemd.targetinstall:
@$(call targetinfo)
@@ -334,6 +350,7 @@ $(STATEDIR)/systemd.targetinstall:
@$(call install_fixup, systemd,DESCRIPTION,missing)
@$(call install_lib, systemd, 0, 0, 0644, libsystemd)
+ @$(call install_lib, systemd, 0, 0, 0644, systemd/libsystemd-core-$(SYSTEMD_VERSION_MAJOR))
@$(call install_lib, systemd, 0, 0, 0644, systemd/libsystemd-shared-$(SYSTEMD_VERSION_MAJOR))
@$(call install_lib, systemd, 0, 0, 0644, libnss_myhostname)
@@ -347,7 +364,11 @@ $(STATEDIR)/systemd.targetinstall:
@$(call install_copy, systemd, 0, 0, 0755, -, /usr/bin/systemd-notify)
@$(call install_copy, systemd, 0, 0, 0755, -, /usr/bin/systemd-tmpfiles)
@$(call install_copy, systemd, 0, 0, 0755, -, /usr/bin/busctl)
+ @$(call install_copy, systemd, 0, 0, 0755, -, /usr/bin/varlinkctl)
+ifdef PTXCONF_SYSTEMD_HOSTNAMED
@$(call install_copy, systemd, 0, 0, 0755, -, /usr/bin/hostnamectl)
+endif
+ @$(call install_copy, systemd, 0, 0, 0755, -, /usr/bin/systemd-ac-power)
@$(call install_copy, systemd, 0, 0, 0755, -, /usr/bin/systemd-analyze)
@$(call install_copy, systemd, 0, 0, 0755, -, /usr/bin/systemd-cat)
@$(call install_copy, systemd, 0, 0, 0755, -, /usr/bin/systemd-cgls)
@@ -361,10 +382,21 @@ $(STATEDIR)/systemd.targetinstall:
@$(call install_copy, systemd, 0, 0, 0755, -, /usr/bin/systemd-stdio-bridge)
@$(call install_link, systemd, systemd-mount, /usr/bin/systemd-umount)
+ifdef PTXCONF_SYSTEMD_NSPAWN
+ @$(call install_lib, systemd, 0, 0, 0644, libnss_mymachines)
+ @$(call install_copy, systemd, 0, 0, 0755, -, /usr/bin/machinectl)
+ @$(call install_copy, systemd, 0, 0, 0755, -, /usr/bin/systemd-nspawn)
+ @$(call install_copy, systemd, 0, 0, 0755, -, /usr/bin/systemd-vmspawn)
+endif
+
+ifdef PTXCONF_SYSTEMD_REPART
+ @$(call install_copy, systemd, 0, 0, 0755, -, /usr/bin/systemd-repart)
+endif
+
@$(call install_tree, systemd, 0, 0, -, /usr/lib/systemd/system-generators/)
@$(foreach helper, $(SYSTEMD_HELPER), \
$(call install_copy, systemd, 0, 0, 0755, -, \
- /usr/lib/systemd/$(helper));)
+ /usr/lib/systemd/$(helper))$(ptx/nl))
# # configuration
@$(call install_alternative, systemd, 0, 0, 0644, \
@@ -377,9 +409,11 @@ $(STATEDIR)/systemd.targetinstall:
@$(call install_tree, systemd, 0, 0, -, /usr/lib/tmpfiles.d/)
@$(call install_copy, systemd, 0, 0, 0644, -, /usr/lib/sysctl.d/50-default.conf)
+ifdef PTXCONF_SYSTEMD_DBUS_SERVICES
@$(call install_copy, systemd, 0, 0, 0644, -, \
/usr/share/dbus-1/services/org.freedesktop.systemd1.service)
@$(call install_tree, systemd, 0, 0, -, /usr/share/dbus-1/system-services/)
+endif
# # systemd expects this directory to exist.
@$(call install_copy, systemd, 0, 0, 0755, /var/lib/systemd)
@@ -436,7 +470,8 @@ endif
ifdef PTXCONF_SYSTEMD_NETWORK
@$(call install_copy, systemd, 0, 0, 0755, -, /usr/bin/networkctl)
@$(call install_copy, systemd, 0, 0, 0755, -, /usr/bin/resolvectl)
- @$(call install_copy, systemd, 0, 0, 0755, -, /usr/bin/systemd-resolve)
+ @$(call install_link, systemd, resolvectl, /usr/bin/systemd-resolve)
+ @$(call install_link, systemd, ../bin/resolvectl, /usr/sbin/resolvconf)
@$(call install_copy, systemd, 0, 0, 0755, -, /usr/lib/systemd/systemd-network-generator)
@$(call install_lib, systemd, 0, 0, 0644, libnss_resolve)
@$(call install_copy, systemd, 0, 0, 0644, -, /usr/lib/systemd/resolv.conf)
@@ -459,15 +494,20 @@ else
endif
ifdef PTXCONF_SYSTEMD_POLKIT
- @$(call install_alternative_tree, systemd, 0, 0, /usr/share/polkit-1)
+ @$(call install_tree, systemd, 0, 0, -, /usr/share/polkit-1)
endif
ifdef PTXCONF_SYSTEMD_TIMEDATE
@$(call install_copy, systemd, 0, 0, 0755, -, /usr/bin/timedatectl)
@$(call install_alternative, systemd, 0, 0, 0644, \
/etc/systemd/timesyncd.conf)
+ifdef PTXCONF_SYSTEMD_TIMEDATE_VOLATILE
+ @$(call install_alternative, systemd, 0, 0, 0644, \
+ /usr/lib/systemd/system/systemd-timesyncd.service.d/volatile.conf)
+else
@$(call install_copy, systemd, systemd-timesync, nogroup, 0755, \
/var/lib/systemd/timesync)
+endif
@$(call install_link, systemd, ../systemd-timesyncd.service, \
/usr/lib/systemd/system/sysinit.target.wants/systemd-timesyncd.service)
@$(call install_alternative, systemd, 0, 0, 0664, \
@@ -482,15 +522,17 @@ endif
# # udev
@$(call install_copy, systemd, 0, 0, 0755, -, /usr/bin/udevadm)
+ @$(call install_link, systemd, ../../bin/udevadm, \
+ /usr/lib/systemd/systemd-udevd)
@$(call install_lib, systemd, 0, 0, 0644, libudev)
@$(foreach helper, $(SYSTEMD_UDEV_HELPER-y), \
$(call install_copy, systemd, 0, 0, 0755, -, \
- /usr/lib/udev/$(helper));)
+ /usr/lib/udev/$(helper))$(ptx/nl))
@$(foreach rule, $(SYSTEMD_UDEV_RULES-y), \
$(call install_copy, systemd, 0, 0, 0644, -, \
- /usr/lib/udev/rules.d/$(rule));)
+ /usr/lib/udev/rules.d/$(rule))$(ptx/nl))
ifdef PTXCONF_SYSTEMD_UDEV_CUST_RULES
@$(call install_alternative_tree, systemd, 0, 0, /usr/lib/udev/rules.d)
diff --git a/rules/talloc.in b/rules/talloc.in
index 9a91e7458..7844ec3cc 100644
--- a/rules/talloc.in
+++ b/rules/talloc.in
@@ -3,6 +3,7 @@
config TALLOC
tristate
prompt "talloc"
+ select LIBBSD
select HOST_SYSTEM_PYTHON3
help
hierarchical pool based memory allocator
diff --git a/rules/talloc.make b/rules/talloc.make
index 37b7da2d6..959becac6 100644
--- a/rules/talloc.make
+++ b/rules/talloc.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_TALLOC) += talloc
#
# Paths and names
#
-TALLOC_VERSION := 2.3.2
-TALLOC_MD5 := 3376a86bdf9dd4abc6b8d8d645390902
+TALLOC_VERSION := 2.3.4
+TALLOC_MD5 := ffdaf52a6572307cc3b6487b9e99cd61
TALLOC := talloc-$(TALLOC_VERSION)
TALLOC_SUFFIX := tar.gz
TALLOC_URL := https://www.samba.org/ftp/talloc/$(TALLOC).$(TALLOC_SUFFIX)
@@ -23,14 +23,14 @@ TALLOC_SOURCE := $(SRCDIR)/$(TALLOC).$(TALLOC_SUFFIX)
TALLOC_DIR := $(BUILDDIR)/$(TALLOC)
TALLOC_LICENSE := GPL-3.0-or-later AND LGPL-3.0-or-later
# cross-compile runtime checks. Initial file generated with
-# --cross-execute=$(PTXDIST_SYSROOT_CROSS)/bin/qemu-cross
+# --cross-execute=$(PTXDIST_SYSROOT_CROSS)/usr/bin/qemu-cross
TALLOC_CONFIG = $(call ptx/get-alternative, config/talloc, cross-answers)
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-TALLOC_CONF_TOOL := NO
+TALLOC_CONF_TOOL := autoconf
TALLOC_CONF_OPT := \
--without-gettext \
--disable-python \
@@ -59,7 +59,7 @@ $(STATEDIR)/talloc.prepare:
UNAME_V=$(if $(KERNEL_HEADER_VERSION),$(KERNEL_HEADER_VERSION),$(KERNEL_VERSION)) \
HAS_64BIT=$(call ptx/ifdef,PTXCONF_ARCH_LP64,OK,NO) \
ptxd_replace_magic $(TALLOC_CONFIG) > $(TALLOC_DIR)/cross-answers
- @$(call world/execute, TALLOC, $(SYSTEMPYTHON3) ./buildtools/bin/waf configure $(TALLOC_CONF_OPT))
+ @$(call world/prepare, TALLOC)
@$(call touch)
# ----------------------------------------------------------------------------
diff --git a/rules/tar.make b/rules/tar.make
index 12d8dd5ea..50d4f84fc 100644
--- a/rules/tar.make
+++ b/rules/tar.make
@@ -14,14 +14,15 @@ PACKAGES-$(PTXCONF_TAR) += tar
#
# Paths and names
#
-TAR_VERSION := 1.30
-TAR_MD5 := 2d01c6cd1387be98f57a0ec4e6e35826
+TAR_VERSION := 1.35
+TAR_MD5 := a2d8042658cfd8ea939e6d911eaf4152
TAR := tar-$(TAR_VERSION)
TAR_SUFFIX := tar.xz
TAR_URL := $(call ptx/mirror, GNU, tar/$(TAR).$(TAR_SUFFIX))
TAR_SOURCE := $(SRCDIR)/$(TAR).$(TAR_SUFFIX)
TAR_DIR := $(BUILDDIR)/$(TAR)
TAR_LICENSE := GPL-3.0-or-later
+TAR_LICENSE_FILES := file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464
# ----------------------------------------------------------------------------
# Prepare
@@ -35,12 +36,17 @@ TAR_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
$(GLOBAL_LARGE_FILE_OPTION) \
--disable-acl \
+ --disable-gcc-warnings \
--disable-rpath \
--disable-nls \
--disable-backup-scripts \
+ --$(call ptx/endis, PTXDIST_Y2038)-year2038 \
--with-posix-acls \
--with-included-regex \
--without-selinux \
+ --with-packager \
+ --with-packager-version \
+ --with-packager-bug-reports \
--with-xattrs
# ----------------------------------------------------------------------------
diff --git a/rules/tcpdump.in b/rules/tcpdump.in
index 74d607252..bc5ffdecc 100644
--- a/rules/tcpdump.in
+++ b/rules/tcpdump.in
@@ -6,35 +6,38 @@ menuconfig TCPDUMP
select LIBCAP_NG if TCPDUMP_ENABLE_LIBCAP_NG
select OPENSSL if TCPDUMP_ENABLE_CRYPTO
help
- Tcpdump prints out the headers of packets on a network interface
- that match the boolean expression. It can also be run with
+ Tcpdump prints out the headers of packets on a network interface
+ that match the boolean expression. It can also be run with
the -w flag, which causes it to save the packet data to a file
for later analysis, and/or with the -r flag, which causes it to
read from a saved packet file rather than to read packets from
- a network interface. In all cases, only packets that match
+ a network interface. In all cases, only packets that match
expression will be processed by tcpdump.
if TCPDUMP
config TCPDUMP_ENABLE_LIBCAP_NG
bool
- prompt "use libcap-ng as well"
+ prompt "enable libcap-ng support"
help
- Use libpcap and libcap-ng
+ Use libcap-ng (POSIX capabilities) in tcpdump.
+ It allows tcpdump to shift uid/gid and chroot to
+ operate in a non-privileged mode instead of using root.
config TCPDUMP_ENABLE_CRYPTO
bool
prompt "enable crypto support"
help
- Select this, if you don't need support for
- encryption (e.g. IPsec ESP packets)
+ Select this if you need support for decoding various
+ protocols in relation to encryption (f.ex. IPsec packets)
config TCPDUMP_SMB
bool
- prompt "enable possibly-buggy SMB printer"
+ prompt "enable SMB-printer decoding support"
default y
help
- Notes from configure, when this entry is checked:
- The SMB printer may have exploitable buffer overflows!!!
+ Select this if need support for decoding packets
+ in relation to SMB/CIFS (printers).
+ Still considered buggy.
endif
diff --git a/rules/tcpdump.make b/rules/tcpdump.make
index 7dce812d9..5792beac9 100644
--- a/rules/tcpdump.make
+++ b/rules/tcpdump.make
@@ -15,14 +15,16 @@ PACKAGES-$(PTXCONF_TCPDUMP) += tcpdump
#
# Paths and names
#
-TCPDUMP_VERSION := 4.9.2
-TCPDUMP_MD5 := 9bbc1ee33dab61302411b02dd0515576
+TCPDUMP_VERSION := 4.99.4
+TCPDUMP_MD5 := d90471c90f780901e591807927ef0f07
TCPDUMP := tcpdump-$(TCPDUMP_VERSION)
TCPDUMP_SUFFIX := tar.gz
-TCPDUMP_URL := http://www.tcpdump.org/release/$(TCPDUMP).$(TCPDUMP_SUFFIX)
+TCPDUMP_URL := https://www.tcpdump.org/release/$(TCPDUMP).$(TCPDUMP_SUFFIX)
TCPDUMP_SOURCE := $(SRCDIR)/$(TCPDUMP).$(TCPDUMP_SUFFIX)
TCPDUMP_DIR := $(BUILDDIR)/$(TCPDUMP)
-TCPDUMP_LICENSE := BSD-3-Clause
+TCPDUMP_LICENSE := BSD-3-Clause
+TCPDUMP_LICENSE_FILES := \
+ file://LICENSE;md5=5eb289217c160e2920d2e35bddc36453
# ----------------------------------------------------------------------------
# Prepare
@@ -44,7 +46,7 @@ TCPDUMP_CONF_OPT := \
--with-gcc \
--without-smi \
--without-sandbox-capsicum \
- --with-system-libpcap \
+ --disable-local-libpcap \
--$(call ptx/wwo,PTXCONF_TCPDUMP_ENABLE_CRYPTO)-crypto \
--$(call ptx/wwo,PTXCONF_TCPDUMP_ENABLE_LIBCAP_NG)-cap-ng
@@ -65,7 +67,7 @@ $(STATEDIR)/tcpdump.targetinstall:
@$(call install_fixup, tcpdump,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
@$(call install_fixup, tcpdump,DESCRIPTION,"TCP analyze tool")
- @$(call install_copy, tcpdump, 0, 0, 0755, -, /usr/sbin/tcpdump)
+ @$(call install_copy, tcpdump, 0, 0, 0755, -, /usr/bin/tcpdump)
@$(call install_finish, tcpdump)
diff --git a/rules/tcpwrapper.in b/rules/tcpwrapper.in
deleted file mode 100644
index d9578b6c6..000000000
--- a/rules/tcpwrapper.in
+++ /dev/null
@@ -1,41 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=networking
-
-menuconfig TCPWRAPPER
- tristate
- prompt "tcpwrapper "
- help
- With this package you can monitor and filter incoming requests for the
- SYSTAT, FINGER, FTP, TELNET, RLOGIN, RSH, EXEC, TFTP, TALK, and other
- network services.
-
- The package provides tiny daemon wrapper programs that can be installed
- without any changes to existing software or to existing configuration
- files. The wrappers report the name of the client host and of the
- requested service; the wrappers do not exchange information with the
- client or server applications, and impose no overhead on the actual
- conversation between the client and server applications.
-
- STAGING: remove in ptxdist-2021.05.0
- Obsolete and dead for a long time.
-
-if TCPWRAPPER
-
-config TCPWRAPPER_INSTALL_TCPD
- bool
- prompt "Install /usr/sbin/tcpd"
- help
- The tcpd program can be set up to monitor incoming requests for telnet,
- finger, ftp, exec, rsh, rlogin, tftp, talk, comsat and other services
- that have a one-to-one mapping onto executable files.
-
-config TCPWRAPPER_INSTALL_HOSTS_ACCESS_CONFIGS
- bool
- select TCPWRAPPER_INSTALL_TCPD
- prompt "Install /etc/hosts.{allow|deny}"
- help
- Install the hosts.allow and hosts.deny configs from either
- projectroot or from ptxdist/projectroot.
-
-endif
diff --git a/rules/tcpwrapper.make b/rules/tcpwrapper.make
deleted file mode 100644
index 4bcad6e2f..000000000
--- a/rules/tcpwrapper.make
+++ /dev/null
@@ -1,74 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2003 by Pengutronix e.K., Hildesheim, Germany
-# (C) 2010 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_TCPWRAPPER) += tcpwrapper
-
-#
-# Paths and names
-#
-TCPWRAPPER_VERSION := 7.6
-TCPWRAPPER_MD5 := e6fa25f71226d090f34de3f6b122fb5a
-TCPWRAPPER := tcp_wrappers_$(TCPWRAPPER_VERSION)
-TCPWRAPPER_URL := ftp://ftp.porcupine.org/pub/security/$(TCPWRAPPER).tar.gz
-TCPWRAPPER_SOURCE := $(SRCDIR)/$(TCPWRAPPER).tar.gz
-TCPWRAPPER_DIR := $(BUILDDIR)/$(TCPWRAPPER)
-# Regents of the University of California + Wietse Venema
-TCPWRAPPER_LICENSE := DISCLAIMER
-TCPWRAPPER_LICENSE_FILES := file://DISCLAIMER;md5=071bd69cb78b18888ea5e3da5c3127fa
-
-# ----------------------------------------------------------------------------
-# Compile
-# ----------------------------------------------------------------------------
-
-TCPWRAPPER_PATH := PATH=$(CROSS_PATH)
-TCPWRAPPER_MAKE_ENV := $(CROSS_ENV)
-TCPWRAPPER_MAKE_OPT := linux
-TCPWRAPPER_CFLAGS := -fPIC
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/tcpwrapper.install:
- @$(call targetinfo)
- install -d $(SYSROOT)/include
- install $(TCPWRAPPER_DIR)/tcpd.h $(SYSROOT)/include
- install -d $(SYSROOT)/lib
- install $(TCPWRAPPER_DIR)/libwrap.a $(SYSROOT)/lib
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/tcpwrapper.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, tcpwrapper)
- @$(call install_fixup, tcpwrapper,PRIORITY,optional)
- @$(call install_fixup, tcpwrapper,SECTION,base)
- @$(call install_fixup, tcpwrapper,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, tcpwrapper,DESCRIPTION,missing)
-
-ifdef PTXCONF_TCPWRAPPER_INSTALL_TCPD
- @$(call install_copy, tcpwrapper, 0, 0, 0755, $(TCPWRAPPER_DIR)/tcpd, /usr/sbin/tcpd)
-endif
-
-ifdef PTXCONF_TCPWRAPPER_INSTALL_HOSTS_ACCESS_CONFIGS
- @$(call install_alternative, tcpwrapper, 0, 0, 0644, /etc/hosts.allow)
- @$(call install_alternative, tcpwrapper, 0, 0, 0644, /etc/hosts.deny)
-endif
-
- @$(call install_finish, tcpwrapper)
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/templates/code-signing-provider/ptxdist-set-keys-hsm.sh b/rules/templates/code-signing-provider/ptxdist-set-keys-hsm.sh
index bcd531d69..b94eff049 100755
--- a/rules/templates/code-signing-provider/ptxdist-set-keys-hsm.sh
+++ b/rules/templates/code-signing-provider/ptxdist-set-keys-hsm.sh
@@ -18,7 +18,7 @@ set_rauc_keys() {
}
set_imx_habv4_keys() {
- local r
+ local r g
# HSM use case, assuming it contains only 1st CSF/IMG key
for i in 1 2 3 4; do
@@ -28,6 +28,10 @@ set_imx_habv4_keys() {
cs_append_ca_from_uri "${r}"
done
+ g="imx-habv4-srk"
+ cs_define_group "${g}"
+ cs_group_add_roles "${g}" "imx-habv4-srk1" "imx-habv4-srk2" "imx-habv4-srk3" "imx-habv4-srk4"
+
r="imx-habv4-csf1"
cs_define_role ${r}
cs_set_uri "${r}" "pkcs11:token=foo;object=csf1"
diff --git a/rules/templates/code-signing-provider/ptxdist-set-keys-softhsm.sh b/rules/templates/code-signing-provider/ptxdist-set-keys-softhsm.sh
index 0836d61d1..b3de3e325 100755
--- a/rules/templates/code-signing-provider/ptxdist-set-keys-softhsm.sh
+++ b/rules/templates/code-signing-provider/ptxdist-set-keys-softhsm.sh
@@ -48,6 +48,10 @@ import_imx_habv4_keys() {
cs_import_cert_from_der "${r}" "${crts}/IMG${i}_1_sha256_4096_65537_v3_usr_crt.der"
cs_import_key_from_pem "${r}" "${keys}/IMG${i}_1_sha256_4096_65537_v3_usr_key.pem"
done
+
+ g="imx-habv4-srk"
+ cs_define_group "${g}"
+ cs_group_add_roles "${g}" "imx-habv4-srk1" "imx-habv4-srk2" "imx-habv4-srk3" "imx-habv4-srk4"
}
diff --git a/rules/templates/kconfig/Kconfig b/rules/templates/kconfig/Kconfig
index 590252f31..3467f007a 100644
--- a/rules/templates/kconfig/Kconfig
+++ b/rules/templates/kconfig/Kconfig
@@ -27,7 +27,7 @@ source "config/Kconfig"
#
# "## SECTION=project_specific"
#
-# After that include this menu or menues with the following line:
+# After that include this menu or menus with the following line:
#
# source "generated/project_specific.in"
#
diff --git a/rules/templates/src-autoconf-lib/configure.ac b/rules/templates/src-autoconf-lib/configure.ac
index f062e6be5..b15a67945 100644
--- a/rules/templates/src-autoconf-lib/configure.ac
+++ b/rules/templates/src-autoconf-lib/configure.ac
@@ -65,11 +65,11 @@ LT_INIT
#
# Please note: 'configure' defaults the CFLAGS to "-O2 -g" if it detects a
-# GCC. If the user overwrites the CFLAGS externallly, there will be no default!
+# GCC. If the user overwrites the CFLAGS externally, there will be no default!
# Keep the user informed about this behaviour.
#
-# TODO Check here for mandadory external libraries
+# TODO Check here for mandatory external libraries
#
# Rule of thumb: when your library needs an external library, add it
# to the 'LIBS' variable. Do _not_ add it manually into the Makefile.am files.
@@ -96,7 +96,7 @@ LT_INIT
# the 'autoscan' tool to get an idea what is still missing in your 'configure.ac'
#
-# where to install pgk info files
+# where to install pkg info files
PKG_INSTALLDIR
PTX_COMMON_CHECKS
@@ -149,7 +149,7 @@ AC_SUBST(LIBS)
# add required lib information to the pkg-config file (on demand)
AC_SUBST(REQUIRES)
-# add lib information which may conflicts with this libarry
+# add lib information which may conflict with this library
AC_SUBST(CONFLICTS)
# add special compile flags on demand
diff --git a/rules/templates/src-autoconf-prog/configure.ac b/rules/templates/src-autoconf-prog/configure.ac
index 8dcb7cf57..7618103c5 100644
--- a/rules/templates/src-autoconf-prog/configure.ac
+++ b/rules/templates/src-autoconf-prog/configure.ac
@@ -43,11 +43,11 @@ AC_PROG_CC_C99
#
# Please note: 'configure' defaults the CFLAGS to "-O2 -g" if it detects a
-# GCC. If the user overwrites the CFLAGS externallly, there will be no default!
+# GCC. If the user overwrites the CFLAGS externally, there will be no default!
# Keep the user informed about this behaviour.
#
-# TODO Check here for mandadory external libraries
+# TODO Check here for mandatory external libraries
#
# Rule of thumb: when your library needs an external library, add it
# to the 'LIBS' variable. Do _not_ add it manually into the Makefile.am files.
@@ -124,7 +124,7 @@ AC_SUBST(LIBS)
# add required lib information to the pkg-config file (on demand)
AC_SUBST(REQUIRES)
-# add lib information which may conflicts with this libarry
+# add lib information which may conflict with this libarry
AC_SUBST(CONFLICTS)
# add special compile flags on demand
diff --git a/rules/templates/src-autoconf-proglib/configure.ac b/rules/templates/src-autoconf-proglib/configure.ac
index ad873c9ca..67738fad5 100644
--- a/rules/templates/src-autoconf-proglib/configure.ac
+++ b/rules/templates/src-autoconf-proglib/configure.ac
@@ -65,11 +65,11 @@ LT_INIT
#
# Please note: 'configure' defaults the CFLAGS to "-O2 -g" if it detects a
-# GCC. If the user overwrites the CFLAGS externallly, there will be no default!
+# GCC. If the user overwrites the CFLAGS externally, there will be no default!
# Keep the user informed about this behaviour.
#
-# TODO Check here for mandadory external libraries
+# TODO Check here for mandatory external libraries
#
# Rule of thumb: when your library needs an external library, add it
# to the 'LIBS' variable. Do _not_ add it manually into the Makefile.am files.
@@ -96,7 +96,7 @@ LT_INIT
# the 'autoscan' tool to get an idea what is still missing in your 'configure.ac'
#
-# where to install pgk info files
+# where to install pkg info files
PKG_INSTALLDIR
PTX_COMMON_CHECKS
@@ -150,7 +150,7 @@ AC_SUBST(LIBS)
# add required lib information to the pkg-config file (on demand)
AC_SUBST(REQUIRES)
-# add lib information which may conflicts with this libarry
+# add lib information which may conflict with this library
AC_SUBST(CONFLICTS)
# add special compile flags on demand
diff --git a/rules/templates/src-cmake-prog/@name@.cpp b/rules/templates/src-cmake-prog/@name@.c
index f89e37e6f..f89e37e6f 100644
--- a/rules/templates/src-cmake-prog/@name@.cpp
+++ b/rules/templates/src-cmake-prog/@name@.c
diff --git a/rules/templates/src-cmake-prog/CMakeLists.txt b/rules/templates/src-cmake-prog/CMakeLists.txt
index bc81d861c..8baf3f64e 100644
--- a/rules/templates/src-cmake-prog/CMakeLists.txt
+++ b/rules/templates/src-cmake-prog/CMakeLists.txt
@@ -1,34 +1,8 @@
-
-cmake_minimum_required(VERSION 2.6.0)
-
-#SET(QT_MIN_VERSION "4.5.0")
-#FIND_PACKAGE(Qt4 REQUIRED)
-
-file (GLOB SRC_FILES *.cpp)
-
-#set (FILES_TO_TRANSLATE ${SRC_FILES})
-#file (GLOB TRANSLATIONS_FILES *.ts)
-#
-#option(UPDATE_TRANSLATIONS "Update source translation translations/*.ts
-#files(WARNING: make clean will delete the source .ts files! Danger!)")
-#
-#if(UPDATE_TRANSLATIONS)
-# qt4_create_translation(QM_FILES ${FILES_TO_TRANSLATE} ${TRANSLATIONS_FILES})
-#else(UPDATE_TRANSLATIONS)
-# qt4_add_translation(QM_FILES ${TRANSLATIONS_FILES})
-#endif(UPDATE_TRANSLATIONS)
+cmake_minimum_required(VERSION 3.1)
+project(@name@)
add_executable(@name@
- ${SRC_FILES}
-# ${QM_FILES}
+ @name@.c
)
-#target_link_libraries(@name@
-# ${QT_QTCORE_LIBRARY}
-# ${QT_QTGUI_LIBRARY}
-#)
-#
-#include_directories(${QT_INCLUDE_DIR})
-
install(TARGETS @name@ RUNTIME DESTINATION bin)
-
diff --git a/rules/templates/src-cmake-prog/wizard.sh b/rules/templates/src-cmake-prog/wizard.sh
index 253eedca9..8f2903bf0 100644
--- a/rules/templates/src-cmake-prog/wizard.sh
+++ b/rules/templates/src-cmake-prog/wizard.sh
@@ -7,11 +7,11 @@ if [ -z "$NAME" ]; then
fi
NAME_UP="$(echo $NAME | tr '[a-z-]' '[A-Z_]')"
-mv "@name@.cpp" "${NAME}.cpp"
+mv "@name@.c" "${NAME}.c"
for i in \
CMakeLists.txt \
- "${NAME}.cpp" \
+ "${NAME}.c" \
; do
sed -i -e "s/\@name\@/${NAME}/g" \
-e "s/\@NAME\@/${NAME_UP}/g" $i
diff --git a/rules/templates/src-linux-driver/@name@.c b/rules/templates/src-linux-driver/@name@.c
index 2d91368fa..7d26103ac 100644
--- a/rules/templates/src-linux-driver/@name@.c
+++ b/rules/templates/src-linux-driver/@name@.c
@@ -12,7 +12,7 @@
* This is the first of two exported functions to handle inserting this
* code into a running kernel
*
- * Returns 0 if successfull, otherwise -1
+ * Returns 0 if successful, otherwise -1
*/
static int __init template_init(void)
diff --git a/rules/templates/template-barebox-imx-habv4-make b/rules/templates/template-barebox-imx-habv4-make
index eb752c834..cc825dc90 100644
--- a/rules/templates/template-barebox-imx-habv4-make
+++ b/rules/templates/template-barebox-imx-habv4-make
@@ -74,7 +74,7 @@ $(STATEDIR)/barebox-@package@.compile:
@$(call targetinfo)
@$(call world/env, BAREBOX_@PACKAGE@) \
- ptxd_make_imx_habv4_gen_table "imx-habv4-srk%d" 4
+ ptxd_make_imx_habv4_gen_table imx-habv4-srk
@$(call world/compile, BAREBOX_@PACKAGE@)
diff --git a/rules/templates/template-class-existing-target-in b/rules/templates/template-class-existing-target-in
index 3194d5b33..b1c8e7102 100644
--- a/rules/templates/template-class-existing-target-in
+++ b/rules/templates/template-class-existing-target-in
@@ -2,6 +2,4 @@
config @CLASS@@PACKAGE@
tristate
-@SELECT@ prompt "@package@"
- help
- FIXME
+@DEFAULT@@SELECT@@PROMPT@
diff --git a/rules/templates/template-class-in b/rules/templates/template-class-in
index 3194d5b33..b1c8e7102 100644
--- a/rules/templates/template-class-in
+++ b/rules/templates/template-class-in
@@ -2,6 +2,4 @@
config @CLASS@@PACKAGE@
tristate
-@SELECT@ prompt "@package@"
- help
- FIXME
+@DEFAULT@@SELECT@@PROMPT@
diff --git a/rules/templates/template-code-signing-provider-make b/rules/templates/template-code-signing-provider-make
index 94830d92e..4cf9cac35 100644
--- a/rules/templates/template-code-signing-provider-make
+++ b/rules/templates/template-code-signing-provider-make
@@ -18,6 +18,7 @@ HOST_@PACKAGE@_CODE_SIGNING_VERSION := @VERSION@
HOST_@PACKAGE@_CODE_SIGNING := @package@-code-signing-$(HOST_@PACKAGE@_CODE_SIGNING_VERSION)
HOST_@PACKAGE@_CODE_SIGNING_URL := file://local_src/@package@-code-signing
HOST_@PACKAGE@_CODE_SIGNING_DIR := $(HOST_BUILDDIR)/$(HOST_@PACKAGE@_CODE_SIGNING)
+HOST_@PACKAGE@_CODE_SIGNING_LICENSE := ignore
HOST_@PACKAGE@_CODE_SIGNING_CONF_TOOL := NO
diff --git a/rules/templates/template-host-python3-in b/rules/templates/template-host-python3-in
new file mode 100644
index 000000000..87a8004ae
--- /dev/null
+++ b/rules/templates/template-host-python3-in
@@ -0,0 +1,6 @@
+## SECTION=hosttools_noprompt
+
+config @PREFIX@_@PACKAGE@
+ tristate
+ default y if ALLYES
+ select @PREFIX@
diff --git a/rules/templates/template-host-python3-make b/rules/templates/template-host-python3-make
new file mode 100644
index 000000000..c3b766bab
--- /dev/null
+++ b/rules/templates/template-host-python3-make
@@ -0,0 +1,33 @@
+# -*-makefile-*-
+#
+# Copyright (C) @YEAR@ by @AUTHOR@
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_@PREFIX@_@PACKAGE@) += @prefix@-@package@
+
+#
+# Paths and names
+#
+@PREFIX@_@PACKAGE@_VERSION := @VERSION@
+@PREFIX@_@PACKAGE@_MD5 :=
+@PREFIX@_@PACKAGE@ := @package@-$(@PREFIX@_@PACKAGE@_VERSION)
+@PREFIX@_@PACKAGE@_SUFFIX := @SUFFIX@
+@PREFIX@_@PACKAGE@_URL := @URL@
+@PREFIX@_@PACKAGE@_SOURCE := $(SRCDIR)/$(@PREFIX@_@PACKAGE@).$(@PREFIX@_@PACKAGE@_SUFFIX)
+@PREFIX@_@PACKAGE@_DIR := $(HOST_BUILDDIR)/$(@PREFIX@_@PACKAGE@)
+@PREFIX@_@PACKAGE@_LICENSE := unknown
+@PREFIX@_@PACKAGE@_LICENSE_FILES :=
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+@PREFIX@_@PACKAGE@_CONF_TOOL := python3
+
+# vim: syntax=make
diff --git a/rules/templates/template-image-fit-in b/rules/templates/template-image-fit-in
new file mode 100644
index 000000000..1a89153fc
--- /dev/null
+++ b/rules/templates/template-image-fit-in
@@ -0,0 +1,10 @@
+## SECTION=image
+
+config IMAGE_@PACKAGE@
+ tristate
+ select HOST_U_BOOT_TOOLS
+ @select_CODE_SIGNING@select IMAGE_KERNEL
+ select IMAGE_ROOT_CPIO
+ prompt "Generate images/@package@.fit"
+ help
+ FIXME
diff --git a/rules/templates/template-image-fit-make b/rules/templates/template-image-fit-make
new file mode 100644
index 000000000..cd57d24df
--- /dev/null
+++ b/rules/templates/template-image-fit-make
@@ -0,0 +1,34 @@
+# -*-makefile-*-
+#
+# Copyright (C) @YEAR@ by @AUTHOR@
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+IMAGE_PACKAGES-$(PTXCONF_IMAGE_@PACKAGE@) += image-@package@
+
+#
+# Paths and names
+#
+IMAGE_@PACKAGE@ := image-@package@
+IMAGE_@PACKAGE@_DIR := $(BUILDDIR)/$(IMAGE_@PACKAGE@)
+IMAGE_@PACKAGE@_IMAGE := $(IMAGEDIR)/@package@.fit
+IMAGE_@PACKAGE@_VERSION := ${PTXCONF_PROJECT_VERSION}
+IMAGE_@PACKAGE@_KERNEL = $(IMAGE_KERNEL_IMAGE)
+IMAGE_@PACKAGE@_DTB = # TODO: $(IMAGEDIR)/your-board.dtb
+IMAGE_@PACKAGE@_INITRAMFS = $(IMAGE_ROOT_CPIO_IMAGE)
+@CODE_SIGNING_VARS@
+# ----------------------------------------------------------------------------
+# Image
+# ----------------------------------------------------------------------------
+
+$(IMAGE_@PACKAGE@_IMAGE): $(IMAGE_@PACKAGE@_KERNEL) $(IMAGE_@PACKAGE@_INITRAMFS) $(IMAGE_@PACKAGE@_DTB)
+ @$(call targetinfo)
+ @$(call world/image-fit, IMAGE_@PACKAGE@)
+ @$(call finish)
+
+# vim: syntax=make
diff --git a/rules/templates/template-kernel-in b/rules/templates/template-kernel-in
index 1b2b06a55..cd0b4042a 100644
--- a/rules/templates/template-kernel-in
+++ b/rules/templates/template-kernel-in
@@ -4,6 +4,7 @@ config KERNEL_@PACKAGE@
tristate
prompt "Linux kernel (@package@)"
select HOST_LIBKMOD
+ select HOST_SYSTEM_BC
#select HOST_U_BOOT_TOOLS
help
FIXME
diff --git a/rules/templates/template-kernel-make b/rules/templates/template-kernel-make
index 08ff36284..cd1b717c5 100644
--- a/rules/templates/template-kernel-make
+++ b/rules/templates/template-kernel-make
@@ -24,10 +24,16 @@ KERNEL_@PACKAGE@_SOURCE := $(SRCDIR)/$(KERNEL_@PACKAGE@_PATCHES).$(KERNEL_@PACK
KERNEL_@PACKAGE@_DIR := $(BUILDDIR)/$(KERNEL_@PACKAGE@)
KERNEL_@PACKAGE@_BUILD_DIR := $(KERNEL_@PACKAGE@_DIR)-build
KERNEL_@PACKAGE@_CONFIG := $(call ptx/in-platformconfigdir, kernelconfig-@package@)
+KERNEL_@PACKAGE@_DTS_PATH := ${PTXDIST_PLATFORMCONFIG_SUBDIR}/dts:${KERNEL_@PACKAGE@_DIR}/arch/${GENERIC_KERNEL_ARCH}/boot/dts
+KERNEL_@PACKAGE@_DTS := @dts@
+KERNEL_@PACKAGE@_DTB_FILES := $(addsuffix .dtb,$(basename $(notdir $(KERNEL_@PACKAGE@_DTS))))
KERNEL_@PACKAGE@_LICENSE := GPL-2.0-only
KERNEL_@PACKAGE@_LICENSE_FILES :=
KERNEL_@PACKAGE@_BUILD_OOT := KEEP
+# track changes to devices-trees in the BSP
+$(call world/dts-cfghash-file, KERNEL_@PACKAGE@)
+
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
@@ -40,6 +46,7 @@ KERNEL_@PACKAGE@_PATH := PATH=$(CROSS_PATH)
KERNEL_@PACKAGE@_SHARED_OPT := \
-C $(KERNEL_@PACKAGE@_DIR) \
O=$(KERNEL_@PACKAGE@_BUILD_DIR) \
+ PAHOLE=false \
$(call kernel-opts, KERNEL_@PACKAGE@)
# no gcc plugins; avoid config changes depending on the host compiler
@@ -89,10 +96,20 @@ KERNEL_@PACKAGE@_INSTALL_OPT := \
$(call kernel-opts, KERNEL_@PACKAGE@) \
modules_install
+$(STATEDIR)/kernel-@package@.install:
+ @$(call targetinfo)
+ @$(call world/install, KERNEL_@PACKAGE@)
+ @$(call world/dtb, KERNEL_@PACKAGE@)
+ @$(call touch)
+
# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
+ifneq ($(KERNEL_@PACKAGE@_DTB_FILES),)
+$(addprefix $(IMAGEDIR)/,$(KERNEL_@PACKAGE@_DTB_FILES)): $(STATEDIR)/kernel-@package@.targetinstall
+endif
+
$(STATEDIR)/kernel-@package@.targetinstall:
@$(call targetinfo)
@@ -100,6 +117,11 @@ $(STATEDIR)/kernel-@package@.targetinstall:
install -v -m 644 $(image) \
$(IMAGEDIR)/$(notdir $(image))-@package@$(ptx/nl))
+ @$(foreach dtb ,$(KERNEL_@PACKAGE@_DTB_FILES), \
+ echo -e "Installing $(dtb) ...\n"$(ptx/nl) \
+ install -D -m0644 $(KERNEL_@PACKAGE@_PKGDIR)/boot/$(dtb) \
+ $(IMAGEDIR)/$(dtb)$(ptx/nl))
+
@$(call install_init, kernel-@package@)
@$(call install_fixup, kernel-@package@, PRIORITY,optional)
@$(call install_fixup, kernel-@package@, SECTION,base)
@@ -109,6 +131,10 @@ $(STATEDIR)/kernel-@package@.targetinstall:
@$(call install_copy, kernel-@package@, 0, 0, 0644, \
$(IMAGEDIR)/@image@-@package@, /boot/@image@-@package@, n)
+ @$(foreach dtb, $(KERNEL_@PACKAGE@_DTB_FILES), \
+ $(call install_copy, kernel-@package@, 0, 0, 0644, -, \
+ /boot/$(dtb), n)$(ptx/nl))
+
@$(call install_glob, kernel-@package@, 0, 0, -, /lib/modules, *.ko,, n)
@$(call install_glob, kernel-@package@, 0, 0, -, /lib/modules,, *.ko */build */source, n)
@@ -117,6 +143,16 @@ $(STATEDIR)/kernel-@package@.targetinstall:
@$(call touch)
# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/kernel-@package@.clean:
+ @$(call targetinfo)
+ @$(call clean_pkg, KERNEL_@PACKAGE@)
+ @$(foreach dtb,$(KERNEL_@PACKAGE@_DTB_FILES), \
+ rm -vf $(IMAGEDIR)/$(dtb)$(ptx/nl))
+
+# ----------------------------------------------------------------------------
# oldconfig / menuconfig
# ----------------------------------------------------------------------------
diff --git a/rules/templates/template-m4-macros/pkg.m4 b/rules/templates/template-m4-macros/pkg.m4
index 13a889017..f9075e56c 100644
--- a/rules/templates/template-m4-macros/pkg.m4
+++ b/rules/templates/template-m4-macros/pkg.m4
@@ -86,7 +86,7 @@ dnl Check to see whether a particular set of modules exists. Similar to
dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
dnl
dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
-dnl only at the first occurence in configure.ac, so if the first place
+dnl only at the first occurrence in configure.ac, so if the first place
dnl it's called might be skipped (such as if it is within an "if", you
dnl have to call PKG_CHECK_EXISTS manually
AC_DEFUN([PKG_CHECK_EXISTS],
diff --git a/rules/templates/template-m4-macros/ptx.m4 b/rules/templates/template-m4-macros/ptx.m4
index 071012c98..77f285d27 100644
--- a/rules/templates/template-m4-macros/ptx.m4
+++ b/rules/templates/template-m4-macros/ptx.m4
@@ -12,9 +12,9 @@
# PTX_COMMON_CHECKS()
# Does common checks for libraries and programs
# PTX_LIBRARY_CHECKS()
-# Does library specific checks wich makes no sense for programs
+# Does library specific checks which makes no sense for programs
# PTX_APPLICATION_CHECKS()
-# Does program specific checks wich makes no sense for libraries
+# Does program specific checks which makes no sense for libraries
#
# Usage example:
#
diff --git a/rules/templates/template-src-linux-driver-in b/rules/templates/template-src-linux-driver-in
index 7cb61c87c..4d0463a9f 100644
--- a/rules/templates/template-src-linux-driver-in
+++ b/rules/templates/template-src-linux-driver-in
@@ -3,6 +3,7 @@
config @PACKAGE@
tristate
select KERNEL
+ select HOST_SYSTEM_PYTHON3
prompt "@package@"
help
FIXME
diff --git a/rules/templates/template-src-linux-driver-make b/rules/templates/template-src-linux-driver-make
index 144f14d8e..4f4009472 100644
--- a/rules/templates/template-src-linux-driver-make
+++ b/rules/templates/template-src-linux-driver-make
@@ -37,6 +37,9 @@ endif
# Compile
# ----------------------------------------------------------------------------
+@PACKAGE@_WRAPPER_ACCEPT_PATHS = \
+ $(KERNEL_DIR)
+
@PACKAGE@_MAKE_OPT = \
$(KERNEL_MODULE_OPT) \
-C $(KERNEL_DIR) \
diff --git a/rules/templates/template-src-make-prog-make b/rules/templates/template-src-make-prog-make
index 50957c0f8..7227916e2 100644
--- a/rules/templates/template-src-make-prog-make
+++ b/rules/templates/template-src-make-prog-make
@@ -92,8 +92,7 @@ $(STATEDIR)/@package@.targetinstall:
$(STATEDIR)/@package@.clean:
@$(call targetinfo)
- @-cd $(@PACKAGE@_DIR) && \
- $(@PACKAGE@_ENV) $(@PACKAGE@_PATH) $(MAKE) clean
+ @-$(call execute, @PACKAGE@, $(MAKE) clean)
@$(call clean_pkg, @PACKAGE@)
# vim: syntax=make
diff --git a/rules/templates/template-src-qmake-prog-make b/rules/templates/template-src-qmake-prog-make
index 1a9d0d6f3..3d9156499 100644
--- a/rules/templates/template-src-qmake-prog-make
+++ b/rules/templates/template-src-qmake-prog-make
@@ -39,7 +39,7 @@ PACKAGES-$(PTXCONF_@PACKAGE@) += @package@
#
# qmake
#
-@PACKAGE@_PATH := PATH=$(PTXDIST_SYSROOT_CROSS)/bin/qt5:$(CROSS_PATH)
+@PACKAGE@_PATH := PATH=$(PTXDIST_SYSROOT_CROSS)/usr/bin/qt@QT_VERSION@:$(CROSS_PATH)
@PACKAGE@_CONF_TOOL := qmake
@PACKAGE@_CONF_OPT := $(CROSS_QMAKE_OPT) PREFIX=/usr
diff --git a/rules/templates/template-target-make b/rules/templates/template-target-make
index 1a0f9e2e6..6add94b3d 100644
--- a/rules/templates/template-target-make
+++ b/rules/templates/template-target-make
@@ -41,7 +41,7 @@ PACKAGES-$(PTXCONF_@PACKAGE@) += @package@
#
# @conf_tool@
#
-@PACKAGE@_CONF_TOOL := @conf_tool@
+@PACKAGE_PATH@@PACKAGE@_CONF_TOOL := @conf_tool@
#@PACKAGE@_CONF_OPT := @CONF_OPT@
#$(STATEDIR)/@package@.prepare:
diff --git a/rules/termcap.make b/rules/termcap.make
index 93c7b1b76..bf23a7ea3 100644
--- a/rules/termcap.make
+++ b/rules/termcap.make
@@ -14,27 +14,27 @@ PACKAGES-$(PTXCONF_TERMCAP) += termcap
#
# Paths and names
#
-TERMCAP_VERSION := 1.3.1
-TERMCAP_MD5 := ffe6f86e63a3a29fa53ac645faaabdfa
-TERMCAP := termcap-$(TERMCAP_VERSION)
-TERMCAP_SUFFIX := tar.gz
-TERMCAP_URL := $(call ptx/mirror, GNU, termcap/$(TERMCAP).$(TERMCAP_SUFFIX))
-TERMCAP_SOURCE := $(SRCDIR)/$(TERMCAP).$(TERMCAP_SUFFIX)
-TERMCAP_DIR := $(BUILDDIR)/$(TERMCAP)
-TERMCAP_LICENSE := GPL-2.0-only
+TERMCAP_VERSION := 1.3.1
+TERMCAP_MD5 := ffe6f86e63a3a29fa53ac645faaabdfa
+TERMCAP := termcap-$(TERMCAP_VERSION)
+TERMCAP_SUFFIX := tar.gz
+TERMCAP_URL := $(call ptx/mirror, GNU, termcap/$(TERMCAP).$(TERMCAP_SUFFIX))
+TERMCAP_SOURCE := $(SRCDIR)/$(TERMCAP).$(TERMCAP_SUFFIX)
+TERMCAP_DIR := $(BUILDDIR)/$(TERMCAP)
+TERMCAP_LICENSE := GPL-2.0-only
+TERMCAP_LICENSE_FILES := \
+ file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-TERMCAP_PATH := PATH=$(CROSS_PATH)
-TERMCAP_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-TERMCAP_AUTOCONF := \
- --prefix= \
+TERMCAP_CONF_TOOL := autoconf
+TERMCAP_CONF_OPT := \
+ --prefix=/usr \
$(CROSS_AUTOCONF_ARCH) \
--enable-install-termcap
diff --git a/rules/tf-a.make b/rules/tf-a.make
index dc8a34710..b8c477476 100644
--- a/rules/tf-a.make
+++ b/rules/tf-a.make
@@ -19,10 +19,10 @@ TF_A_VERSION := $(call ptx/config-version, PTXCONF_TF_A)
TF_A_MD5 := $(call ptx/config-md5, PTXCONF_TF_A)
TF_A := tf-a-$(TF_A_VERSION)
TF_A_SUFFIX := tar.gz
-TF_A_URL := https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/snapshot/$(TF_A_VERSION).$(TF_A_SUFFIX)
+TF_A_URL := $(call remove_quotes, $(PTXCONF_TF_A_URL))/$(TF_A_VERSION).$(TF_A_SUFFIX)
TF_A_SOURCE := $(SRCDIR)/$(TF_A).$(TF_A_SUFFIX)
TF_A_DIR := $(BUILDDIR)/$(TF_A)
-TF_A_BUILDDIR := $(TF_A_DIR)/build
+TF_A_BUILD_DIR := $(TF_A_DIR)/build
TF_A_BUILD_OOT := YES
TF_A_LICENSE := BSD-3-Clause AND BSD-2-Clause \
AND (GPL-2.0-or-later OR BSD-2-Clause) \
@@ -40,16 +40,16 @@ TF_A_ARTIFACTS := $(call remove_quotes, $(PTXCONF_TF_A_ARTIFACTS))
TF_A_WRAPPER_BLACKLIST := \
$(PTXDIST_LOWLEVEL_WRAPPER_BLACKLIST)
-TF_A_PATH := PATH=$(CROSS_PATH)
+TF_A_EXTRA_ARGS := $(call remove_quotes,$(PTXCONF_TF_A_EXTRA_ARGS))
+TF_A_BINDIR = $(TF_A_BUILD_DIR)/$(1)/$(if $(filter DEBUG=1,$(TF_A_EXTRA_ARGS)),debug,release)
TF_A_MAKE_OPT := \
-C $(TF_A_DIR) \
CROSS_COMPILE=$(BOOTLOADER_CROSS_COMPILE) \
HOSTCC=$(HOSTCC) \
- DEBUG=0 \
ARCH=$(PTXCONF_TF_A_ARCH_STRING) \
ARM_ARCH_MAJOR=$(PTXCONF_TF_A_ARM_ARCH_MAJOR) \
BUILD_STRING=$(PTXCONF_TF_A_VERSION) \
- $(call remove_quotes,$(PTXCONF_TF_A_EXTRA_ARGS)) \
+ $(TF_A_EXTRA_ARGS) \
all
ifdef PTXCONF_TF_A_BL32_TSP
@@ -74,8 +74,6 @@ TF_A_CONF_TOOL := NO
# Compile
# ----------------------------------------------------------------------------
-TF_A_MAKE_ENV := $(CROSS_ENV)
-
$(STATEDIR)/tf-a.compile:
@$(call targetinfo)
@@ -89,16 +87,18 @@ $(STATEDIR)/tf-a.compile:
# Install
# ----------------------------------------------------------------------------
+tf-a/inst_pkgdir = \
+ install -v -D -m 644 $(2) $(TF_A_PKGDIR)/usr/lib/firmware/$(3)
+
tf-a/inst_plat = $(foreach artifact, \
- $(wildcard $(TF_A_BUILDDIR)/$(1)/release/$(TF_A_ARTIFACTS)), \
- install -v -D -m 644 $(artifact) \
- $(2)/$(1)-$(notdir $(artifact))$(ptx/nl))
+ $(wildcard $(addprefix $(TF_A_BINDIR)/, $(TF_A_ARTIFACTS))), \
+ $(call $(2),TF_A,$(artifact),$(1)-$(notdir $(artifact)))$(ptx/nl))
tf-a/inst_bins = $(foreach plat, $(TF_A_PLATFORMS), $(call tf-a/inst_plat,$(plat),$(1)))
$(STATEDIR)/tf-a.install:
@$(call targetinfo)
- @$(call tf-a/inst_bins,$(TF_A_PKGDIR)/usr/lib/firmware)
+ @$(call tf-a/inst_bins,tf-a/inst_pkgdir)
@$(call touch)
# ----------------------------------------------------------------------------
@@ -107,16 +107,7 @@ $(STATEDIR)/tf-a.install:
$(STATEDIR)/tf-a.targetinstall:
@$(call targetinfo)
- @$(call tf-a/inst_bins,$(IMAGEDIR))
+ @$(call tf-a/inst_bins,ptx/image-install)
@$(call touch)
-# ----------------------------------------------------------------------------
-# Clean
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/tf-a.clean:
- @$(call targetinfo)
- @rm -vf $(addprefix $(IMAGEDIR)/, $(notdir $(TF_A_ARTIFACTS_SRC)))
- @$(call clean_pkg, TF_A)
-
# vim: syntax=make
diff --git a/rules/thttpd-bbinit.in b/rules/thttpd-bbinit.in
deleted file mode 100644
index 91a27fe93..000000000
--- a/rules/thttpd-bbinit.in
+++ /dev/null
@@ -1,8 +0,0 @@
-## SECTION=initmethod_bbinit
-
-config THTTPD_BBINIT_LINK
- string
- depends on THTTPD_STARTSCRIPT
- prompt "thttpd"
- default "S91thttpd"
-
diff --git a/rules/thttpd.in b/rules/thttpd.in
deleted file mode 100644
index 7adfc3c06..000000000
--- a/rules/thttpd.in
+++ /dev/null
@@ -1,47 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=networking
-menuconfig THTTPD
- tristate
- prompt "thttpd "
- select LIBC_CRYPT
- help
- thttpd (thin httpd) is a small, fast secure webserver.
-
- It features CGI support, URL-traffic-based throttling
- and basic authentication. thttpd has a very small memory
- footprint as it only forks itself in order to execute
- CGI scripts. It is designed to be as fast as fully
- featured web-servers and it performs extremely well
- under high load.
-
- STAGING: remove in ptxdist-2021.07.0
- Really old version. Should be updated.
-
- comment "runtime options ---"
- depends on THTTPD
-
-if THTTPD
-
-config THTTPD__GENERIC_SITE
- depends on THTTPD
- bool
- default y
- prompt "Populate a generic website"
- help
- This install a generic website into /var/www/index.html
- from <ptxdist-install>/projectroot/var/www/thttpd.html
-
-config THTTPD__INSTALL_HTPASSWD
- bool "Install mkpasswd tool."
- default y
- help
- Install the mkpasswd tool. It can create and manage .htpasswd file
- for authentication of users.
-
-config THTTPD_STARTSCRIPT
- bool
- default y
- prompt "install /etc/init.d/thttpd"
-
-endif
diff --git a/rules/thttpd.make b/rules/thttpd.make
deleted file mode 100644
index 05408bb48..000000000
--- a/rules/thttpd.make
+++ /dev/null
@@ -1,87 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2003 by Benedikt Spranger
-# (C) 2010 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_THTTPD) += thttpd
-
-#
-# Paths and names
-#
-THTTPD_VERSION := 2.25b
-THTTPD_MD5 := 156b249b3b0bcd48b06badd2db0d56c5
-THTTPD := thttpd-$(THTTPD_VERSION)
-THTTPD_SUFFIX := tar.gz
-THTTPD_URL := http://www.acme.com/software/thttpd/$(THTTPD).$(THTTPD_SUFFIX)
-THTTPD_SOURCE := $(SRCDIR)/$(THTTPD).$(THTTPD_SUFFIX)
-THTTPD_DIR := $(BUILDDIR)/$(THTTPD)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-THTTPD_PATH := PATH=$(CROSS_PATH)
-THTTPD_ENV := $(CROSS_ENV)
-
-#
-# autoconf
-#
-THTTPD_AUTOCONF := $(CROSS_AUTOCONF_USR)
-
-THTTPD_MAKE_PAR := NO
-
-# DESTDIR is broken. Overwrite prefix instead
-THTTPD_INSTALL_OPT := \
- DESTDIR= \
- prefix=$(THTTPD_PKGDIR)/usr \
- WEBGROUP=root \
- install
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/thttpd.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, thttpd)
- @$(call install_fixup, thttpd,PRIORITY,optional)
- @$(call install_fixup, thttpd,SECTION,base)
- @$(call install_fixup, thttpd,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, thttpd,DESCRIPTION,missing)
-
- @$(call install_copy, thttpd, 0, 0, 0755, -, /usr/sbin/thttpd)
-
-ifdef PTXCONF_THTTPD_STARTSCRIPT
- @$(call install_alternative, thttpd, 0, 0, 0755, /etc/init.d/thttpd, n)
-
-ifneq ($(call remove_quotes,$(PTXCONF_THTTPD_BBINIT_LINK)),)
- @$(call install_link, thttpd, \
- ../init.d/thttpd, \
- /etc/rc.d/$(PTXCONF_THTTPD_BBINIT_LINK))
-endif
-endif
-
-ifdef PTXCONF_THTTPD__GENERIC_SITE
- @$(call install_copy, thttpd, 12, 102, 0755, /var/www)
- @$(call install_copy, thttpd, 12, 102, 0644, \
- $(PTXDIST_TOPDIR)/projectroot/var/www/thttpd.html, \
- /var/www/index.html, n)
-endif
-
-ifdef PTXCONF_THTTPD__INSTALL_HTPASSWD
- @$(call install_copy, thttpd, 0, 0, 0755, -, \
- /usr/sbin/htpasswd)
-endif
-
- @$(call install_finish, thttpd)
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/timescaledb.make b/rules/timescaledb.make
index ab7f48f22..c4111dc66 100644
--- a/rules/timescaledb.make
+++ b/rules/timescaledb.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_TIMESCALEDB) += timescaledb
#
# Paths and names
#
-TIMESCALEDB_VERSION := 1.5.0
-TIMESCALEDB_MD5 := d48403460f6ee4e3a8f9ba51a5a95899
+TIMESCALEDB_VERSION := 2.3.0
+TIMESCALEDB_MD5 := fc0a789deb5097c7213c231190e4b15f
TIMESCALEDB := timescaledb-$(TIMESCALEDB_VERSION)
TIMESCALEDB_SUFFIX := tar.gz
TIMESCALEDB_URL := https://github.com/timescale/timescaledb/archive/$(TIMESCALEDB_VERSION).$(TIMESCALEDB_SUFFIX)
@@ -42,9 +42,14 @@ TIMESCALEDB_CONF_OPT := \
-DPG_PKGLIBDIR="/usr/lib/postgresql" \
-DPG_SHAREDIR="/usr/share/postgresql" \
-DAPACHE_ONLY=1 \
+ -DASSERTIONS=OFF \
+ -DCODECOVERAGE=OFF \
+ -DENABLE_OPTIMIZER_DEBUG=OFF \
+ -DLINTER=OFF \
-DREGRESS_CHECKS=0 \
-DSEND_TELEMETRY_DEFAULT=0 \
- -DUSE_OPENSSL=0
+ -DUSE_OPENSSL=0 \
+ -DWARNINGS_AS_ERRORS=OFF
# -DAPACHE_ONLY=1 is needed to build a free/libre version
# of TimescaleDB.
diff --git a/rules/timezone.make b/rules/timezone.make
index c1fd3fbc3..00fd3cff6 100644
--- a/rules/timezone.make
+++ b/rules/timezone.make
@@ -87,6 +87,11 @@ $(STATEDIR)/timezone.install:
@for target in $(TIMEZONE-y); do \
$(call add_zoneinfo, $$target, $(TIMEZONE_PKGDIR)/usr/share, $(PTXDIST_SYSROOT_HOST)/usr); \
done
+# Fix entries in zonetab to match the selected PTXCONF_TIMEZONE_* options.
+ @grep "\($$(find $(TIMEZONE_PKGDIR)/usr/share/zoneinfo -type f -printf '%P\\|')#\)" \
+ $(PTXDIST_SYSROOT_HOST)/usr/share/zoneinfo/zone1970.tab > \
+ $(TIMEZONE_PKGDIR)/usr/share/zoneinfo/zone1970.tab
+
@$(call touch)
# ----------------------------------------------------------------------------
@@ -116,6 +121,8 @@ ifneq ($(call remove_quotes,$(PTXCONF_TIMEZONE_LOCALTIME)),)
/etc/localtime)
endif
+ @$(call install_copy, timezone, 0, 0, 0644, -, /usr/share/zoneinfo/zone1970.tab)
+
@$(call install_finish, timezone)
@$(call touch)
diff --git a/rules/tmux.in b/rules/tmux.in
index a53a60c4c..20fb06f4a 100644
--- a/rules/tmux.in
+++ b/rules/tmux.in
@@ -5,7 +5,7 @@ config TMUX
prompt "tmux"
select LIBEVENT
select NCURSES
- # tmux needs an utf-8 locale. Select "en_US (UTF-8)" unless any other
+ # tmux needs a utf-8 locale. Select "en_US (UTF-8)" unless any other
# utf-8 locale is already enabled
select LOCALES if RUNTIME
select LOCALES_EN_US_UTF8 if !LOCALES_DE_DE_UTF8
diff --git a/rules/tomcat.in b/rules/tomcat.in
deleted file mode 100644
index 73c0919de..000000000
--- a/rules/tomcat.in
+++ /dev/null
@@ -1,13 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=networking
-
-config TOMCAT
- tristate
- prompt "tomcat"
- help
- Apache Tomcat is an open source software implementation of the Java
- Servlet and JavaServer Pages technologies.
-
- STAGING: remove in ptxdist-2021.07.0
- Really old version. Should be updated.
diff --git a/rules/tomcat.make b/rules/tomcat.make
deleted file mode 100644
index dc4a0277a..000000000
--- a/rules/tomcat.make
+++ /dev/null
@@ -1,96 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2009 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_TOMCAT) += tomcat
-
-#
-# Paths and names
-#
-TOMCAT_VERSION := 5.0.30
-TOMCAT_MD5 := e140483d062de8dd703cfd6ecac58c71
-TOMCAT := jakarta-tomcat-$(TOMCAT_VERSION)
-TOMCAT_SUFFIX := tar.gz
-TOMCAT_URL := http://archive.apache.org/dist/tomcat/tomcat-5/v5.0.30/bin/$(TOMCAT).$(TOMCAT_SUFFIX)
-TOMCAT_SOURCE := $(SRCDIR)/$(TOMCAT).$(TOMCAT_SUFFIX)
-TOMCAT_DIR := $(BUILDDIR)/$(TOMCAT)
-TOMCAT_LICENSE := Apache-2.0
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-TOMCAT_PREFIX := /usr/tomcat
-
-$(STATEDIR)/tomcat.prepare:
- @$(call targetinfo)
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Compile
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/tomcat.compile:
- @$(call targetinfo)
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/tomcat.install:
- @$(call targetinfo)
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/tomcat.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, tomcat)
- @$(call install_fixup, tomcat,PRIORITY,optional)
- @$(call install_fixup, tomcat,SECTION,base)
- @$(call install_fixup, tomcat,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
- @$(call install_fixup, tomcat,DESCRIPTION,missing)
-
- @$(call install_copy, tomcat, 0, 0, 0755, $(TOMCAT_PREFIX)/bin)
- @$(call install_copy, tomcat, 0, 0, 0755, $(TOMCAT_PREFIX)/conf)
- @$(call install_copy, tomcat, 0, 0, 0755, $(TOMCAT_PREFIX)/common/lib)
- @$(call install_copy, tomcat, 0, 0, 0755, $(TOMCAT_PREFIX)/server/lib)
- @$(call install_copy, tomcat, 0, 0, 0755, $(TOMCAT_PREFIX)/webapps)
- @$(call install_copy, tomcat, 0, 0, 0755, /tmp/tomcat/work)
- @$(call install_copy, tomcat, 0, 0, 0755, /tmp/tomcat/temp)
- @$(call install_copy, tomcat, 0, 0, 0755, /tmp/tomcat/logs)
- @$(call install_link, tomcat, ../../tmp/tomcat/work, $(TOMCAT_PREFIX)/work)
- @$(call install_link, tomcat, ../../tmp/tomcat/temp, $(TOMCAT_PREFIX)/temp)
- @$(call install_link, tomcat, ../../tmp/tomcat/logs, $(TOMCAT_PREFIX)/logs)
-
- @cd $(TOMCAT_DIR) && for file in bin/*.jar common/lib/*.jar \
- server/lib/*.jar; do \
- $(call install_copy, tomcat, 0, 0, 0644, \
- $(TOMCAT_DIR)/$$file, \
- $(TOMCAT_PREFIX)/$$file,n); \
- done
- @$(call install_copy, tomcat, 0, 0, 0644, \
- $(TOMCAT_DIR)/conf/web.xml, \
- $(TOMCAT_PREFIX)/conf/web.xml)
- @$(call install_copy, tomcat, 0, 0, 0644, \
- $(TOMCAT_DIR)/conf/server-minimal.xml, \
- $(TOMCAT_PREFIX)/conf/server.xml)
-
- @$(call install_alternative, tomcat, 0, 0, 0755, /etc/init.d/tomcat)
-
- @$(call install_finish, tomcat)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/tomoyo-tools.make b/rules/tomoyo-tools.make
index 5b009a37d..32a5cae99 100644
--- a/rules/tomoyo-tools.make
+++ b/rules/tomoyo-tools.make
@@ -18,7 +18,7 @@ TOMOYO_TOOLS_VERSION := 2.5.0-20130406
TOMOYO_TOOLS_MD5 := 8888f83fcb87823d714ff551e8680d0d
TOMOYO_TOOLS := tomoyo-tools-$(TOMOYO_TOOLS_VERSION)
TOMOYO_TOOLS_SUFFIX := tar.gz
-TOMOYO_TOOLS_URL := http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/53357/$(TOMOYO_TOOLS).$(TOMOYO_TOOLS_SUFFIX)
+TOMOYO_TOOLS_URL := http://jaist.dl.sourceforge.jp/tomoyo/53357/$(TOMOYO_TOOLS).$(TOMOYO_TOOLS_SUFFIX)
TOMOYO_TOOLS_SOURCE := $(SRCDIR)/$(TOMOYO_TOOLS).$(TOMOYO_TOOLS_SUFFIX)
TOMOYO_TOOLS_DIR := $(BUILDDIR)/tomoyo-tools
TOMOYO_TOOLS_LICENSE := GPL
@@ -72,10 +72,12 @@ $(STATEDIR)/tomoyo-tools.targetinstall:
@$(call install_copy, tomoyo-tools, 0, 0, 0755, -, /sbin/tomoyo-init)
@$(foreach prog, $(TOMOYO_TOOLS_SBIN_PROGS), \
- $(call install_copy, tomoyo-tools, 0, 0, 0755, -, /usr/sbin/$(prog));)
+ $(call install_copy, tomoyo-tools, 0, 0, 0755, -, \
+ /usr/sbin/$(prog))$(ptx/nl))
@$(foreach prog, $(TOMOYO_TOOLS_LIBEXEC_PROGS), \
- $(call install_copy, tomoyo-tools, 0, 0, 0755, -, /usr/lib/tomoyo/$(prog));)
+ $(call install_copy, tomoyo-tools, 0, 0, 0755, -, \
+ /usr/lib/tomoyo/$(prog))$(ptx/nl))
@$(call install_lib, tomoyo-tools, 0, 0, 0644, libtomoyotools)
diff --git a/rules/tpm2-abrmd.in b/rules/tpm2-abrmd.in
index 1ab0a6a7f..de76f60a6 100644
--- a/rules/tpm2-abrmd.in
+++ b/rules/tpm2-abrmd.in
@@ -6,7 +6,6 @@ config TPM2_ABRMD
select DBUS
select GLIB
select TPM2_TSS
- select HOST_DBUS_GLIB
prompt "tpm2-abrmd"
help
TPM2 Access Broker & Resource Management Daemon implementing
diff --git a/rules/tpm2-tools.in b/rules/tpm2-tools.in
index 4c9cbaa92..20a3a7b7e 100644
--- a/rules/tpm2-tools.in
+++ b/rules/tpm2-tools.in
@@ -1,13 +1,25 @@
## SECTION=tpm
-config TPM2_TOOLS
+menuconfig TPM2_TOOLS
tristate
select TPM2_TSS
select OPENSSL
select LIBCURL
+ select EFIVAR if TPM2_TOOLS_USE_EFIVAR
prompt "tpm2-tools"
help
This package contains a set of tools to use with TPM 2.0
chips, for common tasks and features provided by the
hardware; such as for doing basic key management,
attestation, encryption and signing.
+
+if TPM2_TOOLS
+
+config TPM2_TOOLS_USE_EFIVAR
+ bool
+ prompt "Use efivar"
+ help
+ Building with efivar enables pretty-printing of
+ the device path.
+
+endif
diff --git a/rules/tpm2-tools.make b/rules/tpm2-tools.make
index ead881ffb..5261f972d 100644
--- a/rules/tpm2-tools.make
+++ b/rules/tpm2-tools.make
@@ -14,15 +14,15 @@ PACKAGES-$(PTXCONF_TPM2_TOOLS) += tpm2-tools
#
# Paths and names
#
-TPM2_TOOLS_VERSION := 4.1
-TPM2_TOOLS_MD5 := aecec22668233776922909f2ebf55e65
+TPM2_TOOLS_VERSION := 5.6
+TPM2_TOOLS_MD5 := c8362a622634646d3a5dbe012b9307d8
TPM2_TOOLS := tpm2-tools-$(TPM2_TOOLS_VERSION)
TPM2_TOOLS_SUFFIX := tar.gz
TPM2_TOOLS_URL := https://github.com/tpm2-software/tpm2-tools/releases/download/$(TPM2_TOOLS_VERSION)/$(TPM2_TOOLS).$(TPM2_TOOLS_SUFFIX)
TPM2_TOOLS_SOURCE := $(SRCDIR)/$(TPM2_TOOLS).$(TPM2_TOOLS_SUFFIX)
TPM2_TOOLS_DIR := $(BUILDDIR)/$(TPM2_TOOLS)
TPM2_TOOLS_LICENSE := BSD-3-Clause
-TPM2_TOOLS_LICENSE_FILES := file://LICENSE;md5=0eb1216e46938bd723098d93a23c3bcc
+TPM2_TOOLS_LICENSE_FILES := file://docs/LICENSE;md5=a846608d090aa64494c45fc147cc12e3
# ----------------------------------------------------------------------------
# Prepare
@@ -32,14 +32,19 @@ TPM2_TOOLS_LICENSE_FILES := file://LICENSE;md5=0eb1216e46938bd723098d93a23c3bcc
# autoconf
#
TPM2_TOOLS_CONF_TOOL := autoconf
+TPM2_TOOLS_CONF_ENV := \
+ $(CROSS_ENV) \
+ $(call ptx/ifdef, PTXCONF_TPM2_TOOLS_USE_EFIVAR,,ac_cv_header_efivar_efivar_h=no)
+
TPM2_TOOLS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--enable-debug=info \
--disable-code-coverage \
--disable-unit \
--enable-hardening \
+ --enable-fapi \
--without-gcov \
- --without-bashcompdir
+ --with-bashcompdir=/ignore
TPM2_TOOLS_CFLAGS := \
-fPIC
@@ -48,10 +53,11 @@ TPM2_TOOLS_CFLAGS := \
# Target-Install
# ----------------------------------------------------------------------------
-TPM2_TOOLS_PROGS := \
+TPM2_TOOLS_TPM2_PROGS := \
tpm2_activatecredential \
tpm2_certify \
tpm2_certifycreation \
+ tpm2_certifyX509certutil \
tpm2_changeauth \
tpm2_changeeps \
tpm2_changepps \
@@ -59,6 +65,7 @@ TPM2_TOOLS_PROGS := \
tpm2_clear \
tpm2_clearcontrol \
tpm2_clockrateadjust \
+ tpm2_commit \
tpm2_create \
tpm2_createak \
tpm2_createek \
@@ -66,12 +73,21 @@ TPM2_TOOLS_PROGS := \
tpm2_createprimary \
tpm2_dictionarylockout \
tpm2_duplicate \
+ tpm2_ecdhkeygen \
+ tpm2_ecdhzgen \
+ tpm2_ecephemeral \
+ tpm2_encodeobject \
tpm2_encryptdecrypt \
+ tpm2_eventlog \
tpm2_evictcontrol \
tpm2_flushcontext \
tpm2_getcap \
+ tpm2_getcommandauditdigest \
+ tpm2_geteccparameters \
tpm2_getekcertificate \
+ tpm2_getpolicydigest \
tpm2_getrandom \
+ tpm2_getsessionauditdigest \
tpm2_gettestresult \
tpm2_gettime \
tpm2_hash \
@@ -103,6 +119,7 @@ TPM2_TOOLS_PROGS := \
tpm2_policyauthvalue \
tpm2_policycommandcode \
tpm2_policycountertimer \
+ tpm2_policycphash \
tpm2_policyduplicationselect \
tpm2_policylocality \
tpm2_policynamehash \
@@ -125,7 +142,9 @@ TPM2_TOOLS_PROGS := \
tpm2_rsaencrypt \
tpm2_selftest \
tpm2_send \
+ tpm2_sessionconfig \
tpm2_setclock \
+ tpm2_setcommandauditstatus \
tpm2_setprimarypolicy \
tpm2_shutdown \
tpm2_sign \
@@ -134,7 +153,47 @@ TPM2_TOOLS_PROGS := \
tpm2_stirrandom \
tpm2_testparms \
tpm2_unseal \
- tpm2_verifysignature
+ tpm2_verifysignature \
+ tpm2_zgen2phase
+
+TPM2_TOOLS_TSS2_PROGS := \
+ tss2_authorizepolicy \
+ tss2_changeauth \
+ tss2_createkey \
+ tss2_createnv \
+ tss2_createseal \
+ tss2_decrypt \
+ tss2_delete \
+ tss2_encrypt \
+ tss2_exportkey \
+ tss2_exportpolicy \
+ tss2_getappdata \
+ tss2_getcertificate \
+ tss2_getdescription \
+ tss2_getinfo \
+ tss2_getplatformcertificates \
+ tss2_getrandom \
+ tss2_gettpm2object \
+ tss2_gettpmblobs \
+ tss2_import \
+ tss2_list \
+ tss2_nvextend \
+ tss2_nvincrement \
+ tss2_nvread \
+ tss2_nvsetbits \
+ tss2_nvwrite \
+ tss2_pcrextend \
+ tss2_pcrread \
+ tss2_provision \
+ tss2_quote \
+ tss2_setappdata \
+ tss2_setcertificate \
+ tss2_setdescription \
+ tss2_sign \
+ tss2_unseal \
+ tss2_verifyquote \
+ tss2_verifysignature \
+ tss2_writeauthorizenv
$(STATEDIR)/tpm2-tools.targetinstall:
@$(call targetinfo)
@@ -145,8 +204,14 @@ $(STATEDIR)/tpm2-tools.targetinstall:
@$(call install_fixup, tpm2-tools,AUTHOR,"Marc Kleine-Budde <mkl@pengutronix.de>")
@$(call install_fixup, tpm2-tools,DESCRIPTION,missing)
- @$(foreach prog, $(TPM2_TOOLS_PROGS), \
- $(call install_copy, tpm2-tools, 0, 0, 0755, -, /usr/bin/$(prog))$(ptx/nl))
+ @$(call install_copy, tpm2-tools, 0, 0, 0755, -, /usr/bin/tpm2)
+ @$(call install_copy, tpm2-tools, 0, 0, 0755, -, /usr/bin/tss2)
+
+ @$(foreach prog, $(TPM2_TOOLS_TPM2_PROGS), \
+ @$(call install_link, tpm2-tools, tpm2, /usr/bin/$(prog))$(ptx/nl))
+
+ @$(foreach prog, $(TPM2_TOOLS_TSS2_PROGS), \
+ @$(call install_link, tpm2-tools, tss2, /usr/bin/$(prog))$(ptx/nl))
@$(call install_finish, tpm2-tools)
diff --git a/rules/tpm2-tss.in b/rules/tpm2-tss.in
index dbb310072..4149323f2 100644
--- a/rules/tpm2-tss.in
+++ b/rules/tpm2-tss.in
@@ -4,6 +4,9 @@ config TPM2_TSS
tristate
select HOST_AUTOTOOLS_AUTOCONF_ARCHIVE
select OPENSSL
+ select JSON_C
+ select LIBCURL
+ select LIBUUID
prompt "tpm2-tss"
help
TPM2 Software stack library - TSS and TCTI libraries
diff --git a/rules/tpm2-tss.make b/rules/tpm2-tss.make
index 768c64426..729172b4c 100644
--- a/rules/tpm2-tss.make
+++ b/rules/tpm2-tss.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_TPM2_TSS) += tpm2-tss
#
# Paths and names
#
-TPM2_TSS_VERSION := 2.3.1
-TPM2_TSS_MD5 := 5744b10e3cef56df5d65b50f51fb3fe9
+TPM2_TSS_VERSION := 4.0.1
+TPM2_TSS_MD5 := fff676c669519097906bd8ce28fc4238
TPM2_TSS := tpm2-tss-$(TPM2_TSS_VERSION)
TPM2_TSS_SUFFIX := tar.gz
TPM2_TSS_URL := https://github.com/tpm2-software/tpm2-tss/releases/download/$(TPM2_TSS_VERSION)/$(TPM2_TSS).$(TPM2_TSS_SUFFIX)
@@ -32,13 +32,18 @@ TPM2_TSS_LICENSE_FILES := file://LICENSE;md5=500b2e742befc3da00684d8a1d5fd9da
# autoconf
#
TPM2_TSS_CONF_TOOL := autoconf
+TPM2_TSS_CONF_ENV := \
+ $(CROSS_ENV) \
+ ac_cv_prog_groupadd=yes \
+ ac_cv_prog_useradd=yes \
+ ac_cv_prog_addgroup=yes \
+ ac_cv_prog_adduser=yes
+
TPM2_TSS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--enable-debug=info \
--disable-unit \
- --enable-esapi \
- --disable-tcti-device-async \
- --disable-tcti-partial-reads \
+ --enable-fapi \
--enable-tcti-device \
--enable-tcti-mssim \
--disable-tcti-fuzzing \
@@ -83,6 +88,7 @@ $(STATEDIR)/tpm2-tss.targetinstall:
@$(call install_lib, tpm2-tss, 0, 0, 0644, libtss2-esys)
@$(call install_lib, tpm2-tss, 0, 0, 0644, libtss2-mu)
@$(call install_lib, tpm2-tss, 0, 0, 0644, libtss2-sys)
+ @$(call install_lib, tpm2-tss, 0, 0, 0644, libtss2-fapi)
@$(call install_lib, tpm2-tss, 0, 0, 0644, libtss2-tcti-device)
@$(call install_lib, tpm2-tss, 0, 0, 0644, libtss2-tcti-mssim)
@$(call install_lib, tpm2-tss, 0, 0, 0644, libtss2-tctildr)
diff --git a/rules/trace-cmd.make b/rules/trace-cmd.make
index ccff58dd2..a46b8dc44 100644
--- a/rules/trace-cmd.make
+++ b/rules/trace-cmd.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_TRACE_CMD) += trace-cmd
#
# Paths and names
#
-TRACE_CMD_VERSION := 2.9.1
-TRACE_CMD_MD5 := c699c6df78faa18af3f2742dcf3e5e3c
+TRACE_CMD_VERSION := 2.9.7
+TRACE_CMD_MD5 := 003988f6dd7cac3bf1da04af03d50b5b
TRACE_CMD := trace-cmd-v$(TRACE_CMD_VERSION)
TRACE_CMD_SUFFIX := tar.gz
TRACE_CMD_URL := https://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/snapshot/$(TRACE_CMD).$(TRACE_CMD_SUFFIX)
@@ -33,7 +33,8 @@ TRACE_CMD_MAKE_ENV := \
$(CROSS_ENV) \
CROSS_COMPILE=$(COMPILER_PREFIX) \
NO_PYTHON=1 \
- prefix=/usr
+ prefix=/usr \
+ libdir_relative=lib
# ----------------------------------------------------------------------------
# Target-Install
@@ -68,7 +69,7 @@ $(STATEDIR)/trace-cmd.targetinstall:
@$(foreach plugin, $(TRACE_CMD_PLUGINS), \
$(call install_lib, trace-cmd, 0, 0, 0644, \
- traceevent/plugins/plugin_$(plugin));)
+ traceevent/plugins/plugin_$(plugin))$(ptx/nl))
@$(call install_finish, trace-cmd)
diff --git a/rules/tree.in b/rules/tree.in
index d513f04c9..4a03f1bd0 100644
--- a/rules/tree.in
+++ b/rules/tree.in
@@ -4,6 +4,10 @@ config TREE
tristate
prompt "tree"
select GCCLIBS_GCC_S
+ depends on !BUSYBOX_TREE || ALLYES
help
A directory listing program displaying a depth indented list of
files.
+
+comment "BusyBox' tree is selected!"
+ depends on BUSYBOX_TREE
diff --git a/rules/tree.make b/rules/tree.make
index 1f1512f21..ad4200541 100644
--- a/rules/tree.make
+++ b/rules/tree.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_TREE) += tree
#
# Paths and names
#
-TREE_VERSION := 1.6.0
-TREE_MD5 := 04e967a3f4108d50cde3b4b0e89e970a
+TREE_VERSION := 2.1.0
+TREE_MD5 := 50aa5cdb28df6340ef67a3a3ec953ffc
TREE := tree-$(TREE_VERSION)
TREE_SUFFIX := tgz
-TREE_URL := http://mama.indstate.edu/users/ice/tree/src/$(TREE).$(TREE_SUFFIX)
+TREE_URL := http://oldmanprogrammer.net/tar/tree/$(TREE).$(TREE_SUFFIX)
TREE_SOURCE := $(SRCDIR)/$(TREE).$(TREE_SUFFIX)
TREE_DIR := $(BUILDDIR)/$(TREE)
TREE_LICENSE := GPL-2.0-or-later AND LGPL-2.1-or-later
@@ -36,7 +36,8 @@ TREE_MAKE_OPT := \
$(CROSS_ENV_AS)
TREE_INSTALL_OPT := \
- prefix=$(TREE_PKGDIR)/usr install
+ PREFIX=/usr \
+ install
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/u-boot.make b/rules/u-boot.make
index 38c32bf27..4bc7f3f78 100644
--- a/rules/u-boot.make
+++ b/rules/u-boot.make
@@ -23,9 +23,9 @@ U_BOOT_SUFFIX := tar.bz2
U_BOOT_URL := https://ftp.denx.de/pub/u-boot/$(U_BOOT).$(U_BOOT_SUFFIX)
U_BOOT_SOURCE := $(SRCDIR)/$(U_BOOT).$(U_BOOT_SUFFIX)
U_BOOT_DIR := $(BUILDDIR)/$(U_BOOT)
-U_BOOT_BUILD_DIR := $(U_BOOT_DIR)-build
+U_BOOT_BUILD_DIR := $(U_BOOT_DIR)$(call ptx/ifdef, PTXCONF_U_BOOT_BUILD_OOT,-build)
U_BOOT_DEVPKG := NO
-U_BOOT_BUILD_OOT := KEEP
+U_BOOT_BUILD_OOT := $(call ptx/ifdef, PTXCONF_U_BOOT_BUILD_OOT,KEEP,NO)
ifdef PTXCONF_U_BOOT_CONFIGSYSTEM_KCONFIG
U_BOOT_CONFIG := $(call ptx/in-platformconfigdir, \
@@ -49,12 +49,15 @@ U_BOOT_ENV_IMAGE_CUSTOM_SRC := $(call ptx/in-platformconfigdir, \
$(call ptx/cfghash-file, U_BOOT, $(U_BOOT_ENV_IMAGE_CUSTOM_SRC))
endif
+# use host pkg-config for host tools
+U_BOOT_PATH := PATH=$(HOST_PATH)
+
U_BOOT_WRAPPER_BLACKLIST := \
$(PTXDIST_LOWLEVEL_WRAPPER_BLACKLIST)
U_BOOT_CONF_OPT := \
-C $(U_BOOT_DIR) \
- O=$(U_BOOT_BUILD_DIR) \
+ $(call ptx/ifdef, PTXCONF_U_BOOT_BUILD_OOT,O=$(U_BOOT_BUILD_DIR)) \
V=$(PTXDIST_VERBOSE) \
$(call remove_quotes,$(PTXCONF_U_BOOT_CUSTOM_MAKE_OPTS))
@@ -138,48 +141,51 @@ $(STATEDIR)/u-boot.install:
$(STATEDIR)/u-boot.targetinstall:
@$(call targetinfo)
- @install -v -D -m644 $(U_BOOT_BUILD_DIR)/u-boot.bin $(IMAGEDIR)/u-boot.bin
+ @$(call world/image-clean, U_BOOT)
+ifdef PTXCONF_U_BOOT_INSTALL_U_BOOT_BIN
+ @$(call ptx/image-install, U_BOOT, $(U_BOOT_BUILD_DIR)/u-boot.bin)
+endif
ifdef PTXCONF_U_BOOT_INSTALL_SREC
- @install -v -D -m644 $(U_BOOT_BUILD_DIR)/u-boot.srec $(IMAGEDIR)/u-boot.srec
+ @$(call ptx/image-install, U_BOOT, $(U_BOOT_BUILD_DIR)/u-boot.srec)
endif
ifdef PTXCONF_U_BOOT_INSTALL_ELF
- @install -v -D -m644 $(U_BOOT_BUILD_DIR)/u-boot $(IMAGEDIR)/u-boot.elf
+ @$(call ptx/image-install, U_BOOT, $(U_BOOT_BUILD_DIR)/u-boot, u-boot.elf)
endif
ifdef PTXCONF_U_BOOT_INSTALL_EFI_APPLICATION
- @install -v -D -m644 $(U_BOOT_BUILD_DIR)/u-boot-app.efi $(IMAGEDIR)/u-boot-app.efi
+ @$(call ptx/image-install, U_BOOT, $(U_BOOT_BUILD_DIR)/u-boot-app.efi)
endif
ifdef PTXCONF_U_BOOT_INSTALL_EFI_PAYLOAD
- @install -v -D -m644 $(U_BOOT_BUILD_DIR)/u-boot-payload.efi $(IMAGEDIR)/u-boot-payload.efi
+ @$(call ptx/image-install, U_BOOT, $(U_BOOT_BUILD_DIR)/u-boot-payload.efi)
endif
ifdef PTXCONF_U_BOOT_INSTALL_SPL
- @install -v -D -m644 $(U_BOOT_BUILD_DIR)/SPL $(IMAGEDIR)/SPL
+ @$(call ptx/image-install, U_BOOT, $(U_BOOT_BUILD_DIR)/SPL)
endif
ifdef PTXCONF_U_BOOT_INSTALL_MLO
- @install -v -D -m644 $(U_BOOT_BUILD_DIR)/MLO $(IMAGEDIR)/MLO
+ @$(call ptx/image-install, U_BOOT, $(U_BOOT_BUILD_DIR)/MLO)
endif
ifdef PTXCONF_U_BOOT_INSTALL_U_BOOT_IMG
- @install -v -D -m644 $(U_BOOT_BUILD_DIR)/u-boot.img $(IMAGEDIR)/u-boot.img
+ @$(call ptx/image-install, U_BOOT, $(U_BOOT_BUILD_DIR)/u-boot.img)
endif
ifdef PTXCONF_U_BOOT_INSTALL_U_BOOT_IMX
- @install -v -D -m644 $(U_BOOT_BUILD_DIR)/u-boot.imx $(IMAGEDIR)/u-boot.imx
+ @$(call ptx/image-install, U_BOOT, $(U_BOOT_BUILD_DIR)/u-boot.imx)
endif
ifdef PTXCONF_U_BOOT_INSTALL_U_BOOT_DTB_IMX
- @install -v -D -m644 $(U_BOOT_BUILD_DIR)/u-boot-dtb.imx $(IMAGEDIR)/u-boot-dtb.imx
+ @$(call ptx/image-install, U_BOOT, $(U_BOOT_BUILD_DIR)/u-boot-dtb.imx)
endif
ifdef PTXCONF_U_BOOT_INSTALL_U_BOOT_DTB
- @install -v -D -m644 $(U_BOOT_BUILD_DIR)/u-boot-dtb.bin \
- $(IMAGEDIR)/u-boot-dtb.bin
+ @$(call ptx/image-install, U_BOOT, $(U_BOOT_BUILD_DIR)/u-boot-dtb.bin)
endif
ifdef PTXCONF_U_BOOT_INSTALL_U_BOOT_WITH_SPL_PBL
- @install -v -D -m644 $(U_BOOT_BUILD_DIR)/u-boot-with-spl-pbl.bin \
- $(IMAGEDIR)/u-boot-with-spl-pbl.bin
+ @$(call ptx/image-install, U_BOOT, $(U_BOOT_BUILD_DIR)/u-boot-with-spl-pbl.bin)
endif
ifdef PTXCONF_U_BOOT_INSTALL_U_BOOT_STM32
- @install -v -D -m644 $(U_BOOT_BUILD_DIR)/u-boot.stm32 $(IMAGEDIR)/u-boot.stm32
+ @$(call ptx/image-install, U_BOOT, $(U_BOOT_BUILD_DIR)/u-boot.stm32)
+endif
+ifdef PTXCONF_U_BOOT_INSTALL_U_BOOT_FLASH_BIN
+ @$(call ptx/image-install, U_BOOT, $(U_BOOT_BUILD_DIR)/flash.bin)
endif
ifndef PTXCONF_U_BOOT_ENV_IMAGE_NONE
- @install -v -D -m644 $(U_BOOT_BUILD_DIR)/u-boot-env.img \
- $(IMAGEDIR)/u-boot-env.img
+ @$(call ptx/image-install, U_BOOT, $(U_BOOT_BUILD_DIR)/u-boot-env.img)
endif
ifdef PTXCONF_U_BOOT_BOOT_SCRIPT
@@ -203,18 +209,14 @@ endif
$(STATEDIR)/u-boot.clean:
@$(call targetinfo)
@$(call clean_pkg, U_BOOT)
- @rm -vf $(IMAGEDIR)/u-boot.bin $(IMAGEDIR)/u-boot.srec $(IMAGEDIR)/u-boot.elf
- @rm -vf $(IMAGEDIR)/u-boot.img $(IMAGEDIR)/SPL $(IMAGEDIR)/MLO
- @rm -vf $(IMAGEDIR)/u-boot.imx $(IMAGEDIR)/u-boot-dtb.imx
- @rm -vf $(IMAGEDIR)/u-boot-env.img
- @rm -vf $(IMAGEDIR)/u-boot-dtb.bin $(IMAGEDIR)/u-boot-with-spl-pbl.bin
- @rm -vf $(IMAGEDIR)/u-boot.stm32
# ----------------------------------------------------------------------------
# oldconfig / menuconfig
# ----------------------------------------------------------------------------
+ifdef PTXCONF_U_BOOT_CONFIGSYSTEM_KCONFIG
u-boot_oldconfig u-boot_menuconfig u-boot_nconfig: $(STATEDIR)/u-boot.extract
@$(call world/kconfig, U_BOOT, $(subst u-boot_,,$@))
+endif
# vim: syntax=make
diff --git a/rules/udev.in b/rules/udev.in
index a682dcc4b..b446138db 100644
--- a/rules/udev.in
+++ b/rules/udev.in
@@ -3,14 +3,14 @@
config UDEV
tristate
select VIRTUAL
- select SYSTEMD if INITMETHOD_SYSTEMD
- select UDEV_LEGACY if !INITMETHOD_SYSTEMD
+ select SYSTEMD if INITMETHOD_SYSTEMD
+ select UDEV_LEGACY if !INITMETHOD_SYSTEMD
+ select UDEV_LEGACY_LIBUDEV if !INITMETHOD_SYSTEMD && UDEV_LIBUDEV
if UDEV
config UDEV_LIBUDEV
bool
- select UDEV_LEGACY_LIBUDEV if UDEV_LEGACY
endif
@@ -96,7 +96,7 @@ config UDEV_LEGACY_CUST_RULES
prompt "install customized udev rules"
help
This will install the customized udev rules files from
- projectroot/usr/usr/lib/udev/rules.d into /lib/udev/rules.d
+ projectroot/usr/lib/udev/rules.d into /usr/lib/udev/rules.d
config UDEV_LEGACY_LIBUDEV
bool
@@ -149,7 +149,7 @@ config UDEV_LEGACY_ACCELEROMETER
depends on SYSTEMD = n
prompt "accelerometer"
help
- When an "change" event is received on an accelerometer,
+ When a "change" event is received on an accelerometer,
open its device node, and from the value, as well as the previous
value of the property, calculate the device's new orientation,
and export it as ID_INPUT_ACCELEROMETER_ORIENTATION.
diff --git a/rules/udev.make b/rules/udev.make
index 9cb359017..9343a2277 100644
--- a/rules/udev.make
+++ b/rules/udev.make
@@ -56,7 +56,7 @@ UDEV_LEGACY_CONF_OPT := \
--disable-floppy \
--without-selinux \
--with-usb-ids-path=/usr/share/usb.ids \
- --with-pci-ids-path=/usr/share/pci.ids$(call ptx/ifdef, PTXCONF_PCIUTILS_COMPRESS,.gz,)
+ --with-pci-ids-path=/usr/share/pci.ids
UDEV_LEGACY_RULES-y := \
50-udev-default.rules \
@@ -116,7 +116,7 @@ endif
@$(foreach rule, $(UDEV_LEGACY_RULES-y), \
$(call install_copy, udev, 0, 0, 0644, -, \
- /usr/lib/udev/rules.d/$(rule));)
+ /usr/lib/udev/rules.d/$(rule))$(ptx/nl))
ifdef PTXCONF_UDEV_LEGACY_KEYMAPS
@cd $(UDEV_LEGACY_PKGDIR) && \
@@ -131,7 +131,7 @@ endif
@$(foreach helper, $(UDEV_LEGACY_HELPER-y), \
$(call install_copy, udev, 0, 0, 0755, -, \
- /usr/lib/udev/$(helper));)
+ /usr/lib/udev/$(helper))$(ptx/nl))
ifdef PTXCONF_UDEV_LEGACY_LIBUDEV
@$(call install_lib, udev, 0, 0, 0644, libudev)
diff --git a/rules/udisks.in b/rules/udisks.in
new file mode 100644
index 000000000..04beb8fd1
--- /dev/null
+++ b/rules/udisks.in
@@ -0,0 +1,23 @@
+## SECTION=shell_and_console
+
+menuconfig UDISKS
+ tristate
+ select GLIB
+ select LIBATASMART
+ select LIBBLOCKDEV
+ select LIBGUDEV
+ select POLKIT
+ prompt "udisks"
+ help
+ The UDisks project provides a daemon, tools and libraries to access
+ and manipulate disks, storage devices and technologies.
+
+if UDISKS
+
+config UDISKS_SYSTEMD_UNIT
+ bool
+ default y
+ depends on INITMETHOD_SYSTEMD
+ prompt "install systemd unit file"
+
+endif
diff --git a/rules/udisks.make b/rules/udisks.make
new file mode 100644
index 000000000..bad78f133
--- /dev/null
+++ b/rules/udisks.make
@@ -0,0 +1,110 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2024 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_UDISKS) += udisks
+
+#
+# Paths and names
+#
+UDISKS_VERSION := 2.10.1
+UDISKS_MD5 := 613af9bfea52cde74d2ac34d96de544d
+UDISKS := udisks-$(UDISKS_VERSION)
+UDISKS_SUFFIX := tar.bz2
+UDISKS_URL := https://github.com/storaged-project/udisks/releases/download/$(UDISKS)/$(UDISKS).$(UDISKS_SUFFIX)
+UDISKS_SOURCE := $(SRCDIR)/$(UDISKS).$(UDISKS_SUFFIX)
+UDISKS_DIR := $(BUILDDIR)/$(UDISKS)
+UDISKS_LICENSE := GPL-2.0-or-later
+UDISKS_LICENSE_FILES := \
+ file://COPYING;md5=dd79f6dbbffdbc8e86b086a8f0c0ef43
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+UDISKS_CONF_TOOL := autoconf
+UDISKS_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --disable-debug \
+ --disable-gtk-doc \
+ --disable-gtk-doc-html \
+ --disable-gtk-doc-pdf \
+ --disable-man \
+ --enable-daemon \
+ --disable-introspection \
+ --disable-fhs-media \
+ --disable-acl \
+ --disable-lvm2 \
+ --disable-iscsi \
+ --disable-btrfs \
+ --disable-lsm \
+ --disable-nls \
+ --disable-rpath \
+ --with-udevdir=/usr/lib/udev \
+ --with-systemdsystemunitdir=/usr/lib/systemd/system \
+ --with-tmpfilesdir=/usr/lib/tmpfiles.d \
+ --with-modloaddir=/usr/lib/modules-load.d \
+ --with-modprobedir=/usr/lib/modprobe.d
+
+UDISKS_MAKE_ENV := \
+ GETTEXTDATADIR=$(PTXDIST_SYSROOT_TARGET)/usr/share/gettext
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/udisks.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, udisks)
+ @$(call install_fixup, udisks,PRIORITY,optional)
+ @$(call install_fixup, udisks,SECTION,base)
+ @$(call install_fixup, udisks,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, udisks,DESCRIPTION,missing)
+
+ @$(call install_lib, udisks, 0, 0, 0644, libudisks2)
+
+ @$(call install_copy, udisks, 0, 0, 0755, -, \
+ /usr/bin/udisksctl)
+ @$(call install_copy, udisks, 0, 0, 0755, -, \
+ /usr/sbin/umount.udisks2)
+ @$(call install_copy, udisks, 0, 0, 0755, -, \
+ /usr/libexec/udisks2/udisksd)
+
+ifdef PTXCONF_UDISKS_SYSTEMD_UNIT
+ @$(call install_copy, udisks, 0, 0, 0644, -, \
+ /usr/lib/systemd/system/udisks2.service)
+endif
+
+ @$(call install_alternative, udisks, 0, 0, 0644, \
+ /etc/udisks2/udisks2.conf)
+
+ @$(call install_alternative, udisks, 0, 0, 0644, \
+ /usr/lib/tmpfiles.d/udisks2.conf)
+
+ @$(call install_copy, udisks, 0, 0, 0644, -, \
+ /usr/lib/udev/rules.d/80-udisks2.rules)
+
+ @$(call install_copy, udisks, 0, 0, 0644, -, \
+ /usr/share/dbus-1/system.d/org.freedesktop.UDisks2.conf)
+ @$(call install_copy, udisks, 0, 0, 0644, -, \
+ /usr/share/dbus-1/system-services/org.freedesktop.UDisks2.service)
+
+ @$(call install_alternative, udisks, 0, 0, 0644, \
+ /usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy)
+
+ @$(call install_finish, udisks)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/uhubctl.in b/rules/uhubctl.in
new file mode 100644
index 000000000..6693ba16d
--- /dev/null
+++ b/rules/uhubctl.in
@@ -0,0 +1,8 @@
+## SECTION=shell_and_console
+
+config UHUBCTL
+ tristate
+ select LIBUSB
+ prompt "uhubctl"
+ help
+ Utility to control USB power per-port on smart USB hubs.
diff --git a/rules/uhubctl.make b/rules/uhubctl.make
new file mode 100644
index 000000000..fc4219fb6
--- /dev/null
+++ b/rules/uhubctl.make
@@ -0,0 +1,54 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Lars Pedersen <lapeddk@gmail.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_UHUBCTL) += uhubctl
+
+#
+# Paths and names
+#
+UHUBCTL_VERSION := 2.5.0
+UHUBCTL_MD5 := e4e66d445ba8fda181ce4aa4abcd4247
+UHUBCTL := uhubctl-$(UHUBCTL_VERSION)
+UHUBCTL_SUFFIX := tar.gz
+UHUBCTL_URL := https://github.com/mvp/uhubctl/archive/v$(UHUBCTL_VERSION).$(UHUBCTL_SUFFIX)
+UHUBCTL_SOURCE := $(SRCDIR)/$(UHUBCTL).$(UHUBCTL_SUFFIX)
+UHUBCTL_DIR := $(BUILDDIR)/$(UHUBCTL)
+UHUBCTL_LICENSE := GPL-2.0-only
+UHUBCTL_LICENSE_FILES := \
+ file://LICENSE;md5=1e7b16e6ef7cd15d58b0f1c58dbf9817
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+UHUBCTL_CONF_TOOL := NO
+UHUBCTL_MAKE_ENV := $(CROSS_ENV)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/uhubctl.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, uhubctl)
+ @$(call install_fixup, uhubctl,PRIORITY,optional)
+ @$(call install_fixup, uhubctl,SECTION,base)
+ @$(call install_fixup, uhubctl,AUTHOR,"Lars Pedersen <lapeddk@gmail.com>")
+ @$(call install_fixup, uhubctl,DESCRIPTION,missing)
+
+ @$(call install_copy, uhubctl, 0, 0, 0755, -, /usr/sbin/uhubctl)
+
+ @$(call install_finish, uhubctl)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/unstrung.in b/rules/unstrung.in
deleted file mode 100644
index 67bd2a1d1..000000000
--- a/rules/unstrung.in
+++ /dev/null
@@ -1,31 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=networking
-
-menuconfig UNSTRUNG
- tristate
- prompt "unstrung "
- select BOOST
- select LIBPCAP
- select LIBUSB
- help
- Unstrung is an implementation of the IETF ROLL Working Group's RPL
- RFC6550 routing protocol. RPL is pronounced Ripple. RPL is an IETF
- protocol that provides connectivity among nodes that can not all
- hear each other, but rather have to form a multihop mesh-like
- network.
-
- STAGING: remove in ptxdist-2021.05.0
- Upstream seems to be mostly dead. Fails to build with gcc >= 9.x.
-
-if UNSTRUNG
-
-config UNSTRUNG_TESTING
- bool
- prompt "testing tools"
- help
- If enabled testing programs peck, senddio, senddao will be builed and
- installed.
-
-endif
-
diff --git a/rules/unstrung.make b/rules/unstrung.make
deleted file mode 100644
index 444a912e5..000000000
--- a/rules/unstrung.make
+++ /dev/null
@@ -1,64 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2016 by Alexander Aring <aar@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_UNSTRUNG) += unstrung
-
-#
-# Paths and names
-#
-UNSTRUNG_VERSION := 1.11.0
-UNSTRUNG_MD5 := b18fa7644f19688e75eb37475816d73a
-UNSTRUNG := unstrung-$(UNSTRUNG_VERSION)
-UNSTRUNG_SUFFIX := tar.gz
-UNSTRUNG_URL := http://unstrung.sandelman.ca/downloads/$(UNSTRUNG).$(UNSTRUNG_SUFFIX)
-UNSTRUNG_SOURCE := $(SRCDIR)/$(UNSTRUNG).$(UNSTRUNG_SUFFIX)
-UNSTRUNG_DIR := $(BUILDDIR)/$(UNSTRUNG)
-UNSTRUNG_LICENSE := GPL-2.0-or-later
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-UNSTRUNG_CONF_TOOL := NO
-UNSTRUNG_MAKE_ENV := \
- $(CROSS_ENV) \
- ARCH=$(PTXCONF_ARCH_STRING) \
- EMBEDDED=$(call ptx/ifdef,PTXCONF_UNSTRUNG_TESTING,,1)
-
-UNSTRUNG_MAKE_OPT = \
- BUILDNUMBER="$(shell date --utc --date @$(SOURCE_DATE_EPOCH) '+%Y%m%d_%s')"
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/unstrung.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, unstrung)
- @$(call install_fixup, unstrung,PRIORITY,optional)
- @$(call install_fixup, unstrung,SECTION,base)
- @$(call install_fixup, unstrung,AUTHOR,"Alexander Aring <aar@pengutronix.de>")
- @$(call install_fixup, unstrung,DESCRIPTION,missing)
-
- @$(call install_copy, unstrung, 0, 0, 0755, -, /sbin/sunshine)
-
-ifdef PTXCONF_UNSTRUNG_TESTING
- @$(call install_copy, unstrung, 0, 0, 0755, -, /sbin/peck)
- @$(call install_copy, unstrung, 0, 0, 0755, -, /sbin/senddao)
- @$(call install_copy, unstrung, 0, 0, 0755, -, /sbin/senddio)
-endif
-
- @$(call install_finish, unstrung)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/unzip.make b/rules/unzip.make
index 2d565045b..2fdfa62a5 100644
--- a/rules/unzip.make
+++ b/rules/unzip.make
@@ -30,7 +30,6 @@ UNZIP_LICENSE_FILES := file://LICENSE;md5=94caec5a51ef55ef711ee4e8b1c69e29
# Compile
# ----------------------------------------------------------------------------
-UNZIP_PATH := PATH=$(CROSS_PATH)
UNZIP_MAKE_OPT := $(CROSS_ENV_CC) -f unix/Makefile generic
UNZIP_INSTALL_OPT := -f unix/Makefile prefix=$(UNZIP_PKGDIR)/usr install
diff --git a/rules/urshd.in b/rules/urshd.in
index 8bdeaa480..3519c1163 100644
--- a/rules/urshd.in
+++ b/rules/urshd.in
@@ -3,6 +3,10 @@ menuconfig URSHD
tristate
prompt "urshd "
depends on !INETUTILS_RSHD || ALLYES
+ select BUSYBOX_START_STOP_DAEMON if URSHD_STARSCRIPT && BUSYBOX
+ select BUSYBOX_FEATURE_START_STOP_DAEMON_LONG_OPTIONS if URSHD_STARSCRIPT && BUSYBOX_START_STOP_DAEMON
+ select BUSYBOX_FEATURE_START_STOP_DAEMON_FANCY if URSHD_STARSCRIPT && BUSYBOX_START_STOP_DAEMON
+ select ROOTFS_VAR_RUN if URSHD_STARSCRIPT
help
urshd (micro remote shell server) is a server for rsh program.
It is (indirectly) derived from BSD rshd with all the security
@@ -18,10 +22,6 @@ config URSHD_STARSCRIPT
bool
prompt "install startscript"
depends on INITMETHOD_BBINIT
- select BUSYBOX_START_STOP_DAEMON if BUSYBOX
- select BUSYBOX_FEATURE_START_STOP_DAEMON_LONG_OPTIONS if BUSYBOX_START_STOP_DAEMON
- select BUSYBOX_FEATURE_START_STOP_DAEMON_FANCY if BUSYBOX_START_STOP_DAEMON
- select ROOTFS_VAR_RUN
help
Enable this entry to install a startup script into
/etc/init.d. If no local 'projectroot/etc/init.d/urshd' exists, a
diff --git a/rules/urshd.make b/rules/urshd.make
index d03fa89f2..1dbca14c6 100644
--- a/rules/urshd.make
+++ b/rules/urshd.make
@@ -27,13 +27,11 @@ URSHD_LICENSE := BSD-4-Clause
# Prepare
# ----------------------------------------------------------------------------
-URSHD_PATH := PATH=$(CROSS_PATH)
-URSHD_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-URSHD_AUTOCONF := $(CROSS_AUTOCONF_USR)
+URSHD_CONF_TOOL := autoconf
+URSHD_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/usb-modeswitch.make b/rules/usb-modeswitch.make
index 111116e98..0faaeb5e9 100644
--- a/rules/usb-modeswitch.make
+++ b/rules/usb-modeswitch.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_USB_MODESWITCH) += usb-modeswitch
#
# Paths and names
#
-USB_MODESWITCH_VERSION := 2.6.0
-USB_MODESWITCH_MD5 := be73dcc84025794081a1d4d4e5a75e4c
+USB_MODESWITCH_VERSION := 2.6.1
+USB_MODESWITCH_MD5 := 69d00d6ed7097b97d972a159d14cfba1
USB_MODESWITCH := usb-modeswitch-$(USB_MODESWITCH_VERSION)
USB_MODESWITCH_SUFFIX := tar.bz2
USB_MODESWITCH_URL := http://www.draisberghof.de/usb_modeswitch/$(USB_MODESWITCH).$(USB_MODESWITCH_SUFFIX)
diff --git a/rules/usbip.in b/rules/usbip.in
index 4455ce484..3b6fb77a7 100644
--- a/rules/usbip.in
+++ b/rules/usbip.in
@@ -4,6 +4,8 @@ config USBIP
tristate
select UDEV
select UDEV_LIBUDEV
+ select HWDATA if !SYSTEMD_HWDB
+ select HWDATA_USB if !SYSTEMD_HWDB
prompt "usbip"
help
USB/IP system for sharing USB devices over the network.
diff --git a/rules/usbip.make b/rules/usbip.make
index a85512147..9d76ec578 100644
--- a/rules/usbip.make
+++ b/rules/usbip.make
@@ -32,7 +32,7 @@ USBIP_CONF_TOOL := autoconf
USBIP_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--without-tcp-wrappers \
- --with-usbids-dir=/usr/share/hwdata/ \
+ --with-usbids-dir=/usr/share/ \
--with-fortify
# ----------------------------------------------------------------------------
diff --git a/rules/usbutils.in b/rules/usbutils.in
index f259f9c4e..105bb078a 100644
--- a/rules/usbutils.in
+++ b/rules/usbutils.in
@@ -2,6 +2,10 @@
menuconfig USBUTILS
select LIBUSB
+ select UDEV
+ select UDEV_LIBUDEV
+ select HWDATA if !SYSTEMD_HWDB
+ select HWDATA_USB if !SYSTEMD_HWDB
tristate
prompt "usbutils "
help
diff --git a/rules/usbutils.make b/rules/usbutils.make
index 80af5a2bb..1dac53823 100644
--- a/rules/usbutils.make
+++ b/rules/usbutils.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_USBUTILS) += usbutils
#
# Paths and names
#
-USBUTILS_VERSION := 007
-USBUTILS_MD5 := c9df5107ae9d26b10a1736a261250139
+USBUTILS_VERSION := 017
+USBUTILS_MD5 := 8ff21441faf2e8128e4810b3d6e49059
USBUTILS := usbutils-$(USBUTILS_VERSION)
USBUTILS_SUFFIX := tar.xz
USBUTILS_URL := $(call ptx/mirror, KERNEL, utils/usb/usbutils/$(USBUTILS).$(USBUTILS_SUFFIX))
@@ -28,17 +28,13 @@ USBUTILS_LICENSE := GPL-2.0-only
# Prepare
# ----------------------------------------------------------------------------
-USBUTILS_PATH := PATH=$(CROSS_PATH)
-USBUTILS_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-USBUTILS_AUTOCONF := \
+USBUTILS_CONF_TOOL := autoconf
+USBUTILS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
- $(GLOBAL_LARGE_FILE_OPTION) \
- --disable-zlib \
- --enable-usbids
+ $(GLOBAL_LARGE_FILE_OPTION)
# ----------------------------------------------------------------------------
# Target-Install
@@ -62,7 +58,6 @@ endif
ifdef PTXCONF_USBUTILS_USBDEVICES
@$(call install_copy, usbutils, 0, 0, 0755, -, /usr/bin/usb-devices)
endif
- @$(call install_copy, usbutils, 0, 0, 0644, -, /usr/share/usb.ids,n)
@$(call install_finish, usbutils)
diff --git a/rules/ustr.in b/rules/ustr.in
deleted file mode 100644
index 60cfe89f8..000000000
--- a/rules/ustr.in
+++ /dev/null
@@ -1,14 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=system_libraries
-
-config USTR
- tristate
- prompt "ustr"
- help
- ustr (Micro string library) is a string API for C. It has tiny overhead over
- just plain strdup(), is much safer, is easier to use, is faster for many
- operations, can be used with read-only or automatically allocated data.
-
- STAGING: remove in PTXdist 2021.07.0
- No new versions since 2008, and fails to download.
diff --git a/rules/ustr.make b/rules/ustr.make
deleted file mode 100644
index 513f5535c..000000000
--- a/rules/ustr.make
+++ /dev/null
@@ -1,59 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2012 by Wolfram Sang <w.sang@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_USTR) += ustr
-
-#
-# Paths and names
-#
-USTR_VERSION := 1.0.4
-USTR_MD5 := 93147d9f0c9765d4cd0f04f7e44bdfce
-USTR := ustr-$(USTR_VERSION)
-USTR_SUFFIX := tar.bz2
-USTR_URL := http://www.and.org/ustr/$(USTR_VERSION)/$(USTR).$(USTR_SUFFIX)
-USTR_SOURCE := $(SRCDIR)/$(USTR).$(USTR_SUFFIX)
-USTR_DIR := $(BUILDDIR)/$(USTR)
-USTR_LICENSE := LGPL-2.0-or-later AND MIT AND BSD
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-USTR_CONF_TOOL := NO
-USTR_MAKE_OPT := \
- $(CROSS_ENV_PROGS) \
- VSNP=0 \
- SZ64=$(call ptx/ifdef, PTXCONF_ARCH_LP64,1,0) \
- all-shared
-USTR_INSTALL_OPT := \
- $(USTR_MAKE_OPT) \
- install
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/ustr.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, ustr)
- @$(call install_fixup, ustr,PRIORITY,optional)
- @$(call install_fixup, ustr,SECTION,base)
- @$(call install_fixup, ustr,AUTHOR,"Wolfram Sang <w.sang@pengutronix.de>")
- @$(call install_fixup, ustr,DESCRIPTION,missing)
-
- @$(call install_lib, ustr, 0, 0, 0644, libustr-1.0)
-
- @$(call install_finish, ustr)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/util-linux-ng.make b/rules/util-linux-ng.make
deleted file mode 100644
index 63d6f68fd..000000000
--- a/rules/util-linux-ng.make
+++ /dev/null
@@ -1,347 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2008 by Robert Schwebel
-# 2010 by Marc Kleine-Budde <mkl@penutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_UTIL_LINUX_NG) += util-linux-ng
-
-#
-# Paths and names
-#
-UTIL_LINUX_NG_VERSION := 2.36.1
-UTIL_LINUX_NG_MD5 := b0b702979d47043d9c4d8ba93be21e20
-UTIL_LINUX_NG := util-linux-$(UTIL_LINUX_NG_VERSION)
-UTIL_LINUX_NG_SUFFIX := tar.xz
-UTIL_LINUX_NG_BASENAME := v$(call ptx/sh, echo $(UTIL_LINUX_NG_VERSION) | sed -e 's/\([0-9]*\.[0-9]*\)[^0-9].*\?/\1/g')
-UTIL_LINUX_NG_URL := $(call ptx/mirror, KERNEL, utils/util-linux/$(UTIL_LINUX_NG_BASENAME)/$(UTIL_LINUX_NG).$(UTIL_LINUX_NG_SUFFIX))
-UTIL_LINUX_NG_SOURCE := $(SRCDIR)/$(UTIL_LINUX_NG).$(UTIL_LINUX_NG_SUFFIX)
-UTIL_LINUX_NG_DIR := $(BUILDDIR)/$(UTIL_LINUX_NG)
-UTIL_LINUX_NG_LICENSE := GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.0-or-later AND BSD-3-Clause AND BSD-4-Clause AND public_domain
-UTIL_LINUX_NG_LICENSE_FILES := \
- file://Documentation/licenses/COPYING.GPL-2.0-or-later;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://Documentation/licenses/COPYING.BSD-3-Clause;md5=58dcd8452651fc8b07d1f65ce07ca8af \
- file://Documentation/licenses/COPYING.BSD-4-Clause-UC;md5=263860f8968d8bafa5392cab74285262 \
- file://Documentation/licenses/COPYING.LGPL-2.1-or-later;md5=4fbd65380cdd255951079008b364516c
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-UTIL_LINUX_NG_CONF_ENV := \
- $(CROSS_ENV) \
- $(call ptx/ncurses, PTXCONF_UTIL_LINUX_NG_USES_NCURSES) \
- scanf_cv_type_modifier=as \
- ac_cv_path_BLKID=no \
- ac_cv_path_PERL=no \
- ac_cv_path_VOLID=no
-
-#
-# autoconf
-#
-UTIL_LINUX_NG_CONF_TOOL := autoconf
-UTIL_LINUX_NG_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --bindir=/usr/bin \
- --sbindir=/usr/sbin \
- --disable-werror \
- --disable-asan \
- --disable-ubsan \
- --enable-shared \
- --disable-static \
- --enable-symvers \
- --disable-gtk-doc \
- $(GLOBAL_LARGE_FILE_OPTION) \
- --enable-assert \
- --disable-nls \
- --disable-rpath \
- --disable-static-programs \
- --enable-all-programs=undefined \
- --enable-tls \
- --disable-widechar \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_LIBUUID)-libuuid \
- --disable-libuuid-force-uuidd \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_LIBBLKID)-libblkid \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_LIBMOUNT)-libmount \
- --disable-libmount-support-mtab \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_LIBSMARTCOLS)-libsmartcols \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_LIBFDISK)-libfdisk \
- $(call ptx/ifdef, PTXCONF_UTIL_LINUX_NG_FDISKS,,--disable-fdisks) \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_MOUNT)-mount \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_LOSETUP)-losetup \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_ZRAMCTL)-zramctl \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_FSCK)-fsck \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_PARTX_TOOLS)-partx \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_UUIDD)-uuidd \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_MOUNTPOINT)-mountpoint \
- --disable-fallocate \
- --disable-unshare \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_NSENTER)-nsenter \
- --disable-setpriv \
- --disable-hardlink \
- --disable-eject \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_AGETTY)-agetty \
- --disable-plymouth_support \
- --disable-cramfs \
- --disable-bfs \
- --disable-minix \
- --disable-fdformat \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_HWCLOCK)-hwclock \
- --disable-lslogins \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_WDCTL)-wdctl \
- --disable-cal \
- --disable-logger \
- --disable-switch_root \
- --disable-pivot_root \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_LSMEM)-lsmem \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_CHMEM)-chmem \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_IPCRM)-ipcrm \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_IPCS)-ipcs \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_IRQTOP)-irqtop \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_LSIRQ)-lsirq \
- --disable-rfkill \
- --disable-tunelp \
- --disable-kill \
- --disable-last \
- --disable-utmpdump \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_LINE)-line \
- --disable-mesg \
- --disable-raw \
- --disable-rename \
- --disable-vipw \
- --disable-newgrp \
- --disable-chfn-chsh-password \
- --disable-chfn-chsh \
- --disable-chsh-only-listed \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_LOGIN)-login \
- --disable-login-chown-vcs \
- --disable-login-stat-mail \
- --disable-nologin \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_SULOGIN)-sulogin \
- --disable-su \
- --disable-runuser \
- --disable-ul \
- --disable-more \
- --disable-pg \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_SETTERM)-setterm \
- --$(call ptx/endis, PTXCONF_UTIL_LINUX_NG_SCHEDUTILS)-schedutils \
- --disable-wall \
- --disable-write \
- --disable-bash-completion \
- --disable-pylibmount \
- --disable-pg-bell \
- --disable-use-tty-group \
- --disable-sulogin-emergency-mount \
- --disable-usrdir-path \
- --disable-makeinstall-chown \
- --disable-makeinstall-setuid \
- --disable-colors-default \
- --without-libiconv-prefix \
- --without-libintl-prefix \
- --with-util \
- --without-selinux \
- --without-audit \
- --without-udev \
- --without-ncursesw \
- --$(call ptx/wwo, PTXCONF_UTIL_LINUX_NG_USES_NCURSES)-ncurses \
- --without-slang \
- --without-tinfo \
- --without-readline \
- --without-utempter \
- --without-cap-ng \
- --without-libmagic \
- --without-libz \
- --without-user \
- --without-btrfs \
- --without-systemd \
- --with-systemdsystemunitdir=/usr/lib/systemd/system \
- --without-smack \
- --without-econf \
- --without-python
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/util-linux-ng.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, util-linux-ng)
- @$(call install_fixup, util-linux-ng,PRIORITY,optional)
- @$(call install_fixup, util-linux-ng,SECTION,base)
- @$(call install_fixup, util-linux-ng,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, util-linux-ng,DESCRIPTION,missing)
-
-ifdef PTXCONF_UTIL_LINUX_NG_LIBUUID
- @$(call install_lib, util-linux-ng, 0, 0, 0644, libuuid)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_LIBBLKID
- @$(call install_lib, util-linux-ng, 0, 0, 0644, libblkid)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_LIBMOUNT
- @$(call install_lib, util-linux-ng, 0, 0, 0644, libmount)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_LIBSMARTCOLS
- @$(call install_lib, util-linux-ng, 0, 0, 0644, libsmartcols)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_LIBFDISK
- @$(call install_lib, util-linux-ng, 0, 0, 0644, libfdisk)
-endif
-
-ifdef PTXCONF_UTIL_LINUX_NG_LSMEM
- @$(call install_copy, util-linux-ng, root, root, 0755, -, /usr/bin/lsmem)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_CHMEM
- @$(call install_copy, util-linux-ng, root, root, 0755, -, /usr/bin/chmem)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_COLUMN
- @$(call install_copy, util-linux-ng, root, root, 0755, -, /usr/bin/column)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_LINE
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/line)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_GETOPT
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/getopt)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_DMESG
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/dmesg)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_MOUNTPOINT
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/mountpoint)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_NSENTER
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/nsenter)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_ADDPART
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/addpart)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_DELPART
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/delpart)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_PARTX
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/partx)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_AGETTY
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/agetty)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_MKSWAP
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/mkswap)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_SWAPON
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/swapon)
- @$(call install_link, util-linux-ng, swapon, /usr/sbin/swapoff)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_LOSETUP
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/losetup)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_MOUNT
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/mount)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_UMOUNT
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/umount)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_FLOCK
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/flock)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_FSCK
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/fsck)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_FSFREEZE
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/fsfreeze)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_FSTRIM
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/fstrim)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_IPCS
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/ipcs)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_IRQTOP
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/irqtop)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_LSIRQ
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/lsirq)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_IPCRM
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/ipcrm)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_READPROFILE
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/readprofile)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_FDISK
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/fdisk)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_SFDISK
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/sfdisk)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_CFDISK
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/cfdisk)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_SETTERM
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/setterm)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_CHRT
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/chrt)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_HWCLOCK
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/hwclock)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_WDCTL
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/wdctl)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_IONICE
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/ionice)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_TASKSET
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/taskset)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_MCOOKIE
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/mcookie)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_LDATTACH
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/ldattach)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_BLKID
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/blkid)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_LSBLK
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/lsblk)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_UUIDD
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/uuidd)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_UUIDGEN
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/uuidgen)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_FINDFS
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/findfs)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_WIPEFS
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/wipefs)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_ZRAMCTL
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/zramctl)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_MKFS
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/mkfs)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_LSCPU
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/lscpu)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_LOGIN
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/bin/login)
-endif
-ifdef PTXCONF_UTIL_LINUX_NG_SULOGIN
- @$(call install_copy, util-linux-ng, 0, 0, 0755, -, /usr/sbin/sulogin)
-endif
-
- @$(call install_finish, util-linux-ng)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/util-linux-ng.in b/rules/util-linux.in
index 9586ff60b..8bf035f39 100644
--- a/rules/util-linux-ng.in
+++ b/rules/util-linux.in
@@ -1,230 +1,313 @@
## SECTION=shell_and_console
-menuconfig UTIL_LINUX_NG
+menuconfig UTIL_LINUX
tristate
prompt "util-linux "
select GCCLIBS_GCC_S
- select UTIL_LINUX_NG_LIBBLKID
- select UTIL_LINUX_NG_LIBUUID if UTIL_LINUX_NG_MKSWAP_UUID
- select NCURSES if UTIL_LINUX_NG_USES_NCURSES
- select PAM if UTIL_LINUX_NG_USES_PAM
+ select HOST_MESON
+ select UTIL_LINUX_LIBBLKID
+ select UTIL_LINUX_LIBUUID if UTIL_LINUX_MKSWAP_UUID
+ select NCURSES if UTIL_LINUX_USES_NCURSES
+ select PAM if UTIL_LINUX_USES_PAM
-if UTIL_LINUX_NG
+if UTIL_LINUX
-config UTIL_LINUX_NG_LIBBLKID
+config UTIL_LINUX_LIBBLKID
bool
-config UTIL_LINUX_NG_LIBUUID
+config UTIL_LINUX_LIBUUID
bool
-config UTIL_LINUX_NG_LIBMOUNT
+config UTIL_LINUX_LIBMOUNT
bool
-config UTIL_LINUX_NG_LIBSMARTCOLS
+config UTIL_LINUX_LIBSMARTCOLS
bool
-config UTIL_LINUX_NG_LIBFDISK
- select UTIL_LINUX_NG_LIBUUID
+config UTIL_LINUX_LIBFDISK
+ select UTIL_LINUX_LIBUUID
bool
-config UTIL_LINUX_NG_FDISKS
+config UTIL_LINUX_FDISKS
+ select UTIL_LINUX_LIBFDISK
+ select UTIL_LINUX_LIBSMARTCOLS
+ select UTIL_LINUX_USES_NCURSES
bool
-config UTIL_LINUX_NG_USES_NCURSES
+config UTIL_LINUX_USES_NCURSES
bool
-config UTIL_LINUX_NG_USES_PAM
+config UTIL_LINUX_USES_NCURSESW
bool
+ depends on UTIL_LINUX_USES_NCURSES
+ default NCURSES_WIDE_CHAR
-config UTIL_LINUX_NG_PARTX_TOOLS
- select UTIL_LINUX_NG_LIBBLKID
- select UTIL_LINUX_NG_LIBSMARTCOLS
+config UTIL_LINUX_USES_PAM
bool
-config UTIL_LINUX_NG_SCHEDUTILS
+config UTIL_LINUX_PARTX_TOOLS
+ select UTIL_LINUX_LIBBLKID
+ select UTIL_LINUX_LIBSMARTCOLS
bool
-config UTIL_LINUX_NG_AGETTY
+config UTIL_LINUX_SCHEDUTILS
bool
- prompt "agetty"
+
+comment "disk-utils"
+
+config UTIL_LINUX_ADDPART
+ bool
+ select UTIL_LINUX_PARTX_TOOLS
+ prompt "addpart"
help
- A small getty.
+ The addpart utility.
-config UTIL_LINUX_NG_COLUMN
+config UTIL_LINUX_CFDISK
bool
- select UTIL_LINUX_NG_LIBSMARTCOLS
- prompt "column"
+ select UTIL_LINUX_FDISKS
+ prompt "cfdisk"
help
- Columnate lists.
+ cfdisk is a curses based program for partitioning any hard disk drive.
-config UTIL_LINUX_NG_LINE
+config UTIL_LINUX_DELPART
bool
- prompt "line"
+ select UTIL_LINUX_PARTX_TOOLS
+ prompt "delpart"
help
- The line utility.
+ The delpart utility.
-config UTIL_LINUX_NG_GETOPT
+config UTIL_LINUX_RESIZEPART
bool
- prompt "getopt"
- depends on !BUSYBOX_GETOPT || ALLYES
+ select UTIL_LINUX_PARTX_TOOLS
+ prompt "resizepart"
help
- The getopt is used to break up (parse) options in command
- lines for easy parsing by shell procedures, and to check
- for valid options.
+ The resizepart utility.
-comment "BusyBox' getopt is selected!"
- depends on BUSYBOX_GETOPT
+config UTIL_LINUX_FDISK
+ bool
+ prompt "fdisk"
+ select UTIL_LINUX_FDISKS
+ depends on !BUSYBOX_FDISK || ALLYES
+ help
+ fdisk - Partition table manipulator for Linux
+
+comment "BusyBox' fdisk is selected!"
+ depends on BUSYBOX_FDISK
-config UTIL_LINUX_NG_ADDPART
+config UTIL_LINUX_FSCK
bool
- select UTIL_LINUX_NG_PARTX_TOOLS
- prompt "addpart"
+ prompt "fsck"
+ select UTIL_LINUX_LIBMOUNT
+ depends on !BUSYBOX_FSCK || ALLYES
help
- The addpart utility.
+ fsck is used to check and optionally repair one or
+ more Linux file systems. fsck is simply a front-end for
+ the various file system checkers (fsck.fstype) available
+ under Linux.
+
+comment "BusyBox' fsck is selected!"
+ depends on BUSYBOX_FSCK
-config UTIL_LINUX_NG_DELPART
+config UTIL_LINUX_MKFS
bool
- select UTIL_LINUX_NG_PARTX_TOOLS
- prompt "delpart"
+ prompt "mkfs"
help
- The delpart utility.
+ The mkfs command is a generic wrapper for fs specific
+ mkfs.* commands.
+
+config UTIL_LINUX_MKSWAP
+ bool
+ prompt "mkswap"
+ depends on !BUSYBOX_MKSWAP || ALLYES
+ help
+ mkswap sets up a Linux swap area on a device or in a file.
+
+config UTIL_LINUX_MKSWAP_UUID
+ bool
+ prompt "enable uuid support for mkswap"
+ depends on UTIL_LINUX_MKSWAP
+ help
+ enable uuid support for mkswap
+
+comment "BusyBox' mkswap is selected!"
+ depends on BUSYBOX_MKSWAP
-config UTIL_LINUX_NG_PARTX
+config UTIL_LINUX_PARTX
bool
- select UTIL_LINUX_NG_PARTX_TOOLS
+ select UTIL_LINUX_PARTX_TOOLS
prompt "partx"
help
The partx utility.
-config UTIL_LINUX_NG_DMESG
+config UTIL_LINUX_SFDISK
bool
- depends on !BUSYBOX_DMESG || ALLYES
- prompt "dmesg"
+ prompt "sfdisk"
+ select UTIL_LINUX_FDISKS
help
- The dmesg utility.
+ sfdisk - Partition table manipulator for Linux,
+ scriptable for unattended partitioning
-comment "BusyBox' dmesg is selected!"
- depends on BUSYBOX_DMESG
+comment "login-utils"
-config UTIL_LINUX_NG_NSENTER
+config UTIL_LINUX_LOGIN
bool
- prompt "nsenter"
+ select UTIL_LINUX_USES_PAM
+ depends on GLOBAL_PAM && ((!BUSYBOX_LOGIN && !SHADOW) || ALLYES)
+ prompt "login"
help
- The nsenter utility
+ The login program is used to establish a new session with
+ the system.
+
+comment "BusyBox' login is selected!"
+ depends on BUSYBOX_LOGIN
+
+comment "Shadow package is selected!"
+ depends on SHADOW
-config UTIL_LINUX_NG_MOUNTPOINT
+config UTIL_LINUX_SULOGIN
bool
- select UTIL_LINUX_NG_LIBMOUNT
- depends on !BUSYBOX_MOUNTPOINT || ALLYES
- prompt "mountpoint"
+ depends on !BUSYBOX_SULOGIN || ALLYES
+ prompt "sulogin"
help
- The mountpoint utility.
+ sulogin is invoked by init when the system goes into
+ single-user mode.
-comment "BusyBox' mountpoint is selected!"
- depends on BUSYBOX_MOUNTPOINT
+comment "BusyBox' sulogin is selected!"
+ depends on BUSYBOX_SULOGIN
+
+comment "misc-utils"
-config UTIL_LINUX_NG_FDISK
+config UTIL_LINUX_BLKID
bool
- prompt "fdisk"
- select UTIL_LINUX_NG_LIBFDISK
- select UTIL_LINUX_NG_LIBSMARTCOLS
- select UTIL_LINUX_NG_FDISKS
- depends on !BUSYBOX_FDISK || ALLYES
+ select UTIL_LINUX_LIBBLKID
+ depends on !BUSYBOX_BLKID || ALLYES
+ prompt "blkid"
help
- fdisk - Partition table manipulator for Linux
+ The blkid program is the command-line interface to working with libblkid
+ library. It can determine the type of content (e.g. filesystem, swap)
+ a block device holds, and also attributes (tokens, NAME=value pairs) from
+ the content metaâ€data (e.g. LABEL or UUID fields).
-comment "BusyBox' fdisk is selected!"
- depends on BUSYBOX_FDISK
+comment "BusyBox' blkid is selected!"
+ depends on BUSYBOX_BLKID
-config UTIL_LINUX_NG_SFDISK
+config UTIL_LINUX_FINDFS
bool
- prompt "sfdisk"
- select UTIL_LINUX_NG_LIBFDISK
- select UTIL_LINUX_NG_LIBSMARTCOLS
- select UTIL_LINUX_NG_FDISKS
+ select UTIL_LINUX_LIBBLKID
+ depends on !BUSYBOX_FINDFS || ALLYES
+ prompt "findfs"
help
- sfdisk - Partition table manipulator for Linux,
- scriptable for unattended partitioning
+ findfs will search the disks in the system looking for a filesystem
+ which has a label matching label or a UUID equal to uuid.
-config UTIL_LINUX_NG_CFDISK
+comment "BusyBox' findfs is selected!"
+ depends on BUSYBOX_FINDFS
+
+config UTIL_LINUX_GETOPT
bool
- select UTIL_LINUX_NG_LIBFDISK
- select UTIL_LINUX_NG_LIBSMARTCOLS
- select UTIL_LINUX_NG_FDISKS
- select UTIL_LINUX_NG_USES_NCURSES
- prompt "cfdisk"
+ prompt "getopt"
+ depends on !BUSYBOX_GETOPT || ALLYES
help
- cfdisk is a curses based program for partitioning any hard disk drive.
+ The getopt is used to break up (parse) options in command
+ lines for easy parsing by shell procedures, and to check
+ for valid options.
+
+comment "BusyBox' getopt is selected!"
+ depends on BUSYBOX_GETOPT
-config UTIL_LINUX_NG_MKSWAP
+config UTIL_LINUX_LSBLK
bool
- prompt "mkswap"
- depends on !BUSYBOX_MKSWAP || ALLYES
+ select UTIL_LINUX_LIBBLKID
+ select UTIL_LINUX_LIBMOUNT
+ select UTIL_LINUX_LIBSMARTCOLS
+ prompt "lsblk"
help
- mkswap sets up a Linux swap area on a device or in a file.
+ The lsblk command lists information about all available or the
+ specified block devices.
-config UTIL_LINUX_NG_MKSWAP_UUID
+config UTIL_LINUX_MCOOKIE
bool
- prompt "enable uuid support for mkswap"
- depends on UTIL_LINUX_NG_MKSWAP
+ prompt "mcookie"
help
- enable uuid support for mkswap
+ mcookie generates a 128-bit random hexadecimal number for
+ use with the X authority system.
-comment "BusyBox' mkswap is selected!"
- depends on BUSYBOX_MKSWAP
+config UTIL_LINUX_UUIDD
+ bool
+ select UTIL_LINUX_LIBUUID
+ prompt "uuidd"
+ help
+ The uuidd daemon is used by the UUID library to generate
+ universally unique identifiers (UUIDs), especially time-based UUIDs,
+ in a secure and guaranteed- unique fashion, even in the face of large
+ numbers of threads running on different CPUs trying to grab UUIDs.
-config UTIL_LINUX_NG_SWAPON
+config UTIL_LINUX_UUIDGEN
bool
- prompt "swapon"
- select UTIL_LINUX_NG_LIBBLKID
- select UTIL_LINUX_NG_LIBMOUNT
- select UTIL_LINUX_NG_LIBSMARTCOLS
- depends on !BUSYBOX_SWAPON || ALLYES
+ select UTIL_LINUX_LIBUUID
+ prompt "uuidgen"
help
- Swapon is used to specify devices on which paging and swapping are to take place.
+ uuidgen is a command-line utility to create a new UUID value.
-comment "BusyBox' swapon is selected!"
- depends on BUSYBOX_SWAPON
+config UTIL_LINUX_WIPEFS
+ bool
+ select UTIL_LINUX_LIBBLKID
+ prompt "wipefs"
+ help
+ The wipefs program can erase filesystem, raid or partition-table
+ signatures.
-config UTIL_LINUX_NG_LOSETUP
+comment "schedutils"
+
+config UTIL_LINUX_CHRT
bool
- prompt "losetup"
- select UTIL_LINUX_NG_LIBSMARTCOLS
- depends on !BUSYBOX_LOSETUP || ALLYES
+ prompt "chrt"
+ select UTIL_LINUX_SCHEDUTILS
+ depends on !BUSYBOX_CHRT || ALLYES
help
- losetup is used to associate or detach a loop device with a regular
- file or block device, and to query the status of a loop device.
+ chrt manipulates the real-time attributes of a process.
-comment "BusyBox' losetup is selected!"
- depends on BUSYBOX_LOSETUP
+comment "BusyBox' chrt is selected!"
+ depends on BUSYBOX_CHRT
-config UTIL_LINUX_NG_MOUNT
+config UTIL_LINUX_IONICE
bool
- prompt "mount"
- select UTIL_LINUX_NG_LIBMOUNT
- depends on !BUSYBOX_MOUNT || ALLYES
+ prompt "ionice"
+ select UTIL_LINUX_SCHEDUTILS
help
- The mount command serves to attach the file system
- found on some device to the big file tree.
+ ionice gets/sets the program io scheduling class and priority.
-comment "BusyBox' mount is selected!"
- depends on BUSYBOX_MOUNT
+config UTIL_LINUX_TASKSET
+ bool
+ prompt "taskset"
+ select UTIL_LINUX_SCHEDUTILS
+ depends on !BUSYBOX_TASKSET || ALLYES
+ help
+ taskset retrieves or sets a process's CPU affinity.
-config UTIL_LINUX_NG_UMOUNT
+comment "BusyBox' taskset is selected!"
+ depends on BUSYBOX_TASKSET
+
+comment "sys-utils"
+
+config UTIL_LINUX_CHMEM
bool
- prompt "umount"
- select UTIL_LINUX_NG_MOUNT
- depends on !BUSYBOX_MOUNT || ALLYES
- depends on !BUSYBOX_UMOUNT || ALLYES
+ prompt "chmem"
help
- The mount(8) command serves to attach the file system
- found on some device to the big file tree.
- Conversely, the umount(8) command will detach it again.
+ The chmem command sets a particular size or range of
+ memory online or offline.
-comment "BusyBox' umount is selected!"
- depends on BUSYBOX_UMOUNT
+config UTIL_LINUX_DMESG
+ bool
+ depends on !BUSYBOX_DMESG || ALLYES
+ prompt "dmesg"
+ help
+ The dmesg utility.
+
+comment "BusyBox' dmesg is selected!"
+ depends on BUSYBOX_DMESG
-config UTIL_LINUX_NG_FLOCK
+config UTIL_LINUX_FLOCK
bool
prompt "flock"
depends on !BUSYBOX_FLOCK || ALLYES
@@ -235,21 +318,7 @@ config UTIL_LINUX_NG_FLOCK
comment "BusyBox' flock is selected!"
depends on BUSYBOX_FLOCK
-config UTIL_LINUX_NG_FSCK
- bool
- prompt "fsck"
- select UTIL_LINUX_NG_LIBMOUNT
- depends on !BUSYBOX_FSCK || ALLYES
- help
- fsck is used to check and optionally repair one or
- more Linux file systems. fsck is simply a front-end for
- the various file system checkers (fsck.fstype) available
- under Linux.
-
-comment "BusyBox' fsck is selected!"
- depends on BUSYBOX_FSCK
-
-config UTIL_LINUX_NG_FSFREEZE
+config UTIL_LINUX_FSFREEZE
bool
prompt "fsfreeze"
depends on !BUSYBOX_FSFREEZE || ALLYES
@@ -259,7 +328,7 @@ config UTIL_LINUX_NG_FSFREEZE
comment "BusyBox' fsfreeze is selected!"
depends on BUSYBOX_FSFREEZE
-config UTIL_LINUX_NG_FSTRIM
+config UTIL_LINUX_FSTRIM
bool
prompt "fstrim"
depends on !BUSYBOX_FSTRIM || ALLYES
@@ -271,32 +340,26 @@ config UTIL_LINUX_NG_FSTRIM
comment "BusyBox' fstrim is selected!"
depends on BUSYBOX_FSTRIM
-config UTIL_LINUX_NG_IPCS
+config UTIL_LINUX_HWCLOCK
bool
- prompt "ipcs"
- depends on !BUSYBOX_IPCS || ALLYES
+ prompt "hwclock"
+ depends on !BUSYBOX_HWCLOCK || ALLYES
help
- ipcs provides information on the ipc facilities
- for which the calling process has read access.
+ hwclock - The hwclock utility is used to read and set the hardware
+ clock on a system. This is primarily used to set the current time
+ on shutdown in the hardware clock, so the hardware will keep the
+ correct time when Linux is _not_ running.
-config UTIL_LINUX_NG_IRQTOP
- bool
- select UTIL_LINUX_NG_USES_NCURSES
- prompt "irqtop"
- help
- irqtop is a tool to observe irqs and softirqs in
- a top like fashion.
+comment "BusyBox' hwclock is selected!"
+ depends on BUSYBOX_HWCLOCK
-config UTIL_LINUX_NG_LSIRQ
+config UTIL_LINUX_IPCMK
bool
- prompt "lsirq"
+ prompt "ipcmk"
help
- lsirq is a tool to list kernel interrupt information.
-
-comment "BusyBox' ipcs is selected!"
- depends on BUSYBOX_IPCS
+ ipcmk lets you create various SysV IPC objects.
-config UTIL_LINUX_NG_IPCRM
+config UTIL_LINUX_IPCRM
bool
prompt "ipcrm"
depends on !BUSYBOX_IPCRM || ALLYES
@@ -307,211 +370,241 @@ config UTIL_LINUX_NG_IPCRM
comment "BusyBox' ipcrm is selected!"
depends on BUSYBOX_IPCRM
-config UTIL_LINUX_NG_READPROFILE
+config UTIL_LINUX_IPCS
bool
- prompt "readprofile"
- depends on !BUSYBOX_READPROFILE || ALLYES
+ prompt "ipcs"
+ depends on !BUSYBOX_IPCS || ALLYES
help
- The readprofile command uses the /proc/profile information
- to print ascii data on standard output. The output is
- organized in three columns: the first is the number of
- clock ticks, the second is the name of the C function
- in the kernel where those many ticks occurred, and the
- third is the normalized `load' of the procedure, calculated
- as a ratio between the number of ticks and the length of the
- procedure. The output is filled with blanks to ease readability.
+ ipcs provides information on the ipc facilities
+ for which the calling process has read access.
-comment "BusyBox' readprofile is selected!"
- depends on BUSYBOX_READPROFILE
+comment "BusyBox' ipcs is selected!"
+ depends on BUSYBOX_IPCS
-config UTIL_LINUX_NG_SETTERM
+config UTIL_LINUX_IRQTOP
bool
- select UTIL_LINUX_NG_USES_NCURSES
- prompt "setterm"
+ select UTIL_LINUX_USES_NCURSES
+ prompt "irqtop"
help
- setterm - set terminal attributes like terminal name, cursor
- blinking and beeper sound
+ irqtop is a tool to observe irqs and softirqs in
+ a top like fashion.
-config UTIL_LINUX_NG_CHRT
+config UTIL_LINUX_LDATTACH
bool
- prompt "chrt"
- select UTIL_LINUX_NG_SCHEDUTILS
- depends on !BUSYBOX_CHRT || ALLYES
+ prompt "ldattach"
help
- chrt manipulates the real-time attributes of a process.
+ attach a line discipline to a serial line
-comment "BusyBox' chrt is selected!"
- depends on BUSYBOX_CHRT
+config UTIL_LINUX_LOSETUP
+ bool
+ prompt "losetup"
+ select UTIL_LINUX_LIBSMARTCOLS
+ depends on !BUSYBOX_LOSETUP || ALLYES
+ help
+ losetup is used to associate or detach a loop device with a regular
+ file or block device, and to query the status of a loop device.
-config UTIL_LINUX_NG_HWCLOCK
- bool
- prompt "hwclock"
- depends on !BUSYBOX_HWCLOCK || ALLYES
- help
- hwclock - The hwclock utility is used to read and set the hardware
- clock on a system. This is primarily used to set the current time
- on shutdown in the hardware clock, so the hardware will keep the
- correct time when Linux is _not_ running.
+comment "BusyBox' losetup is selected!"
+ depends on BUSYBOX_LOSETUP
-comment "BusyBox' hwclock is selected!"
- depends on BUSYBOX_HWCLOCK
+config UTIL_LINUX_LSCPU
+ bool
+ select UTIL_LINUX_LIBSMARTCOLS
+ prompt "lscpu"
+ help
+ lscpu shows information about the CPU architecture
-config UTIL_LINUX_NG_WDCTL
+config UTIL_LINUX_LSFD
bool
- prompt "wdctl"
+ select UTIL_LINUX_LIBSMARTCOLS
+ prompt "lsfd"
help
- wdctl - Utility to show hardware watchdog status.
+ lsfd is like lsof, but specialized for the Linux environment.
-config UTIL_LINUX_NG_IONICE
+config UTIL_LINUX_LSIRQ
bool
- prompt "ionice"
- select UTIL_LINUX_NG_SCHEDUTILS
+ prompt "lsirq"
help
- ionice gets/sets the program io scheduling class and priority.
+ lsirq is a tool to list kernel interrupt information.
-config UTIL_LINUX_NG_TASKSET
+config UTIL_LINUX_LSNS
bool
- prompt "taskset"
- select UTIL_LINUX_NG_SCHEDUTILS
- depends on !BUSYBOX_TASKSET || ALLYES
+ prompt "lsns"
help
- taskset retrieves or sets a process's CPU affinity.
+ lsns is a tool to list namespace information.
-comment "BusyBox' taskset is selected!"
- depends on BUSYBOX_TASKSET
+config UTIL_LINUX_LSMEM
+ bool
+ prompt "lsmem"
+ help
+ The lsmem command lists the ranges of available memory and
+ it's online status.
-config UTIL_LINUX_NG_MCOOKIE
+config UTIL_LINUX_PIPESZ
bool
- prompt "mcookie"
+ prompt "pipesz"
help
- mcookie generates a 128-bit random hexadecimal number for
- use with the X authority system.
+ The pipesz command sets or examines pipe and fifo buffer sizes.
-config UTIL_LINUX_NG_LDATTACH
+config UTIL_LINUX_MOUNT
bool
- prompt "ldattach"
+ prompt "mount"
+ select UTIL_LINUX_LIBMOUNT
+ select UTIL_LINUX_LIBSMARTCOLS
+ depends on !BUSYBOX_MOUNT || ALLYES
help
- attach a line discipline to a serial line
+ The mount command serves to attach the file system
+ found on some device to the big file tree.
-config UTIL_LINUX_NG_UUIDD
+comment "BusyBox' mount is selected!"
+ depends on BUSYBOX_MOUNT
+
+config UTIL_LINUX_MOUNTPOINT
bool
- select UTIL_LINUX_NG_LIBUUID
- prompt "uuidd"
+ select UTIL_LINUX_LIBMOUNT
+ depends on !BUSYBOX_MOUNTPOINT || ALLYES
+ prompt "mountpoint"
help
- The uuidd daemon is used by the UUID library to generate
- universally unique identifiers (UUIDs), especially time-based UUIDs,
- in a secure and guaranteed- unique fashion, even in the face of large
- numbers of threads running on different CPUs trying to grab UUIDs.
+ The mountpoint utility.
+
+comment "BusyBox' mountpoint is selected!"
+ depends on BUSYBOX_MOUNTPOINT
-config UTIL_LINUX_NG_UUIDGEN
+config UTIL_LINUX_NSENTER
bool
- select UTIL_LINUX_NG_LIBUUID
- prompt "uuidgen"
+ prompt "nsenter"
help
- uuidgen is a command-line utility to create a new UUID value.
+ The nsenter utility
-config UTIL_LINUX_NG_BLKID
+config UTIL_LINUX_PIVOT_ROOT
bool
- select UTIL_LINUX_NG_LIBBLKID
- depends on !BUSYBOX_BLKID || ALLYES
- prompt "blkid"
+ depends on !BUSYBOX_PIVOT_ROOT
+ prompt "pivot_root"
help
- The blkid program is the command-line interface to working with libblkid
- library. It can determine the type of content (e.g. filesystem, swap)
- a block device holds, and also attributes (tokens, NAME=value pairs) from
- the content metaâ€data (e.g. LABEL or UUID fields).
+ change the root filesystem.
-comment "BusyBox' blkid is selected!"
- depends on BUSYBOX_BLKID
+comment "BusyBox' pivot_root is selected!"
+ depends on BUSYBOX_PIVOT_ROOT
-config UTIL_LINUX_NG_LSBLK
+config UTIL_LINUX_READPROFILE
bool
- select UTIL_LINUX_NG_LIBBLKID
- select UTIL_LINUX_NG_LIBMOUNT
- select UTIL_LINUX_NG_LIBSMARTCOLS
- prompt "lsblk"
+ prompt "readprofile"
+ depends on !BUSYBOX_READPROFILE || ALLYES
help
- The lsblk command lists information about all available or the
- specified block devices.
+ The readprofile command uses the /proc/profile information
+ to print ascii data on standard output. The output is
+ organized in three columns: the first is the number of
+ clock ticks, the second is the name of the C function
+ in the kernel where those many ticks occurred, and the
+ third is the normalized `load' of the procedure, calculated
+ as a ratio between the number of ticks and the length of the
+ procedure. The output is filled with blanks to ease readability.
-config UTIL_LINUX_NG_FINDFS
+comment "BusyBox' readprofile is selected!"
+ depends on BUSYBOX_READPROFILE
+
+config UTIL_LINUX_RFKILL
bool
- select UTIL_LINUX_NG_LIBBLKID
- depends on !BUSYBOX_FINDFS || ALLYES
- prompt "findfs"
+ prompt "rfkill"
+ select UTIL_LINUX_LIBSMARTCOLS
+ depends on !BUSYBOX_RFKILL || ALLYES
help
- findfs will search the disks in the system looking for a filesystem
- which has a label matching label or a UUID equal to uuid.
+ rfkill is a simple tool for accessing the Linux rfkill device
+ interface, which is used to enable and disable wireless networking
+ devices, typically WLAN, Bluetooth and mobile broadband.
-comment "BusyBox' findfs is selected!"
- depends on BUSYBOX_FINDFS
+comment "BusyBox' rfkill is selected!"
+ depends on BUSYBOX_RFKILL
-config UTIL_LINUX_NG_WIPEFS
+config UTIL_LINUX_SWAPON
bool
- select UTIL_LINUX_NG_LIBBLKID
- prompt "wipefs"
+ prompt "swapon"
+ select UTIL_LINUX_LIBBLKID
+ select UTIL_LINUX_LIBMOUNT
+ select UTIL_LINUX_LIBSMARTCOLS
+ depends on !BUSYBOX_SWAPON || ALLYES
help
- The wipefs program can erase filesystem, raid or partition-table
- signatures.
+ Swapon is used to specify devices on which paging and swapping are to take place.
+
+comment "BusyBox' swapon is selected!"
+ depends on BUSYBOX_SWAPON
-config UTIL_LINUX_NG_ZRAMCTL
+config UTIL_LINUX_SETSID
bool
- prompt "zramctl"
+ depends on !BUSYBOX_SETSID
+ prompt "setsid"
help
- The zramctl program is a tool to set up and control zram devices.
+ Set sessionid.
-config UTIL_LINUX_NG_LSMEM
+comment "BusyBox' setsid is selected!"
+ depends on BUSYBOX_SETSID
+
+config UTIL_LINUX_SWITCH_ROOT
bool
- prompt "lsmem"
+ depends on !BUSYBOX_SWITCH_ROOT
+ prompt "switch_root"
help
- The lsmem command lists the ranges of available memory and
- it's online status.
+ switch to another filesystem as the root of the mount
+ tree.
+
+comment "BusyBox' switch_root is selected!"
+ depends on BUSYBOX_SWITCH_ROOT
-config UTIL_LINUX_NG_CHMEM
+config UTIL_LINUX_UMOUNT
bool
- prompt "chmem"
+ prompt "umount"
+ select UTIL_LINUX_MOUNT
+ depends on !BUSYBOX_MOUNT || ALLYES
+ depends on !BUSYBOX_UMOUNT || ALLYES
help
- The chmem command sets a particular size or range of
- memory online or offline.
+ The mount(8) command serves to attach the file system
+ found on some device to the big file tree.
+ Conversely, the umount(8) command will detach it again.
+
+comment "BusyBox' umount is selected!"
+ depends on BUSYBOX_UMOUNT
-config UTIL_LINUX_NG_MKFS
+config UTIL_LINUX_WDCTL
bool
- prompt "mkfs"
+ prompt "wdctl"
help
- The mkfs command is a generic wrapper for fs specific
- mkfs.* commands.
+ wdctl - Utility to show hardware watchdog status.
-config UTIL_LINUX_NG_LSCPU
+config UTIL_LINUX_ZRAMCTL
bool
- select UTIL_LINUX_NG_LIBSMARTCOLS
- prompt "lscpu"
+ prompt "zramctl"
help
- lscpu shows information about the CPU architecture
+ The zramctl program is a tool to set up and control zram devices.
-config UTIL_LINUX_NG_LOGIN
+comment "term-utils"
+
+config UTIL_LINUX_AGETTY
bool
- select UTIL_LINUX_NG_USES_PAM
- depends on GLOBAL_PAM && ((!BUSYBOX_LOGIN && !SHADOW) || ALLYES)
- prompt "login"
+ prompt "agetty"
help
- The login program is used to establish a new session with
- the system.
+ A small getty.
-comment "BusyBox' login is selected!"
- depends on BUSYBOX_LOGIN
+config UTIL_LINUX_SETTERM
+ bool
+ select UTIL_LINUX_USES_NCURSES
+ prompt "setterm"
+ help
+ setterm - set terminal attributes like terminal name, cursor
+ blinking and beeper sound
-comment "Shadow package is selected!"
- depends on SHADOW
+comment "text-utils"
-config UTIL_LINUX_NG_SULOGIN
+config UTIL_LINUX_COLUMN
bool
- depends on !BUSYBOX_SULOGIN || ALLYES
- prompt "sulogin"
+ select UTIL_LINUX_LIBSMARTCOLS
+ prompt "column"
help
- sulogin is invoked by init when the system goes into
- single-user mode.
+ Columnate lists.
-comment "BusyBox' sulogin is selected!"
- depends on BUSYBOX_SULOGIN
+config UTIL_LINUX_LINE
+ bool
+ prompt "line"
+ help
+ The line utility.
endif
diff --git a/rules/util-linux.make b/rules/util-linux.make
new file mode 100644
index 000000000..aa667777f
--- /dev/null
+++ b/rules/util-linux.make
@@ -0,0 +1,256 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2008 by Robert Schwebel
+# 2010 by Marc Kleine-Budde <mkl@penutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_UTIL_LINUX) += util-linux
+
+#
+# Paths and names
+#
+UTIL_LINUX_VERSION := 2.40
+UTIL_LINUX_MD5 := bc4272a7821bb12c68c441d23b8eaa89
+UTIL_LINUX := util-linux-$(UTIL_LINUX_VERSION)
+UTIL_LINUX_SUFFIX := tar.gz
+UTIL_LINUX_URL := https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/snapshot/$(UTIL_LINUX).$(UTIL_LINUX_SUFFIX)
+UTIL_LINUX_SOURCE := $(SRCDIR)/$(UTIL_LINUX).$(UTIL_LINUX_SUFFIX)
+UTIL_LINUX_DIR := $(BUILDDIR)/$(UTIL_LINUX)
+UTIL_LINUX_LICENSE := GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.0-or-later AND BSD-3-Clause AND BSD-4-Clause AND public_domain
+UTIL_LINUX_LICENSE_FILES := \
+ file://Documentation/licenses/COPYING.GPL-2.0-or-later;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://Documentation/licenses/COPYING.BSD-3-Clause;md5=58dcd8452651fc8b07d1f65ce07ca8af \
+ file://Documentation/licenses/COPYING.BSD-4-Clause-UC;md5=263860f8968d8bafa5392cab74285262 \
+ file://Documentation/licenses/COPYING.LGPL-2.1-or-later;md5=4fbd65380cdd255951079008b364516c
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+# only one of -Dncurses= and -Dncursesw= can be enabled.
+ifndef PTXCONF_UTIL_LINUX_USES_NCURSESW
+UTIL_LINUX_USES_NCURSES := $(PTXCONF_UTIL_LINUX_USES_NCURSES)
+else
+UTIL_LINUX_USES_NCURSES :=
+endif
+
+#
+# meson
+#
+UTIL_LINUX_CONF_TOOL := meson
+UTIL_LINUX_CONF_OPT := \
+ $(CROSS_MESON_USR) \
+ -Dallow-32bit-time=$(call ptx/falsetrue, PTXDIST_Y2038) \
+ -Daudit=disabled \
+ -Dbtrfs=disabled \
+ -Dbuild-agetty=$(call ptx/endis, PTXCONF_UTIL_LINUX_AGETTY)d \
+ -Dbuild-bash-completion=disabled \
+ -Dbuild-bfs=disabled \
+ -Dbuild-cal=disabled \
+ -Dbuild-chfn-chsh=disabled \
+ -Dbuild-chmem=$(call ptx/endis, PTXCONF_UTIL_LINUX_CHMEM)d \
+ -Dbuild-cramfs=disabled \
+ -Dbuild-eject=disabled \
+ -Dbuild-fallocate=disabled \
+ -Dbuild-fdformat=disabled \
+ -Dbuild-fdisks=$(call ptx/endis, PTXCONF_UTIL_LINUX_FDISKS)d \
+ -Dbuild-fsck=$(call ptx/endis, PTXCONF_UTIL_LINUX_FSCK)d \
+ -Dbuild-hardlink=disabled \
+ -Dbuild-hwclock=$(call ptx/endis, PTXCONF_UTIL_LINUX_HWCLOCK)d \
+ -Dbuild-ipcrm=$(call ptx/endis, PTXCONF_UTIL_LINUX_IPCRM)d \
+ -Dbuild-ipcs=$(call ptx/endis, PTXCONF_UTIL_LINUX_IPCS)d \
+ -Dbuild-irqtop=$(call ptx/endis, PTXCONF_UTIL_LINUX_IRQTOP)d \
+ -Dbuild-kill=disabled \
+ -Dbuild-last=disabled \
+ -Dbuild-libblkid=$(call ptx/endis, PTXCONF_UTIL_LINUX_LIBBLKID)d \
+ -Dbuild-libfdisk=$(call ptx/endis, PTXCONF_UTIL_LINUX_LIBFDISK)d \
+ -Dbuild-liblastlog2=disabled \
+ -Dbuild-libmount=$(call ptx/endis, PTXCONF_UTIL_LINUX_LIBMOUNT)d \
+ -Dbuild-libsmartcols=$(call ptx/endis, PTXCONF_UTIL_LINUX_LIBSMARTCOLS)d \
+ -Dbuild-libuuid=$(call ptx/endis, PTXCONF_UTIL_LINUX_LIBUUID)d \
+ -Dbuild-line=$(call ptx/endis, PTXCONF_UTIL_LINUX_LINE)d \
+ -Dbuild-logger=disabled \
+ -Dbuild-login=$(call ptx/endis, PTXCONF_UTIL_LINUX_LOGIN)d \
+ -Dbuild-losetup=$(call ptx/endis, PTXCONF_UTIL_LINUX_LOSETUP)d \
+ -Dbuild-lsirq=$(call ptx/endis, PTXCONF_UTIL_LINUX_LSIRQ)d \
+ -Dbuild-lslogins=disabled \
+ -Dbuild-lsmem=$(call ptx/endis, PTXCONF_UTIL_LINUX_LSMEM)d \
+ -Dbuild-mesg=disabled \
+ -Dbuild-minix=disabled \
+ -Dbuild-more=disabled \
+ -Dbuild-mount=$(call ptx/endis, PTXCONF_UTIL_LINUX_MOUNT)d \
+ -Dbuild-mountpoint=$(call ptx/endis, PTXCONF_UTIL_LINUX_MOUNTPOINT)d \
+ -Dbuild-newgrp=disabled \
+ -Dbuild-nologin=disabled \
+ -Dbuild-nsenter=$(call ptx/endis, PTXCONF_UTIL_LINUX_NSENTER)d \
+ -Dbuild-pam-lastlog2=disabled \
+ -Dbuild-partx=$(call ptx/endis, PTXCONF_UTIL_LINUX_PARTX_TOOLS)d \
+ -Dbuild-pg=disabled \
+ -Dbuild-pipesz=$(call ptx/endis, PTXCONF_UTIL_LINUX_PIPESZ)d \
+ -Dbuild-pivot_root=$(call ptx/endis, PTXCONF_UTIL_LINUX_PIVOT_ROOT)d \
+ -Dbuild-plymouth-support=disabled \
+ -Dbuild-pylibmount=disabled \
+ -Dbuild-python=disabled \
+ -Dbuild-raw=disabled \
+ -Dbuild-rename=disabled \
+ -Dbuild-rfkill=$(call ptx/endis, PTXCONF_UTIL_LINUX_RFKILL)d \
+ -Dbuild-runuser=disabled \
+ -Dbuild-schedutils=$(call ptx/endis, PTXCONF_UTIL_LINUX_SCHEDUTILS)d \
+ -Dbuild-setpriv=disabled \
+ -Dbuild-setterm=$(call ptx/endis, PTXCONF_UTIL_LINUX_SETTERM)d \
+ -Dbuild-su=disabled \
+ -Dbuild-sulogin=$(call ptx/endis, PTXCONF_UTIL_LINUX_SULOGIN)d \
+ -Dbuild-switch_root=$(call ptx/endis, PTXCONF_UTIL_LINUX_SWITCH_ROOT)d \
+ -Dbuild-tunelp=disabled \
+ -Dbuild-ul=disabled \
+ -Dbuild-unshare=disabled \
+ -Dbuild-utmpdump=disabled \
+ -Dbuild-uuidd=$(call ptx/endis, PTXCONF_UTIL_LINUX_UUIDD)d \
+ -Dbuild-vipw=disabled \
+ -Dbuild-wall=disabled \
+ -Dbuild-wdctl=$(call ptx/endis, PTXCONF_UTIL_LINUX_WDCTL)d \
+ -Dbuild-wipefs=$(call ptx/endis, PTXCONF_UTIL_LINUX_WIPEFS)d \
+ -Dbuild-write=disabled \
+ -Dbuild-zramctl=$(call ptx/endis, PTXCONF_UTIL_LINUX_ZRAMCTL)d \
+ -Dchfn-chsh-password=true \
+ -Dchsh-only-listed=true \
+ -Dcolors-default=true \
+ -Dcryptsetup=disabled \
+ -Dcryptsetup-dlopen=disabled \
+ -Deconf=disabled \
+ -Dfs-search-path=/usr/sbin \
+ -Dfs-search-path-extra= \
+ -Dlibpcre2-posix=disabled \
+ -Dlibuser=disabled \
+ -Dlibutempter=disabled \
+ -Dlibutil=disabled \
+ -Dmagic=disabled \
+ -Dncurses=$(call ptx/endis, UTIL_LINUX_USES_NCURSES)d \
+ -Dncursesw=$(call ptx/endis, PTXCONF_UTIL_LINUX_USES_NCURSESW)d \
+ -Dnls=disabled \
+ -Dpg-bell=false \
+ -Dpython=false \
+ -Dreadline=disabled \
+ -Dselinux=disabled \
+ -Dslang=disabled \
+ -Dsmack=disabled \
+ -Dstatic-programs= \
+ -Dsystemd=disabled \
+ -Dsysvinit=disabled \
+ -Dtinfo=disabled \
+ -Duse-tls=true \
+ -Duse-tty-group=false \
+ -Dvendordir= \
+ -Dwidechar=$(call ptx/disen, UTIL_LINUX_USES_NCURSES)d \
+ -Dzlib=disabled
+
+ifndef PTXCONF_GLIBC_2_34
+UTIL_LINUX_LDFLAGS := -lutil
+endif
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+UTIL_LINUX_LIB-y :=
+UTIL_LINUX_BIN-y :=
+
+# libraries
+UTIL_LINUX_LIB-$(PTXCONF_UTIL_LINUX_LIBBLKID) += blkid
+UTIL_LINUX_LIB-$(PTXCONF_UTIL_LINUX_LIBUUID) += uuid
+UTIL_LINUX_LIB-$(PTXCONF_UTIL_LINUX_LIBMOUNT) += mount
+UTIL_LINUX_LIB-$(PTXCONF_UTIL_LINUX_LIBSMARTCOLS) += smartcols
+UTIL_LINUX_LIB-$(PTXCONF_UTIL_LINUX_LIBFDISK) += fdisk
+
+# disk-utils
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_ADDPART) += sbin/addpart
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_CFDISK) += sbin/cfdisk
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_DELPART) += sbin/delpart
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_RESIZEPART) += sbin/resizepart
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_FDISK) += sbin/fdisk
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_FSCK) += sbin/fsck
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_MKFS) += sbin/mkfs
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_MKSWAP) += sbin/mkswap
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_PARTX) += sbin/partx
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_SFDISK) += sbin/sfdisk
+# login-utils
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_LOGIN) += bin/login
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_SULOGIN) += sbin/sulogin
+# misc-utils
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_BLKID) += sbin/blkid
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_FINDFS) += sbin/findfs
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_GETOPT) += bin/getopt
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_LSBLK) += bin/lsblk
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_MCOOKIE) += bin/mcookie
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_UUIDD) += sbin/uuidd
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_UUIDGEN) += bin/uuidgen
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_WIPEFS) += sbin/wipefs
+# schedutils
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_CHRT) += bin/chrt
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_IONICE) += bin/ionice
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_TASKSET) += bin/taskset
+# sys-utils
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_CHMEM) += bin/chmem
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_DMESG) += bin/dmesg
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_FLOCK) += bin/flock
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_FSFREEZE) += sbin/fsfreeze
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_FSTRIM) += sbin/fstrim
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_HWCLOCK) += sbin/hwclock
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_IPCRM) += bin/ipcrm
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_IPCS) += bin/ipcs
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_IRQTOP) += bin/irqtop
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_LDATTACH) += sbin/ldattach
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_LOSETUP) += sbin/losetup
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_LSCPU) += bin/lscpu
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_LSFD) += bin/lsfd
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_LSIRQ) += bin/lsirq
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_LSNS) += bin/lsns
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_LSMEM) += bin/lsmem
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_MOUNT) += bin/mount
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_MOUNTPOINT) += bin/mountpoint
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_NSENTER) += bin/nsenter
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_PIVOT_ROOT) += sbin/pivot_root
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_READPROFILE) += sbin/readprofile
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_RFKILL) += sbin/rfkill
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_SWAPON) += sbin/swapoff sbin/swapon
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_PIPESZ) += bin/pipesz
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_SETSID) += bin/setsid
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_SWITCH_ROOT) += sbin/switch_root
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_UMOUNT) += bin/umount
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_WDCTL) += bin/wdctl
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_ZRAMCTL) += sbin/zramctl
+# term-utils
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_AGETTY) += sbin/agetty
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_SETTERM) += bin/setterm
+# text-utils
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_COLUMN) += bin/column
+UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_LINE) += bin/line
+
+$(STATEDIR)/util-linux.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, util-linux)
+ @$(call install_fixup, util-linux,PRIORITY,optional)
+ @$(call install_fixup, util-linux,SECTION,base)
+ @$(call install_fixup, util-linux,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
+ @$(call install_fixup, util-linux,DESCRIPTION,missing)
+
+ @$(foreach lib, $(UTIL_LINUX_LIB-y), \
+ $(call install_lib, util-linux, 0, 0, 0644, \
+ lib$(lib))$(ptx/nl))
+
+ @$(foreach tool, $(UTIL_LINUX_BIN-y), \
+ $(call install_copy, util-linux, 0, 0, 0755, -, \
+ /usr/$(tool))$(ptx/nl))
+
+ @$(call install_finish, util-linux)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/uvc-gadget.make b/rules/uvc-gadget.make
index b13ecbf19..6a57a924f 100644
--- a/rules/uvc-gadget.make
+++ b/rules/uvc-gadget.make
@@ -19,7 +19,9 @@ UVC_GADGET_VERSION := 2019-05-02-g105134f9
UVC_GADGET_MD5 := cd61b910844f1d95534a8773bf63f248
UVC_GADGET := uvc-gadget-$(UVC_GADGET_VERSION)
UVC_GADGET_SUFFIX := tar.xz
-UVC_GADGET_URL := git://git.ideasonboard.org/uvc-gadget.git;tag=$(UVC_GADGET_VERSION)
+UVC_GADGET_URL := \
+ git://git.ideasonboard.org/uvc-gadget.git;tag=$(UVC_GADGET_VERSION) \
+ https://gitlab.freedesktop.org/camera/uvc-gadget.git;tag=$(UVC_GADGET_VERSION)
UVC_GADGET_SOURCE := $(SRCDIR)/$(UVC_GADGET).$(UVC_GADGET_SUFFIX)
UVC_GADGET_DIR := $(BUILDDIR)/$(UVC_GADGET)
UVC_GADGET_LICENSE := GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT
diff --git a/rules/v4l-utils.in b/rules/v4l-utils.in
index de7cb374b..8bbd12f47 100644
--- a/rules/v4l-utils.in
+++ b/rules/v4l-utils.in
@@ -3,6 +3,7 @@
menuconfig V4L_UTILS
tristate
prompt "v4l-utils "
+ select HOST_MESON
select UDEV if V4L_UTILS_MEDIACTL
select UDEV_LIBUDEV if V4L_UTILS_MEDIACTL
select LIBC_DL if V4L_UTILS_LIBV4L2 || V4L_UTILS_MEDIACTL
@@ -11,6 +12,7 @@ menuconfig V4L_UTILS
select LIBC_PTHREAD if V4L_UTILS_LIBV4L2 || V4L_UTILS_MEDIACTL
select GCCLIBS_GCC_S if V4L_UTILS_V4L2CTL || V4L_UTILS_V4L2COMPLIANCE
select LIBJPEG if V4L_UTILS_LIBV4LCONVERT
+ select JSON_C if V4L_UTILS_TRACER
help
Linux V4L2 and DVB API utilities and v4l libraries (libv4l).
@@ -72,6 +74,7 @@ config V4L_UTILS_RDSCTL
config V4L_UTILS_V4L2COMPLIANCE
bool
+ select V4L_UTILS_LIBV4L2
prompt "install v4l2-compliance"
config V4L_UTILS_V4L2DBG
@@ -81,10 +84,15 @@ config V4L_UTILS_V4L2DBG
config V4L_UTILS_V4L2CTL
bool
+ select V4L_UTILS_LIBV4L2
prompt "install v4l2-ctl"
config V4L_UTILS_V4L2SYSFSPATH
bool
prompt "install v4l2-sysfs-path"
+config V4L_UTILS_TRACER
+ bool
+ prompt "install v4l2-tracer"
+
endif
diff --git a/rules/v4l-utils.make b/rules/v4l-utils.make
index b5b5891e6..f991e8cb1 100644
--- a/rules/v4l-utils.make
+++ b/rules/v4l-utils.make
@@ -14,10 +14,10 @@ PACKAGES-$(PTXCONF_V4L_UTILS) += v4l-utils
#
# Paths and names
#
-V4L_UTILS_VERSION := 1.20.0
-V4L_UTILS_MD5 := 46f9e2c0b2fdccd009da2f7e1aa87894
+V4L_UTILS_VERSION := 1.26.0
+V4L_UTILS_MD5 := 0ccb2a18e1d3a3b2986591753a2b3a7f
V4L_UTILS := v4l-utils-$(V4L_UTILS_VERSION)
-V4L_UTILS_SUFFIX := tar.bz2
+V4L_UTILS_SUFFIX := tar.xz
V4L_UTILS_URL := http://linuxtv.org/downloads/v4l-utils/$(V4L_UTILS).$(V4L_UTILS_SUFFIX)
V4L_UTILS_SOURCE := $(SRCDIR)/$(V4L_UTILS).$(V4L_UTILS_SUFFIX)
V4L_UTILS_DIR := $(BUILDDIR)/$(V4L_UTILS)
@@ -31,36 +31,33 @@ V4L_UTILS_LICENSE_FILES := \
# Prepare
# ----------------------------------------------------------------------------
-V4L_UTILS_CONF_TOOL := autoconf
+V4L_UTILS_CONF_TOOL := meson
V4L_UTILS_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --disable-doxygen-doc \
- --disable-doxygen-dot \
- --disable-doxygen-man \
- --disable-doxygen-rtf \
- --disable-doxygen-xml \
- --disable-doxygen-chm \
- --disable-doxygen-chi \
- --disable-doxygen-html \
- --disable-doxygen-ps \
- --disable-doxygen-pdf \
- --disable-nls \
- --disable-rpath \
- --disable-libdvbv5 \
- --enable-dyn-libv4l \
- --enable-v4l-utils \
- --enable-v4l2-compliance-libv4l \
- --disable-v4l2-compliance-32 \
- --enable-v4l2-ctl-libv4l \
- --enable-v4l2-ctl-stream-to \
- --disable-v4l2-ctl-32 \
- --disable-qv4l2 \
- --disable-qvidcap \
- --disable-gconv \
- --$(call ptx/endis, PTXCONF_V4L_UTILS_IRKEYTABLE)-bpf \
- --$(call ptx/wwo, PTXCONF_V4L_UTILS_LIBV4LCONVERT)-jpeg \
- --with-udevdir=/usr/lib/udev \
- --with-systemdsystemunitdir=/usr/lib/systemd/system
+ $(CROSS_MESON_USR) \
+ -Dbpf=disabled \
+ -Ddoxygen-doc=disabled \
+ -Ddoxygen-html=false \
+ -Ddoxygen-man=false \
+ -Dgconv=disabled \
+ -Dgconvsysdir= \
+ -Djpeg=$(call ptx/endis, PTXCONF_V4L_UTILS_LIBV4LCONVERT)d \
+ -Dlibdvbv5=disabled \
+ -Dlibv4l1subdir=libv4l \
+ -Dlibv4l2subdir=libv4l \
+ -Dlibv4lconvertsubdir=libv4l \
+ -Dqv4l2=disabled \
+ -Dqvidcap=disabled \
+ -Dsystemdsystemunitdir=/usr/lib/systemd/system \
+ -Dudevdir=/usr/lib/udev \
+ -Dv4l-plugins=true \
+ -Dv4l-utils=true \
+ -Dv4l-wrappers=true \
+ -Dv4l2-compliance-32=false \
+ -Dv4l2-compliance-libv4l=true \
+ -Dv4l2-ctl-32=false \
+ -Dv4l2-ctl-libv4l=true \
+ -Dv4l2-ctl-stream-to=true \
+ -Dv4l2-tracer=$(call ptx/endis, PTXCONF_V4L_UTILS_TRACER)d
ifdef PTXCONF_KERNEL_HEADER
V4L_UTILS_CPPFLAGS := \
@@ -134,6 +131,9 @@ endif
ifdef PTXCONF_V4L_UTILS_V4L2SYSFSPATH
@$(call install_copy, v4l-utils, 0, 0, 0755, -, /usr/bin/v4l2-sysfs-path)
endif
+ifdef PTXCONF_V4L_UTILS_TRACER
+ @$(call install_copy, v4l-utils, 0, 0, 0755, -, /usr/bin/v4l2-tracer)
+endif
@$(call install_finish, v4l-utils)
@$(call touch)
diff --git a/rules/valgrind.make b/rules/valgrind.make
index 6dacd4f9a..2951075b2 100644
--- a/rules/valgrind.make
+++ b/rules/valgrind.make
@@ -18,14 +18,17 @@ PACKAGES-$(PTXCONF_ARCH_ARM64)-$(PTXCONF_VALGRIND) += valgrind
#
# Paths and names
#
-VALGRIND_VERSION := 3.16.1
-VALGRIND_MD5 := d1b153f1ab17cf1f311705e7a83ef589
+VALGRIND_VERSION := 3.22.0
+VALGRIND_MD5 := 38ea14f567efa09687a822b33b4d9d60
VALGRIND := valgrind-$(VALGRIND_VERSION)
VALGRIND_SUFFIX := tar.bz2
VALGRIND_URL := https://sourceware.org/pub/valgrind/$(VALGRIND).$(VALGRIND_SUFFIX)
VALGRIND_SOURCE := $(SRCDIR)/$(VALGRIND).$(VALGRIND_SUFFIX)
VALGRIND_DIR := $(BUILDDIR)/$(VALGRIND)
-VALGRIND_LICENSE := GPL-2.0-only
+VALGRIND_LICENSE := GPL-2.0-or-later
+VALGRIND_LICENSE_FILES := \
+ file://callgrind/main.c;startline=11;endline=29;md5=a403c9acc35909154c705a9d66c2c65d \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263
# ----------------------------------------------------------------------------
# Prepare
@@ -39,7 +42,7 @@ ifdef KERNEL_HEADER_VERSION
VALGRIND_KERNEL_VERSION := $(KERNEL_HEADER_VERSION)
endif
-VALGRIND_ENV := \
+VALGRIND_CONF_ENV := \
$(CROSS_ENV) \
valgrind_cv_sys_kernel_version=$(VALGRIND_KERNEL_VERSION)
@@ -56,8 +59,13 @@ endif
VALGRIND_CONF_TOOL := autoconf
VALGRIND_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
- --without-mpicc \
- --enable-tls
+ --disable-only64bit \
+ --disable-only32bit \
+ --disable-inner \
+ --disable-ubsan \
+ --disable-lto \
+ --enable-tls \
+ --without-mpicc
# ----------------------------------------------------------------------------
# Target-Install
@@ -74,7 +82,7 @@ $(STATEDIR)/valgrind.targetinstall:
@$(call install_copy, valgrind, 0, 0, 0755, -, /usr/bin/valgrind)
- @$(call install_glob, valgrind, 0, 0, -, /usr/lib/valgrind,,*.a)
+ @$(call install_tree, valgrind, 0, 0, -, /usr/libexec/valgrind)
@$(call install_finish, valgrind)
diff --git a/rules/vim.in b/rules/vim.in
index d76d0f362..c4c9d14e6 100644
--- a/rules/vim.in
+++ b/rules/vim.in
@@ -1,13 +1,35 @@
## SECTION=editors
-config VIM
+comment "BusyBox' vi and xxd is selected!"
+ depends on BUSYBOX_VI && BUSYBOX_XXD
+
+menuconfig VIM
tristate
+ depends on !(BUSYBOX_VI && BUSYBOX_XXD)
select LIBC_DL
select LIBC_M
select GCCLIBS_GCC_S
select NCURSES
- prompt "vim"
+ prompt "vim "
help
Vim is an advanced text editor that seeks to provide the
power of the de-facto Unix editor 'Vi', with a more complete
feature set.
+
+if VIM
+
+comment "BusyBox' vi is selected!"
+ depends on BUSYBOX_VI
+
+config VIM_VIM
+ depends on !BUSYBOX_VI
+ bool "Vim Editor"
+
+comment "BusyBox' xxd is selected!"
+ depends on BUSYBOX_XXD
+
+config VIM_XXD
+ depends on !BUSYBOX_XXD
+ bool "XXD"
+
+endif
diff --git a/rules/vim.make b/rules/vim.make
index a734fe2ed..b03778e53 100644
--- a/rules/vim.make
+++ b/rules/vim.make
@@ -14,15 +14,17 @@ PACKAGES-$(PTXCONF_VIM) += vim
#
# Paths and names
#
-VIM_VERSION := 8.1
-VIM_MD5 := 1739a1df312305155285f0cfa6118294
+VIM_VERSION := 9.1.0061
+VIM_MD5 := 61c5918a6098e7930b9998ad4cbf0633
VIM := vim-$(VIM_VERSION)
-VIM_SUFFIX := tar.bz2
-VIM_URL := http://ftp.vim.org/pub/vim/unix/$(VIM).$(VIM_SUFFIX)
+VIM_SUFFIX := tar.gz
+VIM_URL := https://github.com/vim/vim/archive/refs/tags/v$(VIM_VERSION).$(VIM_SUFFIX)
VIM_SOURCE := $(SRCDIR)/$(VIM).$(VIM_SUFFIX)
VIM_DIR := $(BUILDDIR)/$(VIM)
VIM_SUBDIR := src
VIM_LICENSE := Vim
+VIM_LICENSE_FILES := \
+ file://LICENSE;md5=d1a651ab770b45d41c0f8cb5a8ca930e
# ----------------------------------------------------------------------------
# Prepare
@@ -49,6 +51,7 @@ VIM_CONF_OPT := \
--disable-darwin \
--disable-smack \
--disable-selinux \
+ --disable-xattr \
--disable-xsmp \
--disable-xsmp-interact \
--disable-luainterp \
@@ -59,13 +62,14 @@ VIM_CONF_OPT := \
--disable-tclinterp \
--disable-rubyinterp \
--disable-cscope \
- --disable-workshop \
--disable-netbeans \
--disable-channel \
--disable-terminal \
--disable-autoservername \
- --disable-multibyte \
- --disable-hangulinput \
+ --enable-multibyte \
+ --disable-rightleft \
+ --disable-arabic \
+ --disable-farsi \
--disable-xim \
--disable-fontset \
--disable-gui \
@@ -73,18 +77,18 @@ VIM_CONF_OPT := \
--disable-gnome-check \
--disable-gtk3-check \
--disable-motif-check \
- --disable-athena-check \
- --disable-nextaw-check \
- --disable-carbon-check \
--disable-gtktest \
--disable-icon-cache-update \
--disable-desktop-database-update \
$(GLOBAL_LARGE_FILE_OPTION) \
+ --disable-canberra \
+ --disable-libsodium \
--disable-acl \
--disable-gpm \
--disable-sysmouse \
--disable-nls \
--without-x \
+ --without-gnome \
--with-tlib=ncurses
VIM_INSTALL_OPT := \
@@ -108,13 +112,18 @@ $(STATEDIR)/vim.targetinstall:
@$(call install_fixup, vim,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
@$(call install_fixup, vim,DESCRIPTION,missing)
+ifdef PTXCONF_VIM_VIM
@$(call install_copy, vim, 0, 0, 0755, -, /usr/bin/vim)
@$(foreach link, $(VIM_LINKS), \
- $(call install_link, vim, vim, /usr/bin/$(link));)
+ $(call install_link, vim, vim, /usr/bin/$(link))$(ptx/nl))
@$(call install_tree, vim, 0, 0, -, /usr/share/vim)
+endif
+ifdef PTXCONF_VIM_XXD
+ @$(call install_copy, vim, 0, 0, 0755, $(VIM_DIR)/$(VIM_SUBDIR)/xxd/xxd, /usr/bin/xxd)
+endif
@$(call install_finish, vim)
@$(call touch)
diff --git a/rules/vkrunner.cargo.make b/rules/vkrunner.cargo.make
new file mode 100644
index 000000000..1a23a632c
--- /dev/null
+++ b/rules/vkrunner.cargo.make
@@ -0,0 +1,341 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Philipp Zabel <p.zabel@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# WARNING: This file is generated with 'ptxdist cargosync vkrunner' and
+# should not be modified manually!
+#
+
+VKRUNNER_CARGO_LOCK_MD5 := 9e1e4659e539ad51427ff9d892690b90
+
+VKRUNNER_AHO_CORASICK_1_1_2_MD5 := 95e5f8d0b7ab37171b8d3118542ba06a
+VKRUNNER_AHO_CORASICK_1_1_2_URL := https://crates.io/api/v1/crates/aho-corasick/1.1.2/download
+VKRUNNER_AHO_CORASICK_1_1_2_SOURCE := $(SRCDIR)/aho-corasick-1.1.2.crate
+$(VKRUNNER_AHO_CORASICK_1_1_2_SOURCE) := VKRUNNER_AHO_CORASICK_1_1_2
+VKRUNNER_SOURCES += $(VKRUNNER_AHO_CORASICK_1_1_2_SOURCE)
+
+VKRUNNER_BINDGEN_0_66_1_MD5 := 1f6265ba2e47db43235015db82903eda
+VKRUNNER_BINDGEN_0_66_1_URL := https://crates.io/api/v1/crates/bindgen/0.66.1/download
+VKRUNNER_BINDGEN_0_66_1_SOURCE := $(SRCDIR)/bindgen-0.66.1.crate
+$(VKRUNNER_BINDGEN_0_66_1_SOURCE) := VKRUNNER_BINDGEN_0_66_1
+VKRUNNER_SOURCES += $(VKRUNNER_BINDGEN_0_66_1_SOURCE)
+
+VKRUNNER_BITFLAGS_2_4_1_MD5 := ebcf604c44976809506192718f439dc1
+VKRUNNER_BITFLAGS_2_4_1_URL := https://crates.io/api/v1/crates/bitflags/2.4.1/download
+VKRUNNER_BITFLAGS_2_4_1_SOURCE := $(SRCDIR)/bitflags-2.4.1.crate
+$(VKRUNNER_BITFLAGS_2_4_1_SOURCE) := VKRUNNER_BITFLAGS_2_4_1
+VKRUNNER_SOURCES += $(VKRUNNER_BITFLAGS_2_4_1_SOURCE)
+
+VKRUNNER_CEXPR_0_6_0_MD5 := 10b68ba1e7093d889e9198dcd0ea2a3e
+VKRUNNER_CEXPR_0_6_0_URL := https://crates.io/api/v1/crates/cexpr/0.6.0/download
+VKRUNNER_CEXPR_0_6_0_SOURCE := $(SRCDIR)/cexpr-0.6.0.crate
+$(VKRUNNER_CEXPR_0_6_0_SOURCE) := VKRUNNER_CEXPR_0_6_0
+VKRUNNER_SOURCES += $(VKRUNNER_CEXPR_0_6_0_SOURCE)
+
+VKRUNNER_CFG_IF_1_0_0_MD5 := 74634128440dbc3766bda76fdf0aaa05
+VKRUNNER_CFG_IF_1_0_0_URL := https://crates.io/api/v1/crates/cfg-if/1.0.0/download
+VKRUNNER_CFG_IF_1_0_0_SOURCE := $(SRCDIR)/cfg-if-1.0.0.crate
+$(VKRUNNER_CFG_IF_1_0_0_SOURCE) := VKRUNNER_CFG_IF_1_0_0
+VKRUNNER_SOURCES += $(VKRUNNER_CFG_IF_1_0_0_SOURCE)
+
+VKRUNNER_CLANG_SYS_1_6_1_MD5 := 5a48ed611b16107cf2e3053d4cf73b0f
+VKRUNNER_CLANG_SYS_1_6_1_URL := https://crates.io/api/v1/crates/clang-sys/1.6.1/download
+VKRUNNER_CLANG_SYS_1_6_1_SOURCE := $(SRCDIR)/clang-sys-1.6.1.crate
+$(VKRUNNER_CLANG_SYS_1_6_1_SOURCE) := VKRUNNER_CLANG_SYS_1_6_1
+VKRUNNER_SOURCES += $(VKRUNNER_CLANG_SYS_1_6_1_SOURCE)
+
+VKRUNNER_EITHER_1_9_0_MD5 := 3c3ab76bd9ed94de350152f1af4c61e8
+VKRUNNER_EITHER_1_9_0_URL := https://crates.io/api/v1/crates/either/1.9.0/download
+VKRUNNER_EITHER_1_9_0_SOURCE := $(SRCDIR)/either-1.9.0.crate
+$(VKRUNNER_EITHER_1_9_0_SOURCE) := VKRUNNER_EITHER_1_9_0
+VKRUNNER_SOURCES += $(VKRUNNER_EITHER_1_9_0_SOURCE)
+
+VKRUNNER_ERRNO_0_3_8_MD5 := 349e0ae5420f0b7e6ff835cd03cc7428
+VKRUNNER_ERRNO_0_3_8_URL := https://crates.io/api/v1/crates/errno/0.3.8/download
+VKRUNNER_ERRNO_0_3_8_SOURCE := $(SRCDIR)/errno-0.3.8.crate
+$(VKRUNNER_ERRNO_0_3_8_SOURCE) := VKRUNNER_ERRNO_0_3_8
+VKRUNNER_SOURCES += $(VKRUNNER_ERRNO_0_3_8_SOURCE)
+
+VKRUNNER_GLOB_0_3_1_MD5 := 2d6d28ec311884da69bcaf320ada8ad5
+VKRUNNER_GLOB_0_3_1_URL := https://crates.io/api/v1/crates/glob/0.3.1/download
+VKRUNNER_GLOB_0_3_1_SOURCE := $(SRCDIR)/glob-0.3.1.crate
+$(VKRUNNER_GLOB_0_3_1_SOURCE) := VKRUNNER_GLOB_0_3_1
+VKRUNNER_SOURCES += $(VKRUNNER_GLOB_0_3_1_SOURCE)
+
+VKRUNNER_HOME_0_5_5_MD5 := 11681ec4554f1f934b25eeba3f558ea7
+VKRUNNER_HOME_0_5_5_URL := https://crates.io/api/v1/crates/home/0.5.5/download
+VKRUNNER_HOME_0_5_5_SOURCE := $(SRCDIR)/home-0.5.5.crate
+$(VKRUNNER_HOME_0_5_5_SOURCE) := VKRUNNER_HOME_0_5_5
+VKRUNNER_SOURCES += $(VKRUNNER_HOME_0_5_5_SOURCE)
+
+VKRUNNER_LAZY_STATIC_1_4_0_MD5 := fba3b040a55c01be7376d3dd5c4d4920
+VKRUNNER_LAZY_STATIC_1_4_0_URL := https://crates.io/api/v1/crates/lazy_static/1.4.0/download
+VKRUNNER_LAZY_STATIC_1_4_0_SOURCE := $(SRCDIR)/lazy_static-1.4.0.crate
+$(VKRUNNER_LAZY_STATIC_1_4_0_SOURCE) := VKRUNNER_LAZY_STATIC_1_4_0
+VKRUNNER_SOURCES += $(VKRUNNER_LAZY_STATIC_1_4_0_SOURCE)
+
+VKRUNNER_LAZYCELL_1_3_0_MD5 := 23cc9e52c52465f5b225e62ab7cc3457
+VKRUNNER_LAZYCELL_1_3_0_URL := https://crates.io/api/v1/crates/lazycell/1.3.0/download
+VKRUNNER_LAZYCELL_1_3_0_SOURCE := $(SRCDIR)/lazycell-1.3.0.crate
+$(VKRUNNER_LAZYCELL_1_3_0_SOURCE) := VKRUNNER_LAZYCELL_1_3_0
+VKRUNNER_SOURCES += $(VKRUNNER_LAZYCELL_1_3_0_SOURCE)
+
+VKRUNNER_LIBC_0_2_150_MD5 := 5a8dc4bf5c57a6487a7247a635347cc9
+VKRUNNER_LIBC_0_2_150_URL := https://crates.io/api/v1/crates/libc/0.2.150/download
+VKRUNNER_LIBC_0_2_150_SOURCE := $(SRCDIR)/libc-0.2.150.crate
+$(VKRUNNER_LIBC_0_2_150_SOURCE) := VKRUNNER_LIBC_0_2_150
+VKRUNNER_SOURCES += $(VKRUNNER_LIBC_0_2_150_SOURCE)
+
+VKRUNNER_LIBLOADING_0_7_4_MD5 := 02e14c7718a87f6c90ba05b62fd5c706
+VKRUNNER_LIBLOADING_0_7_4_URL := https://crates.io/api/v1/crates/libloading/0.7.4/download
+VKRUNNER_LIBLOADING_0_7_4_SOURCE := $(SRCDIR)/libloading-0.7.4.crate
+$(VKRUNNER_LIBLOADING_0_7_4_SOURCE) := VKRUNNER_LIBLOADING_0_7_4
+VKRUNNER_SOURCES += $(VKRUNNER_LIBLOADING_0_7_4_SOURCE)
+
+VKRUNNER_LINUX_RAW_SYS_0_4_11_MD5 := c0be6754bd3aef87de8cbc405f9f1673
+VKRUNNER_LINUX_RAW_SYS_0_4_11_URL := https://crates.io/api/v1/crates/linux-raw-sys/0.4.11/download
+VKRUNNER_LINUX_RAW_SYS_0_4_11_SOURCE := $(SRCDIR)/linux-raw-sys-0.4.11.crate
+$(VKRUNNER_LINUX_RAW_SYS_0_4_11_SOURCE) := VKRUNNER_LINUX_RAW_SYS_0_4_11
+VKRUNNER_SOURCES += $(VKRUNNER_LINUX_RAW_SYS_0_4_11_SOURCE)
+
+VKRUNNER_LOG_0_4_20_MD5 := 8ee79b4fe4c43d9ab09f16344612a656
+VKRUNNER_LOG_0_4_20_URL := https://crates.io/api/v1/crates/log/0.4.20/download
+VKRUNNER_LOG_0_4_20_SOURCE := $(SRCDIR)/log-0.4.20.crate
+$(VKRUNNER_LOG_0_4_20_SOURCE) := VKRUNNER_LOG_0_4_20
+VKRUNNER_SOURCES += $(VKRUNNER_LOG_0_4_20_SOURCE)
+
+VKRUNNER_MEMCHR_2_6_4_MD5 := ab9a5f02cef3b8794d810332ebf26a03
+VKRUNNER_MEMCHR_2_6_4_URL := https://crates.io/api/v1/crates/memchr/2.6.4/download
+VKRUNNER_MEMCHR_2_6_4_SOURCE := $(SRCDIR)/memchr-2.6.4.crate
+$(VKRUNNER_MEMCHR_2_6_4_SOURCE) := VKRUNNER_MEMCHR_2_6_4
+VKRUNNER_SOURCES += $(VKRUNNER_MEMCHR_2_6_4_SOURCE)
+
+VKRUNNER_MINIMAL_LEXICAL_0_2_1_MD5 := 8b708bc4b33c5e1683467444c9ed41b0
+VKRUNNER_MINIMAL_LEXICAL_0_2_1_URL := https://crates.io/api/v1/crates/minimal-lexical/0.2.1/download
+VKRUNNER_MINIMAL_LEXICAL_0_2_1_SOURCE := $(SRCDIR)/minimal-lexical-0.2.1.crate
+$(VKRUNNER_MINIMAL_LEXICAL_0_2_1_SOURCE) := VKRUNNER_MINIMAL_LEXICAL_0_2_1
+VKRUNNER_SOURCES += $(VKRUNNER_MINIMAL_LEXICAL_0_2_1_SOURCE)
+
+VKRUNNER_NOM_7_1_3_MD5 := f17aecb8887cf0ecd823623160aed7db
+VKRUNNER_NOM_7_1_3_URL := https://crates.io/api/v1/crates/nom/7.1.3/download
+VKRUNNER_NOM_7_1_3_SOURCE := $(SRCDIR)/nom-7.1.3.crate
+$(VKRUNNER_NOM_7_1_3_SOURCE) := VKRUNNER_NOM_7_1_3
+VKRUNNER_SOURCES += $(VKRUNNER_NOM_7_1_3_SOURCE)
+
+VKRUNNER_ONCE_CELL_1_18_0_MD5 := 2dc8aacabbc090f8025a4789d4d6d8f0
+VKRUNNER_ONCE_CELL_1_18_0_URL := https://crates.io/api/v1/crates/once_cell/1.18.0/download
+VKRUNNER_ONCE_CELL_1_18_0_SOURCE := $(SRCDIR)/once_cell-1.18.0.crate
+$(VKRUNNER_ONCE_CELL_1_18_0_SOURCE) := VKRUNNER_ONCE_CELL_1_18_0
+VKRUNNER_SOURCES += $(VKRUNNER_ONCE_CELL_1_18_0_SOURCE)
+
+VKRUNNER_PEEKING_TAKE_WHILE_0_1_2_MD5 := 7e264bc8f23a45ad680668cb5e57d9fd
+VKRUNNER_PEEKING_TAKE_WHILE_0_1_2_URL := https://crates.io/api/v1/crates/peeking_take_while/0.1.2/download
+VKRUNNER_PEEKING_TAKE_WHILE_0_1_2_SOURCE := $(SRCDIR)/peeking_take_while-0.1.2.crate
+$(VKRUNNER_PEEKING_TAKE_WHILE_0_1_2_SOURCE) := VKRUNNER_PEEKING_TAKE_WHILE_0_1_2
+VKRUNNER_SOURCES += $(VKRUNNER_PEEKING_TAKE_WHILE_0_1_2_SOURCE)
+
+VKRUNNER_PRETTYPLEASE_0_2_15_MD5 := beb36b9ac1331ce2e49ac59d6abc784b
+VKRUNNER_PRETTYPLEASE_0_2_15_URL := https://crates.io/api/v1/crates/prettyplease/0.2.15/download
+VKRUNNER_PRETTYPLEASE_0_2_15_SOURCE := $(SRCDIR)/prettyplease-0.2.15.crate
+$(VKRUNNER_PRETTYPLEASE_0_2_15_SOURCE) := VKRUNNER_PRETTYPLEASE_0_2_15
+VKRUNNER_SOURCES += $(VKRUNNER_PRETTYPLEASE_0_2_15_SOURCE)
+
+VKRUNNER_PROC_MACRO2_1_0_70_MD5 := 3f210fd91912a2d7d2f0af5038704d17
+VKRUNNER_PROC_MACRO2_1_0_70_URL := https://crates.io/api/v1/crates/proc-macro2/1.0.70/download
+VKRUNNER_PROC_MACRO2_1_0_70_SOURCE := $(SRCDIR)/proc-macro2-1.0.70.crate
+$(VKRUNNER_PROC_MACRO2_1_0_70_SOURCE) := VKRUNNER_PROC_MACRO2_1_0_70
+VKRUNNER_SOURCES += $(VKRUNNER_PROC_MACRO2_1_0_70_SOURCE)
+
+VKRUNNER_QUOTE_1_0_33_MD5 := 0ddb8bccd3198892d0dd0ec7151f7cd3
+VKRUNNER_QUOTE_1_0_33_URL := https://crates.io/api/v1/crates/quote/1.0.33/download
+VKRUNNER_QUOTE_1_0_33_SOURCE := $(SRCDIR)/quote-1.0.33.crate
+$(VKRUNNER_QUOTE_1_0_33_SOURCE) := VKRUNNER_QUOTE_1_0_33
+VKRUNNER_SOURCES += $(VKRUNNER_QUOTE_1_0_33_SOURCE)
+
+VKRUNNER_REGEX_1_10_2_MD5 := e90f2809a34e2bea0bd5c1120475fb36
+VKRUNNER_REGEX_1_10_2_URL := https://crates.io/api/v1/crates/regex/1.10.2/download
+VKRUNNER_REGEX_1_10_2_SOURCE := $(SRCDIR)/regex-1.10.2.crate
+$(VKRUNNER_REGEX_1_10_2_SOURCE) := VKRUNNER_REGEX_1_10_2
+VKRUNNER_SOURCES += $(VKRUNNER_REGEX_1_10_2_SOURCE)
+
+VKRUNNER_REGEX_AUTOMATA_0_4_3_MD5 := 4f496143a21775fa7bd22bf329c37f37
+VKRUNNER_REGEX_AUTOMATA_0_4_3_URL := https://crates.io/api/v1/crates/regex-automata/0.4.3/download
+VKRUNNER_REGEX_AUTOMATA_0_4_3_SOURCE := $(SRCDIR)/regex-automata-0.4.3.crate
+$(VKRUNNER_REGEX_AUTOMATA_0_4_3_SOURCE) := VKRUNNER_REGEX_AUTOMATA_0_4_3
+VKRUNNER_SOURCES += $(VKRUNNER_REGEX_AUTOMATA_0_4_3_SOURCE)
+
+VKRUNNER_REGEX_SYNTAX_0_8_2_MD5 := 91b60a71d44302a8b05bd398eca56c37
+VKRUNNER_REGEX_SYNTAX_0_8_2_URL := https://crates.io/api/v1/crates/regex-syntax/0.8.2/download
+VKRUNNER_REGEX_SYNTAX_0_8_2_SOURCE := $(SRCDIR)/regex-syntax-0.8.2.crate
+$(VKRUNNER_REGEX_SYNTAX_0_8_2_SOURCE) := VKRUNNER_REGEX_SYNTAX_0_8_2
+VKRUNNER_SOURCES += $(VKRUNNER_REGEX_SYNTAX_0_8_2_SOURCE)
+
+VKRUNNER_RUSTC_HASH_1_1_0_MD5 := 7b1261ea730a9314bc9bcdf4a379bf98
+VKRUNNER_RUSTC_HASH_1_1_0_URL := https://crates.io/api/v1/crates/rustc-hash/1.1.0/download
+VKRUNNER_RUSTC_HASH_1_1_0_SOURCE := $(SRCDIR)/rustc-hash-1.1.0.crate
+$(VKRUNNER_RUSTC_HASH_1_1_0_SOURCE) := VKRUNNER_RUSTC_HASH_1_1_0
+VKRUNNER_SOURCES += $(VKRUNNER_RUSTC_HASH_1_1_0_SOURCE)
+
+VKRUNNER_RUSTIX_0_38_25_MD5 := 9bdda698a3c8ba141f4daba1a7630143
+VKRUNNER_RUSTIX_0_38_25_URL := https://crates.io/api/v1/crates/rustix/0.38.25/download
+VKRUNNER_RUSTIX_0_38_25_SOURCE := $(SRCDIR)/rustix-0.38.25.crate
+$(VKRUNNER_RUSTIX_0_38_25_SOURCE) := VKRUNNER_RUSTIX_0_38_25
+VKRUNNER_SOURCES += $(VKRUNNER_RUSTIX_0_38_25_SOURCE)
+
+VKRUNNER_SHLEX_1_2_0_MD5 := 40b02ab40fd4f24ce2f9cd8a9e8d1ccf
+VKRUNNER_SHLEX_1_2_0_URL := https://crates.io/api/v1/crates/shlex/1.2.0/download
+VKRUNNER_SHLEX_1_2_0_SOURCE := $(SRCDIR)/shlex-1.2.0.crate
+$(VKRUNNER_SHLEX_1_2_0_SOURCE) := VKRUNNER_SHLEX_1_2_0
+VKRUNNER_SOURCES += $(VKRUNNER_SHLEX_1_2_0_SOURCE)
+
+VKRUNNER_SYN_2_0_39_MD5 := 16236f1edd28a8895ad8c3de8de226d8
+VKRUNNER_SYN_2_0_39_URL := https://crates.io/api/v1/crates/syn/2.0.39/download
+VKRUNNER_SYN_2_0_39_SOURCE := $(SRCDIR)/syn-2.0.39.crate
+$(VKRUNNER_SYN_2_0_39_SOURCE) := VKRUNNER_SYN_2_0_39
+VKRUNNER_SOURCES += $(VKRUNNER_SYN_2_0_39_SOURCE)
+
+VKRUNNER_UNICODE_IDENT_1_0_12_MD5 := ca65153603a1a7240bbd9d2ce19f2d67
+VKRUNNER_UNICODE_IDENT_1_0_12_URL := https://crates.io/api/v1/crates/unicode-ident/1.0.12/download
+VKRUNNER_UNICODE_IDENT_1_0_12_SOURCE := $(SRCDIR)/unicode-ident-1.0.12.crate
+$(VKRUNNER_UNICODE_IDENT_1_0_12_SOURCE) := VKRUNNER_UNICODE_IDENT_1_0_12
+VKRUNNER_SOURCES += $(VKRUNNER_UNICODE_IDENT_1_0_12_SOURCE)
+
+VKRUNNER_WHICH_4_4_2_MD5 := 9f0ad88c4840b999e28531dee406432d
+VKRUNNER_WHICH_4_4_2_URL := https://crates.io/api/v1/crates/which/4.4.2/download
+VKRUNNER_WHICH_4_4_2_SOURCE := $(SRCDIR)/which-4.4.2.crate
+$(VKRUNNER_WHICH_4_4_2_SOURCE) := VKRUNNER_WHICH_4_4_2
+VKRUNNER_SOURCES += $(VKRUNNER_WHICH_4_4_2_SOURCE)
+
+VKRUNNER_WINAPI_0_3_9_MD5 := 0498c4a11448bfc35dc7bb2caa64c753
+VKRUNNER_WINAPI_0_3_9_URL := https://crates.io/api/v1/crates/winapi/0.3.9/download
+VKRUNNER_WINAPI_0_3_9_SOURCE := $(SRCDIR)/winapi-0.3.9.crate
+$(VKRUNNER_WINAPI_0_3_9_SOURCE) := VKRUNNER_WINAPI_0_3_9
+VKRUNNER_SOURCES += $(VKRUNNER_WINAPI_0_3_9_SOURCE)
+
+VKRUNNER_WINAPI_I686_PC_WINDOWS_GNU_0_4_0_MD5 := db96b50050277bf05a3c68534bbb9586
+VKRUNNER_WINAPI_I686_PC_WINDOWS_GNU_0_4_0_URL := https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download
+VKRUNNER_WINAPI_I686_PC_WINDOWS_GNU_0_4_0_SOURCE := $(SRCDIR)/winapi-i686-pc-windows-gnu-0.4.0.crate
+$(VKRUNNER_WINAPI_I686_PC_WINDOWS_GNU_0_4_0_SOURCE) := VKRUNNER_WINAPI_I686_PC_WINDOWS_GNU_0_4_0
+VKRUNNER_SOURCES += $(VKRUNNER_WINAPI_I686_PC_WINDOWS_GNU_0_4_0_SOURCE)
+
+VKRUNNER_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0_MD5 := 09de9d01e7331ff3da11f58be8bef0df
+VKRUNNER_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0_URL := https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download
+VKRUNNER_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0_SOURCE := $(SRCDIR)/winapi-x86_64-pc-windows-gnu-0.4.0.crate
+$(VKRUNNER_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0_SOURCE) := VKRUNNER_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0
+VKRUNNER_SOURCES += $(VKRUNNER_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0_SOURCE)
+
+VKRUNNER_WINDOWS_SYS_0_48_0_MD5 := f2797ade0e36f1e5d6be9d11b5076582
+VKRUNNER_WINDOWS_SYS_0_48_0_URL := https://crates.io/api/v1/crates/windows-sys/0.48.0/download
+VKRUNNER_WINDOWS_SYS_0_48_0_SOURCE := $(SRCDIR)/windows-sys-0.48.0.crate
+$(VKRUNNER_WINDOWS_SYS_0_48_0_SOURCE) := VKRUNNER_WINDOWS_SYS_0_48_0
+VKRUNNER_SOURCES += $(VKRUNNER_WINDOWS_SYS_0_48_0_SOURCE)
+
+VKRUNNER_WINDOWS_SYS_0_52_0_MD5 := 2376de634160158ece40c4bc2ab3eb41
+VKRUNNER_WINDOWS_SYS_0_52_0_URL := https://crates.io/api/v1/crates/windows-sys/0.52.0/download
+VKRUNNER_WINDOWS_SYS_0_52_0_SOURCE := $(SRCDIR)/windows-sys-0.52.0.crate
+$(VKRUNNER_WINDOWS_SYS_0_52_0_SOURCE) := VKRUNNER_WINDOWS_SYS_0_52_0
+VKRUNNER_SOURCES += $(VKRUNNER_WINDOWS_SYS_0_52_0_SOURCE)
+
+VKRUNNER_WINDOWS_TARGETS_0_48_5_MD5 := 24c64817e85ef77765ed0f26c31c9b4c
+VKRUNNER_WINDOWS_TARGETS_0_48_5_URL := https://crates.io/api/v1/crates/windows-targets/0.48.5/download
+VKRUNNER_WINDOWS_TARGETS_0_48_5_SOURCE := $(SRCDIR)/windows-targets-0.48.5.crate
+$(VKRUNNER_WINDOWS_TARGETS_0_48_5_SOURCE) := VKRUNNER_WINDOWS_TARGETS_0_48_5
+VKRUNNER_SOURCES += $(VKRUNNER_WINDOWS_TARGETS_0_48_5_SOURCE)
+
+VKRUNNER_WINDOWS_TARGETS_0_52_0_MD5 := 7ff44db201b805c60b7894e6e51a5580
+VKRUNNER_WINDOWS_TARGETS_0_52_0_URL := https://crates.io/api/v1/crates/windows-targets/0.52.0/download
+VKRUNNER_WINDOWS_TARGETS_0_52_0_SOURCE := $(SRCDIR)/windows-targets-0.52.0.crate
+$(VKRUNNER_WINDOWS_TARGETS_0_52_0_SOURCE) := VKRUNNER_WINDOWS_TARGETS_0_52_0
+VKRUNNER_SOURCES += $(VKRUNNER_WINDOWS_TARGETS_0_52_0_SOURCE)
+
+VKRUNNER_WINDOWS_AARCH64_GNULLVM_0_48_5_MD5 := dae6d89034a6988042fd8be4cf5e037d
+VKRUNNER_WINDOWS_AARCH64_GNULLVM_0_48_5_URL := https://crates.io/api/v1/crates/windows_aarch64_gnullvm/0.48.5/download
+VKRUNNER_WINDOWS_AARCH64_GNULLVM_0_48_5_SOURCE := $(SRCDIR)/windows_aarch64_gnullvm-0.48.5.crate
+$(VKRUNNER_WINDOWS_AARCH64_GNULLVM_0_48_5_SOURCE) := VKRUNNER_WINDOWS_AARCH64_GNULLVM_0_48_5
+VKRUNNER_SOURCES += $(VKRUNNER_WINDOWS_AARCH64_GNULLVM_0_48_5_SOURCE)
+
+VKRUNNER_WINDOWS_AARCH64_GNULLVM_0_52_0_MD5 := cd2efc4af413b9d1380761255c7a22ff
+VKRUNNER_WINDOWS_AARCH64_GNULLVM_0_52_0_URL := https://crates.io/api/v1/crates/windows_aarch64_gnullvm/0.52.0/download
+VKRUNNER_WINDOWS_AARCH64_GNULLVM_0_52_0_SOURCE := $(SRCDIR)/windows_aarch64_gnullvm-0.52.0.crate
+$(VKRUNNER_WINDOWS_AARCH64_GNULLVM_0_52_0_SOURCE) := VKRUNNER_WINDOWS_AARCH64_GNULLVM_0_52_0
+VKRUNNER_SOURCES += $(VKRUNNER_WINDOWS_AARCH64_GNULLVM_0_52_0_SOURCE)
+
+VKRUNNER_WINDOWS_AARCH64_MSVC_0_48_5_MD5 := de2839e16d9d7a9fd1c397da62f62b4a
+VKRUNNER_WINDOWS_AARCH64_MSVC_0_48_5_URL := https://crates.io/api/v1/crates/windows_aarch64_msvc/0.48.5/download
+VKRUNNER_WINDOWS_AARCH64_MSVC_0_48_5_SOURCE := $(SRCDIR)/windows_aarch64_msvc-0.48.5.crate
+$(VKRUNNER_WINDOWS_AARCH64_MSVC_0_48_5_SOURCE) := VKRUNNER_WINDOWS_AARCH64_MSVC_0_48_5
+VKRUNNER_SOURCES += $(VKRUNNER_WINDOWS_AARCH64_MSVC_0_48_5_SOURCE)
+
+VKRUNNER_WINDOWS_AARCH64_MSVC_0_52_0_MD5 := 5b2c6ccb94c770d0ed85f7a844bf001e
+VKRUNNER_WINDOWS_AARCH64_MSVC_0_52_0_URL := https://crates.io/api/v1/crates/windows_aarch64_msvc/0.52.0/download
+VKRUNNER_WINDOWS_AARCH64_MSVC_0_52_0_SOURCE := $(SRCDIR)/windows_aarch64_msvc-0.52.0.crate
+$(VKRUNNER_WINDOWS_AARCH64_MSVC_0_52_0_SOURCE) := VKRUNNER_WINDOWS_AARCH64_MSVC_0_52_0
+VKRUNNER_SOURCES += $(VKRUNNER_WINDOWS_AARCH64_MSVC_0_52_0_SOURCE)
+
+VKRUNNER_WINDOWS_I686_GNU_0_48_5_MD5 := e0c35ffb8cfdb74a39bf799811f79304
+VKRUNNER_WINDOWS_I686_GNU_0_48_5_URL := https://crates.io/api/v1/crates/windows_i686_gnu/0.48.5/download
+VKRUNNER_WINDOWS_I686_GNU_0_48_5_SOURCE := $(SRCDIR)/windows_i686_gnu-0.48.5.crate
+$(VKRUNNER_WINDOWS_I686_GNU_0_48_5_SOURCE) := VKRUNNER_WINDOWS_I686_GNU_0_48_5
+VKRUNNER_SOURCES += $(VKRUNNER_WINDOWS_I686_GNU_0_48_5_SOURCE)
+
+VKRUNNER_WINDOWS_I686_GNU_0_52_0_MD5 := 467f51d4cfb646d0c8fecfa008dbf52d
+VKRUNNER_WINDOWS_I686_GNU_0_52_0_URL := https://crates.io/api/v1/crates/windows_i686_gnu/0.52.0/download
+VKRUNNER_WINDOWS_I686_GNU_0_52_0_SOURCE := $(SRCDIR)/windows_i686_gnu-0.52.0.crate
+$(VKRUNNER_WINDOWS_I686_GNU_0_52_0_SOURCE) := VKRUNNER_WINDOWS_I686_GNU_0_52_0
+VKRUNNER_SOURCES += $(VKRUNNER_WINDOWS_I686_GNU_0_52_0_SOURCE)
+
+VKRUNNER_WINDOWS_I686_MSVC_0_48_5_MD5 := d990172b607020701f9e84ca8e1c043c
+VKRUNNER_WINDOWS_I686_MSVC_0_48_5_URL := https://crates.io/api/v1/crates/windows_i686_msvc/0.48.5/download
+VKRUNNER_WINDOWS_I686_MSVC_0_48_5_SOURCE := $(SRCDIR)/windows_i686_msvc-0.48.5.crate
+$(VKRUNNER_WINDOWS_I686_MSVC_0_48_5_SOURCE) := VKRUNNER_WINDOWS_I686_MSVC_0_48_5
+VKRUNNER_SOURCES += $(VKRUNNER_WINDOWS_I686_MSVC_0_48_5_SOURCE)
+
+VKRUNNER_WINDOWS_I686_MSVC_0_52_0_MD5 := 9afb70c460db38399bf95ec015f07435
+VKRUNNER_WINDOWS_I686_MSVC_0_52_0_URL := https://crates.io/api/v1/crates/windows_i686_msvc/0.52.0/download
+VKRUNNER_WINDOWS_I686_MSVC_0_52_0_SOURCE := $(SRCDIR)/windows_i686_msvc-0.52.0.crate
+$(VKRUNNER_WINDOWS_I686_MSVC_0_52_0_SOURCE) := VKRUNNER_WINDOWS_I686_MSVC_0_52_0
+VKRUNNER_SOURCES += $(VKRUNNER_WINDOWS_I686_MSVC_0_52_0_SOURCE)
+
+VKRUNNER_WINDOWS_X86_64_GNU_0_48_5_MD5 := 0a68848588e847ceccf504891584d00b
+VKRUNNER_WINDOWS_X86_64_GNU_0_48_5_URL := https://crates.io/api/v1/crates/windows_x86_64_gnu/0.48.5/download
+VKRUNNER_WINDOWS_X86_64_GNU_0_48_5_SOURCE := $(SRCDIR)/windows_x86_64_gnu-0.48.5.crate
+$(VKRUNNER_WINDOWS_X86_64_GNU_0_48_5_SOURCE) := VKRUNNER_WINDOWS_X86_64_GNU_0_48_5
+VKRUNNER_SOURCES += $(VKRUNNER_WINDOWS_X86_64_GNU_0_48_5_SOURCE)
+
+VKRUNNER_WINDOWS_X86_64_GNU_0_52_0_MD5 := f34ea4d81690ec402b6f0d9e54e8baa4
+VKRUNNER_WINDOWS_X86_64_GNU_0_52_0_URL := https://crates.io/api/v1/crates/windows_x86_64_gnu/0.52.0/download
+VKRUNNER_WINDOWS_X86_64_GNU_0_52_0_SOURCE := $(SRCDIR)/windows_x86_64_gnu-0.52.0.crate
+$(VKRUNNER_WINDOWS_X86_64_GNU_0_52_0_SOURCE) := VKRUNNER_WINDOWS_X86_64_GNU_0_52_0
+VKRUNNER_SOURCES += $(VKRUNNER_WINDOWS_X86_64_GNU_0_52_0_SOURCE)
+
+VKRUNNER_WINDOWS_X86_64_GNULLVM_0_48_5_MD5 := 45b469ad607b912256b7c80141fa2d17
+VKRUNNER_WINDOWS_X86_64_GNULLVM_0_48_5_URL := https://crates.io/api/v1/crates/windows_x86_64_gnullvm/0.48.5/download
+VKRUNNER_WINDOWS_X86_64_GNULLVM_0_48_5_SOURCE := $(SRCDIR)/windows_x86_64_gnullvm-0.48.5.crate
+$(VKRUNNER_WINDOWS_X86_64_GNULLVM_0_48_5_SOURCE) := VKRUNNER_WINDOWS_X86_64_GNULLVM_0_48_5
+VKRUNNER_SOURCES += $(VKRUNNER_WINDOWS_X86_64_GNULLVM_0_48_5_SOURCE)
+
+VKRUNNER_WINDOWS_X86_64_GNULLVM_0_52_0_MD5 := 591c68ecc1dded36344429f427bbfabc
+VKRUNNER_WINDOWS_X86_64_GNULLVM_0_52_0_URL := https://crates.io/api/v1/crates/windows_x86_64_gnullvm/0.52.0/download
+VKRUNNER_WINDOWS_X86_64_GNULLVM_0_52_0_SOURCE := $(SRCDIR)/windows_x86_64_gnullvm-0.52.0.crate
+$(VKRUNNER_WINDOWS_X86_64_GNULLVM_0_52_0_SOURCE) := VKRUNNER_WINDOWS_X86_64_GNULLVM_0_52_0
+VKRUNNER_SOURCES += $(VKRUNNER_WINDOWS_X86_64_GNULLVM_0_52_0_SOURCE)
+
+VKRUNNER_WINDOWS_X86_64_MSVC_0_48_5_MD5 := 7799baff9a5664205d9110a2624e8989
+VKRUNNER_WINDOWS_X86_64_MSVC_0_48_5_URL := https://crates.io/api/v1/crates/windows_x86_64_msvc/0.48.5/download
+VKRUNNER_WINDOWS_X86_64_MSVC_0_48_5_SOURCE := $(SRCDIR)/windows_x86_64_msvc-0.48.5.crate
+$(VKRUNNER_WINDOWS_X86_64_MSVC_0_48_5_SOURCE) := VKRUNNER_WINDOWS_X86_64_MSVC_0_48_5
+VKRUNNER_SOURCES += $(VKRUNNER_WINDOWS_X86_64_MSVC_0_48_5_SOURCE)
+
+VKRUNNER_WINDOWS_X86_64_MSVC_0_52_0_MD5 := 29bbf3d9160d2545d528d0b2d7492333
+VKRUNNER_WINDOWS_X86_64_MSVC_0_52_0_URL := https://crates.io/api/v1/crates/windows_x86_64_msvc/0.52.0/download
+VKRUNNER_WINDOWS_X86_64_MSVC_0_52_0_SOURCE := $(SRCDIR)/windows_x86_64_msvc-0.52.0.crate
+$(VKRUNNER_WINDOWS_X86_64_MSVC_0_52_0_SOURCE) := VKRUNNER_WINDOWS_X86_64_MSVC_0_52_0
+VKRUNNER_SOURCES += $(VKRUNNER_WINDOWS_X86_64_MSVC_0_52_0_SOURCE)
+
+
+# vim: syntax=make
diff --git a/rules/vkrunner.in b/rules/vkrunner.in
new file mode 100644
index 000000000..644516883
--- /dev/null
+++ b/rules/vkrunner.in
@@ -0,0 +1,10 @@
+## SECTION=test_suites
+
+config VKRUNNER
+ bool
+ prompt "vkrunner"
+ select VULKAN_LOADER
+ select GLSLANG if RUNTIME
+ select GLSLANG_TOOLS if RUNTIME
+ help
+ VkRunner is a Vulkan shader tester based on shader_runner in Piglit.
diff --git a/rules/vkrunner.make b/rules/vkrunner.make
new file mode 100644
index 000000000..408ba1167
--- /dev/null
+++ b/rules/vkrunner.make
@@ -0,0 +1,66 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Philipp Zabel <p.zabel@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_VKRUNNER) += vkrunner
+
+#
+# Paths and names
+#
+VKRUNNER_VERSION := 2023-10-29-g93cbb7b1cca7
+VKRUNNER_MD5 := e8f10e5b90d753ad7744662a519c2260
+VKRUNNER := vkrunner-$(VKRUNNER_VERSION)
+VKRUNNER_SUFFIX := tar.gz
+VKRUNNER_URL := https://gitlab.freedesktop.org/mesa/vkrunner/-/archive/$(VKRUNNER_VERSION)/$(VKRUNNER).$(VKRUNNER_SUFFIX)
+VKRUNNER_SOURCE := $(SRCDIR)/$(VKRUNNER).$(VKRUNNER_SUFFIX)
+VKRUNNER_DIR := $(BUILDDIR)/$(VKRUNNER)
+VKRUNNER_LICENSE := MIT AND Apache-2.0
+VKRUNNER_LICENSE_FILES := file://COPYING;md5=b16067245eacd718bc35526d75bc0893
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+VKRUNNER_CONF_TOOL := cargo
+VKRUNNER_MAKE_ENV := \
+ $(CROSS_CARGO_ENV) \
+ LIBCLANG_PATH=$(PTXDIST_PLATFORMDIR)/selected_toolchain/../lib
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/vkrunner.install:
+ @$(call targetinfo)
+ @$(call world/execute, VKRUNNER, \
+ install -v -m755 -t $(VKRUNNER_PKGDIR)/usr/bin \
+ $(VKRUNNER_DIR)/target/$(PTXCONF_RUST_TARGET)/release/vkrunner)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/vkrunner.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, vkrunner)
+ @$(call install_fixup, vkrunner, PRIORITY, optional)
+ @$(call install_fixup, vkrunner, SECTION, base)
+ @$(call install_fixup, vkrunner, AUTHOR, "Philipp Zabel <p.zabel@pengutronix.de>")
+ @$(call install_fixup, vkrunner, DESCRIPTION, missing)
+
+ $(call install_copy, vkrunner, 0, 0, 0755, -, /usr/bin/vkrunner)
+
+ @$(call install_finish, vkrunner)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/volk.in b/rules/volk.in
new file mode 100644
index 000000000..556e9e3b0
--- /dev/null
+++ b/rules/volk.in
@@ -0,0 +1,10 @@
+## SECTION=multimedia_libs
+
+config VOLK
+ tristate
+ prompt "volk"
+ select HOST_CMAKE
+ select HOST_NINJA
+ select VULKAN_HEADERS
+ help
+ Meta loader for Vulkan API
diff --git a/rules/volk.make b/rules/volk.make
new file mode 100644
index 000000000..92e2a9f1d
--- /dev/null
+++ b/rules/volk.make
@@ -0,0 +1,41 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2020 by Philipp Zabel <p.zabel@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_VOLK) += volk
+
+#
+# Paths and names
+#
+VOLK_VERSION := 1.3.280.0
+VOLK_MD5 := 2154f24cd28be1adcf48ac34cb0daa59
+VOLK := volk-$(VOLK_VERSION)
+VOLK_SUFFIX := tar.gz
+VOLK_URL := https://github.com/zeux/volk/archive/refs/tags/vulkan-sdk-$(VOLK_VERSION).$(VOLK_SUFFIX)
+VOLK_SOURCE := $(SRCDIR)/$(VOLK).$(VOLK_SUFFIX)
+VOLK_DIR := $(BUILDDIR)/$(VOLK)
+VOLK_LICENSE := MIT
+VOLK_LICENSE_FILES := file://LICENSE.md;md5=12e6af3a0e2a5e5dbf7796aa82b64626
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+VOLK_CONF_TOOL := cmake
+
+VOLK_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -G Ninja \
+ -DVOLK_HEADERS_ONLY=OFF \
+ -DVOLK_INSTALL=ON \
+ -DVOLK_PULL_IN_VULKAN=ON \
+ -DVOLK_STATIC_DEFINES=OFF
+
+# vim: syntax=make
diff --git a/rules/vorbis-tools.make b/rules/vorbis-tools.make
index c6f6f0694..e78bde837 100644
--- a/rules/vorbis-tools.make
+++ b/rules/vorbis-tools.make
@@ -72,7 +72,8 @@ $(STATEDIR)/vorbis-tools.targetinstall:
@$(call install_fixup, vorbis-tools,DESCRIPTION,missing)
@$(foreach prog, $(VORBIS_TOOLS_PROGS_y), \
- $(call install_copy, vorbis-tools, 0, 0, 0755, -, /usr/bin/$(prog));)
+ $(call install_copy, vorbis-tools, 0, 0, 0755, -, \
+ /usr/bin/$(prog))$(ptx/nl))
@$(call install_finish, vorbis-tools)
diff --git a/rules/vulkan-headers.in b/rules/vulkan-headers.in
new file mode 100644
index 000000000..0739cf8da
--- /dev/null
+++ b/rules/vulkan-headers.in
@@ -0,0 +1,8 @@
+## SECTION=multimedia_libs
+
+config VULKAN_HEADERS
+ tristate
+ prompt "vulkan-headers"
+ select HOST_CMAKE
+ help
+ Vulkan Headers
diff --git a/rules/vulkan-headers.make b/rules/vulkan-headers.make
new file mode 100644
index 000000000..73d4969d1
--- /dev/null
+++ b/rules/vulkan-headers.make
@@ -0,0 +1,38 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2022 by Philipp Zabel <p.zabel@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_VULKAN_HEADERS) += vulkan-headers
+
+#
+# Paths and names
+#
+
+VULKAN_HEADERS_VERSION := 1.3.280.0
+VULKAN_HEADERS_MD5 := 6a5ff0b86c072300fac88cfdd3996c75
+VULKAN_HEADERS := vulkan-headers-$(VULKAN_HEADERS_VERSION)
+VULKAN_HEADERS_SUFFIX := tar.gz
+VULKAN_HEADERS_URL := https://github.com/KhronosGroup/Vulkan-Headers/archive/vulkan-sdk-$(VULKAN_HEADERS_VERSION).$(VULKAN_HEADERS_SUFFIX)
+VULKAN_HEADERS_SOURCE := $(SRCDIR)/vulkan-headers-$(VULKAN_HEADERS_VERSION).$(VULKAN_HEADERS_SUFFIX)
+VULKAN_HEADERS_DIR := $(BUILDDIR)/$(VULKAN_HEADERS)
+VULKAN_HEADERS_LICENSE := Apache-2.0 AND MIT
+VULKAN_HEADERS_LICENSE_FILES := \
+ file://LICENSE.md;md5=1bc355d8c4196f774c8b87ed1a8dd625
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+VULKAN_HEADERS_CONF_TOOL := cmake
+VULKAN_HEADERS_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -DBUILD_TESTS=OFF
+
+# vim: syntax=make
diff --git a/rules/vulkan-loader.in b/rules/vulkan-loader.in
index 646045f5f..51c82befc 100644
--- a/rules/vulkan-loader.in
+++ b/rules/vulkan-loader.in
@@ -4,7 +4,9 @@ menuconfig VULKAN_LOADER
tristate
prompt "vulkan-loader "
select HOST_CMAKE
+ select HOST_NINJA
select HOST_QEMU
+ select VULKAN_HEADERS
select LIBXCB if VULKAN_LOADER_XCB
select WAYLAND if VULKAN_LOADER_WAYLAND
help
diff --git a/rules/vulkan-loader.make b/rules/vulkan-loader.make
index 75d9a4e93..40a89591e 100644
--- a/rules/vulkan-loader.make
+++ b/rules/vulkan-loader.make
@@ -14,68 +14,49 @@ PACKAGES-$(PTXCONF_VULKAN_LOADER) += vulkan-loader
#
# Paths and names
#
-VULKAN_LOADER_VERSION := 1.2.176.0
-VULKAN_LOADER_MD5 := 14a12562de940ae2da447b569328a362
+VULKAN_LOADER_VERSION := 1.3.280.0
+VULKAN_LOADER_MD5 := 282d32eab31abf5aa14ec59be8e8ae19
VULKAN_LOADER := vulkan-loader-$(VULKAN_LOADER_VERSION)
VULKAN_LOADER_SUFFIX := tar.gz
-VULKAN_LOADER_URL := https://github.com/KhronosGroup/Vulkan-Loader/archive/sdk-$(VULKAN_LOADER_VERSION).$(VULKAN_LOADER_SUFFIX)
+VULKAN_LOADER_URL := https://github.com/KhronosGroup/Vulkan-Loader/archive/vulkan-sdk-$(VULKAN_LOADER_VERSION).$(VULKAN_LOADER_SUFFIX)
VULKAN_LOADER_SOURCE := $(SRCDIR)/$(VULKAN_LOADER).$(VULKAN_LOADER_SUFFIX)
VULKAN_LOADER_DIR := $(BUILDDIR)/$(VULKAN_LOADER)
VULKAN_LOADER_LICENSE := Apache-2.0
VULKAN_LOADER_LICENSE_FILES := file://LICENSE.txt;md5=7dbefed23242760aa3475ee42801c5ac
-VULKAN_HEADERS_VERSION := 1.2.176.0
-VULKAN_HEADERS_MD5 := 559ebf75a95c7c1762dcc48525d20684
-VULKAN_HEADERS_SUFFIX := tar.gz
-VULKAN_HEADERS_URL := https://github.com/KhronosGroup/Vulkan-Headers/archive/sdk-$(VULKAN_HEADERS_VERSION).$(VULKAN_HEADERS_SUFFIX)
-VULKAN_HEADERS_SOURCE := $(SRCDIR)/vulkan-headers-$(VULKAN_HEADERS_VERSION).$(VULKAN_HEADERS_SUFFIX)
-$(VULKAN_HEADERS_SOURCE) := VULKAN_HEADERS
-VULKAN_HEADERS_DIR := $(VULKAN_LOADER_DIR)/vulkan-headers
-
-VULKAN_LOADER_SOURCES := $(VULKAN_LOADER_SOURCE) $(VULKAN_HEADERS_SOURCE)
-
-# ----------------------------------------------------------------------------
-# Extract
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/vulkan-loader.extract:
- @$(call targetinfo)
- @$(call clean, $(VULKAN_LOADER_DIR))
- @$(call extract, VULKAN_LOADER)
- @$(call extract, VULKAN_HEADERS)
- @$(call patchin, VULKAN_LOADER)
- @$(call touch)
-
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
VULKAN_LOADER_CONF_TOOL := cmake
+
+VULKAN_LOADER_USE_GAS := OFF
+ifdef PTXCONF_ARCH_ARM64
+VULKAN_LOADER_USE_GAS := ON
+endif
+ifdef PTXCONF_ARCH_X86_64
+VULKAN_LOADER_USE_GAS := ON
+endif
+
VULKAN_LOADER_CONF_OPT := \
$(CROSS_CMAKE_USR) \
+ -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_CROSSCOMPILING_EMULATOR=$(PTXDIST_SYSROOT_CROSS)/bin/qemu-cross \
- -DCMAKE_INSTALL_LIBDIR=/usr/lib \
+ -DBUILD_TESTS=OFF \
+ -DBUILD_WERROR=OFF \
+ -DBUILD_WSI_DIRECTFB_SUPPORT=OFF \
+ -DBUILD_WSI_WAYLAND_SUPPORT=$(call ptx/onoff, PTXCONF_VULKAN_LOADER_WAYLAND) \
-DBUILD_WSI_XCB_SUPPORT=$(call ptx/onoff, PTXCONF_VULKAN_LOADER_XCB) \
-DBUILD_WSI_XLIB_SUPPORT=OFF \
- -DBUILD_WSI_WAYLAND_SUPPORT=$(call ptx/onoff, PTXCONF_VULKAN_LOADER_WAYLAND) \
- -DBUILD_WSI_DIRECTFB_SUPPORT=OFF \
- -DBUILD_WSI_SCREEN_QNX_SUPPORT=OFF \
- -DBUILD_LOADER=ON \
- -DBUILD_TESTS=OFF \
- -DVulkanHeaders_INCLUDE_DIR=$(VULKAN_HEADERS_DIR)/include \
- -DVulkanRegistry_DIR=$(VULKAN_HEADERS_DIR)/registry
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/vulkan-loader.install:
- @$(call targetinfo)
- @$(call world/install, VULKAN_LOADER)
- @cp -rp $(VULKAN_HEADERS_DIR)/include $(VULKAN_LOADER_PKGDIR)/usr
- @cp -rp $(VULKAN_HEADERS_DIR)/registry $(VULKAN_LOADER_PKGDIR)/usr/share/vulkan
- @$(call touch)
+ -DFALLBACK_CONFIG_DIRS=/etc/xdg \
+ -DFALLBACK_DATA_DIRS=/usr/local/share:/usr/share \
+ -DLOADER_CODEGEN=OFF \
+ -DLOADER_ENABLE_ADDRESS_SANITIZER=OFF \
+ -DLOADER_ENABLE_THREAD_SANITIZER=OFF \
+ -DLOADER_USE_UNSAFE_FILE_SEARCH=OFF \
+ -DSYSCONFDIR= \
+ -DUPDATE_DEPS=OFF \
+ -DUSE_GAS=$(VULKAN_LOADER_USE_GAS)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/vulkan-tools.in b/rules/vulkan-tools.in
index cf287e8f8..4ef895541 100644
--- a/rules/vulkan-tools.in
+++ b/rules/vulkan-tools.in
@@ -6,9 +6,11 @@ config VULKAN_TOOLS
select HOST_CMAKE
select HOST_GLSLANG
select VULKAN_LOADER
- select LIBXCB if VULKAN_TOOLS_XCB
- select XORG_LIB_X11 if VULKAN_TOOLS_XCB
- select WAYLAND if VULKAN_TOOLS_WAYLAND
+ select VOLK if BUILDTIME
+ select LIBXCB if VULKAN_TOOLS_XCB
+ select XORG_LIB_X11 if VULKAN_TOOLS_XCB
+ select WAYLAND if VULKAN_TOOLS_WAYLAND
+ select WAYLAND_PROTOCOLS if VULKAN_TOOLS_WAYLAND
help
Vulkan Utilities and Tools
@@ -23,11 +25,11 @@ config VULKAN_TOOLS_CUBE
Install vkcube and vkcubepp examples.
config VULKAN_TOOLS_XCB
- bool
- default y if VULKAN_LOADER_XCB
+ bool
+ default y if VULKAN_LOADER_XCB
config VULKAN_TOOLS_WAYLAND
- bool
- default y if VULKAN_LOADER_WAYLAND
+ bool
+ default y if VULKAN_LOADER_WAYLAND
endif
diff --git a/rules/vulkan-tools.make b/rules/vulkan-tools.make
index 626ece723..8b7c96245 100644
--- a/rules/vulkan-tools.make
+++ b/rules/vulkan-tools.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_VULKAN_TOOLS) += vulkan-tools
#
# Paths and names
#
-VULKAN_TOOLS_VERSION := 1.2.176.0
-VULKAN_TOOLS_MD5 := 7328fe88db71d84a706fbd887bcb6eef
+VULKAN_TOOLS_VERSION := 1.3.280.0
+VULKAN_TOOLS_MD5 := f68e21f73b893d882e5f97959f489757
VULKAN_TOOLS := vulkan-tools-$(VULKAN_TOOLS_VERSION)
VULKAN_TOOLS_SUFFIX := tar.gz
-VULKAN_TOOLS_URL := https://github.com/KhronosGroup/Vulkan-Tools/archive/sdk-$(VULKAN_TOOLS_VERSION).$(VULKAN_TOOLS_SUFFIX)
+VULKAN_TOOLS_URL := https://github.com/KhronosGroup/Vulkan-Tools/archive/vulkan-sdk-$(VULKAN_TOOLS_VERSION).$(VULKAN_TOOLS_SUFFIX)
VULKAN_TOOLS_SOURCE := $(SRCDIR)/$(VULKAN_TOOLS).$(VULKAN_TOOLS_SUFFIX)
VULKAN_TOOLS_DIR := $(BUILDDIR)/$(VULKAN_TOOLS)
VULKAN_TOOLS_LICENSE := Apache-2.0
@@ -31,20 +31,25 @@ VULKAN_TOOLS_LICENSE_FILES := file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c
VULKAN_TOOLS_CONF_TOOL := cmake
VULKAN_TOOLS_CONF_OPT := \
$(CROSS_CMAKE_USR) \
- -DCMAKE_INSTALL_LIBDIR=/usr/lib \
-DBUILD_CUBE=$(call ptx/onoff, PTXCONF_VULKAN_TOOLS_CUBE) \
- -DCUBE_WSI_SELECTION=$(call ptx/ifdef, PTXCONF_VULKAN_TOOLS_WAYLAND, WAYLAND, \
- $(call ptx/ifdef, PTXCONF_VULKAN_TOOLS_XCB, XCB, DISPLAY)) \
- -DBUILD_VULKANINFO=ON \
-DBUILD_ICD=OFF \
- -DINSTALL_ICD=OFF \
- -DUSE_CCACHE=OFF \
+ -DBUILD_TESTS=OFF \
+ -DBUILD_VULKANINFO=ON \
+ -DBUILD_WERROR=ON \
+ -DBUILD_WSI_DIRECTFB_SUPPORT=OFF \
+ -DBUILD_WSI_WAYLAND_SUPPORT=$(call ptx/onoff, PTXCONF_VULKAN_TOOLS_WAYLAND) \
-DBUILD_WSI_XCB_SUPPORT=$(call ptx/onoff, PTXCONF_VULKAN_TOOLS_XCB) \
-DBUILD_WSI_XLIB_SUPPORT=OFF \
- -DBUILD_WSI_WAYLAND_SUPPORT=$(call ptx/onoff, PTXCONF_VULKAN_TOOLS_WAYLAND) \
- -DBUILD_WSI_DIRECTFB_SUPPORT=OFF \
- -DVulkanRegistry_DIR=$(SYSROOT)/usr/share/vulkan \
- -DGLSLANG_INSTALL_DIR=$(PTXDIST_SYSROOT_HOST)/bin
+ -DENABLE_ADDRESS_SANITIZER=OFF \
+ -DTOOLS_CODEGEN=OFF \
+ -DUPDATE_DEPS=OFF
+
+ifdef PTXCONF_VULKAN_TOOLS_CUBE
+VULKAN_TOOLS_CONF_OPT += \
+ -DCUBE_WSI_SELECTION=$(call ptx/ifdef, PTXCONF_VULKAN_TOOLS_WAYLAND, WAYLAND, \
+ $(call ptx/ifdef, PTXCONF_VULKAN_TOOLS_XCB, XCB, DISPLAY)) \
+ -DGLSLANG_INSTALL_DIR=$(PTXDIST_SYSROOT_HOST)/usr/bin
+endif
# ----------------------------------------------------------------------------
# Target-Install
@@ -59,7 +64,7 @@ $(STATEDIR)/vulkan-tools.targetinstall:
@$(call install_fixup, vulkan-tools, AUTHOR, "Philipp Zabel <p.zabel@pengutronix.de>")
@$(call install_fixup, vulkan-tools, DESCRIPTION, Vulkan Utilities and Tools)
-ifdef VULKAN_TOOLS_CUBE
+ifdef PTXCONF_VULKAN_TOOLS_CUBE
@$(call install_copy, vulkan-tools, 0, 0, 0755, -, /usr/bin/vkcube)
@$(call install_copy, vulkan-tools, 0, 0, 0755, -, /usr/bin/vkcubepp)
endif
diff --git a/rules/vulkan-utility-libraries.in b/rules/vulkan-utility-libraries.in
new file mode 100644
index 000000000..3ac37535d
--- /dev/null
+++ b/rules/vulkan-utility-libraries.in
@@ -0,0 +1,10 @@
+## SECTION=multimedia_libs
+
+config VULKAN_UTILITY_LIBRARIES
+ tristate
+ prompt "vulkan-utilty-libraries"
+ select HOST_CMAKE
+ select HOST_GLSLANG
+ select VULKAN_HEADERS
+ help
+ Vulkan Utility Libraries
diff --git a/rules/vulkan-utility-libraries.make b/rules/vulkan-utility-libraries.make
new file mode 100644
index 000000000..6ef2d3fe7
--- /dev/null
+++ b/rules/vulkan-utility-libraries.make
@@ -0,0 +1,39 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Philipp Zabel <p.zabel@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_VULKAN_UTILITY_LIBRARIES) += vulkan-utility-libraries
+
+#
+# Paths and names
+#
+VULKAN_UTILITY_LIBRARIES_VERSION := 1.3.280.0
+VULKAN_UTILITY_LIBRARIES_MD5 := c611d59dcabce5d0ee11f5f6521666aa
+VULKAN_UTILITY_LIBRARIES := vulkan-utility-libraries-$(VULKAN_UTILITY_LIBRARIES_VERSION)
+VULKAN_UTILITY_LIBRARIES_SUFFIX := tar.gz
+VULKAN_UTILITY_LIBRARIES_URL := https://github.com/KhronosGroup/Vulkan-Utility-Libraries/archive/vulkan-sdk-$(VULKAN_UTILITY_LIBRARIES_VERSION).$(VULKAN_UTILITY_LIBRARIES_SUFFIX)
+VULKAN_UTILITY_LIBRARIES_SOURCE := $(SRCDIR)/$(VULKAN_UTILITY_LIBRARIES).$(VULKAN_UTILITY_LIBRARIES_SUFFIX)
+VULKAN_UTILITY_LIBRARIES_DIR := $(BUILDDIR)/$(VULKAN_UTILITY_LIBRARIES)
+VULKAN_UTILITY_LIBRARIES_LICENSE := Apache-2.0 AND MIT
+VULKAN_UTILITY_LIBRARIES_LICENSE_FILES := file://LICENSE.md;md5=4ca2d6799091aaa98a8520f1b793939b
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+VULKAN_UTILITY_LIBRARIES_CONF_TOOL := cmake
+VULKAN_UTILITY_LIBRARIES_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DBUILD_TESTS=OFF \
+ -DUPDATE_DEPS=OFF \
+ -DVUL_WERROR=OFF
+
+# vim: syntax=make
diff --git a/rules/vulkan-validationlayers.in b/rules/vulkan-validationlayers.in
index f7eb3e9f6..42252a461 100644
--- a/rules/vulkan-validationlayers.in
+++ b/rules/vulkan-validationlayers.in
@@ -5,8 +5,10 @@ config VULKAN_VALIDATIONLAYERS
prompt "vulkan-validationlayers"
select HOST_CMAKE
select HOST_GLSLANG
- select VULKAN_LOADER
+ select VULKAN_HEADERS
+ select VULKAN_UTILITY_LIBRARIES
select GLSLANG if BUILDTIME
+ select SPIRV_HEADERS if BUILDTIME
select SPIRV_TOOLS if BUILDTIME
select LIBXCB if VULKAN_VALIDATIONLAYERS_XCB
select WAYLAND if VULKAN_VALIDATIONLAYERS_WAYLAND
diff --git a/rules/vulkan-validationlayers.make b/rules/vulkan-validationlayers.make
index a5bfdc43f..6bfca4e35 100644
--- a/rules/vulkan-validationlayers.make
+++ b/rules/vulkan-validationlayers.make
@@ -14,15 +14,15 @@ PACKAGES-$(PTXCONF_VULKAN_VALIDATIONLAYERS) += vulkan-validationlayers
#
# Paths and names
#
-VULKAN_VALIDATIONLAYERS_VERSION := 1.2.176.1
-VULKAN_VALIDATIONLAYERS_MD5 := 5acaada71600b29fa0b940bf9ceffcab
+VULKAN_VALIDATIONLAYERS_VERSION := 1.3.280.0
+VULKAN_VALIDATIONLAYERS_MD5 := 04805a2454d6e6facc9ca6651d04dbbf
VULKAN_VALIDATIONLAYERS := vulkan-validationlayers-$(VULKAN_VALIDATIONLAYERS_VERSION)
VULKAN_VALIDATIONLAYERS_SUFFIX := tar.gz
-VULKAN_VALIDATIONLAYERS_URL := https://github.com/KhronosGroup/Vulkan-ValidationLayers/archive/sdk-$(VULKAN_VALIDATIONLAYERS_VERSION).$(VULKAN_VALIDATIONLAYERS_SUFFIX)
+VULKAN_VALIDATIONLAYERS_URL := https://github.com/KhronosGroup/Vulkan-ValidationLayers/archive/vulkan-sdk-$(VULKAN_VALIDATIONLAYERS_VERSION).$(VULKAN_VALIDATIONLAYERS_SUFFIX)
VULKAN_VALIDATIONLAYERS_SOURCE := $(SRCDIR)/$(VULKAN_VALIDATIONLAYERS).$(VULKAN_VALIDATIONLAYERS_SUFFIX)
VULKAN_VALIDATIONLAYERS_DIR := $(BUILDDIR)/$(VULKAN_VALIDATIONLAYERS)
-VULKAN_VALIDATIONLAYERS_LICENSE := Apache-2.0
-VULKAN_VALIDATIONLAYERS_LICENSE_FILES := file://LICENSE.txt;md5=8df9e8826734226d08cb412babfa599c
+VULKAN_VALIDATIONLAYERS_LICENSE := Apache-2.0 AND MIT
+VULKAN_VALIDATIONLAYERS_LICENSE_FILES := file://LICENSE.txt;md5=cd3c0bc366cd9b6a906e22f0bcb5910f
# ----------------------------------------------------------------------------
# Prepare
@@ -32,18 +32,15 @@ VULKAN_VALIDATIONLAYERS_CONF_TOOL := cmake
VULKAN_VALIDATIONLAYERS_CONF_OPT := \
$(CROSS_CMAKE_USR) \
-DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_LIBDIR=/usr/lib \
- -DBUILD_LAYERS=ON \
- -DBUILD_LAYER_SUPPORT_FILES=OFF \
- -DUSE_ROBIN_HOOD_HASHING=OFF \
-DBUILD_TESTS=OFF \
+ -DBUILD_WERROR=OFF \
-DBUILD_WSI_WAYLAND_SUPPORT=$(call ptx/onoff, PTXCONF_VULKAN_VALIDATIONLAYERS_WAYLAND) \
-DBUILD_WSI_XCB_SUPPORT=$(call ptx/onoff, PTXCONF_VULKAN_VALIDATIONLAYERS_XCB) \
-DBUILD_WSI_XLIB_SUPPORT=OFF \
- -DGLSLANG_INSTALL_DIR=$(PTXDIST_SYSROOT_HOST)/bin \
- -DSPIRV_HEADERS_INSTALL_DIR=$(PTXDIST_SYSROOT_TARGET)/usr \
- -DSPIRV_TOOLS_INSTALL_DIR=$(PTXDIST_SYSROOT_HOST)/bin \
- -DVulkanRegistry_DIR=$(PTXDIST_SYSROOT_TARGET)/usr/share/vulkan
+ -DUPDATE_DEPS=OFF \
+ -DUSE_ROBIN_HOOD_HASHING=OFF \
+ -DVVL_CODEGEN=OFF \
+ -DVVL_ENABLE_ASAN=OFF
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/waffle.in b/rules/waffle.in
index 1a5339407..a125621f9 100644
--- a/rules/waffle.in
+++ b/rules/waffle.in
@@ -3,8 +3,7 @@
menuconfig WAFFLE
tristate
prompt "waffle "
- select HOST_CMAKE
- select HOST_NINJA
+ select HOST_MESON
select MESALIB
select LIBXCB if WAFFLE_GLX || WAFFLE_X11_EGL
select XORG_LIB_X11 if WAFFLE_GLX || WAFFLE_X11_EGL
diff --git a/rules/waffle.make b/rules/waffle.make
index 003ed8c0c..bb800ff4a 100644
--- a/rules/waffle.make
+++ b/rules/waffle.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_WAFFLE) += waffle
#
# Paths and names
#
-WAFFLE_VERSION := 1.7.0
-WAFFLE_MD5 := 1e77b0cd95856fc9594f556fe9e13cb9
+WAFFLE_VERSION := 1.8.0
+WAFFLE_MD5 := e4b3a5f28e4db517349631ef54e5f2a0
WAFFLE := waffle-$(WAFFLE_VERSION)
WAFFLE_SUFFIX := tar.xz
WAFFLE_URL := https://mesa.pages.freedesktop.org/waffle/files/release/$(WAFFLE)/$(WAFFLE).$(WAFFLE_SUFFIX)
@@ -29,24 +29,19 @@ WAFFLE_LICENSE_FILES := \
# Prepare
# ----------------------------------------------------------------------------
-WAFFLE_CONF_TOOL := cmake
+WAFFLE_CONF_TOOL := meson
WAFFLE_CONF_OPT := \
- $(CROSS_CMAKE_USR) \
- -G Ninja \
- -DVALGRIND_EXECUTABLE= \
- -Dnacl_sdk_path= \
- -Dnacl_version= \
- -Dwaffle_build_examples=OFF \
- -Dwaffle_build_htmldocs=OFF \
- -Dwaffle_build_manpages=OFF \
- -Dwaffle_build_tests=OFF \
- -Dwaffle_has_gbm=$(call ptx/onoff,PTXCONF_WAFFLE_GBM) \
- -Dwaffle_has_glx=$(call ptx/onoff,PTXCONF_WAFFLE_GLX) \
- -Dwaffle_has_nacl=OFF \
- -Dwaffle_has_surfaceless_egl=OFF \
- -Dwaffle_has_wayland=$(call ptx/onoff,PTXCONF_WAFFLE_WAYLAND) \
- -Dwaffle_has_x11_egl=$(call ptx/onoff,PTXCONF_WAFFLE_X11_EGL) \
- -Dwaffle_xsltproc=
+ $(CROSS_MESON_USR) \
+ -Dbuild-examples=false \
+ -Dbuild-htmldocs=false \
+ -Dbuild-manpages=false \
+ -Dbuild-tests=false \
+ -Dgbm=$(call ptx/endis,PTXCONF_WAFFLE_GBM)d \
+ -Dglx=$(call ptx/endis,PTXCONF_WAFFLE_GLX)d \
+ -Dnacl=false \
+ -Dsurfaceless_egl=disabled \
+ -Dwayland=$(call ptx/endis,PTXCONF_WAFFLE_WAYLAND)d \
+ -Dx11_egl=$(call ptx/endis,PTXCONF_WAFFLE_X11_EGL)d
# ----------------------------------------------------------------------------
# Target-Install
@@ -62,6 +57,7 @@ $(STATEDIR)/waffle.targetinstall:
@$(call install_fixup, waffle,DESCRIPTION,missing)
@$(call install_lib, waffle, 0, 0, 0644, libwaffle-1)
+ @$(call install_copy, waffle, 0, 0, 0755, -, /usr/bin/wflinfo)
@$(call install_finish, waffle)
diff --git a/rules/watchdog.in b/rules/watchdog.in
deleted file mode 100644
index fb29195e4..000000000
--- a/rules/watchdog.in
+++ /dev/null
@@ -1,20 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=shell_and_console
-
-config WATCHDOG
- tristate
- prompt "watchdog"
- help
- A software watchdog
-
- The watchdog program writes to /dev/watchdog every ten
- seconds. If the device is opened but not written to within
- a minute, the machine will reboot. This feature is available
- when the kernel is built with 'software watchdog' support.
-
- The ability to reboot will depend on the state of the
- machine and interrupts.
-
- STAGING: remove in PTXdist 2022.01.0
- Fails to build with gcc 10.
diff --git a/rules/watchdog.make b/rules/watchdog.make
deleted file mode 100644
index c04637d6d..000000000
--- a/rules/watchdog.make
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2010 by Jon Ringle
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_WATCHDOG) += watchdog
-
-#
-# Paths and names
-#
-WATCHDOG_VERSION := 5.15
-WATCHDOG_MD5 := 678c32f6f35a0492c9c1b76b4aa88828
-WATCHDOG := watchdog-$(WATCHDOG_VERSION)
-WATCHDOG_SUFFIX := tar.gz
-WATCHDOG_URL := $(call ptx/mirror, SF, watchdog/$(WATCHDOG).$(WATCHDOG_SUFFIX))
-WATCHDOG_SOURCE := $(SRCDIR)/$(WATCHDOG).$(WATCHDOG_SUFFIX)
-WATCHDOG_DIR := $(BUILDDIR)/$(WATCHDOG)
-WATCHDOG_LICENSE := GPL-2.0-only
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-WATCHDOG_CONF_TOOL := autoconf
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/watchdog.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, watchdog)
- @$(call install_fixup, watchdog,PRIORITY,optional)
- @$(call install_fixup, watchdog,SECTION,base)
- @$(call install_fixup, watchdog,AUTHOR,"Jon Ringle")
- @$(call install_fixup, watchdog,DESCRIPTION,missing)
-
- @$(call install_alternative, watchdog, 0, 0, 0644, /etc/watchdog.conf)
- @$(call install_copy, watchdog, 0, 0, 0755, -, /usr/sbin/watchdog)
-
- @$(call install_finish, watchdog)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/wayland-protocols.make b/rules/wayland-protocols.make
index 3820aa6a0..066e9b000 100644
--- a/rules/wayland-protocols.make
+++ b/rules/wayland-protocols.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_WAYLAND_PROTOCOLS) += wayland-protocols
#
# Paths and names
#
-WAYLAND_PROTOCOLS_VERSION := 1.21
-WAYLAND_PROTOCOLS_MD5 := 8196416baac07cd833bcb86b69da41a7
+WAYLAND_PROTOCOLS_VERSION := 1.35
+WAYLAND_PROTOCOLS_MD5 := cd0f2a1ab6e54568e4f856f140dedca9
WAYLAND_PROTOCOLS := wayland-protocols-$(WAYLAND_PROTOCOLS_VERSION)
WAYLAND_PROTOCOLS_SUFFIX := tar.xz
-WAYLAND_PROTOCOLS_URL := https://wayland.freedesktop.org/releases/$(WAYLAND_PROTOCOLS).$(WAYLAND_PROTOCOLS_SUFFIX)
+WAYLAND_PROTOCOLS_URL := https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/$(WAYLAND_PROTOCOLS_VERSION)/downloads/$(WAYLAND_PROTOCOLS).$(WAYLAND_PROTOCOLS_SUFFIX)
WAYLAND_PROTOCOLS_SOURCE := $(SRCDIR)/$(WAYLAND_PROTOCOLS).$(WAYLAND_PROTOCOLS_SUFFIX)
WAYLAND_PROTOCOLS_DIR := $(BUILDDIR)/$(WAYLAND_PROTOCOLS)
WAYLAND_PROTOCOLS_LICENSE := MIT
diff --git a/rules/wayland-utils.in b/rules/wayland-utils.in
index 49161fcc1..65ddd9c9a 100644
--- a/rules/wayland-utils.in
+++ b/rules/wayland-utils.in
@@ -3,6 +3,7 @@
config WAYLAND_UTILS
tristate
select HOST_MESON
+ select LIBDRM
select WAYLAND
select WAYLAND_PROTOCOLS
prompt "wayland-utils"
diff --git a/rules/wayland-utils.make b/rules/wayland-utils.make
index 91942385b..cc90ecc44 100644
--- a/rules/wayland-utils.make
+++ b/rules/wayland-utils.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_WAYLAND_UTILS) += wayland-utils
#
# Paths and names
#
-WAYLAND_UTILS_VERSION := 1.0.0
-WAYLAND_UTILS_MD5 := 714875aefb10e7f683cde24e58d033ad
+WAYLAND_UTILS_VERSION := 1.2.0
+WAYLAND_UTILS_MD5 := 736dbcefc534407d4e774087726844a1
WAYLAND_UTILS := wayland-utils-$(WAYLAND_UTILS_VERSION)
WAYLAND_UTILS_SUFFIX := tar.xz
-WAYLAND_UTILS_URL := https://wayland.freedesktop.org/releases//$(WAYLAND_UTILS).$(WAYLAND_UTILS_SUFFIX)
+WAYLAND_UTILS_URL := https://gitlab.freedesktop.org/wayland/wayland-utils/-/releases/$(WAYLAND_UTILS_VERSION)/downloads/$(WAYLAND_UTILS).$(WAYLAND_UTILS_SUFFIX)
WAYLAND_UTILS_SOURCE := $(SRCDIR)/$(WAYLAND_UTILS).$(WAYLAND_UTILS_SUFFIX)
WAYLAND_UTILS_DIR := $(BUILDDIR)/$(WAYLAND_UTILS)
WAYLAND_UTILS_LICENSE := MIT
@@ -33,7 +33,8 @@ WAYLAND_UTILS_LICENSE_FILES := file://COPYING;md5=548a66038a77415e1df51118625e83
#
WAYLAND_UTILS_CONF_TOOL := meson
WAYLAND_UTILS_CONF_OPT := \
- $(CROSS_MESON_USR)
+ $(CROSS_MESON_USR) \
+ -Ddrm=enabled
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/wayland.make b/rules/wayland.make
index b237a9701..3e192f427 100644
--- a/rules/wayland.make
+++ b/rules/wayland.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_WAYLAND) += wayland
#
# Paths and names
#
-WAYLAND_VERSION := 1.19.0
-WAYLAND_MD5 := 5d59ac3d8a8f4e42de2ceb8bb19dfca9
+WAYLAND_VERSION := 1.22.0
+WAYLAND_MD5 := 7410ab549e3928fce9381455b17b0803
WAYLAND := wayland-$(WAYLAND_VERSION)
WAYLAND_SUFFIX := tar.xz
-WAYLAND_URL := http://wayland.freedesktop.org/releases/$(WAYLAND).$(WAYLAND_SUFFIX)
+WAYLAND_URL := https://gitlab.freedesktop.org/wayland/wayland/-/releases/$(WAYLAND_VERSION)/downloads/$(WAYLAND).$(WAYLAND_SUFFIX)
WAYLAND_SOURCE := $(SRCDIR)/$(WAYLAND).$(WAYLAND_SUFFIX)
WAYLAND_DIR := $(BUILDDIR)/$(WAYLAND)
WAYLAND_LICENSE := MIT
@@ -29,7 +29,7 @@ WAYLAND_LICENSE := MIT
WAYLAND_CONF_ENV := \
$(HOST_ENV) \
- PKG_CONFIG_FOR_BUILD=$(PTXDIST_SYSROOT_HOST)/bin/pkg-config
+ PKG_CONFIG_FOR_BUILD=$(PTXDIST_SYSROOT_HOST)/usr/bin/pkg-config
#
# meson
@@ -41,7 +41,8 @@ WAYLAND_CONF_OPT := \
-Ddtd_validation=false \
-Dicon_directory= \
-Dlibraries=true \
- -Dscanner=true
+ -Dscanner=true \
+ -Dtests=false
# ----------------------------------------------------------------------------
# Install
@@ -52,8 +53,8 @@ $(STATEDIR)/wayland.install.post:
# # target wayland-scanner is not needed. Make sure nobody tries to use it
@rm -f $(WAYLAND_PKGDIR)/usr/bin/wayland-scanner
@$(call world/install.post, WAYLAND)
- @sed 's;^prefix=.*;prefix=$(PTXDIST_SYSROOT_HOST);' \
- $(PTXDIST_SYSROOT_HOST)/lib/pkgconfig/wayland-scanner.pc \
+ @sed 's;^prefix=.*;prefix=$(PTXDIST_SYSROOT_HOST)/usr;' \
+ $(PTXDIST_SYSROOT_HOST)/usr/lib/pkgconfig/wayland-scanner.pc \
> $(PTXDIST_SYSROOT_TARGET)/usr/lib/pkgconfig/wayland-scanner.pc
@$(call touch)
# ----------------------------------------------------------------------------
diff --git a/rules/wayvnc.in b/rules/wayvnc.in
new file mode 100644
index 000000000..9f5cd9095
--- /dev/null
+++ b/rules/wayvnc.in
@@ -0,0 +1,25 @@
+## SECTION=multimedia_wayland
+
+menuconfig WAYVNC
+ tristate
+ select HOST_MESON
+ select AML
+ select JANSSON
+ select LIBDRM
+ select LIBXKBCOMMON
+ select NEATVNC
+ select PIXMAN
+ select WAYLAND
+ select MESALIB if WAYVNC_SCREENCOPY_DMABUF
+ select MESALIB_GBM if WAYVNC_SCREENCOPY_DMABUF
+ prompt "wayvnc "
+ help
+ A VNC server for wlroots based Wayland compositors.
+
+if WAYVNC
+
+config WAYVNC_SCREENCOPY_DMABUF
+ bool
+ prompt "Enable GPU-side screencopy"
+
+endif
diff --git a/rules/wayvnc.make b/rules/wayvnc.make
new file mode 100644
index 000000000..38c941a93
--- /dev/null
+++ b/rules/wayvnc.make
@@ -0,0 +1,61 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2020 by Philipp Zabel <p.zabel@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_WAYVNC) += wayvnc
+
+#
+# Paths and names
+#
+WAYVNC_VERSION := 0.7.2
+WAYVNC_MD5 := 1da42679394021de22c7e5429eae7564
+WAYVNC := wayvnc-$(WAYVNC_VERSION)
+WAYVNC_SUFFIX := tar.gz
+WAYVNC_URL := https://github.com/any1/wayvnc/archive/refs/tags/v$(WAYVNC_VERSION).$(WAYVNC_SUFFIX)
+WAYVNC_SOURCE := $(SRCDIR)/$(WAYVNC).$(WAYVNC_SUFFIX)
+WAYVNC_DIR := $(BUILDDIR)/$(WAYVNC)
+WAYVNC_LICENSE := ISC
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# meson
+#
+WAYVNC_CONF_TOOL := meson
+WAYVNC_CONF_OPT := \
+ $(CROSS_MESON_USR) \
+ -Dman-pages=disabled \
+ -Dpam=disabled \
+ -Dscreencopy-dmabuf=$(call ptx/endis,PTXCONF_WAYVNC_SCREENCOPY_DMABUF)d \
+ -Dsystemtap=false \
+ -Dtests=false
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/wayvnc.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, wayvnc)
+ @$(call install_fixup, wayvnc,PRIORITY,optional)
+ @$(call install_fixup, wayvnc,SECTION,base)
+ @$(call install_fixup, wayvnc,AUTHOR,"Philipp Zabel <p.zabel@pengutronix.de>")
+ @$(call install_fixup, wayvnc,DESCRIPTION,missing)
+
+ @$(call install_copy, wayvnc, 0, 0, 0755, -, /usr/bin/wayvnc)
+
+ @$(call install_finish, wayvnc)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/webrtc-audio-processing1.in b/rules/webrtc-audio-processing1.in
new file mode 100644
index 000000000..89f9aff30
--- /dev/null
+++ b/rules/webrtc-audio-processing1.in
@@ -0,0 +1,10 @@
+## SECTION=multimedia_sound
+
+config WEBRTC_AUDIO_PROCESSING1
+ tristate
+ select HOST_MESON
+ select ABSEIL_CPP
+ prompt "webrtc-audio-processing 1.x"
+ help
+ Audio processing library (echo-cancellation, gain control etc)
+ around the AudioProcessing module from the WebRTC project
diff --git a/rules/webrtc-audio-processing1.make b/rules/webrtc-audio-processing1.make
new file mode 100644
index 000000000..de08ddb5c
--- /dev/null
+++ b/rules/webrtc-audio-processing1.make
@@ -0,0 +1,62 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_WEBRTC_AUDIO_PROCESSING1) += webrtc-audio-processing1
+
+#
+# Paths and names
+#
+WEBRTC_AUDIO_PROCESSING1_VERSION := 1.3
+WEBRTC_AUDIO_PROCESSING1_MD5 := eca8e8d43da82e430080abac5969b7f1
+WEBRTC_AUDIO_PROCESSING1 := webrtc-audio-processing-$(WEBRTC_AUDIO_PROCESSING1_VERSION)
+WEBRTC_AUDIO_PROCESSING1_SUFFIX := tar.xz
+WEBRTC_AUDIO_PROCESSING1_URL := http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/$(WEBRTC_AUDIO_PROCESSING1).$(WEBRTC_AUDIO_PROCESSING1_SUFFIX)
+WEBRTC_AUDIO_PROCESSING1_SOURCE := $(SRCDIR)/$(WEBRTC_AUDIO_PROCESSING1).$(WEBRTC_AUDIO_PROCESSING1_SUFFIX)
+WEBRTC_AUDIO_PROCESSING1_DIR := $(BUILDDIR)/$(WEBRTC_AUDIO_PROCESSING1)
+WEBRTC_AUDIO_PROCESSING1_LICENSE := BSD-3-Clause
+WEBRTC_AUDIO_PROCESSING1_LICENSE_FILES := \
+ file://COPYING;md5=da08a38a32a340c5d91e13ee86a118f2 \
+ file://webrtc/rtc_base/event_tracer.cc;startline=1;endline=9;md5=cf8bceb850480c360f23d2a217437370
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# meson
+#
+WEBRTC_AUDIO_PROCESSING1_CONF_TOOL := meson
+WEBRTC_AUDIO_PROCESSING1_CONF_OPT := \
+ $(CROSS_MESON_USR) \
+ -Dgnustl=disabled \
+ -Dneon=$(call ptx/yesno, PTXCONF_ARCH_ARM_NEON)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/webrtc-audio-processing1.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, webrtc-audio-processing1)
+ @$(call install_fixup, webrtc-audio-processing1,PRIORITY,optional)
+ @$(call install_fixup, webrtc-audio-processing1,SECTION,base)
+ @$(call install_fixup, webrtc-audio-processing1,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, webrtc-audio-processing1,DESCRIPTION,missing)
+
+ @$(call install_lib, webrtc-audio-processing1, 0, 0, 0644, libwebrtc-audio-processing-1)
+ @$(call install_lib, webrtc-audio-processing1, 0, 0, 0644, libwebrtc-audio-coding-1)
+
+ @$(call install_finish, webrtc-audio-processing1)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/websocat.cargo.make b/rules/websocat.cargo.make
new file mode 100644
index 000000000..f461e870d
--- /dev/null
+++ b/rules/websocat.cargo.make
@@ -0,0 +1,1057 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Jon Ringle <jringle@gridpoint.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# WARNING: This file is generated with 'ptxdist cargosync websocat' and
+# should not be modified manually!
+#
+
+WEBSOCAT_CARGO_LOCK_MD5 := 12054b940a10e3a1fe8de99c07d8fed4
+
+WEBSOCAT_ADLER_1_0_2_MD5 := 669215548c64019c08c92b2c1afd3deb
+WEBSOCAT_ADLER_1_0_2_URL := https://crates.io/api/v1/crates/adler/1.0.2/download
+WEBSOCAT_ADLER_1_0_2_SOURCE := $(SRCDIR)/adler-1.0.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_ADLER_1_0_2
+
+WEBSOCAT_AEAD_0_4_3_MD5 := d8996d67ebb969d68c8b35ed1858171b
+WEBSOCAT_AEAD_0_4_3_URL := https://crates.io/api/v1/crates/aead/0.4.3/download
+WEBSOCAT_AEAD_0_4_3_SOURCE := $(SRCDIR)/aead-0.4.3.crate
+WEBSOCAT_PARTS += WEBSOCAT_AEAD_0_4_3
+
+WEBSOCAT_ANYMAP_0_12_1_MD5 := 64a3aad83a83e6ec727a4d896dcbc077
+WEBSOCAT_ANYMAP_0_12_1_URL := https://crates.io/api/v1/crates/anymap/0.12.1/download
+WEBSOCAT_ANYMAP_0_12_1_SOURCE := $(SRCDIR)/anymap-0.12.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_ANYMAP_0_12_1
+
+WEBSOCAT_ARGON2_0_4_1_MD5 := ac28d5811a10ea72ad763bc48e9595f6
+WEBSOCAT_ARGON2_0_4_1_URL := https://crates.io/api/v1/crates/argon2/0.4.1/download
+WEBSOCAT_ARGON2_0_4_1_SOURCE := $(SRCDIR)/argon2-0.4.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_ARGON2_0_4_1
+
+WEBSOCAT_ATTY_0_2_14_MD5 := 142cb4b9a653e56e56311f0c883b8582
+WEBSOCAT_ATTY_0_2_14_URL := https://crates.io/api/v1/crates/atty/0.2.14/download
+WEBSOCAT_ATTY_0_2_14_SOURCE := $(SRCDIR)/atty-0.2.14.crate
+WEBSOCAT_PARTS += WEBSOCAT_ATTY_0_2_14
+
+WEBSOCAT_AUTOCFG_0_1_8_MD5 := 9563ddbf0d01fb162d94707f57ad9f40
+WEBSOCAT_AUTOCFG_0_1_8_URL := https://crates.io/api/v1/crates/autocfg/0.1.8/download
+WEBSOCAT_AUTOCFG_0_1_8_SOURCE := $(SRCDIR)/autocfg-0.1.8.crate
+WEBSOCAT_PARTS += WEBSOCAT_AUTOCFG_0_1_8
+
+WEBSOCAT_AUTOCFG_1_1_0_MD5 := 05d77ef52e90ad161fdd41b252420467
+WEBSOCAT_AUTOCFG_1_1_0_URL := https://crates.io/api/v1/crates/autocfg/1.1.0/download
+WEBSOCAT_AUTOCFG_1_1_0_SOURCE := $(SRCDIR)/autocfg-1.1.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_AUTOCFG_1_1_0
+
+WEBSOCAT_BASE64_0_9_3_MD5 := 496ce53f8d4d95bf19e48bb2f31e4a7e
+WEBSOCAT_BASE64_0_9_3_URL := https://crates.io/api/v1/crates/base64/0.9.3/download
+WEBSOCAT_BASE64_0_9_3_SOURCE := $(SRCDIR)/base64-0.9.3.crate
+WEBSOCAT_PARTS += WEBSOCAT_BASE64_0_9_3
+
+WEBSOCAT_BASE64_0_10_1_MD5 := 9ed1fef898024a6aaf3e3878cd83c103
+WEBSOCAT_BASE64_0_10_1_URL := https://crates.io/api/v1/crates/base64/0.10.1/download
+WEBSOCAT_BASE64_0_10_1_SOURCE := $(SRCDIR)/base64-0.10.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_BASE64_0_10_1
+
+WEBSOCAT_BASE64CT_1_5_2_MD5 := d38fbb0f30a2b79d97ac31be7f52300e
+WEBSOCAT_BASE64CT_1_5_2_URL := https://crates.io/api/v1/crates/base64ct/1.5.2/download
+WEBSOCAT_BASE64CT_1_5_2_SOURCE := $(SRCDIR)/base64ct-1.5.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_BASE64CT_1_5_2
+
+WEBSOCAT_BITFLAGS_1_3_2_MD5 := a295edb6953237ebbdfa8e731229f9a3
+WEBSOCAT_BITFLAGS_1_3_2_URL := https://crates.io/api/v1/crates/bitflags/1.3.2/download
+WEBSOCAT_BITFLAGS_1_3_2_SOURCE := $(SRCDIR)/bitflags-1.3.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_BITFLAGS_1_3_2
+
+WEBSOCAT_BLAKE2_0_10_4_MD5 := e5aa1c3290f0c0aebc33c39e07838561
+WEBSOCAT_BLAKE2_0_10_4_URL := https://crates.io/api/v1/crates/blake2/0.10.4/download
+WEBSOCAT_BLAKE2_0_10_4_SOURCE := $(SRCDIR)/blake2-0.10.4.crate
+WEBSOCAT_PARTS += WEBSOCAT_BLAKE2_0_10_4
+
+WEBSOCAT_BLOCK_BUFFER_0_7_3_MD5 := a885637c56c780044d778f18420687cc
+WEBSOCAT_BLOCK_BUFFER_0_7_3_URL := https://crates.io/api/v1/crates/block-buffer/0.7.3/download
+WEBSOCAT_BLOCK_BUFFER_0_7_3_SOURCE := $(SRCDIR)/block-buffer-0.7.3.crate
+WEBSOCAT_PARTS += WEBSOCAT_BLOCK_BUFFER_0_7_3
+
+WEBSOCAT_BLOCK_BUFFER_0_10_3_MD5 := 7caa371ca22e7a14288920a69c081d40
+WEBSOCAT_BLOCK_BUFFER_0_10_3_URL := https://crates.io/api/v1/crates/block-buffer/0.10.3/download
+WEBSOCAT_BLOCK_BUFFER_0_10_3_SOURCE := $(SRCDIR)/block-buffer-0.10.3.crate
+WEBSOCAT_PARTS += WEBSOCAT_BLOCK_BUFFER_0_10_3
+
+WEBSOCAT_BLOCK_PADDING_0_1_5_MD5 := 95414d4f9c612bbe8a061dd2ff0bc519
+WEBSOCAT_BLOCK_PADDING_0_1_5_URL := https://crates.io/api/v1/crates/block-padding/0.1.5/download
+WEBSOCAT_BLOCK_PADDING_0_1_5_SOURCE := $(SRCDIR)/block-padding-0.1.5.crate
+WEBSOCAT_PARTS += WEBSOCAT_BLOCK_PADDING_0_1_5
+
+WEBSOCAT_BYTE_TOOLS_0_3_1_MD5 := 4bd3c3b61fe602e6078615a491e5050a
+WEBSOCAT_BYTE_TOOLS_0_3_1_URL := https://crates.io/api/v1/crates/byte-tools/0.3.1/download
+WEBSOCAT_BYTE_TOOLS_0_3_1_SOURCE := $(SRCDIR)/byte-tools-0.3.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_BYTE_TOOLS_0_3_1
+
+WEBSOCAT_BYTEORDER_1_4_3_MD5 := 1e704be5ddde9d6b5383ef1035309f91
+WEBSOCAT_BYTEORDER_1_4_3_URL := https://crates.io/api/v1/crates/byteorder/1.4.3/download
+WEBSOCAT_BYTEORDER_1_4_3_SOURCE := $(SRCDIR)/byteorder-1.4.3.crate
+WEBSOCAT_PARTS += WEBSOCAT_BYTEORDER_1_4_3
+
+WEBSOCAT_BYTES_0_4_12_MD5 := 1d02fa9f0fca9470a24a05e7c155993d
+WEBSOCAT_BYTES_0_4_12_URL := https://crates.io/api/v1/crates/bytes/0.4.12/download
+WEBSOCAT_BYTES_0_4_12_SOURCE := $(SRCDIR)/bytes-0.4.12.crate
+WEBSOCAT_PARTS += WEBSOCAT_BYTES_0_4_12
+
+WEBSOCAT_CC_1_0_73_MD5 := 8e3a4d0980acef2c4e74485a45de29a9
+WEBSOCAT_CC_1_0_73_URL := https://crates.io/api/v1/crates/cc/1.0.73/download
+WEBSOCAT_CC_1_0_73_SOURCE := $(SRCDIR)/cc-1.0.73.crate
+WEBSOCAT_PARTS += WEBSOCAT_CC_1_0_73
+
+WEBSOCAT_CFG_IF_0_1_10_MD5 := 882dbbc613a93f64c3709b0a2bd0d6dc
+WEBSOCAT_CFG_IF_0_1_10_URL := https://crates.io/api/v1/crates/cfg-if/0.1.10/download
+WEBSOCAT_CFG_IF_0_1_10_SOURCE := $(SRCDIR)/cfg-if-0.1.10.crate
+WEBSOCAT_PARTS += WEBSOCAT_CFG_IF_0_1_10
+
+WEBSOCAT_CFG_IF_1_0_0_MD5 := 74634128440dbc3766bda76fdf0aaa05
+WEBSOCAT_CFG_IF_1_0_0_URL := https://crates.io/api/v1/crates/cfg-if/1.0.0/download
+WEBSOCAT_CFG_IF_1_0_0_SOURCE := $(SRCDIR)/cfg-if-1.0.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_CFG_IF_1_0_0
+
+WEBSOCAT_CHACHA20_0_8_2_MD5 := c91eb059dc49ce8c5145967b492cd7f8
+WEBSOCAT_CHACHA20_0_8_2_URL := https://crates.io/api/v1/crates/chacha20/0.8.2/download
+WEBSOCAT_CHACHA20_0_8_2_SOURCE := $(SRCDIR)/chacha20-0.8.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_CHACHA20_0_8_2
+
+WEBSOCAT_CHACHA20POLY1305_0_9_1_MD5 := 5abf1bc1fb30b1a546e9c2636386e0b8
+WEBSOCAT_CHACHA20POLY1305_0_9_1_URL := https://crates.io/api/v1/crates/chacha20poly1305/0.9.1/download
+WEBSOCAT_CHACHA20POLY1305_0_9_1_SOURCE := $(SRCDIR)/chacha20poly1305-0.9.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_CHACHA20POLY1305_0_9_1
+
+WEBSOCAT_CIPHER_0_3_0_MD5 := 5f2578209a4d7964623462e402375ac0
+WEBSOCAT_CIPHER_0_3_0_URL := https://crates.io/api/v1/crates/cipher/0.3.0/download
+WEBSOCAT_CIPHER_0_3_0_SOURCE := $(SRCDIR)/cipher-0.3.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_CIPHER_0_3_0
+
+WEBSOCAT_CLAP_2_34_0_MD5 := 59ae9122b2946d4d52bc48a1da5c5e06
+WEBSOCAT_CLAP_2_34_0_URL := https://crates.io/api/v1/crates/clap/2.34.0/download
+WEBSOCAT_CLAP_2_34_0_SOURCE := $(SRCDIR)/clap-2.34.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_CLAP_2_34_0
+
+WEBSOCAT_CLOUDABI_0_0_3_MD5 := 1c8b50f8528dd37df7d984e0e4b61bd5
+WEBSOCAT_CLOUDABI_0_0_3_URL := https://crates.io/api/v1/crates/cloudabi/0.0.3/download
+WEBSOCAT_CLOUDABI_0_0_3_SOURCE := $(SRCDIR)/cloudabi-0.0.3.crate
+WEBSOCAT_PARTS += WEBSOCAT_CLOUDABI_0_0_3
+
+WEBSOCAT_CORE_FOUNDATION_0_9_3_MD5 := ae6dd0cd5319220586d8ace4c4be87ce
+WEBSOCAT_CORE_FOUNDATION_0_9_3_URL := https://crates.io/api/v1/crates/core-foundation/0.9.3/download
+WEBSOCAT_CORE_FOUNDATION_0_9_3_SOURCE := $(SRCDIR)/core-foundation-0.9.3.crate
+WEBSOCAT_PARTS += WEBSOCAT_CORE_FOUNDATION_0_9_3
+
+WEBSOCAT_CORE_FOUNDATION_SYS_0_8_3_MD5 := d05cbf26ed52299487a802688a1d22cb
+WEBSOCAT_CORE_FOUNDATION_SYS_0_8_3_URL := https://crates.io/api/v1/crates/core-foundation-sys/0.8.3/download
+WEBSOCAT_CORE_FOUNDATION_SYS_0_8_3_SOURCE := $(SRCDIR)/core-foundation-sys-0.8.3.crate
+WEBSOCAT_PARTS += WEBSOCAT_CORE_FOUNDATION_SYS_0_8_3
+
+WEBSOCAT_CPUFEATURES_0_2_5_MD5 := ebdc1f779823eaad615501b1cd3822b1
+WEBSOCAT_CPUFEATURES_0_2_5_URL := https://crates.io/api/v1/crates/cpufeatures/0.2.5/download
+WEBSOCAT_CPUFEATURES_0_2_5_SOURCE := $(SRCDIR)/cpufeatures-0.2.5.crate
+WEBSOCAT_PARTS += WEBSOCAT_CPUFEATURES_0_2_5
+
+WEBSOCAT_CRC32FAST_1_3_2_MD5 := a9d6492a1bd21d93dbc27c32eabd0c70
+WEBSOCAT_CRC32FAST_1_3_2_URL := https://crates.io/api/v1/crates/crc32fast/1.3.2/download
+WEBSOCAT_CRC32FAST_1_3_2_SOURCE := $(SRCDIR)/crc32fast-1.3.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_CRC32FAST_1_3_2
+
+WEBSOCAT_CROSSBEAM_DEQUE_0_7_4_MD5 := 372d983bc911b6099ad1b8ed6087604f
+WEBSOCAT_CROSSBEAM_DEQUE_0_7_4_URL := https://crates.io/api/v1/crates/crossbeam-deque/0.7.4/download
+WEBSOCAT_CROSSBEAM_DEQUE_0_7_4_SOURCE := $(SRCDIR)/crossbeam-deque-0.7.4.crate
+WEBSOCAT_PARTS += WEBSOCAT_CROSSBEAM_DEQUE_0_7_4
+
+WEBSOCAT_CROSSBEAM_EPOCH_0_8_2_MD5 := 49b4b022e9fa4cc60376a79ecb39d04f
+WEBSOCAT_CROSSBEAM_EPOCH_0_8_2_URL := https://crates.io/api/v1/crates/crossbeam-epoch/0.8.2/download
+WEBSOCAT_CROSSBEAM_EPOCH_0_8_2_SOURCE := $(SRCDIR)/crossbeam-epoch-0.8.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_CROSSBEAM_EPOCH_0_8_2
+
+WEBSOCAT_CROSSBEAM_QUEUE_0_1_2_MD5 := 7c90c5d981a715d9863d6bfcc984d6ed
+WEBSOCAT_CROSSBEAM_QUEUE_0_1_2_URL := https://crates.io/api/v1/crates/crossbeam-queue/0.1.2/download
+WEBSOCAT_CROSSBEAM_QUEUE_0_1_2_SOURCE := $(SRCDIR)/crossbeam-queue-0.1.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_CROSSBEAM_QUEUE_0_1_2
+
+WEBSOCAT_CROSSBEAM_QUEUE_0_2_3_MD5 := 836bbd6315ea443caf33fe3394ea4991
+WEBSOCAT_CROSSBEAM_QUEUE_0_2_3_URL := https://crates.io/api/v1/crates/crossbeam-queue/0.2.3/download
+WEBSOCAT_CROSSBEAM_QUEUE_0_2_3_SOURCE := $(SRCDIR)/crossbeam-queue-0.2.3.crate
+WEBSOCAT_PARTS += WEBSOCAT_CROSSBEAM_QUEUE_0_2_3
+
+WEBSOCAT_CROSSBEAM_UTILS_0_6_6_MD5 := 66912c6b316cfec144c4fbcbf59bf862
+WEBSOCAT_CROSSBEAM_UTILS_0_6_6_URL := https://crates.io/api/v1/crates/crossbeam-utils/0.6.6/download
+WEBSOCAT_CROSSBEAM_UTILS_0_6_6_SOURCE := $(SRCDIR)/crossbeam-utils-0.6.6.crate
+WEBSOCAT_PARTS += WEBSOCAT_CROSSBEAM_UTILS_0_6_6
+
+WEBSOCAT_CROSSBEAM_UTILS_0_7_2_MD5 := ff67cf2eb9668167782b8012d3b48e7b
+WEBSOCAT_CROSSBEAM_UTILS_0_7_2_URL := https://crates.io/api/v1/crates/crossbeam-utils/0.7.2/download
+WEBSOCAT_CROSSBEAM_UTILS_0_7_2_SOURCE := $(SRCDIR)/crossbeam-utils-0.7.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_CROSSBEAM_UTILS_0_7_2
+
+WEBSOCAT_CRYPTO_COMMON_0_1_6_MD5 := 89e88633cab0e4b6f3d3878b84dffe8b
+WEBSOCAT_CRYPTO_COMMON_0_1_6_URL := https://crates.io/api/v1/crates/crypto-common/0.1.6/download
+WEBSOCAT_CRYPTO_COMMON_0_1_6_SOURCE := $(SRCDIR)/crypto-common-0.1.6.crate
+WEBSOCAT_PARTS += WEBSOCAT_CRYPTO_COMMON_0_1_6
+
+WEBSOCAT_DERIVATIVE_1_0_4_MD5 := fdefb54850aeb1f31d201f0115aab3d4
+WEBSOCAT_DERIVATIVE_1_0_4_URL := https://crates.io/api/v1/crates/derivative/1.0.4/download
+WEBSOCAT_DERIVATIVE_1_0_4_SOURCE := $(SRCDIR)/derivative-1.0.4.crate
+WEBSOCAT_PARTS += WEBSOCAT_DERIVATIVE_1_0_4
+
+WEBSOCAT_DIGEST_0_8_1_MD5 := b00352aced738d455145117157604783
+WEBSOCAT_DIGEST_0_8_1_URL := https://crates.io/api/v1/crates/digest/0.8.1/download
+WEBSOCAT_DIGEST_0_8_1_SOURCE := $(SRCDIR)/digest-0.8.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_DIGEST_0_8_1
+
+WEBSOCAT_DIGEST_0_10_5_MD5 := ebf95279270dfefc495cdf5192faaf4c
+WEBSOCAT_DIGEST_0_10_5_URL := https://crates.io/api/v1/crates/digest/0.10.5/download
+WEBSOCAT_DIGEST_0_10_5_SOURCE := $(SRCDIR)/digest-0.10.5.crate
+WEBSOCAT_PARTS += WEBSOCAT_DIGEST_0_10_5
+
+WEBSOCAT_ENV_LOGGER_0_6_2_MD5 := 034a5cb6f2dd0fe6602fbe95806b678b
+WEBSOCAT_ENV_LOGGER_0_6_2_URL := https://crates.io/api/v1/crates/env_logger/0.6.2/download
+WEBSOCAT_ENV_LOGGER_0_6_2_SOURCE := $(SRCDIR)/env_logger-0.6.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_ENV_LOGGER_0_6_2
+
+WEBSOCAT_FAKE_SIMD_0_1_2_MD5 := 1aef0dd636d3ef234e4f035fc26c0069
+WEBSOCAT_FAKE_SIMD_0_1_2_URL := https://crates.io/api/v1/crates/fake-simd/0.1.2/download
+WEBSOCAT_FAKE_SIMD_0_1_2_SOURCE := $(SRCDIR)/fake-simd-0.1.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_FAKE_SIMD_0_1_2
+
+WEBSOCAT_FASTRAND_1_8_0_MD5 := d59e1fe9834d52c50e2414a34945e479
+WEBSOCAT_FASTRAND_1_8_0_URL := https://crates.io/api/v1/crates/fastrand/1.8.0/download
+WEBSOCAT_FASTRAND_1_8_0_SOURCE := $(SRCDIR)/fastrand-1.8.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_FASTRAND_1_8_0
+
+WEBSOCAT_FLATE2_1_0_24_MD5 := a61e445efc8dde664a8cd0911ed7be6c
+WEBSOCAT_FLATE2_1_0_24_URL := https://crates.io/api/v1/crates/flate2/1.0.24/download
+WEBSOCAT_FLATE2_1_0_24_SOURCE := $(SRCDIR)/flate2-1.0.24.crate
+WEBSOCAT_PARTS += WEBSOCAT_FLATE2_1_0_24
+
+WEBSOCAT_FNV_1_0_7_MD5 := 8dab3b3ec00dc56cffde0b0c410d47b5
+WEBSOCAT_FNV_1_0_7_URL := https://crates.io/api/v1/crates/fnv/1.0.7/download
+WEBSOCAT_FNV_1_0_7_SOURCE := $(SRCDIR)/fnv-1.0.7.crate
+WEBSOCAT_PARTS += WEBSOCAT_FNV_1_0_7
+
+WEBSOCAT_FOREIGN_TYPES_0_3_2_MD5 := 78c898fdaa3968e23904bf8538c4a271
+WEBSOCAT_FOREIGN_TYPES_0_3_2_URL := https://crates.io/api/v1/crates/foreign-types/0.3.2/download
+WEBSOCAT_FOREIGN_TYPES_0_3_2_SOURCE := $(SRCDIR)/foreign-types-0.3.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_FOREIGN_TYPES_0_3_2
+
+WEBSOCAT_FOREIGN_TYPES_SHARED_0_1_1_MD5 := 667e86b8b8d96ab4e9605627ce7dcc9a
+WEBSOCAT_FOREIGN_TYPES_SHARED_0_1_1_URL := https://crates.io/api/v1/crates/foreign-types-shared/0.1.1/download
+WEBSOCAT_FOREIGN_TYPES_SHARED_0_1_1_SOURCE := $(SRCDIR)/foreign-types-shared-0.1.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_FOREIGN_TYPES_SHARED_0_1_1
+
+WEBSOCAT_FUCHSIA_CPRNG_0_1_1_MD5 := 27260b46db6b9ac40318143d70a80ba3
+WEBSOCAT_FUCHSIA_CPRNG_0_1_1_URL := https://crates.io/api/v1/crates/fuchsia-cprng/0.1.1/download
+WEBSOCAT_FUCHSIA_CPRNG_0_1_1_SOURCE := $(SRCDIR)/fuchsia-cprng-0.1.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_FUCHSIA_CPRNG_0_1_1
+
+WEBSOCAT_FUCHSIA_ZIRCON_0_3_3_MD5 := dd7c80c2d04d2e9ceba82826cf69764d
+WEBSOCAT_FUCHSIA_ZIRCON_0_3_3_URL := https://crates.io/api/v1/crates/fuchsia-zircon/0.3.3/download
+WEBSOCAT_FUCHSIA_ZIRCON_0_3_3_SOURCE := $(SRCDIR)/fuchsia-zircon-0.3.3.crate
+WEBSOCAT_PARTS += WEBSOCAT_FUCHSIA_ZIRCON_0_3_3
+
+WEBSOCAT_FUCHSIA_ZIRCON_SYS_0_3_3_MD5 := 54cfab480b7a5f7302eadf44129d3f4b
+WEBSOCAT_FUCHSIA_ZIRCON_SYS_0_3_3_URL := https://crates.io/api/v1/crates/fuchsia-zircon-sys/0.3.3/download
+WEBSOCAT_FUCHSIA_ZIRCON_SYS_0_3_3_SOURCE := $(SRCDIR)/fuchsia-zircon-sys-0.3.3.crate
+WEBSOCAT_PARTS += WEBSOCAT_FUCHSIA_ZIRCON_SYS_0_3_3
+
+WEBSOCAT_FUTURES_0_1_31_MD5 := a2506255208617c2cb4f52fcd6a739dd
+WEBSOCAT_FUTURES_0_1_31_URL := https://crates.io/api/v1/crates/futures/0.1.31/download
+WEBSOCAT_FUTURES_0_1_31_SOURCE := $(SRCDIR)/futures-0.1.31.crate
+WEBSOCAT_PARTS += WEBSOCAT_FUTURES_0_1_31
+
+WEBSOCAT_GENERIC_ARRAY_0_12_4_MD5 := 668f0eda79c119d7c79f1e49c0afbeeb
+WEBSOCAT_GENERIC_ARRAY_0_12_4_URL := https://crates.io/api/v1/crates/generic-array/0.12.4/download
+WEBSOCAT_GENERIC_ARRAY_0_12_4_SOURCE := $(SRCDIR)/generic-array-0.12.4.crate
+WEBSOCAT_PARTS += WEBSOCAT_GENERIC_ARRAY_0_12_4
+
+WEBSOCAT_GENERIC_ARRAY_0_14_6_MD5 := e3480971fb7f7462149056fd70df74e2
+WEBSOCAT_GENERIC_ARRAY_0_14_6_URL := https://crates.io/api/v1/crates/generic-array/0.14.6/download
+WEBSOCAT_GENERIC_ARRAY_0_14_6_SOURCE := $(SRCDIR)/generic-array-0.14.6.crate
+WEBSOCAT_PARTS += WEBSOCAT_GENERIC_ARRAY_0_14_6
+
+WEBSOCAT_GETRANDOM_0_2_7_MD5 := 62864db03072aaae4f855126d502b8c7
+WEBSOCAT_GETRANDOM_0_2_7_URL := https://crates.io/api/v1/crates/getrandom/0.2.7/download
+WEBSOCAT_GETRANDOM_0_2_7_SOURCE := $(SRCDIR)/getrandom-0.2.7.crate
+WEBSOCAT_PARTS += WEBSOCAT_GETRANDOM_0_2_7
+
+WEBSOCAT_HECK_0_3_3_MD5 := d4310bba2bdd940077329f6fca3fde78
+WEBSOCAT_HECK_0_3_3_URL := https://crates.io/api/v1/crates/heck/0.3.3/download
+WEBSOCAT_HECK_0_3_3_SOURCE := $(SRCDIR)/heck-0.3.3.crate
+WEBSOCAT_PARTS += WEBSOCAT_HECK_0_3_3
+
+WEBSOCAT_HERMIT_ABI_0_1_19_MD5 := 0b7994d1256215201bdfb810a357ffa2
+WEBSOCAT_HERMIT_ABI_0_1_19_URL := https://crates.io/api/v1/crates/hermit-abi/0.1.19/download
+WEBSOCAT_HERMIT_ABI_0_1_19_SOURCE := $(SRCDIR)/hermit-abi-0.1.19.crate
+WEBSOCAT_PARTS += WEBSOCAT_HERMIT_ABI_0_1_19
+
+WEBSOCAT_HEX_0_4_3_MD5 := 1d3e530a3410fc95a6987d70f84a6332
+WEBSOCAT_HEX_0_4_3_URL := https://crates.io/api/v1/crates/hex/0.4.3/download
+WEBSOCAT_HEX_0_4_3_SOURCE := $(SRCDIR)/hex-0.4.3.crate
+WEBSOCAT_PARTS += WEBSOCAT_HEX_0_4_3
+
+WEBSOCAT_HTTP_0_1_21_MD5 := 495ec7bcfa5f016979d56c6e6d0e0367
+WEBSOCAT_HTTP_0_1_21_URL := https://crates.io/api/v1/crates/http/0.1.21/download
+WEBSOCAT_HTTP_0_1_21_SOURCE := $(SRCDIR)/http-0.1.21.crate
+WEBSOCAT_PARTS += WEBSOCAT_HTTP_0_1_21
+
+WEBSOCAT_HTTP_BYTES_0_1_0_MD5 := efed5c546894d13822d881b03a886d35
+WEBSOCAT_HTTP_BYTES_0_1_0_URL := https://crates.io/api/v1/crates/http-bytes/0.1.0/download
+WEBSOCAT_HTTP_BYTES_0_1_0_SOURCE := $(SRCDIR)/http-bytes-0.1.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_HTTP_BYTES_0_1_0
+
+WEBSOCAT_HTTPARSE_1_8_0_MD5 := 92968aee56cb2f162a55008fedddbb78
+WEBSOCAT_HTTPARSE_1_8_0_URL := https://crates.io/api/v1/crates/httparse/1.8.0/download
+WEBSOCAT_HTTPARSE_1_8_0_SOURCE := $(SRCDIR)/httparse-1.8.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_HTTPARSE_1_8_0
+
+WEBSOCAT_HYPER_0_10_16_MD5 := 87bfa5b74e84c418684711ebd2a1652e
+WEBSOCAT_HYPER_0_10_16_URL := https://crates.io/api/v1/crates/hyper/0.10.16/download
+WEBSOCAT_HYPER_0_10_16_SOURCE := $(SRCDIR)/hyper-0.10.16.crate
+WEBSOCAT_PARTS += WEBSOCAT_HYPER_0_10_16
+
+WEBSOCAT_IDNA_0_1_5_MD5 := 89cabfcb37602a7b200b1a9cd660ee2e
+WEBSOCAT_IDNA_0_1_5_URL := https://crates.io/api/v1/crates/idna/0.1.5/download
+WEBSOCAT_IDNA_0_1_5_SOURCE := $(SRCDIR)/idna-0.1.5.crate
+WEBSOCAT_PARTS += WEBSOCAT_IDNA_0_1_5
+
+WEBSOCAT_INSTANT_0_1_12_MD5 := 5f153f7135dceb02f88266121c836b4e
+WEBSOCAT_INSTANT_0_1_12_URL := https://crates.io/api/v1/crates/instant/0.1.12/download
+WEBSOCAT_INSTANT_0_1_12_SOURCE := $(SRCDIR)/instant-0.1.12.crate
+WEBSOCAT_PARTS += WEBSOCAT_INSTANT_0_1_12
+
+WEBSOCAT_IOVEC_0_1_4_MD5 := f1c40b9836035b69e464df711a1d2950
+WEBSOCAT_IOVEC_0_1_4_URL := https://crates.io/api/v1/crates/iovec/0.1.4/download
+WEBSOCAT_IOVEC_0_1_4_SOURCE := $(SRCDIR)/iovec-0.1.4.crate
+WEBSOCAT_PARTS += WEBSOCAT_IOVEC_0_1_4
+
+WEBSOCAT_ITOA_0_4_8_MD5 := 06e7dbde9932c6a9bac63d9288670678
+WEBSOCAT_ITOA_0_4_8_URL := https://crates.io/api/v1/crates/itoa/0.4.8/download
+WEBSOCAT_ITOA_0_4_8_SOURCE := $(SRCDIR)/itoa-0.4.8.crate
+WEBSOCAT_PARTS += WEBSOCAT_ITOA_0_4_8
+
+WEBSOCAT_KERNEL32_SYS_0_2_2_MD5 := 9d033cc2daa6924420a4a89e6705773f
+WEBSOCAT_KERNEL32_SYS_0_2_2_URL := https://crates.io/api/v1/crates/kernel32-sys/0.2.2/download
+WEBSOCAT_KERNEL32_SYS_0_2_2_SOURCE := $(SRCDIR)/kernel32-sys-0.2.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_KERNEL32_SYS_0_2_2
+
+WEBSOCAT_LANGUAGE_TAGS_0_2_2_MD5 := 70d98bc08018458ae5f7109b52aa1acc
+WEBSOCAT_LANGUAGE_TAGS_0_2_2_URL := https://crates.io/api/v1/crates/language-tags/0.2.2/download
+WEBSOCAT_LANGUAGE_TAGS_0_2_2_SOURCE := $(SRCDIR)/language-tags-0.2.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_LANGUAGE_TAGS_0_2_2
+
+WEBSOCAT_LAZY_STATIC_1_4_0_MD5 := fba3b040a55c01be7376d3dd5c4d4920
+WEBSOCAT_LAZY_STATIC_1_4_0_URL := https://crates.io/api/v1/crates/lazy_static/1.4.0/download
+WEBSOCAT_LAZY_STATIC_1_4_0_SOURCE := $(SRCDIR)/lazy_static-1.4.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_LAZY_STATIC_1_4_0
+
+WEBSOCAT_LIBC_0_2_133_MD5 := cd6868b580f6901cfb16071a0f1e3833
+WEBSOCAT_LIBC_0_2_133_URL := https://crates.io/api/v1/crates/libc/0.2.133/download
+WEBSOCAT_LIBC_0_2_133_SOURCE := $(SRCDIR)/libc-0.2.133.crate
+WEBSOCAT_PARTS += WEBSOCAT_LIBC_0_2_133
+
+WEBSOCAT_LOCK_API_0_3_4_MD5 := 19466d8edb3c032438026125770b17f9
+WEBSOCAT_LOCK_API_0_3_4_URL := https://crates.io/api/v1/crates/lock_api/0.3.4/download
+WEBSOCAT_LOCK_API_0_3_4_SOURCE := $(SRCDIR)/lock_api-0.3.4.crate
+WEBSOCAT_PARTS += WEBSOCAT_LOCK_API_0_3_4
+
+WEBSOCAT_LOCK_API_0_4_9_MD5 := 426eb9e22cbb36480e13fd265be87b4c
+WEBSOCAT_LOCK_API_0_4_9_URL := https://crates.io/api/v1/crates/lock_api/0.4.9/download
+WEBSOCAT_LOCK_API_0_4_9_SOURCE := $(SRCDIR)/lock_api-0.4.9.crate
+WEBSOCAT_PARTS += WEBSOCAT_LOCK_API_0_4_9
+
+WEBSOCAT_LOG_0_3_9_MD5 := 33f0dff2bb670d9307fea18d579b5494
+WEBSOCAT_LOG_0_3_9_URL := https://crates.io/api/v1/crates/log/0.3.9/download
+WEBSOCAT_LOG_0_3_9_SOURCE := $(SRCDIR)/log-0.3.9.crate
+WEBSOCAT_PARTS += WEBSOCAT_LOG_0_3_9
+
+WEBSOCAT_LOG_0_4_17_MD5 := b31bf94ffe7e0f2ada93afae1076eaeb
+WEBSOCAT_LOG_0_4_17_URL := https://crates.io/api/v1/crates/log/0.4.17/download
+WEBSOCAT_LOG_0_4_17_SOURCE := $(SRCDIR)/log-0.4.17.crate
+WEBSOCAT_PARTS += WEBSOCAT_LOG_0_4_17
+
+WEBSOCAT_MATCHES_0_1_9_MD5 := 5ac809692422b722eaded90be3c4d9c2
+WEBSOCAT_MATCHES_0_1_9_URL := https://crates.io/api/v1/crates/matches/0.1.9/download
+WEBSOCAT_MATCHES_0_1_9_SOURCE := $(SRCDIR)/matches-0.1.9.crate
+WEBSOCAT_PARTS += WEBSOCAT_MATCHES_0_1_9
+
+WEBSOCAT_MAYBE_UNINIT_2_0_0_MD5 := b5cf10e268e8a3bee2de8a734104245e
+WEBSOCAT_MAYBE_UNINIT_2_0_0_URL := https://crates.io/api/v1/crates/maybe-uninit/2.0.0/download
+WEBSOCAT_MAYBE_UNINIT_2_0_0_SOURCE := $(SRCDIR)/maybe-uninit-2.0.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_MAYBE_UNINIT_2_0_0
+
+WEBSOCAT_MEMCHR_2_5_0_MD5 := 94b8bf179385ff071bdc33b58bf047c0
+WEBSOCAT_MEMCHR_2_5_0_URL := https://crates.io/api/v1/crates/memchr/2.5.0/download
+WEBSOCAT_MEMCHR_2_5_0_SOURCE := $(SRCDIR)/memchr-2.5.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_MEMCHR_2_5_0
+
+WEBSOCAT_MEMOFFSET_0_5_6_MD5 := 5d9532411dde9442741983efd0961351
+WEBSOCAT_MEMOFFSET_0_5_6_URL := https://crates.io/api/v1/crates/memoffset/0.5.6/download
+WEBSOCAT_MEMOFFSET_0_5_6_SOURCE := $(SRCDIR)/memoffset-0.5.6.crate
+WEBSOCAT_PARTS += WEBSOCAT_MEMOFFSET_0_5_6
+
+WEBSOCAT_MIME_0_2_6_MD5 := 6d1fc428d2446b4975d8c1788c73e72c
+WEBSOCAT_MIME_0_2_6_URL := https://crates.io/api/v1/crates/mime/0.2.6/download
+WEBSOCAT_MIME_0_2_6_SOURCE := $(SRCDIR)/mime-0.2.6.crate
+WEBSOCAT_PARTS += WEBSOCAT_MIME_0_2_6
+
+WEBSOCAT_MINIZ_OXIDE_0_5_4_MD5 := cc0dc636c0dfcfddbbbff21a699b25d8
+WEBSOCAT_MINIZ_OXIDE_0_5_4_URL := https://crates.io/api/v1/crates/miniz_oxide/0.5.4/download
+WEBSOCAT_MINIZ_OXIDE_0_5_4_SOURCE := $(SRCDIR)/miniz_oxide-0.5.4.crate
+WEBSOCAT_PARTS += WEBSOCAT_MINIZ_OXIDE_0_5_4
+
+WEBSOCAT_MIO_0_6_23_MD5 := 257e573f323c639630b31f147671b627
+WEBSOCAT_MIO_0_6_23_URL := https://crates.io/api/v1/crates/mio/0.6.23/download
+WEBSOCAT_MIO_0_6_23_SOURCE := $(SRCDIR)/mio-0.6.23.crate
+WEBSOCAT_PARTS += WEBSOCAT_MIO_0_6_23
+
+WEBSOCAT_MIO_NAMED_PIPES_0_1_7_MD5 := 149e92d5fe1d4adde8dadfa37badf19a
+WEBSOCAT_MIO_NAMED_PIPES_0_1_7_URL := https://crates.io/api/v1/crates/mio-named-pipes/0.1.7/download
+WEBSOCAT_MIO_NAMED_PIPES_0_1_7_SOURCE := $(SRCDIR)/mio-named-pipes-0.1.7.crate
+WEBSOCAT_PARTS += WEBSOCAT_MIO_NAMED_PIPES_0_1_7
+
+WEBSOCAT_MIO_UDS_0_6_8_MD5 := 10e28d0be14899dcbad91142a228fb35
+WEBSOCAT_MIO_UDS_0_6_8_URL := https://crates.io/api/v1/crates/mio-uds/0.6.8/download
+WEBSOCAT_MIO_UDS_0_6_8_SOURCE := $(SRCDIR)/mio-uds-0.6.8.crate
+WEBSOCAT_PARTS += WEBSOCAT_MIO_UDS_0_6_8
+
+WEBSOCAT_MIOW_0_2_2_MD5 := 1fbbe598255c0addb31bdfbe3e76420d
+WEBSOCAT_MIOW_0_2_2_URL := https://crates.io/api/v1/crates/miow/0.2.2/download
+WEBSOCAT_MIOW_0_2_2_SOURCE := $(SRCDIR)/miow-0.2.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_MIOW_0_2_2
+
+WEBSOCAT_MIOW_0_3_7_MD5 := 4604959975c2154a14f6b5e97444e2c8
+WEBSOCAT_MIOW_0_3_7_URL := https://crates.io/api/v1/crates/miow/0.3.7/download
+WEBSOCAT_MIOW_0_3_7_SOURCE := $(SRCDIR)/miow-0.3.7.crate
+WEBSOCAT_PARTS += WEBSOCAT_MIOW_0_3_7
+
+WEBSOCAT_NATIVE_TLS_0_2_10_MD5 := 83c88f2bd69c44122955bf94ad9377a1
+WEBSOCAT_NATIVE_TLS_0_2_10_URL := https://crates.io/api/v1/crates/native-tls/0.2.10/download
+WEBSOCAT_NATIVE_TLS_0_2_10_SOURCE := $(SRCDIR)/native-tls-0.2.10.crate
+WEBSOCAT_PARTS += WEBSOCAT_NATIVE_TLS_0_2_10
+
+WEBSOCAT_NET2_0_2_37_MD5 := ff6c054468eab826f0dab7cc9a3fe557
+WEBSOCAT_NET2_0_2_37_URL := https://crates.io/api/v1/crates/net2/0.2.37/download
+WEBSOCAT_NET2_0_2_37_SOURCE := $(SRCDIR)/net2-0.2.37.crate
+WEBSOCAT_PARTS += WEBSOCAT_NET2_0_2_37
+
+WEBSOCAT_NUM_CPUS_1_13_1_MD5 := c5e50e299295e662ad19c58428d6e085
+WEBSOCAT_NUM_CPUS_1_13_1_URL := https://crates.io/api/v1/crates/num_cpus/1.13.1/download
+WEBSOCAT_NUM_CPUS_1_13_1_SOURCE := $(SRCDIR)/num_cpus-1.13.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_NUM_CPUS_1_13_1
+
+WEBSOCAT_ONCE_CELL_1_15_0_MD5 := 81bd380ba31052f9c84f5e71e8c0ee52
+WEBSOCAT_ONCE_CELL_1_15_0_URL := https://crates.io/api/v1/crates/once_cell/1.15.0/download
+WEBSOCAT_ONCE_CELL_1_15_0_SOURCE := $(SRCDIR)/once_cell-1.15.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_ONCE_CELL_1_15_0
+
+WEBSOCAT_OPAQUE_DEBUG_0_2_3_MD5 := 797752fea1f2c8b458cf7383b61433c9
+WEBSOCAT_OPAQUE_DEBUG_0_2_3_URL := https://crates.io/api/v1/crates/opaque-debug/0.2.3/download
+WEBSOCAT_OPAQUE_DEBUG_0_2_3_SOURCE := $(SRCDIR)/opaque-debug-0.2.3.crate
+WEBSOCAT_PARTS += WEBSOCAT_OPAQUE_DEBUG_0_2_3
+
+WEBSOCAT_OPAQUE_DEBUG_0_3_0_MD5 := 653e04baa68a4484b3b839c19221e474
+WEBSOCAT_OPAQUE_DEBUG_0_3_0_URL := https://crates.io/api/v1/crates/opaque-debug/0.3.0/download
+WEBSOCAT_OPAQUE_DEBUG_0_3_0_SOURCE := $(SRCDIR)/opaque-debug-0.3.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_OPAQUE_DEBUG_0_3_0
+
+WEBSOCAT_OPENSSL_0_10_41_MD5 := 728031c49b53e56dd6f7af19d4182975
+WEBSOCAT_OPENSSL_0_10_41_URL := https://crates.io/api/v1/crates/openssl/0.10.41/download
+WEBSOCAT_OPENSSL_0_10_41_SOURCE := $(SRCDIR)/openssl-0.10.41.crate
+WEBSOCAT_PARTS += WEBSOCAT_OPENSSL_0_10_41
+
+WEBSOCAT_OPENSSL_MACROS_0_1_0_MD5 := 73212ff5e0f8cd8844081a2461393707
+WEBSOCAT_OPENSSL_MACROS_0_1_0_URL := https://crates.io/api/v1/crates/openssl-macros/0.1.0/download
+WEBSOCAT_OPENSSL_MACROS_0_1_0_SOURCE := $(SRCDIR)/openssl-macros-0.1.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_OPENSSL_MACROS_0_1_0
+
+WEBSOCAT_OPENSSL_PROBE_0_1_5_MD5 := 907244c0d3791f3f981c7cc8e4cad0a3
+WEBSOCAT_OPENSSL_PROBE_0_1_5_URL := https://crates.io/api/v1/crates/openssl-probe/0.1.5/download
+WEBSOCAT_OPENSSL_PROBE_0_1_5_SOURCE := $(SRCDIR)/openssl-probe-0.1.5.crate
+WEBSOCAT_PARTS += WEBSOCAT_OPENSSL_PROBE_0_1_5
+
+WEBSOCAT_OPENSSL_SRC_111_22_0_1_1_1Q_MD5 := 35a1d9588f33516552bc74a8ce9d52c2
+WEBSOCAT_OPENSSL_SRC_111_22_0_1_1_1Q_URL := https://crates.io/api/v1/crates/openssl-src/111.22.0+1.1.1q/download
+WEBSOCAT_OPENSSL_SRC_111_22_0_1_1_1Q_SOURCE := $(SRCDIR)/openssl-src-111.22.0+1.1.1q.crate
+WEBSOCAT_PARTS += WEBSOCAT_OPENSSL_SRC_111_22_0_1_1_1Q
+
+WEBSOCAT_OPENSSL_SYS_0_9_75_MD5 := 1a1faee558a8109ff8b9f7767410fded
+WEBSOCAT_OPENSSL_SYS_0_9_75_URL := https://crates.io/api/v1/crates/openssl-sys/0.9.75/download
+WEBSOCAT_OPENSSL_SYS_0_9_75_SOURCE := $(SRCDIR)/openssl-sys-0.9.75.crate
+WEBSOCAT_PARTS += WEBSOCAT_OPENSSL_SYS_0_9_75
+
+WEBSOCAT_PARKING_LOT_0_9_0_MD5 := 783499db4bc8bb10620a842c2f2d8d36
+WEBSOCAT_PARKING_LOT_0_9_0_URL := https://crates.io/api/v1/crates/parking_lot/0.9.0/download
+WEBSOCAT_PARKING_LOT_0_9_0_SOURCE := $(SRCDIR)/parking_lot-0.9.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_PARKING_LOT_0_9_0
+
+WEBSOCAT_PARKING_LOT_0_12_1_MD5 := 1be45f99109d447849f4244b58c5a470
+WEBSOCAT_PARKING_LOT_0_12_1_URL := https://crates.io/api/v1/crates/parking_lot/0.12.1/download
+WEBSOCAT_PARKING_LOT_0_12_1_SOURCE := $(SRCDIR)/parking_lot-0.12.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_PARKING_LOT_0_12_1
+
+WEBSOCAT_PARKING_LOT_CORE_0_6_2_MD5 := 521a4741dd82cd5667e866400c7a8e4f
+WEBSOCAT_PARKING_LOT_CORE_0_6_2_URL := https://crates.io/api/v1/crates/parking_lot_core/0.6.2/download
+WEBSOCAT_PARKING_LOT_CORE_0_6_2_SOURCE := $(SRCDIR)/parking_lot_core-0.6.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_PARKING_LOT_CORE_0_6_2
+
+WEBSOCAT_PARKING_LOT_CORE_0_9_3_MD5 := f3c211bc33fcf71ca981d02f9fa2813c
+WEBSOCAT_PARKING_LOT_CORE_0_9_3_URL := https://crates.io/api/v1/crates/parking_lot_core/0.9.3/download
+WEBSOCAT_PARKING_LOT_CORE_0_9_3_SOURCE := $(SRCDIR)/parking_lot_core-0.9.3.crate
+WEBSOCAT_PARTS += WEBSOCAT_PARKING_LOT_CORE_0_9_3
+
+WEBSOCAT_PASSWORD_HASH_0_4_2_MD5 := 8b67ff1e021e9c6002ff6f6b750476cb
+WEBSOCAT_PASSWORD_HASH_0_4_2_URL := https://crates.io/api/v1/crates/password-hash/0.4.2/download
+WEBSOCAT_PASSWORD_HASH_0_4_2_SOURCE := $(SRCDIR)/password-hash-0.4.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_PASSWORD_HASH_0_4_2
+
+WEBSOCAT_PERCENT_ENCODING_1_0_1_MD5 := 8a5fc6ba84f3ac8a7e43ecb99322866c
+WEBSOCAT_PERCENT_ENCODING_1_0_1_URL := https://crates.io/api/v1/crates/percent-encoding/1.0.1/download
+WEBSOCAT_PERCENT_ENCODING_1_0_1_SOURCE := $(SRCDIR)/percent-encoding-1.0.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_PERCENT_ENCODING_1_0_1
+
+WEBSOCAT_PKG_CONFIG_0_3_25_MD5 := b478ee84018082806ea8da763f0b3f1f
+WEBSOCAT_PKG_CONFIG_0_3_25_URL := https://crates.io/api/v1/crates/pkg-config/0.3.25/download
+WEBSOCAT_PKG_CONFIG_0_3_25_SOURCE := $(SRCDIR)/pkg-config-0.3.25.crate
+WEBSOCAT_PARTS += WEBSOCAT_PKG_CONFIG_0_3_25
+
+WEBSOCAT_POLY1305_0_7_2_MD5 := 34d2cb51549a4e7236ec8dbfcf19236d
+WEBSOCAT_POLY1305_0_7_2_URL := https://crates.io/api/v1/crates/poly1305/0.7.2/download
+WEBSOCAT_POLY1305_0_7_2_SOURCE := $(SRCDIR)/poly1305-0.7.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_POLY1305_0_7_2
+
+WEBSOCAT_PPV_LITE86_0_2_16_MD5 := ae91c97885d67994a342820cf7d59fb2
+WEBSOCAT_PPV_LITE86_0_2_16_URL := https://crates.io/api/v1/crates/ppv-lite86/0.2.16/download
+WEBSOCAT_PPV_LITE86_0_2_16_SOURCE := $(SRCDIR)/ppv-lite86-0.2.16.crate
+WEBSOCAT_PARTS += WEBSOCAT_PPV_LITE86_0_2_16
+
+WEBSOCAT_PROC_MACRO2_0_4_30_MD5 := 020c7d0be083642e24a1499122793006
+WEBSOCAT_PROC_MACRO2_0_4_30_URL := https://crates.io/api/v1/crates/proc-macro2/0.4.30/download
+WEBSOCAT_PROC_MACRO2_0_4_30_SOURCE := $(SRCDIR)/proc-macro2-0.4.30.crate
+WEBSOCAT_PARTS += WEBSOCAT_PROC_MACRO2_0_4_30
+
+WEBSOCAT_PROC_MACRO2_1_0_43_MD5 := 2c24d3b1b942a89c838bb60ef053d2d2
+WEBSOCAT_PROC_MACRO2_1_0_43_URL := https://crates.io/api/v1/crates/proc-macro2/1.0.43/download
+WEBSOCAT_PROC_MACRO2_1_0_43_SOURCE := $(SRCDIR)/proc-macro2-1.0.43.crate
+WEBSOCAT_PARTS += WEBSOCAT_PROC_MACRO2_1_0_43
+
+WEBSOCAT_PROMETHEUS_0_13_2_MD5 := 3956c4b6b2de601a9b86a7bf9cf57eeb
+WEBSOCAT_PROMETHEUS_0_13_2_URL := https://crates.io/api/v1/crates/prometheus/0.13.2/download
+WEBSOCAT_PROMETHEUS_0_13_2_SOURCE := $(SRCDIR)/prometheus-0.13.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_PROMETHEUS_0_13_2
+
+WEBSOCAT_PROMETHEUS_METRIC_STORAGE_0_5_0_MD5 := aa527f2aaa77030ca61460fba55ed779
+WEBSOCAT_PROMETHEUS_METRIC_STORAGE_0_5_0_URL := https://crates.io/api/v1/crates/prometheus-metric-storage/0.5.0/download
+WEBSOCAT_PROMETHEUS_METRIC_STORAGE_0_5_0_SOURCE := $(SRCDIR)/prometheus-metric-storage-0.5.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_PROMETHEUS_METRIC_STORAGE_0_5_0
+
+WEBSOCAT_PROMETHEUS_METRIC_STORAGE_DERIVE_0_5_0_MD5 := 8f13a2424f72460f28dded2a3873a5be
+WEBSOCAT_PROMETHEUS_METRIC_STORAGE_DERIVE_0_5_0_URL := https://crates.io/api/v1/crates/prometheus-metric-storage-derive/0.5.0/download
+WEBSOCAT_PROMETHEUS_METRIC_STORAGE_DERIVE_0_5_0_SOURCE := $(SRCDIR)/prometheus-metric-storage-derive-0.5.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_PROMETHEUS_METRIC_STORAGE_DERIVE_0_5_0
+
+WEBSOCAT_QUOTE_0_6_13_MD5 := e6692d52f35aa3b9311d7d7748fa25ea
+WEBSOCAT_QUOTE_0_6_13_URL := https://crates.io/api/v1/crates/quote/0.6.13/download
+WEBSOCAT_QUOTE_0_6_13_SOURCE := $(SRCDIR)/quote-0.6.13.crate
+WEBSOCAT_PARTS += WEBSOCAT_QUOTE_0_6_13
+
+WEBSOCAT_QUOTE_1_0_21_MD5 := 1de20a0fc1cfdf5e332cbdb2e0899a2b
+WEBSOCAT_QUOTE_1_0_21_URL := https://crates.io/api/v1/crates/quote/1.0.21/download
+WEBSOCAT_QUOTE_1_0_21_SOURCE := $(SRCDIR)/quote-1.0.21.crate
+WEBSOCAT_PARTS += WEBSOCAT_QUOTE_1_0_21
+
+WEBSOCAT_RAND_0_6_5_MD5 := 793627c8c18012ad77cb3e81fa4c2195
+WEBSOCAT_RAND_0_6_5_URL := https://crates.io/api/v1/crates/rand/0.6.5/download
+WEBSOCAT_RAND_0_6_5_SOURCE := $(SRCDIR)/rand-0.6.5.crate
+WEBSOCAT_PARTS += WEBSOCAT_RAND_0_6_5
+
+WEBSOCAT_RAND_0_8_5_MD5 := ee7a5f842c39bc47c474196e83b0df5f
+WEBSOCAT_RAND_0_8_5_URL := https://crates.io/api/v1/crates/rand/0.8.5/download
+WEBSOCAT_RAND_0_8_5_SOURCE := $(SRCDIR)/rand-0.8.5.crate
+WEBSOCAT_PARTS += WEBSOCAT_RAND_0_8_5
+
+WEBSOCAT_RAND_CHACHA_0_1_1_MD5 := 3ab5a79607a4d260bf61cd99dc82ab05
+WEBSOCAT_RAND_CHACHA_0_1_1_URL := https://crates.io/api/v1/crates/rand_chacha/0.1.1/download
+WEBSOCAT_RAND_CHACHA_0_1_1_SOURCE := $(SRCDIR)/rand_chacha-0.1.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_RAND_CHACHA_0_1_1
+
+WEBSOCAT_RAND_CHACHA_0_3_1_MD5 := e30085994bbeb4b7f4895d48216d5476
+WEBSOCAT_RAND_CHACHA_0_3_1_URL := https://crates.io/api/v1/crates/rand_chacha/0.3.1/download
+WEBSOCAT_RAND_CHACHA_0_3_1_SOURCE := $(SRCDIR)/rand_chacha-0.3.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_RAND_CHACHA_0_3_1
+
+WEBSOCAT_RAND_CORE_0_3_1_MD5 := 8cab41822d03dfa674870315308fa392
+WEBSOCAT_RAND_CORE_0_3_1_URL := https://crates.io/api/v1/crates/rand_core/0.3.1/download
+WEBSOCAT_RAND_CORE_0_3_1_SOURCE := $(SRCDIR)/rand_core-0.3.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_RAND_CORE_0_3_1
+
+WEBSOCAT_RAND_CORE_0_4_2_MD5 := 35ddcd36701a1a6711cc3aec85909f41
+WEBSOCAT_RAND_CORE_0_4_2_URL := https://crates.io/api/v1/crates/rand_core/0.4.2/download
+WEBSOCAT_RAND_CORE_0_4_2_SOURCE := $(SRCDIR)/rand_core-0.4.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_RAND_CORE_0_4_2
+
+WEBSOCAT_RAND_CORE_0_6_4_MD5 := a1626b8f4d165b1b60d960862eba4cf0
+WEBSOCAT_RAND_CORE_0_6_4_URL := https://crates.io/api/v1/crates/rand_core/0.6.4/download
+WEBSOCAT_RAND_CORE_0_6_4_SOURCE := $(SRCDIR)/rand_core-0.6.4.crate
+WEBSOCAT_PARTS += WEBSOCAT_RAND_CORE_0_6_4
+
+WEBSOCAT_RAND_HC_0_1_0_MD5 := 28b1e6d15e1ba8cf3a2e953ce7fcd3de
+WEBSOCAT_RAND_HC_0_1_0_URL := https://crates.io/api/v1/crates/rand_hc/0.1.0/download
+WEBSOCAT_RAND_HC_0_1_0_SOURCE := $(SRCDIR)/rand_hc-0.1.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_RAND_HC_0_1_0
+
+WEBSOCAT_RAND_ISAAC_0_1_1_MD5 := 74b15f1928431937f14ed91fdc12b542
+WEBSOCAT_RAND_ISAAC_0_1_1_URL := https://crates.io/api/v1/crates/rand_isaac/0.1.1/download
+WEBSOCAT_RAND_ISAAC_0_1_1_SOURCE := $(SRCDIR)/rand_isaac-0.1.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_RAND_ISAAC_0_1_1
+
+WEBSOCAT_RAND_JITTER_0_1_4_MD5 := 2255d3d9a603e177985602a7df1c5bbc
+WEBSOCAT_RAND_JITTER_0_1_4_URL := https://crates.io/api/v1/crates/rand_jitter/0.1.4/download
+WEBSOCAT_RAND_JITTER_0_1_4_SOURCE := $(SRCDIR)/rand_jitter-0.1.4.crate
+WEBSOCAT_PARTS += WEBSOCAT_RAND_JITTER_0_1_4
+
+WEBSOCAT_RAND_OS_0_1_3_MD5 := 5acfdc8656212bce8df1bcc43db34c3d
+WEBSOCAT_RAND_OS_0_1_3_URL := https://crates.io/api/v1/crates/rand_os/0.1.3/download
+WEBSOCAT_RAND_OS_0_1_3_SOURCE := $(SRCDIR)/rand_os-0.1.3.crate
+WEBSOCAT_PARTS += WEBSOCAT_RAND_OS_0_1_3
+
+WEBSOCAT_RAND_PCG_0_1_2_MD5 := f9e08a49715c401602243230b28d86f0
+WEBSOCAT_RAND_PCG_0_1_2_URL := https://crates.io/api/v1/crates/rand_pcg/0.1.2/download
+WEBSOCAT_RAND_PCG_0_1_2_SOURCE := $(SRCDIR)/rand_pcg-0.1.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_RAND_PCG_0_1_2
+
+WEBSOCAT_RAND_XORSHIFT_0_1_1_MD5 := 7826deb76941fc36c2391951bd65ba47
+WEBSOCAT_RAND_XORSHIFT_0_1_1_URL := https://crates.io/api/v1/crates/rand_xorshift/0.1.1/download
+WEBSOCAT_RAND_XORSHIFT_0_1_1_SOURCE := $(SRCDIR)/rand_xorshift-0.1.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_RAND_XORSHIFT_0_1_1
+
+WEBSOCAT_RDRAND_0_4_0_MD5 := c8d655d206cbe48b84a22544d6fc6d15
+WEBSOCAT_RDRAND_0_4_0_URL := https://crates.io/api/v1/crates/rdrand/0.4.0/download
+WEBSOCAT_RDRAND_0_4_0_SOURCE := $(SRCDIR)/rdrand-0.4.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_RDRAND_0_4_0
+
+WEBSOCAT_READWRITE_0_1_2_MD5 := 726d171356fe358b6b0a777b2e1525c0
+WEBSOCAT_READWRITE_0_1_2_URL := https://crates.io/api/v1/crates/readwrite/0.1.2/download
+WEBSOCAT_READWRITE_0_1_2_SOURCE := $(SRCDIR)/readwrite-0.1.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_READWRITE_0_1_2
+
+WEBSOCAT_REDOX_SYSCALL_0_1_57_MD5 := 3cc3a4bd5861ca93d7c0d19129334703
+WEBSOCAT_REDOX_SYSCALL_0_1_57_URL := https://crates.io/api/v1/crates/redox_syscall/0.1.57/download
+WEBSOCAT_REDOX_SYSCALL_0_1_57_SOURCE := $(SRCDIR)/redox_syscall-0.1.57.crate
+WEBSOCAT_PARTS += WEBSOCAT_REDOX_SYSCALL_0_1_57
+
+WEBSOCAT_REDOX_SYSCALL_0_2_16_MD5 := 16111f31a29feae4ce4a324b83dc0189
+WEBSOCAT_REDOX_SYSCALL_0_2_16_URL := https://crates.io/api/v1/crates/redox_syscall/0.2.16/download
+WEBSOCAT_REDOX_SYSCALL_0_2_16_SOURCE := $(SRCDIR)/redox_syscall-0.2.16.crate
+WEBSOCAT_PARTS += WEBSOCAT_REDOX_SYSCALL_0_2_16
+
+WEBSOCAT_REMOVE_DIR_ALL_0_5_3_MD5 := 0538d1da369f3e3f0412aa4d735c1b61
+WEBSOCAT_REMOVE_DIR_ALL_0_5_3_URL := https://crates.io/api/v1/crates/remove_dir_all/0.5.3/download
+WEBSOCAT_REMOVE_DIR_ALL_0_5_3_SOURCE := $(SRCDIR)/remove_dir_all-0.5.3.crate
+WEBSOCAT_PARTS += WEBSOCAT_REMOVE_DIR_ALL_0_5_3
+
+WEBSOCAT_RUSTC_VERSION_0_2_3_MD5 := 4d101ab24d14c54937c5f45ece8fad5f
+WEBSOCAT_RUSTC_VERSION_0_2_3_URL := https://crates.io/api/v1/crates/rustc_version/0.2.3/download
+WEBSOCAT_RUSTC_VERSION_0_2_3_SOURCE := $(SRCDIR)/rustc_version-0.2.3.crate
+WEBSOCAT_PARTS += WEBSOCAT_RUSTC_VERSION_0_2_3
+
+WEBSOCAT_SAFEMEM_0_3_3_MD5 := 994b165f971ecfc09dc13fca8d394691
+WEBSOCAT_SAFEMEM_0_3_3_URL := https://crates.io/api/v1/crates/safemem/0.3.3/download
+WEBSOCAT_SAFEMEM_0_3_3_SOURCE := $(SRCDIR)/safemem-0.3.3.crate
+WEBSOCAT_PARTS += WEBSOCAT_SAFEMEM_0_3_3
+
+WEBSOCAT_SCHANNEL_0_1_20_MD5 := 47a2e9a3f22a0199c7f8292f43d5fa3d
+WEBSOCAT_SCHANNEL_0_1_20_URL := https://crates.io/api/v1/crates/schannel/0.1.20/download
+WEBSOCAT_SCHANNEL_0_1_20_SOURCE := $(SRCDIR)/schannel-0.1.20.crate
+WEBSOCAT_PARTS += WEBSOCAT_SCHANNEL_0_1_20
+
+WEBSOCAT_SCOPEGUARD_1_1_0_MD5 := b4a0a98a54439a5a37952c8879187ee3
+WEBSOCAT_SCOPEGUARD_1_1_0_URL := https://crates.io/api/v1/crates/scopeguard/1.1.0/download
+WEBSOCAT_SCOPEGUARD_1_1_0_SOURCE := $(SRCDIR)/scopeguard-1.1.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_SCOPEGUARD_1_1_0
+
+WEBSOCAT_SECURITY_FRAMEWORK_2_7_0_MD5 := e09ebca0be86b1f613bdec7f95cad8d7
+WEBSOCAT_SECURITY_FRAMEWORK_2_7_0_URL := https://crates.io/api/v1/crates/security-framework/2.7.0/download
+WEBSOCAT_SECURITY_FRAMEWORK_2_7_0_SOURCE := $(SRCDIR)/security-framework-2.7.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_SECURITY_FRAMEWORK_2_7_0
+
+WEBSOCAT_SECURITY_FRAMEWORK_SYS_2_6_1_MD5 := ffbaf84e19c894443b584605e668b6ea
+WEBSOCAT_SECURITY_FRAMEWORK_SYS_2_6_1_URL := https://crates.io/api/v1/crates/security-framework-sys/2.6.1/download
+WEBSOCAT_SECURITY_FRAMEWORK_SYS_2_6_1_SOURCE := $(SRCDIR)/security-framework-sys-2.6.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_SECURITY_FRAMEWORK_SYS_2_6_1
+
+WEBSOCAT_SEMVER_0_9_0_MD5 := 64111c20b69aa1532fb66b70c4660b55
+WEBSOCAT_SEMVER_0_9_0_URL := https://crates.io/api/v1/crates/semver/0.9.0/download
+WEBSOCAT_SEMVER_0_9_0_SOURCE := $(SRCDIR)/semver-0.9.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_SEMVER_0_9_0
+
+WEBSOCAT_SEMVER_PARSER_0_7_0_MD5 := 8b4d8c7b6e3a060d365bc1ad650929fa
+WEBSOCAT_SEMVER_PARSER_0_7_0_URL := https://crates.io/api/v1/crates/semver-parser/0.7.0/download
+WEBSOCAT_SEMVER_PARSER_0_7_0_SOURCE := $(SRCDIR)/semver-parser-0.7.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_SEMVER_PARSER_0_7_0
+
+WEBSOCAT_SHA_1_0_8_2_MD5 := b1cace2e0c87bbbf5753996e28016787
+WEBSOCAT_SHA_1_0_8_2_URL := https://crates.io/api/v1/crates/sha-1/0.8.2/download
+WEBSOCAT_SHA_1_0_8_2_SOURCE := $(SRCDIR)/sha-1-0.8.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_SHA_1_0_8_2
+
+WEBSOCAT_SIGNAL_HOOK_REGISTRY_1_4_0_MD5 := 21b43d5721b3a9c16059acb691f4314d
+WEBSOCAT_SIGNAL_HOOK_REGISTRY_1_4_0_URL := https://crates.io/api/v1/crates/signal-hook-registry/1.4.0/download
+WEBSOCAT_SIGNAL_HOOK_REGISTRY_1_4_0_SOURCE := $(SRCDIR)/signal-hook-registry-1.4.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_SIGNAL_HOOK_REGISTRY_1_4_0
+
+WEBSOCAT_SLAB_0_4_7_MD5 := 9b7ebf6b588afaad70bf48a742973a30
+WEBSOCAT_SLAB_0_4_7_URL := https://crates.io/api/v1/crates/slab/0.4.7/download
+WEBSOCAT_SLAB_0_4_7_SOURCE := $(SRCDIR)/slab-0.4.7.crate
+WEBSOCAT_PARTS += WEBSOCAT_SLAB_0_4_7
+
+WEBSOCAT_SLAB_TYPESAFE_0_1_3_MD5 := 1a13596ea648f42a9ef124c502e60bc7
+WEBSOCAT_SLAB_TYPESAFE_0_1_3_URL := https://crates.io/api/v1/crates/slab_typesafe/0.1.3/download
+WEBSOCAT_SLAB_TYPESAFE_0_1_3_SOURCE := $(SRCDIR)/slab_typesafe-0.1.3.crate
+WEBSOCAT_PARTS += WEBSOCAT_SLAB_TYPESAFE_0_1_3
+
+WEBSOCAT_SMALLVEC_0_6_14_MD5 := e87ae057c34483e359e8de3e5f9dfbd5
+WEBSOCAT_SMALLVEC_0_6_14_URL := https://crates.io/api/v1/crates/smallvec/0.6.14/download
+WEBSOCAT_SMALLVEC_0_6_14_SOURCE := $(SRCDIR)/smallvec-0.6.14.crate
+WEBSOCAT_PARTS += WEBSOCAT_SMALLVEC_0_6_14
+
+WEBSOCAT_SMALLVEC_1_9_0_MD5 := f087a0412ec128b8a1a19460ae7aaf7a
+WEBSOCAT_SMALLVEC_1_9_0_URL := https://crates.io/api/v1/crates/smallvec/1.9.0/download
+WEBSOCAT_SMALLVEC_1_9_0_SOURCE := $(SRCDIR)/smallvec-1.9.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_SMALLVEC_1_9_0
+
+WEBSOCAT_SMART_DEFAULT_0_3_0_MD5 := a7a9f63158ec1ceb6456a386bcef44aa
+WEBSOCAT_SMART_DEFAULT_0_3_0_URL := https://crates.io/api/v1/crates/smart-default/0.3.0/download
+WEBSOCAT_SMART_DEFAULT_0_3_0_SOURCE := $(SRCDIR)/smart-default-0.3.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_SMART_DEFAULT_0_3_0
+
+WEBSOCAT_STRUCTOPT_0_2_16_MD5 := 1f42aab04908d63f65a54f24da851def
+WEBSOCAT_STRUCTOPT_0_2_16_URL := https://crates.io/api/v1/crates/structopt/0.2.16/download
+WEBSOCAT_STRUCTOPT_0_2_16_SOURCE := $(SRCDIR)/structopt-0.2.16.crate
+WEBSOCAT_PARTS += WEBSOCAT_STRUCTOPT_0_2_16
+
+WEBSOCAT_STRUCTOPT_DERIVE_0_2_16_MD5 := e5f9df6748867a7046ae07b0e3e1d269
+WEBSOCAT_STRUCTOPT_DERIVE_0_2_16_URL := https://crates.io/api/v1/crates/structopt-derive/0.2.16/download
+WEBSOCAT_STRUCTOPT_DERIVE_0_2_16_SOURCE := $(SRCDIR)/structopt-derive-0.2.16.crate
+WEBSOCAT_PARTS += WEBSOCAT_STRUCTOPT_DERIVE_0_2_16
+
+WEBSOCAT_SUBTLE_2_4_1_MD5 := 8e053c23f1d36fbf3f276fbf501e3e35
+WEBSOCAT_SUBTLE_2_4_1_URL := https://crates.io/api/v1/crates/subtle/2.4.1/download
+WEBSOCAT_SUBTLE_2_4_1_SOURCE := $(SRCDIR)/subtle-2.4.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_SUBTLE_2_4_1
+
+WEBSOCAT_SYN_0_15_44_MD5 := 340f92fe45f0eb5766d679252e9acc42
+WEBSOCAT_SYN_0_15_44_URL := https://crates.io/api/v1/crates/syn/0.15.44/download
+WEBSOCAT_SYN_0_15_44_SOURCE := $(SRCDIR)/syn-0.15.44.crate
+WEBSOCAT_PARTS += WEBSOCAT_SYN_0_15_44
+
+WEBSOCAT_SYN_1_0_100_MD5 := cddbff9be83065516f12138e8d2d5095
+WEBSOCAT_SYN_1_0_100_URL := https://crates.io/api/v1/crates/syn/1.0.100/download
+WEBSOCAT_SYN_1_0_100_SOURCE := $(SRCDIR)/syn-1.0.100.crate
+WEBSOCAT_PARTS += WEBSOCAT_SYN_1_0_100
+
+WEBSOCAT_TEMPFILE_3_3_0_MD5 := f29a1bb1b5f3f29cedb36f40f720d765
+WEBSOCAT_TEMPFILE_3_3_0_URL := https://crates.io/api/v1/crates/tempfile/3.3.0/download
+WEBSOCAT_TEMPFILE_3_3_0_SOURCE := $(SRCDIR)/tempfile-3.3.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_TEMPFILE_3_3_0
+
+WEBSOCAT_TEXTWRAP_0_11_0_MD5 := a8de006fe0c7e373c560dd51599287a8
+WEBSOCAT_TEXTWRAP_0_11_0_URL := https://crates.io/api/v1/crates/textwrap/0.11.0/download
+WEBSOCAT_TEXTWRAP_0_11_0_SOURCE := $(SRCDIR)/textwrap-0.11.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_TEXTWRAP_0_11_0
+
+WEBSOCAT_THISERROR_1_0_35_MD5 := 3386986ecf2cfe5e6d210db1d2e9d9ea
+WEBSOCAT_THISERROR_1_0_35_URL := https://crates.io/api/v1/crates/thiserror/1.0.35/download
+WEBSOCAT_THISERROR_1_0_35_SOURCE := $(SRCDIR)/thiserror-1.0.35.crate
+WEBSOCAT_PARTS += WEBSOCAT_THISERROR_1_0_35
+
+WEBSOCAT_THISERROR_IMPL_1_0_35_MD5 := 850a2dd55b65666097104c1ed76b6c53
+WEBSOCAT_THISERROR_IMPL_1_0_35_URL := https://crates.io/api/v1/crates/thiserror-impl/1.0.35/download
+WEBSOCAT_THISERROR_IMPL_1_0_35_SOURCE := $(SRCDIR)/thiserror-impl-1.0.35.crate
+WEBSOCAT_PARTS += WEBSOCAT_THISERROR_IMPL_1_0_35
+
+WEBSOCAT_TIME_0_1_44_MD5 := c6c50e4feea5f4cc4e1fb3c7e88606a5
+WEBSOCAT_TIME_0_1_44_URL := https://crates.io/api/v1/crates/time/0.1.44/download
+WEBSOCAT_TIME_0_1_44_SOURCE := $(SRCDIR)/time-0.1.44.crate
+WEBSOCAT_PARTS += WEBSOCAT_TIME_0_1_44
+
+WEBSOCAT_TINYVEC_1_6_0_MD5 := 5f0470696baaa4e5953bddbf196998f9
+WEBSOCAT_TINYVEC_1_6_0_URL := https://crates.io/api/v1/crates/tinyvec/1.6.0/download
+WEBSOCAT_TINYVEC_1_6_0_SOURCE := $(SRCDIR)/tinyvec-1.6.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_TINYVEC_1_6_0
+
+WEBSOCAT_TINYVEC_MACROS_0_1_0_MD5 := 7bfcad253aff26bc26c5e3521f3ba891
+WEBSOCAT_TINYVEC_MACROS_0_1_0_URL := https://crates.io/api/v1/crates/tinyvec_macros/0.1.0/download
+WEBSOCAT_TINYVEC_MACROS_0_1_0_SOURCE := $(SRCDIR)/tinyvec_macros-0.1.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_TINYVEC_MACROS_0_1_0
+
+WEBSOCAT_TK_LISTEN_0_2_1_MD5 := c853f885486f785b964849c7a76fec78
+WEBSOCAT_TK_LISTEN_0_2_1_URL := https://crates.io/api/v1/crates/tk-listen/0.2.1/download
+WEBSOCAT_TK_LISTEN_0_2_1_SOURCE := $(SRCDIR)/tk-listen-0.2.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_TK_LISTEN_0_2_1
+
+WEBSOCAT_TOKIO_0_1_22_MD5 := b521ad2ed1e1ac7384af8ca3faa2967e
+WEBSOCAT_TOKIO_0_1_22_URL := https://crates.io/api/v1/crates/tokio/0.1.22/download
+WEBSOCAT_TOKIO_0_1_22_SOURCE := $(SRCDIR)/tokio-0.1.22.crate
+WEBSOCAT_PARTS += WEBSOCAT_TOKIO_0_1_22
+
+WEBSOCAT_TOKIO_CODEC_0_1_2_MD5 := 81550da6fbe0dd33fec098a811476df6
+WEBSOCAT_TOKIO_CODEC_0_1_2_URL := https://crates.io/api/v1/crates/tokio-codec/0.1.2/download
+WEBSOCAT_TOKIO_CODEC_0_1_2_SOURCE := $(SRCDIR)/tokio-codec-0.1.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_TOKIO_CODEC_0_1_2
+
+WEBSOCAT_TOKIO_CURRENT_THREAD_0_1_7_MD5 := ea62c780602b6ee7f9698b6cb7c7ca75
+WEBSOCAT_TOKIO_CURRENT_THREAD_0_1_7_URL := https://crates.io/api/v1/crates/tokio-current-thread/0.1.7/download
+WEBSOCAT_TOKIO_CURRENT_THREAD_0_1_7_SOURCE := $(SRCDIR)/tokio-current-thread-0.1.7.crate
+WEBSOCAT_PARTS += WEBSOCAT_TOKIO_CURRENT_THREAD_0_1_7
+
+WEBSOCAT_TOKIO_EXECUTOR_0_1_10_MD5 := 231140a3fc27d3743bdf5709a11bf330
+WEBSOCAT_TOKIO_EXECUTOR_0_1_10_URL := https://crates.io/api/v1/crates/tokio-executor/0.1.10/download
+WEBSOCAT_TOKIO_EXECUTOR_0_1_10_SOURCE := $(SRCDIR)/tokio-executor-0.1.10.crate
+WEBSOCAT_PARTS += WEBSOCAT_TOKIO_EXECUTOR_0_1_10
+
+WEBSOCAT_TOKIO_FILE_UNIX_0_5_1_MD5 := 79994a1b66afcdec629d487e66cb06a9
+WEBSOCAT_TOKIO_FILE_UNIX_0_5_1_URL := https://crates.io/api/v1/crates/tokio-file-unix/0.5.1/download
+WEBSOCAT_TOKIO_FILE_UNIX_0_5_1_SOURCE := $(SRCDIR)/tokio-file-unix-0.5.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_TOKIO_FILE_UNIX_0_5_1
+
+WEBSOCAT_TOKIO_FS_0_1_7_MD5 := bf4481a8e4e42049b7540dd1ef478efd
+WEBSOCAT_TOKIO_FS_0_1_7_URL := https://crates.io/api/v1/crates/tokio-fs/0.1.7/download
+WEBSOCAT_TOKIO_FS_0_1_7_SOURCE := $(SRCDIR)/tokio-fs-0.1.7.crate
+WEBSOCAT_PARTS += WEBSOCAT_TOKIO_FS_0_1_7
+
+WEBSOCAT_TOKIO_IO_0_1_13_MD5 := 533cca06f326430afa78a186b0d9833c
+WEBSOCAT_TOKIO_IO_0_1_13_URL := https://crates.io/api/v1/crates/tokio-io/0.1.13/download
+WEBSOCAT_TOKIO_IO_0_1_13_SOURCE := $(SRCDIR)/tokio-io-0.1.13.crate
+WEBSOCAT_PARTS += WEBSOCAT_TOKIO_IO_0_1_13
+
+WEBSOCAT_TOKIO_NAMED_PIPES_0_1_0_MD5 := 030e252ec9eea53de036414ef6580637
+WEBSOCAT_TOKIO_NAMED_PIPES_0_1_0_URL := https://crates.io/api/v1/crates/tokio-named-pipes/0.1.0/download
+WEBSOCAT_TOKIO_NAMED_PIPES_0_1_0_SOURCE := $(SRCDIR)/tokio-named-pipes-0.1.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_TOKIO_NAMED_PIPES_0_1_0
+
+WEBSOCAT_TOKIO_PROCESS_0_2_5_MD5 := b6d0910d4987701952a79b0ba0b8a9a9
+WEBSOCAT_TOKIO_PROCESS_0_2_5_URL := https://crates.io/api/v1/crates/tokio-process/0.2.5/download
+WEBSOCAT_TOKIO_PROCESS_0_2_5_SOURCE := $(SRCDIR)/tokio-process-0.2.5.crate
+WEBSOCAT_PARTS += WEBSOCAT_TOKIO_PROCESS_0_2_5
+
+WEBSOCAT_TOKIO_REACTOR_0_1_12_MD5 := 9fa6cdac7b44df7983891dc0fb87fd83
+WEBSOCAT_TOKIO_REACTOR_0_1_12_URL := https://crates.io/api/v1/crates/tokio-reactor/0.1.12/download
+WEBSOCAT_TOKIO_REACTOR_0_1_12_SOURCE := $(SRCDIR)/tokio-reactor-0.1.12.crate
+WEBSOCAT_PARTS += WEBSOCAT_TOKIO_REACTOR_0_1_12
+
+WEBSOCAT_TOKIO_SIGNAL_0_2_9_MD5 := a9d9717d3cb72393bfb0bfdf8b15db1f
+WEBSOCAT_TOKIO_SIGNAL_0_2_9_URL := https://crates.io/api/v1/crates/tokio-signal/0.2.9/download
+WEBSOCAT_TOKIO_SIGNAL_0_2_9_SOURCE := $(SRCDIR)/tokio-signal-0.2.9.crate
+WEBSOCAT_PARTS += WEBSOCAT_TOKIO_SIGNAL_0_2_9
+
+WEBSOCAT_TOKIO_STDIN_STDOUT_0_1_5_MD5 := 036e8d45b21baa7fbb72656cd5e71ba1
+WEBSOCAT_TOKIO_STDIN_STDOUT_0_1_5_URL := https://crates.io/api/v1/crates/tokio-stdin-stdout/0.1.5/download
+WEBSOCAT_TOKIO_STDIN_STDOUT_0_1_5_SOURCE := $(SRCDIR)/tokio-stdin-stdout-0.1.5.crate
+WEBSOCAT_PARTS += WEBSOCAT_TOKIO_STDIN_STDOUT_0_1_5
+
+WEBSOCAT_TOKIO_SYNC_0_1_8_MD5 := aabc9eb293b82123f0223970184601e3
+WEBSOCAT_TOKIO_SYNC_0_1_8_URL := https://crates.io/api/v1/crates/tokio-sync/0.1.8/download
+WEBSOCAT_TOKIO_SYNC_0_1_8_SOURCE := $(SRCDIR)/tokio-sync-0.1.8.crate
+WEBSOCAT_PARTS += WEBSOCAT_TOKIO_SYNC_0_1_8
+
+WEBSOCAT_TOKIO_TCP_0_1_4_MD5 := 8a91e95192d3540845b244118b33f591
+WEBSOCAT_TOKIO_TCP_0_1_4_URL := https://crates.io/api/v1/crates/tokio-tcp/0.1.4/download
+WEBSOCAT_TOKIO_TCP_0_1_4_SOURCE := $(SRCDIR)/tokio-tcp-0.1.4.crate
+WEBSOCAT_PARTS += WEBSOCAT_TOKIO_TCP_0_1_4
+
+WEBSOCAT_TOKIO_THREADPOOL_0_1_18_MD5 := 309b8c8a38a188c3c878ab31f7b5008e
+WEBSOCAT_TOKIO_THREADPOOL_0_1_18_URL := https://crates.io/api/v1/crates/tokio-threadpool/0.1.18/download
+WEBSOCAT_TOKIO_THREADPOOL_0_1_18_SOURCE := $(SRCDIR)/tokio-threadpool-0.1.18.crate
+WEBSOCAT_PARTS += WEBSOCAT_TOKIO_THREADPOOL_0_1_18
+
+WEBSOCAT_TOKIO_TIMER_0_2_13_MD5 := 122f7f583ffc6ee551eb0259bf5340aa
+WEBSOCAT_TOKIO_TIMER_0_2_13_URL := https://crates.io/api/v1/crates/tokio-timer/0.2.13/download
+WEBSOCAT_TOKIO_TIMER_0_2_13_SOURCE := $(SRCDIR)/tokio-timer-0.2.13.crate
+WEBSOCAT_PARTS += WEBSOCAT_TOKIO_TIMER_0_2_13
+
+WEBSOCAT_TOKIO_TLS_0_2_1_MD5 := 93b0a3f6f09adde608f98ac4dd3e2dc6
+WEBSOCAT_TOKIO_TLS_0_2_1_URL := https://crates.io/api/v1/crates/tokio-tls/0.2.1/download
+WEBSOCAT_TOKIO_TLS_0_2_1_SOURCE := $(SRCDIR)/tokio-tls-0.2.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_TOKIO_TLS_0_2_1
+
+WEBSOCAT_TOKIO_UDP_0_1_6_MD5 := 58771e80a94984d9b0846dd621d49203
+WEBSOCAT_TOKIO_UDP_0_1_6_URL := https://crates.io/api/v1/crates/tokio-udp/0.1.6/download
+WEBSOCAT_TOKIO_UDP_0_1_6_SOURCE := $(SRCDIR)/tokio-udp-0.1.6.crate
+WEBSOCAT_PARTS += WEBSOCAT_TOKIO_UDP_0_1_6
+
+WEBSOCAT_TOKIO_UDS_0_2_7_MD5 := a09a9df0d8c8963982c2ddc4c7db26f7
+WEBSOCAT_TOKIO_UDS_0_2_7_URL := https://crates.io/api/v1/crates/tokio-uds/0.2.7/download
+WEBSOCAT_TOKIO_UDS_0_2_7_SOURCE := $(SRCDIR)/tokio-uds-0.2.7.crate
+WEBSOCAT_PARTS += WEBSOCAT_TOKIO_UDS_0_2_7
+
+WEBSOCAT_TRAITOBJECT_0_1_0_MD5 := 8a46d349db9c086cac033bcbe44a4e8c
+WEBSOCAT_TRAITOBJECT_0_1_0_URL := https://crates.io/api/v1/crates/traitobject/0.1.0/download
+WEBSOCAT_TRAITOBJECT_0_1_0_SOURCE := $(SRCDIR)/traitobject-0.1.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_TRAITOBJECT_0_1_0
+
+WEBSOCAT_TYPEABLE_0_1_2_MD5 := 389c8d5d19fa97981c8fff9416541391
+WEBSOCAT_TYPEABLE_0_1_2_URL := https://crates.io/api/v1/crates/typeable/0.1.2/download
+WEBSOCAT_TYPEABLE_0_1_2_SOURCE := $(SRCDIR)/typeable-0.1.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_TYPEABLE_0_1_2
+
+WEBSOCAT_TYPENUM_1_15_0_MD5 := 7b38b145ae3f6d7d09a1a7a98396f1a2
+WEBSOCAT_TYPENUM_1_15_0_URL := https://crates.io/api/v1/crates/typenum/1.15.0/download
+WEBSOCAT_TYPENUM_1_15_0_SOURCE := $(SRCDIR)/typenum-1.15.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_TYPENUM_1_15_0
+
+WEBSOCAT_UNICASE_1_4_2_MD5 := f316454c1928e03f6459d7eac04d2168
+WEBSOCAT_UNICASE_1_4_2_URL := https://crates.io/api/v1/crates/unicase/1.4.2/download
+WEBSOCAT_UNICASE_1_4_2_SOURCE := $(SRCDIR)/unicase-1.4.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_UNICASE_1_4_2
+
+WEBSOCAT_UNICODE_BIDI_0_3_8_MD5 := bd0cd532c61dac2087ecd7e0fef0d011
+WEBSOCAT_UNICODE_BIDI_0_3_8_URL := https://crates.io/api/v1/crates/unicode-bidi/0.3.8/download
+WEBSOCAT_UNICODE_BIDI_0_3_8_SOURCE := $(SRCDIR)/unicode-bidi-0.3.8.crate
+WEBSOCAT_PARTS += WEBSOCAT_UNICODE_BIDI_0_3_8
+
+WEBSOCAT_UNICODE_IDENT_1_0_4_MD5 := c12056f5fc11f0d69b92b1d1d4799c80
+WEBSOCAT_UNICODE_IDENT_1_0_4_URL := https://crates.io/api/v1/crates/unicode-ident/1.0.4/download
+WEBSOCAT_UNICODE_IDENT_1_0_4_SOURCE := $(SRCDIR)/unicode-ident-1.0.4.crate
+WEBSOCAT_PARTS += WEBSOCAT_UNICODE_IDENT_1_0_4
+
+WEBSOCAT_UNICODE_NORMALIZATION_0_1_22_MD5 := c12d182417999fc365f952e701f6071f
+WEBSOCAT_UNICODE_NORMALIZATION_0_1_22_URL := https://crates.io/api/v1/crates/unicode-normalization/0.1.22/download
+WEBSOCAT_UNICODE_NORMALIZATION_0_1_22_SOURCE := $(SRCDIR)/unicode-normalization-0.1.22.crate
+WEBSOCAT_PARTS += WEBSOCAT_UNICODE_NORMALIZATION_0_1_22
+
+WEBSOCAT_UNICODE_SEGMENTATION_1_10_0_MD5 := 1bee40619dc49044e9691164d7182a2a
+WEBSOCAT_UNICODE_SEGMENTATION_1_10_0_URL := https://crates.io/api/v1/crates/unicode-segmentation/1.10.0/download
+WEBSOCAT_UNICODE_SEGMENTATION_1_10_0_SOURCE := $(SRCDIR)/unicode-segmentation-1.10.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_UNICODE_SEGMENTATION_1_10_0
+
+WEBSOCAT_UNICODE_WIDTH_0_1_10_MD5 := 7d6d4fc9fad200d6e295f6930e97e022
+WEBSOCAT_UNICODE_WIDTH_0_1_10_URL := https://crates.io/api/v1/crates/unicode-width/0.1.10/download
+WEBSOCAT_UNICODE_WIDTH_0_1_10_SOURCE := $(SRCDIR)/unicode-width-0.1.10.crate
+WEBSOCAT_PARTS += WEBSOCAT_UNICODE_WIDTH_0_1_10
+
+WEBSOCAT_UNICODE_XID_0_1_0_MD5 := 5aaf04f9a94a6450e3e4963ddd62b92d
+WEBSOCAT_UNICODE_XID_0_1_0_URL := https://crates.io/api/v1/crates/unicode-xid/0.1.0/download
+WEBSOCAT_UNICODE_XID_0_1_0_SOURCE := $(SRCDIR)/unicode-xid-0.1.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_UNICODE_XID_0_1_0
+
+WEBSOCAT_UNIVERSAL_HASH_0_4_1_MD5 := ea24161ca337ad70c7eb0cd8980b83d4
+WEBSOCAT_UNIVERSAL_HASH_0_4_1_URL := https://crates.io/api/v1/crates/universal-hash/0.4.1/download
+WEBSOCAT_UNIVERSAL_HASH_0_4_1_SOURCE := $(SRCDIR)/universal-hash-0.4.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_UNIVERSAL_HASH_0_4_1
+
+WEBSOCAT_URL_1_7_2_MD5 := 32f0ced8a8881d2c0572b879bf15b91e
+WEBSOCAT_URL_1_7_2_URL := https://crates.io/api/v1/crates/url/1.7.2/download
+WEBSOCAT_URL_1_7_2_SOURCE := $(SRCDIR)/url-1.7.2.crate
+WEBSOCAT_PARTS += WEBSOCAT_URL_1_7_2
+
+WEBSOCAT_VCPKG_0_2_15_MD5 := e900a384ac7dbb320fe6a7279fbfef89
+WEBSOCAT_VCPKG_0_2_15_URL := https://crates.io/api/v1/crates/vcpkg/0.2.15/download
+WEBSOCAT_VCPKG_0_2_15_SOURCE := $(SRCDIR)/vcpkg-0.2.15.crate
+WEBSOCAT_PARTS += WEBSOCAT_VCPKG_0_2_15
+
+WEBSOCAT_VERSION_CHECK_0_1_5_MD5 := f48add3d6234e8b9829fa5364509f425
+WEBSOCAT_VERSION_CHECK_0_1_5_URL := https://crates.io/api/v1/crates/version_check/0.1.5/download
+WEBSOCAT_VERSION_CHECK_0_1_5_SOURCE := $(SRCDIR)/version_check-0.1.5.crate
+WEBSOCAT_PARTS += WEBSOCAT_VERSION_CHECK_0_1_5
+
+WEBSOCAT_VERSION_CHECK_0_9_4_MD5 := d18d362345c4fe512ef67b738b239fb8
+WEBSOCAT_VERSION_CHECK_0_9_4_URL := https://crates.io/api/v1/crates/version_check/0.9.4/download
+WEBSOCAT_VERSION_CHECK_0_9_4_SOURCE := $(SRCDIR)/version_check-0.9.4.crate
+WEBSOCAT_PARTS += WEBSOCAT_VERSION_CHECK_0_9_4
+
+WEBSOCAT_WASI_0_10_0_WASI_SNAPSHOT_PREVIEW1_MD5 := a312b55a428f827a91097d1d8497b02b
+WEBSOCAT_WASI_0_10_0_WASI_SNAPSHOT_PREVIEW1_URL := https://crates.io/api/v1/crates/wasi/0.10.0+wasi-snapshot-preview1/download
+WEBSOCAT_WASI_0_10_0_WASI_SNAPSHOT_PREVIEW1_SOURCE := $(SRCDIR)/wasi-0.10.0+wasi-snapshot-preview1.crate
+WEBSOCAT_PARTS += WEBSOCAT_WASI_0_10_0_WASI_SNAPSHOT_PREVIEW1
+
+WEBSOCAT_WASI_0_11_0_WASI_SNAPSHOT_PREVIEW1_MD5 := e972ea58ec203bfa6c79c1207852298b
+WEBSOCAT_WASI_0_11_0_WASI_SNAPSHOT_PREVIEW1_URL := https://crates.io/api/v1/crates/wasi/0.11.0+wasi-snapshot-preview1/download
+WEBSOCAT_WASI_0_11_0_WASI_SNAPSHOT_PREVIEW1_SOURCE := $(SRCDIR)/wasi-0.11.0+wasi-snapshot-preview1.crate
+WEBSOCAT_PARTS += WEBSOCAT_WASI_0_11_0_WASI_SNAPSHOT_PREVIEW1
+
+WEBSOCAT_WEBSOCKET_0_26_5_MD5 := 5fc12209dee8d7de350a1dd5eb1b54b5
+WEBSOCAT_WEBSOCKET_0_26_5_URL := https://crates.io/api/v1/crates/websocket/0.26.5/download
+WEBSOCAT_WEBSOCKET_0_26_5_SOURCE := $(SRCDIR)/websocket-0.26.5.crate
+WEBSOCAT_PARTS += WEBSOCAT_WEBSOCKET_0_26_5
+
+WEBSOCAT_WEBSOCKET_BASE_0_26_5_MD5 := 22afd66095bf3c9a8ece5f3f2fb3e52c
+WEBSOCAT_WEBSOCKET_BASE_0_26_5_URL := https://crates.io/api/v1/crates/websocket-base/0.26.5/download
+WEBSOCAT_WEBSOCKET_BASE_0_26_5_SOURCE := $(SRCDIR)/websocket-base-0.26.5.crate
+WEBSOCAT_PARTS += WEBSOCAT_WEBSOCKET_BASE_0_26_5
+
+WEBSOCAT_WINAPI_0_2_8_MD5 := b44489eb4799c4fabac3fceb48de54f7
+WEBSOCAT_WINAPI_0_2_8_URL := https://crates.io/api/v1/crates/winapi/0.2.8/download
+WEBSOCAT_WINAPI_0_2_8_SOURCE := $(SRCDIR)/winapi-0.2.8.crate
+WEBSOCAT_PARTS += WEBSOCAT_WINAPI_0_2_8
+
+WEBSOCAT_WINAPI_0_3_9_MD5 := 0498c4a11448bfc35dc7bb2caa64c753
+WEBSOCAT_WINAPI_0_3_9_URL := https://crates.io/api/v1/crates/winapi/0.3.9/download
+WEBSOCAT_WINAPI_0_3_9_SOURCE := $(SRCDIR)/winapi-0.3.9.crate
+WEBSOCAT_PARTS += WEBSOCAT_WINAPI_0_3_9
+
+WEBSOCAT_WINAPI_BUILD_0_1_1_MD5 := c900e7dbce808ff8ced375077b17a163
+WEBSOCAT_WINAPI_BUILD_0_1_1_URL := https://crates.io/api/v1/crates/winapi-build/0.1.1/download
+WEBSOCAT_WINAPI_BUILD_0_1_1_SOURCE := $(SRCDIR)/winapi-build-0.1.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_WINAPI_BUILD_0_1_1
+
+WEBSOCAT_WINAPI_I686_PC_WINDOWS_GNU_0_4_0_MD5 := db96b50050277bf05a3c68534bbb9586
+WEBSOCAT_WINAPI_I686_PC_WINDOWS_GNU_0_4_0_URL := https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download
+WEBSOCAT_WINAPI_I686_PC_WINDOWS_GNU_0_4_0_SOURCE := $(SRCDIR)/winapi-i686-pc-windows-gnu-0.4.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_WINAPI_I686_PC_WINDOWS_GNU_0_4_0
+
+WEBSOCAT_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0_MD5 := 09de9d01e7331ff3da11f58be8bef0df
+WEBSOCAT_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0_URL := https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download
+WEBSOCAT_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0_SOURCE := $(SRCDIR)/winapi-x86_64-pc-windows-gnu-0.4.0.crate
+WEBSOCAT_PARTS += WEBSOCAT_WINAPI_X86_64_PC_WINDOWS_GNU_0_4_0
+
+WEBSOCAT_WINDOWS_SYS_0_36_1_MD5 := b3083009944ab58cbd9c4941f4965545
+WEBSOCAT_WINDOWS_SYS_0_36_1_URL := https://crates.io/api/v1/crates/windows-sys/0.36.1/download
+WEBSOCAT_WINDOWS_SYS_0_36_1_SOURCE := $(SRCDIR)/windows-sys-0.36.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_WINDOWS_SYS_0_36_1
+
+WEBSOCAT_WINDOWS_AARCH64_MSVC_0_36_1_MD5 := 776128629d743f0d6127db259a0d8844
+WEBSOCAT_WINDOWS_AARCH64_MSVC_0_36_1_URL := https://crates.io/api/v1/crates/windows_aarch64_msvc/0.36.1/download
+WEBSOCAT_WINDOWS_AARCH64_MSVC_0_36_1_SOURCE := $(SRCDIR)/windows_aarch64_msvc-0.36.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_WINDOWS_AARCH64_MSVC_0_36_1
+
+WEBSOCAT_WINDOWS_I686_GNU_0_36_1_MD5 := 7f60b76e78bd2a190cf3ddc2b4c4920b
+WEBSOCAT_WINDOWS_I686_GNU_0_36_1_URL := https://crates.io/api/v1/crates/windows_i686_gnu/0.36.1/download
+WEBSOCAT_WINDOWS_I686_GNU_0_36_1_SOURCE := $(SRCDIR)/windows_i686_gnu-0.36.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_WINDOWS_I686_GNU_0_36_1
+
+WEBSOCAT_WINDOWS_I686_MSVC_0_36_1_MD5 := ce798410cba61fe713f3487cd6cafef4
+WEBSOCAT_WINDOWS_I686_MSVC_0_36_1_URL := https://crates.io/api/v1/crates/windows_i686_msvc/0.36.1/download
+WEBSOCAT_WINDOWS_I686_MSVC_0_36_1_SOURCE := $(SRCDIR)/windows_i686_msvc-0.36.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_WINDOWS_I686_MSVC_0_36_1
+
+WEBSOCAT_WINDOWS_X86_64_GNU_0_36_1_MD5 := f55176d04297df9dd5ccae7c748e26c7
+WEBSOCAT_WINDOWS_X86_64_GNU_0_36_1_URL := https://crates.io/api/v1/crates/windows_x86_64_gnu/0.36.1/download
+WEBSOCAT_WINDOWS_X86_64_GNU_0_36_1_SOURCE := $(SRCDIR)/windows_x86_64_gnu-0.36.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_WINDOWS_X86_64_GNU_0_36_1
+
+WEBSOCAT_WINDOWS_X86_64_MSVC_0_36_1_MD5 := 8e285ddee403a9abe62d6fe2bfbb736a
+WEBSOCAT_WINDOWS_X86_64_MSVC_0_36_1_URL := https://crates.io/api/v1/crates/windows_x86_64_msvc/0.36.1/download
+WEBSOCAT_WINDOWS_X86_64_MSVC_0_36_1_SOURCE := $(SRCDIR)/windows_x86_64_msvc-0.36.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_WINDOWS_X86_64_MSVC_0_36_1
+
+WEBSOCAT_WS2_32_SYS_0_2_1_MD5 := 38346bab0933c9eb1e36d22fe4220ba7
+WEBSOCAT_WS2_32_SYS_0_2_1_URL := https://crates.io/api/v1/crates/ws2_32-sys/0.2.1/download
+WEBSOCAT_WS2_32_SYS_0_2_1_SOURCE := $(SRCDIR)/ws2_32-sys-0.2.1.crate
+WEBSOCAT_PARTS += WEBSOCAT_WS2_32_SYS_0_2_1
+
+WEBSOCAT_ZEROIZE_1_5_7_MD5 := a72e719c29bea6a044b0ff01cad88cfb
+WEBSOCAT_ZEROIZE_1_5_7_URL := https://crates.io/api/v1/crates/zeroize/1.5.7/download
+WEBSOCAT_ZEROIZE_1_5_7_SOURCE := $(SRCDIR)/zeroize-1.5.7.crate
+WEBSOCAT_PARTS += WEBSOCAT_ZEROIZE_1_5_7
+
+
+# vim: syntax=make
diff --git a/rules/websocat.in b/rules/websocat.in
new file mode 100644
index 000000000..9bc7a5d57
--- /dev/null
+++ b/rules/websocat.in
@@ -0,0 +1,8 @@
+## SECTION=networking
+
+config WEBSOCAT
+ tristate
+ prompt "websocat"
+ select OPENSSL
+ help
+ Netcat, curl and socat for WebSockets
diff --git a/rules/websocat.make b/rules/websocat.make
new file mode 100644
index 000000000..3dab7a081
--- /dev/null
+++ b/rules/websocat.make
@@ -0,0 +1,62 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2023 by Jon Ringle <jringle@gridpoint.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_WEBSOCAT) += websocat
+
+#
+# Paths and names
+#
+WEBSOCAT_VERSION := 1.11.0
+WEBSOCAT_MD5 := 2a43004dc1c256119089994b5ddb414b
+WEBSOCAT := websocat-$(WEBSOCAT_VERSION)
+WEBSOCAT_SUFFIX := tar.gz
+WEBSOCAT_URL := https://github.com/vi/websocat/archive/refs/tags/v${WEBSOCAT_VERSION}.$(WEBSOCAT_SUFFIX)
+WEBSOCAT_SOURCE := $(SRCDIR)/$(WEBSOCAT).$(WEBSOCAT_SUFFIX)
+WEBSOCAT_DIR := $(BUILDDIR)/$(WEBSOCAT)
+WEBSOCAT_LICENSE := MIT AND unknown
+WEBSOCAT_LICENSE_FILES := file://LICENSE;md5=b0249af598633524d7f0cb5b558c832c
+
+WEBSOCAT_CONF_TOOL := cargo
+WEBSOCAT_CONF_OPT := \
+ $(CROSS_CARGO_OPT) \
+ --features=ssl
+
+WEBSOCAT_MAKE_ENV := \
+ $(CROSS_CARGO_ENV) \
+ PKG_CONFIG_SYSROOT_DIR=/. \
+
+$(STATEDIR)/websocat.install:
+ @$(call targetinfo)
+ @$(call world/execute, WEBSOCAT, \
+ install -v -m755 -t $(WEBSOCAT_PKGDIR)/bin \
+ $(WEBSOCAT_DIR)/target/$(PTXCONF_RUST_TARGET)/release/websocat)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/websocat.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, websocat)
+ @$(call install_fixup, websocat, PRIORITY, optional)
+ @$(call install_fixup, websocat, SECTION, base)
+ @$(call install_fixup, websocat, AUTHOR, "Jon Ringle <jringle@gridpoint.com>")
+ @$(call install_fixup, websocat, DESCRIPTION, missing)
+
+ @$(call install_copy, websocat, 0, 0, 0755, -, /bin/websocat)
+
+ @$(call install_finish, websocat)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/weston.in b/rules/weston.in
index 0005ca1c3..10f0e9172 100644
--- a/rules/weston.in
+++ b/rules/weston.in
@@ -13,24 +13,21 @@ menuconfig WESTON
select LIBINPUT
select CAIRO
select CAIRO_PNG
- select LIBDRM if WESTON_DRM_COMPOSITOR || BUILDTIME
- select UDEV if WESTON_DRM_COMPOSITOR || WESTON_FBDEV_COMPOSITOR
- select UDEV_LIBUDEV if WESTON_DRM_COMPOSITOR || WESTON_FBDEV_COMPOSITOR
+ select LIBDRM
+ select UDEV
+ select UDEV_LIBUDEV
+ select SEATD
select MESALIB if WESTON_GL
- select MESALIB_GBM if WESTON_DRM_COMPOSITOR && WESTON_GL
+ select MESALIB_GBM if WESTON_GL
select MESALIB_EGL if WESTON_GL
select MESALIB_EGL_WAYLAND if WESTON_GL
select MESALIB_GLES2 if WESTON_GL
- select CAIRO_GLES2 if WESTON_GL
- select CAIRO_EGL if WESTON_GL
+ select XORG if WESTON_XWAYLAND
select CAIRO_XCB if WESTON_XWAYLAND
select LIBXCB if WESTON_XWAYLAND
select XORG_LIB_XCURSOR if WESTON_XWAYLAND
- select XORG_SERVER if WESTON_XWAYLAND && RUNTIME
- select XORG_SERVER_XWAYLAND if WESTON_XWAYLAND && RUNTIME
+ select XWAYLAND if WESTON_XWAYLAND && RUNTIME
select SYSTEMD if WESTON_SYSTEMD
- select SYSTEMD_LOGIND if WESTON_SYSTEMD_LOGIND
- select DBUS if WESTON_SYSTEMD_LOGIND
select GSTREAMER1 if WESTON_REMOTING
select GST_PLUGINS_BASE1 if WESTON_REMOTING
select GST_PLUGINS_BASE1_APP if WESTON_REMOTING
@@ -39,6 +36,10 @@ menuconfig WESTON
select GST_PLUGINS_GOOD1_RTP if WESTON_REMOTING && RUNTIME
select GST_PLUGINS_GOOD1_UDP if WESTON_REMOTING && RUNTIME
select PANGO if WESTON_IVISHELL_EXAMPLE
+ select PIPEWIRE if WESTON_PIPEWIRE
+ select PIPEWIRE if WESTON_BACKEND_PIPEWIRE
+ select NEATVNC if WESTON_BACKEND_VNC
+ select PAM if WESTON_BACKEND_VNC
prompt "weston "
help
Wayland compositor reference implementation
@@ -49,31 +50,21 @@ config WESTON_XWAYLAND
bool
prompt "Xwayland support"
-config WESTON_DRM_COMPOSITOR
- bool
- prompt "drm compositor"
-
config WESTON_GL
bool
- depends on WESTON_DRM_COMPOSITOR
prompt "OpenGL accelerated compositing"
config WESTON_HEADLESS_COMPOSITOR
bool
prompt "headless compositor"
-config WESTON_FBDEV_COMPOSITOR
+config WESTON_BACKEND_PIPEWIRE
bool
- prompt "fbdev compositor"
+ prompt "PipeWire backend"
-config WESTON_LAUNCH
+config WESTON_BACKEND_VNC
bool
- prompt "weston-launch support"
- # needs pam
- depends on BROKEN
- help
- weston-launch is a setuid-root program which does privileged
- operations on Weston's behalf
+ prompt "VNC backend"
config WESTON_STARTSCRIPT
bool
@@ -85,11 +76,6 @@ config WESTON_SYSTEMD
bool
default INITMETHOD_SYSTEMD
-config WESTON_SYSTEMD_LOGIND
- bool
- depends on WESTON_SYSTEMD
- prompt "logind support"
-
config WESTON_WCAP_TOOLS
bool
prompt "wcap tools"
@@ -122,13 +108,11 @@ config WESTON_SHELL_KIOSK
config WESTON_PIPEWIRE
bool
+ select WESTON_GL
prompt "pipewire plugin"
- # needs pipewire
- depends on BROKEN
config WESTON_REMOTING
bool
- select WESTON_DRM_COMPOSITOR
select WESTON_GL
prompt "remoting plugin"
diff --git a/rules/weston.make b/rules/weston.make
index 2bd11b4ef..ebf62645b 100644
--- a/rules/weston.make
+++ b/rules/weston.make
@@ -15,42 +15,44 @@ PACKAGES-$(PTXCONF_WESTON) += weston
#
# Paths and names
#
-WESTON_VERSION := 9.0.0
-LIBWESTON_MAJOR := 9
-WESTON_MD5 := b406da0fe9139fd39653238fde22a6cf
+WESTON_VERSION := 13.0.0
+LIBWESTON_MAJOR := 13
+WESTON_MD5 := f5d8614664a26211621910d310b42890
WESTON := weston-$(WESTON_VERSION)
-WESTON_SUFFIX := tar.xz
-WESTON_URL := http://wayland.freedesktop.org/releases/$(WESTON).$(WESTON_SUFFIX)
+WESTON_SUFFIX := tar.gz
+WESTON_URL := https://gitlab.freedesktop.org/wayland/weston/-/archive/$(WESTON_VERSION)/$(WESTON).$(WESTON_SUFFIX)
WESTON_SOURCE := $(SRCDIR)/$(WESTON).$(WESTON_SUFFIX)
WESTON_DIR := $(BUILDDIR)/$(WESTON)
WESTON_LICENSE := MIT
+WESTON_LICENSE_FILES := file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
WESTON_SIMPLE_CLIENTS-y := damage im shm touch
-WESTON_SIMPLE_CLIENTS-$(PTXCONF_WESTON_GL) += egl dmabuf-egl
+WESTON_SIMPLE_CLIENTS-$(PTXCONF_WESTON_GL) += egl dmabuf-egl dmabuf-feedback
WESTON_CONF_TOOL := meson
WESTON_CONF_OPT := \
$(CROSS_MESON_USR) \
-Dbackend-default=drm \
- -Dbackend-drm=$(call ptx/truefalse,PTXCONF_WESTON_DRM_COMPOSITOR) \
+ -Dbackend-drm=true \
-Dbackend-drm-screencast-vaapi=false \
- -Dbackend-fbdev=$(call ptx/truefalse,PTXCONF_WESTON_FBDEV_COMPOSITOR) \
-Dbackend-headless=$(call ptx/truefalse,PTXCONF_WESTON_HEADLESS_COMPOSITOR) \
+ -Dbackend-pipewire=$(call ptx/truefalse,PTXCONF_WESTON_BACKEND_PIPEWIRE) \
-Dbackend-rdp=false \
+ -Dbackend-vnc=$(call ptx/truefalse,PTXCONF_WESTON_BACKEND_VNC) \
-Dbackend-wayland=$(call ptx/truefalse,PTXCONF_WESTON_GL) \
-Dbackend-x11=false \
- -Dcolor-management-colord=false \
-Dcolor-management-lcms=false \
-Ddemo-clients=$(call ptx/truefalse,PTXCONF_WESTON_IVISHELL_EXAMPLE) \
+ -Ddeprecated-color-management-colord=false \
+ -Ddeprecated-color-management-static=false \
-Ddesktop-shell-client-default=weston-desktop-shell \
-Ddoc=false \
-Dimage-jpeg=true \
-Dimage-webp=false \
- -Dlauncher-logind=$(call ptx/truefalse,PTXCONF_WESTON_SYSTEMD_LOGIND) \
-Dpipewire=$(call ptx/truefalse,PTXCONF_WESTON_PIPEWIRE) \
-Dremoting=$(call ptx/truefalse,PTXCONF_WESTON_REMOTING) \
-Drenderer-gl=$(call ptx/truefalse,PTXCONF_WESTON_GL) \
@@ -62,11 +64,10 @@ WESTON_CONF_OPT := \
-Dshell-kiosk=$(call ptx/truefalse,PTXCONF_WESTON_SHELL_KIOSK) \
-Dsimple-clients=$(subst $(space),$(comma),$(WESTON_SIMPLE_CLIENTS-y)) \
-Dsystemd=$(call ptx/truefalse,PTXCONF_WESTON_SYSTEMD) \
- -Dtest-gl-renderer=false \
-Dtest-junit-xml=false \
+ -Dtest-skip-is-failure=false \
-Dtools=calibrator,debug,info,terminal,touch-calibrator \
-Dwcap-decode=$(call ptx/truefalse,PTXCONF_WESTON_WCAP_TOOLS) \
- -Dweston-launch=$(call ptx/truefalse,PTXCONF_WESTON_LAUNCH) \
-Dxwayland=$(call ptx/truefalse,PTXCONF_WESTON_XWAYLAND) \
-Dxwayland-path=/usr/bin/Xwayland
@@ -78,18 +79,12 @@ $(STATEDIR)/weston.install:
@$(call targetinfo)
@$(call world/install, WESTON)
- @mkdir -p $(WESTON_PKGDIR)/etc/xdg/weston
ifndef PTXCONF_WESTON_IVISHELL_EXAMPLE
- @bindir="/usr/bin" \
- abs_top_builddir="/usr/bin" \
- libexecdir="/usr/libexec" \
- ptxd_replace_magic "$(WESTON_DIR)/weston.ini.in" > \
- "$(WESTON_PKGDIR)/etc/xdg/weston/weston.ini"
+ @install -D -m644 $(WESTON_DIR)-build/compositor/weston.ini \
+ $(WESTON_PKGDIR)/etc/xdg/weston/weston.ini
else
- @bindir="/usr/bin" \
- westondatadir="/usr/share/weston" \
- ptxd_replace_magic "$(WESTON_DIR)/ivi-shell/weston.ini.in" > \
- "$(WESTON_PKGDIR)/etc/xdg/weston/weston.ini"
+ @install -D -m644 $(WESTON_DIR)-build/ivi-shell/weston.ini \
+ $(WESTON_PKGDIR)/etc/xdg/weston/weston.ini
endif
@$(call touch)
@@ -108,17 +103,14 @@ $(STATEDIR)/weston.targetinstall:
@$(call install_fixup, weston,DESCRIPTION,"wayland reference compositor implementation")
@$(call install_copy, weston, 0, 0, 0755, -, /usr/bin/weston)
- @$(call install_copy, weston, 0, 0, 0755, -, /usr/bin/weston-info)
@$(call install_copy, weston, 0, 0, 0755, -, /usr/bin/weston-debug)
-ifdef PTXCONF_WESTON_LAUNCH
- @$(call install_copy, weston, 0, 0, 0755, -, /usr/bin/weston-launch)
-endif
@$(call install_copy, weston, 0, 0, 0755, -, /usr/bin/weston-screenshooter)
ifdef PTXCONF_WESTON_SIMPLE_CLIENTS
@$(call install_copy, weston, 0, 0, 0755, -, /usr/bin/weston-simple-damage)
ifdef PTXCONF_WESTON_GL
@$(call install_copy, weston, 0, 0, 0755, -, /usr/bin/weston-simple-egl)
@$(call install_copy, weston, 0, 0, 0755, -, /usr/bin/weston-simple-dmabuf-egl)
+ @$(call install_copy, weston, 0, 0, 0755, -, /usr/bin/weston-simple-dmabuf-feedback)
endif
@$(call install_copy, weston, 0, 0, 0755, -, /usr/bin/weston-simple-shm)
@$(call install_copy, weston, 0, 0, 0755, -, /usr/bin/weston-simple-touch)
@@ -133,18 +125,18 @@ ifdef PTXCONF_WESTON_WCAP_TOOLS
endif
@$(call install_lib, weston, 0, 0, 0644, libweston-$(LIBWESTON_MAJOR))
- @$(call install_lib, weston, 0, 0, 0644, libweston-desktop-$(LIBWESTON_MAJOR))
ifdef PTXCONF_WESTON_XWAYLAND
@$(call install_lib, weston, 0, 0, 0644, libweston-$(LIBWESTON_MAJOR)/xwayland)
endif
-ifdef PTXCONF_WESTON_DRM_COMPOSITOR
@$(call install_lib, weston, 0, 0, 0644, libweston-$(LIBWESTON_MAJOR)/drm-backend)
-endif
ifdef PTXCONF_WESTON_HEADLESS_COMPOSITOR
@$(call install_lib, weston, 0, 0, 0644, libweston-$(LIBWESTON_MAJOR)/headless-backend)
endif
-ifdef PTXCONF_WESTON_FBDEV_COMPOSITOR
- @$(call install_lib, weston, 0, 0, 0644, libweston-$(LIBWESTON_MAJOR)/fbdev-backend)
+ifdef PTXCONF_WESTON_BACKEND_PIPEWIRE
+ @$(call install_lib, weston, 0, 0, 0644, libweston-$(LIBWESTON_MAJOR)/pipewire-backend)
+endif
+ifdef PTXCONF_WESTON_BACKEND_VNC
+ @$(call install_lib, weston, 0, 0, 0644, libweston-$(LIBWESTON_MAJOR)/vnc-backend)
endif
ifdef PTXCONF_WESTON_GL
@$(call install_lib, weston, 0, 0, 0644, libweston-$(LIBWESTON_MAJOR)/wayland-backend)
@@ -161,6 +153,9 @@ endif
ifdef PTXCONF_WESTON_IVISHELL
@$(call install_lib, weston, 0, 0, 0644, weston/ivi-shell)
endif
+ifdef PTXCONF_WESTON_SHELL_KIOSK
+ @$(call install_lib, weston, 0, 0, 0644, weston/kiosk-shell)
+endif
ifdef PTXCONF_WESTON_SYSTEMD
@$(call install_lib, weston, 0, 0, 0644, weston/systemd-notify)
endif
@@ -222,6 +217,7 @@ ifdef PTXCONF_WESTON_GL
endif
@$(call install_copy, weston, 0, 0, 0755, -, /usr/bin/weston-simple-shm)
@$(call install_copy, weston, 0, 0, 0755, -, /usr/bin/weston-smoke)
+ @$(call install_copy, weston, 0, 0, 0755, -, /usr/bin/weston-tablet)
endif
@$(call install_finish, weston)
diff --git a/rules/wget.in b/rules/wget.in
index 4f9edef03..eab930100 100644
--- a/rules/wget.in
+++ b/rules/wget.in
@@ -19,9 +19,9 @@ menuconfig WGET
logged off. The program supports recursive retrieval
of web-authoring pages as well as ftp sites -- you
can use wget to make mirrors of archives and
- home pages or to travel the Web like a WWW robot.
+ home pages or to travel the Web like a WWW robot.
- Wget works particularly well with slow or unstable
+ Wget works particularly well with slow or unstable
connections by continuing to retrieve a document
until the document is fully downloaded. Re-getting
files from where it left off works on servers
diff --git a/rules/wget.make b/rules/wget.make
index cf1a2340f..f5fc23291 100644
--- a/rules/wget.make
+++ b/rules/wget.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_WGET) += wget
#
# Paths and names
#
-WGET_VERSION := 1.20
-WGET_MD5 := 9f1515d083b769e9ff7642ce6016518e
+WGET_VERSION := 1.21.3
+WGET_MD5 := e89496b15f8bf039d723926fae4d91f5
WGET := wget-$(WGET_VERSION)
WGET_SUFFIX := tar.gz
WGET_URL := $(call ptx/mirror, GNU, wget/$(WGET).$(WGET_SUFFIX))
@@ -24,13 +24,13 @@ WGET_DIR := $(BUILDDIR)/$(WGET)
WGET_LICENSE := GPL-3.0-or-later
WGET_LICENSE_FILES := \
file://COPYING;md5=c678957b0c8e964aa6c70fd77641a71e \
- file://src/main.c;startline=1;endline=28;md5=7b27873e910933ba54fa16589c4b8eed
+ file://src/main.c;startline=1;endline=28;md5=369c109d52f213d2396ac45b9d884c39
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-WGET_ENV := \
+WGET_CONF_ENV := \
$(CROSS_ENV) \
ac_cv_prog_MAKEINFO=: \
ac_cv_path_PERL=: \
@@ -52,8 +52,10 @@ WGET_CONF_OPT := \
--enable-threads=posix \
--disable-nls \
--disable-rpath \
+ --disable-code-coverage \
$(GLOBAL_IPV6_OPTION) \
--disable-iri \
+ --disable-pcre2 \
--disable-pcre \
--disable-xattr \
--without-libpsl \
@@ -64,7 +66,6 @@ WGET_CONF_OPT := \
--$(call ptx/wwo, PTXCONF_WGET_SSL_OPENSSL)-openssl \
--with-included-libunistring \
--without-included-regex \
- --with-libidn=/usr \
--without-libuuid
diff --git a/rules/wireless.make b/rules/wireless.make
index 24ea28d8a..489603383 100644
--- a/rules/wireless.make
+++ b/rules/wireless.make
@@ -29,6 +29,8 @@ WIRELESS_LICENSE := GPL-2.0-only
# Prepare
# ----------------------------------------------------------------------------
+WIRELESS_CONF_TOOL := NO
+
$(STATEDIR)/wireless.prepare:
@$(call targetinfo)
ifdef PTXCONF_WIRELESS_SHARED
@@ -42,10 +44,7 @@ endif
# Compile
# ----------------------------------------------------------------------------
-WIRELESS_PATH := PATH=$(CROSS_PATH)
-WIRELESS_ENV := $(CROSS_ENV)
-
-WIRELESS_MAKEVARS := \
+WIRELESS_MAKE_OPT := \
$(CROSS_ENV_CC) \
PREFIX=/usr
@@ -53,10 +52,9 @@ WIRELESS_MAKEVARS := \
# Install
# ----------------------------------------------------------------------------
-$(STATEDIR)/wireless.install:
- @$(call targetinfo)
- @$(call install, WIRELESS,,install-hdr)
- @$(call touch)
+WIRELESS_INSTALL_OPT := \
+ PREFIX=/usr \
+ install
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/wireplumber.in b/rules/wireplumber.in
new file mode 100644
index 000000000..75841978f
--- /dev/null
+++ b/rules/wireplumber.in
@@ -0,0 +1,30 @@
+## SECTION=multimedia_pipewire
+
+config WIREPLUMBER
+ tristate
+ select HOST_MESON
+ select GLIB
+ select PIPEWIRE
+ select LUA
+ select LUA_INSTALL_LIBLUA
+ select SYSTEMD if WIREPLUMBER_SYSTEMD
+ prompt "wireplumber"
+ help
+ modular session / policy manager for PipeWire
+
+if WIREPLUMBER
+
+config WIREPLUMBER_SYSTEMD
+ bool
+
+config WIREPLUMBER_SYSTEMD_UNIT
+ bool
+ default PIPEWIRE_SYSTEMD_UNIT
+ select WIREPLUMBER_SYSTEMD
+
+config WIREPLUMBER_SYSTEMD_UNIT_USER
+ bool
+ default PIPEWIRE_SYSTEMD_UNIT_USER
+ select WIREPLUMBER_SYSTEMD
+
+endif
diff --git a/rules/wireplumber.make b/rules/wireplumber.make
new file mode 100644
index 000000000..07d3e3b6d
--- /dev/null
+++ b/rules/wireplumber.make
@@ -0,0 +1,111 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_WIREPLUMBER) += wireplumber
+
+#
+# Paths and names
+#
+WIREPLUMBER_VERSION := 0.4.14
+WIREPLUMBER_MD5 := 5b1ae97978987f8790587f38a3d2241b
+WIREPLUMBER := wireplumber-$(WIREPLUMBER_VERSION)
+WIREPLUMBER_SUFFIX := tar.bz2
+WIREPLUMBER_URL := https://gitlab.freedesktop.org/pipewire/wireplumber/-/archive/$(WIREPLUMBER_VERSION)/$(WIREPLUMBER).$(WIREPLUMBER_SUFFIX)
+WIREPLUMBER_SOURCE := $(SRCDIR)/$(WIREPLUMBER).$(WIREPLUMBER_SUFFIX)
+WIREPLUMBER_DIR := $(BUILDDIR)/$(WIREPLUMBER)
+WIREPLUMBER_LICENSE := MIT
+WIREPLUMBER_LICENSE_FILES := file://LICENSE;md5=17d1fe479cdec331eecbc65d26bc7e77
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# meson
+#
+WIREPLUMBER_CONF_TOOL := meson
+WIREPLUMBER_CONF_OPT := \
+ $(CROSS_MESON_USR) \
+ -Ddaemon=true \
+ -Ddbus-tests=false \
+ -Ddoc=disabled \
+ -Delogind=disabled \
+ -Dglib-supp= \
+ -Dintrospection=disabled \
+ -Dmodules=true \
+ -Dsystem-lua=true \
+ -Dsystem-lua-version=auto \
+ -Dsystemd=$(call ptx/endis,PTXCONF_WIREPLUMBER_SYSTEMD)d \
+ -Dsystemd-system-service=$(call ptx/truefalse,PTXCONF_WIREPLUMBER_SYSTEMD_UNIT) \
+ -Dsystemd-system-unit-dir=/usr/lib/systemd/system \
+ -Dsystemd-user-service=$(call ptx/truefalse,PTXCONF_WIREPLUMBER_SYSTEMD_UNIT_USER) \
+ -Dsystemd-user-unit-dir=/usr/lib/systemd/user \
+ -Dtests=false \
+ -Dtools=true
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+WIREPLUMBER_MODULES := \
+ default-nodes \
+ default-nodes-api \
+ default-profile \
+ file-monitor-api \
+ lua-scripting \
+ metadata \
+ mixer-api \
+ portal-permissionstore \
+ reserve-device \
+ si-audio-adapter \
+ si-audio-endpoint \
+ si-node \
+ si-standard-link
+
+$(STATEDIR)/wireplumber.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, wireplumber)
+ @$(call install_fixup, wireplumber,PRIORITY,optional)
+ @$(call install_fixup, wireplumber,SECTION,base)
+ @$(call install_fixup, wireplumber,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
+ @$(call install_fixup, wireplumber,DESCRIPTION,missing)
+
+ @$(call install_lib, wireplumber, 0, 0, 644, libwireplumber-0.4)
+
+ @$(call install_copy, wireplumber, 0, 0, 755, -, /usr/bin/wireplumber)
+ @$(call install_copy, wireplumber, 0, 0, 755, -, /usr/bin/wpctl)
+ @$(call install_copy, wireplumber, 0, 0, 755, -, /usr/bin/wpexec)
+
+ @$(foreach module, $(WIREPLUMBER_MODULES), \
+ $(call install_lib, wireplumber, 0, 0, 644, \
+ wireplumber-0.4/libwireplumber-module-$(module))$(ptx/nl))
+ @$(call install_tree, wireplumber, 0, 0, -, \
+ /usr/share/wireplumber)
+
+ifdef PTXCONF_WIREPLUMBER_SYSTEMD_UNIT
+ @$(call install_alternative, wireplumber, 0, 0, 0644, \
+ /usr/lib/systemd/system/wireplumber.service)
+ @$(call install_link, wireplumber, ../wireplumber.service, \
+ /usr/lib/systemd/system/pipewire.service.wants/wireplumber.service)
+endif
+ifdef PTXCONF_WIREPLUMBER_SYSTEMD_UNIT_USER
+ @$(call install_alternative, wireplumber, 0, 0, 0644, \
+ /usr/lib/systemd/user/wireplumber.service)
+ @$(call install_link, wireplumber, ../wireplumber.service, \
+ /usr/lib/systemd/user/pipewire.service.wants/wireplumber.service)
+endif
+
+ @$(call install_finish, wireplumber)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/wlroots.in b/rules/wlroots.in
index f1ae225ec..62b5fde35 100644
--- a/rules/wlroots.in
+++ b/rules/wlroots.in
@@ -5,6 +5,8 @@ menuconfig WLROOTS
select HOST_MESON
select WAYLAND
select WAYLAND_PROTOCOLS
+ select HWDATA
+ select HWDATA_PNP
select LIBDRM
select MESALIB
select MESALIB_EGL
@@ -15,8 +17,10 @@ menuconfig WLROOTS
select UDEV
select UDEV_LIBUDEV
select PIXMAN
- select SYSTEMD if WLROOTS_SYSTEMD
- select SYSTEMD_LOGIND if WLROOTS_SYSTEMD_LOGIND
+ select SEATD
+ select XORG if WLROOTS_XWAYLAND
+ select XCB_UTIL_WM if WLROOTS_XWAYLAND
+ select XWAYLAND if WLROOTS_XWAYLAND
prompt "wlroots "
help
wlroots provides pluggable, composable, unopinionated modules for
@@ -24,13 +28,8 @@ menuconfig WLROOTS
if WLROOTS
-config WLROOTS_SYSTEMD
+config WLROOTS_XWAYLAND
bool
- default INITMETHOD_SYSTEMD
-
-config WLROOTS_SYSTEMD_LOGIND
- bool
- depends on WLROOTS_SYSTEMD
- prompt "support rootless session via logind"
+ prompt "Xwayland support"
endif
diff --git a/rules/wlroots.make b/rules/wlroots.make
index d866e14a7..bfb2a29a9 100644
--- a/rules/wlroots.make
+++ b/rules/wlroots.make
@@ -14,11 +14,11 @@ PACKAGES-$(PTXCONF_WLROOTS) += wlroots
#
# Paths and names
#
-WLROOTS_VERSION := 0.11.0
-WLROOTS_MD5 := 3ed69ea05c4d3a05f96a9a859cb5f333
+WLROOTS_VERSION := 0.16.0
+WLROOTS_MD5 := 2f9263c6ed2f2da2957988ee3f7bde1f
WLROOTS := wlroots-$(WLROOTS_VERSION)
-WLROOTS_SUFFIX := tar.gz
-WLROOTS_URL := https://github.com/swaywm/wlroots/archive/$(WLROOTS_VERSION).$(WLROOTS_SUFFIX)
+WLROOTS_SUFFIX := tar.bz2
+WLROOTS_URL := https://gitlab.freedesktop.org/wlroots/wlroots/-/archive/$(WLROOTS_VERSION)/$(WLROOTS).$(WLROOTS_SUFFIX)
WLROOTS_SOURCE := $(SRCDIR)/$(WLROOTS).$(WLROOTS_SUFFIX)
WLROOTS_DIR := $(BUILDDIR)/$(WLROOTS)
WLROOTS_LICENSE := MIT
@@ -30,14 +30,14 @@ WLROOTS_LICENSE := MIT
WLROOTS_CONF_TOOL := meson
WLROOTS_CONF_OPT := \
$(CROSS_MESON_USR) \
- -Dlogind=$(call ptx/endis, PTXCONF_WLROOTS_SYSTEMD_LOGIND)d \
- -Dlogind-provider=systemd \
- -Dxcb-errors=disabled \
- -Dxcb-icccm=disabled \
- -Dxwayland=disabled \
- -Dx11-backend=disabled \
+ -Dwerror=false \
+ -Dallocators=gbm \
+ -Dbackends=drm,libinput \
-Dexamples=false \
- -Dwerror=false
+ -Dicon_directory= \
+ -Drenderers=gles2 \
+ -Dxcb-errors=disabled \
+ -Dxwayland=$(call ptx/endis,PTXCONF_WLROOTS_XWAYLAND)d
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/wpa_supplicant.in b/rules/wpa_supplicant.in
index 0f55c1583..112200122 100644
--- a/rules/wpa_supplicant.in
+++ b/rules/wpa_supplicant.in
@@ -22,7 +22,7 @@ config WPA_SUPPLICANT_PASSPHRASE
prompt "install wpa_passphrase"
help
Install wpa_passphrase tool (Generate a WPA PSK from an ASCII
- passphrase for a SSID)
+ passphrase for an SSID)
config WPA_SUPPLICANT_INSTALL_CLI
bool
diff --git a/rules/wpa_supplicant.make b/rules/wpa_supplicant.make
index 79c9ccb76..644df4fcb 100644
--- a/rules/wpa_supplicant.make
+++ b/rules/wpa_supplicant.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_WPA_SUPPLICANT) += wpa_supplicant
# Paths and names
#
WPA_SUPPLICANT_NAME := wpa_supplicant
-WPA_SUPPLICANT_VERSION := 2.9
-WPA_SUPPLICANT_MD5 := 2d2958c782576dc9901092fbfecb4190
+WPA_SUPPLICANT_VERSION := 2.10
+WPA_SUPPLICANT_MD5 := d26797fcb002898d4ee989179346e1cc
WPA_SUPPLICANT := $(WPA_SUPPLICANT_NAME)-$(WPA_SUPPLICANT_VERSION)
WPA_SUPPLICANT_SUFFIX := tar.gz
WPA_SUPPLICANT_URL := https://w1.fi/releases/$(WPA_SUPPLICANT).$(WPA_SUPPLICANT_SUFFIX)
@@ -32,7 +32,6 @@ WPA_SUPPLICANT_LICENSE := GPL-2.0-only
# Prepare
# ----------------------------------------------------------------------------
-WPA_SUPPLICANT_PATH := PATH=$(CROSS_PATH)
WPA_SUPPLICANT_MAKE_ENV := \
$(CROSS_ENV) \
LIBDIR=/usr/lib \
@@ -41,14 +40,14 @@ WPA_SUPPLICANT_MAKE_ENV := \
#
# autoconf
#
-WPA_SUPPLICANT_AUTOCONF := $(CROSS_AUTOCONF_USR)
+WPA_SUPPLICANT_CONF_TOOL := autoconf
+WPA_SUPPLICANT_CONF_OPT := $(CROSS_AUTOCONF_USR)
$(STATEDIR)/wpa_supplicant.prepare:
@$(call targetinfo)
# # run 'make clean' as wpa_supplicant's build system does not recognize config changes
- @-cd $(WPA_SUPPLICANT_DIR)/$(WPA_SUPPLICANT_SUBDIR) && \
- $(WPA_SUPPLICANT_MAKE_ENV) $(WPA_SUPPLICANT_PATH) $(MAKE) clean
+ @-$(call compile, WPA_SUPPLICANT, clean)
@cp $(WPA_SUPPLICANT_CONFIG) $(WPA_SUPPLICANT_DOTCONFIG)
@$(call enable_sh,$(WPA_SUPPLICANT_DOTCONFIG),CC=$(CROSS_CC))
diff --git a/rules/wpebackend-fdo.in b/rules/wpebackend-fdo.in
index 423e8a0e1..dffadaf6f 100644
--- a/rules/wpebackend-fdo.in
+++ b/rules/wpebackend-fdo.in
@@ -3,10 +3,10 @@
config WPEBACKEND_FDO
tristate
prompt "wpebackend-fdo"
- select HOST_CMAKE
- select HOST_NINJA
+ select HOST_MESON
select LIBEPOXY
select LIBWPE
+ select LIBXKBCOMMON
select GLIB
select MESALIB
select MESALIB_EGL
diff --git a/rules/wpebackend-fdo.make b/rules/wpebackend-fdo.make
index 339f44320..d10a26b83 100644
--- a/rules/wpebackend-fdo.make
+++ b/rules/wpebackend-fdo.make
@@ -14,9 +14,9 @@ PACKAGES-$(PTXCONF_WPEBACKEND_FDO) += wpebackend-fdo
#
# Paths and names
#
-WPEBACKEND_FDO_VERSION := 1.8.2
+WPEBACKEND_FDO_VERSION := 1.14.2
WPEBACKEND_FDO_LIBRARY_VERSION := 1.0
-WPEBACKEND_FDO_MD5 := 93ca185b5c0f539abbf7ab32cfdc96b2
+WPEBACKEND_FDO_MD5 := dafd899646b2e31ef2d97938a638c48d
WPEBACKEND_FDO := wpebackend-fdo-$(WPEBACKEND_FDO_VERSION)
WPEBACKEND_FDO_SUFFIX := tar.xz
WPEBACKEND_FDO_URL := https://wpewebkit.org/releases/$(WPEBACKEND_FDO).$(WPEBACKEND_FDO_SUFFIX)
@@ -30,13 +30,12 @@ WPEBACKEND_FDO_LICENSE_FILES := file://COPYING;md5=1f62cef2e3645e3e74eb05fd389d7
# ----------------------------------------------------------------------------
#
-# cmake
+# meson
#
-WPEBACKEND_FDO_CONF_TOOL := cmake
+WPEBACKEND_FDO_CONF_TOOL := meson
WPEBACKEND_FDO_CONF_OPT := \
- $(CROSS_CMAKE_USR) \
- -G Ninja \
- -DBUILD_DOCS=OFF
+ $(CROSS_MESON_USR) \
+ -Dbuild_docs=false
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/wpewebkit.in b/rules/wpewebkit.in
index 1235e2502..30a324529 100644
--- a/rules/wpewebkit.in
+++ b/rules/wpewebkit.in
@@ -6,15 +6,16 @@ menuconfig WPEWEBKIT
select HOST_CMAKE
select HOST_GPERF
select HOST_NINJA
+ select HOST_UNIFDEF
select HOST_SYSTEM_PERL
select HOST_SYSTEM_PERL_JSON
+ select HOST_SYSTEM_PYTHON3
select HOST_SYSTEM_RUBY
+ select ALSA_LIB if WPEWEBKIT_WEBRTC
select GLIB
select LIBWPE
select CAIRO
- select CAIRO_EGL
select CAIRO_FREETYPE
- select CAIRO_GLES2
select CAIRO_PNG
select FONTCONFIG
select FREETYPE
@@ -37,8 +38,11 @@ menuconfig WPEWEBKIT
select MESALIB_GLES2
select LIBEPOXY
select LIBGCRYPT
+ select LIBTASN1
+ select OPENSSL if WPEWEBKIT_WEBRTC
select GSTREAMER1 if WPEWEBKIT_VIDEO || WPEWEBKIT_AUDIO
select GST_PLUGINS_BASE1 if WPEWEBKIT_VIDEO || WPEWEBKIT_AUDIO
+ select GST_PLUGINS_BASE1_ALSA if WPEWEBKIT_WEBRTC
select GST_PLUGINS_BASE1_APP if WPEWEBKIT_VIDEO || WPEWEBKIT_AUDIO
select GST_PLUGINS_BASE1_AUDIOCONVERT if WPEWEBKIT_AUDIO
select GST_PLUGINS_BASE1_AUDIOMIXER if WPEWEBKIT_AUDIO
@@ -47,22 +51,27 @@ menuconfig WPEWEBKIT
select GST_PLUGINS_BASE1_GIO if WPEWEBKIT_VIDEO || WPEWEBKIT_AUDIO
select GST_PLUGINS_BASE1_GL if WPEWEBKIT_VIDEO
select GST_PLUGINS_BASE1_PLAYBACK if WPEWEBKIT_VIDEO || WPEWEBKIT_AUDIO
- select GST_PLUGINS_BASE1_VIDEOCONVERT if WPEWEBKIT_VIDEO
+ select GST_PLUGINS_BASE1_TYPEFIND if WPEWEBKIT_VIDEO || WPEWEBKIT_AUDIO
+ select GST_PLUGINS_BASE1_VIDEOCONVERTSCALE if WPEWEBKIT_VIDEO
+ select GST_PLUGINS_BASE1_VIDEORATE if WPEWEBKIT_WEBRTC
select GST_PLUGINS_BASE1_VOLUME if WPEWEBKIT_AUDIO
select GST_PLUGINS_GOOD1 if (WPEWEBKIT_VIDEO || WPEWEBKIT_AUDIO) && RUNTIME
select GST_PLUGINS_GOOD1_AUDIOFX if WPEWEBKIT_AUDIO
+ select GST_PLUGINS_GOOD1_AUDIOPARSERS if WPEWEBKIT_AUDIO
select GST_PLUGINS_GOOD1_AUTODETECT if WPEWEBKIT_AUDIO
+ select GST_PLUGINS_GOOD1_DEINTERLACE if WPEWEBKIT_VIDEO
select GST_PLUGINS_GOOD1_INTERLEAVE if WPEWEBKIT_AUDIO
select GST_PLUGINS_GOOD1_ISOMP4 if WPEWEBKIT_VIDEO || WPEWEBKIT_AUDIO
select GST_PLUGINS_GOOD1_MATROSKA if WPEWEBKIT_VIDEO || WPEWEBKIT_AUDIO
select GST_PLUGINS_GOOD1_VIDEOFILTER if WPEWEBKIT_VIDEO
- select GST_PLUGINS_BAD1 if (WPEWEBKIT_VIDEO || WPEWEBKIT_AUDIO) && RUNTIME
+ select GST_PLUGINS_BAD1 if WPEWEBKIT_VIDEO || WPEWEBKIT_AUDIO
# fdkaac is preferred but currently not available
select GST_PLUGINS_BAD1_FDKAAC if WPEWEBKIT_AUDIO && BROKEN
select GST_PLUGINS_BAD1_DEBUGUTILS if WPEWEBKIT_VIDEO
select GST_PLUGINS_BAD1_OPUS if WPEWEBKIT_AUDIO
select GST_PLUGINS_BAD1_SUBENC if WPEWEBKIT_VIDEO
select GST_PLUGINS_BAD1_VIDEOPARSERS if WPEWEBKIT_VIDEO
+ select GST_PLUGINS_BAD1_WEBRTC if WPEWEBKIT_WEBRTC
select WPEBACKEND_FDO
select QT5 if WPEWEBKIT_QT
select QT5_MODULE_QTDECLARATIVE if WPEWEBKIT_QT
@@ -90,6 +99,11 @@ config WPEWEBKIT_AUDIO
bool
prompt "audio support"
+config WPEWEBKIT_WEBRTC
+ bool
+ depends on WPEWEBKIT_AUDIO && WPEWEBKIT_VIDEO
+ prompt "WebRTC support"
+
config WPEWEBKIT_ENABLE_LOGGING
bool
prompt "enable logging support"
@@ -97,4 +111,11 @@ config WPEWEBKIT_ENABLE_LOGGING
Enable this option if you want to get some more logging information. For more
information check https://trac.webkit.org/wiki/WebKitGTK/Debugging.
+config WPEWEBKIT_WEBDRIVER
+ bool
+ prompt "WebDriver support"
+ help
+ WebDriver is a standalone server that implements the W3C WebDriver standard
+ for automated testing.
+
endif
diff --git a/rules/wpewebkit.make b/rules/wpewebkit.make
index 141d83a71..3766efa2f 100644
--- a/rules/wpewebkit.make
+++ b/rules/wpewebkit.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_WPEWEBKIT) += wpewebkit
#
# Paths and names
#
-WPEWEBKIT_VERSION := 2.30.6
-WPEWEBKIT_MD5 := e35b31932ad3da6c06736d8f2d347072
+WPEWEBKIT_VERSION := 2.42.5
+WPEWEBKIT_MD5 := d4bfd427199ded5a6fd91d7080290751
WPEWEBKIT := wpewebkit-$(WPEWEBKIT_VERSION)
WPEWEBKIT_SUFFIX := tar.xz
WPEWEBKIT_URL := https://wpewebkit.org/releases/$(WPEWEBKIT).$(WPEWEBKIT_SUFFIX)
@@ -37,29 +37,47 @@ WPEWEBKIT_CONF_OPT := \
-DCMAKE_BUILD_TYPE=Release \
-DANALYZERS=OFF \
-DDEBUG_FISSION=OFF \
- -DENABLE_ACCELERATED_2D_CANVAS=OFF \
-DENABLE_ACCESSIBILITY=OFF \
-DENABLE_BUBBLEWRAP_SANDBOX=OFF \
+ -DENABLE_DOCUMENTATION=OFF \
-DENABLE_ENCRYPTED_MEDIA=OFF \
- -DENABLE_GTKDOC=OFF\
- -DENABLE_MEDIA_SOURCE=ON \
- -DENABLE_SHAREABLE_RESOURCE=ON \
+ -DENABLE_GAMEPAD=OFF \
+ -DENABLE_INTROSPECTION=OFF \
+ -DENABLE_JAVASCRIPTCORE=ON \
+ -DENABLE_JOURNALD_LOG=$(call ptx/onoff,PTXCONF_WPEWEBKIT_JOURNALD) \
+ -DENABLE_PDFJS=ON \
-DENABLE_VIDEO=$(call ptx/onoff,PTXCONF_WPEWEBKIT_VIDEO) \
- -DENABLE_WEBDRIVER=ON \
- -DENABLE_WEB_AUDIO=$(call ptx/onoff,PTXCONF_WPEWEBKIT_AUDIO) \ \
+ -DENABLE_WEBCORE=ON \
+ -DENABLE_WEBDRIVER=$(call ptx/onoff,PTXCONF_WPEWEBKIT_WEBDRIVER) \
+ -DENABLE_WEBKIT=ON \
+ -DENABLE_WEB_AUDIO=$(call ptx/onoff,PTXCONF_WPEWEBKIT_AUDIO) \
-DENABLE_WEB_CRYPTO=ON \
+ -DENABLE_WPE_1_1_API=OFF \
-DENABLE_WPE_QT_API=$(call ptx/onoff,PTXCONF_WPEWEBKIT_QT) \
-DENABLE_XSLT=ON \
-DGCC_OFFLINEASM_SOURCE_MAP=OFF \
-DPORT=WPE \
+ -DPYTHON_EXECUTABLE=$(PTXDIST_SYSROOT_HOST)/usr/lib/wrapper/$(SYSTEMPYTHON3) \
-DSHOULD_INSTALL_JS_SHELL=OFF \
-DSHOW_BINDINGS_GENERATION_PROGRESS=ON \
- -DUSE_LD_GOLD=OFF \
+ -DUSE_64KB_PAGE_BLOCK=OFF \
+ -DUSE_APPLE_ICU=OFF \
+ -DUSE_AVIF=OFF \
+ -DUSE_GBM=ON \
+ -DUSE_GSTREAMER_TRANSCODER=OFF \
+ -DUSE_GSTREAMER_WEBRTC=$(call ptx/onoff,PTXCONF_WPEWEBKIT_WEBRTC) \
+ -DUSE_JPEGXL=OFF \
+ -DUSE_LCMS=OFF \
-DUSE_OPENJPEG=OFF \
- -DUSE_SYSTEMD=$(call ptx/onoff,PTXCONF_WPEWEBKIT_JOURNALD) \
+ -DUSE_SOUP2=OFF \
-DUSE_THIN_ARCHIVES=ON \
+ -DUSE_WESTEROS_SINK=OFF \
-DUSE_WOFF2=OFF \
- -DWTF_CPU_ARM64_CORTEXA53=OFF
+ -DUSE_WPEWEBKIT_PLATFORM_AMLOGIC=OFF \
+ -DUSE_WPEWEBKIT_PLATFORM_BCM_NEXUS=OFF \
+ -DUSE_WPEWEBKIT_PLATFORM_BROADCOM=OFF \
+ -DUSE_WPEWEBKIT_PLATFORM_RPI=OFF \
+ -DUSE_WPEWEBKIT_PLATFORM_WESTEROS=OFF
WPEWEBKIT_SYSTEM_MALLOC := OFF
ifdef PTXCONF_WPEWEBKIT_QT
@@ -73,11 +91,17 @@ endif
# private options
WPEWEBKIT_CONF_OPT += \
+ -DENABLE_MEDIA_RECORDER=OFF \
+ -DENABLE_MEDIA_SOURCE=ON \
+ -DENABLE_MEDIA_STREAM=$(call ptx/onoff,PTXCONF_WPEWEBKIT_WEBRTC) \
-DENABLE_REMOTE_INSPECTOR=ON \
+ -DENABLE_WEBXR=OFF \
+ -DENABLE_WEB_RTC=$(call ptx/onoff,PTXCONF_WPEWEBKIT_WEBRTC) \
+ -DUSE_GSTREAMER_GL=$(call ptx/onoff,PTXCONF_WPEWEBKIT_VIDEO) \
-DUSE_SYSTEM_MALLOC=$(WPEWEBKIT_SYSTEM_MALLOC)
ifdef PTXCONF_WPEWEBKIT_ENABLE_LOGGING
-WPEWEBKIT_CXXFLAGS := -DLOG_DISABLED=0
+WPEWEBKIT_CXXFLAGS := -DLOG_DISABLED=0 -DENABLE_TREE_DEBUGGING=1
endif
# ----------------------------------------------------------------------------
@@ -93,15 +117,19 @@ $(STATEDIR)/wpewebkit.targetinstall:
@$(call install_fixup, wpewebkit,AUTHOR,"Steffen Trumtrar <s.trumtrar@pengutronix.de>")
@$(call install_fixup, wpewebkit,DESCRIPTION,missing)
- @$(call install_lib, wpewebkit, 0, 0, 0644, libWPEWebKit-1.0)
+ @$(call install_lib, wpewebkit, 0, 0, 0644, libWPEWebKit-2.0)
- @$(call install_tree, wpewebkit, 0, 0, -, /usr/libexec/wpe-webkit-1.0)
- @$(call install_tree, wpewebkit, 0, 0, -, /usr/lib/wpe-webkit-1.0)
+ @$(call install_tree, wpewebkit, 0, 0, -, /usr/libexec/wpe-webkit-2.0)
+ @$(call install_tree, wpewebkit, 0, 0, -, /usr/lib/wpe-webkit-2.0)
ifdef PTXCONF_WPEWEBKIT_QT
@$(call install_tree, wpewebkit, 0, 0, -, /usr/lib/qt5/qml/org/wpewebkit)
endif
+ifdef PTXCONF_WPEWEBKIT_WEBDRIVER
+ @$(call install_copy, wpewebkit, 0, 0, 0755, -, /usr/bin/WPEWebDriver)
+endif
+
@$(call install_finish, wpewebkit)
@$(call touch)
diff --git a/rules/x-load.make b/rules/x-load.make
index 6bf7f9768..6fcf7a6c0 100644
--- a/rules/x-load.make
+++ b/rules/x-load.make
@@ -65,10 +65,11 @@ $(STATEDIR)/x-load.install:
$(STATEDIR)/x-load.targetinstall:
@$(call targetinfo)
- @install -D -m644 $(X_LOAD_DIR)/x-load.bin $(IMAGEDIR)/x-load.bin
+ @$(call world/image-clean, X_LOAD)
+ @$(call ptx/image-install, X_LOAD, $(X_LOAD_DIR)/x-load.bin)
ifdef PTXCONF_X_LOAD_MAKE_IFT
- @install -D -m644 $(X_LOAD_DIR)/x-load.bin.ift $(IMAGEDIR)/x-load.bin.ift
- @install -D -m644 $(X_LOAD_DIR)/x-load.bin.ift $(IMAGEDIR)/MLO
+ @$(call ptx/image-install, X_LOAD, $(X_LOAD_DIR)/x-load.bin.ift)
+ @$(call ptx/image-install, X_LOAD, $(X_LOAD_DIR)/x-load.bin.ift, MLO)
endif
@$(call touch)
@@ -79,6 +80,5 @@ endif
$(STATEDIR)/x-load.clean:
@$(call targetinfo)
@$(call clean_pkg, X_LOAD)
- @rm -f $(IMAGEDIR)/x-load.bin $(IMAGEDIR)/x-load.bin.ift $(IMAGEDIR)/MLO
# vim: syntax=make
diff --git a/rules/xcb-proto.make b/rules/xcb-proto.make
index fa0e0b97c..54cb67220 100644
--- a/rules/xcb-proto.make
+++ b/rules/xcb-proto.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_XCB_PROTO) += xcb-proto
#
# Paths and names
#
-XCB_PROTO_VERSION := 1.14.1
-XCB_PROTO_MD5 := ecd6955dab1a7b9ba9756a11b8bdb48f
+XCB_PROTO_VERSION := 1.16.0
+XCB_PROTO_MD5 := 92081b0faafd93f8262463c69829a482
XCB_PROTO := xcb-proto-$(XCB_PROTO_VERSION)
XCB_PROTO_SUFFIX := tar.xz
XCB_PROTO_URL := http://xorg.freedesktop.org/archive/individual/proto/$(XCB_PROTO).$(XCB_PROTO_SUFFIX)
diff --git a/rules/xcb-util-image.in b/rules/xcb-util-image.in
index de03aac01..6c3fc9003 100644
--- a/rules/xcb-util-image.in
+++ b/rules/xcb-util-image.in
@@ -1,4 +1,4 @@
-## SECTION=multimedia_xorg_app
+## SECTION=multimedia_xorg_lib
config XCB_UTIL_IMAGE
tristate
diff --git a/rules/xcb-util-keysyms.in b/rules/xcb-util-keysyms.in
index cf6016720..1ca36c029 100644
--- a/rules/xcb-util-keysyms.in
+++ b/rules/xcb-util-keysyms.in
@@ -1,4 +1,4 @@
-## SECTION=multimedia_xorg_app
+## SECTION=multimedia_xorg_lib
config XCB_UTIL_KEYSYMS
tristate
diff --git a/rules/xcb-util-renderutil.in b/rules/xcb-util-renderutil.in
index 87e52f6d3..74f4761ea 100644
--- a/rules/xcb-util-renderutil.in
+++ b/rules/xcb-util-renderutil.in
@@ -1,4 +1,4 @@
-## SECTION=multimedia_xorg_app
+## SECTION=multimedia_xorg_lib
config XCB_UTIL_RENDERUTIL
tristate
diff --git a/rules/xcb-util-wm.in b/rules/xcb-util-wm.in
index b7d4b8879..8579316bf 100644
--- a/rules/xcb-util-wm.in
+++ b/rules/xcb-util-wm.in
@@ -1,4 +1,4 @@
-## SECTION=multimedia_xorg_app
+## SECTION=multimedia_xorg_lib
config XCB_UTIL_WM
tristate
diff --git a/rules/xcb-util.in b/rules/xcb-util.in
index 7063eba6f..9acfb899d 100644
--- a/rules/xcb-util.in
+++ b/rules/xcb-util.in
@@ -1,4 +1,4 @@
-## SECTION=multimedia_xorg_app
+## SECTION=multimedia_xorg_lib
config XCB_UTIL
tristate
diff --git a/rules/xerces.make b/rules/xerces.make
index 689079feb..f5a1b4749 100644
--- a/rules/xerces.make
+++ b/rules/xerces.make
@@ -27,13 +27,11 @@ XERCES_DIR := $(BUILDDIR)/$(XERCES)
# Prepare
# ----------------------------------------------------------------------------
-XERCES_PATH := PATH=$(CROSS_PATH)
-XERCES_CONF_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XERCES_AUTOCONF := $(CROSS_AUTOCONF_USR)
+XERCES_CONF_TOOL := autoconf
+XERCES_CONF_OPT := $(CROSS_AUTOCONF_USR)
XERCES_SUBDIR := src/xercesc
diff --git a/rules/xfsprogs.in b/rules/xfsprogs.in
index de8cf7a34..229fc64cd 100644
--- a/rules/xfsprogs.in
+++ b/rules/xfsprogs.in
@@ -10,8 +10,8 @@ menuconfig XFSPROGS
select LIBUUID
select HOST_LIBUUID
help
- The xfsprogs package provides the filesystem utilities for use
- with the xfs filesystem.
+ The xfsprogs package provides the filesystem utilities for use
+ with the xfs filesystem.
if XFSPROGS
diff --git a/rules/xkeyboard-config.in b/rules/xkeyboard-config.in
index 07930039f..0219ca68b 100644
--- a/rules/xkeyboard-config.in
+++ b/rules/xkeyboard-config.in
@@ -3,7 +3,6 @@
config XKEYBOARD_CONFIG
tristate
prompt "xkeyboard-config"
- select HOST_SYSTEM_PYTHON3
- select HOST_INTLTOOL
+ select HOST_MESON
help
FIXME
diff --git a/rules/xkeyboard-config.make b/rules/xkeyboard-config.make
index 56a815867..50899f715 100644
--- a/rules/xkeyboard-config.make
+++ b/rules/xkeyboard-config.make
@@ -14,14 +14,16 @@ PACKAGES-$(PTXCONF_XKEYBOARD_CONFIG) += xkeyboard-config
#
# Paths and names
#
-XKEYBOARD_CONFIG_VERSION := 2.30
-XKEYBOARD_CONFIG_MD5 := c8f0c7b719856f4159e88a25525c65ba
+XKEYBOARD_CONFIG_VERSION := 2.41
+XKEYBOARD_CONFIG_MD5 := 2f0b843b5283b82cae0402cbc4f374b4
XKEYBOARD_CONFIG := xkeyboard-config-$(XKEYBOARD_CONFIG_VERSION)
-XKEYBOARD_CONFIG_SUFFIX := tar.bz2
+XKEYBOARD_CONFIG_SUFFIX := tar.xz
XKEYBOARD_CONFIG_URL := $(call ptx/mirror, XORG, individual/data/xkeyboard-config/$(XKEYBOARD_CONFIG).$(XKEYBOARD_CONFIG_SUFFIX))
XKEYBOARD_CONFIG_SOURCE := $(SRCDIR)/$(XKEYBOARD_CONFIG).$(XKEYBOARD_CONFIG_SUFFIX)
XKEYBOARD_CONFIG_DIR := $(BUILDDIR)/$(XKEYBOARD_CONFIG)
XKEYBOARD_CONFIG_LICENSE := MIT
+XKEYBOARD_CONFIG_LICENSE_FILES := \
+ file://COPYING;md5=8fc8ae699974c360e2e2e883a63ce264
# ----------------------------------------------------------------------------
# Prepare
@@ -30,15 +32,11 @@ XKEYBOARD_CONFIG_LICENSE := MIT
#
# autoconf
#
-XKEYBOARD_CONFIG_CONF_TOOL := autoconf
+XKEYBOARD_CONFIG_CONF_TOOL := meson
XKEYBOARD_CONFIG_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --enable-compat-rules \
- --disable-runtime-deps \
- --disable-nls \
- --disable-rpath \
- --without-xsltproc \
- --with-xkb-base=$(XORG_DATADIR)/X11/xkb \
+ $(CROSS_MESON_USR) \
+ -Dcompat-rules=true \
+ -Dxkb-base=$(XORG_DATADIR)/X11/xkb
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/xmlstarlet.make b/rules/xmlstarlet.make
index 0e497073d..19d38fe5f 100644
--- a/rules/xmlstarlet.make
+++ b/rules/xmlstarlet.make
@@ -27,15 +27,13 @@ XMLSTARLET_DIR := $(BUILDDIR)/$(XMLSTARLET)
# Prepare
# ----------------------------------------------------------------------------
-XMLSTARLET_PATH := PATH=$(CROSS_PATH)
-XMLSTARLET_ENV := $(CROSS_ENV)
-
#
# autoconf
#
# Don't set --with-libiconv-prefix (not necessary for libc-iconv)
#
-XMLSTARLET_AUTOCONF := \
+XMLSTARLET_CONF_TOOL := autoconf
+XMLSTARLET_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-libxml-prefix=$(SYSROOT)/usr \
--with-libxslt-prefix=$(SYSROOT)/usr \
diff --git a/rules/xorg-app-rgb.make b/rules/xorg-app-rgb.make
index abb4f49f1..a68624da2 100644
--- a/rules/xorg-app-rgb.make
+++ b/rules/xorg-app-rgb.make
@@ -26,15 +26,13 @@ XORG_APP_RGB_DIR := $(BUILDDIR)/$(XORG_APP_RGB)
# Prepare
# ----------------------------------------------------------------------------
-XORG_APP_RGB_PATH := PATH=$(CROSS_PATH)
-XORG_APP_RGB_ENV := $(CROSS_ENV)
-
#
# autoconf
# FIXME: importance of switch
# --with-rgb-db-type=(text|dbm|ndbm) rgb database type (default is text)
#
-XORG_APP_RGB_AUTOCONF := \
+XORG_APP_RGB_CONF_TOOL := autoconf
+XORG_APP_RGB_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--datadir=$(XORG_DATADIR)
diff --git a/rules/xorg-app-setxkbmap.in b/rules/xorg-app-setxkbmap.in
deleted file mode 100644
index d667bf847..000000000
--- a/rules/xorg-app-setxkbmap.in
+++ /dev/null
@@ -1,16 +0,0 @@
-## SECTION=multimedia_xorg_app
-
-config XORG_APP_SETXKBMAP
- tristate
- depends on XORG_KEYBOARD_MAPPING_SUPPORT
- prompt "xorg setxkbmap"
- select XORG_APP_XKBCOMP
- help
- This tool is needed to load new keyboard mappings into a running
- X server. It can be run locally or remotly. If you are going to build
- a tiny terminal X server only, there is *no* need for this tool on the
- target. In this case only xkbcomp is required if you have trouble to
- configure a special keyboard mapping.
- For a full blown X server setxkbmap can be useful, but is not
- required for keyboard setup. It can be done by xorg.conf configuration
- and xkbcomp only at X server's startup.
diff --git a/rules/xorg-app-setxkbmap.make b/rules/xorg-app-setxkbmap.make
deleted file mode 100644
index 08643441e..000000000
--- a/rules/xorg-app-setxkbmap.make
+++ /dev/null
@@ -1,57 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Erwin Rol
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_APP_SETXKBMAP) += xorg-app-setxkbmap
-
-#
-# Paths and names
-#
-XORG_APP_SETXKBMAP_VERSION := 1.3.2
-XORG_APP_SETXKBMAP_MD5 := 93e736c98fb75856ee8227a0c49a128d
-XORG_APP_SETXKBMAP := setxkbmap-$(XORG_APP_SETXKBMAP_VERSION)
-XORG_APP_SETXKBMAP_SUFFIX := tar.bz2
-XORG_APP_SETXKBMAP_URL := $(call ptx/mirror, XORG, individual/app/$(XORG_APP_SETXKBMAP).$(XORG_APP_SETXKBMAP_SUFFIX))
-XORG_APP_SETXKBMAP_SOURCE := $(SRCDIR)/$(XORG_APP_SETXKBMAP).$(XORG_APP_SETXKBMAP_SUFFIX)
-XORG_APP_SETXKBMAP_DIR := $(BUILDDIR)/$(XORG_APP_SETXKBMAP)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-XORG_APP_SETXKBMAP_CONF_TOOL := autoconf
-XORG_APP_SETXKBMAP_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --datadir=$(XORG_DATADIR)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-app-setxkbmap.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-app-setxkbmap)
- @$(call install_fixup, xorg-app-setxkbmap,PRIORITY,optional)
- @$(call install_fixup, xorg-app-setxkbmap,SECTION,base)
- @$(call install_fixup, xorg-app-setxkbmap,AUTHOR,"Juergen Beisert")
- @$(call install_fixup, xorg-app-setxkbmap,DESCRIPTION,missing)
-
- @$(call install_copy, xorg-app-setxkbmap, 0, 0, 0755, -, \
- /usr/bin/setxkbmap)
-
- @$(call install_finish, xorg-app-setxkbmap)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-app-xdm.in b/rules/xorg-app-xdm.in
deleted file mode 100644
index f7fa352b9..000000000
--- a/rules/xorg-app-xdm.in
+++ /dev/null
@@ -1,38 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=multimedia_xorg_app
-
-menuconfig XORG_APP_XDM
- tristate
- prompt "xorg XDM"
- select LIBC_CRYPT
- select XORG_LIB_XPM
- select XORG_LIB_XMU
- select XORG_LIB_XAW
- select XORG_LIB_XAW_V7
-# FIX: When the X server supports Xinerama, this package needs
-# the library ready for use!
- select XORG_LIB_XINERAMA if XORG_SERVER_EXT_XINERAMA
- help
- XDM is the graphical login manager
-
- STAGING: remove in PTXdist 2022.01.0
- Upstream mostly dead and fails to build with glibc 2.32.
-
-if XORG_APP_XDM
-
-config XORG_APP_XDM_SYSTEMD_UNIT
- bool
- default y
- depends on SYSTEMD
- prompt "install systemd unit files for XDM"
-
-config XORG_APP_XDM_DEV_RANDOM
- string
- prompt "Random device for XDM"
- default "/dev/urandom"
- help
- Select a device for random numbers. Note: /dev/random can block
- a read, so it can also block XDM!
-
-endif
diff --git a/rules/xorg-app-xdm.make b/rules/xorg-app-xdm.make
deleted file mode 100644
index 7bbea5a92..000000000
--- a/rules/xorg-app-xdm.make
+++ /dev/null
@@ -1,76 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Erwin Rol
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_APP_XDM) += xorg-app-xdm
-
-#
-# Paths and names
-#
-XORG_APP_XDM_VERSION := 1.1.12
-XORG_APP_XDM_MD5 := 47c4c3bf8d59b64b64d134df8b5e5ec5
-XORG_APP_XDM := xdm-$(XORG_APP_XDM_VERSION)
-XORG_APP_XDM_SUFFIX := tar.bz2
-XORG_APP_XDM_URL := $(call ptx/mirror, XORG, individual/app/$(XORG_APP_XDM).$(XORG_APP_XDM_SUFFIX))
-XORG_APP_XDM_SOURCE := $(SRCDIR)/$(XORG_APP_XDM).$(XORG_APP_XDM_SUFFIX)
-XORG_APP_XDM_DIR := $(BUILDDIR)/$(XORG_APP_XDM)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-XORG_APP_XDM_BINCONFIG_GLOB := ""
-
-#
-# autoconf
-#
-XORG_APP_XDM_CONF_TOOL := autoconf
-XORG_APP_XDM_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- $(XORG_OPTIONS_TRANS) \
- --$(call ptx/endis, PTXCONF_XORG_SERVER_OPT_SECURE_RPC)-secure-rpc \
- --datadir=$(XORG_DATADIR) \
- --enable-xpm-logos \
- --disable-xdmshell \
- --disable-xdm-auth \
- --without-pam \
- --without-selinux \
- --with-systemdsystemunitdir=/usr/lib/systemd/system \
- --with-random-device=$(XORG_APP_XDM_DEV_RANDOM) \
- --with-utmp-file=/var/run/utmp \
- --with-wtmp-file=/var/log/wtmp
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-app-xdm.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-app-xdm)
- @$(call install_fixup, xorg-app-xdm,PRIORITY,optional)
- @$(call install_fixup, xorg-app-xdm,SECTION,base)
- @$(call install_fixup, xorg-app-xdm,AUTHOR,"Erwin Rol <ero@pengutronix.de>")
- @$(call install_fixup, xorg-app-xdm,DESCRIPTION,missing)
-
- @$(call install_copy, xorg-app-xdm, 0, 0, 0755, -, /usr/bin/xdm)
-
-ifdef PTXCONF_XORG_APP_XDM_SYSTEMD_UNIT
- @$(call install_alternative, xorg-app-xdm, 0, 0, 0644, \
- /usr/lib/systemd/system/xdm.service)
- @$(call install_link, xorg-app-xdm, ../xdm.service, \
- /usr/lib/systemd/system/graphical.target.wants/xdm.service)
-endif
-
- @$(call install_finish, xorg-app-xdm)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-app-xeyes.make b/rules/xorg-app-xeyes.make
index fb3bb403d..526aba99d 100644
--- a/rules/xorg-app-xeyes.make
+++ b/rules/xorg-app-xeyes.make
@@ -27,13 +27,11 @@ XORG_APP_XEYES_LICENSE := MIT
# Prepare
# ----------------------------------------------------------------------------
-XORG_APP_XEYES_PATH := PATH=$(CROSS_PATH)
-XORG_APP_XEYES_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_APP_XEYES_AUTOCONF := \
+XORG_APP_XEYES_CONF_TOOL := autoconf
+XORG_APP_XEYES_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--datadir=$(XORG_DATADIR)
diff --git a/rules/xorg-app-xhost.in b/rules/xorg-app-xhost.in
deleted file mode 100644
index e88319d28..000000000
--- a/rules/xorg-app-xhost.in
+++ /dev/null
@@ -1,17 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=multimedia_xorg_app
-
-config XORG_APP_XHOST
- tristate
- select XORG_LIB_X11
- select XORG_LIB_XAU
- select XORG_LIB_XMU
- select XORG_OPTIONS_TRANS_UNIX if !XORG_OPTIONS_TRANS_TCP
- prompt "xorg xhost"
- help
- This package provides xhost, the server access control program for X.
- This is from the modular X.org X11 project.
-
- STAGING: remove in PTXdist 2022.01.0
- Upstream mostly dead and fails to build with glibc 2.32.
diff --git a/rules/xorg-app-xhost.make b/rules/xorg-app-xhost.make
deleted file mode 100644
index d690b6783..000000000
--- a/rules/xorg-app-xhost.make
+++ /dev/null
@@ -1,60 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Sascha Hauer
-# 2009 by Marc Kleine-Budde <mkl@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_APP_XHOST) += xorg-app-xhost
-
-#
-# Paths and names
-#
-XORG_APP_XHOST_VERSION := 1.0.8
-XORG_APP_XHOST_MD5 := a48c72954ae6665e0616f6653636da8c
-XORG_APP_XHOST := xhost-$(XORG_APP_XHOST_VERSION)
-XORG_APP_XHOST_SUFFIX := tar.bz2
-XORG_APP_XHOST_URL := $(call ptx/mirror, XORG, individual/app/$(XORG_APP_XHOST).$(XORG_APP_XHOST_SUFFIX))
-XORG_APP_XHOST_SOURCE := $(SRCDIR)/$(XORG_APP_XHOST).$(XORG_APP_XHOST_SUFFIX)
-XORG_APP_XHOST_DIR := $(BUILDDIR)/$(XORG_APP_XHOST)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-XORG_APP_XHOST_CONF_TOOL := autoconf
-XORG_APP_XHOST_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- $(XORG_OPTIONS_TRANS) \
- --datadir=$(XORG_DATADIR) \
- --$(call ptx/endis, PTXCONF_XORG_SERVER_OPT_SECURE_RPC)-secure-rpc
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-app-xhost.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-app-xhost)
- @$(call install_fixup, xorg-app-xhost,PRIORITY,optional)
- @$(call install_fixup, xorg-app-xhost,SECTION,base)
- @$(call install_fixup, xorg-app-xhost,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, xorg-app-xhost,DESCRIPTION,missing)
-
- @$(call install_copy, xorg-app-xhost, 0, 0, 0755, -, \
- $(XORG_PREFIX)/bin/xhost)
-
- @$(call install_finish, xorg-app-xhost)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-app-xinit.in b/rules/xorg-app-xinit.in
index d82c3f5a8..a8371ae6a 100644
--- a/rules/xorg-app-xinit.in
+++ b/rules/xorg-app-xinit.in
@@ -4,9 +4,9 @@ menuconfig XORG_APP_XINIT
tristate
select XORG_LIB_X11
select XORG_APP_XAUTH if XORG_APP_XINIT_STARTX && RUNTIME
- select UTIL_LINUX_NG if XORG_APP_XINIT_STARTX && RUNTIME
- select UTIL_LINUX_NG_MCOOKIE if XORG_APP_XINIT_STARTX
- prompt "xorg xinit"
+ select UTIL_LINUX if XORG_APP_XINIT_STARTX && RUNTIME
+ select UTIL_LINUX_MCOOKIE if XORG_APP_XINIT_STARTX
+ prompt "xorg xinit "
help
This package provides 'xinit' and 'startx', utilities for starting
the X Window System server. This is from the modular X.org.
diff --git a/rules/xorg-app-xinput.in b/rules/xorg-app-xinput.in
index 876bef4ef..a67f71c04 100644
--- a/rules/xorg-app-xinput.in
+++ b/rules/xorg-app-xinput.in
@@ -10,5 +10,5 @@ config XORG_APP_XINPUT
select XORGPROTO
prompt "xinput"
help
- Xinput is an utility for configuring and testing XInput
+ Xinput is a utility for configuring and testing XInput
devices.
diff --git a/rules/xorg-app-xkbcomp.make b/rules/xorg-app-xkbcomp.make
index 9b949e6fd..696496ac9 100644
--- a/rules/xorg-app-xkbcomp.make
+++ b/rules/xorg-app-xkbcomp.make
@@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_XORG_APP_XKBCOMP) += xorg-app-xkbcomp
#
# Paths and names
#
-XORG_APP_XKBCOMP_VERSION := 1.4.2
-XORG_APP_XKBCOMP_MD5 := 12610df19df2af3797f2c130ee2bce97
+XORG_APP_XKBCOMP_VERSION := 1.4.5
+XORG_APP_XKBCOMP_MD5 := c45e9f7971a58b8f0faf10f6d8f298c0
XORG_APP_XKBCOMP := xkbcomp-$(XORG_APP_XKBCOMP_VERSION)
XORG_APP_XKBCOMP_SUFFIX := tar.bz2
XORG_APP_XKBCOMP_URL := $(call ptx/mirror, XORG, individual/app/$(XORG_APP_XKBCOMP).$(XORG_APP_XKBCOMP_SUFFIX))
@@ -35,6 +35,9 @@ XORG_APP_XKBCOMP_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--datadir=$(XORG_DATADIR)
+XORG_APP_XKBCOMP_MAKE_ENV := \
+ ICECC_REMOTE_CPP=0
+
# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
diff --git a/rules/xorg-app-xrdb.in b/rules/xorg-app-xrdb.in
index fc81db320..ca4c093d7 100644
--- a/rules/xorg-app-xrdb.in
+++ b/rules/xorg-app-xrdb.in
@@ -1,7 +1,7 @@
## SECTION=multimedia_xorg_app
config XORG_APP_XRDB
- tristate
+ tristate
select XORG_LIB_XMU
select XORG_LIB_XT
select XORG_LIB_SM
diff --git a/rules/xorg-app-xsetroot.make b/rules/xorg-app-xsetroot.make
index f0528d594..7dee679fb 100644
--- a/rules/xorg-app-xsetroot.make
+++ b/rules/xorg-app-xsetroot.make
@@ -26,13 +26,11 @@ XORG_APP_XSETROOT_DIR := $(BUILDDIR)/$(XORG_APP_XSETROOT)
# Prepare
# ----------------------------------------------------------------------------
-XORG_APP_XSETROOT_PATH := PATH=$(CROSS_PATH)
-XORG_APP_XSETROOT_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_APP_XSETROOT_AUTOCONF := \
+XORG_APP_XSETROOT_CONF_TOOL := autoconf
+XORG_APP_XSETROOT_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--datadir=$(XORG_DATADIR)
diff --git a/rules/xorg-app-xvinfo.make b/rules/xorg-app-xvinfo.make
index 0dc750163..a7c9af467 100644
--- a/rules/xorg-app-xvinfo.make
+++ b/rules/xorg-app-xvinfo.make
@@ -27,13 +27,11 @@ XORG_APP_XVINFO_DIR := $(BUILDDIR)/$(XORG_APP_XVINFO)
# Prepare
# ----------------------------------------------------------------------------
-XORG_APP_XVINFO_PATH := PATH=$(CROSS_PATH)
-XORG_APP_XVINFO_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_APP_XVINFO_AUTOCONF := \
+XORG_APP_XVINFO_CONF_TOOL := autoconf
+XORG_APP_XVINFO_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--datadir=$(XORG_DATADIR)
diff --git a/rules/xorg-data-xbitmaps.make b/rules/xorg-data-xbitmaps.make
index 2c7c14ad1..6a6e150c9 100644
--- a/rules/xorg-data-xbitmaps.make
+++ b/rules/xorg-data-xbitmaps.make
@@ -27,13 +27,11 @@ XORG_DATA_XBITMAPS_DIR := $(BUILDDIR)/$(XORG_DATA_XBITMAPS)
# Prepare
# ----------------------------------------------------------------------------
-XORG_DATA_XBITMAPS_PATH := PATH=$(CROSS_PATH)
-XORG_DATA_XBITMAPS_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_DATA_XBITMAPS_AUTOCONF := $(CROSS_AUTOCONF_USR)
+XORG_DATA_XBITMAPS_CONF_TOOL := autoconf
+XORG_DATA_XBITMAPS_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/xorg-driver-input-evdev.in b/rules/xorg-driver-input-evdev.in
deleted file mode 100644
index a064d0561..000000000
--- a/rules/xorg-driver-input-evdev.in
+++ /dev/null
@@ -1,18 +0,0 @@
-## SECTION=multimedia_xorg_driver_input
-
-config XORG_DRIVER_INPUT_EVDEV
- tristate
- prompt "evdev"
- depends on XORG_DRIVER_INPUT
- select XORGPROTO
- select UDEV
- select UDEV_LIBUDEV
- select LIBEVDEV
- select MTDEV
- select XORG_SERVER
- select XORG_SERVER_XORG
- help
- evdev is an Xorg input driver for Linux's generic
- event devices. It therefore supports all input
- devices that the kernel knows about, including
- most mice and keyboards.
diff --git a/rules/xorg-driver-input-evdev.make b/rules/xorg-driver-input-evdev.make
deleted file mode 100644
index 8937a5ae5..000000000
--- a/rules/xorg-driver-input-evdev.make
+++ /dev/null
@@ -1,59 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Erwin Rol
-# (C) 2010 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_DRIVER_INPUT_EVDEV) += xorg-driver-input-evdev
-
-#
-# Paths and names
-#
-XORG_DRIVER_INPUT_EVDEV_VERSION := 2.10.6
-XORG_DRIVER_INPUT_EVDEV_MD5 := e8bd1edc6751f92e425cae7eba3c61eb
-XORG_DRIVER_INPUT_EVDEV := xf86-input-evdev-$(XORG_DRIVER_INPUT_EVDEV_VERSION)
-XORG_DRIVER_INPUT_EVDEV_SUFFIX := tar.bz2
-XORG_DRIVER_INPUT_EVDEV_URL := $(call ptx/mirror, XORG, individual/driver/$(XORG_DRIVER_INPUT_EVDEV).$(XORG_DRIVER_INPUT_EVDEV_SUFFIX))
-XORG_DRIVER_INPUT_EVDEV_SOURCE := $(SRCDIR)/$(XORG_DRIVER_INPUT_EVDEV).$(XORG_DRIVER_INPUT_EVDEV_SUFFIX)
-XORG_DRIVER_INPUT_EVDEV_DIR := $(BUILDDIR)/$(XORG_DRIVER_INPUT_EVDEV)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-XORG_DRIVER_INPUT_EVDEV_CONF_ENV := \
- $(CROSS_ENV) \
- PTXDIST_PKG_CONFIG_VAR_NO_SYSROOT=sdkdir
-
-#
-# autoconf
-#
-XORG_DRIVER_INPUT_EVDEV_CONF_TOOL := autoconf
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-driver-input-evdev.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-driver-input-evdev)
- @$(call install_fixup, xorg-driver-input-evdev,PRIORITY,optional)
- @$(call install_fixup, xorg-driver-input-evdev,SECTION,base)
- @$(call install_fixup, xorg-driver-input-evdev,AUTHOR,"Erwin Rol <ero@pengutronix.de>")
- @$(call install_fixup, xorg-driver-input-evdev,DESCRIPTION,missing)
-
- @$(call install_copy, xorg-driver-input-evdev, 0, 0, 0755, -, \
- /usr/lib/xorg/modules/input/evdev_drv.so)
-
- @$(call install_finish, xorg-driver-input-evdev)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-driver-input-keyboard.in b/rules/xorg-driver-input-keyboard.in
deleted file mode 100644
index e1f1446ea..000000000
--- a/rules/xorg-driver-input-keyboard.in
+++ /dev/null
@@ -1,11 +0,0 @@
-## SECTION=multimedia_xorg_driver_input
-
-config XORG_DRIVER_INPUT_KEYBOARD
- tristate
- prompt "Keyboard"
- depends on XORG_DRIVER_INPUT
- select XORGPROTO
- select XORG_SERVER
- select XORG_SERVER_XORG
- help
- kbd is an Xorg input driver for keyboards.
diff --git a/rules/xorg-driver-input-keyboard.make b/rules/xorg-driver-input-keyboard.make
deleted file mode 100644
index fb2af0541..000000000
--- a/rules/xorg-driver-input-keyboard.make
+++ /dev/null
@@ -1,55 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Erwin Rol
-# (C) 2010 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_DRIVER_INPUT_KEYBOARD) += xorg-driver-input-keyboard
-
-#
-# Paths and names
-#
-XORG_DRIVER_INPUT_KEYBOARD_VERSION := 1.9.0
-XORG_DRIVER_INPUT_KEYBOARD_MD5 := a3a3f0dd32361dcdbd406e894dafe090
-XORG_DRIVER_INPUT_KEYBOARD := xf86-input-keyboard-$(XORG_DRIVER_INPUT_KEYBOARD_VERSION)
-XORG_DRIVER_INPUT_KEYBOARD_SUFFIX := tar.bz2
-XORG_DRIVER_INPUT_KEYBOARD_URL := $(call ptx/mirror, XORG, individual/driver/$(XORG_DRIVER_INPUT_KEYBOARD).$(XORG_DRIVER_INPUT_KEYBOARD_SUFFIX))
-XORG_DRIVER_INPUT_KEYBOARD_SOURCE := $(SRCDIR)/$(XORG_DRIVER_INPUT_KEYBOARD).$(XORG_DRIVER_INPUT_KEYBOARD_SUFFIX)
-XORG_DRIVER_INPUT_KEYBOARD_DIR := $(BUILDDIR)/$(XORG_DRIVER_INPUT_KEYBOARD)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-XORG_DRIVER_INPUT_KEYBOARD_CONF_TOOL := autoconf
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-driver-input-keyboard.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-driver-input-keyboard)
- @$(call install_fixup, xorg-driver-input-keyboard,PRIORITY,optional)
- @$(call install_fixup, xorg-driver-input-keyboard,SECTION,base)
- @$(call install_fixup, xorg-driver-input-keyboard,AUTHOR,"Erwin Rol <ero@pengutronix.de>")
- @$(call install_fixup, xorg-driver-input-keyboard,DESCRIPTION,missing)
-
- @$(call install_copy, xorg-driver-input-keyboard, 0, 0, 0755, -, \
- /usr/lib/xorg/modules/input/kbd_drv.so)
-
- @$(call install_finish, xorg-driver-input-keyboard)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-driver-input-mouse.in b/rules/xorg-driver-input-mouse.in
deleted file mode 100644
index 25804ce4d..000000000
--- a/rules/xorg-driver-input-mouse.in
+++ /dev/null
@@ -1,14 +0,0 @@
-## SECTION=multimedia_xorg_driver_input
-
-config XORG_DRIVER_INPUT_MOUSE
- tristate
- depends on XORG_DRIVER_INPUT
- select XORGPROTO
- select XORG_SERVER
- select XORG_SERVER_XORG
- prompt "Mouse"
- help
- mouse is an Xorg input driver for mice.
- The driver supports most available mouse types and interfaces.
- USB mice are only supported on some OSs, and the level of support
- for PS/2 mice depends on the OS.
diff --git a/rules/xorg-driver-input-mouse.make b/rules/xorg-driver-input-mouse.make
deleted file mode 100644
index 71f8c8d47..000000000
--- a/rules/xorg-driver-input-mouse.make
+++ /dev/null
@@ -1,59 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Erwin Rol
-# 2010 Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_DRIVER_INPUT_MOUSE) += xorg-driver-input-mouse
-
-#
-# Paths and names
-#
-XORG_DRIVER_INPUT_MOUSE_VERSION := 1.9.3
-XORG_DRIVER_INPUT_MOUSE_MD5 := a2104693bbcfe1413397f7905eecd3dc
-XORG_DRIVER_INPUT_MOUSE := xf86-input-mouse-$(XORG_DRIVER_INPUT_MOUSE_VERSION)
-XORG_DRIVER_INPUT_MOUSE_SUFFIX := tar.bz2
-XORG_DRIVER_INPUT_MOUSE_URL := $(call ptx/mirror, XORG, individual/driver/$(XORG_DRIVER_INPUT_MOUSE).$(XORG_DRIVER_INPUT_MOUSE_SUFFIX))
-XORG_DRIVER_INPUT_MOUSE_SOURCE := $(SRCDIR)/$(XORG_DRIVER_INPUT_MOUSE).$(XORG_DRIVER_INPUT_MOUSE_SUFFIX)
-XORG_DRIVER_INPUT_MOUSE_DIR := $(BUILDDIR)/$(XORG_DRIVER_INPUT_MOUSE)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-XORG_DRIVER_INPUT_MOUSE_CONF_ENV := \
- $(CROSS_ENV) \
- PTXDIST_PKG_CONFIG_VAR_NO_SYSROOT=sdkdir
-
-#
-# autoconf
-#
-XORG_DRIVER_INPUT_MOUSE_CONF_TOOL := autoconf
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-driver-input-mouse.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-driver-input-mouse)
- @$(call install_fixup, xorg-driver-input-mouse,PRIORITY,optional)
- @$(call install_fixup, xorg-driver-input-mouse,SECTION,base)
- @$(call install_fixup, xorg-driver-input-mouse,AUTHOR,"Erwin Rol <ero@pengutronix.de>")
- @$(call install_fixup, xorg-driver-input-mouse,DESCRIPTION,missing)
-
- @$(call install_copy, xorg-driver-input-mouse, 0, 0, 0755, -, \
- /usr/lib/xorg/modules/input/mouse_drv.so)
-
- @$(call install_finish, xorg-driver-input-mouse)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-driver-input-tslib.in b/rules/xorg-driver-input-tslib.in
deleted file mode 100644
index b6dd508ee..000000000
--- a/rules/xorg-driver-input-tslib.in
+++ /dev/null
@@ -1,11 +0,0 @@
-## SECTION=multimedia_xorg_driver_input
-
-config XORG_DRIVER_INPUT_TSLIB
- tristate
- depends on XORG_DRIVER_INPUT
- select XORG_SERVER
- select XORG_SERVER_XORG
- select TSLIB
- prompt "tslib"
- help
- tslib input driver for use of tslib based touchscreen devices as input
diff --git a/rules/xorg-driver-input-tslib.make b/rules/xorg-driver-input-tslib.make
deleted file mode 100644
index f9874fc78..000000000
--- a/rules/xorg-driver-input-tslib.make
+++ /dev/null
@@ -1,57 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Sascha Hauer
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_DRIVER_INPUT_TSLIB) += xorg-driver-input-tslib
-
-#
-# Paths and names
-#
-XORG_DRIVER_INPUT_TSLIB_VERSION := 0.0.6
-XORG_DRIVER_INPUT_TSLIB_MD5 := b7a4d2f11637ee3fcf432e044b1d017f
-XORG_DRIVER_INPUT_TSLIB := xf86-input-tslib-$(XORG_DRIVER_INPUT_TSLIB_VERSION)
-XORG_DRIVER_INPUT_TSLIB_SUFFIX := tar.bz2
-XORG_DRIVER_INPUT_TSLIB_URL := http://pengutronix.de/software/xf86-input-tslib/download/$(XORG_DRIVER_INPUT_TSLIB).$(XORG_DRIVER_INPUT_TSLIB_SUFFIX)
-XORG_DRIVER_INPUT_TSLIB_SOURCE := $(SRCDIR)/$(XORG_DRIVER_INPUT_TSLIB).$(XORG_DRIVER_INPUT_TSLIB_SUFFIX)
-XORG_DRIVER_INPUT_TSLIB_DIR := $(BUILDDIR)/$(XORG_DRIVER_INPUT_TSLIB)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-XORG_DRIVER_INPUT_TSLIB_PATH := PATH=$(CROSS_PATH)
-XORG_DRIVER_INPUT_TSLIB_ENV := $(CROSS_ENV)
-
-#
-# autoconf
-#
-XORG_DRIVER_INPUT_TSLIB_AUTOCONF := $(CROSS_AUTOCONF_USR)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-driver-input-tslib.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-driver-input-tslib)
- @$(call install_fixup, xorg-driver-input-tslib,PRIORITY,optional)
- @$(call install_fixup, xorg-driver-input-tslib,SECTION,base)
- @$(call install_fixup, xorg-driver-input-tslib,AUTHOR,"Erwin Rol <ero@pengutronix.de>")
- @$(call install_fixup, xorg-driver-input-tslib,DESCRIPTION,missing)
-
- @$(call install_copy, xorg-driver-input-tslib, 0, 0, 0755, -, \
- /usr/lib/xorg/modules/input/tslib_drv.so)
-
- @$(call install_finish, xorg-driver-input-tslib)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-driver-input-void.in b/rules/xorg-driver-input-void.in
deleted file mode 100644
index d94349abd..000000000
--- a/rules/xorg-driver-input-void.in
+++ /dev/null
@@ -1,12 +0,0 @@
-## SECTION=multimedia_xorg_driver_input
-
-config XORG_DRIVER_INPUT_VOID
- tristate
- depends on XORG_DRIVER_INPUT
- select XORG_SERVER
- select XORG_SERVER_XORG
- prompt "void"
- help
- This package provides the void input driver, which
- never actually registers any input events -- it is,
- as such, a 'fake' driver.
diff --git a/rules/xorg-driver-input-void.make b/rules/xorg-driver-input-void.make
deleted file mode 100644
index 90fe87c13..000000000
--- a/rules/xorg-driver-input-void.make
+++ /dev/null
@@ -1,55 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Erwin Rol
-# (C) 2010 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_DRIVER_INPUT_VOID) += xorg-driver-input-void
-
-#
-# Paths and names
-#
-XORG_DRIVER_INPUT_VOID_VERSION := 1.4.1
-XORG_DRIVER_INPUT_VOID_MD5 := 5227013b52b3ca85d6b7ec8adea988d4
-XORG_DRIVER_INPUT_VOID := xf86-input-void-$(XORG_DRIVER_INPUT_VOID_VERSION)
-XORG_DRIVER_INPUT_VOID_SUFFIX := tar.bz2
-XORG_DRIVER_INPUT_VOID_URL := $(call ptx/mirror, XORG, individual/driver/$(XORG_DRIVER_INPUT_VOID).$(XORG_DRIVER_INPUT_VOID_SUFFIX))
-XORG_DRIVER_INPUT_VOID_SOURCE := $(SRCDIR)/$(XORG_DRIVER_INPUT_VOID).$(XORG_DRIVER_INPUT_VOID_SUFFIX)
-XORG_DRIVER_INPUT_VOID_DIR := $(BUILDDIR)/$(XORG_DRIVER_INPUT_VOID)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-XORG_DRIVER_INPUT_VOID_CONF_TOOL := autoconf
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-driver-input-void.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-driver-input-void)
- @$(call install_fixup, xorg-driver-input-void,PRIORITY,optional)
- @$(call install_fixup, xorg-driver-input-void,SECTION,base)
- @$(call install_fixup, xorg-driver-input-void,AUTHOR,"Erwin Rol <ero@pengutronix.de>")
- @$(call install_fixup, xorg-driver-input-void,DESCRIPTION,missing)
-
- @$(call install_copy, xorg-driver-input-void, 0, 0, 0755, -, \
- /usr/lib/xorg/modules/input/void_drv.so)
-
- @$(call install_finish, xorg-driver-input-void)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-driver-video-apm.in b/rules/xorg-driver-video-apm.in
deleted file mode 100644
index a3df8717e..000000000
--- a/rules/xorg-driver-video-apm.in
+++ /dev/null
@@ -1,11 +0,0 @@
-## SECTION=multimedia_xorg_driver_video
-
-config XORG_DRIVER_VIDEO_APM
- tristate
- depends on XORG_DRIVER_VIDEO
- select XORG_SERVER
- select XORG_SERVER_XORG
- select XORGPROTO
- prompt "APM"
- help
- This is the Alliance ProMotion video driver for the modular Xorg server.
diff --git a/rules/xorg-driver-video-apm.make b/rules/xorg-driver-video-apm.make
deleted file mode 100644
index 0c3510fbb..000000000
--- a/rules/xorg-driver-video-apm.make
+++ /dev/null
@@ -1,55 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Erwin Rol
-# (C) 2010 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_DRIVER_VIDEO_APM) += xorg-driver-video-apm
-
-#
-# Paths and names
-#
-XORG_DRIVER_VIDEO_APM_VERSION := 1.3.0
-XORG_DRIVER_VIDEO_APM_MD5 := 6f59f323c6d3fe7217a8728f17c137a6
-XORG_DRIVER_VIDEO_APM := xf86-video-apm-$(XORG_DRIVER_VIDEO_APM_VERSION)
-XORG_DRIVER_VIDEO_APM_SUFFIX := tar.bz2
-XORG_DRIVER_VIDEO_APM_URL := $(call ptx/mirror, XORG, individual/driver/$(XORG_DRIVER_VIDEO_APM).$(XORG_DRIVER_VIDEO_APM_SUFFIX))
-XORG_DRIVER_VIDEO_APM_SOURCE := $(SRCDIR)/$(XORG_DRIVER_VIDEO_APM).$(XORG_DRIVER_VIDEO_APM_SUFFIX)
-XORG_DRIVER_VIDEO_APM_DIR := $(BUILDDIR)/$(XORG_DRIVER_VIDEO_APM)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-XORG_DRIVER_VIDEO_APM_CONF_TOOL := autoconf
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-driver-video-apm.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-driver-video-apm)
- @$(call install_fixup, xorg-driver-video-apm,PRIORITY,optional)
- @$(call install_fixup, xorg-driver-video-apm,SECTION,base)
- @$(call install_fixup, xorg-driver-video-apm,AUTHOR,"Erwin Rol <ero@pengutronix.de>")
- @$(call install_fixup, xorg-driver-video-apm,DESCRIPTION,missing)
-
- @$(call install_lib, xorg-driver-video-apm, 0, 0, 0644, \
- xorg/modules/drivers/apm_drv)
-
- @$(call install_finish, xorg-driver-video-apm)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-driver-video-ati.in b/rules/xorg-driver-video-ati.in
deleted file mode 100644
index e7c32fc1e..000000000
--- a/rules/xorg-driver-video-ati.in
+++ /dev/null
@@ -1,26 +0,0 @@
-## SECTION=multimedia_xorg_driver_video
-
-# configuration for xorg-driver-video-ati
-
-config XORG_DRIVER_VIDEO_ATI
- tristate
- depends on XORG_DRIVER_VIDEO
-
- select XORG_SERVER
- select XORG_SERVER_XORG
- select XORGPROTO
- select XORG_SERVER_EXT_XV
- select XORG_SERVER_EXT_DRI
- select XORG_SERVER_EXT_COMPOSITE
-
- select LIBDRM
- select LIBDRM_RADEON
-
- select UDEV
- select UDEV_LIBUDEV
- select LIBPCIACCESS
-
- prompt "Ati"
- help
- This is the video driver for ATI cards for the modular Xorg server.
-
diff --git a/rules/xorg-driver-video-ati.make b/rules/xorg-driver-video-ati.make
deleted file mode 100644
index 5ee156a70..000000000
--- a/rules/xorg-driver-video-ati.make
+++ /dev/null
@@ -1,62 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Erwin Rol
-# (C) 2010 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_DRIVER_VIDEO_ATI) += xorg-driver-video-ati
-
-#
-# Paths and names
-#
-XORG_DRIVER_VIDEO_ATI_VERSION := 19.0.1
-XORG_DRIVER_VIDEO_ATI_MD5 := 47eccf71823206ade9629cba69de7ef6
-XORG_DRIVER_VIDEO_ATI := xf86-video-ati-$(XORG_DRIVER_VIDEO_ATI_VERSION)
-XORG_DRIVER_VIDEO_ATI_SUFFIX := tar.bz2
-XORG_DRIVER_VIDEO_ATI_URL := $(call ptx/mirror, XORG, individual/driver/$(XORG_DRIVER_VIDEO_ATI).$(XORG_DRIVER_VIDEO_ATI_SUFFIX))
-XORG_DRIVER_VIDEO_ATI_SOURCE := $(SRCDIR)/$(XORG_DRIVER_VIDEO_ATI).$(XORG_DRIVER_VIDEO_ATI_SUFFIX)
-XORG_DRIVER_VIDEO_ATI_DIR := $(BUILDDIR)/$(XORG_DRIVER_VIDEO_ATI)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-XORG_DRIVER_VIDEO_ATI_CONF_TOOL := autoconf
-XORG_DRIVER_VIDEO_ATI_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- $(GLOBAL_LARGE_FILE_OPTION) \
- --enable-udev \
- --disable-glamor
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-driver-video-ati.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-driver-video-ati)
- @$(call install_fixup, xorg-driver-video-ati,PRIORITY,optional)
- @$(call install_fixup, xorg-driver-video-ati,SECTION,base)
- @$(call install_fixup, xorg-driver-video-ati,AUTHOR,"Erwin Rol <ero@pengutronix.de>")
- @$(call install_fixup, xorg-driver-video-ati,DESCRIPTION,missing)
-
- @$(call install_lib, xorg-driver-video-ati, 0, 0, 0644, \
- xorg/modules/drivers/ati_drv)
- @$(call install_lib, xorg-driver-video-ati, 0, 0, 0644, \
- xorg/modules/drivers/radeon_drv)
-
- @$(call install_finish, xorg-driver-video-ati)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-driver-video-dummy.in b/rules/xorg-driver-video-dummy.in
deleted file mode 100644
index ad4930f04..000000000
--- a/rules/xorg-driver-video-dummy.in
+++ /dev/null
@@ -1,17 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=multimedia_xorg_driver_video
-
-config XORG_DRIVER_VIDEO_DUMMY
- tristate
- depends on XORG_DRIVER_VIDEO
- select XORG_SERVER
- select XORG_SERVER_EXT_DGA
- select XORG_SERVER_XORG
- select XORGPROTO
- prompt "Dummy"
- help
- This package contains the X.Org xf86-video-dummy driver.
-
- STAGING: remove in ptxdist-2021.06.0
- Unclear license and not really needed.
diff --git a/rules/xorg-driver-video-dummy.make b/rules/xorg-driver-video-dummy.make
deleted file mode 100644
index 98f311232..000000000
--- a/rules/xorg-driver-video-dummy.make
+++ /dev/null
@@ -1,55 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Erwin Rol
-# (C) 2010 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_DRIVER_VIDEO_DUMMY) += xorg-driver-video-dummy
-
-#
-# Paths and names
-#
-XORG_DRIVER_VIDEO_DUMMY_VERSION := 0.3.8
-XORG_DRIVER_VIDEO_DUMMY_MD5 := dfd8b9d02a5f12decd474b4c52775977
-XORG_DRIVER_VIDEO_DUMMY := xf86-video-dummy-$(XORG_DRIVER_VIDEO_DUMMY_VERSION)
-XORG_DRIVER_VIDEO_DUMMY_SUFFIX := tar.bz2
-XORG_DRIVER_VIDEO_DUMMY_URL := $(call ptx/mirror, XORG, individual/driver/$(XORG_DRIVER_VIDEO_DUMMY).$(XORG_DRIVER_VIDEO_DUMMY_SUFFIX))
-XORG_DRIVER_VIDEO_DUMMY_SOURCE := $(SRCDIR)/$(XORG_DRIVER_VIDEO_DUMMY).$(XORG_DRIVER_VIDEO_DUMMY_SUFFIX)
-XORG_DRIVER_VIDEO_DUMMY_DIR := $(BUILDDIR)/$(XORG_DRIVER_VIDEO_DUMMY)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-XORG_DRIVER_VIDEO_DUMMY_CONF_TOOL := autoconf
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-driver-video-dummy.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-driver-video-dummy)
- @$(call install_fixup, xorg-driver-video-dummy,PRIORITY,optional)
- @$(call install_fixup, xorg-driver-video-dummy,SECTION,base)
- @$(call install_fixup, xorg-driver-video-dummy,AUTHOR,"Erwin Rol <ero@pengutronix.de>")
- @$(call install_fixup, xorg-driver-video-dummy,DESCRIPTION,missing)
-
- @$(call install_lib, xorg-driver-video-dummy, 0, 0, 0644, \
- xorg/modules/drivers/dummy_drv)
-
- @$(call install_finish, xorg-driver-video-dummy)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-driver-video-fbdev.in b/rules/xorg-driver-video-fbdev.in
deleted file mode 100644
index f1978d9e5..000000000
--- a/rules/xorg-driver-video-fbdev.in
+++ /dev/null
@@ -1,13 +0,0 @@
-## SECTION=multimedia_xorg_driver_video
-
-config XORG_DRIVER_VIDEO_FBDEV
- tristate
- depends on XORG_DRIVER_VIDEO
- select XORG_SERVER
- select XORG_SERVER_XORG
- select XORGPROTO
- select XORG_SERVER_EXT_DGA
- select XORG_SERVER_EXT_XV
- prompt "FBDev"
- help
- fbdev is a driver for framebuffer devices.
diff --git a/rules/xorg-driver-video-fbdev.make b/rules/xorg-driver-video-fbdev.make
deleted file mode 100644
index 26ef8f110..000000000
--- a/rules/xorg-driver-video-fbdev.make
+++ /dev/null
@@ -1,65 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Erwin Rol
-# (C) 2010 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_DRIVER_VIDEO_FBDEV) += xorg-driver-video-fbdev
-
-#
-# Paths and names
-#
-XORG_DRIVER_VIDEO_FBDEV_VERSION := 0.5.0
-XORG_DRIVER_VIDEO_FBDEV_MD5 := f07475655376be5a124d8187aacd87b6
-XORG_DRIVER_VIDEO_FBDEV := xf86-video-fbdev-$(XORG_DRIVER_VIDEO_FBDEV_VERSION)
-XORG_DRIVER_VIDEO_FBDEV_SUFFIX := tar.bz2
-XORG_DRIVER_VIDEO_FBDEV_URL := $(call ptx/mirror, XORG, individual/driver/$(XORG_DRIVER_VIDEO_FBDEV).$(XORG_DRIVER_VIDEO_FBDEV_SUFFIX))
-XORG_DRIVER_VIDEO_FBDEV_SOURCE := $(SRCDIR)/$(XORG_DRIVER_VIDEO_FBDEV).$(XORG_DRIVER_VIDEO_FBDEV_SUFFIX)
-XORG_DRIVER_VIDEO_FBDEV_DIR := $(BUILDDIR)/$(XORG_DRIVER_VIDEO_FBDEV)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-# Do not resolve symbols in fbdev_drv.so at load time, so it has a chance
-# to load the libfbdevhw.so submodule before using its symbols.
-# This fixes the following error when starting Xorg:
-# (EE) Failed to load /usr/lib/xorg/modules/drivers/fbdev_drv.so: /usr/lib/xorg/modules/drivers/fbdev_drv.so: undefined symbol: fbdevHWSave
-XORG_DRIVER_VIDEO_FBDEV_WRAPPER_BLACKLIST := \
- TARGET_HARDEN_BINDNOW
-
-#
-# autoconf
-#
-XORG_DRIVER_VIDEO_FBDEV_CONF_TOOL := autoconf
-XORG_DRIVER_VIDEO_FBDEV_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --disable-pciaccess
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-driver-video-fbdev.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-driver-video-fbdev)
- @$(call install_fixup, xorg-driver-video-fbdev,PRIORITY,optional)
- @$(call install_fixup, xorg-driver-video-fbdev,SECTION,base)
- @$(call install_fixup, xorg-driver-video-fbdev,AUTHOR,"Erwin Rol <ero@pengutronix.de>")
- @$(call install_fixup, xorg-driver-video-fbdev,DESCRIPTION,missing)
-
- @$(call install_lib, xorg-driver-video-fbdev, 0, 0, 0644, \
- xorg/modules/drivers/fbdev_drv)
-
- @$(call install_finish, xorg-driver-video-fbdev)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-driver-video-intel.in b/rules/xorg-driver-video-intel.in
deleted file mode 100644
index c112fc731..000000000
--- a/rules/xorg-driver-video-intel.in
+++ /dev/null
@@ -1,50 +0,0 @@
-## SECTION=multimedia_xorg_driver_video
-
-menuconfig XORG_DRIVER_VIDEO_INTEL
- tristate
- select UDEV
- select UDEV_LIBUDEV
- select LIBDRM
- select LIBDRM_INTEL
- select LIBPCIACCESS
- select PIXMAN
- select XCB_UTIL
- select XORG_LIB_X11
- select XORGPROTO
- select XORG_SERVER
- select XORG_SERVER_XORG
-
-
- # Xorg segfaults without XV extension
- select XORG_SERVER_EXT_XV
- select XORG_SERVER_EXT_DRI2 if XORG_DRIVER_VIDEO_INTEL_DRI
- select XORG_SERVER_EXT_GLX if XORG_DRIVER_VIDEO_INTEL_DRI
-
- select XORG_LIB_XVMC if XORG_DRIVER_VIDEO_INTEL_XVMC
- select XORG_SERVER_EXT_DRI2 if XORG_DRIVER_VIDEO_INTEL_XVMC
- select XORG_SERVER_EXT_XVMC if XORG_DRIVER_VIDEO_INTEL_XVMC
- select LIBXCB if XORG_DRIVER_VIDEO_INTEL_XVMC
-
- prompt "Intel"
- help
- This is the video driver for Intel cards for the modular Xorg server.
-
-if XORG_DRIVER_VIDEO_INTEL
-
-comment "X.org Intel Driver"
-
-config XORG_DRIVER_VIDEO_INTEL_DRI
- bool
- prompt "Enable DRI" if BROKEN
- default y
- help
- --enable-dri
- Note: The driver cannot be built without this option enabled.
-
-config XORG_DRIVER_VIDEO_INTEL_XVMC
- bool
- prompt "Enable XvMC Support"
- help
- Enable XvMC support
-
-endif
diff --git a/rules/xorg-driver-video-intel.make b/rules/xorg-driver-video-intel.make
deleted file mode 100644
index 9f03102b1..000000000
--- a/rules/xorg-driver-video-intel.make
+++ /dev/null
@@ -1,84 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006,2010 by Erwin Rol <erwin@erwinrol.com>
-# 2009 by Marc Kleine-Budde <mkl@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_ARCH_X86)-$(PTXCONF_XORG_DRIVER_VIDEO_INTEL) += xorg-driver-video-intel
-
-#
-# Paths and names
-#
-XORG_DRIVER_VIDEO_INTEL_VERSION := 2.99.917-892-gc6cb1b199598
-XORG_DRIVER_VIDEO_INTEL_MD5 := 671973850a065968455910e904704fec
-XORG_DRIVER_VIDEO_INTEL := xf86-video-intel-$(XORG_DRIVER_VIDEO_INTEL_VERSION)
-XORG_DRIVER_VIDEO_INTEL_SUFFIX := tar.bz2
-XORG_DRIVER_VIDEO_INTEL_URL := https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel/-/archive/$(XORG_DRIVER_VIDEO_INTEL_VERSION)/$(XORG_DRIVER_VIDEO_INTEL).$(XORG_DRIVER_VIDEO_INTEL_SUFFIX)
-XORG_DRIVER_VIDEO_INTEL_SOURCE := $(SRCDIR)/$(XORG_DRIVER_VIDEO_INTEL).$(XORG_DRIVER_VIDEO_INTEL_SUFFIX)
-XORG_DRIVER_VIDEO_INTEL_DIR := $(BUILDDIR)/$(XORG_DRIVER_VIDEO_INTEL)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-XORG_DRIVER_VIDEO_INTEL_CONF_TOOL := autoconf
-XORG_DRIVER_VIDEO_INTEL_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- $(GLOBAL_LARGE_FILE_OPTION) \
- --disable-backlight \
- --disable-backlight-helper \
- --disable-gen4asm \
- --enable-udev \
- --disable-tools \
- --$(call ptx/endis, PTXCONF_XORG_DRIVER_VIDEO_INTEL_DRI)-dri \
- --$(call ptx/endis, PTXCONF_XORG_DRIVER_VIDEO_INTEL_DRI)-dri1 \
- --$(call ptx/endis, PTXCONF_XORG_DRIVER_VIDEO_INTEL_DRI)-dri2 \
- --$(call ptx/endis, PTXCONF_XORG_DRIVER_VIDEO_INTEL_DRI)-dri3 \
- --$(call ptx/endis, PTXCONF_XORG_DRIVER_VIDEO_INTEL_XVMC)-xvmc \
- --enable-kms \
- --disable-ums \
- --enable-kms-only \
- --disable-ums-only \
- --disable-sna \
- --enable-uxa \
- --disable-xaa \
- --disable-dga \
- --disable-tear-free \
- --disable-create2 \
- --disable-async-swap \
- --disable-debug \
- --disable-valgrind
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-driver-video-intel.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-driver-video-intel)
- @$(call install_fixup, xorg-driver-video-intel,PRIORITY,optional)
- @$(call install_fixup, xorg-driver-video-intel,SECTION,base)
- @$(call install_fixup, xorg-driver-video-intel,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, xorg-driver-video-intel,DESCRIPTION,missing)
-
- @$(call install_lib, xorg-driver-video-intel, 0, 0, 0644, \
- xorg/modules/drivers/intel_drv)
-
-ifdef PTXCONF_XORG_DRIVER_VIDEO_INTEL_XVMC
- @$(call install_lib, xorg-driver-video-intel, 0, 0, 0644, libIntelXvMC)
-endif
- @$(call install_finish, xorg-driver-video-intel)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-driver-video-vesa.in b/rules/xorg-driver-video-vesa.in
deleted file mode 100644
index 92e59ddd6..000000000
--- a/rules/xorg-driver-video-vesa.in
+++ /dev/null
@@ -1,15 +0,0 @@
-## SECTION=multimedia_xorg_driver_video
-
-# configuration for xorg-driver-video-vesa
-
-config XORG_DRIVER_VIDEO_VESA
- tristate
- depends on XORG_DRIVER_VIDEO
- select XORG_SERVER
- select XORG_SERVER_EXT_DGA
- select XORGPROTO
- prompt "VESA"
- help
- This is the VESA video driver for the modular Xorg server.
-
-
diff --git a/rules/xorg-driver-video-vesa.make b/rules/xorg-driver-video-vesa.make
deleted file mode 100644
index 3e249fe76..000000000
--- a/rules/xorg-driver-video-vesa.make
+++ /dev/null
@@ -1,54 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Erwin Rol
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_DRIVER_VIDEO_VESA) += xorg-driver-video-vesa
-
-#
-# Paths and names
-#
-XORG_DRIVER_VIDEO_VESA_VERSION := 2.4.0
-XORG_DRIVER_VIDEO_VESA_MD5 := 8134201beaf6f77150c7809c3cc802e6
-XORG_DRIVER_VIDEO_VESA := xf86-video-vesa-$(XORG_DRIVER_VIDEO_VESA_VERSION)
-XORG_DRIVER_VIDEO_VESA_SUFFIX := tar.bz2
-XORG_DRIVER_VIDEO_VESA_URL := $(call ptx/mirror, XORG, individual/driver/$(XORG_DRIVER_VIDEO_VESA).$(XORG_DRIVER_VIDEO_VESA_SUFFIX))
-XORG_DRIVER_VIDEO_VESA_SOURCE := $(SRCDIR)/$(XORG_DRIVER_VIDEO_VESA).$(XORG_DRIVER_VIDEO_VESA_SUFFIX)
-XORG_DRIVER_VIDEO_VESA_DIR := $(BUILDDIR)/$(XORG_DRIVER_VIDEO_VESA)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-XORG_DRIVER_VIDEO_VESA_CONF_TOOL := autoconf
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-driver-video-vesa.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-driver-video-vesa)
- @$(call install_fixup, xorg-driver-video-vesa,PRIORITY,optional)
- @$(call install_fixup, xorg-driver-video-vesa,SECTION,base)
- @$(call install_fixup, xorg-driver-video-vesa,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, xorg-driver-video-vesa,DESCRIPTION,missing)
-
- @$(call install_copy, xorg-driver-video-vesa, 0, 0, 0755, -, \
- /usr/lib/xorg/modules/drivers/vesa_drv.so)
-
- @$(call install_finish, xorg-driver-video-vesa)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-driver.in b/rules/xorg-driver.in
deleted file mode 100644
index c94953cfa..000000000
--- a/rules/xorg-driver.in
+++ /dev/null
@@ -1,24 +0,0 @@
-## SECTION=multimedia_xorg
-
-menuconfig XORG_DRIVER_INPUT
- bool "xorg input drivers "
-
-if XORG_DRIVER_INPUT
-source "generated/multimedia_xorg_driver_input.in"
-endif
-
-menuconfig XORG_DRIVER_VIDEO
- bool "xorg video drivers "
-
-if XORG_DRIVER_VIDEO
-
-config XORG_DRIVER_VIDEO_MODESETTING
- tristate "modesetting"
- select XORG_SERVER_LIBDRM
- help
- Generic xorg video driver on top of KMS. Can be used with
- hardware acceleration on top of OpenGL if the GLAMOR module
- is also selected.
-
-source "generated/multimedia_xorg_driver_video.in"
-endif
diff --git a/rules/xorg-font-100dpi-trans.in b/rules/xorg-font-100dpi-trans.in
index 07c637681..ff1147057 100644
--- a/rules/xorg-font-100dpi-trans.in
+++ b/rules/xorg-font-100dpi-trans.in
@@ -38,12 +38,4 @@ config XORG_FONT_BH_100DPI_TRANS
This package contains fonts in several ISO 8859
encodings: -2, -3, -4, -9, -10, -13 and -14.
-config XORG_FONT_BH_LUCIDATYPEWRITER_100DPI_TRANS
- bool
- depends on XORG_FONT_BH_LUCIDATYPEWRITER_100DPI
- prompt "BH Lucida Typewriter 100dpi transcoded"
- help
- This package contains fonts in several ISO 8859
- encodings: -2, -3, -4, -9, -10, -13 and -14.
-
endmenu
diff --git a/rules/xorg-font-75dpi-trans.in b/rules/xorg-font-75dpi-trans.in
index ee079eb9e..483eb29b0 100644
--- a/rules/xorg-font-75dpi-trans.in
+++ b/rules/xorg-font-75dpi-trans.in
@@ -38,12 +38,4 @@ config XORG_FONT_BH_75DPI_TRANS
This package contains fonts in several ISO 8859
encodings: -2, -3, -4, -9, -10, -13 and -14.
-config XORG_FONT_BH_LUCIDATYPEWRITER_75DPI_TRANS
- bool
- depends on XORG_FONT_BH_LUCIDATYPEWRITER_75DPI
- prompt "BH Lucida Typewriter 75dpi transcoded"
- help
- This package contains fonts in several ISO 8859
- encodings: -2, -3, -4, -9, -10, -13 and -14.
-
endmenu
diff --git a/rules/xorg-font-adobe-100dpi.make b/rules/xorg-font-adobe-100dpi.make
index 0251d326d..3d366e4b0 100644
--- a/rules/xorg-font-adobe-100dpi.make
+++ b/rules/xorg-font-adobe-100dpi.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_ADOBE_100DPI_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_ADOBE_100DPI_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_ADOBE_100DPI_AUTOCONF := \
+XORG_FONT_ADOBE_100DPI_CONF_TOOL := autoconf
+XORG_FONT_ADOBE_100DPI_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/100dpi
diff --git a/rules/xorg-font-adobe-75dpi.make b/rules/xorg-font-adobe-75dpi.make
index b411740fd..af786fa78 100644
--- a/rules/xorg-font-adobe-75dpi.make
+++ b/rules/xorg-font-adobe-75dpi.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_ADOBE_75DPI_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_ADOBE_75DPI_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_ADOBE_75DPI_AUTOCONF := \
+XORG_FONT_ADOBE_75DPI_CONF_TOOL := autoconf
+XORG_FONT_ADOBE_75DPI_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/75dpi
diff --git a/rules/xorg-font-adobe-utopia-100dpi.make b/rules/xorg-font-adobe-utopia-100dpi.make
index 718f58638..06325f9c1 100644
--- a/rules/xorg-font-adobe-utopia-100dpi.make
+++ b/rules/xorg-font-adobe-utopia-100dpi.make
@@ -31,17 +31,14 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_ADOBE_UTOPIA_100DPI_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_ADOBE_UTOPIA_100DPI_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_ADOBE_UTOPIA_100DPI_AUTOCONF := \
+XORG_FONT_ADOBE_UTOPIA_100DPI_CONF_TOOL := autoconf
+XORG_FONT_ADOBE_UTOPIA_100DPI_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/100dpi
-
# ----------------------------------------------------------------------------
# Install
# ----------------------------------------------------------------------------
diff --git a/rules/xorg-font-adobe-utopia-type1.make b/rules/xorg-font-adobe-utopia-type1.make
index 5fdb874ee..e4d80b939 100644
--- a/rules/xorg-font-adobe-utopia-type1.make
+++ b/rules/xorg-font-adobe-utopia-type1.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_ADOBE_UTOPIA_TYPE1_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_ADOBE_UTOPIA_TYPE1_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_ADOBE_UTOPIA_TYPE1_AUTOCONF := \
+XORG_FONT_ADOBE_UTOPIA_TYPE1_CONF_TOOL := autoconf
+XORG_FONT_ADOBE_UTOPIA_TYPE1_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/Type1
diff --git a/rules/xorg-font-alias.make b/rules/xorg-font-alias.make
index d186aa793..59df1ff6a 100644
--- a/rules/xorg-font-alias.make
+++ b/rules/xorg-font-alias.make
@@ -27,13 +27,11 @@ XORG_FONT_ALIAS_LICENSE := Vakulenko
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_ALIAS_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_ALIAS_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_ALIAS_AUTOCONF := \
+XORG_FONT_ALIAS_CONF_TOOL := autoconf
+XORG_FONT_ALIAS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontrootdir=$(XORG_FONTDIR)
diff --git a/rules/xorg-font-arabic-misc.make b/rules/xorg-font-arabic-misc.make
index f6e049fc5..cafbaed16 100644
--- a/rules/xorg-font-arabic-misc.make
+++ b/rules/xorg-font-arabic-misc.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_ARABIC_MISC_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_ARABIC_MISC_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_ARABIC_MISC_AUTOCONF := \
+XORG_FONT_ARABIC_MISC_CONF_TOOL := autoconf
+XORG_FONT_ARABIC_MISC_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/misc
diff --git a/rules/xorg-font-base-trans.in b/rules/xorg-font-base-trans.in
index 8094b6fdf..5c8fadd61 100644
--- a/rules/xorg-font-base-trans.in
+++ b/rules/xorg-font-base-trans.in
@@ -16,7 +16,6 @@ config XORG_FONT_MISC_MISC_TRANS
config XORG_FONT_SCHUMACHER_MISC_TRANS
bool
depends on XORG_FONT_SCHUMACHER_MISC
- select XORG_FONTS
prompt "Schumacher misc transcoded"
help
This package contains fonts in several ISO 8859
diff --git a/rules/xorg-font-bh-100dpi.make b/rules/xorg-font-bh-100dpi.make
index ac5a14e9b..8a7a18138 100644
--- a/rules/xorg-font-bh-100dpi.make
+++ b/rules/xorg-font-bh-100dpi.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_BH_100DPI_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_BH_100DPI_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_BH_100DPI_AUTOCONF := \
+XORG_FONT_BH_100DPI_CONF_TOOL := autoconf
+XORG_FONT_BH_100DPI_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/100dpi
diff --git a/rules/xorg-font-bh-75dpi.in b/rules/xorg-font-bh-75dpi.in
index c20cd3954..40ed11e7a 100644
--- a/rules/xorg-font-bh-75dpi.in
+++ b/rules/xorg-font-bh-75dpi.in
@@ -7,4 +7,4 @@ config XORG_FONT_BH_75DPI
prompt "BH 75dpi"
help
This package contains BH fonts in the ISO 10646-1,
- ISO 8859-1 and ISO 8859-15 encodings
+ ISO 8859-1 and ISO 8859-15 encodings
diff --git a/rules/xorg-font-bh-75dpi.make b/rules/xorg-font-bh-75dpi.make
index 0748654ec..4442bd153 100644
--- a/rules/xorg-font-bh-75dpi.make
+++ b/rules/xorg-font-bh-75dpi.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_BH_75DPI_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_BH_75DPI_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_BH_75DPI_AUTOCONF := \
+XORG_FONT_BH_75DPI_CONF_TOOL := autoconf
+XORG_FONT_BH_75DPI_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/75dpi
diff --git a/rules/xorg-font-bh-lucidatypewriter-100dpi.in b/rules/xorg-font-bh-lucidatypewriter-100dpi.in
deleted file mode 100644
index ec661cea7..000000000
--- a/rules/xorg-font-bh-lucidatypewriter-100dpi.in
+++ /dev/null
@@ -1,15 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=multimedia_xorg_font_100dpi
-
-config XORG_FONT_BH_LUCIDATYPEWRITER_100DPI
- tristate
- select XORG_FONTS
- depends on XORG_FONT_100DPI
- prompt "BH Lucida Typewriter 100dpi"
- help
- This package contains Lucida fonts in the ISO 10646-1,
- ISO 8859-1 and ISO 8859-15 encodings
-
- STAGING: remove in ptxdist-2021.06.0
- Unclear license and not really needed anymore.
diff --git a/rules/xorg-font-bh-lucidatypewriter-100dpi.make b/rules/xorg-font-bh-lucidatypewriter-100dpi.make
deleted file mode 100644
index 2db8c8b6f..000000000
--- a/rules/xorg-font-bh-lucidatypewriter-100dpi.make
+++ /dev/null
@@ -1,86 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Erwin Rol
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_FONT_BH_LUCIDATYPEWRITER_100DPI) += xorg-font-bh-lucidatypewriter-100dpi
-
-#
-# Paths and names
-#
-XORG_FONT_BH_LUCIDATYPEWRITER_100DPI_VERSION := 1.0.3
-XORG_FONT_BH_LUCIDATYPEWRITER_100DPI_MD5 := c8b73a53dcefe3e8d3907d3500e484a9
-XORG_FONT_BH_LUCIDATYPEWRITER_100DPI := font-bh-lucidatypewriter-100dpi-$(XORG_FONT_BH_LUCIDATYPEWRITER_100DPI_VERSION)
-XORG_FONT_BH_LUCIDATYPEWRITER_100DPI_SUFFIX := tar.bz2
-XORG_FONT_BH_LUCIDATYPEWRITER_100DPI_URL := $(call ptx/mirror, XORG, individual/font/$(XORG_FONT_BH_LUCIDATYPEWRITER_100DPI).$(XORG_FONT_BH_LUCIDATYPEWRITER_100DPI_SUFFIX))
-XORG_FONT_BH_LUCIDATYPEWRITER_100DPI_SOURCE := $(SRCDIR)/$(XORG_FONT_BH_LUCIDATYPEWRITER_100DPI).$(XORG_FONT_BH_LUCIDATYPEWRITER_100DPI_SUFFIX)
-XORG_FONT_BH_LUCIDATYPEWRITER_100DPI_DIR := $(BUILDDIR)/$(XORG_FONT_BH_LUCIDATYPEWRITER_100DPI)
-
-ifdef PTXCONF_XORG_FONT_BH_LUCIDATYPEWRITER_100DPI
-$(STATEDIR)/xorg-fonts.targetinstall.post: $(STATEDIR)/xorg-font-bh-lucidatypewriter-100dpi.targetinstall
-endif
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-XORG_FONT_BH_LUCIDATYPEWRITER_100DPI_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_BH_LUCIDATYPEWRITER_100DPI_ENV := $(CROSS_ENV)
-
-#
-# autoconf
-#
-XORG_FONT_BH_LUCIDATYPEWRITER_100DPI_AUTOCONF := \
- $(CROSS_AUTOCONF_USR) \
- --with-fontrootdir=$(XORG_FONTDIR)
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-font-bh-lucidatypewriter-100dpi.install:
- @$(call targetinfo)
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-font-bh-lucidatypewriter-100dpi.targetinstall:
- @$(call targetinfo)
-
- @mkdir -p $(XORG_FONTS_DIR_INSTALL)/100dpi
-
- @find $(XORG_FONT_BH_LUCIDATYPEWRITER_100DPI_DIR) \
- -name "*.pcf.gz" -a \! -name "*ISO8859*" \
- -o -name "*ISO8859-1.pcf.gz" \
- -o -name "*ISO8859-15.pcf.gz" \
- | \
- while read file; do \
- install -m 644 $${file} $(XORG_FONTS_DIR_INSTALL)/100dpi; \
- done
-
-ifdef PTXCONF_XORG_FONT_BH_LUCIDATYPEWRITER_100DPI_TRANS
- @find $(XORG_FONT_BH_LUCIDATYPEWRITER_100DPI_DIR) \
- -name "*ISO8859-2.pcf.gz" \
- -o -name "*ISO8859-3.pcf.gz" \
- -o -name "*ISO8859-4.pcf.gz" \
- -o -name "*ISO8859-9.pcf.gz" \
- -o -name "*ISO8859-10.pcf.gz" \
- -o -name "*ISO8859-13.pcf.gz" \
- -o -name "*ISO8859-14.pcf.gz" \
- | \
- while read file; do \
- install -m 644 $${file} $(XORG_FONTS_DIR_INSTALL)/100dpi; \
- done
-endif
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-font-bh-lucidatypewriter-75dpi.in b/rules/xorg-font-bh-lucidatypewriter-75dpi.in
deleted file mode 100644
index 799114626..000000000
--- a/rules/xorg-font-bh-lucidatypewriter-75dpi.in
+++ /dev/null
@@ -1,15 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=multimedia_xorg_font_75dpi
-
-config XORG_FONT_BH_LUCIDATYPEWRITER_75DPI
- tristate
- select XORG_FONTS
- depends on XORG_FONT_75DPI
- prompt "BH Lucida Typewriter 75dpi"
- help
- This package contains fonts in the ISO 10646-1,
- ISO 8859-1 and ISO 8859-15 encodings.
-
- STAGING: remove in ptxdist-2021.06.0
- Unclear license and not really needed anymore.
diff --git a/rules/xorg-font-bh-lucidatypewriter-75dpi.make b/rules/xorg-font-bh-lucidatypewriter-75dpi.make
deleted file mode 100644
index e29013212..000000000
--- a/rules/xorg-font-bh-lucidatypewriter-75dpi.make
+++ /dev/null
@@ -1,86 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Erwin Rol
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_FONT_BH_LUCIDATYPEWRITER_75DPI) += xorg-font-bh-lucidatypewriter-75dpi
-
-#
-# Paths and names
-#
-XORG_FONT_BH_LUCIDATYPEWRITER_75DPI_VERSION := 1.0.3
-XORG_FONT_BH_LUCIDATYPEWRITER_75DPI_MD5 := f6d65758ac9eb576ae49ab24c5e9019a
-XORG_FONT_BH_LUCIDATYPEWRITER_75DPI := font-bh-lucidatypewriter-75dpi-$(XORG_FONT_BH_LUCIDATYPEWRITER_75DPI_VERSION)
-XORG_FONT_BH_LUCIDATYPEWRITER_75DPI_SUFFIX := tar.bz2
-XORG_FONT_BH_LUCIDATYPEWRITER_75DPI_URL := $(call ptx/mirror, XORG, individual/font/$(XORG_FONT_BH_LUCIDATYPEWRITER_75DPI).$(XORG_FONT_BH_LUCIDATYPEWRITER_75DPI_SUFFIX))
-XORG_FONT_BH_LUCIDATYPEWRITER_75DPI_SOURCE := $(SRCDIR)/$(XORG_FONT_BH_LUCIDATYPEWRITER_75DPI).$(XORG_FONT_BH_LUCIDATYPEWRITER_75DPI_SUFFIX)
-XORG_FONT_BH_LUCIDATYPEWRITER_75DPI_DIR := $(BUILDDIR)/$(XORG_FONT_BH_LUCIDATYPEWRITER_75DPI)
-
-ifdef PTXCONF_XORG_FONT_BH_LUCIDATYPEWRITER_75DPI
-$(STATEDIR)/xorg-fonts.targetinstall.post: $(STATEDIR)/xorg-font-bh-lucidatypewriter-75dpi.targetinstall
-endif
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-XORG_FONT_BH_LUCIDATYPEWRITER_75DPI_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_BH_LUCIDATYPEWRITER_75DPI_ENV := $(CROSS_ENV)
-
-#
-# autoconf
-#
-XORG_FONT_BH_LUCIDATYPEWRITER_75DPI_AUTOCONF := \
- $(CROSS_AUTOCONF_USR) \
- --with-fontrootdir=$(XORG_FONTDIR)
-
-# ----------------------------------------------------------------------------
-# Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-font-bh-lucidatypewriter-75dpi.install:
- @$(call targetinfo)
- @$(call touch)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-font-bh-lucidatypewriter-75dpi.targetinstall:
- @$(call targetinfo)
-
- @mkdir -p $(XORG_FONTS_DIR_INSTALL)/75dpi
-
- @find $(XORG_FONT_BH_LUCIDATYPEWRITER_75DPI_DIR) \
- -name "*.pcf.gz" -a \! -name "*ISO8859*" \
- -o -name "*ISO8859-1.pcf.gz" \
- -o -name "*ISO8859-15.pcf.gz" \
- | \
- while read file; do \
- install -m 644 $${file} $(XORG_FONTS_DIR_INSTALL)/75dpi; \
- done
-
-ifdef PTXCONF_XORG_FONT_BH_LUCIDATYPEWRITER_75DPI_TRANS
- @find $(XORG_FONT_BH_LUCIDATYPEWRITER_75DPI_DIR) \
- -name "*ISO8859-2.pcf.gz" \
- -o -name "*ISO8859-3.pcf.gz" \
- -o -name "*ISO8859-4.pcf.gz" \
- -o -name "*ISO8859-9.pcf.gz" \
- -o -name "*ISO8859-10.pcf.gz" \
- -o -name "*ISO8859-13.pcf.gz" \
- -o -name "*ISO8859-14.pcf.gz" \
- | \
- while read file; do \
- install -m 644 $${file} $(XORG_FONTS_DIR_INSTALL)/75dpi; \
- done
-endif
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-font-bitstream-100dpi.make b/rules/xorg-font-bitstream-100dpi.make
index 62d1c8ac2..bc6d22525 100644
--- a/rules/xorg-font-bitstream-100dpi.make
+++ b/rules/xorg-font-bitstream-100dpi.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_BITSTREAM_100DPI_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_BITSTREAM_100DPI_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_BITSTREAM_100DPI_AUTOCONF := \
+XORG_FONT_BITSTREAM_100DPI_CONF_TOOL := autoconf
+XORG_FONT_BITSTREAM_100DPI_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/100dpi
diff --git a/rules/xorg-font-bitstream-75dpi.make b/rules/xorg-font-bitstream-75dpi.make
index 2d8b08a51..ee04add4c 100644
--- a/rules/xorg-font-bitstream-75dpi.make
+++ b/rules/xorg-font-bitstream-75dpi.make
@@ -31,17 +31,14 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_BITSTREAM_75DPI_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_BITSTREAM_75DPI_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_BITSTREAM_75DPI_AUTOCONF := \
+XORG_FONT_BITSTREAM_75DPI_CONF_TOOL := autoconf
+XORG_FONT_BITSTREAM_75DPI_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/75dpi
-
# ----------------------------------------------------------------------------
# Install
# ----------------------------------------------------------------------------
diff --git a/rules/xorg-font-bitstream-speedo.make b/rules/xorg-font-bitstream-speedo.make
index 7dfa81a3a..0867e3a2d 100644
--- a/rules/xorg-font-bitstream-speedo.make
+++ b/rules/xorg-font-bitstream-speedo.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_BITSTREAM_SPEEDO_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_BITSTREAM_SPEEDO_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_BITSTREAM_SPEEDO_AUTOCONF := \
+XORG_FONT_BITSTREAM_SPEEDO_CONF_TOOL := autoconf
+XORG_FONT_BITSTREAM_SPEEDO_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/Speedo
diff --git a/rules/xorg-font-bitstream-type1.make b/rules/xorg-font-bitstream-type1.make
index f7e65cb62..0cb896474 100644
--- a/rules/xorg-font-bitstream-type1.make
+++ b/rules/xorg-font-bitstream-type1.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_BITSTREAM_TYPE1_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_BITSTREAM_TYPE1_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_BITSTREAM_TYPE1_AUTOCONF := \
+XORG_FONT_BITSTREAM_TYPE1_CONF_TOOL := autoconf
+XORG_FONT_BITSTREAM_TYPE1_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/Type1
diff --git a/rules/xorg-font-cronyx-cyrillic.make b/rules/xorg-font-cronyx-cyrillic.make
index 765eeb809..02b48e6ce 100644
--- a/rules/xorg-font-cronyx-cyrillic.make
+++ b/rules/xorg-font-cronyx-cyrillic.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_CRONYX_CYRILLIC_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_CRONYX_CYRILLIC_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_CRONYX_CYRILLIC_AUTOCONF := \
+XORG_FONT_CRONYX_CYRILLIC_CONF_TOOL := autoconf
+XORG_FONT_CRONYX_CYRILLIC_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/cyrillic
diff --git a/rules/xorg-font-cursor-misc.in b/rules/xorg-font-cursor-misc.in
index 8d006330f..b66338537 100644
--- a/rules/xorg-font-cursor-misc.in
+++ b/rules/xorg-font-cursor-misc.in
@@ -5,4 +5,4 @@ config XORG_FONT_CURSOR_MISC
select XORG_FONTS
prompt "Cursor misc"
help
- essential font package, you migh most probably want it.
+ essential font package, you might most probably want it.
diff --git a/rules/xorg-font-cursor-misc.make b/rules/xorg-font-cursor-misc.make
index ec7a96684..52064f6e5 100644
--- a/rules/xorg-font-cursor-misc.make
+++ b/rules/xorg-font-cursor-misc.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_CURSOR_MISC_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_CURSOR_MISC_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_CURSOR_MISC_AUTOCONF := \
+XORG_FONT_CURSOR_MISC_CONF_TOOL := autoconf
+XORG_FONT_CURSOR_MISC_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/misc
diff --git a/rules/xorg-font-daewoo-misc.make b/rules/xorg-font-daewoo-misc.make
index 9b3fcc56e..71cd1263e 100644
--- a/rules/xorg-font-daewoo-misc.make
+++ b/rules/xorg-font-daewoo-misc.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_DAEWOO_MISC_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_DAEWOO_MISC_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_DAEWOO_MISC_AUTOCONF := \
+XORG_FONT_DAEWOO_MISC_CONF_TOOL := autoconf
+XORG_FONT_DAEWOO_MISC_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/misc
diff --git a/rules/xorg-font-dec-misc.make b/rules/xorg-font-dec-misc.make
index 560c3dc13..3151874f8 100644
--- a/rules/xorg-font-dec-misc.make
+++ b/rules/xorg-font-dec-misc.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_DEC_MISC_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_DEC_MISC_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_DEC_MISC_AUTOCONF := \
+XORG_FONT_DEC_MISC_CONF_TOOL := autoconf
+XORG_FONT_DEC_MISC_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/misc
diff --git a/rules/xorg-font-encodings.in b/rules/xorg-font-encodings.in
index 5bfd31279..744886eab 100644
--- a/rules/xorg-font-encodings.in
+++ b/rules/xorg-font-encodings.in
@@ -5,11 +5,11 @@ config XORG_FONT_ENCODINGS
select XORG_FONTS
prompt "encodings"
help
- contains encoding files used by fontenc layer to
+ contains encoding files used by fontenc layer to
re-encode fonts other than iso10646-1, iso8859-1,
- -2, -3, -4, -5, -6, -7, -9, -10, -15,
- koi8-r, -ru, -u, uni, -e, microsoft-symbol and
+ -2, -3, -4, -5, -6, -7, -9, -10, -15,
+ koi8-r, -ru, -u, uni, -e, microsoft-symbol and
apple-roman.
- You might most probbably want this if you intend
+ You might most probably want this if you intend
to use i.E. asian language.
For more details see xorg documentation.
diff --git a/rules/xorg-font-encodings.make b/rules/xorg-font-encodings.make
index 9d3f37d95..b92ecd074 100644
--- a/rules/xorg-font-encodings.make
+++ b/rules/xorg-font-encodings.make
@@ -30,13 +30,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_ENCODINGS_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_ENCODINGS_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_ENCODINGS_AUTOCONF := \
+XORG_FONT_ENCODINGS_CONF_TOOL := autoconf
+XORG_FONT_ENCODINGS_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-encodingsdir=$(XORG_FONTDIR)/encodings
diff --git a/rules/xorg-font-ibm-type1.in b/rules/xorg-font-ibm-type1.in
index 9e6fda056..aa1b53f79 100644
--- a/rules/xorg-font-ibm-type1.in
+++ b/rules/xorg-font-ibm-type1.in
@@ -6,4 +6,4 @@ config XORG_FONT_IBM_TYPE1
depends on XORG_FONT_TYPE1
prompt "IBM type1"
help
- scalable IBM type1 fonts, as used on OS/2 systems.
+ scalable IBM type1 fonts, as used on OS/2 systems.
diff --git a/rules/xorg-font-ibm-type1.make b/rules/xorg-font-ibm-type1.make
index e5cfd27dd..2f3321592 100644
--- a/rules/xorg-font-ibm-type1.make
+++ b/rules/xorg-font-ibm-type1.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_IBM_TYPE1_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_IBM_TYPE1_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_IBM_TYPE1_AUTOCONF := \
+XORG_FONT_IBM_TYPE1_CONF_TOOL := autoconf
+XORG_FONT_IBM_TYPE1_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/Type1
diff --git a/rules/xorg-font-intl.in b/rules/xorg-font-intl.in
deleted file mode 100644
index 1674be6ce..000000000
--- a/rules/xorg-font-intl.in
+++ /dev/null
@@ -1,54 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=multimedia_xorg_font
-
-menuconfig XORG_FONT_INTL
- bool
- prompt "chinese and other asian fonts"
- select XORG_FONTS
- help
- STAGING: remove in ptxdist-2021.06.0
- Unclear license for some of the fonts and not really needed anymore.
-
-config XORG_FONT_INTL_CHIN
- bool
- prompt "chinese fonts"
- depends on XORG_FONT_INTL
- help
- This package includes some GB2312, GB8565-88, BIG5 (ETen), and SiSheng
- Chinese fonts. You will need the fonts if you plan to view, print or author
- documents written in Chinese and using any of the encodings mentioned above.
-
-config XORG_FONT_INTL_CHIN_BIG
- bool
- prompt "chinese fonts (big size)"
- depends on XORG_FONT_INTL
- help
- This package contains two GB coded fonts in big size
-
-config XORG_FONT_INTL_JAP
- bool
- prompt "japanese fonts"
- depends on XORG_FONT_INTL
- help
- This package includes some JISX0208.1990, JISX0208.1978, JISX0212.1990
- (HojoKanji), JISX0208.1983, and JISX0201 (Roman & Kana) Japanese fonts. You
- will need the fonts if you plan to view, print or author documents using
- the Japanese language and any of the encodings specified above.
-
-config XORG_FONT_INTL_JAP_BIG
- bool
- prompt "Japanese fonts (big size)"
- depends on XORG_FONT_INTL
- help
- This package contains two JISX coded fonts in big size
-
-
-config XORG_FONT_INTL_ASIAN
- bool
- prompt "other asian languages"
- depends on XORG_FONT_INTL
- help
- This package includes fonts in thai, vietnamese, inian, lao and several
- further asian languages.
-
diff --git a/rules/xorg-font-intl.make b/rules/xorg-font-intl.make
deleted file mode 100644
index 667616146..000000000
--- a/rules/xorg-font-intl.make
+++ /dev/null
@@ -1,91 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Luotao Fu <lfu@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_FONT_INTL) += xorg-font-intl
-
-#
-# Paths and names
-#
-XORG_FONT_INTL_VERSION := 1.2.1
-XORG_FONT_INTL_MD5 := d77e9c4ec066a985687e5c67992677e4
-XORG_FONT_INTL := intlfonts-$(XORG_FONT_INTL_VERSION)
-XORG_FONT_INTL_SUFFIX := tar.gz
-XORG_FONT_INTL_URL := $(call ptx/mirror, GNU, intlfonts/$(XORG_FONT_INTL).$(XORG_FONT_INTL_SUFFIX))
-XORG_FONT_INTL_SOURCE := $(SRCDIR)/$(XORG_FONT_INTL).$(XORG_FONT_INTL_SUFFIX)
-XORG_FONT_INTL_DIR := $(BUILDDIR)/$(XORG_FONT_INTL)
-
-ifdef PTXCONF_XORG_FONT_INTL
-$(STATEDIR)/xorg-fonts.targetinstall.post: $(STATEDIR)/xorg-font-intl.targetinstall
-endif
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-XORG_FONT_INTL_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_INTL_ENV := $(CROSS_ENV)
-XORG_FONT_INTL_MAKEVARS := \
- SUBDIRS= \
- SUBDIRS_X= \
- SUBDIRS_BIG=
-
-ifdef PTXCONF_XORG_FONT_INTL_CHIN
-XORG_FONT_INTL_MAKEVARS += SUBDIRS+=Chinese SUBDIRS_X+=Chinese.X
-endif
-
-ifdef PTXCONF_XORG_FONT_INTL_CHIN_BIG
-XORG_FONT_INTL_MAKEVARS += SUBDIRS_BIG+=Chinese.BIG
-endif
-
-ifdef PTXCONF_XORG_FONT_INTL_JAP
-XORG_FONT_INTL_MAKEVARS += SUBDIRS+=Japanese SUBDIRS_X+=Japanese.X
-endif
-
-ifdef PTXCONF_XORG_FONT_INTL_JAP_BIG
-XORG_FONT_INTL_MAKEVARS += SUBDIRS_BIG+=Japanese.BIG
-endif
-
-ifdef PTXCONF_XORG_FONT_INTL_ASIAN
-XORG_FONT_INTL_MAKEVARS += SUBDIRS+=Asian
-endif
-
-#
-# autoconf
-#
-XORG_FONT_INTL_AUTOCONF := \
- $(CROSS_AUTOCONF_USR) \
- --enable-compress \
- --with-fontdir=$(XORG_FONT_INTL_PKGDIR)$(XORG_FONTDIR)/misc \
- --without-bdf
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-font-intl.targetinstall:
- @$(call targetinfo)
-
- @mkdir -p $(XORG_FONTS_DIR_INSTALL)/misc
-
-# FIXME: font.alias handling
-# FIXME: what about truetype and type1
-
- @find $(XORG_FONT_INTL_PKGDIR) \
- -name "*.pcf.gz" \
- | \
- while read file; do \
- install -m 644 $${file} $(XORG_FONTS_DIR_INSTALL)/misc; \
- done
-
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-font-isas-misc.in b/rules/xorg-font-isas-misc.in
index 8ee7df025..2525a0c8b 100644
--- a/rules/xorg-font-isas-misc.in
+++ b/rules/xorg-font-isas-misc.in
@@ -6,4 +6,4 @@ config XORG_FONT_ISAS_MISC
prompt "Isas misc"
help
Xorg ISAS fonts, contains Chinese fonts
-
+
diff --git a/rules/xorg-font-isas-misc.make b/rules/xorg-font-isas-misc.make
index e0b821291..e076e708b 100644
--- a/rules/xorg-font-isas-misc.make
+++ b/rules/xorg-font-isas-misc.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_ISAS_MISC_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_ISAS_MISC_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_ISAS_MISC_AUTOCONF := \
+XORG_FONT_ISAS_MISC_CONF_TOOL := autoconf
+XORG_FONT_ISAS_MISC_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/misc
diff --git a/rules/xorg-font-jis-misc.make b/rules/xorg-font-jis-misc.make
index eb1f69def..7ff38e293 100644
--- a/rules/xorg-font-jis-misc.make
+++ b/rules/xorg-font-jis-misc.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_JIS_MISC_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_JIS_MISC_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_JIS_MISC_AUTOCONF := \
+XORG_FONT_JIS_MISC_CONF_TOOL := autoconf
+XORG_FONT_JIS_MISC_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/misc
diff --git a/rules/xorg-font-micro-misc.make b/rules/xorg-font-micro-misc.make
index 69b8f6e8b..253512559 100644
--- a/rules/xorg-font-micro-misc.make
+++ b/rules/xorg-font-micro-misc.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_MICRO_MISC_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_MICRO_MISC_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_MICRO_MISC_AUTOCONF := \
+XORG_FONT_MICRO_MISC_CONF_TOOL := autoconf
+XORG_FONT_MICRO_MISC_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/misc
diff --git a/rules/xorg-font-misc-cyrillic.make b/rules/xorg-font-misc-cyrillic.make
index 0b9c3a46a..a934bd8cd 100644
--- a/rules/xorg-font-misc-cyrillic.make
+++ b/rules/xorg-font-misc-cyrillic.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_MISC_CYRILLIC_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_MISC_CYRILLIC_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_MISC_CYRILLIC_AUTOCONF := \
+XORG_FONT_MISC_CYRILLIC_CONF_TOOL := autoconf
+XORG_FONT_MISC_CYRILLIC_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/cyrillic
diff --git a/rules/xorg-font-misc-ethiopic.make b/rules/xorg-font-misc-ethiopic.make
index ad308f434..76b295099 100644
--- a/rules/xorg-font-misc-ethiopic.make
+++ b/rules/xorg-font-misc-ethiopic.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_MISC_ETHIOPIC_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_MISC_ETHIOPIC_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_MISC_ETHIOPIC_AUTOCONF := \
+XORG_FONT_MISC_ETHIOPIC_CONF_TOOL := autoconf
+XORG_FONT_MISC_ETHIOPIC_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-ttf-fontdir=$(XORG_FONTDIR)/truetype \
--with-otf-fontdir=$(XORG_FONTDIR)/opentype
diff --git a/rules/xorg-font-misc-meltho.make b/rules/xorg-font-misc-meltho.make
index 6b055e0c8..94d0f2673 100644
--- a/rules/xorg-font-misc-meltho.make
+++ b/rules/xorg-font-misc-meltho.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_MISC_MELTHO_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_MISC_MELTHO_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_MISC_MELTHO_AUTOCONF := \
+XORG_FONT_MISC_MELTHO_CONF_TOOL := autoconf
+XORG_FONT_MISC_MELTHO_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/opentype
diff --git a/rules/xorg-font-misc-misc.make b/rules/xorg-font-misc-misc.make
index dc2b500f0..de34231a8 100644
--- a/rules/xorg-font-misc-misc.make
+++ b/rules/xorg-font-misc-misc.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_MISC_MISC_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_MISC_MISC_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_MISC_MISC_AUTOCONF := \
+XORG_FONT_MISC_MISC_CONF_TOOL := autoconf
+XORG_FONT_MISC_MISC_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/misc
diff --git a/rules/xorg-font-mutt-misc.make b/rules/xorg-font-mutt-misc.make
index 072125252..ea138c297 100644
--- a/rules/xorg-font-mutt-misc.make
+++ b/rules/xorg-font-mutt-misc.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_MUTT_MISC_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_MUTT_MISC_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_MUTT_MISC_AUTOCONF := \
+XORG_FONT_MUTT_MISC_CONF_TOOL := autoconf
+XORG_FONT_MUTT_MISC_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/misc
diff --git a/rules/xorg-font-schumacher-misc.make b/rules/xorg-font-schumacher-misc.make
index a22ea61dc..809051bce 100644
--- a/rules/xorg-font-schumacher-misc.make
+++ b/rules/xorg-font-schumacher-misc.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_SCHUMACHER_MISC_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_SCHUMACHER_MISC_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_SCHUMACHER_MISC_AUTOCONF := $(CROSS_AUTOCONF_USR)
+XORG_FONT_SCHUMACHER_MISC_CONF_TOOL := autoconf
+XORG_FONT_SCHUMACHER_MISC_CONF_OPT := $(CROSS_AUTOCONF_USR)
# ----------------------------------------------------------------------------
# Install
diff --git a/rules/xorg-font-screen-cyrillic.make b/rules/xorg-font-screen-cyrillic.make
index 9d289e5a1..06b80669f 100644
--- a/rules/xorg-font-screen-cyrillic.make
+++ b/rules/xorg-font-screen-cyrillic.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_SCREEN_CYRILLIC_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_SCREEN_CYRILLIC_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_SCREEN_CYRILLIC_AUTOCONF := \
+XORG_FONT_SCREEN_CYRILLIC_CONF_TOOL := autoconf
+XORG_FONT_SCREEN_CYRILLIC_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/cyrillic
diff --git a/rules/xorg-font-sony-misc.make b/rules/xorg-font-sony-misc.make
index c9bc29d11..374f3d519 100644
--- a/rules/xorg-font-sony-misc.make
+++ b/rules/xorg-font-sony-misc.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_SONY_MISC_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_SONY_MISC_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_SONY_MISC_AUTOCONF := \
+XORG_FONT_SONY_MISC_CONF_TOOL := autoconf
+XORG_FONT_SONY_MISC_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/misc
diff --git a/rules/xorg-font-sun-misc.make b/rules/xorg-font-sun-misc.make
index ec3f35168..bda2c4e6f 100644
--- a/rules/xorg-font-sun-misc.make
+++ b/rules/xorg-font-sun-misc.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_SUN_MISC_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_SUN_MISC_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_SUN_MISC_AUTOCONF := \
+XORG_FONT_SUN_MISC_CONF_TOOL := autoconf
+XORG_FONT_SUN_MISC_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/misc
diff --git a/rules/xorg-font-ttf-caladea.make b/rules/xorg-font-ttf-caladea.make
index 4d13ea888..b68e6bee3 100644
--- a/rules/xorg-font-ttf-caladea.make
+++ b/rules/xorg-font-ttf-caladea.make
@@ -15,14 +15,16 @@ PACKAGES-$(PTXCONF_XORG_FONT_TTF_CALADEA) += xorg-font-ttf-caladea
#
# Paths and names
#
-XORG_FONT_TTF_CALADEA_VERSION := 20130214
-XORG_FONT_TTF_CALADEA_MD5 := 368f114c078f94214a308a74c7e991bc
+XORG_FONT_TTF_CALADEA_VERSION := 2020-02-11-g336a529cfad3
+XORG_FONT_TTF_CALADEA_MD5 := 6cec7803159f59d9723463463e49e660
XORG_FONT_TTF_CALADEA := crosextrafonts-$(XORG_FONT_TTF_CALADEA_VERSION)
XORG_FONT_TTF_CALADEA_SUFFIX := tar.gz
-XORG_FONT_TTF_CALADEA_URL := http://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/$(XORG_FONT_TTF_CALADEA).$(XORG_FONT_TTF_CALADEA_SUFFIX)
+XORG_FONT_TTF_CALADEA_URL := https://github.com/huertatipografica/Caladea/archive/$(XORG_FONT_TTF_CALADEA_VERSION).$(XORG_FONT_TTF_CALADEA_SUFFIX)
XORG_FONT_TTF_CALADEA_SOURCE := $(SRCDIR)/$(XORG_FONT_TTF_CALADEA).$(XORG_FONT_TTF_CALADEA_SUFFIX)
XORG_FONT_TTF_CALADEA_DIR := $(BUILDDIR)/$(XORG_FONT_TTF_CALADEA)
-XORG_FONT_TTF_CALADEA_LICENSE := Apache-2.0
+XORG_FONT_TTF_CALADEA_LICENSE := OFL-1.1
+XORG_FONT_TTF_CALADEA_LICENSE_FILES := \
+ file://OFL.txt;md5=ea7e02ef358611c66c1b152bd1c981c4
XORG_FONT_TTF_CALADEA_CONF_TOOL := NO
XORG_FONT_TTF_CALADEA_FONTDIR := $(XORG_FONTDIR)/truetype/caladea
@@ -56,11 +58,6 @@ $(STATEDIR)/xorg-font-ttf-caladea.targetinstall:
@$(call install_fixup, xorg-font-ttf-caladea,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
@$(call install_fixup, xorg-font-ttf-caladea,DESCRIPTION,missing)
- @$(call install_alternative, xorg-font-ttf-caladea, 0, 0, 0644, \
- /etc/fonts/conf.d/30-0-google-crosextra-caladea-fontconfig.conf)
- @$(call install_alternative, xorg-font-ttf-caladea, 0, 0, 0644, \
- /etc/fonts/conf.d/62-google-crosextra-caladea-fontconfig.conf)
-
@$(call install_tree, xorg-font-ttf-caladea, 0, 0, -, /usr)
@$(call install_finish, xorg-font-ttf-caladea)
diff --git a/rules/xorg-font-ttf-carlito.make b/rules/xorg-font-ttf-carlito.make
index d82a0d0d7..bdc6631b0 100644
--- a/rules/xorg-font-ttf-carlito.make
+++ b/rules/xorg-font-ttf-carlito.make
@@ -15,14 +15,16 @@ PACKAGES-$(PTXCONF_XORG_FONT_TTF_CARLITO) += xorg-font-ttf-carlito
#
# Paths and names
#
-XORG_FONT_TTF_CARLITO_VERSION := 20130920
-XORG_FONT_TTF_CARLITO_MD5 := c74b7223abe75949b4af367942d96c7a
+XORG_FONT_TTF_CARLITO_VERSION := 2023-03-09-g3a810cab78eb
+XORG_FONT_TTF_CARLITO_MD5 := 84f54c77587771f93ffd4917636c65d7
XORG_FONT_TTF_CARLITO := crosextrafonts-carlito-$(XORG_FONT_TTF_CARLITO_VERSION)
XORG_FONT_TTF_CARLITO_SUFFIX := tar.gz
-XORG_FONT_TTF_CARLITO_URL := http://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/$(XORG_FONT_TTF_CARLITO).$(XORG_FONT_TTF_CARLITO_SUFFIX)
+XORG_FONT_TTF_CARLITO_URL := https://github.com/googlefonts/carlito/archive/$(XORG_FONT_TTF_CARLITO).$(XORG_FONT_TTF_CARLITO_SUFFIX)
XORG_FONT_TTF_CARLITO_SOURCE := $(SRCDIR)/$(XORG_FONT_TTF_CARLITO).$(XORG_FONT_TTF_CARLITO_SUFFIX)
XORG_FONT_TTF_CARLITO_DIR := $(BUILDDIR)/$(XORG_FONT_TTF_CARLITO)
XORG_FONT_TTF_CARLITO_LICENSE := OFL-1.1
+XORG_FONT_TTF_CARLITO_LICENSE_FILES := \
+ file://OFL.txt;md5=267b84c986def0f4a0ae41adfa791261
XORG_FONT_TTF_CARLITO_CONF_TOOL := NO
XORG_FONT_TTF_CARLITO_FONTDIR := $(XORG_FONTDIR)/truetype/carlito
@@ -56,11 +58,6 @@ $(STATEDIR)/xorg-font-ttf-carlito.targetinstall:
@$(call install_fixup, xorg-font-ttf-carlito,AUTHOR,"Michael Olbrich <m.olbrich@pengutronix.de>")
@$(call install_fixup, xorg-font-ttf-carlito,DESCRIPTION,missing)
- @$(call install_alternative, xorg-font-ttf-carlito, 0, 0, 0644, \
- /etc/fonts/conf.d/30-0-google-crosextra-carlito-fontconfig.conf)
- @$(call install_alternative, xorg-font-ttf-carlito, 0, 0, 0644, \
- /etc/fonts/conf.d/62-google-crosextra-carlito-fontconfig.conf)
-
@$(call install_tree, xorg-font-ttf-carlito, 0, 0, -, /usr)
@$(call install_finish, xorg-font-ttf-carlito)
diff --git a/rules/xorg-font-ttf-dejavu.make b/rules/xorg-font-ttf-dejavu.make
index 1ee6fa819..40ce8618b 100644
--- a/rules/xorg-font-ttf-dejavu.make
+++ b/rules/xorg-font-ttf-dejavu.make
@@ -15,8 +15,8 @@ PACKAGES-$(PTXCONF_XORG_FONT_TTF_DEJAVU) += xorg-font-ttf-dejavu
#
# Paths and names
#
-XORG_FONT_TTF_DEJAVU_VERSION := 2.35
-XORG_FONT_TTF_DEJAVU_MD5 := 59eaca5acf5c7c8212e92778e3e01f32
+XORG_FONT_TTF_DEJAVU_VERSION := 2.37
+XORG_FONT_TTF_DEJAVU_MD5 := d0efec10b9f110a32e9b8f796e21782c
XORG_FONT_TTF_DEJAVU := dejavu-fonts-ttf-$(XORG_FONT_TTF_DEJAVU_VERSION)
XORG_FONT_TTF_DEJAVU_SUFFIX := tar.bz2
XORG_FONT_TTF_DEJAVU_URL := http://sourceforge.net/projects/dejavu/files/dejavu/$(XORG_FONT_TTF_DEJAVU_VERSION)/$(XORG_FONT_TTF_DEJAVU).$(XORG_FONT_TTF_DEJAVU_SUFFIX)
diff --git a/rules/xorg-font-ttf-hanazono.make b/rules/xorg-font-ttf-hanazono.make
index f8e479f33..977ed58da 100644
--- a/rules/xorg-font-ttf-hanazono.make
+++ b/rules/xorg-font-ttf-hanazono.make
@@ -15,15 +15,16 @@ PACKAGES-$(PTXCONF_XORG_FONT_TTF_HANAZONO) += xorg-font-ttf-hanazono
#
# Paths and names
#
-XORG_FONT_TTF_HANAZONO_VERSION := 20141012
-XORG_FONT_TTF_HANAZONO_MD5 := b7733ecc1a2ebf62cbe840b9ebffb05c
+XORG_FONT_TTF_HANAZONO_VERSION := 20170904
+XORG_FONT_TTF_HANAZONO_MD5 := 3614983d1a899dc212ed377c4b5c99eb
XORG_FONT_TTF_HANAZONO := hanazono-$(XORG_FONT_TTF_HANAZONO_VERSION)
XORG_FONT_TTF_HANAZONO_SUFFIX := zip
-XORG_FONT_TTF_HANAZONO_URL := http://osdn.jp/frs/redir.php?m=osdn&f=%2Fhanazono-font%2F62072%2F$(XORG_FONT_TTF_HANAZONO).$(XORG_FONT_TTF_HANAZONO_SUFFIX)
+XORG_FONT_TTF_HANAZONO_URL := https://glyphwiki.org/hanazono/$(XORG_FONT_TTF_HANAZONO).$(XORG_FONT_TTF_HANAZONO_SUFFIX)
XORG_FONT_TTF_HANAZONO_SOURCE := $(SRCDIR)/$(XORG_FONT_TTF_HANAZONO).$(XORG_FONT_TTF_HANAZONO_SUFFIX)
XORG_FONT_TTF_HANAZONO_DIR := $(BUILDDIR)/$(XORG_FONT_TTF_HANAZONO)
XORG_FONT_TTF_HANAZONO_STRIP_LEVEL := 0
XORG_FONT_TTF_HANAZONO_LICENSE := OFL-1.1
+XORG_FONT_TTF_HANAZONO_LICENSE_FILES := file://LICENSE.txt;md5=aaede1ca24363a103976ba88f5905f40
XORG_FONT_TTF_HANAZONO_CONF_TOOL := NO
XORG_FONT_TTF_HANAZONO_FONTDIR := $(XORG_FONTDIR)/truetype/hanazono
diff --git a/rules/xorg-font-ttf-noto.make b/rules/xorg-font-ttf-noto.make
index b9c92da02..d8b7a7863 100644
--- a/rules/xorg-font-ttf-noto.make
+++ b/rules/xorg-font-ttf-noto.make
@@ -15,11 +15,11 @@ PACKAGES-$(PTXCONF_XORG_FONT_TTF_NOTO) += xorg-font-ttf-noto
#
# Paths and names
#
-XORG_FONT_TTF_NOTO_VERSION := 69424ef5945c50168aea6a1a508fcffad8c16e79
-XORG_FONT_TTF_NOTO_MD5 := a1a07323cb8aed17a9029dd1aa14471b
-XORG_FONT_TTF_NOTO := xorg-font-ttf-noto-$(XORG_FONT_TTF_NOTO_VERSION)
+XORG_FONT_TTF_NOTO_VERSION := 20151129-g69424ef5945c
+XORG_FONT_TTF_NOTO_MD5 := a359e6671d5f41fd7616d52dc87ccbf2
+XORG_FONT_TTF_NOTO := noto-fonts-$(XORG_FONT_TTF_NOTO_VERSION)
XORG_FONT_TTF_NOTO_SUFFIX := tar.gz
-XORG_FONT_TTF_NOTO_URL := https://github.com/googlei18n/noto-fonts.git;tag=$(XORG_FONT_TTF_NOTO_VERSION)
+XORG_FONT_TTF_NOTO_URL := https://github.com/notofonts/noto-fonts/archive/$(XORG_FONT_TTF_NOTO).$(XORG_FONT_TTF_NOTO_SUFFIX)
XORG_FONT_TTF_NOTO_SOURCE := $(SRCDIR)/$(XORG_FONT_TTF_NOTO).$(XORG_FONT_TTF_NOTO_SUFFIX)
XORG_FONT_TTF_NOTO_DIR := $(BUILDDIR)/$(XORG_FONT_TTF_NOTO)
XORG_FONT_TTF_NOTO_LICENSE := OFL-1.1
diff --git a/rules/xorg-font-ttf-vlgothic.make b/rules/xorg-font-ttf-vlgothic.make
index 7189e1421..0264bd043 100644
--- a/rules/xorg-font-ttf-vlgothic.make
+++ b/rules/xorg-font-ttf-vlgothic.make
@@ -15,18 +15,18 @@ PACKAGES-$(PTXCONF_XORG_FONT_TTF_VLGOTHIC) += xorg-font-ttf-vlgothic
#
# Paths and names
#
-XORG_FONT_TTF_VLGOTHIC_VERSION := 20141206
-XORG_FONT_TTF_VLGOTHIC_MD5 := bb7fadb2dff09a4fb6a11dc9dfdc0c36
+XORG_FONT_TTF_VLGOTHIC_VERSION := 20230918
+XORG_FONT_TTF_VLGOTHIC_MD5 := 739a9f9995e398bc5cb9ce5697a8691c
XORG_FONT_TTF_VLGOTHIC := VLGothic-$(XORG_FONT_TTF_VLGOTHIC_VERSION)
XORG_FONT_TTF_VLGOTHIC_SUFFIX := tar.xz
-XORG_FONT_TTF_VLGOTHIC_URL := http://osdn.jp/frs/redir.php?m=iij&f=%2Fvlgothic%2F62375%2F$(XORG_FONT_TTF_VLGOTHIC).$(XORG_FONT_TTF_VLGOTHIC_SUFFIX)
+XORG_FONT_TTF_VLGOTHIC_URL := https://vlgothic.dicey.org/releases/$(XORG_FONT_TTF_VLGOTHIC).$(XORG_FONT_TTF_VLGOTHIC_SUFFIX)
XORG_FONT_TTF_VLGOTHIC_SOURCE := $(SRCDIR)/$(XORG_FONT_TTF_VLGOTHIC).$(XORG_FONT_TTF_VLGOTHIC_SUFFIX)
XORG_FONT_TTF_VLGOTHIC_DIR := $(BUILDDIR)/$(XORG_FONT_TTF_VLGOTHIC)
XORG_FONT_TTF_VLGOTHIC_LICENSE := public_domain AND mplus AND BSD-3-Clause
XORG_FONT_TTF_VLGOTHIC_LICENSE_FILES := \
- file://LICENSE;md5=d2da3d6412686a977e837cae4988b624 \
+ file://LICENSE;md5=963a56e726d3de416451f272c2f25758 \
file://LICENSE_E.mplus;md5=1c4767416f20215f1e61b970f2117db9 \
- file://LICENSE.en;md5=66ecd0fd7e4da6246fa30317c7b66755 \
+ file://LICENSE.en;md5=cc06b20e7a20bdf6c989624405378303 \
file://LICENSE_J.mplus;md5=0ec236dad673c87025379b1dc91ad7bd \
file://README.sazanami;encoding=euc-jp;md5=97d739900be6e852830f55aa3c07d4a0
diff --git a/rules/xorg-font-winitzki-cyrillic.make b/rules/xorg-font-winitzki-cyrillic.make
index 3bb665a37..7882ac4fa 100644
--- a/rules/xorg-font-winitzki-cyrillic.make
+++ b/rules/xorg-font-winitzki-cyrillic.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_WINITZKI_CYRILLIC_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_WINITZKI_CYRILLIC_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_WINITZKI_CYRILLIC_AUTOCONF := \
+XORG_FONT_WINITZKI_CYRILLIC_CONF_TOOL := autoconf
+XORG_FONT_WINITZKI_CYRILLIC_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/cyrillic
diff --git a/rules/xorg-font-xfree86-type1.make b/rules/xorg-font-xfree86-type1.make
index 673276177..1121a0159 100644
--- a/rules/xorg-font-xfree86-type1.make
+++ b/rules/xorg-font-xfree86-type1.make
@@ -31,13 +31,11 @@ endif
# Prepare
# ----------------------------------------------------------------------------
-XORG_FONT_XFREE86_TYPE1_PATH := PATH=$(CROSS_PATH)
-XORG_FONT_XFREE86_TYPE1_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_FONT_XFREE86_TYPE1_AUTOCONF := \
+XORG_FONT_XFREE86_TYPE1_CONF_TOOL := autoconf
+XORG_FONT_XFREE86_TYPE1_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--with-fontdir=$(XORG_FONTDIR)/Type1
diff --git a/rules/xorg-fonts.make b/rules/xorg-fonts.make
index c6787875e..d6f0ad08c 100644
--- a/rules/xorg-fonts.make
+++ b/rules/xorg-fonts.make
@@ -76,15 +76,6 @@ $(STATEDIR)/xorg-fonts.targetinstall.post:
$(XORG_FONTS_DIR_INSTALL)/$$file, \
$(XORG_FONTDIR)/$$file, n); \
done
-ifdef PTXCONF_XORG_FONTS_QT4_LINKS
- @cd $(XORG_FONTS_DIR_INSTALL) && \
- find . -type f | while read file; do \
- name=`basename $$file`; \
- $(call install_link, xorg-fonts, \
- ../../..$(XORG_FONTDIR)/$$file, \
- /usr/lib/fonts/$$name); \
- done
-endif
@$(call install_finish, xorg-fonts)
diff --git a/rules/xorg-lib-FS.in b/rules/xorg-lib-FS.in
deleted file mode 100644
index 4ecd55a78..000000000
--- a/rules/xorg-lib-FS.in
+++ /dev/null
@@ -1,13 +0,0 @@
-## SECTION=multimedia_xorg_lib
-
-config XORG_LIB_FS
- tristate
- prompt "libFS"
- select XORGPROTO
- select XORG_LIB_XTRANS
- help
- libFS, the Font Services library, provides various
- functions useful to X11 font servers, and clients
- connecting to font servers. It is not used outside
- of these implementations.
-
diff --git a/rules/xorg-lib-FS.make b/rules/xorg-lib-FS.make
deleted file mode 100644
index f057a7e4b..000000000
--- a/rules/xorg-lib-FS.make
+++ /dev/null
@@ -1,57 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Erwin Rol
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_LIB_FS) += xorg-lib-fs
-
-#
-# Paths and names
-#
-XORG_LIB_FS_VERSION := 1.0.8
-XORG_LIB_FS_MD5 := 4e1196275aa743d6ebd3d3d5ec1dff9c
-XORG_LIB_FS := libFS-$(XORG_LIB_FS_VERSION)
-XORG_LIB_FS_SUFFIX := tar.bz2
-XORG_LIB_FS_URL := $(call ptx/mirror, XORG, individual/lib/$(XORG_LIB_FS).$(XORG_LIB_FS_SUFFIX))
-XORG_LIB_FS_SOURCE := $(SRCDIR)/$(XORG_LIB_FS).$(XORG_LIB_FS_SUFFIX)
-XORG_LIB_FS_DIR := $(BUILDDIR)/$(XORG_LIB_FS)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-XORG_LIB_FS_CONF_TOOL := autoconf
-XORG_LIB_FS_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- $(XORG_OPTIONS_TRANS) \
- --disable-malloc0returnsnull
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-lib-fs.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-lib-fs)
- @$(call install_fixup, xorg-lib-fs,PRIORITY,optional)
- @$(call install_fixup, xorg-lib-fs,SECTION,base)
- @$(call install_fixup, xorg-lib-fs,AUTHOR,"Erwin rol <ero@pengutronix.de>")
- @$(call install_fixup, xorg-lib-fs,DESCRIPTION,missing)
-
- @$(call install_lib, xorg-lib-fs, 0, 0, 0644, libFS)
-
- @$(call install_finish, xorg-lib-fs)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-lib-WindowsWM.in b/rules/xorg-lib-WindowsWM.in
deleted file mode 100644
index 33a05df2a..000000000
--- a/rules/xorg-lib-WindowsWM.in
+++ /dev/null
@@ -1,11 +0,0 @@
-## SECTION=multimedia_xorg_lib
-
-config XORG_LIB_WINDOWSWM
- tristate
- select XORG_LIB_X11
- select XORG_LIB_XEXT
- select XORGPROTO
- prompt "libWindowsWM"
- help
- The WindowsWM Library
-
diff --git a/rules/xorg-lib-WindowsWM.make b/rules/xorg-lib-WindowsWM.make
deleted file mode 100644
index 30e7d3f32..000000000
--- a/rules/xorg-lib-WindowsWM.make
+++ /dev/null
@@ -1,58 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Erwin Rol
-# 2010 Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_LIB_WINDOWSWM) += xorg-lib-windowswm
-
-#
-# Paths and names
-#
-XORG_LIB_WINDOWSWM_VERSION := 1.0.1
-XORG_LIB_WINDOWSWM_MD5 := 274b2b5620a524fd7bb739edb97317f5
-XORG_LIB_WINDOWSWM := libWindowsWM-$(XORG_LIB_WINDOWSWM_VERSION)
-XORG_LIB_WINDOWSWM_SUFFIX := tar.bz2
-XORG_LIB_WINDOWSWM_URL := $(call ptx/mirror, XORG, individual/lib//$(XORG_LIB_WINDOWSWM).$(XORG_LIB_WINDOWSWM_SUFFIX))
-XORG_LIB_WINDOWSWM_SOURCE := $(SRCDIR)/$(XORG_LIB_WINDOWSWM).$(XORG_LIB_WINDOWSWM_SUFFIX)
-XORG_LIB_WINDOWSWM_DIR := $(BUILDDIR)/$(XORG_LIB_WINDOWSWM)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-XORG_LIB_WINDOWSWM_PATH := PATH=$(CROSS_PATH)
-XORG_LIB_WINDOWSWM_ENV := $(CROSS_ENV)
-
-#
-# autoconf
-#
-XORG_LIB_WINDOWSWM_AUTOCONF := $(CROSS_AUTOCONF_USR) \
- --disable-malloc0returnsnull
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-lib-windowswm.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-lib-windowswm)
- @$(call install_fixup, xorg-lib-windowswm,PRIORITY,optional)
- @$(call install_fixup, xorg-lib-windowswm,SECTION,base)
- @$(call install_fixup, xorg-lib-windowswm,AUTHOR,"Erwin Rol <ero@pengutronix.de>")
- @$(call install_fixup, xorg-lib-windowswm,DESCRIPTION,missing)
-
- @$(call install_lib, xorg-lib-windowswm, 0, 0, 0644, libWindowsWM)
-
- @$(call install_finish, xorg-lib-windowswm)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-lib-Xcomposite.in b/rules/xorg-lib-Xcomposite.in
index 7b34330e8..2b2e91d8b 100644
--- a/rules/xorg-lib-Xcomposite.in
+++ b/rules/xorg-lib-Xcomposite.in
@@ -8,9 +8,9 @@ config XORG_LIB_XCOMPOSITE
select XORG_LIB_XFIXES
select XORG_LIB_XEXT
help
- The X Composite extension adds support for translucent windows and
- non-rectangular windows with anti-aliased edges to the X window system.
- It also makes the content of obscured windows available to for example
- desktop pagers, and provides backing store which eliminates flicker. It also
- makes it possible for a composition manager to draw dynamic effects on the
- screen, such as window drop shadows.
+ The X Composite extension adds support for translucent windows and
+ non-rectangular windows with anti-aliased edges to the X window system.
+ It also makes the content of obscured windows available to for example
+ desktop pagers, and provides backing store which eliminates flicker. It also
+ makes it possible for a composition manager to draw dynamic effects on the
+ screen, such as window drop shadows.
diff --git a/rules/xorg-lib-Xcursor.in b/rules/xorg-lib-Xcursor.in
index d47ee1470..49b75c9e7 100644
--- a/rules/xorg-lib-Xcursor.in
+++ b/rules/xorg-lib-Xcursor.in
@@ -8,7 +8,7 @@ config XORG_LIB_XCURSOR
select XORGPROTO
prompt "libXcursor"
help
- The Xcursor library provides support for colored and animated cursor themes.
- This library is included by default, but can also be installed as a
- standalone library and used with any X server. For full functionality the X
- server must support Xrender
+ The Xcursor library provides support for colored and animated cursor themes.
+ This library is included by default, but can also be installed as a
+ standalone library and used with any X server. For full functionality the X
+ server must support Xrender
diff --git a/rules/xorg-lib-Xdamage.in b/rules/xorg-lib-Xdamage.in
index f4775427a..f1a7e207f 100644
--- a/rules/xorg-lib-Xdamage.in
+++ b/rules/xorg-lib-Xdamage.in
@@ -6,6 +6,6 @@ config XORG_LIB_XDAMAGE
select XORGPROTO
select XORG_LIB_XFIXES
help
- The X Damage Extension provides notifications to applications when the content
- of the screen or individual windows changes as a result of applications
- drawing on them.
+ The X Damage Extension provides notifications to applications when the content
+ of the screen or individual windows changes as a result of applications
+ drawing on them.
diff --git a/rules/xorg-lib-Xfont2.in b/rules/xorg-lib-Xfont2.in
index 19e40fe8a..8be74323c 100644
--- a/rules/xorg-lib-Xfont2.in
+++ b/rules/xorg-lib-Xfont2.in
@@ -5,7 +5,7 @@
# Requires.private: fontenc
# Libs.private: -lz -lm
-config XORG_LIB_XFONT2
+menuconfig XORG_LIB_XFONT2
tristate
select LIBC_M
select XORGPROTO
@@ -22,7 +22,6 @@ config XORG_LIB_XFONT2
config XORG_LIB_XFONT2_FREETYPE
depends on XORG_LIB_XFONT2
- select FREETYPE
bool
prompt "Use freetype as rendering library"
help
diff --git a/rules/xorg-lib-Xxf86dga.in b/rules/xorg-lib-Xxf86dga.in
deleted file mode 100644
index e7ea80609..000000000
--- a/rules/xorg-lib-Xxf86dga.in
+++ /dev/null
@@ -1,14 +0,0 @@
-## SECTION=multimedia_xorg_lib
-
-config XORG_LIB_XXF86DGA
- tristate
- prompt "libXxf86dga"
- select XORG_LIB_X11
- select XORG_LIB_XEXT
- select XORGPROTO
- help
- libXxf86dga provides the XFree86-DGA extension,
- which allows direct graphics access to a
- framebuffer-like region, and also allows
- relative mouse reporting, et al. It is mainly
- used by games and emulators for games.
diff --git a/rules/xorg-lib-Xxf86dga.make b/rules/xorg-lib-Xxf86dga.make
deleted file mode 100644
index bbcbf4583..000000000
--- a/rules/xorg-lib-Xxf86dga.make
+++ /dev/null
@@ -1,55 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Erwin Rol
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_LIB_XXF86DGA) += xorg-lib-xxf86dga
-
-#
-# Paths and names
-#
-XORG_LIB_XXF86DGA_VERSION := 1.1.5
-XORG_LIB_XXF86DGA_MD5 := 0ddeafc13b33086357cfa96fae41ee8e
-XORG_LIB_XXF86DGA := libXxf86dga-$(XORG_LIB_XXF86DGA_VERSION)
-XORG_LIB_XXF86DGA_SUFFIX := tar.bz2
-XORG_LIB_XXF86DGA_URL := $(call ptx/mirror, XORG, individual/lib/$(XORG_LIB_XXF86DGA).$(XORG_LIB_XXF86DGA_SUFFIX))
-XORG_LIB_XXF86DGA_SOURCE := $(SRCDIR)/$(XORG_LIB_XXF86DGA).$(XORG_LIB_XXF86DGA_SUFFIX)
-XORG_LIB_XXF86DGA_DIR := $(BUILDDIR)/$(XORG_LIB_XXF86DGA)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-#
-# autoconf
-#
-XORG_LIB_XXF86DGA_CONF_TOOL := autoconf
-XORG_LIB_XXF86DGA_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --disable-malloc0returnsnull
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-lib-xxf86dga.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-lib-xxf86dga)
- @$(call install_fixup, xorg-lib-xxf86dga,PRIORITY,optional)
- @$(call install_fixup, xorg-lib-xxf86dga,SECTION,base)
- @$(call install_fixup, xorg-lib-xxf86dga,AUTHOR,"Erwin Rol <ero@pengutronix.de>")
- @$(call install_fixup, xorg-lib-xxf86dga,DESCRIPTION,missing)
-
- @$(call install_lib, xorg-lib-xxf86dga, 0, 0, 0644, libXxf86dga)
-
- @$(call install_finish, xorg-lib-xxf86dga)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-lib-Xxf86misc.make b/rules/xorg-lib-Xxf86misc.make
index 691cdbf91..8480beca2 100644
--- a/rules/xorg-lib-Xxf86misc.make
+++ b/rules/xorg-lib-Xxf86misc.make
@@ -27,15 +27,13 @@ XORG_LIB_XXF86MISC_DIR := $(BUILDDIR)/$(XORG_LIB_XXF86MISC)
# Prepare
# ----------------------------------------------------------------------------
-XORG_LIB_XXF86MISC_PATH := PATH=$(CROSS_PATH)
-XORG_LIB_XXF86MISC_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XORG_LIB_XXF86MISC_AUTOCONF := $(CROSS_AUTOCONF_USR)
-
-XORG_LIB_XXF86MISC_AUTOCONF += --disable-malloc0returnsnull
+XORG_LIB_XXF86MISC_CONF_TOOL := autoconf
+XORG_LIB_XXF86MISC_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --disable-malloc0returnsnull
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/xorg-lib-dmx.in b/rules/xorg-lib-dmx.in
deleted file mode 100644
index cfb142dec..000000000
--- a/rules/xorg-lib-dmx.in
+++ /dev/null
@@ -1,12 +0,0 @@
-## SECTION=multimedia_xorg_lib
-
-config XORG_LIB_DMX
- tristate
- select XORG_LIB_X11
- select XORG_LIB_XEXT
- select XORGPROTO
- prompt "libdmx"
- help
- X Window System DMX (Distributed Multihead X) extension. The DMX
- extension provides support for communication with and control of
- Xdmx server.
diff --git a/rules/xorg-lib-dmx.make b/rules/xorg-lib-dmx.make
deleted file mode 100644
index 304629151..000000000
--- a/rules/xorg-lib-dmx.make
+++ /dev/null
@@ -1,57 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Erwin Rol
-# (C) 2010 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_LIB_DMX) += xorg-lib-dmx
-
-#
-# Paths and names
-#
-XORG_LIB_DMX_VERSION := 1.1.4
-XORG_LIB_DMX_MD5 := d2f1f0ec68ac3932dd7f1d9aa0a7a11c
-XORG_LIB_DMX := libdmx-$(XORG_LIB_DMX_VERSION)
-XORG_LIB_DMX_SUFFIX := tar.bz2
-XORG_LIB_DMX_URL := $(call ptx/mirror, XORG, individual/lib//$(XORG_LIB_DMX).$(XORG_LIB_DMX_SUFFIX))
-XORG_LIB_DMX_SOURCE := $(SRCDIR)/$(XORG_LIB_DMX).$(XORG_LIB_DMX_SUFFIX)
-XORG_LIB_DMX_DIR := $(BUILDDIR)/$(XORG_LIB_DMX)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-#
-# autoconf
-#
-XORG_LIB_DMX_CONF_TOOL := autoconf
-XORG_LIB_DMX_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --disable-malloc0returnsnull
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-lib-dmx.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-lib-dmx)
- @$(call install_fixup, xorg-lib-dmx,PRIORITY,optional)
- @$(call install_fixup, xorg-lib-dmx,SECTION,base)
- @$(call install_fixup, xorg-lib-dmx,AUTHOR,"Erwin Rol <ero@pengutronix.de>")
- @$(call install_fixup, xorg-lib-dmx,DESCRIPTION,missing)
-
- @$(call install_lib, xorg-lib-dmx, 0, 0, 0644, libdmx)
-
- @$(call install_finish, xorg-lib-dmx)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-lib-oldX.in b/rules/xorg-lib-oldX.in
deleted file mode 100644
index 9942d9b8c..000000000
--- a/rules/xorg-lib-oldX.in
+++ /dev/null
@@ -1,9 +0,0 @@
-## SECTION=multimedia_xorg_lib
-
-config XORG_LIB_OLDX
- tristate
- prompt "liboldX"
- select XORG_LIB_X11
- help
- liboldX - X version 10 backwards compatibility
-
diff --git a/rules/xorg-lib-oldX.make b/rules/xorg-lib-oldX.make
deleted file mode 100644
index e466bf86d..000000000
--- a/rules/xorg-lib-oldX.make
+++ /dev/null
@@ -1,58 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Erwin Rol
-# 2010 Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_LIB_OLDX) += xorg-lib-oldx
-
-#
-# Paths and names
-#
-XORG_LIB_OLDX_VERSION := 1.0.1
-XORG_LIB_OLDX_MD5 := 6b81ffe486d76c380d08f92285758d84
-XORG_LIB_OLDX := liboldX-$(XORG_LIB_OLDX_VERSION)
-XORG_LIB_OLDX_SUFFIX := tar.bz2
-XORG_LIB_OLDX_URL := $(call ptx/mirror, XORG, individual/lib/$(XORG_LIB_OLDX).$(XORG_LIB_OLDX_SUFFIX))
-XORG_LIB_OLDX_SOURCE := $(SRCDIR)/$(XORG_LIB_OLDX).$(XORG_LIB_OLDX_SUFFIX)
-XORG_LIB_OLDX_DIR := $(BUILDDIR)/$(XORG_LIB_OLDX)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-XORG_LIB_OLDX_PATH := PATH=$(CROSS_PATH)
-XORG_LIB_OLDX_ENV := $(CROSS_ENV)
-
-#
-# autoconf
-#
-XORG_LIB_OLDX_AUTOCONF := $(CROSS_AUTOCONF_USR) \
- --disable-malloc0returnsnull
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-lib-oldx.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-lib-oldx)
- @$(call install_fixup, xorg-lib-oldx,PRIORITY,optional)
- @$(call install_fixup, xorg-lib-oldx,SECTION,base)
- @$(call install_fixup, xorg-lib-oldx,AUTHOR,"Erwin Rol <ero@pengutronix.de>")
- @$(call install_fixup, xorg-lib-oldx,DESCRIPTION,missing)
-
- @$(call install_lib, xorg-lib-oldx, 0, 0, 0644, liboldX)
-
- @$(call install_finish, xorg-lib-oldx)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-lib-xkbui.in b/rules/xorg-lib-xkbui.in
deleted file mode 100644
index 2e1c59231..000000000
--- a/rules/xorg-lib-xkbui.in
+++ /dev/null
@@ -1,12 +0,0 @@
-## SECTION=multimedia_xorg_lib
-
-config XORG_LIB_XKBUI
- tristate
- prompt "libxkbui"
- select LIBC_M
- select XORG_LIB_X11
- select XORG_LIB_XT
- select XORG_LIB_XKBFILE
- help
- libxkbui provides an interface to easily
- present XKB layouts as graphical widgets.
diff --git a/rules/xorg-lib-xkbui.make b/rules/xorg-lib-xkbui.make
deleted file mode 100644
index f4b33d1ae..000000000
--- a/rules/xorg-lib-xkbui.make
+++ /dev/null
@@ -1,57 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006 by Erwin Rol
-# 2010 Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_LIB_XKBUI) += xorg-lib-xkbui
-
-#
-# Paths and names
-#
-XORG_LIB_XKBUI_VERSION := 1.0.2
-XORG_LIB_XKBUI_MD5 := 1143e456f7429e18e88f2eadb2f2b6b1
-XORG_LIB_XKBUI := libxkbui-$(XORG_LIB_XKBUI_VERSION)
-XORG_LIB_XKBUI_SUFFIX := tar.bz2
-XORG_LIB_XKBUI_URL := $(call ptx/mirror, XORG, individual/lib/$(XORG_LIB_XKBUI).$(XORG_LIB_XKBUI_SUFFIX))
-XORG_LIB_XKBUI_SOURCE := $(SRCDIR)/$(XORG_LIB_XKBUI).$(XORG_LIB_XKBUI_SUFFIX)
-XORG_LIB_XKBUI_DIR := $(BUILDDIR)/$(XORG_LIB_XKBUI)
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-XORG_LIB_XKBUI_PATH := PATH=$(CROSS_PATH)
-XORG_LIB_XKBUI_ENV := $(CROSS_ENV)
-
-#
-# autoconf
-#
-XORG_LIB_XKBUI_AUTOCONF := $(CROSS_AUTOCONF_USR)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-lib-xkbui.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-lib-xkbui)
- @$(call install_fixup, xorg-lib-xkbui,PRIORITY,optional)
- @$(call install_fixup, xorg-lib-xkbui,SECTION,base)
- @$(call install_fixup, xorg-lib-xkbui,AUTHOR,"Erwin Rol <ero@pengutronix.de>")
- @$(call install_fixup, xorg-lib-xkbui,DESCRIPTION,missing)
-
- @$(call install_lib, xorg-lib-xkbui, 0, 0, 0644, libxkbui)
-
- @$(call install_finish, xorg-lib-xkbui)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg-options.in b/rules/xorg-options.in
index 943153567..d887257ad 100644
--- a/rules/xorg-options.in
+++ b/rules/xorg-options.in
@@ -1,20 +1,9 @@
-## SECTION=multimedia_xorg
+## SECTION=staging
+## old section:
+### SECTION=multimedia_xorg
menu "options "
-config XORG_KEYBOARD_MAPPING_SUPPORT
- bool
- prompt "support keyboard mappings"
- select XORG_DRIVER_INPUT
- select XORG_DRIVER_INPUT_KEYBOARD
- select XORG_APP_XKBCOMP
- help
- If you like to use a keyboard with your X server (mostly wanted)
- enable this entry. Its required when you want to configure specific
- keyboard layouts and key settings. Mostly needed on non-US keyboards.
- Note: A german keyboard does not support the '@¤\[]{}|' keys when
- disabled!
-
config XORG_OPTIONS_TRANS_UNIX
bool
prompt "unix domain socket transport"
diff --git a/rules/xorg-server.in b/rules/xorg-server.in
deleted file mode 100644
index eb3cfb442..000000000
--- a/rules/xorg-server.in
+++ /dev/null
@@ -1,426 +0,0 @@
-## SECTION=multimedia_xorg
-
-menuconfig XORG_SERVER
- tristate
- prompt "xorg server "
-
- select HOST_MESON
- select HOST_XORG_SERVER
- select HOST_XORG_UTIL_MACROS
- select HOST_XORG_LIB_XTRANS # needed for autoreconf
- select HOST_XORG_FONT_UTIL # needed for autoreconf
-
- #
- # required dependencies, according to REQUIRED_MODULES
- # and REQUIRED_LIBS in conrigure.ac:
- #
-
- select LIBC_DL
- select LIBC_M
- select LIBC_CRYPT # for SHA1
-
- # protos
- select XORGPROTO
- select XORG_LIB_XTRANS
-
- # libs
- select XORG_LIB_XFONT2
- select XORG_LIB_XAU
- select XORG_LIB_FONTENC
- select XORG_LIB_XEXT
- select PIXMAN
- select NETTLE
- select XORG_LIB_XKBFILE
-
- select UDEV if XORG_SERVER_UDEV
- select UDEV_LIBUDEV if XORG_SERVER_UDEV
-
- select LIBDRM if XORG_SERVER_LIBDRM
-
- # glx triggered
- select XORG_LIB_X11 if XORG_SERVER_EXT_GLX
- select MESALIB if XORG_SERVER_EXT_GLX
-
- # dri triggered
- select MESALIB if XORG_SERVER_EXT_DRI
- select LIBDRM if XORG_SERVER_EXT_DRI
-
- # dri2 triggered
- select LIBDRM if XORG_SERVER_EXT_DRI2
-
- # dri3 triggered
- select LIBDRM if XORG_SERVER_EXT_DRI3
- select XORG_LIB_XSHMFENCE if XORG_SERVER_EXT_DRI3
-
- # xdmcp extension
- select XORG_LIB_XDMCP if XORG_SERVER_EXT_XDMCP
-
- # xnest ddx
- #select <xfont>? if XORG_SERVER_XNEST
- select XORG_LIB_X11 if XORG_SERVER_XNEST
-
- # xorg ddx
- select LIBPCIACCESS if XORG_SERVER_XORG
-
- # xwayland ddx
- select WAYLAND if XORG_SERVER_XWAYLAND
- select LIBDRM if XORG_SERVER_XWAYLAND
- select LIBEPOXY if XORG_SERVER_XWAYLAND
-
- # glamor module
- select LIBEPOXY if XORG_SERVER_GLAMOR
- select MESALIB if XORG_SERVER_GLAMOR
- select MESALIB_GBM if XORG_SERVER_GLAMOR
-
- # xv triggered
- select XORG_LIB_XV if XORG_SERVER_EXT_XV
-
- # composite triggered
- select XORG_LIB_XCOMPOSITE if XORG_SERVER_EXT_COMPOSITE
-
- # screensaver triggered
- select XORG_LIB_XSCRNSAVER if XORG_SERVER_EXT_SCREENSAVER
-
- # xres triggered
- select XORG_LIB_XRES if XORG_SERVER_EXT_XRES
-
- select LIBTIRPC if XORG_SERVER_OPT_SECURE_RPC
-
- # FIXME: unclear dependencies
- #select XORG_LIB_XXF86VM if XORG_SERVER_EXT_XV
- #select XORG_LIB_X11
- #select XORG_LIB_XAW
- #select XORG_LIB_XT
- #select XORG_LIB_XMU
- #select XORG_LIB_XTST
- #select XORG_LIB_XKBUI if XORG_KEYBOARD_MAPPING_SUPPORT
- # FIXME: find out which config options need this
- #select GCCLIBS_GCC_S
-
- # FIXME: if not enabled, we get this one:
- # seems an error. Without DBE its definition will be omitted
- # (in os/utils.c), but it will always be used in
- # hw/xfree86/dixmods/dbemodule.c!
- # dbemodule.c:17: error: `noDbeExtension' undeclared here (not in a function)
- #select XORG_SERVER_EXT_DBE
-
- # FIXME: XVMC_[TRUE|FALSE] are ifdefd out if XV is not set!
- #select XORG_SERVER_EXT_XVMC if XORG_SERVER_EXT_XV
-
- # FIXME: same problem as above
- #select XORG_SERVER_EXT_XV
-
- # FIXME: xorg fails in dix subdirectory if no connection to font servers
- # are enabled.
- select XORG_LIB_XFONT2_FONTSERVER
-
-
-if XORG_SERVER
-
-#config XORG_SERVER_QUIRKS
-# bool
-# prompt "enable xorg quirks"
-# default y
-# help
-# This option turns on some additional dependencies between the
-# xorg server and the libraries. These dependencies should not
-# be there, it is just for showing where currently things with
-# the build system do not work as expected.
-
-# ----------------------------------------------------------------------------
-
-config XORG_SERVER_LIBDRM
- select XORG_SERVER_EXT_DPMS
- select XORG_SERVER_EXT_PRESENT
- bool
-
-menu "xorg servers "
-
-config XORG_SERVER_XORG
- bool
- prompt "xorg server"
- default y
- help
- This is the main server to be used for the other video drivers
-
-config XORG_SERVER_DMX
- bool
- depends on BROKEN
- prompt "xorg dmx server"
- help
- Distributed Multi-head X server. Xdmx is a proxy X server that uses
- one or more other X servers as its display devices.
-
-config XORG_SERVER_XVFB
- bool
- depends on BROKEN
- prompt "xorg vfb server"
- help
- --enable-xvfb
-
-config XORG_SERVER_XNEST
- bool
- depends on BROKEN
- # required by configure.ac:
- select XORG_SERVER_EXT_XDMCP
- prompt "xorg xnest server"
- help
- A X server working on a running X server. Disadvantage is Xnest
- supports only features the running X server itself supports.
-
-config XORG_SERVER_XWAYLAND
- bool
- select XORG_SERVER_EXT_COMPOSITE
- select XORG_SERVER_EXT_DRI3
- prompt "Xwayland server"
-
-config XORG_SERVER_XWIN
- bool
- depends on BROKEN
- prompt "xwin server [BROKEN]"
- help
- X Server for the Cygwin environment on Microsoft Windows
-
-config XORG_SERVER_XEPHYR
- bool
- depends on BROKEN
- prompt "xephyr server"
- help
- This server is working on top of a running X server. But instead of
- Xnest this kind of server supports all new features (extensions). It
- doesn't depend on the features of the underlying X server.
-
-endmenu
-
-# ----------------------------------------------------------------------------
-
-menu "xorg config files "
-
-
-config XORG_SERVER_CONFIG_FILES_XORG_CONF
- bool
- prompt "/etc/X11/xorg.conf"
- help
- Install a /etc/X11/xorg.conf file from
- projectroot or generic
-
-endmenu
-
-
-# ----------------------------------------------------------------------------
-
-menu "xorg options "
-
-config XORG_SERVER_OPT_INSTALL_SETUID
- bool
- prompt "install server suid root"
- help
- --enable-install-setuid
-
-config XORG_SERVER_UDEV
- bool
- select XORG_SERVER_LIBDRM
- prompt "detect input devices via udev"
- help
- FIXME
-
-config XORG_SERVER_OPT_SECURE_RPC
- bool
- prompt "secure rpc"
- help
- Use secure RPC authentication (SUN-DES-1)
-
-endmenu
-
-# ----------------------------------------------------------------------------
-
-menu "xorg extensions "
-
-config XORG_SERVER_EXT_COMPOSITE
- bool
- prompt "composite extension"
- default y
- help
- --enable-composite
-
-config XORG_SERVER_EXT_SHM
- bool
- prompt "shm extension"
- default y
- help
- --enable-mitshm Support for MIT Shared Memoy
-
-config XORG_SERVER_EXT_XRES
- bool
- prompt "xres extension"
- default y
- help
- --enable-xres
-
-config XORG_SERVER_EXT_RECORD
- bool
- depends on BROKEN
- prompt "record extension"
- default y
- help
- --enable-record, The record module adds record extension to capture
- events that are associated with recording and playback user actions
- This option will cause runtime problems;
- record: RECORD extension enabled at configure time.
- record: This extension is known to be broken, disabling extension now..
- record: http://bugs.freedesktop.org/show_bug.cgi?id=20500
-
-
-config XORG_SERVER_EXT_XV
- bool
- prompt "xv extension"
- default y
- help
- The Xv extension provides support for video adaptors attached to an X
- display. It takes the approach that a display may have one or more
- video adaptors, each of which has one or more ports through which
- independent video streams pass
-
-config XORG_SERVER_EXT_XVMC
- bool
- prompt "xvmc extension"
- default y
- help
- --enable-xvmc
-
-config XORG_SERVER_EXT_DGA
- bool
- prompt "dga extension"
- default y
- help
- DGA (Direct Access Graphics mode) is a feature of XFree86 that allows
- the program to access directly to video memory on the graphics card.
- DGA supports the double flickering.
-
-config XORG_SERVER_EXT_SCREENSAVER
- bool
- prompt "screensaver extension"
- default y
- help
- --enable-screensaver
-
-config XORG_SERVER_EXT_XDMCP
- bool
- prompt "xdmcp extension"
- help
- --enable-xdmcp
-
-config XORG_SERVER_EXT_XDM_AUTH_1
- bool
- select XORG_SERVER_EXT_XDMCP
- prompt "xdm-auth-1 extension"
- help
- --enable-xdmcp
-
-config XORG_SERVER_EXT_GLX
- bool
- select XORG_SERVER_EXT_XRES
- # This select doesn't work! But it is workarounded by mesalib only
- # presenting the DRI driver as it's backend if GLX is active.
- select MESALIB_GLX
- prompt "glx extension"
- help
- --enable-glx
-
-config XORG_SERVER_EXT_DRI
- bool
- select XORG_SERVER_LIBDRM
- prompt "dri extension"
- help
- Enable support for the Direct Rendering Infrastructure to get 3D
- accelerations support. This is meaningless if you don't have DRI
- support in your kernel for your hardware.
- Currently the build scripts needs DRI disabled when crosscompiling,
- else they try to detect the DRI hardware on your host.
-
-config XORG_SERVER_EXT_DRI2
- bool
- select XORG_SERVER_LIBDRM
- prompt "dri2 extension"
- help
- Enable support for the Direct Rendering Infrastructure 2 to get 3D
- accelerations support. This is meaningless if you don't have DRI
- support in your kernel for your hardware.
- Currently the build scripts needs DRI disabled when crosscompiling,
- else they try to detect the DRI hardware on your host.
-
-config XORG_SERVER_EXT_DRI3
- bool
- select XORG_SERVER_LIBDRM
- prompt "dri3 extension"
- help
- Enable support for the Direct Rendering Infrastructure 3 to get 3D
- accelerations support.
-
-config XORG_SERVER_EXT_PRESENT
- bool
- prompt "present extension"
- help
- The Present extension provides a way for applications to update
- their window contents from a pixmap in a well defined fashion,
- synchronizing with the display refresh and potentially using a
- more efficient mechanism than copying the contents of the source pixmap.
-
-config XORG_SERVER_EXT_XINERAMA
- bool
- prompt "xinerama extension"
- help
- --enable-xinerama - Support for more than one screen, but handled
- as one screen
-
-config XORG_SERVER_EXT_XF86VIDMODE
- bool
- prompt "xf86vidmode extension"
- help
- --enable-xf86vidmode
-
-config XORG_SERVER_EXT_XACE
- bool
- prompt "xace"
- help
- FIXME
-
-config XORG_SERVER_EXT_XSELINUX
- bool
- depends on BROKEN
- prompt "xselinux"
- help
- FIXME
-
-config XORG_SERVER_EXT_XCSECURITY
- bool
- select XORG_SERVER_EXT_XACE
- prompt "xcsecurity"
- help
- FIXME
-
-config XORG_SERVER_EXT_DBE
- bool
- prompt "dbe"
- help
- FIXME
-
-config XORG_SERVER_EXT_DPMS
- bool
- prompt "dpms"
- help
- FIXME
-
-config XORG_SERVER_GLAMOR
- bool
- prompt "glamor module"
- help
- The glamor module is an open-source 2D graphics common driver
- for the X Window System as implemented by X.org. It supports a
- variety of graphics chipsets which have OpenGL/EGL/GBM supports.
-
-endmenu
-
-# ----------------------------------------------------------------------------
-
-endif
diff --git a/rules/xorg-server.make b/rules/xorg-server.make
deleted file mode 100644
index 3f4210d62..000000000
--- a/rules/xorg-server.make
+++ /dev/null
@@ -1,193 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2006, 2009 by Robert Schwebel
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_XORG_SERVER) += xorg-server
-
-#
-# Paths and names
-#
-XORG_SERVER_VERSION := 1.20.10
-XORG_SERVER_MD5 := 8cf8bd1f33e3736bc8dd279b20a32399
-XORG_SERVER := xorg-server-$(XORG_SERVER_VERSION)
-XORG_SERVER_SUFFIX := tar.bz2
-XORG_SERVER_URL := $(call ptx/mirror, XORG, individual/xserver/$(XORG_SERVER).$(XORG_SERVER_SUFFIX))
-XORG_SERVER_SOURCE := $(SRCDIR)/$(XORG_SERVER).$(XORG_SERVER_SUFFIX)
-XORG_SERVER_DIR := $(BUILDDIR)/$(XORG_SERVER)
-XORG_SERVER_LICENSE := MIT
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-# The xorg module loader needs lazy symbol binding
-XORG_SERVER_WRAPPER_BLACKLIST := \
- TARGET_HARDEN_BINDNOW
-
-#
-# FIXME: not all processors support MTRR. Geode GX1 not for
-# example. But it is a 586 clone. configure decides always to support
-# mtrr!
-#
-# XORG_SERVER_ENV += ac_cv_asm_mtrr_h=no
-
-XORG_FONT_DIRS := \
- misc \
- truetype \
- opentype \
- 100dpi \
- Type1 \
- 75dpi \
- cyrillic \
- Speedo
-
-
-#
-# meson
-#
-XORG_SERVER_CONF_TOOL := meson
-# use "=" here
-XORG_SERVER_CONF_OPT = \
- $(CROSS_MESON_USR) \
- -Dbuilder_addr=ptxdist@pengutronix.de \
- -Dbuilder_string=PTXdist \
- -Ddefault_font_path=$(subst $(space),$(comma),$(addprefix $(XORG_FONTDIR)/,$(XORG_FONT_DIRS))) \
- -Ddga=$(call ptx/truefalse, PTXCONF_XORG_SERVER_EXT_DGA) \
- -Ddmx=$(call ptx/truefalse, PTXCONF_XORG_SERVER_DMX) \
- -Ddpms=$(call ptx/truefalse, PTXCONF_XORG_SERVER_EXT_DPMS) \
- -Ddri1=$(call ptx/truefalse, PTXCONF_XORG_SERVER_EXT_DRI) \
- -Ddri2=$(call ptx/truefalse, PTXCONF_XORG_SERVER_EXT_DRI2) \
- -Ddri3=$(call ptx/truefalse, PTXCONF_XORG_SERVER_EXT_DRI3) \
- -Dglamor=$(call ptx/truefalse, PTXCONF_XORG_SERVER_GLAMOR) \
- -Dglx=$(call ptx/truefalse, PTXCONF_XORG_SERVER_EXT_GLX) \
- -Dhal=false \
- -Dipv6=$(call ptx/truefalse, PTXCONF_GLOBAL_IPV6) \
- -Dlinux_acpi=true \
- -Dlinux_apm=true \
- -Dlisten_local=true \
- -Dlisten_tcp=false \
- -Dlisten_unix=true \
- -Dmitshm=$(call ptx/truefalse, PTXCONF_XORG_SERVER_EXT_SHM) \
- -Dos_vendor=PTXdist \
- -Dpciaccess=$(call ptx/truefalse, PTXCONF_XORG_SERVER_XORG) \
- -Dscreensaver=$(call ptx/truefalse, PTXCONF_XORG_SERVER_EXT_SCREENSAVER) \
- -Dsecure-rpc=$(call ptx/truefalse, PTXCONF_XORG_SERVER_OPT_SECURE_RPC) \
- -Dsuid_wrapper=false \
- -Dsystemd_logind=false \
- -Dudev=$(call ptx/truefalse, PTXCONF_XORG_SERVER_UDEV) \
- -Dvbe=true \
- -Dvgahw=true \
- -Dxace=$(call ptx/truefalse, PTXCONF_XORG_SERVER_EXT_XACE) \
- -Dxcsecurity=$(call ptx/truefalse, PTXCONF_XORG_SERVER_EXT_XCSECURITY) \
- -Dxdm-auth-1=$(call ptx/truefalse, PTXCONF_XORG_SERVER_EXT_XDM_AUTH_1) \
- -Dxdmcp=$(call ptx/truefalse, PTXCONF_XORG_SERVER_EXT_XDMCP) \
- -Dxephyr=$(call ptx/truefalse, PTXCONF_XORG_SERVER_XEPHYR) \
- -Dxf86bigfont=$(call ptx/truefalse, PTXCONF_XORG_LIB_X11_XF86BIGFONT) \
- -Dxinerama=$(call ptx/truefalse, PTXCONF_XORG_SERVER_EXT_XINERAMA) \
- -Dxkb_bin_dir=/usr/bin \
- -Dxkb_dir=/usr/share/X11/xkb \
- -Dxnest=$(call ptx/truefalse, PTXCONF_XORG_SERVER_XNEST) \
- -Dxorg=$(call ptx/truefalse, PTXCONF_XORG_SERVER_XORG) \
- -Dxres=$(call ptx/truefalse, PTXCONF_XORG_SERVER_EXT_XRES) \
- -Dxv=$(call ptx/truefalse, PTXCONF_XORG_SERVER_EXT_XV) \
- -Dxvfb=$(call ptx/truefalse, PTXCONF_XORG_SERVER_XVFB) \
- -Dxvmc=$(call ptx/truefalse, PTXCONF_XORG_SERVER_EXT_XVMC) \
- -Dxwayland=$(call ptx/truefalse, PTXCONF_XORG_SERVER_XWAYLAND) \
- -Dxwayland_eglstream=false \
- -Dxwin=$(call ptx/truefalse, PTXCONF_XORG_SERVER_XWIN)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/xorg-server.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, xorg-server)
- @$(call install_fixup, xorg-server,PRIORITY,optional)
- @$(call install_fixup, xorg-server,SECTION,base)
- @$(call install_fixup, xorg-server,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
- @$(call install_fixup, xorg-server,DESCRIPTION,missing)
-
-ifdef PTXCONF_XORG_SERVER_CONFIG_FILES_XORG_CONF
- @$(call install_alternative, xorg-server, 0, 0, 0644, \
- /etc/X11/xorg.conf)
-endif
-
-ifdef PTXCONF_PRELINK
- @$(call install_alternative, xorg-server, 0, 0, 0644, \
- /etc/prelink.conf.d/xorg)
-endif
-
-ifdef PTXCONF_XORG_SERVER_XVFB
- @$(call install_copy, xorg-server, 0, 0, 0755, -, \
- $(XORG_PREFIX)/bin/Xvfb)
-endif
-ifdef PTXCONF_XORG_SERVER_DMX
- @$(call install_copy, xorg-server, 0, 0, 0755, -, \
- $(XORG_PREFIX)/bin/Xdmx)
-endif
-ifdef PTXCONF_XORG_SERVER_XNEST
- @$(call install_copy, xorg-server, 0, 0, 0755, -, \
- $(XORG_PREFIX)/bin/Xnest)
-endif
-ifdef PTXCONF_XORG_SERVER_XWAYLAND
- @$(call install_copy, xorg-server, 0, 0, 0755, -, \
- $(XORG_PREFIX)/bin/Xwayland)
-endif
-ifdef PTXCONF_XORG_SERVER_XWIN
- @$(call install_copy, xorg-server, 0, 0, 0755, -, \
- $(XORG_PREFIX)/bin/Xwin)
-endif
-ifdef PTXCONF_XORG_SERVER_XORG
- @$(call install_copy, xorg-server, 0, 0, 0755, -, \
- $(XORG_PREFIX)/bin/Xorg)
- @$(call install_link, xorg-server, Xorg, /usr/bin/X)
-
-ifdef PTXCONF_XORG_DRIVER_VIDEO
- @$(call install_copy, xorg-server, 0, 0, 0644, -, \
- $(XORG_PREFIX)/lib/xorg/modules/libexa.so)
- @$(call install_copy, xorg-server, 0, 0, 0644, -, \
- $(XORG_PREFIX)/lib/xorg/modules/libfb.so)
- @$(call install_copy, xorg-server, 0, 0, 0644, -, \
- $(XORG_PREFIX)/lib/xorg/modules/libfbdevhw.so)
- @$(call install_copy, xorg-server, 0, 0, 0644, -, \
- $(XORG_PREFIX)/lib/xorg/modules/libint10.so)
- @$(call install_copy, xorg-server, 0, 0, 0644, -, \
- $(XORG_PREFIX)/lib/xorg/modules/libshadow.so)
- @$(call install_copy, xorg-server, 0, 0, 0644, -, \
- $(XORG_PREFIX)/lib/xorg/modules/libshadowfb.so)
- @$(call install_copy, xorg-server, 0, 0, 0644, -, \
- $(XORG_PREFIX)/lib/xorg/modules/libvbe.so)
- @$(call install_copy, xorg-server, 0, 0, 0644, -, \
- $(XORG_PREFIX)/lib/xorg/modules/libwfb.so)
- @$(call install_copy, xorg-server, 0, 0, 0644, -, \
- $(XORG_PREFIX)/lib/xorg/modules/libvgahw.so)
-ifdef PTXCONF_XORG_DRIVER_VIDEO_MODESETTING
- @$(call install_copy, xorg-server, 0, 0, 0644, -, \
- /usr/lib/xorg/modules/drivers/modesetting_drv.so)
-endif
-endif
-
-ifdef PTXCONF_XORG_SERVER_EXT_GLX
- @$(call install_copy, xorg-server, 0, 0, 0644, -, \
- /usr/lib/xorg/modules/extensions/libglx.so)
-endif
-ifdef PTXCONF_XORG_SERVER_GLAMOR
- @$(call install_copy, xorg-server, 0, 0, 0644, -, \
- $(XORG_PREFIX)/lib/xorg/modules/libglamoregl.so)
-endif
-
-endif # PTXCONF_XORG_SERVER_XORG
- @$(call install_finish, xorg-server)
-
- @$(call touch)
-
-# vim: syntax=make
diff --git a/rules/xorg_windowmanagers.in b/rules/xorg_windowmanagers.in
deleted file mode 100644
index 9dd052c8f..000000000
--- a/rules/xorg_windowmanagers.in
+++ /dev/null
@@ -1,5 +0,0 @@
-## SECTION=multimedia_xorg
-
-menu "xorg window managers "
-source "generated/x_windowmanagers.in"
-endmenu
diff --git a/rules/xorgproto.in b/rules/xorgproto.in
index 31b3eade4..a97d5e9dc 100644
--- a/rules/xorgproto.in
+++ b/rules/xorgproto.in
@@ -2,4 +2,5 @@
config XORGPROTO
tristate
+ select HOST_MESON
default y if ALLYES
diff --git a/rules/xorgproto.make b/rules/xorgproto.make
index c25c05674..8243c59f5 100644
--- a/rules/xorgproto.make
+++ b/rules/xorgproto.make
@@ -14,10 +14,10 @@ PACKAGES-$(PTXCONF_XORGPROTO) += xorgproto
#
# Paths and names
#
-XORGPROTO_VERSION := 2019.1
-XORGPROTO_MD5 := 802ccb9e977ba3cf94ba798ddb2898a4
+XORGPROTO_VERSION := 2023.2
+XORGPROTO_MD5 := 2e266a49ce3f56669d014cf284901e6e
XORGPROTO := xorgproto-$(XORGPROTO_VERSION)
-XORGPROTO_SUFFIX := tar.bz2
+XORGPROTO_SUFFIX := tar.xz
XORGPROTO_URL := $(call ptx/mirror, XORG, individual/proto/$(XORGPROTO).$(XORGPROTO_SUFFIX))
XORGPROTO_SOURCE := $(SRCDIR)/$(XORGPROTO).$(XORGPROTO_SUFFIX)
XORGPROTO_DIR := $(BUILDDIR)/$(XORGPROTO)
@@ -30,15 +30,9 @@ XORGPROTO_LICENSE := X11 AND MIT AND BSD-2-Clause
#
# autoconf
#
-XORGPROTO_CONF_TOOL := autoconf
+XORGPROTO_CONF_TOOL := meson
XORGPROTO_CONF_OPT := \
- $(CROSS_AUTOCONF_USR) \
- --disable-selective-werror \
- --disable-strict-compilation \
- --enable-specs \
- --enable-legacy \
- --without-xmlto \
- --without-fop \
- --without-xsltproc
+ $(CROSS_MESON_USR) \
+ -Dlegacy=true
# vim: syntax=make
diff --git a/rules/xterm.make b/rules/xterm.make
index e78c68aa9..832391070 100644
--- a/rules/xterm.make
+++ b/rules/xterm.make
@@ -29,13 +29,11 @@ XTERM_LICENSE_FILES := \
# Prepare
# ----------------------------------------------------------------------------
-XTERM_PATH := PATH=$(CROSS_PATH)
-XTERM_ENV := $(CROSS_ENV)
-
#
# autoconf
#
-XTERM_AUTOCONF := \
+XTERM_CONF_TOOL := autoconf
+XTERM_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-freetype \
--disable-rpath-hack \
diff --git a/rules/xwayland.in b/rules/xwayland.in
new file mode 100644
index 000000000..9f23c6265
--- /dev/null
+++ b/rules/xwayland.in
@@ -0,0 +1,76 @@
+## SECTION=multimedia_xorg
+
+menuconfig XWAYLAND
+ tristate
+ prompt "XWayland "
+ select HOST_MESON
+ select LIBC_M
+ select LIBDRM
+ select LIBEPOXY
+ select LIBXCVT
+ select NETTLE
+ select PIXMAN
+ select WAYLAND
+ select XORGPROTO
+ select XORG_LIB_FONTENC
+ select XORG_LIB_XAU
+ select XORG_LIB_XEXT
+ select XORG_LIB_XFONT2
+ select XORG_LIB_XKBFILE
+ select XORG_LIB_XSHMFENCE
+ select XORG_LIB_XTRANS
+ select MESALIB if XWAYLAND_GLAMOR
+ select MESALIB_GBM if XWAYLAND_GLAMOR
+ select MESALIB_GLX if XWAYLAND_EXT_GLX
+ select XORG_LIB_XV if XWAYLAND_EXT_XV
+ select XORG_LIB_XRES if XWAYLAND_EXT_XRES
+ select XORG_APP_XKBCOMP if RUNTIME
+
+if XWAYLAND
+
+menu "xwayland extensions"
+
+config XWAYLAND_EXT_GLX
+ bool
+ prompt "glx extension"
+ default y
+ help
+ Support for the GLX extension allowing clients to set up
+ a OpenGL context on a X display when not using EGL.
+
+config XWAYLAND_EXT_SHM
+ bool
+ prompt "shm extension"
+ default y
+ help
+ Support for MIT Shared Memory
+
+config XWAYLAND_EXT_XRES
+ bool
+ prompt "xres extension"
+ default y
+ help
+ The X-Resource extension allows a client to query the X server about
+ its usage of various resources.
+
+config XWAYLAND_EXT_XV
+ bool
+ prompt "xv extension"
+ default y
+ help
+ The Xv extension provides support for video adaptors attached to an X
+ display. It takes the approach that a display may have one or more
+ video adaptors, each of which has one or more ports through which
+ independent video streams pass
+
+config XWAYLAND_GLAMOR
+ bool
+ prompt "glamor module"
+ help
+ The glamor module is an open-source 2D graphics common driver
+ for the X Window System as implemented by X.org. It supports a
+ variety of graphics chipsets which have EGL/GBM/OpenGL 2.1 support.
+
+endmenu
+
+endif
diff --git a/rules/xwayland.make b/rules/xwayland.make
new file mode 100644
index 000000000..fae736d93
--- /dev/null
+++ b/rules/xwayland.make
@@ -0,0 +1,107 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 Philipp Zabel
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_XWAYLAND) += xwayland
+
+#
+# Paths and names
+#
+XWAYLAND_VERSION := 23.2.4
+XWAYLAND_MD5 := 9d04fbe9c3a531c9cd08d38f51788ae6
+XWAYLAND := xwayland-$(XWAYLAND_VERSION)
+XWAYLAND_SUFFIX := tar.xz
+XWAYLAND_URL := $(call ptx/mirror, XORG, individual/xserver/$(XWAYLAND).$(XWAYLAND_SUFFIX))
+XWAYLAND_SOURCE := $(SRCDIR)/$(XWAYLAND).$(XWAYLAND_SUFFIX)
+XWAYLAND_DIR := $(BUILDDIR)/$(XWAYLAND)
+XWAYLAND_LICENSE := MIT
+XWAYLAND_LICENSE_FILES := \
+ file://COPYING;md5=5df87950af51ac2c5822094553ea1880
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# meson
+#
+XWAYLAND_CONF_TOOL := meson
+XWAYLAND_CONF_OPT := \
+ $(CROSS_MESON_USR) \
+ -Dbuilder_addr=ptxdist@pengutronix.de \
+ -Dbuilder_string=PTXdist \
+ -Ddefault_font_path=$(subst $(space),$(comma),$(addprefix $(XORG_FONTDIR)/,$(XORG_FONT_DIRS))) \
+ -Ddevel-docs=false \
+ -Ddocs=false \
+ -Ddocs-pdf=false \
+ -Ddpms=false \
+ -Ddri3=true \
+ -Ddrm=true \
+ -Ddtrace=false \
+ -Dfontrootdir= \
+ -Dglamor=$(call ptx/truefalse, PTXCONF_XWAYLAND_GLAMOR) \
+ -Dglx=$(call ptx/truefalse, PTXCONF_XWAYLAND_EXT_GLX) \
+ -Dinput_thread=auto \
+ -Dipv6=$(call ptx/truefalse, PTXCONF_GLOBAL_IPV6) \
+ -Dlibdecor=false \
+ -Dlibunwind=false \
+ -Dlisten_local=true \
+ -Dlisten_tcp=false \
+ -Dlisten_unix=true \
+ -Dmitshm=$(call ptx/truefalse, PTXCONF_XWAYLAND_EXT_SHM) \
+ -Dscreensaver=false \
+ -Dsecure-rpc=false \
+ -Dserverconfigdir= \
+ -Dsha1=libnettle \
+ -Dvendor_name=PTXdist \
+ -Dvendor_name_short=PTXdist \
+ -Dvendor_web=https://www.ptxdist.org/ \
+ -Dxace=false \
+ -Dxcsecurity=false \
+ -Dxdm-auth-1=false \
+ -Dxdmcp=false \
+ -Dxf86bigfont=false \
+ -Dxinerama=false \
+ -Dxkb_bin_dir=/usr/bin \
+ -Dxkb_default_layout=us \
+ -Dxkb_default_model=pc105 \
+ -Dxkb_default_options= \
+ -Dxkb_default_rules=evdev \
+ -Dxkb_default_variant= \
+ -Dxkb_dir=/usr/share/X11/xkb \
+ -Dxkb_output_dir= \
+ -Dxres=$(call ptx/truefalse, PTXCONF_XWAYLAND_EXT_XRES) \
+ -Dxselinux=false \
+ -Dxv=$(call ptx/truefalse, PTXCONF_XWAYLAND_EXT_XV) \
+ -Dxvfb=false \
+ -Dxwayland-path= \
+ -Dxwayland_eglstream=false \
+ -Dxwayland_ei=false
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/xwayland.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, xwayland)
+ @$(call install_fixup, xwayland,PRIORITY,optional)
+ @$(call install_fixup, xwayland,SECTION,base)
+ @$(call install_fixup, xwayland,AUTHOR,"Philipp Zabel <p.zabel@pengutronix.de>")
+ @$(call install_fixup, xwayland,DESCRIPTION,missing)
+
+ @$(call install_copy, xwayland, 0, 0, 0755, -, $(XORG_PREFIX)/bin/Xwayland)
+
+ @$(call install_finish, xwayland)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/xxhash.in b/rules/xxhash.in
new file mode 100644
index 000000000..47e9c672a
--- /dev/null
+++ b/rules/xxhash.in
@@ -0,0 +1,7 @@
+## SECTION=system_libraries
+
+config XXHASH
+ tristate
+ prompt "xxhash"
+ help
+ Extremely fast non-cryptographic hash library.
diff --git a/rules/xxhash.make b/rules/xxhash.make
new file mode 100644
index 000000000..6fa2f02e5
--- /dev/null
+++ b/rules/xxhash.make
@@ -0,0 +1,56 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Christian Melki <christian.melki@t2data.com>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_XXHASH) += xxhash
+
+#
+# Paths and names
+#
+XXHASH_VERSION := 0.8.2
+XXHASH_MD5 := a7628d7a4fd608a7573c5a3e2c856ea5
+XXHASH := xxhash-$(XXHASH_VERSION)
+XXHASH_SUFFIX := tar.gz
+XXHASH_URL := https://github.com/Cyan4973/xxHash/archive/refs/tags/v$(XXHASH_VERSION).$(XXHASH_SUFFIX)
+XXHASH_SOURCE := $(SRCDIR)/$(XXHASH).$(XXHASH_SUFFIX)
+XXHASH_DIR := $(BUILDDIR)/$(XXHASH)
+XXHASH_LICENSE := BSD-2-Clause
+XXHASH_LICENSE_FILES := \
+ file://LICENSE;md5=13be6b481ff5616f77dda971191bb29b
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+XXHASH_CONF_TOOL := NO
+
+XXHASH_MAKE_ENV := \
+ $(CROSS_ENV) \
+ prefix=/usr
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/xxhash.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, xxhash)
+ @$(call install_fixup, xxhash,PRIORITY,optional)
+ @$(call install_fixup, xxhash,SECTION,base)
+ @$(call install_fixup, xxhash,AUTHOR,"Christian Melki <christian.melki@t2data.com>")
+ @$(call install_fixup, xxhash,DESCRIPTION,missing)
+
+ @$(call install_lib, xxhash, 0, 0, 0644, libxxhash)
+
+ @$(call install_finish, xxhash)
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/xz.make b/rules/xz.make
index 2bb465b20..f24a2ac03 100644
--- a/rules/xz.make
+++ b/rules/xz.make
@@ -14,18 +14,18 @@ PACKAGES-$(PTXCONF_XZ) += xz
#
# Paths and names
#
-XZ_VERSION := 5.2.5
-XZ_MD5 := 33ab3ef79aa1146b83b778210e7b0a54
+XZ_VERSION := 5.4.4
+XZ_MD5 := fbb849a27e266964aefe26bad508144f
XZ := xz-$(XZ_VERSION)
XZ_SUFFIX := tar.bz2
-XZ_URL := http://tukaani.org/xz/$(XZ).$(XZ_SUFFIX)
+XZ_URL := https://tukaani.org/xz/$(XZ).$(XZ_SUFFIX)
XZ_SOURCE := $(SRCDIR)/$(XZ).$(XZ_SUFFIX)
XZ_DIR := $(BUILDDIR)/$(XZ)
XZ_LICENSE := public_domain AND LGPL-2.1-or-later AND GPL-2.0-or-later AND GPL-3.0-or-later
XZ_LICENSE_FILES := \
- file://COPYING;md5=97d554a32881fee0aa283d96e47cb24a \
+ file://COPYING;md5=c8ea84ebe7b93cce676b54355dc6b2c0 \
file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING.GPLv3;md5=1ebbd3e34237af26da5dc08a4e440464 \
file://COPYING.LGPLv2.1;md5=4fbd65380cdd255951079008b364516c
# ----------------------------------------------------------------------------
@@ -40,7 +40,10 @@ XZ_CONF_OPT := \
$(CROSS_AUTOCONF_USR) \
--disable-debug \
--disable-external-sha256 \
+ --disable-microlzma \
+ --disable-lzip-decoder \
--enable-assembler \
+ --enable-clmul-crc \
--disable-small \
--enable-threads \
--$(call ptx/endis,PTXCONF_XZ_TOOLS)-xz \
@@ -50,14 +53,15 @@ XZ_CONF_OPT := \
--disable-lzma-links \
--$(call ptx/endis,PTXCONF_XZ_TOOLS)-scripts \
--disable-doc \
- --enable-symbol-versions \
--disable-sandbox \
--enable-shared \
--disable-static \
+ --enable-symbol-versions \
--disable-nls \
--disable-rpath \
$(GLOBAL_LARGE_FILE_OPTION) \
--enable-unaligned-access=auto \
+ --disable-unsafe-type-punning \
--disable-werror
# ----------------------------------------------------------------------------
diff --git a/rules/zbar.in b/rules/zbar.in
new file mode 100644
index 000000000..bdf2ec3ac
--- /dev/null
+++ b/rules/zbar.in
@@ -0,0 +1,7 @@
+## SECTION=multimedia_libs
+
+config ZBAR
+ tristate
+ prompt "zbar"
+ help
+ QR code / bar code scanner and decoder
diff --git a/rules/zbar.make b/rules/zbar.make
new file mode 100644
index 000000000..5eb283bd8
--- /dev/null
+++ b/rules/zbar.make
@@ -0,0 +1,77 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2021 by Stefan Ursella <stefan.ursella@wolfvision.net>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_ZBAR) += zbar
+
+#
+# Paths and names
+#
+ZBAR_VERSION := 0.23.90
+ZBAR_MD5 := 5acc043376cad65e8c6a8b0a5eed7e1b
+ZBAR := zbar-$(ZBAR_VERSION)
+ZBAR_SUFFIX := tar.bz2
+ZBAR_URL := https://linuxtv.org/downloads/zbar/$(ZBAR).$(ZBAR_SUFFIX)
+ZBAR_SOURCE := $(SRCDIR)/$(ZBAR).$(ZBAR_SUFFIX)
+ZBAR_DIR := $(BUILDDIR)/$(ZBAR)
+ZBAR_LICENSE := LGPL-2.0-or-later
+ZBAR_LICENSE_FILES := \
+ file://LICENSE.md;md5=5e9ee833a2118adc7d8b5ea38e5b1cef
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+ZBAR_CONF_TOOL := autoconf
+ZBAR_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --disable-static \
+ --disable-rpath \
+ --disable-nls \
+ --enable-pthread \
+ --disable-doc \
+ --disable-video \
+ --disable-introspection \
+ --enable-assert \
+ --without-directshow \
+ --without-x \
+ --without-xshm \
+ --without-xv \
+ --without-dbus \
+ --without-jpeg \
+ --without-imagemagick \
+ --without-graphicsmagick \
+ --without-npapi \
+ --without-gtk \
+ --without-gir \
+ --without-python \
+ --without-qt \
+ --without-qt5 \
+ --without-java
+
+$(STATEDIR)/zbar.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, zbar)
+ @$(call install_fixup, zbar,PRIORITY,optional)
+ @$(call install_fixup, zbar,SECTION,base)
+ @$(call install_fixup, zbar,AUTHOR,"Stefan Ursella <stefan.ursella@wolfvision.net>")
+ @$(call install_fixup, zbar,DESCRIPTION,missing)
+
+ @$(call install_lib, zbar, 0, 0, 0644, libzbar)
+
+ @$(call install_finish, zbar)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/zip.make b/rules/zip.make
index a84c701e7..bc4a34986 100644
--- a/rules/zip.make
+++ b/rules/zip.make
@@ -31,7 +31,6 @@ ZIP_LICENSE_FILES := file://LICENSE;md5=04d43c5d70b496c032308106e26ae17d
# Compile
# ----------------------------------------------------------------------------
-ZIP_PATH := PATH=$(CROSS_PATH)
ZIP_MAKE_OPT := \
$(CROSS_ENV_CC) \
$(CROSS_ENV_CPP) \
diff --git a/rules/zlib.make b/rules/zlib.make
index 96ef33966..50cc89520 100644
--- a/rules/zlib.make
+++ b/rules/zlib.make
@@ -15,17 +15,19 @@ PACKAGES-$(PTXCONF_ZLIB) += zlib
#
# Paths and names
#
-ZLIB_VERSION := 1.2.11
-ZLIB_MD5 := 85adef240c5f370b308da8c938951a68
+
+ZLIB_VERSION := 1.3.1
+ZLIB_MD5 := 5e6af153311327e516690d300527ec9e
ZLIB := zlib-$(ZLIB_VERSION)
ZLIB_SUFFIX := tar.xz
ZLIB_URL := \
- http://zlib.net/$(ZLIB).$(ZLIB_SUFFIX) \
- $(call ptx/mirror, SF, libpng/$(ZLIB).$(ZLIB_SUFFIX))
+ http://zlib.net/fossils/$(ZLIB).$(ZLIB_SUFFIX) \
+ https://github.com/madler/zlib/releases/download/v$(ZLIB_VERSION)/$(ZLIB).$(ZLIB_SUFFIX)
ZLIB_SOURCE := $(SRCDIR)/$(ZLIB).$(ZLIB_SUFFIX)
ZLIB_DIR := $(BUILDDIR)/$(ZLIB)
ZLIB_LICENSE := Zlib
-ZLIB_LICENSE_FILES := file://README;md5=0ff45db88393c3152e458a047bba0ff1
+ZLIB_LICENSE_FILES := \
+ file://LICENSE;md5=b51a40671bc46e961c0498897742c0b8
# ----------------------------------------------------------------------------
# Prepare
@@ -42,7 +44,7 @@ ZLIB_CONF_TOOL := autoconf
ZLIB_CONF_OPT := \
--prefix=/usr \
--uname=Linux \
- --libdir=/usr/$(CROSS_LIB_DIR)
+ --libdir=/usr/lib
# ----------------------------------------------------------------------------
# Target-Install
diff --git a/rules/zstd.make b/rules/zstd.make
index 0e3ff9c00..fdda5819e 100644
--- a/rules/zstd.make
+++ b/rules/zstd.make
@@ -14,15 +14,18 @@ PACKAGES-$(PTXCONF_ZSTD) += zstd
#
# Paths and names
#
-ZSTD_VERSION := 1.5.0
-ZSTD_MD5 := d5ac89d5df9e81243ce40d0c6a66691d
-ZSTD := zstd-$(ZSTD_VERSION)
-ZSTD_SUFFIX := tar.gz
-ZSTD_URL := https://github.com/facebook/zstd/archive/v$(ZSTD_VERSION).$(ZSTD_SUFFIX)
-ZSTD_SOURCE := $(SRCDIR)/$(ZSTD).$(ZSTD_SUFFIX)
-ZSTD_DIR := $(BUILDDIR)/$(ZSTD)
-ZSTD_SUBDIR := build/cmake
-ZSTD_LICENSE := BSD-3-clause
+ZSTD_VERSION := 1.5.6
+ZSTD_MD5 := 2543d7cb3beda9ec48f965e5059dbd42
+ZSTD := zstd-$(ZSTD_VERSION)
+ZSTD_SUFFIX := tar.gz
+ZSTD_URL := https://github.com/facebook/zstd/archive/v$(ZSTD_VERSION).$(ZSTD_SUFFIX)
+ZSTD_SOURCE := $(SRCDIR)/$(ZSTD).$(ZSTD_SUFFIX)
+ZSTD_DIR := $(BUILDDIR)/$(ZSTD)
+ZSTD_SUBDIR := build/cmake
+ZSTD_LICENSE := BSD-3-clause OR GPL-2.0-only
+ZSTD_LICENSE_FILES := \
+ file://LICENSE;md5=0822a32f7acdbe013606746641746ee8 \
+ file://COPYING;md5=39bba7d2cf0ba1036f2a6e2be52fe3f0
# ----------------------------------------------------------------------------
# Prepare
diff --git a/scripts/autoconf/config.guess b/scripts/autoconf/config.guess
index dbfb9786c..69188da73 100755
--- a/scripts/autoconf/config.guess
+++ b/scripts/autoconf/config.guess
@@ -1,12 +1,14 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2015 Free Software Foundation, Inc.
+# Copyright 1992-2023 Free Software Foundation, Inc.
-timestamp='2015-01-01'
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2023-01-01'
# This file 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
+# 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
@@ -15,7 +17,7 @@ timestamp='2015-01-01'
# 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/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -27,11 +29,19 @@ timestamp='2015-01-01'
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
#
# Please send patches to <config-patches@gnu.org>.
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX. However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
+
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
@@ -39,7 +49,7 @@ Usage: $0 [OPTION]
Output the configuration name of the system \`$me' is run on.
-Operation modes:
+Options:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
@@ -50,7 +60,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2015 Free Software Foundation, Inc.
+Copyright 1992-2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -84,7 +94,8 @@ if test $# != 0; then
exit 1
fi
-trap 'exit 1' 1 2 15
+# Just in case it came from the environment.
+GUESS=
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
@@ -96,66 +107,90 @@ trap 'exit 1' 1 2 15
# Portable tmp directory creation inspired by the Autoconf team.
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int x;" > $dummy.c ;
- for c in cc gcc c89 c99 ; do
- if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$c"; break ;
- fi ;
- done ;
- if test x"$CC_FOR_BUILD" = x ; then
- CC_FOR_BUILD=no_compiler_found ;
- fi
- ;;
- ,,*) CC_FOR_BUILD=$CC ;;
- ,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
+tmp=
+# shellcheck disable=SC2172
+trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
+
+set_cc_for_build() {
+ # prevent multiple calls if $tmp is already set
+ test "$tmp" && return 0
+ : "${TMPDIR=/tmp}"
+ # shellcheck disable=SC2039,SC3028
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
+ dummy=$tmp/dummy
+ case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
+ ,,) echo "int x;" > "$dummy.c"
+ for driver in cc gcc c89 c99 ; do
+ if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
+ CC_FOR_BUILD=$driver
+ break
+ fi
+ done
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+ esac
+}
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+if test -f /.attbin/uname ; then
PATH=$PATH:/.attbin ; export PATH
fi
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-case "${UNAME_SYSTEM}" in
+case $UNAME_SYSTEM in
Linux|GNU|GNU/*)
- # If the system lacks a compiler, then just pick glibc.
- # We could probably try harder.
- LIBC=gnu
+ LIBC=unknown
- eval $set_cc_for_build
- cat <<-EOF > $dummy.c
+ set_cc_for_build
+ cat <<-EOF > "$dummy.c"
#include <features.h>
#if defined(__UCLIBC__)
LIBC=uclibc
#elif defined(__dietlibc__)
LIBC=dietlibc
- #else
+ #elif defined(__GLIBC__)
LIBC=gnu
+ #else
+ #include <stdarg.h>
+ /* First heuristic to detect musl libc. */
+ #ifdef __DEFINED_va_list
+ LIBC=musl
+ #endif
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+ cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+ eval "$cc_set_libc"
+
+ # Second heuristic to detect musl libc.
+ if [ "$LIBC" = unknown ] &&
+ command -v ldd >/dev/null &&
+ ldd --version 2>&1 | grep -q ^musl; then
+ LIBC=musl
+ fi
+
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ if [ "$LIBC" = unknown ]; then
+ LIBC=gnu
+ fi
;;
esac
# Note: order is significant - the case branches are not exclusive.
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
@@ -167,22 +202,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
#
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
- sysctl="sysctl -n hw.machine_arch"
- UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
- /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
- case "${UNAME_MACHINE_ARCH}" in
+ UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
+ /sbin/sysctl -n hw.machine_arch 2>/dev/null || \
+ /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
+ echo unknown)`
+ case $UNAME_MACHINE_ARCH in
+ aarch64eb) machine=aarch64_be-unknown ;;
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
- *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ earmv*)
+ arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
+ endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
+ machine=${arch}${endian}-unknown
+ ;;
+ *) machine=$UNAME_MACHINE_ARCH-unknown ;;
esac
# The Operating System including object format, if it has switched
- # to ELF recently, or will in the future.
- case "${UNAME_MACHINE_ARCH}" in
+ # to ELF recently (or will in the future) and ABI.
+ case $UNAME_MACHINE_ARCH in
+ earm*)
+ os=netbsdelf
+ ;;
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
- eval $set_cc_for_build
+ set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
then
@@ -197,45 +242,80 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
os=netbsd
;;
esac
+ # Determine ABI tags.
+ case $UNAME_MACHINE_ARCH in
+ earm*)
+ expr='s/^earmv[0-9]/-eabi/;s/eb$//'
+ abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
+ ;;
+ esac
# The OS release
# Debian GNU/NetBSD machines have a different userland, and
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
- case "${UNAME_VERSION}" in
+ case $UNAME_VERSION in
Debian*)
release='-gnu'
;;
*)
- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}"
- exit ;;
+ GUESS=$machine-${os}${release}${abi-}
+ ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE
+ ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE
+ ;;
+ *:SecBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
+ GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE
+ ;;
+ *:LibertyBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
+ GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE
+ ;;
+ *:MidnightBSD:*:*)
+ GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE
+ ;;
*:ekkoBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE
+ ;;
*:SolidBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE
+ ;;
+ *:OS108:*:*)
+ GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE
+ ;;
macppc:MirBSD:*:*)
- echo powerpc-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
+ GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE
+ ;;
*:MirBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE
+ ;;
+ *:Sortix:*:*)
+ GUESS=$UNAME_MACHINE-unknown-sortix
+ ;;
+ *:Twizzler:*:*)
+ GUESS=$UNAME_MACHINE-unknown-twizzler
+ ;;
+ *:Redox:*:*)
+ GUESS=$UNAME_MACHINE-unknown-redox
+ ;;
+ mips:OSF1:*.*)
+ GUESS=mips-dec-osf1
+ ;;
alpha:OSF1:*:*)
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ trap '' 0
case $UNAME_RELEASE in
*4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
@@ -249,163 +329,158 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# covers most systems running today. This code pipes the CPU
# types through head -n 1, so we only detect the type of CPU 0.
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
- case "$ALPHA_CPU_TYPE" in
+ case $ALPHA_CPU_TYPE in
"EV4 (21064)")
- UNAME_MACHINE="alpha" ;;
+ UNAME_MACHINE=alpha ;;
"EV4.5 (21064)")
- UNAME_MACHINE="alpha" ;;
+ UNAME_MACHINE=alpha ;;
"LCA4 (21066/21068)")
- UNAME_MACHINE="alpha" ;;
+ UNAME_MACHINE=alpha ;;
"EV5 (21164)")
- UNAME_MACHINE="alphaev5" ;;
+ UNAME_MACHINE=alphaev5 ;;
"EV5.6 (21164A)")
- UNAME_MACHINE="alphaev56" ;;
+ UNAME_MACHINE=alphaev56 ;;
"EV5.6 (21164PC)")
- UNAME_MACHINE="alphapca56" ;;
+ UNAME_MACHINE=alphapca56 ;;
"EV5.7 (21164PC)")
- UNAME_MACHINE="alphapca57" ;;
+ UNAME_MACHINE=alphapca57 ;;
"EV6 (21264)")
- UNAME_MACHINE="alphaev6" ;;
+ UNAME_MACHINE=alphaev6 ;;
"EV6.7 (21264A)")
- UNAME_MACHINE="alphaev67" ;;
+ UNAME_MACHINE=alphaev67 ;;
"EV6.8CB (21264C)")
- UNAME_MACHINE="alphaev68" ;;
+ UNAME_MACHINE=alphaev68 ;;
"EV6.8AL (21264B)")
- UNAME_MACHINE="alphaev68" ;;
+ UNAME_MACHINE=alphaev68 ;;
"EV6.8CX (21264D)")
- UNAME_MACHINE="alphaev68" ;;
+ UNAME_MACHINE=alphaev68 ;;
"EV6.9A (21264/EV69A)")
- UNAME_MACHINE="alphaev69" ;;
+ UNAME_MACHINE=alphaev69 ;;
"EV7 (21364)")
- UNAME_MACHINE="alphaev7" ;;
+ UNAME_MACHINE=alphaev7 ;;
"EV7.9 (21364A)")
- UNAME_MACHINE="alphaev79" ;;
+ UNAME_MACHINE=alphaev79 ;;
esac
# A Pn.n version is a patched version.
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
- exitcode=$?
- trap '' 0
- exit $exitcode ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit ;;
+ OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+ GUESS=$UNAME_MACHINE-dec-osf$OSF_REL
+ ;;
Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit ;;
+ GUESS=m68k-unknown-sysv4
+ ;;
*:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-amigaos
+ ;;
*:[Mm]orph[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-morphos
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-morphos
+ ;;
*:OS/390:*:*)
- echo i370-ibm-openedition
- exit ;;
+ GUESS=i370-ibm-openedition
+ ;;
*:z/VM:*:*)
- echo s390-ibm-zvmoe
- exit ;;
+ GUESS=s390-ibm-zvmoe
+ ;;
*:OS400:*:*)
- echo powerpc-ibm-os400
- exit ;;
+ GUESS=powerpc-ibm-os400
+ ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit ;;
+ GUESS=arm-acorn-riscix$UNAME_RELEASE
+ ;;
arm*:riscos:*:*|arm*:RISCOS:*:*)
- echo arm-unknown-riscos
- exit ;;
+ GUESS=arm-unknown-riscos
+ ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit ;;
+ GUESS=hppa1.1-hitachi-hiuxmpp
+ ;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit ;;
+ case `(/bin/universe) 2>/dev/null` in
+ att) GUESS=pyramid-pyramid-sysv3 ;;
+ *) GUESS=pyramid-pyramid-bsd ;;
+ esac
+ ;;
NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit ;;
+ GUESS=pyramid-pyramid-svr4
+ ;;
DRS?6000:unix:4.0:6*)
- echo sparc-icl-nx6
- exit ;;
+ GUESS=sparc-icl-nx6
+ ;;
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7; exit ;;
- esac ;;
+ sparc) GUESS=sparc-icl-nx7 ;;
+ esac
+ ;;
s390x:SunOS:*:*)
- echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL
+ ;;
sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-hal-solaris2$SUN_REL
+ ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-sun-solaris2$SUN_REL
+ ;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
- echo i386-pc-auroraux${UNAME_RELEASE}
- exit ;;
+ GUESS=i386-pc-auroraux$UNAME_RELEASE
+ ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
- eval $set_cc_for_build
- SUN_ARCH="i386"
+ set_cc_for_build
+ SUN_ARCH=i386
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
# This test works for both compilers.
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
- SUN_ARCH="x86_64"
+ SUN_ARCH=x86_64
fi
fi
- echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=$SUN_ARCH-pc-solaris2$SUN_REL
+ ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-sun-solaris3$SUN_REL
+ ;;
sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
+ case `/usr/bin/arch -k` in
Series*|S4*)
UNAME_RELEASE=`uname -v`
;;
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
+ GUESS=sparc-sun-sunos$SUN_REL
+ ;;
sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-sun-sunos$UNAME_RELEASE
+ ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
- case "`/bin/arch`" in
+ test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
+ case `/bin/arch` in
sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
+ GUESS=m68k-sun-sunos$UNAME_RELEASE
;;
sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
+ GUESS=sparc-sun-sunos$UNAME_RELEASE
;;
esac
- exit ;;
+ ;;
aushp:SunOS:*:*)
- echo sparc-auspex-sunos${UNAME_RELEASE}
- exit ;;
+ GUESS=sparc-auspex-sunos$UNAME_RELEASE
+ ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
@@ -415,44 +490,44 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-milan-mint$UNAME_RELEASE
+ ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-hades-mint$UNAME_RELEASE
+ ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-unknown-mint$UNAME_RELEASE
+ ;;
m68k:machten:*:*)
- echo m68k-apple-machten${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-apple-machten$UNAME_RELEASE
+ ;;
powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
- exit ;;
+ GUESS=powerpc-apple-machten$UNAME_RELEASE
+ ;;
RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit ;;
+ GUESS=mips-dec-mach_bsd4.3
+ ;;
RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit ;;
+ GUESS=mips-dec-ultrix$UNAME_RELEASE
+ ;;
VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit ;;
+ GUESS=vax-dec-ultrix$UNAME_RELEASE
+ ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix${UNAME_RELEASE}
- exit ;;
+ GUESS=clipper-intergraph-clix$UNAME_RELEASE
+ ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#ifdef __cplusplus
#include <stdio.h> /* for printf() prototype */
int main (int argc, char *argv[]) {
@@ -461,95 +536,96 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
#endif
#if defined (host_mips) && defined (MIPSEB)
#if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
#endif
#endif
exit (-1);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c &&
- dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
- SYSTEM_NAME=`$dummy $dummyarg` &&
+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
+ dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
{ echo "$SYSTEM_NAME"; exit; }
- echo mips-mips-riscos${UNAME_RELEASE}
- exit ;;
+ GUESS=mips-mips-riscos$UNAME_RELEASE
+ ;;
Motorola:PowerMAX_OS:*:*)
- echo powerpc-motorola-powermax
- exit ;;
+ GUESS=powerpc-motorola-powermax
+ ;;
Motorola:*:4.3:PL8-*)
- echo powerpc-harris-powermax
- exit ;;
+ GUESS=powerpc-harris-powermax
+ ;;
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
- echo powerpc-harris-powermax
- exit ;;
+ GUESS=powerpc-harris-powermax
+ ;;
Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit ;;
+ GUESS=powerpc-harris-powerunix
+ ;;
m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit ;;
+ GUESS=m88k-harris-cxux7
+ ;;
m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit ;;
+ GUESS=m88k-motorola-sysv4
+ ;;
m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit ;;
+ GUESS=m88k-motorola-sysv3
+ ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
+ if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
+ test "$TARGET_BINARY_INTERFACE"x = x
then
- echo m88k-dg-dgux${UNAME_RELEASE}
+ GUESS=m88k-dg-dgux$UNAME_RELEASE
else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ GUESS=m88k-dg-dguxbcs$UNAME_RELEASE
fi
else
- echo i586-dg-dgux${UNAME_RELEASE}
+ GUESS=i586-dg-dgux$UNAME_RELEASE
fi
- exit ;;
+ ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit ;;
+ GUESS=m88k-dolphin-sysv3
+ ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit ;;
+ GUESS=m88k-motorola-sysv3
+ ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit ;;
+ GUESS=m88k-tektronix-sysv3
+ ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit ;;
+ GUESS=m68k-tektronix-bsd
+ ;;
*:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit ;;
+ IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'`
+ GUESS=mips-sgi-irix$IRIX_REL
+ ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i*86:AIX:*:*)
- echo i386-ibm-aix
- exit ;;
+ GUESS=i386-ibm-aix
+ ;;
ia64:AIX:*:*)
- if [ -x /usr/bin/oslevel ] ; then
+ if test -x /usr/bin/oslevel ; then
IBM_REV=`/usr/bin/oslevel`
else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
fi
- echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
- exit ;;
+ GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV
+ ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#include <sys/systemcfg.h>
main()
@@ -560,77 +636,77 @@ EOF
exit(0);
}
EOF
- if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
then
- echo "$SYSTEM_NAME"
+ GUESS=$SYSTEM_NAME
else
- echo rs6000-ibm-aix3.2.5
+ GUESS=rs6000-ibm-aix3.2.5
fi
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
+ GUESS=rs6000-ibm-aix3.2.4
else
- echo rs6000-ibm-aix3.2
+ GUESS=rs6000-ibm-aix3.2
fi
- exit ;;
+ ;;
*:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
- if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
fi
- if [ -x /usr/bin/lslpp ] ; then
- IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
+ if test -x /usr/bin/lslpp ; then
+ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \
awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit ;;
+ GUESS=$IBM_ARCH-ibm-aix$IBM_REV
+ ;;
*:AIX:*:*)
- echo rs6000-ibm-aix
- exit ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit ;;
+ GUESS=rs6000-ibm-aix
+ ;;
+ ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
+ GUESS=romp-ibm-bsd4.4
+ ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit ;; # report: romp-ibm BSD 4.3
+ GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to
+ ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
- echo rs6000-bull-bosx
- exit ;;
+ GUESS=rs6000-bull-bosx
+ ;;
DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit ;;
+ GUESS=m68k-bull-sysv3
+ ;;
9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit ;;
+ GUESS=m68k-hp-bsd
+ ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit ;;
+ GUESS=m68k-hp-bsd4.4
+ ;;
9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
+ HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+ case $UNAME_MACHINE in
+ 9000/31?) HP_ARCH=m68000 ;;
+ 9000/[34]??) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
- if [ -x /usr/bin/getconf ]; then
+ if test -x /usr/bin/getconf; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ case $sc_cpu_version in
+ 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
- 32) HP_ARCH="hppa2.0n" ;;
- 64) HP_ARCH="hppa2.0w" ;;
- '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+ case $sc_kernel_bits in
+ 32) HP_ARCH=hppa2.0n ;;
+ 64) HP_ARCH=hppa2.0w ;;
+ '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
esac ;;
esac
fi
- if [ "${HP_ARCH}" = "" ]; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ if test "$HP_ARCH" = ""; then
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#define _HPUX_SOURCE
#include <stdlib.h>
@@ -663,13 +739,13 @@ EOF
exit (0);
}
EOF
- (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
- if [ ${HP_ARCH} = "hppa2.0w" ]
+ if test "$HP_ARCH" = hppa2.0w
then
- eval $set_cc_for_build
+ set_cc_for_build
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
@@ -680,23 +756,23 @@ EOF
# $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
# => hppa64-hp-hpux11.23
- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+ if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
grep -q __LP64__
then
- HP_ARCH="hppa2.0w"
+ HP_ARCH=hppa2.0w
else
- HP_ARCH="hppa64"
+ HP_ARCH=hppa64
fi
fi
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit ;;
+ GUESS=$HP_ARCH-hp-hpux$HPUX_REV
+ ;;
ia64:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux${HPUX_REV}
- exit ;;
+ HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+ GUESS=ia64-hp-hpux$HPUX_REV
+ ;;
3050*:HI-UX:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#include <unistd.h>
int
main ()
@@ -721,38 +797,38 @@ EOF
exit (0);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
{ echo "$SYSTEM_NAME"; exit; }
- echo unknown-hitachi-hiuxwe2
- exit ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit ;;
+ GUESS=unknown-hitachi-hiuxwe2
+ ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
+ GUESS=hppa1.1-hp-bsd
+ ;;
9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit ;;
+ GUESS=hppa1.0-hp-bsd
+ ;;
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit ;;
+ GUESS=hppa1.0-hp-mpeix
+ ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
+ GUESS=hppa1.1-hp-osf
+ ;;
hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit ;;
+ GUESS=hppa1.0-hp-osf
+ ;;
i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
+ if test -x /usr/sbin/sysversion ; then
+ GUESS=$UNAME_MACHINE-unknown-osf1mk
else
- echo ${UNAME_MACHINE}-unknown-osf1
+ GUESS=$UNAME_MACHINE-unknown-osf1
fi
- exit ;;
+ ;;
parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit ;;
+ GUESS=hppa1.1-hp-lites
+ ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit ;;
+ GUESS=c1-convex-bsd
+ ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
@@ -760,139 +836,154 @@ EOF
fi
exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit ;;
+ GUESS=c34-convex-bsd
+ ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit ;;
+ GUESS=c38-convex-bsd
+ ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit ;;
+ GUESS=c4-convex-bsd
+ ;;
CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=ymp-cray-unicos$CRAY_REL
+ ;;
CRAY*[A-Z]90:*:*:*)
- echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
exit ;;
CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=t90-cray-unicos$CRAY_REL
+ ;;
CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=alphaev5-cray-unicosmk$CRAY_REL
+ ;;
CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=sv1-cray-unicos$CRAY_REL
+ ;;
*:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=craynv-cray-unicosmp$CRAY_REL
+ ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
+ FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+ FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
+ GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+ ;;
5000:UNIX_System_V:4.*:*)
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
+ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+ FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
+ GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+ ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE
+ ;;
sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit ;;
+ GUESS=sparc-unknown-bsdi$UNAME_RELEASE
+ ;;
*:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE
+ ;;
+ arm:FreeBSD:*:*)
+ UNAME_PROCESSOR=`uname -p`
+ set_cc_for_build
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi
+ else
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf
+ fi
+ ;;
*:FreeBSD:*:*)
UNAME_PROCESSOR=`/usr/bin/uname -p`
- case ${UNAME_PROCESSOR} in
+ case $UNAME_PROCESSOR in
amd64)
- echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- *)
- echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ UNAME_PROCESSOR=x86_64 ;;
+ i386)
+ UNAME_PROCESSOR=i586 ;;
esac
- exit ;;
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL
+ ;;
i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-cygwin
+ ;;
*:MINGW64*:*)
- echo ${UNAME_MACHINE}-pc-mingw64
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-mingw64
+ ;;
*:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-mingw32
+ ;;
*:MSYS*:*)
- echo ${UNAME_MACHINE}-pc-msys
- exit ;;
- i*:windows32*:*)
- # uname -m includes "-pc" on this system.
- echo ${UNAME_MACHINE}-mingw32
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-msys
+ ;;
i*:PW*:*)
- echo ${UNAME_MACHINE}-pc-pw32
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-pw32
+ ;;
+ *:SerenityOS:*:*)
+ GUESS=$UNAME_MACHINE-pc-serenity
+ ;;
*:Interix*:*)
- case ${UNAME_MACHINE} in
+ case $UNAME_MACHINE in
x86)
- echo i586-pc-interix${UNAME_RELEASE}
- exit ;;
+ GUESS=i586-pc-interix$UNAME_RELEASE
+ ;;
authenticamd | genuineintel | EM64T)
- echo x86_64-unknown-interix${UNAME_RELEASE}
- exit ;;
+ GUESS=x86_64-unknown-interix$UNAME_RELEASE
+ ;;
IA64)
- echo ia64-unknown-interix${UNAME_RELEASE}
- exit ;;
+ GUESS=ia64-unknown-interix$UNAME_RELEASE
+ ;;
esac ;;
- [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
- echo i${UNAME_MACHINE}-pc-mks
- exit ;;
- 8664:Windows_NT:*)
- echo x86_64-pc-mks
- exit ;;
- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i586-pc-interix
- exit ;;
i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-uwin
+ ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
- echo x86_64-unknown-cygwin
- exit ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
- exit ;;
+ GUESS=x86_64-pc-cygwin
+ ;;
prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=powerpcle-unknown-solaris2$SUN_REL
+ ;;
*:GNU:*:*)
# the GNU system
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit ;;
+ GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'`
+ GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'`
+ GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL
+ ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
- exit ;;
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
- exit ;;
+ GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"`
+ GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
+ ;;
+ x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*)
+ GUESS="$UNAME_MACHINE-pc-managarm-mlibc"
+ ;;
+ *:[Mm]anagarm:*:*)
+ GUESS="$UNAME_MACHINE-unknown-managarm-mlibc"
+ ;;
+ *:Minix:*:*)
+ GUESS=$UNAME_MACHINE-unknown-minix
+ ;;
aarch64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
EV5) UNAME_MACHINE=alphaev5 ;;
EV56) UNAME_MACHINE=alphaev56 ;;
PCA56) UNAME_MACHINE=alphapca56 ;;
@@ -902,172 +993,237 @@ EOF
EV68*) UNAME_MACHINE=alphaev68 ;;
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
- if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- arc:Linux:*:* | arceb:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
arm*:Linux:*:*)
- eval $set_cc_for_build
+ set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+ GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi
else
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+ GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf
fi
fi
- exit ;;
+ ;;
avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
cris:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+ ;;
crisv32:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+ ;;
+ e2k:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
frv:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
hexagon:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
i*86:Linux:*:*)
- echo ${UNAME_MACHINE}-pc-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-linux-$LIBC
+ ;;
ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ k1om:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ loongarch32:Linux:*:* | loongarch64:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
mips:Linux:*:* | mips64:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ set_cc_for_build
+ IS_GLIBC=0
+ test x"${LIBC}" = xgnu && IS_GLIBC=1
+ sed 's/^ //' << EOF > "$dummy.c"
#undef CPU
- #undef ${UNAME_MACHINE}
- #undef ${UNAME_MACHINE}el
+ #undef mips
+ #undef mipsel
+ #undef mips64
+ #undef mips64el
+ #if ${IS_GLIBC} && defined(_ABI64)
+ LIBCABI=gnuabi64
+ #else
+ #if ${IS_GLIBC} && defined(_ABIN32)
+ LIBCABI=gnuabin32
+ #else
+ LIBCABI=${LIBC}
+ #endif
+ #endif
+
+ #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
+ CPU=mipsisa64r6
+ #else
+ #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
+ CPU=mipsisa32r6
+ #else
+ #if defined(__mips64)
+ CPU=mips64
+ #else
+ CPU=mips
+ #endif
+ #endif
+ #endif
+
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=${UNAME_MACHINE}el
+ MIPS_ENDIAN=el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=${UNAME_MACHINE}
+ MIPS_ENDIAN=
#else
- CPU=
+ MIPS_ENDIAN=
#endif
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+ cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`
+ eval "$cc_set_vars"
+ test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
+ ;;
+ mips64el:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
openrisc*:Linux:*:*)
- echo or1k-unknown-linux-${LIBC}
- exit ;;
+ GUESS=or1k-unknown-linux-$LIBC
+ ;;
or32:Linux:*:* | or1k*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
padre:Linux:*:*)
- echo sparc-unknown-linux-${LIBC}
- exit ;;
+ GUESS=sparc-unknown-linux-$LIBC
+ ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-${LIBC}
- exit ;;
+ GUESS=hppa64-unknown-linux-$LIBC
+ ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
- PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
- *) echo hppa-unknown-linux-${LIBC} ;;
+ PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;;
+ PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;;
+ *) GUESS=hppa-unknown-linux-$LIBC ;;
esac
- exit ;;
+ ;;
ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-${LIBC}
- exit ;;
+ GUESS=powerpc64-unknown-linux-$LIBC
+ ;;
ppc:Linux:*:*)
- echo powerpc-unknown-linux-${LIBC}
- exit ;;
+ GUESS=powerpc-unknown-linux-$LIBC
+ ;;
ppc64le:Linux:*:*)
- echo powerpc64le-unknown-linux-${LIBC}
- exit ;;
+ GUESS=powerpc64le-unknown-linux-$LIBC
+ ;;
ppcle:Linux:*:*)
- echo powerpcle-unknown-linux-${LIBC}
- exit ;;
+ GUESS=powerpcle-unknown-linux-$LIBC
+ ;;
+ riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-ibm-linux-$LIBC
+ ;;
sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
tile*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-dec-linux-$LIBC
+ ;;
x86_64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ set_cc_for_build
+ CPU=$UNAME_MACHINE
+ LIBCABI=$LIBC
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
+ ABI=64
+ sed 's/^ //' << EOF > "$dummy.c"
+ #ifdef __i386__
+ ABI=x86
+ #else
+ #ifdef __ILP32__
+ ABI=x32
+ #endif
+ #endif
+EOF
+ cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
+ eval "$cc_set_abi"
+ case $ABI in
+ x86) CPU=i686 ;;
+ x32) LIBCABI=${LIBC}x32 ;;
+ esac
+ fi
+ GUESS=$CPU-pc-linux-$LIBCABI
+ ;;
xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
# sysname and nodename.
- echo i386-sequent-sysv4
- exit ;;
+ GUESS=i386-sequent-sysv4
+ ;;
i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
- echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
+ ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
- echo ${UNAME_MACHINE}-pc-os2-emx
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-os2-emx
+ ;;
i*86:XTS-300:*:STOP)
- echo ${UNAME_MACHINE}-unknown-stop
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-stop
+ ;;
i*86:atheos:*:*)
- echo ${UNAME_MACHINE}-unknown-atheos
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-atheos
+ ;;
i*86:syllable:*:*)
- echo ${UNAME_MACHINE}-pc-syllable
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-syllable
+ ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit ;;
+ GUESS=i386-unknown-lynxos$UNAME_RELEASE
+ ;;
i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit ;;
- i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
- UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ GUESS=$UNAME_MACHINE-pc-msdosdjgpp
+ ;;
+ i*86:*:4.*:*)
+ UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL
else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL
fi
- exit ;;
+ ;;
i*86:*:5:[678]*)
# UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
@@ -1075,12 +1231,12 @@ EOF
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL
elif /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
@@ -1090,43 +1246,43 @@ EOF
&& UNAME_MACHINE=i686
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL
else
- echo ${UNAME_MACHINE}-pc-sysv32
+ GUESS=$UNAME_MACHINE-pc-sysv32
fi
- exit ;;
+ ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i586.
# Note: whatever this is, it MUST be the same as what config.sub
- # prints for the "djgpp" host, or else GDB configury will decide that
+ # prints for the "djgpp" host, or else GDB configure will decide that
# this is a cross-build.
- echo i586-pc-msdosdjgpp
- exit ;;
+ GUESS=i586-pc-msdosdjgpp
+ ;;
Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit ;;
+ GUESS=i386-pc-mach3
+ ;;
paragon:*:*:*)
- echo i860-intel-osf1
- exit ;;
+ GUESS=i860-intel-osf1
+ ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4
fi
- exit ;;
+ ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
- echo m68010-convergent-sysv
- exit ;;
+ GUESS=m68010-convergent-sysv
+ ;;
mc68k:UNIX:SYSTEM5:3.51m)
- echo m68k-convergent-sysv
- exit ;;
+ GUESS=m68k-convergent-sysv
+ ;;
M680?0:D-NIX:5.3:*)
- echo m68k-diab-dnix
- exit ;;
+ GUESS=m68k-diab-dnix
+ ;;
M68*:*:R3V[5678]*:*)
test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
@@ -1134,9 +1290,9 @@ EOF
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;;
@@ -1145,248 +1301,444 @@ EOF
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-unknown-lynxos$UNAME_RELEASE
+ ;;
mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit ;;
+ GUESS=m68k-atari-sysv4
+ ;;
TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
+ GUESS=sparc-unknown-lynxos$UNAME_RELEASE
+ ;;
rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit ;;
+ GUESS=rs6000-unknown-lynxos$UNAME_RELEASE
+ ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
- echo powerpc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
+ GUESS=powerpc-unknown-lynxos$UNAME_RELEASE
+ ;;
SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
- exit ;;
+ GUESS=mips-dde-sysv$UNAME_RELEASE
+ ;;
RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
+ GUESS=mips-sni-sysv4
+ ;;
RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
+ GUESS=mips-sni-sysv4
+ ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
+ GUESS=$UNAME_MACHINE-sni-sysv4
else
- echo ns32k-sni-sysv
+ GUESS=ns32k-sni-sysv
fi
- exit ;;
+ ;;
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel@ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit ;;
+ GUESS=i586-unisys-sysv4
+ ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit ;;
+ GUESS=hppa1.1-stratus-sysv4
+ ;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
- echo i860-stratus-sysv4
- exit ;;
+ GUESS=i860-stratus-sysv4
+ ;;
i*86:VOS:*:*)
# From Paul.Green@stratus.com.
- echo ${UNAME_MACHINE}-stratus-vos
- exit ;;
+ GUESS=$UNAME_MACHINE-stratus-vos
+ ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
- echo hppa1.1-stratus-vos
- exit ;;
+ GUESS=hppa1.1-stratus-vos
+ ;;
mc68*:A/UX:*:*)
- echo m68k-apple-aux${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-apple-aux$UNAME_RELEASE
+ ;;
news*:NEWS-OS:6*:*)
- echo mips-sony-newsos6
- exit ;;
+ GUESS=mips-sony-newsos6
+ ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
+ if test -d /usr/nec; then
+ GUESS=mips-nec-sysv$UNAME_RELEASE
else
- echo mips-unknown-sysv${UNAME_RELEASE}
+ GUESS=mips-unknown-sysv$UNAME_RELEASE
fi
- exit ;;
+ ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit ;;
+ GUESS=powerpc-be-beos
+ ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit ;;
+ GUESS=powerpc-apple-beos
+ ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit ;;
+ GUESS=i586-pc-beos
+ ;;
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
- echo i586-pc-haiku
- exit ;;
- x86_64:Haiku:*:*)
- echo x86_64-unknown-haiku
- exit ;;
+ GUESS=i586-pc-haiku
+ ;;
+ ppc:Haiku:*:*) # Haiku running on Apple PowerPC
+ GUESS=powerpc-apple-haiku
+ ;;
+ *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat)
+ GUESS=$UNAME_MACHINE-unknown-haiku
+ ;;
SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
- exit ;;
+ GUESS=sx4-nec-superux$UNAME_RELEASE
+ ;;
SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
- exit ;;
+ GUESS=sx5-nec-superux$UNAME_RELEASE
+ ;;
SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux${UNAME_RELEASE}
- exit ;;
+ GUESS=sx6-nec-superux$UNAME_RELEASE
+ ;;
SX-7:SUPER-UX:*:*)
- echo sx7-nec-superux${UNAME_RELEASE}
- exit ;;
+ GUESS=sx7-nec-superux$UNAME_RELEASE
+ ;;
SX-8:SUPER-UX:*:*)
- echo sx8-nec-superux${UNAME_RELEASE}
- exit ;;
+ GUESS=sx8-nec-superux$UNAME_RELEASE
+ ;;
SX-8R:SUPER-UX:*:*)
- echo sx8r-nec-superux${UNAME_RELEASE}
- exit ;;
+ GUESS=sx8r-nec-superux$UNAME_RELEASE
+ ;;
+ SX-ACE:SUPER-UX:*:*)
+ GUESS=sxace-nec-superux$UNAME_RELEASE
+ ;;
Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit ;;
+ GUESS=powerpc-apple-rhapsody$UNAME_RELEASE
+ ;;
*:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE
+ ;;
+ arm64:Darwin:*:*)
+ GUESS=aarch64-apple-darwin$UNAME_RELEASE
+ ;;
*:Darwin:*:*)
- UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- eval $set_cc_for_build
- if test "$UNAME_PROCESSOR" = unknown ; then
- UNAME_PROCESSOR=powerpc
+ UNAME_PROCESSOR=`uname -p`
+ case $UNAME_PROCESSOR in
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ if command -v xcode-select > /dev/null 2> /dev/null && \
+ ! xcode-select --print-path > /dev/null 2> /dev/null ; then
+ # Avoid executing cc if there is no toolchain installed as
+ # cc will be a stub that puts up a graphical alert
+ # prompting the user to install developer tools.
+ CC_FOR_BUILD=no_compiler_found
+ else
+ set_cc_for_build
fi
- if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- case $UNAME_PROCESSOR in
- i386) UNAME_PROCESSOR=x86_64 ;;
- powerpc) UNAME_PROCESSOR=powerpc64 ;;
- esac
- fi
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
+ # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
+ if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_PPC >/dev/null
+ then
+ UNAME_PROCESSOR=powerpc
fi
elif test "$UNAME_PROCESSOR" = i386 ; then
- # Avoid executing cc on OS X 10.9, as it ships with a stub
- # that puts up a graphical alert prompting to install
- # developer tools. Any system running Mac OS X 10.7 or
- # later (Darwin 11 and later) is required to have a 64-bit
- # processor. This is not true of the ARM version of Darwin
- # that Apple uses in portable devices.
- UNAME_PROCESSOR=x86_64
+ # uname -m returns i386 or x86_64
+ UNAME_PROCESSOR=$UNAME_MACHINE
fi
- echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE
+ ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
- if test "$UNAME_PROCESSOR" = "x86"; then
+ if test "$UNAME_PROCESSOR" = x86; then
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
- echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE
+ ;;
*:QNX:*:4*)
- echo i386-pc-qnx
- exit ;;
- NEO-?:NONSTOP_KERNEL:*:*)
- echo neo-tandem-nsk${UNAME_RELEASE}
- exit ;;
+ GUESS=i386-pc-qnx
+ ;;
+ NEO-*:NONSTOP_KERNEL:*:*)
+ GUESS=neo-tandem-nsk$UNAME_RELEASE
+ ;;
NSE-*:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk${UNAME_RELEASE}
- exit ;;
- NSR-?:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk${UNAME_RELEASE}
- exit ;;
+ GUESS=nse-tandem-nsk$UNAME_RELEASE
+ ;;
+ NSR-*:NONSTOP_KERNEL:*:*)
+ GUESS=nsr-tandem-nsk$UNAME_RELEASE
+ ;;
+ NSV-*:NONSTOP_KERNEL:*:*)
+ GUESS=nsv-tandem-nsk$UNAME_RELEASE
+ ;;
+ NSX-*:NONSTOP_KERNEL:*:*)
+ GUESS=nsx-tandem-nsk$UNAME_RELEASE
+ ;;
*:NonStop-UX:*:*)
- echo mips-compaq-nonstopux
- exit ;;
+ GUESS=mips-compaq-nonstopux
+ ;;
BS2000:POSIX*:*:*)
- echo bs2000-siemens-sysv
- exit ;;
+ GUESS=bs2000-siemens-sysv
+ ;;
DS/*:UNIX_System_V:*:*)
- echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE
+ ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
# operating systems.
- if test "$cputype" = "386"; then
+ if test "${cputype-}" = 386; then
UNAME_MACHINE=i386
- else
- UNAME_MACHINE="$cputype"
+ elif test "x${cputype-}" != x; then
+ UNAME_MACHINE=$cputype
fi
- echo ${UNAME_MACHINE}-unknown-plan9
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-plan9
+ ;;
*:TOPS-10:*:*)
- echo pdp10-unknown-tops10
- exit ;;
+ GUESS=pdp10-unknown-tops10
+ ;;
*:TENEX:*:*)
- echo pdp10-unknown-tenex
- exit ;;
+ GUESS=pdp10-unknown-tenex
+ ;;
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
- echo pdp10-dec-tops20
- exit ;;
+ GUESS=pdp10-dec-tops20
+ ;;
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
- echo pdp10-xkl-tops20
- exit ;;
+ GUESS=pdp10-xkl-tops20
+ ;;
*:TOPS-20:*:*)
- echo pdp10-unknown-tops20
- exit ;;
+ GUESS=pdp10-unknown-tops20
+ ;;
*:ITS:*:*)
- echo pdp10-unknown-its
- exit ;;
+ GUESS=pdp10-unknown-its
+ ;;
SEI:*:*:SEIUX)
- echo mips-sei-seiux${UNAME_RELEASE}
- exit ;;
+ GUESS=mips-sei-seiux$UNAME_RELEASE
+ ;;
*:DragonFly:*:*)
- echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit ;;
+ DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL
+ ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "${UNAME_MACHINE}" in
- A*) echo alpha-dec-vms ; exit ;;
- I*) echo ia64-dec-vms ; exit ;;
- V*) echo vax-dec-vms ; exit ;;
+ case $UNAME_MACHINE in
+ A*) GUESS=alpha-dec-vms ;;
+ I*) GUESS=ia64-dec-vms ;;
+ V*) GUESS=vax-dec-vms ;;
esac ;;
*:XENIX:*:SysV)
- echo i386-pc-xenix
- exit ;;
+ GUESS=i386-pc-xenix
+ ;;
i*86:skyos:*:*)
- echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
- exit ;;
+ SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`
+ GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL
+ ;;
i*86:rdos:*:*)
- echo ${UNAME_MACHINE}-pc-rdos
- exit ;;
- i*86:AROS:*:*)
- echo ${UNAME_MACHINE}-pc-aros
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-rdos
+ ;;
+ i*86:Fiwix:*:*)
+ GUESS=$UNAME_MACHINE-pc-fiwix
+ ;;
+ *:AROS:*:*)
+ GUESS=$UNAME_MACHINE-unknown-aros
+ ;;
x86_64:VMkernel:*:*)
- echo ${UNAME_MACHINE}-unknown-esx
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-esx
+ ;;
+ amd64:Isilon\ OneFS:*:*)
+ GUESS=x86_64-unknown-onefs
+ ;;
+ *:Unleashed:*:*)
+ GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
+ ;;
+esac
+
+# Do we have a guess based on uname results?
+if test "x$GUESS" != x; then
+ echo "$GUESS"
+ exit
+fi
+
+# No uname command or uname output not recognized.
+set_cc_for_build
+cat > "$dummy.c" <<EOF
+#ifdef _SEQUENT_
+#include <sys/types.h>
+#include <sys/utsname.h>
+#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#include <signal.h>
+#if defined(_SIZE_T_) || defined(SIGLOST)
+#include <sys/utsname.h>
+#endif
+#endif
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+#endif
+
+#if defined (vax)
+#if !defined (ultrix)
+#include <sys/param.h>
+#if defined (BSD)
+#if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+#else
+#if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#else
+ printf ("vax-dec-bsd\n"); exit (0);
+#endif
+#endif
+#else
+ printf ("vax-dec-bsd\n"); exit (0);
+#endif
+#else
+#if defined(_SIZE_T_) || defined(SIGLOST)
+ struct utsname un;
+ uname (&un);
+ printf ("vax-dec-ultrix%s\n", un.release); exit (0);
+#else
+ printf ("vax-dec-ultrix\n"); exit (0);
+#endif
+#endif
+#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#if defined(_SIZE_T_) || defined(SIGLOST)
+ struct utsname *un;
+ uname (&un);
+ printf ("mips-dec-ultrix%s\n", un.release); exit (0);
+#else
+ printf ("mips-dec-ultrix\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` &&
+ { echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
+
+echo "$0: unable to guess system type" >&2
+
+case $UNAME_MACHINE:$UNAME_SYSTEM in
+ mips:Linux | mips64:Linux)
+ # If we got here on MIPS GNU/Linux, output extra information.
+ cat >&2 <<EOF
+
+NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
+the system type. Please install a C compiler and try again.
+EOF
+ ;;
esac
cat >&2 <<EOF
-$0: unable to guess system type
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
+This script (version $timestamp), has failed to recognize the
+operating system you are using. If your script is old, overwrite *all*
+copies of config.guess and config.sub with the latest versions from:
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+ https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
and
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+ https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
+EOF
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches@gnu.org> in order to provide the needed
-information to handle your system.
+our_year=`echo $timestamp | sed 's,-.*,,'`
+thisyear=`date +%Y`
+# shellcheck disable=SC2003
+script_age=`expr "$thisyear" - "$our_year"`
+if test "$script_age" -lt 3 ; then
+ cat >&2 <<EOF
+
+If $0 has already been updated, send the following data and any
+information you think might be pertinent to config-patches@gnu.org to
+provide the necessary information to handle your system.
config.guess timestamp = $timestamp
@@ -1405,16 +1757,17 @@ hostinfo = `(hostinfo) 2>/dev/null`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
+UNAME_MACHINE = "$UNAME_MACHINE"
+UNAME_RELEASE = "$UNAME_RELEASE"
+UNAME_SYSTEM = "$UNAME_SYSTEM"
+UNAME_VERSION = "$UNAME_VERSION"
EOF
+fi
exit 1
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
diff --git a/scripts/autoconf/config.sub b/scripts/autoconf/config.sub
index 6d2e94c8b..de4259e40 100755
--- a/scripts/autoconf/config.sub
+++ b/scripts/autoconf/config.sub
@@ -1,12 +1,14 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2015 Free Software Foundation, Inc.
+# Copyright 1992-2023 Free Software Foundation, Inc.
-timestamp='2015-01-01'
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2023-01-21'
# This file 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
+# 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
@@ -15,7 +17,7 @@ timestamp='2015-01-01'
# 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/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -33,7 +35,7 @@ timestamp='2015-01-01'
# Otherwise, we print the canonical config type on stdout and succeed.
# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
@@ -50,15 +52,21 @@ timestamp='2015-01-01'
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX. However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
- $0 [OPTION] ALIAS
+Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
Canonicalize a configuration name.
-Operation modes:
+Options:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
@@ -68,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2015 Free Software Foundation, Inc.
+Copyright 1992-2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -90,12 +98,12 @@ while test $# -gt 0 ; do
- ) # Use stdin as input.
break ;;
-* )
- echo "$me: invalid option $1$help"
+ echo "$me: invalid option $1$help" >&2
exit 1 ;;
*local*)
# First pass through any local machine types.
- echo $1
+ echo "$1"
exit ;;
* )
@@ -111,1228 +119,1186 @@ case $# in
exit 1;;
esac
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
- linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
- knetbsd*-gnu* | netbsd*-gnu* | \
- kopensolaris*-gnu* | \
- storm-chaos* | os2-emx* | rtmk-nova*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
- android-linux)
- os=-linux-android
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
- ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
- else os=; fi
- ;;
-esac
+# Split fields of configuration type
+# shellcheck disable=SC2162
+saved_IFS=$IFS
+IFS="-" read field1 field2 field3 field4 <<EOF
+$1
+EOF
+IFS=$saved_IFS
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray | -microblaze*)
- os=
- basic_machine=$1
- ;;
- -bluegene*)
- os=-cnk
- ;;
- -sim | -cisco | -oki | -wec | -winbond)
- os=
- basic_machine=$1
- ;;
- -scout)
- ;;
- -wrs)
- os=-vxworks
- basic_machine=$1
- ;;
- -chorusos*)
- os=-chorusos
- basic_machine=$1
- ;;
- -chorusrdb)
- os=-chorusrdb
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco6)
- os=-sco5v6
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco5)
- os=-sco3.2v5
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco5v6*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -udk*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -lynx*178)
- os=-lynxos178
- ;;
- -lynx*5)
- os=-lynxos5
- ;;
- -lynx*)
- os=-lynxos
+# Separate into logical components for further validation
+case $1 in
+ *-*-*-*-*)
+ echo Invalid configuration \`"$1"\': more than four components >&2
+ exit 1
;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ *-*-*-*)
+ basic_machine=$field1-$field2
+ basic_os=$field3-$field4
;;
- -windowsnt*)
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
+ *-*-*)
+ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
+ # parts
+ maybe_os=$field2-$field3
+ case $maybe_os in
+ nto-qnx* | linux-* | uclinux-uclibc* \
+ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
+ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
+ | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
+ basic_machine=$field1
+ basic_os=$maybe_os
+ ;;
+ android-linux)
+ basic_machine=$field1-unknown
+ basic_os=linux-android
+ ;;
+ *)
+ basic_machine=$field1-$field2
+ basic_os=$field3
+ ;;
+ esac
;;
- -psos*)
- os=-psos
+ *-*)
+ # A lone config we happen to match not fitting any pattern
+ case $field1-$field2 in
+ decstation-3100)
+ basic_machine=mips-dec
+ basic_os=
+ ;;
+ *-*)
+ # Second component is usually, but not always the OS
+ case $field2 in
+ # Prevent following clause from handling this valid os
+ sun*os*)
+ basic_machine=$field1
+ basic_os=$field2
+ ;;
+ zephyr*)
+ basic_machine=$field1-unknown
+ basic_os=$field2
+ ;;
+ # Manufacturers
+ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
+ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
+ | unicom* | ibm* | next | hp | isi* | apollo | altos* \
+ | convergent* | ncr* | news | 32* | 3600* | 3100* \
+ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
+ | ultra | tti* | harris | dolphin | highlevel | gould \
+ | cbm | ns | masscomp | apple | axis | knuth | cray \
+ | microblaze* | sim | cisco \
+ | oki | wec | wrs | winbond)
+ basic_machine=$field1-$field2
+ basic_os=
+ ;;
+ *)
+ basic_machine=$field1
+ basic_os=$field2
+ ;;
+ esac
+ ;;
+ esac
;;
- -mint | -mint[0-9]*)
- basic_machine=m68k-atari
- os=-mint
+ *)
+ # Convert single-component short-hands not valid as part of
+ # multi-component configurations.
+ case $field1 in
+ 386bsd)
+ basic_machine=i386-pc
+ basic_os=bsd
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ basic_os=udi
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ basic_os=scout
+ ;;
+ alliant)
+ basic_machine=fx80-alliant
+ basic_os=
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ basic_os=
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ basic_os=bsd
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ basic_os=sysv
+ ;;
+ amiga)
+ basic_machine=m68k-unknown
+ basic_os=
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ basic_os=amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ basic_os=sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ basic_os=sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ basic_os=bsd
+ ;;
+ aros)
+ basic_machine=i386-pc
+ basic_os=aros
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ basic_os=aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ basic_os=dynix
+ ;;
+ blackfin)
+ basic_machine=bfin-unknown
+ basic_os=linux
+ ;;
+ cegcc)
+ basic_machine=arm-unknown
+ basic_os=cegcc
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ basic_os=bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ basic_os=bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ basic_os=bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ basic_os=bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ basic_os=bsd
+ ;;
+ cray)
+ basic_machine=j90-cray
+ basic_os=unicos
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ basic_os=
+ ;;
+ da30)
+ basic_machine=m68k-da30
+ basic_os=
+ ;;
+ decstation | pmax | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ basic_os=
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ basic_os=sysv3
+ ;;
+ dicos)
+ basic_machine=i686-pc
+ basic_os=dicos
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ basic_os=msdosdjgpp
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ basic_os=ebmon
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ basic_os=ose
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ basic_os=sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ basic_os=go32
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ basic_os=hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ basic_os=xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ basic_os=hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ basic_os=sysv3
+ ;;
+ hp300 | hp300hpux)
+ basic_machine=m68k-hp
+ basic_os=hpux
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ basic_os=bsd
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ basic_os=osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ basic_os=proelf
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ basic_os=mach
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ basic_os=sysv
+ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ basic_os=linux
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ basic_os=sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ basic_os=sysv
+ ;;
+ mingw64)
+ basic_machine=x86_64-pc
+ basic_os=mingw64
+ ;;
+ mingw32)
+ basic_machine=i686-pc
+ basic_os=mingw32
+ ;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ basic_os=mingw32ce
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ basic_os=coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ basic_os=morphos
+ ;;
+ moxiebox)
+ basic_machine=moxie-unknown
+ basic_os=moxiebox
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ basic_os=msdos
+ ;;
+ msys)
+ basic_machine=i686-pc
+ basic_os=msys
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ basic_os=mvs
+ ;;
+ nacl)
+ basic_machine=le32-unknown
+ basic_os=nacl
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ basic_os=sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-pc
+ basic_os=netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ basic_os=linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ basic_os=newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ basic_os=newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ basic_os=sysv
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ basic_os=cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ basic_os=cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ basic_os=nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ basic_os=mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ basic_os=nonstopux
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ basic_os=os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ basic_os=ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ basic_os=os68k
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ basic_os=osf
+ ;;
+ parisc)
+ basic_machine=hppa-unknown
+ basic_os=linux
+ ;;
+ psp)
+ basic_machine=mipsallegrexel-sony
+ basic_os=psp
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ basic_os=pw32
+ ;;
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ basic_os=rdos
+ ;;
+ rdos32)
+ basic_machine=i386-pc
+ basic_os=rdos
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ basic_os=coff
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ basic_os=udi
+ ;;
+ sei)
+ basic_machine=mips-sei
+ basic_os=seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ basic_os=
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ basic_os=sysv2
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ basic_os=
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ basic_os=sysv4
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ basic_os=
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ basic_os=sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ basic_os=sunos4
+ ;;
+ sun3)
+ basic_machine=m68k-sun
+ basic_os=
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ basic_os=sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ basic_os=sunos4
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ basic_os=
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ basic_os=sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ basic_os=sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ basic_os=solaris2
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ basic_os=
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ basic_os=unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ basic_os=dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ basic_os=unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ basic_os=unicos
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ basic_os=tops20
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ basic_os=tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ basic_os=udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ basic_os=sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ basic_os=none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ basic_os=sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ basic_os=vms
+ ;;
+ vsta)
+ basic_machine=i386-pc
+ basic_os=vsta
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ basic_os=vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ basic_os=vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ basic_os=vxworks
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ basic_os=mingw32
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ basic_os=unicos
+ ;;
+ *)
+ basic_machine=$1
+ basic_os=
+ ;;
+ esac
;;
esac
-# Decode aliases for certain CPU-COMPANY combinations.
+# Decode 1-component or ad-hoc basic machines
case $basic_machine in
- # Recognize the basic CPU types without company name.
- # Some are omitted here because they have special meanings below.
- 1750a | 580 \
- | a29k \
- | aarch64 | aarch64_be \
- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
- | am33_2.0 \
- | arc | arceb \
- | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
- | avr | avr32 \
- | be32 | be64 \
- | bfin \
- | c4x | c8051 | clipper \
- | d10v | d30v | dlx | dsp16xx \
- | epiphany \
- | fido | fr30 | frv | ft32 \
- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
- | hexagon \
- | i370 | i860 | i960 | ia64 \
- | ip2k | iq2000 \
- | k1om \
- | le32 | le64 \
- | lm32 \
- | m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
- | mips | mipsbe | mipseb | mipsel | mipsle \
- | mips16 \
- | mips64 | mips64el \
- | mips64octeon | mips64octeonel \
- | mips64orion | mips64orionel \
- | mips64r5900 | mips64r5900el \
- | mips64vr | mips64vrel \
- | mips64vr4100 | mips64vr4100el \
- | mips64vr4300 | mips64vr4300el \
- | mips64vr5000 | mips64vr5000el \
- | mips64vr5900 | mips64vr5900el \
- | mipsisa32 | mipsisa32el \
- | mipsisa32r2 | mipsisa32r2el \
- | mipsisa32r6 | mipsisa32r6el \
- | mipsisa64 | mipsisa64el \
- | mipsisa64r2 | mipsisa64r2el \
- | mipsisa64r6 | mipsisa64r6el \
- | mipsisa64sb1 | mipsisa64sb1el \
- | mipsisa64sr71k | mipsisa64sr71kel \
- | mipsr5900 | mipsr5900el \
- | mipstx39 | mipstx39el \
- | mn10200 | mn10300 \
- | moxie \
- | mt \
- | msp430 \
- | nds32 | nds32le | nds32be \
- | nios | nios2 | nios2eb | nios2el \
- | ns16k | ns32k \
- | open8 | or1k | or1knd | or32 \
- | pdp10 | pdp11 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle \
- | pyramid \
- | riscv32 | riscv64 \
- | rl78 | rx \
- | score \
- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
- | sh64 | sh64le \
- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
- | spu \
- | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
- | ubicom32 \
- | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
- | visium \
- | we32k \
- | x86 | xc16x | xstormy16 | xtensa \
- | z8k | z80)
- basic_machine=$basic_machine-unknown
- ;;
- c54x)
- basic_machine=tic54x-unknown
- ;;
- c55x)
- basic_machine=tic55x-unknown
- ;;
- c6x)
- basic_machine=tic6x-unknown
- ;;
- leon|leon[3-9])
- basic_machine=sparc-$basic_machine
- ;;
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
- basic_machine=$basic_machine-unknown
- os=-none
+ # Here we handle the default manufacturer of certain CPU types. It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ cpu=hppa1.1
+ vendor=winbond
;;
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ op50n)
+ cpu=hppa1.1
+ vendor=oki
;;
- ms1)
- basic_machine=mt-unknown
+ op60c)
+ cpu=hppa1.1
+ vendor=oki
;;
-
- strongarm | thumb | xscale)
- basic_machine=arm-unknown
+ ibm*)
+ cpu=i370
+ vendor=ibm
;;
- xgate)
- basic_machine=$basic_machine-unknown
- os=-none
+ orion105)
+ cpu=clipper
+ vendor=highlevel
;;
- xscaleeb)
- basic_machine=armeb-unknown
+ mac | mpw | mac-mpw)
+ cpu=m68k
+ vendor=apple
;;
-
- xscaleel)
- basic_machine=armel-unknown
+ pmac | pmac-mpw)
+ cpu=powerpc
+ vendor=apple
;;
- # We use `pc' rather than `unknown'
- # because (1) that's what they normally are, and
- # (2) the word "unknown" tends to confuse beginning users.
- i*86 | x86_64)
- basic_machine=$basic_machine-pc
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
- # Recognize the basic CPU types with company name.
- 580-* \
- | a29k-* \
- | aarch64-* | aarch64_be-* \
- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
- | avr-* | avr32-* \
- | be32-* | be64-* \
- | bfin-* | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c4x-* \
- | c8051-* | clipper-* | craynv-* | cydra-* \
- | d10v-* | d30v-* | dlx-* \
- | elxsi-* \
- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
- | h8300-* | h8500-* \
- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
- | hexagon-* \
- | i*86-* | i860-* | i960-* | ia64-* \
- | ip2k-* | iq2000-* \
- | k1om-* \
- | le32-* | le64-* \
- | lm32-* \
- | m32c-* | m32r-* | m32rle-* \
- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
- | microblaze-* | microblazeel-* \
- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
- | mips16-* \
- | mips64-* | mips64el-* \
- | mips64octeon-* | mips64octeonel-* \
- | mips64orion-* | mips64orionel-* \
- | mips64r5900-* | mips64r5900el-* \
- | mips64vr-* | mips64vrel-* \
- | mips64vr4100-* | mips64vr4100el-* \
- | mips64vr4300-* | mips64vr4300el-* \
- | mips64vr5000-* | mips64vr5000el-* \
- | mips64vr5900-* | mips64vr5900el-* \
- | mipsisa32-* | mipsisa32el-* \
- | mipsisa32r2-* | mipsisa32r2el-* \
- | mipsisa32r6-* | mipsisa32r6el-* \
- | mipsisa64-* | mipsisa64el-* \
- | mipsisa64r2-* | mipsisa64r2el-* \
- | mipsisa64r6-* | mipsisa64r6el-* \
- | mipsisa64sb1-* | mipsisa64sb1el-* \
- | mipsisa64sr71k-* | mipsisa64sr71kel-* \
- | mipsr5900-* | mipsr5900el-* \
- | mipstx39-* | mipstx39el-* \
- | mmix-* \
- | mt-* \
- | msp430-* \
- | nds32-* | nds32le-* | nds32be-* \
- | nios-* | nios2-* | nios2eb-* | nios2el-* \
- | none-* | np1-* | ns16k-* | ns32k-* \
- | open8-* \
- | or1k*-* \
- | orion-* \
- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
- | pyramid-* \
- | rl78-* | romp-* | rs6000-* | rx-* \
- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
- | sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
- | tahoe-* \
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
- | tile*-* \
- | tron-* \
- | ubicom32-* \
- | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
- | vax-* \
- | visium-* \
- | we32k-* \
- | x86-* | x86_64-* | xc16x-* | xps100-* \
- | xstormy16-* | xtensa*-* \
- | ymp-* \
- | z8k-* | z80-*)
- ;;
- # Recognize the basic CPU types without company name, with glob match.
- xtensa*)
- basic_machine=$basic_machine-unknown
- ;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
- 386bsd)
- basic_machine=i386-unknown
- os=-bsd
- ;;
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
+ cpu=m68000
+ vendor=att
;;
3b*)
- basic_machine=we32k-att
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=-udi
- ;;
- abacus)
- basic_machine=abacus-unknown
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=-scout
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amd64)
- basic_machine=x86_64-pc
- ;;
- amd64-*)
- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-unknown
- ;;
- amigaos | amigados)
- basic_machine=m68k-unknown
- os=-amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-unknown
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=-bsd
- ;;
- aros)
- basic_machine=i386-pc
- os=-aros
- ;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- blackfin)
- basic_machine=bfin-unknown
- os=-linux
- ;;
- blackfin-*)
- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
+ cpu=we32k
+ vendor=att
;;
bluegene*)
- basic_machine=powerpc-ibm
- os=-cnk
- ;;
- c54x-*)
- basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c55x-*)
- basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c6x-*)
- basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c90)
- basic_machine=c90-cray
- os=-unicos
- ;;
- cegcc)
- basic_machine=arm-unknown
- os=-cegcc
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=-bsd
- ;;
- cray | j90)
- basic_machine=j90-cray
- os=-unicos
- ;;
- craynv)
- basic_machine=craynv-cray
- os=-unicosmp
- ;;
- cr16 | cr16-*)
- basic_machine=cr16-unknown
- os=-elf
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- crisv32 | crisv32-* | etraxfs*)
- basic_machine=crisv32-axis
- ;;
- cris | cris-* | etrax*)
- basic_machine=cris-axis
- ;;
- crx)
- basic_machine=crx-unknown
- os=-elf
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
+ cpu=powerpc
+ vendor=ibm
+ basic_os=cnk
;;
decsystem10* | dec10*)
- basic_machine=pdp10-dec
- os=-tops10
+ cpu=pdp10
+ vendor=dec
+ basic_os=tops10
;;
decsystem20* | dec20*)
- basic_machine=pdp10-dec
- os=-tops20
+ cpu=pdp10
+ vendor=dec
+ basic_os=tops20
;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
- basic_machine=m68k-motorola
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dicos)
- basic_machine=i686-pc
- os=-dicos
- ;;
- djgpp)
- basic_machine=i586-pc
- os=-msdosdjgpp
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
+ cpu=m68k
+ vendor=motorola
;;
- dpx2* | dpx2*-bull)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
+ dpx2*)
+ cpu=m68k
+ vendor=bull
+ basic_os=sysv3
;;
encore | umax | mmax)
- basic_machine=ns32k-encore
+ cpu=ns32k
+ vendor=encore
;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=-ose
+ elxsi)
+ cpu=elxsi
+ vendor=elxsi
+ basic_os=${basic_os:-bsd}
;;
fx2800)
- basic_machine=i860-alliant
+ cpu=i860
+ vendor=alliant
;;
genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- go32)
- basic_machine=i386-pc
- os=-go32
+ cpu=ns32k
+ vendor=ns
;;
h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=-xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
+ cpu=hppa1.1
+ vendor=hitachi
+ basic_os=hiuxwe2
;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
- basic_machine=hppa1.0-hp
+ cpu=hppa1.0
+ vendor=hp
;;
hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
+ cpu=m68000
+ vendor=hp
;;
hp9k3[2-9][0-9])
- basic_machine=m68k-hp
+ cpu=m68k
+ vendor=hp
;;
hp9k6[0-9][0-9] | hp6[0-9][0-9])
- basic_machine=hppa1.0-hp
+ cpu=hppa1.0
+ vendor=hp
;;
hp9k7[0-79][0-9] | hp7[0-79][0-9])
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k78[0-9] | hp78[0-9])
# FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
# FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k8[0-9][13679] | hp8[0-9][13679])
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hppa-next)
- os=-nextstep3
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=-osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=-proelf
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
+ cpu=hppa1.0
+ vendor=hp
;;
i*86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ basic_os=sysv32
;;
i*86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv4
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ basic_os=sysv4
;;
i*86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ basic_os=sysv
;;
i*86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-solaris2
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ basic_os=solaris2
;;
- i386mach)
- basic_machine=i386-mach
- os=-mach
- ;;
- i386-vsta | vsta)
- basic_machine=i386-unknown
- os=-vsta
+ j90 | j90-cray)
+ cpu=j90
+ vendor=cray
+ basic_os=${basic_os:-unicos}
;;
iris | iris4d)
- basic_machine=mips-sgi
- case $os in
- -irix*)
+ cpu=mips
+ vendor=sgi
+ case $basic_os in
+ irix*)
;;
*)
- os=-irix4
+ basic_os=irix4
;;
esac
;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- leon-*|leon[3-9]-*)
- basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
- ;;
- m68knommu)
- basic_machine=m68k-unknown
- os=-linux
- ;;
- m68knommu-*)
- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
- ;;
- m88k-omron*)
- basic_machine=m88k-omron
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- microblaze*)
- basic_machine=microblaze-xilinx
- ;;
- mingw64)
- basic_machine=x86_64-pc
- os=-mingw64
- ;;
- mingw32)
- basic_machine=i686-pc
- os=-mingw32
- ;;
- mingw32ce)
- basic_machine=arm-unknown
- os=-mingw32ce
- ;;
miniframe)
- basic_machine=m68000-convergent
- ;;
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
- mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
- ;;
- mips3*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ cpu=m68000
+ vendor=convergent
;;
- monitor)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- morphos)
- basic_machine=powerpc-unknown
- os=-morphos
- ;;
- moxiebox)
- basic_machine=moxie-unknown
- os=-moxiebox
- ;;
- msdos)
- basic_machine=i386-pc
- os=-msdos
- ;;
- ms1-*)
- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
- ;;
- msys)
- basic_machine=i686-pc
- os=-msys
- ;;
- mvs)
- basic_machine=i370-ibm
- os=-mvs
- ;;
- nacl)
- basic_machine=le32-unknown
- os=-nacl
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- netbsd386)
- basic_machine=i386-unknown
- os=-netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- os=-linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
+ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ cpu=m68k
+ vendor=atari
+ basic_os=mint
;;
news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
- ;;
- necv70)
- basic_machine=v70-nec
- os=-sysv
- ;;
- next | m*-next )
- basic_machine=m68k-next
- case $os in
- -nextstep* )
+ cpu=mips
+ vendor=sony
+ basic_os=newsos
+ ;;
+ next | m*-next)
+ cpu=m68k
+ vendor=next
+ case $basic_os in
+ openstep*)
+ ;;
+ nextstep*)
;;
- -ns2*)
- os=-nextstep2
+ ns2*)
+ basic_os=nextstep2
;;
*)
- os=-nextstep3
+ basic_os=nextstep3
;;
esac
;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=-mon960
- ;;
- nonstopux)
- basic_machine=mips-compaq
- os=-nonstopux
- ;;
np1)
- basic_machine=np1-gould
- ;;
- neo-tandem)
- basic_machine=neo-tandem
- ;;
- nse-tandem)
- basic_machine=nse-tandem
- ;;
- nsr-tandem)
- basic_machine=nsr-tandem
+ cpu=np1
+ vendor=gould
;;
op50n-* | op60c-*)
- basic_machine=hppa1.1-oki
- os=-proelf
- ;;
- openrisc | openrisc-*)
- basic_machine=or32-unknown
- ;;
- os400)
- basic_machine=powerpc-ibm
- os=-os400
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=-ose
- ;;
- os68k)
- basic_machine=m68k-none
- os=-os68k
+ cpu=hppa1.1
+ vendor=oki
+ basic_os=proelf
;;
pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- parisc)
- basic_machine=hppa-unknown
- os=-linux
- ;;
- parisc-*)
- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
+ cpu=hppa1.1
+ vendor=hitachi
+ basic_os=hiuxwe2
;;
pbd)
- basic_machine=sparc-tti
+ cpu=sparc
+ vendor=tti
;;
pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
- ;;
- pc98)
- basic_machine=i386-pc
- ;;
- pc98-*)
- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentium | p5 | k5 | k6 | nexgen | viac3)
- basic_machine=i586-pc
- ;;
- pentiumpro | p6 | 6x86 | athlon | athlon_*)
- basic_machine=i686-pc
- ;;
- pentiumii | pentium2 | pentiumiii | pentium3)
- basic_machine=i686-pc
+ cpu=m68k
+ vendor=tti
;;
- pentium4)
- basic_machine=i786-pc
- ;;
- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumpro-* | p6-* | 6x86-* | athlon-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentium4-*)
- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ pc532)
+ cpu=ns32k
+ vendor=pc532
;;
pn)
- basic_machine=pn-gould
- ;;
- power) basic_machine=power-ibm
- ;;
- ppc | ppcbe) basic_machine=powerpc-unknown
- ;;
- ppc-* | ppcbe-*)
- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppcle | powerpclittle | ppc-le | powerpc-little)
- basic_machine=powerpcle-unknown
- ;;
- ppcle-* | powerpclittle-*)
- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+ cpu=pn
+ vendor=gould
;;
- ppc64) basic_machine=powerpc64-unknown
- ;;
- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64le | powerpc64little | ppc64-le | powerpc64-little)
- basic_machine=powerpc64le-unknown
- ;;
- ppc64le-* | powerpc64little-*)
- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ power)
+ cpu=power
+ vendor=ibm
;;
ps2)
- basic_machine=i386-ibm
- ;;
- pw32)
- basic_machine=i586-unknown
- os=-pw32
- ;;
- rdos | rdos64)
- basic_machine=x86_64-pc
- os=-rdos
- ;;
- rdos32)
- basic_machine=i386-pc
- os=-rdos
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- os=-coff
+ cpu=i386
+ vendor=ibm
;;
rm[46]00)
- basic_machine=mips-siemens
+ cpu=mips
+ vendor=siemens
;;
rtpc | rtpc-*)
- basic_machine=romp-ibm
- ;;
- s390 | s390-*)
- basic_machine=s390-ibm
+ cpu=romp
+ vendor=ibm
;;
- s390x | s390x-*)
- basic_machine=s390x-ibm
- ;;
- sa29200)
- basic_machine=a29k-amd
- os=-udi
+ sde)
+ cpu=mipsisa32
+ vendor=sde
+ basic_os=${basic_os:-elf}
;;
- sb1)
- basic_machine=mipsisa64sb1-unknown
+ simso-wrs)
+ cpu=sparclite
+ vendor=wrs
+ basic_os=vxworks
;;
- sb1el)
- basic_machine=mipsisa64sb1el-unknown
+ tower | tower-32)
+ cpu=m68k
+ vendor=ncr
;;
- sde)
- basic_machine=mipsisa32-sde
- os=-elf
+ vpp*|vx|vx-*)
+ cpu=f301
+ vendor=fujitsu
;;
- sei)
- basic_machine=mips-sei
- os=-seiux
+ w65)
+ cpu=w65
+ vendor=wdc
;;
- sequent)
- basic_machine=i386-sequent
+ w89k-*)
+ cpu=hppa1.1
+ vendor=winbond
+ basic_os=proelf
;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
+ none)
+ cpu=none
+ vendor=none
;;
- sh5el)
- basic_machine=sh5le-unknown
+ leon|leon[3-9])
+ cpu=sparc
+ vendor=$basic_machine
;;
- sh64)
- basic_machine=sh64-unknown
+ leon-*|leon[3-9]-*)
+ cpu=sparc
+ vendor=`echo "$basic_machine" | sed 's/-.*//'`
;;
- sparclite-wrs | simso-wrs)
- basic_machine=sparclite-wrs
- os=-vxworks
+
+ *-*)
+ # shellcheck disable=SC2162
+ saved_IFS=$IFS
+ IFS="-" read cpu vendor <<EOF
+$basic_machine
+EOF
+ IFS=$saved_IFS
;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ cpu=$basic_machine
+ vendor=pc
;;
- spur)
- basic_machine=spur-unknown
+ # These rules are duplicated from below for sake of the special case above;
+ # i.e. things that normalized to x86 arches should also default to "pc"
+ pc98)
+ cpu=i386
+ vendor=pc
;;
- st2000)
- basic_machine=m68k-tandem
+ x64 | amd64)
+ cpu=x86_64
+ vendor=pc
;;
- stratus)
- basic_machine=i860-stratus
- os=-sysv4
+ # Recognize the basic CPU types without company name.
+ *)
+ cpu=$basic_machine
+ vendor=unknown
;;
- strongarm-* | thumb-*)
- basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+esac
+
+unset -v basic_machine
+
+# Decode basic machines in the full and proper CPU-Company form.
+case $cpu-$vendor in
+ # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+ craynv-unknown)
+ vendor=cray
+ basic_os=${basic_os:-unicosmp}
;;
- sun2)
- basic_machine=m68000-sun
+ c90-unknown | c90-cray)
+ vendor=cray
+ basic_os=${Basic_os:-unicos}
;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
+ fx80-unknown)
+ vendor=alliant
;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
+ romp-unknown)
+ vendor=ibm
;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
+ mmix-unknown)
+ vendor=knuth
;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
+ microblaze-unknown | microblazeel-unknown)
+ vendor=xilinx
;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
+ rs6000-unknown)
+ vendor=ibm
;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
+ vax-unknown)
+ vendor=dec
;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
+ pdp11-unknown)
+ vendor=dec
;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
+ we32k-unknown)
+ vendor=att
;;
- sun4)
- basic_machine=sparc-sun
+ cydra-unknown)
+ vendor=cydrome
;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
+ i370-ibm*)
+ vendor=ibm
;;
- sv1)
- basic_machine=sv1-cray
- os=-unicos
+ orion-unknown)
+ vendor=highlevel
;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
+ xps-unknown | xps100-unknown)
+ cpu=xps100
+ vendor=honeywell
;;
- t3e)
- basic_machine=alphaev5-cray
- os=-unicos
+
+ # Here we normalize CPU types with a missing or matching vendor
+ armh-unknown | armh-alt)
+ cpu=armv7l
+ vendor=alt
+ basic_os=${basic_os:-linux-gnueabihf}
;;
- t90)
- basic_machine=t90-cray
- os=-unicos
+ dpx20-unknown | dpx20-bull)
+ cpu=rs6000
+ vendor=bull
+ basic_os=${basic_os:-bosx}
;;
- tile*)
- basic_machine=$basic_machine-unknown
- os=-linux-gnu
+
+ # Here we normalize CPU types irrespective of the vendor
+ amd64-*)
+ cpu=x86_64
;;
- tx39)
- basic_machine=mipstx39-unknown
+ blackfin-*)
+ cpu=bfin
+ basic_os=linux
;;
- tx39el)
- basic_machine=mipstx39el-unknown
+ c54x-*)
+ cpu=tic54x
;;
- toad1)
- basic_machine=pdp10-xkl
- os=-tops20
+ c55x-*)
+ cpu=tic55x
;;
- tower | tower-32)
- basic_machine=m68k-ncr
+ c6x-*)
+ cpu=tic6x
;;
- tpf)
- basic_machine=s390x-ibm
- os=-tpf
+ e500v[12]-*)
+ cpu=powerpc
+ basic_os=${basic_os}"spe"
;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
+ mips3*-*)
+ cpu=mips64
;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
+ ms1-*)
+ cpu=mt
;;
- v810 | necv810)
- basic_machine=v810-nec
- os=-none
+ m68knommu-*)
+ cpu=m68k
+ basic_os=linux
;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
+ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
+ cpu=s12z
;;
- vms)
- basic_machine=vax-dec
- os=-vms
+ openrisc-*)
+ cpu=or32
;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
+ parisc-*)
+ cpu=hppa
+ basic_os=linux
;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ cpu=i586
;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
+ pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
+ cpu=i686
;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ cpu=i686
;;
- w65*)
- basic_machine=w65-wdc
- os=-none
+ pentium4-*)
+ cpu=i786
;;
- w89k-*)
- basic_machine=hppa1.1-winbond
- os=-proelf
+ pc98-*)
+ cpu=i386
;;
- xbox)
- basic_machine=i686-pc
- os=-mingw32
+ ppc-* | ppcbe-*)
+ cpu=powerpc
;;
- xps | xps100)
- basic_machine=xps100-honeywell
+ ppcle-* | powerpclittle-*)
+ cpu=powerpcle
;;
- xscale-* | xscalee[bl]-*)
- basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+ ppc64-*)
+ cpu=powerpc64
;;
- ymp)
- basic_machine=ymp-cray
- os=-unicos
+ ppc64le-* | powerpc64little-*)
+ cpu=powerpc64le
;;
- z8k-*-coff)
- basic_machine=z8k-unknown
- os=-sim
+ sb1-*)
+ cpu=mipsisa64sb1
;;
- z80-*-coff)
- basic_machine=z80-unknown
- os=-sim
+ sb1el-*)
+ cpu=mipsisa64sb1el
;;
- none)
- basic_machine=none-none
- os=-none
+ sh5e[lb]-*)
+ cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- w89k)
- basic_machine=hppa1.1-winbond
+ spur-*)
+ cpu=spur
;;
- op50n)
- basic_machine=hppa1.1-oki
+ strongarm-* | thumb-*)
+ cpu=arm
;;
- op60c)
- basic_machine=hppa1.1-oki
+ tx39-*)
+ cpu=mipstx39
;;
- romp)
- basic_machine=romp-ibm
+ tx39el-*)
+ cpu=mipstx39el
;;
- mmix)
- basic_machine=mmix-knuth
+ x64-*)
+ cpu=x86_64
;;
- rs6000)
- basic_machine=rs6000-ibm
+ xscale-* | xscalee[bl]-*)
+ cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
;;
- vax)
- basic_machine=vax-dec
+ arm64-* | aarch64le-*)
+ cpu=aarch64
;;
- pdp10)
- # there are many clones, so DEC is not a safe bet
- basic_machine=pdp10-unknown
+
+ # Recognize the canonical CPU Types that limit and/or modify the
+ # company names they are paired with.
+ cr16-*)
+ basic_os=${basic_os:-elf}
;;
- pdp11)
- basic_machine=pdp11-dec
+ crisv32-* | etraxfs*-*)
+ cpu=crisv32
+ vendor=axis
;;
- we32k)
- basic_machine=we32k-att
+ cris-* | etrax*-*)
+ cpu=cris
+ vendor=axis
;;
- sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
- basic_machine=sh-unknown
+ crx-*)
+ basic_os=${basic_os:-elf}
;;
- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
- basic_machine=sparc-sun
+ neo-tandem)
+ cpu=neo
+ vendor=tandem
;;
- cydra)
- basic_machine=cydra-cydrome
+ nse-tandem)
+ cpu=nse
+ vendor=tandem
;;
- orion)
- basic_machine=orion-highlevel
+ nsr-tandem)
+ cpu=nsr
+ vendor=tandem
;;
- orion105)
- basic_machine=clipper-highlevel
+ nsv-tandem)
+ cpu=nsv
+ vendor=tandem
;;
- mac | mpw | mac-mpw)
- basic_machine=m68k-apple
+ nsx-tandem)
+ cpu=nsx
+ vendor=tandem
;;
- pmac | pmac-mpw)
- basic_machine=powerpc-apple
+ mipsallegrexel-sony)
+ cpu=mipsallegrexel
+ vendor=sony
;;
- *-unknown)
- # Make sure to match an already-canonicalized machine name.
+ tile*-*)
+ basic_os=${basic_os:-linux-gnu}
;;
+
*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
+ # Recognize the canonical CPU types that are allowed with any
+ # company name.
+ case $cpu in
+ 1750a | 580 \
+ | a29k \
+ | aarch64 | aarch64_be \
+ | abacus \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
+ | alphapca5[67] | alpha64pca5[67] \
+ | am33_2.0 \
+ | amdgcn \
+ | arc | arceb | arc32 | arc64 \
+ | arm | arm[lb]e | arme[lb] | armv* \
+ | avr | avr32 \
+ | asmjs \
+ | ba \
+ | be32 | be64 \
+ | bfin | bpf | bs2000 \
+ | c[123]* | c30 | [cjt]90 | c4x \
+ | c8051 | clipper | craynv | csky | cydra \
+ | d10v | d30v | dlx | dsp16xx \
+ | e2k | elxsi | epiphany \
+ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
+ | h8300 | h8500 \
+ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
+ | i370 | i*86 | i860 | i960 | ia16 | ia64 \
+ | ip2k | iq2000 \
+ | k1om \
+ | le32 | le64 \
+ | lm32 \
+ | loongarch32 | loongarch64 \
+ | m32c | m32r | m32rle \
+ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
+ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
+ | m88110 | m88k | maxq | mb | mcore | mep | metag \
+ | microblaze | microblazeel \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64eb | mips64el \
+ | mips64octeon | mips64octeonel \
+ | mips64orion | mips64orionel \
+ | mips64r5900 | mips64r5900el \
+ | mips64vr | mips64vrel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa32r3 | mipsisa32r3el \
+ | mipsisa32r5 | mipsisa32r5el \
+ | mipsisa32r6 | mipsisa32r6el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64r3 | mipsisa64r3el \
+ | mipsisa64r5 | mipsisa64r5el \
+ | mipsisa64r6 | mipsisa64r6el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
+ | mipstx39 | mipstx39el \
+ | mmix \
+ | mn10200 | mn10300 \
+ | moxie \
+ | mt \
+ | msp430 \
+ | nds32 | nds32le | nds32be \
+ | nfp \
+ | nios | nios2 | nios2eb | nios2el \
+ | none | np1 | ns16k | ns32k | nvptx \
+ | open8 \
+ | or1k* \
+ | or32 \
+ | orion \
+ | picochip \
+ | pdp10 | pdp11 | pj | pjl | pn | power \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
+ | pru \
+ | pyramid \
+ | riscv | riscv32 | riscv32be | riscv64 | riscv64be \
+ | rl78 | romp | rs6000 | rx \
+ | s390 | s390x \
+ | score \
+ | sh | shl \
+ | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
+ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
+ | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
+ | spu \
+ | tahoe \
+ | thumbv7* \
+ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
+ | tron \
+ | ubicom32 \
+ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+ | vax \
+ | visium \
+ | w65 \
+ | wasm32 | wasm64 \
+ | we32k \
+ | x86 | x86_64 | xc16x | xgate | xps100 \
+ | xstormy16 | xtensa* \
+ | ymp \
+ | z8k | z80)
+ ;;
+
+ *)
+ echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
+ exit 1
+ ;;
+ esac
;;
esac
# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+case $vendor in
+ digital*)
+ vendor=dec
;;
- *-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ commodore*)
+ vendor=cbm
;;
*)
;;
@@ -1340,200 +1306,219 @@ esac
# Decode manufacturer-specific aliases for certain operating systems.
-if [ x"$os" != x"" ]
+if test x$basic_os != x
then
+
+# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
+# set os.
+case $basic_os in
+ gnu/linux*)
+ kernel=linux
+ os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
+ ;;
+ os2-emx)
+ kernel=os2
+ os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
+ ;;
+ nto-qnx*)
+ kernel=nto
+ os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
+ ;;
+ *-*)
+ # shellcheck disable=SC2162
+ saved_IFS=$IFS
+ IFS="-" read kernel os <<EOF
+$basic_os
+EOF
+ IFS=$saved_IFS
+ ;;
+ # Default OS when just kernel was specified
+ nto*)
+ kernel=nto
+ os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
+ ;;
+ linux*)
+ kernel=linux
+ os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
+ ;;
+ managarm*)
+ kernel=managarm
+ os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
+ ;;
+ *)
+ kernel=
+ os=$basic_os
+ ;;
+esac
+
+# Now, normalize the OS (knowing we just have one component, it's not a kernel,
+# etc.)
case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
- # -solaris* is a basic system type, with this one exception.
- -auroraux)
- os=-auroraux
+ # First match some system type aliases that might get confused
+ # with valid system types.
+ # solaris* is a basic system type, with this one exception.
+ auroraux)
+ os=auroraux
;;
- -solaris1 | -solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ bluegene*)
+ os=cnk
;;
- -solaris)
- os=-solaris2
+ solaris1 | solaris1.*)
+ os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
;;
- -svr4*)
- os=-sysv4
+ solaris)
+ os=solaris2
;;
- -unixware*)
- os=-sysv4.2uw
+ unixware*)
+ os=sysv4.2uw
;;
- -gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ # es1800 is here to avoid being matched by es* (a different OS)
+ es1800*)
+ os=ose
;;
- # First accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST END IN A *, to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
- | -sym* | -kopensolaris* | -plan9* \
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* | -aros* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
- | -bitrig* | -openbsd* | -solidbsd* \
- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* | -cegcc* \
- | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
- | -linux-newlib* | -linux-musl* | -linux-uclibc* \
- | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
- -qnx*)
- case $basic_machine in
- x86-* | i*86-*)
- ;;
- *)
- os=-nto$os
- ;;
- esac
+ # Some version numbers need modification
+ chorusos*)
+ os=chorusos
;;
- -nto-qnx*)
+ isc)
+ os=isc2.2
;;
- -nto*)
- os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ sco6)
+ os=sco5v6
;;
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ sco5)
+ os=sco3.2v5
;;
- -mac*)
- os=`echo $os | sed -e 's|mac|macos|'`
+ sco4)
+ os=sco3.2v4
;;
- -linux-dietlibc)
- os=-linux-dietlibc
+ sco3.2.[4-9]*)
+ os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
;;
- -linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ sco*v* | scout)
+ # Don't match below
;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ sco*)
+ os=sco3.2v2
;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ psos*)
+ os=psos
;;
- -opened*)
- os=-openedition
+ qnx*)
+ os=qnx
;;
- -os400*)
- os=-os400
+ hiux*)
+ os=hiuxwe2
;;
- -wince*)
- os=-wince
+ lynx*178)
+ os=lynxos178
;;
- -osfrose*)
- os=-osfrose
+ lynx*5)
+ os=lynxos5
;;
- -osf*)
- os=-osf
+ lynxos*)
+ # don't get caught up in next wildcard
;;
- -utek*)
- os=-bsd
+ lynx*)
+ os=lynxos
;;
- -dynix*)
- os=-bsd
+ mac[0-9]*)
+ os=`echo "$os" | sed -e 's|mac|macos|'`
;;
- -acis*)
- os=-aos
+ opened*)
+ os=openedition
;;
- -atheos*)
- os=-atheos
+ os400*)
+ os=os400
;;
- -syllable*)
- os=-syllable
+ sunos5*)
+ os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
;;
- -386bsd)
- os=-bsd
+ sunos6*)
+ os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
;;
- -ctix* | -uts*)
- os=-sysv
+ wince*)
+ os=wince
;;
- -nova*)
- os=-rtmk-nova
+ utek*)
+ os=bsd
;;
- -ns2 )
- os=-nextstep2
+ dynix*)
+ os=bsd
;;
- -nsk*)
- os=-nsk
+ acis*)
+ os=aos
;;
- # Preserve the version number of sinix5.
- -sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
+ atheos*)
+ os=atheos
;;
- -sinix*)
- os=-sysv4
+ syllable*)
+ os=syllable
;;
- -tpf*)
- os=-tpf
+ 386bsd)
+ os=bsd
;;
- -triton*)
- os=-sysv3
+ ctix* | uts*)
+ os=sysv
;;
- -oss*)
- os=-sysv3
+ nova*)
+ os=rtmk-nova
;;
- -svr4)
- os=-sysv4
+ ns2)
+ os=nextstep2
;;
- -svr3)
- os=-sysv3
+ # Preserve the version number of sinix5.
+ sinix5.*)
+ os=`echo "$os" | sed -e 's|sinix|sysv|'`
;;
- -sysvr4)
- os=-sysv4
+ sinix*)
+ os=sysv4
;;
- # This must come after -sysvr4.
- -sysv*)
+ tpf*)
+ os=tpf
;;
- -ose*)
- os=-ose
+ triton*)
+ os=sysv3
;;
- -es1800*)
- os=-ose
+ oss*)
+ os=sysv3
;;
- -xenix)
- os=-xenix
+ svr4*)
+ os=sysv4
;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- os=-mint
+ svr3)
+ os=sysv3
;;
- -aros*)
- os=-aros
+ sysvr4)
+ os=sysv4
;;
- -zvmoe)
- os=-zvmoe
+ ose*)
+ os=ose
;;
- -dicos*)
- os=-dicos
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+ os=mint
;;
- -nacl*)
+ dicos*)
+ os=dicos
;;
- -none)
+ pikeos*)
+ # Until real need of OS specific support for
+ # particular features comes up, bare metal
+ # configurations are quite functional.
+ case $cpu in
+ arm*)
+ os=eabi
+ ;;
+ *)
+ os=elf
+ ;;
+ esac
;;
*)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
- exit 1
+ # No normalization, but not necessarily accepted, that comes below.
;;
esac
+
else
# Here we handle the default operating systems that come with various machines.
@@ -1546,261 +1531,376 @@ else
# will signal an error saying that MANUFACTURER isn't an operating
# system, and we'll never get to this point.
-case $basic_machine in
+kernel=
+case $cpu-$vendor in
score-*)
- os=-elf
+ os=elf
;;
spu-*)
- os=-elf
+ os=elf
;;
*-acorn)
- os=-riscix1.2
+ os=riscix1.2
;;
arm*-rebel)
- os=-linux
+ kernel=linux
+ os=gnu
;;
arm*-semi)
- os=-aout
+ os=aout
;;
c4x-* | tic4x-*)
- os=-coff
+ os=coff
;;
c8051-*)
- os=-elf
+ os=elf
+ ;;
+ clipper-intergraph)
+ os=clix
;;
hexagon-*)
- os=-elf
+ os=elf
;;
tic54x-*)
- os=-coff
+ os=coff
;;
tic55x-*)
- os=-coff
+ os=coff
;;
tic6x-*)
- os=-coff
+ os=coff
;;
# This must come before the *-dec entry.
pdp10-*)
- os=-tops20
+ os=tops20
;;
pdp11-*)
- os=-none
+ os=none
;;
*-dec | vax-*)
- os=-ultrix4.2
+ os=ultrix4.2
;;
m68*-apollo)
- os=-domain
+ os=domain
;;
i386-sun)
- os=-sunos4.0.2
+ os=sunos4.0.2
;;
m68000-sun)
- os=-sunos3
+ os=sunos3
;;
m68*-cisco)
- os=-aout
+ os=aout
;;
mep-*)
- os=-elf
+ os=elf
;;
mips*-cisco)
- os=-elf
+ os=elf
;;
mips*-*)
- os=-elf
+ os=elf
;;
or32-*)
- os=-coff
+ os=coff
;;
*-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
+ os=sysv3
;;
sparc-* | *-sun)
- os=-sunos4.1.1
+ os=sunos4.1.1
;;
- *-be)
- os=-beos
+ pru-*)
+ os=elf
;;
- *-haiku)
- os=-haiku
+ *-be)
+ os=beos
;;
*-ibm)
- os=-aix
+ os=aix
;;
*-knuth)
- os=-mmixware
+ os=mmixware
;;
*-wec)
- os=-proelf
+ os=proelf
;;
*-winbond)
- os=-proelf
+ os=proelf
;;
*-oki)
- os=-proelf
+ os=proelf
;;
*-hp)
- os=-hpux
+ os=hpux
;;
*-hitachi)
- os=-hiux
+ os=hiux
;;
i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
+ os=sysv
;;
*-cbm)
- os=-amigaos
+ os=amigaos
;;
*-dg)
- os=-dgux
+ os=dgux
;;
*-dolphin)
- os=-sysv3
+ os=sysv3
;;
m68k-ccur)
- os=-rtu
+ os=rtu
;;
m88k-omron*)
- os=-luna
+ os=luna
;;
- *-next )
- os=-nextstep
+ *-next)
+ os=nextstep
;;
*-sequent)
- os=-ptx
+ os=ptx
;;
*-crds)
- os=-unos
+ os=unos
;;
*-ns)
- os=-genix
+ os=genix
;;
i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
+ os=mvs
;;
*-gould)
- os=-sysv
+ os=sysv
;;
*-highlevel)
- os=-bsd
+ os=bsd
;;
*-encore)
- os=-bsd
+ os=bsd
;;
*-sgi)
- os=-irix
+ os=irix
;;
*-siemens)
- os=-sysv4
+ os=sysv4
;;
*-masscomp)
- os=-rtu
+ os=rtu
;;
f30[01]-fujitsu | f700-fujitsu)
- os=-uxpv
+ os=uxpv
;;
*-rom68k)
- os=-coff
+ os=coff
;;
*-*bug)
- os=-coff
+ os=coff
;;
*-apple)
- os=-macos
+ os=macos
;;
*-atari*)
- os=-mint
+ os=mint
+ ;;
+ *-wrs)
+ os=vxworks
;;
*)
- os=-none
+ os=none
;;
esac
+
fi
+# Now, validate our (potentially fixed-up) OS.
+case $os in
+ # Sometimes we do "kernel-libc", so those need to count as OSes.
+ musl* | newlib* | relibc* | uclibc*)
+ ;;
+ # Likewise for "kernel-abi"
+ eabi* | gnueabi*)
+ ;;
+ # VxWorks passes extra cpu info in the 4th filed.
+ simlinux | simwindows | spe)
+ ;;
+ # Now accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST end in a * to match a version number.
+ gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
+ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
+ | hiux* | abug | nacl* | netware* | windows* \
+ | os9* | macos* | osx* | ios* \
+ | mpw* | magic* | mmixware* | mon960* | lnews* \
+ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+ | aos* | aros* | cloudabi* | sortix* | twizzler* \
+ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+ | mirbsd* | netbsd* | dicos* | openedition* | ose* \
+ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
+ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
+ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+ | udi* | lites* | ieee* | go32* | aux* | hcos* \
+ | chorusrdb* | cegcc* | glidix* | serenity* \
+ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+ | midipix* | mingw32* | mingw64* | mint* \
+ | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+ | interix* | uwin* | mks* | rhapsody* | darwin* \
+ | openstep* | oskit* | conix* | pw32* | nonstopux* \
+ | storm-chaos* | tops10* | tenex* | tops20* | its* \
+ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
+ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
+ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
+ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
+ | fiwix* | mlibc* )
+ ;;
+ # This one is extra strict with allowed versions
+ sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ ;;
+ none)
+ ;;
+ kernel* )
+ # Restricted further below
+ ;;
+ *)
+ echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+
+# As a final step for OS-related things, validate the OS-kernel combination
+# (given a valid OS), if there is a kernel.
+case $kernel-$os in
+ linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
+ | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
+ ;;
+ uclinux-uclibc* )
+ ;;
+ managarm-mlibc* | managarm-kernel* )
+ ;;
+ -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
+ # These are just libc implementations, not actual OSes, and thus
+ # require a kernel.
+ echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
+ exit 1
+ ;;
+ -kernel* )
+ echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2
+ exit 1
+ ;;
+ *-kernel* )
+ echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2
+ exit 1
+ ;;
+ kfreebsd*-gnu* | kopensolaris*-gnu*)
+ ;;
+ vxworks-simlinux | vxworks-simwindows | vxworks-spe)
+ ;;
+ nto-qnx*)
+ ;;
+ os2-emx)
+ ;;
+ *-eabi* | *-gnueabi*)
+ ;;
+ -*)
+ # Blank kernel with real OS is always fine.
+ ;;
+ *-*)
+ echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
+ exit 1
+ ;;
+esac
+
# Here we handle the case where we know the os, and the CPU type, but not the
# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
- case $os in
- -riscix*)
+case $vendor in
+ unknown)
+ case $cpu-$os in
+ *-riscix*)
vendor=acorn
;;
- -sunos*)
+ *-sunos*)
vendor=sun
;;
- -cnk*|-aix*)
+ *-cnk* | *-aix*)
vendor=ibm
;;
- -beos*)
+ *-beos*)
vendor=be
;;
- -hpux*)
+ *-hpux*)
vendor=hp
;;
- -mpeix*)
+ *-mpeix*)
vendor=hp
;;
- -hiux*)
+ *-hiux*)
vendor=hitachi
;;
- -unos*)
+ *-unos*)
vendor=crds
;;
- -dgux*)
+ *-dgux*)
vendor=dg
;;
- -luna*)
+ *-luna*)
vendor=omron
;;
- -genix*)
+ *-genix*)
vendor=ns
;;
- -mvs* | -opened*)
+ *-clix*)
+ vendor=intergraph
+ ;;
+ *-mvs* | *-opened*)
+ vendor=ibm
+ ;;
+ *-os400*)
vendor=ibm
;;
- -os400*)
+ s390-* | s390x-*)
vendor=ibm
;;
- -ptx*)
+ *-ptx*)
vendor=sequent
;;
- -tpf*)
+ *-tpf*)
vendor=ibm
;;
- -vxsim* | -vxworks* | -windiss*)
+ *-vxsim* | *-vxworks* | *-windiss*)
vendor=wrs
;;
- -aux*)
+ *-aux*)
vendor=apple
;;
- -hms*)
+ *-hms*)
vendor=hitachi
;;
- -mpw* | -macos*)
+ *-mpw* | *-macos*)
vendor=apple
;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
vendor=atari
;;
- -vos*)
+ *-vos*)
vendor=stratus
;;
esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
;;
esac
-echo $basic_machine$os
+echo "$cpu-$vendor-${kernel:+$kernel-}$os"
exit
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
diff --git a/scripts/bash_completion b/scripts/bash_completion
index b41754bae..3d57d974b 100644
--- a/scripts/bash_completion
+++ b/scripts/bash_completion
@@ -13,7 +13,9 @@ declare -a _ptxdist_completion_newpkg
__ptxdist_completion_packages() {
set -- $(${_ptxdist_cmd} print STATEDIR PTXDIST_PTXCONFIG PTXDIST_PLATFORMCONFIG PTXDIST_COLLECTIONCONFIG)
local cache="${1}/.bash_completion_packages"
- if [ -z "${2}" -o "${2}" -nt "${cache}" -o "${3}" -nt "${cache}" -o "${4}" -nt "${cache}" ]; then
+ if [ ! -d "${1}" ]; then
+ ${_ptxdist_cmd} print PTX_PACKAGES_SELECTED 2>/dev/null
+ elif [ -z "${2}" -o "${2}" -nt "${cache}" -o "${3}" -nt "${cache}" -o "${4}" -nt "${cache}" ]; then
${_ptxdist_cmd} print PTX_PACKAGES_SELECTED 2>/dev/null | tee "${cache}" 2>/dev/null
if [ ${PIPESTATUS[0]} -ne 0 -o ${PIPESTATUS[1]} -ne 0 ]; then
rm "${cache}"
@@ -121,11 +123,14 @@ _ptxdist_completion()
clean)
COMPREPLY=( $( compgen -W root -- $cur ) )
;&
- get|extract|prepare|compile|install|targetinstall|tags)
+ get|extract|prepare|compile|install|targetinstall|tags|urlcheck|licensecheck|package-info|cargosync)
COMPREPLY+=( $( compgen -W "$(__ptxdist_completion_packages)" -- $cur ) )
;;
drop)
- COMPREPLY=( $( compgen -W "$( cd $($_ptxdist_cmd print PTXDIST_PLATFORMDIR)/state; ls *.+(get|extract|prepare|compile|install|targetinstall) )" -- $cur ) )
+ state_dir="$($_ptxdist_cmd print PTXDIST_PLATFORMDIR)/state"
+ if [ -d "${state_dir}" ]; then
+ COMPREPLY=( $( compgen -W "$( cd "${state_dir}" && ls *.+(get|extract|prepare|compile|install|targetinstall) 2>/dev/null )" -- $cur ) )
+ fi
;;
newpackage)
if [ ${#_ptxdist_completion_newpkg[@]} -eq 0 ]; then
diff --git a/scripts/bsp-report-schema.yaml b/scripts/bsp-report-schema.yaml
new file mode 100644
index 000000000..aef86d562
--- /dev/null
+++ b/scripts/bsp-report-schema.yaml
@@ -0,0 +1,304 @@
+type: object
+required:
+- ptxdist
+- bsp
+- develop
+- packages
+- images
+additionalProperties: false
+properties:
+ ptxdist:
+ type: object
+ required:
+ - version
+ - path
+ additionalProperties: false
+ properties:
+ version:
+ $ref: '#/$defs/version'
+ path:
+ $ref: '#/$defs/path'
+ bsp:
+ type: object
+ required:
+ - vendor
+ - project
+ - project-version
+ - platform-version
+ - ptxconfig
+ - platformconfig
+ - toolchain
+ - layers
+ additionalProperties: false
+ properties:
+ vendor:
+ type: string
+ project:
+ type: string
+ project-version:
+ $ref: '#/$defs/version'
+ platform:
+ type: string
+ platform-version:
+ $ref: '#/$defs/version'
+ ptxconfig:
+ $ref: '#/$defs/path'
+ platformconfig:
+ $ref: '#/$defs/path'
+ collectionconfig:
+ $ref: '#/$defs/path'
+ toolchain:
+ $ref: '#/$defs/path'
+ layers:
+ type: array
+ items:
+ $ref: '#/$defs/path'
+ develop:
+ type: object
+ required:
+ - workspace
+ - platform
+ - host
+ - target
+ additionalProperties: false
+ properties:
+ workspace:
+ $ref: '#/$defs/path'
+ platform:
+ $ref: '#/$defs/path'
+ host:
+ type: object
+ required:
+ - path
+ - toolchain-prefix
+ - cmake-toolchain
+ additionalProperties: false
+ properties:
+ path:
+ type: array
+ items:
+ $ref: '#/$defs/path'
+ toolchain-prefix:
+ $ref: '#/$defs/path'
+ cmake-toolchain:
+ $ref: '#/$defs/path'
+ target:
+ type: object
+ required:
+ - path
+ - toolchain-prefix
+ - gnu-target
+ - compiler-prefix
+ - cmake-toolchain
+ - meson-cross-file
+ - nfsroot
+ additionalProperties: false
+ properties:
+ path:
+ type: array
+ items:
+ $ref: '#/$defs/path'
+ toolchain-prefix:
+ $ref: '#/$defs/path'
+ gnu-target:
+ type: string
+ compiler-prefix:
+ type: string
+ cmake-toolchain:
+ $ref: '#/$defs/path'
+ meson-cross-file:
+ $ref: '#/$defs/path'
+ nfsroot:
+ $ref: '#/$defs/path'
+ packages:
+ type: object
+ additionalProperties: false
+ patternProperties:
+ '^[a-z0-9_-]+$':
+ allOf:
+ - $ref: '#/$defs/pkg'
+ - required:
+ - srchash
+ dependentRequired:
+ patches:
+ - source
+ source:
+ - md5
+ - sources
+ - md5s
+ - url
+ - if:
+ properties:
+ license-section:
+ const: 'ignore'
+ then: {}
+ else:
+ required:
+ - version
+ images:
+ type: object
+ additionalProperties: false
+ patternProperties:
+ '^[a-z0-9_-]+$':
+ allOf:
+ - $ref: '#/$defs/pkg'
+ - required:
+ - image
+$defs:
+ pkgname:
+ type: string
+ pattern: '^[a-z0-9_-]+$'
+ path:
+ type: string
+ pattern: '^/[^\s]+$'
+ md5:
+ type: string
+ pattern: '^[a-f0-9]{32}$'
+ md5s:
+ type: string
+ pattern: '^([a-f0-9]{32}( [a-f0-9]{32})*|none)$'
+ url:
+ type: string
+ pattern: '^(file|ftp|git|git\+file|https?|git\+https?|lndir|ssh|svn)://[^\s]+$'
+ version:
+ type: string
+ pattern: '^[^\s]+'
+ git-hash:
+ type: string
+ pattern: '^[a-f0-9]{40}$'
+ simple-pkg:
+ type: object
+ required:
+ - name
+ additionalProperties: false
+ properties:
+ name:
+ $ref: '#/$defs/pkgname'
+ rulefile:
+ $ref: '#/$defs/path'
+ extra-rulefiles:
+ type: array
+ items:
+ $ref: '#/$defs/path'
+ menufile:
+ $ref: '#/$defs/path'
+ builddeps:
+ type: array
+ items:
+ $ref: '#/$defs/pkgname'
+ rundeps:
+ type: array
+ items:
+ $ref: '#/$defs/pkgname'
+ config:
+ type: string
+ version:
+ $ref: '#/$defs/version'
+ url:
+ type: array
+ items:
+ $ref: '#/$defs/url'
+ md5:
+ $ref: '#/$defs/md5s'
+ source:
+ $ref: '#/$defs/path'
+ md5s:
+ type: array
+ items:
+ $ref: '#/$defs/md5s'
+ sources:
+ type: array
+ items:
+ $ref: '#/$defs/path'
+ git-commit:
+ $ref: '#/$defs/git-hash'
+ source-packages:
+ type: array
+ items:
+ $ref: '#/$defs/simple-pkg'
+ patches:
+ $ref: '#/$defs/path'
+ series:
+ $ref: '#/$defs/path'
+ srcdir:
+ $ref: '#/$defs/path'
+ builddir:
+ $ref: '#/$defs/path'
+ pkgdir:
+ $ref: '#/$defs/path'
+ cfghash:
+ $ref: '#/$defs/md5'
+ srchash:
+ $ref: '#/$defs/md5'
+ devpkg:
+ $ref: '#/$defs/path'
+ spdx-sbom:
+ $ref: '#/$defs/path'
+ cyclonedx-sbom:
+ $ref: '#/$defs/path'
+ license-section:
+ enum:
+ - deprecated
+ - ignore
+ - misc
+ - mixed
+ - osi-conform
+ - other
+ - proprietary
+ - public_domain
+ - unknown
+ licenses:
+ type: string
+ license-flags:
+ type: array
+ items:
+ enum:
+ - nosource
+ - nopatches
+ - attribution
+ - choice
+ license-files:
+ anyOf:
+ - type: object
+ additionalProperties: false
+ patternProperties:
+ '^[^\s]+$':
+ additionalProperties: false
+ required:
+ - file
+ - guessed
+ - md5
+ properties:
+ guessed:
+ type: boolean
+ file:
+ $ref: '#/$defs/path'
+ md5:
+ $ref: '#/$defs/md5'
+ - type: array
+ items:
+ type: string
+ pattern: '^file://[^;]*(;encoding=[^;]*|;startline=[0-9]+|;endline=[0-9]+|;md5=[a-f0-9]{32})*$'
+ ipkgs:
+ type: array
+ items:
+ $ref: '#/$defs/path'
+ image:
+ $ref: '#/$defs/path'
+ pkgs:
+ type: array
+ items:
+ $ref: '#/$defs/pkgname'
+ files:
+ type: array
+ items:
+ $ref: '#/$defs/path'
+ pkg:
+ allOf:
+ - $ref: '#/$defs/simple-pkg'
+ required:
+ - rulefile
+ - menufile
+ - cfghash
+ - license-section
+ - licenses
diff --git a/scripts/configure_helper.py b/scripts/configure_helper.py
index 177b609f0..5efedf28a 100755
--- a/scripts/configure_helper.py
+++ b/scripts/configure_helper.py
@@ -99,6 +99,7 @@ meson_blacklist = [
"b_colorout",
"b_coverage",
"b_lto",
+ "b_lto_threads",
"b_lundef",
"b_ndebug",
"b_pch",
@@ -138,16 +139,24 @@ meson_blacklist = [
"default_library",
"errorlogs",
"force_fallback_for",
+ "genvslite",
"includedir",
"infodir",
"install_umask",
"layout",
"libexecdir",
+ "licensedir",
"localedir",
"localstatedir",
"mandir",
"optimization",
"pkg_config_path",
+ "prefer_static",
+ "python.allow_limited_api",
+ "python.bytecompile",
+ "python.install_env",
+ "python.platlibdir",
+ "python.purelibdir",
"sbindir",
"sharedstatedir",
"stdsplit",
@@ -155,6 +164,7 @@ meson_blacklist = [
"sysconfdir",
"unity",
"unity_size",
+ "vsenv",
"warning_level",
"werror",
"wrap_mode",
@@ -357,7 +367,7 @@ def handle_dir_configure(d, configure):
continue
if word[:2] == "--":
configure_args.append(word)
- elif ptx_pkg == "host-qemu" and re.match(" [a-z].*", line):
+ elif ptx_pkg in ("host-qemu", "qemu") and re.match(" [a-z].*", line):
configure_args.append("--enable-" + word)
parsed = parse_configure_args(configure_args, configure_blacklist)
diff --git a/scripts/generate-report.py b/scripts/generate-report.py
new file mode 100755
index 000000000..d06448702
--- /dev/null
+++ b/scripts/generate-report.py
@@ -0,0 +1,527 @@
+#!/usr/bin/env python3
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+
+from os import path, environ, makedirs
+from chardet.universaldetector import UniversalDetector
+from datetime import datetime
+from multiprocessing import Pool
+from dot2tex import dot2tex
+from shutil import copy
+import argparse
+import jinja2
+import re
+import yaml
+import subprocess
+import hashlib
+import spdx
+import uuid
+
+
+class ReportException(BaseException):
+ pass
+
+
+def find_file(search_path, name):
+ for file in [path.join(d, name) for d in search_path]:
+ if path.exists(file):
+ return file
+ return None
+
+
+class Generator:
+ def __init__(self, args):
+ self.input_suffix = '.txt'
+ self.output_suffix = '.txt'
+ self._data = args.input
+ self.__template = args.template
+ self.__output = args.output
+ self._output_dir = args.output_dir or ''
+ self._env = args.env or []
+ self._open_mode = 'w'
+ self.verbose = args.verbose
+ self.detector = UniversalDetector()
+ self.path = args.path
+
+ def create_loader(self):
+ return jinja2.ChoiceLoader([jinja2.FileSystemLoader(d) for d in self.path])
+
+ def escape(self, text):
+ return text
+
+ def raise_exception(self, message):
+ raise ReportException(message)
+
+ def build_chapter(self, pkg):
+ chapter = self.escape(pkg.get('name'))
+ chapter = chapter.removeprefix('host-').removeprefix('cross-')
+ if pkg.get('licenses', '').find('proprietary') >= 0:
+ chapter += ' *** Proprietary License!'
+ if pkg.get('licenses', '').find('unknown') >= 0:
+ chapter += ' *** Unknown License!'
+ return chapter
+
+ def source_file(self, name):
+ raw = True
+ if path.exists(name + '.utf-8'):
+ name = name + '.utf-8'
+ raw = False
+ if self.verbose:
+ print(f'Reading "{name}" ...')
+ if raw:
+ raw_data = open(name, 'rb').read()
+ try:
+ data = raw_data.decode('UTF-8')
+ except UnicodeDecodeError:
+ self.detector.reset()
+ self.detector.feed(raw_data)
+ self.detector.close()
+ encoding = self.detector.result['encoding']
+ if self.verbose:
+ print(f'Assuming encoding {encoding}.')
+ data = raw_data.decode(encoding)
+ else:
+ data = open(name, encoding='utf-8').read()
+ return data.replace('\f', '\n')
+
+ def create_dot_recurse(self, pkgs, pkg, level, hit_deps):
+ if level > 3:
+ return ''
+
+ display_name = self.escape(
+ pkg['name'].removeprefix('host-').removeprefix('cross-'))
+ licenses = self.escape(pkg['licenses']).split()
+ licenses = ' '.join(i + '\\\\' * (w % 3 == 2)
+ for w, i in enumerate(licenses))
+
+ data = """"%s" [ shape=box style="rounded corners" fixedsize=false texlbl="\\small\\begin{tabular}{c}{\\Large\\hyperref[%s]{%s}}\\\\%s\\end{tabular}" ];
+""" % (pkg['name'], pkg['name'], self.escape(pkg['name']), licenses)
+
+ if 'builddeps' not in pkg:
+ return data
+
+ for dep in pkg['builddeps']:
+ if f'{pkg["name"]} {dep}' in hit_deps:
+ continue
+ if dep not in pkgs:
+ continue
+ hit_deps.add(f'{pkg["name"]} {dep}')
+ data += """"%s" -> "%s"[dir=back];
+""" % (pkg['name'], dep)
+ data += self.create_dot_recurse(pkgs,
+ pkgs[dep], level + 1, hit_deps)
+ return data
+
+ def create_dot(self, pkgs, pkg):
+ dot = """
+digraph "%s" {
+rankdir=LR;
+ratio=compress;
+nodesep=0.1;
+ranksep=0.1;
+node [ shape=point fixedsize=true width=0.1 ];
+""" % pkg['name']
+ dot += self.create_dot_recurse(pkgs, pkg, 0, set())
+ dot += """}
+"""
+ return dot
+
+ def load(self, data):
+ return yaml.load(open(data).read(), Loader=yaml.SafeLoader)
+
+ def setup_env(self, loader):
+ env = jinja2.Environment(
+ loader=loader, autoescape=jinja2.select_autoescape())
+
+ def _find_file(name):
+ return find_file(self.path, name)
+
+ def regex_replace(s, find, replace):
+ return re.sub(find, replace, s)
+
+ env.globals['find_file'] = _find_file
+ env.globals['source_file'] = self.source_file
+ env.globals['escape'] = self.escape
+ env.globals['raise'] = self.raise_exception
+ env.globals['build_chapter'] = self.build_chapter
+ env.globals['now'] = datetime.now().strftime('%c')
+ env.filters['regex_replace'] = regex_replace
+ for tmp in self._env:
+ tmp = tmp.split('=', 2)
+ env.globals[tmp[0]] = tmp[1]
+ return env
+
+ def build(self, data, loader):
+ env = self.setup_env(loader)
+ header = env.get_template("header" + self.input_suffix)
+ body = env.get_template("body" + self.input_suffix)
+ footer = env.get_template("footer" + self.input_suffix)
+ return header.render(**data) + body.render(**data) + footer.render(**data)
+
+ def write(self, file, document):
+ file.write(document)
+
+ def finalize(self, document, output):
+ if directory := path.dirname(output):
+ makedirs(directory, exist_ok=True)
+ with open(output, mode=self._open_mode) as f:
+ self.write(f, document)
+ return output
+
+ def output_name(self):
+ if self.__output:
+ output = self.__output
+ if not output.endswith(self.output_suffix):
+ output += self.output_suffix
+ else:
+ output = self.__template + self.output_suffix
+ return output
+
+ def run(self):
+ data = self.load(self._data)
+ try:
+ document = self.build(data, self.create_loader())
+ except jinja2.exceptions.TemplateNotFound:
+ raise ReportException(f'Invalid template "{self.__template}"!')
+ return self.finalize(document, self.output_name())
+
+
+class LatexGenerator(Generator):
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+ self.input_suffix = '.tex'
+ self.output_suffix = '.pdf'
+
+ def escape(self, text):
+ return text.replace('_', '\\_').replace('&', '\\&')
+
+ def dot(self, pkg):
+ return self.__dot.get(pkg, None)
+
+ def format_dot(self, args):
+ dot = self.create_dot(args[0], args[1])
+ return (args[1]['name'], dot2tex(dot, docpreamble='\\usepackage[xetex]{hyperref}', figonly=True,
+ format='pgf', autosize=True))
+
+ def init_dot(self, pkgs, limit):
+ from dot2tex import dot2tex
+
+ if limit:
+ packages = {pkg: pkgs[pkg] for pkg in limit}
+ else:
+ packages = pkgs
+
+ with Pool() as pool:
+ dots = pool.map(self.format_dot, [
+ (packages, pkg) for pkg in packages.values()])
+ self.__dot = {}
+ for pkg, dot in dots:
+ self.__dot[pkg] = dot
+
+ def setup_env(self, loader):
+ env = super().setup_env(loader)
+ env.globals['init_dot'] = self.init_dot
+ env.globals['dot'] = self.dot
+ return env
+
+ def finalize(self, document, output):
+ base = output.removesuffix(self.output_suffix)
+ tmp = super().finalize(document, base + self.input_suffix)
+ env = environ.copy()
+ env['max_print_line'] = '1000'
+ output_directory = path.dirname(tmp) or '.'
+ aux_hash = None
+ print(f'generating {output}...')
+ while True:
+ ret = subprocess.run(['xelatex', '-halt-on-error', path.basename(tmp)], env=env,
+ capture_output=not self.verbose, text=True, cwd=path.realpath(output_directory))
+ if ret.returncode != 0:
+ if not self.verbose:
+ print(ret.stdout + ret.stderr)
+ raise ReportException('Failed to execute xelatex')
+
+ new_aux_hash = hashlib.sha256(
+ open(base + '.aux', 'rb').read()).hexdigest()
+ if aux_hash == new_aux_hash:
+ break
+ aux_hash = new_aux_hash
+
+
+class SbomGenerator(Generator):
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+ self.output_suffix = '.json'
+
+ def setup_env(self):
+ env = {}
+ for tmp in self._env:
+ tmp = tmp.split('=', 2)
+ env[tmp[0]] = tmp[1]
+ return env
+
+ def run(self):
+ data = self.load(self._data)
+ document = self.build(data)
+ return self.finalize(document, self.output_name())
+
+
+class SpdxSbomGenerator(SbomGenerator):
+
+ PYPI_RELEASE = re.compile(
+ 'https://files.pythonhosted.org/packages/source/./([^/]*)/.*-([^-]*).(tar\..*|zip)')
+ GITHUB_TAG = re.compile(
+ 'https://github.com/([^/]*)/([^/]*)/archive/(refs/tags/)?([^/]*).tar.gz')
+ GITHUB_RELEASE = re.compile(
+ 'https://github.com/([^/]*)/([^/]*)/releases/download/([^/]*)/.*')
+ CARGO_RELEASE = re.compile(
+ 'https://crates.io/api/v1/crates/([^/]*)/([^/]*)/download')
+
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+ self._open_mode = 'wb'
+ self.format = 'spdx'
+
+ def write(self, file, document):
+ document.to_json(file, sort_keys=True, indent=2)
+
+ def add_packages(self, pkgs):
+ for pkg in pkgs:
+ if pkg not in self.spdx_pkgs and pkg != self.current_pkg:
+ self.pkgs.add(pkg)
+
+ def build_package(self, document, pkg):
+ pkg_name = pkg['name']
+ if pkg_name in self.spdx_pkgs:
+ return None
+
+ if 'source-packages' in pkg:
+ self_pkg = pkg['source-packages'].pop(0)
+ assert self_pkg['name'] == pkg_name
+ pkg.update(self_pkg)
+
+ self.add_packages(pkg.get('builddeps', []))
+ self.add_packages(pkg.get('rundeps', []))
+
+ spdx_pkg = spdx.SPDXPackage()
+ spdx_pkg.name = pkg_name
+ spdx_pkg.SPDXID = 'SPDXRef-' + pkg_name
+ if 'version' in pkg:
+ spdx_pkg.versionInfo = pkg['version']
+ if 'url' in pkg:
+ spdx_pkg.downloadLocation = pkg['url'][0]
+ if 'licenses' in pkg:
+ spdx_pkg.licenseDeclared = pkg['licenses']
+ if 'source' in pkg:
+ spdx_pkg.packageFileName = path.basename(pkg['source'])
+ checksum = spdx.SPDXChecksum()
+ checksum.algorithm = 'MD5'
+ checksum.checksumValue = pkg['md5'].split(maxsplit=1)[0]
+ spdx_pkg.checksums.append(checksum)
+
+ document.packages.append(spdx_pkg)
+ self.spdx_pkgs[pkg_name] = spdx_pkg
+
+ for source in pkg.get('source-packages', []):
+ spdx_source = self.build_package(document, source)
+ if spdx_source:
+ document.add_relationship(
+ spdx_source, 'BUILD_DEPENDENCY_OF', spdx_pkg)
+
+ return spdx_pkg
+
+ def add_dependencies(self, document, pkg, spdx_pkg):
+ for dep in pkg.get('builddeps', []):
+ if dep not in self.spdx_pkgs:
+ raise ReportException(f'Missing packge "{dep}"')
+ spdx_dep = self.spdx_pkgs[dep]
+ if dep in pkg.get('rundeps', []):
+ document.add_relationship(spdx_dep, 'DEPENDENCY_OF', spdx_pkg)
+ else:
+ document.add_relationship(
+ spdx_dep, 'BUILD_DEPENDENCY_OF', spdx_pkg)
+ for dep in pkg.get('rundeps', []):
+ if dep not in self.spdx_pkgs:
+ raise ReportException(f'Missing packge "{dep}"')
+ spdx_dep = self.spdx_pkgs[dep]
+ if dep not in pkg.get('builddeps', []):
+ document.add_relationship(
+ spdx_dep, 'RUNTIME_DEPENDENCY_OF', spdx_pkg)
+ for dep in pkg.get('pkgs', []):
+ if dep not in self.spdx_pkgs:
+ raise ReportException(f'Missing packge "{dep}"')
+ spdx_dep = self.spdx_pkgs[dep]
+ document.add_relationship(spdx_pkg, 'CONTAINS', spdx_dep)
+
+ def generate_purls(self, pkg):
+ purls = []
+ for url in pkg.get('url', []):
+ if m := self.PYPI_RELEASE.match(url):
+ if m.group(2) != pkg['version']:
+ ReportException(
+ f'{pkg["name"]}: version mismatch: pkg: {pkg["version"]} url: {m.group(2)}')
+ purls.append(f'pkg:pypi/{m.group(1)}@{m.group(2)}')
+
+ elif m := self.GITHUB_TAG.match(url):
+ purls.append(
+ f'pkg:github/{m.group(1)}/{m.group(2)}@{m.group(4)}')
+
+ elif m := self.GITHUB_RELEASE.match(url):
+ purls.append(
+ f'pkg:github/{m.group(1)}/{m.group(2)}@{m.group(3)}')
+
+ elif m := self.CARGO_RELEASE.match(url):
+ purls.append(f'pkg:cargo/{m.group(1)}@{m.group(2)}')
+
+ else:
+ if url.startswith('https://files.pythonhosted.org') or url.startswith('https://github.com') or url.startswith('https://crates.io'):
+ raise ReportException(
+ f'{pkg["name"]}: url "{url}" should match purl pattern')
+
+ return purls
+
+ def import_pkg_spdx(self, pkg):
+ if 'spdx-sbom' not in pkg:
+ return (None, None, None)
+ src = pkg['spdx-sbom']
+ dst = path.join(self._output_dir, f'spdx-sbom-{pkg["name"]}.json')
+ copy(src, dst)
+ with open(dst, 'rb') as f:
+ doc = spdx.SPDXDocument.from_json(f)
+ f.seek(0)
+ sha1 = hashlib.file_digest(f, 'sha1')
+ return (doc, dst, sha1.hexdigest())
+
+ def add_external_refs(self, document, pkg, spdx_pkg):
+ purls = self.generate_purls(pkg)
+ for purl in purls:
+ ref = spdx.SPDXExternalReference()
+ ref.referenceCategory = 'PACKAGE-MANAGER'
+ ref.referenceType = 'purl'
+ ref.referenceLocator = purl
+ spdx_pkg.externalRefs.append(ref)
+
+ if 'git-commit' in pkg:
+ ref = spdx.SPDXExternalReference()
+ ref.referenceCategory = 'PERSISTENT-ID'
+ ref.referenceType = 'gitoid'
+ ref.referenceLocator = f'gitoid:commit:sha1:{pkg["git-commit"]}'
+ spdx_pkg.externalRefs.append(ref)
+
+ pkg_doc, pkg_doc_path, pkg_doc_sha1 = self.import_pkg_spdx(pkg)
+ if pkg_doc:
+ ref = spdx.SPDXExternalDocumentRef()
+ ref.externalDocumentId = "DocumentRef-package-" + pkg_doc.name
+ ref.spdxDocument = pkg_doc.documentNamespace
+ ref.checksum.algorithm = "SHA1"
+ ref.checksum.checksumValue = pkg_doc_sha1
+ document.externalDocumentRefs.append(ref)
+ document.add_relationship(
+ ref.externalDocumentId, 'AMENDS', spdx_pkg)
+
+ def build(self, data):
+ creationInfo = spdx.SPDXCreationInfo()
+ creationInfo.created = datetime.now().isoformat()
+ creationInfo.creators = [data['bsp']['vendor']]
+ document = spdx.SPDXDocument()
+ document.creationInfo = creationInfo
+ document.name = data['bsp']['project']
+ namespace_uuid = uuid.uuid5(uuid.NAMESPACE_DNS, 'sbom.ptxdist.org')
+ document.documentNamespace = f'http://spdx.org/spdxdoc/{document.name}/{namespace_uuid}'
+
+ self.pkgs = set()
+ self.current_pkg = None
+ self.spdx_pkgs = {}
+
+ env = self.setup_env()
+ if target := env.get('TARGET'):
+ self.add_packages([target])
+ else:
+ self.add_packages(data['images'].keys())
+ self.add_packages(data['packages'].keys())
+
+ while self.pkgs:
+ self.current_pkg = self.pkgs.pop()
+ if self.current_pkg in data['images']:
+ self.add_packages(
+ set(data['images'][self.current_pkg].get('pkgs', ())))
+ self.build_package(document, data['images'][self.current_pkg])
+ else:
+ self.build_package(
+ document, data['packages'][self.current_pkg])
+
+ for pkg_name in self.spdx_pkgs:
+ if pkg_name in data['packages']:
+ pkg = data['packages'][pkg_name]
+ elif pkg_name in data['images']:
+ pkg = data['images'][pkg_name]
+ else:
+ # source packages are not globaly listed and have no dependencies
+ continue
+
+ spdx_pkg = self.spdx_pkgs[pkg_name]
+ self.add_dependencies(document, pkg, spdx_pkg)
+ self.add_external_refs(document, pkg, spdx_pkg)
+
+ if target:
+ document.add_relationship(
+ document, 'DESCRIBES', self.spdx_pkgs[target])
+
+ return document
+
+
+def main():
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-t', '--template', help='Template to use')
+ parser.add_argument(
+ '-p', '--path', help='Colon separated search path that contain the templates')
+ parser.add_argument('-o', '--output', help='Output file name')
+ parser.add_argument('-d', '--output-dir',
+ help='Output directory for additional')
+ parser.add_argument('-i', '--input', help='Input file name')
+ parser.add_argument(
+ '-e', '--env', help='Extra variables for the jinja2 env', action='append')
+ parser.add_argument('-g', '--generator',
+ help='Generator to use (plain, latex)')
+ parser.add_argument('-v', '--verbose', action='store_true')
+
+ args = parser.parse_args()
+
+ args.path = [path.abspath(path.join(d, args.template))
+ for d in args.path.split(':')] if args.path else ['']
+
+ if not args.generator and args.template in ('spdx-sbom'):
+ args.generator = args.template
+
+ if not args.output_dir and args.output:
+ args.output_dir = path.dirname(args.output)
+
+ if not args.generator:
+ file = find_file(args.path, 'generator')
+ if file:
+ args.generator = open(file).read().strip()
+ else:
+ args.generator = 'latex'
+
+ if args.generator == 'plain':
+ generator = Generator(args)
+ elif args.generator == 'latex':
+ generator = LatexGenerator(args)
+ elif args.generator == 'spdx-sbom':
+ generator = SpdxSbomGenerator(args)
+ else:
+ raise ReportException(f'Invalid generator type: "{args.generator}"')
+
+ generator.run()
+
+
+if __name__ == "__main__":
+ try:
+ main()
+ except ReportException as e:
+ print(f'Report Generation failed: {e.args[0]}')
+ exit(1)
diff --git a/scripts/git-ptx-patches b/scripts/git-ptx-patches
index b52817399..b27dbe790 100755
--- a/scripts/git-ptx-patches
+++ b/scripts/git-ptx-patches
@@ -33,7 +33,7 @@ if [ ! -L .ptxdist/series ]; then
fi
remove_old=no
-tag=base
+tag=
numbered_patches=true
all_tags=false
@@ -64,7 +64,6 @@ while getopts "aft:n" opt; do
;;
t)
tag="${OPTARG}"
- range="${tag}"
;;
n)
numbered_patches=false
@@ -73,7 +72,45 @@ while getopts "aft:n" opt; do
done
shift $((${OPTIND} - 1))
-tag2=$(grep "#tag:" .ptxdist/series | awk "/#tag:${tag}/{if (getline) print \$1}" | sed 's,#tag:,,')
+
+tags=( $(sed -n 's/^#tag:\([^ ]*\) .*/\1/p' .ptxdist/series 2>/dev/null) )
+
+# default to the first tag if none was specified,
+# use 'base' if there is no tag at all
+if [ -z "${tag}" ]; then
+ tag="${tags[0]}"
+fi
+if [ -z "${tag}" ]; then
+ tag="base"
+fi
+
+# only look for the second tag if there are tags in the series
+# otherwise assume all commits should be exported
+if [ ${#tags[*]} -gt 0 ]; then
+ tag2=$(awk -F "[ :]" "
+/^#tag:/ {
+ if (state == 1) {
+ print \$2
+ state=2
+ }
+}
+/^#tag:${tag}( |\$)/ {
+ state=1
+}
+END {
+ if (!state)
+ exit 1
+}" < .ptxdist/series)
+
+ if [ $? -ne 0 ]; then
+ echo "Failed to find tag '${tag}' in the series"
+ exit 1
+ fi
+else
+ tags=( "${tag}" )
+ tag2=""
+fi
+
range="${tag}..${tag2}"
if "${all_tags}" ; then
@@ -84,7 +121,7 @@ if "${all_tags}" ; then
if ! "${numbered_patches}"; then
args[${#args[*]}]="-n"
fi
- for tag in $(sed -n 's/^#tag:\([^ ]*\) .*/\1/p' .ptxdist/series .ptxdist/series.append); do
+ for tag in "${tags[@]}"; do
echo "Updating patches for '${tag}'..."
"$0" "${args[@]}" -t "${tag}" || break
echo
@@ -167,7 +204,6 @@ fi
GIT_EXTRA_ARGS="$GIT_EXTRA_ARGS --summary --stat=80"
-cat .ptxdist/series.0 > .ptxdist/series
${GIT} format-patch -N $GIT_EXTRA_ARGS ${tagopt} -o .ptxdist/patches/ ${range} | while read patch; do
if "$numbered_patches"; then
patchname="${patch#.ptxdist/patches/}"
@@ -178,12 +214,18 @@ ${GIT} format-patch -N $GIT_EXTRA_ARGS ${tagopt} -o .ptxdist/patches/ ${range} |
echo "$patchname"
done > .ptxdist/series.auto
-cat .ptxdist/series.auto >> .ptxdist/series
-cat .ptxdist/series.1 >> .ptxdist/series
+cat .ptxdist/series.0 .ptxdist/series.auto .ptxdist/series.1 > .ptxdist/series
cat .ptxdist/series | _md5sum >> .ptxdist/series
# The first line of the patch is 'From <some-git-hash> ...'
# remove it to avoid unnecessary changes in the patch files.
+while read patch para; do
+ # There are no comments or empty lines in series.auto, so no need to
+ # handle these. Also be a bit cautious to only remove lines matching
+ # "^From ".
+ sed -i '1{/^From /d}' ".ptxdist/patches/$patch"
+done < .ptxdist/series.auto
+
find .ptxdist/patches/ ! -type d | sed -e 's,^.ptxdist/patches/,,' | \
while read patch para; do
case "$patch" in
@@ -191,14 +233,11 @@ while read patch para; do
*) ;;
esac
if grep -q "$patch" .ptxdist/series.auto; then
- p=".ptxdist/patches/$patch"
- tail -n+2 "$p" > ".$patch.ptx-patches"
- mv ".$patch.ptx-patches" "$p"
+ # ok, this is one of the patches we just touched
+ :
+ elif grep -q "$patch" .ptxdist/series.{0,1}; then
+ echo "Base patch \"$patch\"!"
else
- if grep -q "$patch" .ptxdist/series.{0,1}; then
- echo "Base patch \"$patch\"!"
- else
- echo "Old patch \"$patch\"!"
- fi
+ echo "Old patch \"$patch\"!"
fi
done | sort
diff --git a/scripts/git-ptx-refresh-tags-editor b/scripts/git-ptx-refresh-tags-editor
index fff5d0d3e..0177ad3a0 100755
--- a/scripts/git-ptx-refresh-tags-editor
+++ b/scripts/git-ptx-refresh-tags-editor
@@ -26,7 +26,7 @@ push_tags() {
filter_rebase() {
file="${1}"
- tmpfile="$(tempfile -d "$(dirname "${file}")" -p "$(basename ${file}).")"
+ tmpfile="$(mktemp "${file}.XXXXX")"
tags=
cat "${file}" | while read cmd commitish subject; do
case "${cmd}" in
@@ -50,10 +50,7 @@ filter_rebase() {
mv "${tmpfile}" "${file}"
}
-# only do something when rebasing
-if [ "${GIT_REFLOG_ACTION}" = "rebase" ]; then
- filter_rebase "${1}"
-fi
+filter_rebase "${1}"
# find the editor outside the local repository
editor="$(cd / && git var GIT_EDITOR)"
diff --git a/scripts/install_copy_toolchain.sh b/scripts/install_copy_toolchain.sh
index 7c346ff9d..7c30668cf 100755
--- a/scripts/install_copy_toolchain.sh
+++ b/scripts/install_copy_toolchain.sh
@@ -46,19 +46,22 @@ ptxd_split_lib_prefix_sysroot_eval() {
lib_dir="${lib_path%/${lib}}" # abs path to that lib
# try to identify sysroot part of that path
- for prefix in {/usr,}/lib{64,32,}{/tls,/gconv,} ""; do
+ for prefix in {/usr,}/lib{64,32,}{/lp64d,}{/tls,/gconv,} ""; do
tmp="${lib_dir%${prefix}}"
if test "${lib_dir}" != "${tmp}"; then
break
fi
done
sysroot="${lib_dir%${prefix}}"
+ orig_prefix="${prefix}"
tmp="${prefix#/usr}"
if [ "${tmp}" == "${prefix}" ]; then
prefix="/usr${prefix}"
fi
+ prefix="${prefix/lib64\/lp64d/lib}"
+ prefix="${prefix/lib64/lib}"
- echo "${pre}sysroot=\"${sysroot}\" ${pre}prefix=\"${prefix}\""
+ echo "${pre}sysroot=\"${sysroot}\" ${pre}prefix=\"${prefix}\" ${pre}orig_prefix=\"${orig_prefix}\""
}
@@ -80,7 +83,7 @@ ptxd_split_lib_prefix_sysroot_eval() {
# libs mentioned there
#
ptxd_install_toolchain_lib() {
- local lib_path lib lib_dir sysroot prefix script_lib tmp dir v_full lib_v_major
+ local lib_path lib lib_dir sysroot prefix orig_prefix script_lib tmp dir v_full lib_v_major
local packet dest strip lnk lnk_path lnk_prefix lnk_sysroot perm
eval "${@}"
@@ -94,6 +97,11 @@ ptxd_install_toolchain_lib() {
# if the user has given us a $dest use it
prefix="${dest:-${prefix}}"
+ if [[ "${orig_prefix}" =~ ^/lib64 ]] && [ "${lib}" = "libc.so.6" ]; then
+ local rel_lib="$(ptxd_abs2rel "$(dirname "${orig_prefix}")" /lib)"
+ echo "ptxd_install_link \"${rel_lib}\" \"${orig_prefix}\"" >> "${STATEDIR}/${packet}.cmds"
+ echo "ptxd_install_link \"${rel_lib}\" \"/usr${orig_prefix}\"" >> "${STATEDIR}/${packet}.cmds"
+ fi
# do sth. with that found lib, action depends on file type (link or regular)
if test -h "${lib_path}"; then # link
echo "link - ${lib_path}"
@@ -116,11 +124,16 @@ ptxd_install_toolchain_lib() {
eval $(ptxd_split_lib_prefix_sysroot_eval "${lnk_path}" lnk)
lnk_prefix="${dest:-${lnk_prefix}}"
- if test -n "${prefix}"; then
- lnk_prefix="$(ptxd_abs2rel "${prefix}" "${lnk_prefix}")"
- lnk_prefix="${lnk_prefix}${lnk_prefix:+/}"
- # now remember that link for later
- echo "ptxd_install_link \"${lnk_prefix}${lnk}\" \"${prefix}/${lib}\"" >> "${STATEDIR}/${packet}.cmds"
+ # if the file name of the link target ist the same then skip creating
+ # the link to avoid a cyclic symlink.
+ # Happens with crosstool-ng with some libraries.
+ if [ "${lib}" != "${lnk}" ]; then
+ if test -n "${prefix}"; then
+ lnk_prefix="$(ptxd_abs2rel "${prefix}" "${lnk_prefix}")"
+ lnk_prefix="${lnk_prefix}${lnk_prefix:+/}"
+ # now remember that link for later
+ echo "ptxd_install_link \"${lnk_prefix}${lnk}\" \"${prefix}/${lib}\"" >> "${STATEDIR}/${packet}.cmds"
+ fi
fi
lib_path="${lnk_path}"
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index c5f4b552b..09777fdfe 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -426,6 +426,7 @@ load:
if (def == S_DEF_USER) {
sym = sym_find(line + 2 + strlen(CONFIG_));
if (!sym) {
+ conf_warning("trying to assign nonexistent symbol %s", line + 2 + strlen(CONFIG_));
sym_add_change_count(1);
continue;
}
@@ -468,8 +469,10 @@ load:
* include/config/foo.h must be touched.
*/
conf_touch_dep(line + strlen(CONFIG_));
- else
+ else {
+ conf_warning("trying to assign nonexistent symbol %s", line + strlen(CONFIG_));
sym_add_change_count(1);
+ }
continue;
}
diff --git a/scripts/lib/ptxd_lib_code_signing.sh b/scripts/lib/ptxd_lib_code_signing.sh
index 3e1654bb3..bafdc1654 100644
--- a/scripts/lib/ptxd_lib_code_signing.sh
+++ b/scripts/lib/ptxd_lib_code_signing.sh
@@ -100,6 +100,51 @@ cs_define_role() {
export -f cs_define_role
#
+# cs_define_group <group>
+#
+# Define a new role group.
+#
+cs_define_group() {
+ local group="${1}"
+ cs_init_variables
+
+ mkdir -p "${keydir}/${group}.group" &&
+ rm -f "${keydir}/${group}.group/roles"
+}
+export -f cs_define_group
+
+#
+# cs_group_add_roles <group> <role> ... <role>
+#
+# Set the roles for a group
+#
+cs_group_add_roles() {
+ local group="${1}"
+ shift
+ cs_init_variables
+
+ local orig_IFS="${IFS}"
+ IFS="
+"
+ echo "${*}" >> "${keydir}/${group}.group/roles" &&
+ IFS=${orig_IFS}
+}
+export -f cs_group_add_roles
+
+#
+# cs_group_get_roles <group>
+#
+# Gets the roles of a group
+#
+cs_group_get_roles() {
+ local group="${1}"
+ cs_init_variables
+
+ cat "${keydir}/${group}.group/roles"
+}
+export -f cs_group_get_roles
+
+#
# cs_set_uri <role> <uri>
#
# Set the uri for a role
@@ -168,6 +213,7 @@ cs_import_cert_from_pem() {
"${openssl_keyopt[@]}" \
-in "${pem}" -inform pem -outform der |
softhsm_pkcs11_tool --type cert --write-object /dev/stdin --label "${role}"
+ check_pipe_status
}
export -f cs_import_cert_from_pem
@@ -243,7 +289,16 @@ cs_get_ca() {
local role="${1}"
cs_init_variables
- echo "${keydir}/${role}/ca.pem"
+ local ca="${keydir}/${role}/ca.pem"
+
+ if [ ! -d "${keydir}" ]; then
+ echo "ERROR_CA_NOT_YET_SET"
+ return 1
+ fi
+
+ if [ -e "${ca}" ]; then
+ echo "${ca}"
+ fi
}
export -f cs_get_ca
diff --git a/scripts/lib/ptxd_lib_dgen.awk b/scripts/lib/ptxd_lib_dgen.awk
index ecda96001..1e01939d8 100644
--- a/scripts/lib/ptxd_lib_dgen.awk
+++ b/scripts/lib/ptxd_lib_dgen.awk
@@ -26,6 +26,7 @@ BEGIN {
DEP = DIRTY == "true" ? "|" : ""
PTXDIST_HASHLIST = PTXDIST_TEMPDIR "/pkghash.list"
CHECK_LICENSES = 0
+ GENERATE_REPORTS = 0
}
#
@@ -51,6 +52,13 @@ FNR == 1 {
# will be set later, if makefile belongs to a pkg
is_pkg = "";
+
+ if (FILENAME ~ /.+\/rules\/.+\..+\.make/) {
+ this_pkg = gensub(/.+\/rules\/(.+)\..+\.make/, "\\1", 1, FILENAME)
+ this_aux = gensub(/.+\/rules\/.+\.(.+)\.make/, "\\1", 1, FILENAME)
+ is_pkg = this_pkg
+ pkg_to_aux_makefile[this_pkg][this_aux] = FILENAME;
+ }
}
/^/ {
@@ -169,7 +177,7 @@ $1 ~ /^PTX_MAP_._DEP/ {
base_PKG_to_pkg[this_PKG] = PKG_to_pkg[this_PKG];
if (dep_type == "R")
- PKG_to_R_DEP["BASE"] = PKG_to_B_DEP["BASE"] " " this_PKG;
+ PKG_to_R_DEP["BASE"] = PKG_to_R_DEP["BASE"] " " this_PKG;
else
PKG_to_B_DEP["BASE"] = PKG_to_B_DEP["BASE"] " " this_PKG;
@@ -218,7 +226,7 @@ $1 ~ /^PTX_MAP_._SYMBOLS/ {
function write_symbols(name, symbols) {
symbol_file = PTXDIST_TEMPDIR "/SYMBOLS_" name
n = split(symbols, symbol_array, " ")
- asort(symbol_array, symbol_array)
+ asort(symbol_array)
symbols = ""
last = ""
for (i = 1; i <= n; i++) {
@@ -246,6 +254,9 @@ $1 ~ /^PTXCONF_/ {
if (this_PKG == "PROJECT_CHECK_LICENSES")
CHECK_LICENSES = 1;
+ if (this_PKG == "PROJECT_GENERATE_REPORTS")
+ GENERATE_REPORTS = 1;
+
do {
if (this_PKG in PKG_to_pkg || this_PKG in virtual_pkg) {
PKG_HASHFILE = PTXDIST_TEMPDIR "/pkghash-" this_PKG;
@@ -273,16 +284,31 @@ $1 ~ /^PTXCONF_/ {
next;
}
+function pkg_aux_makefiles(this_pkg, l, ll, i) {
+ delete l;
+ if (this_pkg in pkg_to_aux_makefile) {
+ asorti(pkg_to_aux_makefile[this_pkg], ll);
+ for (i in ll) {
+ l[i] = pkg_to_aux_makefile[this_pkg][ll[i]]
+ }
+ }
+}
+
function write_vars_all(this_PKG) {
#
# include this rules file
#
if (this_PKG in PKG_to_makefile) {
- print "include " PKG_to_makefile[this_PKG] > DGEN_RULESFILES_MAKE;
- print this_PKG "_MAKEFILE = " PKG_to_makefile[this_PKG]> DGEN_DEPS_PRE;
+ print "include " PKG_to_makefile[this_PKG] > DGEN_RULESFILES_MAKE;
+ pkg_aux_makefiles(PKG_to_pkg[this_PKG], makefiles);
+ for (i in makefiles) {
+ print "include " makefiles[i] > DGEN_RULESFILES_MAKE;
+ print this_PKG "_EXTRA_MAKEFILES += " makefiles[i] > DGEN_DEPS_PRE;
+ }
+ print this_PKG "_MAKEFILE = " PKG_to_makefile[this_PKG] > DGEN_DEPS_PRE;
}
if (this_PKG in PKG_to_infile) {
- print this_PKG "_INFILE = " PKG_to_infile[this_PKG] > DGEN_DEPS_PRE;
+ print this_PKG "_INFILE = " PKG_to_infile[this_PKG] > DGEN_DEPS_PRE;
}
}
@@ -306,7 +332,7 @@ function write_maps(this_PKG, dep_type) {
}
}
n = split(this_PKG_DEP, this_DEP_array, " ");
- asort(this_DEP_array, this_DEP_array);
+ asort(this_DEP_array);
this_PKG_dep = ""
this_PKG_DEP = ""
last = ""
@@ -337,7 +363,7 @@ function write_maps(this_PKG, dep_type) {
print "PTX_MAP_" dep_type "_dep_" this_PKG "=" this_PKG_dep > MAP_ALL_MAKE;
}
-function pkg_all_deps(this_PKG, dep_type, n, this_PKG_dep, this_DEP_array) {
+function pkg_all_deps(this_PKG, dep_type, n, i, this_PKG_dep, this_DEP_array) {
if (this_PKG in PKG_to_dep_all)
return PKG_to_dep_all[this_PKG];
@@ -346,7 +372,7 @@ function pkg_all_deps(this_PKG, dep_type, n, this_PKG_dep, this_DEP_array) {
for (i = 1; i <= n; i++)
this_PKG_dep = this_PKG_dep " " PKG_to_pkg[this_DEP_array[i]] " " pkg_all_deps(this_DEP_array[i], dep_type)
n = split(this_PKG_dep, this_DEP_array, " ");
- asort(this_DEP_array, this_DEP_array);
+ asort(this_DEP_array);
this_PKG_dep = ""
last = ""
for (i = 1; i <= n; i++) {
@@ -369,7 +395,7 @@ function write_all_deps(dep_type, PKG_to_dep_all) {
}
}
-function write_vars_pkg_all(this_PKG, this_pkg, prefix) {
+function write_vars_pkg_all(this_PKG, this_pkg, prefix, dir_prefix) {
#
# post install hooks
#
@@ -383,30 +409,51 @@ function write_vars_pkg_all(this_PKG, this_pkg, prefix) {
this_devpkg = "$(" this_PKG ")-$(PTXCONF_ARCH_STRING)-$(" this_PKG "_CFGHASH)-dev.tar.gz"
#
- # define ${PKG}_PKGDIR, ${PKG}_DEVPKG & ${PKG}_SOURCES
+ # define ${PKG}_PKGDIR, ${PKG}_DEVPKG & ${PKG}_PARTS
#
print this_PKG "_PKGDIR = $(PKGDIR)/" prefix "$(" this_PKG ")" > DGEN_DEPS_PRE;
print this_PKG "_DEVPKG = " prefix this_devpkg > DGEN_DEPS_PRE;
- print this_PKG "_SOURCES = $(" this_PKG "_SOURCE)" > DGEN_DEPS_PRE
-
- target_PKG = gensub(/^HOST_|^CROSS_/, "", 1, this_PKG);
- PREFIX = gensub(/^(HOST_|CROSS_).*/, "\\1", 1, this_PKG);
+ print this_PKG "_PARTS = " this_PKG > DGEN_DEPS_PRE;
+
+ if (this_PKG ~ /^HOST_SYSTEM_PYTHON3_/) {
+ target_PKG = gensub(/^HOST_SYSTEM_/, "", 1, this_PKG);
+ PREFIX = "HOST_"
+ dir_prefix = "system-"
+ if (!(target_PKG in PKG_to_pkg))
+ target_PKG = "HOST_" target_PKG
+ } else {
+ target_PKG = gensub(/^HOST_|^CROSS_/, "", 1, this_PKG);
+ PREFIX = gensub(/^(HOST_|CROSS_).*/, "\\1", 1, this_PKG);
+ }
# define default ${PKG}, ${PKG}_SOURCE, ${PKG}_DIR
- if ((prefix != "") && (target_PKG in PKG_to_pkg)) {
- print this_PKG " = $(" target_PKG ")" > DGEN_DEPS_PRE;
+ if ((PREFIX != this_PKG) && (target_PKG in PKG_to_pkg)) {
+ print this_PKG " = " dir_prefix "$(" target_PKG ")" > DGEN_DEPS_PRE;
print this_PKG "_VERSION = $(" target_PKG "_VERSION)" > DGEN_DEPS_PRE;
print this_PKG "_MD5 = $(" target_PKG "_MD5)" > DGEN_DEPS_PRE;
print this_PKG "_SOURCE = $(" target_PKG "_SOURCE)" > DGEN_DEPS_PRE;
print this_PKG "_URL = $(" target_PKG "_URL)" > DGEN_DEPS_PRE;
print this_PKG "_DIR = $(addprefix $(" PREFIX \
- "BUILDDIR)/,$(" target_PKG "))" > DGEN_DEPS_PRE;
+ "BUILDDIR)/,$(" this_PKG "))" > DGEN_DEPS_PRE;
+ print this_PKG "_SUBDIR = $(" target_PKG "_SUBDIR)" > DGEN_DEPS_PRE;
+ print this_PKG "_STRIP_LEVEL = $(" target_PKG \
+ "_STRIP_LEVEL)" > DGEN_DEPS_PRE;
print this_PKG "_LICENSE = $(" target_PKG "_LICENSE)" > DGEN_DEPS_PRE;
print this_PKG "_LICENSE_FILES = $(" target_PKG \
"_LICENSE_FILES)" > DGEN_DEPS_PRE;
}
}
+function write_sources(this_PKG) {
+ print "ifneq ($(" this_PKG "_SOURCES),)" > DGEN_DEPS_POST;
+ print this_PKG "_PARTS := $(" this_PKG "_PARTS) $(foreach source,$(" this_PKG "_SOURCES),$($(source)))" > DGEN_DEPS_POST;
+ print this_PKG "_SOURCES := $(" this_PKG "_SOURCE) $(" this_PKG "_SOURCES)" > DGEN_DEPS_POST;
+ print "else" > DGEN_DEPS_POST;
+ print this_PKG "_SOURCES += $(filter-out $(if $(" this_PKG "_DIR),$(" this_PKG "_DIR)%,)," \
+ "$(foreach part,$(" this_PKG "_PARTS),$($(part)_SOURCE)))" > DGEN_DEPS_POST;
+ print "endif" > DGEN_DEPS_POST;
+}
+
function write_deps_pkg_all(this_PKG, this_pkg) {
#
# .get rule
@@ -422,15 +469,21 @@ function write_deps_pkg_all(this_PKG, this_pkg) {
}
function write_deps_pkg_active_cfghash(this_PKG, this_pkg) {
+ this_pkg_prefix = gensub(/^(host-|cross-|image-|).*/, "\\1", 1, this_pkg)
+
if (this_PKG in PKG_to_infile)
print "RULES: " this_PKG " " PKG_to_infile[this_PKG] > PTXDIST_HASHLIST;
if (this_PKG in PKG_to_makefile)
print "RULES: " this_PKG " " PKG_to_makefile[this_PKG] > PTXDIST_HASHLIST;
+ pkg_aux_makefiles(PKG_to_pkg[this_PKG], makefiles);
+ for (i in makefiles)
+ print "RULES: " this_PKG " " makefiles[i] > PTXDIST_HASHLIST;
target_PKG = gensub(/^HOST_|^CROSS_/, "", 1, this_PKG);
if (prefix != "" && target_PKG in active_PKG_to_pkg)
print "ifneq ($(" this_PKG "_SOURCE),$(" target_PKG "_SOURCE))" > DGEN_DEPS_POST;
- print "$(if $(" this_PKG "_SOURCE),$(eval $(" this_PKG "_SOURCE) := " this_PKG "))" > DGEN_DEPS_POST;
+ print "$(foreach part,$(" this_PKG "_PARTS), $(eval " \
+ "$(if $($(part)_SOURCE),$(eval $($(part)_SOURCE) := $(part)))))" > DGEN_DEPS_POST;
if (prefix != "" && target_PKG in active_PKG_to_pkg)
print "endif" > DGEN_DEPS_POST;
@@ -450,8 +503,7 @@ function write_deps_pkg_active_cfghash(this_PKG, this_pkg) {
print "endif" > DGEN_DEPS_POST;
print "ifneq ($(" this_PKG "_SOURCE),)" > DGEN_DEPS_POST;
print "ifdef PTXDIST_SETUP_ONCE" > DGEN_DEPS_POST;
- print "_tmp :=$(foreach source, $(" this_PKG "_SOURCES),$($($(source))_MD5) $(notdir $(source)))" > DGEN_DEPS_POST;
- print "$(file >>" PTXDIST_TEMPDIR "/pkghash-" this_PKG ",$(_tmp))" > DGEN_DEPS_POST;
+ print "_tmp :=$(foreach part, $(" this_PKG "_PARTS),$($(part)_MD5) $(notdir $($(part)_SOURCE)))" > DGEN_DEPS_POST;
print "$(file >>" PTXDIST_TEMPDIR "/pkghash-" this_PKG "_EXTRACT,$(_tmp))" > DGEN_DEPS_POST;
print "endif" > DGEN_DEPS_POST;
print "endif" > DGEN_DEPS_POST;
@@ -471,9 +523,31 @@ function write_deps_pkg_active_cfghash(this_PKG, this_pkg) {
print "$(" this_PKG "_IMAGE): " "$(" this_PKG "_CONFIG)" > DGEN_DEPS_POST;
print "endif" > DGEN_DEPS_POST;
print "endif" > DGEN_DEPS_POST;
+ print "ifneq ($(wildcard $(" this_PKG "_MESON_CROSS_FILE)),)" > DGEN_DEPS_POST;
+ print "PTXDIST_HASHLIST_DATA += CONFIG: " this_PKG " $(" this_PKG "_MESON_CROSS_FILE)\\n" > DGEN_DEPS_POST;
+ print "endif" > DGEN_DEPS_POST;
+ if (this_pkg_prefix == "image-") {
+ print "ifneq ($(" this_PKG "_PKGS),)" > DGEN_DEPS_POST;
+ print "$(file >>" PTXDIST_TEMPDIR "/pkghash-" this_PKG "," this_PKG "_PKGS = $(" this_PKG "_PKGS))" \
+ > DGEN_DEPS_POST;
+ print "endif" > DGEN_DEPS_POST;
+ print "ifneq ($(" this_PKG "_FILES),)" > DGEN_DEPS_POST;
+ print "$(file >>" PTXDIST_TEMPDIR "/pkghash-" this_PKG "," this_PKG "_FILES = $(" this_PKG "_FILES))" \
+ > DGEN_DEPS_POST;
+ print "endif" > DGEN_DEPS_POST;
+ }
print "endif" > DGEN_DEPS_POST;
}
+function write_deps_all_active(this_PKG, this_pkg, prefix) {
+ if (DIRTY != "true") {
+ print "$(STATEDIR)/" this_pkg ".report: " \
+ "$(STATEDIR)/" this_pkg ".$(" this_PKG "_CFGHASH).cfghash" > DGEN_DEPS_POST;
+ print "$(STATEDIR)/" this_pkg ".fast-report: " \
+ "$(STATEDIR)/" this_pkg ".$(" this_PKG "_CFGHASH).cfghash" > DGEN_DEPS_POST;
+ }
+}
+
function write_deps_pkg_active(this_PKG, this_pkg, prefix) {
#
# default deps
@@ -489,12 +563,11 @@ function write_deps_pkg_active(this_PKG, this_pkg, prefix) {
print "$(STATEDIR)/" this_pkg ".extract: | " "$(STATEDIR)/" this_pkg ".get" > DGEN_DEPS_POST;
print "$(STATEDIR)/" this_pkg ".extract.post: " "$(STATEDIR)/" this_pkg ".extract" > DGEN_DEPS_POST;
+ print "$(STATEDIR)/" this_pkg ".cargosync: " "$(STATEDIR)/" this_pkg ".extract.post" > DGEN_DEPS_POST;
print "$(STATEDIR)/" this_pkg ".prepare: " "$(STATEDIR)/" this_pkg ".extract.post" > DGEN_DEPS_POST;
if (DIRTY != "true") {
print "$(STATEDIR)/" this_pkg ".prepare: " \
"$(STATEDIR)/" this_pkg ".$(" this_PKG "_CFGHASH).cfghash" > DGEN_DEPS_POST;
- print "$(STATEDIR)/" this_pkg ".report: " \
- "$(STATEDIR)/" this_pkg ".$(" this_PKG "_CFGHASH).cfghash" > DGEN_DEPS_POST;
}
print "$(STATEDIR)/" this_pkg ".tags: " "$(STATEDIR)/" this_pkg ".prepare" > DGEN_DEPS_POST;
print "$(STATEDIR)/" this_pkg ".compile: " "$(STATEDIR)/" this_pkg ".prepare" > DGEN_DEPS_POST;
@@ -570,7 +643,7 @@ function write_deps_pkg_active(this_PKG, this_pkg, prefix) {
function write_deps_pkg_active_virtual(this_PKG, this_pkg, prefix) {
if (this_pkg ~ /^host-dummy-install-info$/)
return;
- if (this_pkg ~ /^host-pkg-config$/)
+ if (this_pkg ~ /^host-pkgconf$/)
return;
if (this_pkg ~ /^host-chrpath$/)
return;
@@ -603,6 +676,8 @@ function write_deps_pkg_active_image(this_PKG, this_pkg, prefix) {
print "$(" this_PKG "_IMAGE): " \
"$(STATEDIR)/" this_pkg ".$(" this_PKG "_CFGHASH).cfghash" > DGEN_DEPS_POST;
print "$(" this_PKG "_IMAGE): " "$(" this_PKG "_FILES)" > DGEN_DEPS_POST;
+ if (GENERATE_REPORTS)
+ print "$(" this_PKG "_IMAGE): $(STATEDIR)/" this_pkg ".reports" > DGEN_DEPS_POST
print "$(STATEDIR)/" this_pkg ".install.post: " "$(" this_PKG "_IMAGE)" > DGEN_DEPS_POST;
print "images: " "$(" this_PKG "_IMAGE)" > DGEN_DEPS_POST;
#
@@ -640,12 +715,15 @@ END {
this_pkg = PKG_to_pkg[this_PKG];
write_maps(this_PKG, "R")
write_maps(this_PKG, "B")
+ write_sources(this_PKG)
}
# extend pkghash files fist
for (this_PKG in active_PKG_to_pkg)
- write_deps_pkg_active_cfghash(this_PKG, this_pkg)
+ write_deps_pkg_active_cfghash(this_PKG, PKG_to_pkg[this_PKG])
print "ifdef PTXDIST_SETUP_ONCE" > DGEN_DEPS_POST;
+ for (this_PKG in PKG_to_pkg)
+ print "DEPS: " this_PKG " " PKG_to_B_DEP[this_PKG] > PTXDIST_HASHLIST
print "$(call ptx/force-shell, echo -e '$(PTXDIST_HASHLIST_DATA)' >> " PTXDIST_HASHLIST ")" > DGEN_DEPS_POST;
print "$(call ptx/force-sh, $(PTXDIST_LIB_DIR)/ptxd_make_pkghash.awk " PTXDIST_HASHLIST ")" > DGEN_DEPS_POST;
print "endif" > DGEN_DEPS_POST;
@@ -671,12 +749,19 @@ END {
write_all_deps("R")
write_all_deps("B")
print "PTX_PACKAGES_ALL := " all_pkg > DGEN_DEPS_PRE;
+ virtual_pkgs = ""
+ for (this_PKG in virtual_pkg) {
+ this_pkg = gensub("_", "-", "g", tolower(this_PKG));
+ virtual_pkgs = virtual_pkgs " " this_pkg
+ }
+ print "PTX_PACKAGES_VIRTUAL := " virtual_pkgs > DGEN_DEPS_PRE;
# for active pkgs
for (this_PKG in active_PKG_to_pkg) {
this_pkg = PKG_to_pkg[this_PKG];
this_pkg_prefix = gensub(/^(host-|cross-|image-|).*/, "\\1", 1, this_pkg)
+ write_deps_all_active(this_PKG, this_pkg, this_pkg_prefix)
if (this_pkg_prefix != "image-") {
write_deps_pkg_active(this_PKG, this_pkg, this_pkg_prefix)
write_deps_pkg_active_virtual(this_PKG, this_pkg, this_pkg_prefix)
diff --git a/scripts/lib/ptxd_lib_dopermissions.awk b/scripts/lib/ptxd_lib_dopermissions.awk
index 56e951b45..9ab45d497 100755
--- a/scripts/lib/ptxd_lib_dopermissions.awk
+++ b/scripts/lib/ptxd_lib_dopermissions.awk
@@ -7,14 +7,14 @@ BEGIN {
$1 ~ "[df]" {
printf("chmod %s '.%s'\n" \
- "chown %s.%s '.%s'\n", \
+ "chown %s:%s '.%s'\n", \
$5, $2, $3, $4, $2);
}
$1 ~ "n" {
printf("if [ ! \\( -b '.%s' -o -c '.%s' -o -p '.%s' \\) ]; then " \
" mknod -m %s '.%s' %s %s %s\n" \
- " chown %s.%s '.%s'\n" \
+ " chown %s:%s '.%s'\n" \
"fi\n", \
$2, $2, $2, $5, $2, $6, $7, $8, $3, $4, $2);
}
diff --git a/scripts/lib/ptxd_lib_icecc.sh b/scripts/lib/ptxd_lib_icecc.sh
index 98fdd8f42..0d566e6ad 100644
--- a/scripts/lib/ptxd_lib_icecc.sh
+++ b/scripts/lib/ptxd_lib_icecc.sh
@@ -8,10 +8,10 @@
#
# Check for defined icecc
-# Check for a usefull icecc version and setup the host environment
+# Check for a useful icecc version and setup the host environment
#
ptxd_lib_setup_host_icecc() {
- local icecc_dir="${sysroot_host}/lib/icecc"
+ local icecc_dir="${sysroot_host}/usr/lib/icecc"
if [ -z "${PTXDIST_ICECC}" ]; then
return
@@ -70,7 +70,7 @@ export -f ptxd_lib_setup_host_icecc
# Setup the host environment
#
ptxd_lib_setup_target_icecc() {
- local icecc_dir="${sysroot_host}/lib/icecc"
+ local icecc_dir="${sysroot_host}/usr/lib/icecc"
if [ -z "${PTXDIST_ICECC}" ]; then
return
diff --git a/scripts/lib/ptxd_lib_imx_hab.sh b/scripts/lib/ptxd_lib_imx_hab.sh
index d1e2aba99..fa5b3e2c1 100644
--- a/scripts/lib/ptxd_lib_imx_hab.sh
+++ b/scripts/lib/ptxd_lib_imx_hab.sh
@@ -9,12 +9,14 @@
#
# ptxd_make_imx_habv4_gen_table - generate the srk fuse file and srk table for i.MX HABv4
#
-# usage: ptxd_make_imx_habv4_gen_table <template> [<srk_count>]
+# usage: ptxd_make_imx_habv4_gen_table <role group>
+# ptxd_make_imx_habv4_gen_table <template> [<srk_count>]
#
+# role group: the group that specifies all roles to access the keys
# template: the role template to access the keys. Must contain a "%d" which is
# used as index
-# srk_count: the number of keys (keys with index 1..srk_count will be used),
-# defaults to 4
+# srk_count: only when using <template>: the number of keys (keys with index
+# 1..srk_count will be used), defaults to 4
#
# The output files are generated in the package build dir:
#
@@ -25,25 +27,46 @@
# This will contain the srk hash which must be written to the fuses
#
ptxd_make_imx_habv4_gen_table_impl() {
+ local group="${1}"
local template="${1}"
local srk_count="${2}"
local table_bin="${pkg_build_dir}/imx-srk-table.bin"
local srk_fuse_bin="${pkg_build_dir}/imx-srk-fuse.bin"
local -a certs
+ local i
- if [ -z "${srk_count}" ]; then
- srk_count=4
- fi
+ case "${template}" in
+ *%d*) # <template> [<srk_count>]
+ if [ -z "${srk_count}" ]; then
+ srk_count=4
+ fi
- if [ "${srk_count}" -gt 4 ]; then
- ptxd_bailout "HABv4 allows only 4 certificates"
- fi
+ if [ "${srk_count}" -gt 4 ]; then
+ ptxd_bailout "HABv4 allows only 4 certificates"
+ fi
- echo -e "generating $(basename ${table_bin}) and $(basename ${srk_fuse_bin})\n"
+ for i in $(seq ${srk_count}); do
+ certs[${#certs[*]}]="$(cs_get_ca "$(printf "${template}" ${i})")"
+ done
+ ;;
+
+ *) # <role group>
+ local -a roles=( $(cs_group_get_roles "${group}") )
+
+ if [ "${#roles[@]}" -eq 0 ]; then
+ ptxd_bailout "Failed to get roles for group '${group}'"
+ fi
- for i in $(seq ${srk_count}); do
- certs[${#certs[*]}]="$(cs_get_ca "$(printf "${template}" ${i})")"
- done
+ if [ "${#roles[@]}" -gt 4 ]; then
+ ptxd_bailout "HABv4 allows only 4 certificates"
+ fi
+
+ for i in "${roles[@]}"; do
+ certs[${#certs[*]}]="$(cs_get_ca "${i}")"
+ done
+ esac
+
+ echo -e "generating $(basename ${table_bin}) and $(basename ${srk_fuse_bin})\n"
local orig_IFS="${IFS}"
IFS=","
diff --git a/scripts/lib/ptxd_lib_kconfig.sh b/scripts/lib/ptxd_lib_kconfig.sh
index 6ffdbf144..73b5135eb 100644
--- a/scripts/lib/ptxd_lib_kconfig.sh
+++ b/scripts/lib/ptxd_lib_kconfig.sh
@@ -11,26 +11,27 @@
# migrate a config file
# look in PTX_MIGRATEDIR for a migration handler and call it
#
-# $1 part identifier ("ptx", "platform", "collection", "board", "user")
+# $1 part identifier ("ptx", "platform", "collection", "board", "setup")
#
ptxd_kconfig_migrate() {
local part="${1}"
- local assistent="${PTX_MIGRATEDIR}/migrate_${part}"
+ local config="${2-.config}"
+ local assistant="${PTX_MIGRATEDIR}/migrate_${part}"
- if [ \! -f "${assistent}" ]; then
+ if [ \! -f "${assistant}" ]; then
return 0
fi
- cp -- ".config" ".config.old" || return
- sed -f "${assistent}" ".config.old" > ".config"
+ cp -- "${config}" "${config}.old" || return
+ sed -f "${assistant}" "${config}.old" > "${config}"
retval=$?
if [ $retval -ne 0 ]; then
- ptxd_dialog_msgbox "error: error occured during migration"
+ ptxd_dialog_msgbox "error: error occurred during migration"
return ${retval}
fi
- if ! diff -u ".config.old" ".config" >/dev/null; then
+ if ! diff -u "${config}.old" "${config}" >/dev/null; then
ptxd_dialog_msgbox "info: successfully migrated '${file_dotconfig}'"
fi
@@ -40,7 +41,7 @@ export -f ptxd_kconfig_migrate
#
-# nomalize the path to a config file
+# normalize the path to a config file
#
# $file_dotconfig the absolute path to the config file
#
@@ -50,13 +51,16 @@ export -f ptxd_kconfig_migrate
# ${PTXDIST_LAYERS[X]}/${relative_file_dotconfig}
#
ptxd_normalize_config() {
- local normalized old
- normalized="$(readlink -f "${file_dotconfig}")"
- old="${normalized}"
+ local normalized relative old
+ old="$(readlink -f "${file_dotconfig}")"
+ relative="${old}"
for layer in "${PTXDIST_LAYERS[@]}"; do
- local tmp="${old/#$(readlink -f ${layer})\//${layer}/}"
- if [ "${tmp}" != "${old}" ]; then
- normalized="${tmp}"
+ local tmp="${old/#$(readlink -f ${layer})\//}"
+ # check the string length to get the shortest relative path
+ # this is necessary when a base layer is the parent directory
+ if [ "${tmp}" != "${old}" -a ${#tmp} -lt ${#relative} ]; then
+ relative="${tmp}"
+ normalized="${layer}/${tmp}"
fi
done
if [ "$(readlink -f "${normalized}")" != "${old}" ]; then
@@ -71,14 +75,8 @@ ptxd_normalize_config() {
"${file_dotconfig}" \
"must be located inside the BSP!"
fi
- for layer in "${PTXDIST_LAYERS[@]}"; do
- local relative="${normalized#${layer}/}"
- if [ "${relative}" != "${normalized}" ]; then
- relative_file_dotconfig="${relative}"
- fi
- done
+ relative_file_dotconfig="${relative}"
file_dotconfig="${normalized}"
-
}
export -f ptxd_normalize_config
@@ -253,9 +251,8 @@ ptxd_kconfig_validate_config_check() {
export -f ptxd_kconfig_validate_config_check
ptxd_kconfig_validate_config_next() {
- local layer
- for layer in "${@}"; do
- next="${layer}/${relative_config}"
+ local next
+ for next in "${@}"; do
if ! ptxd_kconfig_validate_config_check "${next}"; then
continue
fi
@@ -266,6 +263,15 @@ ptxd_kconfig_validate_config_next() {
}
export -f ptxd_kconfig_validate_config_next
+ptxd_kconfig_setup_layer_configs() {
+ if [ ${#kconfig_layer_configs[@]} -gt 0 ]; then
+ layer_configs=( "${kconfig_layer_configs[@]}" )
+ else
+ layer_configs=( "${PTXDIST_LAYERS[@]/%//${relative_config}}" )
+ fi
+}
+export -f ptxd_kconfig_setup_layer_configs
+
ptxd_kconfig_validate_config() {
local relative_config="${1}"
local relative_ref_config="${2}"
@@ -274,16 +280,15 @@ ptxd_kconfig_validate_config() {
local last next
local -a layers
+ ptxd_kconfig_setup_layer_configs
+
if [ "${mode}" = update ]; then
- layers=( "${PTXDIST_LAYERS[@]:1}" )
- else
- layers=( "${PTXDIST_LAYERS[@]}" )
+ layer_configs=( "${layer_configs[@]:1}" )
fi
- set -- "${layers[@]}";
+ set -- "${layer_configss[@]}";
while [ $# -gt 0 ]; do
- layer="${1}"
- last="${layer}/${relative_config}"
+ last="${1}"
shift
if ! ptxd_kconfig_validate_config_check "${last}"; then
continue
@@ -296,7 +301,7 @@ ptxd_kconfig_validate_config() {
relative_config="${relative_ref_config}"
unset relative_ref_config
ignore_last_diff=y
- set -- "${layer}" "${@}"
+ set -- "${last}" "${@}"
ptxd_kconfig_validate_config_next "${@}"
fi
if [ ! -e "${next}" ]; then
@@ -333,14 +338,16 @@ ptxd_kconfig_find_config() {
local mode="${1}"
local relative_config="${2}"
local relative_ref_config="${3}"
- local -a layers
- local tmp_config
+ local -a layer_configs
+ local tmp_config tmp
if [ "${mode}" = run -o "${mode}" = "update" ]; then
ptxd_kconfig_validate_config "${relative_config}" "${relative_ref_config}" || return
fi
- last_config="${PTXDIST_LAYERS[0]}/${relative_config}"
+ ptxd_kconfig_setup_layer_configs
+
+ last_config="${layer_configs[0]}"
if [ "$(readlink -f "${last_config}")" = /dev/null ]; then
# use the first existing config for 'run'
if [ "${mode}" = run ]; then
@@ -352,15 +359,12 @@ ptxd_kconfig_find_config() {
fi
if [ "${mode}" = update ]; then
- layers=( "${PTXDIST_LAYERS[@]:1}" )
+ layer_configs=( "${layer_configs[@]:1}" )
else
base_config="${last_config}"
- layers=( "${PTXDIST_LAYERS[@]}" )
fi
- for layer in "${layers[@]}"; do
- local tmp
- tmp="${layer}/${relative_config}"
+ for tmp in "${layer_configs[@]}"; do
if [ "$(readlink -f "${tmp}")" = /dev/null ]; then
continue
fi
@@ -537,24 +541,43 @@ ptxd_kconfig_sync_config() {
}
export -f ptxd_kconfig_sync_config
+ptxd_kconfig_run_conf() {
+ (
+ (
+ # swap stdout and stderr to filter out OPTION_DOES_NOT_EXIST warning
+ "${conf}" "${@}" 3>&1 1>&2 2>&3 | grep -s -v 'OPTION_DOES_NOT_EXIST'
+ # only fail if ${conf} failed
+ exit ${PIPESTATUS[0]}
+ ) 3>&1 1>&2 2>&3
+ )
+}
+export -f ptxd_kconfig_run_conf
ptxd_kconfig_update() {
local mode file_kconfig
+ if [ ${#kconfig_layer_configs[@]} -eq 1 ]; then
+ # Don't touch the last config. It's ptxdistrc.default
+ return
+ fi
if [ "${PTXDIST_LAYERS[0]}" = "${PTXDIST_TOPDIR}" ]; then
# nothing to do for PTXdist itself
return
fi
- if [ "${config}" != dep -a "${part}" != user -a "${part}" != board ]; then
+ if [ "${config}" != dep -a "${part}" != board ]; then
(
- # call ptxd_kconfig_update() recursively after removing the last layer
- PTXDIST_LAYERS=( "${PTXDIST_LAYERS[@]:1}" )
- local orig_IFS="${IFS}"
- IFS=:
- PTXDIST_PATH_LAYERS="${PTXDIST_LAYERS[*]}:"
- IFS="${orig_IFS}"
- PTX_KGEN_DIR="${PTX_KGEN_DIR}.base"
- confdir="${confdir}.base"
- ptxd_init_ptxdist_path &&
+ if [ ${#kconfig_layer_configs[@]} -eq 0 ]; then
+ # call ptxd_kconfig_update() recursively after removing the last layer
+ PTXDIST_LAYERS=( "${PTXDIST_LAYERS[@]:1}" )
+ local orig_IFS="${IFS}"
+ IFS=:
+ PTXDIST_PATH_LAYERS="${PTXDIST_LAYERS[*]}:"
+ IFS="${orig_IFS}"
+ PTX_KGEN_DIR="${PTX_KGEN_DIR}.base"
+ confdir="${confdir}.base"
+ ptxd_init_ptxdist_path
+ else
+ kconfig_layer_configs=( "${kconfig_layer_configs[@]:1}" )
+ fi
ptxd_kconfig_update
ret=$?
if [ "${ret}" -ne 42 ]; then
@@ -616,9 +639,13 @@ ptxd_kconfig_update() {
file_kconfig="${ptxd_reply}"
mode=single
;;
- user)
+ setup|localsetup)
file_kconfig="${PTXDIST_TOPDIR}/config/setup/Kconfig"
- mode=single
+ # only relevalnt for localsetup: automatically update the lower
+ # 'layers', which means ~/.ptxdist/ptxdistrc-<version>, with defaults
+ if [ "${kconfig_layer_configs[0]}" != "${file_dotconfig}" ]; then
+ config=defconfig
+ fi
;;
esac
@@ -650,7 +677,7 @@ ptxd_kconfig_update() {
"${relative_file_dotconfig}" "${file_dotconfig}" &&
if [ "${mode}" = check ]; then
- if ! "${conf}" --oldconfig "${file_kconfig}" < /dev/null; then
+ if ! ptxd_kconfig_run_conf --oldconfig "${file_kconfig}" < /dev/null; then
# error handling in ptxd_kconfig_sync_config()
:> .config
fi
@@ -666,15 +693,23 @@ ptxd_kconfig_update() {
if [ "${part}" = ptx -o "${part}" = platform ]; then
ptxd_kconfig_migrate "${part}" &&
# migrate touches the config, so update the timestamp
- stat -c '%y' ".config" > ".config.stamp"
+ if cmp --quiet ".config" ".config.old"; then
+ stat -c '%y' ".config" > ".config.stamp"
+ fi
fi &&
- "${conf}" --oldconfig "${file_kconfig}"
+ ptxd_kconfig_run_conf --oldconfig "${file_kconfig}"
+ ;;
+ defconfig)
+ ptxd_kconfig_run_conf --oldconfig "${file_kconfig}" < /dev/null > /dev/null
;;
all*config|randconfig)
- "${conf}" --${config} "${file_kconfig}"
+ if [ "$(realpath "${KCONFIG_ALLCONFIG}")" = "$(realpath "${file_dotconfig}")" ]; then
+ ptxd_kconfig_migrate "${part}" "${file_dotconfig}"
+ fi &&
+ ptxd_kconfig_run_conf --${config} "${file_kconfig}"
;;
dep)
- KCONFIG_ALLCONFIG=".config" "${conf}" \
+ KCONFIG_ALLCONFIG=".config" ptxd_kconfig_run_conf \
--writedepend --alldefconfig "${file_kconfig}" &&
mv -- ".config" "${PTXDIST_DGEN_DIR}/${part}config"
return
@@ -693,14 +728,14 @@ export -f ptxd_kconfig_update
#
# $1 what kind of config ("oldconfig", "menuconfig", "dep")
-# $2 part identifier ("ptx", "platform", "collection", "board", "user")
+# $2 part identifier ("ptx", "platform", "collection", "board", "setup")
# $... optional parameters
#
ptxd_kconfig() {
local config="${1}"
local part="${2}"
- local file_dotconfig
+ local file_dotconfig kconfig_layer_configs
case "${part}" in
ptx)
@@ -726,8 +761,13 @@ ptxd_kconfig() {
ptxd_in_path PTXDIST_PATH_LAYERS "config/boardsetup/Kconfig"
file_dotconfig="${PTXDIST_BOARDSETUP}"
;;
- user)
+ setup)
file_dotconfig="${PTXDIST_PTXRC}"
+ kconfig_layer_configs=( "${file_dotconfig}" ${PTXDIST_TOPDIR}/config/setup/ptxdistrc.default )
+ ;;
+ localsetup)
+ file_dotconfig="${PTXDIST_LOCAL_PTXRC}"
+ kconfig_layer_configs=( "${file_dotconfig}" "${PTXDIST_PTXRC}" ${PTXDIST_TOPDIR}/config/setup/ptxdistrc.default )
;;
*)
ptxd_bailout "invalid use of '${FUNCNAME} ${@}'"
@@ -748,7 +788,7 @@ ptxd_kconfig() {
fi
(
- if [ "${part}" != user -a "${part}" != board ]; then
+ if [ "${part}" != setup -a "${part}" != board ]; then
ptxd_normalize_config
fi &&
ptxd_kconfig_update
diff --git a/scripts/lib/ptxd_lib_kgen.sh b/scripts/lib/ptxd_lib_kgen.sh
index 1c2ec149e..41b791c65 100644
--- a/scripts/lib/ptxd_lib_kgen.sh
+++ b/scripts/lib/ptxd_lib_kgen.sh
@@ -93,7 +93,7 @@ EOF
local oldIFS="$IFS"
case "${kgen_part}" in
ptx|platform) IFS=: kgen_dirs=( ${PTXDIST_PATH_RULES} ${PTXDIST_PATH_PLATFORMS} ) ;;
- board|user|collection) return 0 ;;
+ board|setup|localsetup|collection) return 0 ;;
*) cat <<EOF
${PROMPT}error: '${FUNCNAME}' doesn't support '${part}', yet
diff --git a/scripts/lib/ptxd_lib_template.sh b/scripts/lib/ptxd_lib_template.sh
index a75c775a5..cc512faa1 100644
--- a/scripts/lib/ptxd_lib_template.sh
+++ b/scripts/lib/ptxd_lib_template.sh
@@ -106,8 +106,21 @@ ptxd_template_read_author() {
export -f ptxd_template_read_author
ptxd_template_read_section() {
- local section_name="${1:-project_specific}"
+ local section_name
+ if [ "${action}" = "host" -o "${action}" = "host-existing-target" ]; then
+ section_name="${1:-hosttools_noprompt}"
+ else
+ section_name="${1:-project_specific}"
+ fi
ptxd_template_read "enter package section" section "${section_name}"
+
+ export PROMPT=' prompt "'${package}'"
+ help
+ FIXME
+'
+ case "${section}" in
+ hosttools_noprompt*) PROMPT="";;
+ esac
}
export -f ptxd_template_read_section
@@ -117,7 +130,7 @@ ptxd_template_read_conf_tool() {
export conf_tool="autoconf"
else
supported=("autoconf" "cmake" "kconfig" "meson" "perl"
- "python3" )
+ "python3" "cargo" )
if [ -z "${AUTOCONF_CLASS}" ]; then
supported[${#supported[*]}]="qmake"
fi
@@ -146,6 +159,7 @@ ptxd_template_read_conf_tool() {
qmake)
CONF_OPT="\$(CROSS_QMAKE_OPT)"
SELECT="QT5"
+ ptxd_template_read_qt_version
;;
perl)
SELECT="PERL"
@@ -157,6 +171,8 @@ ptxd_template_read_conf_tool() {
SELECT="HOST_SYSTEM_PYTHON3"
fi
;;
+ cargo)
+ ;;
esac
if [ -n "${CONF_OPT}" ]; then
CONF_OPT=" \\
@@ -169,6 +185,15 @@ ptxd_template_read_conf_tool() {
}
export -f ptxd_template_read_conf_tool
+ptxd_template_read_qt_version() {
+ local qt_version
+ ptxd_template_read_options "Qt version" qt_version "Qt 5" "Qt 6"
+ export QT_VERSION="${qt_version#Qt }"
+ PACKAGE_PATH="${PACKAGE}_PATH := PATH=\$(PTXDIST_SYSROOT_CROSS)/bin/qt${qt_version}:\$(CROSS_PATH)
+"
+}
+export -f ptxd_template_read_qt_version
+
ptxd_template_read_basic() {
ptxd_template_read_name &&
ptxd_template_read_version
@@ -347,6 +372,7 @@ ptxd_template_new() {
export action="${1}"
export template="template-${action}"
export YEAR="$(date +%Y)"
+ export PACKAGE_PATH=""
local func="ptxd_template_new_${action//-/_}"
if ! declare -F | grep -q "${func}$"; then
@@ -385,6 +411,8 @@ export -a ptxd_template_help_list
ptxd_template_new_host() {
template=template-class
+ export DEFAULT=" default y if ALLYES
+"
ptxd_template_setup_class HOST_ &&
ptxd_template_read_remote_existing &&
ptxd_template_write_rules
@@ -412,22 +440,45 @@ export -f ptxd_template_new_cross
ptxd_template_help_list[${#ptxd_template_help_list[@]}]="cross"
ptxd_template_help_list[${#ptxd_template_help_list[@]}]="create cross development package"
-ptxd_template_new_python3() {
+ptxd_template_new_python3_all() {
+ export prefix="${action}"
+ export PREFIX=${prefix^^}
+ PREFIX=${PREFIX//-/_}
ptxd_template_read_basic &&
ptxd_template_read_author &&
ptxd_template_read_url \
- "\$(call ptx/mirror-pypi, ${package}, \$(PYTHON3_${PACKAGE}).\$(PYTHON3_${PACKAGE}_SUFFIX))" \
+ "\$(call ptx/mirror-pypi, ${package}, \$(${PREFIX}_${PACKAGE}).\$(${PREFIX}_${PACKAGE}_SUFFIX))" \
"tar.gz"
# turn URL of basedir into complete URL
[[ "$URL" != "\$(call ptx/mirror"* ]] \
&& URL="$URL/\$(${PACKAGE}).\$(${PACKAGE}_SUFFIX)"
- package_filename="python3-${package_filename}"
+ package_filename="${prefix}-${package_filename}"
ptxd_template_write_rules
}
+export -f ptxd_template_new_python3_all
+
+ptxd_template_new_python3() {
+ ptxd_template_new_python3_all
+}
export -f ptxd_template_new_python3
ptxd_template_help_list[${#ptxd_template_help_list[@]}]="python3"
ptxd_template_help_list[${#ptxd_template_help_list[@]}]="create python3 package for embedded target"
+ptxd_template_new_host_python3() {
+ ptxd_template_new_python3_all
+}
+export -f ptxd_template_new_host_python3
+ptxd_template_help_list[${#ptxd_template_help_list[@]}]="host-python3"
+ptxd_template_help_list[${#ptxd_template_help_list[@]}]="create python3 host package"
+
+ptxd_template_new_host_system_python3() {
+ template="template-host-python3"
+ ptxd_template_new_python3_all
+}
+export -f ptxd_template_new_host_system_python3
+ptxd_template_help_list[${#ptxd_template_help_list[@]}]="host-system-python3"
+ptxd_template_help_list[${#ptxd_template_help_list[@]}]="create system-python3 host package"
+
ptxd_template_new_src_autoconf_lib() {
ptxd_template_autoconf_base
}
@@ -457,7 +508,10 @@ ptxd_template_help_list[${#ptxd_template_help_list[@]}]="src-cmake-prog"
ptxd_template_help_list[${#ptxd_template_help_list[@]}]="create cmake binary"
ptxd_template_new_src_qmake_prog() {
- ptxd_template_src_base
+ ptxd_template_read_local &&
+ ptxd_template_read_qt_version &&
+ ptxd_template_write_rules &&
+ ptxd_template_write_src
}
export -f ptxd_template_new_src_qmake_prog
ptxd_template_help_list[${#ptxd_template_help_list[@]}]="src-qmake-prog"
@@ -512,6 +566,7 @@ ptxd_template_new_kernel() {
export class="kernel-"
ptxd_template_read_basic &&
ptxd_template_read "enter kernel image" image "zImage"
+ ptxd_template_read "enter device-tree files" dts "yourboard.dts"
ptxd_template_read_author &&
ptxd_template_write_platform_rules
}
@@ -550,6 +605,31 @@ export -f ptxd_template_new_image_tgz
ptxd_template_help_list[${#ptxd_template_help_list[@]}]="image-tgz"
ptxd_template_help_list[${#ptxd_template_help_list[@]}]="create package for a tgz image"
+ptxd_template_new_image_fit() {
+ export class="image-"
+ ptxd_template_read_name &&
+ ptxd_template_read_author &&
+ ptxd_template_read "sign FIT image? (y/N)" SIGN
+ case "$SIGN" in
+ y*|Y*)
+ export select_CODE_SIGNING="select CODE_SIGNING
+ "
+ export CODE_SIGNING_VARS="
+IMAGE_@PACKAGE@_SIGN_ROLE := # TODO: role name of the code signing provider, passed to cs_get_uri
+IMAGE_@PACKAGE@_KEY_NAME_HINT := # TODO: key-name-hint property in the signature node of the FIT image
+"
+ ;;
+ *)
+ export select_CODE_SIGNING=""
+ export CODE_SIGNING_VARS=""
+ ;;
+ esac
+ ptxd_template_write_platform_rules
+}
+export -f ptxd_template_new_image_fit
+ptxd_template_help_list[${#ptxd_template_help_list[@]}]="image-fit"
+ptxd_template_help_list[${#ptxd_template_help_list[@]}]="create package for a FIT image"
+
ptxd_template_new_image_genimage() {
export class="image-"
ptxd_template_read_name &&
@@ -609,7 +689,7 @@ ptxd_template_new_code_signing_provider() {
elif [ "$TYPE" = "HSM with OpenSC support" ]; then
export EXTRA_DEPENDENCIES="select HOST_OPENSC
select HOST_OPENSC_PCSC"
- export MODULE_PATH="\${PTXDIST_SYSROOT_HOST}/lib/pkcs11/opensc-pkcs11.so"
+ export MODULE_PATH="\${PTXDIST_SYSROOT_HOST}/usr/lib/pkcs11/opensc-pkcs11.so"
ptxd_template_filter "${template_file}" "${filename}"
elif [ "$TYPE" = "other HSM" ]; then
export EXTRA_DEPENDENCIES="select FIXME"
diff --git a/scripts/lib/ptxd_lib_wrapper.sh b/scripts/lib/ptxd_lib_wrapper.sh
index 1488f617a..06e52ba72 100644
--- a/scripts/lib/ptxd_lib_wrapper.sh
+++ b/scripts/lib/ptxd_lib_wrapper.sh
@@ -62,7 +62,7 @@ ptxd_lib_setup_host_wrapper() {
if [ -n "${cc_alternate}" ]; then
ptxd_replace_link "${cc_default}" "${wrapper_dir}/${cc_alternate}" &&
- ptxd_replace_link "${cc_default}" "${wrapper_dir}/real/${cc_alternate}"
+ ptxd_replace_link "${wrapper_dir}/real/${cc_default}" "${wrapper_dir}/real/${cc_alternate}"
fi || {
rm -rf "${wrapper_dir}"
ptxd_bailout "unable to create compiler wrapper link"
@@ -79,6 +79,12 @@ ptxd_lib_setup_host_wrapper() {
ptxd_bailout "Unable to create ${python/[23]} wrapper link"
fi
done &&
+ for python in python2.7{,-config} python3.{1..20}{,-config}; do
+ if type -P "${python}" > /dev/null; then
+ ptxd_replace_link "python-wrapper" "${wrapper_dir}/${python}" || \
+ ptxd_bailout "Unable to create ${python} wrapper link"
+ fi
+ done &&
for tool in ar as nm objcopy objdump ranlib readelf size strip ; do
tool_abs="$(which "${tool}" 2>/dev/null)"
@@ -186,7 +192,7 @@ ptxd_lib_setup_toolchain() {
export -f ptxd_lib_setup_toolchain
ptxd_lib_setup_target_wrapper() {
- for cc in gcc g++ cpp ld gdb; do
+ for cc in gcc g++ cpp gfortran ld gdb; do
if [ ! -e "${toolchain}/${compiler_prefix}${cc}" ]; then
rm -f "${wrapper_dir}/real/${compiler_prefix}${cc}" \
"${wrapper_dir}/${compiler_prefix}${cc}"
@@ -197,7 +203,7 @@ ptxd_lib_setup_target_wrapper() {
"${wrapper_dir}/${compiler_prefix}${cc}"
done &&
ptxd_replace_link "${compiler_prefix}g++" "${wrapper_dir}/${compiler_prefix}c++" &&
- ptxd_replace_link "${compiler_prefix}g++" "${wrapper_dir}/real/${compiler_prefix}c++" &&
+ ptxd_replace_link "${wrapper_dir}/real/${compiler_prefix}g++" "${wrapper_dir}/real/${compiler_prefix}c++" &&
for cc in clang clang++; do
if [ ! -e "${toolchain}/${cc}" ]; then
rm -f "${wrapper_dir}/real/${compiler_prefix}${cc}" \
diff --git a/scripts/lib/ptxd_make_00-init.sh b/scripts/lib/ptxd_make_00-init.sh
index 23df77631..098795867 100644
--- a/scripts/lib/ptxd_make_00-init.sh
+++ b/scripts/lib/ptxd_make_00-init.sh
@@ -118,6 +118,16 @@ ptxd_init_sysroot_toolchain() {
export PTXDIST_SYSROOT_TOOLCHAIN
}
+#
+# init Y2038 support
+#
+# out:
+# PTXDIST_Y2038
+#
+ptxd_init_y2028() {
+ PTXDIST_Y2038="$(ptxd_get_ptxconf PTXCONF_GLIBC_Y2038)"
+ export PTXDIST_Y2038
+}
#
# gather all sysroots
@@ -133,7 +143,7 @@ ptxd_init_sysroot_toolchain() {
#
ptxd_init_ptxdist_path_sysroot() {
local sysroot="$(ptxd_get_ptxconf PTXCONF_SYSROOT_TARGET)"
- local sysroot_prefix="${sysroot}:${sysroot}/usr"
+ local sysroot_prefix="${sysroot}/usr"
local sysroot_all="${sysroot}"
local sysroot_prefix_all="${sysroot_prefix}"
@@ -162,7 +172,7 @@ ptxd_init_ptxdist_path_sysroot_host() {
export \
PTXDIST_PATH_SYSROOT_HOST="${sysroot}" \
- PTXDIST_PATH_SYSROOT_HOST_PREFIX="${sysroot}"
+ PTXDIST_PATH_SYSROOT_HOST_PREFIX="${sysroot}/usr"
}
@@ -200,9 +210,6 @@ ptxd_init_cross_env() {
prefix=( ${PTXDIST_PATH_SYSROOT_PREFIX} )
IFS="${orig_IFS}"
- local -a lib_dir
- lib_dir=$(ptxd_get_lib_dir)
-
# add "-isystem <DIR>/include"
local -a cppflags
cppflags=( "${prefix[@]/%//include}" )
@@ -210,7 +217,7 @@ ptxd_init_cross_env() {
# add "-L<DIR>/lib -Wl,-rpath-link -Wl,<DIR>"
local -a ldflags
- ldflags=( "${prefix[@]/%//${lib_dir}}" )
+ ldflags=( "${prefix[@]/%//lib}" )
ldflags=( "${ldflags[@]/#/-B}" "${ldflags[@]/#/-L}" "${ldflags[@]/#/-Wl,-rpath-link -Wl,}" )
export \
@@ -260,6 +267,50 @@ ptxd_init_host_env() {
PTXDIST_HOST_LDFLAGS="${ldflags[*]}"
}
+ptxd_partial_readlink() {
+ local last_path last_other
+ local original="${1}"
+ local path="${original}"
+ local other="$(realpath "${path}")"
+ local path_real="${other}"
+ local path_real_saved="${other}"
+
+ if [ "${path}" = "${other}" ]; then
+ return
+ fi
+
+ while [ "${other}" = "${path_real}" -a "${path}" != "${other}" ]; do
+ last_path="${path}"
+ last_other="${other}"
+ path="${path%/*}"
+ other="${other%/*}"
+ path_real="$(realpath "${path}")"
+ done
+ path="${last_path}${path_real_saved#${last_other}}"
+ if [ "${path}" != "${original}" ]; then
+ echo "${path}"
+ fi
+}
+
+ptxd_init_readlink() {
+ local delim="$(printf "\037")"
+ local tmp
+
+ # guess possible variants of the platformdir depending on how symlinks are resolved
+ # cmake has its own magic that is recreated in ptxd_partial_readlink
+ PTXDIST_REAL_PLATFORMDIR="$(readlink -f "${PTXDIST_PLATFORMDIR}")"
+ tmp="$(ptxd_partial_readlink "${PTXDIST_PLATFORMDIR}")"
+ if [ -n "${tmp}" ]; then
+ PTXDIST_REAL_PLATFORMDIR="${PTXDIST_REAL_PLATFORMDIR}${delim}${tmp}"
+ fi
+ PTXDIST_REAL_SYSROOT_TOOLCHAIN="$(readlink -f "${PTXDIST_SYSROOT_TOOLCHAIN}")"
+ tmp="$(ptxd_partial_readlink "${PTXDIST_SYSROOT_TOOLCHAIN}")"
+ if [ -n "${tmp}" ]; then
+ PTXDIST_REAL_SYSROOT_TOOLCHAIN="${PTXDIST_REAL_SYSROOT_TOOLCHAIN}${delim}${tmp}"
+ fi
+ export PTXDIST_REAL_PLATFORMDIR PTXDIST_REAL_SYSROOT_TOOLCHAIN
+}
+
ptxd_init_devpkg()
{
local prefix
@@ -304,6 +355,7 @@ ptxd_init_save_wrapper_env() {
PTXDIST_HOST_LDFLAGS="${PTXDIST_HOST_LDFLAGS}"
PTXDIST_PLATFORMDIR="${PTXDIST_PLATFORMDIR}"
PTXDIST_SYSROOT_TOOLCHAIN="${PTXDIST_SYSROOT_TOOLCHAIN}"
+ PTXDIST_Y2038="${PTXDIST_Y2038}"
PTXDIST_ICECC_DIR="${PTXDIST_ICECC_DIR}"
PTXDIST_ICECC_REMOTE_CPP="${PTXDIST_ICECC_REMOTE_CPP}"
PTXDIST_ICECC_CLANG="${PTXDIST_ICECC_CLANG}"
@@ -321,9 +373,13 @@ ptxd_make_init() {
ptxd_init_sysroot_toolchain || return
fi &&
+ ptxd_init_y2028 &&
+
ptxd_init_ptxdist_path_sysroot &&
ptxd_init_ptxdist_path_sysroot_host &&
+ ptxd_init_readlink &&
+
ptxd_init_devpkg &&
ptxd_init_cross_env &&
diff --git a/scripts/lib/ptxd_make_check_src.sh b/scripts/lib/ptxd_make_check_src.sh
index 6fad1956b..3c00b33db 100644
--- a/scripts/lib/ptxd_make_check_src.sh
+++ b/scripts/lib/ptxd_make_check_src.sh
@@ -18,6 +18,10 @@ ptxd_make_check_src_impl() {
if [ -z "${src}" ]; then
ptxd_bailout "ptxd_make_check_src called without source file."
fi
+ # skip nested archives
+ if [[ "${src}" =~ ^"${PTXDIST_PLATFORMDIR}" ]]; then
+ return
+ fi
case "${PTXCONF_SETUP_CHECK}" in
never)
return
diff --git a/scripts/lib/ptxd_make_clean.sh b/scripts/lib/ptxd_make_clean.sh
index a3a7cde79..4bfce603c 100644
--- a/scripts/lib/ptxd_make_clean.sh
+++ b/scripts/lib/ptxd_make_clean.sh
@@ -18,7 +18,7 @@ ptxd_make_clean() {
if [ -z "${PTXCONF_SETUP_AUTO_EXTRACT}" ]; then
ptxd_bailout "Refusing to delete existing source" \
"$(ptxd_print_path "${directory}")" \
- "Delete anyways with --force or skip extract with --dirty."
+ "Delete anyways with --force or skip extract with --dirty."
elif [ -z "${PTXDIST_FORCE}" -a -d "${directory}/.git" ]; then
ptxd_bailout "Refusing to delete existing source with git" \
"$(ptxd_print_path "${directory}")" \
diff --git a/scripts/lib/ptxd_make_cmake_toolchain.sh b/scripts/lib/ptxd_make_cmake_toolchain.sh
index 1c4aaba3e..181adbfb2 100644
--- a/scripts/lib/ptxd_make_cmake_toolchain.sh
+++ b/scripts/lib/ptxd_make_cmake_toolchain.sh
@@ -12,6 +12,9 @@ export PTXDIST_CMAKE_TOOLCHAIN_TARGET
PTXDIST_CMAKE_TOOLCHAIN_HOST="${PTXDIST_GEN_CONFIG_DIR}/toolchain-host.cmake"
export PTXDIST_CMAKE_TOOLCHAIN_HOST
+PTXDIST_CMAKE_TOOLCHAIN_CROSS="${PTXDIST_GEN_CONFIG_DIR}/toolchain-cross.cmake"
+export PTXDIST_CMAKE_TOOLCHAIN_CROSS
+
#
# generate cmake toolchain file from template
#
@@ -22,10 +25,15 @@ export PTXDIST_CMAKE_TOOLCHAIN_HOST
ptxd_make_cmake_toolchain_target() {
local sysroot_prefix="${PTXDIST_PATH_SYSROOT_PREFIX}:"
+ case "${PTXCONF_ARCH_STRING}" in
+ arm64) CMAKE_ARCH_STRING=aarch64 ;;
+ riscv) CMAKE_ARCH_STRING=riscv64 ;;
+ *) CMAKE_ARCH_STRING=${PTXCONF_ARCH_STRING} ;;
+ esac
SYSTEM_NAME="Linux" \
SYSTEM_VERSION="1" \
\
- SYSTEM_PROCESSOR="${PTXCONF_ARCH_STRING}" \
+ SYSTEM_PROCESSOR="${CMAKE_ARCH_STRING}" \
\
CC="$(which "${CC}")" \
CXX="$(which "${CXX}")" \
@@ -46,11 +54,28 @@ ptxd_make_cmake_toolchain_host() {
CC="$(which "${CC}")" \
CXX="$(which "${CXX}")" \
\
- PREFIX_PATH="${PTXDIST_SYSROOT_HOST}" \
+ PREFIX_PATH="${PTXDIST_SYSROOT_HOST}/usr" \
\
- INCLUDE_DIRECTORIES="${PTXDIST_SYSROOT_HOST}/include" \
- LINK_DIRECTORIES="${PTXDIST_SYSROOT_HOST}/lib" \
+ INCLUDE_DIRECTORIES="${PTXDIST_SYSROOT_HOST}/usr/include" \
+ LINK_DIRECTORIES="${PTXDIST_SYSROOT_HOST}/usr/lib" \
\
ptxd_replace_magic "${PTXDIST_TOPDIR}/config/cmake/toolchain-host.cmake.in" > "${1}"
}
export -f ptxd_make_cmake_toolchain_host
+
+
+#
+# generate cmake toolchain file from template
+#
+ptxd_make_cmake_toolchain_cross() {
+ CC="$(which "${CC}")" \
+ CXX="$(which "${CXX}")" \
+ \
+ PREFIX_PATH="${PTXDIST_SYSROOT_CROSS}/usr" \
+ \
+ INCLUDE_DIRECTORIES="${PTXDIST_SYSROOT_CROSS}/usr/include" \
+ LINK_DIRECTORIES="${PTXDIST_SYSROOT_CROSS}/usr/lib" \
+ \
+ ptxd_replace_magic "${PTXDIST_TOPDIR}/config/cmake/toolchain-host.cmake.in" > "${1}"
+}
+export -f ptxd_make_cmake_toolchain_cross
diff --git a/scripts/lib/ptxd_make_dts_dtc.sh b/scripts/lib/ptxd_make_dts_dtc.sh
deleted file mode 100644
index 0eb7f9881..000000000
--- a/scripts/lib/ptxd_make_dts_dtc.sh
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) 2014 by Michael Olbrich <m.olbrich@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-ptxd_make_dts_dtb() {
- local dts tmp_dts deb_dts deps tmp_deps dtc_include no_linemarker
-
- case "${dts_dts}" in
- /*)
- if [ ! -e "${dts_dts}" ]; then
- ptxd_bailout "Device-tree '${dts_dts}' not found."
- fi
- dts="${dts_dts}"
- deb_dts=( "${dts_dts}" )
- ;;
- *)
- if ! ptxd_in_path dts_path "${dts_dts}"; then
- ptxd_bailout "Device-tree '${dts_dts}' not found in '${dts_path}'."
- fi
- dts="${ptxd_reply}"
- # create a list of all posible matches
- ptxd_in_path dts_path
- deb_dts=( "${ptxd_reply[@]/%/\/${dts_dts}}" )
- ;;
- esac
- deb_dts=( "${deb_dts[@]/#/\$(wildcard }" )
- deb_dts=( "${deb_dts[@]/%/)}" )
-
- if dtc -h 2>&1 | grep -q '^[[:space:]]\+-i\(,.*\)\?$'; then
- dtc_include="-i $(dirname "${dts}") -i ${dts_kernel_dir}/arch/${dts_kernel_arch}/boot/dts"
- tmp_dts="${ptx_state_dir}/$(basename "${dts}").tmp"
- no_linemarker=""
- else
- # the support for "#line ..." was added in the same relase when -i
- # was added. So we add -P only if -i is not supported.
- tmp_dts="${dts}.tmp"
- no_linemarker="-P"
- fi &&
-
- deps="${ptx_state_dir}/dtc.$(basename "${dts}").deps"
- tmp_deps="${PTXDIST_TEMPDIR}/dtc.$(basename "${dts}").deps"
-
- exec 2>&${PTXDIST_FD_LOGERR}
-
- echo "${dts_dtb}: \$(firstword ${deb_dts[*]})" > "${deps}" &&
-
- echo "CPP $(ptxd_print_path "${tmp_dts}")" &&
- cpp \
- -Wp,-MD,${tmp_deps} \
- -Wp,-MT,${tmp_dts} \
- -nostdinc \
- ${no_linemarker} \
- -I$(dirname "${dts}") \
- -I${dts_kernel_dir}/arch/${dts_kernel_arch}/boot/dts \
- -I${dts_kernel_dir}/arch/${dts_kernel_arch}/boot/dts/include \
- -I${dts_kernel_dir}/drivers/of/testcase-data \
- -I${dts_kernel_dir}/include \
- -undef -D__DTS__ -x assembler-with-cpp \
- -o ${tmp_dts} \
- ${dts} &&
-
- sed -e "s;^${tmp_dts}:;${dts_dtb}:;" \
- -e 's;^ \([^ ]*\); $(wildcard \1);' "${tmp_deps}" >> "${deps}" &&
-
- echo "DTC $(ptxd_print_path "${dts_dtb}")" &&
- dtc \
- $(ptxd_get_ptxconf PTXCONF_DTC_EXTRA_ARGS) \
- ${dtc_include} \
- -d "${tmp_deps}" \
- -I dts -O dtb -b 0 \
- -o "${dts_dtb}" "${tmp_dts}" &&
-
- awk '{ \
- printf "%s", $1 ; \
- for (i = 2; i <= NF; i++) { \
- printf " $(wildcard %s)", $i; \
- }; \
- print "" \
- }' "${tmp_deps}" >> "${deps}" ||
-
- ptxd_bailout "Unable to generate dtb file."
-}
-export -f ptxd_make_dts_dtb
diff --git a/scripts/lib/ptxd_make_extract_archive.sh b/scripts/lib/ptxd_make_extract_archive.sh
index f44f0c9f0..89ed717e1 100644
--- a/scripts/lib/ptxd_make_extract_archive.sh
+++ b/scripts/lib/ptxd_make_extract_archive.sh
@@ -3,7 +3,9 @@
ptxd_make_extract_archive() {
local archive="$1"
local dest="$2"
+ local src_filter="$3"
local filter
+ local -a args
case "${archive}" in
*gz)
@@ -38,7 +40,11 @@ EOF
;;
esac
- tar -C "${dest}" "${filter}" -x -f "${archive}" || {
+ if [ -n "${src_filter}" ]; then
+ args=( "${src_filter}" )
+ fi
+
+ tar --wildcards -C "${dest}" "${filter}" -x -f "${archive}" "${args[@]}" || {
cat >&2 <<EOF
error: extracting '${archive}' failed
diff --git a/scripts/lib/ptxd_make_fit_image.sh b/scripts/lib/ptxd_make_fit_image.sh
index dd0f63b7b..4b99e6fbf 100644
--- a/scripts/lib/ptxd_make_fit_image.sh
+++ b/scripts/lib/ptxd_make_fit_image.sh
@@ -19,20 +19,30 @@ ptxd_make_image_fit_its() {
kernel {
description = "kernel";
data = /incbin/("${image_kernel}");
- type = "kernel";
arch = "$(ptxd_get_ptxconf PTXCONF_ARCH_STRING)";
os = "linux";
compression = "none";
EOF
- if [ -n "$(ptxd_get_ptxconf PTXCONF_KERNEL_FIT_LOAD)" ]; then
+ if [ -n "$(ptxd_get_ptxconf PTXCONF_KERNEL_FIT_NOLOAD)" ]; then
cat << EOF
- load = <$(ptxd_get_ptxconf PTXCONF_KERNEL_FIT_LOAD)>;
+ type = "kernel_noload";
+ load = <0x00000000>;
+ entry = <0x00000000>;
EOF
- fi
- if [ -n "$(ptxd_get_ptxconf PTXCONF_KERNEL_FIT_ENTRY)" ]; then
+ else
cat << EOF
+ type = "kernel";
+EOF
+ if [ -n "$(ptxd_get_ptxconf PTXCONF_KERNEL_FIT_LOAD)" ]; then
+ cat << EOF
+ load = <$(ptxd_get_ptxconf PTXCONF_KERNEL_FIT_LOAD)>;
+EOF
+ fi
+ if [ -n "$(ptxd_get_ptxconf PTXCONF_KERNEL_FIT_ENTRY)" ]; then
+ cat << EOF
entry = <$(ptxd_get_ptxconf PTXCONF_KERNEL_FIT_ENTRY)>;
EOF
+ fi
fi
cat << EOF
hash-1 {
diff --git a/scripts/lib/ptxd_make_get.sh b/scripts/lib/ptxd_make_get.sh
index d50033846..c06257ee6 100644
--- a/scripts/lib/ptxd_make_get.sh
+++ b/scripts/lib/ptxd_make_get.sh
@@ -6,6 +6,16 @@
# see the README file.
#
+ptxd_make_get_need_commit() {
+ if [ -e "${path}.commit" ]; then
+ return 1
+ fi
+ if [ "$(ptxd_get_ptxconf PTXCONF_PROJECT_STORE_SOURCE_GIT_COMMITS)" != "y" ]; then
+ return 1
+ fi
+}
+export -f ptxd_make_get_need_commit
+
#
# in env:
#
@@ -14,100 +24,138 @@
# ${opts[]} : an array of options
#
ptxd_make_get_http() {
- local -a curl_opts
- local temp_file temp_header
- set -- "${opts[@]}"
- unset opts
-
- #
- # scan for valid options
- #
- while [ ${#} -ne 0 ]; do
- local opt="${1}"
- shift
-
- case "${opt}" in
- no-check-certificate)
- opts[${#opts[@]}]="--${opt}"
- curl_opts[${#curl_opts[@]}]="--insecure"
- ;;
- no-proxy)
- opts[${#opts[@]}]="--${opt}"
- curl_opts[${#curl_opts[@]}]="--noproxy"
- curl_opts[${#curl_opts[@]}]="*"
- ;;
- cookie:*)
- opts[${#opts[@]}]="--no-cookies"
- opts[${#opts[@]}]="--header"
- opts[${#opts[@]}]="Cookie: ${opt#cookie:}"
- curl_opts[${#curl_opts[@]}]="--cookie"
- curl_opts[${#curl_opts[@]}]="${opt#cookie:}"
- ;;
- *)
- ptxd_bailout "invalid option '${opt}' to ${FUNCNAME}"
- ;;
- esac
- done
- unset opt
-
- #
- # download to temporary file first, move it to correct
- # file name after successfull download
- #
- local file="${url##*/}"
-
- # remove any pending or half downloaded files
- rm -f -- "${path}."*
+ local -a curl_opts
+ local temp_file temp_header repo tag tmp
+ set -- "${opts[@]}"
+ unset opts
+
+ #
+ # scan for valid options
+ #
+ while [ ${#} -ne 0 ]; do
+ local opt="${1}"
+ shift
- ptxd_make_serialize_take
- if [ "${ptxd_make_get_dryrun}" != "y" ]; then
- temp_file="$(mktemp "${path}.XXXXXXXXXX")" || ptxd_bailout "failed to create tempfile"
- wget \
- --passive-ftp \
- --progress=bar:force \
- --timeout=30 \
- --tries=5 \
- --user-agent="PTXdist ${PTXDIST_VERSION_FULL}" \
- ${PTXDIST_QUIET:+--quiet} \
- "${opts[@]}" \
- -O "${temp_file}" \
- "${url}" && {
- chmod 644 -- "${temp_file}" &&
- file "${temp_file}" | grep -vq " HTML " &&
- touch -- "${temp_file}" &&
- mv -- "${temp_file}" "${path}"
- ptxd_make_serialize_put
- return
- }
- else
- echo "Checking URL '${url}'..."
- temp_header="$(mktemp "${PTXDIST_TEMPDIR}/urlcheck.XXXXXX")" || ptxd_bailout "failed to create tempfile"
- curl \
- --ftp-pasv \
- --connect-timeout 30 \
- --retry 5 \
- --user-agent "PTXdist ${PTXDIST_VERSION_FULL}" \
- "${curl_opts[@]}" \
- -o /dev/null \
- --dump-header "${temp_header}" \
- --fail \
- --location \
- --head \
- --request GET \
- --write-out '\n%{url_effective}\n' \
- "${url}" &&
- if grep -i "content-type:" "${temp_header}" | tail -n 1 | grep -q "text/html"; then
- ptxd_bailout "Got HTML file"
- fi
- ptxd_make_serialize_put
- return
- fi &&
+ case "${opt}" in
+ no-check-certificate)
+ opts[${#opts[@]}]="--${opt}"
+ curl_opts[${#curl_opts[@]}]="--insecure"
+ ;;
+ no-proxy)
+ opts[${#opts[@]}]="--${opt}"
+ curl_opts[${#curl_opts[@]}]="--noproxy"
+ curl_opts[${#curl_opts[@]}]="*"
+ ;;
+ cookie:*)
+ opts[${#opts[@]}]="--no-cookies"
+ opts[${#opts[@]}]="--header"
+ opts[${#opts[@]}]="Cookie: ${opt#cookie:}"
+ curl_opts[${#curl_opts[@]}]="--cookie"
+ curl_opts[${#curl_opts[@]}]="${opt#cookie:}"
+ ;;
+ *)
+ ptxd_bailout "invalid option '${opt}' to ${FUNCNAME}"
+ ;;
+ esac
+ done
+ unset opt
+
+ #
+ # download to temporary file first, move it to correct
+ # file name after successful download
+ #
+ local file="${url##*/}"
+
+ # remove any pending or half downloaded files
+ p="[a-zA-Z0-9]"
+ rm -f -- "${path}."$p$p$p$p$p$p$p$p$p$p
+
+ ptxd_make_serialize_take
+ if [ "${ptxd_make_get_dryrun}" = "y" ]; then
+ echo "Checking URL '${url}'..."
+ temp_header="$(mktemp "${PTXDIST_TEMPDIR}/urlcheck.XXXXXX")" || ptxd_bailout "failed to create tempfile"
+ curl \
+ --ftp-pasv \
+ --connect-timeout 30 \
+ --retry 5 \
+ --user-agent "PTXdist ${PTXDIST_VERSION_FULL}" \
+ "${curl_opts[@]}" \
+ -o /dev/null \
+ --dump-header "${temp_header}" \
+ --fail \
+ --location \
+ --head \
+ --request GET \
+ --write-out '\n%{url_effective}\n' \
+ "${url}" &&
+ if grep -i "content-type:" "${temp_header}" | tail -n 1 | grep -q "text/html"; then
+ ptxd_bailout "Got HTML file"
+ fi
ptxd_make_serialize_put
-
- rm -f -- "${temp_file}"
-
- # return with failure, we didn't manage to download the file
- return 1
+ return
+ elif [ ! -e "${path}" ]; then
+ temp_file="$(mktemp "${path}.XXXXXXXXXX")" || ptxd_bailout "failed to create tempfile"
+ if [ -n "${PTXDIST_QUIET}" ]; then
+ progress=dot
+ else
+ progress=bar:force
+ fi
+ wget \
+ --passive-ftp \
+ --progress="${progress}" \
+ --timeout=30 \
+ --tries=5 \
+ --user-agent="PTXdist ${PTXDIST_VERSION_FULL}" \
+ "${opts[@]}" \
+ -O "${temp_file}" \
+ "${url}" || {
+ ptxd_make_serialize_put
+ rm -f -- "${temp_file}"
+ return 1
+ }
+ chmod 644 -- "${temp_file}" &&
+ file "${temp_file}" | grep -vq " HTML " &&
+ touch -- "${temp_file}" &&
+ mv -- "${temp_file}" "${path}"
+ fi
+ ptxd_make_serialize_put
+
+ if ! ptxd_make_get_need_commit; then
+ return
+ fi
+ case "${url}" in
+ https://github.com/*/*/archive/*)
+ repo=${url%%/archive/*}
+ tag=${url##*/}
+ tag=${tag%.tar.gz}
+ tag=${tag%.zip}
+ ;;
+ https://github.com/*/*/releases/download/*)
+ repo=${url%%/releases/download/*}
+ tag=${url##*/releases/download/}
+ tag=${tag%%/*}
+ ;;
+ https://*gitlab*/*/*/-/archive/*)
+ repo=${url%%/-/archive/*}
+ tag=${url##*/-/archive/}
+ tag=${tag%%/*}
+ ;;
+ https://*gitlab*/*/*/-/releases/*)
+ repo=${url%%/-/releases/*}
+ tag=${url##*/-/releases/}
+ tag=${tag%%/*}
+ ;;
+ esac
+ if [ -n "${repo}" -a -n "${tag}" ]; then
+ # try to get the commit for an annotated tag first
+ tmp="$(git ls-remote "${repo}" "refs/tags/${tag}^{}" 2>/dev/null | awk '{ print $1 }')"
+ if [ -z "${tmp}" ]; then
+ tmp="$(git ls-remote --tags "${repo}" "refs/tags/${tag}" 2>/dev/null | awk '{ print $1 }')"
+ fi
+ if [ -n "${tmp}" ]; then
+ echo "${tmp%% *}" > "${path}.commit"
+ fi
+ fi
}
export -f ptxd_make_get_http
@@ -120,75 +168,87 @@ export -f ptxd_make_get_http
# ${opts[]} : an array of options
#
ptxd_make_get_git() {
- set -- "${opts[@]}"
- unset opts
- local tag
- local mirror="${url#[a-z]*//}"
- mirror="$(dirname "${path}")/${mirror//\//.}"
- local prefix="$(basename "${path}")"
- prefix="${prefix%.tar.*}/"
-
- case "${path}" in
- *.tar.gz|*.tar.bz2|*.tar.xz|*.zip)
+ set -- "${opts[@]}"
+ unset opts
+ local tag archive_args commit
+ local mirror="${url#[a-z]*//}"
+ mirror="$(dirname "${path}")/${mirror//\//.}"
+ local prefix="$(basename "${path}")"
+ prefix="${prefix%.tar.*}/"
+
+ case "${path}" in
+ *.tar.gz|*.tar.bz2|*.tar.xz|*.zip)
+ ;;
+ *.crate)
+ archive_args="--format=tar.gz"
+ ;;
+ *)
+ ptxd_bailout "Only .tar.gz, .tar.bz2, .tar.xz and .zip archives are supported for git downloads."
+ ;;
+ esac
+
+ #
+ # scan for valid options
+ #
+ while [ ${#} -ne 0 ]; do
+ local opt="${1}"
+ shift
+
+ case "${opt}" in
+ tag=*)
+ tag="${opt#tag=}"
;;
- *)
- ptxd_bailout "Only .tar.gz, .tar.bz2, .tar.xz and .zip archives are supported for git downloads."
+ *)
+ ptxd_bailout "invalid option '${opt}' to ${FUNCNAME}"
;;
esac
+ done
+ unset opt
- #
- # scan for valid options
- #
- while [ ${#} -ne 0 ]; do
- local opt="${1}"
- shift
-
- case "${opt}" in
- tag=*)
- tag="${opt#tag=}"
- ;;
- *)
- ptxd_bailout "invalid option '${opt}' to ${FUNCNAME}"
- ;;
- esac
- done
- unset opt
-
- if [ -z "${tag}" ]; then
- ptxd_bailout "git url '${url}' has no 'tag' option"
- fi
+ if [ -z "${tag}" ]; then
+ ptxd_bailout "git url '${url}' has no 'tag' option"
+ fi
- ptxd_make_serialize_take
- if [ "${ptxd_make_get_dryrun}" = "y" ]; then
- echo "Checking URL '${url}'..."
- git ls-remote --quiet "${url}" HEAD > /dev/null
- ptxd_make_serialize_put
- return
- fi
+ ptxd_make_serialize_take
+ if [ "${ptxd_make_get_dryrun}" = "y" ]; then
+ echo "Checking URL '${url}'..."
+ git ls-remote --quiet "${url}" HEAD > /dev/null
+ ptxd_make_serialize_put
+ return
+ elif [ ! -e "${path}" ]; then
echo "${PROMPT}git: fetching '${url} into '${mirror}'..."
if [ ! -d "${mirror}" ]; then
- git init --bare --shared "${mirror}"
+ git init --bare --shared "${mirror}"
else
- git --git-dir="${mirror}" remote rm origin
+ git --git-dir="${mirror}" remote rm origin
fi &&
# overwrite everything so the git repository is in a defined state
git --git-dir="${mirror}" config transfer.fsckObjects true &&
+ git --git-dir="${mirror}" config tar.tar.gz.command "gzip -cn" &&
git --git-dir="${mirror}" config tar.tar.bz2.command "bzip2 -c" &&
git --git-dir="${mirror}" config tar.tar.xz.command "xz -c" &&
git --git-dir="${mirror}" remote add origin "${url}" &&
git --git-dir="${mirror}" fetch --progress -pf origin "+refs/*:refs/*" &&
# at least for some git versions this is not group writeable for shared repos
if [ "$(stat -c '%A' "${mirror}/FETCH_HEAD" | cut -c 6)" != "w" ]; then
- chmod g+w "${mirror}/FETCH_HEAD"
+ chmod g+w "${mirror}/FETCH_HEAD"
fi &&
if ! git --git-dir="${mirror}" rev-parse --verify -q "${tag}" > /dev/null; then
- ptxd_make_serialize_put
- ptxd_bailout "git: tag '${tag}' not found in '${url}'"
+ ptxd_make_serialize_put
+ ptxd_bailout "git: tag '${tag}' not found in '${url}'"
fi &&
- git --git-dir="${mirror}" archive --prefix="${prefix}" -o "${path}" "${tag}"
- ptxd_make_serialize_put
+ git --git-dir="${mirror}" archive ${archive_args} --prefix="${prefix}" -o "${path}" "${tag}"
+ fi
+ ptxd_make_serialize_put
+ if ! ptxd_make_get_need_commit; then
+ set +x
+ return
+ fi
+ if commit="$(git --git-dir="${mirror}" rev-parse "${tag}^{}" 2>/dev/null)"; then
+ echo "${commit}" > "${path}.commit"
+ fi
}
export -f ptxd_make_get_git
@@ -201,75 +261,112 @@ export -f ptxd_make_get_git
# ${opts[]} : an array of options
#
ptxd_make_get_svn() {
- set -- "${opts[@]}"
- unset opts
- local rev
- local tarcomp
- local mirror="${url#[a-z]*//}"
- mirror="$(dirname "${path}")/${mirror//\//.}"
- local prefix="$(basename "${path}")"
- prefix="${prefix%.tar.*}"
-
- case "${path}" in
- *.tar.gz)
- tarcomp="--gzip"
- ;;
- *.tar.bz2)
- tarcomp="--bzip2"
+ set -- "${opts[@]}"
+ unset opts
+ local rev
+ local tarcomp
+ local mirror="${url#[a-z]*//}"
+ mirror="$(dirname "${path}")/${mirror//\//.}"
+ local prefix="$(basename "${path}")"
+ prefix="${prefix%.tar.*}"
+
+ case "${path}" in
+ *.tar.gz)
+ tarcomp="--gzip"
+ ;;
+ *.tar.bz2)
+ tarcomp="--bzip2"
+ ;;
+ *.tar.xz)
+ tarcomp="--xz"
+ ;;
+ *)
+ ptxd_bailout "Only .tar.gz, .tar.bz2, .tar.xz and archives are supported for svn downloads."
+ ;;
+ esac
+
+ #
+ # scan for valid options
+ #
+ while [ ${#} -ne 0 ]; do
+ local opt="${1}"
+ shift
+
+ case "${opt}" in
+ rev=*)
+ rev="${opt#rev=}"
;;
- *.tar.xz)
- tarcomp="--xz"
- ;;
- *)
- ptxd_bailout "Only .tar.gz, .tar.bz2, .tar.xz and archives are supported for svn downloads."
+ *)
+ ptxd_bailout "invalid option '${opt}' to ${FUNCNAME}"
;;
esac
+ done
+ unset opt
- #
- # scan for valid options
- #
- while [ ${#} -ne 0 ]; do
- local opt="${1}"
- shift
+ if [ -z "${rev}" ]; then
+ ptxd_bailout "svn url '${url}' has no 'rev' option"
+ fi
- case "${opt}" in
- rev=*)
- rev="${opt#rev=}"
- ;;
- *)
- ptxd_bailout "invalid option '${opt}' to ${FUNCNAME}"
- ;;
- esac
- done
- unset opt
-
- if [ -z "${rev}" ]; then
- ptxd_bailout "svn url '${url}' has no 'rev' option"
- fi
-
- ptxd_make_serialize_take
- if [ "${ptxd_make_get_dryrun}" = "y" ]; then
- echo "Checking URL '${url}'..."
- svn ls "${url}" > /dev/null
- ptxd_make_serialize_put
- return
- fi
- echo "${PROMPT}svn: fetching '${url} into '${mirror}'..."
- if [ ! -d "${mirror}" ]; then
- svn checkout -r ${rev} "${url}" "${mirror}"
- else
- svn update -r ${rev} "${mirror}"
- fi &&
- lmtime=$(svn info -r ${rev} "${mirror}" | \
- awk '/^Last Changed Date:/ {print $4 " " $5 " " $6}') &&
- echo "${PROMPT}svn: last modification time '${lmtime}'" &&
- GZIP=-n tar --exclude-vcs --show-stored-names ${tarcomp} \
- --mtime="${lmtime}" --transform "s|^\.|${prefix}|g" \
- --create --file "${path}" -C "${mirror}" .
+ ptxd_make_serialize_take
+ if [ "${ptxd_make_get_dryrun}" = "y" ]; then
+ echo "Checking URL '${url}'..."
+ svn ls "${url}" > /dev/null
ptxd_make_serialize_put
+ return
+ fi
+ if [ -e "${path}" ]; then
+ return
+ fi
+ echo "${PROMPT}svn: fetching '${url} into '${mirror}'..."
+ if [ ! -d "${mirror}" ]; then
+ svn checkout -r ${rev} "${url}" "${mirror}"
+ else
+ svn update -r ${rev} "${mirror}"
+ fi &&
+ lmtime=$(svn info -r ${rev} "${mirror}" | \
+ awk '/^Last Changed Date:/ {print $4 " " $5 " " $6}') &&
+ echo "${PROMPT}svn: last modification time '${lmtime}'" &&
+ GZIP=-n tar --exclude-vcs --show-stored-names ${tarcomp} \
+ --mtime="${lmtime}" --transform "s|^\.|${prefix}|g" \
+ --create --sort=name --file "${path}" -C "${mirror}" .
+ ptxd_make_serialize_put
}
export -f ptxd_make_get_svn
+#
+# in env:
+#
+# ${path} : local file name
+# ${url} : the url to download
+# ${opts[]} : an array of options
+#
+ptxd_make_get_s3() {
+ local temp_file
+ set -- "${opts[@]}"
+ unset opts
+
+ if [ "${ptxd_make_get_dryrun}" = "y" ]; then
+ return
+ fi
+ if [ -e "${path}" ]; then
+ return
+ fi
+ ptxd_make_serialize_take
+ # remove any pending or half downloaded files
+ p="[a-zA-Z0-9]"
+ rm -f -- "${path}."$p$p$p$p$p$p$p$p$p$p
+
+ temp_file="$(mktemp "${path}.XXXXXXXXXX")" || ptxd_bailout "failed to create tempfile"
+
+ aws s3 cp "${url}" "${temp_file}" || return
+ chmod 644 -- "${temp_file}" &&
+ touch -- "${temp_file}" &&
+ mv -- "${temp_file}" "${path}"
+
+ ptxd_make_serialize_put
+}
+export -f ptxd_make_get_s3
+
#
# check if download is disabled
@@ -279,8 +376,8 @@ export -f ptxd_make_get_svn
# ${url} : the url to download
#
ptxd_make_get_download_permitted() {
- if [ -n "${PTXCONF_SETUP_NO_DOWNLOAD}" -a -z "${PTXDIST_FORCE_DOWNLOAD}" ]; then {
- cat <<EOF
+ if [ -n "${PTXCONF_SETUP_NO_DOWNLOAD}" -a -z "${PTXDIST_FORCE_DOWNLOAD}" ]; then {
+ cat <<EOF
error: automatic download prohibited
@@ -288,163 +385,188 @@ Please download '${url}'
manually into '$(dirname ${path})'
EOF
- set -- ${orig_argv[@]}
- if [ $# -ne 1 ]; then
- echo "If this URL doesn't work, you may try these ones:"
- while [ ${#} -ne 0 ]; do
- [ "${1}" != "${url}" ] && echo "'${1}'"
- shift
- done
- echo
- fi
- exit 1; } >&2
+ set -- ${orig_argv[@]}
+ if [ $# -ne 1 ]; then
+ echo "If this URL doesn't work, you may try these ones:"
+ while [ ${#} -ne 0 ]; do
+ [ "${1}" != "${url}" ] && echo "'${1}'"
+ shift
+ done
+ echo
fi
+ exit 1; } >&2
+ fi
}
export -f ptxd_make_get_download_permitted
#
# $1: target source path (including file name)
-# $@: possible download URLs, seperated by space
+# $@: possible download URLs, separated by space
#
-# options seperated from URLs by ";"
+# options separated from URLs by ";"
#
# valid options:
# - no-check-certificate don't check server certificate (https only)
# - no-proxy don't use proxy even if configured
#
ptxd_make_get() {
- local -a argv
- local ptxmirror_url
+ local -a argv
+ local ptxmirror_url
- local path="${1}"
- shift
+ # needed when called from the source archive target
+ pkg_stage="${pkg_stage:-get}"
- local -a orig_argv
- orig_argv=( "${@}" )
+ exec 2>&${PTXDIST_FD_LOGERR}
+ if [ -n "${PTXDIST_QUIET}" ]; then
+ exec 9>&1
+ fi
- if [ -z "${1}" ]; then
- if [ "${ptxd_make_get_dryrun}" != "y" ]; then
- ptxd_bailout "URL missing for '${path}'!"
- else
- echo "URL missing for '${path}', skipping."
- echo
- return
- fi
+ local path="${1}"
+ shift
+
+ # skip nested archives
+ if [[ "${path}" =~ ^"${PTXDIST_PLATFORMDIR}" ]]; then
+ return
+ fi
+
+ local -a orig_argv
+ orig_argv=( "${@}" )
+
+ if [ -z "${1}" ]; then
+ if [ "${ptxd_make_get_dryrun}" != "y" ]; then
+ ptxd_bailout "URL missing for '${path}'!"
+ else
+ echo "URL missing for '${path}', skipping."
+ echo
+ return
fi
+ fi
- ptxmirror_url="${path/#\/*\//${ptxd_make_get_mirror}/}"
+ ptxmirror_url="${path/#\/*\//${ptxd_make_get_mirror}/}"
- #
- # split by spaces, etc
- #
- set -- ${@}
+ #
+ # split by spaces, etc
+ #
+ set -- ${@}
- while [ ${#} -gt 0 ]; do
- local add=true
- local url="${1}"
- shift
+ while [ ${#} -gt 0 ]; do
+ local add=true
+ local url="${1}"
+ shift
- if [[ "${url}" =~ "file://" ]]; then
- # keep original URL
- argv[${#argv[@]}]="${url}"
- # assume, that local URLs are always available
- ptxmirror_url=
- continue
- fi
- # restrict donwload only to white-listed URLs
- if [ -n "${PTXCONF_SETUP_PTXMIRROR_ONLY}" ]; then
- local pattern
- add=false
- for pattern in "${ptxd_make_get_mirror}" \
- ${PTXCONF_SETUP_URL_WHITELIST}; do
- if [[ "${url}" =~ "${pattern}" ]]; then
- add=true
- break
- fi
- done
- fi
- if ${add}; then
- argv[${#argv[@]}]="${url}"
- if [ "${url}" = "${ptxmirror_url}" ]; then
- # avoid duplicates
- ptxmirror_url=
- fi
+ if [[ "${url}" =~ "file://" ]]; then
+ # keep original URL
+ argv[${#argv[@]}]="${url}"
+ # assume, that local URLs are always available
+ ptxmirror_url=
+ continue
+ fi
+ # restrict download only to white-listed URLs
+ if [ -n "${PTXCONF_SETUP_PTXMIRROR_ONLY}" ]; then
+ local pattern
+ add=false
+ for pattern in "${ptxd_make_get_mirror}" \
+ ${PTXCONF_SETUP_URL_WHITELIST}; do
+ if [[ "${url}" =~ "${pattern}" ]]; then
+ add=true
+ break
fi
- done
- if [ -n "${ptxmirror_url}" ]; then
- argv[${#argv[@]}]="${ptxmirror_url}"
+ done
fi
+ if ${add}; then
+ argv[${#argv[@]}]="${url}"
+ if [ "${url}" = "${ptxmirror_url}" ]; then
+ # avoid duplicates
+ ptxmirror_url=
+ fi
+ fi
+ done
+ if [ -n "${ptxmirror_url}" ]; then
+ argv[${#argv[@]}]="${ptxmirror_url}"
+ fi
- set -- "${argv[@]}"
+ set -- "${argv[@]}"
- while [ ${#} -ne 0 ]; do
- #
- # strip options which are seperated by ";" form the
- # URL, store in "opts" array
- #
- local orig_ifs="${IFS}"
- IFS=";"
- local -a opts
- opts=( ${1} )
- IFS="${orig_ifs}"
- unset orig_ifs
+ while [ ${#} -ne 0 ]; do
+ #
+ # strip options which are separated by ";" form the
+ # URL, store in "opts" array
+ #
+ local orig_ifs="${IFS}"
+ IFS=";"
+ local -a opts
+ opts=( ${1} )
+ IFS="${orig_ifs}"
+ unset orig_ifs
- local url="${opts[0]}"
- unset opts[0]
+ local url="${opts[0]}"
+ unset opts[0]
- shift
+ shift
- case "${url}" in
- git+file://*)
- echo "local git repository, removing git+file:// prefix from URL"
- url=${url#git+file://}
- ;&
- git://*|http://*.git|https://*.git|ssh://*.git)
- ptxd_make_get_download_permitted &&
- ptxd_make_get_git && return
- ;;
- svn://*)
- ptxd_make_get_download_permitted &&
- ptxd_make_get_svn && return
- ;;
- http://*|https://*|ftp://*)
- ptxd_make_get_download_permitted &&
- ptxd_make_get_http && return
- ;;
- file*)
- local thing="${url/file:\/\///}"
-
- if [ -f "$thing" ]; then
- echo "local archive, skipping get"
- return
- elif [ -d "${thing}" ]; then
- echo "local directory instead of tar file, skipping get"
- return
- else
- thing="${url/file:\/\//./}"
- if [ -d "${thing}" ]; then
- echo "local project directory instead of tar file, skipping get"
- return
- fi
- fi
- ;;
- *)
- echo
- echo "Unknown URL Type!"
- echo "URL: $url"
- echo
- exit 1
- ;;
- esac
- done
-
- if [ "${ptxd_make_get_nofail}" != "y" ]; then
- echo
- echo "Could not download package"
- echo "URL: ${orig_argv[@]}"
- echo
- exit 1
- fi
+ case "${url}" in
+ git+file://*)
+ echo "local git repository, removing git+file:// prefix from URL"
+ url=${url#git+file://}
+ ;&
+ git://*|git+http://*|git+https://*|http://*.git|https://*.git|ssh://*.git)
+ url=${url#git+}
+ ptxd_make_get_download_permitted &&
+ ptxd_make_get_git && return
+ ;;
+ svn://*|svn+*://*)
+ url=${url/svn+https/https}
+ if [[ "${url}" =~ ^https ]]; then
+ echo "svn+https is fixed in URL, using https directly"
+ fi
+ if [[ "${url}" =~ ^svn\+ ]]; then
+ echo "Custom SVN tunnel scheme detected"
+ fi
+ ptxd_make_get_download_permitted &&
+ ptxd_make_get_svn && return
+ ;;
+ http://*|https://*|ftp://*)
+ ptxd_make_get_download_permitted &&
+ ptxd_make_get_http && return
+ ;;
+ s3://*)
+ ptxd_make_get_download_permitted &&
+ ptxd_make_get_s3 && return
+ ;;
+ file*)
+ local thing="${url/file:\/\///}"
+
+ if [ -f "$thing" ]; then
+ echo "local archive, skipping get"
+ return
+ elif [ -d "${thing}" ]; then
+ echo "local directory instead of tar file, skipping get"
+ return
+ else
+ thing="${url/file:\/\//./}"
+ if [ -d "${thing}" ]; then
+ echo "local project directory instead of tar file, skipping get"
+ return
+ fi
+ fi
+ ;;
+ *)
+ echo
+ echo "Unknown URL Type!"
+ echo "URL: $url"
+ echo
+ exit 1
+ ;;
+ esac
+ done
+
+ if [ "${ptxd_make_get_nofail}" != "y" ]; then
+ echo
+ echo "Could not download package"
+ echo "URL: ${orig_argv[@]}"
+ echo
+ exit 1
+ fi
}
export -f ptxd_make_get
diff --git a/scripts/lib/ptxd_make_image_fix_permissions.sh b/scripts/lib/ptxd_make_image_fix_permissions.sh
index bf1a2c816..f53f45bae 100644
--- a/scripts/lib/ptxd_make_image_fix_permissions.sh
+++ b/scripts/lib/ptxd_make_image_fix_permissions.sh
@@ -35,7 +35,7 @@ ptxd_make_image_fix_permissions_check() {
ptxd_check_obsolete_perm "${ptxd_reply_perm_files[@]}"
# just care about dev-nodes, for now
- egrep -h "^[n]${IFS}" "${ptxd_reply_perm_files[@]}" |
+ grep -E -h "^[n]${IFS}" "${ptxd_reply_perm_files[@]}" |
while read kind file uid_should gid_should prm_should type major_should minor_should; do
local fixup=false
file="${workdir}/${file#/}"
diff --git a/scripts/lib/ptxd_make_image_prepare_work_dir.sh b/scripts/lib/ptxd_make_image_prepare_work_dir.sh
index fa65ce8ec..aaa676e09 100644
--- a/scripts/lib/ptxd_make_image_prepare_work_dir.sh
+++ b/scripts/lib/ptxd_make_image_prepare_work_dir.sh
@@ -39,9 +39,6 @@ ${list[*]}
ARCH="${PTXDIST_IPKG_ARCH_STRING}" \
SRC="" \
- CHECKSIG="" \
- CAPATH="" \
- CAFILE="" \
ptxd_replace_magic "${ptxd_reply}" >> "${xpkg_conf}" &&
DESTDIR="${work_dir}" \
diff --git a/scripts/lib/ptxd_make_install_image.sh b/scripts/lib/ptxd_make_install_image.sh
new file mode 100644
index 000000000..c447d8c47
--- /dev/null
+++ b/scripts/lib/ptxd_make_install_image.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+#
+# Copyright (C) 2013 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+
+ptxd_make_image_install_record() {
+ (
+ if [ -e "${pkg_image_stamp}" ]; then
+ grep -v "^${pkg_image}$" "${pkg_image_stamp}"
+ fi
+ echo "${pkg_image}"
+ ) > "${pkg_image_stamp}.tmp" &&
+ mv "${pkg_image_stamp}.tmp" "${pkg_image_stamp}"
+}
+export -f ptxd_make_image_install_record
+
+ptxd_make_image_install() {
+ ptxd_make_world_init || return
+ local pkg_image_stamp="${ptx_state_dir}/${pkg_label}.images"
+
+ if [ -z "${pkg_image}" ]; then
+ pkg_image="$(basename "${pkg_file}")"
+ fi
+ pkg_image="${ptx_image_dir}/${pkg_image}"
+
+ echo "Installing '$(ptxd_print_path "${pkg_file}")' to '$(ptxd_print_path "${pkg_image}")'"
+
+ install -D -m644 "${pkg_file}" "${pkg_image}" &&
+ ptxd_make_image_install_record
+}
+export -f ptxd_make_image_install
+
+ptxd_make_image_install_link() {
+ ptxd_make_world_init || return
+ local pkg_image_stamp="${ptx_state_dir}/${pkg_label}.images"
+
+ pkg_image="${ptx_image_dir}/${pkg_image}"
+
+ echo "Linking '${pkg_file}' to '$(ptxd_print_path "${pkg_image}")'"
+
+ ln -sf "${pkg_file}" "${pkg_image}" &&
+ ptxd_make_image_install_record
+}
+export -f ptxd_make_image_install_link
diff --git a/scripts/lib/ptxd_make_license_report.sh b/scripts/lib/ptxd_make_license_report.sh
index c92dc725d..24f833637 100644
--- a/scripts/lib/ptxd_make_license_report.sh
+++ b/scripts/lib/ptxd_make_license_report.sh
@@ -18,6 +18,7 @@ ptxd_make_license_report_header() {
\usepackage{tikz}
\usepackage{adjustbox}
\usepackage{spverbatim}
+ \usepackage{pdfpages}
\hypersetup{colorlinks=true,linkcolor=blue,urlcolor=blue}
%% Something like this may be needed depending on the package list
@@ -184,7 +185,7 @@ ptxd_make_license_report() {
ptxd_make_license_report_header
for pkg in ${@}; do
pkg_lic="${ptxd_package_license_association[${pkg}]}"
- if [ -z ${pkg_lic} ]; then
+ if [ -z ${pkg_lic} -o "${pkg_lic}" = "ignore" ]; then
continue
fi
pkg_lic="${pkg_lic}/${pkg}"
@@ -209,6 +210,7 @@ ptxd_make_license_compliance_header() {
\usepackage{tikz}
\usepackage{adjustbox}
\usepackage{spverbatim}
+ \usepackage{pdfpages}
\hypersetup{colorlinks=true,linkcolor=blue,urlcolor=blue}
%% Something like this may be needed depending on the package list
@@ -261,7 +263,6 @@ ptxd_make_license_compliance_footer() {
export -f ptxd_make_license_compliance_footer
ptxd_make_license_compliance_pdf() {
- local -a ptxd_reply
local ptx_license_target_tex pkg_lic pkg
local -A ptxd_package_license_association
@@ -278,7 +279,7 @@ ptxd_make_license_compliance_pdf() {
ptxd_make_license_compliance_header
for pkg in ${@}; do
pkg_lic="${ptxd_package_license_association[${pkg}]}"
- if [ -z "${pkg_lic}" -o "${pkg_lic}" = "proprietary" ]; then
+ if [ -z "${pkg_lic}" -o "${pkg_lic}" = "proprietary" -o "${pkg_lic}" = "ignore" ]; then
continue
fi
pkg_lic="${pkg_lic}/${pkg}"
@@ -293,8 +294,7 @@ ptxd_make_license_compliance_pdf() {
export -f ptxd_make_license_compliance_pdf
ptxd_make_license_compliance_yaml() {
- local -a ptxd_reply
- local ptx_license_target_tex pkg_lic pkg
+ local pkg_lic pkg
local -A ptxd_package_license_association
# regenerate license info and sort out unused packages
diff --git a/scripts/lib/ptxd_make_meson_toolchain.sh b/scripts/lib/ptxd_make_meson_toolchain.sh
index 3984469bb..50a9ca348 100644
--- a/scripts/lib/ptxd_make_meson_toolchain.sh
+++ b/scripts/lib/ptxd_make_meson_toolchain.sh
@@ -23,6 +23,7 @@ ptxd_make_meson_cross_file() {
esac
ptxd_get_alternative config meson/cross-file.meson.in &&
CPU="$(ptxd_cross_cc_v | sed -n -e "s/.*'-march=\([^']*\).*/\1/p" -e "/-march=/q")" \
+ RUSTC="['rustc', '--target', '${PTXCONF_RUST_TARGET}']" \
ptxd_replace_magic "${ptxd_reply}" > "${1}"
}
export -f ptxd_make_meson_cross_file
diff --git a/scripts/lib/ptxd_make_nested.sh b/scripts/lib/ptxd_make_nested.sh
new file mode 100644
index 000000000..c039a8c77
--- /dev/null
+++ b/scripts/lib/ptxd_make_nested.sh
@@ -0,0 +1,85 @@
+#!/bin/bash
+#
+# Copyright (C) 2023 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+ptxd_make_nested_ptxdist_impl() {
+ # close all unneeded fds. The nested PTXdist will open its own fds.
+ exec 9>&-
+ if [ -n "${PTXDIST_FD_STDOUT}" ]; then
+ exec {PTXDIST_FD_STDOUT}>&-
+ exec {PTXDIST_FD_STDERR}>&-
+ fi
+ exec {ptxd_make_serialize_get_writefd}>&-
+ exec {ptxd_make_serialize_get_readfd}>&-
+ exec {ptxd_make_serialize_extract_writefd}>&-
+ exec {ptxd_make_serialize_extract_readfd}>&-
+
+ # let shell split by IFS
+ set -- ${PTXCONF_SETUP_ENV_WHITELIST} ${PTXDIST_ENV_WHITELIST} PTXDIST_ENV_WHITELIST
+ whitelist="${*}"
+ whitelist="${whitelist:+|}${whitelist// /|}"
+
+ unset $({
+ export -p | sed -n 's/^declare -x \([^=]*\).*$/\1/p'
+ export -fp | sed -n 's/^declare -fx \([^=]*\).*$/\1/p'
+ } | grep -E -v "^(args|PTXDIST_PTXRC|PTX_AUTOBUILD_DESTDIR|PTXDIST_PLATFORMDIR|CCACHE_.*|PWD|HOME|USER|PATH|TERM|COLUMNS|LINES|DISPLAY|TMPDIR|http_proxy|https_proxy|ftp_proxy|no_proxy${whitelist})$")
+
+ PATH=$(sed -e 's;[^:]*/sysroot-\(host\|cross\)/[^:]*:;;g' -e "s;${PTXDIST_TOPDIR}/bin:;;" -e "s;${PTXDIST_TOOLCHAIN}:;;" <<< "${PATH}")
+
+ eval "${args[@]}"
+}
+export -f ptxd_make_nested_ptxdist_impl
+
+#
+# Clear the environment and call a nested PTXdist.
+# Can be used to build other platforms.
+#
+ptxd_make_nested_ptxdist() {
+ local -a args
+
+ ptxd_make_world_init || return
+
+ if [ -z "${pkg_workspace}" ]; then
+ pkg_workspace="${PTXDIST_WORKSPACE}"
+ fi
+ args=( "cd" "${pkg_workspace}" "&&" "${PTXDIST_TOPDIR}/bin/ptxdist" )
+
+ if [ "${PTXDIST_DIRTY}" = true ]; then
+ args[${#args[*]}]="--dirty"
+ fi
+ if [ "${PTXDIST_FORCE}" = true ]; then
+ args[${#args[*]}]="--force"
+ fi
+ if [ "${PTXDIST_PEDANTIC}" = true ]; then
+ args[${#args[*]}]="--pedantic"
+ fi
+ if [ "${PTXDIST_QUIET}" = 1 ]; then
+ args[${#args[*]}]="--quiet"
+ fi
+ if [ "${PTXDIST_VERBOSE}" = 1 ]; then
+ args[${#args[*]}]="--verbose"
+ fi
+ if [ -n "${PTXDIST_PARALLEL_FLAGS}" ]; then
+ args[${#args[*]}]="${PTXDIST_PARALLEL_FLAGS}"
+ fi
+ if [[ "${PTXDIST_JOBSERVER_FLAGS}" =~ ^--jobserver-auth ]]; then
+ args[${#args[*]}]="${PTXDIST_JOBSERVER_FLAGS}"
+ fi
+ args+=( "${@}" )
+
+ ptxd_verbose "executing:" "${args[@]}"
+
+ # run ptxdist but don't log it. It has it's on logfile
+ (
+ if [ -n "${PTXDIST_FD_STDOUT}" ]; then
+ exec 1> >(sed "s/^/${pkg_label}: /" >&${PTXDIST_FD_STDOUT})
+ exec 2> >(sed "s/^/${pkg_label}: /" >&${PTXDIST_FD_STDERR})
+ fi
+ ptxd_make_nested_ptxdist_impl
+ )
+}
+export -f ptxd_make_nested_ptxdist
diff --git a/scripts/lib/ptxd_make_pkghash.awk b/scripts/lib/ptxd_make_pkghash.awk
index 2ecae47b4..c7a273166 100755
--- a/scripts/lib/ptxd_make_pkghash.awk
+++ b/scripts/lib/ptxd_make_pkghash.awk
@@ -30,39 +30,53 @@ $1 == "RULES:" {
rules[pkg] = rules[pkg] " " rule
}
-function dump_file(src, dst, tmp) {
+$1 == "DEPS:" {
+ pkg = $2
+ $1 = $2 = ""
+ deps[pkg] = $0
+}
+
+function read_file(src, data, pkg, tmp) {
if (!src)
return
old_RS = RS
RS = "^$"
getline tmp < src
- printf "%s", tmp >> dst
RS = old_RS
close(src)
- close(dst)
+ data[pkg] = data[pkg] tmp "\n"
}
END {
for (pkg in rules) {
f1 = PTXDIST_TEMPDIR "/pkghash-" pkg
+ f2 = PTXDIST_TEMPDIR "/pkghash-" pkg "_EXTRACT"
+ old_RS = RS
+ RS = "^$"
+ getline tmp < f1
+ data[pkg] = tmp
+ getline tmp < f2
+ extract_data[pkg] = tmp
+ RS = old_RS
+ close(f1)
+ close(f2)
+ }
+ for (pkg in rules) {
n = split(rules[pkg], cfgs)
- for (rule = 1; rule <= n; rule++) {
- dump_file(cfgs[rule], f1)
- printf "\n" >> f1
- }
+ for (rule = 1; rule <= n; rule++)
+ read_file(cfgs[rule], data, pkg)
}
for (pkg in configs) {
config = configs[pkg]
- f1 = PTXDIST_TEMPDIR "/pkghash-" pkg
n = split(configs[pkg], cfgs)
for (config = 1; config <= n; config++)
- dump_file(cfgs[config], f1)
+ read_file(cfgs[config], data, pkg)
}
if (dirs == "")
exit;
n = split(dirs, dir_array, " ");
- asort(dir_array, dir_array);
+ asort(dir_array);
dirs = ""
last = ""
for (i = 1; i <= n; i++) {
@@ -77,16 +91,28 @@ END {
for (dir in pkgs) {
split(pkgs[dir], list, " ")
n = split(files[dir], file_list, " ")
- asort(file_list, file_list)
- for (pkg in list) {
- pkg = list[pkg]
- f1 = PTXDIST_TEMPDIR "/pkghash-" pkg
- f2 = PTXDIST_TEMPDIR "/pkghash-" pkg "_EXTRACT"
+ asort(file_list)
+ for (j in list) {
+ pkg = list[j]
for (i = 1; i <= n; i++) {
file = dir "/" file_list[i]
- dump_file(file, f1)
- dump_file(file, f2)
+ read_file(file, extract_data, pkg)
}
}
}
+ for (pkg in rules) {
+ f1 = PTXDIST_TEMPDIR "/pkghash-" pkg
+ f2 = PTXDIST_TEMPDIR "/pkghash-" pkg "_EXTRACT"
+ print data[pkg] extract_data[pkg] > f1
+ print extract_data[pkg] > f2
+ m = split(deps[pkg], list, " ");
+ for (j in list) {
+ dep = list[j]
+ if (match(dep, /^HOST_SYSTEM_/))
+ continue
+ print data[dep] extract_data[dep] >> f1
+ }
+ close(f1)
+ close(f2)
+ }
}
diff --git a/scripts/lib/ptxd_make_report.sh b/scripts/lib/ptxd_make_report.sh
new file mode 100644
index 000000000..885f07828
--- /dev/null
+++ b/scripts/lib/ptxd_make_report.sh
@@ -0,0 +1,148 @@
+#!/bin/bash
+#
+# Copyright (C) 2022 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+ptxd_make_bsp_report_header() {
+ local layer
+ local indent=" "
+
+ do_echo() {
+ if [ -n "${2}" ]; then
+ echo "${indent}${1} '${2}'"
+ fi
+ }
+ do_list() {
+ if [ -n "${2}" ]; then
+ echo "${indent}${1}"
+ awk "BEGIN { RS=\" \" } { if (\$1) print \"${indent}- '\" \$1 \"'\" }" <<<"${2}"
+ fi
+ }
+ do_path() {
+ local orig_IFS="${IFS}"
+ # only the paths added by PTXdist
+ local path="${2%:${PTXDIST_TOPDIR}/bin:*}:${PTXDIST_TOPDIR}/bin"
+ echo "${indent}${1}"
+ awk "BEGIN { RS=\":\" } { if (\$1) print \"${indent}- '\" \$1 \"'\" }" <<<"${path}"
+ }
+
+ echo "ptxdist:"
+ do_echo "version:" "${PTXDIST_VERSION_FULL}"
+ do_echo "path:" "${PTXDIST_TOPDIR}"
+ echo "bsp:"
+ do_echo "vendor:" "$(ptxd_get_ptxconf PTXCONF_PROJECT_VENDOR)"
+ do_echo "project:" "$(ptxd_get_ptxconf PTXCONF_PROJECT)"
+ do_echo "project-version:" "$(ptxd_get_ptxconf PTXCONF_PROJECT_VERSION)"
+ do_echo "platform:" "$(ptxd_get_ptxconf PTXCONF_PLATFORM)"
+ do_echo "platform-version:" "$(ptxd_get_ptxconf PTXCONF_PLATFORM_VERSION)"
+ do_echo "ptxconfig:" "${PTXDIST_PTXCONFIG}"
+ do_echo "platformconfig:" "${PTXDIST_PLATFORMCONFIG}"
+ do_echo "collectionconfig:" "${PTXDIST_COLLECTIONCONFIG}"
+ do_echo "toolchain:" "$(readlink -f "${PTXDIST_PLATFORMDIR}/selected_toolchain")"
+ echo " layers:"
+ for layer in "${PTXDIST_LAYERS[@]}"; do
+ echo " - '${layer}'"
+ done
+
+ echo "develop:"
+ do_echo "workspace:" "${PTXDIST_WORKSPACE}"
+ do_echo "platform:" "${PTXDIST_PLATFORMDIR}"
+ indent=" "
+ echo " host:"
+ do_path "path:" "${ptx_path_host}"
+ do_echo "toolchain-prefix:" "${PTXDIST_PATH_SYSROOT_HOST}/usr/lib/wrapper"
+ do_echo "cmake-toolchain:" "${PTXDIST_CMAKE_TOOLCHAIN_HOST}"
+ echo " target:"
+ do_path "path:" "${ptx_path_target}"
+ do_echo "toolchain-prefix:" "${PTXDIST_PATH_SYSROOT_HOST}/usr/lib/wrapper"
+ do_echo "gnu-target:" "$(ptxd_get_ptxconf PTXCONF_GNU_TARGET)"
+ do_echo "compiler-prefix:" "$(ptxd_get_ptxconf PTXCONF_COMPILER_PREFIX)"
+ do_echo "cmake-toolchain:" "${PTXDIST_CMAKE_TOOLCHAIN_TARGET}"
+ do_echo "meson-cross-file:" "${PTXDIST_MESON_CROSS_FILE}"
+ do_echo "nfsroot:" "${ptx_nfsroot}"
+}
+export -f ptxd_make_bsp_report_header
+
+ptxd_make_full_bsp_report_pkg() {
+ pkg_lic="${ptxd_package_license_association[${pkg}]}"
+ if [ -z "${pkg_lic}" ]; then
+ return
+ fi
+ pkg_lic="${pkg_lic}/${pkg}"
+ echo " ${pkg}:"
+ sed 's/^/ /' "${ptx_report_dir}/${pkg_lic}/license-report.yaml"
+}
+export -f ptxd_make_full_bsp_report_pkg
+
+ptxd_make_full_bsp_report() {
+ local -a ptxd_reply
+ local pkg_lic pkg
+ local -A ptxd_package_license_association
+
+ ptxd_make_layer_init || return
+
+ echo "Generating $(ptxd_print_path "${ptx_report_target}") ..."
+ echo
+
+ # regenerate license info and sort out unused packages
+ for pkg in $(<"${ptx_report_dir}/package.list"); do
+ ptxd_package_license_association[$(basename ${pkg})]=$(dirname ${pkg})
+ done
+
+ mkdir -p "$(dirname "${ptx_report_target}")" &&
+ (
+ ptxd_make_bsp_report_header || exit
+ echo "packages:"
+ for pkg in $(printf '%s\n' ${ptx_packages_selected} | sort -u); do
+ ptxd_make_full_bsp_report_pkg || exit
+ done
+ echo "images:"
+ for pkg in $(printf '%s\n' ${ptx_image_packages} | sort -u); do
+ ptxd_make_full_bsp_report_pkg || exit
+ done
+ ) > "${PTXDIST_TEMPDIR}/full-report" &&
+ mv "${PTXDIST_TEMPDIR}/full-report" "${ptx_report_target}" ||
+ ptxd_bailout "failed to create BSP report"
+}
+export -f ptxd_make_full_bsp_report
+
+
+ptxd_make_fast_bsp_report_pkg() {
+ local pkg_report="${ptx_report_dir}/fast/${pkg}.yaml"
+ if [ ! -e "${pkg_report}" ]; then
+ return
+ fi
+ echo " ${pkg}:"
+ sed 's/^/ /' "${pkg_report}"
+}
+export -f ptxd_make_fast_bsp_report_pkg
+
+ptxd_make_fast_bsp_report() {
+ local -a ptxd_reply
+ local pkg_lic pkg
+
+ ptxd_make_layer_init || return
+
+ echo "Generating $(ptxd_print_path "${ptx_report_target}") ..."
+ echo
+
+ mkdir -p "$(dirname "${ptx_report_target}")" &&
+ (
+ ptxd_make_bsp_report_header || exit
+ echo "packages:"
+ for pkg in $(printf '%s\n' ${ptx_packages_selected} | sort -u); do
+ ptxd_make_fast_bsp_report_pkg || exit
+ done
+ echo "images:"
+ for pkg in $(printf '%s\n' ${ptx_image_packages} | sort -u); do
+ ptxd_make_fast_bsp_report_pkg || exit
+ done
+ ) > "${PTXDIST_TEMPDIR}/fast-report" &&
+ mv "${PTXDIST_TEMPDIR}/fast-report" "${ptx_report_target}" ||
+ ptxd_bailout "failed to create BSP report"
+}
+export -f ptxd_make_fast_bsp_report
+
diff --git a/scripts/lib/ptxd_make_serialize.sh b/scripts/lib/ptxd_make_serialize.sh
index 88d8e5f6c..936ae929c 100644
--- a/scripts/lib/ptxd_make_serialize.sh
+++ b/scripts/lib/ptxd_make_serialize.sh
@@ -45,12 +45,33 @@ ptxd_make_serialize_setup() {
}
export -f ptxd_make_serialize_setup
+ptxd_make_serialize_import() {
+ local name="${1}"
+ local -a fds
+ local writeptr="ptxd_make_serialize_${name}_writefd"
+ local readptr="ptxd_make_serialize_${name}_readfd"
+
+ IFS="," read -r -a fds <<< "${PTXDIST_JOBSERVER_AUTH}"
+
+ if [ "${#fds[*]}" -ne 2 ]; then
+ ptxd_bailout "invalid argument for --jobserver-auth="
+ fi
+ eval "${readptr}"="${fds[0]}" &&
+ eval "${writeptr}"="${fds[1]}" &&
+ export "${readptr}" "${writeptr}"
+}
+export -f ptxd_make_serialize_import
+
ptxd_make_serialize_init() {
local num="${PTXDIST_PARALLELMFLAGS#-j}"
local sync mflags jobserver
if [ -n "${num}" ]; then
- ptxd_make_serialize_setup global "${num}" || return
+ if [ -n "${PTXDIST_JOBSERVER_AUTH}" ]; then
+ ptxd_make_serialize_import global || return
+ else
+ ptxd_make_serialize_setup global "${num}" || return
+ fi
sync="${PTXDIST_OUTPUT_SYNC:+${PTXDIST_OUTPUT_SYNC}recurse}"
jobserver="--jobserver-auth"
if ! "${PTXCONF_SETUP_HOST_MAKE}" ${jobserver}=42,43 --help >& /dev/null; then
diff --git a/scripts/lib/ptxd_make_spdx.sh b/scripts/lib/ptxd_make_spdx.sh
index c81b70ef6..0a47d7086 100644
--- a/scripts/lib/ptxd_make_spdx.sh
+++ b/scripts/lib/ptxd_make_spdx.sh
@@ -18,11 +18,14 @@ ptxd_make_spdx() {
license="${1}"
case "${license}" in
- 0BSD) ;;
+ 0BSD) osi="true" ;;
AAL) osi="true" ;;
Abstyles) ;;
+ AdaCore-doc) ;;
Adobe-2006) ;;
+ Adobe-Display-PostScript) ;;
Adobe-Glyph) ;;
+ Adobe-Utopia) ;;
ADSL) ;;
AFL-1.1) osi="true" ;;
AFL-1.2) osi="true" ;;
@@ -30,88 +33,147 @@ ptxd_make_spdx() {
AFL-2.1) osi="true" ;;
AFL-3.0) osi="true" ;;
Afmparse) ;;
- AGPL-1.0) ;;
+ AGPL-1.0) deprecated="true" ;;
+ AGPL-1.0-only) ;;
+ AGPL-1.0-or-later) ;;
+ AGPL-3.0) deprecated="true" ;;
AGPL-3.0-only) osi="true" ;;
AGPL-3.0-or-later) osi="true" ;;
Aladdin) ;;
AMDPLPA) ;;
AML) ;;
+ AML-glslang) ;;
AMPAS) ;;
ANTLR-PD) ;;
+ ANTLR-PD-fallback) ;;
Apache-1.0) ;;
Apache-1.1) osi="true" ;;
Apache-2.0) osi="true" ;;
APAFML) ;;
APL-1.0) osi="true" ;;
+ App-s2p) ;;
APSL-1.0) osi="true" ;;
APSL-1.1) osi="true" ;;
APSL-1.2) osi="true" ;;
APSL-2.0) osi="true" ;;
+ Arphic-1999) ;;
+ Artistic-1.0) osi="true" ;;
Artistic-1.0-cl8) osi="true" ;;
Artistic-1.0-Perl) osi="true" ;;
- Artistic-1.0) osi="true" ;;
Artistic-2.0) osi="true" ;;
+ ASWF-Digital-Assets-1.0) ;;
+ ASWF-Digital-Assets-1.1) ;;
+ Baekmuk) ;;
Bahyph) ;;
Barr) ;;
Beerware) ;;
+ Bitstream-Charter) ;;
+ Bitstream-Vera) ;;
BitTorrent-1.0) ;;
BitTorrent-1.1) ;;
+ blessing) ;;
+ BlueOak-1.0.0) ;;
+ Boehm-GC) ;;
Borceux) ;;
- BSD-1-Clause) ;;
- BSD-2-Clause-FreeBSD) ;;
- BSD-2-Clause-NetBSD) ;;
- BSD-2-Clause-Patent) osi="true" ;;
+ Brian-Gladman-3-Clause) ;;
+ BSD-1-Clause) osi="true" ;;
BSD-2-Clause) osi="true" ;;
+ BSD-2-Clause-FreeBSD) deprecated="true" ;;
+ BSD-2-Clause-NetBSD) deprecated="true" ;;
+ BSD-2-Clause-Patent) osi="true" ;;
+ BSD-2-Clause-Views) ;;
+ BSD-3-Clause) osi="true" ;;
BSD-3-Clause-Attribution) ;;
BSD-3-Clause-Clear) ;;
- BSD-3-Clause-LBNL) ;;
- BSD-3-Clause-No-Nuclear-License-2014) ;;
+ BSD-3-Clause-flex) ;;
+ BSD-3-Clause-HP) ;;
+ BSD-3-Clause-LBNL) osi="true" ;;
+ BSD-3-Clause-Modification) ;;
+ BSD-3-Clause-No-Military-License) ;;
BSD-3-Clause-No-Nuclear-License) ;;
+ BSD-3-Clause-No-Nuclear-License-2014) ;;
BSD-3-Clause-No-Nuclear-Warranty) ;;
- BSD-3-Clause) osi="true" ;;
- BSD-4-Clause-UC) ;;
+ BSD-3-Clause-Open-MPI) ;;
+ BSD-3-Clause-Sun) ;;
BSD-4-Clause) ;;
+ BSD-4-Clause-Shortened) ;;
+ BSD-4-Clause-UC) ;;
+ BSD-4.3RENO) ;;
+ BSD-4.3TAHOE) ;;
+ BSD-Advertising-Acknowledgement) ;;
+ BSD-Attribution-HPND-disclaimer) ;;
+ BSD-Inferno-Nettverk) ;;
BSD-Protection) ;;
BSD-Source-Code) ;;
+ BSD-Systemics) ;;
+ BSD-Systemics-W3Works) ;;
BSL-1.0) osi="true" ;;
- bzip2-1.0.5) ;;
+ BUSL-1.1) ;;
+ bzip2-1.0.5) deprecated="true" ;;
bzip2-1.0.6) ;;
+ C-UDA-1.0) ;;
+ CAL-1.0) osi="true" ;;
+ CAL-1.0-Combined-Work-Exception) osi="true" ;;
Caldera) ;;
CATOSL-1.1) osi="true" ;;
CC-BY-1.0) ;;
CC-BY-2.0) ;;
CC-BY-2.5) ;;
+ CC-BY-2.5-AU) ;;
CC-BY-3.0) ;;
+ CC-BY-3.0-AT) ;;
+ CC-BY-3.0-AU) ;;
+ CC-BY-3.0-DE) ;;
+ CC-BY-3.0-IGO) ;;
+ CC-BY-3.0-NL) ;;
+ CC-BY-3.0-US) ;;
CC-BY-4.0) ;;
CC-BY-NC-1.0) ;;
CC-BY-NC-2.0) ;;
CC-BY-NC-2.5) ;;
CC-BY-NC-3.0) ;;
+ CC-BY-NC-3.0-DE) ;;
CC-BY-NC-4.0) ;;
CC-BY-NC-ND-1.0) ;;
CC-BY-NC-ND-2.0) ;;
CC-BY-NC-ND-2.5) ;;
CC-BY-NC-ND-3.0) ;;
+ CC-BY-NC-ND-3.0-DE) ;;
+ CC-BY-NC-ND-3.0-IGO) ;;
CC-BY-NC-ND-4.0) ;;
CC-BY-NC-SA-1.0) ;;
CC-BY-NC-SA-2.0) ;;
+ CC-BY-NC-SA-2.0-DE) ;;
+ CC-BY-NC-SA-2.0-FR) ;;
+ CC-BY-NC-SA-2.0-UK) ;;
CC-BY-NC-SA-2.5) ;;
CC-BY-NC-SA-3.0) ;;
+ CC-BY-NC-SA-3.0-DE) ;;
+ CC-BY-NC-SA-3.0-IGO) ;;
CC-BY-NC-SA-4.0) ;;
CC-BY-ND-1.0) ;;
CC-BY-ND-2.0) ;;
CC-BY-ND-2.5) ;;
CC-BY-ND-3.0) ;;
+ CC-BY-ND-3.0-DE) ;;
CC-BY-ND-4.0) ;;
CC-BY-SA-1.0) ;;
CC-BY-SA-2.0) ;;
+ CC-BY-SA-2.0-UK) ;;
+ CC-BY-SA-2.1-JP) ;;
CC-BY-SA-2.5) ;;
CC-BY-SA-3.0) ;;
+ CC-BY-SA-3.0-AT) ;;
+ CC-BY-SA-3.0-DE) ;;
+ CC-BY-SA-3.0-IGO) ;;
CC-BY-SA-4.0) ;;
+ CC-PDDC) ;;
CC0-1.0) ;;
CDDL-1.0) osi="true" ;;
CDDL-1.1) ;;
+ CDL-1.0) ;;
CDLA-Permissive-1.0) ;;
+ CDLA-Permissive-2.0) ;;
CDLA-Sharing-1.0) ;;
CECILL-1.0) ;;
CECILL-1.1) ;;
@@ -119,97 +181,207 @@ ptxd_make_spdx() {
CECILL-2.1) osi="true" ;;
CECILL-B) ;;
CECILL-C) ;;
+ CERN-OHL-1.1) ;;
+ CERN-OHL-1.2) ;;
+ CERN-OHL-P-2.0) osi="true" ;;
+ CERN-OHL-S-2.0) osi="true" ;;
+ CERN-OHL-W-2.0) osi="true" ;;
+ CFITSIO) ;;
+ check-cvs) ;;
+ checkmk) ;;
ClArtistic) ;;
+ Clips) ;;
+ CMU-Mach) ;;
CNRI-Jython) ;;
- CNRI-Python-GPL-Compatible) ;;
CNRI-Python) osi="true" ;;
+ CNRI-Python-GPL-Compatible) ;;
+ COIL-1.0) ;;
+ Community-Spec-1.0) ;;
Condor-1.1) ;;
+ copyleft-next-0.3.0) ;;
+ copyleft-next-0.3.1) ;;
+ Cornell-Lossless-JPEG) ;;
CPAL-1.0) osi="true" ;;
CPL-1.0) osi="true" ;;
CPOL-1.02) ;;
+ Cronyx) ;;
Crossword) ;;
CrystalStacker) ;;
CUA-OPL-1.0) osi="true" ;;
Cube) ;;
curl) ;;
D-FSL-1.0) ;;
+ DEC-3-Clause) ;;
diffmark) ;;
+ DL-DE-BY-2.0) ;;
+ DL-DE-ZERO-2.0) ;;
DOC) ;;
Dotseqn) ;;
+ DRL-1.0) ;;
+ DRL-1.1) ;;
DSDP) ;;
+ dtoa) ;;
dvipdfm) ;;
ECL-1.0) osi="true" ;;
ECL-2.0) osi="true" ;;
+ eCos-2.0) deprecated="true" ;;
EFL-1.0) osi="true" ;;
EFL-2.0) osi="true" ;;
eGenix) ;;
+ Elastic-2.0) ;;
Entessa) osi="true" ;;
+ EPICS) ;;
EPL-1.0) osi="true" ;;
EPL-2.0) osi="true" ;;
ErlPL-1.1) ;;
+ etalab-2.0) ;;
EUDatagrid) osi="true" ;;
EUPL-1.0) ;;
EUPL-1.1) osi="true" ;;
EUPL-1.2) osi="true" ;;
Eurosym) ;;
Fair) osi="true" ;;
+ FBM) ;;
+ FDK-AAC) ;;
+ Ferguson-Twofish) ;;
Frameworx-1.0) osi="true" ;;
+ FreeBSD-DOC) ;;
FreeImage) ;;
FSFAP) ;;
+ FSFAP-no-warranty-disclaimer) ;;
FSFUL) ;;
FSFULLR) ;;
+ FSFULLRWD) ;;
FTL) ;;
+ Furuseth) ;;
+ fwlw) ;;
+ GCR-docs) ;;
+ GD) ;;
+ GFDL-1.1) deprecated="true" ;;
+ GFDL-1.1-invariants-only) ;;
+ GFDL-1.1-invariants-or-later) ;;
+ GFDL-1.1-no-invariants-only) ;;
+ GFDL-1.1-no-invariants-or-later) ;;
GFDL-1.1-only) ;;
GFDL-1.1-or-later) ;;
+ GFDL-1.2) deprecated="true" ;;
+ GFDL-1.2-invariants-only) ;;
+ GFDL-1.2-invariants-or-later) ;;
+ GFDL-1.2-no-invariants-only) ;;
+ GFDL-1.2-no-invariants-or-later) ;;
GFDL-1.2-only) ;;
GFDL-1.2-or-later) ;;
+ GFDL-1.3) deprecated="true" ;;
+ GFDL-1.3-invariants-only) ;;
+ GFDL-1.3-invariants-or-later) ;;
+ GFDL-1.3-no-invariants-only) ;;
+ GFDL-1.3-no-invariants-or-later) ;;
GFDL-1.3-only) ;;
GFDL-1.3-or-later) ;;
Giftware) ;;
GL2PS) ;;
Glide) ;;
Glulxe) ;;
+ GLWTPL) ;;
gnuplot) ;;
+ GPL-1.0) deprecated="true" ;;
+ GPL-1.0+) deprecated="true" ;;
GPL-1.0-only) ;;
GPL-1.0-or-later) ;;
+ GPL-2.0) deprecated="true" ;;
+ GPL-2.0+) deprecated="true" ;;
GPL-2.0-only) osi="true" ;;
GPL-2.0-or-later) osi="true" ;;
+ GPL-2.0-with-autoconf-exception) deprecated="true" ;;
+ GPL-2.0-with-bison-exception) deprecated="true" ;;
+ GPL-2.0-with-classpath-exception) deprecated="true" ;;
+ GPL-2.0-with-font-exception) deprecated="true" ;;
+ GPL-2.0-with-GCC-exception) deprecated="true" ;;
+ GPL-3.0) deprecated="true" ;;
+ GPL-3.0+) deprecated="true" ;;
GPL-3.0-only) osi="true" ;;
GPL-3.0-or-later) osi="true" ;;
+ GPL-3.0-with-autoconf-exception) deprecated="true" ;;
+ GPL-3.0-with-GCC-exception) deprecated="true" ;;
+ Graphics-Gems) ;;
gSOAP-1.3b) ;;
HaskellReport) ;;
+ hdparm) ;;
+ Hippocratic-2.1) ;;
+ HP-1986) ;;
+ HP-1989) ;;
HPND) osi="true" ;;
+ HPND-DEC) ;;
+ HPND-doc) ;;
+ HPND-doc-sell) ;;
+ HPND-export-US) ;;
+ HPND-export-US-modify) ;;
+ HPND-Kevlin-Henney) ;;
+ HPND-Markus-Kuhn) ;;
+ HPND-Pbmplus) ;;
+ HPND-sell-MIT-disclaimer-xserver) ;;
+ HPND-sell-regexpr) ;;
+ HPND-sell-variant) ;;
+ HPND-sell-variant-MIT-disclaimer) ;;
+ HPND-UC) ;;
+ HTMLTIDY) ;;
IBM-pibs) ;;
- ICU) ;;
+ ICU) osi="true" ;;
+ IEC-Code-Components-EULA) ;;
IJG) ;;
+ IJG-short) ;;
ImageMagick) ;;
iMatix) ;;
Imlib2) ;;
Info-ZIP) ;;
- Intel-ACPI) ;;
+ Inner-Net-2.0) ;;
Intel) osi="true" ;;
+ Intel-ACPI) ;;
Interbase-1.0) ;;
IPA) osi="true" ;;
IPL-1.0) osi="true" ;;
ISC) osi="true" ;;
+ ISC-Veillard) ;;
+ Jam) osi="true" ;;
JasPer-2.0) ;;
+ JPL-image) ;;
+ JPNIC) ;;
JSON) ;;
+ Kastrup) ;;
+ Kazlib) ;;
+ Knuth-CTAN) ;;
LAL-1.2) ;;
LAL-1.3) ;;
Latex2e) ;;
+ Latex2e-translated-notice) ;;
Leptonica) ;;
+ LGPL-2.0) deprecated="true" ;;
+ LGPL-2.0+) deprecated="true" ;;
LGPL-2.0-only) osi="true" ;;
LGPL-2.0-or-later) osi="true" ;;
+ LGPL-2.1) deprecated="true" ;;
+ LGPL-2.1+) deprecated="true" ;;
LGPL-2.1-only) osi="true" ;;
LGPL-2.1-or-later) osi="true" ;;
+ LGPL-3.0) deprecated="true" ;;
+ LGPL-3.0+) deprecated="true" ;;
LGPL-3.0-only) osi="true" ;;
LGPL-3.0-or-later) osi="true" ;;
LGPLLR) ;;
Libpng) ;;
+ libpng-2.0) ;;
+ libselinux-1.0) ;;
libtiff) ;;
+ libutil-David-Nugent) ;;
LiLiQ-P-1.1) osi="true" ;;
LiLiQ-R-1.1) osi="true" ;;
LiLiQ-Rplus-1.1) osi="true" ;;
+ Linux-man-pages-1-para) ;;
+ Linux-man-pages-copyleft) ;;
+ Linux-man-pages-copyleft-2-para) ;;
+ Linux-man-pages-copyleft-var) ;;
+ Linux-OpenIB) ;;
+ LOOP) ;;
LPL-1.0) osi="true" ;;
LPL-1.02) osi="true" ;;
LPPL-1.0) ;;
@@ -217,34 +389,64 @@ ptxd_make_spdx() {
LPPL-1.2) ;;
LPPL-1.3a) ;;
LPPL-1.3c) osi="true" ;;
+ lsof) ;;
+ Lucida-Bitmap-Fonts) ;;
+ LZMA-SDK-9.11-to-9.20) ;;
+ LZMA-SDK-9.22) ;;
+ magaz) ;;
+ mailprio) ;;
MakeIndex) ;;
+ Martin-Birgmeier) ;;
+ McPhee-slideshow) ;;
+ metamail) ;;
+ Minpack) ;;
MirOS) osi="true" ;;
+ MIT) osi="true" ;;
+ MIT-0) osi="true" ;;
MIT-advertising) ;;
MIT-CMU) ;;
MIT-enna) ;;
MIT-feh) ;;
- MIT) osi="true" ;;
+ MIT-Festival) ;;
+ MIT-Modern-Variant) osi="true" ;;
+ MIT-open-group) ;;
+ MIT-testregex) ;;
+ MIT-Wu) ;;
MITNFA) ;;
+ MMIXware) ;;
Motosoto) osi="true" ;;
+ MPEG-SSG) ;;
+ mpi-permissive) ;;
mpich2) ;;
MPL-1.0) osi="true" ;;
MPL-1.1) osi="true" ;;
- MPL-2.0-no-copyleft-exception) osi="true" ;;
MPL-2.0) osi="true" ;;
+ MPL-2.0-no-copyleft-exception) osi="true" ;;
+ mplus) ;;
+ MS-LPL) ;;
MS-PL) osi="true" ;;
MS-RL) osi="true" ;;
MTLL) ;;
+ MulanPSL-1.0) ;;
+ MulanPSL-2.0) osi="true" ;;
Multics) osi="true" ;;
Mup) ;;
+ NAIST-2003) ;;
NASA-1.3) osi="true" ;;
Naumen) osi="true" ;;
NBPL-1.0) ;;
+ NCGL-UK-2.0) ;;
NCSA) osi="true" ;;
Net-SNMP) ;;
NetCDF) ;;
Newsletr) ;;
NGPL) osi="true" ;;
+ NICTA-1.0) ;;
+ NIST-PD) ;;
+ NIST-PD-fallback) ;;
+ NIST-Software) ;;
NLOD-1.0) ;;
+ NLOD-2.0) ;;
NLPL) ;;
Nokia) osi="true" ;;
NOSL) ;;
@@ -254,47 +456,78 @@ ptxd_make_spdx() {
NPOSL-3.0) osi="true" ;;
NRL) ;;
NTP) osi="true" ;;
+ NTP-0) ;;
+ Nunit) deprecated="true" ;;
+ O-UDA-1.0) ;;
OCCT-PL) ;;
OCLC-2.0) osi="true" ;;
ODbL-1.0) ;;
+ ODC-By-1.0) ;;
+ OFFIS) ;;
OFL-1.0) ;;
+ OFL-1.0-no-RFN) ;;
+ OFL-1.0-RFN) ;;
OFL-1.1) osi="true" ;;
+ OFL-1.1-no-RFN) osi="true" ;;
+ OFL-1.1-RFN) osi="true" ;;
+ OGC-1.0) ;;
+ OGDL-Taiwan-1.0) ;;
+ OGL-Canada-2.0) ;;
+ OGL-UK-1.0) ;;
+ OGL-UK-2.0) ;;
+ OGL-UK-3.0) ;;
OGTSL) osi="true" ;;
OLDAP-1.1) ;;
OLDAP-1.2) ;;
OLDAP-1.3) ;;
OLDAP-1.4) ;;
- OLDAP-2.0.1) ;;
OLDAP-2.0) ;;
+ OLDAP-2.0.1) ;;
OLDAP-2.1) ;;
+ OLDAP-2.2) ;;
OLDAP-2.2.1) ;;
OLDAP-2.2.2) ;;
- OLDAP-2.2) ;;
OLDAP-2.3) ;;
OLDAP-2.4) ;;
OLDAP-2.5) ;;
OLDAP-2.6) ;;
OLDAP-2.7) ;;
- OLDAP-2.8) ;;
+ OLDAP-2.8) osi="true" ;;
+ OLFL-1.3) osi="true" ;;
OML) ;;
+ OpenPBS-2.3) ;;
OpenSSL) ;;
OPL-1.0) ;;
+ OPL-UK-3.0) ;;
+ OPUBL-1.0) ;;
OSET-PL-2.1) osi="true" ;;
OSL-1.0) osi="true" ;;
OSL-1.1) ;;
OSL-2.0) osi="true" ;;
OSL-2.1) osi="true" ;;
OSL-3.0) osi="true" ;;
+ PADL) ;;
+ Parity-6.0.0) ;;
+ Parity-7.0.0) ;;
PDDL-1.0) ;;
PHP-3.0) osi="true" ;;
- PHP-3.01) ;;
+ PHP-3.01) osi="true" ;;
+ Pixar) ;;
Plexus) ;;
+ pnmstitch) ;;
+ PolyForm-Noncommercial-1.0.0) ;;
+ PolyForm-Small-Business-1.0.0) ;;
PostgreSQL) osi="true" ;;
+ PSF-2.0) ;;
psfrag) ;;
psutils) ;;
Python-2.0) osi="true" ;;
+ Python-2.0.1) ;;
+ python-ldap) ;;
Qhull) ;;
QPL-1.0) osi="true" ;;
+ QPL-1.0-INRIA-2004) ;;
+ radvd) ;;
Rdisc) ;;
RHeCos-1.1) ;;
RPL-1.1) osi="true" ;;
@@ -304,96 +537,116 @@ ptxd_make_spdx() {
RSCPL) osi="true" ;;
Ruby) ;;
SAX-PD) ;;
+ SAX-PD-2.0) ;;
Saxpath) ;;
SCEA) ;;
+ SchemeReport) ;;
Sendmail) ;;
+ Sendmail-8.23) ;;
SGI-B-1.0) ;;
SGI-B-1.1) ;;
SGI-B-2.0) ;;
+ SGI-OpenGL) ;;
+ SGP4) ;;
+ SHL-0.5) ;;
+ SHL-0.51) ;;
SimPL-2.0) osi="true" ;;
- SISSL-1.2) ;;
SISSL) osi="true" ;;
+ SISSL-1.2) ;;
+ SL) ;;
Sleepycat) osi="true" ;;
SMLNJ) ;;
SMPPL) ;;
SNIA) ;;
+ snprintf) ;;
+ Soundex) ;;
Spencer-86) ;;
Spencer-94) ;;
Spencer-99) ;;
SPL-1.0) osi="true" ;;
+ ssh-keyscan) ;;
+ SSH-OpenSSH) ;;
+ SSH-short) ;;
+ SSPL-1.0) ;;
+ StandardML-NJ) deprecated="true" ;;
SugarCRM-1.1.3) ;;
+ SunPro) ;;
SWL) ;;
+ swrule) ;;
+ Symlinks) ;;
+ TAPR-OHL-1.0) ;;
TCL) ;;
TCP-wrappers) ;;
+ TermReadKey) ;;
TMate) ;;
TORQUE-1.1) ;;
TOSL) ;;
+ TPDL) ;;
+ TPL-1.0) ;;
+ TTWL) ;;
+ TTYP0) ;;
+ TU-Berlin-1.0) ;;
+ TU-Berlin-2.0) ;;
+ UCAR) ;;
+ UCL-1.0) osi="true" ;;
+ ulem) ;;
+ Unicode-3.0) osi="true" ;;
Unicode-DFS-2015) ;;
- Unicode-DFS-2016) ;;
+ Unicode-DFS-2016) osi="true" ;;
Unicode-TOU) ;;
- Unlicense) ;;
+ UnixCrypt) ;;
+ Unlicense) osi="true" ;;
UPL-1.0) osi="true" ;;
+ URT-RLE) ;;
Vim) ;;
VOSTROM) ;;
VSL-1.0) osi="true" ;;
+ W3C) osi="true" ;;
W3C-19980720) ;;
W3C-20150513) ;;
- W3C) osi="true" ;;
+ w3m) ;;
Watcom-1.0) osi="true" ;;
+ Widget-Workshop) ;;
Wsuipa) ;;
WTFPL) ;;
+ wxWindows) deprecated="true" ;;
X11) ;;
+ X11-distribute-modifications-variant) ;;
+ Xdebug-1.03) ;;
Xerox) ;;
+ Xfig) ;;
XFree86-1.1) ;;
xinetd) ;;
+ xkeyboard-config-Zinoviev) ;;
+ xlock) ;;
Xnet) osi="true" ;;
xpp) ;;
XSkat) ;;
YPL-1.0) ;;
YPL-1.1) ;;
Zed) ;;
+ Zeeff) ;;
Zend-2.0) ;;
Zimbra-1.3) ;;
Zimbra-1.4) ;;
- zlib-acknowledgement) ;;
Zlib) osi="true" ;;
+ zlib-acknowledgement) ;;
ZPL-1.1) ;;
ZPL-2.0) osi="true" ;;
- ZPL-2.1) ;;
- AGPL-3.0) deprecated="true" ;;
- eCos-2.0) deprecated="true" ;;
- GFDL-1.1) deprecated="true" ;;
- GFDL-1.2) deprecated="true" ;;
- GFDL-1.3) deprecated="true" ;;
- GPL-1.0+) deprecated="true" ;;
- GPL-1.0) deprecated="true" ;;
- GPL-2.0+) deprecated="true" ;;
- GPL-2.0-with-autoconf-exception) deprecated="true" ;;
- GPL-2.0-with-bison-exception) deprecated="true" ;;
- GPL-2.0-with-classpath-exception) deprecated="true" ;;
- GPL-2.0-with-font-exception) deprecated="true" ;;
- GPL-2.0-with-GCC-exception) deprecated="true" ;;
- GPL-2.0) deprecated="true" ;;
- GPL-3.0+) deprecated="true" ;;
- GPL-3.0-with-autoconf-exception) deprecated="true" ;;
- GPL-3.0-with-GCC-exception) deprecated="true" ;;
- GPL-3.0) deprecated="true" ;;
- LGPL-2.0+) deprecated="true" ;;
- LGPL-2.0) deprecated="true" ;;
- LGPL-2.1+) deprecated="true" ;;
- LGPL-2.1) deprecated="true" ;;
- LGPL-3.0+) deprecated="true" ;;
- LGPL-3.0) deprecated="true" ;;
- Nunit) deprecated="true" ;;
- StandardML-NJ) deprecated="true" ;;
- wxWindows) deprecated="true" ;;
+ ZPL-2.1) osi="true" ;;
389-exception) exception="true" ;;
+ Asterisk-exception) exception="true" ;;
Autoconf-exception-2.0) exception="true" ;;
Autoconf-exception-3.0) exception="true" ;;
+ Autoconf-exception-generic) exception="true" ;;
+ Autoconf-exception-generic-3.0) exception="true" ;;
+ Autoconf-exception-macro) exception="true" ;;
+ Bison-exception-1.24) exception="true" ;;
Bison-exception-2.2) exception="true" ;;
Bootloader-exception) exception="true" ;;
Classpath-exception-2.0) exception="true" ;;
CLISP-exception-2.0) exception="true" ;;
+ cryptsetup-OpenSSL-exception) exception="true" ;;
DigiRule-FOSS-exception) exception="true" ;;
eCos-exception-2.0) exception="true" ;;
Fawkes-Runtime-exception) exception="true" ;;
@@ -401,19 +654,49 @@ ptxd_make_spdx() {
Font-exception-2.0) exception="true" ;;
freertos-exception-2.0) exception="true" ;;
GCC-exception-2.0) exception="true" ;;
+ GCC-exception-2.0-note) exception="true" ;;
GCC-exception-3.1) exception="true" ;;
+ GNAT-exception) exception="true" ;;
+ GNU-compiler-exception) exception="true" ;;
gnu-javamail-exception) exception="true" ;;
+ GPL-3.0-interface-exception) exception="true" ;;
+ GPL-3.0-linking-exception) exception="true" ;;
+ GPL-3.0-linking-source-exception) exception="true" ;;
+ GPL-CC-1.0) exception="true" ;;
+ GStreamer-exception-2005) exception="true" ;;
+ GStreamer-exception-2008) exception="true" ;;
i2p-gpl-java-exception) exception="true" ;;
+ KiCad-libraries-exception) exception="true" ;;
+ LGPL-3.0-linking-exception) exception="true" ;;
+ libpri-OpenH323-exception) exception="true" ;;
Libtool-exception) exception="true" ;;
Linux-syscall-note) exception="true" ;;
+ LLGPL) exception="true" ;;
+ LLVM-exception) exception="true" ;;
LZMA-exception) exception="true" ;;
mif-exception) exception="true" ;;
- Nokia-Qt-exception-1.1) exception="true" ;;
+ OCaml-LGPL-linking-exception) exception="true" ;;
OCCT-exception-1.0) exception="true" ;;
+ OpenJDK-assembly-exception-1.0) exception="true" ;;
openvpn-openssl-exception) exception="true" ;;
+ PS-or-PDF-font-exception-20170817) exception="true" ;;
+ QPL-1.0-INRIA-2004-exception) exception="true" ;;
+ Qt-GPL-exception-1.0) exception="true" ;;
+ Qt-LGPL-exception-1.1) exception="true" ;;
Qwt-exception-1.0) exception="true" ;;
+ SANE-exception) exception="true" ;;
+ SHL-2.0) exception="true" ;;
+ SHL-2.1) exception="true" ;;
+ stunnel-exception) exception="true" ;;
+ SWI-exception) exception="true" ;;
+ Swift-exception) exception="true" ;;
+ Texinfo-exception) exception="true" ;;
u-boot-exception-2.0) exception="true" ;;
+ UBDL-exception) exception="true" ;;
+ Universal-FOSS-exception-1.0) exception="true" ;;
+ vsftpd-openssl-exception) exception="true" ;;
WxWindows-exception-3.1) exception="true" ;;
+ x11vnc-openssl-exception) exception="true" ;;
*) return 1 ;;
esac
}
diff --git a/scripts/lib/ptxd_make_world_cargo.sh b/scripts/lib/ptxd_make_world_cargo.sh
new file mode 100644
index 000000000..23fd72140
--- /dev/null
+++ b/scripts/lib/ptxd_make_world_cargo.sh
@@ -0,0 +1,143 @@
+#!/bin/bash
+#
+# Copyright (C) 2021 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+ptxd_make_world_cargo_sync_parse() {
+ awk '
+BEGIN {
+ FS=" = "
+ name=""
+ version=""
+ url=""
+ source=""
+}
+function dump() {
+ if (name && version && source)
+ print name, version, url
+ name=""
+ version=""
+ url=""
+ source=""
+}
+/[[package]]/ {
+ dump()
+}
+$1 == "name" {
+ name=substr($2, 2, length($2)-2)
+}
+$1 == "version" {
+ version=substr($2, 2, length($2)-2)
+}
+
+$1 == "source" {
+ source=$2
+}
+
+/^source = "git\+http/ {
+ url=gensub(/source = "(git\+http[s]?:\/\/[^\?]*)(\?.*)?#(.*)"/, "\\1 \\3", 1, $0)
+}
+
+END {
+ dump()
+}
+' "${pkg_cargo_lock}"
+}
+export -f ptxd_make_world_cargo_sync_parse
+
+ptxd_make_world_cargo_sync_package() {
+ local path PACKAGE
+
+ if [ -z "${url}" ]; then
+ url="https://crates.io/api/v1/crates/${package}/${version}/download"
+ else
+ package="${url##*/}"
+ package="${package%%.git}"
+ if [ "${workspaces[${hash}]}" = "${package}" ]; then
+ echo "Skipping duplicate entry for ${package}."
+ return
+ fi
+ workspaces[${hash}]="${package}"
+ url="${url};tag=${hash}"
+ fi
+ PACKAGE="$(tr '[a-z]' '[A-Z]' <<< "${package}-${version}" | tr -sc '[:alnum:]' '_')"
+ PACKAGE="${PACKAGE%_}"
+ if [[ "${url}" =~ ^git ]]; then
+ path="${PTXDIST_SRCDIR}/${package}-${version}+${hash:0:12}.git.crate"
+ else
+ path="${PTXDIST_SRCDIR}/${package}-${version}.crate"
+ fi
+
+ echo "Processing ${package} ${version} ..."
+ if [ ! -e "${path}" ]; then
+ echo "Downloading ${url} ..."
+ echo
+ ptxd_make_get "${path}" "${url}"
+ fi
+ set -- $(md5sum "${path}")
+ md5="${1}"
+ cat << EOF >&${makefilefd}
+${PKG}_${PACKAGE}_MD5 := ${md5}
+${PKG}_${PACKAGE}_URL := ${url}
+${PKG}_${PACKAGE}_SOURCE := \$(SRCDIR)${path#${PTXDIST_SRCDIR}}
+${PKG}_PARTS += ${PKG}_${PACKAGE}
+
+EOF
+}
+export -f ptxd_make_world_cargo_sync_package
+
+ptxd_make_world_cargo_sync() {
+ local pkg_makefile_cargo package version cargofd
+ local PKG
+ local -a tmp
+ local -A workspaces
+
+ ptxd_make_world_init || return
+
+ if [ ! -e "${pkg_makefile}" ]; then
+ ptxd_bailout "Missing rule file for '${pkg_label}'"
+ fi
+ pkg_makefile_cargo="${pkg_makefile%.make}.cargo.make"
+ PKG="$(tr "[a-z-]" "[A-Z_]" <<< "${pkg_label}")"
+
+ cd -- "${pkg_dir}" &&
+ exec {makefilefd}> "${pkg_makefile_cargo}"
+ # copy the copyright header from the package rule file
+ sed '/^\([^#]\|$\)/Q' ${pkg_makefile} >&${makefilefd}
+
+ set -- $(md5sum "${pkg_cargo_lock}")
+ cat << EOF >&${makefilefd}
+
+#
+# WARNING: This file is generated with 'ptxdist cargosync ${pkg_label}' and
+# should not be modified manually!
+#
+
+${PKG}_CARGO_LOCK_MD5 := $1
+
+EOF
+
+ exec {cargofd}< <(ptxd_make_world_cargo_sync_parse) &&
+ while read package version url hash <&${cargofd}; do
+ if [ "${package}" = "${pkg_label}" ]; then
+ continue
+ fi
+ if [ -z "${version}" ]; then
+ ptxd_bailout "${tmp[*]}"
+ fi
+ ptxd_make_world_cargo_sync_package
+ done
+ exec {cargofd}<&-
+
+ cat << EOF >&${makefilefd}
+
+# vim: syntax=make
+EOF
+ exec {makefilefd}<&-
+}
+export -f ptxd_make_world_cargo_sync
+
+# vim: syntax=bash
diff --git a/scripts/lib/ptxd_make_world_check_src.sh b/scripts/lib/ptxd_make_world_check_src.sh
index 71feae21a..50b1ccd52 100644
--- a/scripts/lib/ptxd_make_world_check_src.sh
+++ b/scripts/lib/ptxd_make_world_check_src.sh
@@ -12,31 +12,43 @@
# this only works if the makefile contains a "<PKG>_MD5 := ..." line.
#
ptxd_make_world_update_md5() {
- local PKG="$(ptxd_name_to_NAME "${pkg_label}")"
+ local config file_dotconfig
set -- $(md5sum "${pkg_src}")
local md5="${1}"
- local PKG_MD5="PTXCONF_${PKG}_MD5"
- for conf in "${PTXDIST_PLATFORMCONFIG}" "${PTXDIST_PTXCONFIG}"; do
- conf="$(readlink -f "${conf}")"
- if [ $(grep "^${PKG_MD5}=\"" "${conf}" 2> /dev/null | wc -l) = 1 ]; then
- sed -i "s/^${PKG_MD5}=\".*$/${PKG_MD5}=\"${md5}\"/" "${conf}"
- ptxd_warning "New checksum for ${pkg_label}: ${md5} in $(ptxd_print_path "${conf}")"
+ local PKG_MD5="PTXCONF_${pkg_PKG}_MD5"
+ for config in "${PTXDIST_PLATFORMCONFIG}" "${PTXDIST_PTXCONFIG}"; do
+ file_dotconfig="${config}"
+ ptxd_normalize_config
+ if grep -q "^${PKG_MD5}=\"" "${file_dotconfig}"; then
+ sed -i "s/^${PKG_MD5}=\".*$/${PKG_MD5}=\"${md5}\"/" "${file_dotconfig}"
+ ptxd_warning "New checksum for ${pkg_PKG}: ${md5} in $(ptxd_print_path "${file_dotconfig}")"
+ if [ -e "${file_dotconfig}.diff" ]; then
+ if grep -q "^${PKG_MD5}=\"" "${file_dotconfig}.diff"; then
+ sed -i "s/^${PKG_MD5}=\".*$/${PKG_MD5}=\"${md5}\"/" "${file_dotconfig}.diff"
+ else
+ echo "${PKG_MD5}=\"${md5}\"" >> "${file_dotconfig}.diff"
+ if [ "${config}" == "${PTXDIST_PLATFORMCONFIG}" ]; then
+ arg=" platform"
+ fi
+ ptxd_warning "$(ptxd_print_path "${file_dotconfig}") is dirty. Run 'ptxdist oldconfig${arg}'."
+ fi
+ fi
return
fi
done
if [ -z "${pkg_makefile}" ]; then
ptxd_bailout "Could not update md5sum for '${pkg_label}': makefile not found"
fi
- local count=$(grep "^${PKG}_MD5[ ]*:=" "${pkg_makefile}" 2> /dev/null | wc -l)
+ local count=$(grep "^${pkg_PKG}_MD5[ ]*:=" "${pkg_makefile}" 2> /dev/null | wc -l)
if [ "${count}" -gt 1 ]; then
- ptxd_bailout "Could not update md5sum for '${pkg_label}': ${PKG}_MD5 found ${count} times in '$(ptxd_print_path ${pkg_makefile})'."
+ ptxd_bailout "Could not update md5sum for '${pkg_label}': ${pkg_PKG}_MD5 found ${count} times in '$(ptxd_print_path ${pkg_makefile})'."
fi
- sed -i "s/^\(\<${PKG}_MD5[ ]*:=\) *[a-f0-9]*\$/\1 ${md5}/" "${pkg_makefile}"
+ sed -i "s/^\(\<${pkg_PKG}_MD5[ ]*:=\) *[a-f0-9]*\$/\1 ${md5}/" "${pkg_makefile}"
if ! grep -q "${md5}\$" "${pkg_makefile}"; then
- ptxd_bailout "Could not update md5sum for '${pkg_label}': ${PKG}_MD5 not found"
+ ptxd_bailout "Could not update md5sum for '${pkg_label}': ${pkg_PKG}_MD5 not found"
fi
- ptxd_warning "New checksum for ${pkg_label}: ${md5} in $(ptxd_print_path "${pkg_makefile}")"
+ ptxd_warning "New checksum for ${pkg_PKG}: ${md5} in $(ptxd_print_path "${pkg_makefile}")"
}
export -f ptxd_make_world_update_md5
diff --git a/scripts/lib/ptxd_make_world_clean.sh b/scripts/lib/ptxd_make_world_clean.sh
index 2fc8170e7..3d64881d3 100644
--- a/scripts/lib/ptxd_make_world_clean.sh
+++ b/scripts/lib/ptxd_make_world_clean.sh
@@ -17,11 +17,13 @@ ptxd_make_world_clean_sysroot() {
local -a args
echo "Removing files from sysroot..."
echo
- find "${path}/" ! -type d -printf "${pkg_sysroot_dir}/%P\0" | \
+ args=( bin sbin lib )
+ args=( ${args[@]/#/-o -path ${path}/} )
+ find "${path}/" ! -type d ! \( "${args[@]:1}" \) -printf "${pkg_sysroot_dir}/%P\0" | \
xargs -0 rm -f
args=( {/etc,{,/usr}{,/lib,/{,s}bin,/include,/share{,/man{,/man{1,2,3,4,5,6,7,8,9}},/misc}}} )
- args=( ${args[@]/#/-o -path ${path}} )
+ args=( ${args[@]/#/-o -path ${path}/} )
find "${path}/" -mindepth 1 -depth -type d ! \( "${args[@]:1}" \) -printf "${pkg_sysroot_dir}/%P\0" | \
xargs -0 rmdir --ignore-fail-on-non-empty 2> /dev/null
@@ -32,6 +34,27 @@ ptxd_make_world_clean_sysroot() {
}
export -f ptxd_make_world_clean_sysroot
+ptxd_make_world_image_clean_impl() {
+ local pkg_image_stamp="${ptx_state_dir}/${pkg_label}.images"
+
+ if [ -e "${pkg_image_stamp}" ]; then
+ echo "Deleting images:"
+ while read file; do
+ echo "${file}"
+ rm "${file}" || break
+ done < "${pkg_image_stamp}"
+ rm "${pkg_image_stamp}"
+ echo
+ fi
+}
+export -f ptxd_make_world_image_clean_impl
+
+ptxd_make_world_image_clean() {
+ ptxd_make_world_init &&
+ ptxd_make_world_image_clean_impl
+}
+export -f ptxd_make_world_image_clean
+
#
# clean
#
@@ -46,6 +69,7 @@ ptxd_make_world_clean() {
done
echo
fi
+ ptxd_make_world_image_clean_impl
if [ -n "$(ls "${ptx_state_dir}/${pkg_label}".* 2> /dev/null)" ]; then
echo "Deleting stage files:"
if [ -e "${pkg_xpkg_map}" ]; then
diff --git a/scripts/lib/ptxd_make_world_common.sh b/scripts/lib/ptxd_make_world_common.sh
index 7d1db67bf..6c94daa54 100644
--- a/scripts/lib/ptxd_make_world_common.sh
+++ b/scripts/lib/ptxd_make_world_common.sh
@@ -13,10 +13,6 @@
ptxd_make_world_init_deprecation_check() {
local -a dep
dep=(
- pkg_deprecated_install_builddir
- pkg_deprecated_install_hosttool
- pkg_deprecated_install_opt
-
pkg_deprecated_builddir
pkg_deprecated_env
pkg_deprecated_autoconf
@@ -24,6 +20,15 @@ ptxd_make_world_init_deprecation_check() {
pkg_deprecated_compile_env
pkg_deprecated_makevars
)
+ local -a depname
+ depname=(
+ BUILDDIR
+ ENV
+ AUTOCONF
+ CMAKE
+ COMPILE_ENV
+ MAKEVARS
+ )
local i
for ((i = 0; i < ${#dep[@]}; i++)); do
@@ -32,8 +37,12 @@ ptxd_make_world_init_deprecation_check() {
[ -z "${val}" ] && continue
- echo "${var}=\"${val}\""
+ echo "<PKG>_${depname[i]}: ${var}=\"${val}\""
echo
+
+ if [ "${PTXCONF_SETUP_DEPRECATED_FATAL}" = "y" ]; then
+ ptxd_bailout "${FUNCNAME}: deprecated variable <PKG>_${depname[i]} detected!"
+ fi
done
}
@@ -42,8 +51,8 @@ export -f ptxd_make_world_init_deprecation_check
#
-# initialize deprecated variables to work with the new sheme
-# (wich is still WIP)
+# initialize deprecated variables to work with the new scheme
+# (which is still WIP)
#
ptxd_make_world_init_compat() {
if [ "${pkg_stage}" = "prepare" ]; then
@@ -51,13 +60,10 @@ ptxd_make_world_init_compat() {
fi
# build_dir
- if [ -n "${pkg_deprecated_install_builddir}" -a -n "${pkg_deprecated_builddir}" -a \
- "${pkg_deprecated_install_builddir}" != "${pkg_deprecated_builddir}" -o \
- -n "${pkg_build_dir}" -a -n "${pkg_deprecated_builddir}" -a \
+ if [ -n "${pkg_build_dir}" -a -n "${pkg_deprecated_builddir}" -a \
"${pkg_build_dir}" != "${pkg_deprecated_builddir}" ]; then
ptxd_bailout "${FUNCNAME}: build dir inconsistency detected!"
fi
- pkg_build_dir="${pkg_deprecated_install_builddir}"
pkg_build_dir="${pkg_build_dir:-${pkg_deprecated_builddir}}"
@@ -105,13 +111,19 @@ ptxd_make_world_init_compat() {
if [ -n "${pkg_make_opt}" ]; then
ptxd_bailout "${FUNCNAME}: <PKG>_MAKEVARS is incompatible with <PKG>_MAKE_OPT"
fi
+ if [ -n "${pkg_install_opt}" ]; then
+ ptxd_bailout "${FUNCNAME}: <PKG>_MAKEVARS is incompatible with <PKG>_INSTALL_OPT"
+ fi
pkg_make_opt="${pkg_deprecated_makevars}"
fi
-
# install_opt
if [[ -z "${pkg_install_opt}" && "${pkg_conf_tool}" =~ "python" ]]; then
- local install_opt_ptr="ptx_install_opt_python_${pkg_type}"
+ local suffix=""
+ if [[ " ${pkg_build_deps} " =~ ' host-system-python3 ' ]]; then
+ suffix="_system"
+ fi
+ local install_opt_ptr="ptx_install_opt_python_${pkg_type}${suffix}"
pkg_install_opt="${!install_opt_ptr}"
fi
if [ -z "${pkg_install_opt}" ]; then
@@ -119,15 +131,9 @@ ptxd_make_world_init_compat() {
# deprecared_makevars
pkg_install_opt="${pkg_install_opt}${pkg_deprecated_makevars:+ }${pkg_deprecated_makevars}"
-
- # deprecared_install_opt
- pkg_install_opt="${pkg_install_opt}${pkg_deprecated_install_opt:+ }${pkg_deprecated_install_opt}"
- else
- if [ -n "${pkg_deprecated_makevars}" -o -n "${pkg_deprecated_install_opt}" ]; then
- ptxd_bailout "${FUNCNAME}: <PKG>_MAKEVARS is incompatible with <PKG>_INSTALL_OPT"
- fi
fi
+
#
# pkg_binconfig_glob
#
@@ -178,12 +184,24 @@ export -f ptxd_make_world_init_sanity_check
ptxd_make_world_env_init() {
ptx_packages_all="${PTX_PACKAGES_ALL}"
+ ptx_packages_virtual="${PTX_PACKAGES_VIRTUAL}"
ptx_packages_selected="${PTX_PACKAGES_SELECTED}"
ptx_packages_disabled="${PTX_PACKAGES_DISABLED}"
image_pkgs_selected_target="${PTX_PACKAGES_INSTALL}"
}
export -f ptxd_make_world_env_init
+ptxd_make_layer_init() {
+ # PTXDIST_LAYERS gets lost in 'make' so redefine it here
+ local orig_IFS="${IFS}"
+ IFS=:
+ PTXDIST_LAYERS=( ${PTXDIST_PATH_LAYERS} )
+ IFS="${orig_IFS}"
+ export PTXDIST_LAYERS
+}
+export -f ptxd_make_layer_init
+
+
#
# ptxd_make_world_init()
#
@@ -198,14 +216,8 @@ export -f ptxd_make_world_env_init
#
ptxd_make_world_init() {
ptxd_make_world_env_init &&
- ptxd_make_world_init_sanity_check || return
-
- # PTXDIST_LAYERS gets lost in 'make' so redefine it here
- local orig_IFS="${IFS}"
- IFS=:
- PTXDIST_LAYERS=( ${PTXDIST_PATH_LAYERS} )
- IFS="${orig_IFS}"
- export PTXDIST_LAYERS
+ ptxd_make_world_init_sanity_check &&
+ ptxd_make_layer_init || return
# make sure any make calls appear to be the toplevel make
unset MAKELEVEL
@@ -317,6 +329,19 @@ ptxd_make_world_init() {
if [ -e "${pkg_conf_dir}/meson.build" ]; then
pkg_conf_tool=${pkg_conf_tool}meson
fi
+ if [ -e "${pkg_conf_dir}/Cargo.toml" ]; then
+ pkg_conf_tool=${pkg_conf_tool}cargo
+ fi
+ fi
+
+ if [ "${pkg_conf_tool}" = "cargo" -o -n "${pkg_cargo_lock}" ]; then
+ local make_env_ptr="ptx_make_env_cargo_${pkg_type}"
+ pkg_cargo_home="${pkg_dir}/ptxdist-cargo-home"
+ pkg_make_env_cargo="CARGO_HOME='${pkg_cargo_home}' ${pkg_make_env:-${!make_env_ptr}}"
+ pkg_cargo_lock="${pkg_cargo_lock:-Cargo.lock}"
+ if [[ " ${pkg_build_deps} " =~ " host-cargo-c " ]]; then
+ pkg_make_env_cargo="${ptx_conf_env_target} ${pkg_make_env_cargo}"
+ fi
fi
case "${pkg_conf_tool}" in
@@ -328,6 +353,9 @@ ptxd_make_world_init() {
pkg_conf_env="PTXDIST_ICECC= ${pkg_conf_env:-${!conf_env_ptr}}"
unset conf_opt_ptr conf_env_ptr
+ if [ -n "${pkg_cargo_lock}" ]; then
+ pkg_make_env="${pkg_make_env_cargo} ${pkg_make_env}"
+ fi
;;
python|python3)
local build_python_ptr="ptx_${pkg_conf_tool}_${pkg_type}"
@@ -342,6 +370,10 @@ ptxd_make_world_init() {
fi
pkg_make_env="${pkg_conf_env:-${!env_ptr}}"
pkg_make_opt="${pkg_make_opt:-build}"
+
+ if [ -n "${pkg_cargo_lock}" ]; then
+ pkg_make_env="${pkg_make_env_cargo} ${pkg_make_env}"
+ fi
;;
scons)
local env_ptr="ptx_conf_env_${pkg_type}"
@@ -354,6 +386,16 @@ ptxd_make_world_init() {
pkg_conf_opt="${pkg_conf_opt:-${!conf_opt_ptr}}"
pkg_conf_env="PTXDIST_ICECC= CMAKE=false CMAKE_FOR_BUILD=false ${pkg_conf_env:-${!conf_env_ptr}}"
+ if [ -n "${pkg_cargo_lock}" ]; then
+ pkg_make_env="${pkg_make_env_cargo} ${pkg_make_env}"
+ pkg_conf_env="${pkg_make_env_cargo} ${pkg_conf_env}"
+ fi
+ ;;
+ cargo)
+ local make_opt_ptr="ptx_make_opt_${pkg_conf_tool}_${pkg_type}"
+
+ pkg_make_opt="${pkg_make_opt:-${!make_opt_ptr}}"
+ pkg_make_env="${pkg_make_env_cargo}"
;;
*)
local conf_env_ptr="ptx_conf_env_${pkg_type}"
@@ -390,15 +432,16 @@ ptxd_make_world_init() {
;;
esac
done
- whitelist_host="$(echo $(cat "${deps_host[@]}" /dev/null 2>/dev/null))"
- whitelist_target="$(echo $(cat "${deps_target[@]}" /dev/null 2>/dev/null))"
+ whitelist_host="$(echo $(cat "${deps_host[@]}" /dev/null 2>/dev/null | sort -u))"
+ whitelist_target="$(echo $(cat "${deps_target[@]}" /dev/null 2>/dev/null | sort -u))"
pkg_env="PKGCONFIG_WHITELIST_HOST='${whitelist_host}' PKGCONFIG_WHITELIST_TARGET='${whitelist_target}' PKGCONFIG_WHITELIST_SRC='${pkg_label}' ${pkg_env}"
#
# try to prevent downloads outside the get stage
#
if [ "${pkg_stage}" != "get" ]; then
- pkg_env="HTTPS_PROXY=- HTTP_PROXY=- https_proxy=- http_proxy=- ${pkg_env}"
+ local invalid_proxy="PTXDIST-UNALLOWED-DOWNLOAD"
+ pkg_env="HTTPS_PROXY=$invalid_proxy HTTP_PROXY=$invalid_proxy https_proxy=$invalid_proxy http_proxy=$invalid_proxy ${pkg_env}"
fi
#
@@ -449,26 +492,30 @@ ptxd_make_world_init() {
pkg_build_tool=ninja
fi
esac
- if [ "${pkg_build_tool}" = "ninja" ]; then
- if [ "${PTXDIST_VERBOSE}" = "1" ]; then
- pkg_make_opt="-v ${pkg_make_opt}"
- pkg_install_opt="-v ${pkg_install_opt}"
- fi
- fi
-
- # DESTDIR
case "${pkg_build_tool}" in
- python*)
- pkg_install_opt="${pkg_install_opt} --root=${pkg_pkg_dir}"
- ;;
- ninja|scons)
- pkg_env="DESTDIR=\"${pkg_pkg_dir}\" ${pkg_env}"
- ;;
- *)
- pkg_install_opt="DESTDIR=\"${pkg_pkg_dir}\" INSTALL_ROOT=\"${pkg_pkg_dir}\" ${pkg_install_opt}"
+ ninja|cargo)
+ if [ "${PTXDIST_VERBOSE}" = "1" ]; then
+ pkg_make_opt="-v ${pkg_make_opt}"
+ pkg_install_opt="-v ${pkg_install_opt}"
+ fi
;;
esac
+ # DESTDIR
+ if [[ "${pkg_stage}" =~ "install" ]]; then
+ case "${pkg_build_tool}" in
+ python*)
+ pkg_install_opt="${pkg_install_opt} --root=${pkg_pkg_dir}"
+ ;;
+ ninja|scons)
+ pkg_env="DESTDIR=\"${pkg_pkg_dir}\" ${pkg_env}"
+ ;;
+ *)
+ pkg_install_opt="DESTDIR=\"${pkg_pkg_dir}\" INSTALL_ROOT=\"${pkg_pkg_dir}\" ${pkg_install_opt}"
+ ;;
+ esac
+ fi
+
#
# parallelmake
#
@@ -497,10 +544,10 @@ ptxd_make_world_init() {
pkg_make_par="${PTXDIST_PARALLEL_FLAGS} ${PTXDIST_LOADMFLAGS}"
;;
python*)
- # no consistant support for parallel building
+ # no consistent support for parallel building
pkg_make_par="${python_pkg_make_par}"
;;
- scons)
+ scons|cargo)
# only -jX is supported not other options
pkg_make_par="${PTXDIST_PARALLEL_FLAGS}"
;;
@@ -516,9 +563,36 @@ ptxd_make_world_init() {
local kbuild_date="$(date --utc --date=@${SOURCE_DATE_EPOCH} -Iseconds)"
pkg_env="${pkg_env} KBUILD_BUILD_TIMESTAMP=${kbuild_date} KBUILD_BUILD_USER=ptxdist KBUILD_BUILD_HOST=ptxdist"
+ #
+ # ignore git from 'ptxdist --git extract ...'
+ #
+ if grep -q git-ptx-patches "${pkg_dir}/.git/config" &> /dev/null; then
+ pkg_env="${pkg_env} GIT_DIR=${pkg_dir}/.git-disabled"
+ fi
+
exec 2>&${PTXDIST_FD_LOGERR}
if [ -n "${PTXDIST_QUIET}" ]; then
exec 9>&1
fi
+
+ local path real_path
+ local -a paths
+ for path in ${pkg_wrapper_accept_paths}; do
+ if [ ! -d "${path}" ]; then
+ continue
+ fi
+ paths[${#paths[*]}]="${path}"
+ real_path="$(readlink -f "${path}")"
+ if [ "${path}" != "${real_path}" ]; then
+ paths[${#paths[*]}]="${real_path}"
+ fi
+ done
+ if [ -h "${pkg_dir}" ]; then
+ paths[${#paths[*]}]="$(readlink -f "${pkg_dir}")"
+ fi
+ local orig_IFS="${IFS}"
+ IFS="$(printf "\037")"
+ pkg_wrapper_accept_paths="${paths[*]}"
+ IFS="${orig_IFS}"
}
export -f ptxd_make_world_init
diff --git a/scripts/lib/ptxd_make_world_compile.sh b/scripts/lib/ptxd_make_world_compile.sh
index 1194d24ca..c1b20e194 100644
--- a/scripts/lib/ptxd_make_world_compile.sh
+++ b/scripts/lib/ptxd_make_world_compile.sh
@@ -5,6 +5,206 @@
# see the README file.
#
+ptxd_make_world_compile_commands_parse_single() {
+ local IFS arg output input compile_only
+ local -a inputs
+
+ set -- ${command}
+ while [ "${#}" -gt 0 ]; do
+ arg="${1}"
+ shift
+ case "${arg}" in
+ -o)
+ if [ "${1}" = "/dev/null" ]; then
+ # ignore compiler checks etc.
+ return
+ fi
+ if [[ "${1}" =~ ^/ ]]; then
+ output="${1}"
+ else
+ output="${directory}/${1}"
+ fi
+ if [ ! -f "${output}" ]; then
+ # probably a temporary file for some kind of check
+ return
+ fi
+ shift
+ ;;
+ *.c|*.cc|*.cp|*.cxx|*.cpp|*.CPP|*.c++|*.C|*.s|*.S|*.sx)
+ if [[ "${arg}" =~ ^/ ]]; then
+ input="${arg}"
+ else
+ input="${directory}/${arg}"
+ fi
+ if [ ! -f "${input}" ]; then
+ # probably a temporary file for some kind of check
+ return
+ fi
+ inputs+=( "${input}" )
+ ;;
+ -c)
+ compile_only=1
+ ;;
+ -)
+ return
+ ;;
+ esac
+ done
+ if [ -z "${output}" -a -n "${compile_only}" -a "${#inputs[*]}" -eq 1 ]; then
+ # derive the output file-name from the input file-name if possible
+ output="${inputs[0]%.*}.o"
+ fi
+ if [ -z "${compile_only}" -a "${#inputs[*]}" -eq 0 ]; then
+ # just linking
+ return
+ fi
+ if [ -z "${output}" -o "${#inputs[*]}" -eq 0 ]; then
+ return 1
+ fi
+ for input in "${inputs[@]}"; do
+ output_file="${ptxdist_compile_commands_dir}/${input//\//_}.json"
+ printf ' {
+ "directory": "%s",
+ "command": "%s",
+ "file": "%s",
+ "output": "%s"
+ }' "${directory}" "${command//\"/\\\"}" "${input}" "${output}" > "${output_file}"
+ done
+}
+export -f ptxd_make_world_compile_commands_parse_single
+
+ptxd_make_world_compile_commands_kconfig() {
+ local generator fixup_dir
+
+ if [ "${pkg_build_tool}" = "kconfig" ]; then
+ generator="${pkg_dir}/scripts/clang-tools/gen_compile_commands.py"
+ elif [[ " ${pkg_build_deps} " =~ ' kernel ' ]]; then
+ set -- ${pkg_make_opt}
+ while [ $# -gt 0 ]; do
+ opt="$1"
+ shift
+ case "${opt}" in
+ O=*)
+ fixup_dir="${opt#O=}"
+ ;;
+ -C)
+ generator="${1}/scripts/clang-tools/gen_compile_commands.py"
+ shift
+ ;;
+ esac
+ done
+ if [ -z "${fixup_dir}" ]; then
+ return
+ fi
+ fi
+ if [ ! -x "${generator}" ]; then
+ return
+ fi
+
+ # fake dependency for python wrapper
+ pkg_build_deps=host-system-python3 \
+ "${generator}" \
+ -d "${pkg_build_dir}" -o "${pkg_build_dir}/compile_commands.json"
+ if [ $? -ne 0 ]; then
+ ptxd_warning "Ignoring failed scripts/clang-tools/gen_compile_commands.py"
+ else
+ if [ -d "${fixup_dir}" ]; then
+ # gen_compile_commands.py sets the wrong directory for external kernel
+ # modules. It must be the kernel build tree, so fix this here
+ sed -i "s;\(\"directory\":\).*;\1 \"${fixup_dir}\",;" "${pkg_build_dir}/compile_commands.json"
+ fi &&
+ ptxd_make_world_compile_commands_filter
+ fi
+}
+export -f ptxd_make_world_compile_commands_kconfig
+
+ptxd_make_world_compile_finish() {
+ ptxd_make_world_compile_commands_kconfig &&
+
+ if [ -n "${PTXDIST_COMPILE_COMMANDS}" -a -e "${PTXDIST_COMPILE_COMMANDS}" ]; then
+ local ptxdist_compile_commands_dir="${pkg_build_dir}/.ptxdist-compile-commands-cache"
+ local orig_IFS="${IFS}"
+ IFS="$(echo -e "\x1F")"
+
+ mkdir -p "${ptxdist_compile_commands_dir}" &&
+ exec {data}< "${PTXDIST_COMPILE_COMMANDS}" &&
+ while read directory command <&${data}; do
+ if ! ptxd_make_world_compile_commands_parse_single; then
+ echo "${command}" >> "${PTXDIST_COMPILE_COMMANDS}.failed"
+ fi
+ done &&
+ rm "${PTXDIST_COMPILE_COMMANDS}" &&
+ IFS="${orig_IFS}" &&
+ exec {data}<&- &&
+ {
+ find "${ptxdist_compile_commands_dir}" -name "*.json" | awk '
+ BEGIN {
+ print "["
+ }
+ function dump(file) {
+ old_RS = RS
+ RS = "^$"
+ getline tmp < file
+ RS = old_RS
+ close(src)
+ printf "%s", tmp
+ }
+ {
+ if (start > 0)
+ print ","
+ start = 1
+ dump($0)
+ }
+ END {
+ print "\n]"
+ }'
+ } > "${pkg_dir}/compile_commands.json" &&
+ ptxd_make_world_compile_commands_cleanup
+ fi
+}
+export -f ptxd_make_world_compile_finish
+
+ptxd_make_world_compile_python() {
+ if [ -e "${pkg_dir}/pyproject.toml" -a ! -e "${pkg_dir}/setup.py" ] && \
+ ! [[ " ${pkg_build_deps_all} " =~ ' host-python3-pybuild ' ]]; then
+ ptxd_eval \
+ cd "${pkg_build_dir}" '&&' \
+ "${pkg_path}" \
+ "${pkg_env}" \
+ "${pkg_make_env}" \
+ "${ptx_build_python}" \
+ -m flit_core.wheel \
+ --outdir "${pkg_build_dir}" \
+ "${pkg_dir}"
+ elif [ -e "${pkg_dir}/pyproject.toml" ] &&
+ ( [[ " ${pkg_build_deps} " =~ ' host-python3-pybuild ' ]] ||
+ [[ " ${pkg_build_deps} " =~ ' host-system-python3-pybuild ' ]] ) ; then
+ ptxd_eval \
+ cd "${pkg_build_dir}" '&&' \
+ "${pkg_path}" \
+ "${pkg_env}" \
+ "${pkg_make_env}" \
+ "${ptx_build_python}" \
+ -m build \
+ --skip-dependency-check \
+ --wheel \
+ --no-isolation \
+ --outdir "${pkg_build_dir}" \
+ "${pkg_dir}"
+ else
+ ptxd_eval \
+ cd "${pkg_build_dir}" '&&' \
+ "${pkg_path}" \
+ "${pkg_env}" \
+ "${pkg_make_env}" \
+ "${ptx_build_python}" \
+ setup.py \
+ "${pkg_make_opt}" \
+ "${pkg_make_par}"
+ fi
+}
+export -f ptxd_make_world_compile_python
+
#
# call the compiler
#
@@ -15,35 +215,44 @@ ptxd_make_world_compile() {
# no build dir -> assume the package has nothing to build.
return
fi &&
+ case "${pkg_conf_tool}" in
+ cmake|meson|kconfig)
+ ;;
+ *)
+ export PTXDIST_COMPILE_COMMANDS="${pkg_build_dir}/.ptxdist-compile-commands"
+ ;;
+ esac &&
case "${pkg_build_tool}" in
python*)
(
+ ptxd_make_world_compile_python
+ )
+ ;;
+ ninja)
ptxd_eval \
- cd "${pkg_build_dir}" '&&' \
"${pkg_path}" \
"${pkg_env}" \
"${pkg_make_env}" \
- "${ptx_build_python}" \
- setup.py \
+ ninja -C "${pkg_build_dir}" \
"${pkg_make_opt}" \
"${pkg_make_par}"
- )
;;
- ninja)
+ scons)
ptxd_eval \
"${pkg_path}" \
"${pkg_env}" \
"${pkg_make_env}" \
- ninja -C "${pkg_build_dir}" \
+ scons -C "${pkg_build_dir}" \
"${pkg_make_opt}" \
"${pkg_make_par}"
;;
- scons)
+ cargo)
ptxd_eval \
+ cd "${pkg_build_dir}" '&&' \
"${pkg_path}" \
"${pkg_env}" \
"${pkg_make_env}" \
- scons -C "${pkg_build_dir}" \
+ cargo \
"${pkg_make_opt}" \
"${pkg_make_par}"
;;
@@ -56,6 +265,7 @@ ptxd_make_world_compile() {
"${pkg_make_opt}" \
"${pkg_make_par}"
;;
- esac
+ esac &&
+ ptxd_make_world_compile_finish
}
export -f ptxd_make_world_compile
diff --git a/scripts/lib/ptxd_make_world_compile_commands.sh b/scripts/lib/ptxd_make_world_compile_commands.sh
new file mode 100644
index 000000000..df6baf535
--- /dev/null
+++ b/scripts/lib/ptxd_make_world_compile_commands.sh
@@ -0,0 +1,55 @@
+#!/bin/bash
+#
+# Copyright (C) 2022 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# remove flags that are not needed and cause warnings from clangd
+#
+ptxd_make_world_compile_commands_cleanup() {
+ sed -i \
+ -e 's/ *-fno-diagnostics-show-caret//g' \
+ "${pkg_dir}/compile_commands.json"
+}
+export -f ptxd_make_world_compile_commands_cleanup
+
+ptxd_make_world_compile_commands_filter() {
+ local src_cmds="${1:-${pkg_build_dir}/compile_commands.json}"
+ local dst_cmds="${pkg_dir}/compile_commands.json"
+
+ if [[ "${pkg_url}" =~ ^lndir:// ]]; then
+ # find the real source dir for lndir:// URLs
+ dst_cmds="$(ptxd_abspath "$(ptxd_file_url_path "${pkg_url}")")/compile_commands.json"
+ fi
+
+ if [ ! -e "${src_cmds}" ]; then
+ ptxd_verbose "Ignoring missing '${src_cmds}'."
+ return
+ fi
+
+ if [ "${src_cmds}" = "${dst_cmds}" ]; then
+ if grep -q -F -e "${PTXDIST_CROSS_CPPFLAGS}" "${src_cmds}"; then
+ ptxd_warning "compile_commands.json is already up to date!"
+ return
+ fi
+ mv "${src_cmds}" "${src_cmds}.orig"
+ src_cmds="${src_cmds}.orig"
+ fi
+
+ ptxd_verbose "Generating '$(ptxd_print_path "${dst_cmds}")'"
+ sed \
+ -e "s#\(\"command\": \" *[^ ]*\(gcc\|clang\) \)#\1 ${PTXDIST_CROSS_CPPFLAGS} ${pkg_cflags} #" \
+ -e "s#\(\"command\": \" *[^ ]*++ \)#\1 ${PTXDIST_CROSS_CPPFLAGS} ${pkg_cxxflags} #" \
+ "${src_cmds}" > "${dst_cmds}" &&
+ ptxd_make_world_compile_commands_cleanup
+}
+export -f ptxd_make_world_compile_commands_filter
+
+ptxd_make_world_compile_commands() {
+ ptxd_make_world_init &&
+ ptxd_make_world_compile_commands_filter "${@}"
+}
+export -f ptxd_make_world_compile_commands
diff --git a/scripts/lib/ptxd_make_world_dtb.sh b/scripts/lib/ptxd_make_world_dtb.sh
new file mode 100644
index 000000000..f2eee99e4
--- /dev/null
+++ b/scripts/lib/ptxd_make_world_dtb.sh
@@ -0,0 +1,134 @@
+#!/bin/bash
+#
+# Copyright (C) 2020 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+ptxd_make_dtb() {
+ local dtc dts tmp_dts dtb dtb_extra_args dtb_kernel_dir deps tmp_deps
+
+ dts="${dtb_source}"
+ dtb="${dtb_target}"
+
+ dtb_kernel_dir="${pkg_kernel_dir:-${pkg_dir}}"
+ dtb_kernel_build_dir="${pkg_kernel_build_dir:-${pkg_build_dir}}"
+
+ dtc="${dtb_kernel_build_dir}/scripts/dtc/dtc"
+ if [ ! -x "${dtc}" ]; then
+ dtc=dtc
+ fi
+
+ if [ "$(ptxd_get_ptxconf PTXCONF_KERNEL_DTS_SUPPORT_OVERLAYS)" == "y" ]; then
+ dtb_extra_args="-@"
+ fi
+
+ tmp_dts="${ptx_state_dir}/${pkg_label}.$(basename "${dts}").tmp"
+
+ deps="${ptx_state_dir}/${pkg_label}.$(basename "${dts}").deps"
+ tmp_deps="${PTXDIST_TEMPDIR}/${pkg_label}.$(basename "${dts}").deps"
+
+ exec 2>&${PTXDIST_FD_LOGERR}
+
+ echo "CPP $(ptxd_print_path "${dts}")" &&
+ ptxd_eval \
+ cpp \
+ -Wp,-MMD,${tmp_deps} \
+ -Wp,-MT,${dtb_deps_target} \
+ -nostdinc \
+ -I"$(dirname "${dts}")" \
+ -I${dtb_kernel_dir}/arch/${pkg_arch}/boot/dts \
+ -I${dtb_kernel_dir}/arch/${pkg_arch}/boot/dts/include \
+ -I${dtb_kernel_dir}/scripts/dtc/include-prefixes \
+ -I${dtb_kernel_dir}/drivers/of/testcase-data \
+ -I${dtb_kernel_dir}/include \
+ -undef -D__DTS__ -x assembler-with-cpp \
+ -o ${tmp_dts} \
+ ${dts} &&
+
+ sed -e "\;^ ${dtb_kernel_dir}[^ ]*;d" \
+ -e 's;^ \([^ \]*\); $(wildcard \1);' "${tmp_deps}" > "${deps}" &&
+ # empty line in case all dependencies were removed
+ echo >> "${deps}" &&
+
+ mkdir -p "$(dirname "${dtb}")" &&
+ echo "DTC $(ptxd_print_path "${dtb}")" &&
+ ptxd_eval \
+ "${dtc}" \
+ "${dtb_extra_args}" \
+ -i "$(dirname "${dts}")" \
+ -i "${dtb_kernel_dir}/arch/${pkg_arch}/boot/dts" \
+ -d "${tmp_deps}" \
+ -I dts -O dtb -b 0 \
+ -o "${dtb}" "${tmp_dts}" &&
+
+ awk "{ \
+ s = \"\"; \
+ for (i = 2; i <= NF; i++) { \
+ if (\$i != \"${tmp_dts}\")
+ s = s \" \$(wildcard \" \$i \")\"; \
+ }; \
+ if (s != \""\"") {
+ printf \"${dtb_deps_target}:\" s; \
+ print \"\"; \
+ } \
+ }" "${tmp_deps}" >> "${deps}" ||
+
+ ptxd_bailout "Unable to generate dtb file."
+}
+export -f ptxd_make_dtb
+
+
+ptxd_make_world_dtbo() {
+ local dtb_deps_target dtb_source dtb_target
+
+ ptxd_make_world_init || break
+
+ dtb_deps_target="${ptx_state_dir}/${pkg_stamp}"
+
+ echo -e "\nBuilding device tree overlays..."
+
+ for overlay in ${pkg_dtso}; do
+ if [[ "${overlay}" =~ ^/.* ]]; then
+ ptxd_bailout "'${overlay}' must not be an absolute path!" \
+ "Use <PKG>_DTSO_PATH to specify the search path."
+ fi
+
+ if ! ptxd_in_path pkg_dtso_path "${overlay}"; then
+ ptxd_bailout "Overlay '${overlay}' not found in '${pkg_dtso_path}'."
+ fi
+ dtb_source="${ptxd_reply}"
+ dtb_target="${pkg_pkg_dir}/${pkg_dtbo_dir}/$(basename ${overlay/%.dts*/.dtbo})"
+
+ ptxd_make_dtb || break
+ done
+}
+export -f ptxd_make_world_dtbo
+
+
+ptxd_make_world_dtb() {
+ local dtb_deps_target dtb_source dtb_target
+
+ ptxd_make_world_init || break
+
+ dtb_deps_target="${ptx_state_dir}/${pkg_stamp}"
+
+ echo -e "\nBuilding device trees..."
+
+ for dts_dts in ${pkg_dts}; do
+ if [[ "${dts_dts}" =~ ^/.* ]]; then
+ ptxd_bailout "'${dts_dts}' must not be an absolute path!" \
+ "Use <PKG>_DTS_PATH to specify the search path."
+ fi
+
+ if ! ptxd_in_path pkg_dts_path "${dts_dts}"; then
+ ptxd_bailout "Device tree '${dts_dts}' not found in '${pkg_dts_path}'."
+ fi
+ dtb_source="${ptxd_reply}"
+ dtb_target="${pkg_pkg_dir}/boot/$(basename ${dts_dts/%.dts/.dtb})"
+
+ ptxd_make_dtb || break
+ done
+}
+export -f ptxd_make_world_dtb
diff --git a/scripts/lib/ptxd_make_world_extract.sh b/scripts/lib/ptxd_make_world_extract.sh
index 8ffa88bda..dbd246c0a 100644
--- a/scripts/lib/ptxd_make_world_extract.sh
+++ b/scripts/lib/ptxd_make_world_extract.sh
@@ -10,7 +10,7 @@
#
# ptxd_make_world_extract
#
-ptxd_make_world_extract() {
+ptxd_make_world_extract_impl() {
ptxd_make_world_init || return
if [ -z "${pkg_url}" -a -z "${pkg_src}" -o -z "${pkg_dir}" ]; then
@@ -34,6 +34,7 @@ ptxd_make_world_extract() {
echo "local directory using lndir"
mkdir -p "${pkg_dir}"
lndir "$(ptxd_abspath "${url}")" "${pkg_dir}"
+ rm -f "${pkg_dir}/compile_commands.json"
return
else
ptxd_bailout "the URL '${pkg_url}' points to non existing directory."
@@ -65,7 +66,7 @@ extract: pkg_extract_dir=$(ptxd_print_path ${pkg_dir})"
local tmpdir
tmpdir="$(mktemp -d "${pkg_dir}.XXXXXX")"
- if ! ptxd_make_extract_archive "${pkg_src}" "${tmpdir}"; then
+ if ! ptxd_make_extract_archive "${pkg_src}" "${tmpdir}" "${pkg_src_filter}"; then
rm -rf "${tmpdir}"
ptxd_make_serialize_put
ptxd_bailout "failed to extract '${pkg_src}'."
@@ -86,5 +87,79 @@ extract: pkg_extract_dir=$(ptxd_print_path ${pkg_dir})"
ptxd_make_serialize_put
return ${ret}
}
+export -f ptxd_make_world_extract_impl
+
+ptxd_make_world_extract_cargo_crate() {
+ local tmp srcdir abs_srcdir dir name
+
+ echo "extract: ${src}"
+ tmp="$(basename ${src%.crate})"
+ srcdir="${tmp%.git}"
+ abs_srcdir="${pkg_cargo_home}/source/${srcdir}"
+ mkdir "${abs_srcdir}" &&
+ tar -C "${abs_srcdir}" --strip-components=1 -xf "${src}" || break
+ if grep -qi '^\[package\]$' "${abs_srcdir}/Cargo.toml"; then
+ if [ "${tmp}" = "${srcdir}" ]; then
+ # don't set the checksum for crates from git, they would trigger Cargo.lock changes
+ set -- $(sha256sum "${src}")
+ printf '{"files": {}, "package": "%s"}' "${1}" > "${abs_srcdir}/.cargo-checksum.json"
+ else
+ printf '{"files": {}, "package": null}' > "${abs_srcdir}/.cargo-checksum.json"
+ fi
+ return
+ fi
+ mv "${abs_srcdir}" "${pkg_cargo_home}/workspaces/" &&
+ awk '
+/^members = \[$/ {
+ members = 1
+ next
+}
+/\]$/ {
+ members = 0
+}
+{
+ if (members != 1)
+ next
+ dir = gensub(/"(.*)"[,]?/, "\\1", 1, $1)
+ name = gensub(/\//, "-", "g", dir)
+ print dir, name
+}' "${pkg_cargo_home}/workspaces/${srcdir}/Cargo.toml" | while read dir name; do
+ ln -sf "../workspaces/${srcdir}/${dir}" "${pkg_cargo_home}/source/${name}"
+ printf '{"files": {}, "package": null}' > "${pkg_cargo_home}/source/${name}/.cargo-checksum.json"
+ mv "${pkg_cargo_home}/workspaces/${srcdir}/${dir}/Cargo.toml" \
+ "${pkg_cargo_home}/workspaces/${srcdir}/${dir}/Cargo.toml.orig"
+ "${vendor_cargo_workspace_package}" \
+ --input "${pkg_cargo_home}/workspaces/${srcdir}/${dir}/Cargo.toml.orig" \
+ --output "${pkg_cargo_home}/workspaces/${srcdir}/${dir}/Cargo.toml" \
+ --workspace "${pkg_cargo_home}/workspaces/${srcdir}/Cargo.toml" || return
+ done
+}
+export -f ptxd_make_world_extract_cargo_crate
+ptxd_make_world_extract_cargo() {
+ local src vendor_cargo_workspace_package
+ echo "extract: cargo dependencies:"
+ ptxd_in_path PTXDIST_PATH_SCRIPTS vendor-cargo-workspace-package &&
+ vendor_cargo_workspace_package="${ptxd_reply}" &&
+ rm -rf "${pkg_cargo_home}" &&
+ mkdir -p "${pkg_cargo_home}/source" &&
+ mkdir -p "${pkg_cargo_home}/workspaces" &&
+ for src in ${pkg_srcs}; do
+ case "${src}" in
+ *.crate)
+ ptxd_make_world_extract_cargo_crate || return
+ ;;
+ *)
+ ;;
+ esac
+ done
+}
+export -f ptxd_make_world_extract_cargo
+
+ptxd_make_world_extract() {
+ ptxd_make_world_extract_impl &&
+ if [ "${pkg_conf_tool}" = "cargo" -o -n "${pkg_cargo_lock}" ]; then
+ ptxd_make_world_extract_cargo
+ fi
+}
export -f ptxd_make_world_extract
diff --git a/scripts/lib/ptxd_make_world_get.sh b/scripts/lib/ptxd_make_world_get.sh
index 4d8cbf0d5..ffa9b5ede 100644
--- a/scripts/lib/ptxd_make_world_get.sh
+++ b/scripts/lib/ptxd_make_world_get.sh
@@ -19,7 +19,7 @@ ptxd_make_world_get() {
;;
esac
- if [ -n "${pkg_src}" -a \( \! -e "${pkg_src}" -o "${ptxd_make_get_dryrun}" = "y" \) ]; then
+ if [ -n "${pkg_src}" ]; then
ptxd_make_get "${pkg_src}" "${pkg_url}"
fi
}
diff --git a/scripts/lib/ptxd_make_world_inject.sh b/scripts/lib/ptxd_make_world_inject.sh
new file mode 100644
index 000000000..fe4eb8363
--- /dev/null
+++ b/scripts/lib/ptxd_make_world_inject.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+#
+# Copyright (C) 2021 by Michael Riesch <michael.riesch@wolfvision.net>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+ptxd_make_inject() {
+ local source target
+
+ source="$(echo ${inject_file} | cut -d ":" -f 1)"
+ target="${pkg_source}/$(echo ${inject_file} | cut -d ":" -f 2)"
+ if [ -z "${target}" ]; then
+ target="${source}"
+ fi
+
+ if [[ "${source}" =~ ^/.* ]]; then
+ ptxd_bailout "'${source}' must not be an absolute path!" \
+ "Use <PKG>_INJECT_PATH to specify the search path."
+ fi
+
+ if ! ptxd_in_path pkg_inject_path "${source}"; then
+ ptxd_bailout "Blob '${source}' not found in '${pkg_inject_path}'."
+ fi
+ source="${ptxd_reply}"
+
+ echo -e "\nInject file $(ptxd_print_path ${source}) into" \
+ "$(ptxd_print_path ${target})..."
+ cp ${source} ${target}
+}
+export -f ptxd_make_inject
+
+
+ptxd_make_world_inject() {
+ ptxd_make_world_init || return
+
+ for inject_file in ${pkg_inject_files}; do
+ ptxd_make_inject || return
+ done
+}
+export -f ptxd_make_world_inject
diff --git a/scripts/lib/ptxd_make_world_install.sh b/scripts/lib/ptxd_make_world_install.sh
index 91179e3cb..fbb196fae 100644
--- a/scripts/lib/ptxd_make_world_install.sh
+++ b/scripts/lib/ptxd_make_world_install.sh
@@ -16,9 +16,15 @@ ptxd_make_world_install_prepare() {
fi &&
ptxd_make_world_clean_sysroot &&
rm -rf -- "${pkg_pkg_dir}" &&
- mkdir -p -- "${pkg_pkg_dir}"/{etc,{,usr/}{lib,{,s}bin,include,{,share/}{man/man{1,2,3,4,5,6,7,8,9},misc}}} &&
- if [ "${pkg_type}" != "target" ]; then
+ mkdir -p -- "${pkg_pkg_dir}"/{etc,usr/{lib,{,s}bin,include,{,share/}{man/man{1,2,3,4,5,6,7,8,9},misc}}}
+ if [ "${pkg_type}" = "target" ]; then
+ mkdir -p -- "${pkg_pkg_dir}"/{lib,{,s}bin,include,{,share/}man/man{1,2,3,4,5,6,7,8,9}}
+ else
+ for link in bin sbin lib; do
+ ln -s "usr/${link}" "${pkg_pkg_dir}/${link}"
+ done
ln -s "lib" "${pkg_pkg_dir}/lib64"
+ ln -s "lib" "${pkg_pkg_dir}/usr/lib64"
fi
}
export -f ptxd_make_world_install_prepare
@@ -26,7 +32,7 @@ export -f ptxd_make_world_install_prepare
ptxd_make_world_install_python_cleanup() {
# The full path to the host-python is used as shebang in generated
# executables, so replace it with the correct path.
- find "${pkg_pkg_dir}/usr/bin/" -mindepth 1 -maxdepth 1 -print0 | xargs -0 \
+ find "${pkg_pkg_dir}"/usr/{bin,sbin}/ -mindepth 1 -maxdepth 1 -print0 | xargs -r -0 \
sed -i "1s;^#!/.*/\(python[0-9\.]*\);#!/usr/bin/\1;"
find "${pkg_pkg_dir}" -type f -name "*.so" -print | while read file; do
# Python installs shared libraries with executable flags
@@ -37,7 +43,7 @@ ptxd_make_world_install_python_cleanup() {
# not python3 or already handled
continue
fi
- cp -v "$(dirname "${file}")/__pycache__/$(basename "${file%py}")"cpython-??.pyc "${file}c" || return
+ cp -v "$(dirname "${file}")/__pycache__/$(basename "${file%py}")"cpython-???.pyc "${file}c" || return
done &&
check_pipe_status &&
find "${pkg_pkg_dir}" -type d -name __pycache__ -print0 | xargs -0 rm -rf &&
@@ -46,6 +52,82 @@ ptxd_make_world_install_python_cleanup() {
}
export -f ptxd_make_world_install_python_cleanup
+ptxd_make_world_install_python_cleanup_host() {
+ # change shebang to ensure that the python wrapper is used
+ if [[ " ${pkg_build_deps_all} " =~ ' host-python3 ' ]]; then
+ python="$(basename "${ptx_python3_host}")"
+ find "${pkg_pkg_dir}"/usr/{bin,sbin}/ -mindepth 1 -maxdepth 1 -print0 | xargs -0 -r \
+ sed -i "1s;^#!/.*/\(python[0-9\.]*\);#!/usr/bin/env ${python};"
+ fi
+ if ! [[ " ${pkg_build_deps_all} " =~ ' host-python3 ' ]] && ls "${pkg_pkg_dir}"/usr/lib/system-python3/bin/* &> /dev/null; then
+ mv "${pkg_pkg_dir}"/usr/lib/system-python3/bin/* \
+ "${pkg_pkg_dir}/usr/bin/"
+ fi
+}
+export -f ptxd_make_world_install_python_cleanup_host
+
+ptxd_make_world_install_python() {
+ local sitepackages python_prefix
+
+ if [ -e "${pkg_dir}/pyproject.toml" -a ! -e "${pkg_dir}/setup.py" ] && \
+ ! [[ " ${pkg_build_deps_all} " =~ ' host-python3-pybuild ' ]]; then
+ if [[ " ${pkg_build_deps_all} " =~ ' host-python3 ' ]]; then
+ sitepackages="${ptx_python3_sitepackages}"
+ else
+ # separate path for system Python packages
+ system_python_major_minor="$(python3 -c 'import sys; print("{}.{}".format(sys.version_info.major, sys.version_info.minor))')"
+ sitepackages="/usr/lib/system-python3/lib/python${system_python_major_minor}/site-packages"
+ fi
+ cmd=( \
+ mkdir -p "${pkg_pkg_dir}${sitepackages}" '&&' \
+ unzip -d "${pkg_pkg_dir}${sitepackages}" \
+ "${pkg_build_dir}/*.whl"
+ )
+ elif [ -e "${pkg_dir}/pyproject.toml" ] &&
+ ( [[ " ${pkg_build_deps} " =~ ' host-python3-pybuild ' ]] ||
+ [[ " ${pkg_build_deps} " =~ ' host-system-python3-pybuild ' ]] ) ; then
+ if [[ " ${pkg_build_deps_all} " =~ ' host-python3 ' ]]; then
+ python_prefix=/usr
+ else
+ python_prefix=/usr/lib/system-python3
+ fi
+ cmd=( \
+ "${pkg_path}" \
+ "${pkg_env}" \
+ "${pkg_make_env}" \
+ "${pkg_install_env}" \
+ "${ptx_build_python}" \
+ -m installer \
+ --prefix="${python_prefix}" \
+ "--destdir=${pkg_pkg_dir}" \
+ "${pkg_build_dir}/*.whl"
+ )
+ else
+ cmd=( \
+ cd "${pkg_build_dir}" '&&' \
+ "${pkg_path}" \
+ "${pkg_env}" \
+ "${pkg_make_env}" \
+ "${pkg_install_env}" \
+ "${ptx_build_python}" \
+ setup.py \
+ "${pkg_install_opt}" \
+ )
+ fi
+ if [ "${pkg_type}" = target ]; then
+ cmd+=( \
+ '&&' \
+ ptxd_make_world_install_python_cleanup \
+ )
+ else
+ cmd+=( \
+ '&&' \
+ ptxd_make_world_install_python_cleanup_host \
+ )
+ fi
+}
+export -f ptxd_make_world_install_python
+
#
# FIXME: kick ${pkg_install_env}
#
@@ -75,20 +157,7 @@ ptxd_make_world_install() {
case "${pkg_build_tool}" in
python*)
- cmd=( \
- cd "${pkg_build_dir}" '&&' \
- "${pkg_path}" \
- "${pkg_env}" \
- "${pkg_make_env}" \
- "${pkg_install_env}" \
- "${ptx_build_python}" \
- setup.py \
- "${pkg_install_opt}" \
- )
- if [ "${pkg_type}" = target ]; then
- cmd[${#cmd[@]}]='&&'
- cmd[${#cmd[@]}]=ptxd_make_world_install_python_cleanup
- fi
+ ptxd_make_world_install_python
;;
ninja)
cmd=( \
@@ -113,6 +182,9 @@ ptxd_make_world_install() {
"${pkg_install_opt}" \
)
;;
+ cargo)
+ ptxd_bailout "Packages that use cargo require a custom install stage"
+ ;;
*)
cmd=( \
"${pkg_path}" \
@@ -195,7 +267,7 @@ ptxd_make_world_install_pack() {
if [ "${pkg_type}" != "target" ]; then
find "${pkg_pkg_dir}" -type f -print | while read file; do
if chrpath "${file}" >& /dev/null; then
- local rel="$(ptxd_abs2rel "$(dirname "${file}")" "${pkg_pkg_dir}/lib")"
+ local rel="$(ptxd_abs2rel "$(dirname "${file}")" "${pkg_pkg_dir}/usr/lib")"
chmod +w "${file}" &&
if ! chrpath --replace "\${ORIGIN}/${rel}" "${file}" > /dev/null; then
ptxd_bailout "Failed to adjust rpath for '${file}'"
@@ -238,7 +310,7 @@ ptxd_make_world_install_post() {
ptxd_make_world_init &&
(
if [ -n "${pkg_pkg_dir}" -a -d "${pkg_pkg_dir}" ]; then
- find "${pkg_pkg_dir}"{,/usr}/{$(ptxd_get_lib_dir),share}/pkgconfig -name *.pc \
+ find "${pkg_pkg_dir}"{,/usr}/{lib,share}/pkgconfig -name *.pc \
-printf "%f\n" 2>/dev/null | sed 's/\.pc$//'
elif [ "${pkg_type}" != "target" -a -n "${pkg_build_dir}" -a -d "${pkg_build_dir}" ]; then
# workaround for packages that install directly to sysroot
@@ -268,7 +340,7 @@ ptxd_make_world_install_post() {
find "${pkg_pkg_dir}" ! -type d -name "${pkg_binconfig_glob}" | while read config; do
sed -i -e "s:@SYSROOT@:${pkg_sysroot_dir}:g" "${config}" &&
if [ "${pkg_type}" = "target" ]; then
- cp -P -- "${config}" "${PTXDIST_SYSROOT_CROSS}/bin" || return
+ cp -P -- "${config}" "${PTXDIST_SYSROOT_CROSS}/usr/bin" || return
fi
done &&
diff --git a/scripts/lib/ptxd_make_world_install_library_path.sh b/scripts/lib/ptxd_make_world_install_library_path.sh
index 20e570c7f..f783ff381 100644
--- a/scripts/lib/ptxd_make_world_install_library_path.sh
+++ b/scripts/lib/ptxd_make_world_install_library_path.sh
@@ -24,7 +24,7 @@ ptxd_make_world_install_library_path_one()
# if the library exists in sysroot-host, we use that one
# using @executable_path even keeps the tree relocatable.
- installfile="${PTXDIST_SYSROOT_HOST}/lib/${filename}"
+ installfile="${PTXDIST_SYSROOT_HOST}/usr/lib/${filename}"
if [ -r "${installfile}" ] ; then
install_name_tool -change \
"${used_library}" "${installfile}" \
@@ -50,7 +50,7 @@ export -f ptxd_make_world_install_library_path_one
# For every binary (library and executable) in that package directory
# it translates the path to the correspondent path after copying
# to the sysroot-host and invokes ptxd_make_world_install_library_path_one
-# which finally edits the install path of libaries/executables.
+# which finally edits the install path of libraries/executables.
ptxd_make_world_install_library_path()
{
if [ "$(uname -s)" != Darwin ] ; then
diff --git a/scripts/lib/ptxd_make_world_license.sh b/scripts/lib/ptxd_make_world_license.sh
index f68b75339..c8b3b98b0 100644
--- a/scripts/lib/ptxd_make_world_license.sh
+++ b/scripts/lib/ptxd_make_world_license.sh
@@ -188,90 +188,36 @@ ptxd_make_world_license_write() {
continue
fi
title="$(basename "${license}")"
- cat <<- EOF
- \section{$(ptxd_make_latex_escape "${title}")${guess}}
- \begin{small}
- \begin{spverbatim}
- EOF
- if [ -f "${license}.utf-8" ]; then
- cat "${license}.utf-8"
- else
- cat "${license}"
- fi | sed -e 's/\f/\n/g'
- check_pipe_status || return
- cat <<- EOF
- \end{spverbatim}
- \end{small}
- EOF
+ case "${license}" in
+ *.pdf)
+ cat <<- EOF
+ \section{$(ptxd_make_latex_escape "${title}")${guess}}
+ \includepdf[pages=-]{${license}}
+ EOF
+ ;;
+ *)
+ cat <<- EOF
+ \section{$(ptxd_make_latex_escape "${title}")${guess}}
+ \begin{small}
+ \begin{spverbatim}
+ EOF
+
+ if [ -f "${license}.utf-8" ]; then
+ cat "${license}.utf-8"
+ else
+ cat "${license}"
+ fi | sed -e 's/\f/\n/g'
+ check_pipe_status || return
+ cat <<- EOF
+ \end{spverbatim}
+ \end{small}
+ EOF
+ ;;
+ esac
done
}
export -f ptxd_make_world_license_write
-ptxd_make_world_license_yaml() {
- do_echo() {
- if [ -n "${2}" ]; then
- echo "${1} '${2}'"
- fi
- }
- do_list() {
- if [ -n "${2}" ]; then
- echo "${1}"
- awk "BEGIN { RS=\" \" } { if (\$1) print \"- '\" \$1 \"'\" }" <<<"${2}"
- fi
- }
- do_echo "name:" "${pkg_label}"
- do_echo "rulefile:" "${pkg_makefile}"
- do_echo "menufile:" "${pkg_infile}"
- do_list "builddeps:" "${pkg_build_deps}"
- do_list "rundeps:" "${pkg_run_deps}"
- do_echo "config:" "${pkg_config}"
- do_echo "version:" "${pkg_version}"
- do_list "url:" "${pkg_url}"
- do_echo "md5:" "${pkg_md5}"
- do_echo "source:" "${pkg_src}"
- if [ -n "${pkg_md5s}" ]; then
- echo "md5s:"
- awk "BEGIN { RS=\" *:\\\\s*\"; FS=\":\" } { if (\$1) print \"- '\" \$1 \"'\" }" <<<"${pkg_md5s}"
- fi
- do_list "sources:" "${pkg_srcs}"
- do_echo "patches:" "${pkg_patch_dir}"
- if [ "${pkg_patch_series}" != "series" -a -n "${pkg_patch_dir}" ]; then
- do_echo "series:" "${pkg_patch_series}"
- fi
- do_echo "srcdir:" "${pkg_dir}"
- do_echo "builddir:" "${pkg_build_dir}"
- do_echo "pkgdir:" "${pkg_pkg_dir}"
- do_echo "section:" "${pkg_section}"
- do_echo "licenses:" "${pkg_license}"
- do_list "license-flags:" "${!pkg_license_flags[*]}"
- if [ ${#pkg_license_texts[@]} -gt 0 -o ${#pkg_license_texts_guessed[@]} -gt 0 ]; then
- echo "license-files:"
- fi
- local guess="false"
- for license in "${pkg_license_texts[@]}" - "${pkg_license_texts_guessed[@]}"; do
- if [ "${license}" = "-" ]; then
- guess="true"
- continue
- fi
- cat << EOF
- $(basename "${license}"):
- guessed: ${guess}
- file: '${license}'
- md5: '$(sed -n "s/\(.*\) $(basename "${license}")\$/\1/p" "${pkg_license_dir}/license/MD5SUM")'
-EOF
- done
- if [ -e "${pkg_xpkg_map}" ]; then
- echo "ipkgs:"
- for xpkg in $(< "${pkg_xpkg_map}"); do
- echo "- '${ptx_pkg_dir}/${xpkg}_${pkg_version}_${PTXDIST_IPKG_ARCH_STRING}.ipk'"
- done
- fi
- do_echo "image:" "${image_image}"
- do_list "pkgs:" "${image_pkgs}"
- do_list "files:" "${image_files}"
-}
-export -f ptxd_make_world_license_yaml
-
# Copy all patches according to the series file
# $1 full path to the series file
# $2 source directory
@@ -310,7 +256,7 @@ export -f ptxd_make_world_copy_patch_files
# $1 path to the extracted and patched sources [1]
# $2 base directory where to copy the patches to (without the trailing 'patches')
#
-# [1] assumed here is the existance of the '.ptxdist' directory which contains
+# [1] assumed here is the existence of the '.ptxdist' directory which contains
# the selected patch stack if any
ptxd_make_world_copy_patches() {
local patches_directory=""
@@ -445,16 +391,9 @@ ptxd_make_world_license_flags() {
export -f ptxd_make_world_license_flags
ptxd_make_world_license_init() {
- # use patchin_init for pkg_patch_dir
- ptxd_make_world_patchin_init || return
-
local name
- pkg_license="${pkg_license:-unknown}"
-
- ptxd_make_world_license_flags || return
-
- pkg_section="$(ptxd_create_section_from_license "${pkg_license}")"
+ ptxd_make_world_report_init || return
name="${pkg_label#host-}"
name="${name#cross-}"
@@ -463,6 +402,7 @@ ptxd_make_world_license_init() {
pkg_release_dir="${ptx_release_dir}/${pkg_section}/${name}"
}
export -f ptxd_make_world_license_init
+
#
# extract and process all available license information
#
@@ -480,11 +420,6 @@ ptxd_make_world_license() {
rm -rf "${pkg_license_dir}" || return
- if [ "${pkg_section}" == "ignore" ]; then
- echo "Package to be ignored: metapackage for example"
- return 0
- fi
-
mkdir -p ${pkg_license_dir} &&
echo ${pkg_section}/${pkg_label} >> "${ptx_report_dir}/package.list" &&
@@ -501,6 +436,7 @@ ptxd_make_world_license() {
ptxd_make_world_parse_license_files "${arg}" &&
local lic="${pkg_license_dir}/license/${filename//\//_}" &&
+ echo " $(ptxd_print_path "${file}")${guess:+ (guessed)}" &&
sed -n "${startline},${endline}p" "${file}" > "${lic}" &&
if [ -n "${encoding}" ]; then
iconv -f "${encoding}" -t "utf-8" -o "${lic}.utf-8" "${lic}"
@@ -521,12 +457,15 @@ changed: ${md5} -> $(md5sum "${lic}" | sed 's/ .*//')
fi ||
ptxd_bailout "Failed to copy '$(ptxd_print_path "${file}")'"
done &&
+ echo &&
- ptxd_make_world_license_write | \
- sed -e 's/%/\\%/g' > "${pkg_license_dir}/license-report.tex" &&
- check_pipe_status &&
+ if [ "${pkg_section}" != "ignore" ]; then
+ ptxd_make_world_license_write | \
+ sed -e 's/%/\\%/g' > "${pkg_license_dir}/license-report.tex" &&
+ check_pipe_status
+ fi &&
- ptxd_make_world_license_yaml > "${pkg_license_dir}/license-report.yaml" &&
+ ptxd_make_world_report_yaml > "${pkg_license_dir}/license-report.yaml" &&
echo "${pkg_license}" > "${pkg_license_dir}/license-name" &&
if [ "${#pkg_license_flags[@]}" -gt 0 ]; then
diff --git a/scripts/lib/ptxd_make_world_lint.sh b/scripts/lib/ptxd_make_world_lint.sh
index 06926e58d..01a35d480 100644
--- a/scripts/lib/ptxd_make_world_lint.sh
+++ b/scripts/lib/ptxd_make_world_lint.sh
@@ -34,22 +34,35 @@ ptxd_make_world_lint_patches() {
export -f ptxd_make_world_lint_patches
PTXDIST_LINT_COMMANDS="${PTXDIST_LINT_COMMANDS} patches"
-ptxd_make_world_lint_symbols_make() {
- local sedfd
-
+ptxd_make_world_lint_symbols_make_get() {
# - drop comments
# - split after ')' to match multiple symbols in one line
# - match '$(PTXCONF_*)'
# - match 'ifdef PTXCONF_*' and similar things
- exec {sedfd}< <(sed -e '/^#/d' -e 's/)/)\n/g' "${1}" | \
- sed -n -e 's/.*\$(PTXCONF_\([A-Z0-9_]\+\)).*/\1/p' \
- -e 's/.* PTXCONF_\([A-Z0-9_]\+\)$/\1/p' | sort -u)
+ # - match '$(call ... PTXCONF_*)'
+ sed -e '/^#/d' -e 's/)/)\n/g' "${1}" | \
+ sed -e 's/.*\$[{(]\(PTXCONF_[A-Z0-9_]\+\)[})].*/\1/' \
+ -e 's/.* \(PTXCONF_[A-Z0-9_]\+\)$/\1/' \
+ -e 's/.*call .*[, ]\(PTXCONF_[A-Z0-9_]\+\).*/\1/' | \
+ sed -n 's/^PTXCONF_\([A-Z0-9_][A-Z0-9_]*\)$/\1/p' | \
+ sort -u
+}
+export -f ptxd_make_world_lint_symbols_make_get
+
+ptxd_make_world_lint_symbols_make() {
+ local sedfd
+
+ exec {sedfd}< <(ptxd_make_world_lint_symbols_make_get "${1}")
while read symbol <&${sedfd}; do
if ! [[ " ${symbols_all} " =~ " ${symbol} " ]]; then
if [[ "${symbol}" =~ ^(BOARD|)SETUP_ ]]; then
# skip for now because we cannot track those symbols
continue
fi
+ if [ "${symbol}" = "QT5_MODULE_" ]; then
+ # used in a macro to build configure options
+ continue
+ fi
symbol="PTXCONF_${symbol}"
if [ -z "${!symbol}" ]; then
ptxd_lint_error "Undefined symbol ${symbol} used in '$(ptxd_print_path "${1}")'."
@@ -73,8 +86,39 @@ ptxd_make_world_lint_makefiles() {
}
export -f ptxd_make_world_lint_makefiles
+ptxd_make_world_lint_menu_files() {
+ sed -n 's;source "\(.*\)";\1;p' ${PTX_KGEN_DIR}/generated/*
+}
+export -f ptxd_make_world_lint_menu_files
+
+ptxd_make_world_lint_symbol_package() {
+ local packages package tmp
+
+ packages="$(tr 'a-z-' 'A-Z_' <<<"${ptx_packages_all} ${ptx_packages_virtual}")"
+ for tmp in ${packages}; do
+ if [[ "${1}" =~ ^"${tmp}" && ${#tmp} -gt ${#package} ]]; then
+ package="${tmp}"
+ fi
+ done
+ echo "${package}"
+}
+export -f ptxd_make_world_lint_symbol_package
+
+unset ptxd_make_world_lint_dep_whitelist
+# special packages. It's more readable like this here
+ptxd_make_world_lint_dep_whitelist+="FAKE_OVERLAYFS "
+ptxd_make_world_lint_dep_whitelist+="LIBC "
+ptxd_make_world_lint_dep_whitelist+="GCCLIBS "
+ptxd_make_world_lint_dep_whitelist+="ROOTFS "
+# toplevel symbol is defined in a different file
+ptxd_make_world_lint_dep_whitelist+="INITMETHOD_SYSTEMD "
+ptxd_make_world_lint_dep_whitelist+="INITMETHOD_BBINIT "
+ptxd_make_world_lint_dep_whitelist+="SYSTEMD_UDEV_HWDB "
+export ptxd_make_world_lint_dep_whitelist
+
ptxd_make_world_lint_symbols() {
local symbol symbols_all
+ local -A deps
echo "Checking kconfig symbols in menu files ..."
if [ -e "${PTXDIST_TEMPDIR}/SYMBOLS_UNKNOWN" ]; then
@@ -83,14 +127,52 @@ ptxd_make_world_lint_symbols() {
done
fi
echo
-
- echo "Checking kconfig symbols in rule files ..."
symbols_all="$(<${PTXDIST_TEMPDIR}/SYMBOLS_ALL)"
symbols_all="${symbols_all//$'\n'/ }"
+
+ echo "Checking dependencies of package sub-options ..."
+ exec {depfd}< <(sed -n "s/PTX_MAP_._DEP_\(.*\)=\(.*\)/\1 \2/p" \
+ ${PTXDIST_PLATFORMDIR}/state/ptx_map_deps.sh.tmp | \
+ sed 's/:/ /g')
+ while read tmp <&${depfd}; do
+ set -- ${tmp}
+ tmp="${1}"
+ shift
+ deps[${tmp}]+=" ${*}"
+ done
+ exec {depfd}<&-
+
+ for symbol in ${symbols_all}; do
+ local package dep dep_package
+ if [ -z "${deps[${symbol}]}" ]; then
+ continue
+ fi
+ package="$(ptxd_make_world_lint_symbol_package "${symbol}")"
+ if [ "${package}" = "${symbol}" -o -z "${package}" ]; then
+ continue
+ fi
+ if [[ " ${ptxd_make_world_lint_dep_whitelist} " =~ " ${package} " ]]; then
+ continue
+ fi
+ if [[ " ${ptxd_make_world_lint_dep_whitelist} " =~ " ${symbol} " ]]; then
+ continue
+ fi
+ exec {depfd}< <(echo ${deps[${symbol}]} | sed 's/ /\n/g' | sort -u)
+ while read dep <&${depfd}; do
+ local dep_package="$(ptxd_make_world_lint_symbol_package "${dep}")"
+ if [ "${package}" != "${dep_package}" ]; then
+ ptxd_lint_error "Sub-option ${symbol} selects ${dep} from another package"
+ fi
+ done
+ exec {depfd}<&-
+ done
+ echo
+
+ echo "Checking kconfig symbols in rule files ..."
exec {filefd}< <(ptxd_make_world_lint_makefiles)
while read file <&${filefd}; do
ptxd_make_world_lint_symbols_make "${file}"
- done < "${ptx_dgen_rulesfiles_make}"
+ done
exec {filefd}<&-
echo
}
@@ -128,7 +210,7 @@ ptxd_make_world_lint_macros() {
exec {filefd}< <(ptxd_make_world_lint_makefiles)
while read file <&${filefd}; do
ptxd_make_world_lint_macros_make "${file}"
- done < "${ptx_dgen_rulesfiles_make}"
+ done
exec {filefd}<&-
echo
}
@@ -170,7 +252,7 @@ ptxd_make_world_lint_autogen() {
need_autogen=1
break
fi
- done < "${ptx_dgen_rulesfiles_make}"
+ done
exec {fd}<&-
if [ -n "${need_autogen}" -a ! -e "${dir}/autogen.sh" ]; then
ptxd_lint_error "'$(ptxd_print_path "${file}")' touches files that require autoreconf" \
@@ -192,15 +274,138 @@ ptxd_make_world_lint_credits() {
if grep -q "See CREDITS for details about who has contributed to this project\." "${file}"; then
ptxd_lint_error "'$(ptxd_print_path "${file}")' contains obsolete 'CREDITS' comment."
fi
- done < "${ptx_dgen_rulesfiles_make}"
+ done
exec {filefd}<&-
+ echo
}
export -f ptxd_make_world_lint_credits
PTXDIST_LINT_COMMANDS="${PTXDIST_LINT_COMMANDS} credits"
+unset ptxd_make_world_lint_cross_whitelist
+# we don't care about the initmethod
+ptxd_make_world_lint_cross_whitelist+="INITMETHOD_BBINIT INITMETHOD_SYSTEMD "
+# used to add the include path for the kernel headers
+ptxd_make_world_lint_cross_whitelist+="KERNEL_HEADER "
+# basically global stuff
+ptxd_make_world_lint_cross_whitelist+="GLIBC_Y2038 "
+ptxd_make_world_lint_cross_whitelist+="LOCALES "
+ptxd_make_world_lint_cross_whitelist+="PRELINK "
+ptxd_make_world_lint_cross_whitelist+="ROOTFS_ETC_HOSTNAME "
+# needed for dependencies
+ptxd_make_world_lint_cross_whitelist+="SYSTEMD_HWDB "
+# needed by the kernel
+ptxd_make_world_lint_cross_whitelist+="IMAGE_KERNEL_INITRAMFS IMAGE_KERNEL_INSTALL_EARLY IMAGE_KERNEL_LZOP "
+export ptxd_make_world_lint_cross_whitelist
+
+ptxd_make_world_lint_cross() {
+ local filefd file pkg packages
+
+ echo "Checking for packages that use symbols from other packages ..."
+
+ packages="$(tr 'a-z-' 'A-Z_' <<<${ptx_packages_all})"
+
+ exec {filefd}< <(ptxd_make_world_lint_makefiles)
+ while read file <&${filefd}; do
+ pkg="$(sed -n -e 's/^[A-Z_]*PACKAGES-.*\$(PTXCONF_\([A-Z0-9]*\)) +=.*/\1/p' -e '/^[A-Z]/q' "${file}")"
+ if [ -z "${pkg}" ]; then
+ continue
+ fi
+ exec {sedfd}< <(ptxd_make_world_lint_symbols_make_get "${file}")
+ while read symbol <&${sedfd}; do
+ found="false"
+ if [[ "${symbol}" =~ ^${pkg} ]]; then
+ continue
+ fi
+ if [[ " ${ptxd_make_world_lint_cross_whitelist} " =~ " ${symbol} " ]]; then
+ continue
+ fi
+ for tmp in ${packages}; do
+ if [[ "${symbol}" =~ ^${tmp}$ || "${symbol}" =~ ^${tmp}_ ]]; then
+ found="true"
+ break
+ fi
+ done
+ if ${found}; then
+ ptxd_lint_error "'$(ptxd_print_path "${file}")' contains symbol 'PTXCONF_${symbol}' from another package."
+ fi
+ done
+ done
+ exec {filefd}<&-
+ echo
+}
+export -f ptxd_make_world_lint_cross
+PTXDIST_LINT_COMMANDS="${PTXDIST_LINT_COMMANDS} cross"
+
+ptxd_make_world_lint_menu() {
+ local filefd file
+
+ echo "Checking menu file formating and basic syntax ..."
+
+ exec {filefd}< <(ptxd_make_world_lint_menu_files)
+ while read file <&${filefd}; do
+ if grep -q "\<default n$" "${file}"; then
+ ptxd_lint_error "'$(ptxd_print_path "${file}")' contains redundant 'default n'."
+ fi
+ if grep -q "[ ]$" "${file}"; then
+ ptxd_lint_error "'$(ptxd_print_path "${file}")' contains trailing whitespaces."
+ fi
+ if grep -q "^ *[^ ]" "${file}"; then
+ ptxd_lint_error "'$(ptxd_print_path "${file}")' uses spaces instead of tabs."
+ fi
+ if grep -q "## SECTION=project_specific" "${file}" && \
+ [[ "${file}" =~ ^"${PTXDIST_TOPDIR}" ]] && \
+ [ "${file}" != "${PTXDIST_TOPDIR}/rules/project_specific.in" ]; then
+ ptxd_lint_error "'$(ptxd_print_path "${file}")' uses the section 'project_specific'."
+ fi
+ done
+ exec {filefd}<&-
+ echo
+}
+export -f ptxd_make_world_lint_menu
+PTXDIST_LINT_COMMANDS="${PTXDIST_LINT_COMMANDS} menu"
+
+ptxd_make_world_lint_arch() {
+
+ echo "Checking that toolchain and architecture settings match ..."
+
+ if echo | ptxd_cross_cc -dM -E - | grep -q __x86_64__; then
+ if ! ptxd_get_ptxconf PTXCONF_ARCH_X86_64; then
+ ptxd_lint_error "x86-64 toolchain but PTXCONF_ARCH_X86_64 is not set"
+ fi
+ return
+ fi
+ if echo | ptxd_cross_cc -dM -E - | grep -q __i386__; then
+ if ! ptxd_get_ptxconf PTXCONF_ARCH_X86; then
+ ptxd_lint_error "x86 toolchain but PTXCONF_ARCH_X86 is not set"
+ fi
+ if ptxd_get_ptxconf PTXCONF_ARCH_X86_64; then
+ ptxd_lint_error "i*86 toolchain but PTXCONF_ARCH_X86_64 is set"
+ fi
+ return
+ fi
+ arm_arch="$(echo | ptxd_cross_cc -dM -E - | sed -n 's/#define __ARM_ARCH \(.*\)/\1/p')"
+ if [ -n "${arm_arch}" ]; then
+ if [ "${arm_arch}" = "7" -a -z "$(ptxd_get_ptxconf PTXCONF_ARCH_ARM_V7)" ]; then
+ ptxd_lint_error "ARMv7 toolchain but PTXCONF_ARCH_ARM_V7 is not set"
+ elif [ "${arm_arch}" != "7" -a -n "$(ptxd_get_ptxconf PTXCONF_ARCH_ARM_V7)" ]; then
+ ptxd_lint_error "ARMv${arm_arch} toolchain but PTXCONF_ARCH_ARM_V7 is set"
+ fi
+ if [ "${arm_arch}" = "6" -a -z "$(ptxd_get_ptxconf PTXCONF_ARCH_ARM_V6)" ]; then
+ ptxd_lint_error "ARMv6 toolchain but PTXCONF_ARCH_ARM_V6 is not set"
+ elif [ "${arm_arch}" -lt 6 -a -n "$(ptxd_get_ptxconf PTXCONF_ARCH_ARM_V6)" ]; then
+ ptxd_lint_error "ARMv${arm_arch} toolchain but PTXCONF_ARCH_ARM_V6 is set"
+ fi
+ return
+ fi
+}
+export -f ptxd_make_world_lint_arch
+PTXDIST_LINT_COMMANDS="${PTXDIST_LINT_COMMANDS} arch"
+
ptxd_make_world_lint() {
local command
+ ptxd_make_world_env_init || return
+
for command in ${PTXDIST_LINT_COMMANDS}; do
ptxd_make_world_lint_${command}
done
diff --git a/scripts/lib/ptxd_make_world_package_info.sh b/scripts/lib/ptxd_make_world_package_info.sh
index 48b7b21da..31cbe5451 100644
--- a/scripts/lib/ptxd_make_world_package_info.sh
+++ b/scripts/lib/ptxd_make_world_package_info.sh
@@ -7,7 +7,7 @@
#
ptxd_make_world_package_info() {
- local last_config base_config ref_config
+ local last_config base_config ref_config makefile
# use patchin_init for pkg_patch_dir
ptxd_make_world_patchin_init || return
@@ -28,7 +28,9 @@ ptxd_make_world_package_info() {
do_echo "image:" "$(ptxd_print_path "${image_image}")"
echo
- if [ -n "${pkg_config}" ]; then
+ # not all packages with pkg_config set actually use the config diffs
+ # so don't try to determine base/ref configs when ptxd_make_kconfig_init fails
+ if [ -n "${pkg_config}" ] && ( ptxd_make_kconfig_init ) &> /dev/null; then
local file_dotconfig="${pkg_config}"
local ref_file_dotconfig="${pkg_ref_config}"
ptxd_make_kconfig_init
@@ -61,6 +63,9 @@ ptxd_make_world_package_info() {
do_echo "${pkg_dir}${pkg_pkg_dir}"
do_echo "rule file:" "$(ptxd_print_path "${pkg_makefile}")"
+ for makefile in ${pkg_extra_makefiles}; do
+ do_echo "" "$(ptxd_print_path "${makefile}")"
+ done
do_echo "menu file:" "$(ptxd_print_path "${pkg_infile}")"
echo
diff --git a/scripts/lib/ptxd_make_world_patchin.sh b/scripts/lib/ptxd_make_world_patchin.sh
index aa1077718..8fde0e24c 100644
--- a/scripts/lib/ptxd_make_world_patchin.sh
+++ b/scripts/lib/ptxd_make_world_patchin.sh
@@ -62,6 +62,14 @@ ptxd_make_world_patchin_apply_git_init()
local git_dir
git_dir="$(git rev-parse --git-dir 2> /dev/null)" || true
+ local git_ptx_patches
+ ptxd_in_path PTXDIST_PATH_SCRIPTS git-ptx-patches
+ git_ptx_patches="${ptxd_reply}"
+
+ local git_ptx_refresh_tags_editor
+ ptxd_in_path PTXDIST_PATH_SCRIPTS git-ptx-refresh-tags-editor
+ git_ptx_refresh_tags_editor="${ptxd_reply}"
+
# is already git repo?
if [ "${git_dir}" != ".git" ]; then
echo "patchin: git: initializing repository"
@@ -70,8 +78,8 @@ ptxd_make_world_patchin_apply_git_init()
__git commit -q -m "initial commit" --author="ptxdist-${PTXDIST_VERSION_FULL} <ptxdist@pengutronix.de>" &&
__git tag "${pkg_pkg//\~/-}" &&
__git tag base &&
- __git config alias.ptx-patches "!${PTXDIST_TOPDIR}/scripts/git-ptx-patches \"\${@}\"" &&
- __git config core.editor "${PTXDIST_TOPDIR}/scripts/git-ptx-refresh-tags-editor" &&
+ __git config alias.ptx-patches "!${git_ptx_patches} \"\${@}\"" &&
+ __git config core.editor "${git_ptx_refresh_tags_editor}" &&
__git config diff.renames false &&
__git config core.abbrev 12 &&
__git config core.autocrlf false &&
@@ -385,7 +393,7 @@ ptxd_make_world_patchin_fixup()
# - on blackfin they've got symbols with more "_" prefixes than on other platforms
# - teach libtool to cope with it
#
- # the second one supresses the adding of "rpath"
+ # the second one suppresses the adding of "rpath"
#
sed -i \
-e "s=sed -e \"s/\\\\(\.\*\\\\)/\\\\1;/\"=sed -e \"s/\\\\(.*\\\\)/'\"\$ac_symprfx\"'\\\\1;/\"=" \
@@ -502,6 +510,32 @@ export -f ptxd_make_world_patchin
ptxd_make_world_patchin_post() {
ptxd_make_world_patchin_init || return
+ if [ "${pkg_conf_tool}" = "cargo" -o -n "${pkg_cargo_lock}" ]; then
+ cat << EOF > ${pkg_cargo_home}/config
+[source.ptxdist]
+directory = "${pkg_cargo_home}/source"
+
+[source.crates-io]
+replace-with = "ptxdist"
+local-registry = "/nonexistant"
+
+EOF
+
+ grep 'source = "git' "${pkg_dir}/${pkg_cargo_lock}" | sort -u | \
+ sed -n 's;^source = "git+\(.*://[^?]*\)?branch=\(.*\)#.*;[source."\1"]\ngit = "\1"\nbranch = "\2"\nreplace-with = "ptxdist"\n;p' >> ${pkg_cargo_home}/config
+ grep 'source = "git' "${pkg_dir}/${pkg_cargo_lock}" | sort -u | \
+ sed -n 's;^source = "git+\(.*://[^?]*\)?rev=\(.*\)#.*";[source."\1"]\ngit = "\1"\nrev = "\2"\nreplace-with = "ptxdist"\n;p' >> ${pkg_cargo_home}/config
+ grep 'source = "git' "${pkg_dir}/${pkg_cargo_lock}" | sort -u | \
+ sed -n 's;^source = "git+\(.*://[^?]*\)#.*";[source."\1"]\ngit = "\1"\nreplace-with = "ptxdist"\n;p' >> ${pkg_cargo_home}/config
+ cat << EOF >> ${pkg_cargo_home}/config
+
+[build]
+target-dir = "${pkg_build_dir}/target"
+
+[net]
+offline = true
+EOF
+ fi
if [ -n "${pkg_patchin_dir}" ]; then (
cd "${pkg_conf_dir_abs}" &&
if [ -n "${pkg_patch_dir}" ]; then
diff --git a/scripts/lib/ptxd_make_world_prepare.sh b/scripts/lib/ptxd_make_world_prepare.sh
index 9ba2e78e2..163e2b3c3 100644
--- a/scripts/lib/ptxd_make_world_prepare.sh
+++ b/scripts/lib/ptxd_make_world_prepare.sh
@@ -61,7 +61,7 @@ EOF
elif [ \( "${pkg_conf_tool}" = "qmake" -o "${pkg_conf_tool}" = "perl" \) -a "${pkg_type}" != "target" ]; then
cat >&2 <<EOF
-error: only ${pkg_conf_tool} taget packages are supported
+error: only ${pkg_conf_tool} target packages are supported
EOF
exit 1
@@ -69,7 +69,6 @@ EOF
}
export -f ptxd_make_world_prepare_sanity_check
-
#
# prepare for cmake based pkgs
#
@@ -81,7 +80,8 @@ ptxd_make_world_prepare_cmake() {
"${pkg_conf_env}" \
cmake \
"${pkg_conf_opt}" \
- "${pkg_conf_dir}"
+ "${pkg_conf_dir}" &&
+ ptxd_make_world_compile_commands_filter
}
export -f ptxd_make_world_prepare_cmake
@@ -149,12 +149,38 @@ ptxd_make_world_prepare_meson() {
"${pkg_path}" \
"${pkg_env}" \
"${pkg_conf_env}" \
- meson \
+ meson setup \
"${pkg_conf_opt}" \
- "${pkg_conf_dir}"
+ "${pkg_conf_dir}" &&
+ ptxd_make_world_compile_commands_filter
}
export -f ptxd_make_world_prepare_meson
+#
+# prepare for cargo based pkgs
+#
+ptxd_make_world_prepare_cargo_check() {
+ local arg cargo_lock_md5
+ local -a tmp
+ local pkg_makefile_cargo="${pkg_makefile%.make}.cargo.make"
+
+ if [ -z "${pkg_cargo_lock}" ]; then
+ return
+ fi
+
+ if [ -z "${pkg_cargo_lock_md5}" ]; then
+ ptxd_bailout "Cargo dependency config is missing!" \
+ "Run 'ptxdist cargosync ${pkg_label}' to generate '$(ptxd_print_path ${pkg_makefile_cargo})'."
+ fi
+ tmp=( $(cd "${pkg_dir}" && md5sum "${pkg_cargo_lock}" 2> /dev/null) )
+ if [ "${tmp[0]}" != "${pkg_cargo_lock_md5}" ]; then
+ echo "|${tmp[0]}|${pkg_cargo_lock_md5}|"
+ ptxd_bailout "${pkg_cargo_lock} has changed!" \
+ "Run 'ptxdist cargosync ${pkg_label}' to regenerate '$(ptxd_print_path ${pkg_makefile_cargo})'."
+ fi
+}
+export -f ptxd_make_world_prepare_cargo_check
+
ptxd_make_world_prepare_init() {
# delete existing build_dir
if [ -n "${pkg_build_oot}" ]; then
@@ -181,7 +207,8 @@ ptxd_make_world_prepare() {
return
fi
- ptxd_make_world_prepare_init || return
+ ptxd_make_world_prepare_init &&
+ ptxd_make_world_prepare_cargo_check|| return
case "${pkg_conf_tool}" in
cmake|meson)
@@ -190,8 +217,8 @@ ptxd_make_world_prepare() {
fi
;;
qmake)
- if ! [[ " ${pkg_build_deps} " =~ ' 'qt[45]' ' ]]; then
- ptxd_bailout "'${pkg_label}' uses 'qmake' but does not select 'qt4' or 'qt5'"
+ if ! [[ " ${pkg_build_deps} " =~ ' 'qt[56]' ' ]]; then
+ ptxd_bailout "'${pkg_label}' uses 'qmake' but does not select 'qt5' or 'qt6'"
fi
;;
perl)
@@ -215,7 +242,7 @@ ptxd_make_world_prepare() {
autoconf|cmake|qmake|kconfig|perl|meson)
cd -- "${pkg_build_dir}" &&
ptxd_make_world_prepare_"${pkg_conf_tool}" ;;
- python|python3|scons)
+ python|python3|scons|cargo)
: ;; # nothing to do
"NO") echo "prepare stage disabled." ;;
"") echo "No prepare tool found. Do nothing." ;;
diff --git a/scripts/lib/ptxd_make_world_report.sh b/scripts/lib/ptxd_make_world_report.sh
new file mode 100644
index 000000000..40c6926b4
--- /dev/null
+++ b/scripts/lib/ptxd_make_world_report.sh
@@ -0,0 +1,197 @@
+#!/bin/bash
+#
+# Copyright (C) 2022 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+ptxd_make_world_report_init() {
+ # use patchin_init for pkg_patch_dir
+ ptxd_make_world_patchin_init || return
+
+ pkg_license="${pkg_license:-unknown}"
+
+ ptxd_make_world_license_flags || return
+
+ pkg_section="$(ptxd_create_section_from_license "${pkg_license}")"
+}
+export -f ptxd_make_world_report_init
+
+ptxd_make_world_report_commit() {
+ if [ "$(ptxd_get_ptxconf PTXCONF_PROJECT_STORE_SOURCE_GIT_COMMITS)" != "y" ]; then
+ return
+ fi
+ if [ -e "${pkg_src}.commit" ]; then
+ pkg_commit="$(<"${pkg_src}.commit")"
+ fi
+}
+export -f ptxd_make_world_report_commit
+
+ptxd_make_world_report_yaml_fragment() {
+ local pkg tmp_report pkg_commit
+
+ do_echo() {
+ if [ -n "${2}" ]; then
+ echo "${1} '${2}'"
+ fi
+ }
+ do_list() {
+ if [ -n "${2}" ]; then
+ echo "${1}"
+ awk "BEGIN { RS=\" \" } { if (\$1) print \" - '\" \$1 \"'\" }" <<<"${2}"
+ fi
+ }
+
+ ptxd_make_world_report_init || return
+
+ tmp_report="${PTXDIST_TEMPDIR}/${pkg_label}-source-packages.yaml"
+
+ pkg="${pkg_PKG,,}"
+ pkg="${pkg//_/-}"
+
+ {
+ do_echo "- name:" "${pkg}"
+ do_echo " version:" "${pkg_version}"
+ do_list " url:" "${pkg_url}"
+ do_echo " md5:" "${pkg_md5}"
+ do_echo " source:" "${pkg_src}"
+ ptxd_make_world_report_commit
+ do_echo " git-commit:" "${pkg_commit}"
+ } >> "${tmp_report}"
+}
+export -f ptxd_make_world_report_yaml_fragment
+
+
+ptxd_make_world_report_yaml() {
+ local tmp_report="${PTXDIST_TEMPDIR}/${pkg_label}-source-packages.yaml"
+ do_echo() {
+ if [ -n "${2}" ]; then
+ echo "${1} '${2}'"
+ fi
+ }
+ do_list() {
+ if [ -n "${2}" ]; then
+ echo "${1}"
+ awk "BEGIN { RS=\" \" } { if (\$1) print \"- '\" \$1 \"'\" }" <<<"${2}"
+ fi
+ }
+ do_echo "name:" "${pkg_label}"
+ do_echo "rulefile:" "${pkg_makefile}"
+ do_list "extra-rulefiles:" "${pkg_extra_makefiles}"
+ do_echo "menufile:" "${pkg_infile}"
+ do_list "builddeps:" "${pkg_build_deps}"
+ do_list "rundeps:" "${pkg_run_deps}"
+ do_echo "config:" "${pkg_config}"
+ do_echo "version:" "${pkg_version}"
+ do_list "url:" "${pkg_url}"
+ do_echo "md5:" "${pkg_md5}"
+ do_echo "source:" "${pkg_src}"
+ if [ -n "${pkg_md5s}" -a "${pkg_md5s}" != ":" ]; then
+ echo "md5s:"
+ awk "BEGIN { RS=\" *:\\\\s*\"; FS=\":\" } { if (\$1) print \"- '\" \$1 \"'\" }" <<<"${pkg_md5s}"
+ fi
+ do_list "sources:" "${pkg_srcs}"
+ if [ -e "${tmp_report}" ]; then
+ echo "source-packages:"
+ cat "${tmp_report}"
+ fi
+ do_echo "patches:" "${pkg_patch_dir}"
+ if [ "${pkg_patch_series}" != "series" -a -n "${pkg_patch_dir}" ]; then
+ do_echo "series:" "${pkg_patch_series}"
+ fi
+ do_echo "srcdir:" "${pkg_dir}"
+ do_echo "builddir:" "${pkg_build_dir}"
+ do_echo "pkgdir:" "${pkg_pkg_dir}"
+ do_echo "cfghash:" "${pkg_cfghash}"
+ do_echo "srchash:" "${pkg_srchash}"
+ if [ "$(ptxd_get_ptxconf PTXCONF_PROJECT_CREATE_DEVPKGS)" == "y" -o \
+ "$(ptxd_get_ptxconf PTXCONF_PROJECT_USE_DEVPKGS)" == "y" ]; then
+ do_echo "devpkg:" "${ptx_pkg_dir}/${pkg_pkg_dev}"
+ fi
+ do_echo "license-section:" "${pkg_section}"
+ do_echo "licenses:" "${pkg_license}"
+ do_list "license-flags:" "${!pkg_license_flags[*]}"
+ if [ "${1}" != "fast" ]; then
+ if [ ${#pkg_license_texts[@]} -gt 0 -o ${#pkg_license_texts_guessed[@]} -gt 0 ]; then
+ # license files have been extracted, so add the expanded data
+ echo "license-files:"
+ fi
+ local guess="false"
+ for license in "${pkg_license_texts[@]}" - "${pkg_license_texts_guessed[@]}"; do
+ if [ "${license}" = "-" ]; then
+ guess="true"
+ continue
+ fi
+ cat << EOF
+ $(basename "${license}"):
+ guessed: ${guess}
+ file: '${license}'
+ md5: '$(sed -n "s/\(.*\) $(basename "${license}")\$/\1/p" "${pkg_license_dir}/license/MD5SUM")'
+EOF
+ done
+ if [[ " ${pkg_build_deps} " =~ " host-nodejs " ]] && [ -e "${pkg_dir}/package-lock.json" ]; then
+ (
+ cd "${pkg_dir}" &&
+ npm sbom --sbom-format spdx > "${pkg_license_dir}/spdx-sbom.json" &&
+ npm sbom --sbom-format cyclonedx > "${pkg_license_dir}/cyclonedx-sbom.json"
+ ) || return
+ do_echo "spdx-sbom:" "${pkg_license_dir}/spdx-sbom.json"
+ do_echo "cyclonedx-sbom:" "${pkg_license_dir}/cyclonedx-sbom.json"
+ fi
+ else
+ # license files have not been extracted, so just add the string from the rule
+ do_list "license-files:" "${pkg_license_files}"
+ fi
+ if [ "${1}" != "fast" -a -e "${pkg_xpkg_map}" ]; then
+ echo "ipkgs:"
+ for xpkg in $(< "${pkg_xpkg_map}"); do
+ echo "- '${ptx_pkg_dir}/${xpkg}_${pkg_version}_${PTXDIST_IPKG_ARCH_STRING}.ipk'"
+ done
+ fi
+ do_echo "image:" "${image_image}"
+ do_list "pkgs:" "${image_pkgs}"
+ do_list "files:" "${image_files}"
+}
+export -f ptxd_make_world_report_yaml
+
+ptxd_make_world_fast_report() {
+ declare -A pkg_license_flags
+ ptxd_make_world_license_init || return
+
+ local -a pkg_license_texts
+ local -a pkg_license_texts_guessed
+
+ mkdir -p "${ptx_report_dir}/fast" &&
+ ptxd_make_world_report_yaml fast > "${ptx_report_dir}/fast/${pkg_label}.yaml"
+}
+export -f ptxd_make_world_fast_report
+
+ptxd_make_image_reports() {
+ local generate_report report
+ local -a verbose
+
+ ptxd_make_image_init || return
+
+ ptxd_in_path PTXDIST_PATH_SCRIPTS generate-report.py &&
+ generate_report="${ptxd_reply}" &&
+
+ if [ "${PTXDIST_VERBOSE}" = "1" ]; then
+ verbose=( --verbose )
+ fi
+
+ for report in ${image_reports}; do
+ ptxd_eval \
+ pkg_stamp= \
+ PYTHONUNBUFFERED=1 \
+ "${generate_report}" \
+ "${verbose[@]}" \
+ --path "${PTXDIST_PATH//://config/report:}" \
+ --template "${report}" \
+ --input "${ptx_release_dir}/full-bsp-report.yaml" \
+ --output "${ptx_release_dir}/${pkg_pkg}-${report}" \
+ --env target="${pkg_pkg}" || return
+ done
+ echo
+}
+export -f ptxd_make_image_reports
diff --git a/scripts/lib/ptxd_make_xpkg_pkg.sh b/scripts/lib/ptxd_make_xpkg_pkg.sh
index 0e2be2608..212d35eb8 100644
--- a/scripts/lib/ptxd_make_xpkg_pkg.sh
+++ b/scripts/lib/ptxd_make_xpkg_pkg.sh
@@ -22,6 +22,17 @@ ptxd_install_error() {
}
export -f ptxd_install_error
+mkdir_p() {
+ local d
+ for d in "${@}"; do
+ if [ ! -d "${d}" ]; then
+ mkdir -p "${@}"
+ return
+ fi
+ done
+}
+export -f mkdir_p
+
#
# ptxd_install_getent_id
#
@@ -106,9 +117,6 @@ ptxd_install_setup_global() {
# this goes into the ipkg, thus full file modes here
pdirs=("${pkg_xpkg_tmp}")
- # strip dirs
- sdirs=("${nfsroot_dirs[@]}" "${pkg_xpkg_tmp}")
-
# dirs with separate debug files
ddirs=()
if [ "$(ptxd_get_ptxconf PTXCONF_TARGET_DEBUG_OFF)" != "y" ]; then
@@ -122,7 +130,11 @@ export -f ptxd_install_setup_global
ptxd_install_lock() {
local lockfile
- mkdir -p "${PTXDIST_TEMPDIR}/locks"
+
+ # locking is only needed if packages are built in parallel
+ if [ "${PTXDIST_PARALLELMFLAGS_EXTERN}" = "-j1" ]; then
+ return
+ fi
if [ -n "${dst}" ]; then
lockfile="${PTXDIST_TEMPDIR}/locks/${dst//\//-}"
@@ -140,6 +152,10 @@ export -f ptxd_install_lock
ptxd_install_unlock() {
local ret=$?
+ if [ "${PTXDIST_PARALLELMFLAGS_EXTERN}" = "-j1" ]; then
+ return "${ret}"
+ fi
+
if [ -z "${dst_lock}" ]; then
ptxd_bailout "dst_lock must be set when ptxd_install_unlock() is called"
fi
@@ -229,13 +245,17 @@ ptxd_install_setup_src() {
# We depend on the first available file, which is the one that will
# be used. If one with a higher priority is created, the dependency
# will cause the package to be recreated.
+ # Make cannot handle filenames that contain a ':'. So don't generate
+ # dependecies for those files.
local deprule=""
- for src in "${list[@]}"; do
- # don't provide dependencies for files in PTXDIST_PLATFORMDIR.
- if [ "${src}" == "${src#${PTXDIST_PLATFORMDIR}}" -a -n "${src}" ]; then
- deprule="${deprule} ${src}"
- fi
- done
+ if ! [[ "${src}" =~ : ]]; then
+ for src in "${list[@]}"; do
+ # don't provide dependencies for files in PTXDIST_PLATFORMDIR.
+ if [ "${src}" == "${src#${PTXDIST_PLATFORMDIR}}" -a -n "${src}" ]; then
+ deprule="${deprule} ${src}"
+ fi
+ done
+ fi
if [ -n "${deprule}" ]; then
deprule="${ptx_state_dir}/${pkg_stamp}: \$(firstword \$(wildcard ${deprule}))"
# Make the deps rule robust for varying installation paths, and
@@ -270,12 +290,16 @@ ptxd_install_virtfs() {
for d in "${ndirs[@]/%/${dst}}"; do
dir="${d%/*}/.virtfs_metadata"
file="${dir}/${d##*/}"&&
- mkdir -p "${dir}" &&
+ mkdir_p "${dir}" &&
cat <<- EOF > "${file}"
virtfs.uid=${usr}
virtfs.gid=${grp}
virtfs.mode=${mod_virtfs}
EOF
+ if [ -z "${dst}" ]; then
+ mkdir_p "${d%/*}/root" &&
+ cp $file "${d%/*}/root/.virtfs_metadata_root"
+ fi &&
if [ -n "${major}" -a -n "${minor}" ]; then
local rdev=$[ ${major} << 8 | ${minor} ] &&
echo "virtfs.rdev=${rdev}" >> "${file}"
@@ -296,7 +320,7 @@ ptxd_install_dir_impl() {
install -m "${mod}" -o "${usr}" -g "${grp}" -d "${pdirs[@]/%/${dst}}"
else
# don't overwrite existing permissions
- mkdir -p "${dirs[@]/%/${dst}}"
+ mkdir_p "${dirs[@]/%/${dst}}"
fi &&
ptxd_install_virtfs
@@ -321,7 +345,7 @@ ptxd_ensure_dir() {
if [ "${no_skip}" != 1 ]; then
# just create the rest and continue if virtfs data already exists
# but don't overwrite existing permissions
- mkdir -p "${dirs[@]/%/${dst}}" &&
+ mkdir_p "${dirs[@]/%/${dst}}" &&
return
fi &&
ptxd_install_lock &&
@@ -372,7 +396,7 @@ ptxd_install_file_extract_debug() {
return
fi
- if [ -z "${bid}" ]; then
+ if [ -z "${bid}" -o ${#bid} -ne 40 ]; then
dbg="${dst%/*}/.debug/.${dst##*/}.dbg"
else
local path_component=${bid::-38}
@@ -415,28 +439,53 @@ export -f ptxd_install_file_extract_debug
#
#
ptxd_install_file_strip() {
- local -a strip_cmd files
+ local -a strip_cmd
local dst="${1}"
- local i file
+ local file file0 target_mini_debuginfo
case "${strip:-y}" in
k) strip_cmd=( "${CROSS_STRIP}" --strip-debug -R .GCC.command.line ) ;;
- y) strip_cmd=( "${CROSS_STRIP}" -R .note -R .comment -R .GCC.command.line ) ;;
+ y)
+ strip_cmd=( "${CROSS_STRIP}" -R .note -R .comment -R .GCC.command.line )
+ target_mini_debuginfo="$(ptxd_get_ptxconf PTXCONF_TARGET_MINI_DEBUGINFO)"
+ ;;
esac
- files=( "${sdirs[@]/%/${dst}}" )
- install -d "${files[0]%/*}" &&
- "${strip_cmd[@]}" -o "${files[0]}" "${src}" &&
- for (( i=1 ; ${i} < ${#files[@]} ; i=$[i+1] )); do
- install -m "${mod_rw}" -D "${files[0]}" "${files[${i}]}" || return
- done &&
-
- files=( "${dirs[@]/%/${dst}}" ) &&
- for file in "${files[@]}"; do
- if [ ! -e "${file}" ]; then
- install -m "${mod_rw}" -D "${src}" "${file}" || return
- fi
+ file0="${pkg_xpkg_tmp}/${dst}"
+ if [ ! -d "${pkg_xpkg_tmp}" ]; then
+ install -d "${pkg_xpkg_tmp}"
+ fi &&
+ if [ "${target_mini_debuginfo}" = "y" ]; then
+ local keep_symbols="$(mktemp -u "${PTXDIST_TEMPDIR}/keep_symbols.XXXXX")"
+ local debug="$(mktemp -u "${PTXDIST_TEMPDIR}/debug.XXXXX")"
+ local mini_debug="$(mktemp -u "${PTXDIST_TEMPDIR}/mini_debug.XXXXX")"
+
+ comm -13 \
+ <("${CROSS_NM}" -D "${src}" --format=posix --defined-only 2>/dev/null \
+ | awk '{ print $1 }' | sort) \
+ <("${CROSS_NM}" "${src}" --format=posix --defined-only 2>/dev/null \
+ | awk '{ if ($2 == "T" || $2 == "t" || $2 == "D") print $1 }' | sort) \
+ > "${keep_symbols}" &&
+ # only create the section if there are symbols to add
+ if [ -s "${keep_symbols}" ]; then
+ "${CROSS_OBJCOPY}" --only-keep-debug "${src}" "${debug}" &&
+ "${CROSS_OBJCOPY}" -S --remove-section .gdb_index --remove-section .comment \
+ --keep-symbols="${keep_symbols}" "${debug}" "${mini_debug}" &&
+ rm "${debug}" &&
+ xz "${mini_debug}"
+ fi &&
+ rm "${keep_symbols}"
+ fi &&
+ "${strip_cmd[@]}" -o "${file0}" "${src}" &&
+ if [ "${target_mini_debuginfo}" = "y" -a -e "${mini_debug}.xz" ]; then
+ "${CROSS_OBJCOPY}" --add-section .gnu_debugdata="${mini_debug}.xz" "${file0}" &&
+ rm "${mini_debug}.xz"
+ fi &&
+ for file in "${ndirs[@]/%/${dst}}"; do
+ install -m "${mod_nfs}" -o "${usr}" -g "${grp}" -D "${file0}" "${file}" || return
done &&
+ chmod "${mod}" "${file0}" &&
+ chown "${usr}:${grp}" "${file0}" &&
if [ "${strip}" != "k" ]; then
ptxd_install_file_extract_debug "${dst}" || return
@@ -467,7 +516,6 @@ install ${cmd}:
permissions=${mod}" &&
ptxd_exist "${src}" &&
- rm -f "${dirs[@]/%/${dst}}" &&
# check if src is a link
if [ -L "${src}" ]; then
@@ -494,8 +542,11 @@ install ${cmd}:
case "${strip}" in
0|n|no|N|NO)
- for d in "${dirs[@]/%/${dst}}"; do
- install -m "${mod_rw}" -D "${src}" "${d}" || return
+ for d in "${ndirs[@]/%/${dst}}"; do
+ install -m "${mod_nfs}" -o "${usr}" -g "${grp}" -D "${src}" "${d}" || return
+ done &&
+ for d in "${pdirs[@]/%/${dst}}"; do
+ install -m "${mod}" -o "${usr}" -g "${grp}" -D "${src}" "${d}" || return
done
;;
y|k)
@@ -526,13 +577,6 @@ Usually, just remove the 6th parameter and everything works fine.
fi &&
echo "" &&
- # now change to requested permissions
- chmod "${mod_nfs}" "${ndirs[@]/%/${dst}}" &&
- chmod "${mod}" "${pdirs[@]/%/${dst}}" &&
-
- # now change to requested user and group
- chown "${usr}:${grp}" "${pdirs[@]/%/${dst}}" &&
-
ptxd_install_virtfs &&
echo "f${sep}${dst}${sep}${usr}${sep}${grp}${sep}${mod}" >> "${pkg_xpkg_perms}"
@@ -559,7 +603,7 @@ install link:
case "${src}" in
/*)
if [ "${PTXCONF_SETUP_NFS_REL_SYMLINK}" = "y" ]; then
- rel="$(dirname "${dst}" | sed -e 's,/[^/]*,/..,g' -e 's,^/,,')"
+ rel="$(dirname "${dst}" | sed -e 's,/$,,' -e 's,/[^/]*,/..,g' -e 's,^/,,')"
fi
;;
*) ;;
@@ -726,7 +770,7 @@ install replace figlet:
ptxd_figlet_helper() {
local value="$1"
local escapemode="$2"
- figlet -d "${PTXDIST_SYSROOT_HOST}/share/figlet" -- "${value}" | \
+ figlet -d "${PTXDIST_SYSROOT_HOST}/usr/share/figlet" -- "${value}" | \
case "$escapemode" in
# /etc/issue needs each backslash quoted by another backslash. As
# the string is interpreted by the shell once more below, another
@@ -768,6 +812,12 @@ ptxd_install_generic() {
case "${type}" in
"directory")
+ # drop the sticky bits if the group is overwritten. It is probably
+ # inherited anyways and keeping it for a different group than what
+ # is was meant for makes no sense
+ if [ -n "${grp}" ]; then
+ mod="$(printf "0%o" $(( ${mod} & ~02000 )))"
+ fi &&
ptxd_install_dir "${dst}" "${usr}" "${grp}" "${mod}"
;;
"character special file")
@@ -784,7 +834,7 @@ ptxd_install_generic() {
ptxd_install_file "${file}" "${dst}" "${usr}" "${grp}" "${mod}" "${strip}"
;;
*)
- echo "Error: File type '${type}' unkown!"
+ echo "Error: File type '${type}' unknown!"
return 1
;;
esac
@@ -985,7 +1035,6 @@ ptxd_install_spec() {
export -f ptxd_install_spec
ptxd_install_package() {
- local lib_dir=$(ptxd_get_lib_dir)
local umask=0000
for dir in "${pkg_pkg_dir}/"{,usr/}{bin,sbin,libexec}; do
@@ -996,7 +1045,7 @@ ptxd_install_package() {
done
done
- for dir in "${pkg_pkg_dir}/"{,usr/}${lib_dir}; do
+ for dir in "${pkg_pkg_dir}/"{,usr/}lib; do
find "${dir}" \( -type f -o -type l \) \
-a -name "*.so*" 2>/dev/null | while read file; do
ptxd_install_generic - "${file#${pkg_pkg_dir}}" ||
@@ -1027,7 +1076,6 @@ ptxd_install_shared() {
export -f ptxd_install_shared
ptxd_install_lib() {
- local lib_dir=$(ptxd_get_lib_dir)
local lib="$1"
local root_dir="${2}"
shift 2
@@ -1041,12 +1089,12 @@ ptxd_install_lib() {
fi
local file="$(
- for dir in "${pkg_pkg_dir}"${root_dir}{/,/usr/}${lib_dir}; do
+ for dir in "${pkg_pkg_dir}"${root_dir}{/,/usr/}lib; do
if [ -d "${dir}" ]; then
find "${dir}" -type f -path "${dir}/${lib}.so*" ! -name "*.debug"
fi
done | while read f; do
- grep -q '^INPUT(' "${f}" || echo "${f}"
+ grep -q '^\(INPUT(\|GROUP(\)' "${f}" || echo "${f}"
done)"
if [ ! -f "${file}" ]; then
@@ -1094,7 +1142,9 @@ ptxd_make_xpkg_pkg() {
local pkg_xpkg_dbg_tmp="$2"
local pkg_xpkg_cmds="$3"
local pkg_xpkg_perms="$4"
- local -a dirs ndirs pdirs sdirs ddirs
+ local -a dirs ndirs pdirs ddirs
+
+ mkdir_p "${PTXDIST_TEMPDIR}/locks" &&
ptxd_install_setup_global &&
diff --git a/scripts/lib/ptxd_make_xpkg_prepare.sh b/scripts/lib/ptxd_make_xpkg_prepare.sh
index 7c669d842..f51c0c7d3 100644
--- a/scripts/lib/ptxd_make_xpkg_prepare.sh
+++ b/scripts/lib/ptxd_make_xpkg_prepare.sh
@@ -14,7 +14,7 @@
# in some rare cases there is more than one xpkg per package and/or
# the names don't correspond, so we have to use the mapping file
#
-# in: $pkg_run_deps (space seperated)
+# in: $pkg_run_deps (space separated)
# out: $pkg_xpkg_deps (array)
#
ptxd_make_xpkg_deps() {
diff --git a/scripts/libptxdist.sh b/scripts/libptxdist.sh
index ee0ba39d3..8d72cdf1b 100644
--- a/scripts/libptxdist.sh
+++ b/scripts/libptxdist.sh
@@ -399,13 +399,15 @@ export -f ptxd_get_alternative
# array "ptxd_reply" containing the found files/dirs
#
ptxd_get_path() {
+ local file
[ -n "${1}" ] || return
- local orig_IFS="${IFS}"
- IFS="
-"
- ptxd_reply=( $(command ls -f -d "${@}" 2>/dev/null) )
- IFS="${orig_IFS}"
+ ptxd_reply=()
+ for file in "${@}"; do
+ if [ -e "${file}" -o -h "${file}" ]; then
+ ptxd_reply[${#ptxd_reply[*]}]="${file}"
+ fi
+ done
[ ${#ptxd_reply[@]} -ne 0 ]
}
diff --git a/scripts/migrate/migrate_platform b/scripts/migrate/migrate_platform
index 6790975d3..f7432bc1c 100755
--- a/scripts/migrate/migrate_platform
+++ b/scripts/migrate/migrate_platform
@@ -41,3 +41,21 @@ s/^\(\(# \)\?PTXCONF\)_IMAGE_IPKG_EXTRA_ARGS\(.*$\)/\1_IMAGE_XPKG_EXTRA_ARGS\3/
# reason : tf-a can be built for multiple platforms now
#
s/^\(\(# \)\?PTXCONF_TF_A_PLATFORM\>\)\(.*$\)/\1S\3/
+
+#
+# from : ptxdist-2020.07.0
+# to : ptxdist-2020.08.0
+# symbol : PTXCONF_DTC -> PTXCONF_KERNEL_DTB
+# symbol : PTXCONF_DTC_OFTREE_DTS{,_PATH} -> PTXCONF_KERNEL_DTS{,_PATH}
+# reason : dtc package removed. Devicetrees are built and installed with the kernel
+#
+s/^\(\(# \)\?PTXCONF\)_DTC\>\(.*$\)/\1_KERNEL_DTB\3/
+s/^\(\(# \)\?PTXCONF\)_DTC_OFTREE\(_DTS\(\|_PATH\)\)\(.*$\)/\1_KERNEL\3\5/
+
+#
+# from : ptxdist-2022.02.0
+# to : ptxdist-2022.03.0
+# symbol : PTXCONF_IMAGE_ROOT_CPIO_GZ -> PTXCONF_IMAGE_ROOT_CPIO, PTXCONF_IMAGE_ROOT_CPIO_COMPRESSION_MODE_GZ
+# reason : root.cpio generation consolidated. gz generation now dependent on regular cpio generation.
+#
+s/^\(\(# \)\?PTXCONF_\)IMAGE_ROOT_CPIO_GZ\>\(.*\)$/\1IMAGE_ROOT_CPIO\3\n\1IMAGE_ROOT_CPIO_COMPRESSION_MODE_GZ\3/
diff --git a/scripts/migrate/migrate_ptx b/scripts/migrate/migrate_ptx
index e31a111ca..162839298 100755
--- a/scripts/migrate/migrate_ptx
+++ b/scripts/migrate/migrate_ptx
@@ -200,7 +200,7 @@ s/^\(\(# \)\?PTXCONF_\)GLIBC\(_LOCALTIME\)/\1TIMEZONE\3/
# from : ptxdist-2013.01.0
# to : ptxdist-2013.02.0
# symbol : HOST_LIBBZ2 -> HOST_BZIP2
-# reason : allign with target package name
+# reason : align with target package name
#
s/^\(\(# \)\?PTXCONF_HOST\)_LIBBZ2/\1_BZIP2/
@@ -208,7 +208,7 @@ s/^\(\(# \)\?PTXCONF_HOST\)_LIBBZ2/\1_BZIP2/
# from : ptxdist-2013.04.0
# to : ptxdist-2013.05.0
# symbol : GST*11 -> GST*1
-# reason : allign with target package name
+# reason : align with target package name
#
s/^\(\(# \)\?PTXCONF_GST[A-Z_]*1\)1/\1/
@@ -426,3 +426,54 @@ s/^\(\(# \)\?PTXCONF_GST_\)VALIDATE1\>/\1DEVTOOLS1/
# reason : pip is now a separate package instead of the bundled version
#
s/^\(\(# \)\?PTXCONF_PYTHON3_\)ENSUREPIP\>/\1PIP/
+
+# from : ptxdist-2021.06.0
+# to : ptxdist-2021.07.0
+# symbol : BERLIOS_CAN_UTILS_JSPY -> PTXCONF_BERLIOS_CAN_UTILS_J1939SPY
+# symbol : BERLIOS_CAN_UTILS_JSR -> PTXCONF_BERLIOS_CAN_UTILS_J1939SR
+# symbol : BERLIOS_CAN_UTILS_JACD -> PTXCONF_BERLIOS_CAN_UTILS_J1939ACD
+# symbol : BERLIOS_CAN_UTILS_JCAT -> PTXCONF_BERLIOS_CAN_UTILS_J1939CAT
+# reason : This utils was renamed mainline to avoid conflicts on debian
+#
+s/^\(\(# \)\?PTXCONF_BERLIOS_CAN_UTILS_\)JSPY\>/\1J1939SPY/
+s/^\(\(# \)\?PTXCONF_BERLIOS_CAN_UTILS_\)JSR\>/\1J1939SR/
+s/^\(\(# \)\?PTXCONF_BERLIOS_CAN_UTILS_\)JACD\>/\1J1939ACD/
+s/^\(\(# \)\?PTXCONF_BERLIOS_CAN_UTILS_\)JCAT\>/\1J1939CAT/
+
+# from : ptxdist-2021.07.0
+# to : ptxdist-2021.08.0
+# symbol : LIBTHEORA__* -> LIBTHEORA_*
+# reason : cleanup to remove the double '_'
+#
+s/^\(\(# \)\?PTXCONF_LIBTHEORA_\)_/\1/
+
+# from : ptxdist-2021.07.0
+# to : ptxdist-2021.08.0
+# symbol : LIGHTTPD_MOD_COMPRESS -> LIGHTTPD_MOD_DEFLATE
+# reason : upstream lighttpd module mod_compress was replaced by mod_deflate
+#
+s/^\(\(# \)\?PTXCONF_LIGHTTPD_MOD_\)COMPRESS\>/\1DEFLATE/
+
+# from : ptxdist-2022.10.0
+# to : ptxdist-2022.11.0
+# symbol : UTIL_LINUX_NG* -> UTIL_LINUX*
+# reason : upstream util-linux-ng fork was renamed back to util-linux over a decade ago
+#
+s/^\(\(# \)\?PTXCONF_UTIL_LINUX\)_NG/\1/
+
+# from : ptxdist-2023.10.0
+# to : ptxdist-2023.11.0
+# symbol : SYSTEMD -> SYSTEMD + SYSTEMD_HELPER
+# reason : SYSTEMD_HELPER was added as indirection to avoid cyclic dependencies
+#
+/^\(PTXCONF_SYSTEMD_HELPER\>\)\(.*\)/!bnot_systemd_helper
+# add the next line
+/^\(PTXCONF_SYSTEMD_HELPER\>\)\(.*\)/N
+# print SYSTEMD_HELPER + SYSTEMD and restart
+/^\(PTXCONF_SYSTEMD_HELPER\>\)\(.*\)\<PTXCONF_SYSTEMD\>/{p;d}
+# print SYSTEMD_HELPER and restart with the next line that is not SYSTEMD
+P
+D
+:not_systemd_helper
+# SYSTEMD without SYSTEMD_HELPER so add it
+s/^\(# \)\?\(PTXCONF_SYSTEMD\>\)\(.*\)/\1\2_HELPER\3\n\1\2\3/
diff --git a/scripts/pkg-config-wrapper b/scripts/pkg-config-wrapper
index 36b9415dd..dca2c58a9 100755
--- a/scripts/pkg-config-wrapper
+++ b/scripts/pkg-config-wrapper
@@ -1,15 +1,14 @@
#!/usr/bin/env bash
-
-basedir="$(basename "$(dirname "$(dirname "$0")")")"
+sysroot="$(dirname "$(dirname "$(dirname "$0")")")"
+basedir="$(basename "${sysroot}")"
declare -a prefix
if [ "${basedir}" = "sysroot-cross" ]; then
- sysroot="$(dirname "$(dirname "$(dirname "$0")")")/sysroot-target"
+ sysroot="$(dirname "${sysroot}")/sysroot-target"
prefix="${sysroot}/usr"
whitelist="${PKGCONFIG_WHITELIST_TARGET}"
elif [ "${basedir}" = "sysroot-host" ]; then
- sysroot="$(dirname "$(dirname "$0")")"
- prefix="${sysroot}"
+ prefix="${sysroot}/usr"
whitelist="${PKGCONFIG_WHITELIST_HOST}"
else
echo "$(basename ${0}): failed to determine prefix" >&2
@@ -84,21 +83,54 @@ check_pipe_status() {
done
}
+print_pkg() {
+ args=()
+ while [ $# -gt 0 ]; do
+ case "${1}" in
+ --variable|--define-variable|--atleast-pkgconfig-version|--*-version)
+ shift
+ ;;
+ --*)
+ ;;
+ *)
+ args[${#args[@]}]="${1}"
+ ;;
+ esac
+ shift
+ done
+ if [ ${#args[*]} -ne 0 ]; then
+ pkgconf --print-provides "${args[@]}" 2> "${error}" | awk '{print $1}' &&
+ check_pipe_status
+ fi
+}
+
+#
+# meson suppresses any pkg-config output, so dump it into the logfile instead
+#
+if [ "${pkg_conf_tool}" = "meson" -a -n "${PTXDIST_FD_LOGFILE}" ]; then
+ ERROR_FD=${PTXDIST_FD_LOGFILE}
+else
+ ERROR_FD=2
+fi
+
if [ -n "${PKGCONFIG_WHITELIST_SRC}" -a "${1}" != "--version" -a "${1}" != "--help" ]; then
error="$(mktemp "${PTXDIST_TEMPDIR}/pkg-config.XXXXXX")"
- pkgs="$(pkg-config.real --print-provides "${@}" 2> "${error}" | awk '{print $1}' && check_pipe_status)"
+ pkgs="$(print_pkg "${@}")"
if [ $? -ne 0 ]; then
- cat "${error}" >&2
+ if [ "${ERROR_FD}" != "2" ]; then
+ echo "$(basename ${0}) $*" >&${PTXDIST_FD_LOGFILE}
+ fi
+ cat "${error}" >&${ERROR_FD}
rm "${error}"
exit 1
fi
rm "${error}"
for pkg in ${pkgs}; do
if [[ ! " ${whitelist} " =~ " ${pkg} " && ! "${pkg}" =~ '-uninstalled' ]]; then
- echo "$(basename ${0}): warning: blocking '${pkg}': not selected by '${PKGCONFIG_WHITELIST_SRC}'" >&2
+ echo "$(basename ${0}): warning: blocking '${pkg}': not selected by '${PKGCONFIG_WHITELIST_SRC}'" >&${ERROR_FD}
exit 1
fi
done
fi
-pkg-config.real "${@}" | sed "${args[@]}"
+pkgconf "${@}" | sed "${args[@]}"
check_pipe_status
diff --git a/scripts/ptx-file_check b/scripts/ptx-file_check
index 51bf9ed63..3b564aca0 100755
--- a/scripts/ptx-file_check
+++ b/scripts/ptx-file_check
@@ -134,7 +134,7 @@ create_md5(){
debug_out "ROOT Directory is >$(pwd)<"
RELEASEDIR=$STORE/$RELEASE
mkdir -p "$RELEASEDIR" || my_exit "mkdir $ROOT/$RELEASEDIR failed" 1
- find . -type f | egrep -v "/sys/|/proc/|/dev/|/mnt|/$STORE" > $RELEASEDIR/files.list
+ find . -type f | grep -E -v "/sys/|/proc/|/dev/|/mnt|/$STORE" > $RELEASEDIR/files.list
LC_ALL=C sort -u $RELEASEDIR/files.list > $RELEASEDIR/files.list.tmp && mv $RELEASEDIR/files.list.tmp $RELEASEDIR/files.list
while read line ; do
md5sum $line
@@ -159,14 +159,14 @@ check_md5(){
md5sum -c $RELEASEDIR/files.md5 | grep -v OK | sed s/:\ FAILED//g>> $LOCALSTATSDIR/check-md5.status
echo "------------ END -------------" >> $LOCALSTATSDIR/check-md5.status
#
- find . -type f | egrep -v "/sys/|/proc/|/dev/|/mnt|/$STORE" > $LOCALSTATSDIR/files.list
+ find . -type f | grep -E -v "/sys/|/proc/|/dev/|/mnt|/$STORE" > $LOCALSTATSDIR/files.list
LC_ALL=C sort -u $LOCALSTATSDIR/files.list > $LOCALSTATSDIR/files.list.tmp && mv $LOCALSTATSDIR/files.list.tmp $LOCALSTATSDIR/files.list
echo "# $(date)" > $LOCALSTATSDIR/check-files.status
echo "# These files do not appear in release $RELEASE, " >> $LOCALSTATSDIR/check-files.status
echo "# however - they appear on the system:" >> $LOCALSTATSDIR/check-files.status
echo "# " >> $LOCALSTATSDIR/check-files.status
echo "----------- START ------------" >> $LOCALSTATSDIR/check-files.status
- diff $RELEASEDIR/files.list $LOCALSTATSDIR/files.list | egrep "<|>" | sed s/'[><][ ][\.]'//g >> $LOCALSTATSDIR/check-files.status
+ diff $RELEASEDIR/files.list $LOCALSTATSDIR/files.list | grep -E "<|>" | sed s/'[><][ ][\.]'//g >> $LOCALSTATSDIR/check-files.status
echo "------------ END -------------" >> $LOCALSTATSDIR/check-files.status
#
if [ "$REPORT" = "true" ]; then
@@ -211,7 +211,7 @@ check_ipkglist(){
echo "# These package versions differ from release $RELEASE:" >> $LOCALSTATSDIR/check-ipkglist.status
echo "# " >> $LOCALSTATSDIR/check-ipkglist.status
echo "----------- START ------------" >> $LOCALSTATSDIR/check-ipkglist.status
- diff $RELEASEDIR/ipkg.list $LOCALSTATSDIR/ipkg.list | egrep ">" | sed s/'[><][ ]'//g >> $LOCALSTATSDIR/check-ipkglist.status
+ diff $RELEASEDIR/ipkg.list $LOCALSTATSDIR/ipkg.list | grep -E ">" | sed s/'[><][ ]'//g >> $LOCALSTATSDIR/check-ipkglist.status
echo "------------ END -------------" >> $LOCALSTATSDIR/check-ipkglist.status
#
if [ "$REPORT" = "true" ]; then
diff --git a/scripts/ptx-modifications/0009-confdata.c-Re-add-warning-about-unassigned-symbols.patch b/scripts/ptx-modifications/0009-confdata.c-Re-add-warning-about-unassigned-symbols.patch
new file mode 100644
index 000000000..ec2e44c33
--- /dev/null
+++ b/scripts/ptx-modifications/0009-confdata.c-Re-add-warning-about-unassigned-symbols.patch
@@ -0,0 +1,43 @@
+From: Christian Melki <christian.melki@t2data.com>
+Date: Fri, 28 Jan 2022 13:15:42 +0100
+Subject: [PATCH v2] confdata.c: (Re-)add warning about unassigned symbols.
+
+The Linux kconfig has removed a warning regarding unassigned symbols.
+Commit f072181e6403b0fe2e2aa800a005497b748fd284,
+kconfig: drop the ""trying to assign nonexistent symbol" warning.
+
+This warning actually helps detecting symbol renames which are lost in
+translation which in turn is helpful when doing oldconfigs etc.
+
+Signed-off-by: Christian Melki <christian.melki@t2data.com>
+---
+ scripts/kconfig/confdata.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
+index c5f4b552b..09777fdfe 100644
+--- a/scripts/kconfig/confdata.c
++++ b/scripts/kconfig/confdata.c
+@@ -426,6 +426,7 @@ load:
+ if (def == S_DEF_USER) {
+ sym = sym_find(line + 2 + strlen(CONFIG_));
+ if (!sym) {
++ conf_warning("trying to assign nonexistent symbol %s", line + 2 + strlen(CONFIG_));
+ sym_add_change_count(1);
+ continue;
+ }
+@@ -468,8 +469,10 @@ load:
+ * include/config/foo.h must be touched.
+ */
+ conf_touch_dep(line + strlen(CONFIG_));
+- else
++ else {
++ conf_warning("trying to assign nonexistent symbol %s", line + strlen(CONFIG_));
+ sym_add_change_count(1);
++ }
+ continue;
+ }
+
+--
+2.30.2
+
diff --git a/scripts/ptx-modifications/series b/scripts/ptx-modifications/series
index 73257cc7b..c142d998f 100644
--- a/scripts/ptx-modifications/series
+++ b/scripts/ptx-modifications/series
@@ -9,3 +9,4 @@
0005-nconf-remove-special-P_COMMENT-output.patch
0006-mconf-fix-comment-on-exit.patch
0007-warnings-are-errors-unless-PTXDIST_FORCE-is-set.patch
+0009-confdata.c-Re-add-warning-about-unassigned-symbols.patch
diff --git a/scripts/spdx.py b/scripts/spdx.py
new file mode 100644
index 000000000..96e56af19
--- /dev/null
+++ b/scripts/spdx.py
@@ -0,0 +1,357 @@
+#
+# Copyright OpenEmbedded Contributors
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+#
+# This library is intended to capture the JSON SPDX specification in a type
+# safe manner. It is not intended to encode any particular OE specific
+# behaviors, see the sbom.py for that.
+#
+# The documented SPDX spec document doesn't cover the JSON syntax for
+# particular configuration, which can make it hard to determine what the JSON
+# syntax should be. I've found it is actually much simpler to read the official
+# SPDX JSON schema which can be found here: https://github.com/spdx/spdx-spec
+# in schemas/spdx-schema.json
+#
+
+import hashlib
+import itertools
+import json
+
+SPDX_VERSION = "2.3"
+
+
+#
+# The following are the support classes that are used to implement SPDX object
+#
+
+class _Property(object):
+ """
+ A generic SPDX object property. The different types will derive from this
+ class
+ """
+
+ def __init__(self, *, default=None):
+ self.default = default
+
+ def setdefault(self, dest, name):
+ if self.default is not None:
+ dest.setdefault(name, self.default)
+
+
+class _String(_Property):
+ """
+ A scalar string property for an SPDX object
+ """
+
+ def __init__(self, **kwargs):
+ super().__init__(**kwargs)
+
+ def set_property(self, attrs, name):
+ def get_helper(obj):
+ return obj._spdx[name]
+
+ def set_helper(obj, value):
+ obj._spdx[name] = value
+
+ def del_helper(obj):
+ del obj._spdx[name]
+
+ attrs[name] = property(get_helper, set_helper, del_helper)
+
+ def init(self, source):
+ return source
+
+
+class _Object(_Property):
+ """
+ A scalar SPDX object property of a SPDX object
+ """
+
+ def __init__(self, cls, **kwargs):
+ super().__init__(**kwargs)
+ self.cls = cls
+
+ def set_property(self, attrs, name):
+ def get_helper(obj):
+ if not name in obj._spdx:
+ obj._spdx[name] = self.cls()
+ return obj._spdx[name]
+
+ def set_helper(obj, value):
+ obj._spdx[name] = value
+
+ def del_helper(obj):
+ del obj._spdx[name]
+
+ attrs[name] = property(get_helper, set_helper)
+
+ def init(self, source):
+ return self.cls(**source)
+
+
+class _ListProperty(_Property):
+ """
+ A list of SPDX properties
+ """
+
+ def __init__(self, prop, **kwargs):
+ super().__init__(**kwargs)
+ self.prop = prop
+
+ def set_property(self, attrs, name):
+ def get_helper(obj):
+ if not name in obj._spdx:
+ obj._spdx[name] = []
+ return obj._spdx[name]
+
+ def set_helper(obj, value):
+ obj._spdx[name] = list(value)
+
+ def del_helper(obj):
+ del obj._spdx[name]
+
+ attrs[name] = property(get_helper, set_helper, del_helper)
+
+ def init(self, source):
+ return [self.prop.init(o) for o in source]
+
+
+class _StringList(_ListProperty):
+ """
+ A list of strings as a property for an SPDX object
+ """
+
+ def __init__(self, **kwargs):
+ super().__init__(_String(), **kwargs)
+
+
+class _ObjectList(_ListProperty):
+ """
+ A list of SPDX objects as a property for an SPDX object
+ """
+
+ def __init__(self, cls, **kwargs):
+ super().__init__(_Object(cls), **kwargs)
+
+
+class MetaSPDXObject(type):
+ """
+ A metaclass that allows properties (anything derived from a _Property
+ class) to be defined for a SPDX object
+ """
+ def __new__(mcls, name, bases, attrs):
+ attrs["_properties"] = {}
+
+ for key in attrs.keys():
+ if isinstance(attrs[key], _Property):
+ prop = attrs[key]
+ attrs["_properties"][key] = prop
+ prop.set_property(attrs, key)
+
+ return super().__new__(mcls, name, bases, attrs)
+
+
+class SPDXObject(metaclass=MetaSPDXObject):
+ """
+ The base SPDX object; all SPDX spec classes must derive from this class
+ """
+ def __init__(self, **d):
+ self._spdx = {}
+
+ for name, prop in self._properties.items():
+ prop.setdefault(self._spdx, name)
+ if name in d:
+ self._spdx[name] = prop.init(d[name])
+
+ def serializer(self):
+ return self._spdx
+
+ def __setattr__(self, name, value):
+ if name in self._properties or name == "_spdx":
+ super().__setattr__(name, value)
+ return
+ raise KeyError("%r is not a valid SPDX property" % name)
+
+#
+# These are the SPDX objects implemented from the spec. The *only* properties
+# that can be added to these objects are ones directly specified in the SPDX
+# spec, however you may add helper functions to make operations easier.
+#
+# Defaults should *only* be specified if the SPDX spec says there is a certain
+# required value for a field (e.g. dataLicense), or if the field is mandatory
+# and has some sane "this field is unknown" (e.g. "NOASSERTION")
+#
+
+class SPDXAnnotation(SPDXObject):
+ annotationDate = _String()
+ annotationType = _String()
+ annotator = _String()
+ comment = _String()
+
+class SPDXChecksum(SPDXObject):
+ algorithm = _String()
+ checksumValue = _String()
+
+
+class SPDXRelationship(SPDXObject):
+ spdxElementId = _String()
+ relatedSpdxElement = _String()
+ relationshipType = _String()
+ comment = _String()
+ annotations = _ObjectList(SPDXAnnotation)
+
+
+class SPDXExternalReference(SPDXObject):
+ referenceCategory = _String()
+ referenceType = _String()
+ referenceLocator = _String()
+
+
+class SPDXPackageVerificationCode(SPDXObject):
+ packageVerificationCodeValue = _String()
+ packageVerificationCodeExcludedFiles = _StringList()
+
+
+class SPDXPackage(SPDXObject):
+ ALLOWED_CHECKSUMS = [
+ "SHA1",
+ "SHA224",
+ "SHA256",
+ "SHA384",
+ "SHA512",
+ "MD2",
+ "MD4",
+ "MD5",
+ "MD6",
+ ]
+
+ name = _String()
+ SPDXID = _String()
+ versionInfo = _String()
+ downloadLocation = _String(default="NOASSERTION")
+ supplier = _String(default="NOASSERTION")
+ homepage = _String()
+ licenseConcluded = _String(default="NOASSERTION")
+ licenseDeclared = _String(default="NOASSERTION")
+ summary = _String()
+ description = _String()
+ sourceInfo = _String()
+ copyrightText = _String(default="NOASSERTION")
+ licenseInfoFromFiles = _StringList(default=["NOASSERTION"])
+ externalRefs = _ObjectList(SPDXExternalReference)
+ packageVerificationCode = _Object(SPDXPackageVerificationCode)
+ hasFiles = _StringList()
+ packageFileName = _String()
+ annotations = _ObjectList(SPDXAnnotation)
+ checksums = _ObjectList(SPDXChecksum)
+
+
+class SPDXFile(SPDXObject):
+ SPDXID = _String()
+ fileName = _String()
+ licenseConcluded = _String(default="NOASSERTION")
+ copyrightText = _String(default="NOASSERTION")
+ licenseInfoInFiles = _StringList(default=["NOASSERTION"])
+ checksums = _ObjectList(SPDXChecksum)
+ fileTypes = _StringList()
+
+
+class SPDXCreationInfo(SPDXObject):
+ created = _String()
+ licenseListVersion = _String()
+ comment = _String()
+ creators = _StringList()
+
+
+class SPDXExternalDocumentRef(SPDXObject):
+ externalDocumentId = _String()
+ spdxDocument = _String()
+ checksum = _Object(SPDXChecksum)
+
+
+class SPDXExtractedLicensingInfo(SPDXObject):
+ name = _String()
+ comment = _String()
+ licenseId = _String()
+ extractedText = _String()
+
+
+class SPDXDocument(SPDXObject):
+ spdxVersion = _String(default="SPDX-" + SPDX_VERSION)
+ dataLicense = _String(default="CC0-1.0")
+ SPDXID = _String(default="SPDXRef-DOCUMENT")
+ name = _String()
+ documentNamespace = _String()
+ creationInfo = _Object(SPDXCreationInfo)
+ packages = _ObjectList(SPDXPackage)
+ files = _ObjectList(SPDXFile)
+ relationships = _ObjectList(SPDXRelationship)
+ externalDocumentRefs = _ObjectList(SPDXExternalDocumentRef)
+ hasExtractedLicensingInfos = _ObjectList(SPDXExtractedLicensingInfo)
+
+ def __init__(self, **d):
+ super().__init__(**d)
+
+ def to_json(self, f, *, sort_keys=False, indent=None, separators=None):
+ class Encoder(json.JSONEncoder):
+ def default(self, o):
+ if isinstance(o, SPDXObject):
+ return o.serializer()
+
+ return super().default(o)
+
+ sha1 = hashlib.sha1()
+ for chunk in Encoder(
+ sort_keys=sort_keys,
+ indent=indent,
+ separators=separators,
+ ).iterencode(self):
+ chunk = chunk.encode("utf-8")
+ f.write(chunk)
+ sha1.update(chunk)
+
+ return sha1.hexdigest()
+
+ @classmethod
+ def from_json(cls, f):
+ return cls(**json.load(f))
+
+ def add_relationship(self, _from, relationship, _to, *, comment=None, annotation=None):
+ if isinstance(_from, SPDXObject):
+ from_spdxid = _from.SPDXID
+ else:
+ from_spdxid = _from
+
+ if isinstance(_to, SPDXObject):
+ to_spdxid = _to.SPDXID
+ else:
+ to_spdxid = _to
+
+ r = SPDXRelationship(
+ spdxElementId=from_spdxid,
+ relatedSpdxElement=to_spdxid,
+ relationshipType=relationship,
+ )
+
+ if comment is not None:
+ r.comment = comment
+
+ if annotation is not None:
+ r.annotations.append(annotation)
+
+ self.relationships.append(r)
+
+ def find_by_spdxid(self, spdxid):
+ for o in itertools.chain(self.packages, self.files):
+ if o.SPDXID == spdxid:
+ return o
+ return None
+
+ def find_external_document_ref(self, namespace):
+ for r in self.externalDocumentRefs:
+ if r.spdxDocument == namespace:
+ return r
+ return None
diff --git a/scripts/update_spdx.py b/scripts/update_spdx.py
index fd615c51a..e8ca0cc4a 100755
--- a/scripts/update_spdx.py
+++ b/scripts/update_spdx.py
@@ -37,18 +37,28 @@ ptxd_make_spdx() {
case "${license}" in
""" % (basename(sys.argv[0]), basename(sys.argv[1]), basename(sys.argv[2])))
+lines = []
for l in data['licenses']:
arg = ''
if l['isDeprecatedLicenseId']:
arg = 'deprecated="true" '
elif l['isOsiApproved']:
arg = 'osi="true" '
- outfile.write(" {}) {};;\n".format(l['licenseId'], arg))
+ lines.append(" {}) {};;\n".format(l['licenseId'], arg))
+lines.sort(key=str.casefold)
+for line in lines:
+ outfile.write(line)
+
+lines=[]
for l in ex_data['exceptions']:
if l['isDeprecatedLicenseId']:
continue
- outfile.write(" {}) exception=\"true\" ;;\n".format(l['licenseExceptionId']))
+ lines.append(" {}) exception=\"true\" ;;\n".format(l['licenseExceptionId']))
+
+lines.sort(key=str.casefold)
+for line in lines:
+ outfile.write(line)
outfile.write(""" *) return 1 ;;
esac
diff --git a/scripts/validate-bsp-report-schema.py b/scripts/validate-bsp-report-schema.py
new file mode 100755
index 000000000..7162920c9
--- /dev/null
+++ b/scripts/validate-bsp-report-schema.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+from os import path
+from sys import argv
+from jsonschema import validate
+import yaml
+
+if len(argv) != 2:
+ print(f"usage: {argv[0]} <report-file>.yaml")
+ exit(1)
+
+schema_file = path.join(path.dirname(argv[0]), 'bsp-report-schema.yaml')
+
+schema = yaml.load(open(schema_file).read(), Loader=yaml.SafeLoader)
+data = yaml.load(open(argv[1]).read(), Loader=yaml.SafeLoader)
+
+validate(data, schema)
+
diff --git a/scripts/vendor-cargo-workspace-package b/scripts/vendor-cargo-workspace-package
new file mode 100755
index 000000000..a8c457938
--- /dev/null
+++ b/scripts/vendor-cargo-workspace-package
@@ -0,0 +1,55 @@
+#!/usr/bin/env python3
+
+import argparse
+import toml
+from copy import deepcopy
+from os.path import dirname, join, relpath
+
+parser = argparse.ArgumentParser(description='vendor cargo workspace package')
+parser.add_argument('--input')
+parser.add_argument('--output')
+parser.add_argument('--workspace')
+args = parser.parse_args()
+
+pkg_input = toml.load(args.input)
+pkg_output = deepcopy(pkg_input)
+workspace = toml.load(args.workspace)
+
+rel = relpath(dirname(args.workspace), dirname(args.input))
+
+for section, data in pkg_input.items():
+ if not isinstance(data, dict):
+ continue
+ for key, value in data.items():
+ if not isinstance(value, dict):
+ continue
+ if not 'workspace' in value:
+ continue
+ if not value['workspace']:
+ continue
+ if not 'workspace' in workspace:
+ print(f'missing section "workspace" {args.workspace}')
+ exit(1)
+ if section in workspace['workspace']:
+ wsection = section
+ else:
+ wsection = section[4:] if section.startswith('dev-') else section
+ if not wsection in workspace['workspace']:
+ print(f'missing section "workspace.{section}" in {args.workspace} for {args.input}')
+ exit(1)
+ try:
+ copy = deepcopy(workspace['workspace'][wsection][key])
+ except KeyError:
+ print(f'missing "workspace.{section}.{key}" in {args.workspace} for {args.input}')
+ exit(1)
+ if isinstance(copy, dict):
+ if 'path' in copy:
+ copy['path'] = join(rel, copy['path'])
+ pkg_output[section][key].pop('workspace')
+ pkg_output[section][key].update(copy)
+ else:
+ pkg_output[section][key] = copy
+
+
+with open(args.output, 'w') as f:
+ toml.dump(pkg_output, f)
diff --git a/scripts/wrapper/clang++-wrapper b/scripts/wrapper/clang++-wrapper
index 0aeec2510..6e393f2a5 100755
--- a/scripts/wrapper/clang++-wrapper
+++ b/scripts/wrapper/clang++-wrapper
@@ -1,6 +1,7 @@
#!/bin/sh
-. "$(dirname "$(readlink -f "$0")")/libwrapper.sh" || exit
+WRAPPER_DIR="$(dirname "$(readlink -f "$0")")"
+. "${WRAPPER_DIR}/libwrapper.sh" || exit
cc_check_args "${@}"
diff --git a/scripts/wrapper/clang-wrapper b/scripts/wrapper/clang-wrapper
index 9a9ff6da6..8cee4456f 100755
--- a/scripts/wrapper/clang-wrapper
+++ b/scripts/wrapper/clang-wrapper
@@ -1,6 +1,7 @@
#!/bin/sh
-. "$(dirname "$(readlink -f "$0")")/libwrapper.sh" || exit
+WRAPPER_DIR="$(dirname "$(readlink -f "$0")")"
+. "${WRAPPER_DIR}/libwrapper.sh" || exit
cc_check_args "${@}"
diff --git a/scripts/wrapper/cpp-wrapper b/scripts/wrapper/cpp-wrapper
index b7380adfd..e67ba53df 100755
--- a/scripts/wrapper/cpp-wrapper
+++ b/scripts/wrapper/cpp-wrapper
@@ -1,6 +1,7 @@
#!/bin/sh
-. "$(dirname "$(readlink -f "$0")")/libwrapper.sh" || exit
+WRAPPER_DIR="$(dirname "$(readlink -f "$0")")"
+. "${WRAPPER_DIR}/libwrapper.sh" || exit
cc_check_args "${@}"
diff --git a/scripts/wrapper/g++-wrapper b/scripts/wrapper/g++-wrapper
index fb5b4b63b..9e4ceb0e0 100755
--- a/scripts/wrapper/g++-wrapper
+++ b/scripts/wrapper/g++-wrapper
@@ -1,6 +1,7 @@
#!/bin/sh
-. "$(dirname "$(readlink -f "$0")")/libwrapper.sh" || exit
+WRAPPER_DIR="$(dirname "$(readlink -f "$0")")"
+. "${WRAPPER_DIR}/libwrapper.sh" || exit
cc_check_args "${@}"
diff --git a/scripts/wrapper/gcc-wrapper b/scripts/wrapper/gcc-wrapper
index 624938f98..572b3b4a8 100755
--- a/scripts/wrapper/gcc-wrapper
+++ b/scripts/wrapper/gcc-wrapper
@@ -1,6 +1,7 @@
#!/bin/sh
-. "$(dirname "$(readlink -f "$0")")/libwrapper.sh" || exit
+WRAPPER_DIR="$(dirname "$(readlink -f "$0")")"
+. "${WRAPPER_DIR}/libwrapper.sh" || exit
cc_check_args "${@}"
diff --git a/scripts/wrapper/gdb-wrapper b/scripts/wrapper/gdb-wrapper
index 47c9fe5fe..770239907 100755
--- a/scripts/wrapper/gdb-wrapper
+++ b/scripts/wrapper/gdb-wrapper
@@ -1,6 +1,7 @@
#!/bin/sh
-. "$(dirname "$(readlink -f "$0")")/libwrapper.sh" || exit
+WRAPPER_DIR="$(dirname "$(readlink -f "$0")")"
+. "${WRAPPER_DIR}/libwrapper.sh" || exit
unset PTXDIST_ICECC
unset PTXDIST_CCACHE
diff --git a/scripts/wrapper/gfortran-wrapper b/scripts/wrapper/gfortran-wrapper
new file mode 100755
index 000000000..820da04b0
--- /dev/null
+++ b/scripts/wrapper/gfortran-wrapper
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+WRAPPER_DIR="$(dirname "$(readlink -f "$0")")"
+. "${WRAPPER_DIR}/libwrapper.sh" || exit
+
+cc_add_target_ld_args
+
+wrapper_exec "$@"
diff --git a/scripts/wrapper/host-clang++-wrapper b/scripts/wrapper/host-clang++-wrapper
index f8142462c..812ad7f84 100755
--- a/scripts/wrapper/host-clang++-wrapper
+++ b/scripts/wrapper/host-clang++-wrapper
@@ -1,6 +1,7 @@
#!/bin/sh
-. "$(dirname "$(readlink -f "$0")")/libwrapper.sh" || exit
+WRAPPER_DIR="$(dirname "$(readlink -f "$0")")"
+. "${WRAPPER_DIR}/libwrapper.sh" || exit
HOST=true
diff --git a/scripts/wrapper/host-clang-wrapper b/scripts/wrapper/host-clang-wrapper
index e1fa8f297..7cc1676cf 100755
--- a/scripts/wrapper/host-clang-wrapper
+++ b/scripts/wrapper/host-clang-wrapper
@@ -1,6 +1,7 @@
#!/bin/sh
-. "$(dirname "$(readlink -f "$0")")/libwrapper.sh" || exit
+WRAPPER_DIR="$(dirname "$(readlink -f "$0")")"
+. "${WRAPPER_DIR}/libwrapper.sh" || exit
HOST=true
diff --git a/scripts/wrapper/host-cpp-wrapper b/scripts/wrapper/host-cpp-wrapper
index b3a1afe4a..933ed4266 100755
--- a/scripts/wrapper/host-cpp-wrapper
+++ b/scripts/wrapper/host-cpp-wrapper
@@ -1,6 +1,7 @@
#!/bin/sh
-. "$(dirname "$(readlink -f "$0")")/libwrapper.sh" || exit
+WRAPPER_DIR="$(dirname "$(readlink -f "$0")")"
+. "${WRAPPER_DIR}/libwrapper.sh" || exit
HOST=true
diff --git a/scripts/wrapper/host-g++-wrapper b/scripts/wrapper/host-g++-wrapper
index de4444abe..a91520f5c 100755
--- a/scripts/wrapper/host-g++-wrapper
+++ b/scripts/wrapper/host-g++-wrapper
@@ -1,6 +1,7 @@
#!/bin/sh
-. "$(dirname "$(readlink -f "$0")")/libwrapper.sh" || exit
+WRAPPER_DIR="$(dirname "$(readlink -f "$0")")"
+. "${WRAPPER_DIR}/libwrapper.sh" || exit
HOST=true
diff --git a/scripts/wrapper/host-gcc-wrapper b/scripts/wrapper/host-gcc-wrapper
index 9887abe8c..b69f038d2 100755
--- a/scripts/wrapper/host-gcc-wrapper
+++ b/scripts/wrapper/host-gcc-wrapper
@@ -1,6 +1,7 @@
#!/bin/sh
-. "$(dirname "$(readlink -f "$0")")/libwrapper.sh" || exit
+WRAPPER_DIR="$(dirname "$(readlink -f "$0")")"
+. "${WRAPPER_DIR}/libwrapper.sh" || exit
HOST=true
diff --git a/scripts/wrapper/ld-wrapper b/scripts/wrapper/ld-wrapper
index f7ca2b604..5c8a28200 100755
--- a/scripts/wrapper/ld-wrapper
+++ b/scripts/wrapper/ld-wrapper
@@ -1,6 +1,7 @@
#!/bin/sh
-. "$(dirname "$(readlink -f "$0")")/libwrapper.sh" || exit
+WRAPPER_DIR="$(dirname "$(readlink -f "$0")")"
+. "${WRAPPER_DIR}/libwrapper.sh" || exit
unset PTXDIST_CCACHE
diff --git a/scripts/wrapper/libwrapper.sh b/scripts/wrapper/libwrapper.sh
index a7cdbeac0..4da6a652c 100644
--- a/scripts/wrapper/libwrapper.sh
+++ b/scripts/wrapper/libwrapper.sh
@@ -17,25 +17,98 @@ ARG_LIST=""
LATE_ARG_LIST=""
if [ -z "${PTXDIST_PLATFORMCONFIG}" ]; then
- . "$(dirname "$(readlink -f "${0}")")/env" || exit
+ . "${WRAPPER_DIR}/env" || exit
fi
. ${PTXDIST_PLATFORMCONFIG}
CMD="${0##*/}"
-FULL_CMD="${0%/*}/real/${CMD}"
+FULL_CMD="$(readlink "${0%/*}/real/${CMD}")"
+
+# don't use PTXDIST_FD_LOGFILE if some build tool closed the fd
+if [ ! -e "/proc/self/fd/${PTXDIST_FD_LOGFILE}" ]; then
+ unset PTXDIST_FD_LOGFILE
+fi
wrapper_exec() {
- PATH="$(echo "${PATH}" | sed "s;${PTXDIST_PATH_SYSROOT_HOST}/lib/wrapper:;;")"
+ IFS=:
+ tmp=
+ for P in ${PATH}; do
+ if [ "${P}" != "${PTXDIST_PATH_SYSROOT_HOST}/usr/lib/wrapper" ]; then
+ tmp="${tmp}${tmp:+:}${P}"
+ fi
+ done
+ unset IFS
+ PATH="${tmp}"
+ if [ -z "${ICECC_VERSION}" -o ! -e "${ICECC_VERSION}" ]; then
+ PTXDIST_ICECC=${PTXDIST_ICERUN}
+ fi
+ if [ -n "${FAKEROOTKEY}" ]; then
+ PTXDIST_ICECC=""
+ fi
+ if ! ${HOST} && [ -n "${PTXDIST_WORKSPACE}" ]; then
+ IFS="$(printf "\037")"
+ set -- $(filter_args "${@}")
+ unset IFS
+ fi
+ if $COMPILING && [ -n "${PTXDIST_COMPILE_COMMANDS}" ]; then
+ printf "%s\037%s\n" "${PWD}" "${CMD} ${ARG_LIST} $* ${LATE_ARG_LIST}" >> "${PTXDIST_COMPILE_COMMANDS}"
+ fi
if [ "${PTXDIST_VERBOSE}" = 1 -a -n "${PTXDIST_FD_LOGFILE}" ]; then
echo "wrapper: ${PTXDIST_ICECC}${PTXDIST_CCACHE} ${CMD} ${ARG_LIST} $* ${LATE_ARG_LIST}" >&${PTXDIST_FD_LOGFILE}
fi
- if [ -n "${FAKEROOTKEY}" -o -z "${ICECC_VERSION}" -o ! -e "${ICECC_VERSION}" ]; then
- PTXDIST_ICECC=${PTXDIST_ICERUN}
- fi
exec ${PTXDIST_ICECC}${PTXDIST_CCACHE} "${FULL_CMD}" ${ARG_LIST} "$@" ${LATE_ARG_LIST}
}
+filter_args() {
+ # PTXDIST_SYSROOT_TOOLCHAIN may not be defined yet
+ if [ -n "${PTXDIST_SYSROOT_TOOLCHAIN}" ]; then
+ pkg_wrapper_accept_paths="${PTXDIST_SYSROOT_TOOLCHAIN}${IFS}${pkg_wrapper_accept_paths}"
+ if [ "${PTXDIST_SYSROOT_TOOLCHAIN}" != "${PTXDIST_REAL_SYSROOT_TOOLCHAIN}" ]; then
+ pkg_wrapper_accept_paths="${PTXDIST_REAL_SYSROOT_TOOLCHAIN}${IFS}${pkg_wrapper_accept_paths}"
+ fi
+ fi
+ pkg_wrapper_accept_paths="${PTXDIST_PLATFORMDIR}${IFS}${pkg_wrapper_accept_paths}"
+ if [ "${PTXDIST_PLATFORMDIR}" != "${PTXDIST_REAL_PLATFORMDIR}" ]; then
+ pkg_wrapper_accept_paths="${PTXDIST_REAL_PLATFORMDIR}${IFS}${pkg_wrapper_accept_paths}"
+ fi
+ for ARG in "${@}"; do
+ good=false
+ for path in ${pkg_wrapper_accept_paths}; do
+ if [ -z "${path}" ]; then
+ continue
+ fi
+ case "${ARG}" in
+ -[IL]"${path}"*)
+ good=true
+ ;;
+ esac
+ if ${good}; then
+ break
+ fi
+ done
+ if ! ${good}; then
+ case "${ARG}" in
+ -L/*|-I/*)
+ # skip all absolute search directories outside the BSP
+ echo "wrapper: removing '${ARG}' from the commandline" >&2
+ continue
+ ;;
+ esac
+ fi
+ case "${ARG}" in
+ -isystem)
+ ;;
+ -isystem*)
+ # not detected correctly without space by icecc so split it
+ printf "%s\037" "-isystem"
+ ARG="${ARG#-isystem}"
+ ;;
+ esac
+ printf "%s\037" "${ARG}"
+ done
+}
+
cc_check_args() {
for ARG in "$@"; do
case "${ARG}" in
@@ -71,13 +144,6 @@ cc_check_args() {
-ggdb3)
FULL_DEBUG=true
;;
- -I/usr/include | -L/usr/lib | -L/lib)
- if ! ${HOST}; then
- echo "wrapper: Bad search path in:" >&2
- echo "${CMD} $*" >&2
- exit 1
- fi
- ;;
-Wl,-rpath,/*build-target*)
if ! ${HOST}; then
add_late_arg "-Wl,-rpath-link${ARG#-Wl,-rpath}"
@@ -87,6 +153,10 @@ cc_check_args() {
# The plugins are not available on the icecc node
PTXDIST_ICECC=${PTXDIST_ICERUN}
;;
+ -save-temps*)
+ # only icecc >= 1.4 filters those correctly
+ PTXDIST_ICECC=${PTXDIST_ICERUN}
+ ;;
-print-file-name=plugin)
if [ "${PTXDIST_NO_GCC_PLUGINS}" = "1" ]; then
echo "wrapper: gcc plugins disabled" >&2
@@ -126,16 +196,16 @@ add_late_arg() {
}
test_opt() {
- local opt="${1}"
+ local opt="${1}" popt
for item in ${pkg_wrapper_blacklist}; do
if [ "${item}" = "${opt}" ]; then
return 1
fi
done
- opt="PTXCONF_${opt}"
- eval "opt=\$${opt}"
- if [ -z "${opt}" ]; then
+ popt="PTXCONF_${opt}"
+ eval "popt=\$${popt} opt=\$${opt}"
+ if [ -z "${opt}" -a -z "${popt}" ]; then
return 1
fi
return 0
@@ -252,9 +322,14 @@ cc_add_arch() {
fi
}
+cc_add_optimizations() {
+ add_opt_arg TARGET_NO_SEMANTIC_INTERPOSITION "-fno-semantic-interposition"
+}
+
cpp_add_target_extra() {
cc_check_args ${pkg_cppflags}
add_opt_arg TARGET_COMPILER_RECORD_SWITCHES "-frecord-gcc-switches"
+ add_opt_arg PTXDIST_Y2038 "-D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64"
add_late_arg ${PTXDIST_CROSS_CPPFLAGS}
add_arg ${pkg_cppflags}
add_opt_arg TARGET_EXTRA_CPPFLAGS ${PTXCONF_TARGET_EXTRA_CPPFLAGS}
@@ -263,6 +338,7 @@ cpp_add_target_extra() {
cc_add_target_extra() {
cc_check_args ${pkg_cflags}
cpp_add_target_extra
+ cc_add_optimizations
cc_add_debug
cc_add_arch
add_arg ${pkg_cflags}
@@ -272,6 +348,7 @@ cc_add_target_extra() {
cxx_add_target_extra() {
cc_check_args ${pkg_cxxflags}
cpp_add_target_extra
+ cc_add_optimizations
cc_add_debug
cc_add_arch
add_arg ${pkg_cxxflags}
@@ -280,7 +357,7 @@ cxx_add_target_extra() {
cc_add_target_reproducible() {
add_arg -fdebug-prefix-map="${PTXDIST_PLATFORMDIR%/*}/="
- add_arg -fdebug-prefix-map="$(readlink -f "${PTXDIST_PLATFORMDIR}")/=${PTXDIST_PLATFORMDIR##*/}/"
+ add_arg -fdebug-prefix-map="${WRAPPER_DIR%/sysroot-host/lib/wrapper}/=${PTXDIST_PLATFORMDIR##*/}/"
}
cpp_add_host_extra() {
@@ -302,8 +379,7 @@ cxx_add_host_extra() {
}
cc_add_host_clang() {
- FULL_CMD=$(readlink "${0%/*}/real/${CMD}")
- add_arg -gcc-toolchain /usr
+ add_arg --gcc-toolchain=/usr
}
add_icecc_args() {
@@ -356,11 +432,10 @@ cxx_add_host_icecc() {
cc_add_target_clang() {
triple="${CMD%-*}"
- FULL_CMD=$(readlink "${0%/*}/real/${CMD}")
if [ -n "${PTXDIST_SYSROOT_TOOLCHAIN}" ]; then
add_arg --sysroot="${PTXDIST_SYSROOT_TOOLCHAIN}"
fi
- env="$(dirname "${FULL_CMD}")/.${triple}.flags"
+ env="${FULL_CMD%/*}/.${triple}.flags"
if [ -e "${env}" ]; then
. "${env}"
add_arg ${flags}
diff --git a/scripts/wrapper/python-wrapper b/scripts/wrapper/python-wrapper
index 8449aae33..47fd618ad 100755
--- a/scripts/wrapper/python-wrapper
+++ b/scripts/wrapper/python-wrapper
@@ -8,8 +8,8 @@ fi
case "${name}" in
python) dep="host-system-python / host-system-python3" ;;
-python2) dep=host-system-python ;;
-python3) dep=host-system-python3 ;;
+python2*) dep=host-system-python ;;
+python3*) dep=host-system-python3 ;;
esac
case " ${pkg_build_deps} " in
@@ -21,6 +21,7 @@ case " ${pkg_build_deps} " in
*" ${dep} "*) ;;
*" host-system-python "*) name=python2 ;;
*" host-system-python3 "*) name=python3 ;;
+ *" host-python3 "*) host=1;;
*)
if [ -n "${pkg_stamp}" ]; then
echo -e "\n'${pkg_stamp%.*}' must depend on '${dep}' for '${name}'!\n" >&2
@@ -34,10 +35,19 @@ esac
name="${name}${suffix}"
skip="$(dirname "${0}")/${name}"
+if [ "${name}" = "python3" -a -z "${host}" -a -z "${HOST_SYSTEM_PYTHON3_SETUP}" ]; then
+ # use the venv
+ name="$(dirname "$(dirname "$0")")/system-python3/bin/python3"
+fi
+
for path in $(type -a -P ${name}); do
if [ "${path}" = "${skip}" ]; then
continue
fi
+ if [[ -n "${host}" && ! ( "${path}" =~ "sysroot-host/usr/bin/python3." ) ]]; then
+ echo -e "\n'${pkg_stamp%.*}' must depend on '${dep}' for '${name}'!\n" >&2
+ exit 1
+ fi
exec "${path}" "${@}"
done