Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

media-gfx/gimp: 2.99.12 version bump (dev preview) #27064

Closed
wants to merge 5 commits into from

Conversation

band-a-prend
Copy link
Contributor

In this release of Gimp dev-preview 2.99.12 the porting
from Autotools to Meson build system take place.

The Meson now is preferred by upstream.

Due to differences of configuration options withon configure.ac
and meson_options.txt the some src_configuration options dropped

  1. related to flags:
    USE="aqua cpu_flags_ppc_altivec cpu_flags_ppc_mmx cpu_flags_ppc_sse"

  2. autotools configure options:

GEGL="${EPREFIX}"/usr/bin/gegl-0.4
GDBUS_CODEGEN="${EPREFIX}"/usr/bin/gdbus-codegen
--with-pdbgen

Also some patches are dropped in src_prepare() phase:

sed -i -e 's/== "xquartz"/= "xquartz"/' configure.ac || die #494864
sed 's:-DGIMP_DISABLE_DEPRECATED:-DGIMP_protect_DISABLE_DEPRECATED:g' -i configure.ac || die #615144

sed 's:-DGIMP_protect_DISABLE_DEPRECATED:-DGIMP_DISABLE_DEPRECATED:g' -i configure || die #615144
grep -F -q GIMP_DISABLE_DEPRECATED configure || die #615144, self-test

The sed -i -e 's/== "xquartz"/= "xquartz"/' configure.ac || die #494864 actually doesn't do anything several releases.

The USE="X" adds conditional support of x11-libs/libXcursor.

The FEATURES="test" now use x11-misc/xvfb-run instead virtualx.eclass to run tests.

In addition USE="doc" now build related to gobject-introspection (g-ir-doc)
plugin documentations. Early it's built was broken for autotools.


The main configuration issue is that gimp meson.build (lines 178-198) states

# Compiler CPU extensions for optimizations
#
# -- Don't enable these flags project-wide, only files needing them
# should be built with a given extension, which we do with meson simd
# module. Otherwise GIMP would end up crashing when run on CPUs which
# don't support all the flags supported by the compiler.
# See merge request !262 for more details.

# Note that Meson has a SIMD module which can also do this for us, but it uses
# its own #defines and we want to stay compatible with the autotools build
conf.set('USE_MMX', cc.has_argument('-mmx'))
conf.set('USE_SSE', cc.has_argument('-sse'))
conf.set10('COMPILE_SSE2_INTRINISICS', cc.has_argument('-msse2'))
conf.set10('COMPILE_SSE4_1_INTRINISICS', cc.has_argument('-msse4.1'))

if host_cpu_family == 'ppc'
  altivec_args = cc.get_supported_arguments([
    '-faltivec',
    '-maltivec',
    '-mabi=altivec',
  ])

And it's seems that MMX and SSE always switched off. I got disabled them during meson configuration while they were enabled with autotools. The SSE2 and SSE4_1 were switched on during configuration.

Should I left it as it is?

The Altivec(ppc) activates automatically.


On media-libs/gegl: 0.4.38 version bump (lto and sdl2):

Closes: https://bugs.gentoo.org/859901
Closes: https://bugs.gentoo.org/860246

P.S.
To add Python 3.11 I need to additionally test dev-libs/gobject-introspection after add Python 3.11 for it and changes PYTHON_REQ_USE="xml to PYTHON_REQ_USE="xml(+)" and then media-libs/gegl and media-gfx/gimp again.
If it's OK then I will add additional commit.

SRC_URI now uses download.gimp.org as ftp.gimp.org
causes 'pkgdev manifest' certificate error

Signed-off-by: Sergey Torokhov <torokhov-s-a@yandex.ru>
Use 'filter-lto' to allow build in LTO profiles.
Add USE="sdl2" flag.

Closes: https://bugs.gentoo.org/859901
Closes: https://bugs.gentoo.org/860246

Signed-off-by: Sergey Torokhov <torokhov-s-a@yandex.ru>
@gentoo-bot
Copy link

Pull Request assignment

Submitter: @band-a-prend
Areas affected: ebuilds
Packages affected: media-gfx/gimp, media-libs/babl, media-libs/gegl

media-gfx/gimp: @band-a-prend, @gentoo/proxy-maint
media-libs/babl: @band-a-prend, @gentoo/proxy-maint
media-libs/gegl: @band-a-prend, @gentoo/proxy-maint

Linked bugs

Bugs linked: 859901, 860246


In order to force reassignment and/or bug reference scan, please append [please reassign] to the pull request title.

Docs: Code of ConductCopyright policy (expl.) ● DevmanualGitHub PRsProxy-maint guide

@gentoo-bot gentoo-bot added self-maintained The PR changes only packages that are maintained by the submitter (i.e. no need to ask anybody else) assigned PR successfully assigned to the package maintainer(s). bug linked Bug/Closes found in footer, and cross-linked with the PR. labels Aug 29, 2022
@gentoo-repo-qa-bot
Copy link
Collaborator

Pull request CI report

Report generated at: 2022-08-29 23:41 UTC
Newest commit scanned: 302617a
Status: ✅ good

There are existing issues already. Please look into the report to make sure none of them affect the packages in question:
https://qa-reports.gentoo.org/output/gentoo-ci/9b137f9536/output.html

Copy link
Member

