diff --git a/core/depot/depot.toml b/core/depot/depot.toml index 6a123b0..cb139dc 100644 --- a/core/depot/depot.toml +++ b/core/depot/depot.toml @@ -30,7 +30,7 @@ description = "source-based package manager designed for Linux, focuses on repro homepage = "https://gitlab.com/sfg-os/depot" license = "MIT" name = "depot" -version = "0.29.0" +version = "0.31.0" revision = 1 [[source]] diff --git a/core/elfutils/build.sh b/core/elfutils/build.sh new file mode 100644 index 0000000..6be96be --- /dev/null +++ b/core/elfutils/build.sh @@ -0,0 +1,41 @@ +#!/bin/sh +set -eu + +depot_build() { + export CFLAGS="${CFLAGS:+$CFLAGS } -D_GNU_SOURCE -Wno-error -Wno-null-dereference -ffat-lto-objects -g" + + mkdir -p build + cd build + + ../configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var \ + --disable-werror \ + --program-prefix=eu- \ + --enable-deterministic-archives \ + --disable-nls \ + --disable-libdebuginfod \ + --disable-debuginfod \ + --with-zstd + + make +} + +depot_install_elfutils() { + make DESTDIR="$DESTDIR" install + haul libelf usr/lib/libelf* + haul libelf usr/lib/libdw* + haul libelf usr/lib/pkgconfig/libelf.pc + haul libelf usr/lib/pkgconfig/libdw.pc + haul libelf usr/include/libelf.h + haul libelf usr/include/gelf.h + haul libelf usr/include/nlist.h + haul libelf usr/include/dwarf.h + haul libelf usr/include/elfutils +} + +depot_install_libelf() { +true +} diff --git a/core/elfutils/elfutils.toml b/core/elfutils/elfutils.toml new file mode 100644 index 0000000..dbd8462 --- /dev/null +++ b/core/elfutils/elfutils.toml @@ -0,0 +1,77 @@ +[package] +name = "elfutils" +version = "0.194" +revision = 1 +description = "Handle ELF object files and DWARF debugging information" +homepage = "https://sourceware.org/elfutils/" +license = "GPL-3.0-or-later" + +[[packages]] +name = "libelf" +version = "0.194" +revision = 1 +description = "Handle ELF object files and DWARF debugging information (libraries)" +homepage = "https://sourceware.org/elfutils/" +license = [ + "GPL-2.0-or-later", + "LGPL-3.0-or-later", +] + +[build] +type = "custom" + +[build.flags] +skip_tests = false +no_delete_static = true + +[dependencies] +build = [ + "bzip2", + "curl", + "json-c", + "libarchive", + "libmicrohttpd", + "sqlite", + "xz", + "zlib-ng", + "zstd", +] +runtime = [ + "glibc", + "sh", + "libarchive", + "libcxx", + "libunwind", + "libelf" +] + +[package_dependencies.elfutils] +runtime = [ + "glibc", + "libarchive", + "libelf", + "sh", +] + +[package_dependencies.libelf] +runtime = [ + "bzip2", + "curl", + "glibc", + "json-c", + "xz", + "zlib-ng", + "zstd", +] + +[[source]] +url = "https://sourceware.org/elfutils/ftp/0.194/elfutils-0.194.tar.bz2" +sha256 = "09e2ff033d39baa8b388a2d7fbc5390bfde99ae3b7c67c7daaf7433fbcf0f01e" +extract_dir = "elfutils-$version" + +post_extract = [ + "curl -L 'https://sourceware.org/git/?p=elfutils.git;a=patch;h=4a5cf8be906d5991e7527e69e3f2ceaa74811301' -o fix-c23-const.patch", + "patch -Np1 -i fix-c23-const.patch", + "sed -i 's/run-backtrace-native.sh//g' tests/Makefile.am", + "autoreconf -fiv", +] diff --git a/core/libelf/libelf.toml b/core/libelf/libelf.toml deleted file mode 100644 index 7201fe4..0000000 --- a/core/libelf/libelf.toml +++ /dev/null @@ -1,34 +0,0 @@ -[build] -type = "autotools" - -[build.flags] -configure = [ - "--disable-debuginfod", - "--enable-libdebuginfod=dummy", -] -make_dirs = [ "lib", "libelf" ] -make_install_dirs = [ "libelf" ] -post_install = [ "mkdir -p $DESTDIR/usr/lib/pkgconfig", "install -vm644 config/libelf.pc $DESTDIR/usr/lib/pkgconfig", "rm $DESTDIR/usr/lib/libelf.a" ] -# the tests fail with glibc 2.43 -skip_tests = true - -[dependencies] -runtime = [ - "glibc", - "xz", - "bzip2", - "zlib-ng", - "zstd" -] - -[package] -description = "Library to read, modify and create ELF files " -homepage = "https://sourceware.org/elfutils/" -license = "GPL-3.0-or-later AND ( GPL-2.0-or-later OR LGPL-3.0-or-later )" -name = "libelf" -version = "0.194" - -[[source]] -extract_dir = "$name-$version" -sha256 = "09e2ff033d39baa8b388a2d7fbc5390bfde99ae3b7c67c7daaf7433fbcf0f01e" -url = "https://sourceware.org/elfutils/ftp/$version/elfutils-$version.tar.bz2" diff --git a/core/libxml215/libxml215.toml b/core/libxml215/libxml215.toml index c52eb2c..4145802 100644 --- a/core/libxml215/libxml215.toml +++ b/core/libxml215/libxml215.toml @@ -7,18 +7,27 @@ configure = [ "-Dhistory=enabled", "-Dicu=enabled", "-Dc_args=-D_GNU_SOURCE", + "-Dpython=enabled" ] post_install = [ 'test -f $DESTDIR/usr/bin/xml2-config && sed "s/--static/--shared/" -i $DESTDIR/usr/bin/xml2-config || true', 'test -f libxml.m4 && install -Dm644 libxml.m4 -t $DESTDIR/usr/share/aclocal || true', ] build_32 = true +configure-lib32 = [ + "-Dhistory=enabled", + "-Dicu=enabled", + "-Dc_args=-D_GNU_SOURCE", + "-Dpython=disabled" +] [dependencies] build = [ "python", "meson", "ninja", + "docbook-xsl", + "doxygen" ] runtime = [ "sh", @@ -34,6 +43,7 @@ build = [ "python", "meson", "ninja", + "docbook-xsl", ] runtime = [ "lib32-glibc", diff --git a/core/rust/rust.toml b/core/rust/rust.toml index caf6a37..075f3f8 100644 --- a/core/rust/rust.toml +++ b/core/rust/rust.toml @@ -1,6 +1,9 @@ [build] type = "custom" +[alternatives] +provides = [ "cargo" ] + [dependencies] build = [ "cmake", diff --git a/core/vx/vx.toml b/core/vx/vx.toml index d74e7a8..d4e06da 100644 --- a/core/vx/vx.toml +++ b/core/vx/vx.toml @@ -2,7 +2,7 @@ type = "meson" [alternatives] -provides = [ "findutils", "diffutils", "gzip", "grep", "which", "patch" ] +provides = [ "findutils", "diffutils", "gzip", "grep", "which", "patch", "pciutils" ] replaces = [ "findutils", "diffutils", "gzip", "grep", "which", "patch" ] [build.flags] @@ -25,7 +25,7 @@ license = [ "BSD-4-Clause", ] name = "vx" -version = "0.1.0" +version = "0.2.0" [[source]] extract_dir = "$name-$version" diff --git a/depot-index.tsv b/depot-index.tsv index 5f0dc4a..6bea24f 100644 --- a/depot-index.tsv +++ b/depot-index.tsv @@ -1,11 +1,24 @@ depot-source-index-v3 +B alsa-lib extra/libsamplerate/libsamplerate.toml +B alsa-lib extra/libsndfile/libsndfile.toml B autoconf extra/jq/jq.toml +B autoconf-archive extra/vala/vala.toml B automake extra/jq/jq.toml B bc core/linux/linux.toml B bison extra/jq/jq.toml B brotli extra/libngtcp2/libngtcp2.toml +B bzip2 core/elfutils/elfutils.toml +B cairo extra/freetype2/freetype2.toml +B cairo extra/harfbuzz/harfbuzz.toml +B cargo extra/cbindgen/cbindgen.toml +B cargo extra/mesa/mesa.toml +B cargo extra/rav1e/rav1e.toml +B cargo-c extra/rav1e/rav1e.toml B catch2 extra/spdlog/spdlog.toml +B cbindgen extra/mesa/mesa.toml B clang core/limine/limine.toml +B clang extra/doxygen/doxygen.toml +B clang extra/mesa/mesa.toml B cli_doc core/depot/depot.toml B cmake core/libarchive/libarchive.toml B cmake core/libgit2/libgit2.toml @@ -14,6 +27,7 @@ B cmake core/minisign/minisign.toml B cmake core/rust/rust.toml B cmake core/zlib-ng/zlib-ng.toml B cmake extra/abseil-cpp/abseil-cpp.toml +B cmake extra/aom/aom.toml B cmake extra/benchmark/benchmark.toml B cmake extra/brotli/brotli.toml B cmake extra/c-ares/c-ares.toml @@ -21,14 +35,30 @@ B cmake extra/catch2/catch2.toml B cmake extra/cmocka/cmocka.toml B cmake extra/cppdap/cppdap.toml B cmake extra/double-conversion/double-conversion.toml +B cmake extra/doxygen/doxygen.toml B cmake extra/fastfetch/fastfetch.toml B cmake extra/fish/fish.toml +B cmake extra/flac/flac.toml B cmake extra/fmt/fmt.toml +B cmake extra/freeglut/freeglut.toml +B cmake extra/glslang/glslang.toml B cmake extra/graphite/graphite.toml B cmake extra/gtest/gtest.toml +B cmake extra/hidapi/hidapi.toml +B cmake extra/intel-gmmlib/intel-gmmlib.toml +B cmake extra/intel-media-driver/intel-media-driver.toml B cmake extra/json-c/json-c.toml +B cmake extra/libclc/libclc.toml B cmake extra/libdeflate/libdeflate.toml B cmake extra/libevent/libevent.toml +B cmake extra/libjpeg-turbo/libjpeg-turbo.toml +B cmake extra/libogg/libogg.toml +B cmake extra/libsamplerate/libsamplerate.toml +B cmake extra/libsndfile/libsndfile.toml +B cmake extra/libtiff/libtiff.toml +B cmake extra/libwebp/libwebp.toml +B cmake extra/libyuv/libyuv.toml +B cmake extra/mesa/mesa.toml B cmake extra/nlohmann-json/nlohmann-json.toml B cmake extra/re2/re2.toml B cmake extra/simdjson/simdjson.toml @@ -36,20 +66,41 @@ B cmake extra/spdlog/spdlog.toml B cmake extra/spirv-headers/spirv-headers.toml B cmake extra/spirv-llvm-translator/spirv-llvm-translator.toml B cmake extra/spirv-tools/spirv-tools.toml +B cmake extra/svt-av1/svt-av1.toml B cmake extra/vulkan-headers/vulkan-headers.toml +B cmake extra/vulkan-icd-loader/vulkan-icd-loader.toml B cmake extra/yyjson/yyjson.toml B cmake lib32/libcxx/libcxx.toml B cmake lib32/libunwind/libunwind.toml B cpio core/linux-firmware/linux-firmware.toml B cpio core/linux/linux.toml +B curl core/elfutils/elfutils.toml B curl core/llvm/llvm.toml B cython extra/python-fonttools/python-fonttools.toml B cython extra/python-lxml/python-lxml.toml B cython extra/python-yaml/python-yaml.toml +B directx-headers extra/mesa/mesa.toml +B docbook-sgml extra/fontconfig/fontconfig.toml +B docbook-sgml extra/valgrind/valgrind.toml +B docbook-xml extra/valgrind/valgrind.toml +B docbook-xsl core/libxml215/libxml215.toml +B docbook-xsl extra/bubblewrap/bubblewrap.toml +B docbook-xsl extra/dbus/dbus.toml +B docbook-xsl extra/shared-mime-info/shared-mime-info.toml +B docbook-xsl extra/valgrind/valgrind.toml B docbook-xsl extra/wayland/wayland.toml B docbook-xsl extra/xmlto/xmlto.toml +B doxygen core/libxml215/libxml215.toml +B doxygen extra/dbus/dbus.toml +B elfutils extra/mesa/mesa.toml +B expat extra/mesa/mesa.toml +B flex extra/doxygen/doxygen.toml B flex extra/jq/jq.toml +B freeglut extra/libtiff/libtiff.toml +B freetype2 extra/harfbuzz/harfbuzz.toml B gettext core/linux/linux.toml +B gettext extra/shared-mime-info/shared-mime-info.toml +B giflib extra/libwebp/libwebp.toml B git core/limine/limine.toml B git core/linux-firmware/linux-firmware.toml B git core/llvm/llvm.toml @@ -64,27 +115,87 @@ B git extra/python-semantic-version/python-semantic-version.toml B git extra/python-setuptools-rust/python-setuptools-rust.toml B git extra/python-urllib3/python-urllib3.toml B git extra/python-zipp/python-zipp.toml +B glib2 extra/dbus/dbus.toml +B glib2 extra/freetype2/freetype2.toml +B glibc extra/mesa/mesa.toml +B glslang extra/mesa/mesa.toml +B glu extra/libtiff/libtiff.toml B gnutls core/curl/curl.toml +B gobject-introspection extra/harfbuzz/harfbuzz.toml +B gperf extra/fontconfig/fontconfig.toml +B gtk-doc extra/cairo/cairo.toml +B gtk-doc extra/harfbuzz/harfbuzz.toml +B harfbuzz extra/freetype2/freetype2.toml +B help2man extra/harfbuzz/harfbuzz.toml +B help2man extra/vala/vala.toml +B hwdata extra/libdisplay-info/libdisplay-info.toml +B icu78 extra/harfbuzz/harfbuzz.toml +B itstool extra/yelp-xsl/yelp-xsl.toml B jq extra/fish/fish.toml +B json-c core/elfutils/elfutils.toml B lib32-glibc core/llvm/llvm.toml +B lib32-glibc extra/valgrind/valgrind.toml +B lib32-libcxx extra/valgrind/valgrind.toml +B lib32-libunwind extra/valgrind/valgrind.toml +B libarchive core/elfutils/elfutils.toml B libarchive extra/docbook-xml/docbook-xml.toml +B libclc extra/mesa/mesa.toml +B libcxx extra/freetype2/freetype2.toml +B libcxx extra/harfbuzz/harfbuzz.toml +B libcxx extra/mesa/mesa.toml +B libdrm extra/mesa/mesa.toml B libelf core/linux/linux.toml +B libelf extra/mesa/mesa.toml B libffi core/llvm/llvm.toml B libffi core/rust/rust.toml +B libglvnd extra/libva/libva.toml +B libglvnd extra/mesa/mesa.toml +B libjpeg-turbo extra/libwebp/libwebp.toml +B libmicrohttpd core/elfutils/elfutils.toml +B libpng extra/harfbuzz/harfbuzz.toml +B libpng extra/libwebp/libwebp.toml +B libpng extra/mesa/mesa.toml +B libpng extra/pixman/pixman.toml +B libsndfile extra/libsamplerate/libsamplerate.toml B libssh2 core/libgit2/libgit2.toml +B libunwind extra/freetype2/freetype2.toml +B libunwind extra/mesa/mesa.toml +B libusb extra/hidapi/hidapi.toml +B libva extra/mesa/mesa.toml +B libx11 extra/freetype2/freetype2.toml +B libx11 extra/libglvnd/libglvnd.toml +B libx11 extra/mesa/mesa.toml +B libx11 extra/vulkan-icd-loader/vulkan-icd-loader.toml +B libxcb extra/mesa/mesa.toml +B libxext extra/libglvnd/libglvnd.toml +B libxext extra/mesa/mesa.toml B libxml215 core/llvm/llvm.toml +B libxml215 extra/mesa/mesa.toml B libxml215 extra/xcb-proto/xcb-proto.toml +B libxrandr extra/mesa/mesa.toml +B libxrandr extra/vulkan-icd-loader/vulkan-icd-loader.toml +B libxshmfence extra/mesa/mesa.toml +B libxslt extra/bubblewrap/bubblewrap.toml B libxslt extra/libxcb/libxcb.toml +B libxslt extra/vala/vala.toml B libxslt extra/wayland/wayland.toml +B libxslt extra/yelp-xsl/yelp-xsl.toml +B libxxf86vm extra/mesa/mesa.toml B linux-headers core/iproute2/iproute2.toml B llvm core/bc/bc.toml B llvm core/limine/limine.toml B llvm core/rust/rust.toml B llvm core/tcl/tcl.toml +B llvm extra/mesa/mesa.toml +B llvm-libs extra/mesa/mesa.toml B make core/bc/bc.toml B make core/man-pages/man-pages.toml B make core/tcl/tcl.toml +B mallard-ducktype extra/dbus/dbus.toml B maturin extra/python-orjson/python-orjson.toml +B mesa extra/freeglut/freeglut.toml +B mesa extra/libtiff/libtiff.toml +B mesa extra/libva/libva.toml B meson core/ca-certs/ca-certs.toml B meson core/depot/depot.toml B meson core/kmod/kmod.toml @@ -96,19 +207,47 @@ B meson core/p11-kit/p11-kit.toml B meson core/pam/pam.toml B meson core/vexlum/vexlum.toml B meson core/vx/vx.toml +B meson extra/bubblewrap/bubblewrap.toml +B meson extra/cairo/cairo.toml +B meson extra/dav1d/dav1d.toml +B meson extra/dbus/dbus.toml +B meson extra/directx-headers/directx-headers.toml +B meson extra/fontconfig/fontconfig.toml +B meson extra/freetype2/freetype2.toml +B meson extra/glu/glu.toml +B meson extra/gobject-introspection/gobject-introspection.toml +B meson extra/gtk-doc/gtk-doc.toml +B meson extra/harfbuzz/harfbuzz.toml B meson extra/jsoncpp/jsoncpp.toml B meson extra/leancrypto/leancrypto.toml +B meson extra/libdisplay-info/libdisplay-info.toml B meson extra/libdrm/libdrm.toml +B meson extra/libglvnd/libglvnd.toml B meson extra/libpciaccess/libpciaccess.toml +B meson extra/libva-intel-driver/libva-intel-driver.toml +B meson extra/libva/libva.toml B meson extra/libxau/libxau.toml +B meson extra/mesa/mesa.toml +B meson extra/opus/opus.toml +B meson extra/pixman/pixman.toml +B meson extra/shared-mime-info/shared-mime-info.toml +B meson extra/wayland-protocols/wayland-protocols.toml B meson extra/wayland/wayland.toml B meson extra/xorgproto/xorgproto.toml +B meson extra/yelp-tools/yelp-tools.toml +B meson extra/yelp-xsl/yelp-xsl.toml B mkdocs extra/fmt/fmt.toml B mkdocs-material extra/fmt/fmt.toml B mkdocstrings extra/fmt/fmt.toml B mtools core/limine/limine.toml B mypy extra/python-charset-normalizer/python-charset-normalizer.toml B nasm core/limine/limine.toml +B nasm extra/dav1d/dav1d.toml +B nasm extra/flac/flac.toml +B nasm extra/lame/lame.toml +B nasm extra/libjpeg-turbo/libjpeg-turbo.toml +B nasm extra/rav1e/rav1e.toml +B nasm extra/svt-av1/svt-av1.toml B ncurses core/procps-ng/procps-ng.toml B nettle core/curl/curl.toml B ninja core/kmod/kmod.toml @@ -119,19 +258,37 @@ B ninja core/meson/meson.toml B ninja core/rust/rust.toml B ninja core/zlib-ng/zlib-ng.toml B ninja extra/abseil-cpp/abseil-cpp.toml +B ninja extra/aom/aom.toml B ninja extra/benchmark/benchmark.toml +B ninja extra/dav1d/dav1d.toml +B ninja extra/doxygen/doxygen.toml +B ninja extra/flac/flac.toml B ninja extra/fmt/fmt.toml +B ninja extra/freeglut/freeglut.toml +B ninja extra/glslang/glslang.toml B ninja extra/graphite/graphite.toml B ninja extra/gtest/gtest.toml +B ninja extra/intel-gmmlib/intel-gmmlib.toml +B ninja extra/intel-media-driver/intel-media-driver.toml B ninja extra/json-c/json-c.toml +B ninja extra/libclc/libclc.toml B ninja extra/libdeflate/libdeflate.toml +B ninja extra/libdisplay-info/libdisplay-info.toml B ninja extra/libevent/libevent.toml +B ninja extra/libjpeg-turbo/libjpeg-turbo.toml +B ninja extra/libogg/libogg.toml +B ninja extra/libsamplerate/libsamplerate.toml +B ninja extra/libsndfile/libsndfile.toml +B ninja extra/libwebp/libwebp.toml +B ninja extra/libyuv/libyuv.toml B ninja extra/nodejs/nodejs.toml B ninja extra/spdlog/spdlog.toml B ninja extra/spirv-headers/spirv-headers.toml B ninja extra/spirv-llvm-translator/spirv-llvm-translator.toml B ninja extra/spirv-tools/spirv-tools.toml +B ninja extra/svt-av1/svt-av1.toml B ninja extra/vulkan-headers/vulkan-headers.toml +B ninja extra/vulkan-icd-loader/vulkan-icd-loader.toml B ninja lib32/libcxx/libcxx.toml B ninja lib32/libunwind/libunwind.toml B nlohmann-json extra/cmake/cmake.toml @@ -139,6 +296,8 @@ B nlohmann-json extra/cppdap/cppdap.toml B npm extra/fmt/fmt.toml B openssl core/libgit2/libgit2.toml B openssl core/linux/linux.toml +B opus extra/libsamplerate/libsamplerate.toml +B pandoc extra/flac/flac.toml B parallel core/linux-firmware/linux-firmware.toml B patchelf core/curl/curl.toml B patchelf extra/python-orjson/python-orjson.toml @@ -148,6 +307,7 @@ B perl core/rust/rust.toml B perl extra/parallel/parallel.toml B perl-pod-pom-view-restructured extra/parallel/parallel.toml B perl-pod2pdf extra/parallel/parallel.toml +B perl-sgmls extra/fontconfig/fontconfig.toml B procps-ng extra/nodejs/nodejs.toml B python core/glibc/glibc.toml B python core/icu78/icu78.toml @@ -165,12 +325,21 @@ B python core/python-wheel/python-wheel.toml B python core/rust/rust.toml B python extra/brotli/brotli.toml B python extra/catch2/catch2.toml +B python extra/dbus/dbus.toml +B python extra/doxygen/doxygen.toml B python extra/git/git.toml +B python extra/glslang/glslang.toml B python extra/graphite/graphite.toml B python extra/gtest/gtest.toml +B python extra/harfbuzz/harfbuzz.toml B python extra/jq/jq.toml B python extra/jsoncpp/jsoncpp.toml +B python extra/libcap-ng/libcap-ng.toml +B python extra/libclc/libclc.toml +B python extra/libdisplay-info/libdisplay-info.toml B python extra/libevent/libevent.toml +B python extra/libglvnd/libglvnd.toml +B python extra/libsndfile/libsndfile.toml B python extra/libxcb/libxcb.toml B python extra/libxslt/libxslt.toml B python extra/nodejs/nodejs.toml @@ -223,11 +392,15 @@ B python-hatchling extra/python-pygments/python-pygments.toml B python-hatchling extra/python-pymdown-extensions/python-pymdown-extensions.toml B python-hatchling extra/python-sphinx-hawkmoth/python-sphinx-hawkmoth.toml B python-hatchling extra/python-urllib3/python-urllib3.toml +B python-lxml extra/vulkan-icd-loader/vulkan-icd-loader.toml +B python-mako extra/mesa/mesa.toml B python-myst-parser core/llvm/llvm.toml B python-packaging core/python-wheel/python-wheel.toml +B python-packaging extra/mesa/mesa.toml B python-pdm-backend extra/mkdocs-autorefs/mkdocs-autorefs.toml B python-pdm-backend extra/mkdocstrings/mkdocstrings.toml B python-pkgconfig extra/brotli/brotli.toml +B python-ply extra/mesa/mesa.toml B python-poetry-core extra/python-pkgconfig/python-pkgconfig.toml B python-psutil core/llvm/llvm.toml B python-pygments extra/python-lxml/python-lxml.toml @@ -237,6 +410,7 @@ B python-setuptools core/llvm/llvm.toml B python-setuptools core/meson/meson.toml B python-setuptools core/python-jinja/python-jinja.toml B python-setuptools core/python-markupsafe/python-markupsafe.toml +B python-setuptools extra/asciidoc/asciidoc.toml B python-setuptools extra/brotli/brotli.toml B python-setuptools extra/cython/cython.toml B python-setuptools extra/mallard-ducktype/mallard-ducktype.toml @@ -259,6 +433,7 @@ B python-setuptools extra/python-lxml/python-lxml.toml B python-setuptools extra/python-mako/python-mako.toml B python-setuptools extra/python-markdown/python-markdown.toml B python-setuptools extra/python-mergedeep/python-mergedeep.toml +B python-setuptools extra/python-parameterized/python-parameterized.toml B python-setuptools extra/python-pexpect/python-pexpect.toml B python-setuptools extra/python-pluggy/python-pluggy.toml B python-setuptools extra/python-ply/python-ply.toml @@ -286,8 +461,11 @@ B python-setuptools-scm extra/python-sphinx_rtd_theme/python-sphinx_rtd_theme.to B python-setuptools-scm extra/python-zipp/python-zipp.toml B python-sphinx core/llvm/llvm.toml B python-sphinx extra/fish/fish.toml +B python-sphinx extra/gobject-introspection/gobject-introspection.toml +B python-sphinx extra/mesa/mesa.toml B python-sphinx extra/python-lxml/python-lxml.toml B python-sphinx extra/python-pygments/python-pygments.toml +B python-sphinx-hawkmoth extra/mesa/mesa.toml B python-sphinx_rtd_theme extra/python-lxml/python-lxml.toml B python-wcag-contrast-ratio extra/python-pygments/python-pygments.toml B python-wheel core/llvm/llvm.toml @@ -295,6 +473,7 @@ B python-wheel core/meson/meson.toml B python-wheel core/python-jinja/python-jinja.toml B python-wheel core/python-markupsafe/python-markupsafe.toml B python-wheel core/python-setuptools/python-setuptools.toml +B python-wheel extra/asciidoc/asciidoc.toml B python-wheel extra/brotli/brotli.toml B python-wheel extra/cython/cython.toml B python-wheel extra/mallard-ducktype/mallard-ducktype.toml @@ -322,6 +501,7 @@ B python-wheel extra/python-markdown/python-markdown.toml B python-wheel extra/python-mdurl/python-mdurl.toml B python-wheel extra/python-mypy_extensions/python-mypy_extensions.toml B python-wheel extra/python-myst-parser/python-myst-parser.toml +B python-wheel extra/python-parameterized/python-parameterized.toml B python-wheel extra/python-pathspec/python-pathspec.toml B python-wheel extra/python-pexpect/python-pexpect.toml B python-wheel extra/python-pluggy/python-pluggy.toml @@ -345,6 +525,8 @@ B python-wheel extra/python-urllib3/python-urllib3.toml B python-wheel extra/python-watchdog/python-watchdog.toml B python-wheel extra/python-yaml/python-yaml.toml B python-wheel extra/python-zipp/python-zipp.toml +B python-yaml extra/mesa/mesa.toml +B ragel extra/harfbuzz/harfbuzz.toml B rdfind core/linux-firmware/linux-firmware.toml B rust core/ca-certs/ca-certs.toml B rust core/depot/depot.toml @@ -357,14 +539,33 @@ B rust extra/fish/fish.toml B rust extra/python-orjson/python-orjson.toml B rust extra/rust-bindgen/rust-bindgen.toml B rust-bindgen core/linux/linux.toml +B rust-bindgen extra/mesa/mesa.toml B sed core/tcl/tcl.toml +B spirv-headers extra/glslang/glslang.toml B spirv-headers extra/spirv-llvm-translator/spirv-llvm-translator.toml B spirv-headers extra/spirv-tools/spirv-tools.toml +B spirv-llvm-translator extra/libclc/libclc.toml +B spirv-llvm-translator extra/mesa/mesa.toml +B spirv-tools extra/mesa/mesa.toml +B sqlite core/elfutils/elfutils.toml B sqlite core/python/python.toml B sqlite extra/fastfetch/fastfetch.toml +B sqlite extra/libsndfile/libsndfile.toml +B swig extra/libcap-ng/libcap-ng.toml B tar core/linux/linux.toml B tcl core/sqlite/sqlite.toml B texinfo extra/mtools/mtools.toml +B unzip extra/waf/waf.toml +B valgrind extra/cairo/cairo.toml +B vulkan-headers extra/vulkan-icd-loader/vulkan-icd-loader.toml +B vulkan-icd-loader extra/mesa/mesa.toml +B wayland extra/mesa/mesa.toml +B wayland extra/vulkan-icd-loader/vulkan-icd-loader.toml +B wayland extra/wayland-protocols/wayland-protocols.toml +B wayland-protocols extra/mesa/mesa.toml +B xcb-util-keysyms extra/mesa/mesa.toml +B xmlto extra/dbus/dbus.toml +B xmlto extra/shared-mime-info/shared-mime-info.toml B xmlto extra/wayland/wayland.toml B xmlto extra/yasm/yasm.toml B xorg-util-macros extra/libpciaccess/libpciaccess.toml @@ -373,26 +574,60 @@ B xorg-util-macros extra/libxcb/libxcb.toml B xorg-util-macros extra/libxdmcp/libxdmcp.toml B xorg-util-macros extra/libxext/libxext.toml B xorg-util-macros extra/libxfixes/libxfixes.toml +B xorg-util-macros extra/libxi/libxi.toml B xorg-util-macros extra/libxrandr/libxrandr.toml +B xorg-util-macros extra/libxshmfence/libxshmfence.toml +B xorg-util-macros extra/xcb-util-keysyms/xcb-util-keysyms.toml B xorg-util-macros extra/xorgproto/xorgproto.toml +B xorgproto extra/libglvnd/libglvnd.toml B xorgproto extra/libxcb/libxcb.toml B xorgproto extra/libxrandr/libxrandr.toml +B xorgproto extra/libxshmfence/libxshmfence.toml +B xorgproto extra/mesa/mesa.toml +B xorgproto extra/xcb-util-keysyms/xcb-util-keysyms.toml B xtrans extra/libx11/libx11.toml +B xxhash extra/dav1d/dav1d.toml +B xz core/elfutils/elfutils.toml B xz core/linux/linux.toml +B yasm extra/aom/aom.toml +B yelp-tools extra/dbus/dbus.toml +B yelp-tools extra/gtk-doc/gtk-doc.toml +B zlib-ng core/elfutils/elfutils.toml B zlib-ng extra/fastfetch/fastfetch.toml +B zlib-ng extra/mesa/mesa.toml +B zstd core/elfutils/elfutils.toml B zstd core/linux/linux.toml B zstd core/llvm/llvm.toml +B zstd extra/mesa/mesa.toml C catch2-v2 extra/catch2/catch2.toml +C libva-mesa-driver extra/mesa/mesa.toml C linux-firmware-bnx2x core/linux-firmware/linux-firmware.toml +C mesa-libgl extra/mesa/mesa.toml +C mesa-vdpau extra/mesa/mesa.toml +C opencl-clover-mesa extra/mesa/mesa.toml +C opencl-rusticl-mesa extra/mesa/mesa.toml C pandoc-cli extra/pandoc-bin/pandoc-bin.toml +C vulkan-mesa extra/mesa/mesa.toml +C vulkan-mesa-layer extra/mesa/mesa.toml +O alsa-lib extra/libsndfile/libsndfile.toml O automake extra/autoconf-archive/autoconf-archive.toml O cairo extra/libdrm/libdrm.toml +O dblatex extra/asciidoc/asciidoc.toml +O fop extra/asciidoc/asciidoc.toml +O freeglut extra/libtiff/libtiff.toml +O graphviz extra/asciidoc/asciidoc.toml O groff extra/fish/fish.toml O groff extra/pandoc-bin/pandoc-bin.toml O hwdata extra/fastfetch/fastfetch.toml +O imagemagick extra/asciidoc/asciidoc.toml +O intel-media-driver extra/libva/libva.toml O less extra/git/git.toml +O lib32-glibc extra/valgrind/valgrind.toml O libelf extra/fastfetch/fastfetch.toml O libsecret extra/git/git.toml +O libva-intel-driver extra/libva/libva.toml +O libva-mesa-driver extra/libva/libva.toml +O lilypond extra/asciidoc/asciidoc.toml O linux-firmware core/linux/linux.toml O linux-firmware-liquidio core/linux-firmware/linux-firmware.toml O linux-firmware-marvell core/linux-firmware/linux-firmware.toml @@ -401,8 +636,11 @@ O linux-firmware-nfp core/linux-firmware/linux-firmware.toml O linux-firmware-qcom core/linux-firmware/linux-firmware.toml O linux-firmware-qlogic core/linux-firmware/linux-firmware.toml O linux-headers core/linux/linux.toml +O lynx extra/asciidoc/asciidoc.toml O man-db extra/git/git.toml O mandoc extra/fish/fish.toml +O opencl-headers extra/mesa/mesa.toml +O opengl-man-pages extra/mesa/mesa.toml O openssh extra/git/git.toml O org.freedesktop.secrets extra/git/git.toml O pandoc-crossref extra/pandoc-bin/pandoc-bin.toml @@ -418,7 +656,9 @@ O python extra/fastfetch/fastfetch.toml O python extra/fish/fish.toml O python extra/git/git.toml O python extra/gtest/gtest.toml +O python extra/libcap-ng/libcap-ng.toml O python extra/libxslt/libxslt.toml +O python extra/valgrind/valgrind.toml O python extra/vulkan-headers/vulkan-headers.toml O python-atomicwrites extra/python-lark-parser/python-lark-parser.toml O python-babel extra/python-mako/python-mako.toml @@ -470,18 +710,27 @@ O python-yaml extra/python-markdown/python-markdown.toml O python-yaml extra/python-watchdog/python-watchdog.toml O python-zopfli extra/python-fonttools/python-fonttools.toml O sh core/pcre2/pcre2.toml +O source-highlight extra/asciidoc/asciidoc.toml O sqlite extra/fastfetch/fastfetch.toml O subversion extra/git/git.toml O texlive-context extra/pandoc-bin/pandoc-bin.toml O tk extra/git/git.toml O tpm2-tss extra/gnutls/gnutls.toml O typst extra/pandoc-bin/pandoc-bin.toml +O vulkan-driver extra/vulkan-icd-loader/vulkan-icd-loader.toml +O vulkan-mesa-layers extra/mesa/mesa.toml +O w3m extra/asciidoc/asciidoc.toml O wl-clipboard extra/fish/fish.toml O xclip extra/fish/fish.toml O xsel extra/fish/fish.toml O zlib-ng extra/fastfetch/fastfetch.toml P abseil-cpp extra/abseil-cpp/abseil-cpp.toml P acl core/acl/acl.toml +P alsa-lib extra/alsa-lib/alsa-lib.toml +P alsa-topology-conf extra/alsa-topology-conf/alsa-topology-conf.toml +P alsa-ucm-conf extra/alsa-ucm-conf/alsa-ucm-conf.toml +P aom extra/aom/aom.toml +P asciidoc extra/asciidoc/asciidoc.toml P attr core/attr/attr.toml P autoconf core/autoconf/autoconf.toml P autoconf-archive extra/autoconf-archive/autoconf-archive.toml @@ -491,10 +740,14 @@ P bc core/bc/bc.toml P benchmark extra/benchmark/benchmark.toml P bison core/bison/bison.toml P brotli extra/brotli/brotli.toml +P bubblewrap extra/bubblewrap/bubblewrap.toml P bzip2 core/bzip2/bzip2.toml P c-ares extra/c-ares/c-ares.toml P ca-certs core/ca-certs/ca-certs.toml +P cairo extra/cairo/cairo.toml +P cargo-c extra/cargo-c/cargo-c.toml P catch2 extra/catch2/catch2.toml +P cbindgen extra/cbindgen/cbindgen.toml P cli_doc extra/cli_doc/cli_doc.toml P cmake extra/cmake/cmake.toml P cmocka extra/cmocka/cmocka.toml @@ -503,16 +756,23 @@ P cppdap extra/cppdap/cppdap.toml P curl core/curl/curl.toml P cython extra/cython/cython.toml P dash core/dash/dash.toml +P dav1d extra/dav1d/dav1d.toml +P db5.3 extra/db5.3/db5.3.toml +P dbus extra/dbus/dbus.toml P default-cursors extra/default-cursors/default-cursors.toml P dejagnu core/dejagnu/dejagnu.toml P depot core/depot/depot.toml P development-base core/development-base/development-base.toml P diffutils core/diffutils/diffutils.toml +P directx-headers extra/directx-headers/directx-headers.toml +P docbook-sgml extra/docbook-sgml/docbook-sgml.toml P docbook-xml extra/docbook-xml/docbook-xml.toml P docbook-xsl extra/docbook-xsl/docbook-xsl.toml P double-conversion extra/double-conversion/double-conversion.toml +P doxygen extra/doxygen/doxygen.toml P e2fsprogs core/e2fsprogs/e2fsprogs.toml P efivar extra/efivar/efivar.toml +P elfutils core/elfutils/elfutils.toml P expat core/expat/expat.toml P expect core/expect/expect.toml P fakeroot core/fakeroot/fakeroot.toml @@ -522,28 +782,43 @@ P file core/file/file.toml P filesystem core/filesystem/filesystem.toml P findutils core/findutils/findutils.toml P fish extra/fish/fish.toml +P flac extra/flac/flac.toml P flex core/flex/flex.toml P fmt extra/fmt/fmt.toml +P fontconfig extra/fontconfig/fontconfig.toml +P freeglut extra/freeglut/freeglut.toml +P freetype2 extra/freetype2/freetype2.toml P gawk core/gawk/gawk.toml P gdbm core/gdbm/gdbm.toml P gettext core/gettext/gettext.toml P git extra/git/git.toml P glibc core/glibc/glibc.toml +P glslang extra/glslang/glslang.toml +P glu extra/glu/glu.toml P gmp core/gmp/gmp.toml P gnu-free-fonts extra/gnu-free-fonts/gnu-free-fonts.toml P gnutls extra/gnutls/gnutls.toml +P gobject-introspection extra/gobject-introspection/gobject-introspection.toml P gperf core/gperf/gperf.toml P graphite extra/graphite/graphite.toml P grep core/grep/grep.toml P groff core/groff/groff.toml +P gsfonts extra/gsfonts/gsfonts.toml P gtest extra/gtest/gtest.toml +P gtk-doc extra/gtk-doc/gtk-doc.toml P gzip core/gzip/gzip.toml +P harfbuzz extra/harfbuzz/harfbuzz.toml P help2man extra/help2man/help2man.toml +P hidapi extra/hidapi/hidapi.toml +P hwdata extra/hwdata/hwdata.toml P iana-etc core/iana-etc/iana-etc.toml P icu78 core/icu78/icu78.toml P inetutils core/inetutils/inetutils.toml +P intel-gmmlib extra/intel-gmmlib/intel-gmmlib.toml +P intel-media-driver extra/intel-media-driver/intel-media-driver.toml P intltool core/intltool/intltool.toml P iproute2 core/iproute2/iproute2.toml +P itstool extra/itstool/itstool.toml P jbigkit extra/jbigkit/jbigkit.toml P jemalloc extra/jemalloc/jemalloc.toml P jq extra/jq/jq.toml @@ -551,39 +826,54 @@ P json-c extra/json-c/json-c.toml P jsoncpp extra/jsoncpp/jsoncpp.toml P kbd core/kbd/kbd.toml P kmod core/kmod/kmod.toml +P lame extra/lame/lame.toml P leancrypto extra/leancrypto/leancrypto.toml P less core/less/less.toml P libarchive core/libarchive/libarchive.toml P libatomic-chimera core/libatomic-chimera/libatomic-chimera.toml P libb2 extra/libb2/libb2.toml P libcap core/libcap/libcap.toml +P libcap-ng extra/libcap-ng/libcap-ng.toml +P libclc extra/libclc/libclc.toml P libcxx lib32/libcxx/libcxx.toml P libdeflate extra/libdeflate/libdeflate.toml +P libdisplay-info extra/libdisplay-info/libdisplay-info.toml P libdrm extra/libdrm/libdrm.toml P libedit core/libedit/libedit.toml -P libelf core/libelf/libelf.toml P libevent extra/libevent/libevent.toml P libfabric extra/libfabric/libfabric.toml P libffi core/libffi/libffi.toml P libgcrypt extra/libgcrypt/libgcrypt.toml P libgit2 core/libgit2/libgit2.toml +P libglvnd extra/libglvnd/libglvnd.toml P libgpg-error extra/libgpg-error/libgpg-error.toml P libidn2 core/libidn2/libidn2.toml +P libjpeg-turbo extra/libjpeg-turbo/libjpeg-turbo.toml +P libmicrohttpd extra/libmicrohttpd/libmicrohttpd.toml P libnghttp2 core/libnghttp2/libnghttp2.toml P libnghttp3 core/libnghttp3/libnghttp3.toml P libngtcp2 extra/libngtcp2/libngtcp2.toml +P libogg extra/libogg/libogg.toml P libpciaccess extra/libpciaccess/libpciaccess.toml P libpipeline core/libpipeline/libpipeline.toml P libpng extra/libpng/libpng.toml P libpsl core/libpsl/libpsl.toml +P libsamplerate extra/libsamplerate/libsamplerate.toml +P libsndfile extra/libsndfile/libsndfile.toml P libsodium core/libsodium/libsodium.toml P libssh2 core/libssh2/libssh2.toml P libtasn1 core/libtasn1/libtasn1.toml +P libtiff extra/libtiff/libtiff.toml P libtool core/libtool/libtool.toml P libtpms extra/libtpms/libtpms.toml P libunistring core/libunistring/libunistring.toml P libunwind lib32/libunwind/libunwind.toml +P libusb extra/libusb/libusb.toml P libuv extra/libuv/libuv.toml +P libva extra/libva/libva.toml +P libva-intel-driver extra/libva-intel-driver/libva-intel-driver.toml +P libvorbis extra/libvorbis/libvorbis.toml +P libwebp extra/libwebp/libwebp.toml P libx11 extra/libx11/libx11.toml P libxau extra/libxau/libxau.toml P libxcb extra/libxcb/libxcb.toml @@ -591,11 +881,15 @@ P libxcrypt core/libxcrypt/libxcrypt.toml P libxdmcp extra/libxdmcp/libxdmcp.toml P libxext extra/libxext/libxext.toml P libxfixes extra/libxfixes/libxfixes.toml +P libxi extra/libxi/libxi.toml P libxml215 core/libxml215/libxml215.toml P libxrandr extra/libxrandr/libxrandr.toml P libxrender extra/libxrender/libxrender.toml +P libxshmfence extra/libxshmfence/libxshmfence.toml P libxslt extra/libxslt/libxslt.toml +P libxxf86vm extra/libxxf86vm/libxxf86vm.toml P libyaml extra/libyaml/libyaml.toml +P libyuv extra/libyuv/libyuv.toml P limine core/limine/limine.toml P linux core/linux/linux.toml P linux-firmware core/linux-firmware/linux-firmware.toml @@ -603,12 +897,14 @@ P linux-headers core/linux-headers/linux-headers.toml P llvm core/llvm-bootstrap/llvm.toml P llvm core/llvm/llvm.toml P lz4 core/lz4/lz4.toml +P lzo extra/lzo/lzo.toml P m4 core/m4/m4.toml P make core/make/make.toml P mallard-ducktype extra/mallard-ducktype/mallard-ducktype.toml P man-db core/man-db/man-db.toml P man-pages core/man-pages/man-pages.toml P maturin extra/maturin/maturin.toml +P mesa extra/mesa/mesa.toml P meson core/meson/meson.toml P minisign core/minisign/minisign.toml P mkdocs extra/mkdocs/mkdocs.toml @@ -634,6 +930,7 @@ P numactl extra/numactl/numactl.toml P oniguruma core/oniguruma/oniguruma.toml P openrc core/openrc/openrc.toml P openssl core/openssl/openssl.toml +P opus extra/opus/opus.toml P p11-kit core/p11-kit/p11-kit.toml P pam core/pam/pam.toml P pandoc-bin extra/pandoc-bin/pandoc-bin.toml @@ -661,6 +958,7 @@ P perl-test-warnings extra/perl-test-warnings/perl-test-warnings.toml P perl-text-tabs-wrap extra/perl-text-tabs-wrap/perl-text-tabs-wrap.toml P perl-timedate extra/perl-timedate/perl-timedate.toml P perl-xml-parser core/perl-xml-parser/perl-xml-parser.toml +P pixman extra/pixman/pixman.toml P pkgconf core/pkgconf/pkgconf.toml P popt extra/popt/popt.toml P procps-ng core/procps-ng/procps-ng.toml @@ -701,6 +999,7 @@ P python-mypy_extensions extra/python-mypy_extensions/python-mypy_extensions.tom P python-myst-parser extra/python-myst-parser/python-myst-parser.toml P python-orjson extra/python-orjson/python-orjson.toml P python-packaging core/python-packaging/python-packaging.toml +P python-parameterized extra/python-parameterized/python-parameterized.toml P python-pathspec extra/python-pathspec/python-pathspec.toml P python-pdm-backend extra/python-pdm-backend/python-pdm-backend.toml P python-pexpect extra/python-pexpect/python-pexpect.toml @@ -746,6 +1045,8 @@ P python-wcag-contrast-ratio extra/python-wcag-contrast-ratio/python-wcag-contra P python-wheel core/python-wheel/python-wheel.toml P python-yaml extra/python-yaml/python-yaml.toml P python-zipp extra/python-zipp/python-zipp.toml +P ragel extra/ragel/ragel.toml +P rav1e extra/rav1e/rav1e.toml P rdfind extra/rdfind/rdfind.toml P re2 extra/re2/re2.toml P readline core/readline/readline.toml @@ -753,7 +1054,9 @@ P rhash extra/rhash/rhash.toml P rust core/rust/rust.toml P rust-bindgen extra/rust-bindgen/rust-bindgen.toml P sed core/sed/sed.toml +P sgml-common extra/sgml-common/sgml-common.toml P shadow core/shadow/shadow.toml +P shared-mime-info extra/shared-mime-info/shared-mime-info.toml P simdjson extra/simdjson/simdjson.toml P spdlog extra/spdlog/spdlog.toml P spirv-headers extra/spirv-headers/spirv-headers.toml @@ -761,19 +1064,27 @@ P spirv-llvm-translator extra/spirv-llvm-translator/spirv-llvm-translator.toml P spirv-tools extra/spirv-tools/spirv-tools.toml P sqlite core/sqlite/sqlite.toml P sudo core/sudo/sudo.toml +P svt-av1 extra/svt-av1/svt-av1.toml +P swig extra/swig/swig.toml P tar core/tar/tar.toml P tcl core/tcl/tcl.toml P texinfo core/texinfo/texinfo.toml P tzdata core/tzdata/tzdata.toml P util-linux core/util-linux/util-linux.toml P uutils-coreutils core/uutils-coreutils/uutils-coreutils.toml +P vala extra/vala/vala.toml +P valgrind extra/valgrind/valgrind.toml P vertex-keyring core/vertex-keyring/vertex-keyring.toml P vexlum core/vexlum/vexlum.toml P vulkan-headers extra/vulkan-headers/vulkan-headers.toml +P vulkan-icd-loader extra/vulkan-icd-loader/vulkan-icd-loader.toml P vx core/vx/vx.toml +P waf extra/waf/waf.toml P wayland extra/wayland/wayland.toml +P wayland-protocols extra/wayland-protocols/wayland-protocols.toml P which core/which/which.toml P xcb-proto extra/xcb-proto/xcb-proto.toml +P xcb-util-keysyms extra/xcb-util-keysyms/xcb-util-keysyms.toml P xmlto extra/xmlto/xmlto.toml P xorg-util-macros extra/xorg-util-macros/xorg-util-macros.toml P xorgproto extra/xorgproto/xorgproto.toml @@ -781,6 +1092,8 @@ P xtrans extra/xtrans/xtrans.toml P xxhash extra/xxhash/xxhash.toml P xz core/xz/xz.toml P yasm extra/yasm/yasm.toml +P yelp-tools extra/yelp-tools/yelp-tools.toml +P yelp-xsl extra/yelp-xsl/yelp-xsl.toml P yyjson extra/yyjson/yyjson.toml P zlib-ng core/zlib-ng/zlib-ng.toml P zsh core/zsh/zsh.toml @@ -790,6 +1103,8 @@ R abseil-cpp extra/re2/re2.toml R acl core/gettext/gettext.toml R acl core/libarchive/libarchive.toml R acl core/vx/vx.toml +R alsa-topology-conf extra/alsa-lib/alsa-lib.toml +R alsa-ucm-conf extra/alsa-lib/alsa-lib.toml R attr core/acl/acl.toml R attr core/patch/patch.toml R autoconf core/development-base/development-base.toml @@ -798,24 +1113,30 @@ R automake core/development-base/development-base.toml R base core/development-base/development-base.toml R bison core/development-base/development-base.toml R brotli core/curl/curl.toml +R brotli extra/freetype2/freetype2.toml R brotli extra/gnutls/gnutls.toml R brotli extra/nodejs/nodejs.toml R bzip2 core/base/base.toml +R bzip2 core/elfutils/elfutils.toml R bzip2 core/libarchive/libarchive.toml -R bzip2 core/libelf/libelf.toml R bzip2 core/nano/nano.toml R bzip2 core/pcre2/pcre2.toml R bzip2 core/python/python.toml +R bzip2 extra/freetype2/freetype2.toml R bzip2 extra/maturin/maturin.toml R c-ares extra/nodejs/nodejs.toml R ca-certs core/curl/curl.toml R ca-certs core/depot/depot.toml R ca-certs extra/python-certifi/python-certifi.toml R ca-certs extra/python-requests/python-requests.toml +R cargo extra/cargo-c/cargo-c.toml R clang core/development-base/development-base.toml R clang core/rust/rust.toml +R clang extra/doxygen/doxygen.toml +R clang extra/mesa/mesa.toml R clang extra/python-sphinx-hawkmoth/python-sphinx-hawkmoth.toml R clang extra/rust-bindgen/rust-bindgen.toml +R clang extra/vala/vala.toml R compiler-rt core/llvm/llvm.toml R coreutils core/base/base.toml R coreutils core/iproute2/iproute2.toml @@ -824,7 +1145,9 @@ R coreutils core/libtool/libtool.toml R coreutils core/linux/linux.toml R coreutils core/p11-kit/p11-kit.toml R cppdap extra/cmake/cmake.toml +R curl core/elfutils/elfutils.toml R curl core/rust/rust.toml +R curl extra/cargo-c/cargo-c.toml R curl extra/cmake/cmake.toml R curl extra/git/git.toml R dash core/base/base.toml @@ -833,10 +1156,18 @@ R depot core/base/base.toml R depot core/development-base/development-base.toml R diffutils core/autoconf/autoconf.toml R docbook-xml extra/docbook-xsl/docbook-xsl.toml +R docbook-xml extra/gtk-doc/gtk-doc.toml +R docbook-xml extra/itstool/itstool.toml +R docbook-xsl extra/asciidoc/asciidoc.toml +R docbook-xsl extra/gtk-doc/gtk-doc.toml +R docbook-xsl extra/yelp-tools/yelp-tools.toml R expat core/perl-xml-parser/perl-xml-parser.toml R expat core/python/python.toml R expat extra/cmake/cmake.toml +R expat extra/dbus/dbus.toml +R expat extra/fontconfig/fontconfig.toml R expat extra/git/git.toml +R expat extra/mesa/mesa.toml R expat extra/wayland/wayland.toml R expect core/dejagnu/dejagnu.toml R fakeroot core/development-base/development-base.toml @@ -851,8 +1182,14 @@ R filesystem core/linux-headers/linux-headers.toml R filesystem core/tzdata/tzdata.toml R findutils core/base/base.toml R findutils core/development-base/development-base.toml +R flac extra/libsndfile/libsndfile.toml R flex core/development-base/development-base.toml +R fmt extra/doxygen/doxygen.toml R fmt extra/spdlog/spdlog.toml +R fontconfig extra/cairo/cairo.toml +R freetype2 extra/cairo/cairo.toml +R freetype2 extra/fontconfig/fontconfig.toml +R freetype2 extra/harfbuzz/harfbuzz.toml R gawk core/autoconf/autoconf.toml R gawk core/base/base.toml R gawk core/development-base/development-base.toml @@ -863,6 +1200,12 @@ R gdbm core/zsh/zsh.toml R gettext core/base/base.toml R gettext core/development-base/development-base.toml R gettext extra/perl-locale-gettext/perl-locale-gettext.toml +R glib2 extra/cairo/cairo.toml +R glib2 extra/gobject-introspection/gobject-introspection.toml +R glib2 extra/gtk-doc/gtk-doc.toml +R glib2 extra/harfbuzz/harfbuzz.toml +R glib2 extra/shared-mime-info/shared-mime-info.toml +R glib2 extra/vala/vala.toml R glibc core/acl/acl.toml R glibc core/attr/attr.toml R glibc core/autoconf/autoconf.toml @@ -878,6 +1221,7 @@ R glibc core/dejagnu/dejagnu.toml R glibc core/depot/depot.toml R glibc core/diffutils/diffutils.toml R glibc core/e2fsprogs/e2fsprogs.toml +R glibc core/elfutils/elfutils.toml R glibc core/expat/expat.toml R glibc core/fakeroot/fakeroot.toml R glibc core/file/file.toml @@ -901,7 +1245,6 @@ R glibc core/libarchive/libarchive.toml R glibc core/libatomic-chimera/libatomic-chimera.toml R glibc core/libcap/libcap.toml R glibc core/libedit/libedit.toml -R glibc core/libelf/libelf.toml R glibc core/libffi/libffi.toml R glibc core/libgit2/libgit2.toml R glibc core/libidn2/libidn2.toml @@ -963,108 +1306,170 @@ R glibc core/zlib-ng/zlib-ng.toml R glibc core/zsh/zsh.toml R glibc core/zstd/zstd.toml R glibc extra/abseil-cpp/abseil-cpp.toml +R glibc extra/alsa-lib/alsa-lib.toml +R glibc extra/aom/aom.toml R glibc extra/brotli/brotli.toml +R glibc extra/bubblewrap/bubblewrap.toml R glibc extra/c-ares/c-ares.toml +R glibc extra/cairo/cairo.toml +R glibc extra/cargo-c/cargo-c.toml R glibc extra/cli_doc/cli_doc.toml R glibc extra/cmake/cmake.toml R glibc extra/cmocka/cmocka.toml R glibc extra/cpio/cpio.toml R glibc extra/cppdap/cppdap.toml R glibc extra/cython/cython.toml +R glibc extra/dav1d/dav1d.toml +R glibc extra/db5.3/db5.3.toml +R glibc extra/dbus/dbus.toml R glibc extra/double-conversion/double-conversion.toml +R glibc extra/doxygen/doxygen.toml R glibc extra/efivar/efivar.toml R glibc extra/fastfetch/fastfetch.toml R glibc extra/ffcall/ffcall.toml R glibc extra/fish/fish.toml +R glibc extra/flac/flac.toml R glibc extra/fmt/fmt.toml +R glibc extra/fontconfig/fontconfig.toml +R glibc extra/freeglut/freeglut.toml +R glibc extra/freetype2/freetype2.toml +R glibc extra/glslang/glslang.toml +R glibc extra/glu/glu.toml R glibc extra/gnutls/gnutls.toml +R glibc extra/gobject-introspection/gobject-introspection.toml R glibc extra/graphite/graphite.toml R glibc extra/gtest/gtest.toml +R glibc extra/harfbuzz/harfbuzz.toml +R glibc extra/hidapi/hidapi.toml +R glibc extra/intel-gmmlib/intel-gmmlib.toml +R glibc extra/intel-media-driver/intel-media-driver.toml R glibc extra/jbigkit/jbigkit.toml R glibc extra/jemalloc/jemalloc.toml R glibc extra/jq/jq.toml R glibc extra/json-c/json-c.toml R glibc extra/jsoncpp/jsoncpp.toml +R glibc extra/lame/lame.toml R glibc extra/leancrypto/leancrypto.toml R glibc extra/libb2/libb2.toml +R glibc extra/libcap-ng/libcap-ng.toml R glibc extra/libdeflate/libdeflate.toml +R glibc extra/libdisplay-info/libdisplay-info.toml R glibc extra/libdrm/libdrm.toml R glibc extra/libevent/libevent.toml R glibc extra/libfabric/libfabric.toml R glibc extra/libgcrypt/libgcrypt.toml R glibc extra/libgpg-error/libgpg-error.toml +R glibc extra/libjpeg-turbo/libjpeg-turbo.toml R glibc extra/libngtcp2/libngtcp2.toml +R glibc extra/libogg/libogg.toml R glibc extra/libpciaccess/libpciaccess.toml +R glibc extra/libsamplerate/libsamplerate.toml +R glibc extra/libsndfile/libsndfile.toml +R glibc extra/libtiff/libtiff.toml R glibc extra/libtpms/libtpms.toml +R glibc extra/libusb/libusb.toml R glibc extra/libuv/libuv.toml +R glibc extra/libvorbis/libvorbis.toml +R glibc extra/libwebp/libwebp.toml R glibc extra/libx11/libx11.toml R glibc extra/libxau/libxau.toml R glibc extra/libxcb/libxcb.toml R glibc extra/libxdmcp/libxdmcp.toml R glibc extra/libxext/libxext.toml R glibc extra/libxfixes/libxfixes.toml +R glibc extra/libxi/libxi.toml R glibc extra/libxrandr/libxrandr.toml R glibc extra/libxrender/libxrender.toml +R glibc extra/libxshmfence/libxshmfence.toml R glibc extra/libxslt/libxslt.toml +R glibc extra/libxxf86vm/libxxf86vm.toml R glibc extra/libyaml/libyaml.toml +R glibc extra/libyuv/libyuv.toml +R glibc extra/lzo/lzo.toml R glibc extra/maturin/maturin.toml +R glibc extra/mesa/mesa.toml R glibc extra/mtools/mtools.toml R glibc extra/nasm/nasm.toml R glibc extra/nettle/nettle.toml R glibc extra/numactl/numactl.toml +R glibc extra/opus/opus.toml R glibc extra/patchelf/patchelf.toml R glibc extra/perl-error/perl-error.toml +R glibc extra/pixman/pixman.toml R glibc extra/popt/popt.toml R glibc extra/python-librt/python-librt.toml R glibc extra/python-lxml/python-lxml.toml R glibc extra/python-orjson/python-orjson.toml R glibc extra/python-psutil/python-psutil.toml R glibc extra/python-yaml/python-yaml.toml +R glibc extra/rav1e/rav1e.toml R glibc extra/rdfind/rdfind.toml R glibc extra/re2/re2.toml R glibc extra/rhash/rhash.toml R glibc extra/rust-bindgen/rust-bindgen.toml +R glibc extra/shared-mime-info/shared-mime-info.toml R glibc extra/spdlog/spdlog.toml R glibc extra/spirv-llvm-translator/spirv-llvm-translator.toml R glibc extra/spirv-tools/spirv-tools.toml +R glibc extra/svt-av1/svt-av1.toml +R glibc extra/swig/swig.toml +R glibc extra/vala/vala.toml +R glibc extra/valgrind/valgrind.toml +R glibc extra/vulkan-icd-loader/vulkan-icd-loader.toml R glibc extra/wayland/wayland.toml +R glibc extra/xcb-util-keysyms/xcb-util-keysyms.toml R glibc extra/xxhash/xxhash.toml R glibc extra/yasm/yasm.toml R glibc extra/yyjson/yyjson.toml +R glu extra/freeglut/freeglut.toml R gmp core/mpc/mpc.toml R gmp core/mpfr/mpfr.toml R gmp extra/gnutls/gnutls.toml R gmp extra/nettle/nettle.toml +R gnutls extra/libmicrohttpd/libmicrohttpd.toml R gnutls extra/libngtcp2/libngtcp2.toml +R graphite extra/harfbuzz/harfbuzz.toml R grep core/base/base.toml R grep core/development-base/development-base.toml R grep extra/git/git.toml R groff core/development-base/development-base.toml R groff core/man-db/man-db.toml R gtest extra/abseil-cpp/abseil-cpp.toml +R gtk-doc extra/vala/vala.toml R gzip core/base/base.toml R gzip core/development-base/development-base.toml R gzip core/man-db/man-db.toml +R harfbuzz extra/freetype2/freetype2.toml R icu78 core/libxml215/libxml215.toml R icu78 extra/nodejs/nodejs.toml R initramfs core/linux/linux.toml +R intel-gmmlib extra/intel-media-driver/intel-media-driver.toml R iproute2 core/base/base.toml +R itstool extra/yelp-tools/yelp-tools.toml +R jbigkit extra/libtiff/libtiff.toml +R json-c core/elfutils/elfutils.toml R jsoncpp extra/cmake/cmake.toml R kbd core/base/base.toml R kmod core/linux/linux.toml R kmod core/mkinitramfs/mkinitramfs.toml +R lame extra/libsndfile/libsndfile.toml R leancrypto extra/gnutls/gnutls.toml R less core/man-db/man-db.toml R lib32-glibc lib32/libcxx/libcxx.toml R lib32-glibc lib32/libunwind/libunwind.toml R lib32-libunwind lib32/libcxx/libcxx.toml +R libarchive core/elfutils/elfutils.toml R libarchive extra/cmake/cmake.toml R libatomic-chimera core/openssl/openssl.toml R libatomic-chimera extra/nodejs/nodejs.toml R libcap core/inetutils/inetutils.toml R libcap core/iproute2/iproute2.toml R libcap core/zsh/zsh.toml +R libcap extra/bubblewrap/bubblewrap.toml +R libcap-ng extra/dbus/dbus.toml +R libclc extra/mesa/mesa.toml R libcxx core/base/base.toml +R libcxx core/elfutils/elfutils.toml R libcxx core/gmp/gmp.toml R libcxx core/icu78/icu78.toml R libcxx core/llvm/llvm.toml @@ -1072,46 +1477,82 @@ R libcxx core/mpdecimal/mpdecimal.toml R libcxx core/ncurses/ncurses.toml R libcxx core/rust/rust.toml R libcxx extra/abseil-cpp/abseil-cpp.toml +R libcxx extra/aom/aom.toml R libcxx extra/benchmark/benchmark.toml +R libcxx extra/cbindgen/cbindgen.toml R libcxx extra/cmake/cmake.toml R libcxx extra/cppdap/cppdap.toml +R libcxx extra/db5.3/db5.3.toml R libcxx extra/double-conversion/double-conversion.toml +R libcxx extra/doxygen/doxygen.toml +R libcxx extra/flac/flac.toml R libcxx extra/fmt/fmt.toml +R libcxx extra/glslang/glslang.toml +R libcxx extra/glu/glu.toml R libcxx extra/gnutls/gnutls.toml R libcxx extra/graphite/graphite.toml R libcxx extra/gtest/gtest.toml +R libcxx extra/intel-gmmlib/intel-gmmlib.toml +R libcxx extra/intel-media-driver/intel-media-driver.toml R libcxx extra/jemalloc/jemalloc.toml R libcxx extra/jsoncpp/jsoncpp.toml +R libcxx extra/libtiff/libtiff.toml +R libcxx extra/libyuv/libyuv.toml R libcxx extra/maturin/maturin.toml +R libcxx extra/mesa/mesa.toml R libcxx extra/patchelf/patchelf.toml R libcxx extra/python-orjson/python-orjson.toml +R libcxx extra/ragel/ragel.toml +R libcxx extra/rav1e/rav1e.toml R libcxx extra/rdfind/rdfind.toml R libcxx extra/re2/re2.toml +R libcxx extra/shared-mime-info/shared-mime-info.toml R libcxx extra/simdjson/simdjson.toml R libcxx extra/spdlog/spdlog.toml R libcxx extra/spirv-llvm-translator/spirv-llvm-translator.toml R libcxx extra/spirv-tools/spirv-tools.toml +R libcxx extra/swig/swig.toml +R libdeflate extra/libtiff/libtiff.toml +R libdrm extra/libva-intel-driver/libva-intel-driver.toml +R libdrm extra/libva/libva.toml +R libdrm extra/mesa/mesa.toml R libedit core/dash/dash.toml R libedit core/llvm/llvm.toml +R libelf core/elfutils/elfutils.toml R libelf core/iproute2/iproute2.toml +R libelf extra/mesa/mesa.toml R libffi core/llvm/llvm.toml R libffi core/p11-kit/p11-kit.toml R libffi core/python/python.toml +R libffi extra/gobject-introspection/gobject-introspection.toml R libffi extra/wayland/wayland.toml R libgcrypt extra/libxslt/libxslt.toml R libgit2 core/depot/depot.toml +R libgl extra/freeglut/freeglut.toml +R libgl extra/glu/glu.toml +R libgl extra/libva/libva.toml +R libglvnd extra/mesa/mesa.toml R libgpg-error extra/libgcrypt/libgcrypt.toml R libidn2 core/curl/curl.toml R libidn2 core/libpsl/libpsl.toml R libidn2 extra/gnutls/gnutls.toml +R libjpeg-turbo extra/libtiff/libtiff.toml +R libjpeg-turbo extra/libyuv/libyuv.toml R libnghttp2 core/curl/curl.toml R libnghttp2 extra/nodejs/nodejs.toml R libnghttp3 core/curl/curl.toml R libnghttp3 extra/nodejs/nodejs.toml R libngtcp2 core/curl/curl.toml R libngtcp2 extra/nodejs/nodejs.toml +R libogg extra/flac/flac.toml +R libogg extra/libsndfile/libsndfile.toml +R libogg extra/libvorbis/libvorbis.toml R libpciaccess extra/libdrm/libdrm.toml R libpipeline core/man-db/man-db.toml +R libpng extra/cairo/cairo.toml +R libpng extra/freetype2/freetype2.toml +R libpng extra/harfbuzz/harfbuzz.toml +R libpng extra/mesa/mesa.toml R libpsl core/curl/curl.toml R libsodium core/minisign/minisign.toml R libssh2 core/curl/curl.toml @@ -1125,6 +1566,7 @@ R libunistring core/libpsl/libpsl.toml R libunistring extra/gnutls/gnutls.toml R libunwind core/ca-certs/ca-certs.toml R libunwind core/depot/depot.toml +R libunwind core/elfutils/elfutils.toml R libunwind core/gmp/gmp.toml R libunwind core/gperf/gperf.toml R libunwind core/groff/groff.toml @@ -1141,53 +1583,101 @@ R libunwind core/rust/rust.toml R libunwind core/uutils-coreutils/uutils-coreutils.toml R libunwind core/vexlum/vexlum.toml R libunwind extra/abseil-cpp/abseil-cpp.toml +R libunwind extra/aom/aom.toml R libunwind extra/benchmark/benchmark.toml +R libunwind extra/bubblewrap/bubblewrap.toml +R libunwind extra/cargo-c/cargo-c.toml +R libunwind extra/cbindgen/cbindgen.toml R libunwind extra/cli_doc/cli_doc.toml R libunwind extra/cmake/cmake.toml R libunwind extra/cppdap/cppdap.toml +R libunwind extra/db5.3/db5.3.toml R libunwind extra/double-conversion/double-conversion.toml +R libunwind extra/doxygen/doxygen.toml R libunwind extra/fish/fish.toml +R libunwind extra/flac/flac.toml R libunwind extra/fmt/fmt.toml +R libunwind extra/glu/glu.toml R libunwind extra/gnutls/gnutls.toml R libunwind extra/graphite/graphite.toml R libunwind extra/gtest/gtest.toml +R libunwind extra/intel-gmmlib/intel-gmmlib.toml +R libunwind extra/intel-media-driver/intel-media-driver.toml R libunwind extra/jemalloc/jemalloc.toml R libunwind extra/jsoncpp/jsoncpp.toml R libunwind extra/libb2/libb2.toml +R libunwind extra/libtiff/libtiff.toml +R libunwind extra/libyuv/libyuv.toml R libunwind extra/maturin/maturin.toml +R libunwind extra/mesa/mesa.toml R libunwind extra/patchelf/patchelf.toml R libunwind extra/python-orjson/python-orjson.toml +R libunwind extra/ragel/ragel.toml +R libunwind extra/rav1e/rav1e.toml R libunwind extra/rdfind/rdfind.toml R libunwind extra/re2/re2.toml R libunwind extra/rust-bindgen/rust-bindgen.toml +R libunwind extra/shared-mime-info/shared-mime-info.toml R libunwind extra/simdjson/simdjson.toml R libunwind extra/spdlog/spdlog.toml +R libunwind extra/swig/swig.toml R libuv extra/cmake/cmake.toml R libuv extra/nodejs/nodejs.toml +R libva extra/intel-media-driver/intel-media-driver.toml +R libva extra/libva-intel-driver/libva-intel-driver.toml +R libvorbis extra/libsndfile/libsndfile.toml +R libwebp extra/libtiff/libtiff.toml +R libx11 extra/cairo/cairo.toml +R libx11 extra/freeglut/freeglut.toml +R libx11 extra/libva/libva.toml R libx11 extra/libxext/libxext.toml R libx11 extra/libxfixes/libxfixes.toml +R libx11 extra/libxi/libxi.toml R libx11 extra/libxrandr/libxrandr.toml R libx11 extra/libxrender/libxrender.toml +R libx11 extra/libxxf86vm/libxxf86vm.toml +R libx11 extra/mesa/mesa.toml R libxau extra/libxcb/libxcb.toml +R libxcb extra/cairo/cairo.toml R libxcb extra/libx11/libx11.toml +R libxcb extra/mesa/mesa.toml +R libxcb extra/xcb-util-keysyms/xcb-util-keysyms.toml R libxcrypt core/inetutils/inetutils.toml R libxcrypt core/pam/pam.toml R libxcrypt core/perl/perl.toml R libxcrypt core/python/python.toml R libxcrypt core/shadow/shadow.toml R libxdmcp extra/libxcb/libxcb.toml +R libxext extra/cairo/cairo.toml +R libxext extra/libglvnd/libglvnd.toml +R libxext extra/libva/libva.toml +R libxext extra/libxi/libxi.toml R libxext extra/libxrandr/libxrandr.toml +R libxext extra/libxxf86vm/libxxf86vm.toml +R libxext extra/mesa/mesa.toml +R libxfixes extra/libva/libva.toml +R libxfixes extra/libxi/libxi.toml +R libxi extra/freeglut/freeglut.toml R libxml215 core/libarchive/libarchive.toml R libxml215 core/llvm/llvm.toml R libxml215 extra/docbook-xml/docbook-xml.toml R libxml215 extra/docbook-xsl/docbook-xsl.toml +R libxml215 extra/itstool/itstool.toml R libxml215 extra/libxslt/libxslt.toml R libxml215 extra/python-lxml/python-lxml.toml +R libxml215 extra/shared-mime-info/shared-mime-info.toml R libxml215 extra/wayland/wayland.toml +R libxml215 extra/yelp-tools/yelp-tools.toml +R libxrandr extra/freeglut/freeglut.toml +R libxrender extra/cairo/cairo.toml R libxrender extra/libxrandr/libxrandr.toml +R libxshmfence extra/mesa/mesa.toml +R libxslt extra/asciidoc/asciidoc.toml R libxslt extra/docbook-xsl/docbook-xsl.toml R libxslt extra/python-lxml/python-lxml.toml R libxslt extra/xmlto/xmlto.toml +R libxxf86vm extra/freeglut/freeglut.toml +R libxxf86vm extra/mesa/mesa.toml R libyaml extra/python-yaml/python-yaml.toml R linux-firmware-amdgpu core/linux-firmware/linux-firmware.toml R linux-firmware-atheros core/linux-firmware/linux-firmware.toml @@ -1207,12 +1697,17 @@ R llvm-libgcc core/base/base.toml R llvm-libgcc core/llvm/llvm.toml R llvm-libs core/llvm/llvm.toml R llvm-libs core/rust/rust.toml +R llvm-libs extra/doxygen/doxygen.toml +R llvm-libs extra/mesa/mesa.toml R llvm-libs extra/spirv-llvm-translator/spirv-llvm-translator.toml R lz4 core/libarchive/libarchive.toml +R lzo extra/cairo/cairo.toml R m4 core/autoconf/autoconf.toml R m4 core/development-base/development-base.toml R m4 core/flex/flex.toml R make core/development-base/development-base.toml +R mallard-ducktype extra/yelp-tools/yelp-tools.toml +R mesa extra/libglvnd/libglvnd.toml R minisign core/depot/depot.toml R mkdocs extra/mkdocs-autorefs/mkdocs-autorefs.toml R mkdocs extra/mkdocs-material/mkdocs-material.toml @@ -1234,6 +1729,7 @@ R ncurses core/texinfo/texinfo.toml R ncurses core/util-linux/util-linux.toml R ncurses core/zsh/zsh.toml R ncurses extra/cmake/cmake.toml +R ncurses extra/lame/lame.toml R net-tools core/base/base.toml R nettle extra/gnutls/gnutls.toml R nettle extra/rdfind/rdfind.toml @@ -1241,6 +1737,7 @@ R ninja core/meson/meson.toml R numactl extra/libfabric/libfabric.toml R oniguruma core/uutils-coreutils/uutils-coreutils.toml R oniguruma extra/jq/jq.toml +R opengl-driver extra/libglvnd/libglvnd.toml R openrc core/base/base.toml R openssl core/curl/curl.toml R openssl core/depot/depot.toml @@ -1251,12 +1748,14 @@ R openssl core/libssh2/libssh2.toml R openssl core/python/python.toml R openssl core/rust/rust.toml R openssl core/sudo/sudo.toml +R openssl extra/cargo-c/cargo-c.toml R openssl extra/git/git.toml R openssl extra/libevent/libevent.toml R openssl extra/libngtcp2/libngtcp2.toml R openssl extra/libtpms/libtpms.toml R openssl extra/maturin/maturin.toml R openssl extra/nodejs/nodejs.toml +R opus extra/libsndfile/libsndfile.toml R p11-kit core/ca-certs/ca-certs.toml R p11-kit extra/gnutls/gnutls.toml R pam core/inetutils/inetutils.toml @@ -1272,6 +1771,7 @@ R pcre2 core/libgit2/libgit2.toml R pcre2 core/zsh/zsh.toml R pcre2 extra/fish/fish.toml R pcre2 extra/git/git.toml +R pcre2 extra/swig/swig.toml R perl core/autoconf/autoconf.toml R perl core/automake/automake.toml R perl core/groff/groff.toml @@ -1293,6 +1793,7 @@ R perl extra/perl-sub-uplevel/perl-sub-uplevel.toml R perl extra/perl-test-warnings/perl-test-warnings.toml R perl extra/perl-text-tabs-wrap/perl-text-tabs-wrap.toml R perl extra/perl-timedate/perl-timedate.toml +R perl extra/valgrind/valgrind.toml R perl-error extra/git/git.toml R perl-font-ttf extra/perl-pdf-api2/perl-pdf-api2.toml R perl-getopt-argvfile extra/perl-pod2pdf/perl-pod2pdf.toml @@ -1306,7 +1807,9 @@ R perl-sub-uplevel extra/perl-test-exception/perl-test-exception.toml R perl-text-wrap extra/perl-pod-pom/perl-pod-pom.toml R perl-timedate extra/perl-mailtools/perl-mailtools.toml R perl-xml-parser core/intltool/intltool.toml +R pixman extra/cairo/cairo.toml R pkgconf core/development-base/development-base.toml +R pkgconf extra/vala/vala.toml R procps-ng core/base/base.toml R procps-ng extra/parallel/parallel.toml R psmisc core/base/base.toml @@ -1317,10 +1820,15 @@ R python core/python-markupsafe/python-markupsafe.toml R python core/python-packaging/python-packaging.toml R python core/python-setuptools/python-setuptools.toml R python core/python-wheel/python-wheel.toml +R python extra/asciidoc/asciidoc.toml R python extra/benchmark/benchmark.toml R python extra/cython/cython.toml +R python extra/gobject-introspection/gobject-introspection.toml +R python extra/gtk-doc/gtk-doc.toml +R python extra/itstool/itstool.toml R python extra/mallard-ducktype/mallard-ducktype.toml R python extra/maturin/maturin.toml +R python extra/mesa/mesa.toml R python extra/mkdocs-autorefs/mkdocs-autorefs.toml R python extra/mkdocs-get-deps/mkdocs-get-deps.toml R python extra/mkdocs-material/mkdocs-material.toml @@ -1354,6 +1862,7 @@ R python extra/python-mergedeep/python-mergedeep.toml R python extra/python-mypy_extensions/python-mypy_extensions.toml R python extra/python-myst-parser/python-myst-parser.toml R python extra/python-orjson/python-orjson.toml +R python extra/python-parameterized/python-parameterized.toml R python extra/python-pathspec/python-pathspec.toml R python extra/python-pdm-backend/python-pdm-backend.toml R python extra/python-pexpect/python-pexpect.toml @@ -1395,6 +1904,7 @@ R python extra/python-watchdog/python-watchdog.toml R python extra/python-wcag-contrast-ratio/python-wcag-contrast-ratio.toml R python extra/python-yaml/python-yaml.toml R python extra/python-zipp/python-zipp.toml +R python extra/waf/waf.toml R python-babel extra/mkdocs-material/mkdocs-material.toml R python-babel extra/mkdocs/mkdocs.toml R python-babel extra/python-sphinx/python-sphinx.toml @@ -1423,6 +1933,10 @@ R python-jinja extra/python-myst-parser/python-myst-parser.toml R python-jinja extra/python-sphinx/python-sphinx.toml R python-lark-parser extra/python-poetry-core/python-poetry-core.toml R python-librt extra/mypy/mypy.toml +R python-lxml extra/gtk-doc/gtk-doc.toml +R python-lxml extra/yelp-tools/yelp-tools.toml +R python-mako extra/gobject-introspection/gobject-introspection.toml +R python-markdown extra/gobject-introspection/gobject-introspection.toml R python-markdown extra/mkdocs-autorefs/mkdocs-autorefs.toml R python-markdown extra/mkdocs-material/mkdocs-material.toml R python-markdown extra/mkdocs/mkdocs.toml @@ -1449,12 +1963,14 @@ R python-packaging extra/python-poetry-core/python-poetry-core.toml R python-packaging extra/python-pyproject-metadata/python-pyproject-metadata.toml R python-packaging extra/python-setuptools-scm/python-setuptools-scm.toml R python-packaging extra/python-sphinx/python-sphinx.toml +R python-parameterized extra/gtk-doc/gtk-doc.toml R python-pathspec extra/mkdocs/mkdocs.toml R python-pathspec extra/mypy/mypy.toml R python-pathspec extra/python-hatchling/python-hatchling.toml R python-platformdirs extra/mkdocs-get-deps/mkdocs-get-deps.toml R python-pluggy extra/python-hatchling/python-hatchling.toml R python-ptyprocess extra/python-pexpect/python-pexpect.toml +R python-pygments extra/gtk-doc/gtk-doc.toml R python-pygments extra/python-myst-parser/python-myst-parser.toml R python-pygments extra/python-sphinx/python-sphinx.toml R python-pymdown-extensions extra/mkdocstrings/mkdocstrings.toml @@ -1465,6 +1981,7 @@ R python-requests extra/mkdocs-material/mkdocs-material.toml R python-requests extra/python-sphinx/python-sphinx.toml R python-roman-numerals-py extra/python-sphinx/python-sphinx.toml R python-semantic-version extra/python-setuptools-rust/python-setuptools-rust.toml +R python-setuptools extra/gobject-introspection/gobject-introspection.toml R python-setuptools extra/python-setuptools-rust/python-setuptools-rust.toml R python-setuptools extra/python-setuptools-scm/python-setuptools-scm.toml R python-setuptools-scm extra/python-hatch-vcs/python-hatch-vcs.toml @@ -1509,10 +2026,12 @@ R rust extra/python-setuptools-rust/python-setuptools-rust.toml R sed core/base/base.toml R sed core/development-base/development-base.toml R sed core/fakeroot/fakeroot.toml +R sgml-common extra/docbook-sgml/docbook-sgml.toml R sh core/autoconf/autoconf.toml R sh core/automake/automake.toml R sh core/dejagnu/dejagnu.toml R sh core/diffutils/diffutils.toml +R sh core/elfutils/elfutils.toml R sh core/fakeroot/fakeroot.toml R sh core/findutils/findutils.toml R sh core/flex/flex.toml @@ -1531,21 +2050,33 @@ R sh core/perl/perl.toml R sh core/python/python.toml R sh core/rust/rust.toml R sh core/which/which.toml +R sh extra/cairo/cairo.toml +R sh extra/db5.3/db5.3.toml +R sh extra/fontconfig/fontconfig.toml +R sh extra/gtk-doc/gtk-doc.toml R sh extra/libgpg-error/libgpg-error.toml R sh extra/libpng/libpng.toml R sh extra/libxslt/libxslt.toml R sh extra/mtools/mtools.toml +R sh extra/sgml-common/sgml-common.toml R sh extra/spirv-tools/spirv-tools.toml +R sh extra/vala/vala.toml R shadow core/base/base.toml R shadow extra/git/git.toml R simdjson extra/nodejs/nodejs.toml +R spdlog extra/doxygen/doxygen.toml +R spirv-llvm-translator extra/mesa/mesa.toml +R spirv-tools extra/glslang/glslang.toml +R spirv-tools extra/mesa/mesa.toml R spirv-tools extra/spirv-llvm-translator/spirv-llvm-translator.toml R sqlite core/depot/depot.toml R sqlite core/rust/rust.toml +R sqlite extra/doxygen/doxygen.toml R sudo core/development-base/development-base.toml R tar core/base/base.toml R tcl core/expect/expect.toml R texinfo core/development-base/development-base.toml +R ttf-font extra/vala/vala.toml R tzdata core/glibc/glibc.toml R tzdata core/python/python.toml R util-linux core/base/base.toml @@ -1553,32 +2084,41 @@ R util-linux core/e2fsprogs/e2fsprogs.toml R util-linux core/fakeroot/fakeroot.toml R ux core/pcre2/pcre2.toml R vertex-keyring core/base/base.toml +R vulkan-icd-loader extra/mesa/mesa.toml +R vulkan-mesa-device-select extra/mesa/mesa.toml +R wayland extra/libva/libva.toml +R wayland extra/mesa/mesa.toml R which core/base/base.toml R which core/development-base/development-base.toml R xcb-proto extra/libxcb/libxcb.toml +R xcb-util-keysyms extra/mesa/mesa.toml R xorgproto extra/libx11/libx11.toml R xorgproto extra/libxau/libxau.toml R xorgproto extra/libxdmcp/libxdmcp.toml R xorgproto extra/libxext/libxext.toml R xorgproto extra/libxfixes/libxfixes.toml +R xorgproto extra/libxi/libxi.toml R xorgproto extra/libxrender/libxrender.toml +R xorgproto extra/libxxf86vm/libxxf86vm.toml R xxhash extra/rdfind/rdfind.toml R xz core/base/base.toml R xz core/depot/depot.toml +R xz core/elfutils/elfutils.toml R xz core/kmod/kmod.toml R xz core/libarchive/libarchive.toml -R xz core/libelf/libelf.toml R xz core/nano/nano.toml R xz core/vx/vx.toml +R xz extra/libtiff/libtiff.toml R xz extra/libxslt/libxslt.toml R xz extra/maturin/maturin.toml +R yelp-xsl extra/yelp-tools/yelp-tools.toml R yyjson extra/fastfetch/fastfetch.toml R zlib-ng core/curl/curl.toml R zlib-ng core/depot/depot.toml +R zlib-ng core/elfutils/elfutils.toml R zlib-ng core/iproute2/iproute2.toml R zlib-ng core/kmod/kmod.toml R zlib-ng core/libarchive/libarchive.toml -R zlib-ng core/libelf/libelf.toml R zlib-ng core/libgit2/libgit2.toml R zlib-ng core/libssh2/libssh2.toml R zlib-ng core/libxml215/libxml215.toml @@ -1594,54 +2134,81 @@ R zlib-ng core/sudo/sudo.toml R zlib-ng core/tar/tar.toml R zlib-ng core/tcl/tcl.toml R zlib-ng core/util-linux/util-linux.toml +R zlib-ng extra/cairo/cairo.toml +R zlib-ng extra/cargo-c/cargo-c.toml R zlib-ng extra/cmake/cmake.toml +R zlib-ng extra/freetype2/freetype2.toml R zlib-ng extra/git/git.toml R zlib-ng extra/gnutls/gnutls.toml +R zlib-ng extra/harfbuzz/harfbuzz.toml R zlib-ng extra/libpciaccess/libpciaccess.toml R zlib-ng extra/libpng/libpng.toml +R zlib-ng extra/libtiff/libtiff.toml +R zlib-ng extra/mesa/mesa.toml R zlib-ng extra/nasm/nasm.toml R zlib-ng extra/nodejs/nodejs.toml +R zlib-ng extra/swig/swig.toml R zsh core/base/base.toml R zsh core/zsh-completions/zsh-completions.toml R zsh-completions core/base/base.toml R zstd core/curl/curl.toml R zstd core/depot/depot.toml +R zstd core/elfutils/elfutils.toml R zstd core/kmod/kmod.toml R zstd core/libarchive/libarchive.toml -R zstd core/libelf/libelf.toml R zstd core/llvm/llvm.toml R zstd core/man-db/man-db.toml R zstd core/nano/nano.toml R zstd core/python/python.toml R zstd extra/gnutls/gnutls.toml +R zstd extra/libtiff/libtiff.toml +R zstd extra/mesa/mesa.toml R zstd extra/nodejs/nodejs.toml T benchmark extra/re2/re2.toml +T boost extra/swig/swig.toml T cairo extra/libdrm/libdrm.toml +T curl extra/libmicrohttpd/libmicrohttpd.toml +T dbus extra/vala/vala.toml T dejagnu core/libffi/libffi.toml T docbook-xml extra/libxslt/libxslt.toml T expect core/psmisc/psmisc.toml T expect extra/fish/fish.toml +T fftw extra/libsamplerate/libsamplerate.toml T findutils core/libtool/libtool.toml +T go extra/swig/swig.toml +T gobject-introspection extra/vala/vala.toml T gtest extra/re2/re2.toml +T java-environment extra/swig/swig.toml +T libx11 extra/vala/vala.toml +T lua extra/swig/swig.toml T openssh extra/git/git.toml T perl-file-slurper extra/perl-pod-pom/perl-pod-pom.toml T perl-test-pod extra/perl-error/perl-error.toml T perl-test-pod-coverage extra/perl-error/perl-error.toml T perl-test-warnings extra/perl-file-slurper/perl-file-slurper.toml +T php extra/swig/swig.toml T procps-ng core/rust/rust.toml T procps-ng extra/fish/fish.toml +T procps-ng extra/valgrind/valgrind.toml T python extra/spirv-llvm-translator/spirv-llvm-translator.toml +T python extra/swig/swig.toml T python-fonttools extra/graphite/graphite.toml +T python-fonttools extra/harfbuzz/harfbuzz.toml T python-libevdev extra/xorgproto/xorgproto.toml T python-pexpect extra/fish/fish.toml T python-pytest extra/python-six/python-six.toml T python-pytest extra/python-yaml/python-yaml.toml +T python-setuptools extra/harfbuzz/harfbuzz.toml +T r extra/swig/swig.toml +T ruby extra/swig/swig.toml T sharutils core/fakeroot/fakeroot.toml T tcl core/dejagnu/dejagnu.toml +T tcl extra/swig/swig.toml T tk extra/python-six/python-six.toml T valgrind extra/nettle/nettle.toml V binutils core/llvm/llvm.toml V c++ core/llvm/llvm.toml +V cargo core/rust/rust.toml V cc core/llvm/llvm.toml V compiler-rt core/llvm/llvm.toml V coreutils core/uutils-coreutils/uutils-coreutils.toml @@ -1653,13 +2220,23 @@ V gzip core/vx/vx.toml V initramfs core/mkinitramfs/mkinitramfs.toml V libatomic core/libatomic-chimera/libatomic-chimera.toml V libc++ core/llvm/llvm.toml +V libegl extra/libglvnd/libglvnd.toml V libgcc core/llvm/llvm.toml +V libgl extra/libglvnd/libglvnd.toml +V libgles extra/libglvnd/libglvnd.toml V libstdc++ core/llvm/llvm.toml V libunwind core/llvm/llvm.toml +V libva-driver extra/mesa/mesa.toml +V libva-mesa-driver extra/mesa/mesa.toml V linux-firmware-bnx2x core/linux-firmware/linux-firmware.toml +V mesa-libgl extra/mesa/mesa.toml +V mesa-vdpau extra/mesa/mesa.toml V npm extra/nodejs/nodejs.toml +V opencl-driver extra/mesa/mesa.toml +V opengl-driver extra/mesa/mesa.toml V pandoc extra/pandoc-bin/pandoc-bin.toml V patch core/vx/vx.toml +V pciutils core/vx/vx.toml V perl-text-tabs extra/perl-text-tabs-wrap/perl-text-tabs-wrap.toml V perl-text-wrap extra/perl-text-tabs-wrap/perl-text-tabs-wrap.toml V python-lark extra/python-lark-parser/python-lark-parser.toml @@ -1667,6 +2244,8 @@ V sh core/dash/dash.toml V ttf-font extra/gnu-free-fonts/gnu-free-fonts.toml V ttf-freefont extra/gnu-free-fonts/gnu-free-fonts.toml V unzip core/libarchive/libarchive.toml +V vdpau-driver extra/mesa/mesa.toml +V vulkan-driver extra/mesa/mesa.toml V which core/vx/vx.toml X diffutils core/vx/vx.toml X findutils core/vx/vx.toml diff --git a/extra/alsa-lib/alsa-lib.toml b/extra/alsa-lib/alsa-lib.toml new file mode 100644 index 0000000..2f3ad11 --- /dev/null +++ b/extra/alsa-lib/alsa-lib.toml @@ -0,0 +1,27 @@ +[build] +type = "autotools" + +[build.flags] +configure = ["--without-debug"] +skip_tests = true +use_lto = false + +[dependencies] +runtime = [ + "glibc", + "alsa-topology-conf", + "alsa-ucm-conf", +] + +[package] +description = "alternative implementation of Linux sound support" +homepage = "https://www.alsa-project.org/" +license = "LGPL-2.1-or-later" +name = "alsa-lib" +version = "1.2.15.3" + +[[source]] +extract_dir = "$name-$version" +post_extract = ["autoreconf -fiv"] +sha256 = "7b079d614d582cade7ab8db2364e65271d0877a37df8757ac4ac0c8970be861e" +url = "https://www.alsa-project.org/files/pub/lib/$name-$version.tar.bz2" diff --git a/extra/alsa-topology-conf/alsa-topology-conf.toml b/extra/alsa-topology-conf/alsa-topology-conf.toml new file mode 100644 index 0000000..54d2187 --- /dev/null +++ b/extra/alsa-topology-conf/alsa-topology-conf.toml @@ -0,0 +1,14 @@ +[build] +type = "custom" + +[package] +description = "ALSA topology configuration files" +homepage = "https://alsa-project.org/" +license = "BSD-3-Clause" +name = "alsa-topology-conf" +version = "1.2.5.1" + +[[source]] +extract_dir = "$name-$version" +sha256 = "f7c5bae1545abcd73824bc97f4e72c340e11abea188ba0f1c06f5e0ad776b179" +url = "https://www.alsa-project.org/files/pub/lib/$name-$version.tar.bz2" diff --git a/extra/alsa-topology-conf/build.sh b/extra/alsa-topology-conf/build.sh new file mode 100644 index 0000000..3fd3b15 --- /dev/null +++ b/extra/alsa-topology-conf/build.sh @@ -0,0 +1,7 @@ +for dir in ./*; do + [ -d "$dir" ] || continue + set -- "$dir"/*.conf + [ -e "$1" ] || continue + install -vdm 755 "$DESTDIR/usr/share/alsa/topology/$(basename "$dir")" + install -vm 644 "$@" -t "$DESTDIR/usr/share/alsa/topology/$(basename "$dir")" +done diff --git a/extra/alsa-ucm-conf/alsa-ucm-conf.toml b/extra/alsa-ucm-conf/alsa-ucm-conf.toml new file mode 100644 index 0000000..72f5153 --- /dev/null +++ b/extra/alsa-ucm-conf/alsa-ucm-conf.toml @@ -0,0 +1,14 @@ +[build] +type = "custom" + +[package] +description = "ALSA Use Case Manager configuration (and topologies)" +homepage = "https://alsa-project.org/" +license = "BSD-3-Clause" +name = "alsa-ucm-conf" +version = "1.2.15.3" + +[[source]] +extract_dir = "$name-$version" +sha256 = "9f79e813c08fc86cfa46dd75c4fcda1a4a51b482db2607e1fcfaafb92f588a31" +url = "https://alsa-project.org/files/pub/lib/$name-$version.tar.bz2" diff --git a/extra/alsa-ucm-conf/build.sh b/extra/alsa-ucm-conf/build.sh new file mode 100644 index 0000000..a4065a9 --- /dev/null +++ b/extra/alsa-ucm-conf/build.sh @@ -0,0 +1,2 @@ +install -vdm 755 "$DESTDIR/usr/share/alsa/" +cp -av ucm2 "$DESTDIR/usr/share/alsa/" diff --git a/extra/aom/aom.toml b/extra/aom/aom.toml new file mode 100644 index 0000000..a2d79ad --- /dev/null +++ b/extra/aom/aom.toml @@ -0,0 +1,36 @@ +[build] +type = "cmake" + +[build.flags] +build_dir = "build" +configure = [ + "-DBUILD_SHARED_LIBS=1", + "-DENABLE_TESTS=0", + "-G Ninja" +] +replace_cflags = [ "_FORTIFY_SOURCE=3=_FORTIFY_SOURCE=0" ] +replace_cxxflags = [ "_FORTIFY_SOURCE=3=_FORTIFY_SOURCE=0" ] + +[dependencies] +build = [ + "cmake", + "ninja", + "yasm", +] +runtime = [ + "glibc", + "libunwind", + "libcxx", +] + +[package] +description = "Alliance for Open Media video codec" +homepage = "https://aomedia.org/" +license = "BSD-3-Clause" +name = "aom" +version = "3.13.2" + +[[source]] +extract_dir = "$name-$version" +sha256 = "634039cc79c3a3307206b6c25ea759abc0e734c6f4ac14f6dbea5694e46af837" +url = "https://storage.googleapis.com/aom-releases/libaom-$version.tar.gz" diff --git a/extra/asciidoc/asciidoc.toml b/extra/asciidoc/asciidoc.toml new file mode 100644 index 0000000..b1da400 --- /dev/null +++ b/extra/asciidoc/asciidoc.toml @@ -0,0 +1,35 @@ +[build] +type = "python" + +[dependencies] +build = [ + "python-setuptools", + "python-wheel", +] +optional = [ + "graphviz", + "lilypond", + "imagemagick", + "source-highlight", + "dblatex", + "fop", + "w3m", + "lynx", +] +runtime = [ + "libxslt", + "docbook-xsl", + "python", +] + +[package] +description = "Text document format for short documents, articles, books and UNIX man pages" +homepage = "https://asciidoc-py.github.io/" +license = "GPL-2.0-or-later" +name = "asciidoc" +version = "10.2.1" + +[[source]] +extract_dir = "$name-$version" +sha256 = "aa7be8ae894f6cc1e67784d76ffa6c6b9e9f96efdc695db43c6bd63820e5072b" +url = "https://github.com/asciidoc-py/asciidoc-py/releases/download/$version/asciidoc-$version.tar.gz" diff --git a/extra/bubblewrap/bubblewrap.toml b/extra/bubblewrap/bubblewrap.toml new file mode 100644 index 0000000..c0cdd28 --- /dev/null +++ b/extra/bubblewrap/bubblewrap.toml @@ -0,0 +1,29 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" +configure = ["-Dselinux=disabled", "-Dbash_completion=disabled", "-Dtests=false"] + +[dependencies] +build = [ + "docbook-xsl", + "libxslt", + "meson", +] +runtime = [ + "glibc", + "libcap", + "libunwind", +] + +[package] +description = "Unprivileged sandboxing tool" +homepage = "https://github.com/containers/bubblewrap" +license = "LGPL-2.0-or-later" +name = "bubblewrap" +version = "0.11.1" + +[[source]] +extract_dir = "$name-$version" +url = "https://github.com/containers/bubblewrap.git#v$version" diff --git a/extra/cairo/cairo.toml b/extra/cairo/cairo.toml new file mode 100644 index 0000000..684ce87 --- /dev/null +++ b/extra/cairo/cairo.toml @@ -0,0 +1,48 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" +configure = [ + "-Ddwrite=disabled", + "-Dgtk_doc=true", + "-Dspectre=disabled", + "-Dsymbol-lookup=disabled", + "-Dtests=disabled", +] +split_docs = true +doc_dirs = [ "usr/share/gtk-doc" ] + +[dependencies] +build = [ + "gtk-doc", + "meson", + "valgrind", +] +runtime = [ + "sh", + "fontconfig", + "freetype2", + "glib2", + "glibc", + "libpng", + "libxcb", + "libx11", + "libxext", + "libxrender", + "lzo", + "pixman", + "zlib-ng", +] + +[package] +description = "2D graphics library with support for multiple output devices" +homepage = "https://cairographics.org/" +license = "LGPL-2.1-only OR MPL-1.1" +name = "cairo" +version = "1.18.4" + +[[source]] +extract_dir = "$name-$version" +sha256 = "445ed8208a6e4823de1226a74ca319d3600e83f6369f99b14265006599c32ccb" +url = "https://www.cairographics.org/releases/cairo-$version.tar.xz" diff --git a/extra/cargo-c/cargo-c.toml b/extra/cargo-c/cargo-c.toml new file mode 100644 index 0000000..20329bb --- /dev/null +++ b/extra/cargo-c/cargo-c.toml @@ -0,0 +1,31 @@ +[build] +type = "rust" + +[build.flags] +use_lto = false + +[dependencies] +runtime = [ + "cargo", + "curl", + "glibc", + "libunwind", + "openssl", + "zlib-ng", +] + +[[manual_sources]] +url = "https://github.com/lu-zero/cargo-c/releases/download/v$version/Cargo.lock" + +[package] +description = "A cargo subcommand to build and install C-ABI compatible dynamic and static libraries" +homepage = "https://github.com/lu-zero/cargo-c/" +license = "MIT" +name = "cargo-c" +version = "0.10.21" + +[[source]] +extract_dir = "$name-$version" +post_extract = ['ln -sf "../.Cargo.lock" "./Cargo.lock"'] +sha256 = "819b62a61e5271924dffd122b7c713e446e5d65f3e630bbe9b90d4d46513d8fa" +url = "https://github.com/lu-zero/cargo-c/archive/v$version/cargo-c-$version.tar.gz" diff --git a/extra/cbindgen/cbindgen.toml b/extra/cbindgen/cbindgen.toml new file mode 100644 index 0000000..140f413 --- /dev/null +++ b/extra/cbindgen/cbindgen.toml @@ -0,0 +1,23 @@ +[build] +type = "rust" + +[build.flags] +use_lto = false + +[dependencies] +build = ["cargo"] +runtime = [ + "libcxx", + "libunwind", +] + +[package] +description = "tool for generating C bindings to Rust code" +homepage = "https://github.com/mozilla/cbindgen" +license = "MPL-2.0" +name = "cbindgen" +version = "0.29.2" + +[[source]] +extract_dir = "$name-$version" +url = "https://github.com/mozilla/cbindgen.git#v$version" diff --git a/extra/dav1d/dav1d.toml b/extra/dav1d/dav1d.toml new file mode 100644 index 0000000..5eed46c --- /dev/null +++ b/extra/dav1d/dav1d.toml @@ -0,0 +1,31 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" +configure = [ + "-Dtestdata_tests=false", + "-Denable_docs=false", +] +skip_tests = true + +[dependencies] +build = [ + "nasm", + "ninja", + "xxhash", + "meson", +] +runtime = ["glibc"] + +[package] +description = "AV1 cross-platform decoder focused on speed and correctness" +homepage = "https://code.videolan.org/videolan/dav1d" +license = "BSD-2-Clause" +name = "dav1d" +version = "1.5.3" + +[[source]] +extract_dir = "$name-$version" +sha256 = "732010aa5ef461fa93355ed2c6c5fedb48ddc4b74e697eaabe8907eaeb943011" +url = "https://downloads.videolan.org/pub/videolan/$name/$version/$name-$version.tar.xz" diff --git a/extra/db5.3/db-5.3.21-memp_stat-upstream-fix.patch b/extra/db5.3/db-5.3.21-memp_stat-upstream-fix.patch new file mode 100644 index 0000000..9e3d52b --- /dev/null +++ b/extra/db5.3/db-5.3.21-memp_stat-upstream-fix.patch @@ -0,0 +1,183 @@ +diff -r -u db-5.3.21_orig/src/mp/mp_stat.c db-5.3.21/src/mp/mp_stat.c +--- db-5.3.21_orig/src/mp/mp_stat.c 2012-05-12 01:57:53.000000000 +0800 ++++ db-5.3.21/src/mp/mp_stat.c 2015-05-19 15:07:09.000000000 +0800 +@@ -87,6 +87,13 @@ + u_int32_t i; + uintmax_t tmp_wait, tmp_nowait; + ++ /* ++ * The array holding the lengths related to the buffer allocated for *fspp. ++ * The first element of the array holds the number of entries allocated. ++ * The second element of the array holds the total number of bytes allocated. ++ */ ++ u_int32_t fsp_len[2]; ++ + dbmp = env->mp_handle; + mp = dbmp->reginfo[0].primary; + +@@ -193,32 +200,53 @@ + if (fspp != NULL) { + *fspp = NULL; + +- /* Count the MPOOLFILE structures. */ +- i = 0; +- len = 0; +- if ((ret = __memp_walk_files(env, +- mp, __memp_count_files, &len, &i, flags)) != 0) +- return (ret); ++ while (*fspp == NULL) { ++ /* Count the MPOOLFILE structures. */ ++ i = 0; ++ /* ++ * Allow space for the first __memp_get_files() to align the ++ * structure array to uintmax_t, DB_MPOOL_STAT's most ++ * restrictive field. [#23150] ++ */ ++ len = sizeof(uintmax_t); ++ if ((ret = __memp_walk_files(env, ++ mp, __memp_count_files, &len, &i, flags)) != 0) ++ return (ret); ++ ++ if (i == 0) ++ return (0); ++ ++ /* ++ * Copy the number of DB_MPOOL_FSTAT entries and the number of ++ * bytes allocated for them into fsp_len. Do not count the space ++ * reserved for allignment. ++ */ ++ fsp_len[0] = i; ++ fsp_len[1] = len - sizeof(uintmax_t); + +- if (i == 0) +- return (0); +- len += sizeof(DB_MPOOL_FSTAT *); /* Trailing NULL */ ++ len += sizeof(DB_MPOOL_FSTAT *); /* Trailing NULL */ + +- /* Allocate space */ +- if ((ret = __os_umalloc(env, len, fspp)) != 0) +- return (ret); ++ /* Allocate space */ ++ if ((ret = __os_umalloc(env, len, fspp)) != 0) ++ return (ret); + +- tfsp = *fspp; +- *tfsp = NULL; +- +- /* +- * Files may have been opened since we counted, don't walk +- * off the end of the allocated space. +- */ +- if ((ret = __memp_walk_files(env, +- mp, __memp_get_files, &tfsp, &i, flags)) != 0) +- return (ret); ++ tfsp = *fspp; ++ *tfsp = NULL; + ++ /* ++ * Files may have been opened since we counted, if we walk off ++ * the end of the allocated space specified in fsp_len, retry. ++ */ ++ if ((ret = __memp_walk_files(env, ++ mp, __memp_get_files, &tfsp, fsp_len, flags)) != 0) { ++ if (ret == DB_BUFFER_SMALL) { ++ __os_ufree(env, *fspp); ++ *fspp = NULL; ++ tfsp = NULL; ++ } else ++ return (ret); ++ } ++ } + *++tfsp = NULL; + } + +@@ -286,28 +314,35 @@ + * for the text file names. + */ + static int +-__memp_get_files(env, mfp, argp, countp, flags) ++__memp_get_files(env, mfp, argp, fsp_len, flags) + ENV *env; + MPOOLFILE *mfp; + void *argp; +- u_int32_t *countp; ++ u_int32_t fsp_len[]; + u_int32_t flags; + { + DB_MPOOL *dbmp; + DB_MPOOL_FSTAT **tfsp, *tstruct; + char *name, *tname; +- size_t nlen; ++ size_t nlen, tlen; + +- if (*countp == 0) +- return (0); ++ /* We walked through more files than argp was allocated for. */ ++ if (fsp_len[0] == 0) ++ return DB_BUFFER_SMALL; + + dbmp = env->mp_handle; + tfsp = *(DB_MPOOL_FSTAT ***)argp; + + if (*tfsp == NULL) { +- /* Add 1 to count because we need to skip over the NULL. */ +- tstruct = (DB_MPOOL_FSTAT *)(tfsp + *countp + 1); +- tname = (char *)(tstruct + *countp); ++ /* ++ * Add 1 to count because to skip over the NULL end marker. ++ * Align it further for DB_MPOOL_STAT's most restrictive field ++ * because uintmax_t might require stricter alignment than ++ * pointers; e.g., IP32 LL64 SPARC. [#23150] ++ */ ++ tstruct = (DB_MPOOL_FSTAT *)&tfsp[fsp_len[0] + 1]; ++ tstruct = ALIGNP_INC(tstruct, sizeof(uintmax_t)); ++ tname = (char *)&tstruct[fsp_len[0]]; + *tfsp = tstruct; + } else { + tstruct = *tfsp + 1; +@@ -317,6 +352,15 @@ + + name = __memp_fns(dbmp, mfp); + nlen = strlen(name) + 1; ++ ++ /* The space required for file names is larger than argp was allocated for. */ ++ tlen = sizeof(DB_MPOOL_FSTAT *) + sizeof(DB_MPOOL_FSTAT) + nlen; ++ if (fsp_len[1] < tlen) ++ return DB_BUFFER_SMALL; ++ else ++ /* Count down the number of bytes left in argp. */ ++ fsp_len[1] -= tlen; ++ + memcpy(tname, name, nlen); + memcpy(tstruct, &mfp->stat, sizeof(mfp->stat)); + tstruct->file_name = tname; +@@ -325,7 +369,9 @@ + tstruct->st_pagesize = mfp->pagesize; + + *(DB_MPOOL_FSTAT ***)argp = tfsp; +- (*countp)--; ++ ++ /* Count down the number of entries left in argp. */ ++ fsp_len[0]--; + + if (LF_ISSET(DB_STAT_CLEAR)) + memset(&mfp->stat, 0, sizeof(mfp->stat)); +diff -r -u db-5.3.21_orig/src/mp/mp_sync.c db-5.3.21/src/mp/mp_sync.c +--- db-5.3.21_orig/src/mp/mp_sync.c 2012-05-12 01:57:53.000000000 +0800 ++++ db-5.3.21/src/mp/mp_sync.c 2015-05-19 15:08:05.000000000 +0800 +@@ -57,11 +57,13 @@ + if ((t_ret = func(env, + mfp, arg, countp, flags)) != 0 && ret == 0) + ret = t_ret; +- if (ret != 0 && !LF_ISSET(DB_STAT_MEMP_NOERROR)) ++ if (ret != 0 && ++ (!LF_ISSET(DB_STAT_MEMP_NOERROR) || ret == DB_BUFFER_SMALL)) + break; + } + MUTEX_UNLOCK(env, hp->mtx_hash); +- if (ret != 0 && !LF_ISSET(DB_STAT_MEMP_NOERROR)) ++ if (ret != 0 && ++ (!LF_ISSET(DB_STAT_MEMP_NOERROR) || ret == DB_BUFFER_SMALL)) + break; + } + return (ret); diff --git a/extra/db5.3/db-5.3.21-mutex_leak.patch b/extra/db5.3/db-5.3.21-mutex_leak.patch new file mode 100644 index 0000000..0738dab --- /dev/null +++ b/extra/db5.3/db-5.3.21-mutex_leak.patch @@ -0,0 +1,718 @@ +diff -U 5 -r db-5.3.21.old/src/dbinc_auto/int_def.in db-5.3.21/src/dbinc_auto/int_def.in +--- db-5.3.21.old/src/dbinc_auto/int_def.in 2012-05-12 01:57:53.000000000 +0800 ++++ db-5.3.21/src/dbinc_auto/int_def.in 2016-10-25 22:40:58.000000000 +0800 +@@ -1371,10 +1371,11 @@ + #define __memp_failchk __memp_failchk@DB_VERSION_UNIQUE_NAME@ + #define __memp_bhwrite __memp_bhwrite@DB_VERSION_UNIQUE_NAME@ + #define __memp_pgread __memp_pgread@DB_VERSION_UNIQUE_NAME@ + #define __memp_pg __memp_pg@DB_VERSION_UNIQUE_NAME@ + #define __memp_bhfree __memp_bhfree@DB_VERSION_UNIQUE_NAME@ ++#define __memp_bh_clear_dirty __memp_bh_clear_dirty@DB_VERSION_UNIQUE_NAME@ + #define __memp_fget_pp __memp_fget_pp@DB_VERSION_UNIQUE_NAME@ + #define __memp_fget __memp_fget@DB_VERSION_UNIQUE_NAME@ + #define __memp_fcreate_pp __memp_fcreate_pp@DB_VERSION_UNIQUE_NAME@ + #define __memp_fcreate __memp_fcreate@DB_VERSION_UNIQUE_NAME@ + #define __memp_set_clear_len __memp_set_clear_len@DB_VERSION_UNIQUE_NAME@ +@@ -1395,10 +1396,11 @@ + #define __memp_fopen __memp_fopen@DB_VERSION_UNIQUE_NAME@ + #define __memp_fclose_pp __memp_fclose_pp@DB_VERSION_UNIQUE_NAME@ + #define __memp_fclose __memp_fclose@DB_VERSION_UNIQUE_NAME@ + #define __memp_mf_discard __memp_mf_discard@DB_VERSION_UNIQUE_NAME@ + #define __memp_inmemlist __memp_inmemlist@DB_VERSION_UNIQUE_NAME@ ++#define __memp_mf_mark_dead __memp_mf_mark_dead@DB_VERSION_UNIQUE_NAME@ + #define __memp_fput_pp __memp_fput_pp@DB_VERSION_UNIQUE_NAME@ + #define __memp_fput __memp_fput@DB_VERSION_UNIQUE_NAME@ + #define __memp_unpin_buffers __memp_unpin_buffers@DB_VERSION_UNIQUE_NAME@ + #define __memp_dirty __memp_dirty@DB_VERSION_UNIQUE_NAME@ + #define __memp_shared __memp_shared@DB_VERSION_UNIQUE_NAME@ +@@ -1453,10 +1455,11 @@ + #define __memp_fsync_pp __memp_fsync_pp@DB_VERSION_UNIQUE_NAME@ + #define __memp_fsync __memp_fsync@DB_VERSION_UNIQUE_NAME@ + #define __mp_xxx_fh __mp_xxx_fh@DB_VERSION_UNIQUE_NAME@ + #define __memp_sync_int __memp_sync_int@DB_VERSION_UNIQUE_NAME@ + #define __memp_mf_sync __memp_mf_sync@DB_VERSION_UNIQUE_NAME@ ++#define __memp_purge_dead_files __memp_purge_dead_files@DB_VERSION_UNIQUE_NAME@ + #define __memp_trickle_pp __memp_trickle_pp@DB_VERSION_UNIQUE_NAME@ + #define __mutex_alloc __mutex_alloc@DB_VERSION_UNIQUE_NAME@ + #define __mutex_alloc_int __mutex_alloc_int@DB_VERSION_UNIQUE_NAME@ + #define __mutex_free __mutex_free@DB_VERSION_UNIQUE_NAME@ + #define __mutex_free_int __mutex_free_int@DB_VERSION_UNIQUE_NAME@ +diff -U 5 -r db-5.3.21.old/src/dbinc_auto/mp_ext.h db-5.3.21/src/dbinc_auto/mp_ext.h +--- db-5.3.21.old/src/dbinc_auto/mp_ext.h 2012-05-12 01:57:53.000000000 +0800 ++++ db-5.3.21/src/dbinc_auto/mp_ext.h 2016-10-25 22:40:58.000000000 +0800 +@@ -14,10 +14,11 @@ + int __memp_failchk __P((ENV *)); + int __memp_bhwrite __P((DB_MPOOL *, DB_MPOOL_HASH *, MPOOLFILE *, BH *, int)); + int __memp_pgread __P((DB_MPOOLFILE *, BH *, int)); + int __memp_pg __P((DB_MPOOLFILE *, db_pgno_t, void *, int)); + int __memp_bhfree __P((DB_MPOOL *, REGINFO *, MPOOLFILE *, DB_MPOOL_HASH *, BH *, u_int32_t)); ++void __memp_bh_clear_dirty __P((ENV*, DB_MPOOL_HASH *, BH *)); + int __memp_fget_pp __P((DB_MPOOLFILE *, db_pgno_t *, DB_TXN *, u_int32_t, void *)); + int __memp_fget __P((DB_MPOOLFILE *, db_pgno_t *, DB_THREAD_INFO *, DB_TXN *, u_int32_t, void *)); + int __memp_fcreate_pp __P((DB_ENV *, DB_MPOOLFILE **, u_int32_t)); + int __memp_fcreate __P((ENV *, DB_MPOOLFILE **)); + int __memp_set_clear_len __P((DB_MPOOLFILE *, u_int32_t)); +@@ -38,10 +39,11 @@ + int __memp_fopen __P((DB_MPOOLFILE *, MPOOLFILE *, const char *, const char **, u_int32_t, int, size_t)); + int __memp_fclose_pp __P((DB_MPOOLFILE *, u_int32_t)); + int __memp_fclose __P((DB_MPOOLFILE *, u_int32_t)); + int __memp_mf_discard __P((DB_MPOOL *, MPOOLFILE *, int)); + int __memp_inmemlist __P((ENV *, char ***, int *)); ++void __memp_mf_mark_dead __P((DB_MPOOL *, MPOOLFILE *, int*)); + int __memp_fput_pp __P((DB_MPOOLFILE *, void *, DB_CACHE_PRIORITY, u_int32_t)); + int __memp_fput __P((DB_MPOOLFILE *, DB_THREAD_INFO *, void *, DB_CACHE_PRIORITY)); + int __memp_unpin_buffers __P((ENV *, DB_THREAD_INFO *)); + int __memp_dirty __P((DB_MPOOLFILE *, void *, DB_THREAD_INFO *, DB_TXN *, DB_CACHE_PRIORITY, u_int32_t)); + int __memp_shared __P((DB_MPOOLFILE *, void *)); +@@ -96,10 +98,11 @@ + int __memp_fsync_pp __P((DB_MPOOLFILE *)); + int __memp_fsync __P((DB_MPOOLFILE *)); + int __mp_xxx_fh __P((DB_MPOOLFILE *, DB_FH **)); + int __memp_sync_int __P((ENV *, DB_MPOOLFILE *, u_int32_t, u_int32_t, u_int32_t *, int *)); + int __memp_mf_sync __P((DB_MPOOL *, MPOOLFILE *, int)); ++int __memp_purge_dead_files __P((ENV *)); + int __memp_trickle_pp __P((DB_ENV *, int, int *)); + + #if defined(__cplusplus) + } + #endif +diff -U 5 -r db-5.3.21.old/src/mp/mp_bh.c db-5.3.21/src/mp/mp_bh.c +--- db-5.3.21.old/src/mp/mp_bh.c 2012-05-12 01:57:53.000000000 +0800 ++++ db-5.3.21/src/mp/mp_bh.c 2016-10-25 17:09:35.000000000 +0800 +@@ -472,15 +472,12 @@ + * a shared latch. + */ + if (F_ISSET(bhp, BH_DIRTY | BH_TRASH)) { + MUTEX_LOCK(env, hp->mtx_hash); + DB_ASSERT(env, !SH_CHAIN_HASNEXT(bhp, vc)); +- if (ret == 0 && F_ISSET(bhp, BH_DIRTY)) { +- F_CLR(bhp, BH_DIRTY | BH_DIRTY_CREATE); +- DB_ASSERT(env, atomic_read(&hp->hash_page_dirty) > 0); +- atomic_dec(env, &hp->hash_page_dirty); +- } ++ if (ret == 0) ++ __memp_bh_clear_dirty(env, hp, bhp); + + /* put the page back if necessary. */ + if ((ret != 0 || BH_REFCOUNT(bhp) > 1) && + F_ISSET(bhp, BH_TRASH)) { + ret = __memp_pg(dbmfp, bhp->pgno, bhp->buf, 1); +@@ -686,5 +683,31 @@ + } else + MUTEX_UNLOCK(env, mfp->mutex); + + return (ret); + } ++ ++/* ++ * __memp_bh_clear_dirty -- ++ * Clear the dirty flag of of a buffer. Calls on the same buffer must be ++ * serialized to get the accounting correct. This can be achieved by ++ * acquiring an exclusive lock on the buffer, a shared lock on the ++ * buffer plus an exclusive lock on the hash bucket, or some other ++ * mechanism that guarantees single-thread access to the entire region ++ * (e.g. during __memp_region_bhfree()). ++ * ++ * PUBLIC: void __memp_bh_clear_dirty __P((ENV*, DB_MPOOL_HASH *, BH *)); ++ */ ++void ++__memp_bh_clear_dirty(env, hp, bhp) ++ ENV *env; ++ DB_MPOOL_HASH *hp; ++ BH *bhp; ++{ ++ COMPQUIET(env, env); ++ if (F_ISSET(bhp, BH_DIRTY)) { ++ F_CLR(bhp, BH_DIRTY | BH_DIRTY_CREATE); ++ DB_ASSERT(env, atomic_read(&hp->hash_page_dirty) > 0); ++ (void)atomic_dec(env, &hp->hash_page_dirty); ++ } ++} ++ +diff -U 5 -r db-5.3.21.old/src/mp/mp_fget.c db-5.3.21/src/mp/mp_fget.c +--- db-5.3.21.old/src/mp/mp_fget.c 2012-05-12 01:57:53.000000000 +0800 ++++ db-5.3.21/src/mp/mp_fget.c 2016-10-25 17:11:08.000000000 +0800 +@@ -437,16 +437,11 @@ + * complain and get out. + */ + if (flags == DB_MPOOL_FREE) { + freebuf: MUTEX_LOCK(env, hp->mtx_hash); + h_locked = 1; +- if (F_ISSET(bhp, BH_DIRTY)) { +- F_CLR(bhp, BH_DIRTY | BH_DIRTY_CREATE); +- DB_ASSERT(env, +- atomic_read(&hp->hash_page_dirty) > 0); +- atomic_dec(env, &hp->hash_page_dirty); +- } ++ __memp_bh_clear_dirty(env, hp, bhp); + + /* + * If the buffer we found is already freed, we're done. + * If the ref count is not 1 then someone may be + * peeking at the buffer. We cannot free it until they +diff -U 5 -r db-5.3.21.old/src/mp/mp_fopen.c db-5.3.21/src/mp/mp_fopen.c +--- db-5.3.21.old/src/mp/mp_fopen.c 2012-05-12 01:57:53.000000000 +0800 ++++ db-5.3.21/src/mp/mp_fopen.c 2016-10-25 22:31:05.000000000 +0800 +@@ -12,10 +12,11 @@ + #include "dbinc/log.h" + #include "dbinc/mp.h" + #include "dbinc/db_page.h" + #include "dbinc/hash.h" + ++static int __memp_count_dead_mutex __P((DB_MPOOL *, u_int32_t *)); + static int __memp_mpf_alloc __P((DB_MPOOL *, + DB_MPOOLFILE *, const char *, u_int32_t, u_int32_t, MPOOLFILE **)); + static int __memp_mpf_find __P((ENV *, + DB_MPOOLFILE *, DB_MPOOL_HASH *, const char *, u_int32_t, MPOOLFILE **)); + +@@ -709,11 +710,15 @@ + * We should be able to set mfp to NULL and break out of the + * loop, but I like the idea of checking all the entries. + */ + if (LF_ISSET(DB_TRUNCATE)) { + MUTEX_LOCK(env, mfp->mutex); +- mfp->deadfile = 1; ++ /* ++ * We cannot purge dead files here, because the caller ++ * is holding the mutex of the hash bucket of mfp. ++ */ ++ __memp_mf_mark_dead(dbmp, mfp, NULL); + MUTEX_UNLOCK(env, mfp->mutex); + continue; + } + + /* +@@ -907,14 +912,15 @@ + DB_MPOOL *dbmp; + ENV *env; + MPOOLFILE *mfp; + char *rpath; + u_int32_t ref; +- int deleted, ret, t_ret; ++ int deleted, purge_dead, ret, t_ret; + + env = dbmfp->env; + dbmp = env->mp_handle; ++ purge_dead = 0; + ret = 0; + + /* + * Remove the DB_MPOOLFILE from the process' list. + * +@@ -1004,11 +1010,11 @@ + } + DB_ASSERT(env, mfp->neutral_cnt < mfp->mpf_cnt); + if (--mfp->mpf_cnt == 0 || LF_ISSET(DB_MPOOL_DISCARD)) { + if (LF_ISSET(DB_MPOOL_DISCARD) || + F_ISSET(mfp, MP_TEMP) || mfp->unlink_on_close) { +- mfp->deadfile = 1; ++ __memp_mf_mark_dead(dbmp, mfp, &purge_dead); + } + if (mfp->unlink_on_close) { + if ((t_ret = __db_appname(dbmp->env, DB_APP_DATA, + R_ADDR(dbmp->reginfo, mfp->path_off), NULL, + &rpath)) != 0 && ret == 0) +@@ -1037,10 +1043,12 @@ + deleted = 1; + } + } + if (!deleted && !LF_ISSET(DB_MPOOL_NOLOCK)) + MUTEX_UNLOCK(env, mfp->mutex); ++ if (purge_dead) ++ (void)__memp_purge_dead_files(env); + + done: /* Discard the DB_MPOOLFILE structure. */ + if (dbmfp->pgcookie != NULL) { + __os_free(env, dbmfp->pgcookie->data); + __os_free(env, dbmfp->pgcookie); +@@ -1091,11 +1099,11 @@ + /* + * We have to release the MPOOLFILE mutex before acquiring the region + * mutex so we don't deadlock. Make sure nobody ever looks at this + * structure again. + */ +- mfp->deadfile = 1; ++ __memp_mf_mark_dead(dbmp, mfp, NULL); + + /* Discard the mutex we're holding and return it too the pool. */ + MUTEX_UNLOCK(env, mfp->mutex); + if ((t_ret = __mutex_free(env, &mfp->mutex)) != 0 && ret == 0) + ret = t_ret; +@@ -1216,5 +1224,106 @@ + /* Make sure we don't return any garbage. */ + *cntp = 0; + *namesp = NULL; + return (ret); + } ++ ++/* ++ * __memp_mf_mark_dead -- ++ * Mark an MPOOLFILE as dead because its contents are no longer necessary. ++ * This happens when removing, truncation, or closing an unnamed in-memory ++ * database. Return, in the purgep parameter, whether the caller should ++ * call __memp_purge_dead_files() after the lock on mfp is released. The ++ * caller must hold an exclusive lock on the mfp handle. ++ * ++ * PUBLIC: void __memp_mf_mark_dead __P((DB_MPOOL *, MPOOLFILE *, int*)); ++ */ ++void ++__memp_mf_mark_dead(dbmp, mfp, purgep) ++ DB_MPOOL *dbmp; ++ MPOOLFILE *mfp; ++ int *purgep; ++{ ++ ENV *env; ++#ifdef HAVE_MUTEX_SUPPORT ++ REGINFO *infop; ++ DB_MUTEXREGION *mtxregion; ++ u_int32_t mutex_max, mutex_inuse, dead_mutex; ++#endif ++ ++ if (purgep != NULL) ++ *purgep = 0; ++ ++ env = dbmp->env; ++ ++#ifdef HAVE_MUTEX_SUPPORT ++ MUTEX_REQUIRED(env, mfp->mutex); ++ ++ if (MUTEX_ON(env) && mfp->deadfile == 0) { ++ infop = &env->mutex_handle->reginfo; ++ mtxregion = infop->primary; ++ ++ mutex_inuse = mtxregion->stat.st_mutex_inuse; ++ if ((mutex_max = env->dbenv->mutex_max) == 0) ++ mutex_max = infop->rp->max / mtxregion->mutex_size; ++ ++ /* ++ * Purging dead pages requires a full scan of the entire cache ++ * buffer, so it is a slow operation. We only want to do it ++ * when it is necessary and provides enough benefits. Below is ++ * a simple heuristic that determines when to purge all dead ++ * pages. ++ */ ++ if (purgep != NULL && mutex_inuse > mutex_max - 200) { ++ /* ++ * If the mutex region is almost full and there are ++ * many mutexes held by dead files, purge dead files. ++ */ ++ (void)__memp_count_dead_mutex(dbmp, &dead_mutex); ++ dead_mutex += mfp->block_cnt + 1; ++ ++ if (dead_mutex > mutex_inuse / 20) ++ *purgep = 1; ++ } ++ } ++#endif ++ ++ mfp->deadfile = 1; ++} ++ ++/* ++ * __memp_count_dead_mutex -- ++ * Estimate the number of mutexes held by dead files. ++ */ ++static int ++__memp_count_dead_mutex(dbmp, dead_mutex) ++ DB_MPOOL *dbmp; ++ u_int32_t *dead_mutex; ++{ ++ ENV *env; ++ DB_MPOOL_HASH *hp; ++ MPOOL *mp; ++ MPOOLFILE *mfp; ++ u_int32_t mutex_per_file; ++ int busy, i; ++ ++ env = dbmp->env; ++ *dead_mutex = 0; ++ mutex_per_file = 1; ++#ifndef HAVE_ATOMICFILEREAD ++ mutex_per_file = 2; ++#endif ++ mp = dbmp->reginfo[0].primary; ++ hp = R_ADDR(dbmp->reginfo, mp->ftab); ++ for (i = 0; i < MPOOL_FILE_BUCKETS; i++, hp++) { ++ busy = MUTEX_TRYLOCK(env, hp->mtx_hash); ++ if (busy) ++ continue; ++ SH_TAILQ_FOREACH(mfp, &hp->hash_bucket, q, __mpoolfile) { ++ if (mfp->deadfile) ++ *dead_mutex += mfp->block_cnt + mutex_per_file; ++ } ++ MUTEX_UNLOCK(env, hp->mtx_hash); ++ } ++ ++ return (0); ++} +diff -U 5 -r db-5.3.21.old/src/mp/mp_method.c db-5.3.21/src/mp/mp_method.c +--- db-5.3.21.old/src/mp/mp_method.c 2012-05-12 01:57:53.000000000 +0800 ++++ db-5.3.21/src/mp/mp_method.c 2016-10-25 17:22:23.000000000 +0800 +@@ -638,11 +638,11 @@ + DB_MPOOL_HASH *hp, *nhp; + MPOOL *mp; + MPOOLFILE *mfp; + roff_t newname_off; + u_int32_t bucket; +- int locked, ret; ++ int locked, purge_dead, ret; + size_t nlen; + void *p; + + #undef op_is_remove + #define op_is_remove (newname == NULL) +@@ -655,10 +655,11 @@ + dbmp = NULL; + mfp = NULL; + nhp = NULL; + p = NULL; + locked = ret = 0; ++ purge_dead = 0; + + if (!MPOOL_ON(env)) + goto fsop; + + dbmp = env->mp_handle; +@@ -747,11 +748,11 @@ + * they do not get reclaimed as long as they exist. Since we + * are now deleting the database, we need to dec that count. + */ + if (mfp->no_backing_file) + mfp->mpf_cnt--; +- mfp->deadfile = 1; ++ __memp_mf_mark_dead(dbmp, mfp, &purge_dead); + MUTEX_UNLOCK(env, mfp->mutex); + } else { + /* + * Else, it's a rename. We've allocated memory for the new + * name. Swap it with the old one. If it's in memory we +@@ -806,10 +807,16 @@ + if (locked == 1) { + MUTEX_UNLOCK(env, hp->mtx_hash); + if (nhp != NULL && nhp != hp) + MUTEX_UNLOCK(env, nhp->mtx_hash); + } ++ /* ++ * __memp_purge_dead_files() must be called when the hash bucket is ++ * unlocked. ++ */ ++ if (purge_dead) ++ (void)__memp_purge_dead_files(env); + return (ret); + } + + /* + * __memp_ftruncate __ +diff -U 5 -r db-5.3.21.old/src/mp/mp_sync.c db-5.3.21/src/mp/mp_sync.c +--- db-5.3.21.old/src/mp/mp_sync.c 2012-05-12 01:57:53.000000000 +0800 ++++ db-5.3.21/src/mp/mp_sync.c 2016-10-25 17:26:58.000000000 +0800 +@@ -24,10 +24,11 @@ + static int __bhcmp __P((const void *, const void *)); + static int __memp_close_flush_files __P((ENV *, int)); + static int __memp_sync_files __P((ENV *)); + static int __memp_sync_file __P((ENV *, + MPOOLFILE *, void *, u_int32_t *, u_int32_t)); ++static inline void __update_err_ret(int, int*); + + /* + * __memp_walk_files -- + * PUBLIC: int __memp_walk_files __P((ENV *, MPOOL *, + * PUBLIC: int (*) __P((ENV *, MPOOLFILE *, void *, +@@ -961,5 +962,125 @@ + return (-1); + if (bhp1->track_pgno > bhp2->track_pgno) + return (1); + return (0); + } ++ ++/* ++ * __memp_purge_dead_files -- ++ * Remove all dead files and their buffers from the mpool. The caller ++ * cannot hold any lock on the dead MPOOLFILE handles, their buffers ++ * or their hash buckets. ++ * ++ * PUBLIC: int __memp_purge_dead_files __P((ENV *)); ++ */ ++int ++__memp_purge_dead_files(env) ++ ENV *env; ++{ ++ BH *bhp; ++ DB_MPOOL *dbmp; ++ DB_MPOOL_HASH *hp, *hp_end; ++ REGINFO *infop; ++ MPOOL *c_mp, *mp; ++ MPOOLFILE *mfp; ++ u_int32_t i_cache; ++ int ret, t_ret, h_lock; ++ ++ if (!MPOOL_ON(env)) ++ return (0); ++ ++ dbmp = env->mp_handle; ++ mp = dbmp->reginfo[0].primary; ++ ret = t_ret = h_lock = 0; ++ ++ /* ++ * Walk each cache's list of buffers and free all buffers whose ++ * MPOOLFILE is marked as dead. ++ */ ++ for (i_cache = 0; i_cache < mp->nreg; i_cache++) { ++ infop = &dbmp->reginfo[i_cache]; ++ c_mp = infop->primary; ++ ++ hp = R_ADDR(infop, c_mp->htab); ++ hp_end = &hp[c_mp->htab_buckets]; ++ for (; hp < hp_end; hp++) { ++ /* Skip empty buckets. */ ++ if (SH_TAILQ_FIRST(&hp->hash_bucket, __bh) == NULL) ++ continue; ++ ++ /* ++ * Search for a dead buffer. Other places that call ++ * __memp_bhfree() acquire the buffer lock before the ++ * hash bucket lock. Even though we acquire the two ++ * locks in reverse order, we cannot deadlock here ++ * because we don't block waiting for the locks. ++ */ ++ t_ret = MUTEX_TRYLOCK(env, hp->mtx_hash); ++ if (t_ret != 0) { ++ __update_err_ret(t_ret, &ret); ++ continue; ++ } ++ h_lock = 1; ++ SH_TAILQ_FOREACH(bhp, &hp->hash_bucket, hq, __bh) { ++ /* Skip buffers that are being used. */ ++ if (BH_REFCOUNT(bhp) > 0) ++ continue; ++ ++ mfp = R_ADDR(dbmp->reginfo, bhp->mf_offset); ++ if (!mfp->deadfile) ++ continue; ++ ++ /* Found a dead buffer. Prepare to free it. */ ++ t_ret = MUTEX_TRYLOCK(env, bhp->mtx_buf); ++ if (t_ret != 0) { ++ __update_err_ret(t_ret, &ret); ++ continue; ++ } ++ ++ DB_ASSERT(env, (!F_ISSET(bhp, BH_EXCLUSIVE) && ++ BH_REFCOUNT(bhp) == 0)); ++ F_SET(bhp, BH_EXCLUSIVE); ++ (void)atomic_inc(env, &bhp->ref); ++ ++ __memp_bh_clear_dirty(env, hp, bhp); ++ ++ /* ++ * Free the buffer. The buffer and hash bucket ++ * are unlocked by __memp_bhfree. ++ */ ++ if ((t_ret = __memp_bhfree(dbmp, infop, mfp, ++ hp, bhp, BH_FREE_FREEMEM)) == 0) ++ /* ++ * Decrement hp, so the next turn will ++ * search the same bucket again. ++ */ ++ hp--; ++ else ++ __update_err_ret(t_ret, &ret); ++ ++ /* ++ * The hash bucket is unlocked, we need to ++ * start over again. ++ */ ++ h_lock = 0; ++ break; ++ } ++ ++ if (h_lock) { ++ MUTEX_UNLOCK(env, hp->mtx_hash); ++ h_lock = 0; ++ } ++ } ++ } ++ ++ return (ret); ++} ++ ++static inline void ++__update_err_ret(t_ret, retp) ++ int t_ret; ++ int *retp; ++{ ++ if (t_ret != 0 && t_ret != DB_LOCK_NOTGRANTED && *retp == 0) ++ *retp = t_ret; ++} +diff -U 5 -r db-5.3.21.old/src/mp/mp_trickle.c db-5.3.21/src/mp/mp_trickle.c +--- db-5.3.21.old/src/mp/mp_trickle.c 2012-05-12 01:57:53.000000000 +0800 ++++ db-5.3.21/src/mp/mp_trickle.c 2016-10-25 17:27:57.000000000 +0800 +@@ -65,10 +65,14 @@ + "DB_ENV->memp_trickle: %d: percent must be between 1 and 100", + "%d"), pct); + return (EINVAL); + } + ++ /* First we purge all dead files and their buffers. */ ++ if ((ret = __memp_purge_dead_files(env)) != 0) ++ return (ret); ++ + /* + * Loop through the caches counting total/dirty buffers. + * + * XXX + * Using hash_page_dirty is our only choice at the moment, but it's not +diff -U 5 -r db-5.3.21.old/src/mutex/mut_region.c db-5.3.21/src/mutex/mut_region.c +--- db-5.3.21.old/src/mutex/mut_region.c 2012-05-12 01:57:54.000000000 +0800 ++++ db-5.3.21/src/mutex/mut_region.c 2016-10-25 17:34:22.000000000 +0800 +@@ -15,11 +15,11 @@ + #include "dbinc/txn.h" + + static db_size_t __mutex_align_size __P((ENV *)); + static int __mutex_region_init __P((ENV *, DB_MUTEXMGR *)); + static size_t __mutex_region_size __P((ENV *)); +-static size_t __mutex_region_max __P((ENV *)); ++static size_t __mutex_region_max __P((ENV *, u_int32_t)); + + /* + * __mutex_open -- + * Open a mutex region. + * +@@ -32,11 +32,11 @@ + { + DB_ENV *dbenv; + DB_MUTEXMGR *mtxmgr; + DB_MUTEXREGION *mtxregion; + size_t size; +- u_int32_t cpu_count; ++ u_int32_t cpu_count, mutex_needed; + int ret; + #ifndef HAVE_ATOMIC_SUPPORT + u_int i; + #endif + +@@ -59,23 +59,24 @@ + cpu_count : cpu_count * MUTEX_SPINS_PER_PROCESSOR)) != 0) + return (ret); + } + + /* +- * If the user didn't set an absolute value on the number of mutexes +- * we'll need, figure it out. We're conservative in our allocation, +- * we need mutexes for DB handles, group-commit queues and other things +- * applications allocate at run-time. The application may have kicked +- * up our count to allocate its own mutexes, add that in. ++ * Figure out the number of mutexes we'll need. We're conservative in ++ * our allocation, we need mutexes for DB handles, group-commit queues ++ * and other things applications allocate at run-time. The application ++ * may have kicked up our count to allocate its own mutexes, add that ++ * in. + */ ++ mutex_needed = ++ __lock_region_mutex_count(env) + ++ __log_region_mutex_count(env) + ++ __memp_region_mutex_count(env) + ++ __txn_region_mutex_count(env); + if (dbenv->mutex_cnt == 0 && + F_ISSET(env, ENV_PRIVATE | ENV_THREAD) != ENV_PRIVATE) +- dbenv->mutex_cnt = +- __lock_region_mutex_count(env) + +- __log_region_mutex_count(env) + +- __memp_region_mutex_count(env) + +- __txn_region_mutex_count(env); ++ dbenv->mutex_cnt = mutex_needed; + + if (dbenv->mutex_max != 0 && dbenv->mutex_cnt > dbenv->mutex_max) + dbenv->mutex_cnt = dbenv->mutex_max; + + /* Create/initialize the mutex manager structure. */ +@@ -88,12 +89,12 @@ + mtxmgr->reginfo.id = INVALID_REGION_ID; + mtxmgr->reginfo.flags = REGION_JOIN_OK; + size = __mutex_region_size(env); + if (create_ok) + F_SET(&mtxmgr->reginfo, REGION_CREATE_OK); +- if ((ret = __env_region_attach(env, +- &mtxmgr->reginfo, size, size + __mutex_region_max(env))) != 0) ++ if ((ret = __env_region_attach(env, &mtxmgr->reginfo, ++ size, size + __mutex_region_max(env, mutex_needed))) != 0) + goto err; + + /* If we created the region, initialize it. */ + if (F_ISSET(&mtxmgr->reginfo, REGION_CREATE)) + if ((ret = __mutex_region_init(env, mtxmgr)) != 0) +@@ -350,44 +351,62 @@ + + dbenv = env->dbenv; + + s = sizeof(DB_MUTEXMGR) + 1024; + +- /* We discard one mutex for the OOB slot. */ ++ /* ++ * We discard one mutex for the OOB slot. Make sure mutex_cnt doesn't ++ * overflow. ++ */ + s += __env_alloc_size( +- (dbenv->mutex_cnt + 1) *__mutex_align_size(env)); ++ (dbenv->mutex_cnt + (dbenv->mutex_cnt == UINT32_MAX ? 0 : 1)) * ++ __mutex_align_size(env)); + + return (s); + } + + /* + * __mutex_region_max -- + * Return the amount of space needed to reach the maximum size. + */ + static size_t +-__mutex_region_max(env) ++__mutex_region_max(env, mutex_needed) + ENV *env; ++ u_int32_t mutex_needed; + { + DB_ENV *dbenv; +- u_int32_t max; ++ u_int32_t max, mutex_cnt; + + dbenv = env->dbenv; ++ mutex_cnt = dbenv->mutex_cnt; + +- if ((max = dbenv->mutex_max) == 0) { ++ /* ++ * We want to limit the region size to accommodate at most UINT32_MAX ++ * mutexes. If mutex_cnt is UINT32_MAX, no more space is allowed. ++ */ ++ if ((max = dbenv->mutex_max) == 0 && mutex_cnt != UINT32_MAX) + if (F_ISSET(env, ENV_PRIVATE | ENV_THREAD) == ENV_PRIVATE) +- max = dbenv->mutex_inc + 1; +- else ++ if (dbenv->mutex_inc + 1 < UINT32_MAX - mutex_cnt) ++ max = dbenv->mutex_inc + 1 + mutex_cnt; ++ else ++ max = UINT32_MAX; ++ else { + max = __lock_region_mutex_max(env) + + __txn_region_mutex_max(env) + + __log_region_mutex_max(env) + + dbenv->mutex_inc + 100; +- } else if (max <= dbenv->mutex_cnt) ++ if (max < UINT32_MAX - mutex_needed) ++ max += mutex_needed; ++ else ++ max = UINT32_MAX; ++ } ++ ++ if (max <= mutex_cnt) + return (0); + else +- max -= dbenv->mutex_cnt; +- +- return ( __env_alloc_size(max * __mutex_align_size(env))); ++ return (__env_alloc_size( ++ (max - mutex_cnt) * __mutex_align_size(env))); + } + + #ifdef HAVE_MUTEX_SYSTEM_RESOURCES + /* + * __mutex_resource_return + diff --git a/extra/db5.3/db-5.3.28-atomic_compare_exchange.patch b/extra/db5.3/db-5.3.28-atomic_compare_exchange.patch new file mode 100644 index 0000000..4eab02c --- /dev/null +++ b/extra/db5.3/db-5.3.28-atomic_compare_exchange.patch @@ -0,0 +1,20 @@ +--- db-5.3.28/src/dbinc/atomic.h.old 2018-05-23 09:20:04.216914922 +0200 ++++ db-5.3.28/src/dbinc/atomic.h 2018-05-23 09:20:49.510057897 +0200 +@@ -144,7 +144,7 @@ + #define atomic_inc(env, p) __atomic_inc(p) + #define atomic_dec(env, p) __atomic_dec(p) + #define atomic_compare_exchange(env, p, o, n) \ +- __atomic_compare_exchange((p), (o), (n)) ++ __db_atomic_compare_exchange((p), (o), (n)) + static inline int __atomic_inc(db_atomic_t *p) + { + int temp; +@@ -176,7 +176,7 @@ + * http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html + * which configure could be changed to use. + */ +-static inline int __atomic_compare_exchange( ++static inline int __db_atomic_compare_exchange( + db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval) + { + atomic_value_t was; diff --git a/extra/db5.3/db-5.3.28-fcntl-mutexes-bdb4.8.patch b/extra/db5.3/db-5.3.28-fcntl-mutexes-bdb4.8.patch new file mode 100644 index 0000000..068078e --- /dev/null +++ b/extra/db5.3/db-5.3.28-fcntl-mutexes-bdb4.8.patch @@ -0,0 +1,38 @@ +--- db5.3-5.3.28+dfsg2.orig/dist/aclocal/mutex.m4 ++++ db5.3-5.3.28+dfsg2/dist/aclocal/mutex.m4 +@@ -5,7 +5,7 @@ AC_DEFUN(AM_PTHREADS_SHARED, [ + AC_TRY_RUN([ + #include + #include +-main() { ++int main() { + pthread_cond_t cond; + pthread_mutex_t mutex; + pthread_condattr_t condattr; +@@ -49,7 +49,7 @@ AC_DEFUN(AM_PTHREADS_PRIVATE, [ + AC_TRY_RUN([ + #include + #include +-main() { ++int main() { + pthread_cond_t cond; + pthread_mutex_t mutex; + pthread_condattr_t condattr; +@@ -89,7 +89,7 @@ AC_DEFUN(AM_PTHREADS_CONDVAR_DUPINITCHK, + AC_TRY_RUN([ + #include + #include +-main() { ++int main() { + pthread_cond_t cond; + pthread_condattr_t condattr; + exit(pthread_condattr_init(&condattr) || +@@ -110,7 +110,7 @@ AC_DEFUN(AM_PTHREADS_RWLOCKVAR_DUPINITCH + AC_TRY_RUN([ + #include + #include +-main() { ++int main() { + pthread_rwlock_t rwlock; + pthread_rwlockattr_t rwlockattr; + exit(pthread_rwlockattr_init(&rwlockattr) || diff --git a/extra/db5.3/db-5.3.28-lemon_hash.patch b/extra/db5.3/db-5.3.28-lemon_hash.patch new file mode 100644 index 0000000..1556d5d --- /dev/null +++ b/extra/db5.3/db-5.3.28-lemon_hash.patch @@ -0,0 +1,20 @@ +--- db-5.3.28/lang/sql/sqlite/tool/lemon.c.lemon_hash 2013-09-09 17:35:07.000000000 +0200 ++++ db-5.3.28/lang/sql/sqlite/tool/lemon.c 2017-02-22 13:12:08.564106051 +0100 +@@ -3428,7 +3428,7 @@ + int maxdtlength; /* Maximum length of any ".datatype" field. */ + char *stddt; /* Standardized name for a datatype */ + int i,j; /* Loop counters */ +- int hash; /* For hashing the name of a type */ ++ unsigned hash; /* For hashing the name of a type */ + const char *name; /* Name of the parser */ + + /* Allocate and initialize types[] and allocate stddt[] */ +@@ -3491,7 +3491,7 @@ + break; + } + hash++; +- if( hash>=arraysize ) hash = 0; ++ if( hash>=(unsigned)arraysize ) hash = 0; + } + if( types[hash]==0 ){ + sp->dtnum = hash + 1; diff --git a/extra/db5.3/db-5.3.28-libcxx12.patch b/extra/db5.3/db-5.3.28-libcxx12.patch new file mode 100644 index 0000000..6982033 --- /dev/null +++ b/extra/db5.3/db-5.3.28-libcxx12.patch @@ -0,0 +1,105 @@ +--- a/src/dbinc/db_cxx.in ++++ b/src/dbinc/db_cxx.in +@@ -50,6 +50,23 @@ + + #include + ++/* ++ * Berkeley DB's C API exposes atomic_init and store as macros, which ++ * collides with libc++ declarations when db.h is already included. ++ * Hide the macros while pulling in the C++ standard headers, then ++ * restore them for the Berkeley DB interfaces below. ++ */ ++#ifdef atomic_init ++#pragma push_macro("atomic_init") ++#undef atomic_init ++#define DB_CXX_RESTORE_ATOMIC_INIT ++#endif ++#ifdef store ++#pragma push_macro("store") ++#undef store ++#define DB_CXX_RESTORE_STORE ++#endif ++ + @cxx_have_stdheaders@ + #ifdef HAVE_CXX_STDHEADERS + #include +@@ -61,6 +78,15 @@ + #define __DB_STD(x) x + #endif + ++#ifdef DB_CXX_RESTORE_STORE ++#pragma pop_macro("store") ++#undef DB_CXX_RESTORE_STORE ++#endif ++#ifdef DB_CXX_RESTORE_ATOMIC_INIT ++#pragma pop_macro("atomic_init") ++#undef DB_CXX_RESTORE_ATOMIC_INIT ++#endif ++ + #include "db.h" + + class Db; // forward +--- a/lang/cxx/stl/dbstl_exception.h ++++ b/lang/cxx/stl/dbstl_exception.h +@@ -13,9 +13,29 @@ + #include + #include + ++#ifdef atomic_init ++#pragma push_macro("atomic_init") ++#undef atomic_init ++#define DB_STL_RESTORE_ATOMIC_INIT ++#endif ++#ifdef store ++#pragma push_macro("store") ++#undef store ++#define DB_STL_RESTORE_STORE ++#endif ++ + #include + #include + ++#ifdef DB_STL_RESTORE_STORE ++#pragma pop_macro("store") ++#undef DB_STL_RESTORE_STORE ++#endif ++#ifdef DB_STL_RESTORE_ATOMIC_INIT ++#pragma pop_macro("atomic_init") ++#undef DB_STL_RESTORE_ATOMIC_INIT ++#endif ++ + #include "dbstl_common.h" + + START_NS(dbstl) +--- a/lang/cxx/stl/dbstl_element_ref.h ++++ b/lang/cxx/stl/dbstl_element_ref.h +@@ -9,8 +9,28 @@ + #ifndef _DB_STL_KDPAIR_H + #define _DB_STL_KDPAIR_H + ++#ifdef atomic_init ++#pragma push_macro("atomic_init") ++#undef atomic_init ++#define DB_STL_RESTORE_ATOMIC_INIT ++#endif ++#ifdef store ++#pragma push_macro("store") ++#undef store ++#define DB_STL_RESTORE_STORE ++#endif ++ + #include + ++#ifdef DB_STL_RESTORE_STORE ++#pragma pop_macro("store") ++#undef DB_STL_RESTORE_STORE ++#endif ++#ifdef DB_STL_RESTORE_ATOMIC_INIT ++#pragma pop_macro("atomic_init") ++#undef DB_STL_RESTORE_ATOMIC_INIT ++#endif ++ + #include "dbstl_common.h" + #include "dbstl_dbt.h" + #include "dbstl_exception.h" diff --git a/extra/db5.3/db-5.3.28-mmap-high-cpu-usage.patch b/extra/db5.3/db-5.3.28-mmap-high-cpu-usage.patch new file mode 100644 index 0000000..b11ce08 --- /dev/null +++ b/extra/db5.3/db-5.3.28-mmap-high-cpu-usage.patch @@ -0,0 +1,19 @@ +Author: Filip Januš +Date: 6 Sep 2021 +Related: https://bugzilla.redhat.com/show_bug.cgi?id=1992402 +Patch was created based on the discussion in the previous link +diff -ur db-5.3.28/src/os/os_map.c db_patch/src/os/os_map.c +--- db-5.3.28/src/os/os_map.c 2013-09-09 17:35:09.000000000 +0200 ++++ db_patch/src/os/os_map.c 2021-09-09 07:33:12.027328265 +0200 +@@ -213,7 +213,10 @@ + if (rp->max < rp->size) + rp->max = rp->size; + if (ret == 0 && F_ISSET(infop, REGION_CREATE)) { +- if (F_ISSET(dbenv, DB_ENV_REGION_INIT)) ++ ++ rp->size = rp->max; ++ ++ if (F_ISSET(dbenv, DB_ENV_REGION_INIT)) + ret = __db_file_write(env, infop->fhp, + rp->size / MEGABYTE, rp->size % MEGABYTE, 0x00); + else diff --git a/extra/db5.3/db-5.3.28-tls-configure.patch b/extra/db5.3/db-5.3.28-tls-configure.patch new file mode 100644 index 0000000..e6aaa32 --- /dev/null +++ b/extra/db5.3/db-5.3.28-tls-configure.patch @@ -0,0 +1,31 @@ +https://bugs.gentoo.org/898074 +https://bugs.gentoo.org/918936 + +-ignoreme: warning: incompatible pointer to integer conversion passing 'pthread_key_t *' (aka 'unsigned int *') to parameter of type 'pthread_key_t' (aka 'unsigned int'); remove & [-Wint-conversion] ++ignoreme: error: incompatible pointer to integer conversion passing 'pthread_key_t *' (aka 'unsigned int *') to parameter of type 'pthread_key_t' (aka 'unsigned int'); remove & [-Wint-conversion] + 34 | return (void *)pthread_getspecific(&key); + | ^~~~ + /usr/include/pthread.h:1305:49: note: passing argument to parameter '__key' here + 1305 | extern void *pthread_getspecific (pthread_key_t __key) __THROW; + | ^ +-ignoreme: warning: incompatible pointer to integer conversion passing 'pthread_key_t *' (aka 'unsigned int *') to parameter of type 'pthread_key_t' (aka 'unsigned int'); remove & [-Wint-conversion] ++ignoreme: error: incompatible pointer to integer conversion passing 'pthread_key_t *' (aka 'unsigned int *') to parameter of type 'pthread_key_t' (aka 'unsigned int'); remove & [-Wint-conversion] + 37 | pthread_setspecific(&key, p); + | ^~~~ + /usr/include/pthread.h:1308:47: note: passing argument to parameter '__key' here + 1308 | extern int pthread_setspecific (pthread_key_t __key, +--- a/dist/aclocal/tls.m4 ++++ b/dist/aclocal/tls.m4 +@@ -42,10 +42,10 @@ AC_DEFUN([AX_TLS], [ + pthread_key_create(&key, NULL); + } + static void *get_tls() { +- return (void *)pthread_getspecific(&key); ++ return (void *)pthread_getspecific(key); + } + static void set_tls(void *p) { +- pthread_setspecific(&key, p); ++ pthread_setspecific(key, p); + }], [], + [ac_cv_tls=pthread]) + fi diff --git a/extra/db5.3/db-5.3.28_cve-2019-2708.patch b/extra/db5.3/db-5.3.28_cve-2019-2708.patch new file mode 100644 index 0000000..341cb4b --- /dev/null +++ b/extra/db5.3/db-5.3.28_cve-2019-2708.patch @@ -0,0 +1,694 @@ +--- db-18.1.32/src/btree/bt_cursor.c 2019-02-20 03:21:20.000000000 +0530 ++++ db-18.1.40/src/btree/bt_cursor.c 2020-05-29 23:28:22.000000000 +0530 +@@ -282,6 +282,8 @@ + * + * Recno uses the btree bt_ovflsize value -- it's close enough. + */ ++ if (t->bt_minkey == 0) ++ return (DB_RECOVER); + cp->ovflsize = B_MINKEY_TO_OVFLSIZE( + dbp, F_ISSET(dbc, DBC_OPD) ? 2 : t->bt_minkey, dbp->pgsize); + +--- db-18.1.32/src/btree/bt_verify.c 2019-02-20 03:21:20.000000000 +0530 ++++ db-18.1.40/src/btree/bt_verify.c 2020-05-29 23:28:22.000000000 +0530 +@@ -700,7 +700,11 @@ + isbad = 1; + goto err; + default: ++ if (ret == 0) { ++ isbad = 1; ++ ret = DB_VERIFY_FATAL; ++ goto err; ++ } +- DB_ASSERT(env, ret != 0); + break; + } + +@@ -1074,7 +1078,7 @@ + DBT dbta, dbtb, dup_1, dup_2, *p1, *p2, *tmp; + ENV *env; + PAGE *child; ++ db_pgno_t cpgno, grandparent; +- db_pgno_t cpgno; + VRFY_PAGEINFO *pip; + db_indx_t i, *inp; + int adj, cmp, freedup_1, freedup_2, isbad, ret, t_ret; +@@ -1106,7 +1110,8 @@ + + buf1 = buf2 = NULL; + ++ if (LF_ISSET(DB_NOORDERCHK)) ++ return (EINVAL); +- DB_ASSERT(env, !LF_ISSET(DB_NOORDERCHK)); + + dupfunc = (dbp->dup_compare == NULL) ? __bam_defcmp : dbp->dup_compare; + if (TYPE(h) == P_LDUP) +@@ -1115,6 +1120,7 @@ + func = __bam_defcmp; + if (dbp->bt_internal != NULL) { + bt = (BTREE *)dbp->bt_internal; ++ grandparent = bt->bt_root; + if (TYPE(h) == P_IBTREE && (bt->bt_compare != NULL || + dupfunc != __bam_defcmp)) { + /* +@@ -974,8 +980,24 @@ + */ + mpf = dbp->mpf; + child = h; ++ cpgno = pgno; + while (TYPE(child) == P_IBTREE) { ++ if (NUM_ENT(child) == 0) { ++ EPRINT((env, DB_STR_A("1088", ++ "Page %lu: internal page is empty and should not be", ++ "%lu"), (u_long)cpgno)); ++ ret = DB_VERIFY_BAD; ++ goto err; ++ } + bi = GET_BINTERNAL(dbp, child, 0); ++ if (grandparent == bi->pgno) { ++ EPRINT((env, DB_STR_A("5552", ++ "Page %lu: found twice in the btree", ++ "%lu"), (u_long)grandparent)); ++ ret = DB_VERIFY_FATAL; ++ goto err; ++ } else ++ grandparent = cpgno; + cpgno = bi->pgno; + if (child != h && + (ret = __memp_fput(mpf, +@@ -1402,7 +1416,10 @@ + */ + if (dup_1.data == NULL || + dup_2.data == NULL) { ++ if (ovflok) { ++ isbad = 1; ++ goto err; ++ } +- DB_ASSERT(env, !ovflok); + if (pip != NULL) + F_SET(pip, + VRFY_INCOMPLETE); +@@ -1747,9 +1764,10 @@ + (ret = __db_vrfy_ovfl_structure(dbp, vdp, + child->pgno, child->tlen, + flags | DB_ST_OVFL_LEAF)) != 0) { ++ if (ret == DB_VERIFY_BAD) { +- if (ret == DB_VERIFY_BAD) + isbad = 1; ++ break; ++ } else +- else + goto done; + } + +@@ -1823,9 +1841,10 @@ + stflags | DB_ST_TOPLEVEL, + NULL, NULL, NULL)) != 0) { + if (ret == ++ DB_VERIFY_BAD) { +- DB_VERIFY_BAD) + isbad = 1; ++ break; ++ } else +- else + goto err; + } + } +@@ -1969,7 +1988,10 @@ + */ + + /* Otherwise, __db_vrfy_childput would be broken. */ ++ if (child->refcnt < 1) { ++ isbad = 1; ++ goto err; ++ } +- DB_ASSERT(env, child->refcnt >= 1); + + /* + * An overflow referenced more than twice here +@@ -1986,9 +2008,10 @@ + if ((ret = __db_vrfy_ovfl_structure(dbp, + vdp, child->pgno, child->tlen, + flags)) != 0) { ++ if (ret == DB_VERIFY_BAD) { +- if (ret == DB_VERIFY_BAD) + isbad = 1; ++ break; ++ } else +- else + goto done; + } + } +@@ -2026,9 +2049,10 @@ + if ((ret = __bam_vrfy_subtree(dbp, vdp, li->pgno, + i == 0 ? NULL : li, ri, flags, &child_level, + &child_nrecs, NULL)) != 0) { ++ if (ret == DB_VERIFY_BAD) { +- if (ret == DB_VERIFY_BAD) + isbad = 1; ++ break; ++ } else +- else + goto done; + } + +@@ -2929,7 +2953,11 @@ + db_pgno_t current, p; + int err_ret, ret; + ++ if (pgset == NULL) { ++ EPRINT((dbp->env, DB_STR("5542", ++ "Error, database contains no visible pages."))); ++ return (DB_RUNRECOVERY); ++ } +- DB_ASSERT(dbp->env, pgset != NULL); + + mpf = dbp->mpf; + h = NULL; +--- db-18.1.32/src/db/db_conv.c 2019-02-20 03:21:20.000000000 +0530 ++++ db-18.1.40/src/db/db_conv.c 2020-05-29 23:28:22.000000000 +0530 +@@ -493,8 +493,11 @@ + db_indx_t i, *inp, len, tmp; + u_int8_t *end, *p, *pgend; + +- if (pagesize == 0) +- return (0); ++ /* This function is also used to byteswap logs, so ++ * the pagesize might not be an actual page size. ++ */ ++ if (!(pagesize >= 24 && pagesize <= DB_MAX_PGSIZE)) ++ return (EINVAL); + + if (pgin) { + M_32_SWAP(h->lsn.file); +@@ -513,26 +516,41 @@ + pgend = (u_int8_t *)h + pagesize; + + inp = P_INP(dbp, h); +- if ((u_int8_t *)inp >= pgend) +- goto out; ++ if ((u_int8_t *)inp > pgend) ++ return (__db_pgfmt(env, pg)); + + switch (TYPE(h)) { + case P_HASH_UNSORTED: + case P_HASH: + for (i = 0; i < NUM_ENT(h); i++) { ++ if ((u_int8_t*)(inp + i) >= pgend) ++ return (__db_pgfmt(env, pg)); ++ if (inp[i] == 0) ++ continue; + if (pgin) + M_16_SWAP(inp[i]); ++ if (inp[i] >= pagesize) ++ return (__db_pgfmt(env, pg)); + +- if (P_ENTRY(dbp, h, i) >= pgend) +- continue; ++ if (P_ENTRY(dbp, h, i) >= pgend) ++ return (__db_pgfmt(env, pg)); + + switch (HPAGE_TYPE(dbp, h, i)) { + case H_KEYDATA: + break; + case H_DUPLICATE: ++ if (LEN_HITEM(dbp, h, pagesize, i) < ++ HKEYDATA_SIZE(0)) ++ return (__db_pgfmt(env, pg)); ++ + len = LEN_HKEYDATA(dbp, h, pagesize, i); + p = HKEYDATA_DATA(P_ENTRY(dbp, h, i)); +- for (end = p + len; p < end;) { ++ ++ end = p + len; ++ if (end > pgend) ++ return (__db_pgfmt(env, pg)); ++ ++ while (p < end) { + if (pgin) { + P_16_SWAP(p); + memcpy(&tmp, +@@ -544,14 +562,20 @@ + SWAP16(p); + } + p += tmp; ++ if (p >= end) ++ return (__db_pgfmt(env, pg)); + SWAP16(p); + } + break; + case H_OFFDUP: ++ if ((inp[i] + HOFFDUP_SIZE) > pagesize) ++ return (__db_pgfmt(env, pg)); + p = HOFFPAGE_PGNO(P_ENTRY(dbp, h, i)); + SWAP32(p); /* pgno */ + break; + case H_OFFPAGE: ++ if ((inp[i] + HOFFPAGE_SIZE) > pagesize) ++ return (__db_pgfmt(env, pg)); + p = HOFFPAGE_PGNO(P_ENTRY(dbp, h, i)); + SWAP32(p); /* pgno */ + SWAP32(p); /* tlen */ +@@ -559,7 +583,6 @@ + default: + return (__db_pgfmt(env, pg)); + } +- + } + + /* +@@ -576,8 +599,12 @@ + case P_LDUP: + case P_LRECNO: + for (i = 0; i < NUM_ENT(h); i++) { ++ if ((u_int8_t *)(inp + i) >= pgend) ++ return (__db_pgfmt(env, pg)); + if (pgin) + M_16_SWAP(inp[i]); ++ if (inp[i] >= pagesize) ++ return (__db_pgfmt(env, pg)); + + /* + * In the case of on-page duplicates, key information +@@ -597,7 +624,7 @@ + + bk = GET_BKEYDATA(dbp, h, i); + if ((u_int8_t *)bk >= pgend) +- continue; ++ return (__db_pgfmt(env, pg)); + switch (B_TYPE(bk->type)) { + case B_KEYDATA: + M_16_SWAP(bk->len); +@@ -605,6 +632,8 @@ + case B_DUPLICATE: + case B_OVERFLOW: + bo = (BOVERFLOW *)bk; ++ if (((u_int8_t *)bo + BOVERFLOW_SIZE) > pgend) ++ return (__db_pgfmt(env, pg)); + M_32_SWAP(bo->pgno); + M_32_SWAP(bo->tlen); + break; +@@ -618,12 +647,17 @@ + break; + case P_IBTREE: + for (i = 0; i < NUM_ENT(h); i++) { ++ if ((u_int8_t *)(inp + i) > pgend) ++ return (__db_pgfmt(env, pg)); + if (pgin) + M_16_SWAP(inp[i]); ++ if ((u_int16_t)(inp[i] + ++ BINTERNAL_SIZE(0) - 1) > pagesize) ++ break; + + bi = GET_BINTERNAL(dbp, h, i); +- if ((u_int8_t *)bi >= pgend) +- continue; ++ if (((u_int8_t *)bi + BINTERNAL_SIZE(0)) > pgend) ++ return (__db_pgfmt(env, pg)); + + M_16_SWAP(bi->len); + M_32_SWAP(bi->pgno); +@@ -634,6 +668,10 @@ + break; + case B_DUPLICATE: + case B_OVERFLOW: ++ if ((u_int16_t)(inp[i] + ++ BINTERNAL_SIZE(BOVERFLOW_SIZE) - 1) > ++ pagesize) ++ goto out; + bo = (BOVERFLOW *)bi->data; + M_32_SWAP(bo->pgno); + M_32_SWAP(bo->tlen); +@@ -648,12 +686,16 @@ + break; + case P_IRECNO: + for (i = 0; i < NUM_ENT(h); i++) { ++ if ((u_int8_t *)(inp + i) >= pgend) ++ return (__db_pgfmt(env, pg)); + if (pgin) + M_16_SWAP(inp[i]); ++ if (inp[i] >= pagesize) ++ return (__db_pgfmt(env, pg)); + + ri = GET_RINTERNAL(dbp, h, i); +- if ((u_int8_t *)ri >= pgend) +- continue; ++ if ((((u_int8_t *)ri) + RINTERNAL_SIZE) > pgend) ++ return (__db_pgfmt(env, pg)); + + M_32_SWAP(ri->pgno); + M_32_SWAP(ri->nrecs); +--- db-18.1.32/src/db/db_vrfy.c 2019-02-20 03:21:20.000000000 +0530 ++++ db-18.1.40/src/db/db_vrfy.c 2020-05-29 23:28:22.000000000 +0530 +@@ -381,8 +381,10 @@ + vdp, name, 0, lp, rp, flags)) != 0) { + if (t_ret == DB_VERIFY_BAD) + isbad = 1; ++ else { ++ ret = t_ret; ++ goto err; ++ } +- else +- goto err; + } + + /* +@@ -771,9 +773,10 @@ + */ + if ((t_ret = __memp_fget(mpf, &i, + vdp->thread_info, NULL, 0, &h)) != 0) { ++ if ((dbp->type == DB_HASH || +- if (dbp->type == DB_HASH || + (dbp->type == DB_QUEUE && ++ F_ISSET(dbp, DB_AM_INMEM))) && ++ t_ret != DB_RUNRECOVERY) { +- F_ISSET(dbp, DB_AM_INMEM))) { + if ((t_ret = + __db_vrfy_getpageinfo(vdp, i, &pip)) != 0) + goto err1; +@@ -945,6 +948,8 @@ + return (ret == 0 ? t_ret : ret); + } + ++ if (ret == DB_PAGE_NOTFOUND && isbad == 1) ++ ret = 0; + return ((isbad == 1 && ret == 0) ? DB_VERIFY_BAD : ret); + } + +@@ -1581,7 +1586,7 @@ + if (pgno == PGNO_BASE_MD && + dbtype != DB_QUEUE && meta->last_pgno != vdp->last_pgno) { + #ifdef HAVE_FTRUNCATE ++ ret = DB_VERIFY_FATAL; +- isbad = 1; + EPRINT((env, DB_STR_A("0552", + "Page %lu: last_pgno is not correct: %lu != %lu", + "%lu %lu %lu"), (u_long)pgno, +@@ -1622,7 +1627,11 @@ + + env = dbp->env; + pgset = vdp->pgset; ++ if (pgset == NULL) { ++ EPRINT((env, DB_STR("5543", ++ "Error, database contains no visible pages."))); ++ return (DB_RUNRECOVERY); ++ } +- DB_ASSERT(env, pgset != NULL); + + if ((ret = __db_vrfy_getpageinfo(vdp, meta, &pip)) != 0) + return (ret); +@@ -2014,7 +2023,8 @@ + int keyflag, ret, t_ret; + + env = dbp->env; ++ if (!LF_ISSET(DB_SALVAGE)) ++ return (EINVAL); +- DB_ASSERT(env, LF_ISSET(DB_SALVAGE)); + + /* + * !!! +@@ -2126,10 +2136,8 @@ + int (*callback) __P((void *, const void *)); + u_int32_t flags; + { +- ENV *env; +- +- env = dbp->env; +- DB_ASSERT(env, LF_ISSET(DB_SALVAGE)); ++ if (!LF_ISSET(DB_SALVAGE)) ++ return (EINVAL); + + /* If we got this page in the subdb pass, we can safely skip it. */ + if (__db_salvage_isdone(vdp, pgno)) +@@ -2242,8 +2253,8 @@ + ret = t_ret; + break; + case SALVAGE_OVERFLOW: ++ EPRINT((env, DB_STR("5544", "Invalid page type to salvage."))); ++ return (EINVAL); +- DB_ASSERT(env, 0); /* Shouldn't ever happen. */ +- break; + case SALVAGE_HASH: + if ((t_ret = __ham_salvage(dbp, vdp, + pgno, h, handle, callback, flags)) != 0 && ret == 0) +@@ -2256,8 +2267,8 @@ + * Shouldn't happen, but if it does, just do what the + * nice man says. + */ ++ EPRINT((env, DB_STR("5545", "Invalid page type to salvage."))); ++ return (EINVAL); +- DB_ASSERT(env, 0); +- break; + } + if ((t_ret = __memp_fput(mpf, + vdp->thread_info, h, dbp->priority)) != 0 && ret == 0) +@@ -2303,8 +2314,8 @@ + ret = t_ret; + break; + default: ++ EPRINT((env, DB_STR("5546", "Invalid page type to salvage."))); ++ return (EINVAL); +- DB_ASSERT(env, 0); /* Shouldn't ever happen. */ +- break; + } + if ((t_ret = __memp_fput(mpf, + vdp->thread_info, h, dbp->priority)) != 0 && ret == 0) +@@ -2361,7 +2372,10 @@ + + env = dbp->env; + ++ if (himarkp == NULL) { ++ __db_msg(env, "Page %lu index has no end.", (u_long)pgno); ++ return (DB_VERIFY_FATAL); ++ } +- DB_ASSERT(env, himarkp != NULL); + inp = P_INP(dbp, h); + + /* +@@ -2783,7 +2797,11 @@ + goto err; + ovfl_bufsz = bkkey->len + 1; + } ++ if (subdbname == NULL) { ++ EPRINT((env, DB_STR("5547", "Subdatabase cannot be null."))); ++ ret = EINVAL; ++ goto err; ++ } +- DB_ASSERT(env, subdbname != NULL); + memcpy(subdbname, bkkey->data, bkkey->len); + subdbname[bkkey->len] = '\0'; + } +--- db-18.1.32/src/db/db_vrfyutil.c 2019-02-20 03:21:20.000000000 +0530 ++++ db-18.1.40/src/db/db_vrfyutil.c 2020-05-29 23:28:22.000000000 +0530 +@@ -214,7 +214,8 @@ + if ((ret = __db_get(pgdbp, + vdp->thread_info, vdp->txn, &key, &data, 0)) == 0) { + /* Found it. */ ++ if (data.size != sizeof(VRFY_PAGEINFO)) ++ return (DB_VERIFY_FATAL); +- DB_ASSERT(env, data.size == sizeof(VRFY_PAGEINFO)); + pip = data.data; + LIST_INSERT_HEAD(&vdp->activepips, pip, links); + goto found; +@@ -342,7 +343,8 @@ + F_SET(&data, DB_DBT_USERMEM); + + if ((ret = __db_get(dbp, ip, txn, &key, &data, 0)) == 0) { ++ if (data.size != sizeof(int)) ++ return (EINVAL); +- DB_ASSERT(dbp->env, data.size == sizeof(int)); + } else if (ret == DB_NOTFOUND) + val = 0; + else +@@ -382,7 +384,8 @@ + F_SET(&data, DB_DBT_USERMEM); + + if ((ret = __db_get(dbp, ip, txn, &key, &data, 0)) == 0) { ++ if (data.size != sizeof(int)) ++ return (DB_VERIFY_FATAL); +- DB_ASSERT(dbp->env, data.size == sizeof(int)); + } else if (ret != DB_NOTFOUND) + return (ret); + +@@ -419,7 +422,8 @@ + if ((ret = __dbc_get(dbc, &key, &data, DB_NEXT)) != 0) + return (ret); + ++ if (key.size != sizeof(db_pgno_t)) ++ return (DB_VERIFY_FATAL); +- DB_ASSERT(dbc->env, key.size == sizeof(db_pgno_t)); + *pgnop = pgno; + + return (0); +@@ -566,7 +570,8 @@ + if ((ret = __dbc_get(dbc, &key, &data, DB_SET)) != 0) + return (ret); + ++ if (data.size != sizeof(VRFY_CHILDINFO)) ++ return (DB_VERIFY_FATAL); +- DB_ASSERT(dbc->env, data.size == sizeof(VRFY_CHILDINFO)); + *cipp = (VRFY_CHILDINFO *)data.data; + + return (0); +@@ -594,7 +599,8 @@ + if ((ret = __dbc_get(dbc, &key, &data, DB_NEXT_DUP)) != 0) + return (ret); + ++ if (data.size != sizeof(VRFY_CHILDINFO)) ++ return (DB_VERIFY_FATAL); +- DB_ASSERT(dbc->env, data.size == sizeof(VRFY_CHILDINFO)); + *cipp = (VRFY_CHILDINFO *)data.data; + + return (0); +@@ -721,7 +727,8 @@ + return (ret); + + while ((ret = __dbc_get(*dbcp, &key, &data, DB_NEXT)) == 0) { ++ if (data.size != sizeof(u_int32_t)) ++ return (DB_VERIFY_FATAL); +- DB_ASSERT(dbp->env, data.size == sizeof(u_int32_t)); + memcpy(&pgtype, data.data, sizeof(pgtype)); + + if (skip_overflow && pgtype == SALVAGE_OVERFLOW) +@@ -730,8 +737,9 @@ + if ((ret = __dbc_del(*dbcp, 0)) != 0) + return (ret); + if (pgtype != SALVAGE_IGNORE) { ++ if (key.size != sizeof(db_pgno_t) ++ || data.size != sizeof(u_int32_t)) ++ return (DB_VERIFY_FATAL); +- DB_ASSERT(dbp->env, key.size == sizeof(db_pgno_t)); +- DB_ASSERT(dbp->env, data.size == sizeof(u_int32_t)); + + *pgnop = *(db_pgno_t *)key.data; + *pgtypep = *(u_int32_t *)data.data; +--- db-18.1.32/src/db/partition.c 2019-02-20 03:21:20.000000000 +0530 ++++ db-18.1.40/src/db/partition.c 2020-05-29 23:28:22.000000000 +0530 +@@ -461,9 +461,19 @@ + } else + part->nparts = meta->nparts; + } else if (meta->nparts != 0 && part->nparts != meta->nparts) { ++ ret = EINVAL; + __db_errx(env, DB_STR("0656", + "Number of partitions does not match.")); +- ret = EINVAL; ++ goto err; ++ } ++ /* ++ * There is no limit on the number of partitions, but I cannot imagine a real ++ * database having more than 10000. ++ */ ++ if (meta->nparts > 10000) { ++ ret = EINVAL; ++ __db_errx(env, DB_STR_A("5553", ++ "Too many partitions %lu", "%lu"), (u_long)(meta->nparts)); + goto err; + } + +@@ -2106,10 +2116,13 @@ + memcpy(rp->data, key->data, key->size); + B_TSET(rp->type, B_KEYDATA); + } ++vrfy: if ((t_ret = __db_verify(*pdbp, ip, (*pdbp)->fname, ++ NULL, handle, callback, ++ lp, rp, flags | DB_VERIFY_PARTITION)) != 0 && ret == 0) { ++ ret = t_ret; ++ if (ret == ENOENT) ++ break; ++ } +-vrfy: if ((t_ret = __db_verify(*pdbp, ip, (*pdbp)->fname, +- NULL, handle, callback, +- lp, rp, flags | DB_VERIFY_PARTITION)) != 0 && ret == 0) +- ret = t_ret; + } + + err: if (lp != NULL) +--- db-18.1.32/src/hash/hash_page.c 2019-02-20 03:21:20.000000000 +0530 ++++ db-18.1.40/src/hash/hash_page.c 2020-05-29 23:28:22.000000000 +0530 +@@ -869,7 +869,11 @@ + /* Validate that next, prev pointers are OK */ + n = NUM_ENT(p); + dbp = dbc->dbp; ++ if (n % 2 != 0) { ++ __db_errx(dbp->env, DB_STR_A("5549", ++ "Odd number of entries on page: %lu", "%lu"), (u_long)(p->pgno)); ++ return (DB_VERIFY_FATAL); ++ } +- DB_ASSERT(dbp->env, n%2 == 0 ); + + env = dbp->env; + t = dbp->h_internal; +@@ -940,7 +944,12 @@ + if ((ret = __db_prpage(dbp, p, DB_PR_PAGE)) != 0) + return (ret); + #endif ++ if (res >= 0) { ++ __db_errx(env, DB_STR_A("5550", ++ "Odd number of entries on page: %lu", "%lu"), ++ (u_long)p->pgno); ++ return (DB_VERIFY_FATAL); ++ } +- DB_ASSERT(dbp->env, res < 0); + } + + prev = curr; +--- db-18.1.32/src/hash/hash_verify.c 2019-02-20 03:21:20.000000000 +0530 ++++ db-18.1.40/src/hash/hash_verify.c 2020-05-29 23:28:22.000000000 +0530 +@@ -615,7 +615,7 @@ + isbad = 1; + else + goto err; ++ } +- } + + /* + * There may be unused hash pages corresponding to buckets +@@ -746,7 +746,7 @@ + "Page %lu: impossible first page in bucket %lu", "%lu %lu"), + (u_long)pgno, (u_long)bucket)); + /* Unsafe to continue. */ ++ ret = DB_VERIFY_FATAL; +- isbad = 1; + goto err; + } + +@@ -776,7 +776,7 @@ + EPRINT((env, DB_STR_A("1116", + "Page %lu: hash page referenced twice", "%lu"), + (u_long)pgno)); ++ ret = DB_VERIFY_FATAL; +- isbad = 1; + /* Unsafe to continue. */ + goto err; + } else if ((ret = __db_vrfy_pgset_inc(vdp->pgset, +@@ -1307,7 +1307,11 @@ + COMPQUIET(flags, 0); + ip = vdp->thread_info; + ++ if (pgset == NULL) { ++ EPRINT((dbp->env, DB_STR("5548", ++ "Error, database contains no visible pages."))); ++ return (DB_VERIFY_FATAL); ++ } +- DB_ASSERT(dbp->env, pgset != NULL); + + mpf = dbp->mpf; + totpgs = 0; +--- db-18.1.32/src/qam/qam_verify.c 2019-02-20 03:21:20.000000000 +0530 ++++ db-18.1.40/src/qam/qam_verify.c 2020-05-29 23:28:22.000000000 +0530 +@@ -465,7 +465,14 @@ + /* Verify/salvage each page. */ + if ((ret = __db_cursor(dbp, vdp->thread_info, NULL, &dbc, 0)) != 0) + return (ret); +-begin: for (; i <= stop; i++) { ++begin: if ((stop - i) > 100000) { ++ EPRINT((env, DB_STR_A("5551", ++"Warning, many possible extends files (%lu), will take a long time to verify", ++ "%lu"), (u_long)(stop - i))); ++ } ++ for (; i <= stop; i++) { ++ if (i == UINT32_MAX) ++ break; + /* + * If DB_SALVAGE is set, we inspect our database of completed + * pages, and skip any we've already printed in the subdb pass. diff --git a/extra/db5.3/db5.3.toml b/extra/db5.3/db5.3.toml new file mode 100644 index 0000000..7a638fe --- /dev/null +++ b/extra/db5.3/db5.3.toml @@ -0,0 +1,75 @@ +[build] +type = "autotools" + +[build.flags] +configure = [ + "--bindir=/usr/bin/db5.3", + "--includedir=/usr/include/db5.3", + "--enable-compat185", + "--enable-shared", + "--disable-static", + "--enable-cxx", + "--enable-dbm", + "--enable-stl", +] +configure_file = "dist/configure" +post_install = [ + "install -d $DESTDIR/usr/lib/db5.3", + 'rm "$DESTDIR/usr/lib/libdb.so"', + 'rm "$DESTDIR/usr/lib/libdb_cxx.so"', + 'rm "$DESTDIR/usr/lib/libdb_stl.so"', + 'ln -s ../libdb-5.3.so "$DESTDIR/usr/lib/db5.3/libdb.so"', + 'ln -s ../libdb_cxx-5.3.so "$DESTDIR/usr/lib/db5.3/libdb_cxx.so"', + 'ln -s ../libdb_stl-5.3.so "$DESTDIR/usr/lib/db5.3/libdb_stl.so"', + 'rm -r "$DESTDIR/usr/docs"', +] +skip_tests = true +make-build-vars = [ "LIBSO_LIBS=-lpthread" ] + +[dependencies] +runtime = [ + "glibc", + "libunwind", + "libcxx", + "sh", +] + +[[manual_sources]] +files = [ + "db-5.3.21-memp_stat-upstream-fix.patch", + "db-5.3.21-mutex_leak.patch", + "db-5.3.28-lemon_hash.patch", + "db-5.3.28_cve-2019-2708.patch", + "db-5.3.28-mmap-high-cpu-usage.patch", + "db-5.3.28-atomic_compare_exchange.patch", + "db-5.3.28-fcntl-mutexes-bdb4.8.patch", + "db-5.3.28-tls-configure.patch", + "db-5.3.28-libcxx12.patch" +] + +[package] +description = "The Berkeley DB embedded database system v5.3" +homepage = "https://www.oracle.com/technology/software/products/berkeley-db/index.html" +license = "Sleepycat" +name = "db5.3" +version = "5.3.28" + +[[source]] +extract_dir = "$name-$version" +patches = [ + "db-5.3.21-memp_stat-upstream-fix.patch", + "db-5.3.21-mutex_leak.patch", + "db-5.3.28-lemon_hash.patch", + "db-5.3.28_cve-2019-2708.patch", + "db-5.3.28-mmap-high-cpu-usage.patch", + "db-5.3.28-atomic_compare_exchange.patch", + "db-5.3.28-fcntl-mutexes-bdb4.8.patch", + "db-5.3.28-tls-configure.patch", + "db-5.3.28-libcxx12.patch" +] +post_extract = [ + "cp /usr/share/autoconf/build-aux/config.* dist/", + "cd dist && ./s_config", +] +sha256 = "e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628" +url = "https://download.oracle.com/berkeley-db/db-$version.tar.gz" diff --git a/extra/dbus/dbus-user.confd b/extra/dbus/dbus-user.confd new file mode 100644 index 0000000..857307b --- /dev/null +++ b/extra/dbus/dbus-user.confd @@ -0,0 +1,8 @@ +# This file should _only_ export DBUS_SESSION_BUS_ADDRESS and +# shouldn't declare any other variables for now. This allows +# us to source this file from (a) other services which need +# this env and (b) the user's shell configuration files. +# +# See: https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/80734#note_486342 + +export DBUS_SESSION_BUS_ADDRESS="unix:path=$XDG_RUNTIME_DIR/bus" diff --git a/extra/dbus/dbus-user.initd b/extra/dbus/dbus-user.initd new file mode 100644 index 0000000..4b9823e --- /dev/null +++ b/extra/dbus/dbus-user.initd @@ -0,0 +1,9 @@ +#!/sbin/openrc-run + +name="Login Message Bus" +description="D-Bus Login Session Message Bus" + +supervisor=supervise-daemon +command="/usr/bin/dbus-daemon" +command_args="--session --nofork --nopidfile --address=$DBUS_SESSION_BUS_ADDRESS --print-address=3" +notify=fd:3 diff --git a/extra/dbus/dbus.confd b/extra/dbus/dbus.confd new file mode 100644 index 0000000..fb64455 --- /dev/null +++ b/extra/dbus/dbus.confd @@ -0,0 +1,10 @@ +# Configuration for /etc/init.d/dbus + +# Additional arguments to pass to dbus-daemon. +#command_args= + +# Uncomment to use process supervisor. +#supervisor=supervise-daemon + +# Move machine-id generated by dbus-uuidgen +#machine_id=/etc/machine-id diff --git a/extra/dbus/dbus.initd b/extra/dbus/dbus.initd new file mode 100644 index 0000000..f7e1d61 --- /dev/null +++ b/extra/dbus/dbus.initd @@ -0,0 +1,33 @@ +#!/sbin/openrc-run +name="System Message Bus" +description="D-Bus System Message Bus" + +extra_started_commands="reload" + +command="/usr/bin/dbus-daemon" +command_args="--system --nofork --nopidfile --syslog-only ${command_args:-}" +command_background="yes" +pidfile="/run/$RC_SVCNAME.pid" + +depend() { + need localmount + after bootmisc +} + +start_pre() { + checkpath -d -m755 -o "${command_user:-root:messagebus}" /run/dbus || return 1 + + /usr/bin/dbus-uuidgen --ensure="${machine_id:-/etc/machine-id}" +} + +stop_post() { + [ ! -S /run/dbus/system_bus_socket ] || rm -f /run/dbus/system_bus_socket +} + +reload() { + ebegin "Reloading $name configuration" + /usr/bin/dbus-send --print-reply --system --type=method_call \ + --dest=org.freedesktop.DBus \ + / org.freedesktop.DBus.ReloadConfig > /dev/null + eend $? +} diff --git a/extra/dbus/dbus.toml b/extra/dbus/dbus.toml new file mode 100644 index 0000000..cb4d9a3 --- /dev/null +++ b/extra/dbus/dbus.toml @@ -0,0 +1,54 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" +configure = ["-Dsystem_pid_file=/run/dbus/dbus.pid"] +post_install = [ + "install -Dm755 $DEPOT_SPECDIR/dbus.initd $DESTDIR/etc/init.d/dbus", + "install -Dm644 $DEPOT_SPECDIR/dbus.confd $DESTDIR/etc/conf.d/dbus", + "install -Dm755 $DEPOT_SPECDIR/dbus-user.initd $DESTDIR/etc/user/init.d/dbus", + "install -Dm644 $DEPOT_SPECDIR/dbus-user.confd $DESTDIR/etc/user/conf.d/dbus", + "rm -r $DESTDIR/run", + "chmod 4750 $DESTDIR/usr/lib/dbus-daemon-launch-helper", +] +keep = [ "etc/conf.d/dbus", "etc/user/conf.d/dbus" ] +skip_tests = true + +[dependencies] +build = [ + "mallard-ducktype", + "doxygen", + "docbook-xsl", + "meson", + "python", + "xmlto", + "yelp-tools", + "glib2" +] +runtime = [ + "expat", + "glibc", + "libcap-ng", +] + +[[manual_sources]] +files = [ + "dbus.initd", + "dbus.confd", + "dbus-user.initd", + "dbus-user.confd", + "postinstall.sh" +] + +[package] +description = "Freedesktop.org message bus system" +homepage = "https://www.freedesktop.org/wiki/Software/dbus/" +license = "AFL-2.1 OR GPL-2.0-or-later" +name = "dbus" +version = "1.16.2" + +[[source]] +extract_dir = "$name-$version" +sha256 = "0ba2a1a4b16afe7bceb2c07e9ce99a8c2c3508e5dec290dbb643384bd6beb7e2" +url = "https://dbus.freedesktop.org/releases/dbus/dbus-$version.tar.xz" diff --git a/extra/dbus/postinstall.sh b/extra/dbus/postinstall.sh new file mode 100644 index 0000000..436ddd7 --- /dev/null +++ b/extra/dbus/postinstall.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +chown root:messagebus usr/lib/dbus-daemon-launch-helper +exec dbus-uuidgen --ensure=etc/machine-id diff --git a/extra/directx-headers/directx-headers.toml b/extra/directx-headers/directx-headers.toml new file mode 100644 index 0000000..e05c402 --- /dev/null +++ b/extra/directx-headers/directx-headers.toml @@ -0,0 +1,21 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" +configure = ["-Dbuild-test=false"] +no-delete-static = true + +[dependencies] +build = ["meson"] + +[package] +description = "DirectX headers for using D3D12" +homepage = "https://github.com/microsoft/DirectX-Headers" +license = "MIT" +name = "directx-headers" +version = "1.619.1" + +[[source]] +extract_dir = "$name-$version" +url = "https://github.com/microsoft/DirectX-Headers.git#v$version" diff --git a/extra/docbook-sgml/build.sh b/extra/docbook-sgml/build.sh new file mode 100644 index 0000000..72c0ddd --- /dev/null +++ b/extra/docbook-sgml/build.sh @@ -0,0 +1,28 @@ +#!/bin/sh +set -eu +cd . + +DTDDIR="usr/share/sgml/docbook-sgml-4.5" + +sed -i \ + -e '/ISO 8879/d' \ + -e '/gml/d' \ + docbook.cat + +cat >> docbook.cat <<'EOF' + +-- Begin Single Major Version catalog changes -- + +PUBLIC "-//OASIS//DTD DocBook V4.4//EN" "docbook.dtd" +PUBLIC "-//OASIS//DTD DocBook V4.3//EN" "docbook.dtd" +PUBLIC "-//OASIS//DTD DocBook V4.2//EN" "docbook.dtd" +PUBLIC "-//OASIS//DTD DocBook V4.1//EN" "docbook.dtd" +PUBLIC "-//OASIS//DTD DocBook V4.0//EN" "docbook.dtd" + +-- End Single Major Version catalog changes -- + +EOF + +install -dm755 "$DESTDIR/$DTDDIR" +install -m644 docbook.cat "$DESTDIR/$DTDDIR/catalog" +install -m644 ./*.dtd ./*.mod ./*.dcl "$DESTDIR/$DTDDIR" diff --git a/extra/docbook-sgml/docbook-sgml.toml b/extra/docbook-sgml/docbook-sgml.toml new file mode 100644 index 0000000..f0da7f1 --- /dev/null +++ b/extra/docbook-sgml/docbook-sgml.toml @@ -0,0 +1,24 @@ +[build] +type = "custom" + +[dependencies] +runtime = ["sgml-common"] + +[package] +description = "Document type definitions for verification of SGML data files against the DocBook rule set." +homepage = "https://www.docbook.org/sgml/" +license = "LicenseRef-docbook-sgml" +name = "docbook-sgml" +version = "4.5" + +[[source]] +extract_dir = "$name-$version" +sha256 = "8043e514e80c6c19cb146b5d37937d1305bf3abf9b0097c36df7f70f611cdf43" +url = "https://archive.docbook.org/sgml/$version/docbook-$version.zip" + +[[manual_sources]] +files = [ + "postinstall.sh", + "postupdate.sh", + "preremove.sh", +] diff --git a/extra/docbook-sgml/postinstall.sh b/extra/docbook-sgml/postinstall.sh new file mode 100644 index 0000000..8ad828c --- /dev/null +++ b/extra/docbook-sgml/postinstall.sh @@ -0,0 +1,6 @@ +#!/bin/sh +install-catalog --add /etc/sgml/sgml-docbook-dtd-4.5.cat \ + /usr/share/sgml/docbook-sgml-4.5/catalog >/dev/null 2>&1 + +install-catalog --add /etc/sgml/sgml-docbook-dtd-4.5.cat \ + /etc/sgml/sgml-docbook.cat >/dev/null 2>&1 diff --git a/extra/docbook-sgml/postupdate.sh b/extra/docbook-sgml/postupdate.sh new file mode 100644 index 0000000..8ad828c --- /dev/null +++ b/extra/docbook-sgml/postupdate.sh @@ -0,0 +1,6 @@ +#!/bin/sh +install-catalog --add /etc/sgml/sgml-docbook-dtd-4.5.cat \ + /usr/share/sgml/docbook-sgml-4.5/catalog >/dev/null 2>&1 + +install-catalog --add /etc/sgml/sgml-docbook-dtd-4.5.cat \ + /etc/sgml/sgml-docbook.cat >/dev/null 2>&1 diff --git a/extra/docbook-sgml/preremove.sh b/extra/docbook-sgml/preremove.sh new file mode 100644 index 0000000..1ad9f81 --- /dev/null +++ b/extra/docbook-sgml/preremove.sh @@ -0,0 +1,6 @@ +#!/bin/sh +install-catalog --remove /etc/sgml/sgml-docbook-dtd-4.5.cat \ + /usr/share/sgml/docbook-sgml-4.5/catalog >/dev/null 2>&1 + +install-catalog --remove /etc/sgml/sgml-docbook-dtd-4.5.cat \ + /etc/sgml/sgml-docbook.cat >/dev/null 2>&1 diff --git a/extra/doxygen/0001-test-009-bug.patch b/extra/doxygen/0001-test-009-bug.patch new file mode 100644 index 0000000..dd4ed5a --- /dev/null +++ b/extra/doxygen/0001-test-009-bug.patch @@ -0,0 +1,14 @@ +diff --git a/testing/009/bug.xml b/testing/009/bug.xml +index e7aff1d..a8200ff 100644 +--- a/testing/009/bug.xml ++++ b/testing/009/bug.xml +@@ -18,7 +18,8 @@ + Member Bug::foo () + + +- Function buglist item 1 in buglist item 2 in bug ++ Function buglist item 1 in buglist item 2 in bug ++ + + + diff --git a/extra/doxygen/doxygen.toml b/extra/doxygen/doxygen.toml new file mode 100644 index 0000000..8a076a1 --- /dev/null +++ b/extra/doxygen/doxygen.toml @@ -0,0 +1,50 @@ +[build] +type = "cmake" + +[build.flags] +build_dir = "build" +configure = [ + "-W no-dev", + "-Duse_sys_spdlog:BOOL=ON", + "-Duse_sys_sqlite3:BOOL=ON", + "-Duse_sys_fmt:BOOL=ON", + "-Duse_libclang:BOOL=ON", + "-Dbuild_doc:BOOL=OFF", + "-G Ninja", +] +skip_tests = true + +[dependencies] +build = [ + "cmake", + "clang", + "flex", + "python", + "ninja" +] +runtime = [ + "clang", + "fmt", + "glibc", + "libunwind", + "libcxx", + "llvm-libs", + "spdlog", + "sqlite", +] + +[[manual_sources]] +file = "0001-test-009-bug.patch" + +[package] +description = "Documentation system for C++, C, Java, IDL and PHP" +homepage = "http://www.doxygen.nl/" +license = "GPL-2.0-or-later" +name = "doxygen" +version = "1.16.1" + +[[source]] +extract_dir = "$name-$version" +patches = ["0001-test-009-bug.patch"] +sha256 = "201ce33b514ea87cc1697c0dcf829692c2695c1812683a9cc622194b05e263a8" +url = "https://www.doxygen.nl/files/doxygen-$version.src.tar.gz" diff --git a/extra/flac/flac.toml b/extra/flac/flac.toml new file mode 100644 index 0000000..05254b0 --- /dev/null +++ b/extra/flac/flac.toml @@ -0,0 +1,43 @@ +[build] +type = "cmake" + +[build.flags] +build_dir = "build" +configure = [ + "-DBUILD_SHARED_LIBS=ON", + "-DNDEBUG=ON", + "-DWITH_FORTIFY_SOURCE=OFF", + "-DWITH_STACK_PROTECTOR=OFF", + "-G Ninja", +] +make-test-vars = [ "-j1" ] +post_install = [ 'install -Dm 644 src/*/*.m4 -t "$DESTDIR/usr/share/aclocal"' ] + +[dependencies] +build = [ + "cmake", + "nasm", + "ninja", + "pandoc", +] +runtime = [ + "glibc", + "libunwind", + "libcxx", + "libogg", +] + +[package] +description = "Free Lossless Audio Codec" +homepage = "https://xiph.org/flac/" +license = [ + "BSD-3-Clause", + "GPL-2.0-or-later", +] +name = "flac" +version = "1.5.0" + +[[source]] +extract_dir = "$name-$version" +post_extract = ["sed -i 's/FLAC__TEST_LEVEL=1/FLAC__TEST_LEVEL=0/' test/CMakeLists.txt"] +url = "https://github.com/xiph/flac.git#$version" diff --git a/extra/fontconfig/40-fontconfig-config.script b/extra/fontconfig/40-fontconfig-config.script new file mode 100644 index 0000000..60b6cf9 --- /dev/null +++ b/extra/fontconfig/40-fontconfig-config.script @@ -0,0 +1,10 @@ +#!/bin/sh + +while IFS= read -r f; do + link=${1:?}/${f##*/} + if [ -e "$f" ] && [ ! -e "$link" ]; then + ln -s "/$f" "$link" + elif [ ! -e "$f" ] && [ -L "$link" ]; then + rm -f "$link" + fi +done diff --git a/extra/fontconfig/40-fontconfig-config.toml b/extra/fontconfig/40-fontconfig-config.toml new file mode 100644 index 0000000..ddcd61e --- /dev/null +++ b/extra/fontconfig/40-fontconfig-config.toml @@ -0,0 +1,12 @@ +[hook] +name = "fontconfig-config" +description = "Updating fontconfig configuration..." + +[when] +phase = "post" +operation = ["install", "remove"] +paths = ["usr/share/fontconfig/conf.default/*"] + +[exec] +command = "/usr/share/depot.d/scripts/fontconfig/40-fontconfig-config /etc/fonts/conf.d" +needs_paths = true diff --git a/extra/fontconfig/fontconfig-2.17.1-posixify.patch b/extra/fontconfig/fontconfig-2.17.1-posixify.patch new file mode 100644 index 0000000..2b8cb38 --- /dev/null +++ b/extra/fontconfig/fontconfig-2.17.1-posixify.patch @@ -0,0 +1,84 @@ +diff --git a/test/run-test.sh b/test/run-test.sh +index 9b3c91c..73c0d3e 100644 +--- a/test/run-test.sh ++++ b/test/run-test.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # fontconfig/test/run-test.sh + # + # Copyright © 2000 Keith Packard +@@ -84,11 +84,11 @@ fstat() { + ret=$(stat -c "$fmt" "$fn") + else + # BSD +- if [ "x$fmt" == "x%Y" ]; then ++ if [ "x$fmt" = "x%Y" ]; then + ret=$(stat -f "%m" "$fn") +- elif [ "x$fmt" == "x%y" ]; then ++ elif [ "x$fmt" = "x%y" ]; then + ret=$(stat -f "%Sm" -t "%F %T %z" "$fn") +- elif [ "x$fmt" == "x%n %s %y %z" ]; then ++ elif [ "x$fmt" = "x%n %s %y %z" ]; then + ret=$(stat -f "%SN %z %Sm %Sc" -t "%F %T %z" "$fn") + else + echo "E: Unknown format" +diff --git a/test/run-test-map.sh b/test/run-test-map.sh +index 869d7b2..c634bb8 100755 +--- a/test/run-test-map.sh ++++ b/test/run-test-map.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # fontconfig/test/run-test-cache-map.sh + # + # Copyright © 2018 Keith Packard +@@ -41,9 +41,8 @@ EXPECTED="out-map.expected" + FCLIST=../fc-list/fc-list$EXEEXT + FCCACHE=../fc-cache/fc-cache$EXEEXT + +-which bwrap > /dev/null 2>&1 +-if [ $? -eq 0 ]; then +- BWRAP=`which bwrap` ++if command -v bwrap > /dev/null 2>&1; then ++ BWRAP=$(command -v bwrap) + fi + + FONT1=$TESTDIR/4x6.pcf +diff --git a/test/wrapper-script.sh b/test/wrapper-script.sh +index 94dcb85..ae68c6d 100755 +--- a/test/wrapper-script.sh ++++ b/test/wrapper-script.sh +@@ -1,20 +1,24 @@ +-#! /bin/bash ++#! /bin/sh + + CC=${CC:-gcc} + + case "$1" in + *.exe) + export WINEPATH=$(${CC} -print-sysroot)/mingw/bin +- fccwd=`pwd` +- cd $(IFS=:;for i in $PATH; do echo $i|grep mingw> /dev/null; [ $? -eq 0 ] && echo $i; done) +- if [ "x$(dirname $@)" = "x." ]; then +- /usr/bin/env wine $fccwd/$@ ++ fccwd=$(pwd) ++ mingw_path=$(IFS=:; for i in $PATH; do ++ case "$i" in ++ *mingw*) printf '%s\n' "$i"; break ;; ++ esac ++ done) ++ cd "$mingw_path" || exit 1 ++ if [ "$(dirname -- "$1")" = "." ]; then ++ /usr/bin/env wine "$fccwd/$1" + else +- /usr/bin/env wine $@ ++ /usr/bin/env wine "$@" + fi + ;; + *) +- $@ ++ "$@" + ;; + esac +- diff --git a/extra/fontconfig/fontconfig-hook.toml b/extra/fontconfig/fontconfig-hook.toml new file mode 100644 index 0000000..a42b908 --- /dev/null +++ b/extra/fontconfig/fontconfig-hook.toml @@ -0,0 +1,16 @@ +[hook] +name = "fontconfig-cache" +description = "Updating fontconfig cache..." + +[when] +phase = "post" +operation = ["install", "upgrade", "remove"] +paths = [ + "etc/fonts/conf.d/*", + "usr/share/fonts/*", + "usr/share/fontconfig/conf.avail/*", + "usr/share/fontconfig/conf.default/*", +] + +[exec] +command = "/usr/bin/fc-cache -s" diff --git a/extra/fontconfig/fontconfig.toml b/extra/fontconfig/fontconfig.toml new file mode 100644 index 0000000..176061f --- /dev/null +++ b/extra/fontconfig/fontconfig.toml @@ -0,0 +1,57 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" +configure = [ + "--wrap-mode=nofallback", + "-Dbitmap-conf=noinstall", + "-Ddefault-sub-pixel-rendering=noinstall", + "-Ddoc-html=disabled", + "-Ddoc-pdf=disabled", + "-Ddoc-txt=disabled", +] +post_install = [ + 'mkdir -p "$DESTDIR/usr/share/fontconfig/conf.default"', + 'for _f in "$DESTDIR"/etc/fonts/conf.d/*.conf; do [ -e "$_f" ] || continue; ln -sf "../conf.avail/${_f##*/}" "$DESTDIR/usr/share/fontconfig/conf.default/${_f##*/}"; rm -f "$_f"; done', + 'install -Dm644 "$DEPOT_SPECDIR/40-fontconfig-config.toml" -t "$DESTDIR/usr/share/depot.d/hooks"', + 'install -Dm644 "$DEPOT_SPECDIR/fontconfig-hook.toml" -t "$DESTDIR/usr/share/depot.d/hooks"', + 'install -D "$DEPOT_SPECDIR/40-fontconfig-config.script" "$DESTDIR/usr/share/depot.d/scripts/fontconfig/40-fontconfig-config"', +] +keep = [ "etc/fonts/fonts.conf" ] + +[dependencies] +build = [ + "docbook-sgml", + "gperf", + "meson", + "perl-sgmls", +] +runtime = [ + "sh", + "expat", + "freetype2", + "glibc", +] + +[[manual_sources]] +files = [ + "40-fontconfig-config.script", + "40-fontconfig-config.toml", + "fontconfig-hook.toml", + "postinstall.sh", + "postupdate.sh", + "fontconfig-2.17.1-posixify.patch" +] + +[package] +description = "Library for configuring and customizing font access" +homepage = "https://www.freedesktop.org/wiki/Software/fontconfig/" +license = "HPND AND Unicode-DFS-2016" +name = "fontconfig" +version = "2.17.1" + +[[source]] +extract_dir = "$name-$version" +url = "https://gitlab.freedesktop.org/api/v4/projects/890/packages/generic/fontconfig/$version/fontconfig-$version.tar.xz" +patches = [ "fontconfig-2.17.1-posixify.patch" ] diff --git a/extra/fontconfig/postinstall.sh b/extra/fontconfig/postinstall.sh new file mode 100644 index 0000000..bb7c12c --- /dev/null +++ b/extra/fontconfig/postinstall.sh @@ -0,0 +1 @@ +/usr/bin/fc-cache -rs diff --git a/extra/fontconfig/postupdate.sh b/extra/fontconfig/postupdate.sh new file mode 100644 index 0000000..bb7c12c --- /dev/null +++ b/extra/fontconfig/postupdate.sh @@ -0,0 +1 @@ +/usr/bin/fc-cache -rs diff --git a/extra/freeglut/freeglut.toml b/extra/freeglut/freeglut.toml new file mode 100644 index 0000000..097929b --- /dev/null +++ b/extra/freeglut/freeglut.toml @@ -0,0 +1,33 @@ +[build] +type = "cmake" + +[build.flags] +build_dir = "build" +configure = [ "-DFREEGLUT_BUILD_STATIC_LIBS=OFF", "-G Ninja" ] + +[dependencies] +build = [ + "cmake", + "ninja", + "mesa", +] +runtime = [ + "glibc", + "glu", + "libxxf86vm", + "libxi", + "libx11", + "libxrandr", + "libgl", +] + +[package] +description = "Free OpenGL Utility Toolkit" +homepage = "https://freeglut.sourceforge.net/" +license = "X11" +name = "freeglut" +version = "3.8.0" + +[[source]] +extract_dir = "$name-$version" +url = "https://github.com/FreeGLUTProject/freeglut#v$version" diff --git a/extra/freetype2/0001-Enable-table-validation-modules.patch b/extra/freetype2/0001-Enable-table-validation-modules.patch new file mode 100644 index 0000000..28e0a1b --- /dev/null +++ b/extra/freetype2/0001-Enable-table-validation-modules.patch @@ -0,0 +1,42 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Tue, 23 Jun 2015 08:40:29 +0200 +Subject: [PATCH] Enable table validation modules + +--- + modules.cfg | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.cfg b/modules.cfg +index fa8592b15171..cc97ec1af50a 100644 +--- a/modules.cfg ++++ b/modules.cfg +@@ -117,26 +117,26 @@ AUX_MODULES += cache + + # TrueType GX/AAT table validation. Needs `ftgxval.c' below. + # +-# AUX_MODULES += gxvalid ++AUX_MODULES += gxvalid + + # Support for streams compressed with gzip (files with suffix .gz). + # + # See include/freetype/ftgzip.h for the API. + AUX_MODULES += gzip + + # Support for streams compressed with LZW (files with suffix .Z). + # + # See include/freetype/ftlzw.h for the API. + AUX_MODULES += lzw + + # Support for streams compressed with bzip2 (files with suffix .bz2). + # + # See include/freetype/ftbzip2.h for the API. + AUX_MODULES += bzip2 + + # OpenType table validation. Needs `ftotval.c' below. + # +-# AUX_MODULES += otvalid ++AUX_MODULES += otvalid + + # Auxiliary PostScript driver component to share common code. + # diff --git a/extra/freetype2/0002-Enable-subpixel-rendering.patch b/extra/freetype2/0002-Enable-subpixel-rendering.patch new file mode 100644 index 0000000..9d9381b --- /dev/null +++ b/extra/freetype2/0002-Enable-subpixel-rendering.patch @@ -0,0 +1,22 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Tue, 23 Jun 2015 08:43:07 +0200 +Subject: [PATCH] Enable subpixel rendering + +--- + include/freetype/config/ftoption.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h +index fadfb918742e..6a1f8125dafb 100644 +--- a/include/freetype/config/ftoption.h ++++ b/include/freetype/config/ftoption.h +@@ -123,7 +123,7 @@ FT_BEGIN_HEADER + * When this macro is not defined, FreeType offers alternative LCD + * rendering technology that produces excellent output. + */ +-/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */ ++#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING + + + /************************************************************************** diff --git a/extra/freetype2/0003-Enable-long-PCF-family-names.patch b/extra/freetype2/0003-Enable-long-PCF-family-names.patch new file mode 100644 index 0000000..a759131 --- /dev/null +++ b/extra/freetype2/0003-Enable-long-PCF-family-names.patch @@ -0,0 +1,22 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Sun, 14 May 2017 18:09:31 +0200 +Subject: [PATCH] Enable long PCF family names + +--- + include/freetype/config/ftoption.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h +index 6a1f8125dafb..9e52bad707ed 100644 +--- a/include/freetype/config/ftoption.h ++++ b/include/freetype/config/ftoption.h +@@ -934,7 +934,7 @@ FT_BEGIN_HEADER + * If this option is activated, it can be controlled with the + * `no-long-family-names` property of the 'pcf' driver module. + */ +-/* #define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES */ ++#define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES + + + /*************************************************************************/ diff --git a/extra/freetype2/freetype2.sh b/extra/freetype2/freetype2.sh new file mode 100644 index 0000000..febb62d --- /dev/null +++ b/extra/freetype2/freetype2.sh @@ -0,0 +1,11 @@ +# Subpixel hinting mode can be chosen by setting the right TrueType interpreter +# version. The available settings are: +# +# truetype:interpreter-version=35 # Classic mode (default in 2.6) +# truetype:interpreter-version=40 # Minimal mode (default in 2.7) +# +# There are more properties that can be set, separated by whitespace. Please +# refer to the FreeType documentation for details. + +# Uncomment and configure below +#export FREETYPE_PROPERTIES="truetype:interpreter-version=40" diff --git a/extra/freetype2/freetype2.toml b/extra/freetype2/freetype2.toml new file mode 100644 index 0000000..7ef92ba --- /dev/null +++ b/extra/freetype2/freetype2.toml @@ -0,0 +1,55 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" +configure = [ + "-Dfreetype2:default_library=shared", + "-Dfreetype2:error_strings=true", + "-Dfreetype2:harfbuzz=dynamic", +] +post_install = ['install -Dm644 $DEPOT_SPECDIR/freetype2.sh -t "$DESTDIR/etc/profile.d"'] +keep = [ "etc/profile.d/freetype2.sh" ] + +[dependencies] +build = [ + "glib2", + "libunwind", + "libcxx", + "libx11", + "meson", + "harfbuzz", + "cairo" +] +runtime = [ + "brotli", + "bzip2", + "glibc", + "libpng", + "zlib-ng", + "harfbuzz" +] + +[[manual_sources]] +files = [ + "0001-Enable-table-validation-modules.patch", + "0002-Enable-subpixel-rendering.patch", + "0003-Enable-long-PCF-family-names.patch", +] + +[package] +description = "Font rasterization library" +homepage = "https://www.freetype.org/" +license = "FTL OR GPL-2.0-or-later" +name = "freetype2" +version = "2.14.2" + +[[source]] +extract_dir = "$name-$version" +patches = [ + "0001-Enable-table-validation-modules.patch", + "0002-Enable-subpixel-rendering.patch", + "0003-Enable-long-PCF-family-names.patch", +] +sha256 = "4b62dcab4c920a1a860369933221814362e699e26f55792516d671e6ff55b5e1" +url = "https://download-mirror.savannah.gnu.org/releases/freetype/freetype-$version.tar.xz" diff --git a/extra/glib2/0001-glib-compile-schemas-Remove-noisy-deprecation-warnin.patch b/extra/glib2/0001-glib-compile-schemas-Remove-noisy-deprecation-warnin.patch new file mode 100644 index 0000000..3bb1b98 --- /dev/null +++ b/extra/glib2/0001-glib-compile-schemas-Remove-noisy-deprecation-warnin.patch @@ -0,0 +1,40 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Fri, 7 Jan 2022 18:59:10 +0000 +Subject: [PATCH] glib-compile-schemas: Remove noisy deprecation warnings + +While the warnings are useful for developers, Arch Linux users also see +them when glib-compile-schemas gets run after upgrades, where they just +add noise. + +The alternative to this patch would be redirecting the compiler's stderr +to /dev/null, but that might also suppress more useful errors or +warnings we want users to see. +--- + gio/glib-compile-schemas.c | 13 ------------- + 1 file changed, 13 deletions(-) + +diff --git a/gio/glib-compile-schemas.c b/gio/glib-compile-schemas.c +index 81e675f53e8b..1a10a8d098c5 100644 +--- a/gio/glib-compile-schemas.c ++++ b/gio/glib-compile-schemas.c +@@ -1232,19 +1232,6 @@ parse_state_start_schema (ParseState *state, + return; + } + +- if (path && (g_str_has_prefix (path, "/apps/") || +- g_str_has_prefix (path, "/desktop/") || +- g_str_has_prefix (path, "/system/"))) +- { +- gchar *message = NULL; +- message = g_strdup_printf (_("Warning: Schema “%s” has path “%s”. " +- "Paths starting with " +- "“/apps/”, “/desktop/” or “/system/” are deprecated."), +- id, path); +- g_printerr ("%s\n", message); +- g_free (message); +- } +- + state->schema_state = schema_state_new (path, gettext_domain, + extends, extends_name, list_of); + diff --git a/extra/glib2/0002-gdesktopappinfo-Add-more-known-terminals.patch b/extra/glib2/0002-gdesktopappinfo-Add-more-known-terminals.patch new file mode 100644 index 0000000..f2c5d9c --- /dev/null +++ b/extra/glib2/0002-gdesktopappinfo-Add-more-known-terminals.patch @@ -0,0 +1,51 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Fabian Bornschein +Date: Wed, 19 Feb 2025 09:05:01 +0100 +Subject: [PATCH] gdesktopappinfo: Add more known terminals + +--- + gio/gdesktopappinfo.c | 3 +++ + gio/tests/desktop-app-info.c | 9 +++++++++ + 2 files changed, 12 insertions(+) + +diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c +index 1e5a752ac6d9..4569e272b1cc 100644 +--- a/gio/gdesktopappinfo.c ++++ b/gio/gdesktopappinfo.c +@@ -2720,6 +2720,9 @@ prepend_terminal_to_vector (int *argc, + const char *exec_arg; + } known_terminals[] = { + { "xdg-terminal-exec", NULL }, ++ { "ghostty", "-e" }, ++ { "ptyxis", "--" }, ++ { "app.devsuite.Ptyxis", "--" }, + { "kgx", "-e" }, + { "gnome-terminal", "--" }, + { "mate-terminal", "-x" }, +diff --git a/gio/tests/desktop-app-info.c b/gio/tests/desktop-app-info.c +index aa705f9a4c0e..ae3272c56040 100644 +--- a/gio/tests/desktop-app-info.c ++++ b/gio/tests/desktop-app-info.c +@@ -1418,6 +1418,12 @@ get_terminal_divider (const char *terminal_name) + { + if (g_str_equal (terminal_name, "xdg-terminal-exec")) + return NULL; ++ if (g_str_equal (terminal_name, "ghostty")) ++ return "-e"; ++ if (g_str_equal (terminal_name, "ptyxis")) ++ return "--"; ++ if (g_str_equal (terminal_name, "app.devsuite.Ptyxis")) ++ return "--"; + if (g_str_equal (terminal_name, "kgx")) + return "-e"; + if (g_str_equal (terminal_name, "gnome-terminal")) +@@ -1940,6 +1946,9 @@ main (int argc, + guint i; + const gchar *supported_terminals[] = { + "xdg-terminal-exec", ++ "ghostty", ++ "ptyxis", ++ "app.devsuite.Ptyxis", + "kgx", + "gnome-terminal", + "mate-terminal", diff --git a/extra/glib2/gio-querymodules.toml b/extra/glib2/gio-querymodules.toml new file mode 100644 index 0000000..8253363 --- /dev/null +++ b/extra/glib2/gio-querymodules.toml @@ -0,0 +1,11 @@ +[hook] +name = "gio-querymodules" +description = "Update the GIO module cache" + +[when] +phase = "post" +operation = ["install", "update", "remove"] +paths = ["usr/lib/gio/modules/*.so"] + +[exec] +command = "gio-querymodules /usr/lib/gio/modules" diff --git a/extra/glib2/glib-compile-schemas.toml b/extra/glib2/glib-compile-schemas.toml new file mode 100644 index 0000000..d8af4eb --- /dev/null +++ b/extra/glib2/glib-compile-schemas.toml @@ -0,0 +1,14 @@ +[hook] +name = "glib-compile-schemas" +description = "Compile GSettings XML schema files" + +[when] +phase = "post" +operation = ["install", "update", "remove"] +paths = [ + "usr/share/glib-2.0/schemas/*.xml", + "usr/share/glib-2.0/schemas/*.override", +] + +[exec] +command = "glib-compile-schemas /usr/share/glib-2.0/schemas" diff --git a/extra/glib2/glib2.toml b/extra/glib2/glib2.toml new file mode 100644 index 0000000..9b27fd0 --- /dev/null +++ b/extra/glib2/glib2.toml @@ -0,0 +1,68 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" +configure = [ + "-Ddtrace=disabled", + "-Dglib_debug=disabled", + "-Dintrospection=enabled", + "-Dman-pages=enabled", + "-Dselinux=disabled", + "-Dsysprof=disabled", + "-Dsystemtap=disabled", +] +post_install = [ + 'install -Dt "$DESTDIR/usr/share/depot.d/hooks" -m644 $DEPOT_SPECDIR/gio-querymodules.toml', + """install -Dt "$DESTDIR/usr/share/depot.d/hooks" -m644 $DEPOT_SPECDIR/glib-compile-schemas.toml""", + 'touch "$DESTDIR/usr/lib/gio/modules/.keep"', + 'python -m compileall -d /usr/share/glib-2.0/codegen "$DESTDIR/usr/share/glib-2.0/codegen"', + 'python -O -m compileall -d /usr/share/glib-2.0/codegen "$DESTDIR/usr/share/glib-2.0/codegen"', +] +skip_tests = true + +[dependencies] +build = [ + "gettext", + "meson", + "libelf", + "shared-mime-info", + "python", + "python-docutils", + "python-packaging", + "util-linux", + "gobject-introspection", +] +runtime = [ + "sh", + "glibc", + "libffi", + "pcre2", + "util-linux", + "zlib-ng", +] + +[[manual_sources]] +files = [ + "0001-glib-compile-schemas-Remove-noisy-deprecation-warnin.patch", + "0002-gdesktopappinfo-Add-more-known-terminals.patch", + "gio-querymodules.toml", + "glib-compile-schemas.toml" +] + +[package] +description = "Low-level core library that forms the basis for projects such as GTK and GNOME." +homepage = "https://gitlab.gnome.org/GNOME/glib" +license = "LGPL-2.1-or-later" +name = "glib2" +version = "2.86.4" + +[[source]] +extract_dir = "$name-$version" +patches = [ + "0001-glib-compile-schemas-Remove-noisy-deprecation-warnin.patch", + "0002-gdesktopappinfo-Add-more-known-terminals.patch", +] +url = "https://download.gnome.org/sources/glib/2.86/glib-$version.tar.xz" +sha256 = "md5:f2233a826c952aaae42b4a61611a06a4" +post_extract = [ " diff --git a/extra/glslang/build.sh b/extra/glslang/build.sh new file mode 100644 index 0000000..2f1d26a --- /dev/null +++ b/extra/glslang/build.sh @@ -0,0 +1,28 @@ + cmake \ + -Bbuild-static \ + -GNinja \ + -DCMAKE_INSTALL_PREFIX='/usr' \ + -DCMAKE_BUILD_TYPE='None' \ + -DALLOW_EXTERNAL_SPIRV_TOOLS='ON' \ + -DBUILD_SHARED_LIBS='OFF' + cmake --build build-static + + cmake \ + -Bbuild-shared \ + -GNinja \ + -DCMAKE_INSTALL_PREFIX='/usr' \ + -DCMAKE_BUILD_TYPE='None' \ + -DALLOW_EXTERNAL_SPIRV_TOOLS='ON' \ + -DBUILD_SHARED_LIBS='ON' \ + -DGLSLANG_TESTS='ON' + cmake --build build-shared + +DESTDIR="$DESTDIR" cmake --install build-static +DESTDIR="$DESTDIR" cmake --install build-shared + + +cd "$DESTDIR/usr/lib" || exit 1 +for lib in *.so; do + [ -e "$lib" ] || continue + ln -sf "$lib" "$lib.0" +done diff --git a/extra/glslang/glslang.toml b/extra/glslang/glslang.toml new file mode 100644 index 0000000..a09bb21 --- /dev/null +++ b/extra/glslang/glslang.toml @@ -0,0 +1,30 @@ +[build] +type = "custom" + +[build.flags] +no-delete-static = true +CXXFLAGS += [ "-ffat-lto-objects" ] + +[dependencies] +build = [ + "cmake", + "ninja", + "spirv-headers", + "python", +] +runtime = [ + "glibc", + "libcxx", + "spirv-tools", +] + +[package] +description = "OpenGL and OpenGL ES shader front end and validator" +homepage = "https://github.com/KhronosGroup/glslang" +license = "BSD-3-Clause" +name = "glslang" +version = "1.4.341.0" + +[[source]] +extract_dir = "$name-$version" +url = "https://github.com/KhronosGroup/glslang#vulkan-sdk-$version" diff --git a/extra/glu/glu.toml b/extra/glu/glu.toml new file mode 100644 index 0000000..eb068df --- /dev/null +++ b/extra/glu/glu.toml @@ -0,0 +1,31 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" +configure = ["-Ddefault_library=shared"] + +[dependencies] +build = ["meson"] +runtime = [ + "libgl", + "glibc", + "libcxx", + "libunwind", +] + +[package] +description = "Mesa OpenGL utility library" +homepage = "https://gitlab.freedesktop.org/mesa/glu" +license = [ + "MIT", + "SGI-B-2.0", +] +name = "glu" +version = "9.0.3" + +[[source]] +extract_dir = "$name-$version" +sha256 = "bd43fe12f374b1192eb15fe20e45ff456b9bc26ab57f0eee919f96ca0f8a330f" +url = "https://mesa.freedesktop.org/archive/glu/glu-$version.tar.xz" +post_extract = [ "echo 'SGI-B-2.0 and MIT' > ./LICENSE" ] diff --git a/extra/gobject-introspection/gobject-introspection.toml b/extra/gobject-introspection/gobject-introspection.toml new file mode 100644 index 0000000..7321ad2 --- /dev/null +++ b/extra/gobject-introspection/gobject-introspection.toml @@ -0,0 +1,39 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" +post_install = [ + "python -m compileall -d /usr/lib/gobject-introspection usr/lib/gobject-introspection", + "python -O -m compileall -d /usr/lib/gobject-introspection usr/lib/gobject-introspection", +] + +[dependencies] +build = [ + "meson", + "python-sphinx", +] +runtime = [ + "glibc", + "glib2", + "libffi", + "python", + "python-mako", + "python-markdown", + "python-setuptools", +] + +[package] +description = "Introspection system for GObject-based libraries" +homepage = "https://wiki.gnome.org/Projects/GObjectIntrospection" +license = [ + "GPL-2.0-or-later", + "LGPL-2.0-or-later", +] +name = "gobject-introspection" +version = "1.86.0" + +[[source]] +extract_dir = "$name-$version" +sha256 = "920d1a3fcedeadc32acff95c2e203b319039dd4b4a08dd1a2dfd283d19c0b9ae" +url = "https://download.gnome.org/sources/gobject-introspection/1.86/gobject-introspection-$version.tar.xz" diff --git a/extra/gsfonts/build.sh b/extra/gsfonts/build.sh new file mode 100644 index 0000000..3d106ee --- /dev/null +++ b/extra/gsfonts/build.sh @@ -0,0 +1,14 @@ +#!/bin/sh +set -eu + +patch -Np1 -i ../3c0ba3b5687632dfc66526544a4e811fe0ec0cd9.patch + +install -vDm 644 fonts/*.otf -t "$DESTDIR/usr/share/fonts/gsfonts/" +install -vDm 644 appstream/*.xml -t "$DESTDIR/usr/share/metainfo/" + +install -vdm 755 "$DESTDIR/usr/share/fontconfig/conf.default/" +for _config in fontconfig/*.conf; do + _config_path="$DESTDIR/usr/share/fontconfig/conf.avail/69-${_config##*/}" + install -vDm 644 "$_config" "$_config_path" + ln -srf "$_config_path" "$DESTDIR/usr/share/fontconfig/conf.default/" +done diff --git a/extra/gsfonts/gsfonts.toml b/extra/gsfonts/gsfonts.toml new file mode 100644 index 0000000..753b4dc --- /dev/null +++ b/extra/gsfonts/gsfonts.toml @@ -0,0 +1,17 @@ +[build] +type = "custom" + +[[manual_sources]] +url = "https://github.com/ArtifexSoftware/urw-base35-fonts/commit/3c0ba3b5687632dfc66526544a4e811fe0ec0cd9.patch" + +[package] +description = "(URW)++ base 35 font set" +homepage = "https://github.com/ArtifexSoftware/urw-base35-fonts" +license = "AGPL-3.0-only WITH PS-or-PDF-font-exception-20170817" +name = "gsfonts" +version = "20200910" + +[[source]] +extract_dir = "$name-$version" +sha256 = "e0d9b7f11885fdfdc4987f06b2aa0565ad2a4af52b22e5ebf79e1a98abd0ae2f" +url = "https://github.com/ArtifexSoftware/urw-base35-fonts/archive/$version/urw-base35-fonts-$version.tar.gz" diff --git a/extra/gtk-doc/gtk-doc.toml b/extra/gtk-doc/gtk-doc.toml new file mode 100644 index 0000000..28d727e --- /dev/null +++ b/extra/gtk-doc/gtk-doc.toml @@ -0,0 +1,36 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" +skip_tests = true + +[dependencies] +build = [ + "yelp-tools", + "meson", +] +runtime = [ + "docbook-xml", + "sh", + "docbook-xsl", + "glib2", + "python", + "python-lxml", + "python-pygments", + "python-parameterized" +] + +[package] +description = "Documentation tool for public library API" +homepage = "https://gitlab.gnome.org/GNOME/gtk-doc" +license = [ + "GFDL-1.1-or-later", + "GPL-2.0-or-later", +] +name = "gtk-doc" +version = "1.36.0" + +[[source]] +extract_dir = "$name-$version" +url = "https://gitlab.gnome.org/GNOME/gtk-doc.git#$version" diff --git a/extra/harfbuzz/harfbuzz.toml b/extra/harfbuzz/harfbuzz.toml new file mode 100644 index 0000000..ab1f3da --- /dev/null +++ b/extra/harfbuzz/harfbuzz.toml @@ -0,0 +1,47 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" +configure = ["-Dcpp_std=c++17"] +replace_cflags = [ "-fexceptions=" ] +replace_cxxflags = [ "-fexceptions=" ] + +[dependencies] +build = [ + "freetype2", + "gobject-introspection", + "gtk-doc", + "help2man", + "icu78", + "libpng", + "libcxx", + "meson", + "python", + "ragel", + "cairo" +] +runtime = [ + "freetype2", + "glib2", + "glibc", + "libpng", + "zlib-ng", + "graphite" +] +test = [ + "python-setuptools", + "python-fonttools", +] + +[package] +description = "OpenType text shaping engine" +homepage = "https://harfbuzz.github.io/" +license = "MIT" +name = "harfbuzz" +version = "13.2.1" + +[[source]] +extract_dir = "$name-$version" +sha256 = "6695da3eb7e1be0aa3092fe4d81433a33b47f4519259c759d729e3a9a55c1429" +url = "https://github.com/harfbuzz/harfbuzz/releases/download/$version/harfbuzz-$version.tar.xz" diff --git a/extra/hidapi/hidapi.toml b/extra/hidapi/hidapi.toml new file mode 100644 index 0000000..a2bb8ba --- /dev/null +++ b/extra/hidapi/hidapi.toml @@ -0,0 +1,28 @@ +[build] +type = "cmake" + +[build.flags] +configure = [ "-DHIDAPI_WITH_HIDRAW=OFF", "-DHIDAPI_WITH_LIBUSB=ON" ] + +[dependencies] +build = [ + "cmake", + "libusb", +] +runtime = ["glibc"] + +[package] +description = "Simple library for communicating with USB and Bluetooth HID devices" +homepage = "https://github.com/libusb/hidapi" +license = [ + "BSD-3-Clause", + "GPL-3.0-or-Later", + "HIDAPI", +] +name = "hidapi" +version = "0.15.0" + +[[source]] +extract_dir = "$name-$version" +sha256 = "5d84dec684c27b97b921d2f3b73218cb773cf4ea915caee317ac8fc73cef8136" +url = "https://github.com/libusb/hidapi/archive/hidapi-$version.tar.gz" diff --git a/extra/hwdata/hwdata.toml b/extra/hwdata/hwdata.toml new file mode 100644 index 0000000..722d2b6 --- /dev/null +++ b/extra/hwdata/hwdata.toml @@ -0,0 +1,17 @@ +[build] +type = "autotools" + +[build.flags] +configure = ["--disable-blacklist"] +skip_tests = true + +[package] +description = "hardware identification databases" +homepage = "https://github.com/vcrhonek/hwdata" +license = "GPL-2.0-or-later" +name = "hwdata" +version = "0.405" + +[[source]] +extract_dir = "$name-$version" +url = "https://github.com/vcrhonek/hwdata.git#v$version" diff --git a/extra/intel-gmmlib/intel-gmmlib.toml b/extra/intel-gmmlib/intel-gmmlib.toml new file mode 100644 index 0000000..65d130a --- /dev/null +++ b/extra/intel-gmmlib/intel-gmmlib.toml @@ -0,0 +1,33 @@ +[build] +type = "cmake" + +[build.flags] +build_dir = "build" +configure = [ + "-G Ninja", + "-DRUN_TEST_SUITE=ON", + "-Wno-dev", +] + +[dependencies] +build = [ + "cmake", + "ninja", +] +runtime = [ + "glibc", + "libcxx", + "libunwind", +] + +[package] +description = "Intel Graphics Memory Management Library" +homepage = "https://github.com/intel/gmmlib/" +license = "MIT" +name = "intel-gmmlib" +version = "22.9.0" + +[[source]] +extract_dir = "$name-$version" +sha256 = "6ae262b95540681ad5478c63affb880135f772c95410b092009a6f7dfc04a5ba" +url = "https://github.com/intel/gmmlib/archive/intel-gmmlib-$version/$name-$version.tar.gz" diff --git a/extra/intel-media-driver/intel-media-driver.toml b/extra/intel-media-driver/intel-media-driver.toml new file mode 100644 index 0000000..52e5962 --- /dev/null +++ b/extra/intel-media-driver/intel-media-driver.toml @@ -0,0 +1,37 @@ +[build] +type = "cmake" + +[build.flags] +build_dir = "build" +configure = [ + "-DINSTALL_DRIVER_SYSCONF=OFF", + "-DMEDIA_BUILD_FATAL_WARNINGS=OFF", + "-DCMAKE_POLICY_VERSION_MINIMUM=3.5.0", + "-G Ninja", + "-Wno-dev", +] + +[dependencies] +build = [ "cmake", "ninja" ] +runtime = [ + "glibc", + "intel-gmmlib", + "libunwind", + "libcxx", + "libva", +] + +[package] +description = "Intel Media Driver for VAAPI Broadwell+ iGPUs" +homepage = "https://github.com/intel/media-driver/" +license = [ + "BSD-3-Clause", + "MIT", +] +name = "intel-media-driver" +version = "25.4.6" + +[[source]] +extract_dir = "$name-$version" +sha256 = "e5cf57c66e22359d1ec07d766b04e5da43677b9330999ce0dbf686aac60cf6bb" +url = "https://github.com/intel/media-driver/archive/intel-media-$version/$name-$version.tar.gz" diff --git a/extra/itstool/0001-Fix-the-crash-from-912099.patch b/extra/itstool/0001-Fix-the-crash-from-912099.patch new file mode 100644 index 0000000..326b849 --- /dev/null +++ b/extra/itstool/0001-Fix-the-crash-from-912099.patch @@ -0,0 +1,90 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Tanguy Ortolo +Date: Fri, 7 Dec 2018 00:00:00 +0000 +Subject: [PATCH] Fix the crash from #912099 + +ITS Tool 2.0.4 crashes when building some documentation, as reported in #912099. +This comes from translations with invalid XML markup, which ITS Tool fails to +merge (which is not abnormal), and to report these issues, needlessly encodes +the original msgstr from unicode to bytes, causing it to be recoded using the +default ascii codec, which fails when the msgstr contains anything out of ascii. + +This patch removes the useless decoding, avoiding the failing subsequent +recoding. It also explicitly encodes the output strings to be able to print them +in all cases, even when the output encoding cannot be detected. + +Bug: https://github.com/itstool/itstool/issues/25 +Bug-Debian: https://bugs.debian.org/912099 +Forwarded: https://github.com/itstool/itstool/issues/25 +--- + itstool.in | 21 +++++++++++++++++---- + 1 file changed, 17 insertions(+), 4 deletions(-) + +diff --git a/itstool.in b/itstool.in +index c21ad4bfeb86..f34673581c88 100755 +--- a/itstool.in ++++ b/itstool.in +@@ -44,9 +44,22 @@ if PY3: + else: + return str(s) + ustr_type = str ++ def pr_str(s): ++ """Return a string that can be safely print()ed""" ++ # Since print works on both bytes and unicode, just return the argument ++ return s + else: + string_types = basestring, + ustr = ustr_type = unicode ++ def pr_str(s): ++ """Return a string that can be safely print()ed""" ++ if isinstance(s, str): ++ # Since print works on str, just return the argument ++ return s ++ else: ++ # print may not work on unicode if the output encoding cannot be ++ # detected, so just encode with UTF-8 ++ return unicode.encode(s, 'utf-8') + + NS_ITS = 'http://www.w3.org/2005/11/its' + NS_ITST = 'http://itstool.org/extensions/' +@@ -1077,36 +1090,36 @@ class Document (object): + if strict: + raise + else: +- sys.stderr.write('Warning: Could not merge %stranslation for msgid:\n%s\n' % ( ++ sys.stderr.write(pr_str('Warning: Could not merge %stranslation for msgid:\n%s\n' % ( + (lang + ' ') if lang is not None else '', +- msgstr.encode('utf-8'))) ++ msgstr))) + self._xml_err = '' + return node + def scan_node(node): + children = [child for child in xml_child_iter(node)] + for child in children: + if child.type != 'element': + continue + if child.ns() is not None and child.ns().content == NS_BLANK: + ph_node = msg.get_placeholder(child.name).node + if self.has_child_elements(ph_node): + self.merge_translations(translations, None, ph_node, strict=strict) + newnode = ph_node.copyNode(1) + newnode.setTreeDoc(self._doc) + child.replaceNode(newnode) + else: + repl = self.get_translated(ph_node, translations, strict=strict, lang=lang) + child.replaceNode(repl) + scan_node(child) + try: + scan_node(trnode) + except: + if strict: + raise + else: +- sys.stderr.write('Warning: Could not merge %stranslation for msgid:\n%s\n' % ( ++ sys.stderr.write(pr_str('Warning: Could not merge %stranslation for msgid:\n%s\n' % ( + (lang + ' ') if lang is not None else '', +- msgstr.encode('utf-8'))) ++ msgstr))) + self._xml_err = '' + ctxt.doc().freeDoc() + return node diff --git a/extra/itstool/0002-Fix-insufficiently-quoted-regular-expressions.patch b/extra/itstool/0002-Fix-insufficiently-quoted-regular-expressions.patch new file mode 100644 index 0000000..7a816c3 --- /dev/null +++ b/extra/itstool/0002-Fix-insufficiently-quoted-regular-expressions.patch @@ -0,0 +1,73 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Nils Philippsen +Date: Mon, 9 Oct 2023 14:26:43 +0200 +Subject: [PATCH] Fix insufficiently quoted regular expressions + +These went under the radar until Python 3.12 started warning about them. + +Signed-off-by: Nils Philippsen +--- + itstool.in | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/itstool.in b/itstool.in +index f34673581c88..8e8c657aa352 100755 +--- a/itstool.in ++++ b/itstool.in +@@ -233,7 +233,7 @@ class Message (object): + if not isinstance(text, ustr_type): + text = ustr(text, 'utf-8') + self._message[-1] += text.replace('&', '&').replace('<', '<').replace('>', '>') +- if re.sub('\s+', ' ', text).strip() != '': ++ if re.sub(r'\s+', ' ', text).strip() != '': + self._empty = False + + def add_entity_ref (self, name): +@@ -331,7 +331,7 @@ class Message (object): + message += '<_:%s-%i/>' % (msg.name, placeholder) + placeholder += 1 + if not self._preserve: +- message = re.sub('\s+', ' ', message).strip() ++ message = re.sub(r'\s+', ' ', message).strip() + return message + + def get_preserve_space (self): +@@ -469,9 +469,9 @@ class LocNote (object): + if self._preserve_space: + return self.locnote + else: +- return re.sub('\s+', ' ', self.locnote).strip() ++ return re.sub(r'\s+', ' ', self.locnote).strip() + elif self.locnoteref is not None: +- return '(itstool) link: ' + re.sub('\s+', ' ', self.locnoteref).strip() ++ return '(itstool) link: ' + re.sub(r'\s+', ' ', self.locnoteref).strip() + return '' + + +@@ -902,7 +902,7 @@ class Document (object): + trans = translations.ugettext('_\x04translator-credits') + if trans is None or trans == 'translator-credits': + return +- regex = re.compile('(.*) \<(.*)\>, (.*)') ++ regex = re.compile(r'(.*) \<(.*)\>, (.*)') + for credit in trans.split('\n'): + match = regex.match(credit) + if not match: +@@ -937,7 +937,7 @@ class Document (object): + prevnode = None + if node.prev is not None and node.prev.type == 'text': + prevtext = node.prev.content +- if re.sub('\s+', '', prevtext) == '': ++ if re.sub(r'\s+', '', prevtext) == '': + prevnode = node.prev + for lang in sorted(list(translations.keys()), reverse=True): + locale = self.get_its_locale_filter(node) +@@ -1481,7 +1481,7 @@ def match_locale(extrange, locale): + localei += 1 + return True + +-_locale_pattern = re.compile('([a-zA-Z0-9-]+)(_[A-Za-z0-9]+)?(@[A-Za-z0-9]+)?(\.[A-Za-z0-9]+)?') ++_locale_pattern = re.compile(r'([a-zA-Z0-9-]+)(_[A-Za-z0-9]+)?(@[A-Za-z0-9]+)?(\.[A-Za-z0-9]+)?') + def convert_locale (locale): + # Automatically convert POSIX-style locales to BCP47 + match = _locale_pattern.match(locale) diff --git a/extra/itstool/0003-Fix-handling-of-untranslated-nodes.patch b/extra/itstool/0003-Fix-handling-of-untranslated-nodes.patch new file mode 100644 index 0000000..7f13849 --- /dev/null +++ b/extra/itstool/0003-Fix-handling-of-untranslated-nodes.patch @@ -0,0 +1,31 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Harald van Dijk +Date: Thu, 15 Jun 2023 23:18:11 +0100 +Subject: [PATCH] Fix handling of untranslated nodes + +If a translation is missing, get_translated returns the node it was +called with. But ph_node when passed to get_translated is part of +another document and cannot just be reparented, it needs to be cloned. +The reparenting leaves things in an inconsistent state where references +intended to refer to nodes in the original document no longer do so, and +they may then be accessed from those references after the new document +has already been freed. + +Fixes bug #36. +--- + itstool.in | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/itstool.in b/itstool.in +index 8e8c657aa352..0e273b4c5bfa 100755 +--- a/itstool.in ++++ b/itstool.in +@@ -1109,6 +1109,8 @@ class Document (object): + child.replaceNode(newnode) + else: + repl = self.get_translated(ph_node, translations, strict=strict, lang=lang) ++ if repl == ph_node: ++ repl = repl.copyNode(1) + child.replaceNode(repl) + scan_node(child) + try: diff --git a/extra/itstool/itstool.toml b/extra/itstool/itstool.toml new file mode 100644 index 0000000..aa665fa --- /dev/null +++ b/extra/itstool/itstool.toml @@ -0,0 +1,33 @@ +[build] +type = "autotools" + +[dependencies] +runtime = [ + "docbook-xml", + "libxml215", + "python", +] + +[[manual_sources]] +files = [ + "0001-Fix-the-crash-from-912099.patch", + "0002-Fix-insufficiently-quoted-regular-expressions.patch", + "0003-Fix-handling-of-untranslated-nodes.patch", +] + +[package] +description = "Translate XML with PO files using W3C Internationalization Tag Set rules" +homepage = "https://itstool.org/" +license = "GPL-3.0-only" +name = "itstool" +version = "2.0.7" + +[[source]] +extract_dir = "$name-$version" +patches = [ + "0001-Fix-the-crash-from-912099.patch", + "0002-Fix-insufficiently-quoted-regular-expressions.patch", + "0003-Fix-handling-of-untranslated-nodes.patch", +] +post_extract = ["autoreconf -fiv"] +url = "https://github.com/itstool/itstool.git#$version" diff --git a/extra/lame/lame-cbr-abr-quality-settings-clamp.patch b/extra/lame/lame-cbr-abr-quality-settings-clamp.patch new file mode 100644 index 0000000..4b29e0c --- /dev/null +++ b/extra/lame/lame-cbr-abr-quality-settings-clamp.patch @@ -0,0 +1,19 @@ +Description: CBR: High quality settings (e.g, -q 0) degrade quality over -q 4 +Origin: https://sourceforge.net/p/lame/bugs/516/#a26d +Forwarded: https://sourceforge.net/p/lame/bugs/516/ + +--- a/libmp3lame/lame.c ++++ b/libmp3lame/lame.c +@@ -1050,6 +1050,11 @@ lame_init_params(lame_global_flags * gfp + if (gfp->quality < 0) + gfp->quality = LAME_DEFAULT_QUALITY; + ++ /* VBR and ABR don't give good results with noise shaping ++ * settings used in quality levels below 4. ++ */ ++ if (gfp->quality < 4) ++ gfp->quality = 4; + + if (cfg->vbr == vbr_off) + (void) lame_set_VBR_mean_bitrate_kbps(gfp, gfp->brate); + diff --git a/extra/lame/lame-symbols.patch b/extra/lame/lame-symbols.patch new file mode 100644 index 0000000..56bdc05 --- /dev/null +++ b/extra/lame/lame-symbols.patch @@ -0,0 +1,15 @@ +Description: Add missing symbol(s) to library symbol file +Author: Fabian Greffrath +Forwarded: https://sourceforge.net/p/lame/bugs/515/ + +--- a/include/libmp3lame.sym ++++ b/include/libmp3lame.sym +@@ -193,6 +193,7 @@ hip_decode_headers + hip_decode1 + hip_decode1_headers + hip_decode1_headersB ++hip_finish_pinfo + lame_decode_init + lame_decode + lame_decode_headers + diff --git a/extra/lame/lame.toml b/extra/lame/lame.toml new file mode 100644 index 0000000..861f14c --- /dev/null +++ b/extra/lame/lame.toml @@ -0,0 +1,36 @@ +[build] +type = "autotools" + +[build.flags] +configure = [ + "--enable-nasm", + "--enable-shared", + "--disable-mp3rtp", +] + +[dependencies] +build = ["nasm"] +runtime = [ + "glibc", + "ncurses", +] + +[package] +description = "high quality MPEG Audio Layer III (MP3) encoder" +homepage = "http://lame.sourceforge.net/" +license = "LGPL-2.0-only" +name = "lame" +version = "3.100" + +[[source]] +extract_dir = "$name-$version" +sha256 = "b2:6954d30cfd3951ea07762ba5dd7ff27038b78455f423099a225ebf748abddf9970e444456ca5a6179bd381e2205b32293392cb757c203901674860710fe2c183" +url = "https://sourceforge.net/projects/lame/files/lame/$version/lame-$version.tar.gz" +patches = [ "lame-symbols.patch", "lame-cbr-abr-quality-settings-clamp.patch" ] +post_extract = [ + "sed -i -e '/^lame_init_old$/d' -e '/^hip_finish_pinfo$/d' include/libmp3lame.sym" +] + +[[manual_sources]] +files = [ "lame-symbols.patch", "lame-cbr-abr-quality-settings-clamp.patch" ] + diff --git a/extra/libcap-ng/libcap-ng.toml b/extra/libcap-ng/libcap-ng.toml new file mode 100644 index 0000000..c2b6dcb --- /dev/null +++ b/extra/libcap-ng/libcap-ng.toml @@ -0,0 +1,33 @@ +[build] +type = "autotools" + +[build.flags] +configure = [ + "--with-python3", + "--without-python", + "--enable-static=no", +] + +[dependencies] +build = [ + "python", + "swig", +] +runtime = ["glibc"] +optional = [ "python" ] + +[package] +description = "A library for Linux that makes using posix capabilities easy" +homepage = "https://people.redhat.com/sgrubb/libcap-ng/" +license = [ + "GPL-2.0-or-later", + "LGPL-2.1-or-later", +] +name = "libcap-ng" +version = "0.9.1" + +[[source]] +extract_dir = "$name-$version" +sha256 = "52418b8940f83dcc00dcd01d187e67c3399ff65f3fa558442e3a21b415cc46c0" +url = "https://github.com/stevegrubb/libcap-ng/archive/v$version/libcap-ng-$version.tar.gz" +post_extract = [ "touch NEWS", "autoreconf -fiv" ] diff --git a/extra/libclc/libclc.toml b/extra/libclc/libclc.toml new file mode 100644 index 0000000..c54a5c1 --- /dev/null +++ b/extra/libclc/libclc.toml @@ -0,0 +1,27 @@ +[build] +type = "cmake" + +[build.flags] +build_dir = "build" +configure = ["-G Ninja"] +source_subdir = "libclc" + +[dependencies] +build = [ + "cmake", + "spirv-llvm-translator", + "python", + "ninja" +] + +[package] +description = "Library requirements of the OpenCL C programming language" +homepage = "https://libclc.llvm.org/" +license = "Apache-2.0 WITH LLVM-exception" +name = "libclc" +version = "22.1.1" + +[[source]] +extract_dir = "$name-$version" +sha256 = "9c6f37f6f5f68d38f435d25f770fc48c62d92b2412205767a16dac2c942f0c95" +url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-$version/llvm-project-$version.src.tar.xz" diff --git a/extra/libdisplay-info/libdisplay-info.toml b/extra/libdisplay-info/libdisplay-info.toml new file mode 100644 index 0000000..fdb0cff --- /dev/null +++ b/extra/libdisplay-info/libdisplay-info.toml @@ -0,0 +1,26 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" + +[dependencies] +build = [ + "hwdata", + "meson", + "python", + "ninja", +] +runtime = ["glibc"] + +[package] +description = "EDID and DisplayID library" +homepage = "https://gitlab.freedesktop.org/emersion/libdisplay-info" +license = "MIT" +name = "libdisplay-info" +version = "0.3.0" + +[[source]] +extract_dir = "$name-$version" +sha256 = "6ae77cd937f9cf7d1321d35c116062c4911e8447010a6a713ac4286f7a9d5987" +url = "https://gitlab.freedesktop.org/emersion/libdisplay-info/-/releases/$version/downloads/libdisplay-info-$version.tar.xz" diff --git a/extra/libglvnd/libglvnd.toml b/extra/libglvnd/libglvnd.toml new file mode 100644 index 0000000..41de2c6 --- /dev/null +++ b/extra/libglvnd/libglvnd.toml @@ -0,0 +1,36 @@ +[build] +type = "meson" + +[alternatives] +provides = [ "libgl", "libegl", "libgles" ] + +[build.flags] +build_dir = "build" +configure = ["-Dgles1=false"] +skip_tests = true + +[dependencies] +build = [ + "libxext", + "libx11", + "xorgproto", + "python", + "meson", +] +runtime = [ "libxext", "mesa", "opengl-driver" ] + +[package] +description = "The GL Vendor-Neutral Dispatch library" +homepage = "https://gitlab.freedesktop.org/glvnd/libglvnd" +license = [ + "MIT", + "BSD-1-Clause", + "BSD-3-Clause", +] +name = "libglvnd" +version = "1.7.0" + +[[source]] +extract_dir = "$name-$version" +sha256 = "2b6e15b06aafb4c0b6e2348124808cbd9b291c647299eaaba2e3202f51ff2f3d" +url = "https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v$version/libglvnd-v$version.tar.gz" diff --git a/extra/libjpeg-turbo/libjpeg-turbo.toml b/extra/libjpeg-turbo/libjpeg-turbo.toml new file mode 100644 index 0000000..fc339b7 --- /dev/null +++ b/extra/libjpeg-turbo/libjpeg-turbo.toml @@ -0,0 +1,37 @@ +[build] +type = "cmake" + +[build.flags] +build_dir = "build" +configure = [ + "-DENABLE_STATIC=OFF", + "-DWITH_JAVA=OFF", + "-DWITH_JPEG8=ON", + "-G Ninja", + "-Wno-dev", +] +post_install = ['install -vDm 644 src/jpegint.h "$DESTDIR/usr/include"'] +skip_tests = true + +[dependencies] +build = [ + "cmake", + "ninja", + "nasm", +] +runtime = ["glibc"] + +[package] +description = "JPEG image codec with accelerated baseline compression and decompression" +homepage = "https://libjpeg-turbo.org/" +license = [ + "BSD-3-Clause", + "IJG", +] +name = "libjpeg-turbo" +version = "3.1.3" + +[[source]] +extract_dir = "$name-$version" +sha256 = "075920b826834ac4ddf97661cc73491047855859affd671d52079c6867c1c6c0" +url = "https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/$version/libjpeg-turbo-$version.tar.gz" diff --git a/extra/libmicrohttpd/libmicrohttpd.toml b/extra/libmicrohttpd/libmicrohttpd.toml new file mode 100644 index 0000000..5a0b8a6 --- /dev/null +++ b/extra/libmicrohttpd/libmicrohttpd.toml @@ -0,0 +1,29 @@ +[build] +type = "autotools" + +[build.flags] +configure = [ + "--disable-dependency-tracking", + "--disable-examples", + "--enable-curl", + "--enable-https", + "--enable-largefile", + "--enable-messages", + "--with-pic", +] + +[dependencies] +runtime = ["gnutls"] +test = ["curl"] + +[package] +description = "small C library that is supposed to make it easy to run an HTTP server as part of another application" +homepage = "https://www.gnu.org/software/libmicrohttpd/" +license = "LGPL-2.1-or-Later" +name = "libmicrohttpd" +version = "1.0.2" + +[[source]] +extract_dir = "$name-$version" +sha256 = "df324fcd0834175dab07483133902d9774a605bfa298025f69883288fd20a8c7" +url = "https://mirrors.kernel.org/gnu/libmicrohttpd/libmicrohttpd-$version.tar.gz" diff --git a/extra/libogg/libogg.toml b/extra/libogg/libogg.toml new file mode 100644 index 0000000..07bbb20 --- /dev/null +++ b/extra/libogg/libogg.toml @@ -0,0 +1,37 @@ +[build] +type = "cmake" + +[build.flags] +build_dir = "build" +configure = [ + "-G Ninja", + "-DBUILD_SHARED_LIBS=ON", +] +post_install = [ 'install -Dm 644 ogg.m4 -t $DESTDIR/usr/share/aclocal/' ] +build_32 = true +post_install-lib32 = [ 'true' ] + +[dependencies] +build = [ + "cmake", + "ninja", +] +runtime = ["glibc"] + +[dependencies.lib32] +build = [ + "cmake", + "ninja", +] +runtime = ["lib32-glibc"] + +[package] +description = "Ogg bitstream and framing library" +homepage = "https://www.xiph.org/ogg/" +license = "BSD-3-Clause" +name = "libogg" +version = "1.3.6" + +[[source]] +extract_dir = "$name-$version" +url = "https://github.com/xiph/ogg.git#v$version" diff --git a/extra/libsamplerate/libsamplerate.toml b/extra/libsamplerate/libsamplerate.toml new file mode 100644 index 0000000..0ef6d15 --- /dev/null +++ b/extra/libsamplerate/libsamplerate.toml @@ -0,0 +1,35 @@ +[build] +type = "cmake" + +[build.flags] +build_dir = "build" +configure = [ + "-DBUILD_SHARED_LIBS=ON", + "-G Ninja", + "-Wno-dev", + "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" +] +skip_tests = true + +[dependencies] +build = [ + "alsa-lib", + "cmake", + "ninja", + "libsndfile", + "opus", +] +runtime = ["glibc"] +test = ["fftw"] + +[package] +description = "An audio sample rate conversion library" +homepage = "https://libsndfile.github.io/libsamplerate/" +license = "BSD-2-Clause" +name = "libsamplerate" +version = "0.2.2" + +[[source]] +extract_dir = "$name-$version" +sha256 = "3258da280511d24b49d6b08615bbe824d0cacc9842b0e4caf11c52cf2b043893" +url = "https://github.com/libsndfile/libsamplerate/releases/download/$version/libsamplerate-$version.tar.xz" diff --git a/extra/libsndfile/libsndfile-1.2.2-CVE-2022-33065.patch b/extra/libsndfile/libsndfile-1.2.2-CVE-2022-33065.patch new file mode 100644 index 0000000..785414b --- /dev/null +++ b/extra/libsndfile/libsndfile-1.2.2-CVE-2022-33065.patch @@ -0,0 +1,40 @@ +From 0754562e13d2e63a248a1c82f90b30bc0ffe307c Mon Sep 17 00:00:00 2001 +From: Alex Stewart +Date: Tue, 10 Oct 2023 16:10:34 -0400 +Subject: [PATCH] mat4/mat5: fix int overflow in dataend calculation + +The clang sanitizer warns of a possible signed integer overflow when +calculating the `dataend` value in `mat4_read_header()`. + +``` +src/mat4.c:323:41: runtime error: signed integer overflow: 205 * -100663296 cannot be represented in type 'int' +SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior src/mat4.c:323:41 in +src/mat4.c:323:48: runtime error: signed integer overflow: 838860800 * 4 cannot be represented in type 'int' +SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior src/mat4.c:323:48 in +``` + +Cast the offending `rows` and `cols` ints to `sf_count_t` (the type of +`dataend` before performing the calculation, to avoid the issue. + +CVE: CVE-2022-33065 +Fixes: https://github.com/libsndfile/libsndfile/issues/789 +Fixes: https://github.com/libsndfile/libsndfile/issues/833 + +Signed-off-by: Alex Stewart +--- + src/mat4.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/mat4.c b/src/mat4.c +index 0b1b414b4..575683ba1 100644 +--- a/src/mat4.c ++++ b/src/mat4.c +@@ -320,7 +320,7 @@ mat4_read_header (SF_PRIVATE *psf) + psf->filelength - psf->dataoffset, psf->sf.channels * psf->sf.frames * psf->bytewidth) ; + } + else if ((psf->filelength - psf->dataoffset) > psf->sf.channels * psf->sf.frames * psf->bytewidth) +- psf->dataend = psf->dataoffset + rows * cols * psf->bytewidth ; ++ psf->dataend = psf->dataoffset + (sf_count_t) rows * (sf_count_t) cols * psf->bytewidth ; + + psf->datalength = psf->filelength - psf->dataoffset - psf->dataend ; + diff --git a/extra/libsndfile/libsndfile.toml b/extra/libsndfile/libsndfile.toml new file mode 100644 index 0000000..f47179d --- /dev/null +++ b/extra/libsndfile/libsndfile.toml @@ -0,0 +1,44 @@ +[build] +type = "cmake" + +[build.flags] +build_dir = "build" +configure = [ + "-DBUILD_SHARED_LIBS=ON", + "-DCMAKE_POLICY_VERSION_MINIMUM=3.5", + "-DENABLE_EXTERNAL_LIBS=ON", + "-DENABLE_MPEG=OFF", + "-Wno-dev", + "-G Ninja", +] + +[dependencies] +build = [ + "alsa-lib", + "cmake", + "ninja", + "python", + "sqlite", +] +optional = ["alsa-lib"] +runtime = [ + "glibc", + "flac", + "lame", + "libogg", + "libvorbis", + "opus", +] + +[package] +description = "C library for reading and writing files containing sampled audio data" +homepage = "https://libsndfile.github.io/libsndfile/" +license = "LGPL-2.1-or-later" +name = "libsndfile" +version = "1.2.2" + +[[source]] +extract_dir = "$name-$version" +patches = ["libsndfile-1.2.2-CVE-2022-33065.patch"] +sha256 = "3799ca9924d3125038880367bf1468e53a1b7e3686a934f098b7e1d286cdb80e" +url = "https://github.com/libsndfile/libsndfile/releases/download/$version/libsndfile-$version.tar.xz" diff --git a/extra/libtiff/libtiff.toml b/extra/libtiff/libtiff.toml new file mode 100644 index 0000000..2a25d22 --- /dev/null +++ b/extra/libtiff/libtiff.toml @@ -0,0 +1,38 @@ +[build] +type = "cmake" + +[build.flags] +build_dir = "build" +configure = ["-DCMAKE_POLICY_VERSION_MINIMUM=3.5"] + +[dependencies] +build = [ + "cmake", + "freeglut", + "glu", + "mesa", +] +optional = ["freeglut"] +runtime = [ + "libcxx", + "libunwind", + "glibc", + "jbigkit", + "libdeflate", + "libjpeg-turbo", + "libwebp", + "xz", + "zlib-ng", + "zstd", +] + +[package] +description = "Library for manipulation of TIFF images" +homepage = "http://www.simplesystems.org/libtiff/" +license = "libtiff" +name = "libtiff" +version = "4.7" + +[[source]] +extract_dir = "$name-$version" +url = "https://gitlab.com/libtiff/libtiff.git#v$version" diff --git a/extra/libusb/libusb.toml b/extra/libusb/libusb.toml new file mode 100644 index 0000000..538ca7c --- /dev/null +++ b/extra/libusb/libusb.toml @@ -0,0 +1,20 @@ +[build] +type = "autotools" + +[build.flags] +configure = [ "--disable-udev" ] + +[dependencies] +runtime = ["glibc"] + +[package] +description = "Library that provides generic access to USB devices" +homepage = "https://libusb.info/" +license = "LGPL-2.1-or-later" +name = "libusb" +version = "1.0.29" + +[[source]] +extract_dir = "$name-$version" +url = "https://github.com/libusb/libusb.git#v$version" +post_extract = [ "autoreconf -fiv" ] diff --git a/extra/libva-intel-driver/4206d0e15363d188f30f2f3dbcc212fef206fc1d.patch b/extra/libva-intel-driver/4206d0e15363d188f30f2f3dbcc212fef206fc1d.patch new file mode 100644 index 0000000..788dfd2 --- /dev/null +++ b/extra/libva-intel-driver/4206d0e15363d188f30f2f3dbcc212fef206fc1d.patch @@ -0,0 +1,46 @@ +From 4206d0e15363d188f30f2f3dbcc212fef206fc1d Mon Sep 17 00:00:00 2001 +From: Simon Ser +Date: Mon, 11 Mar 2024 23:48:17 +0100 +Subject: [PATCH] Make wl_drm optional + +Don't error out when vtable->wl_interface is NULL. + +Fetching wl_drm_interface from libEGL used to work but doesn't +anymore: it's now a private symbol (wayland-scanner private-code). +--- + src/i965_output_wayland.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/i965_output_wayland.c b/src/i965_output_wayland.c +index a6120b7b2..a002cae5b 100644 +--- a/src/i965_output_wayland.c ++++ b/src/i965_output_wayland.c +@@ -154,7 +154,7 @@ registry_handle_global( + struct va_wl_output * const wl_output = i965->wl_output; + struct wl_vtable * const wl_vtable = &wl_output->vtable; + +- if (strcmp(interface, "wl_drm") == 0) { ++ if (strcmp(interface, "wl_drm") == 0 && wl_vtable->drm_interface) { + wl_output->wl_drm_name = name; + wl_output->wl_drm = registry_bind(wl_vtable, wl_output->wl_registry, + name, wl_vtable->drm_interface, +@@ -472,6 +472,7 @@ i965_output_wayland_init(VADriverContextP ctx) + + wl_vtable = &i965->wl_output->vtable; + ++ /* drm_interface is optional */ + if (vtable->wl_interface) + wl_vtable->drm_interface = vtable->wl_interface; + else { +@@ -483,9 +484,8 @@ i965_output_wayland_init(VADriverContextP ctx) + } + + dso_handle = i965->wl_output->libegl_handle; +- if (!dso_get_symbols(dso_handle, wl_vtable, sizeof(*wl_vtable), +- libegl_symbols)) +- goto error; ++ dso_get_symbols(dso_handle, wl_vtable, sizeof(*wl_vtable), ++ libegl_symbols); + } + + i965->wl_output->libwl_client_handle = dso_open(LIBWAYLAND_CLIENT_NAME); diff --git a/extra/libva-intel-driver/libva-intel-driver.toml b/extra/libva-intel-driver/libva-intel-driver.toml new file mode 100644 index 0000000..70a46f2 --- /dev/null +++ b/extra/libva-intel-driver/libva-intel-driver.toml @@ -0,0 +1,29 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" + +[dependencies] +build = ["meson"] +runtime = [ + "libva", + "libdrm", +] + +[package] +description = "VA-API implementation for Intel G45 and HD Graphics family" +homepage = "https://01.org/linuxmedia/vaapi" +license = "MIT" +name = "libva-intel-driver" +version = "2.4.1" + +[[source]] +extract_dir = "$name-$version" +url = "https://github.com/intel/intel-vaapi-driver/releases/download/$version/intel-vaapi-driver-$version.tar.bz2" +post_extract = [ '''sed -i '1s/python$/&2/' src/shaders/gpp.py''' ] +sha256 = "b2:25888ac7a1a42233c4b0269bd910c5161f99bf22c932b46e20c8c77ed0404bf99702dd9f11b73bc0fd76a3b012ffa1de6c6133cbd7be880428235de9cfcc6ad8" +patches = [ "4206d0e15363d188f30f2f3dbcc212fef206fc1d.patch" ] + +[[manual_sources]] +file = "4206d0e15363d188f30f2f3dbcc212fef206fc1d.patch" diff --git a/extra/libva/libva.toml b/extra/libva/libva.toml new file mode 100644 index 0000000..4d2d01f --- /dev/null +++ b/extra/libva/libva.toml @@ -0,0 +1,39 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" +keep = [ "etc/libva.conf" ] +CFLAGS += [ "-DENABLE_VA_MESSAGING" ] +post_install = [ "mkdir -pv $DESTDIR/etc", "echo 'LIBVA_MESSAGING_LEVEL=1' > $DESTDIR/etc/libva.conf" ] + +[dependencies] +build = [ + "libglvnd", + "meson", + "mesa" +] +optional = [ + "intel-media-driver", + "libva-intel-driver", + "libva-mesa-driver", +] +runtime = [ + "libdrm", + "libgl", + "libx11", + "libxext", + "libxfixes", + "wayland", +] + +[package] +description = "Video Acceleration (VA) API for Linux" +homepage = "https://01.org/linuxmedia/vaapi" +license = "MIT" +name = "libva" +version = "2.23.0" + +[[source]] +extract_dir = "$name-$version" +url = "https://github.com/intel/libva.git#dbf83dc3b1ce6bad46e1628aaf2da5ef731157b8" diff --git a/extra/libvorbis/libvorbis.toml b/extra/libvorbis/libvorbis.toml new file mode 100644 index 0000000..5846228 --- /dev/null +++ b/extra/libvorbis/libvorbis.toml @@ -0,0 +1,27 @@ +[build] +type = "autotools" + +[build.flags] +configure = [ + "--disable-static", + "--enable-shared", +] +skip_tests = true + +[dependencies] +runtime = [ + "glibc", + "libogg", +] + +[package] +description = "Reference implementation of the Ogg Vorbis audio format" +homepage = "https://www.xiph.org/vorbis/" +license = "BSD-3-Clause" +name = "libvorbis" +version = "1.3.7" + +[[source]] +extract_dir = "$name-$version" +post_extract = ["./autogen.sh"] +url = "https://github.com/xiph/vorbis.git#0c55fa38933fd4bdb7db7c298b27e7bf2f2c5e98" diff --git a/extra/libwebp/libwebp.toml b/extra/libwebp/libwebp.toml new file mode 100644 index 0000000..bdf26d7 --- /dev/null +++ b/extra/libwebp/libwebp.toml @@ -0,0 +1,37 @@ +[build] +type = "cmake" + +[build.flags] +build_dir = "build" +configure = [ + "-DWEBP_BUILD_CWEBP=ON", + "-DWEBP_BUILD_DWEBP=ON", + "-DCMAKE_SKIP_INSTALL_RPATH=ON", + "-DWEBP_BUILD_EXTRAS=OFF", + "-DWEBP_BUILD_GIF2WEBP=ON", + "-DWEBP_BUILD_IMG2WEBP=ON", + "-DWEBP_BUILD_VWEBP=OFF", + "-G Ninja", +] + +[dependencies] +build = [ + "cmake", + "ninja", + "giflib", + "libjpeg-turbo", + "libpng", +] +runtime = ["glibc"] + +[package] +description = "WebP image codec library" +homepage = "https://developers.google.com/speed/webp/" +license = "BSD-3-Clause" +name = "libwebp" +version = "1.6.0" + +[[source]] +extract_dir = "$name-$version" +sha256 = "e4ab7009bf0629fd11982d4c2aa83964cf244cffba7347ecd39019a9e38c4564" +url = "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-$version.tar.gz" diff --git a/extra/libxi/libxi.toml b/extra/libxi/libxi.toml new file mode 100644 index 0000000..2e1164d --- /dev/null +++ b/extra/libxi/libxi.toml @@ -0,0 +1,31 @@ +[build] +type = "autotools" + +[build.flags] +configure = ["--disable-static"] + +[dependencies] +build = ["xorg-util-macros"] +runtime = [ + "libxext", + "libxfixes", + "libx11", + "glibc", + "xorgproto", +] + +[package] +description = "X11 Input extension library" +homepage = "https://xorg.freedesktop.org/" +license = [ + "MIT", + "MIT-open-group", + "SMLNJ", +] +name = "libxi" +version = "1.8.2" + +[[source]] +extract_dir = "$name-$version" +sha256 = "d0e0555e53d6e2114eabfa44226ba162d2708501a25e18d99cfb35c094c6c104" +url = "https://xorg.freedesktop.org/releases/individual/lib/libXi-$version.tar.xz" diff --git a/extra/libxshmfence/libxshmfence.toml b/extra/libxshmfence/libxshmfence.toml new file mode 100644 index 0000000..52df723 --- /dev/null +++ b/extra/libxshmfence/libxshmfence.toml @@ -0,0 +1,21 @@ +[build] +type = "autotools" + +[dependencies] +build = [ + "xorg-util-macros", + "xorgproto", +] +runtime = ["glibc"] + +[package] +description = "a library that exposes a event API on top of Linux futexes" +homepage = "https://xorg.freedesktop.org/" +license = "HPND-sell-variant" +name = "libxshmfence" +version = "1.3.3" + +[[source]] +extract_dir = "$name-$version" +sha256 = "d4a4df096aba96fea02c029ee3a44e11a47eb7f7213c1a729be83e85ec3fde10" +url = "https://xorg.freedesktop.org/archive/individual/lib/$name-$version.tar.xz" diff --git a/extra/libxxf86vm/libxxf86vm.toml b/extra/libxxf86vm/libxxf86vm.toml new file mode 100644 index 0000000..4388e52 --- /dev/null +++ b/extra/libxxf86vm/libxxf86vm.toml @@ -0,0 +1,25 @@ +[build] +type = "autotools" + +[build.flags] +configure = ["--disable-static"] + +[dependencies] +runtime = [ + "libxext", + "libx11", + "glibc", + "xorgproto", +] + +[package] +description = "X11 XFree86 video mode extension library" +homepage = "https://xorg.freedesktop.org/" +license = "X11-distribute-modifications-variant" +name = "libxxf86vm" +version = "1.1.7" + +[[source]] +extract_dir = "$name-$version" +sha256 = "ae50c0f669e0af5a67cc4cd0f54f21d64a64d2660af883e80e95d3fe51b945d8" +url = "https://xorg.freedesktop.org/releases/individual/lib/libXxf86vm-$version.tar.xz" diff --git a/extra/libyuv/libyuv-1864-posixify.patch b/extra/libyuv/libyuv-1864-posixify.patch new file mode 100644 index 0000000..85c5d85 --- /dev/null +++ b/extra/libyuv/libyuv-1864-posixify.patch @@ -0,0 +1,37 @@ +diff --git a/CM_linux_packages.cmake b/CM_linux_packages.cmake +index a073edfa..f047f048 100644 +--- a/CM_linux_packages.cmake ++++ b/CM_linux_packages.cmake +@@ -1,9 +1,8 @@ + # determine the version number from the #define in libyuv/version.h +-EXECUTE_PROCESS ( +- COMMAND grep --perl-regex --only-matching "(?<=LIBYUV_VERSION )[0-9]+" include/libyuv/version.h +- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} +- OUTPUT_VARIABLE YUV_VERSION_NUMBER +- OUTPUT_STRIP_TRAILING_WHITESPACE ) ++FILE(STRINGS "${PROJECT_SOURCE_DIR}/include/libyuv/version.h" YUV_VERSION_LINE ++ REGEX "^#define LIBYUV_VERSION [0-9]+$") ++STRING(REGEX REPLACE "^#define LIBYUV_VERSION ([0-9]+)$" "\\1" ++ YUV_VERSION_NUMBER "${YUV_VERSION_LINE}") + SET ( YUV_VER_MAJOR 0 ) + SET ( YUV_VER_MINOR 0 ) + SET ( YUV_VER_PATCH ${YUV_VERSION_NUMBER} ) +@@ -66,4 +65,3 @@ SET ( CPACK_GENERATOR "DEB;RPM" ) + + # create the .deb and .rpm files (you'll need build-essential and rpm tools) + INCLUDE( CPack ) +- +diff --git a/source/test.sh b/source/test.sh +index 7f12c3c1..95fcce3f 100755 +--- a/source/test.sh ++++ b/source/test.sh +@@ -1,7 +1,7 @@ +-#!/bin/bash ++#!/bin/sh + set -x + +-function runbenchmark1 { ++runbenchmark1() { + perf record /google/src/cloud/fbarchard/clean/google3/blaze-bin/third_party/libyuv/libyuv_test --gunit_filter=*$1 --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=1000 --libyuv_flags=-1 --libyuv_cpu_info=-1 + perf report | grep AVX + } diff --git a/extra/libyuv/libyuv.toml b/extra/libyuv/libyuv.toml new file mode 100644 index 0000000..b715562 --- /dev/null +++ b/extra/libyuv/libyuv.toml @@ -0,0 +1,26 @@ +[build] +type = "cmake" + +[build.flags] +build_dir = "build" +configure = [ "-G Ninja", "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" ] + +[dependencies] +runtime = [ "glibc", "libunwind", "libcxx", "libjpeg-turbo" ] +build = [ "cmake", "ninja" ] + +[package] +description = "Library for YUV scaling" +homepage = "https://chromium.googlesource.com/libyuv/libyuv/" +license = "BSD-3-Clause" +name = "libyuv" +version = "r2426+464c51a03" + +[[source]] +extract_dir = "$name-$version" +post_extract = ["sed -i 's|yuvconvert ${JPEG_LIBRARY}|${ly_lib_shared} ${JPEG_LIBRARY}|' CMakeLists.txt"] +url = "https://chromium.googlesource.com/libyuv/libyuv#464c51a0353c71f08fe45f683d6a97a638d47833" +patches = [ "libyuv-1864-posixify.patch" ] + +[[manual_sources]] +file = "libyuv-1864-posixify.patch" diff --git a/extra/lzo/lzo.toml b/extra/lzo/lzo.toml new file mode 100644 index 0000000..1e0c582 --- /dev/null +++ b/extra/lzo/lzo.toml @@ -0,0 +1,31 @@ +[build] +type = "autotools" + +[build.flags] +configure = ["--enable-shared"] +post_compile = [ + "cc $CFLAGS $CPPFLAGS -fpic -Iinclude/lzo -o minilzo/minilzo.o -c minilzo/minilzo.c", + "cc $LDFLAGS -shared -o libminilzo.so.0 -Wl,-soname,libminilzo.so.0 minilzo/minilzo.o", +] +post_install = [ + "install -m 755 libminilzo.so.0 $DESTDIR/usr/lib", + "install -p -m 644 minilzo/minilzo.h $DESTDIR/usr/include/lzo", + "cd $DESTDIR/usr/lib", + "ln -s libminilzo.so.0 libminilzo.so", +] +skip_tests = true + +[dependencies] +runtime = ["glibc"] + +[package] +description = "Portable lossless data compression library" +homepage = "https://www.oberhumer.com/opensource/lzo" +license = "GPL-2.0-or-Later" +name = "lzo" +version = "2.10" + +[[source]] +extract_dir = "$name-$version" +sha256 = "c0f892943208266f9b6543b3ae308fab6284c5c90e627931446fb49b4221a072" +url = "https://www.oberhumer.com/opensource/lzo/download/lzo-$version.tar.gz" diff --git a/extra/mallard-ducktype/mallard-ducktype.toml b/extra/mallard-ducktype/mallard-ducktype.toml index 1834878..5cdc7f7 100644 --- a/extra/mallard-ducktype/mallard-ducktype.toml +++ b/extra/mallard-ducktype/mallard-ducktype.toml @@ -1,6 +1,9 @@ [build] type = "python" +[build.flags] +post_install = [ "sed -i '1s|^#!python$|#!/usr/bin/python3|' \"$DESTDIR/usr/bin/ducktype\"" ] + [dependencies] build = [ "python-setuptools", diff --git a/extra/mesa/build.sh b/extra/mesa/build.sh new file mode 100644 index 0000000..533a460 --- /dev/null +++ b/extra/mesa/build.sh @@ -0,0 +1,111 @@ +mesa_version=26.0.3 +mesa_srcdir="./" +mesa_builddir="build" + +haul_to_output() { + output=$1 + shift + haul "$output" "$@" +} + +depot_build() { + meson setup "$mesa_builddir" "$mesa_srcdir" \ + --prefix=/usr \ + --buildtype=release \ + -Dgallium-drivers=r300,r600,radeonsi,nouveau,virgl,svga,llvmpipe,softpipe,iris,crocus,i915,zink,d3d12,asahi,freedreno \ + -Dgallium-extra-hud=true \ + -Dgallium-mediafoundation=disabled \ + -Dgallium-rusticl=true \ + -Dgles1=disabled \ + -Dhtml-docs=disabled \ + -Dintel-rt=enabled \ + -Dlibunwind=disabled \ + -Dmicrosoft-clc=disabled \ + -Dvideo-codecs=all \ + -Dvulkan-drivers=amd,gfxstream,intel,intel_hasvk,nouveau,swrast,virtio,microsoft-experimental,asahi,freedreno \ + -Dvulkan-layers=device-select,intel-nullhw,overlay,screenshot,vram-report-limit + meson compile -C "$mesa_builddir" +} + +depot_install() { + meson install -C "$mesa_builddir" --destdir "$DESTDIR" + ln -sr "$DESTDIR/usr/lib/libGLX_mesa.so.0" "$DESTDIR/usr/lib/libGLX_indirect.so.0" +} + +depot_install_opencl_mesa() { + haul_to_output "opencl-mesa" \ + "usr/lib/libRusticlOpenCL*" \ + "etc/OpenCL/vendors/rusticl.icd" +} + +depot_install_vulkan_asahi() { + haul_to_output "vulkan-asahi" \ + "usr/share/vulkan/icd.d/asahi_icd.*.json" \ + "usr/lib/libvulkan_asahi.so" +} + +depot_install_vulkan_dzn() { + haul_to_output "vulkan-dzn" \ + "usr/share/vulkan/icd.d/dzn_icd.*.json" \ + "usr/lib/libvulkan_dzn.so" \ + "usr/lib/libspirv_to_dxil.*" \ + "usr/bin/spirv2dxil" +} + +depot_install_vulkan_freedreno() { + haul_to_output "vulkan-freedreno" \ + "usr/share/vulkan/icd.d/freedreno_icd.*.json" \ + "usr/lib/libvulkan_freedreno.so" +} + +depot_install_vulkan_gfxstream() { + haul_to_output "vulkan-gfxstream" \ + "usr/share/vulkan/icd.d/gfxstream_vk_icd.*.json" \ + "usr/lib/libvulkan_gfxstream.so" +} + +depot_install_vulkan_intel() { + haul_to_output "vulkan-intel" \ + "usr/share/vulkan/icd.d/intel_icd.*.json" \ + "usr/share/vulkan/icd.d/intel_hasvk_icd.*.json" \ + "usr/lib/libvulkan_intel.so" \ + "usr/lib/libvulkan_intel_hasvk.so" +} + +depot_install_vulkan_nouveau() { + haul_to_output "vulkan-nouveau" \ + "usr/share/vulkan/icd.d/nouveau_icd.*.json" \ + "usr/lib/libvulkan_nouveau.so" +} + +depot_install_vulkan_radeon() { + haul_to_output "vulkan-radeon" \ + "usr/share/vulkan/icd.d/radeon_icd.*.json" \ + "usr/lib/libvulkan_radeon.so" \ + "usr/share/drirc.d/00-radv-defaults.conf" +} + +depot_install_vulkan_swrast() { + haul_to_output "vulkan-swrast" \ + "usr/share/vulkan/icd.d/lvp_icd.*.json" \ + "usr/lib/libvulkan_lvp.so" +} + +depot_install_vulkan_virtio() { + haul_to_output "vulkan-virtio" \ + "usr/share/vulkan/icd.d/virtio_icd.*.json" \ + "usr/lib/libvulkan_virtio.so" +} + +depot_install_vulkan_mesa_device_select() { + haul_to_output "vulkan-mesa-device-select" \ + "usr/lib/libVkLayer_MESA_device_select.so" \ + "usr/share/vulkan/implicit_layer.d" +} + +depot_install_vulkan_mesa_layers() { + haul_to_output "vulkan-mesa-layers" \ + "usr/lib/libVkLayer_*.so" \ + "usr/bin/mesa-*-control.py" \ + "usr/share/vulkan/explicit_layer.d" +} diff --git a/extra/mesa/mesa.toml b/extra/mesa/mesa.toml new file mode 100644 index 0000000..84ec8d2 --- /dev/null +++ b/extra/mesa/mesa.toml @@ -0,0 +1,423 @@ +[package] +name = "mesa" +version = "26.0.3" +revision = 1 +description = "several libraries and drivers for multiple APIs like OpenGL and Vulkan" +homepage = "https://www.mesa3d.org/" +license = ["MIT", "BSD-3-Clause", "SGI-B-2.0"] + +[[packages]] +name = "opencl-mesa" +version = "26.0.3" +revision = 1 +description = "Open-source OpenCL driver" +homepage = "https://www.mesa3d.org/" +license = ["MIT", "BSD-3-Clause", "SGI-B-2.0"] + +[[packages]] +name = "vulkan-asahi" +version = "26.0.3" +revision = 1 +description = "Open-source Vulkan driver for Apple GPUs" +homepage = "https://www.mesa3d.org/" +license = ["MIT", "BSD-3-Clause", "SGI-B-2.0"] + +[[packages]] +name = "vulkan-dzn" +version = "26.0.3" +revision = 1 +description = "Open-source Vulkan driver for D3D12" +homepage = "https://www.mesa3d.org/" +license = ["MIT", "BSD-3-Clause", "SGI-B-2.0"] + +[[packages]] +name = "vulkan-freedreno" +version = "26.0.3" +revision = 1 +description = "Open-source Vulkan driver for Adreno GPUs" +homepage = "https://www.mesa3d.org/" +license = ["MIT", "BSD-3-Clause", "SGI-B-2.0"] + +[[packages]] +name = "vulkan-gfxstream" +version = "26.0.3" +revision = 1 +description = "Open-source Vulkan driver for Graphics Streaming Kit" +homepage = "https://www.mesa3d.org/" +license = ["MIT", "BSD-3-Clause", "SGI-B-2.0"] + +[[packages]] +name = "vulkan-intel" +version = "26.0.3" +revision = 1 +description = "Open-source Vulkan driver for Intel GPUs" +homepage = "https://www.mesa3d.org/" +license = ["MIT", "BSD-3-Clause", "SGI-B-2.0"] + +[[packages]] +name = "vulkan-nouveau" +version = "26.0.3" +revision = 1 +description = "Open-source Vulkan driver for Nvidia GPUs" +homepage = "https://www.mesa3d.org/" +license = ["MIT", "BSD-3-Clause", "SGI-B-2.0"] + +[[packages]] +name = "vulkan-radeon" +version = "26.0.3" +revision = 1 +description = "Open-source Vulkan driver for AMD GPUs" +homepage = "https://www.mesa3d.org/" +license = ["MIT", "BSD-3-Clause", "SGI-B-2.0"] + +[[packages]] +name = "vulkan-swrast" +version = "26.0.3" +revision = 1 +description = "Open-source Vulkan driver for CPUs (Software Rasterizer)" +homepage = "https://www.mesa3d.org/" +license = ["MIT", "BSD-3-Clause", "SGI-B-2.0"] + +[[packages]] +name = "vulkan-virtio" +version = "26.0.3" +revision = 1 +description = "Open-source Vulkan driver for Virtio-GPU (Venus)" +homepage = "https://www.mesa3d.org/" +license = ["MIT", "BSD-3-Clause", "SGI-B-2.0"] + +[[packages]] +name = "vulkan-mesa-device-select" +version = "26.0.3" +revision = 1 +description = "Mesa's Vulkan Device Select layer" +homepage = "https://www.mesa3d.org/" +license = ["MIT", "BSD-3-Clause", "SGI-B-2.0"] + +[[packages]] +name = "vulkan-mesa-layers" +version = "26.0.3" +revision = 1 +description = "Mesa's Vulkan layers" +homepage = "https://www.mesa3d.org/" +license = ["MIT", "BSD-3-Clause", "SGI-B-2.0"] + +[[source]] +url = "https://mesa.freedesktop.org/archive/mesa-$version.tar.xz" +sha256 = "b2:348df0a426c9e41565bf63c116d2a9b6b7e76b8d4310facfb0ba04f4d6da40942a7e622f25451f91d9e08722ad1f512eefb8ddbc6aefb6a82e5ab1e87e291ee5" +extract_dir = "mesa-$version" + +[build] +type = "custom" + +[dependencies] +build = [ + "cbindgen", + "clang", + "cmake", + "directx-headers", + "elfutils", + "expat", + "libunwind", + "libcxx", + "glibc", + "glslang", + "libclc", + "libdrm", + "libelf", + "libglvnd", + "libpng", + "libva", + "libx11", + "libxcb", + "libxext", + "libxml215", + "libxrandr", + "libxshmfence", + "libxxf86vm", + "llvm", + "llvm-libs", + "meson", + "python-mako", + "python-packaging", + "python-ply", + "python-sphinx", + "python-sphinx-hawkmoth", + "cargo", + "rust-bindgen", + "spirv-llvm-translator", + "spirv-tools", + "vulkan-icd-loader", + "wayland", + "wayland-protocols", + "xcb-util-keysyms", + "xorgproto", + "zlib-ng", + "zstd", + "python-yaml", +] +runtime = [ + "expat", + "libcxx", + "glibc", + "libdrm", + "libelf", + "libglvnd", + "libx11", + "libxcb", + "libxext", + "libxshmfence", + "libxxf86vm", + "llvm-libs", + "spirv-tools", + "wayland", + "zlib-ng", + "zstd", +] +optional = ["opengl-man-pages"] + +[alternatives] +provides = [ + "libva-mesa-driver", + "mesa-libgl", + "mesa-vdpau", + "libva-driver", + "opengl-driver", + "vdpau-driver", +] +conflicts = ["libva-mesa-driver", "mesa-libgl", "mesa-vdpau"] + +[package_dependencies.opencl-mesa] +runtime = [ + "clang", + "expat", + "libunwind", + "libcxx", + "glibc", + "libdrm", + "libelf", + "llvm-libs", + "spirv-llvm-translator", + "spirv-tools", + "zlib-ng", + "zstd", + "libclc", +] +optional = ["opencl-headers"] + +[package_alternatives.opencl-mesa] +provides = ["opencl-driver"] +conflicts = ["opencl-clover-mesa", "opencl-rusticl-mesa"] + +[package_dependencies.vulkan-asahi] +runtime = [ + "expat", + "libunwind", + "libcxx", + "glibc", + "libdrm", + "libx11", + "libxcb", + "libxshmfence", + "spirv-tools", + "vulkan-icd-loader", + "vulkan-mesa-device-select", + "wayland", + "xcb-util-keysyms", + "zlib-ng", + "zstd", +] +optional = ["vulkan-mesa-layers"] + +[package_alternatives.vulkan-asahi] +provides = ["vulkan-driver"] + +[package_dependencies.vulkan-dzn] +runtime = [ + "expat", + "libunwind", + "libcxx", + "glibc", + "libdrm", + "libx11", + "libxcb", + "libxshmfence", + "spirv-tools", + "vulkan-icd-loader", + "vulkan-mesa-device-select", + "wayland", + "xcb-util-keysyms", + "zlib-ng", + "zstd", +] +optional = ["vulkan-mesa-layers"] + +[package_alternatives.vulkan-dzn] +provides = ["vulkan-driver"] + +[package_dependencies.vulkan-freedreno] +runtime = [ + "expat", + "libunwind", + "libcxx", + "glibc", + "libdrm", + "libx11", + "libxcb", + "libxshmfence", + "spirv-tools", + "vulkan-icd-loader", + "vulkan-mesa-device-select", + "wayland", + "xcb-util-keysyms", + "zlib-ng", + "zstd", +] +optional = ["vulkan-mesa-layers"] + +[package_alternatives.vulkan-freedreno] +provides = ["vulkan-driver"] + +[package_dependencies.vulkan-gfxstream] +runtime = [ + "expat", + "libunwind", + "libcxx", + "glibc", + "libdrm", + "libx11", + "libxcb", + "libxshmfence", + "vulkan-icd-loader", + "vulkan-mesa-device-select", + "wayland", + "xcb-util-keysyms", +] +optional = ["vulkan-mesa-layers"] + +[package_alternatives.vulkan-gfxstream] +provides = ["vulkan-driver"] + +[package_dependencies.vulkan-intel] +runtime = [ + "expat", + "libunwind", + "libcxx", + "glibc", + "libdrm", + "libx11", + "libxcb", + "libxshmfence", + "spirv-tools", + "vulkan-icd-loader", + "vulkan-mesa-device-select", + "wayland", + "xcb-util-keysyms", + "zlib-ng", + "zstd", +] +optional = ["vulkan-mesa-layers"] + +[package_alternatives.vulkan-intel] +provides = ["vulkan-driver"] + +[package_dependencies.vulkan-nouveau] +runtime = [ + "expat", + "libunwind", + "libcxx", + "glibc", + "libdrm", + "libx11", + "libxcb", + "libxshmfence", + "spirv-tools", + "vulkan-icd-loader", + "vulkan-mesa-device-select", + "wayland", + "xcb-util-keysyms", + "zlib-ng", + "zstd", +] +optional = ["vulkan-mesa-layers"] + +[package_alternatives.vulkan-nouveau] +provides = ["vulkan-driver"] + +[package_dependencies.vulkan-radeon] +runtime = [ + "expat", + "libunwind", + "libcxx", + "glibc", + "libdrm", + "libx11", + "libxcb", + "libxshmfence", + "spirv-tools", + "vulkan-icd-loader", + "vulkan-mesa-device-select", + "wayland", + "xcb-util-keysyms", + "zlib-ng", + "zstd", +] +optional = ["vulkan-mesa-layers"] + +[package_alternatives.vulkan-radeon] +provides = ["vulkan-driver"] + +[package_dependencies.vulkan-swrast] +runtime = [ + "expat", + "libunwind", + "libcxx", + "glibc", + "libdrm", + "libx11", + "libxcb", + "libxshmfence", + "spirv-tools", + "vulkan-icd-loader", + "vulkan-mesa-device-select", + "wayland", + "xcb-util-keysyms", + "zlib-ng", + "zstd", +] +optional = ["vulkan-mesa-layers"] + +[package_alternatives.vulkan-swrast] +provides = ["vulkan-driver"] +conflicts = ["vulkan-mesa"] + +[package_dependencies.vulkan-virtio] +runtime = [ + "expat", + "libunwind", + "libcxx", + "glibc", + "libdrm", + "libx11", + "libxcb", + "libxshmfence", + "vulkan-icd-loader", + "vulkan-mesa-device-select", + "wayland", + "xcb-util-keysyms", + "zlib-ng", + "zstd", +] +optional = ["vulkan-mesa-layers"] + +[package_alternatives.vulkan-virtio] +provides = ["vulkan-driver"] + +[package_dependencies.vulkan-mesa-device-select] +runtime = ["glibc", "libdrm", "libxcb", "wayland"] + +[package_dependencies.vulkan-mesa-layers] +runtime = ["libunwind", "libcxx", "glibc", "libpng", "python"] + +[package_alternatives.vulkan-mesa-layers] +conflicts = ["vulkan-mesa-layer"] diff --git a/extra/opus/opus.toml b/extra/opus/opus.toml new file mode 100644 index 0000000..56d9924 --- /dev/null +++ b/extra/opus/opus.toml @@ -0,0 +1,29 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" +configure = [ + "-Dasm=disabled", + "-Dcustom-modes=true", + "-Ddeep-plc=enabled", + "-Ddred=enabled", + "-Dosce=enabled", +] +post_install = [ 'install -Dm644 opus.m4 -t "$DESTDIR/usr/share/aclocal"' ] + +[dependencies] +build = ["meson"] +runtime = ["glibc"] + +[package] +description = "Totally open, royalty-free, highly versatile audio codec" +homepage = "https://www.opus-codec.org/" +license = "BSD-3-Clause" +name = "opus" +version = "1.6.1" + +[[source]] +extract_dir = "$name-$version" +sha256 = "6ffcb593207be92584df15b32466ed64bbec99109f007c82205f0194572411a1" +url = "https://downloads.xiph.org/releases/opus/opus-$version.tar.gz" diff --git a/extra/pixman/pixman.toml b/extra/pixman/pixman.toml new file mode 100644 index 0000000..4fb9312 --- /dev/null +++ b/extra/pixman/pixman.toml @@ -0,0 +1,34 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" +configure = [ + "-Dloongson-mmi=disabled", + "-Dvmx=disabled", + "-Darm-simd=disabled", + "-Dneon=disabled", + "-Dmips-dspr2=disabled", + "-Drvv=disabled", + "-Dgtk=disabled", + "-Da64-neon=disabled", +] + +[dependencies] +build = [ + "meson", + "libpng", +] +runtime = ["glibc"] + +[package] +description = "The pixel-manipulation library for X and cairo" +homepage = "https://gitlab.freedesktop.org/pixman/pixman" +license = "MIT" +name = "pixman" +version = "0.46.4" + +[[source]] +extract_dir = "$name-$version" +sha256 = "a098c33924754ad43f981b740f6d576c70f9ed1006e12221b1845431ebce1239" +url = "https://www.x.org/releases/individual/lib/pixman-$version.tar.xz" diff --git a/extra/python-parameterized/python-parameterized.toml b/extra/python-parameterized/python-parameterized.toml new file mode 100644 index 0000000..f0cf7f5 --- /dev/null +++ b/extra/python-parameterized/python-parameterized.toml @@ -0,0 +1,20 @@ +[build] +type = "python" + +[dependencies] +build = [ + "python-setuptools", + "python-wheel", +] +runtime = ["python"] + +[package] +description = "Parameterized testing with any Python test framework" +homepage = "https://github.com/wolever/parameterized" +license = "BSD-2-Clause" +name = "python-parameterized" +version = "0.9.0" + +[[source]] +extract_dir = "$name-$version" +url = "https://github.com/wolever/parameterized.git#v$version" diff --git a/extra/ragel/ragel.toml b/extra/ragel/ragel.toml new file mode 100644 index 0000000..ded12f8 --- /dev/null +++ b/extra/ragel/ragel.toml @@ -0,0 +1,23 @@ +[build] +type = "autotools" + +[build.flags] +cxxflags += [ "-std=gnu++98" ] + +[dependencies] +runtime = [ + "libcxx", + "libunwind", +] + +[package] +description = "Compiles finite state machines from regular languages into executable C, C++, Objective-C, or D code." +homepage = "https://www.colm.net/open-source/ragel/" +license = "GPL-2.0-only" +name = "ragel" +version = "6.10" + +[[source]] +extract_dir = "$name-$version" +sha256 = "5f156edb65d20b856d638dd9ee2dfb43285914d9aa2b6ec779dac0270cd56c3f" +url = "https://www.colm.net/files/ragel/ragel-$version.tar.gz" diff --git a/extra/rav1e/build.sh b/extra/rav1e/build.sh new file mode 100644 index 0000000..6bc0cb7 --- /dev/null +++ b/extra/rav1e/build.sh @@ -0,0 +1,25 @@ +cargo build \ + --release \ + --no-default-features \ + --features binaries,asm,threading,signal_support \ + --manifest-path Cargo.toml + cargo cbuild \ + --release \ + --no-default-features \ + --features binaries,asm,threading,signal_support \ + --prefix=/usr \ + --manifest-path Cargo.toml + +cargo install \ + --no-default-features \ + --features binaries,asm,threading,signal_support \ + --offline \ + --no-track \ + --path . \ + --root "$DESTDIR"/usr + cargo cinstall \ + --release \ + --no-default-features \ + --features binaries,asm,threading,signal_support \ + --prefix /usr \ + --destdir "$DESTDIR" diff --git a/extra/rav1e/rav1e.toml b/extra/rav1e/rav1e.toml new file mode 100644 index 0000000..1af0e12 --- /dev/null +++ b/extra/rav1e/rav1e.toml @@ -0,0 +1,32 @@ +[build] +type = "custom" + +[dependencies] +build = [ + "cargo-c", + "nasm", + "cargo", +] +runtime = [ + "libcxx", + "libunwind", + "glibc", +] + +[[manual_sources]] +url = "https://github.com/xiph/rav1e/releases/download/v$version/Cargo.lock" + +[[manual_sources]] +file = "build.sh" + +[package] +description = "AV1 encoder focused on speed and safety" +homepage = "https://github.com/xiph/rav1e/" +license = "BSD-2-Clause" +name = "rav1e" +version = "0.8.1" + +[[source]] +extract_dir = "$name-$version" +post_extract = ["cp -f ../Cargo.lock ./Cargo.lock"] +url = "https://github.com/xiph/rav1e.git#1fe82de02510767539e89b2ee6fa846920ae2686" diff --git a/extra/sgml-common/postinstall.sh b/extra/sgml-common/postinstall.sh new file mode 100644 index 0000000..ae7d522 --- /dev/null +++ b/extra/sgml-common/postinstall.sh @@ -0,0 +1,6 @@ +#!/bin/sh +install-catalog --add /etc/sgml/sgml-ent.cat \ + /usr/share/sgml/sgml-iso-entities-8879.1986/catalog >/dev/null 2>&1 + +install-catalog --add /etc/sgml/sgml-docbook.cat \ + /etc/sgml/sgml-ent.cat >/dev/null 2>&1 diff --git a/extra/sgml-common/postupdate.sh b/extra/sgml-common/postupdate.sh new file mode 100644 index 0000000..ae7d522 --- /dev/null +++ b/extra/sgml-common/postupdate.sh @@ -0,0 +1,6 @@ +#!/bin/sh +install-catalog --add /etc/sgml/sgml-ent.cat \ + /usr/share/sgml/sgml-iso-entities-8879.1986/catalog >/dev/null 2>&1 + +install-catalog --add /etc/sgml/sgml-docbook.cat \ + /etc/sgml/sgml-ent.cat >/dev/null 2>&1 diff --git a/extra/sgml-common/preremove.sh b/extra/sgml-common/preremove.sh new file mode 100644 index 0000000..207d7a2 --- /dev/null +++ b/extra/sgml-common/preremove.sh @@ -0,0 +1,6 @@ +#!/bin/sh +install-catalog --remove /etc/sgml/sgml-ent.cat \ + /usr/share/sgml/sgml-iso-entities-8879.1986/catalog >/dev/null 2>&1 + +install-catalog --remove /etc/sgml/sgml-docbook.cat \ + /etc/sgml/sgml-ent.cat >/dev/null 2>&1 diff --git a/extra/sgml-common/sgml-common-0.6.3-manpage-1.patch b/extra/sgml-common/sgml-common-0.6.3-manpage-1.patch new file mode 100644 index 0000000..c3773d1 --- /dev/null +++ b/extra/sgml-common/sgml-common-0.6.3-manpage-1.patch @@ -0,0 +1,14 @@ +Submitted By: Thomas Pegg +Date: 2003-11-18 +Initial Package Version: 0.6.3 +Origin: Thomas Pegg +Description: Fixes syntax of Makefile.am for installation of man pages, +for use with current automake versions 1.7.8 and higher. + +diff -Naur sgml-common-0.6.3.orig/doc/man/Makefile.am sgml-common-0.6.3/doc/man/Makefile.am +--- sgml-common-0.6.3.orig/doc/man/Makefile.am 2001-01-30 14:42:22.000000000 +0000 ++++ sgml-common-0.6.3/doc/man/Makefile.am 2003-11-18 16:48:47.000000000 +0000 +@@ -1,2 +1 @@ +-man8dir = $(mandir)/man8 +-man8_DATA = *.8 ++man_MANS = install-catalog.8 diff --git a/extra/sgml-common/sgml-common.toml b/extra/sgml-common/sgml-common.toml new file mode 100644 index 0000000..7c0d220 --- /dev/null +++ b/extra/sgml-common/sgml-common.toml @@ -0,0 +1,26 @@ +[build] +type = "autotools" + +[build.flags] +skip_tests = true +make-install-vars = [ "docdir=/usr/share/doc" ] + +[dependencies] +runtime = ["sh"] + +[[manual_sources]] +files = [ "sgml-common-0.6.3-manpage-1.patch", "postinstall.sh", "postupdate.sh", "preremove.sh" ] + +[package] +description = "Tools for maintaining centralized SGML catalogs." +homepage = "https://www.docbook.org/xml/" +license = "GPL-1.0-or-later" +name = "sgml-common" +version = "0.6.3" + +[[source]] +extract_dir = "$name-$version" +patches = ["sgml-common-0.6.3-manpage-1.patch"] +post_extract = ["autoreconf -fiv"] +sha256 = "7dc418c1d361123ffc5e45d61f1b97257940a8eb35d0bfbbc493381cc5b1f959" +url = "https://www.sourceware.org/pub/docbook-tools/new-trials/SOURCES/sgml-common-$version.tgz" diff --git a/extra/shared-mime-info/postremove.sh b/extra/shared-mime-info/postremove.sh new file mode 100644 index 0000000..99a99fd --- /dev/null +++ b/extra/shared-mime-info/postremove.sh @@ -0,0 +1,5 @@ +if [ -d usr/share/mime ]; then + rm -f usr/share/mime/{globs,globs2,icons,treemagic,generic-icons,types,magic,XMLnamespaces,subclasses,aliases,mime.cache} + rm -rf usr/share/mime/{application,audio,image,inode,message,model,multipart,text,video,x-content,x-epoc} + rmdir --ignore-fail-on-non-empty usr/share/mime +fi diff --git a/extra/shared-mime-info/shared-mime-info-2.4-posixify.patch b/extra/shared-mime-info/shared-mime-info-2.4-posixify.patch new file mode 100644 index 0000000..8216772 --- /dev/null +++ b/extra/shared-mime-info/shared-mime-info-2.4-posixify.patch @@ -0,0 +1,71 @@ +diff --git a/po/check_translations.sh b/po/check_translations.sh +index 76562cb..146b810 100755 +--- a/po/check_translations.sh ++++ b/po/check_translations.sh +@@ -1,4 +1,4 @@ +-#!/usr/bin/env bash ++#!/bin/sh + + # Go to po directory + cd "$(dirname "${0}")" || exit 1 +diff --git a/tests/test_duplicate_mime_types.sh b/tests/test_duplicate_mime_types.sh +index e7dfb15..1b1245b 100755 +--- a/tests/test_duplicate_mime_types.sh ++++ b/tests/test_duplicate_mime_types.sh +@@ -1,20 +1,20 @@ +-#!/usr/bin/env bash +-set -euo pipefail ++#!/bin/sh ++set -eu + + : ${1:?filename argument missing} + xml_db_file="${1}" +-test -f ${xml_db_file} || { +- printf "%s: no such file\n" ${xml_db_file} >&2 ++test -f "${xml_db_file}" || { ++ printf '%s: no such file\n' "${xml_db_file}" >&2 + exit 1 + } + + duplicated=$( + xmllint --xpath \ + "//*[local-name()='mime-type' or local-name()='alias']/@type" \ +- ${xml_db_file} | tr ' ' '\n' | sort | uniq -d ++ "${xml_db_file}" | tr ' ' '\n' | sort | uniq -d + ) + +-if [[ -n "${duplicated}" ]]; then ++if [ -n "${duplicated}" ]; then + echo "*************************************************************" + echo "** Some mime-types are duplicated, fix before committing: **" + echo "${duplicated}" +diff --git a/tests/test_generic_icons.sh b/tests/test_generic_icons.sh +index de6c56f..41877f6 100755 +--- a/tests/test_generic_icons.sh ++++ b/tests/test_generic_icons.sh +@@ -1,4 +1,4 @@ +-#!/usr/bin/env bash ++#!/bin/sh + + xml_db_file="${1}" + +diff --git a/tests/test_mime.sh b/tests/test_mime.sh +index 49c531b..b3e9fef 100755 +--- a/tests/test_mime.sh ++++ b/tests/test_mime.sh +@@ -1,4 +1,4 @@ +-#!/usr/bin/env bash ++#!/bin/sh + set -e + + source_root="${1}" +diff --git a/tests/test_staging.sh b/tests/test_staging.sh +index a993dce..b62878c 100755 +--- a/tests/test_staging.sh ++++ b/tests/test_staging.sh +@@ -1,4 +1,4 @@ +-#!/usr/bin/env bash ++#!/bin/sh + set -e + + source_root="${1}" diff --git a/extra/shared-mime-info/shared-mime-info.toml b/extra/shared-mime-info/shared-mime-info.toml new file mode 100644 index 0000000..59215db --- /dev/null +++ b/extra/shared-mime-info/shared-mime-info.toml @@ -0,0 +1,38 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" +configure = ["-Dupdate-mimedb=false"] +post_install = [ "install -Dm644 $DEPOT_SPECDIR/update-mime-database.toml $DESTDIR/usr/share/depot.d/hooks/30-update-mime-database.toml" ] + +[dependencies] +build = [ + "meson", + "gettext", + "xmlto", + "docbook-xsl", +] +runtime = [ + "libxml215", + "glibc", + "libcxx", + "libunwind", + "glib2" +] + +[package] +description = "Freedesktop.org Shared MIME Info" +homepage = "https://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec/" +license = "GPL-2.0-or-later" +name = "shared-mime-info" +version = "2.4" + +[[source]] +extract_dir = "$name-$version" +url = "https://gitlab.freedesktop.org/xdg/shared-mime-info.git#9a6d6b8e963935f145f3a1ef446552de6996dada" +patches = [ "shared-mime-info-2.4-posixify.patch" ] + +[[manual_sources]] +files = [ "update-mime-database.toml", "postremove.sh", "shared-mime-info-2.4-posixify.patch" ] + diff --git a/extra/shared-mime-info/update-mime-database.toml b/extra/shared-mime-info/update-mime-database.toml new file mode 100644 index 0000000..b81a504 --- /dev/null +++ b/extra/shared-mime-info/update-mime-database.toml @@ -0,0 +1,11 @@ +[hook] +name = "update-mime-database" +description = "Update the MIME type database" + +[when] +phase = "post" +operation = ["install", "update", "remove"] +paths = ["usr/share/mime/packages/*.xml"] + +[exec] +command = "PKGSYSTEM_ENABLE_FSYNC=0 update-mime-database usr/share/mime" diff --git a/extra/svt-av1/svt-av1.toml b/extra/svt-av1/svt-av1.toml new file mode 100644 index 0000000..5b9d3d0 --- /dev/null +++ b/extra/svt-av1/svt-av1.toml @@ -0,0 +1,32 @@ +[build] +type = "cmake" + +[build.flags] +build_dir = "build" +configure = [ + "-DBUILD_SHARED_LIBS=ON", + "-G Ninja", + "-DNATIVE=OFF", +] + +[dependencies] +build = [ + "cmake", + "nasm", + "ninja", +] +runtime = ["glibc"] + +[package] +description = "Scalable Video Technology AV1 encoder and decoder" +homepage = "https://gitlab.com/AOMediaCodec/SVT-AV1" +license = [ + "BSD-3-Clause-Clear", + "BSD-3-Clause", +] +name = "svt-av1" +version = "4.0.1" + +[[source]] +extract_dir = "$name-$version" +url = "https://gitlab.com/AOMediaCodec/SVT-AV1.git#v$version" diff --git a/extra/swig/swig.toml b/extra/swig/swig.toml new file mode 100644 index 0000000..92d1276 --- /dev/null +++ b/extra/swig/swig.toml @@ -0,0 +1,51 @@ +[build] +type = "autotools" + +[build.flags] +make-test-vars = [ "PY3=y" ] + +[dependencies] +runtime = [ + "libunwind", + "libcxx", + "glibc", + "pcre2", + "zlib-ng", +] +test = [ + "ruby", + "python", + "java-environment", + "tcl", + "php", + "lua", + "r", + "go", + "boost", +] + +[package] +description = "Generate scripting interfaces to C/C++ code" +homepage = "https://www.swig.org/" +license = [ + "GPL-3.0-or-later", + "LicenseRef-BSD-Arizona", + "LicenseRef-BSD-Chicago", + "LicenseRef-BSD-Utah-California", +] +name = "swig" +version = "4.4.0" + +[[source]] +extract_dir = "$name-$version" +url = "https://github.com/swig/swig.git#v$version" +post_extract = [ "sed -n '5,32p' LICENSE-UNIVERSITIES > LicenseRef-BSD-Utah-California.txt", "sed -n '37,64p' LICENSE-UNIVERSITIES > LicenseRef-BSD-Chicago.txt", "sed -n '69,94p' LICENSE-UNIVERSITIES > LicenseRef-BSD-Arizona.txt", "sed '/stl_no_default_constructor/d' -i Examples/test-suite/common.mk", "sed '/li_std_list/d' -i Examples/test-suite/java/Makefile.in", "./autogen.sh" ] +cherry_pick = [ "b16a7c958a561721d164183f682d1511dc7c900b" ] + + + + + + + + diff --git a/extra/vala/0001-valadoc-Fix-gvRenderData-to-match-graphviz-13.0.0.patch b/extra/vala/0001-valadoc-Fix-gvRenderData-to-match-graphviz-13.0.0.patch new file mode 100644 index 0000000..6ef9ee9 --- /dev/null +++ b/extra/vala/0001-valadoc-Fix-gvRenderData-to-match-graphviz-13.0.0.patch @@ -0,0 +1,54 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: kotontrion +Date: Tue, 17 Jun 2025 11:49:48 +0200 +Subject: [PATCH] valadoc: Fix gvRenderData to match graphviz 13.0.0 + +The gvRenderData changed the length type for the array to size_t. Change +the length type in the vapi and in the chart's write_buffer function. + +There are more similar breaking changes which would need changes in the +vapi but are not included in this patch. This is the minimal change to +make valadoc work with graphviz 13.0.0. + +Source: https://gitlab.gnome.org/GNOME/vala/-/issues/1621#note_2473334 +--- + libvaladoc/charts/chart.vala | 5 +++-- + vapi/libgvc.vapi | 2 +- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/libvaladoc/charts/chart.vala b/libvaladoc/charts/chart.vala +index 4e642d1ce96e..5ef49527b2f0 100644 +--- a/libvaladoc/charts/chart.vala ++++ b/libvaladoc/charts/chart.vala +@@ -52,15 +52,16 @@ public class Valadoc.Charts.Chart : Api.Visitor { + context.render (graph, file_type, file); + } + +- public uint8[]? write_buffer (string file_type) { ++ public uint8[:size_t]? write_buffer (string file_type) { + if (context == null) { + context = factory.create_context (graph); + } + +- uint8[]? data; ++ uint8[:size_t]? data; + + /* This will return null in data if it fails. */ + context.render_data (graph, file_type, out data); ++ + return data; + } + +diff --git a/vapi/libgvc.vapi b/vapi/libgvc.vapi +index b128a02adcb7..8a2211ce20b6 100644 +--- a/vapi/libgvc.vapi ++++ b/vapi/libgvc.vapi +@@ -91,7 +91,7 @@ namespace Gvc { + public int render_jobs (Graph graph); + + [CCode (cname = "gvRenderData")] +- public int render_data (Graph graph, [CCode (type = "char*")] string file_type, [CCode (array_length_type = "unsigned int", type = "char**")] out uint8[] output_data); ++ public int render_data (Graph graph, [CCode (type = "char*")] string file_type, [CCode (array_length_type = "size_t", type = "char**")] out uint8[] output_data); + } + + [Compact] diff --git a/extra/vala/vala.toml b/extra/vala/vala.toml new file mode 100644 index 0000000..77f85a3 --- /dev/null +++ b/extra/vala/vala.toml @@ -0,0 +1,39 @@ +[build] +type = "autotools" + +[dependencies] +build = [ + "autoconf-archive", + "help2man", + "libxslt", +] +runtime = [ + "sh", + "clang", + "glibc", + "glib2", + "gtk-doc", + "pkgconf", + "ttf-font", +] +test = [ + "dbus", + "gobject-introspection", + "libx11", +] + +[[manual_sources]] +file = "0001-valadoc-Fix-gvRenderData-to-match-graphviz-13.0.0.patch" + +[package] +description = "Compiler for the GObject type system" +homepage = "https://wiki.gnome.org/Projects/Vala" +license = "LGPL-2.1-or-later" +name = "vala" +version = "0.56.18" + +[[source]] +extract_dir = "$name-$version" +patches = ["0001-valadoc-Fix-gvRenderData-to-match-graphviz-13.0.0.patch"] +url = "https://download.gnome.org/sources/vala/0.56/vala-$version.tar.xz" +sha256 = "md5:14238ac89810b932db9fd75999739494" diff --git a/extra/valgrind/valgrind-3.26.0-ungnuify.patch b/extra/valgrind/valgrind-3.26.0-ungnuify.patch new file mode 100644 index 0000000..3ca0b69 --- /dev/null +++ b/extra/valgrind/valgrind-3.26.0-ungnuify.patch @@ -0,0 +1,482 @@ +diff -urN a/Makefile.tool.am b/Makefile.tool.am +--- a/Makefile.tool.am 2025-10-24 13:43:21.000000000 -0500 ++++ b/Makefile.tool.am 2026-03-22 13:02:33.492002899 -0500 +@@ -16,7 +16,9 @@ + $(top_builddir)/VEX/libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a + endif + +-TOOL_LDADD_COMMON = -lgcc ++# Ask the compiler driver for its runtime support archive at link time so ++# clang can use compiler-rt instead of a hardcoded GNU libgcc. ++TOOL_LDADD_COMMON = + TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@ = \ + $(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@) $(TOOL_LDADD_COMMON) + if VGCONF_HAVE_PLATFORM_SEC +@@ -290,4 +292,3 @@ + install-exec-local: install-noinst_PROGRAMS install-noinst_DSYMS + + uninstall-local: uninstall-noinst_PROGRAMS uninstall-noinst_DSYMS +- +diff -urN a/cachegrind/Makefile.in b/cachegrind/Makefile.in +--- a/cachegrind/Makefile.in 2025-10-24 13:43:44.000000000 -0500 ++++ b/cachegrind/Makefile.in 2026-03-22 12:59:22.464512205 -0500 +@@ -742,7 +742,7 @@ + @VGCONF_HAVE_PLATFORM_SEC_TRUE@ $(top_builddir)/coregrind/libcoregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a \ + @VGCONF_HAVE_PLATFORM_SEC_TRUE@ $(top_builddir)/VEX/libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a + +-TOOL_LDADD_COMMON = -lgcc ++TOOL_LDADD_COMMON = + TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@ = \ + $(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@) \ + $(TOOL_LDADD_COMMON) $(am__append_7) $(am__append_9) +diff -urN a/callgrind/Makefile.in b/callgrind/Makefile.in +--- a/callgrind/Makefile.in 2025-10-24 13:43:45.000000000 -0500 ++++ b/callgrind/Makefile.in 2026-03-22 12:59:22.464050754 -0500 +@@ -789,7 +789,7 @@ + @VGCONF_HAVE_PLATFORM_SEC_TRUE@ $(top_builddir)/coregrind/libcoregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a \ + @VGCONF_HAVE_PLATFORM_SEC_TRUE@ $(top_builddir)/VEX/libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a + +-TOOL_LDADD_COMMON = -lgcc ++TOOL_LDADD_COMMON = + TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@ = \ + $(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@) \ + $(TOOL_LDADD_COMMON) $(am__append_7) $(am__append_9) +diff -urN a/coregrind/link_tool_exe_freebsd.in b/coregrind/link_tool_exe_freebsd.in +--- a/coregrind/link_tool_exe_freebsd.in 2025-10-24 13:43:21.000000000 -0500 ++++ b/coregrind/link_tool_exe_freebsd.in 2026-03-22 12:59:22.464512205 -0500 +@@ -56,6 +56,84 @@ + use warnings; + use strict; + ++sub capture_command_output { ++ my (@cmd) = @_; ++ my $pid = open(my $fh, "-|"); ++ die "Can't fork: $!" if !defined $pid; ++ ++ if ($pid == 0) { ++ open(STDERR, ">", "/dev/null") ++ or die "Can't redirect stderr: $!"; ++ exec @cmd or die "Can't exec @cmd: $!"; ++ } ++ ++ local $/ = undef; ++ my $output = <$fh>; ++ close($fh); ++ ++ return defined $output ? $output : ""; ++} ++ ++sub compiler_cmd_prefix { ++ my (@args) = @_; ++ my @prefix = (); ++ ++ foreach my $arg (@args) { ++ last if $arg =~ /^-/; ++ last if $arg =~ /\.(?:a|o|c|cc|cpp|cxx|s|S)$/; ++ push @prefix, $arg; ++ } ++ ++ die "Can't determine compiler command" ++ if scalar(@prefix) == 0; ++ ++ return @prefix; ++} ++ ++sub compiler_runtime_probe_args { ++ my (@args) = @_; ++ my @probe_args = (); ++ ++ for (my $n = 0; $n <= $#args; $n++) { ++ my $arg = $args[$n]; ++ ++ if ($arg eq "-m32" || $arg eq "-m64") { ++ push @probe_args, $arg; ++ next; ++ } ++ ++ if ($arg eq "-B" || $arg eq "--sysroot" || $arg eq "-resource-dir" ++ || $arg eq "-target" || $arg eq "--target" ++ || $arg eq "--gcc-toolchain") { ++ last if $n == $#args; ++ push @probe_args, $arg, $args[++$n]; ++ next; ++ } ++ ++ if ($arg =~ /^(-B|--sysroot=|-resource-dir=|-target=|--target=|--gcc-toolchain=|--rtlib=|-rtlib=|-stdlib=|-fuse-ld=)/) { ++ push @probe_args, $arg; ++ next; ++ } ++ } ++ ++ return @probe_args; ++} ++ ++sub compiler_runtime_archive { ++ my (@args) = @_; ++ my @compiler = compiler_cmd_prefix(@args); ++ my @probe_args = compiler_runtime_probe_args(@args); ++ ++ foreach my $probe ("-print-libgcc-file-name", "-print-file-name=libgcc.a") { ++ my $path = capture_command_output(@compiler, @probe_args, $probe); ++ chomp $path; ++ next if $path eq "" || $path eq "libgcc.a"; ++ return $path if -f $path; ++ } ++ ++ return "-lgcc"; ++} ++ + # expect at least: alt-load-address gcc -o foo bar.o + die "Not enough arguments" + if (($#ARGV + 1) < 5); +@@ -67,7 +145,9 @@ + die "Bogus alt-load address" + if (length($ala) < 3 || index($ala, "0x") != 0); + +-my $cmd = join(" ", @ARGV, "-static -Wl,@FLAG_T_TEXT@=$ala"); ++my $compiler_runtime = compiler_runtime_archive(@ARGV); ++ ++my $cmd = join(" ", @ARGV, $compiler_runtime, "-static -Wl,@FLAG_T_TEXT@=$ala"); + + #print "link_tool_exe_freebsd: $cmd\n"; + +diff -urN a/coregrind/link_tool_exe_linux.in b/coregrind/link_tool_exe_linux.in +--- a/coregrind/link_tool_exe_linux.in 2025-10-24 13:43:21.000000000 -0500 ++++ b/coregrind/link_tool_exe_linux.in 2026-03-22 12:59:22.464512205 -0500 +@@ -58,6 +58,84 @@ + use warnings; + use strict; + ++sub capture_command_output { ++ my (@cmd) = @_; ++ my $pid = open(my $fh, "-|"); ++ die "Can't fork: $!" if !defined $pid; ++ ++ if ($pid == 0) { ++ open(STDERR, ">", "/dev/null") ++ or die "Can't redirect stderr: $!"; ++ exec @cmd or die "Can't exec @cmd: $!"; ++ } ++ ++ local $/ = undef; ++ my $output = <$fh>; ++ close($fh); ++ ++ return defined $output ? $output : ""; ++} ++ ++sub compiler_cmd_prefix { ++ my (@args) = @_; ++ my @prefix = (); ++ ++ foreach my $arg (@args) { ++ last if $arg =~ /^-/; ++ last if $arg =~ /\.(?:a|o|c|cc|cpp|cxx|s|S)$/; ++ push @prefix, $arg; ++ } ++ ++ die "Can't determine compiler command" ++ if scalar(@prefix) == 0; ++ ++ return @prefix; ++} ++ ++sub compiler_runtime_probe_args { ++ my (@args) = @_; ++ my @probe_args = (); ++ ++ for (my $n = 0; $n <= $#args; $n++) { ++ my $arg = $args[$n]; ++ ++ if ($arg eq "-m32" || $arg eq "-m64") { ++ push @probe_args, $arg; ++ next; ++ } ++ ++ if ($arg eq "-B" || $arg eq "--sysroot" || $arg eq "-resource-dir" ++ || $arg eq "-target" || $arg eq "--target" ++ || $arg eq "--gcc-toolchain") { ++ last if $n == $#args; ++ push @probe_args, $arg, $args[++$n]; ++ next; ++ } ++ ++ if ($arg =~ /^(-B|--sysroot=|-resource-dir=|-target=|--target=|--gcc-toolchain=|--rtlib=|-rtlib=|-stdlib=|-fuse-ld=)/) { ++ push @probe_args, $arg; ++ next; ++ } ++ } ++ ++ return @probe_args; ++} ++ ++sub compiler_runtime_archive { ++ my (@args) = @_; ++ my @compiler = compiler_cmd_prefix(@args); ++ my @probe_args = compiler_runtime_probe_args(@args); ++ ++ foreach my $probe ("-print-libgcc-file-name", "-print-file-name=libgcc.a") { ++ my $path = capture_command_output(@compiler, @probe_args, $probe); ++ chomp $path; ++ next if $path eq "" || $path eq "libgcc.a"; ++ return $path if -f $path; ++ } ++ ++ return "-lgcc"; ++} ++ + # expect at least: alt-load-address gcc -o foo bar.o + die "Not enough arguments" + if (($#ARGV + 1) < 5); +@@ -69,7 +147,9 @@ + die "Bogus alt-load address" + if (length($ala) < 3 || index($ala, "0x") != 0); + +-my $cmd = join(" ", @ARGV, "-static -Wl,@FLAG_T_TEXT@=$ala"); ++my $compiler_runtime = compiler_runtime_archive(@ARGV); ++ ++my $cmd = join(" ", @ARGV, $compiler_runtime, "-static -Wl,@FLAG_T_TEXT@=$ala"); + + #print "link_tool_exe_linux: $cmd\n"; + +diff -urN a/coregrind/link_tool_exe_solaris.in b/coregrind/link_tool_exe_solaris.in +--- a/coregrind/link_tool_exe_solaris.in 2025-10-24 13:43:21.000000000 -0500 ++++ b/coregrind/link_tool_exe_solaris.in 2026-03-22 12:59:22.464512205 -0500 +@@ -21,6 +21,84 @@ + use File::Temp qw/tempfile unlink0/; + use Fcntl qw/F_SETFD/; + ++sub capture_command_output { ++ my (@cmd) = @_; ++ my $pid = open(my $fh, "-|"); ++ die "Can't fork: $!" if !defined $pid; ++ ++ if ($pid == 0) { ++ open(STDERR, ">", "/dev/null") ++ or die "Can't redirect stderr: $!"; ++ exec @cmd or die "Can't exec @cmd: $!"; ++ } ++ ++ local $/ = undef; ++ my $output = <$fh>; ++ close($fh); ++ ++ return defined $output ? $output : ""; ++} ++ ++sub compiler_cmd_prefix { ++ my (@args) = @_; ++ my @prefix = (); ++ ++ foreach my $arg (@args) { ++ last if $arg =~ /^-/; ++ last if $arg =~ /\.(?:a|o|c|cc|cpp|cxx|s|S)$/; ++ push @prefix, $arg; ++ } ++ ++ die "Can't determine compiler command" ++ if scalar(@prefix) == 0; ++ ++ return @prefix; ++} ++ ++sub compiler_runtime_probe_args { ++ my (@args) = @_; ++ my @probe_args = (); ++ ++ for (my $n = 0; $n <= $#args; $n++) { ++ my $arg = $args[$n]; ++ ++ if ($arg eq "-m32" || $arg eq "-m64") { ++ push @probe_args, $arg; ++ next; ++ } ++ ++ if ($arg eq "-B" || $arg eq "--sysroot" || $arg eq "-resource-dir" ++ || $arg eq "-target" || $arg eq "--target" ++ || $arg eq "--gcc-toolchain") { ++ last if $n == $#args; ++ push @probe_args, $arg, $args[++$n]; ++ next; ++ } ++ ++ if ($arg =~ /^(-B|--sysroot=|-resource-dir=|-target=|--target=|--gcc-toolchain=|--rtlib=|-rtlib=|-stdlib=|-fuse-ld=)/) { ++ push @probe_args, $arg; ++ next; ++ } ++ } ++ ++ return @probe_args; ++} ++ ++sub compiler_runtime_archive { ++ my (@args) = @_; ++ my @compiler = compiler_cmd_prefix(@args); ++ my @probe_args = compiler_runtime_probe_args(@args); ++ ++ foreach my $probe ("-print-libgcc-file-name", "-print-file-name=libgcc.a") { ++ my $path = capture_command_output(@compiler, @probe_args, $probe); ++ chomp $path; ++ next if $path eq "" || $path eq "libgcc.a"; ++ return $path if -f $path; ++ } ++ ++ return "-lgcc"; ++} ++ + # expect at least: alt-load-address gcc -o foo bar.o + die "Not enough arguments" + if (($#ARGV + 1) < 5); +@@ -62,7 +140,9 @@ + END + + # build up the complete command here: +-# 'cc' -Wl,-Mtmpfile 'restargs' ++# 'cc' -Wl,-Mtmpfile 'restargs' compiler-runtime-archive ++ ++my $compiler_runtime = compiler_runtime_archive(@ARGV[1 .. $#ARGV]); + + my $cmd="$cc -Wl,-M/proc/$$/fd/" . fileno($fh); + +@@ -71,6 +151,8 @@ + $cmd = "$cmd $ARGV[$n]"; + } + ++$cmd = "$cmd $compiler_runtime"; ++ + #print "link_tool_exe_solaris: $cmd\n"; + + +diff -urN a/dhat/Makefile.in b/dhat/Makefile.in +--- a/dhat/Makefile.in 2025-10-24 13:43:45.000000000 -0500 ++++ b/dhat/Makefile.in 2026-03-22 12:59:22.461512099 -0500 +@@ -767,7 +767,7 @@ + @VGCONF_HAVE_PLATFORM_SEC_TRUE@ $(top_builddir)/coregrind/libcoregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a \ + @VGCONF_HAVE_PLATFORM_SEC_TRUE@ $(top_builddir)/VEX/libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a + +-TOOL_LDADD_COMMON = -lgcc ++TOOL_LDADD_COMMON = + TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@ = \ + $(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@) \ + $(TOOL_LDADD_COMMON) $(am__append_7) $(am__append_9) +diff -urN a/drd/Makefile.in b/drd/Makefile.in +--- a/drd/Makefile.in 2025-10-24 13:43:45.000000000 -0500 ++++ b/drd/Makefile.in 2026-03-22 12:59:22.460512064 -0500 +@@ -848,7 +848,7 @@ + @VGCONF_HAVE_PLATFORM_SEC_TRUE@ $(top_builddir)/coregrind/libcoregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a \ + @VGCONF_HAVE_PLATFORM_SEC_TRUE@ $(top_builddir)/VEX/libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a + +-TOOL_LDADD_COMMON = -lgcc ++TOOL_LDADD_COMMON = + TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@ = \ + $(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@) \ + $(TOOL_LDADD_COMMON) $(am__append_7) $(am__append_9) +diff -urN a/exp-bbv/Makefile.in b/exp-bbv/Makefile.in +--- a/exp-bbv/Makefile.in 2025-10-24 13:43:45.000000000 -0500 ++++ b/exp-bbv/Makefile.in 2026-03-22 12:59:22.462512134 -0500 +@@ -703,7 +703,7 @@ + @VGCONF_HAVE_PLATFORM_SEC_TRUE@ $(top_builddir)/coregrind/libcoregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a \ + @VGCONF_HAVE_PLATFORM_SEC_TRUE@ $(top_builddir)/VEX/libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a + +-TOOL_LDADD_COMMON = -lgcc ++TOOL_LDADD_COMMON = + TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@ = \ + $(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@) \ + $(TOOL_LDADD_COMMON) $(am__append_7) $(am__append_9) +diff -urN a/helgrind/Makefile.in b/helgrind/Makefile.in +--- a/helgrind/Makefile.in 2025-10-24 13:43:46.000000000 -0500 ++++ b/helgrind/Makefile.in 2026-03-22 12:59:22.464050754 -0500 +@@ -790,7 +790,7 @@ + @VGCONF_HAVE_PLATFORM_SEC_TRUE@ $(top_builddir)/coregrind/libcoregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a \ + @VGCONF_HAVE_PLATFORM_SEC_TRUE@ $(top_builddir)/VEX/libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a + +-TOOL_LDADD_COMMON = -lgcc ++TOOL_LDADD_COMMON = + TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@ = \ + $(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@) \ + $(TOOL_LDADD_COMMON) $(am__append_7) $(am__append_9) +diff -urN a/lackey/Makefile.in b/lackey/Makefile.in +--- a/lackey/Makefile.in 2025-10-24 13:43:46.000000000 -0500 ++++ b/lackey/Makefile.in 2026-03-22 12:59:22.461512099 -0500 +@@ -703,7 +703,7 @@ + @VGCONF_HAVE_PLATFORM_SEC_TRUE@ $(top_builddir)/coregrind/libcoregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a \ + @VGCONF_HAVE_PLATFORM_SEC_TRUE@ $(top_builddir)/VEX/libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a + +-TOOL_LDADD_COMMON = -lgcc ++TOOL_LDADD_COMMON = + TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@ = \ + $(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@) \ + $(TOOL_LDADD_COMMON) $(am__append_7) $(am__append_9) +diff -urN a/massif/Makefile.in b/massif/Makefile.in +--- a/massif/Makefile.in 2025-10-24 13:43:46.000000000 -0500 ++++ b/massif/Makefile.in 2026-03-22 12:59:22.462512134 -0500 +@@ -757,7 +757,7 @@ + @VGCONF_HAVE_PLATFORM_SEC_TRUE@ $(top_builddir)/coregrind/libcoregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a \ + @VGCONF_HAVE_PLATFORM_SEC_TRUE@ $(top_builddir)/VEX/libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a + +-TOOL_LDADD_COMMON = -lgcc ++TOOL_LDADD_COMMON = + TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@ = \ + $(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@) \ + $(TOOL_LDADD_COMMON) $(am__append_7) $(am__append_9) +diff -urN a/memcheck/Makefile.in b/memcheck/Makefile.in +--- a/memcheck/Makefile.in 2025-10-24 13:43:46.000000000 -0500 ++++ b/memcheck/Makefile.in 2026-03-22 12:59:22.459512028 -0500 +@@ -790,7 +790,7 @@ + @VGCONF_HAVE_PLATFORM_SEC_TRUE@ $(top_builddir)/coregrind/libcoregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a \ + @VGCONF_HAVE_PLATFORM_SEC_TRUE@ $(top_builddir)/VEX/libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a + +-TOOL_LDADD_COMMON = -lgcc ++TOOL_LDADD_COMMON = + TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@ = \ + $(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@) \ + $(TOOL_LDADD_COMMON) $(am__append_7) $(am__append_9) +diff -urN a/none/Makefile.in b/none/Makefile.in +--- a/none/Makefile.in 2025-10-24 13:43:47.000000000 -0500 ++++ b/none/Makefile.in 2026-03-22 12:59:22.461512099 -0500 +@@ -701,7 +701,7 @@ + @VGCONF_HAVE_PLATFORM_SEC_TRUE@ $(top_builddir)/coregrind/libcoregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a \ + @VGCONF_HAVE_PLATFORM_SEC_TRUE@ $(top_builddir)/VEX/libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a + +-TOOL_LDADD_COMMON = -lgcc ++TOOL_LDADD_COMMON = + TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@ = \ + $(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@) \ + $(TOOL_LDADD_COMMON) $(am__append_7) $(am__append_9) +diff -urN a/none/tests/Makefile.am b/none/tests/Makefile.am +--- a/none/tests/Makefile.am 2025-10-24 13:43:21.000000000 -0500 ++++ b/none/tests/Makefile.am 2026-03-22 12:59:22.458511993 -0500 +@@ -502,9 +502,8 @@ + vgprintf_nvalgrind_CFLAGS = ${AM_CFLAGS} -DNVALGRIND + + valgrind_cpp_test_SOURCES = valgrind_cpp_test.cpp +-valgrind_cpp_test_LDADD = -lstdc++ ++valgrind_cpp_test_LDADD = + + # C++ tests + coolo_sigaction_SOURCES = coolo_sigaction.cpp + gxx304_SOURCES = gxx304.cpp +- +diff -urN a/none/tests/Makefile.in b/none/tests/Makefile.in +--- a/none/tests/Makefile.in 2025-10-24 13:43:47.000000000 -0500 ++++ b/none/tests/Makefile.in 2026-03-22 12:59:22.459512028 -0500 +@@ -1581,7 +1581,7 @@ + vgprintf_nvalgrind_SOURCES = vgprintf.c + vgprintf_nvalgrind_CFLAGS = ${AM_CFLAGS} -DNVALGRIND + valgrind_cpp_test_SOURCES = valgrind_cpp_test.cpp +-valgrind_cpp_test_LDADD = -lstdc++ ++valgrind_cpp_test_LDADD = + + # C++ tests + coolo_sigaction_SOURCES = coolo_sigaction.cpp +diff -urN a/valgrind.pc.in b/valgrind.pc.in +--- a/valgrind.pc.in 2025-10-24 13:43:21.000000000 -0500 ++++ b/valgrind.pc.in 2026-03-22 12:59:22.458511993 -0500 +@@ -11,6 +11,5 @@ + Description: A dynamic binary instrumentation framework + Version: @VERSION@ + Requires: +-Libs: -L${libdir}/valgrind -lcoregrind-@VGCONF_ARCH_PRI@-@VGCONF_OS@ -lvex-@VGCONF_ARCH_PRI@-@VGCONF_OS@ -lgcc ++Libs: -L${libdir}/valgrind -lcoregrind-@VGCONF_ARCH_PRI@-@VGCONF_OS@ -lvex-@VGCONF_ARCH_PRI@-@VGCONF_OS@ + Cflags: -I${includedir} +- diff --git a/extra/valgrind/valgrind-3.7.0-respect-flags.patch b/extra/valgrind/valgrind-3.7.0-respect-flags.patch new file mode 100644 index 0000000..b5fc44d --- /dev/null +++ b/extra/valgrind/valgrind-3.7.0-respect-flags.patch @@ -0,0 +1,13 @@ +diff -Naur valgrind-3.7.0.orig//mpi/Makefile.am valgrind-3.7.0/mpi/Makefile.am +--- valgrind-3.7.0.orig/mpi/Makefile.am 2011-10-26 17:24:23.000000000 -0400 ++++ valgrind-3.7.0/mpi/Makefile.am 2011-11-10 16:03:14.000000000 -0500 +@@ -7,9 +7,6 @@ + CC = $(MPI_CC) + DEFS = + DEFAULT_INCLUDES = +-CPPFLAGS = +-CFLAGS = +-LDFLAGS = + + EXTRA_DIST = \ + mpiwrap_type_test.c diff --git a/extra/valgrind/valgrind.toml b/extra/valgrind/valgrind.toml new file mode 100644 index 0000000..f26df73 --- /dev/null +++ b/extra/valgrind/valgrind.toml @@ -0,0 +1,45 @@ +[build] +type = "autotools" + +[build.flags] +skip_tests = true +replace_cflags = [ "-fstack-protector-strong=-fno-stack-protector" ] +replace_cxxflags = [ "-fstack-protector-strong=-fno-stack-protector" ] +no-remove-static = true +post_install = [ "install -Dm644 docs/*.1 -t $DESTDIR/usr/share/man/man1" ] + +[dependencies] +build = [ + "lib32-glibc", + "lib32-libcxx", + "docbook-xml", + "lib32-libunwind", + "docbook-xsl", + "docbook-sgml", +] +optional = [ + "lib32-glibc", + "python", +] +runtime = [ + "glibc", + "perl", +] +test = ["procps-ng"] + +[[manual_sources]] +files = [ "valgrind-3.7.0-respect-flags.patch", "valgrind-3.26.0-ungnuify.patch" ] + +[package] +description = "Tool to help find memory-management problems in programs" +homepage = "https://valgrind.org/" +license = "GPL-2.0-or-later" +name = "valgrind" +version = "3.26.0" + +[[source]] +extract_dir = "$name-$version" +patches = [ "valgrind-3.7.0-respect-flags.patch", "valgrind-3.26.0-ungnuify.patch" ] +post_extract = ["autoreconf -fiv"] +sha256 = "8d54c717029106f1644aadaf802ab9692e53d93dd015cbd19e74190eba616bd7" +url = "https://sourceware.org/pub/valgrind/valgrind-$version.tar.bz2" diff --git a/extra/vulkan-icd-loader/vulkan-icd-loader.toml b/extra/vulkan-icd-loader/vulkan-icd-loader.toml new file mode 100644 index 0000000..df91658 --- /dev/null +++ b/extra/vulkan-icd-loader/vulkan-icd-loader.toml @@ -0,0 +1,33 @@ +[build] +type = "cmake" + +[build.flags] +build_dir = "build" +configure = [ + "-DCMAKE_SKIP_INSTALL_RPATH=ON", + "-G Ninja", +] + +[dependencies] +build = [ + "cmake", + "ninja", + "libx11", + "libxrandr", + "python-lxml", + "vulkan-headers", + "wayland" +] +optional = ["vulkan-driver"] +runtime = ["glibc"] + +[package] +description = "Vulkan Installable Client Driver (ICD) Loader" +homepage = "https://www.vulkan.org/" +license = "Apache-2.0" +name = "vulkan-icd-loader" +version = "1.4.341.0" + +[[source]] +extract_dir = "$name-$version" +url = "https://github.com/KhronosGroup/Vulkan-Loader#vulkan-sdk-$version" diff --git a/extra/waf/build.sh b/extra/waf/build.sh new file mode 100644 index 0000000..83f5516 --- /dev/null +++ b/extra/waf/build.sh @@ -0,0 +1,17 @@ +py_ver=$(python3 -c "import sys; print(str(sys.version_info.major)+'.'+str(sys.version_info.minor))") +sed -e "/test(i/ s|dirname|'python${py_ver}/site-packages/waf'|" -i waf-light +head -n 30 waf | tail -n 28 | sed -e 's/# //g; s/"""//g' > LICENSE +./waf-light \ + configure --prefix=/usr \ + build --make-waf +sed -i '/^#==>$/,/^#<==$/d' waf +install -vDm 755 waf -t "$DESTDIR/usr/bin" +install -vDm 644 wscript -t "$DESTDIR/usr/share/waf/" +# installing, byte-compiling waflib and stripping DESTDIR from it +install -vDm 644 waflib/*.py -t "$DESTDIR/usr/lib/python$py_ver/site-packages/waf/waflib/" +install -vDm 644 waflib/Tools/*.py -t "$DESTDIR/usr/lib/python$py_ver/site-packages/waf/waflib/Tools/" +install -vDm 644 waflib/extras/*.py -t "$DESTDIR/usr/lib/python$py_ver/site-packages/waf/waflib/extras/" +python -m compileall -d "/usr/lib/python$py_ver" "$DESTDIR/usr/lib/python$py_ver/" +python -O -m compileall -d "/usr/lib/python$py_ver" "$DESTDIR/usr/lib/python$py_ver/" + + diff --git a/extra/waf/waf.toml b/extra/waf/waf.toml new file mode 100644 index 0000000..dfd9b81 --- /dev/null +++ b/extra/waf/waf.toml @@ -0,0 +1,17 @@ +[build] +type = "custom" + +[dependencies] +build = ["unzip"] +runtime = ["python"] + +[package] +description = "General-purpose build system modelled after Scons" +homepage = "http://waf.io/" +license = "BSD-3-Clause" +name = "waf" +version = "2.1.9" + +[[source]] +extract_dir = "$name-$version" +url = "https://gitlab.com/ita1024/waf.git#waf-$version" diff --git a/extra/wayland-protocols/wayland-protocols.toml b/extra/wayland-protocols/wayland-protocols.toml new file mode 100644 index 0000000..ad1210c --- /dev/null +++ b/extra/wayland-protocols/wayland-protocols.toml @@ -0,0 +1,23 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" + +[dependencies] +build = [ + "wayland", + "meson", +] + +[package] +description = "Specifications of extended Wayland protocols" +homepage = "https://wayland.freedesktop.org/" +license = "MIT" +name = "wayland-protocols" +version = "1.47" + +[[source]] +extract_dir = "$name-$version" +sha256 = "5fd4349bcbc9bab9a46f8cf77d1f434296a7a052c87440a094f63fcf62a58e20" +url = "https://gitlab.freedesktop.org/wayland/$name/-/releases/$version/downloads/$name-$version.tar.xz" diff --git a/extra/wayland/wayland.toml b/extra/wayland/wayland.toml index a99051d..6b18aeb 100644 --- a/extra/wayland/wayland.toml +++ b/extra/wayland/wayland.toml @@ -3,6 +3,7 @@ type = "meson" [build.flags] build_dir = "build" +configure = [ "-Ddocumentation=false" ] [dependencies] build = [ diff --git a/extra/xcb-util-keysyms/xcb-util-keysyms.toml b/extra/xcb-util-keysyms/xcb-util-keysyms.toml new file mode 100644 index 0000000..2e63fa3 --- /dev/null +++ b/extra/xcb-util-keysyms/xcb-util-keysyms.toml @@ -0,0 +1,27 @@ +[build] +type = "autotools" + +[build.flags] +configure = ["--disable-static"] + +[dependencies] +build = [ + "xorg-util-macros", + "xorgproto", +] +runtime = [ + "libxcb", + "glibc", +] + +[package] +description = "Utility libraries for XC Binding - Standard X key constants and conversion to/from keycodes" +homepage = "https://xcb.freedesktop.org/" +license = "X11-distribute-modifications-variant" +name = "xcb-util-keysyms" +version = "0.4.1" + +[[source]] +extract_dir = "$name-$version" +sha256 = "7c260a5294412aed429df1da2f8afd3bd07b7cba3fec772fba15a613a6d5c638" +url = "https://xorg.freedesktop.org/archive/individual/lib/$name-$version.tar.xz" diff --git a/extra/yasm/0001-elf-note-gnu-property.patch b/extra/yasm/0001-elf-note-gnu-property.patch new file mode 100644 index 0000000..639f24b --- /dev/null +++ b/extra/yasm/0001-elf-note-gnu-property.patch @@ -0,0 +1,24 @@ +From 0799f381d513e18f404654047fa1b412084968c8 Mon Sep 17 00:00:00 2001 +From: kalebskeithley +Date: Sat, 13 May 2023 00:15:02 -0400 +Subject: [PATCH] Update elf-objfmt.c (#148) + +--- + modules/objfmts/elf/elf-objfmt.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/modules/objfmts/elf/elf-objfmt.c b/modules/objfmts/elf/elf-objfmt.c +index 0c3a14263..c4360c03d 100644 +--- a/modules/objfmts/elf/elf-objfmt.c ++++ b/modules/objfmts/elf/elf-objfmt.c +@@ -1077,6 +1077,10 @@ elf_objfmt_section_switch(yasm_object *object, yasm_valparamhead *valparams, + align = 0; + data.type = SHT_PROGBITS; + data.flags = 0; ++ } else if (strcmp(sectname, ".note.gnu.property") == 0) { ++ align = 8; ++ data.type = SHT_NOTE; ++ data.flags = 0; + } else { + /* Default to code */ + align = 1; diff --git a/extra/yasm/0002-no-ac-header-stdc.patch b/extra/yasm/0002-no-ac-header-stdc.patch new file mode 100644 index 0000000..9506af3 --- /dev/null +++ b/extra/yasm/0002-no-ac-header-stdc.patch @@ -0,0 +1,29 @@ +From 3e74376b5653102a3957f59005969fcdbbe5a89d Mon Sep 17 00:00:00 2001 +From: Peter Johnson +Date: Fri, 9 Jul 2021 16:02:37 -0500 +Subject: [PATCH] Do not use AC_HEADER_STDC (#178) + +This fixes compatibility with autotools 2.70+ +--- + configure.ac | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 01b61097f..2823ecd7d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -101,14 +101,8 @@ AM_WITH_DMALLOC + # + # Checks for header files. + # +-AC_HEADER_STDC + AC_CHECK_HEADERS([strings.h libgen.h unistd.h direct.h sys/stat.h]) + +-# REQUIRE standard C headers +-if test "$ac_cv_header_stdc" != yes; then +- AC_MSG_ERROR([Standard (ANSI/ISO C89) header files are required.]) +-fi +- + # + # Checks for typedefs, structures, and compiler characteristics. + # diff --git a/extra/yasm/0003-remove-date-version-strings.patch b/extra/yasm/0003-remove-date-version-strings.patch new file mode 100644 index 0000000..094a4bf --- /dev/null +++ b/extra/yasm/0003-remove-date-version-strings.patch @@ -0,0 +1,49 @@ +From 61e374f24718975e8175f048e70afaaf0c4771a9 Mon Sep 17 00:00:00 2001 +From: Ismo Puustinen +Date: Sat, 13 May 2023 07:07:35 +0300 +Subject: [PATCH] Remove __DATE__ from version strings (#198) + +Having __DATE__ is causing compilation errors when it's defined by Bazel +build tool like this: -D__DATE__=redacted +--- + frontends/tasm/tasm.c | 1 - + frontends/vsyasm/vsyasm.c | 1 - + frontends/yasm/yasm.c | 1 - + 3 files changed, 3 deletions(-) + +diff --git a/frontends/tasm/tasm.c b/frontends/tasm/tasm.c +index 93c11c98f..353f8c582 100644 +--- a/frontends/tasm/tasm.c ++++ b/frontends/tasm/tasm.c +@@ -228,7 +228,6 @@ static opt_option options[] = + /* version message */ + /*@observer@*/ static const char *version_msg[] = { + PACKAGE_STRING, +- "Compiled on " __DATE__ ".", + "Copyright (c) 2001-2010 Peter Johnson and other Yasm developers.", + "Run yasm --license for licensing overview and summary." + }; +diff --git a/frontends/vsyasm/vsyasm.c b/frontends/vsyasm/vsyasm.c +index 892b9b334..b3a5a592b 100644 +--- a/frontends/vsyasm/vsyasm.c ++++ b/frontends/vsyasm/vsyasm.c +@@ -220,7 +220,6 @@ static opt_option options[] = + /* version message */ + /*@observer@*/ static const char *version_msg[] = { + PACKAGE_STRING, +- "Compiled on " __DATE__ ".", + "Copyright (c) 2001-2010 Peter Johnson and other Yasm developers.", + "Run yasm --license for licensing overview and summary." + }; +diff --git a/frontends/yasm/yasm.c b/frontends/yasm/yasm.c +index bc6f379ad..7ac141e69 100644 +--- a/frontends/yasm/yasm.c ++++ b/frontends/yasm/yasm.c +@@ -219,7 +219,6 @@ static opt_option options[] = + /* version message */ + /*@observer@*/ static const char *version_msg[] = { + PACKAGE_STRING, +- "Compiled on " __DATE__ ".", + "Copyright (c) 2001-2014 Peter Johnson and other Yasm developers.", + "Run yasm --license for licensing overview and summary." + }; diff --git a/extra/yasm/0004-gcc15-c23-bitvect.patch b/extra/yasm/0004-gcc15-c23-bitvect.patch new file mode 100644 index 0000000..4365ac1 --- /dev/null +++ b/extra/yasm/0004-gcc15-c23-bitvect.patch @@ -0,0 +1,36 @@ +From 64ef740eb262f329e55eebadf2ce276b146d44e9 Mon Sep 17 00:00:00 2001 +From: Martin Jansa +Date: Tue, 22 Apr 2025 19:06:24 +0200 +Subject: [PATCH] bitvect: fix build with gcc-15 + +* fixes: +libyasm/bitvect.h:86:32: error: cannot use keyword 'false' as enumeration constant + 86 | typedef enum boolean { false = FALSE, true = TRUE } boolean; + | ^~~~~ +../git/libyasm/bitvect.h:86:32: note: 'false' is a keyword with '-std=c23' onwards + +as suggested in: +https://github.com/yasm/yasm/issues/283#issuecomment-2661108816 + +Signed-off-by: Martin Jansa +--- + libyasm/bitvect.h | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/libyasm/bitvect.h b/libyasm/bitvect.h +index 3aee3a531..a13470ada 100644 +--- a/libyasm/bitvect.h ++++ b/libyasm/bitvect.h +@@ -83,7 +83,11 @@ typedef Z_longword *Z_longwordptr; + #ifdef MACOS_TRADITIONAL + #define boolean Boolean + #else +- typedef enum boolean { false = FALSE, true = TRUE } boolean; ++ #if __STDC_VERSION__ < 202311L ++ typedef enum boolean { false = FALSE, true = TRUE } boolean; ++ #else ++ typedef bool boolean; ++ #endif + #endif + #endif + diff --git a/extra/yasm/yasm.toml b/extra/yasm/yasm.toml index 8a34f65..a7d9816 100644 --- a/extra/yasm/yasm.toml +++ b/extra/yasm/yasm.toml @@ -30,5 +30,10 @@ post_extract = [ "echo $version > version", "autoreconf -vfi", ] -url = "https://github.com/yasm/yasm.git#v$version" -cherry_pick = [ "0799f381d513e18f404654047fa1b412084968c8", "3e74376b5653102a3957f59005969fcdbbe5a89d", "61e374f24718975e8175f048e70afaaf0c4771a9", "64ef740eb262f329e55eebadf2ce276b146d44e9" ] +url = "https://github.com/yasm/yasm/releases/download/v$version/yasm-$version.tar.gz" +patches = [ + "0001-elf-note-gnu-property.patch", + "0002-no-ac-header-stdc.patch", + "0003-remove-date-version-strings.patch", + "0004-gcc15-c23-bitvect.patch", +] diff --git a/extra/yelp-tools/yelp-tools.toml b/extra/yelp-tools/yelp-tools.toml new file mode 100644 index 0000000..7d223e6 --- /dev/null +++ b/extra/yelp-tools/yelp-tools.toml @@ -0,0 +1,28 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" +configure = ["-Dhelp=true"] + +[dependencies] +build = ["meson"] +runtime = [ + "yelp-xsl", + "python-lxml", + "itstool", + "libxml215", + "docbook-xsl", + "mallard-ducktype", +] + +[package] +description = "Collection of tools for building and converting documentation" +homepage = "https://gitlab.gnome.org/GNOME/yelp-tools" +license = "GPL-2.0-or-Later" +name = "yelp-tools" +version = "42.1" + +[[source]] +extract_dir = "$name-$version" +url = "https://gitlab.gnome.org/GNOME/yelp-tools.git#fe5ff72ca46fba425143e5dc67d660703c86145f" diff --git a/extra/yelp-xsl/yelp-xsl-49.0-posixify.patch b/extra/yelp-xsl/yelp-xsl-49.0-posixify.patch new file mode 100644 index 0000000..c147cf3 --- /dev/null +++ b/extra/yelp-xsl/yelp-xsl-49.0-posixify.patch @@ -0,0 +1,19 @@ +diff --git a/xslt/common/domains/gen_yelp_xml.sh b/xslt/common/domains/gen_yelp_xml.sh +index 29e133b..e77ca99 100755 +--- a/xslt/common/domains/gen_yelp_xml.sh ++++ b/xslt/common/domains/gen_yelp_xml.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + + set -e + +@@ -10,7 +10,7 @@ output='' + target='' + + parse_options() { +- while [[ -n "${1}" ]]; do ++ while [ -n "${1}" ]; do + case "${1}" in + --input) + input="${2}" diff --git a/extra/yelp-xsl/yelp-xsl.toml b/extra/yelp-xsl/yelp-xsl.toml new file mode 100644 index 0000000..79d2d5c --- /dev/null +++ b/extra/yelp-xsl/yelp-xsl.toml @@ -0,0 +1,32 @@ +[build] +type = "meson" + +[build.flags] +build_dir = "build" +configure = ["-Ddita=true"] + +[dependencies] +build = [ + "libxslt", + "meson", + "itstool", +] + +[package] +description = "Document transformations from Yelp" +homepage = "https://gitlab.gnome.org/GNOME/yelp-xsl" +license = [ + "BSD-3-Clause", + "GPL-2.0-or-later", + "LGPL-2.1-or-later", +] +name = "yelp-xsl" +version = "49.0" + +[[source]] +extract_dir = "$name-$version" +url = "https://gitlab.gnome.org/GNOME/yelp-xsl.git#$version" +patches = [ "yelp-xsl-49.0-posixify.patch" ] + +[[manual_sources]] +file = "yelp-xsl-49.0-posixify.patch"