summaryrefslogtreecommitdiff
path: root/media-gfx
diff options
context:
space:
mode:
Diffstat (limited to 'media-gfx')
-rw-r--r--media-gfx/Manifest.gzbin37991 -> 37992 bytes
-rw-r--r--media-gfx/gnofract4d/Manifest6
-rw-r--r--media-gfx/gnofract4d/gnofract4d-4.3_p20211108.ebuild63
-rw-r--r--media-gfx/gnofract4d/gnofract4d-4.3_p20230717.ebuild (renamed from media-gfx/gnofract4d/gnofract4d-4.3_p20221114.ebuild)16
-rw-r--r--media-gfx/graphicsmagick/Manifest4
-rw-r--r--media-gfx/graphicsmagick/files/graphicsmagick-1.3.40-libjpeg-turbo-3-001.patch69
-rw-r--r--media-gfx/graphicsmagick/files/graphicsmagick-1.3.40-libjpeg-turbo-3-002.patch48
-rw-r--r--media-gfx/graphicsmagick/files/graphicsmagick-1.3.40-libjpeg-turbo-3-003.patch31
-rw-r--r--media-gfx/graphicsmagick/graphicsmagick-1.3.40-r1.ebuild163
9 files changed, 328 insertions, 72 deletions
diff --git a/media-gfx/Manifest.gz b/media-gfx/Manifest.gz
index 0136939da23d..a09f9de39674 100644
--- a/media-gfx/Manifest.gz
+++ b/media-gfx/Manifest.gz
Binary files differ
diff --git a/media-gfx/gnofract4d/Manifest b/media-gfx/gnofract4d/Manifest
index 6e2b76e1e0e8..a3ba27a43ba9 100644
--- a/media-gfx/gnofract4d/Manifest
+++ b/media-gfx/gnofract4d/Manifest
@@ -1,8 +1,6 @@
AUX gnofract4d-4.3_p20221125-clang16.patch 2070 BLAKE2B fad88eb8307a3387075f2b7c58b12103474f4a807039261a323759f5c5f9579612d6ef25ab93fab317352ee49ee2c90745c92e0ee1f776721940c95c563f1f71 SHA512 0bcb83dbd5486fbbe6ea683cdd85ce057dfef96203f5f4a6cc8b45d1da07b28da2afcff4d18bb584833c06222de15f8e4851d43949fb7090c580bd45635bd391
-DIST gnofract4d-4.3_p20211108.tar.gz 18271921 BLAKE2B b73fef616b8a91827edd514ec128bcb6d63a8fc8f1433989e31bd9f11711a9568a61358dcca23846bff461ef6a8addeae68cc5ab5f4ae29b6e9b2857bdbad2b8 SHA512 0d95f31ac9b1b82bfd459ac896c73bfcffb3b256750093cdccee976839112fcaeb42260c0eb48ef4f30dc0504f5b84cc425f6568997c05639993354756f9ef75
-DIST gnofract4d-4.3_p20221114.tar.gz 18275321 BLAKE2B 029babc09810aa2a2fe0a627144bd347cb363666a9412cce067c2ce505fd8d554a3e12058ab74ccc5d1ff29587e96276026e685ee586e3961c92f72b30fe72d5 SHA512 d45183c0dc77959210b512ecfb35a8487ebf103ec5d46f815f4a2e05655ed5cc2f5fd1399f644fd919a459ffdb54dfe32a7745991dd37f527f5b79747aa22618
DIST gnofract4d-4.3_p20221125.tar.gz 18275177 BLAKE2B 24fcd71818a98a3137b485046f295b523884d05ece694e37cf871e1fdaba7b26ac870675895a7a361e5d1fe142b0ae68c720c6e39615226951e8e1af6f57c848 SHA512 75d8d12441a0e2024f0ef125fee5cbe8dcc10c4c48ba366d5529644ae743928b998f85369aafc6e737cb994a82ebdcbe941e11c916c0d0996e785a146469e359
-EBUILD gnofract4d-4.3_p20211108.ebuild 1474 BLAKE2B 082b15fe148c31e01455f535fa53f1a4b74c2d011d78b2b9d4e7a9a5c72c146840af2a3f676d5e69e61a3a9b6e3c219d8d3bdbcb8c1c562c6199e1f7d8154069 SHA512 20d32d3c0d0596da82b626e7cf470e1cd200e62d48e86c8275e0716086321e582e34c3805a756c004383dc3265d620dc422655c5536b324ed37d81a8607f0d28
-EBUILD gnofract4d-4.3_p20221114.ebuild 1410 BLAKE2B 80abe21f54fdfc63c5d95b4ce3ed1d69d8c46650d9b71755b5bed2417b4b3aafa64f3bb6f88a5d1093639a79e4253b53b520ccef42c8764d10d8a57f699129c4 SHA512 b2fd0d9e865b88d858ba05f48e9cc48cb10d5c238b74f72f75a26793ae7d8eb4d1b832c7e22421a467fd9a6e57bd3f4c2d3d781826af8ebbf3c83506caa4c8f4
+DIST gnofract4d-4.3_p20230717.tar.gz 18275492 BLAKE2B 0bc8834c6f3ed3ec48bf4ee49ad563ce6842485dd32eb568c580d74528d062dcad6f8da4a67434c3784497883d0a73d4fa050a346ef970ac348db58bc6e7ea39 SHA512 c427c42e75b830dcf95012346d2db3a9b63be4e5431e7eae5ec74b915f5eedd857d8fa56d5ec37e8d245c3a77dc413c72115700d614205bdd62b916e6865f749
EBUILD gnofract4d-4.3_p20221125-r1.ebuild 1470 BLAKE2B 9316290a45026d2aae523d8e59059fcf08cecf886757c7dd49af0d8532176b6bec30f6e3f01ade36656437be6410502f9486b5f482d7b293df7cbe735d007850 SHA512 030a61800bd923a76e929312a908bc3b45634d891bb48cdd8d605ff23c5ed363293e33e1a9050f74d8e47bc67e787861597e77ee47b6c2171dcc43b056c215ef
+EBUILD gnofract4d-4.3_p20230717.ebuild 1605 BLAKE2B 5c89ee8ccd94ba474a0d3c2062f83e17f85e345f7a32daa15b001242fd4bd858fea93bdc51bb01a9ea652e1c8d82e10654913945a0e4b54d3e1fa8aaf3767516 SHA512 54124465d0c38a6d3c9f6abbca983480ced1663e2f2f2303f56ee5b3ff01ab8d7b23e917f003efd590fce77acb716400cc12beb33cd648fcdcc860b9cfb32e3b
MISC metadata.xml 474 BLAKE2B 6dcdd891ae9b2b69a1f7a2e3de6bc867894444743825642abddac1701d75bd2ec1542a5e6d4c86b76b2e209ccdc4db53e680692a0e6c7c99c280ff96fe6a13a2 SHA512 7b815ce8a870b158e39845840082ea3a87738d1f7c63b6aee869758deb3475f7f2c1c1f1831bfdc8af911c1f7825c514cf26c76af5bb32464e9fa2a308ba8a05
diff --git a/media-gfx/gnofract4d/gnofract4d-4.3_p20211108.ebuild b/media-gfx/gnofract4d/gnofract4d-4.3_p20211108.ebuild
deleted file mode 100644
index b343a1f5dbdb..000000000000
--- a/media-gfx/gnofract4d/gnofract4d-4.3_p20211108.ebuild
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9,10} )
-DISTUTILS_SINGLE_IMPL=1
-
-inherit distutils-r1 optfeature virtualx xdg
-
-COMMIT="52410fec6cd9182048aed85e333876ddeaa9486a"
-
-DESCRIPTION="A program for drawing beautiful mathematically-based images known as fractals"
-HOMEPAGE="https://fract4d.github.io/gnofract4d/"
-SRC_URI="https://github.com/fract4d/gnofract4d/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 x86"
-
-DEPEND="
- media-libs/libpng:0=
- virtual/jpeg"
-RDEPEND="${DEPEND}
- $(python_gen_cond_dep '
- dev-python/pycairo[${PYTHON_USEDEP}]
- dev-python/pygobject:3[cairo,${PYTHON_USEDEP}]
- ')
- x11-libs/gtk+:3[introspection]"
-BDEPEND="
- virtual/pkgconfig
- test? (
- media-video/ffmpeg[vpx,zlib]
- )"
-
-distutils_enable_tests pytest
-
-S="${WORKDIR}/${PN}-${COMMIT}"
-
-src_prepare() {
- sed -i -e "s:share/doc/gnofract4d/:share/doc/${PF}/:" setup.py || die
- # test_regress.py does not provide pytest with any tests and inspecting it requires dev-python/pillow
- rm test_regress.py || die
- # tests hanging with virtx
- rm fract4dgui/tests/test_{director,gtkfractal}.py || die
-
- distutils-r1_src_prepare
-}
-
-python_compile_all() {
- if use test; then
- ln -s "${BUILD_DIR}"/lib/fract4d/*.so fract4d/ || die
- fi
-}
-
-src_test() {
- virtx distutils-r1_src_test
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
- optfeature "creating videos" media-video/ffmpeg[vpx,zlib]
-}
diff --git a/media-gfx/gnofract4d/gnofract4d-4.3_p20221114.ebuild b/media-gfx/gnofract4d/gnofract4d-4.3_p20230717.ebuild
index 81ee6be4edfc..f29c0f35e3e3 100644
--- a/media-gfx/gnofract4d/gnofract4d-4.3_p20221114.ebuild
+++ b/media-gfx/gnofract4d/gnofract4d-4.3_p20230717.ebuild
@@ -3,13 +3,14 @@
EAPI=8
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{10..11} )
+DISTUTILS_EXT=1
DISTUTILS_SINGLE_IMPL=1
DISTUTILS_USE_PEP517=setuptools
inherit distutils-r1 optfeature virtualx xdg
-COMMIT="3858a6f6a857ee8d2204938d72ac4975dafa16e4"
+COMMIT="47d2093e8f6399d1badfba0d1cb0f9867e90b326"
DESCRIPTION="A program for drawing beautiful mathematically-based images known as fractals"
HOMEPAGE="https://fract4d.github.io/gnofract4d/"
@@ -24,10 +25,9 @@ DEPEND="
media-libs/libpng:0="
RDEPEND="${DEPEND}
$(python_gen_cond_dep '
- dev-python/pycairo[${PYTHON_USEDEP}]
- dev-python/pygobject:3[cairo,${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
')
- x11-libs/gtk+:3[introspection]"
+ gui-libs/gtk:4[introspection]"
BDEPEND="
virtual/pkgconfig
test? (
@@ -39,6 +39,7 @@ distutils_enable_tests pytest
S="${WORKDIR}/${PN}-${COMMIT}"
src_prepare() {
+ sed -i -e "s:VERSION = '4.3':VERSION = '$PV':" fract4d/options.py || die
sed -i -e "s:share/doc/gnofract4d/:share/doc/${PF}/:" setup.py || die
distutils-r1_src_prepare
@@ -50,6 +51,11 @@ python_test() {
# test_regress.py does not provide pytest with any tests and inspecting it requires dev-python/pillow
test_regress.py
)
+ use x86 && local EPYTEST_DESELECT=(
+ # https://bugs.gentoo.org/890796
+ test_fractal.py::Test::testDiagonal
+ test_fractal.py::Test::testRecolor
+ )
TMPDIR="${T}" virtx epytest
}
diff --git a/media-gfx/graphicsmagick/Manifest b/media-gfx/graphicsmagick/Manifest
index 0f4548835b53..417ef0148d23 100644
--- a/media-gfx/graphicsmagick/Manifest
+++ b/media-gfx/graphicsmagick/Manifest
@@ -1,7 +1,11 @@
AUX graphicsmagick-1.3.19-perl.patch 491 BLAKE2B 6a6465162d9a4d7d09b1edb425cc7114cd4e0fc65e48f15c8c2a854fe835fd1fe94c56611c6d2744d9e26884c57b1f67353bfd32abe2f25a145dd7abbf5479f0 SHA512 da114b891ec923253048d90ee14f136742072bcb70e512e8d2838bbcac57b5fe6ea580cdccfd1bba5156777623c43e946ce2a8661f88612d4c24849bef0fb865
AUX graphicsmagick-1.3.36-flags.patch 2009 BLAKE2B 1d58f03cfeac9be92e2e85a2b6274ec22e3cb2c65d62e3095f2bb3da8f817ae52fdd6fe70e5da30bb8110202ec8c8268ffef7069c34d55ef7f7ccc3e53785418 SHA512 205694ea04e7b65c5519c564bbfa1ebd33ef4fa7800aec1a91439ed90794629dd54ab42c1c7f4f2f5ce3b7b078b3fffe76ce37c61643087f5cca244931b5bd3a
+AUX graphicsmagick-1.3.40-libjpeg-turbo-3-001.patch 2445 BLAKE2B 64779cb1c77576acf69fc72a56db2c526632650bff9dc24d9ce2bb708743e337a02c7cc447345e40ae6537f4173643fe349c558123b0c741441bc058e261a9f3 SHA512 6bcdad66f3b66944ce5039f4417c1f4959264f7b2da096f11e90c124e36857f6546c83f70b31d94233b58ebd4dbd40a3071e5b79716e4d7a6d0db689600ba0e0
+AUX graphicsmagick-1.3.40-libjpeg-turbo-3-002.patch 1735 BLAKE2B 36514306292a07130b0a38828d758019f3ddf2bc3080d65b754d525d1271af0f8a4fb3f36d2267a91296a337268ab6fa4717c836bf1ed42ce5761de86b163343 SHA512 4133e53d855a71c5f9432510fd10b5cd6fdd2aa3d20178ef16732e98b87ea11e186314c54d09c743bb903b62a10529c7aea791b7e40b920049f0c1ea6baceb4f
+AUX graphicsmagick-1.3.40-libjpeg-turbo-3-003.patch 1232 BLAKE2B 05268740f0774df6dfdafb744922e1dab6d0a6774ea4939c46195fe2f7f56d87fe3e4ca2b46dfa842b2110c56d6c1a77b87977f38936b73ea2d302b47cc03059 SHA512 4385bb7e8129c130d1c5ab2e1a248de6ba4241066bd40fe122a9b67309c03b15151fe8a41acd0c0ec0bc63483bbbb0a49085cc0a6456e72b4b3b822ac1357661
DIST GraphicsMagick-1.3.40.tar.xz 5507792 BLAKE2B 2052eb34931f07c902a9c68192ebe4d36137cd23219b1598bae2fa78c5c8bfd1efadf9fd430ed4fee8dc903e50ffabe5a9c76bf55966b85b6f303b2decdca6ee SHA512 e64902aa2a8702d03d188350bd4252a2263e431611f9a70f38cd8beede8a38cc91bb4de3603fedf15420ebbba488f609f218e9b45e356b9f8dc8e4a75f380ee5
DIST GraphicsMagick-1.3.40.tar.xz.asc 228 BLAKE2B 70eaaa0cd30cfe23ac6dc5e8edc026c57eea7b1a608e83da3408f6fa9fc2cceeb8190e4e9015f321ee688f2a32689d244d69bc61764a99ab0f99ada72143a575 SHA512 82c628e4a260a690c7b1941321881a97d54b4c9580dcbfd8ae786a1774dc43c46e8542488ca875346446858e7475847c440cfca572315a5fe123315b187a240a
+EBUILD graphicsmagick-1.3.40-r1.ebuild 4048 BLAKE2B 65e0494327fc645befb63408a7f3c174c21a0b0920251d8e3f208b395fb79e9c6c990e2905484532511bdacdab9d19f0bfe43a8dac5ac21871f73812aee4062c SHA512 893e9ffc32e637c5cc4c5fa09c8c2b959b6c056fbdc1f821f4a6d3f7adb8d0016376e4510b5db6513898f2011e9efff08abd722e215aed373e73c536b80c2653
EBUILD graphicsmagick-1.3.40.ebuild 3851 BLAKE2B 5364a3e3f0e5f57089443ad1010a75371507d5a2ed6c4c365b722238518acb26dada10c24ea897507069e0ff23af5f8077908f3b922cc37c686bc23ac075e181 SHA512 fb54d82d2deda4e66b823c33281b382b02e6f14209607f91fd51c60a0d27c2cad59be034b5b9a212a3b42a4dd79cd371ae797a6afce52eb1ca9f63250dcc5b79
EBUILD graphicsmagick-9999.ebuild 3859 BLAKE2B ecc9180502d00af2bfeb3d96125cfe610a7a1e304720a09bfce47b7a1c702a29a19b600fd5354a15d32588e363d663164efff0966ebeccfbf1e1d330e2f8c20c SHA512 d697391be219a2dbb275cc73d9cee4e7692033d9a65d096f43c772c58f7e572aeee932222d3b2c1c0f3f86503873d8d20fa3a26268be182a275a941d58d4cee5
MISC metadata.xml 1299 BLAKE2B 8b52e6f32fd37011471723ec75a32611ae53f92a092dd2ef5eba48391b7282f00ffd20131dbeb86c30b77e697634e13a72dcc218f547a005ff828cf7d43bf658 SHA512 a96a6ee1fc8b7c2b3162e356be1536bfde975dceb37894eca59c80fb9623fcce309b2fd0cc233da9f572925aad9821623748c871c7e2e2f61733d1831a1ca368
diff --git a/media-gfx/graphicsmagick/files/graphicsmagick-1.3.40-libjpeg-turbo-3-001.patch b/media-gfx/graphicsmagick/files/graphicsmagick-1.3.40-libjpeg-turbo-3-001.patch
new file mode 100644
index 000000000000..a505f8b7e2d8
--- /dev/null
+++ b/media-gfx/graphicsmagick/files/graphicsmagick-1.3.40-libjpeg-turbo-3-001.patch
@@ -0,0 +1,69 @@
+https://bugs.gentoo.org/909834
+https://hg.osdn.net/view/graphicsmagick/GM/rev/f07f6a9c3a58
+
+# HG changeset patch
+# User Bob Friesenhahn <bfriesen@GraphicsMagick.org>
+# Date 1675529318 21600
+# Node ID f07f6a9c3a5862971b17d1481bb53f0666b0b66c
+# Parent 166bc6d3500ddeb243c7c1b25ca0d9eade8e3b55
+configure.ac: Test for interesting libjpeg-turbo 3.0 functions
+
+--- a/configure
++++ b/configure
+@@ -26116,6 +26116,20 @@
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ $as_echo "yes" >&6; }
+ have_jpeg='yes'
++ # Test for interesting libjpeg-turbo 3.0 functions (which may also appear in other JPEG libraries)
++ for ac_func in jpeg_enable_lossless jpeg12_write_scanlines jpeg16_write_scanlines \
++ jpeg12_read_scanlines jpeg16_read_scanlines
++do :
++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
++if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
++ cat >>confdefs.h <<_ACEOF
++#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
++_ACEOF
++
++fi
++done
++
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+--- a/configure.ac
++++ b/configure.ac
+@@ -2250,6 +2250,9 @@
+ AC_DEFINE([HasJPEG],[1],[Define if you have JPEG library])
+ AC_MSG_RESULT([yes])
+ have_jpeg='yes'
++ # Test for interesting libjpeg-turbo 3.0 functions (which may also appear in other JPEG libraries)
++ AC_CHECK_FUNCS([jpeg_enable_lossless jpeg12_write_scanlines jpeg16_write_scanlines \
++ jpeg12_read_scanlines jpeg16_read_scanlines])
+ fi
+ else
+ AC_MSG_RESULT([no])
+--- a/magick/magick_config.h.in
++++ b/magick/magick_config.h.in
+@@ -149,6 +149,21 @@
+ /* Define to 1 if you have the `jas_init_library' function. */
+ #undef HAVE_JAS_INIT_LIBRARY
+
++/* Define to 1 if you have the `jpeg12_read_scanlines' function. */
++#undef HAVE_JPEG12_READ_SCANLINES
++
++/* Define to 1 if you have the `jpeg12_write_scanlines' function. */
++#undef HAVE_JPEG12_WRITE_SCANLINES
++
++/* Define to 1 if you have the `jpeg16_read_scanlines' function. */
++#undef HAVE_JPEG16_READ_SCANLINES
++
++/* Define to 1 if you have the `jpeg16_write_scanlines' function. */
++#undef HAVE_JPEG16_WRITE_SCANLINES
++
++/* Define to 1 if you have the `jpeg_enable_lossless' function. */
++#undef HAVE_JPEG_ENABLE_LOSSLESS
++
+ /* Define if you have the <lcms2.h> header file. */
+ #undef HAVE_LCMS2_H
+
diff --git a/media-gfx/graphicsmagick/files/graphicsmagick-1.3.40-libjpeg-turbo-3-002.patch b/media-gfx/graphicsmagick/files/graphicsmagick-1.3.40-libjpeg-turbo-3-002.patch
new file mode 100644
index 000000000000..d45fc6d9605b
--- /dev/null
+++ b/media-gfx/graphicsmagick/files/graphicsmagick-1.3.40-libjpeg-turbo-3-002.patch
@@ -0,0 +1,48 @@
+https://bugs.gentoo.org/909834
+https://hg.osdn.net/view/graphicsmagick/GM/rev/166bc6d3500d
+
+# HG changeset patch
+# User Bob Friesenhahn <bfriesen@GraphicsMagick.org>
+# Date 1675522420 21600
+# Node ID 166bc6d3500ddeb243c7c1b25ca0d9eade8e3b55
+# Parent 8c82d3be78692071e2f74fb1b9543e9b8384d7cb
+JPEG: Ignore C_LOSSLESS_SUPPORTED/D_LOSSLESS_SUPPORTED defined by JPEG-Turbo
+
+--- a/coders/jpeg.c
++++ b/coders/jpeg.c
+@@ -1,5 +1,5 @@
+ /*
+-% Copyright (C) 2003-2022 GraphicsMagick Group
++% Copyright (C) 2003-2023 GraphicsMagick Group
+ % Copyright (C) 2002 ImageMagick Studio
+ % Copyright 1991-1999 E. I. du Pont de Nemours and Company
+ %
+@@ -954,7 +954,7 @@
+ i;
+
+ save_quality=0;
+-#ifdef D_LOSSLESS_SUPPORTED
++#if !defined(LIBJPEG_TURBO_VERSION_NUMBER) && defined(D_LOSSLESS_SUPPORTED)
+ if (image->compression==LosslessJPEGCompression)
+ {
+ save_quality=100;
+@@ -1461,7 +1461,9 @@
+ }
+ #endif
+ #if (JPEG_LIB_VERSION >= 61) && defined(D_PROGRESSIVE_SUPPORTED)
+-#ifdef D_LOSSLESS_SUPPORTED
++#if !defined(LIBJPEG_TURBO_VERSION_NUMBER) && defined(D_LOSSLESS_SUPPORTED)
++ /* This code is based on a patch to IJG JPEG 6b, or somesuch. Standard
++ library does not have a 'process' member. */
+ image->interlace=
+ jpeg_info.process == JPROC_PROGRESSIVE ? LineInterlace : NoInterlace;
+ image->compression=jpeg_info.process == JPROC_LOSSLESS ?
+@@ -2896,7 +2898,7 @@
+ if ((image->compression == LosslessJPEGCompression) ||
+ (quality > 100))
+ {
+-#if defined(C_LOSSLESS_SUPPORTED)
++#if !defined(LIBJPEG_TURBO_VERSION_NUMBER) && defined(C_LOSSLESS_SUPPORTED)
+ if (quality < 100)
+ ThrowException(&image->exception,CoderWarning,
+ LosslessToLossyJPEGConversion,(char *) NULL);
diff --git a/media-gfx/graphicsmagick/files/graphicsmagick-1.3.40-libjpeg-turbo-3-003.patch b/media-gfx/graphicsmagick/files/graphicsmagick-1.3.40-libjpeg-turbo-3-003.patch
new file mode 100644
index 000000000000..5b72576b1512
--- /dev/null
+++ b/media-gfx/graphicsmagick/files/graphicsmagick-1.3.40-libjpeg-turbo-3-003.patch
@@ -0,0 +1,31 @@
+https://bugs.gentoo.org/909834
+https://hg.osdn.net/view/graphicsmagick/GM/rev/03561d79e918
+
+# HG changeset patch
+# User Bob Friesenhahn <bfriesen@GraphicsMagick.org>
+# Date 1676216369 21600
+# Node ID 03561d79e9180a65d204b6240a5846fd8b01d1b4
+# Parent 6eb67db043d537ae350409535873c5cbf55ba14c
+ReadJPEGImage(): Use MagickAllocateResourceLimitedClearedArray()
+
+--- a/coders/jpeg.c
++++ b/coders/jpeg.c
+@@ -1695,7 +1695,7 @@
+ }
+ }
+
+- jpeg_pixels=MagickAllocateResourceLimitedArray(JSAMPLE *,
++ jpeg_pixels=MagickAllocateResourceLimitedClearedArray(JSAMPLE *,
+ jpeg_info.output_components,
+ MagickArraySize(image->columns,
+ sizeof(JSAMPLE)));
+@@ -1704,9 +1704,6 @@
+ jpeg_destroy_decompress(&jpeg_info);
+ ThrowJPEGReaderException(ResourceLimitError,MemoryAllocationFailed,image);
+ }
+- (void) memset(jpeg_pixels,0,MagickArraySize(jpeg_info.output_components,
+- MagickArraySize(image->columns,
+- sizeof(JSAMPLE))));
+
+ /*
+ Extended longjmp-based error handler (with jpeg_pixels)
diff --git a/media-gfx/graphicsmagick/graphicsmagick-1.3.40-r1.ebuild b/media-gfx/graphicsmagick/graphicsmagick-1.3.40-r1.ebuild
new file mode 100644
index 000000000000..119b6ba3c803
--- /dev/null
+++ b/media-gfx/graphicsmagick/graphicsmagick-1.3.40-r1.ebuild
@@ -0,0 +1,163 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools toolchain-funcs
+
+MY_P=${P/graphicsm/GraphicsM}
+DESCRIPTION="Collection of tools and libraries for many image formats"
+HOMEPAGE="http://www.graphicsmagick.org/ https://hg.osdn.net/view/graphicsmagick/GM"
+
+if [[ ${PV} == 9999 ]] ; then
+ inherit mercurial
+ EHG_REPO_URI="http://hg.code.sf.net/p/${PN}/code"
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/bobfriesenhahn.asc
+ inherit verify-sig
+ SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.xz"
+ SRC_URI+=" verify-sig? ( mirror://sourceforge/${PN}/${MY_P}.tar.xz.asc )"
+ S="${WORKDIR}/${MY_P}"
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+
+ BDEPEND="verify-sig? ( sec-keys/openpgp-keys-bobfriesenhahn )"
+fi
+
+LICENSE="MIT"
+SLOT="0/${PV%.*}"
+
+IUSE="bzip2 +cxx debug dynamic-loading fpx heif imagemagick jbig jpeg jpegxl lcms lzma"
+IUSE+=" openmp perl png postscript q16 q32 static-libs svg tcmalloc tiff truetype"
+IUSE+=" webp wmf X zlib zstd"
+
+RDEPEND="
+ dev-libs/libltdl
+ bzip2? ( app-arch/bzip2 )
+ fpx? ( media-libs/libfpx )
+ heif? ( media-libs/libheif:= )
+ imagemagick? ( !media-gfx/imagemagick )
+ jbig? ( media-libs/jbigkit )
+ jpeg? ( media-libs/libjpeg-turbo:= )
+ jpegxl? ( media-libs/libjxl:= )
+ lcms? ( media-libs/lcms:2 )
+ lzma? ( app-arch/xz-utils )
+ perl? ( dev-lang/perl:= )
+ png? ( media-libs/libpng:= )
+ postscript? ( app-text/ghostscript-gpl )
+ svg? ( dev-libs/libxml2 )
+ tcmalloc? ( dev-util/google-perftools:= )
+ tiff? ( media-libs/tiff:= )
+ truetype? (
+ media-fonts/urw-fonts
+ >=media-libs/freetype-2
+ )
+ webp? ( media-libs/libwebp:= )
+ wmf? ( media-libs/libwmf )
+ X? (
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXext
+ )
+ zlib? ( sys-libs/zlib )
+ zstd? ( app-arch/zstd:= )
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.3.36-flags.patch
+ "${FILESDIR}"/${PN}-1.3.19-perl.patch
+ "${FILESDIR}"/graphicsmagick-1.3.40-libjpeg-turbo-3-001.patch
+ "${FILESDIR}"/graphicsmagick-1.3.40-libjpeg-turbo-3-002.patch
+ "${FILESDIR}"/graphicsmagick-1.3.40-libjpeg-turbo-3-003.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ local depth=8
+
+ use q16 && depth=16
+ use q32 && depth=32
+
+ local myeconfargs=(
+ --enable-largefile
+ --enable-shared
+ $(use_enable static-libs static)
+ $(use_enable debug prof)
+ $(use_enable debug gcov)
+ $(use_enable imagemagick magick-compat)
+ $(use_enable openmp)
+ --with-threads
+ $(use_with dynamic-loading modules)
+ --with-quantum-depth=${depth}
+ --without-frozenpaths
+ $(use_with cxx magick-plus-plus)
+ $(use_with heif)
+ $(use_with jpegxl jxl)
+ $(use_with perl)
+ --with-perl-options=INSTALLDIRS=vendor
+ $(use_with bzip2 bzlib)
+ $(use_with postscript dps)
+ $(use_with fpx)
+ $(use_with jbig)
+ $(use_with webp)
+ $(use_with jpeg)
+ # Needs last-rited/unpackaged jasper
+ --without-jp2
+ $(use_with lcms lcms2)
+ $(use_with lzma)
+ $(use_with png)
+ $(use_with tcmalloc)
+ $(use_with tiff)
+ --without-trio
+ $(use_with truetype ttf)
+ $(use_with wmf)
+ --with-fontpath="${EPREFIX}"/usr/share/fonts
+ --with-gs-font-dir="${EPREFIX}"/usr/share/fonts/urw-fonts
+ --with-windows-font-dir="${EPREFIX}"/usr/share/fonts/corefonts
+ $(use_with svg xml)
+ $(use_with zlib)
+ $(use_with zstd)
+ $(use_with X x)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ default
+
+ use perl && emake perl-build
+}
+
+src_test() {
+ unset DISPLAY # some perl tests fail when DISPLAY is set
+
+ default
+}
+
+src_install() {
+ default
+
+ if use perl ; then
+ emake -C PerlMagick DESTDIR="${D}" install
+
+ find "${ED}" -type f -name perllocal.pod -exec rm -f {} + || die
+ find "${ED}" -depth -mindepth 1 -type d -empty -exec rm -rf {} + || die
+ fi
+
+ find "${ED}" -name '*.la' -exec sed -i -e "/^dependency_libs/s:=.*:='':" {} + || die
+}