@thesamesam thesamesam left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, please throw in commit(s) to add Python 3.11 to needed packages if their test suites pass.

I'm a bit worried about the SIMD thing you mentioned. We need to make sure it will not try to use additional instructions like e.g. VSX on PPC if the user does not want it.


LUA_COMPAT=( luajit )
PYTHON_COMPAT=( python3_{8..10} )
GNOME2_EAUTORECONF=yes
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Drop.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.


DESCRIPTION="GNU Image Manipulation Program"
HOMEPAGE="https://www.gimp.org/"
SRC_URI="mirror://gimp/v2.99/${P}.tar.xz"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New line after SRC_URI

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.


DEPEND="
${COMMON_DEPEND}
>=dev-lang/perl-5.30.3
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think all of these are actually BDEPEND (after COMMON_DEPEND).

Also, you don't need autoconf/automake/libtool anymore. Maybe not even gettext & libtool (check).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, I completely missed it with GNOME2_EAUTORECONF=yes!

In update I dropped gtk-update-icon-cache (now xdg.eclass is used anyway), dev-util/intltool ("NEWS" file mentions: "Full migration from intltool to gettext only."' ), autoconf, automake and libtool (built is ok without last being installed).

Could test? and vala? conditions stay within DEPEND?

# '/var/tmp/portage/media-gfx/gimp-2.99.12/temp/python3.10/bin/python3'
sed -i -e 's:@PYTHON_PATH@:'${EPYTHON}':' plug-ins/python/pygimp.interp.in || die

export CC_FOR_BUILD="$(tc-getBUILD_CC)"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You may not need this anymore.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dropped (configure.ac parameter).

)
}

src_test() {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You may be able to drop this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed.

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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix indentation

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@thesamesam
Copy link
Member

cc @ionenwks in case you have any views on meson port, know you've been rocking gimp 3 a bit?

@ionenwks
Copy link
Contributor

cc @ionenwks in case you have any views on meson port, know you've been rocking gimp 3 a bit?

Only gave it a quick look and used a bit, but meson version seems fine to me. And yeah, while I don't use it that much lately, I dropped gimp2 in favor of 3 since Jan 2021. Been happy with how it's been maintained 👍

In this release of Gimp dev-preview 2.99.12 the porting
from Autotools to Meson build system take place.

The Meson now is preferred by upstream.

Due to diferences of configuration options withon configure.ac
and meson_options.txt the some src_configuration options dropped

1. related to flags:
USE="aqua cpu_flags_ppc_altivec cpu_flags_ppc_mmx cpu_flags_ppc_sse"

2. autotools configure options:
GEGL="${EPREFIX}"/usr/bin/gegl-0.4
GDBUS_CODEGEN="${EPREFIX}"/usr/bin/gdbus-codegen
--with-pdbgen

Also some patches are dropped in src_prepare() phase:

sed -i -e 's/== "xquartz"/= "xquartz"/' configure.ac || die #494864
sed 's:-DGIMP_DISABLE_DEPRECATED:-DGIMP_protect_DISABLE_DEPRECATED:g' -i configure.ac || die #615144

sed 's:-DGIMP_protect_DISABLE_DEPRECATED:-DGIMP_DISABLE_DEPRECATED:g' -i configure || die #615144
grep -F -q GIMP_DISABLE_DEPRECATED configure || die #615144, self-test

The USE="X" adds conditional support of x11-libs/libXcursor.

The FEATURES="test" now use x11-misc/xvfb-run instead virtualx.eclass to run tests.

In addition USE="doc" now build related to gobject-introspection (g-ir-doc)
plugin documentations. Early it's built was broken for autotools.

Signed-off-by: Sergey Torokhov <torokhov-s-a@yandex.ru>
This change is to add PYTHON_COMPAT for media-gfx/gimp

Signed-off-by: Sergey Torokhov <torokhov-s-a@yandex.ru>
…T 3.11

Signed-off-by: Sergey Torokhov <torokhov-s-a@yandex.ru>
@band-a-prend
Copy link
Contributor Author

band-a-prend commented Aug 31, 2022

And it's seems that MMX and SSE always switched off.

There was a typo in meson.build: -mmx, -sse instead of -mmmx, -msse. This issue was reported and the fix now is in upstream. The gimp-2.99.12 has this patch in src_prepare() and now the support of this options detects by configuration.

But currently there is no possibility to rule such options. I will create request to upstream about it. At least the media-libs/babl uses Meson too and allows to manage such cpu flags.

@gentoo-repo-qa-bot
Copy link
Collaborator

Pull request CI report

Report generated at: 2022-08-31 21:51 UTC
Newest commit scanned: 47239a3
Status: ✅ good

There are existing issues already. Please look into the report to make sure none of them affect the packages in question:
https://qa-reports.gentoo.org/output/gentoo-ci/fe54ab34e8/output.html

@thesamesam
Copy link
Member

Thanks! I don't see a reason to delay getting this in. It's natural for there to be quirks and bumps along the ride when porting to a new build system.

@band-a-prend band-a-prend deleted the gimp branch September 2, 2022 07:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
assigned PR successfully assigned to the package maintainer(s). bug linked Bug/Closes found in footer, and cross-linked with the PR. self-maintained The PR changes only packages that are maintained by the submitter (i.e. no need to ask anybody else)
Projects
None yet
5 participants