summaryrefslogtreecommitdiff
path: root/media-libs
diff options
context:
space:
mode:
Diffstat (limited to 'media-libs')
-rw-r--r--media-libs/Manifest.gzbin68548 -> 68539 bytes
-rw-r--r--media-libs/mesa/Manifest2
-rw-r--r--media-libs/mesa/mesa-23.1.5.ebuild450
-rw-r--r--media-libs/netpbm/Manifest8
-rw-r--r--media-libs/netpbm/files/netpbm-10.86.21-test.patch10
-rw-r--r--media-libs/netpbm/files/netpbm-10.86.22-fix-ps-test.patch506
-rw-r--r--media-libs/netpbm/netpbm-10.86.36.ebuild243
-rw-r--r--media-libs/netpbm/netpbm-11.3.1.ebuild (renamed from media-libs/netpbm/netpbm-11.3.0.ebuild)0
8 files changed, 454 insertions, 765 deletions
diff --git a/media-libs/Manifest.gz b/media-libs/Manifest.gz
index a8f857a24b50..94c8d52851a4 100644
--- a/media-libs/Manifest.gz
+++ b/media-libs/Manifest.gz
Binary files differ
diff --git a/media-libs/mesa/Manifest b/media-libs/mesa/Manifest
index 26672d72d4cf..897b7a2f90c6 100644
--- a/media-libs/mesa/Manifest
+++ b/media-libs/mesa/Manifest
@@ -9,6 +9,7 @@ DIST mesa-23.1.1.tar.xz 18299068 BLAKE2B b17a71205248f2e97c60aa944d8b5b19d51592b
DIST mesa-23.1.2.tar.xz 18333300 BLAKE2B a98dddf9c6cd0f69ec980e1080b53c92513ac03161dfba3355b83da674d6148dbd66c7e0403795eea7c3ce28fb5ff392a96607f34e4caf68a58ac8eb157cf146 SHA512 728e79720d950b0f39fa55c21dff7caed3650e88dff52a2f3e70540a049f1baf78178e62e5d6b1e59c76f6555ab0be3f0043cfbddd4745c0a742ccef2f5774d4
DIST mesa-23.1.3.tar.xz 18358052 BLAKE2B 99ce2a458c049b60cf13278d5e2e04d9eebefe04d5cbfcba7ff13421724bfd7877ec24086e513d249f1e7b1d537acea90e2ae53d71ef420213a5764ce61d8c4f SHA512 44f0658138ef99dcede5e4c33d5733af836283f05b031b07f3f8b3bc03b301bc7ab9dc15248829cf3dfc423f2da8935b372b25df8b9ef15a511ba16ccd913959
DIST mesa-23.1.4.tar.xz 18414456 BLAKE2B 9c696766f4f7af9a2d12c6e7663f300e4dbcfc27ee210770151a8be76b3413b51aad1e2a00f4cf38695cf26d5b684e38a65de8a63723597a0ff97f3a9935b1a1 SHA512 4063c7848f507b5e25cfc862394268147254b90c9f3eb19035cce338b0a9cb611b7380c1c73f0e4feeddde68124225df7dee7b9db5f019603dfde2b88ff46a21
+DIST mesa-23.1.5.tar.xz 18438676 BLAKE2B 9919de93df171dd884ef39f52e480e62ef7f4cd55e43b507316af7de39b222ddec12914628d136d40a80f8398f517708a67a64b99858bba3c86686956b7c91bc SHA512 c5eac5a497561374eaf931214aebc9001820c5ab49f9b8c5634b62af081b03b2f21c169c936524b2953c8815eb27dfb5c8c12276b9b1c119722cd6fea0b22d85
EBUILD mesa-22.3.7-r1.ebuild 12102 BLAKE2B 5c922d962095386dd1e0bc1a97b5906c984be4973181c747d3704c61b5250dc7406971811c7633cadde6119dc3ba133f8b9b5bdac06bb0099de1d541d3c9d4e3 SHA512 6660223e22ff2804de0b92809c82bbd0ae112d8986975ab9d5d9625d757f651657efc14e82e97fb010f884b748591ff4c0f3574af66a35aa23224185e75abcd2
EBUILD mesa-23.0.3-r1.ebuild 12250 BLAKE2B 4e6add8f5a8a6758b12f5c72e42e2b7df839ea793f155b6653b9cd6eed82eccca39768cdc8deb6b718627c4df7b0ad1ddcdf54a4db48eaf4c55fbcf570e7168e SHA512 9f4ca64c734a77f175abbc4037cb4291ab9f9d8f329087aa487fc628926bec163fdf43abef43e75cde6f08327e3b8c04c7c24a36150fb2444de9d7fae3e37c0d
EBUILD mesa-23.1.0.ebuild 12311 BLAKE2B e7e8114c5c59b7c7f7b68f8146a7190017cdaabb04a397143720c8c04bc32142f47a949a7540f0227a1e1fb3802b21d5806bd6d5a76c3ae30fba2811cd4d9a2c SHA512 d2e516f1f7d3a54bee2fa5a6b51f815400be31ce916058c0b8833b8ecbf9dc2fadd39327dd1289c919b4326e40539cb01da8a810139280ee5120e2b5885385e9
@@ -17,5 +18,6 @@ EBUILD mesa-23.1.2-r1.ebuild 12315 BLAKE2B 79244582d2b1e984fc90c96acff7494d92b6c
EBUILD mesa-23.1.2.ebuild 12223 BLAKE2B a892145bba1e24fb93abe8b9b26a2dc782299ac26de3886cd533ff0f8d37596a10abe59ecf3547e30bc8482f28369fd877aa2f61414927315bf026d3bfb0509d SHA512 172527e98ac0782d4717381b84c5c4b7dad4a6ce5799c8a6e19ea4bfd6938e68205d2e129eff341e53fb854f523d4e79d3251322ee906a5c8760673b8a9bb03c
EBUILD mesa-23.1.3.ebuild 12353 BLAKE2B 962c73ee4f33238abbcff8363fb28656432617ac7bea5f74ac2425c78177c3d98cc05341c8391939584326b79952b219f99724453396b2c85a0df55318498f11 SHA512 51c8b75936105d6675b044d7270b228166173130a0cb82a321e4dce949c8d000b8a570a5542a6daeb4897840d675bc8e96641fb4009104d8c4a451a1124f4706
EBUILD mesa-23.1.4.ebuild 12357 BLAKE2B 14724a7cd60397846f9894bc5ae8e5fd8a893f33f3c81a519f72780cb057c5d9404d26e0ae80d8d525dec66875a506a972896fdf63c6ec3c206946ed2a1b5caf SHA512 6777196d287971891805413eeab6178d0b04b8aedf3558f0cc1a501ab108b3e5baeece5e2d1bb562a1643e3a6def056b42ed5b81653d7117cbf5da55ea0f13b9
+EBUILD mesa-23.1.5.ebuild 12357 BLAKE2B 14724a7cd60397846f9894bc5ae8e5fd8a893f33f3c81a519f72780cb057c5d9404d26e0ae80d8d525dec66875a506a972896fdf63c6ec3c206946ed2a1b5caf SHA512 6777196d287971891805413eeab6178d0b04b8aedf3558f0cc1a501ab108b3e5baeece5e2d1bb562a1643e3a6def056b42ed5b81653d7117cbf5da55ea0f13b9
EBUILD mesa-9999.ebuild 12357 BLAKE2B 14724a7cd60397846f9894bc5ae8e5fd8a893f33f3c81a519f72780cb057c5d9404d26e0ae80d8d525dec66875a506a972896fdf63c6ec3c206946ed2a1b5caf SHA512 6777196d287971891805413eeab6178d0b04b8aedf3558f0cc1a501ab108b3e5baeece5e2d1bb562a1643e3a6def056b42ed5b81653d7117cbf5da55ea0f13b9
MISC metadata.xml 1488 BLAKE2B 7b776f0a6d92b34baec90c58d019d61af537044766ce34a6e139ef679a0724e57fe65d600307c7f9dc0c48618445527618322e2af737191082dece3e547d5533 SHA512 1d573d534f1099eb1f1912567cf559aeae28111eabefa806b292a66d1f1e539e86394a76ca40a1481a6bfb4b6f7a0b117344e39d7b4d2eac615ef49b8f62acb9
diff --git a/media-libs/mesa/mesa-23.1.5.ebuild b/media-libs/mesa/mesa-23.1.5.ebuild
new file mode 100644
index 000000000000..c44daa0c39c2
--- /dev/null
+++ b/media-libs/mesa/mesa-23.1.5.ebuild
@@ -0,0 +1,450 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..12} )
+
+inherit llvm meson-multilib python-any-r1 linux-info
+
+MY_P="${P/_/-}"
+
+DESCRIPTION="OpenGL-like graphic library for Linux"
+HOMEPAGE="https://www.mesa3d.org/ https://mesa.freedesktop.org/"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://gitlab.freedesktop.org/mesa/mesa.git"
+ inherit git-r3
+else
+ SRC_URI="https://archive.mesa3d.org/${MY_P}.tar.xz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-solaris"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+RESTRICT="!test? ( test )"
+
+RADEON_CARDS="r300 r600 radeon radeonsi"
+VIDEO_CARDS="${RADEON_CARDS} d3d12 freedreno intel lavapipe lima nouveau panfrost v3d vc4 virgl vivante vmware"
+for card in ${VIDEO_CARDS}; do
+ IUSE_VIDEO_CARDS+=" video_cards_${card}"
+done
+
+IUSE="${IUSE_VIDEO_CARDS}
+ cpu_flags_x86_sse2 d3d9 debug gles1 +gles2 +llvm
+ lm-sensors opencl osmesa +proprietary-codecs selinux
+ test unwind vaapi valgrind vdpau vulkan
+ vulkan-overlay wayland +X xa zink +zstd"
+
+REQUIRED_USE="
+ d3d9? (
+ || (
+ video_cards_intel
+ video_cards_r300
+ video_cards_r600
+ video_cards_radeonsi
+ video_cards_nouveau
+ video_cards_vmware
+ )
+ )
+ vulkan? ( video_cards_radeonsi? ( llvm ) )
+ vulkan-overlay? ( vulkan )
+ video_cards_lavapipe? ( llvm vulkan )
+ video_cards_radeon? ( x86? ( llvm ) amd64? ( llvm ) )
+ video_cards_r300? ( x86? ( llvm ) amd64? ( llvm ) )
+ video_cards_radeonsi? ( llvm )
+ vdpau? ( X )
+ xa? ( X )
+ zink? ( vulkan )
+"
+
+LIBDRM_DEPSTRING=">=x11-libs/libdrm-2.4.110"
+RDEPEND="
+ >=dev-libs/expat-2.1.0-r3[${MULTILIB_USEDEP}]
+ >=media-libs/libglvnd-1.3.2[X?,${MULTILIB_USEDEP}]
+ >=sys-libs/zlib-1.2.8[${MULTILIB_USEDEP}]
+ unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] )
+ llvm? (
+ video_cards_radeonsi? (
+ virtual/libelf:0=[${MULTILIB_USEDEP}]
+ )
+ video_cards_r600? (
+ virtual/libelf:0=[${MULTILIB_USEDEP}]
+ )
+ video_cards_radeon? (
+ virtual/libelf:0=[${MULTILIB_USEDEP}]
+ )
+ )
+ lm-sensors? ( sys-apps/lm-sensors:=[${MULTILIB_USEDEP}] )
+ opencl? (
+ >=virtual/opencl-3
+ dev-libs/libclc[spirv(-)]
+ >=dev-util/spirv-tools-1.3.231.0
+ virtual/libelf:0=
+ )
+ vaapi? (
+ >=media-libs/libva-1.7.3:=[${MULTILIB_USEDEP}]
+ )
+ vdpau? ( >=x11-libs/libvdpau-1.1:=[${MULTILIB_USEDEP}] )
+ vulkan? (
+ video_cards_intel? (
+ amd64? (
+ dev-libs/libclc[spirv(-)]
+ >=dev-util/spirv-tools-1.3.231.0
+ )
+ )
+ )
+ selinux? ( sys-libs/libselinux[${MULTILIB_USEDEP}] )
+ wayland? ( >=dev-libs/wayland-1.18.0[${MULTILIB_USEDEP}] )
+ ${LIBDRM_DEPSTRING}[video_cards_freedreno?,video_cards_intel?,video_cards_nouveau?,video_cards_vc4?,video_cards_vivante?,video_cards_vmware?,${MULTILIB_USEDEP}]
+ X? (
+ >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
+ >=x11-libs/libxshmfence-1.1[${MULTILIB_USEDEP}]
+ >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
+ >=x11-libs/libXxf86vm-1.1.3[${MULTILIB_USEDEP}]
+ >=x11-libs/libxcb-1.13:=[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ )
+ zink? ( media-libs/vulkan-loader:=[${MULTILIB_USEDEP}] )
+ zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
+"
+for card in ${RADEON_CARDS}; do
+ RDEPEND="${RDEPEND}
+ video_cards_${card}? ( ${LIBDRM_DEPSTRING}[video_cards_radeon] )
+ "
+done
+RDEPEND="${RDEPEND}
+ video_cards_radeonsi? ( ${LIBDRM_DEPSTRING}[video_cards_amdgpu] )
+"
+
+# Please keep the LLVM dependency block separate. Since LLVM is slotted,
+# we need to *really* make sure we're not pulling one than more slot
+# simultaneously.
+#
+# How to use it:
+# 1. Specify LLVM_MAX_SLOT (inclusive), e.g. 16.
+# 2. Specify LLVM_MIN_SLOT (inclusive), e.g. 15.
+LLVM_MAX_SLOT="16"
+LLVM_MIN_SLOT="15"
+LLVM_USE_DEPS="llvm_targets_AMDGPU(+),${MULTILIB_USEDEP}"
+PER_SLOT_DEPSTR="
+ (
+ !opencl? ( sys-devel/llvm:@SLOT@[${LLVM_USE_DEPS}] )
+ opencl? ( sys-devel/clang:@SLOT@[${LLVM_USE_DEPS}] )
+ opencl? ( dev-util/spirv-llvm-translator:@SLOT@ )
+ vulkan? ( video_cards_intel? ( amd64? ( dev-util/spirv-llvm-translator:@SLOT@ ) ) )
+ )
+"
+LLVM_DEPSTR="
+ || (
+ $(for ((slot=LLVM_MAX_SLOT; slot>=LLVM_MIN_SLOT; slot--)); do
+ echo "${PER_SLOT_DEPSTR//@SLOT@/${slot}}"
+ done)
+ )
+ !opencl? ( <sys-devel/llvm-$((LLVM_MAX_SLOT + 1)):=[${LLVM_USE_DEPS}] )
+ opencl? ( <sys-devel/clang-$((LLVM_MAX_SLOT + 1)):=[${LLVM_USE_DEPS}] )
+"
+RDEPEND="${RDEPEND}
+ llvm? ( ${LLVM_DEPSTR} )
+"
+unset LLVM_MIN_SLOT {LLVM,PER_SLOT}_DEPSTR
+
+DEPEND="${RDEPEND}
+ video_cards_d3d12? ( dev-util/directx-headers[${MULTILIB_USEDEP}] )
+ valgrind? ( dev-util/valgrind )
+ wayland? ( >=dev-libs/wayland-protocols-1.24 )
+ X? (
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-base/xorg-proto
+ )
+"
+BDEPEND="
+ >=dev-util/meson-1.0.0
+ ${PYTHON_DEPS}
+ opencl? (
+ >=virtual/rust-1.62.0
+ >=dev-util/bindgen-0.58.0
+ )
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ $(python_gen_any_dep ">=dev-python/mako-0.8.0[\${PYTHON_USEDEP}]")
+ vulkan? (
+ dev-util/glslang
+ video_cards_intel? (
+ amd64? (
+ $(python_gen_any_dep "dev-python/ply[\${PYTHON_USEDEP}]")
+ )
+ )
+ )
+ wayland? ( dev-util/wayland-scanner )
+"
+
+S="${WORKDIR}/${MY_P}"
+EGIT_CHECKOUT_DIR=${S}
+
+QA_WX_LOAD="
+x86? (
+ usr/lib/libglapi.so.0.0.0
+ usr/lib/libOSMesa.so.8.0.0
+ usr/lib/libGLX_mesa.so.0.0.0
+)"
+
+llvm_check_deps() {
+ if use opencl; then
+ has_version "sys-devel/clang:${LLVM_SLOT}[${LLVM_USE_DEPS}]" || return 1
+ fi
+ if use opencl || { use vulkan && use video_cards_intel && use amd64; }; then
+ has_version "dev-util/spirv-llvm-translator:${LLVM_SLOT}" || return 1
+ fi
+ has_version "sys-devel/llvm:${LLVM_SLOT}[${LLVM_USE_DEPS}]"
+}
+
+PATCHES=(
+ # Temporary rusticl workaround: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7717#note_1832122
+ "${FILESDIR}/clang_resource_dir.patch"
+)
+
+pkg_pretend() {
+ if use vulkan; then
+ if ! use video_cards_d3d12 &&
+ ! use video_cards_freedreno &&
+ ! use video_cards_intel &&
+ ! use video_cards_radeonsi &&
+ ! use video_cards_v3d; then
+ ewarn "Ignoring USE=vulkan since VIDEO_CARDS does not contain d3d12, freedreno, intel, radeonsi, or v3d"
+ fi
+ fi
+
+ if use vaapi; then
+ if ! use video_cards_d3d12 &&
+ ! use video_cards_r600 &&
+ ! use video_cards_radeonsi &&
+ ! use video_cards_nouveau; then
+ ewarn "Ignoring USE=vaapi since VIDEO_CARDS does not contain d3d12, r600, radeonsi, or nouveau"
+ fi
+ fi
+
+ if use vdpau; then
+ if ! use video_cards_d3d12 &&
+ ! use video_cards_r300 &&
+ ! use video_cards_r600 &&
+ ! use video_cards_radeonsi &&
+ ! use video_cards_nouveau; then
+ ewarn "Ignoring USE=vdpau since VIDEO_CARDS does not contain d3d12, r300, r600, radeonsi, or nouveau"
+ fi
+ fi
+
+ if use xa; then
+ if ! use video_cards_freedreno &&
+ ! use video_cards_nouveau &&
+ ! use video_cards_vmware; then
+ ewarn "Ignoring USE=xa since VIDEO_CARDS does not contain freedreno, nouveau, or vmware"
+ fi
+ fi
+
+ if ! use llvm; then
+ use opencl && ewarn "Ignoring USE=opencl since USE does not contain llvm"
+ fi
+
+ if use osmesa && ! use llvm; then
+ ewarn "OSMesa will be slow without enabling USE=llvm"
+ fi
+}
+
+python_check_deps() {
+ python_has_version -b ">=dev-python/mako-0.8.0[${PYTHON_USEDEP}]" || return 1
+ if use vulkan && use video_cards_intel && use amd64; then
+ python_has_version -b "dev-python/ply[${PYTHON_USEDEP}]" || return 1
+ fi
+}
+
+pkg_setup() {
+ # warning message for bug 459306
+ if use llvm && has_version sys-devel/llvm[!debug=]; then
+ ewarn "Mismatch between debug USE flags in media-libs/mesa and sys-devel/llvm"
+ ewarn "detected! This can cause problems. For details, see bug 459306."
+ fi
+
+ if use video_cards_intel ||
+ use video_cards_radeonsi; then
+ if kernel_is -ge 5 11 3; then
+ CONFIG_CHECK="~KCMP"
+ elif kernel_is -ge 5 11; then
+ CONFIG_CHECK="~CHECKPOINT_RESTORE"
+ elif kernel_is -ge 5 10 20; then
+ CONFIG_CHECK="~KCMP"
+ else
+ CONFIG_CHECK="~CHECKPOINT_RESTORE"
+ fi
+ linux-info_pkg_setup
+ fi
+
+ if use llvm; then
+ llvm_pkg_setup
+ fi
+ python-any-r1_pkg_setup
+}
+
+multilib_src_configure() {
+ local emesonargs=()
+
+ local platforms
+ use X && platforms+="x11"
+ use wayland && platforms+=",wayland"
+ emesonargs+=(-Dplatforms=${platforms#,})
+
+ if use video_cards_intel ||
+ use video_cards_r300 ||
+ use video_cards_r600 ||
+ use video_cards_radeonsi ||
+ use video_cards_nouveau ||
+ use video_cards_vmware; then
+ emesonargs+=($(meson_use d3d9 gallium-nine))
+ else
+ emesonargs+=(-Dgallium-nine=false)
+ fi
+
+ if use video_cards_d3d12 ||
+ use video_cards_r600 ||
+ use video_cards_radeonsi ||
+ use video_cards_nouveau; then
+ emesonargs+=($(meson_feature vaapi gallium-va))
+ use vaapi && emesonargs+=( -Dva-libs-path="${EPREFIX}"/usr/$(get_libdir)/va/drivers )
+ else
+ emesonargs+=(-Dgallium-va=disabled)
+ fi
+
+ if use video_cards_d3d12; then
+ emesonargs+=($(meson_feature vaapi gallium-d3d12-video))
+ fi
+
+ if use video_cards_d3d12 ||
+ use video_cards_r300 ||
+ use video_cards_r600 ||
+ use video_cards_radeonsi ||
+ use video_cards_nouveau; then
+ emesonargs+=($(meson_feature vdpau gallium-vdpau))
+ else
+ emesonargs+=(-Dgallium-vdpau=disabled)
+ fi
+
+ if use video_cards_freedreno ||
+ use video_cards_nouveau ||
+ use video_cards_vmware; then
+ emesonargs+=($(meson_feature xa gallium-xa))
+ else
+ emesonargs+=(-Dgallium-xa=disabled)
+ fi
+
+ if use video_cards_freedreno ||
+ use video_cards_lima ||
+ use video_cards_panfrost ||
+ use video_cards_v3d ||
+ use video_cards_vc4 ||
+ use video_cards_vivante; then
+ gallium_enable -- kmsro
+ fi
+
+ gallium_enable -- swrast
+ gallium_enable video_cards_freedreno freedreno
+ gallium_enable video_cards_intel crocus i915 iris
+ gallium_enable video_cards_lima lima
+ gallium_enable video_cards_d3d12 d3d12
+ gallium_enable video_cards_nouveau nouveau
+ gallium_enable video_cards_panfrost panfrost
+ gallium_enable video_cards_v3d v3d
+ gallium_enable video_cards_vc4 vc4
+ gallium_enable video_cards_virgl virgl
+ gallium_enable video_cards_vivante etnaviv
+ gallium_enable video_cards_vmware svga
+ gallium_enable zink zink
+
+ gallium_enable video_cards_r300 r300
+ gallium_enable video_cards_r600 r600
+ gallium_enable video_cards_radeonsi radeonsi
+ if ! use video_cards_r300 && \
+ ! use video_cards_r600; then
+ gallium_enable video_cards_radeon r300 r600
+ fi
+
+ if use llvm && use opencl; then
+ PKG_CONFIG_PATH="$(get_llvm_prefix)/$(get_libdir)/pkgconfig"
+ # See https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/docs/rusticl.rst
+ emesonargs+=(
+ $(meson_native_true gallium-rusticl)
+ -Drust_std=2021
+ )
+ fi
+
+ if use vulkan; then
+ vulkan_enable video_cards_lavapipe swrast
+ vulkan_enable video_cards_freedreno freedreno
+ vulkan_enable video_cards_intel intel intel_hasvk
+ vulkan_enable video_cards_d3d12 microsoft-experimental
+ vulkan_enable video_cards_radeonsi amd
+ vulkan_enable video_cards_v3d broadcom
+ fi
+
+ driver_list() {
+ local drivers="$(sort -u <<< "${1// /$'\n'}")"
+ echo "${drivers//$'\n'/,}"
+ }
+
+ local vulkan_layers
+ use vulkan && vulkan_layers+="device-select"
+ use vulkan-overlay && vulkan_layers+=",overlay"
+ emesonargs+=(-Dvulkan-layers=${vulkan_layers#,})
+
+ if use vulkan && use video_cards_intel; then
+ PKG_CONFIG_PATH="$(get_llvm_prefix)/$(get_libdir)/pkgconfig"
+ emesonargs+=($(meson_feature llvm intel-clc))
+ fi
+
+ emesonargs+=(
+ $(meson_use test build-tests)
+ -Dglx=$(usex X dri disabled)
+ -Dshared-glapi=enabled
+ -Ddri3=enabled
+ -Degl=enabled
+ -Dexpat=enabled
+ -Dgbm=enabled
+ -Dglvnd=true
+ $(meson_feature gles1)
+ $(meson_feature gles2)
+ $(meson_feature llvm)
+ $(meson_feature lm-sensors lmsensors)
+ $(meson_use osmesa)
+ $(meson_use selinux)
+ $(meson_feature unwind libunwind)
+ $(meson_feature zstd)
+ $(meson_use cpu_flags_x86_sse2 sse2)
+ -Dvalgrind=$(usex valgrind auto disabled)
+ -Dvideo-codecs=$(usex proprietary-codecs "h264dec,h264enc,h265dec,h265enc,vc1dec" "")
+ -Dgallium-drivers=$(driver_list "${GALLIUM_DRIVERS[*]}")
+ -Dvulkan-drivers=$(driver_list "${VULKAN_DRIVERS[*]}")
+ --buildtype $(usex debug debug plain)
+ -Db_ndebug=$(usex debug false true)
+ )
+ meson_src_configure
+}
+
+multilib_src_test() {
+ meson_src_test -t 100
+}
+
+# $1 - VIDEO_CARDS flag (check skipped for "--")
+# other args - names of DRI drivers to enable
+gallium_enable() {
+ if [[ $1 == -- ]] || use $1; then
+ shift
+ GALLIUM_DRIVERS+=("$@")
+ fi
+}
+
+vulkan_enable() {
+ if [[ $1 == -- ]] || use $1; then
+ shift
+ VULKAN_DRIVERS+=("$@")
+ fi
+}
diff --git a/media-libs/netpbm/Manifest b/media-libs/netpbm/Manifest
index 46b133bcb3bb..2ba9fa3b2066 100644
--- a/media-libs/netpbm/Manifest
+++ b/media-libs/netpbm/Manifest
@@ -1,14 +1,10 @@
AUX make-tarball.sh 1895 BLAKE2B d6311e862d8b2fb10d88a90263f7187c04bde49ff0ecb7860d4b306a6553b41f24ed718e94113807f7b8cdfe21774de383baf7799f2a3c3a12acea6f7aedbd4f SHA512 8128d2d8c0fb60d1d3cba73b4b3d87e914a7ac284e5f049cfd0a596f772d705acb3222da2d6a6f7d1882c7221eeaae9daac9d1b855e61881600345dc615cc428
AUX netpbm-10.86.21-build.patch 2319 BLAKE2B b22150c8683790c9ac31abc00b8f3f5b55cc6e990186f506c67496fce774fdfef1ba23843129fd493f8aa3e4ad5f74cfcf1d2388da95225ac2ef19f0c949f425 SHA512 459c54dac19067f2185a02ef812932e8fcb6a73d6267c32578bd3b7d3b12494052e929b24663407ad919e1e98aa2df58ed8e27be3f18eeb2fbe2402e4ff9e629
AUX netpbm-10.86.21-misc-deps.patch 1565 BLAKE2B a4d629ea9fe01efc45c799dac4bd3764368be33f264929bdc338bb724ace03471949467e5c84144636a9f4ee9130395dad77e23aa6686998bf9700dbde224cbf SHA512 f274ede7d11ed0f2a1825a4412a52fd9e30f5caf470c6111b606a87f1e67b16278c9f2a901d512ea3516ba033e30a3c08386cc5af1a555f868b7d7175fbfeed0
-AUX netpbm-10.86.21-test.patch 331 BLAKE2B 59451b2f1632afdd8e84bcec0ef91e0589604706b373281bf4963385fe971991711cc6ed4f169cc45aa460ac1db20de69039b137da1a2ec3d6cb82b60ae5f745 SHA512 e5c1a88cc03e227c7a7a01e9586ceacaf24a6752f4285f228b0176a8a12a6a9ac83d8ce1c5965e8f56ab652b5e42aa2cd535f1e121449fe668312b7e49720e4f
-AUX netpbm-10.86.22-fix-ps-test.patch 15448 BLAKE2B cfe77600197fc39ef0be0ed793f5181db57fd718a6fed268a8afb2fd2b5afab404c3be3c89dc25d178f8fe2edc4d386e33f22f7b3bc826e9c90307ef3895830f SHA512 a521c771d2384cb86d87b4efdf05e0835adcbefb84d4e66e744b2f8bc40df5358f20c4824dce5a942ccc24b18168276278d65e8e9a529b7c09b157b3e02438bb
AUX netpbm-11.0.0-misc-deps.patch 1446 BLAKE2B 721e926a83d50d04d4a407051ee077db5e5bf8fb1ae9aff1ff1d7859cf1bb0d5f74fa1143681b451d36323f93d5e7fa3876e485d6538958e30779cac081df5b8 SHA512 7135533660b15a113df5a38298725f895e8cbd6ac4695eb5f2d40bd214c43cb9d1c261063e0cea162a6ca6071cda5f4e0380d29eefa6af57e7d67ce319fe2216
AUX netpbm-11.1.0-fix-clang-O2.patch 773 BLAKE2B a8d2bef659d384b0f94560fec847d37731315f5cdb67e5474efb596672d146446c6d545caa816d74f9d4c32fe486ce49f8cb55f38e9706bae6b0ba79c0dbbb5e SHA512 0a0049415d5c252603c47325d69ae582bec76ac15f442682ef0a2ff8c5a8cd19e28543644883bde891f2a376a401f43ed923b184112f49c67d295b9215d519de
-DIST netpbm-10.86.36.tar.xz 3700660 BLAKE2B c5f0acd0147f2ad66f69ae2ade56fcbb5286faddc7f8f3387e2269fd20ea2586a29d7e7dc96bd715fe12896eef47803b826031087e6be8166183ba7cf82aebf4 SHA512 b05df76760629881047c44799a905a491fb4c139a9af909d77cc4238fc82dfac37ba174df4f81cb1177716ad38a37b26eadcc3889d2c2057ff9d850697fad3c6
DIST netpbm-11.2.0.tar.xz 3777372 BLAKE2B d9a2de49db61f642df75fe1c1fcda752f837535ac7cc698fb50e7c2c93dacfe3894fc46b402af30d07e3617f0f421a36d8d6a3d846c07d6b3526724dce93283b SHA512 70bde6e6112ae595e18be588ea95d2b2acb08e42bb36d0fc93b9584c4b2adf72e35f80ff87823a8e3d98a8ffd0ff907401d351533b9170d7a11a28515c10fdbd
-DIST netpbm-11.3.0.tar.xz 3778748 BLAKE2B da847e2c4a23d6fb404b868cfabfae7b82fe744c0b04b49ed0c02ef8877690f752995cb570326673f0ffd7b4b75ce8bf086859971611e9d76b49e3124536d582 SHA512 6efbfee9174912fb2979834b090657572d400fb84bf137b5faa5c4517b9d3d9457d8b482acff586902e71566e3c0a7e3bad4c87cfec15a0efda03553c1314bce
-EBUILD netpbm-10.86.36.ebuild 6771 BLAKE2B 261ea89a2609e11f160fbcfb5a940963b77cfdf1820705566758a988d294635e3213ec4af3ce3ab37a74cde19ea875ac53dae8b2552f6e588dbd5e31230102cd SHA512 d9075e67b699f62852ed6e0fe747fd55b6bde0d97b7510cbdc56472ec328f5257899805defff19de56d9e3b548488e7b99ff35e170fed5080f6f15b786f43002
+DIST netpbm-11.3.1.tar.xz 3779152 BLAKE2B fa342670a72939c661290b344819cb8ba1bc5f0d09c49cbe68560077384c985a714c6808a4858e5f0eb6a8fb52be698eb075ff7892d0972f4eeb571c3ebd45ef SHA512 d43fdb7f2a91575cb17486ab9ca31d5c0757fd9756a230db9b9bfc3a786f58a2fbb4f6f0ce40d396245a8b1dd718b8aab0d80611ec23b19312bcd93c5d2548b3
EBUILD netpbm-11.2.0.ebuild 6830 BLAKE2B c07e114dd61e0aef2f08f93bd722f72fac8021bbe9d369b111084a706e64f93e76913074e74758bc37780abd13eff479e58f00b524daf1a6ba2171b57272d825 SHA512 9cc1e468d04a7e8538e4ed1964e5a34834c8b3e637c4db7c79dde6c0290500d713ed09f3d746a07f0c6bce9fbf812f5be497050d79c6360a65aaadb1e793c83e
-EBUILD netpbm-11.3.0.ebuild 6840 BLAKE2B 079ef16532536ddbc0435da2c49c63eaef668a6e1f2542d8fa02acccb41272acabc760f47b06c83ca77e6044944ca00cbe753a6ba3edcf0df36869955051de30 SHA512 e4a794b998ade53ece428a675ba4f4208400385e10bf6ad3a433eb47e9e34e306a816c3c641254a08460e29cf4eefa8388f961e67c4e97e083ca64f0b6879969
+EBUILD netpbm-11.3.1.ebuild 6840 BLAKE2B 079ef16532536ddbc0435da2c49c63eaef668a6e1f2542d8fa02acccb41272acabc760f47b06c83ca77e6044944ca00cbe753a6ba3edcf0df36869955051de30 SHA512 e4a794b998ade53ece428a675ba4f4208400385e10bf6ad3a433eb47e9e34e306a816c3c641254a08460e29cf4eefa8388f961e67c4e97e083ca64f0b6879969
MISC metadata.xml 424 BLAKE2B 9ccc907d6c15cb1a7d6cfe4679d6fa9f488642948897ca34958a06b439ebcfb912cfb18fa9d93f15f19573aed4bd7083d277151c477410a59cd64b4c9c0446d4 SHA512 a987be2134a44cc916d5a026068219b8ccaa149e577eaf2a53a7802321793129777cc79b069df95ec9320f15279249a5f9d8a61509452ef02effcb6c66cf9e80
diff --git a/media-libs/netpbm/files/netpbm-10.86.21-test.patch b/media-libs/netpbm/files/netpbm-10.86.21-test.patch
deleted file mode 100644
index b7758fdbd61e..000000000000
--- a/media-libs/netpbm/files/netpbm-10.86.21-test.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-`print ("got color map\n");` removed from `editor/pnmquantall` so remove from test
-Do this from the patch instead of ebuild because if upstream also fixes it the patch will fail, sed would not
-
---- a/test/pnmquantall.ok
-+++ b/test/pnmquantall.ok
-@@ -1,4 +1,3 @@
--got color map
- 2373957371 33838
- 3892560659 33838
- 1383839923 33838
diff --git a/media-libs/netpbm/files/netpbm-10.86.22-fix-ps-test.patch b/media-libs/netpbm/files/netpbm-10.86.22-fix-ps-test.patch
deleted file mode 100644
index e8876120a181..000000000000
--- a/media-libs/netpbm/files/netpbm-10.86.22-fix-ps-test.patch
+++ /dev/null
@@ -1,506 +0,0 @@
-postscript tests fail because of pbmtolps
-backport pbmtolps from netpbm-10.94.3, including tests
-see also bug #670362
-
---- a/converter/pbm/pbmtolps.c
-+++ b/converter/pbm/pbmtolps.c
-@@ -1,181 +1,253 @@
--/*
-- * pbmtolps -- convert a Portable BitMap into Postscript. The
-- * output Postscript uses lines instead of the image operator to
-- * generate a (device dependent) picture which will be imaged
-- * much faster.
-- *
-- * The Postscript path length is constrained to be less that 1000
-- * points so that no limits are overrun on the Apple Laserwriter
-- * and (presumably) no other printers.
-- *
-- * To do:
-- * make sure encapsulated format is correct
-- * repitition of black-white strips
-- * make it more device independent (is this possible?)
-- *
-- * Author:
-- * George Phillips <phillips@cs.ubc.ca>
-- * Department of Computer Science
-- * University of British Columbia
-- */
--
--#include <string.h>
--#include <stdio.h>
-+/*=============================================================================
-+ pbmtolps
-+===============================================================================
-+
-+ Convert a PBM image to Postscript. The output Postscript uses lines instead
-+ of the image operator to generate a (device dependent) picture which will be
-+ imaged much faster.
-+
-+ The Postscript path length is constrained to be at most 1000 vertices so that
-+ no limits are overrun on the Apple Laserwriter and (presumably) no other
-+ printers. The typical limit is 1500. See "4.4 Path Construction" and
-+ "Appendix B: Implementation Limits" in: PostScript Language Reference Manual
-+ https://www.adobe.com/content/dam/acom/en/devnet/actionscript/
-+ articles/psrefman.pdf
-+
-+ To do:
-+ make sure encapsulated format is correct
-+ repetition of black-white strips
-+ make it more device independent (is this possible?)
-+
-+ Author:
-+ George Phillips <phillips@cs.ubc.ca>
-+ Department of Computer Science
-+ University of British Columbia
-+=============================================================================*/
-+#include <stdbool.h>
-
-+#include "pm_c_util.h"
-+#include "mallocvar.h"
- #include "nstring.h"
-+#include "shhopt.h"
- #include "pbm.h"
-
-
--static int prev_white = -1;
--static int prev_black = -1;
--static char cmd = '\0';
--static int pointcount = 2;
--
--#ifdef RUN
--static int run = 1;
--#endif
--
--static char
--morepoints(char cmd, int howmany_pbmtolps) {
-- pointcount += 2;
-- if (pointcount > 1000) {
-- pointcount = 2;
-- cmd += 'm' - 'a';
-- }
-- return(cmd);
-+static float const MAX_DPI = 5000;
-+static float const MIN_DPI = 10;
-+static unsigned int const MAX_PATH_VERTICES = 1000;
-+
-+
-+struct CmdlineInfo {
-+ /* All the information the user supplied in the command line, in a form
-+ easy for the program to use.
-+ */
-+ const char * inputFileName; /* File name of input file */
-+ unsigned int inputFileSpec; /* Input file name specified */
-+ float lineWidth; /* Line width, if specified */
-+ unsigned int lineWidthSpec; /* Line width specified */
-+ float dpi; /* Resolution in DPI, if specified */
-+ unsigned int dpiSpec; /* Resolution specified */
-+};
-+
-+
-+
-+static void
-+validateDpi(float const dpi) {
-+
-+ if (dpi > MAX_DPI || dpi < MIN_DPI)
-+ pm_error("Specified DPI value out of range (%f)", dpi);
- }
-
-
-
--static void
--addstrip(int const white,
-- int const black) {
--
-- if (cmd) {
--#ifdef RUN
-- if (white == prev_white && black == prev_black)
-- run++;
-- else {
-- if (run == 1)
--#endif
-- printf("%d %d %c ",
-- prev_black, prev_white, morepoints(cmd, 2));
--#ifdef RUN
-- else
-- /* of course, we need to give a new command */
-- printf("%d %d %d %c ",
-- prev_white, prev_black, run,
-- morepoints(cmd + 'f' - 'a', 2 * run));
-- run = 1;
-- }
--#endif
-+static void
-+parseCommandLine(int argc,
-+ const char ** const argv,
-+ struct CmdlineInfo * const cmdlineP) {
-+/*----------------------------------------------------------------------------
-+ Parse program command line described in Unix standard form by argc
-+ and argv. Return the information in the options as *cmdlineP.
-+-----------------------------------------------------------------------------*/
-+ optEntry * option_def; /* malloc'ed */
-+ /* Instructions to OptParseOptions3 on how to parse our options. */
-+ optStruct3 opt;
-+
-+ unsigned int option_def_index;
-+
-+ MALLOCARRAY_NOFAIL(option_def, 100);
-+
-+ option_def_index = 0; /* incremented by OPTENTRY */
-+ OPTENT3(0, "linewidth", OPT_FLOAT, &cmdlineP->lineWidth,
-+ &cmdlineP->lineWidthSpec, 0);
-+ OPTENT3(0, "dpi", OPT_FLOAT, &cmdlineP->dpi,
-+ &cmdlineP->dpiSpec, 0);
-+
-+ opt.opt_table = option_def;
-+ opt.short_allowed = FALSE; /* We have no short (old-fashioned) options */
-+ opt.allowNegNum = FALSE; /* We have no parms that are negative numbers */
-+
-+ pm_optParseOptions3(&argc, (char **)argv, opt, sizeof(opt), 0);
-+ /* Uses and sets argc, argv, and some of *cmdlineP and others. */
-+
-+ if (cmdlineP->dpiSpec)
-+ validateDpi(cmdlineP->dpi);
-+ else
-+ cmdlineP->dpi = 300;
-+
-+ if (argc-1 < 1)
-+ cmdlineP->inputFileName = "-";
-+ else {
-+ if (argc-1 > 1)
-+ pm_error("Program takes zero or one argument (filename). You "
-+ "specified %u", argc-1);
-+ else
-+ cmdlineP->inputFileName = argv[1];
- }
-
-- prev_white = white;
-- prev_black = black;
-- cmd = 'a';
-+ if (cmdlineP->inputFileName[0] == '-' &&
-+ cmdlineP->inputFileName[1] == '\0')
-+ cmdlineP->inputFileSpec = false;
-+ else
-+ cmdlineP->inputFileSpec = true;
-+
-+ free(option_def);
- }
-
-
-
--static void
--nextline(void) {
-- /* need to check run, should have an outcommand */
-- if (cmd)
-- printf("%d %d %c\n", prev_black, prev_white, morepoints('c', 3));
-- else
-- printf("%c\n", morepoints('b', 1));
-- cmd = '\0';
-+static void
-+validateLineWidth(float const scCols,
-+ float const scRows,
-+ float const lineWidth) {
-+
-+ if (lineWidth >= scCols || lineWidth >= scRows)
-+ pm_error("Absurdly large -linewidth value (%f)", lineWidth);
- }
-
-
-
--int
--main(int argc, char ** argv) {
-- FILE* fp;
-- bit* bits;
-- int row;
-- int col;
-- int rows;
-- int cols;
-- int format;
-- int white;
-- int black;
-- const char* name;
-- float dpi = 300.0;
-- float sc_rows;
-- float sc_cols;
-- int i;
-- const char* const usage = "[ -dpi n ] [ pbmfile ]";
--
--
-- pbm_init(&argc, argv);
--
-- i = 1;
-- if (i < argc && streq(argv[i], "-dpi")) {
-- if (i == argc - 1)
-- pm_usage(usage);
-- sscanf(argv[i + 1], "%f", &dpi);
-- i += 2;
-- }
-+static void
-+doRaster(FILE * const ifP,
-+ unsigned int const cols,
-+ unsigned int const rows,
-+ int const format,
-+ FILE * const ofP) {
-
-- if (i < argc - 1)
-- pm_usage(usage);
-+ bit * bitrow;
-+ unsigned int row;
-+ unsigned int vertexCt;
-+ /* Number of vertices drawn since last stroke command */
-
-- if (i == argc) {
-- name = "noname";
-- fp = stdin;
-- } else {
-- name = argv[i];
-- fp = pm_openr(name);
-- }
-- pbm_readpbminit(fp, &cols, &rows, &format);
-- bits = pbm_allocrow(cols);
-+ bitrow = pbm_allocrow(cols);
-+
-+ for (row = 0, vertexCt = 0; row < rows; ++row) {
-+ unsigned int col;
-+ bool firstRun;
-
-- sc_rows = (float)rows / dpi * 72.0;
-- sc_cols = (float)cols / dpi * 72.0;
-+ firstRun = true; /* initial value */
-+
-+ pbm_readpbmrow(ifP, bitrow, cols, format);
-+
-+ /* output white-strip + black-strip sequences */
-
-- puts("%!PS-Adobe-2.0 EPSF-2.0");
-- puts("%%Creator: pbmtolps");
-- printf("%%%%Title: %s\n", name);
-- printf("%%%%BoundingBox: %d %d %d %d\n",
-- (int)(305.5 - sc_cols / 2.0),
-- (int)(395.5 - sc_rows / 2.0),
-- (int)(306.5 + sc_cols / 2.0),
-- (int)(396.5 + sc_rows / 2.0));
-- puts("%%EndComments");
-- puts("%%EndProlog");
-- puts("gsave");
--
-- printf("%f %f translate\n", 306.0 - sc_cols / 2.0, 396.0 + sc_rows / 2.0);
-- printf("72 %f div dup neg scale\n", dpi);
-- puts("/a { 0 rmoveto 0 rlineto } def");
-- puts("/b { 0 row 1 add dup /row exch def moveto } def");
-- puts("/c { a b } def");
-- puts("/m { currentpoint stroke newpath moveto a } def");
-- puts("/n { currentpoint stroke newpath moveto b } def");
-- puts("/o { currentpoint stroke newpath moveto c } def");
-- puts("/row 0 def");
-- puts("newpath 0 0 moveto");
--
-- for (row = 0; row < rows; row++) {
-- pbm_readpbmrow(fp, bits, cols, format);
-- /* output white-strip+black-strip sequences */
- for (col = 0; col < cols; ) {
-- for (white = 0; col < cols && bits[col] == PBM_WHITE; col++)
-- white++;
-- for (black = 0; col < cols && bits[col] == PBM_BLACK; col++)
-- black++;
-+ unsigned int whiteCt;
-+ unsigned int blackCt;
-+
-+ for (whiteCt = 0; col < cols && bitrow[col] == PBM_WHITE; ++col)
-+ ++whiteCt;
-+ for (blackCt = 0; col < cols && bitrow[col] == PBM_BLACK; ++col)
-+ ++blackCt;
-+
-+ if (blackCt > 0) {
-+ if (vertexCt > MAX_PATH_VERTICES) {
-+ printf("m ");
-+ vertexCt = 0;
-+ }
-+
-+ if (firstRun) {
-+ printf("%u %u moveto %u 0 rlineto\n",
-+ whiteCt, row, blackCt);
-+ firstRun = false;
-+ } else
-+ printf("%u %u a\n", blackCt, whiteCt);
-
-- if (black != 0)
-- addstrip(white, black);
-+ vertexCt += 2;
-+ }
- }
-- nextline();
- }
-- puts("stroke grestore showpage");
-- puts("%%Trailer");
-+ pbm_freerow(bitrow);
-+}
-+
-+
-+
-+static void
-+pbmtolps(FILE * const ifP,
-+ FILE * const ofP,
-+ struct CmdlineInfo const cmdline) {
-+
-+ const char * const psName =
-+ cmdline.inputFileSpec ? cmdline.inputFileName : "noname";
-+
-+ int rows;
-+ int cols;
-+ int format;
-+ float scRows, scCols;
-+ /* Dimensions of the printed image in points */
-+
-+ pbm_readpbminit(ifP, &cols, &rows, &format);
-+
-+ scRows = (float) rows / (cmdline.dpi / 72.0);
-+ scCols = (float) cols / (cmdline.dpi / 72.0);
-+
-+ if (cmdline.lineWidthSpec)
-+ validateLineWidth(scCols, scRows, cmdline.lineWidth);
-+
-+ fputs("%!PS-Adobe-2.0 EPSF-2.0\n", ofP);
-+ fputs("%%Creator: pbmtolps\n", ofP);
-+ fprintf(ofP, "%%%%Title: %s\n", psName);
-+ fprintf(ofP, "%%%%BoundingBox: %d %d %d %d\n",
-+ (int)(305.5 - scCols / 2.0),
-+ (int)(395.5 - scRows / 2.0),
-+ (int)(306.5 + scCols / 2.0),
-+ (int)(396.5 + scRows / 2.0));
-+ fputs("%%EndComments\n", ofP);
-+ fputs("%%EndProlog\n", ofP);
-+ fputs("gsave\n", ofP);
-+
-+ fprintf(ofP, "%f %f translate\n",
-+ 306.0 - scCols / 2.0, 396.0 + scRows / 2.0);
-+ fprintf(ofP, "72 %f div dup neg scale\n", cmdline.dpi);
-+
-+ if (cmdline.lineWidthSpec)
-+ fprintf(ofP, "%f setlinewidth\n", cmdline.lineWidth);
-+
-+ fputs("/a { 0 rmoveto 0 rlineto } def\n", ofP);
-+ fputs("/m { currentpoint stroke newpath moveto } def\n", ofP);
-+ fputs("newpath 0 0 moveto\n", ofP);
-+
-+ doRaster(ifP, cols, rows, format, ofP);
-+
-+ fputs("stroke grestore showpage\n", ofP);
-+ fputs("%%Trailer\n", ofP);
-+}
-+
-+
-+
-+int
-+main(int argc, const char *argv[]) {
-+ FILE * ifP;
-+ struct CmdlineInfo cmdline;
-+
-+ pm_proginit(&argc, argv);
-+
-+ parseCommandLine(argc, argv, &cmdline);
-+
-+ ifP = pm_openr(cmdline.inputFileName);
-+
-+ pbmtolps(ifP, stdout, cmdline);
-
-- pm_close(fp);
-+ pm_close(ifP);
-
-- exit(0);
-+ return 0;
- }
---- a/test/lps-roundtrip.ok
-+++ b/test/lps-roundtrip.ok
-@@ -0,0 +1 @@
-+match
---- a/test/lps-roundtrip.test
-+++ b/test/lps-roundtrip.test
-@@ -0,0 +1,22 @@
-+#! /bin/bash
-+# This script tests: pbmtolps pstopnm
-+# Also requires: gs pamdepth pamscale pnmcrop pnmpsnr
-+
-+# The ordinary round-trip does not work because of the way ghostscript
-+# renders: a line is considered wider than a single pixel and all pixels
-+# it touches are set to black if the output is PBM. To work around this,
-+# we tell pstopnm to output PGM at a high resolution (=large dpi value).
-+
-+
-+test_pgm=${tmpdir}/testgrid.pgm
-+
-+pamdepth 255 testgrid.pbm > ${test_pgm}
-+
-+pbmtolps -dpi 72 testgrid.pbm | \
-+ pstopnm -dpi $((72*12)) -stdout -pgm | \
-+ pnmcrop -white | pamscale -xsize=14 -ysize=16 | \
-+ pnmpsnr -target=30 - ${test_pgm}
-+
-+# ghostscript version 8.71: pnmpsnr lumina 33.14dB
-+
-+rm ${test_pgm}
---- a/test/ps-alt-roundtrip.ok
-+++ b/test/ps-alt-roundtrip.ok
-@@ -1,3 +1,2 @@
- 2425386270 41
--2425386270 41
- 2916080186 235
---- a/test/ps-alt-roundtrip.test
-+++ b/test/ps-alt-roundtrip.test
-@@ -1,21 +1,24 @@
- #! /bin/bash
--# This script tests: pbmtoepsi pbmtopsg3 pbmtolps psidtopgm pstopnm
-+# This script tests: pbmtoepsi pbmtopsg3 psidtopgm pstopnm
- # Also requires: gs pnmcrop
-
-
- # This script is for testing alternative (or minor) utilities that
- # read/write Postscript and encapsulated Postscript:
--# pbmtoepsi, pbmtopsg3, pbmtolps and psidtopgm.
-+# pbmtoepsi, pbmtopsg3 and psidtopgm.
- #
- # We keep these tests separate from those for pnmtops and pstopnm
- # which are far more popular.
- #
--# pbmtopsg3 and pbmtolps produce output that require pstopnm for decoding.
-+# pbmtopsg3 produces output that requires pstopnm for decoding.
-+#
-+# We used to test pbmtolps here, but moved it out when gs changed its
-+# rendering formula.
- #
- # Failure message
- ## If ps-roundtrip.test succeeds and this test fails, it is most likely
- ## a problem with one of the alternate Postscipt utilities:
--## pbmtoepsi, pbmtopsg3, pbmtolps or psidtopgm.
-+## pbmtoepsi, pbmtopsg3, or psidtopgm.
- ## If both tests fail it indicates a problem with pstopnm or gs.
-
- # pstopnm does not use libnetpbm functions for output.
-@@ -33,18 +36,8 @@
- rm ${testgrid1_ps}
-
-
--# Test 2. Should print: 2425386270 41
--testgrid2_ps=${tmpdir}/testgrid2.ps
--
--pbmtolps -dpi 72 testgrid.pbm \
-- > ${testgrid2_ps} && \
--pstopnm -xborder=0 -yborder=0 -dpi=72 -stdout \
-- -quiet ${testgrid2_ps} -pbm | \
-- pnmcrop | cksum
--
--rm ${testgrid2_ps}
-
--# Test 3. Should print: 2916080186 235
-+# Test 2. Should print: 2916080186 235
- # Output is pgm maxval=1 with black and white inverted.
- #
- testgrid_epsi=${tmpdir}/testgrid.epsi
---- a/test/Test-Order
-+++ b/test/Test-Order
-@@ -183,5 +183,6 @@
-
- fiasco-roundtrip.test
- jpeg-roundtrip.test
-+lps-roundtrip.test
- tiffcmyk-roundtrip.test
- yuv-roundtrip.test
diff --git a/media-libs/netpbm/netpbm-10.86.36.ebuild b/media-libs/netpbm/netpbm-10.86.36.ebuild
deleted file mode 100644
index 1cf3b450fbef..000000000000
--- a/media-libs/netpbm/netpbm-10.86.36.ebuild
+++ /dev/null
@@ -1,243 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit flag-o-matic multilib toolchain-funcs
-
-# Upstream has 3 flavors of netpbm: super stable, stable and advanced.
-# They only provide a tarball for super stable, but super stable is a bit lagging.
-# So we package the stable branch of their svn (currently versions 10.86.xx) on SLOT "0/stable"
-# and the advanced branch of their svn (currently versions 11.aa.bb) on SLOT "0/advanced".
-# The stable branch is stabilized according to usual Gentoo rules, while the
-# advanced branch will not be stabilized.
-# A detailed explanation is here https://netpbm.sourceforge.net/release.html
-
-# libnetpbm.so is not 100% ABI compatible between stable and advanced, so
-# packages that depend on it should use "media-libs/netpbm:="
-
-DESCRIPTION="A set of utilities for converting to/from the netpbm (and related) formats"
-HOMEPAGE="https://netpbm.sourceforge.net/"
-SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${P}.tar.xz"
-
-LICENSE="Artistic BSD GPL-2 IJG LGPL-2.1 MIT public-domain"
-SLOT="0/stable"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
-IUSE="jbig jpeg png postscript rle cpu_flags_x86_sse2 static-libs svga tiff X xml"
-
-# app-text/ghostscript-gpl is really needed for postscript
-# some utilities execute /usr/bin/gs
-# also some installed programs are perl scripts
-RDEPEND="
- dev-lang/perl
- jbig? ( media-libs/jbigkit:= )
- jpeg? ( media-libs/libjpeg-turbo:=[static-libs?] )
- png? (
- >=media-libs/libpng-1.4:0=
- sys-libs/zlib
- )
- postscript? (
- app-text/ghostscript-gpl
- sys-libs/zlib
- )
- rle? ( media-libs/urt:= )
- svga? ( media-libs/svgalib )
- tiff? ( >=media-libs/tiff-3.5.5:= )
- xml? ( dev-libs/libxml2 )
- X? ( x11-libs/libX11 )
-"
-
-DEPEND="
- ${RDEPEND}
- x11-base/xorg-proto
-"
-
-BDEPEND="
- app-arch/xz-utils
- sys-devel/flex
- virtual/pkgconfig
-"
-
-PATCHES=(
- "${FILESDIR}"/netpbm-10.86.21-build.patch
- "${FILESDIR}"/netpbm-10.86.21-test.patch #450530
- "${FILESDIR}"/netpbm-10.86.21-misc-deps.patch
- "${FILESDIR}"/netpbm-10.86.22-fix-ps-test.patch #670362
-)
-
-netpbm_libtype() {
- case ${CHOST} in
- *-darwin*) echo dylib;;
- *) echo unixshared;;
- esac
-}
-
-netpbm_libsuffix() {
- local suffix=$(get_libname)
- echo ${suffix//\.}
-}
-
-netpbm_ldshlib() {
- case ${CHOST} in
- *-darwin*) echo '$(LDFLAGS) -dynamiclib -install_name $(SONAME)';;
- *) echo '$(LDFLAGS) -shared -Wl,-soname,$(SONAME)';;
- esac
-}
-
-netpbm_config_lib() {
- usex ${1} -l${2:-$1} NONE
-}
-
-# for bug #828127
-netpbm_cflags_for_build() {
- if is-flagq -fPIC; then
- echo -fPIC
- fi
-}
-
-src_prepare() {
- default
-
- # make sure we use system libs
- sed -i '/SUPPORT_SUBDIRS/s:urt::' GNUmakefile || die
- rm -r urt converter/other/jbig/libjbig converter/other/jpeg2000/libjasper || die
-
- # take care of the importinc stuff ourselves by only doing it once
- # at the top level and having all subdirs use that one set #149843
- sed -i \
- -e '/^importinc:/s|^|importinc:\nmanual_|' \
- -e '/-Iimportinc/s|-Iimp|-I"$(BUILDDIR)"/imp|g'\
- common.mk || die
- sed -i \
- -e '/%.c/s: importinc$::' \
- common.mk lib/Makefile lib/util/Makefile || die
- sed -i \
- -e 's:pkg-config:$(PKG_CONFIG):' \
- GNUmakefile converter/other/Makefile other/pamx/Makefile || die
-
- # The postscript knob is currently bound up with a fork test.
- if ! use postscript ; then
- sed -i \
- -e 's:$(DONT_HAVE_PROCESS_MGMT):Y:' \
- converter/other/Makefile generator/Makefile || die
- sed -i -r \
- -e 's:(pbmtextps|pnmtops|pstopnm).*::' \
- test/all-in-place.{ok,test} || die
- sed -i -e 's:lps-roundtrip.*::' test/Test-Order || die
- sed -i -e '/^$/d' test/all-in-place.ok || die
- sed -i '2iexit 80' test/ps-{alt-,flate-,}roundtrip.test || die
- fi
-
- # the new postscript test needs +x
- chmod +x test/lps-roundtrip.test
-
- # Do not test png if not built
- if ! use png ; then
- sed -i -r \
- -e 's:(pamtopng|pngtopam|pnmtopng).*::' \
- test/all-in-place.{ok,test} || die
- sed -i -e '/^$/d' test/all-in-place.ok || die
-
- sed -i -r \
- -e 's:(pamrgbatopng|pngtopnm).*::' \
- test/legacy-names.{ok,test} || die
- sed -i -e '/^$/d' test/legacy-names.ok || die
- sed -i -e 's:png-roundtrip.*::' test/Test-Order || die
- fi
-
- # this test requires LC_ALL=en_US.iso88591, not available on musl
- if use elibc_musl; then
- sed -i -e 's:pbmtext-iso88591.*::' test/Test-Order || die
- fi
-}
-
-src_configure() {
- cat config.mk.in - >> config.mk <<-EOF || die "writing config.mk failed"
- # Misc stuff
- BUILD_FIASCO = N
- SYMLINK = ln -sf
-
- # These vars let src_test work by default
- PKGDIR_DEFAULT = ${T}/netpbm
- RESULTDIR_DEFAULT = ${T}/netpbm-test
-
- # Toolchain options
- CC = $(tc-getCC) -Wall
- LD = \$(CC)
- CC_FOR_BUILD = $(tc-getBUILD_CC)
- LD_FOR_BUILD = \$(CC_FOR_BUILD)
- AR = $(tc-getAR)
- RANLIB = $(tc-getRANLIB)
- PKG_CONFIG = $(tc-getPKG_CONFIG)
-
- STRIPFLAG =
- CFLAGS_SHLIB = -fPIC
- CFLAGS_FOR_BUILD += $(netpbm_cflags_for_build)
-
- LDRELOC = \$(LD) -r
- LDSHLIB = $(netpbm_ldshlib)
- LINKER_CAN_DO_EXPLICIT_LIBRARY = N # we can, but dont want to
- LINKERISCOMPILER = Y
- NETPBMLIBSUFFIX = $(netpbm_libsuffix)
- NETPBMLIBTYPE = $(netpbm_libtype)
- STATICLIB_TOO = $(usex static-libs Y N)
-
- # The var is called SSE, but the code is actually SSE2.
- WANT_SSE = $(usex cpu_flags_x86_sse2 Y N)
-
- # Gentoo build options
- TIFFLIB = $(netpbm_config_lib tiff)
- # Let tiff worry about its own dependencies #395753
- TIFFLIB_NEEDS_JPEG = N
- TIFFLIB_NEEDS_Z = N
- JPEGLIB = $(netpbm_config_lib jpeg)
- PNGLIB = $(netpbm_config_lib png)
- ZLIB = $($(tc-getPKG_CONFIG) --libs zlib)
- LINUXSVGALIB = $(netpbm_config_lib svga vga)
- XML2_LIBS = $(netpbm_config_lib xml xml2)
- JBIGLIB = $(netpbm_config_lib jbig)
- JBIGHDR_DIR =
- JASPERLIB = NONE
- JASPERHDR_DIR =
- URTLIB = $(netpbm_config_lib rle)
- URTHDR_DIR =
- X11LIB = $(netpbm_config_lib X X11)
- X11HDR_DIR =
- EOF
-}
-
-src_compile() {
- emake -j1 pm_config.h version.h manual_importinc #149843
- emake
-}
-
-src_test() {
- # The code wants to install everything first and then test the result.
- emake install.{bin,lib,data}
- emake check
-}
-
-src_install() {
- # Subdir make targets like to use `mkdir` all over the place
- # without any actual dependencies, thus the -j1.
- emake -j1 package pkgdir="${ED}"/usr
-
- if [[ $(get_libdir) != "lib" ]] ; then
- mv "${ED}"/usr/lib "${ED}"/usr/$(get_libdir) || die
- fi
-
- # Remove cruft that we don't need, and move around stuff we want
- rm "${ED}"/usr/{README,VERSION,{pkgconfig,config}_template,pkginfo} || die
-
- dodir /usr/share
- mv "${ED}"/usr/misc "${ED}"/usr/share/netpbm || die
-
- doman userguide/*.[0-9]
- dodoc README
-
- cd doc || die
- dodoc HISTORY Netpbm.programming USERDOC
- docinto html
- dodoc -r *.html
- dodoc -r ../userguide/*.html
-}
diff --git a/media-libs/netpbm/netpbm-11.3.0.ebuild b/media-libs/netpbm/netpbm-11.3.1.ebuild
index 886d2f5cab79..886d2f5cab79 100644
--- a/media-libs/netpbm/netpbm-11.3.0.ebuild
+++ b/media-libs/netpbm/netpbm-11.3.1.ebuild