diff --git a/media-gfx/gimp/Manifest b/media-gfx/gimp/Manifest index 6cc41942d6a9e..dd827da81ebcc 100644 --- a/media-gfx/gimp/Manifest +++ b/media-gfx/gimp/Manifest @@ -1,3 +1,4 @@ DIST gimp-2.10.38.tar.bz2 31698453 BLAKE2B 58c29e3e00d873e69a5e5f4e9c3ff4d868ccfb11914570306ef12c54ca7d3ef89a62d8c71fac1f2d1f426ac615dc4caf7a7260351c00301dce2b1aa4193bab6d SHA512 343bf1c3bd14bf8e7c7af79c05920faca213da68549127c1d8af53e2e872e55aeaf39a3cfcf578183a34fdc4f98e1c859be63956b0611067186eefd1fdee2aaa DIST gimp-3.0.0-RC1.tar.xz 28863948 BLAKE2B d9e1ae51809d1c8e5084a9e85b660cd0f3a763f8ee220075fe73f512940e9637d50675a06d0dca88c501571a26404cb6b53c9573348002586143c52736dfa196 SHA512 844896976b66b0498ba9149c7176f5442b2305fd3dc51fce7ff92eb05b7b0f86f16d0bd16e50a3c43ab2c6b9be4e610dbbfc50a99c84a62a4de80a6937d43985 DIST gimp-3.0.0-RC2.tar.xz 26980968 BLAKE2B 56b98a7863df22cf81015a9da5d7535cfef5a154c47418b1b6c6212cc76423e0769a4aa8d76714d2eb22595b1f6e2c623e4444e35675db5fe7e40c8820fe71dd SHA512 c0a6e096d954f3048cb68fe4ff71dd2f49c802f800014ab8a3089a0e097e7d6f595e5716230c06e7edfddba948f0d01da14800935aa6ceb9dc2e12fb7f19d7e6 +DIST gimp-3.0.0-RC3.tar.xz 27043600 BLAKE2B 6dd3a64ab8a7ec3481fdc2c4d7aeeb34546fbd493f9f6663f154f8ff47616190df0fa3719ea17debde56ed9f32120b6d03d4acf45b9e98740fd2ebc11c429878 SHA512 f6da664aadc312cdfac248fb1d3d8eb681aff50b8b0dee6f5c23cfa768eb4899386f470d19e797d0b1ee24746c88c7c12b609c3dc091acd2a625baf0b028285f diff --git a/media-gfx/gimp/files/gimp-3.0.0_rc3_debug_self_gdb_optional.patch b/media-gfx/gimp/files/gimp-3.0.0_rc3_debug_self_gdb_optional.patch new file mode 100644 index 0000000000000..76c92ba95515c --- /dev/null +++ b/media-gfx/gimp/files/gimp-3.0.0_rc3_debug_self_gdb_optional.patch @@ -0,0 +1,65 @@ +Gentoo issue: https://bugs.gentoo.org/949910 +Upstream issue: https://gitlab.gnome.org/GNOME/gimp/-/issues/12904 + +From c3bc4e53363bdad44f01826f665d88c48fcedd99 Mon Sep 17 00:00:00 2001 +From: Jehan +Date: Mon, 24 Feb 2025 18:13:09 +0100 +Subject: [PATCH] Issue #12904: make debugging self with gdb optional with + -Ddebug-self-in-build. + +Some people reported cases where gdb doesn't even seem to understand +Python scripts (the error in #12904 implies it is looking for standard +gdb commands, because apparently -x option allows both styles). +Others had issues in sandbox building (#12956). + +I don't really want to spend too much time understanding each case, +especially as it's a self-debugging tool, not absolutely necessary for a +successful compilation. + +So let's just make this optional, and default to "false". +--- + meson.build | 3 +++ + meson_options.txt | 2 ++ + tools/in-build-gimp.sh | 2 +- + 3 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 5fb07c6f13..2cfd7acb89 100644 +--- a/meson.build ++++ b/meson.build +@@ -1959,6 +1959,9 @@ subdir('app-tools') + gimp_run_env=environment() + gimp_run_env.set('GIMP_GLOBAL_BUILD_ROOT', meson.global_build_root()) + gimp_run_env.set('GIMP_GLOBAL_SOURCE_ROOT', meson.global_source_root()) ++if get_option('debug-self-in-build') ++ gimp_run_env.set('GIMP_DEBUG_SELF', '1') ++endif + + if meson.can_run_host_binaries() and have_gobject_introspection + if enable_console_bin +diff --git a/meson_options.txt b/meson_options.txt +index b9da5211dd..f6adb1313d 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -66,3 +66,5 @@ option('vector-icons', type: 'boolean', value: true, description: 'Use ve + option('vala', type: 'feature', value: 'auto', description: 'Build VAPI and Vala plugins') + option('javascript', type: 'feature', value: 'auto', description: 'Install Javascript plug-ins') + option('lua', type: 'boolean', value: false, description: 'Install Lua plug-ins (experimental)') ++ ++option('debug-self-in-build', type: 'boolean', value: false, description: 'Run in-build GIMP within gdb for debugging purpose') +diff --git a/tools/in-build-gimp.sh b/tools/in-build-gimp.sh +index 913fd19c80..878e351ccc 100755 +--- a/tools/in-build-gimp.sh ++++ b/tools/in-build-gimp.sh +@@ -24,7 +24,7 @@ if [ -n "$GIMP_TEMP_UPDATE_RPATH" ]; then + unset IFS + fi + +-if command -v gdb; then ++if [ -n "$GIMP_DEBUG_SELF" ] && command -v gdb; then + echo RUNNING: cat /dev/stdin "|" gdb --batch -x "$GIMP_GLOBAL_SOURCE_ROOT/tools/debug-in-build-gimp.py" --args $GIMP_SELF_IN_BUILD "$@" + cat /dev/stdin | gdb --return-child-result --batch -x "$GIMP_GLOBAL_SOURCE_ROOT/tools/debug-in-build-gimp.py" --args $GIMP_SELF_IN_BUILD "$@" + else +-- +GitLab + diff --git a/media-gfx/gimp/gimp-3.0.0_rc3.ebuild b/media-gfx/gimp/gimp-3.0.0_rc3.ebuild new file mode 100644 index 0000000000000..49d494624f2b0 --- /dev/null +++ b/media-gfx/gimp/gimp-3.0.0_rc3.ebuild @@ -0,0 +1,266 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LUA_COMPAT=( luajit ) +PYTHON_COMPAT=( python3_{10..13} ) +VALA_USE_DEPEND=vapigen + +inherit flag-o-matic lua-single meson python-single-r1 toolchain-funcs vala xdg + +DESCRIPTION="GNU Image Manipulation Program" +HOMEPAGE="https://www.gimp.org/" +SRC_URI="mirror://gimp/v$(ver_cut 1-2)/${PN}-$(ver_cut 1-3)-RC3.tar.xz" + +S="${WORKDIR}/${PN}-$(ver_cut 1-3)-RC3" +LICENSE="GPL-3+ LGPL-3+" +SLOT="0/3" + +IUSE="X aalib alsa doc fits gnome heif javascript jpeg2k jpegxl lua mng openexr openmp postscript test udev unwind vala vector-icons webp wmf xpm" +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + lua? ( ${LUA_REQUIRED_USE} ) + test? ( X ) + xpm? ( X ) +" + +RESTRICT="!test? ( test )" + +# media-libs/{babl,gegl} are required to be built with USE="introspection" +# to fix the compilation checking of /usr/share/gir-1.0/{Babl-0.1gir,Gegl-0.4.gir} +COMMON_DEPEND=" + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + >=dev-python/pygobject-3.0:3[${PYTHON_USEDEP}] + ') + >=app-accessibility/at-spi2-core-2.46.0 + >=app-text/poppler-0.90.1[cairo] + >=app-text/poppler-data-0.4.9 + >=dev-libs/appstream-glib-0.7.16 + >=dev-libs/glib-2.70.0:2 + >=dev-libs/json-glib-1.4.4 + dev-libs/libxml2:2 + dev-libs/libxslt + >=gnome-base/librsvg-2.57.3:2 + >=media-gfx/mypaint-brushes-2.0.2:= + >=media-libs/babl-0.1.110[introspection,lcms,vala?] + >=media-libs/fontconfig-2.12.6 + >=media-libs/freetype-2.10.2 + >=media-libs/gegl-0.4.54:0.4[cairo,introspection,lcms,vala?] + >=media-libs/gexiv2-0.14.0 + >=media-libs/harfbuzz-2.6.5:= + >=media-libs/lcms-2.13.1:2 + media-libs/libjpeg-turbo:= + >=media-libs/libmypaint-1.6.1:= + >=media-libs/libpng-1.6.37:0= + >=media-libs/tiff-4.1.0:= + net-libs/glib-networking[ssl] + sys-libs/zlib + >=x11-libs/cairo-1.16.0[X=] + >=x11-libs/gdk-pixbuf-2.40.0:2[introspection] + >=x11-libs/gtk+-3.24.48:3[introspection,X=] + >=x11-libs/pango-1.50.0[X=] + aalib? ( media-libs/aalib ) + alsa? ( >=media-libs/alsa-lib-1.0.0 ) + fits? ( sci-libs/cfitsio ) + heif? ( >=media-libs/libheif-1.13.0:= ) + javascript? ( dev-libs/gjs ) + jpeg2k? ( >=media-libs/openjpeg-2.3.1:2= ) + jpegxl? ( >=media-libs/libjxl-0.6.1:= ) + lua? ( + ${LUA_DEPS} + $(lua_gen_cond_dep ' + dev-lua/lgi[${LUA_USEDEP}] + ') + ) + mng? ( media-libs/libmng:= ) + openexr? ( >=media-libs/openexr-2.3.0:= ) + postscript? ( app-text/ghostscript-gpl:= ) + udev? ( >=dev-libs/libgudev-167:= ) + unwind? ( >=sys-libs/libunwind-1.1.0:= ) + webp? ( >=media-libs/libwebp-0.6.0:= ) + wmf? ( >=media-libs/libwmf-0.2.8[X=] ) + X? ( + x11-libs/libX11 + x11-libs/libXcursor + x11-libs/libXext + >=x11-libs/libXmu-1.1.4 + ) + xpm? ( x11-libs/libXpm ) +" + +RDEPEND=" + ${COMMON_DEPEND} + x11-themes/hicolor-icon-theme + gnome? ( gnome-base/gvfs ) +" + +DEPEND=" + ${COMMON_DEPEND} + test? ( x11-misc/xvfb-run ) + vala? ( $(vala_depend) ) +" + +# TODO: there are probably more atoms in DEPEND which should be in BDEPEND now +BDEPEND=" + >=dev-lang/perl-5.30.3 + dev-util/gdbus-codegen + >=sys-devel/gettext-0.21 + doc? ( + dev-libs/gobject-introspection[doctool] + dev-util/gi-docgen + ) + virtual/pkgconfig +" + +DOCS=( "AUTHORS" "NEWS" "README" "README.i18n" ) + +PATCHES=( + "${FILESDIR}/${P}_debug_self_gdb_optional.patch" # Bug 949910 +) + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + python-single-r1_pkg_setup + use lua && lua-single_pkg_setup +} + +src_prepare() { + default + + sed -i -e 's/mypaint-brushes-1.0/mypaint-brushes-2.0/' meson.build || die #737794 + + # Fix Gimp and GimpUI devel doc installation paths + sed -i -e "s/'doc'/'gtk-doc'/" devel-docs/reference/gimp/meson.build || die + sed -i -e "s/'doc'/'gtk-doc'/" devel-docs/reference/gimp-ui/meson.build || die + + # Fix pygimp.interp python implementation path. + # Meson @PYTHON_PATH@ use sandbox path e.g.: + # '/var/tmp/portage/media-gfx/gimp-2.99.12/temp/python3.10/bin/python3' + sed -i -e 's/@PYTHON_EXE@/'${EPYTHON}'/' plug-ins/python/pygimp.interp.in || die + + # Set proper intallation path of documentation logo + sed -i -e "s/'gimp-@0@'.format(gimp_app_version)/'gimp-${PVR}'/" gimp-data/images/logo/meson.build || die +} + +_adjust_sandbox() { + # Bugs #569738 and #591214 + local nv + for nv in /dev/nvidia-uvm /dev/nvidiactl /dev/nvidia{0..9} ; do + # We do not check for existence as they may show up later + # https://bugs.gentoo.org/show_bug.cgi?id=569738#c21 + addwrite "${nv}" + done + + addwrite /dev/dri/ # bugs #574038 and #684886 + addwrite /dev/ati/ # bug #589198 + addwrite /proc/mtrr # bug #589198 +} + +src_configure() { + _adjust_sandbox + + # bug #944284 (https://gitlab.gnome.org/GNOME/gimp/-/issues/12843) + append-cflags -std=gnu17 + + use vala && vala_setup + + local emesonargs=( + -Denable-default-bin=enabled + + -Dcheck-update=no + -Ddebug-self-in-build=false + -Denable-multiproc=true + -Dappdata-test=disabled + -Dbug-report-url=https://bugs.gentoo.org/ + -Dilbm=disabled + -Dlibbacktrace=false + -Dwebkit-unmaintained=false + $(meson_feature aalib aa) + $(meson_feature alsa) + $(meson_feature doc gi-docgen) + $(meson_feature fits) + $(meson_feature heif) + $(meson_feature javascript) + $(meson_feature jpeg2k jpeg2000) + $(meson_feature jpegxl jpeg-xl) + $(meson_feature mng) + $(meson_feature openexr) + $(meson_feature openmp) + $(meson_feature postscript ghostscript) + $(meson_feature test headless-tests) + $(meson_feature udev gudev) + $(meson_feature vala) + $(meson_feature webp) + $(meson_feature wmf) + $(meson_feature X xcursor) + $(meson_feature xpm) + $(meson_use lua) + $(meson_use unwind libunwind) + $(meson_use vector-icons) + ) + + meson_src_configure +} + +src_compile() { + export XDG_DATA_DIRS="${EPREFIX}"/usr/share # bug 587004 + meson_src_compile +} + +# for https://bugs.gentoo.org/664938 +_rename_plugins() { + einfo 'Renaming plug-ins to not collide with pre-2.10.6 file layout (bug #664938)...' + local prename=gimp-org- + ( + cd "${ED}"/usr/$(get_libdir)/gimp/3.0/plug-ins || exit 1 + for plugin_slash in $(ls -d1 */); do + plugin=${plugin_slash%/} + if [[ -f ${plugin}/${plugin} ]]; then + # NOTE: Folder and file name need to match for Gimp to load that plug-in + # so "file-svg/file-svg" becomes "${prename}file-svg/${prename}file-svg" + mv ${plugin}/{,${prename}}${plugin} || exit 1 + mv {,${prename}}${plugin} || exit 1 + fi + done + ) +} + +src_test() { + local -x LD_LIBRARY_PATH="${BUILD_DIR}/libgimp:${LD_LIBRARY_PATH}" + meson_src_test +} + +src_install() { + meson_src_install + + python_optimize + + # Workaround for bug #321111 to give GIMP the least + # precedence on PDF documents by default + mv "${ED}"/usr/share/applications/{,zzz-}gimp.desktop || die + + find "${D}" -name '*.la' -type f -delete || die + + # Create symlinks for Gimp exec in /usr/bin + dosym "${ESYSROOT}"/usr/bin/gimp-3.0 /usr/bin/gimp + dosym "${ESYSROOT}"/usr/bin/gimp-console-3.0 /usr/bin/gimp-console + dosym "${ESYSROOT}"/usr/bin/gimp-script-fu-interpreter-3.0 /usr/bin/gimp-script-fu-interpreter + dosym "${ESYSROOT}"/usr/bin/gimp-test-clipboard-3.0 /usr/bin/gimp-test-clipboard + dosym "${ESYSROOT}"/usr/bin/gimptool-3.0 /usr/bin/gimptool + + _rename_plugins || die +} + +pkg_postinst() { + xdg_pkg_postinst +} + +pkg_postrm() { + xdg_pkg_postrm +} diff --git a/media-gfx/gimp/gimp-9999.ebuild b/media-gfx/gimp/gimp-9999.ebuild index dc9f4d6c60129..d3f55c7cdc881 100644 --- a/media-gfx/gimp/gimp-9999.ebuild +++ b/media-gfx/gimp/gimp-9999.ebuild @@ -57,7 +57,7 @@ COMMON_DEPEND=" sys-libs/zlib >=x11-libs/cairo-1.16.0[X=] >=x11-libs/gdk-pixbuf-2.40.0:2[introspection] - >=x11-libs/gtk+-3.24.16:3[introspection,X=] + >=x11-libs/gtk+-3.24.48:3[introspection,X=] >=x11-libs/pango-1.50.0[X=] aalib? ( media-libs/aalib ) alsa? ( >=media-libs/alsa-lib-1.0.0 ) @@ -173,6 +173,7 @@ src_configure() { -Denable-default-bin=enabled -Dcheck-update=no + -Ddebug-self-in-build=false -Denable-multiproc=true -Dappdata-test=disabled -Dbug-report-url=https://bugs.gentoo.org/